{"version":3,"file":"static/js/824.c5876b1e.chunk.js","mappings":"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","sources":["helpers/keys.js","shared/full-width-image-carousel/full-width-image-carousel-item.jsx","shared/full-width-image-carousel/full-width-image-carousel.jsx","../node_modules/react-fast-marquee/src/components/Marquee.tsx"],"sourcesContent":["export const generateRandomString = () => {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\"\n let randomString = \"\"\n\n for (let i = 0; i < 5; i++) {\n const randomIndex = Math.floor(Math.random() * characters.length)\n randomString += characters[randomIndex]\n }\n\n return randomString\n}\n","import React from \"react\"\n\nexport default function FullWidthImageCarouselItem({ image, position }) {\n return (\n <div className={`full-width-image-carousel-item pos-${position ? position : \"center\"}`}>\n <img data-epi-property=\"BackgroundImage\" src={image}></img>\n </div>\n )\n}\n","import React from \"react\"\nimport FullWidthImageCarouselItem from \"./full-width-image-carousel-item\"\nimport Marquee from \"react-fast-marquee\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport { generateRandomString } from \"../../helpers/keys\"\nimport useWindowWidth from \"../../hooks/useWindowWidth\"\n\nexport default function FullWidthImageCarousel({ fullWidthCarouselImageItem }) {\n // might need this later depending on if window width detection will be necessary\n const windowWidth = useWindowWidth()\n\n const htmlImageItems =\n fullWidthCarouselImageItem?.length > 0\n ? fullWidthCarouselImageItem.map((item) => {\n return (\n <FullWidthImageCarouselItem\n key={generateRandomString()}\n image={item.backgroundImage}\n position={SelectionFactoryHelper.getFromSelectionFactory(item.position, false)}\n />\n )\n })\n : null\n\n const settings = {\n speed: 25,\n children: htmlImageItems,\n }\n\n return (\n <div data-epi-property=\"FullWidthCarouselImageItem\" className=\"full-width-image-carousel-container\">\n <Marquee {...settings}></Marquee>\n </div>\n )\n}\n","import React, {\n Fragment,\n useEffect,\n useState,\n useRef,\n useCallback,\n useMemo,\n ReactNode,\n CSSProperties,\n FC,\n forwardRef,\n Children,\n MutableRefObject,\n RefAttributes,\n} from \"react\";\nimport \"./Marquee.scss\";\n\ntype MarqueeProps = {\n /**\n * @description Inline style for the container div\n * @type {CSSProperties}\n * @default {}\n */\n style?: CSSProperties;\n /**\n * @description Class name to style the container div\n * @type {string}\n * @default \"\"\n */\n className?: string;\n /**\n * @description Whether to automatically fill blank space in the marquee with copies of the children or not\n * @type {boolean}\n * @default false\n */\n autoFill?: boolean;\n /**\n * @description Whether to play or pause the marquee\n * @type {boolean}\n * @default true\n */\n play?: boolean;\n /**\n * @description Whether to pause the marquee when hovered\n * @type {boolean}\n * @default false\n */\n pauseOnHover?: boolean;\n /**\n * @description Whether to pause the marquee when clicked\n * @type {boolean}\n * @default false\n */\n pauseOnClick?: boolean;\n /**\n * @description The direction the marquee is sliding\n * @type {\"left\" | \"right\" | \"up\" | \"down\"}\n * @default \"left\"\n */\n direction?: \"left\" | \"right\" | \"up\" | \"down\";\n /**\n * @description Speed calculated as pixels/second\n * @type {number}\n * @default 50\n */\n speed?: number;\n /**\n * @description Duration to delay the animation after render, in seconds\n * @type {number}\n * @default 0\n */\n delay?: number;\n /**\n * @description The number of times the marquee should loop, 0 is equivalent to infinite\n * @type {number}\n * @default 0\n */\n loop?: number;\n /**\n * @description Whether to show the gradient or not\n * @type {boolean}\n * @default false\n */\n gradient?: boolean;\n /**\n * @description The color of the gradient\n * @type {string}\n * @default \"white\"\n */\n gradientColor?: string;\n /**\n * @description The width of the gradient on either side\n * @type {number | string}\n * @default 200\n */\n gradientWidth?: number | string;\n /**\n * @description A callback for when the marquee finishes scrolling and stops. Only calls if loop is non-zero.\n * @type {() => void}\n * @default null\n */\n onFinish?: () => void;\n /**\n * @description A callback for when the marquee finishes a loop. Does not call if maximum loops are reached (use onFinish instead).\n * @type {() => void}\n * @default null\n */\n onCycleComplete?: () => void;\n /**\n * @description: A callback function that is invoked once the marquee has finished mounting. It can be utilized to recalculate the page size, if necessary.\n * @type {() => void}\n * @default null\n */\n onMount?: () => void;\n /**\n * @description The children rendered inside the marquee\n * @type {ReactNode}\n * @default null\n */\n children?: ReactNode;\n} & RefAttributes<HTMLDivElement>;\n\nconst Marquee: FC<MarqueeProps> = forwardRef(function Marquee(\n {\n style = {},\n className = \"\",\n autoFill = false,\n play = true,\n pauseOnHover = false,\n pauseOnClick = false,\n direction = \"left\",\n speed = 50,\n delay = 0,\n loop = 0,\n gradient = false,\n gradientColor = \"white\",\n gradientWidth = 200,\n onFinish,\n onCycleComplete,\n onMount,\n children,\n },\n ref\n) {\n // React Hooks\n const [containerWidth, setContainerWidth] = useState(0);\n const [marqueeWidth, setMarqueeWidth] = useState(0);\n const [multiplier, setMultiplier] = useState(1);\n const [isMounted, setIsMounted] = useState(false);\n const rootRef = useRef<HTMLDivElement>(null);\n const containerRef = (ref as MutableRefObject<HTMLDivElement>) || rootRef;\n const marqueeRef = useRef<HTMLDivElement>(null);\n\n // Calculate width of container and marquee and set multiplier\n const calculateWidth = useCallback(() => {\n if (marqueeRef.current && containerRef.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const marqueeRect = marqueeRef.current.getBoundingClientRect();\n let containerWidth = containerRect.width;\n let marqueeWidth = marqueeRect.width;\n\n // Swap width and height if direction is up or down\n if (direction === \"up\" || direction === \"down\") {\n containerWidth = containerRect.height;\n marqueeWidth = marqueeRect.height;\n }\n\n if (autoFill && containerWidth && marqueeWidth) {\n setMultiplier(\n marqueeWidth < containerWidth\n ? Math.ceil(containerWidth / marqueeWidth)\n : 1\n );\n } else {\n setMultiplier(1);\n }\n\n setContainerWidth(containerWidth);\n setMarqueeWidth(marqueeWidth);\n }\n }, [autoFill, containerRef, direction]);\n\n // Calculate width and multiplier on mount and on window resize\n useEffect(() => {\n if (!isMounted) return;\n\n calculateWidth();\n if (marqueeRef.current && containerRef.current) {\n const resizeObserver = new ResizeObserver(() => calculateWidth());\n resizeObserver.observe(containerRef.current);\n resizeObserver.observe(marqueeRef.current);\n return () => {\n if (!resizeObserver) return;\n resizeObserver.disconnect();\n };\n }\n }, [calculateWidth, containerRef, isMounted]);\n\n // Recalculate width when children change\n useEffect(() => {\n calculateWidth();\n }, [calculateWidth, children]);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // Runs the onMount callback, if it is a function, when Marquee is mounted.\n useEffect(() => {\n if (typeof onMount === \"function\") {\n onMount();\n }\n }, []);\n\n // Animation duration\n const duration = useMemo(() => {\n if (autoFill) {\n return (marqueeWidth * multiplier) / speed;\n } else {\n return marqueeWidth < containerWidth\n ? containerWidth / speed\n : marqueeWidth / speed;\n }\n }, [autoFill, containerWidth, marqueeWidth, multiplier, speed]);\n\n const containerStyle = useMemo(\n () => ({\n ...style,\n [\"--pause-on-hover\" as string]:\n !play || pauseOnHover ? \"paused\" : \"running\",\n [\"--pause-on-click\" as string]:\n !play || (pauseOnHover && !pauseOnClick) || pauseOnClick\n ? \"paused\"\n : \"running\",\n [\"--width\" as string]:\n direction === \"up\" || direction === \"down\" ? `100vh` : \"100%\",\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(-90deg)\"\n : direction === \"down\"\n ? \"rotate(90deg)\"\n : \"none\",\n }),\n [style, play, pauseOnHover, pauseOnClick, direction]\n );\n\n const gradientStyle = useMemo(\n () => ({\n [\"--gradient-color\" as string]: gradientColor,\n [\"--gradient-width\" as string]:\n typeof gradientWidth === \"number\"\n ? `${gradientWidth}px`\n : gradientWidth,\n }),\n [gradientColor, gradientWidth]\n );\n\n const marqueeStyle = useMemo(\n () => ({\n [\"--play\" as string]: play ? \"running\" : \"paused\",\n [\"--direction\" as string]: direction === \"left\" ? \"normal\" : \"reverse\",\n [\"--duration\" as string]: `${duration}s`,\n [\"--delay\" as string]: `${delay}s`,\n [\"--iteration-count\" as string]: !!loop ? `${loop}` : \"infinite\",\n [\"--min-width\" as string]: autoFill ? `auto` : \"100%\",\n }),\n [play, direction, duration, delay, loop, autoFill]\n );\n\n const childStyle = useMemo(\n () => ({\n [\"--transform\" as string]:\n direction === \"up\"\n ? \"rotate(90deg)\"\n : direction === \"down\"\n ? \"rotate(-90deg)\"\n : \"none\",\n }),\n [direction]\n );\n\n // Render {multiplier} number of children\n const multiplyChildren = useCallback(\n (multiplier: number) => {\n return [\n ...Array(\n Number.isFinite(multiplier) && multiplier >= 0 ? multiplier : 0\n ),\n ].map((_, i) => (\n <Fragment key={i}>\n {Children.map(children, (child) => {\n return (\n <div style={childStyle} className=\"rfm-child\">\n {child}\n </div>\n );\n })}\n </Fragment>\n ));\n },\n [childStyle, children]\n );\n\n return !isMounted ? null : (\n <div\n ref={containerRef}\n style={containerStyle}\n className={\"rfm-marquee-container \" + className}\n >\n {gradient && <div style={gradientStyle} className=\"rfm-overlay\" />}\n <div\n className=\"rfm-marquee\"\n style={marqueeStyle}\n onAnimationIteration={onCycleComplete}\n onAnimationEnd={onFinish}\n >\n <div className=\"rfm-initial-child-container\" ref={marqueeRef}>\n {Children.map(children, (child) => {\n return (\n <div style={childStyle} className=\"rfm-child\">\n {child}\n </div>\n );\n })}\n </div>\n {multiplyChildren(multiplier - 1)}\n </div>\n <div className=\"rfm-marquee\" style={marqueeStyle}>\n {multiplyChildren(multiplier)}\n </div>\n </div>\n );\n});\n\nexport default Marquee;\n"],"names":["generateRandomString","characters","randomString","i","Math","floor","random","FullWidthImageCarouselItem","_ref","image","position","_jsx","className","concat","children","src","FullWidthImageCarousel","fullWidthCarouselImageItem","settings","useWindowWidth","speed","length","map","item","backgroundImage","SelectionFactoryHelper","Marquee","_objectSpread","React","forwardRef","ref","_ref$style","style","_ref$className","_ref$autoFill","autoFill","_ref$play","play","_ref$pauseOnHover","pauseOnHover","_ref$pauseOnClick","pauseOnClick","_ref$direction","direction","_ref$speed","_ref$delay","delay","_ref$loop","loop","_ref$gradient","gradient","_ref$gradientColor","gradientColor","_ref$gradientWidth","gradientWidth","onFinish","onCycleComplete","onMount","_React$useState","useState","_React$useState2","_slicedToArray","containerWidth","setContainerWidth","_React$useState3","_React$useState4","marqueeWidth","setMarqueeWidth","_React$useState5","_React$useState6","multiplier","setMultiplier","_React$useState7","_React$useState8","isMounted","setIsMounted","rootRef","useRef","containerRef","marqueeRef","calculateWidth","useCallback","current","containerRect","getBoundingClientRect","marqueeRect","width","height","ceil","useEffect","resizeObserver","ResizeObserver","observe","disconnect","duration","useMemo","containerStyle","Object","assign","_defineProperty","gradientStyle","marqueeStyle","childStyle","multiplyChildren","_toConsumableArray","Array","Number","isFinite","_","React__default","createElement","Fragment","key","Children","child","onAnimationIteration","onAnimationEnd"],"sourceRoot":""}