{"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":""}