{"version":3,"file":"4084-65ceb0a657eb724e0d3e.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/BannerNotification/BannerNotification.tsx","webpack://nikon-client/./components/molecules/BasketNotifications/BasketNotifications.tsx","webpack://nikon-client/./components/molecules/CartItem/CartItem.tsx","webpack://nikon-client/./models/enums/AddToCartErrorEnum.ts","webpack://nikon-client/./models/enums/BannerNotificationStylesEnum.ts","webpack://nikon-client/./models/enums/ProductStockStatusEnum.ts","webpack://nikon-client/./state-management/CartSizeStore.ts","webpack://nikon-client/./node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.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 BannerNotification from '@atoms/BannerNotification/BannerNotification';\nimport { IBasketNotification } from '@models/IBasketNotification';\n\ninterface Props {\n readonly notifications: IBasketNotification[];\n readonly desktopBreakpoint?: 'lg' | 'xl';\n readonly isContentExpandable?: boolean;\n readonly showMoreLabel?: string;\n readonly showLessLabel?: string;\n readonly hasLargeNotifications?: boolean;\n readonly dataTestId?: string;\n}\n\nconst BasketNotifications = ({\n notifications,\n desktopBreakpoint,\n isContentExpandable,\n showMoreLabel,\n showLessLabel,\n hasLargeNotifications,\n dataTestId,\n}: Props) => (\n
\n {notifications.map(({ displayStyle, icon, text, link }) => (\n \n ))}\n
\n);\n\nexport default BasketNotifications;\n","import CloseButton from '@atoms/CloseButton/CloseButton';\nimport Icon from '@atoms/Icon/Icon';\nimport Image from '@atoms/Image/Image';\nimport { IBasketNotification } from '@models/IBasketNotification';\nimport { ICartItem } from '@models/ICartItem';\nimport IconSizeEnum from '@models/enums/IconSizeEnum';\nimport ProductStockStatusEnum from '@models/enums/ProductStockStatusEnum';\nimport BasketNotifications from '@molecules/BasketNotifications/BasketNotifications';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport classNames from 'classnames';\nimport { motion } from 'framer-motion';\n\ninterface Props extends ICartItem {\n readonly showMoreLabel?: string;\n readonly showLessLabel?: string;\n readonly amountSaveLabel: string;\n readonly onChangeCartItemQuantity?: (code: string, quantity: number) => void;\n readonly onRemoveItemFromCart: (code: string, isGift?: boolean) => void;\n readonly index?: number;\n readonly desktopBreakpoint?: 'xl' | 'md';\n readonly hasBorder?: boolean;\n readonly isContainerAnimated?: boolean;\n}\n\nconst CartItem = ({\n code,\n displayName,\n thumbnail,\n url,\n stockStatus,\n stockStatusLabel,\n placedPrice,\n discountedPrice,\n amountSaved,\n amountSaveLabel,\n amountLabels,\n showMoreLabel,\n showLessLabel,\n quantityLabel,\n selectedQuantity,\n availableQuantities,\n lineItemTag,\n preOrderNotification,\n backOrderNotification,\n errorNotification,\n giftNotification,\n onChangeCartItemQuantity,\n onRemoveItemFromCart,\n index,\n desktopBreakpoint = 'xl',\n hasBorder = true,\n isContainerAnimated = true,\n isFreeItem,\n}: Props) => {\n const isMobile = useMediaQuery(1440);\n const isDiscounted = placedPrice !== discountedPrice;\n const itemNotifications = [\n preOrderNotification,\n backOrderNotification,\n errorNotification,\n giftNotification,\n ].filter((notification) => notification) as IBasketNotification[];\n\n return (\n \n {/* // TODO: Revert this conditional ONLY when gift items are able to\n // be removed from the basket which currently Opti does not allow */}\n {!isFreeItem && (\n {\n onRemoveItemFromCart(code, isFreeItem);\n }}\n />\n )}\n\n {lineItemTag && (\n \n
\n \n\n

{lineItemTag.label}

\n
\n \n )}\n\n \n \n \n \n\n \n
\n {lineItemTag && (\n \n
\n \n\n

{lineItemTag.label}

\n
\n
\n )}\n\n \n {stockStatusLabel}\n

\n\n \n \n {displayName}\n

\n \n \n\n \n \n

{quantityLabel}

\n\n {!isFreeItem ? (\n
\n {\n const newSelectedQuantity = Number(ev.target.value);\n const updatedQuantity =\n newSelectedQuantity - selectedQuantity;\n\n onChangeCartItemQuantity?.(code, updatedQuantity);\n }}\n className=\"body-three relative appearance-none rounded-[100px] bg-grey-100 py-1.5 pl-5 pr-10\"\n >\n {Object.entries(availableQuantities).map(\n ([entryLabel, entryValue]) => (\n \n )\n )}\n \n\n
\n \n
\n
\n ) : (\n \n {selectedQuantity}\n \n )}\n \n\n \n
\n {isDiscounted && (\n \n {placedPrice}\n

\n )}\n\n \n {discountedPrice}\n

