{"version":3,"file":"ErrorBannerNotification-Chunk-b95456629a1777f4933e.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/BannerNotification/BannerNotification.tsx","webpack://nikon-client/./components/atoms/CloseButton/CloseButton.tsx","webpack://nikon-client/./components/organisms/ErrorBannerNotification/ErrorBannerNotification.tsx","webpack://nikon-client/./models/enums/BannerNotificationStylesEnum.ts","webpack://nikon-client/./models/enums/ErrorBannerNotificationEnum.ts","webpack://nikon-client/./models/enums/IconSizeEnum.ts","webpack://nikon-client/./state-management/AriaLabelsStore.ts","webpack://nikon-client/./state-management/ErrorBannerNotificationDisplayStore.ts","webpack://nikon-client/./utility/hooks/useAriaLabels.ts","webpack://nikon-client/./utility/hooks/useMediaQuery.ts","webpack://nikon-client/./utility/hooks/useResizeObserver.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/utils/use-is-mounted.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/components/AnimatePresence/PopChild.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/components/AnimatePresence/PresenceChild.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/components/AnimatePresence/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-force-update.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-unmount-effect.mjs"],"sourcesContent":["import CloseButton from '@atoms/CloseButton/CloseButton';\nimport Icon from '@atoms/Icon/Icon';\nimport { ILink } from '@models/ILink';\nimport BannerNotificationStylesEnum from '@models/enums/BannerNotificationStylesEnum';\nimport IconSizeEnum from '@models/enums/IconSizeEnum';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport useResizeObserver from '@utils/hooks/useResizeObserver';\nimport classNames from 'classnames';\nimport FocusTrap from 'focus-trap-react';\nimport { motion } from 'framer-motion';\nimport { useState } from 'react';\n\ntype INotificationStyles = {\n readonly [key in BannerNotificationStylesEnum]: {\n readonly borderClassName?: string;\n readonly backgroundClassName?: string;\n readonly paddingClassName?: string;\n readonly textColorClassName?: string;\n };\n};\n\ninterface Props {\n readonly displayStyle?: BannerNotificationStylesEnum;\n readonly additionalCustomStyles?: Partial;\n readonly iconName?: string;\n readonly caption?: string;\n readonly closeLabel?: string;\n readonly title?: string;\n readonly className?: string;\n readonly link?: ILink;\n readonly richText?: string;\n readonly desktopBreakpoint?: 'lg' | 'xl';\n readonly isContentExpandable?: boolean;\n readonly showMoreLabel?: string;\n readonly showLessLabel?: string;\n readonly isLarge?: boolean;\n readonly onDismissNotification?: () => void;\n}\n\nconst getNotificationStyles = (\n isLarge?: boolean,\n additionalCustomStyles?: Partial\n): INotificationStyles => {\n const paddingWithoutBorder = isLarge ? 'px-5 py-5 lg:py-7.5' : 'p-5';\n const paddingWithBorder = isLarge\n ? 'px-[1.1875rem] py-[1.1875rem] lg:py-[1.8125rem]'\n : 'p-[1.1875rem]';\n\n return {\n [BannerNotificationStylesEnum.Promo]: {\n backgroundClassName: 'bg-yellow',\n paddingClassName: paddingWithoutBorder,\n ...additionalCustomStyles?.[BannerNotificationStylesEnum.Promo],\n },\n [BannerNotificationStylesEnum.Info]: {\n backgroundClassName: 'bg-grey-100',\n paddingClassName: paddingWithoutBorder,\n ...additionalCustomStyles?.[BannerNotificationStylesEnum.Info],\n },\n [BannerNotificationStylesEnum.Warning]: {\n borderClassName: 'border border-yellow',\n paddingClassName: paddingWithBorder,\n backgroundClassName: 'bg-yellow-200',\n ...additionalCustomStyles?.[BannerNotificationStylesEnum.Warning],\n },\n [BannerNotificationStylesEnum.Error]: {\n borderClassName: 'border border-red',\n paddingClassName: paddingWithBorder,\n textColorClassName: 'text-red-100',\n ...additionalCustomStyles?.[BannerNotificationStylesEnum.Error],\n },\n };\n};\n\nconst BannerNotification = ({\n displayStyle,\n additionalCustomStyles,\n iconName,\n caption,\n closeLabel,\n title,\n className,\n link,\n richText,\n desktopBreakpoint = 'lg',\n isContentExpandable,\n showMoreLabel,\n showLessLabel,\n isLarge,\n onDismissNotification,\n}: Props) => {\n const [richTextRef, { scrollHeight: richTextContentHeight }] =\n useResizeObserver();\n const [isRichTextExpanded, setIsRichTextExpanded] = useState(false);\n const isMobile = useMediaQuery(desktopBreakpoint === 'lg' ? 1024 : 1440);\n const richTextCutOff = isMobile ? 72 : 24;\n const isRichTextExpandable = richTextContentHeight > richTextCutOff;\n const {\n borderClassName,\n backgroundClassName,\n textColorClassName = 'text-black-100',\n paddingClassName,\n } = getNotificationStyles(isLarge, additionalCustomStyles)[\n displayStyle || BannerNotificationStylesEnum.Info\n ];\n\n return (\n \n {iconName && (\n
\n \n
\n )}\n\n \n {(caption || title) && !richText && (\n
\n {caption && (\n \n {caption}\n \n )}{' '}\n {title}\n
\n )}\n\n {richText && !isContentExpandable && (\n \n )}\n\n {richText && isContentExpandable && (\n \n \n\n {isRichTextExpandable && (\n {\n setIsRichTextExpanded(!isRichTextExpanded);\n }}\n data-testid=\"Banner-Notification-Show-More/Less\"\n >\n \n {isRichTextExpanded ? showLessLabel : showMoreLabel}\n \n \n )}\n \n )}\n\n {link?.url && link?.name && (\n \n \n {link?.name}\n \n \n )}\n {closeLabel && (\n \n
\n {isMobile ? (\n {\n onDismissNotification?.();\n }}\n >\n {closeLabel}\n \n ) : (\n {\n onDismissNotification?.();\n }}\n />\n )}\n
\n
\n )}\n \n \n );\n};\n\nexport default BannerNotification;\n","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 \n );\n};\n\nexport default CloseButton;\n","import BannerNotification from '@atoms/BannerNotification/BannerNotification';\nimport BannerNotificationStylesEnum from '@models/enums/BannerNotificationStylesEnum';\nimport ErrorBannerNotificationEnum from '@models/enums/ErrorBannerNotificationEnum';\nimport useErrorNotificationStore from '@state/ErrorBannerNotificationDisplayStore';\nimport { AnimatePresence, motion } from 'framer-motion';\n\ninterface Props {\n readonly apiDownLabel: string;\n readonly closeLabel: string;\n readonly accountDeleteAddressLabel: string;\n readonly accountDefaultAddressUpdateLabel: string;\n readonly accountDeleteContactSubmitLabel: string;\n readonly accountGetOrderDetailsLabel: string;\n readonly shippingPickUpLocationsLabel: string;\n readonly lightboxOuterImagesLabel: string;\n readonly miniBasketDetailsLabel: string;\n readonly orderSummaryRemoveVoucherLabel: string;\n readonly productDetailsNotifyMeLabel: string;\n readonly cartRemoveItemLabel: string;\n readonly newsletterSignupBannerLabel: string;\n readonly newsletterSignupPopupLabel: string;\n readonly onlineRetailersDataLabel: string;\n readonly searchResultsLabel: string;\n}\n\nconst ErrorBannerNotification = ({\n apiDownLabel,\n closeLabel,\n accountDeleteAddressLabel,\n accountDefaultAddressUpdateLabel,\n accountDeleteContactSubmitLabel,\n accountGetOrderDetailsLabel,\n shippingPickUpLocationsLabel,\n lightboxOuterImagesLabel,\n miniBasketDetailsLabel,\n orderSummaryRemoveVoucherLabel,\n productDetailsNotifyMeLabel,\n cartRemoveItemLabel,\n newsletterSignupBannerLabel,\n newsletterSignupPopupLabel,\n onlineRetailersDataLabel,\n searchResultsLabel,\n}: Props) => {\n const { errorBannerNotification, setErrorBannerNotification } =\n useErrorNotificationStore();\n\n const ErrorBannerNotificationLookup = Object.fromEntries(\n Object.entries(ErrorBannerNotificationEnum).map(([key, value]) => [\n value,\n {\n AccountDeleteAddress: accountDeleteAddressLabel,\n AccountDefaultAddressUpdate: accountDefaultAddressUpdateLabel,\n AccountDeleteContactSubmit: accountDeleteContactSubmitLabel,\n AccountGetOrderDetails: accountGetOrderDetailsLabel,\n ShippingPickUpLocations: shippingPickUpLocationsLabel,\n LightboxOuterImages: lightboxOuterImagesLabel,\n MiniBasketDetails: miniBasketDetailsLabel,\n OrderSummaryRemoveVoucher: orderSummaryRemoveVoucherLabel,\n ProductDetailsNotifyMe: productDetailsNotifyMeLabel,\n CartRemoveItem: cartRemoveItemLabel,\n NewsletterSignupBanner: newsletterSignupBannerLabel,\n NewsletterSignupPopup: newsletterSignupPopupLabel,\n OnlineRetailersData: onlineRetailersDataLabel,\n SearchResults: searchResultsLabel,\n }[key as keyof typeof ErrorBannerNotificationEnum],\n ])\n ) as Record;\n\n const currentError = errorBannerNotification\n ? ErrorBannerNotificationLookup[errorBannerNotification]\n : '';\n\n return (\n \n {errorBannerNotification && (\n \n setErrorBannerNotification(null)}\n />\n \n )}\n \n );\n};\n\nexport default ErrorBannerNotification;\n","const enum BannerNotificationStylesEnum {\n Info = 'info',\n Warning = 'warning',\n Error = 'error',\n Promo = 'promo',\n}\n\nexport default BannerNotificationStylesEnum;\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 IconSizeEnum {\n xs = '.5rem',\n sm = '.75rem',\n md = '1rem',\n lg = '1.5rem',\n xl = '1.75rem',\n}\n\nexport default IconSizeEnum;\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","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 { 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();\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 { useCallback, useRef, useState } from 'react';\n\nconst useResizeObserver = () => {\n const observerRef = useRef();\n const [resizeParameters, setResizeParameters] = useState({\n width: 0,\n height: 0,\n clientWidth: 0,\n clientHeight: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n });\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n if (!Array.isArray(entries)) return;\n\n const entry = entries[0];\n\n setResizeParameters({\n width: entry?.contentRect.width ?? 0,\n height: entry?.contentRect.height ?? 0,\n clientWidth: entry?.target.clientWidth ?? 0,\n clientHeight: entry?.target.clientHeight ?? 0,\n scrollWidth: entry?.target.scrollWidth ?? 0,\n scrollHeight: entry?.target.scrollHeight ?? 0,\n });\n }, []);\n\n const ref = useCallback(\n (node: HTMLElement | null) => {\n if (observerRef.current && !node) {\n observerRef.current.disconnect();\n observerRef.current = undefined;\n }\n\n if (!observerRef.current && node) {\n observerRef.current = new ResizeObserver(handleResize);\n observerRef.current.observe(node);\n }\n },\n [handleResize]\n );\n\n return [ref, resizeParameters] as const;\n};\n\nexport default useResizeObserver;\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n // clean up the exiting children map\n exitingChildren.delete(key);\n // compute the keys of children that were rendered once but are no longer present\n // this could happen in case of too many fast consequent renderings\n // @link https://github.com/framer/motion/issues/2023\n const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n // clean up the all children map\n leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n // make sure to render only the children that are actually visible\n presentChildren.current = filteredChildren.filter((presentChild) => {\n const presentChildKey = getChildKey(presentChild);\n return (\n // filter out the node exiting\n presentChildKey === key ||\n // filter out the leftover children\n leftOverKeys.includes(presentChildKey));\n });\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n"],"names":["_ref","displayStyle","additionalCustomStyles","iconName","caption","closeLabel","title","className","link","richText","desktopBreakpoint","isContentExpandable","showMoreLabel","showLessLabel","isLarge","onDismissNotification","richTextRef","scrollHeight","richTextContentHeight","useResizeObserver","isRichTextExpanded","setIsRichTextExpanded","useState","isMobile","useMediaQuery","richTextCutOff","isRichTextExpandable","borderClassName","backgroundClassName","textColorClassName","paddingClassName","getNotificationStyles","paddingWithoutBorder","paddingWithBorder","BannerNotificationStylesEnum","Promo","Info","Warning","Error","React","createElement","classNames","Icon","name","colorClassName","dangerouslySetInnerHTML","__html","motion","div","ref","animate","variants","height","initial","onClick","url","href","target","FocusTrap","focusTrapOptions","initialFocus","CloseButton","color","size","IconSizeEnum","md","ariaLabel","lg","dataTestId","closeModalAriaLabel","useAriaLabels","type","black","white","red","style","width","apiDownLabel","accountDeleteAddressLabel","accountDefaultAddressUpdateLabel","accountDeleteContactSubmitLabel","accountGetOrderDetailsLabel","shippingPickUpLocationsLabel","lightboxOuterImagesLabel","miniBasketDetailsLabel","orderSummaryRemoveVoucherLabel","productDetailsNotifyMeLabel","cartRemoveItemLabel","newsletterSignupBannerLabel","newsletterSignupPopupLabel","onlineRetailersDataLabel","searchResultsLabel","errorBannerNotification","setErrorBannerNotification","useErrorNotificationStore","ErrorBannerNotificationLookup","Object","fromEntries","entries","ErrorBannerNotificationEnum","map","_ref2","key","value","AccountDeleteAddress","AccountDefaultAddressUpdate","AccountDeleteContactSubmit","AccountGetOrderDetails","ShippingPickUpLocations","LightboxOuterImages","MiniBasketDetails","OrderSummaryRemoveVoucher","ProductDetailsNotifyMe","CartRemoveItem","NewsletterSignupBanner","NewsletterSignupPopup","OnlineRetailersData","SearchResults","currentError","AnimatePresence","opacity","exit","transition","duration","BannerNotification","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","ariaLabelsFromStore","useAriaLabelsStore","state","useEffect","minWidth","isSmallerThan","setIsSmallerThan","handler","useCallback","isDesiredWidth","window","innerWidth","addEventListener","removeEventListener","observerRef","useRef","resizeParameters","setResizeParameters","clientWidth","clientHeight","scrollWidth","handleResize","Array","isArray","entry","contentRect","node","current","disconnect","undefined","ResizeObserver","observe","useIsMounted","isMounted","PopChildMeasure","getSnapshotBeforeUpdate","prevProps","element","this","props","childRef","isPresent","sizeRef","offsetHeight","offsetWidth","top","offsetTop","left","offsetLeft","componentDidUpdate","render","children","PopChild","id","useId","useInsertionEffect","dataset","motionPopId","document","head","appendChild","sheet","insertRule","removeChild","PresenceChild","onExitComplete","custom","presenceAffectsLayout","mode","presenceChildren","newChildrenMap","context","useMemo","childId","isComplete","values","register","delete","forEach","_","PresenceContext","Provider","Map","getChildKey","child","exitBeforeEnter","forceRender","useContext","LayoutGroupContext","L","forcedRenderCount","setForcedRenderCount","postRender","useForceUpdate","filteredChildren","filtered","Children","isValidElement","push","onlyElements","childrenToRender","exitingChildren","presentChildren","allChildren","isInitialRender","callback","updateChildLookup","clear","presentKeys","targetKeys","numPresent","length","i","indexOf","has","component","get","insertionIndex","exitingComponent","onExit","leftOverKeys","from","keys","filter","childKey","includes","leftOverKey","presentChild","presentChildKey","splice","cloneElement"],"sourceRoot":""}