{"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<INotificationStyles>;\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<INotificationStyles>\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    <div\n      className={classNames(\n        'flex w-full gap-x-5 rounded-[10px]',\n        borderClassName,\n        backgroundClassName,\n        textColorClassName,\n        paddingClassName,\n        className\n      )}\n      data-testid=\"Banner-Notification\"\n      aria-live=\"polite\"\n    >\n      {iconName && (\n        <div className=\"flex\" data-testid=\"Banner-Notification-Icon\">\n          <Icon name={iconName} colorClassName={textColorClassName} />\n        </div>\n      )}\n\n      <div\n        className={classNames(\n          'flex w-full flex-col justify-between',\n          desktopBreakpoint === 'lg'\n            ? 'max-lg:gap-y-2.5 lg:flex-row lg:gap-x-7.5'\n            : 'max-xl:gap-y-2.5 xl:flex-row xl:gap-x-7.5',\n          {\n            'lg:items-center': closeLabel,\n          }\n        )}\n      >\n        {(caption || title) && !richText && (\n          <div>\n            {caption && (\n              <span\n                className=\"font-normal\"\n                data-testid=\"Banner-Notification-Caption\"\n              >\n                {caption}\n              </span>\n            )}{' '}\n            {title}\n          </div>\n        )}\n\n        {richText && !isContentExpandable && (\n          <div\n            className=\"body-three\"\n            data-testid=\"Banner-Notification-Rich-Text\"\n            dangerouslySetInnerHTML={{ __html: richText }}\n          />\n        )}\n\n        {richText && isContentExpandable && (\n          <div\n            className={classNames(\n              'flex items-start',\n              desktopBreakpoint === 'lg' ? 'max-lg:flex-col' : 'max-xl:flex-col'\n            )}\n          >\n            <motion.div\n              ref={richTextRef}\n              className=\"body-three overflow-hidden\"\n              animate={!isRichTextExpanded ? 'initial' : 'animate'}\n              variants={{\n                animate: { height: 'auto' },\n                initial: {\n                  height: isRichTextExpandable ? richTextCutOff : 'auto',\n                },\n              }}\n              dangerouslySetInnerHTML={{ __html: richText }}\n              data-testid=\"Banner-Notification-Rich-Text\"\n            />\n\n            {isRichTextExpandable && (\n              <button\n                className=\"shrink-0 underline\"\n                onClick={() => {\n                  setIsRichTextExpanded(!isRichTextExpanded);\n                }}\n                data-testid=\"Banner-Notification-Show-More/Less\"\n              >\n                <strong>\n                  {isRichTextExpanded ? showLessLabel : showMoreLabel}\n                </strong>\n              </button>\n            )}\n          </div>\n        )}\n\n        {link?.url && link?.name && (\n          <div\n            className={classNames(\n              'mr-2.5 flex shrink-0 flex-row',\n              desktopBreakpoint === 'lg' ? 'lg:flex-col' : 'xl:flex-col'\n            )}\n          >\n            <a\n              href={link.url}\n              target={link.target}\n              className=\"font-normal underline\"\n              data-testid=\"Banner-Notification-Link\"\n            >\n              {link?.name}\n            </a>\n          </div>\n        )}\n        {closeLabel && (\n          <FocusTrap focusTrapOptions={{ initialFocus: false }}>\n            <div>\n              {isMobile ? (\n                <button\n                  className=\"underline text-start body-three body-three--bold\"\n                  onClick={() => {\n                    onDismissNotification?.();\n                  }}\n                >\n                  {closeLabel}\n                </button>\n              ) : (\n                <CloseButton\n                  className=\"relative\"\n                  color=\"red\"\n                  size={IconSizeEnum.md}\n                  onClick={() => {\n                    onDismissNotification?.();\n                  }}\n                />\n              )}\n            </div>\n          </FocusTrap>\n        )}\n      </div>\n    </div>\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  <div className=\"flex flex-col gap-y-5\" data-testid={dataTestId}>\n    {notifications.map(({ displayStyle, icon, text, link }) => (\n      <BannerNotification\n        displayStyle={displayStyle}\n        iconName={icon}\n        richText={text}\n        link={link}\n        key={`${displayStyle}-${icon}-${text}-${link?.url}-${link?.name}`}\n        desktopBreakpoint={desktopBreakpoint}\n        isContentExpandable={isContentExpandable}\n        showMoreLabel={showMoreLabel}\n        showLessLabel={showLessLabel}\n        isLarge={hasLargeNotifications}\n      />\n    ))}\n  </div>\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    <motion.div\n      key={code}\n      data-testid={`Cart-Item${index ? `-${index}` : ''}`}\n      className={classNames('relative rounded-[10px] bg-white p-2.5', {\n        'border border-grey': hasBorder,\n        'xl:flex xl:min-h-[14.5625rem] xl:shrink-0 xl:flex-col':\n          desktopBreakpoint === 'xl',\n        'md:flex md:min-h-[14.5625rem] md:shrink-0 md:flex-col':\n          desktopBreakpoint === 'md',\n      })}\n      {...(isContainerAnimated\n        ? {\n            layout: true,\n            transition: {\n              type: 'spring',\n              duration: 0.3,\n              layout: { type: 'spring', duration: 0.7 },\n            },\n            animate: { scale: 1, opacity: 1 },\n            exit: { scale: 0.8, opacity: 0 },\n          }\n        : {})}\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        <CloseButton\n          className={classNames('absolute right-2.5 top-2.5', {\n            'xl:right-[0.9375rem] xl:top-[0.9375rem]':\n              desktopBreakpoint === 'xl',\n            'md:right-[0.9375rem] md:top-[0.9375rem]':\n              desktopBreakpoint === 'md',\n          })}\n          size=\"1.375rem\"\n          onClick={() => {\n            onRemoveItemFromCart(code, isFreeItem);\n          }}\n        />\n      )}\n\n      {lineItemTag && (\n        <div\n          className={classNames('mb-4 flex', {\n            'xl:hidden': desktopBreakpoint === 'xl',\n            'md:hidden': desktopBreakpoint === 'md',\n          })}\n          data-testid={`Cart-Item${index ? `-${index}` : ''}-Tag-Mobile`}\n        >\n          <div className=\"flex items-center gap-x-1.5 rounded-[100px] bg-grey-100 px-3 py-1\">\n            <Icon\n              name={lineItemTag.icon}\n              colorClassName=\"text-yellow\"\n              size={IconSizeEnum.md}\n            />\n\n            <p className=\"body-four\">{lineItemTag.label}</p>\n          </div>\n        </div>\n      )}\n\n      <div\n        className={classNames('flex h-full grow gap-x-5', {\n          'xl:w-full xl:gap-x-7.5': desktopBreakpoint === 'xl',\n          'md:w-full md:gap-x-7.5': desktopBreakpoint === 'md',\n        })}\n      >\n        <a\n          data-testid={`Cart-Item${index ? `-${index}` : ''}-Image-Link`}\n          href={url}\n          target=\"_blank\"\n          rel=\"noreferrer\"\n          className={classNames('shrink-0 rounded-[10px] bg-grey-100', {\n            'max-xl:h-[110px] max-xl:w-[110px] xl:w-[250px]':\n              desktopBreakpoint === 'xl',\n            'max-md:h-[110px] max-md:w-[110px] md:w-[250px]':\n              desktopBreakpoint === 'md',\n          })}\n        >\n          <Image\n            dataTestId={`Cart-Item${index ? `-${index}` : ''}-Image`}\n            image={thumbnail}\n            imageClasses=\"object-contain h-full rounded-[10px]\"\n          />\n        </a>\n\n        <div\n          className={classNames(\n            'flex w-full min-w-0 flex-col gap-y-5 py-2.5 pr-2.5',\n            {\n              'xl:justify-between xl:gap-y-4 xl:py-5':\n                desktopBreakpoint === 'xl',\n              'md:justify-between md:gap-y-4 md:py-5':\n                desktopBreakpoint === 'md',\n            }\n          )}\n        >\n          <div>\n            {lineItemTag && (\n              <div\n                className={classNames('hidden', {\n                  'xl:mb-[0.9375rem] xl:flex': desktopBreakpoint === 'xl',\n                  'md:mb-[0.9375rem] md:flex': desktopBreakpoint === 'md',\n                })}\n                data-testid={`Cart-Item${index ? `-${index}` : ''}-Tag-Desktop`}\n              >\n                <div className=\"flex items-center gap-x-[0.4375rem] rounded-[100px] bg-grey-100 py-1 pl-[0.4375rem] pr-4\">\n                  <Icon name={lineItemTag.icon} colorClassName=\"text-yellow\" />\n\n                  <p className=\"body-two\">{lineItemTag.label}</p>\n                </div>\n              </div>\n            )}\n\n            <p\n              data-testid={`Cart-Item${index ? `-${index}` : ''}-Stock-Status`}\n              className={classNames(\n                'mb-[0.3125rem] text-grey-600',\n                isMobile ? 'body-four' : 'body-three body-three--bold',\n                {\n                  'text-red-100':\n                    stockStatus === ProductStockStatusEnum.OutOfStock,\n                  'xl:mb-1.5': desktopBreakpoint === 'xl',\n                  'md:mb-1.5': desktopBreakpoint === 'md',\n                }\n              )}\n            >\n              {stockStatusLabel}\n            </p>\n\n            <a\n              href={url}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n              data-testid={`Cart-Item${index ? `-${index}` : ''}-Name`}\n              className={classNames('inline-block w-full', {\n                'xl:w-[45%]': desktopBreakpoint === 'xl',\n                'md:w-[45%]': desktopBreakpoint === 'md',\n              })}\n            >\n              <p\n                className={classNames(\n                  'line-clamp-3 w-full break-words',\n                  isMobile ? 'body-one' : 'h6',\n                  {\n                    'xl:line-clamp-2': desktopBreakpoint === 'xl',\n                    'md:line-clamp-2': desktopBreakpoint === 'md',\n                  }\n                )}\n              >\n                {displayName}\n              </p>\n            </a>\n          </div>\n\n          <div\n            className={classNames('flex flex-col-reverse gap-5', {\n              'xl:flex-row xl:items-end xl:justify-between':\n                desktopBreakpoint === 'xl',\n              'md:flex-row md:items-end md:justify-between':\n                desktopBreakpoint === 'md',\n            })}\n          >\n            <div\n              className={classNames('flex items-center gap-x-2.5', {\n                'xl:gap-x-5': desktopBreakpoint === 'xl',\n                'md:gap-x-5': desktopBreakpoint === 'md',\n              })}\n              data-testid={`Cart-Item${\n                index ? `-${index}` : ''\n              }-Quantity-Selector`}\n            >\n              <p className={isMobile ? 'body-two' : 'h6'}>{quantityLabel}</p>\n\n              {!isFreeItem ? (\n                <div className=\"relative\">\n                  <select\n                    aria-label=\"Quantity selector\"\n                    disabled={stockStatus === ProductStockStatusEnum.OutOfStock}\n                    value={selectedQuantity}\n                    onChange={(ev) => {\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                        <option key={entryValue} value={entryValue}>\n                          {entryLabel}\n                        </option>\n                      )\n                    )}\n                  </select>\n\n                  <div className=\"pointer-events-none absolute right-[0.8125rem] top-0 z-10 flex h-full items-center\">\n                    <Icon\n                      name=\"caret_down\"\n                      {...(stockStatus === ProductStockStatusEnum.OutOfStock\n                        ? { colorClassName: 'text-grey-line' }\n                        : {})}\n                    />\n                  </div>\n                </div>\n              ) : (\n                <span className={classNames(isMobile ? 'body-two' : 'h6')}>\n                  {selectedQuantity}\n                </span>\n              )}\n            </div>\n\n            <div\n              className={classNames('flex flex-col gap-y-[0.3125rem]', {\n                'xl:items-end xl:gap-y-px': desktopBreakpoint === 'xl',\n                'md:items-end md:gap-y-px': desktopBreakpoint === 'md',\n                'md:ml-auto': isFreeItem,\n              })}\n            >\n              <div className=\"flex items-end gap-x-2.5\">\n                {isDiscounted && (\n                  <p\n                    data-testid={`Cart-Item${\n                      index ? `-${index}` : ''\n                    }-Full-Price`}\n                    className={classNames(\n                      'line-through',\n                      isMobile\n                        ? 'body-one text-grey-450'\n                        : 'text-base font-light leading-24'\n                    )}\n                  >\n                    {placedPrice}\n                  </p>\n                )}\n\n                <p\n                  data-testid={`Cart-Item${\n                    index ? `-${index}` : ''\n                  }-Final-Price`}\n                  className={classNames(\n                    isMobile ? 'body-one body-one--bold' : 'h6'\n                  )}\n                >\n                  {discountedPrice}\n                </p>\n              </div>\n\n              {isDiscounted && (\n                <div\n                  className=\"flex items-center gap-x-[0.3125rem]\"\n                  data-testid={`Cart-Item${\n                    index ? `-${index}` : ''\n                  }-Saved-Amount`}\n                >\n                  <div className=\"h-1.5 w-1.5 rounded-full bg-yellow\" />\n\n                  <p className=\"body-three body-three--bold\">\n                    {amountSaveLabel.replace('{0}', amountSaved)}\n                  </p>\n                </div>\n              )}\n\n              {amountLabels\n                ?.filter((amountLabel) => amountLabel)\n                .map((amountLabel) => (\n                  <p\n                    key={amountLabel}\n                    className=\"body-four text-grey-450\"\n                    data-testid=\"Cart-Item-Amount-Label\"\n                  >\n                    {amountLabel}\n                  </p>\n                ))}\n            </div>\n          </div>\n        </div>\n      </div>\n\n      {itemNotifications.length > 0 && (\n        <div\n          className={classNames('mt-7.5', {\n            'xl:mt-5': desktopBreakpoint === 'xl',\n            'md:mt-5': desktopBreakpoint === 'md',\n          })}\n        >\n          <BasketNotifications\n            notifications={itemNotifications}\n            desktopBreakpoint=\"xl\"\n            isContentExpandable\n            showMoreLabel={showMoreLabel}\n            showLessLabel={showLessLabel}\n            dataTestId={`Cart-Item${index ? `-${index}` : ''}-Notifications`}\n          />\n        </div>\n      )}\n    </motion.div>\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<ICartSizeState>((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":""}