\n
\n\n {isDiscounted && (\n \n
\n\n

\n {amountSaveLabel.replace('{0}', amountSaved)}\n

\n
\n )}\n\n {amountLabels\n ?.filter((amountLabel) => amountLabel)\n .map((amountLabel) => (\n \n {amountLabel}\n

\n ))}\n \n \n \n \n\n {itemNotifications.length > 0 && (\n \n \n \n )}\n \n );\n};\n\nexport default CartItem;\n","const enum AddToCartErrorEnum {\n mixedCart = 'ZERO_AUTH_REGULAR_ITEM_MIXED_CART',\n maxProductQuantity = 'MAX_QUANTITY_OF_PRODUCT_EXCEEDED',\n maxBasketQuantity = 'MAX_QUANTITY_OF_BASKET_EXCEEDED',\n maxBasketValue = 'MAX_VALUE_OF_BASKET_EXCEEDED',\n}\n\nexport default AddToCartErrorEnum;\n","const enum BannerNotificationStylesEnum {\n Info = 'info',\n Warning = 'warning',\n Error = 'error',\n Promo = 'promo',\n}\n\nexport default BannerNotificationStylesEnum;\n","// We get these values from the external stores, so they can't be changed unless they change also on the stores\n\nconst enum ProductStockStatusEnum {\n InStock = 'IN_STOCK',\n OutOfStock = 'OUT_OF_STOCK',\n ComingSoon = 'COMING_SOON',\n PreOrder = 'PRE_ORDER',\n BackOrder = 'BACKORDER',\n SoldOut = 'SOLD_OUT',\n DoNotShow = 'DO_NOT_SHOW',\n BtoBOnly = 'B2B_ONLY',\n}\n\nexport default ProductStockStatusEnum;\n","import create from 'zustand';\n\ninterface ICartSizeState {\n readonly cartIdName: string;\n readonly cartSizeName: string;\n readonly domainName: string;\n readonly cartSize: number;\n readonly setCartIdName: (cartIdName: string) => void;\n readonly setCartSizeName: (cartSizeName: string) => void;\n readonly setDomainName: (domainName: string) => void;\n readonly setCartSize: (cartSize: number) => void;\n}\n\nconst useCartSizeStore = create((set) => ({\n // default values that can be overwritten in the cms\n cartIdName: '__gbSite__at__cartSize',\n cartSizeName: '__gbSite__at__cart',\n domainName: '.nikon.co.uk',\n cartSize: 0,\n\n // set cookie names\n setCartIdName: (cartIdName) => set({ cartIdName }),\n setCartSizeName: (cartSizeName) => set({ cartSizeName }),\n setDomainName: (domainName) => set({ domainName }),\n setCartSize: (cartSize) => set({ cartSize }),\n}));\n\nexport default useCartSizeStore;\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\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","notifications","hasLargeNotifications","dataTestId","map","_ref2","icon","text","BannerNotification","key","code","displayName","thumbnail","stockStatus","stockStatusLabel","placedPrice","discountedPrice","amountSaved","amountSaveLabel","amountLabels","quantityLabel","selectedQuantity","availableQuantities","lineItemTag","preOrderNotification","backOrderNotification","errorNotification","giftNotification","onChangeCartItemQuantity","onRemoveItemFromCart","index","hasBorder","isContainerAnimated","isFreeItem","isDiscounted","itemNotifications","filter","notification","_extends","layout","transition","type","duration","scale","opacity","exit","label","rel","Image","image","imageClasses","ProductStockStatusEnum","OutOfStock","disabled","value","onChange","ev","updatedQuantity","Number","Object","entries","entryLabel","entryValue","replace","amountLabel","length","BasketNotifications","AddToCartErrorEnum","create","set","cartIdName","cartSizeName","domainName","cartSize","setCartIdName","setCartSizeName","setDomainName","setCartSize","assign","i","arguments","source","api","init","converter","defaultAttributes","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","get","cookies","jar","parts","slice","join","found","read","e","remove","withAttributes","this","withConverter","freeze","path"],"sourceRoot":""}