{"version":3,"file":"1612-2166ff116ffcfda1bfa7.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/CloseButton/CloseButton.tsx","webpack://nikon-client/./components/atoms/Modal/Modal.tsx","webpack://nikon-client/./components/atoms/Portal/Portal.tsx","webpack://nikon-client/./components/molecules/Dropdown/Dropdown.tsx","webpack://nikon-client/./components/atoms/BackToTopButton/BackToTopButton.tsx","webpack://nikon-client/./utility/hooks/useCookieSettings.ts","webpack://nikon-client/./components/molecules/FooterBanner/FooterBanner.tsx","webpack://nikon-client/./models/enums/IconSizeEnum.ts","webpack://nikon-client/./models/enums/StickyNavPositionEnum.ts","webpack://nikon-client/./models/enums/VerticalDirectionEnum.ts","webpack://nikon-client/./state-management/AriaLabelsStore.ts","webpack://nikon-client/./state-management/StickyNavStore.ts","webpack://nikon-client/./utility/helpers/bodyScrollLock.ts","webpack://nikon-client/./utility/hooks/useAriaLabels.ts","webpack://nikon-client/./utility/hooks/useIsInIFrame.ts","webpack://nikon-client/./utility/hooks/useIsTouchDevice.ts","webpack://nikon-client/./utility/hooks/useMediaQuery.ts","webpack://nikon-client/./utility/hooks/useWindowScrollPosition.ts","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/utils/use-in-view.mjs"],"sourcesContent":["import IconSizeEnum from '@models/enums/IconSizeEnum';\nimport useAriaLabels from '@utils/hooks/useAriaLabels';\nimport classNames from 'classnames';\nimport { MouseEventHandler } from 'react';\n\ninterface Props {\n  readonly ariaLabel?: string;\n  readonly className?: string;\n  readonly color?: 'black' | 'white' | 'red';\n  readonly onClick: MouseEventHandler;\n  readonly size?: IconSizeEnum | string;\n  readonly dataTestId?: string;\n}\n\nconst CloseButton = ({\n  ariaLabel,\n  className,\n  color = 'black',\n  onClick,\n  size = IconSizeEnum.lg,\n  dataTestId,\n}: Props) => {\n  const { closeModalAriaLabel } = useAriaLabels();\n\n  const closeColours = {\n    black: 'before:bg-black-100 after:bg-black-100',\n    white: 'before:bg-white after:bg-white',\n    red: 'before:bg-red-100 after:bg-red-100',\n  };\n\n  return (\n    <button\n      type=\"button\"\n      className={classNames('close-button', closeColours[color], className)}\n      aria-label={ariaLabel ?? closeModalAriaLabel}\n      style={{ width: size, height: size }}\n      onClick={onClick}\n      data-testid={dataTestId}\n    />\n  );\n};\n\nexport default CloseButton;\n","import CloseButton from '@atoms/CloseButton/CloseButton';\nimport Portal from '@atoms/Portal/Portal';\nimport IconSizeEnum from '@models/enums/IconSizeEnum';\nimport bodyScrollLock from '@utils/helpers/bodyScrollLock';\nimport classNames from 'classnames';\nimport FocusTrap from 'focus-trap-react';\nimport { motion } from 'framer-motion';\nimport { PropsWithChildren, useCallback, useEffect, useRef } from 'react';\n\ninterface Props {\n  readonly onCloseCallback?: () => void;\n  readonly contentClasses?: string;\n  readonly crossMarginsClassName?: string;\n  readonly crossClasses?: string;\n  readonly crossColor?: 'black' | 'white';\n  readonly isOpen: boolean;\n  readonly modalClasses?: string;\n  readonly setIsOpen?: (param: boolean) => void;\n  readonly showCloseButton?: boolean;\n  readonly transparent?: boolean;\n  readonly isCloseButtonFixed?: boolean;\n  readonly closeButtonIconSize?: IconSizeEnum | string;\n  readonly shouldCloseOnClickOutsideContent?: boolean;\n  readonly shouldLockBody?: boolean;\n}\n\nconst Modal = ({\n  onCloseCallback,\n  children,\n  contentClasses,\n  crossColor = 'white',\n  crossMarginsClassName = 'mr-8 mt-8',\n  crossClasses,\n  isOpen,\n  modalClasses,\n  setIsOpen,\n  showCloseButton = true,\n  transparent = false,\n  isCloseButtonFixed = true,\n  closeButtonIconSize = IconSizeEnum.md,\n  shouldCloseOnClickOutsideContent = false,\n  shouldLockBody = true,\n}: PropsWithChildren<Props>) => {\n  const contentRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (isOpen && shouldLockBody) {\n      bodyScrollLock(true);\n    }\n\n    return () => {\n      if (shouldLockBody) bodyScrollLock(false);\n    };\n  }, [isOpen, shouldLockBody]);\n\n  const close = useCallback(() => {\n    setIsOpen?.(false);\n    onCloseCallback?.();\n  }, [onCloseCallback, setIsOpen]);\n\n  useEffect(() => {\n    const keyboardClose = (ev: KeyboardEvent) => {\n      if (ev.key === 'Escape' && isOpen === true) {\n        setIsOpen?.(false);\n      }\n    };\n    window.addEventListener('keydown', keyboardClose);\n\n    return () => {\n      window.removeEventListener('keydown', keyboardClose);\n    };\n  }, [isOpen, setIsOpen]);\n\n  useEffect(() => {\n    const handleClickOutsideContent = (ev: Event) => {\n      if (\n        isOpen &&\n        shouldCloseOnClickOutsideContent &&\n        !contentRef.current?.contains(ev.target as HTMLElement)\n      ) {\n        close();\n      }\n    };\n\n    window.addEventListener('click', handleClickOutsideContent, true);\n\n    return () => {\n      window.removeEventListener('click', handleClickOutsideContent, true);\n    };\n  }, [close, isOpen, shouldCloseOnClickOutsideContent]);\n\n  if (!isOpen) {\n    return null;\n  }\n\n  return (\n    <Portal key=\"portal\" mountId=\"drawer-root\">\n      <FocusTrap\n        focusTrapOptions={{\n          preventScroll: true,\n          escapeDeactivates: false,\n        }}\n      >\n        <motion.div\n          animate={{ opacity: 1 }}\n          className=\"relative z-max h-auto\"\n          exit={{ opacity: 0 }}\n          initial={{ opacity: 0 }}\n          transition={{\n            duration: 0.8,\n            ease: [0.04, 0.62, 0.23, 0.98],\n          }}\n        >\n          <section\n            className={classNames(\n              transparent ? 'bg-black-100/50' : 'bg-black-100',\n              'fixed inset-0 z-100 text-white'\n            )}\n          >\n            <div className=\"flex h-full w-full\">\n              <div\n                className={classNames(\n                  modalClasses,\n                  'container h-full w-full overflow-y-auto'\n                )}\n              >\n                <div\n                  className={classNames(contentClasses, 'relative text-left')}\n                  ref={contentRef}\n                >\n                  {showCloseButton && (\n                    <>\n                      {/* A hidden button that steals the inital focus of the modal preventing the close icon from animating on modal open  */}\n                      {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n                      <button className=\"hidden\" />\n\n                      <CloseButton\n                        color={crossColor}\n                        size={closeButtonIconSize}\n                        onClick={close}\n                        className={classNames(\n                          'right-0 top-0 z-100 flex cursor-pointer flex-col items-center',\n                          isCloseButtonFixed ? 'fixed' : 'absolute',\n                          crossMarginsClassName,\n                          crossClasses\n                        )}\n                      />\n                    </>\n                  )}\n                  {children}\n                </div>\n              </div>\n            </div>\n          </section>\n        </motion.div>\n      </FocusTrap>\n    </Portal>\n  );\n};\n\nexport default Modal;\n","import { PropsWithChildren, useEffect, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\n\ninterface Props {\n  readonly mountId: string;\n}\n\nconst Portal = ({ mountId, children }: PropsWithChildren<Props>) => {\n  const containerElement = useMemo(() => document.createElement('div'), []);\n\n  useEffect(() => {\n    document.getElementById(mountId)?.appendChild(containerElement);\n\n    return () => {\n      document.getElementById(mountId)?.removeChild(containerElement);\n    };\n  }, [mountId, containerElement]);\n\n  return createPortal(children, containerElement);\n};\n\nexport default Portal;\n","import Icon from '@atoms/Icon/Icon';\nimport Modal from '@atoms/Modal/Modal';\nimport IconSizeEnum from '@models/enums/IconSizeEnum';\nimport VerticalDirectionEnum from '@models/enums/VerticalDirectionEnum';\nimport { ILink } from '@models/ILink';\nimport useIsInIFrame from '@utils/hooks/useIsInIFrame';\nimport useIsTouchDevice from '@utils/hooks/useIsTouchDevice';\nimport classNames from 'classnames';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { Dispatch, SetStateAction } from 'react';\n\nconst dropdownVariants = {\n  enter: {\n    height: 'auto',\n    opacity: 1,\n    transition: {\n      duration: 0.1,\n      ease: 'easeInOut',\n    },\n  },\n  exit: {\n    height: 0,\n    opacity: 0,\n    transition: {\n      duration: 0.1,\n      ease: 'easeInOut',\n    },\n  },\n};\n\ninterface Props {\n  readonly modalTitle: string;\n  readonly links: ILink[] | string[];\n  readonly active?: boolean;\n  readonly isOpen: boolean;\n  readonly setIsOpen: Dispatch<SetStateAction<boolean>>;\n  readonly activeIndex?: number;\n  readonly itemCallback?: (label: string) => void;\n  readonly titleCallback?: () => void;\n  readonly title?: string;\n  readonly openFromDirection: VerticalDirectionEnum;\n  readonly animateUnderline?: boolean;\n  readonly dataTestId?: string;\n  readonly dataLayerCallback?: (label: string) => void;\n}\n\nconst Dropdown = ({\n  links,\n  active = false,\n  isOpen,\n  setIsOpen,\n  activeIndex = -1,\n  itemCallback,\n  titleCallback,\n  title,\n  openFromDirection,\n  modalTitle,\n  animateUnderline,\n  dataTestId,\n  dataLayerCallback,\n}: Props) => {\n  const isTouchDevice = useIsTouchDevice();\n  const isInIFrame = useIsInIFrame();\n\n  const underlineClasses = animateUnderline\n    ? 'animate-underline'\n    : 'border-b-2 border-yellow';\n\n  return isTouchDevice ? (\n    <div\n      className=\"flex flex-row items-center text-white\"\n      data-testid={dataTestId}\n    >\n      <button\n        onClick={() => setIsOpen(!isOpen)}\n        type=\"button\"\n        className={classNames(\n          {\n            'border-b border-yellow pb-0.5 text-yellow': active,\n          },\n          'body-two shrink-0'\n        )}\n        data-testid=\"Dropdown-Title\"\n      >\n        {title}\n      </button>\n      <Icon\n        name=\"arrow_right\"\n        colorClassName=\"text-yellow\"\n        className={classNames({\n          '-scale-y-100': isOpen,\n        })}\n      />\n\n      <Modal\n        isOpen={isOpen}\n        setIsOpen={setIsOpen}\n        modalClasses=\"flex flex-col justify-start w-full h-full fixed top-0 bottom-0 left-0 right-0 pt-16 text-black-100 bg-white max-w-none\"\n        crossColor=\"black\"\n        contentClasses=\"py-4\"\n      >\n        <div className=\"container h-full w-full list-none text-black-100\">\n          {title && <p className=\"h5 pb-7.5\">{modalTitle}</p>}\n          <ul className=\"flex flex-col items-start gap-y-7.5\">\n            {links?.length > 0 && typeof links[0] === 'object'\n              ? (links as ILink[]).map(\n                  ({ url, target, longName, shortName, name, lang }, index) => (\n                    <li\n                      className=\"body-two shrink-0 cursor-pointer\"\n                      key={`dropdown-list-item-${\n                        longName || shortName || name\n                      }`}\n                    >\n                      <a\n                        href={isInIFrame ? '_parent' : url}\n                        target={target}\n                        className={classNames(\n                          {\n                            [underlineClasses]: activeIndex === index,\n                          },\n                          'cursor-pointer whitespace-nowrap pb-0.5 text-black-100 hover:text-grey-500'\n                        )}\n                        data-testid=\"Dropdown-Item\"\n                        lang={lang}\n                      >\n                        {longName || shortName || name}\n                      </a>\n                    </li>\n                  )\n                )\n              : ((links ?? []) as string[]).map((label, index) => (\n                  <button\n                    key={`dropdown-list-item-${label}`}\n                    onClick={() => {\n                      itemCallback?.(activeIndex !== index ? label : '');\n                      setIsOpen(!isOpen);\n                    }}\n                    className={classNames(\n                      {\n                        'border-b-2 border-yellow': activeIndex === index,\n                      },\n                      'cursor-pointer whitespace-nowrap pb-0.5 text-black-100 hover:text-grey-500'\n                    )}\n                  >\n                    {label}\n                  </button>\n                ))}\n          </ul>\n        </div>\n      </Modal>\n    </div>\n  ) : (\n    <motion.div\n      role=\"button\"\n      tabIndex={0}\n      aria-expanded={isOpen}\n      className=\"relative max-w-max\"\n      onClick={() => {\n        setIsOpen(!isOpen);\n        titleCallback?.();\n      }}\n      onKeyDown={(e) => {\n        if (!isOpen && (e.key === 'Enter' || e.key === 'ArrowDown')) {\n          titleCallback?.();\n          setIsOpen(true);\n        } else if (e.key === 'ArrowUp') {\n          setIsOpen(false);\n        } else if (e.key === 'Tab' && e.shiftKey) {\n          setIsOpen(false);\n        }\n      }}\n      onBlur={(e) => {\n        const { currentTarget } = e;\n        requestAnimationFrame(() => {\n          if (!currentTarget.contains(document.activeElement)) {\n            setIsOpen(false);\n          }\n        });\n      }}\n    >\n      <div className=\"flex flex-row text-white\">\n        <span\n          className={classNames(\n            {\n              'border-b border-yellow pb-0.5 text-yellow': active,\n            },\n            'body-two shrink-0'\n          )}\n          data-testid=\"Dropdown-Title\"\n        >\n          {title}\n        </span>\n        <motion.span\n          animate={{\n            rotate: isOpen ? 180 : 0,\n          }}\n        >\n          <Icon\n            name=\"caret_down\"\n            colorClassName=\"text-yellow\"\n            size={IconSizeEnum.lg}\n            className={classNames({\n              'rotate-180': openFromDirection !== VerticalDirectionEnum.Down,\n            })}\n          />\n        </motion.span>\n      </div>\n      <AnimatePresence>\n        {isOpen && (\n          <motion.ul\n            tabIndex={0}\n            className={classNames(\n              'hide-scrollbar absolute left-1/2 z-80 flex h-auto max-h-[500px] flex-col items-start gap-7.5 overflow-auto rounded-[10px] bg-white p-6 px-[25px] py-[30px] lg:-translate-x-1/2',\n              {\n                'top-10': openFromDirection === VerticalDirectionEnum.Down,\n                'bottom-10': openFromDirection === VerticalDirectionEnum.Up,\n              }\n            )}\n          >\n            {links?.length > 0 && typeof links[0] === 'object'\n              ? (links as ILink[]).map(\n                  (\n                    { url, target, longName, shortName, name, lang }: ILink,\n                    index\n                  ) => (\n                    <motion.li\n                      initial=\"exit\"\n                      animate=\"enter\"\n                      exit=\"exit\"\n                      variants={dropdownVariants}\n                      transition={{\n                        duration: 0.1,\n                        ease: 'easeInOut',\n                      }}\n                      className=\"body-two shrink-0 cursor-pointer\"\n                      key={`dropdown-list-item-${\n                        longName || shortName || name\n                      }`}\n                    >\n                      <a\n                        href={url}\n                        target={target}\n                        className={classNames(\n                          {\n                            [underlineClasses]: activeIndex === index,\n                          },\n                          'cursor-pointer whitespace-nowrap pb-0.5 text-black-100 hover:text-grey-500'\n                        )}\n                        data-testid=\"Dropdown-Item\"\n                        onClick={() => {\n                          dataLayerCallback?.(\n                            longName || shortName || name || ''\n                          );\n                        }}\n                        lang={lang}\n                      >\n                        {longName || shortName || name}\n                      </a>\n                    </motion.li>\n                  )\n                )\n              : ((links ?? []) as string[]).map((label, index) => (\n                  <motion.li\n                    initial=\"exit\"\n                    animate=\"enter\"\n                    exit=\"exit\"\n                    variants={dropdownVariants}\n                    className=\"body-three w-full shrink-0 cursor-pointer leading-6\"\n                    key={`dropdown-list-item-${label}`}\n                  >\n                    <button\n                      onClick={() => {\n                        itemCallback?.(activeIndex !== index ? label : '');\n                        dataLayerCallback?.(label);\n                      }}\n                      className={classNames(\n                        {\n                          'border-b-2 border-yellow': activeIndex === index,\n                        },\n                        'cursor-pointer whitespace-nowrap pb-0.5 text-black-100 hover:text-grey-500'\n                      )}\n                      data-testid=\"Dropdown-Item\"\n                    >\n                      {label}\n                    </button>\n                  </motion.li>\n                ))}\n          </motion.ul>\n        )}\n      </AnimatePresence>\n    </motion.div>\n  );\n};\n\nexport default Dropdown;\n","import Icon from '@atoms/Icon/Icon';\nimport StickyNavPosition from '@models/enums/StickyNavPositionEnum';\nimport useStickyNavPositionStore from '@state/StickyNavStore';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport useWindowScrollPositions from '@utils/hooks/useWindowScrollPosition';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { useEffect, useState } from 'react';\n\ninterface Props {\n  readonly footerInView: boolean;\n  readonly backToTopButtonText?: string;\n  readonly enableStickyBackToTopButton: boolean;\n}\n\nconst Button = ({\n  backToTopButtonText,\n}: Pick<Props, 'backToTopButtonText'>) => (\n  <motion.button\n    initial={{ scale: 1, rotate: 0 }}\n    whileHover={{ scale: 1.2, rotate: 360 }}\n    transition={{ duration: 1 }}\n    onClick={() =>\n      window.requestAnimationFrame(() =>\n        window.scrollTo({ top: 0, behavior: 'smooth' })\n      )\n    }\n    aria-label={backToTopButtonText}\n    className=\"flex h-12 w-12 items-center justify-center rounded-full bg-yellow text-black-100 active:bg-yellow-500 md:flex xl:hover:bg-yellow-100 xl:active:bg-yellow-500\"\n  >\n    <Icon name=\"upArrow\" size=\"1.25rem\" />\n  </motion.button>\n);\n\nconst BackToTopButton = ({\n  footerInView = false,\n  backToTopButtonText,\n  enableStickyBackToTopButton,\n}: Props) => {\n  const [backToTopIsSticky, setBackToTopIsSticky] = useState(false);\n  const { scrollY } = useWindowScrollPositions();\n  const { stickyNavPosition } = useStickyNavPositionStore((state) => ({\n    stickyNavPosition: state.stickyNavPosition,\n  }));\n  const isBelowLargeDesktop = useMediaQuery(1440);\n  const isMobile = useMediaQuery(768);\n  const scrollDistanceForButtonVisibility = isBelowLargeDesktop ? 1000 : 2000;\n\n  useEffect(() => {\n    const stickyBackToTopCondition =\n      enableStickyBackToTopButton &&\n      (stickyNavPosition === StickyNavPosition.Top ||\n        (!isMobile && stickyNavPosition === StickyNavPosition.Bottom));\n\n    setBackToTopIsSticky(stickyBackToTopCondition);\n  }, [enableStickyBackToTopButton, stickyNavPosition, isMobile]);\n\n  return (\n    <div\n      id={`backToTopButton${enableStickyBackToTopButton ? 'WithFixed' : ''}`}\n      className=\"w-full\"\n    >\n      <AnimatePresence>\n        {footerInView ? (\n          <motion.div\n            key=\"relativePosition\"\n            initial={{ opacity: 0 }}\n            animate={{ opacity: 1 }}\n            exit={{ opacity: 0 }}\n            transition={{ duration: 0.3 }}\n            className=\"container relative flex items-center justify-end xl:justify-start xl:pr-0\"\n          >\n            {backToTopButtonText && (\n              <p className=\"mr-5 text-xs text-grey-500\">\n                {backToTopButtonText}\n              </p>\n            )}\n\n            <Button backToTopButtonText={backToTopButtonText} />\n          </motion.div>\n        ) : (\n          backToTopIsSticky && (\n            <motion.div\n              key=\"fixedPosition\"\n              initial={{ opacity: 0 }}\n              animate={{\n                opacity: scrollY > scrollDistanceForButtonVisibility ? 1 : 0,\n              }}\n              exit={{ opacity: 0 }}\n              transition={{ duration: 0.3 }}\n              className=\"fixed bottom-2.5 right-2.5 z-max flex items-center xl:bottom-7.5 xl:right-7.5\"\n            >\n              <Button backToTopButtonText={backToTopButtonText} />\n            </motion.div>\n          )\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n\nexport default BackToTopButton;\n","import { useEffect, useRef, useState } from 'react';\n\nconst useCookieSettings = () => {\n  const cookieSettingsOpenButton = useRef<HTMLElement | null>(null);\n  const [showCookieSettings, setShowCookieSettings] = useState(false);\n\n  const handleCookieSettingsClick = () => {\n    cookieSettingsOpenButton.current?.click();\n  };\n\n  const handleInitialCookieButtonDisplayed = (\n    initialCookieButtonElement: HTMLDivElement\n  ) => {\n    // eslint-disable-next-line no-param-reassign\n    initialCookieButtonElement.style.visibility = 'hidden';\n    const openButton = initialCookieButtonElement.querySelector(\n      '.ot-floating-button__open'\n    ) as HTMLElement | null;\n    cookieSettingsOpenButton.current = openButton;\n    setShowCookieSettings(true);\n  };\n\n  useEffect(() => {\n    const observer = new MutationObserver((mutationsList) => {\n      const initialCookieButtonElement = (\n        mutationsList\n          .reduce<Node[]>(\n            (acc, item) => [...acc, ...Array.from(item.addedNodes)],\n            []\n          )\n          .find(\n            (element) =>\n              (element as HTMLDivElement).id === 'onetrust-consent-sdk'\n          ) as HTMLDivElement\n      )?.querySelector('#ot-sdk-btn-floating') as HTMLDivElement;\n\n      if (initialCookieButtonElement) {\n        handleInitialCookieButtonDisplayed(initialCookieButtonElement);\n        observer.disconnect();\n      }\n    });\n\n    observer.observe(document.body, {\n      subtree: false,\n      childList: true,\n    });\n\n    const initialCookieButtonElement = document.getElementById(\n      'ot-sdk-btn-floating'\n    ) as HTMLDivElement;\n\n    if (initialCookieButtonElement)\n      handleInitialCookieButtonDisplayed(initialCookieButtonElement);\n  }, []);\n\n  return { showCookieSettings, handleCookieSettingsClick };\n};\n\nexport default useCookieSettings;\n","import BackToTopButton from '@atoms/BackToTopButton/BackToTopButton';\nimport { IFooterBannerProps } from '@models/IFooterBannerProps';\nimport VerticalDirectionEnum from '@models/enums/VerticalDirectionEnum';\nimport Dropdown from '@molecules/Dropdown/Dropdown';\nimport useCookieSettings from '@utils/hooks/useCookieSettings';\nimport useIsInIFrame from '@utils/hooks/useIsInIFrame';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport { useInView } from 'framer-motion';\nimport { useEffect, useRef, useState } from 'react';\n\nconst FooterBanner = ({\n  backToTopButtonText,\n  copyrightNotice,\n  enableStickyBackToTopButton,\n  externalSitesLinks,\n  language,\n  languageSelector,\n  secondaryNavigationLinks,\n  cookieSettingsLabel,\n}: IFooterBannerProps) => {\n  const [isLanguageDropdownSelectorOpen, setIsLanguageDropdownSelectorOpen] =\n    useState(false);\n  const [languageActiveIndex, setLanguageActiveIndex] = useState(-1);\n  const [isExternalSitesDropdownOpen, setIsExternalSitesDropdownOpen] =\n    useState(false);\n  const isBelowLargeDesktop = useMediaQuery(1440);\n\n  const footerRef = useRef<HTMLDivElement>(null);\n  const footerInView = useInView(footerRef, { amount: 0.5 });\n  const isInIFrame = useIsInIFrame();\n  const { showCookieSettings, handleCookieSettingsClick } = useCookieSettings();\n\n  useEffect(\n    () =>\n      setLanguageActiveIndex(\n        languageSelector?.links?.findIndex((lang) =>\n          lang.url?.includes(language ?? '')\n        ) ?? -1\n      ),\n    [language, languageSelector]\n  );\n\n  useEffect(() => {\n    const handleKeyDown = (event: KeyboardEvent) => {\n      if (event.key === 'Escape') {\n        setIsLanguageDropdownSelectorOpen(false);\n        setIsExternalSitesDropdownOpen(false);\n      }\n    };\n\n    if (isLanguageDropdownSelectorOpen || isExternalSitesDropdownOpen) {\n      document.addEventListener('keydown', handleKeyDown);\n    } else {\n      document.removeEventListener('keydown', handleKeyDown);\n    }\n\n    return () => {\n      document.removeEventListener('keydown', handleKeyDown);\n    };\n  }, [isLanguageDropdownSelectorOpen, isExternalSitesDropdownOpen]);\n\n  return (\n    <>\n      <div\n        className=\"container flex min-h-[90px] flex-wrap items-center gap-x-5 gap-y-[10px] py-6 md:py-[20px]\"\n        ref={footerRef}\n      >\n        {languageSelector?.links && languageSelector?.title && (\n          <>\n            <Dropdown\n              openFromDirection={VerticalDirectionEnum.Up}\n              links={languageSelector.links}\n              modalTitle={languageSelector.title}\n              title={languageSelector.links[languageActiveIndex]?.shortName}\n              isOpen={isLanguageDropdownSelectorOpen}\n              setIsOpen={setIsLanguageDropdownSelectorOpen}\n              activeIndex={languageActiveIndex}\n              animateUnderline\n              titleCallback={() => {\n                setIsLanguageDropdownSelectorOpen(\n                  !isLanguageDropdownSelectorOpen\n                );\n                setIsExternalSitesDropdownOpen(false);\n              }}\n            />\n            <div className=\"h-6 w-px bg-grey-500\" />\n          </>\n        )}\n\n        <Dropdown\n          modalTitle={externalSitesLinks?.title ?? ''}\n          openFromDirection={VerticalDirectionEnum.Up}\n          links={externalSitesLinks?.links ?? []}\n          title={externalSitesLinks?.title}\n          isOpen={isExternalSitesDropdownOpen}\n          setIsOpen={setIsExternalSitesDropdownOpen}\n          titleCallback={() => {\n            setIsExternalSitesDropdownOpen(!isExternalSitesDropdownOpen);\n            setIsLanguageDropdownSelectorOpen(false);\n          }}\n        />\n\n        <ul className=\"flex w-full flex-wrap justify-start md:w-auto md:justify-end xl:justify-start\">\n          {secondaryNavigationLinks?.map((link) => (\n            <li\n              className=\"footer-pipe shrink-0 px-2 first:pl-0\"\n              key={`second-nav-${link.name}-${link.url}`}\n            >\n              <a\n                className=\"body-four text-grey-500 transition-colors hover:text-yellow\"\n                href={link.url}\n                target={isInIFrame ? '_parent' : link.target}\n                data-testid=\"CT-02-Secondary-Nav-Link\"\n              >\n                {link.name}\n              </a>\n            </li>\n          ))}\n\n          {cookieSettingsLabel && showCookieSettings && (\n            <li className=\"footer-pipe shrink-0 px-2\">\n              <button\n                onClick={handleCookieSettingsClick}\n                className=\"body-four cursor-pointer text-grey-500 transition-colors hover:text-yellow\"\n              >\n                {cookieSettingsLabel}\n              </button>\n            </li>\n          )}\n        </ul>\n\n        <div className=\"mr-auto flex w-full items-center text-left md:text-right xl:w-auto\">\n          {copyrightNotice && (\n            <p\n              className=\"body-four text-grey-500\"\n              data-testid=\"CT-02-Footer-Trademark\"\n            >\n              {copyrightNotice}\n            </p>\n          )}\n        </div>\n\n        {!isBelowLargeDesktop && !isInIFrame && (\n          <div className=\"flex items-center text-left md:text-right xl:w-auto\">\n            <BackToTopButton\n              footerInView={footerInView}\n              backToTopButtonText={backToTopButtonText}\n              enableStickyBackToTopButton={enableStickyBackToTopButton ?? false}\n            />\n          </div>\n        )}\n      </div>\n      {isBelowLargeDesktop && !isInIFrame && (\n        <div className=\"flex h-[88px] w-full items-center bg-grey-700 text-left\">\n          <BackToTopButton\n            footerInView={footerInView}\n            backToTopButtonText={backToTopButtonText}\n            enableStickyBackToTopButton={enableStickyBackToTopButton ?? false}\n          />\n        </div>\n      )}\n    </>\n  );\n};\n\nexport default FooterBanner;\n","const enum IconSizeEnum {\n  xs = '.5rem',\n  sm = '.75rem',\n  md = '1rem',\n  lg = '1.5rem',\n  xl = '1.75rem',\n}\n\nexport default IconSizeEnum;\n","enum StickyNavPosition {\n  Top = 'top',\n  Bottom = 'bottom',\n}\n\nexport default StickyNavPosition;\n","enum VerticalDirectionEnum {\n  Up = 'UP',\n  Down = 'DOWN',\n}\n\nexport default VerticalDirectionEnum;\n","import { IAriaLabels } from '@models/IAriaLabels';\nimport create from 'zustand';\n\ninterface IAriaLabelsState {\n  ariaLabels: IAriaLabels;\n  setAriaLabels: (ariaLabels: IAriaLabels) => void;\n}\n\nexport const initialAriaLabels: IAriaLabels = {\n  backToFirstLevelNavigationAriaLabel: 'Back to first level of navigation',\n  breadcrumbAriaLabel: 'Breadcrumb navigation',\n  breadcrumbFooterAriaLabel: 'Breadcrumb footer navigation',\n  clearFiltersAriaLabel: 'Clear filters',\n  closeMenuAriaLabel: 'Close menu',\n  closeAddressListAriaLabel: 'Close address list',\n  closeMobileNavigationAriaLabel: 'Close navigation',\n  closeModalAriaLabel: 'Close Modal',\n  closeSignUpFormAriaLabel: 'Close signup form',\n  closeSiteNotificationAriaLabel: 'Close site notification',\n  copyToClipboardAriaLabel: 'Copy to clipboard',\n  editOrDeleteAriaLabel: 'Edit or delete',\n  mainNavigationAriaLabel: 'Main navigation',\n  moreInformationAriaLabel: 'More information',\n  nextAriaLabel: 'Go to next slide',\n  openAddressListAriaLabel: 'Open address list',\n  openImageInFullScreenAriaLabel: 'Open image in full screen',\n  openMenuAriaLabel: 'Open menu',\n  overlayToCloseDesktopNavigationAriaLabel: 'Close overlay',\n  pauseVideoAriaLabel: 'Pause video',\n  playVideoAriaLabel: 'Play video',\n  previousAriaLabel: 'Go to previous slide',\n  searchAriaLabel: 'Search',\n  shareToFacebookAriaLabel: 'Share to Facebook',\n  shareToWhatsappAriaLabel: 'Share to Whatsapp',\n  shareToXAriaLabel: 'Share to X',\n  siteNotificationsAriaLabel: 'Site notifications banner',\n  uspStripAriaLabel: 'Unique Selling Point Strip',\n  zoomInAriaLabel: 'Zoom in',\n  zoomOutAriaLabel: 'Zoom out',\n};\n\nconst useAriaLabelsStore = create<IAriaLabelsState>((set) => ({\n  ariaLabels: initialAriaLabels,\n  setAriaLabels: (ariaLabels: IAriaLabels) => set({ ariaLabels }),\n}));\n\nexport default useAriaLabelsStore;\n","import StickyNavPosition from '@models/enums/StickyNavPositionEnum';\nimport create from 'zustand';\n\ntype StickyNavPositions = StickyNavPosition.Top | StickyNavPosition.Bottom;\n\ninterface IStickyNavPositionState {\n  readonly stickyNavPosition: StickyNavPosition;\n  readonly setStickyNavPosition: (navPosition: StickyNavPositions) => void;\n}\n\nconst useStickyNavPositionStore = create<IStickyNavPositionState>((set) => ({\n  stickyNavPosition: StickyNavPosition.Top,\n  setStickyNavPosition: (navPosition: StickyNavPositions) =>\n    set({ stickyNavPosition: navPosition }),\n}));\n\nexport default useStickyNavPositionStore;\n","const bodyScrollLock = (isScrollLocked: boolean) => {\n  const documentElementScroll =\n    document.documentElement.style.getPropertyValue('--scroll-y');\n  const cacheLocator = documentElementScroll || `${window.scrollY}px`;\n\n  if (!documentElementScroll) {\n    window.addEventListener('scroll', () => {\n      document.documentElement.style.setProperty(\n        '--scroll-y',\n        `${window.scrollY}px`\n      );\n    });\n  }\n\n  if (isScrollLocked) {\n    const scrollY = cacheLocator;\n    const { body } = document;\n    body.style.position = 'fixed';\n    body.style.top = `-${scrollY}`;\n  } else {\n    const { body } = document;\n    body.style.position = '';\n    const scrollY = body.style.top || cacheLocator;\n    body.style.top = '';\n    window.scrollTo(0, Math.abs(parseInt(scrollY || '0', 10)));\n  }\n};\n\nexport default bodyScrollLock;\n","import { IAriaLabels } from '@models/IAriaLabels';\nimport useAriaLabelsStore, { initialAriaLabels } from '@state/AriaLabelsStore';\nimport { useEffect, useState } from 'react';\n\nconst useAriaLabels = () => {\n  const [ariaLabels, setAriaLabels] = useState<IAriaLabels>(initialAriaLabels);\n  const ariaLabelsFromStore = useAriaLabelsStore((state) => state.ariaLabels);\n\n  useEffect(() => {\n    setAriaLabels(ariaLabelsFromStore);\n  }, [ariaLabelsFromStore]);\n\n  return ariaLabels;\n};\n\nexport default useAriaLabels;\n","import { useEffect, useState } from 'react';\n\nconst useIsInIFrame = (): boolean => {\n  const [isInIFrame, setIsInIFrame] = useState(false);\n\n  useEffect(() => {\n    setIsInIFrame(window.self !== window.top);\n  }, []);\n\n  return isInIFrame;\n};\n\nexport default useIsInIFrame;\n","import { useEffect, useState } from 'react';\n\nconst useIsTouchDevice = () => {\n  const [isTouchDevice, setIsTouchDevice] = useState<boolean>();\n\n  const handleIsTouchDevice = (): void => {\n    setIsTouchDevice('ontouchstart' in window || navigator.maxTouchPoints > 0);\n  };\n\n  useEffect(() => {\n    handleIsTouchDevice();\n\n    window.addEventListener('resize', handleIsTouchDevice);\n\n    return () => window.removeEventListener('resize', handleIsTouchDevice);\n  }, []);\n\n  return isTouchDevice;\n};\n\nexport default useIsTouchDevice;\n","import { useCallback, useEffect, useState } from 'react';\n\nconst useMediaQuery = (minWidth: number) => {\n  // Set the default value to undefined in order to properly distinguish the falsey values\n  // where undefined is the value before computing whether the screen size is smaller than the minWidth\n  // i.e. a state where we don't really know whether we're below the threshold or not\n  // and false is the value where the computation returns false\n  const [isSmallerThan, setIsSmallerThan] = useState<boolean>();\n\n  const handler = useCallback(() => {\n    const isDesiredWidth = window.innerWidth < minWidth;\n    setIsSmallerThan(isDesiredWidth);\n  }, [minWidth]);\n\n  useEffect(() => {\n    window.addEventListener('resize', handler);\n    handler();\n\n    return () => {\n      window.removeEventListener('resize', handler);\n    };\n  }, [handler]);\n\n  return isSmallerThan;\n};\n\nexport default useMediaQuery;\n","import { useEffect, useState } from 'react';\n\nconst useWindowScrollPositions = () => {\n  const [scrollPosition, setPosition] = useState({ scrollX: 0, scrollY: 0 });\n\n  useEffect(() => {\n    const updatePosition = () => {\n      setPosition({ scrollX: window.scrollX, scrollY: window.scrollY });\n    };\n\n    window.addEventListener('scroll', updatePosition);\n    updatePosition();\n\n    return () => window.removeEventListener('scroll', updatePosition);\n  }, []);\n\n  return scrollPosition;\n};\n\nexport default useWindowScrollPositions;\n","import { resolveElements } from '../utils/resolve-element.mjs';\n\nconst thresholds = {\n    some: 0,\n    all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"some\" } = {}) {\n    const elements = resolveElements(elementOrSelector);\n    const activeIntersections = new WeakMap();\n    const onIntersectionChange = (entries) => {\n        entries.forEach((entry) => {\n            const onEnd = activeIntersections.get(entry.target);\n            /**\n             * If there's no change to the intersection, we don't need to\n             * do anything here.\n             */\n            if (entry.isIntersecting === Boolean(onEnd))\n                return;\n            if (entry.isIntersecting) {\n                const newOnEnd = onStart(entry);\n                if (typeof newOnEnd === \"function\") {\n                    activeIntersections.set(entry.target, newOnEnd);\n                }\n                else {\n                    observer.unobserve(entry.target);\n                }\n            }\n            else if (onEnd) {\n                onEnd(entry);\n                activeIntersections.delete(entry.target);\n            }\n        });\n    };\n    const observer = new IntersectionObserver(onIntersectionChange, {\n        root,\n        rootMargin,\n        threshold: typeof amount === \"number\" ? amount : thresholds[amount],\n    });\n    elements.forEach((element) => observer.observe(element));\n    return () => observer.disconnect();\n}\n\nexport { inView };\n","import { useState, useEffect } from 'react';\nimport { inView } from '../render/dom/viewport/index.mjs';\n\nfunction useInView(ref, { root, margin, amount, once = false } = {}) {\n    const [isInView, setInView] = useState(false);\n    useEffect(() => {\n        if (!ref.current || (once && isInView))\n            return;\n        const onEnter = () => {\n            setInView(true);\n            return once ? undefined : () => setInView(false);\n        };\n        const options = {\n            root: (root && root.current) || undefined,\n            margin,\n            amount,\n        };\n        return inView(ref.current, onEnter, options);\n    }, [root, ref, margin, once, amount]);\n    return isInView;\n}\n\nexport { useInView };\n"],"names":["_ref","ariaLabel","className","color","onClick","size","IconSizeEnum","lg","dataTestId","closeModalAriaLabel","useAriaLabels","React","createElement","type","classNames","black","white","red","style","width","height","onCloseCallback","children","contentClasses","crossColor","crossMarginsClassName","crossClasses","isOpen","modalClasses","setIsOpen","showCloseButton","transparent","isCloseButtonFixed","closeButtonIconSize","md","shouldCloseOnClickOutsideContent","shouldLockBody","contentRef","useRef","useEffect","bodyScrollLock","close","useCallback","keyboardClose","ev","key","window","addEventListener","removeEventListener","handleClickOutsideContent","current","contains","target","Portal","mountId","FocusTrap","focusTrapOptions","preventScroll","escapeDeactivates","motion","div","animate","opacity","exit","initial","transition","duration","ease","ref","Fragment","CloseButton","containerElement","useMemo","document","getElementById","appendChild","removeChild","createPortal","dropdownVariants","enter","links","active","activeIndex","itemCallback","titleCallback","title","openFromDirection","modalTitle","animateUnderline","dataLayerCallback","isTouchDevice","useIsTouchDevice","isInIFrame","useIsInIFrame","underlineClasses","Icon","name","colorClassName","Modal","length","map","_ref2","index","url","longName","shortName","lang","href","label","role","tabIndex","onKeyDown","e","shiftKey","onBlur","currentTarget","requestAnimationFrame","activeElement","span","rotate","VerticalDirectionEnum","Down","AnimatePresence","ul","Up","_ref3","li","variants","Button","backToTopButtonText","button","scale","whileHover","scrollTo","top","behavior","footerInView","enableStickyBackToTopButton","backToTopIsSticky","setBackToTopIsSticky","useState","scrollY","useWindowScrollPositions","stickyNavPosition","useStickyNavPositionStore","state","isBelowLargeDesktop","useMediaQuery","isMobile","scrollDistanceForButtonVisibility","stickyBackToTopCondition","StickyNavPosition","Top","Bottom","id","useCookieSettings","cookieSettingsOpenButton","showCookieSettings","setShowCookieSettings","handleInitialCookieButtonDisplayed","initialCookieButtonElement","visibility","openButton","querySelector","observer","MutationObserver","mutationsList","reduce","acc","item","Array","from","addedNodes","find","element","disconnect","observe","body","subtree","childList","handleCookieSettingsClick","click","copyrightNotice","externalSitesLinks","language","languageSelector","secondaryNavigationLinks","cookieSettingsLabel","isLanguageDropdownSelectorOpen","setIsLanguageDropdownSelectorOpen","languageActiveIndex","setLanguageActiveIndex","isExternalSitesDropdownOpen","setIsExternalSitesDropdownOpen","footerRef","useInView","amount","findIndex","includes","handleKeyDown","event","Dropdown","link","BackToTopButton","initialAriaLabels","backToFirstLevelNavigationAriaLabel","breadcrumbAriaLabel","breadcrumbFooterAriaLabel","clearFiltersAriaLabel","closeMenuAriaLabel","closeAddressListAriaLabel","closeMobileNavigationAriaLabel","closeSignUpFormAriaLabel","closeSiteNotificationAriaLabel","copyToClipboardAriaLabel","editOrDeleteAriaLabel","mainNavigationAriaLabel","moreInformationAriaLabel","nextAriaLabel","openAddressListAriaLabel","openImageInFullScreenAriaLabel","openMenuAriaLabel","overlayToCloseDesktopNavigationAriaLabel","pauseVideoAriaLabel","playVideoAriaLabel","previousAriaLabel","searchAriaLabel","shareToFacebookAriaLabel","shareToWhatsappAriaLabel","shareToXAriaLabel","siteNotificationsAriaLabel","uspStripAriaLabel","zoomInAriaLabel","zoomOutAriaLabel","create","set","ariaLabels","setAriaLabels","setStickyNavPosition","navPosition","isScrollLocked","documentElementScroll","documentElement","getPropertyValue","cacheLocator","setProperty","position","Math","abs","parseInt","ariaLabelsFromStore","useAriaLabelsStore","setIsInIFrame","self","setIsTouchDevice","handleIsTouchDevice","navigator","maxTouchPoints","minWidth","isSmallerThan","setIsSmallerThan","handler","isDesiredWidth","innerWidth","scrollPosition","setPosition","scrollX","updatePosition","thresholds","some","all","root","margin","once","isInView","setInView","options","undefined","elementOrSelector","onStart","rootMargin","elements","activeIntersections","WeakMap","IntersectionObserver","entries","forEach","entry","onEnd","get","isIntersecting","Boolean","newOnEnd","unobserve","delete","threshold","inView"],"sourceRoot":""}