{"version":3,"file":"NewsletterSignupBanner-Chunk-19304c03310ae3c778b6.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/Image/Image.tsx","webpack://nikon-client/./components/atoms/Modal/Modal.tsx","webpack://nikon-client/./components/atoms/Portal/Portal.tsx","webpack://nikon-client/./models/enums/HorizontalAlignmentEnum.ts","webpack://nikon-client/./models/enums/VerticalAlignmentEnum.ts","webpack://nikon-client/./components/molecules/Banner/Banner.tsx","webpack://nikon-client/./components/organisms/NewsletterSignupBanner/NewsletterSignupBanner.tsx","webpack://nikon-client/./models/enums/BreakpointEnum.ts","webpack://nikon-client/./models/enums/ErrorBannerNotificationEnum.ts","webpack://nikon-client/./models/enums/IBackgroundColourEnum.ts","webpack://nikon-client/./services/signupFormGetProps.ts","webpack://nikon-client/./state-management/AriaLabelsStore.ts","webpack://nikon-client/./state-management/ErrorBannerNotificationDisplayStore.ts","webpack://nikon-client/./utility/helpers/bodyScrollLock.ts","webpack://nikon-client/./utility/helpers/gtm.ts","webpack://nikon-client/./utility/hooks/useAriaLabels.ts","webpack://nikon-client/./utility/hooks/useBreakpoint.ts","webpack://nikon-client/./node_modules/.pnpm/react-google-recaptcha@2.1.0_react@18.3.1/node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://nikon-client/./node_modules/.pnpm/react-async-script@1.2.0_react@18.3.1/node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://nikon-client/./node_modules/.pnpm/react-google-recaptcha@2.1.0_react@18.3.1/node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://nikon-client/./node_modules/.pnpm/react-google-recaptcha@2.1.0_react@18.3.1/node_modules/react-google-recaptcha/lib/esm/index.js","webpack://nikon-client/./assets/hue.svg"],"sourcesContent":["import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport { IImage } from '@models/IImage';\nimport useBreakpoint from '@utils/hooks/useBreakpoint';\nimport classNames from 'classnames';\nimport { PropsWithChildren, RefObject, useState } from 'react';\n\ninterface Props {\n readonly classes?: string;\n readonly dataTestId?: string;\n readonly epiEdit?: string;\n readonly image?: IImage;\n readonly imageClasses?: string;\n readonly imageRef?:\n | RefObject\n | ((node: HTMLElement | null) => void);\n readonly lazyLoad?: boolean;\n readonly progressiveLoad?: boolean;\n readonly sizes?: string;\n}\n\nconst Image = ({\n children,\n classes,\n dataTestId,\n epiEdit,\n image,\n imageClasses,\n imageRef,\n lazyLoad = true,\n progressiveLoad = true,\n sizes = '',\n}: PropsWithChildren) => {\n const mobileSource = image?.mobile;\n const tabletSource = image?.tablet;\n const desktopSource = image?.desktop;\n const largeDesktopSource = image?.largeDesktop;\n const breakpoint = useBreakpoint() as BreakpointEnum;\n const [isLoaded, setIsLoaded] = useState(false);\n\n if (!desktopSource?.url) return null;\n\n const currentSrc = {\n [BreakpointEnum.Small]: mobileSource,\n [BreakpointEnum.Medium]: tabletSource,\n [BreakpointEnum.Large]: desktopSource,\n [BreakpointEnum.XLarge]: largeDesktopSource,\n };\n\n return (\n \n \n setIsLoaded(true)}\n sizes={sizes}\n src={\n isLoaded && progressiveLoad\n ? currentSrc[breakpoint]?.url\n : mobileSource?.url\n }\n height={currentSrc[breakpoint]?.height}\n width={currentSrc[breakpoint]?.width}\n srcSet={`${mobileSource?.originalUrl} 376w, ${tabletSource?.originalUrl} 768w, ${desktopSource?.originalUrl} 1024w, ${largeDesktopSource?.originalUrl} 1440w`}\n {...(dataTestId && { 'data-testid': dataTestId })}\n />\n {isLoaded && children}\n \n );\n};\n\nexport default Image;\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) => {\n const contentRef = useRef(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 \n \n \n \n
\n \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
\n \n \n \n \n \n
\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) => {\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","enum HorizontalAlignmentEnum {\n Left = 'LEFT',\n Right = 'RIGHT',\n Center = 'CENTER',\n}\n\nexport default HorizontalAlignmentEnum;\n","enum VerticalAlignmentEnum {\n Top = 'TOP',\n Bottom = 'BOTTOM',\n Center = 'CENTER',\n}\n\nexport default VerticalAlignmentEnum;\n","import Hue from '@assets/hue.svg';\nimport Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport { IBanner } from '@models/IBanner';\nimport HorizontalAlignmentEnum from '@models/enums/HorizontalAlignmentEnum';\nimport BackgroundColourEnum from '@models/enums/IBackgroundColourEnum';\nimport VerticalAlignmentEnum from '@models/enums/VerticalAlignmentEnum';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport classNames from 'classnames';\n\nconst mobileBackgroundColourClassName = {\n [BackgroundColourEnum.Yellow]: 'max-lg:bg-yellow',\n [BackgroundColourEnum.Black]: 'max-lg:bg-black-100',\n [BackgroundColourEnum.OffWhite]: 'max-lg:bg-grey-100',\n [BackgroundColourEnum.ShadowGrey]: 'max-lg:bg-grey-600',\n};\nconst desktopBackgroundColourClassName = {\n [BackgroundColourEnum.Yellow]: 'lg:bg-yellow',\n [BackgroundColourEnum.Black]: 'lg:bg-black-100',\n [BackgroundColourEnum.OffWhite]: 'lg:bg-grey-100',\n [BackgroundColourEnum.ShadowGrey]: 'lg:bg-grey-600',\n};\nconst desktopToMobileAlignmentMap = {\n [HorizontalAlignmentEnum.Left]: VerticalAlignmentEnum.Top,\n [HorizontalAlignmentEnum.Right]: VerticalAlignmentEnum.Bottom,\n [HorizontalAlignmentEnum.Center]: VerticalAlignmentEnum.Center,\n};\n\nconst Banner = ({\n title,\n titleTextColour,\n desktopAlignment = HorizontalAlignmentEnum.Center,\n mobileAlignment: savedMobileAlignment,\n backgroundColour = BackgroundColourEnum.ShadowGrey,\n text,\n image,\n mobileImage,\n link,\n linkText,\n ctaCallback,\n fullWidth,\n tint,\n glow,\n meta,\n invertCTA = false,\n isInCarousel = false,\n dataTestId = 'Banner',\n}: IBanner) => {\n const mobileAlignment = (() => {\n if (savedMobileAlignment) return savedMobileAlignment;\n if (isInCarousel) return VerticalAlignmentEnum.Center;\n return desktopToMobileAlignmentMap[desktopAlignment];\n })();\n\n const isMobileTop = mobileAlignment === VerticalAlignmentEnum.Top;\n const isMobileBottom = mobileAlignment === VerticalAlignmentEnum.Bottom;\n const isMobileCenter = mobileAlignment === VerticalAlignmentEnum.Center;\n const isMobileFullWidth = isMobileCenter || fullWidth;\n const mobileBackgroundColour = isMobileCenter\n ? mobileBackgroundColourClassName[BackgroundColourEnum.Yellow]\n : mobileBackgroundColourClassName[backgroundColour];\n\n const isDesktopLeft = desktopAlignment === HorizontalAlignmentEnum.Left;\n const isDesktopRight = desktopAlignment === HorizontalAlignmentEnum.Right;\n const isDesktopCenter = desktopAlignment === HorizontalAlignmentEnum.Center;\n const isDesktopFullWidth = isDesktopCenter || fullWidth;\n const desktopBackgroundColour = isDesktopCenter\n ? desktopBackgroundColourClassName[BackgroundColourEnum.Yellow]\n : desktopBackgroundColourClassName[backgroundColour];\n\n return (\n \n
\n \n \n {tint && (\n \n )}\n\n \n\n {mobileImage && (\n \n )}\n\n {glow && (\n \n )}\n
\n\n \n \n\n {text && (\n \n {text}\n

\n )}\n\n {ctaCallback && linkText && (\n \n {linkText}\n \n )}\n\n {link?.url && link?.name && (\n {\n updateDataLayer({\n event: 'selectContent',\n content_type: 'cta_feature_block',\n link_text: link.name,\n });\n }}\n link={link}\n dataTestId={`${dataTestId}-CTA-Link`}\n inverted={invertCTA}\n />\n )}\n \n \n \n \n );\n};\n\nexport default Banner;\n","import Modal from '@atoms/Modal/Modal';\nimport ErrorBannerNotificationEnum from '@models/enums/ErrorBannerNotificationEnum';\nimport { IImage } from '@models/IImage';\nimport { IMeta } from '@models/IMeta';\nimport { ISignupForm } from '@models/ISignupForm';\nimport Banner from '@molecules/Banner/Banner';\nimport SignupForm from '@organisms/SignupForm/SignupForm';\nimport signupFormGetProps from '@services/signupFormGetProps';\nimport useErrorNotificationStore from '@state/ErrorBannerNotificationDisplayStore';\nimport { useState } from 'react';\n\ninterface Props {\n readonly title: string;\n readonly titleTextColour: 'black' | 'white';\n readonly linkText: string;\n readonly image: IImage;\n readonly formEndpoint: string;\n readonly disabled: boolean;\n readonly meta?: IMeta;\n}\n\nconst NewsletterSignupBanner = ({\n title,\n titleTextColour,\n linkText,\n image,\n formEndpoint,\n disabled,\n meta,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(false);\n const [data, setData] = useState();\n\n const { setErrorBannerNotification } = useErrorNotificationStore();\n\n const onCallback = async () => {\n try {\n const signupFormResponse = await signupFormGetProps(formEndpoint);\n\n setData(signupFormResponse);\n setIsOpen(true);\n } catch (error) {\n setErrorBannerNotification(\n ErrorBannerNotificationEnum.NewsletterSignupBanner\n );\n }\n };\n\n if (disabled) return null;\n\n return (\n <>\n \n\n {data && (\n \n setIsOpen(!isOpen)} />\n \n )}\n \n );\n};\n\nexport default NewsletterSignupBanner;\n","const enum BreakpointEnum {\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl',\n}\n\nexport default BreakpointEnum;\n","enum ErrorBannerNotificationEnum {\n AccountDeleteAddress = 'accountDeleteAddress',\n AccountDefaultAddressUpdate = 'defaultAddressUpdate',\n AccountDeleteContactSubmit = 'deleteContactSubmit',\n AccountGetOrderDetails = 'accountGetOrderDetails',\n ShippingPickUpLocations = 'shippingPickUpLocations',\n LightboxOuterImages = 'lightboxOuterImages',\n MiniBasketDetails = 'miniBasketDetails',\n OrderSummaryRemoveVoucher = 'orderSummaryRemoveVoucher',\n ProductDetailsNotifyMe = 'productDetailsNotifyMe',\n CartRemoveItem = 'cartRemoveItem',\n NewsletterSignupBanner = 'newsletterSignupBanner',\n NewsletterSignupPopup = 'newsletterSignupPopup',\n OnlineRetailersData = 'onlineRetailersData',\n SearchResults = 'searchResults',\n}\n\nexport default ErrorBannerNotificationEnum;\n","const enum BackgroundColourEnum {\n Black = 'black',\n Grey = 'grey',\n OffWhite = 'off-white',\n ShadowGrey = 'shadow-grey',\n Yellow = 'yellow',\n}\n\nexport default BackgroundColourEnum;\n","import { ISignupForm } from '@models/ISignupForm';\nimport axios from 'axios';\n\nconst signupFormGetProps = async (endpoint: string): Promise => {\n const { data } = await axios.get(endpoint);\n\n return data;\n};\n\nexport default signupFormGetProps;\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((set) => ({\n ariaLabels: initialAriaLabels,\n setAriaLabels: (ariaLabels: IAriaLabels) => set({ ariaLabels }),\n}));\n\nexport default useAriaLabelsStore;\n","import ErrorBannerNotificationEnum from '@models/enums/ErrorBannerNotificationEnum';\nimport create from 'zustand';\n\ninterface IErrorBannerNotificationState {\n readonly errorBannerNotification: ErrorBannerNotificationEnum | null;\n readonly setErrorBannerNotification: (\n errorNotificationDisplay: ErrorBannerNotificationEnum | null\n ) => void;\n}\n\nconst useErrorNotificationStore = create(\n (set) => ({\n errorBannerNotification: null,\n setErrorBannerNotification: (\n errorBannerNotification: ErrorBannerNotificationEnum | null\n ) => set({ errorBannerNotification }),\n })\n);\n\nexport default useErrorNotificationStore;\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","const updateDataLayer = (eventPayload: Record) => {\n if (typeof window !== 'undefined') {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(eventPayload);\n }\n};\n\nexport default updateDataLayer;\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(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 BreakpointEnum from '@models/enums/BreakpointEnum';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst getCurrentBreakpoint = () => {\n const breakpoints = { tablet: 768, desktop: 1024, lgDesktop: 1440 };\n const width = window.innerWidth;\n\n if (width < breakpoints.tablet) {\n return BreakpointEnum.Small;\n }\n if (width >= breakpoints.tablet && width < breakpoints.desktop) {\n return BreakpointEnum.Medium;\n }\n if (width >= breakpoints.desktop && width < breakpoints.lgDesktop) {\n return BreakpointEnum.Large;\n }\n return BreakpointEnum.XLarge;\n};\n\nconst useBreakpoint = () => {\n const [screen, setScreen] = useState();\n\n const resizeHandler = useCallback(\n () => setScreen(getCurrentBreakpoint()),\n []\n );\n\n useEffect(() => {\n window.addEventListener('resize', resizeHandler);\n setScreen(getCurrentBreakpoint());\n\n return () => {\n window.removeEventListener('resize', resizeHandler);\n };\n }, [resizeHandler]);\n\n return screen;\n};\n\nexport default useBreakpoint;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","module.exports = \"data:image/svg+xml,%3csvg width='906' height='906' viewBox='0 0 906 906' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cg opacity='0.5' filter='url(%23filter0_df_5839_100698)'%3e %3ccircle cx='453' cy='453' r='263' fill='%23FFDD00'/%3e %3c/g%3e %3cdefs%3e %3cfilter id='filter0_df_5839_100698' x='0' y='0' width='906' height='906' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3e %3cfeFlood flood-opacity='0' result='BackgroundImageFix'/%3e %3cfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3e %3cfeOffset dy='1.66516'/%3e %3cfeGaussianBlur stdDeviation='0.832579'/%3e %3cfeComposite in2='hardAlpha' operator='out'/%3e %3cfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0'/%3e %3cfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_5839_100698'/%3e %3cfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_5839_100698' result='shape'/%3e %3cfeGaussianBlur stdDeviation='95' result='effect2_foregroundBlur_5839_100698'/%3e %3c/filter%3e %3c/defs%3e %3c/svg%3e\""],"names":["_ref","children","classes","dataTestId","epiEdit","image","imageClasses","imageRef","lazyLoad","progressiveLoad","sizes","mobileSource","mobile","tabletSource","tablet","desktopSource","desktop","largeDesktopSource","largeDesktop","breakpoint","useBreakpoint","isLoaded","setIsLoaded","useState","url","currentSrc","BreakpointEnum","Small","Medium","Large","XLarge","React","createElement","className","classNames","type","srcSet","_extends","ref","alt","altText","length","draggable","loading","onLoad","src","height","width","originalUrl","onCloseCallback","contentClasses","crossColor","crossMarginsClassName","crossClasses","isOpen","modalClasses","setIsOpen","showCloseButton","transparent","isCloseButtonFixed","closeButtonIconSize","IconSizeEnum","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","Fragment","CloseButton","color","size","onClick","containerElement","useMemo","document","getElementById","appendChild","removeChild","createPortal","HorizontalAlignmentEnum","VerticalAlignmentEnum","mobileBackgroundColourClassName","BackgroundColourEnum","Yellow","Black","OffWhite","ShadowGrey","desktopBackgroundColourClassName","desktopToMobileAlignmentMap","Left","Top","Right","Bottom","Center","title","titleTextColour","desktopAlignment","mobileAlignment","savedMobileAlignment","backgroundColour","text","mobileImage","link","linkText","ctaCallback","fullWidth","tint","glow","meta","invertCTA","isInCarousel","isMobileTop","isMobileBottom","isMobileCenter","isMobileFullWidth","mobileBackgroundColour","isDesktopLeft","isDesktopRight","isDesktopCenter","isDesktopFullWidth","desktopBackgroundColour","editHints","Image","Hue","dangerouslySetInnerHTML","__html","Button","inverted","name","linkCallback","updateDataLayer","event","content_type","link_text","formEndpoint","disabled","data","setData","setErrorBannerNotification","useErrorNotificationStore","Banner","async","signupFormResponse","signupFormGetProps","error","ErrorBannerNotificationEnum","NewsletterSignupBanner","Modal","SignupForm","closeCallback","axios","endpoint","initialAriaLabels","backToFirstLevelNavigationAriaLabel","breadcrumbAriaLabel","breadcrumbFooterAriaLabel","clearFiltersAriaLabel","closeMenuAriaLabel","closeAddressListAriaLabel","closeMobileNavigationAriaLabel","closeModalAriaLabel","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","errorBannerNotification","isScrollLocked","documentElementScroll","documentElement","style","getPropertyValue","cacheLocator","scrollY","setProperty","body","position","top","scrollTo","Math","abs","parseInt","eventPayload","dataLayer","push","useAriaLabels","ariaLabelsFromStore","useAriaLabelsStore","state","getCurrentBreakpoint","breakpoints","innerWidth","screen","setScreen","resizeHandler","Object","assign","i","arguments","source","prototype","hasOwnProperty","call","apply","this","_assertThisInitialized","self","ReferenceError","ReCAPTCHA","_React$Component","subClass","superClass","_this","handleExpired","bind","handleErrored","handleChange","handleRecaptchaRef","constructor","__proto__","_proto","getValue","props","grecaptcha","undefined","_widgetId","getResponse","getWidgetId","execute","_executeRequested","executeAsync","_this2","Promise","resolve","reject","executionResolve","executionReject","reset","onExpired","onErrored","token","onChange","explicitRender","render","wrapper","sitekey","callback","theme","tabindex","stoken","hl","badge","captcha","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","display","firstChild","setTimeout","elem","_this$props","childProps","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","displayName","propTypes","isRequired","defaultProps","SCRIPT_MAP","idCount","callbackName","getScriptURL","recaptchaOptions","useRecaptchaNet","options","globalName","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","context","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","Error","obsKey","observers","_this3","scriptURL","_options","scriptId","entry","errored","script","attribute","attributes","setAttribute","id","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","parentNode","forwardedRef","Component","ForwardedComponent","forwardRef","module","exports"],"sourceRoot":""}