{"version":3,"file":"react/js/main-6f6372a2.93d7c34d5748219a255b.js","mappings":"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","sources":["webpack:///./src/pages/sections/cart/components/AddToCartSnack.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemFooterTextItem.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemHeader.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemRowImage.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemProductDisplay.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemActions.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemQuantity.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemRow.tsx","webpack:///./src/pages/sections/cart/components/CartGridItemTextInfo.tsx","webpack:///./src/pages/sections/cart/components/CartStatusLinkRowItem.tsx","webpack:///./src/pages/sections/cart/components/CartStatusLink.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { useEffect } from 'react';\r\nimport { Box, Button, Snackbar, Theme, Typography, useTheme } from '@mui/material';\r\nimport { IRestApiProductDTO } from '../../../../stores/api/Generated/Entities/RestApiProductDTO';\r\nimport { notNullOrUndefined, notNullOrUndefinedOrEmpty } from '../../../../utilities/Utils';\r\n\r\nexport interface IAddToCartSnackProps\r\n{\r\n product: IRestApiProductDTO | null;\r\n quantity: number;\r\n open: boolean;\r\n duration?: number;\r\n notifyClosed?: () => void;\r\n onGoToCart: () => void;\r\n}\r\n\r\nconst AddToCartSnack: React.FC = (props: IAddToCartSnackProps = {\r\n product: null,\r\n quantity: 0,\r\n open: false,\r\n duration: 0,\r\n onGoToCart: () => {}\r\n}) =>\r\n{\r\n const theme: Theme = useTheme();\r\n\r\n const [ currentProduct, setCurrentProduct ] = React.useState(null);\r\n const [ currentProductName, setCurrentProductName ] = React.useState('');\r\n const [ isOpen, setIsOpen ] = React.useState(false);\r\n\r\n useEffect(() =>\r\n {\r\n if (notNullOrUndefinedOrEmpty(props.product?.name))\r\n {\r\n setCurrentProduct(props.product);\r\n setCurrentProductName(props.product!.name!);\r\n }\r\n\r\n }, [ props.product ]);\r\n\r\n useEffect(() =>\r\n {\r\n setIsOpen(false);\r\n\r\n if (notNullOrUndefinedOrEmpty(currentProductName) && props.open)\r\n {\r\n setIsOpen(true);\r\n }\r\n }, [ currentProductName, props.open ]);\r\n\r\n const openDuration = notNullOrUndefined(props.duration) && props.duration! > 3000\r\n ? props.duration\r\n : 3000;\r\n\r\n const handleClose = (event: React.SyntheticEvent | Event, reason?: string) =>\r\n {\r\n if (props.notifyClosed)\r\n {\r\n props.notifyClosed();\r\n }\r\n\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n Added { props.quantity } '{ currentProductName }' item(s) to the cart\r\n \r\n\r\n \r\n Go to Cart\r\n \r\n\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AddToCartSnack;\r\n","import * as React from 'react';\r\nimport { Fragment } from 'react';\r\nimport { Grid, Typography, Theme, useTheme } from '@mui/material';\r\n\r\nexport interface ICartGridItemFooterTextItemProps\r\n{\r\n spacing: number;\r\n text: string;\r\n variant?: 'h5' | 'h6';\r\n align?: 'left' | 'right';\r\n isBold?: 'bold';\r\n isStrikeThrough?: boolean;\r\n color?: string;\r\n}\r\n\r\nconst CartGridItemFooterTextItem: React.FC = (props: ICartGridItemFooterTextItemProps) =>\r\n{\r\n const theme: Theme = useTheme();\r\n\r\n const align = props.align || 'left';\r\n const isBold = props.isBold || 'normal';\r\n const color = props.color || 'inherit';\r\n const variant = props.variant || 'h5';\r\n\r\n return (\r\n \r\n \r\n \r\n { props.text }\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CartGridItemFooterTextItem;\r\n","import * as React from 'react';\r\nimport { Fragment, useEffect } from 'react';\r\n\r\nimport { Grid, Theme, Typography, styled, useTheme } from '@mui/material';\r\nimport { notNullOrUndefinedOrEmpty } from '../../../../utilities/Utils';\r\n\r\nexport interface ICartGridItemHeaderProps\r\n{\r\n spacing: number;\r\n value?: string;\r\n empty?: boolean;\r\n align?: 'left' | 'center' | 'right';\r\n}\r\n\r\nconst StyledCartGridItemTypography = styled(Typography)(({ theme }) => ({\r\n borderBottom: `1px solid ${theme.palette.tertiary.dark}`,\r\n margin: '0 2px',\r\n}));\r\n\r\nconst CartGridItemHeader: React.FC = (props: ICartGridItemHeaderProps = { value: undefined, spacing: 1 }) =>\r\n{\r\n const theme: Theme = useTheme();\r\n\r\n const [ currentSpacing, setCurrentSpacing ] = React.useState(1);\r\n\r\n useEffect(() =>\r\n {\r\n let spacing = props.spacing;\r\n\r\n if (spacing < 1)\r\n {\r\n spacing = 1;\r\n }\r\n\r\n setCurrentSpacing(props.spacing);\r\n\r\n }, [ props.spacing ]);\r\n\r\n const textAlign = props.align || 'left';\r\n\r\n const getTypography = () =>\r\n {\r\n if (notNullOrUndefinedOrEmpty(props.value))\r\n {\r\n return (\r\n { props.value!.trim() }\r\n )\r\n\r\n }\r\n\r\n if (props.empty)\r\n {\r\n return (\r\n  \r\n )\r\n }\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n { getTypography() }\r\n \r\n );\r\n}\r\n\r\nexport default CartGridItemHeader;","import * as React from 'react';\r\nimport { Box, Popper, Paper } from '@mui/material';\r\nimport { ICartItem } from '../../../../stores/slices/CartSlice';\r\nimport { Fragment } from 'react';\r\nimport { IRestApiProduct } from '../../../../stores/api/Generated/Entities/RestApiProduct';\r\nimport { IRestApiProductDTO } from '../../../../stores/api/Generated/Entities/RestApiProductDTO';\r\n\r\ninterface CartGridItemRowImageProps\r\n{\r\n cartItem: ICartItem;\r\n}\r\n\r\nconst CartGridItemRowImage: React.FC = ({ cartItem }) =>\r\n{\r\n const [ anchorEl, setAnchorEl ] = React.useState(null);\r\n\r\n const handlePopoverOpen = (event: React.MouseEvent) =>\r\n {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handlePopoverClose = () =>\r\n {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const getThumbnailImageUrl = (product: IRestApiProductDTO, width: number, height: number) =>\r\n {\r\n if ((width === 0 &&\r\n height === 0) ||\r\n width < 0 || height < 0)\r\n {\r\n throw new Error(\"Either width or height must be supplied and they must be greater than 0.\");\r\n }\r\n\r\n return `/api/operations/Images/GetImage/${product.bannerImageId!}?width=${width}&height=${height}&resizeType=Crop`\r\n\r\n };\r\n\r\n const getPopperImageUrl = (product: IRestApiProductDTO, width: number) =>\r\n {\r\n if (width === 0 || width < 0)\r\n {\r\n throw new Error(\"Width must be supplied and it must be greater than 0.\");\r\n }\r\n\r\n let url = `/api/operations/Images/GetImage/${product.bannerImageId!}`\r\n\r\n if (width !== 0)\r\n {\r\n url += `?width=${width}`;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n\r\n const getProductAltText = (cartItem: ICartItem) =>\r\n {\r\n return `Image of '${cartItem.selectedProduct.name}': ${cartItem.selectedProduct.title}`;\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default CartGridItemRowImage;\r\n","import * as React from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Grid, Link, Box, Tooltip, Zoom, Typography, useTheme } from '@mui/material';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport { ICartItem } from '../../../../stores/slices/CartSlice';\r\nimport {slugify, toCamelCase} from '../../../../utilities/StringUtils';\r\nimport CartGridItemRowImage from './CartGridItemRowImage';\r\n\r\ninterface CartGridItemProductDisplayProps\r\n{\r\n spacing: number;\r\n cartItem: ICartItem;\r\n}\r\n\r\nconst CartGridItemProductDisplay: React.FC = ({ spacing, cartItem }) =>\r\n{\r\n const theme = useTheme();\r\n\r\n const navigate = useNavigate();\r\n\r\n const handleProductClick = (cartItem: ICartItem) =>\r\n {\r\n const productId = cartItem.selectedProduct.id!;\r\n const colorId = cartItem.selectedColor.id!;\r\n const productName = cartItem.selectedProduct.name!;\r\n\r\n navigate(`/products/${slugify(productName)}`, {\r\n state: {\r\n productId: productId,\r\n colorId: colorId,\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n handleProductClick(cartItem) }>\r\n { cartItem.selectedProduct.name }\r\n \r\n\r\n \r\n \r\n Color: { cartItem.selectedColor.name }\r\n \r\n }\r\n slotProps={ {\r\n tooltip: {\r\n sx: {\r\n maxWidth: 'none',\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n } }>\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CartGridItemProductDisplay;\r\n","import * as React from 'react';\r\nimport { Grid, Checkbox, IconButton } from '@mui/material';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport { ICartItem } from '../../../../stores/slices/CartSlice';\r\nimport { useCart } from '../../../../providers/cart/CartProvider';\r\nimport AudioSoundPlayer from '../../../../audio/AudioSoundPlayer';\r\n\r\ninterface CartGridItemActionsProps\r\n{\r\n spacing: number;\r\n cartItem: ICartItem;\r\n}\r\n\r\nconst CartGridItemActions: React.FC = ({ spacing, cartItem }) =>\r\n{\r\n const audioPlayer = AudioSoundPlayer.getInstance();\r\n\r\n const { removeItemFromCart, markItemInCart, unmarkItemInCart } = useCart();\r\n\r\n const handleProductChecked = (item: ICartItem) =>\r\n {\r\n if (item.checked)\r\n {\r\n unmarkItemInCart(item.id!);\r\n\r\n return;\r\n }\r\n\r\n markItemInCart(item.id!);\r\n };\r\n\r\n const handleRemoveItem = () =>\r\n {\r\n removeItemFromCart(cartItem.id!);\r\n\r\n audioPlayer.playSound('removeFromCart');\r\n };\r\n\r\n return (\r\n \r\n handleProductChecked(cartItem) } />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CartGridItemActions;\r\n","import * as React from 'react';\r\nimport { Grid, TextField } from '@mui/material';\r\nimport { ICartItem } from '../../../../stores/slices/CartSlice';\r\nimport { useCart } from '../../../../providers/cart/CartProvider';\r\nimport { useEffect } from 'react';\r\n\r\ninterface CartGridItemQuantityProps\r\n{\r\n spacing: number;\r\n cartItem: ICartItem;\r\n}\r\n\r\nconst CartGridItemQuantity: React.FC = ({ spacing, cartItem }) =>\r\n{\r\n const { setItemQuantity } = useCart();\r\n\r\n const [ currQuantity, setCurrQuantity ] = React.useState(cartItem.quantity);\r\n const [ maxQuantity, setMaxQuantity ] = React.useState(cartItem.selectedProduct!.stockQuantity!);\r\n\r\n useEffect(() =>\r\n {\r\n setMaxQuantity(cartItem.selectedProduct!.stockQuantity!);\r\n\r\n }, [ cartItem.selectedProduct.stockQuantity ]);\r\n\r\n useEffect(() =>\r\n {\r\n let quantity: number = cartItem.quantity;\r\n\r\n if (quantity < 1)\r\n {\r\n quantity = 1;\r\n }\r\n\r\n if (quantity > maxQuantity) \r\n {\r\n quantity = maxQuantity;\r\n }\r\n\r\n setCurrQuantity(quantity);\r\n\r\n }, [ maxQuantity, cartItem.quantity ]);\r\n\r\n const handleQuantityChange = (e: React.ChangeEvent) =>\r\n {\r\n const quantity: number = parseInt(e.target.value);\r\n\r\n if (quantity >= 1 && quantity <= maxQuantity)\r\n {\r\n setItemQuantity(cartItem.id!, quantity);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CartGridItemQuantity;\r\n","import * as React from 'react';\r\nimport { Grid, Theme, useTheme } from '@mui/material';\r\nimport { ICartItem } from '../../../../stores/slices/CartSlice';\r\nimport CartGridItemTextInfo from './CartGridItemTextInfo';\r\nimport CartGridItemProductDisplay from './CartGridItemProductDisplay';\r\nimport CartGridItemActions from './CartGridItemActions';\r\nimport CartGridItemQuantity from './CartGridItemQuantity';\r\nimport { getFormattedPrice } from '../Utilities';\r\n\r\ninterface CartGridItemRowProps\r\n{\r\n cartItem: ICartItem;\r\n index: number;\r\n checked: boolean;\r\n}\r\n\r\nconst CartGridItemRow: React.FC = ({ cartItem, index }) =>\r\n{\r\n const theme: Theme = useTheme();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default CartGridItemRow;\r\n","import * as React from 'react';\r\nimport { Grid, Typography, useTheme, Theme } from '@mui/material';\r\nimport { Variant } from '@mui/material/styles/createTypography';\r\nimport { Fragment, useEffect } from 'react';\r\n\r\nimport { isNullOrUndefined, isNullOrUndefinedOrEmpty, notNullOrUndefined, notNullOrUndefinedOrEmpty } from '../../../../utilities/Utils';\r\n\r\nexport interface CartGridItemTextInfoProps\r\n{\r\n spacing: number;\r\n variant?: Variant;\r\n value?: string | number;\r\n boldText?: boolean;\r\n textColor?: string;\r\n align?: 'left' | 'center' | 'right';\r\n}\r\n\r\nconst CartGridItemTextInfo: React.FC = (props: CartGridItemTextInfoProps = { variant: 'body2', spacing: 1, align: 'left' }) =>\r\n{\r\n const theme: Theme = useTheme();\r\n\r\n const textVariant: Variant = props.value == null ? 'body2' : props.variant!;\r\n const textWeight = props.boldText ? 'bold' : 'normal';\r\n const textColor = props.textColor ?? theme.palette.text.primary;\r\n const textAlign = props.align || 'left';\r\n\r\n const [ currentValue, setCurrentValue ] = React.useState(undefined);\r\n\r\n useEffect(() =>\r\n {\r\n if (notNullOrUndefined(props?.value))\r\n {\r\n if (typeof props.value === 'string' && !isNullOrUndefinedOrEmpty(props.value))\r\n {\r\n setCurrentValue(props.value);\r\n }\r\n\r\n if (typeof props.value === 'number')\r\n {\r\n setCurrentValue(props.value);\r\n }\r\n\r\n }\r\n else\r\n {\r\n setCurrentValue(undefined);\r\n }\r\n }, [ props.value ]);\r\n\r\n const getTypographySection = () =>\r\n {\r\n if (isNullOrUndefined(props.value))\r\n {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n { currentValue }\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n { getTypographySection() }\r\n \r\n );\r\n};\r\n\r\nexport default CartGridItemTextInfo;\r\n","import React, { Fragment } from 'react';\r\nimport { Box, ListItem, ListItemText, ListItemSecondaryAction, IconButton, Tooltip, Divider, Typography, Zoom, useTheme } from '@mui/material';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport { ICartItem } from '../../../../stores/slices/CartSlice';\r\nimport { useCart } from '../../../../providers/cart/CartProvider';\r\nimport { getFormattedPrice } from '../Utilities';\r\n\r\ninterface CartStatusLinkRowItemProps\r\n{\r\n cartItem: ICartItem;\r\n index: number;\r\n isLastItem: boolean;\r\n}\r\n\r\nconst CartStatusLinkRowItem: React.FC = ({ cartItem, index, isLastItem }) =>\r\n{\r\n const theme = useTheme();\r\n\r\n const { removeItemFromCart } = useCart();\r\n\r\n const handleRemoveItem = (id: ICartItem[ 'id' ]) =>\r\n {\r\n removeItemFromCart(id);\r\n };\r\n\r\n const getTooltipText = (cartItem: ICartItem) =>\r\n {\r\n const isPlural = cartItem.quantity > 1 ? 'items' : 'item';\r\n return (\r\n \r\n Remove { cartItem.quantity } { cartItem.selectedProduct.name } { isPlural } ({ cartItem.selectedColor.name }) from Cart\r\n \r\n );\r\n };\r\n\r\n return (\r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n { cartItem.selectedProduct.name }\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n Qty: { cartItem.quantity }\r\n \r\n\r\n \r\n Price: { getFormattedPrice(cartItem.selectedProduct.liquidationPrice! * cartItem.quantity) }\r\n \r\n\r\n \r\n\r\n { !isLastItem && }\r\n\r\n \r\n }\r\n />\r\n\r\n \r\n \r\n { getTooltipText(cartItem) }\r\n \r\n }\r\n slotProps={ {\r\n tooltip: {\r\n sx: {\r\n maxWidth: 'none',\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n } }>\r\n\r\n handleRemoveItem(cartItem.id) }>\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default CartStatusLinkRowItem;\r\n","import React, { Fragment, useEffect, useRef, useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Box, Popover, Paper, Badge, IconButton, Typography, Button, List, Divider, Theme, useTheme, Stack } from '@mui/material';\r\n\r\nimport ShoppingCartIcon from '@mui/icons-material/ShoppingCart';\r\n\r\nimport { useCart } from '../../../../providers/cart/CartProvider';\r\nimport { getFormattedPrice } from '../Utilities';\r\nimport { useCartCheckout } from '../../../../providers/cart/CartCheckoutProvider';\r\n\r\nimport CartStatusLinkRowItem from './CartStatusLinkRowItem';\r\n\r\nconst CartStatusLink: React.FC = () =>\r\n{\r\n const theme: Theme = useTheme();\r\n\r\n const navigate = useNavigate();\r\n\r\n const { cartItems, cartQuantity, hasItemsinCart, cartTotal } = useCart();\r\n const { start } = useCartCheckout();\r\n\r\n const timeoutRef = useRef(null);\r\n const isMouseOverPopoverRef = useRef(false);\r\n const hoverTimeoutRef = useRef(null);\r\n\r\n const [ anchorEl, setAnchorEl ] = useState(null);\r\n const [ isPopoverOpen, setIsPopoverOpen ] = useState(false);\r\n\r\n useEffect(() =>\r\n {\r\n return () =>\r\n {\r\n clearAutoCloseInterval(); // Cleanup interval on unmount\r\n };\r\n }, []);\r\n\r\n const clearAutoCloseInterval = () =>\r\n {\r\n if (timeoutRef.current)\r\n {\r\n clearInterval(timeoutRef.current);\r\n timeoutRef.current = null;\r\n }\r\n };\r\n\r\n const handleMouseEnter = () =>\r\n {\r\n isMouseOverPopoverRef.current = true;\r\n };\r\n\r\n const handleMouseOver = () =>\r\n {\r\n isMouseOverPopoverRef.current = true;\r\n };\r\n\r\n const handleMouseLeave = () =>\r\n {\r\n isMouseOverPopoverRef.current = false;\r\n };\r\n\r\n const handlePopoverOpen = (event: React.MouseEvent) =>\r\n {\r\n // Cancel existing timeout for opening\r\n if (hoverTimeoutRef.current)\r\n {\r\n clearTimeout(hoverTimeoutRef.current);\r\n hoverTimeoutRef.current = null;\r\n }\r\n\r\n setAnchorEl(event.currentTarget);\r\n setIsPopoverOpen(true);\r\n clearAutoCloseInterval(); // Clear any existing interval\r\n\r\n // Start interval to check mouse state and close if necessary\r\n timeoutRef.current = setInterval(() =>\r\n {\r\n console.log('Checking mouse state, isMouseOverPopover:', isMouseOverPopoverRef.current);\r\n\r\n if (!isMouseOverPopoverRef.current)\r\n {\r\n setIsPopoverOpen(false);\r\n setAnchorEl(null);\r\n clearAutoCloseInterval(); // Clear interval once popover is closed\r\n window.removeEventListener('mousemove', handleWindowMouseMove); // Remove window event listener\r\n }\r\n }, 3000); // Check every 3 seconds\r\n\r\n // Add window-level event listeners\r\n window.addEventListener('mousemove', handleWindowMouseMove);\r\n };\r\n\r\n const handleIconButtonMouseEnter = (event: React.MouseEvent) =>\r\n {\r\n // Start a timeout to open the popover after 2 seconds\r\n hoverTimeoutRef.current = setTimeout(() =>\r\n {\r\n handlePopoverOpen(event);\r\n }, 2000);\r\n };\r\n\r\n const handleIconButtonMouseLeave = () =>\r\n {\r\n // Clear the hover timeout if the mouse leaves early\r\n if (hoverTimeoutRef.current)\r\n {\r\n clearTimeout(hoverTimeoutRef.current);\r\n\r\n hoverTimeoutRef.current = null;\r\n }\r\n };\r\n\r\n // Handle mouse move events at the window level\r\n const handleWindowMouseMove = (event: MouseEvent) =>\r\n {\r\n const popover = anchorEl;\r\n\r\n if (!popover)\r\n {\r\n return;\r\n }\r\n\r\n const rect = popover.getBoundingClientRect();\r\n\r\n const isMouseInsidePopover = (\r\n event.clientX >= rect.left &&\r\n event.clientX <= rect.right &&\r\n event.clientY >= rect.top &&\r\n event.clientY <= rect.bottom\r\n );\r\n\r\n // Only update ref when there's a change to avoid unnecessary updates\r\n if (isMouseOverPopoverRef.current !== isMouseInsidePopover)\r\n {\r\n isMouseOverPopoverRef.current = isMouseInsidePopover;\r\n }\r\n };\r\n\r\n const handlePopoverClose = () =>\r\n {\r\n clearAutoCloseInterval(); // Clear interval on manual close\r\n\r\n window.removeEventListener('mousemove', handleWindowMouseMove); // Remove window event listener\r\n\r\n setAnchorEl(null);\r\n setIsPopoverOpen(false);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleGoToCart = () =>\r\n {\r\n navigate('cart/showCart');\r\n handlePopoverClose();\r\n };\r\n\r\n const handleCheckOut = () =>\r\n {\r\n start();\r\n navigate('cart/checkOut');\r\n handlePopoverClose();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n Cart Summary\r\n \r\n\r\n \r\n\r\n { cartItems.length > 0 ? (\r\n \r\n { cartItems.slice(0, 4).map((item, index) => (\r\n \r\n )) }\r\n { cartItems.length > 4 && (\r\n \r\n and { cartItems.length - 4 } more items...\r\n \r\n ) }\r\n \r\n ) : (\r\n \r\n Your cart is empty!\r\n \r\n ) }\r\n\r\n\r\n { hasItemsinCart && cartItems.length > 0 && (\r\n <>\r\n \r\n\r\n \r\n \r\n \r\n Total:\r\n \r\n \r\n { getFormattedPrice(cartTotal) }\r\n \r\n \r\n \r\n \r\n ) }\r\n\r\n { hasItemsinCart && cartItems.length > 0 && (\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n Go to Cart\r\n \r\n\r\n \r\n Check Out\r\n \r\n\r\n \r\n\r\n \r\n ) }\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default CartStatusLink;\r\n"],"names":["props","product","quantity","open","duration","onGoToCart","theme","currentProduct","setCurrentProduct","currentProductName","setCurrentProductName","isOpen","setIsOpen","useEffect","name","openDuration","anchorOrigin","vertical","horizontal","autoHideDuration","onClose","event","reason","notifyClosed","display","flexDirection","alignItems","textAlign","sx","margin","backgroundColor","palette","secondary","light","color","contrastText","padding","boxShadow","shadows","borderRadius","variant","onClick","style","marginTop","spacing","align","isBold","Fragment","item","xs","fontWeight","textDecoration","isStrikeThrough","text","StyledCartGridItemTypography","borderBottom","tertiary","dark","value","undefined","currentSpacing","setCurrentSpacing","primary","trim","empty","cartItem","anchorEl","setAnchorEl","Boolean","getProductAltText","selectedProduct","title","src","width","height","Error","bannerImageId","getThumbnailImageUrl","alt","marginRight","onMouseEnter","currentTarget","onMouseLeave","Popper","placement","disablePortal","modifiers","enabled","options","altBoundary","rootBoundary","altAxis","tether","offset","Paper","elevation","maxWidth","overflow","url","getPopperImageUrl","useTheme","navigate","Grid","Box","justifyContent","Link","component","productId","id","colorId","selectedColor","productName","state","handleProductClick","flexGrow","Tooltip","arrow","TransitionComponent","Zoom","whiteSpace","fontSize","slotProps","tooltip","Circle","hexCode","border","audioPlayer","AudioSoundPlayer","A","getInstance","removeItemFromCart","markItemInCart","unmarkItemInCart","Checkbox","checked","IconButton","playSound","Delete","setItemQuantity","currQuantity","setCurrQuantity","maxQuantity","setMaxQuantity","stockQuantity","TextField","type","onChange","e","parseInt","target","inputProps","min","max","size","index","container","columns","CartGridItemTextInfo","liquidationPrice","regularPrice","textColor","error","main","boldText","textVariant","textWeight","currentValue","setCurrentValue","isLastItem","ListItem","ListItemText","Typography","Divider","ListItemSecondaryAction","isPlural","getTooltipText","edge","handleRemoveItem","cartItems","cartQuantity","hasItemsinCart","cartTotal","start","timeoutRef","useRef","isMouseOverPopoverRef","hoverTimeoutRef","useState","isPopoverOpen","setIsPopoverOpen","clearAutoCloseInterval","current","clearInterval","handlePopoverOpen","clearTimeout","setInterval","window","removeEventListener","handleWindowMouseMove","addEventListener","rect","getBoundingClientRect","isMouseInsidePopover","clientX","left","right","clientY","top","bottom","handlePopoverClose","secondaryLightVariant","cursor","commonColors","Gray","H200","Badge","badgeContent","ShoppingCart","Popover","transformOrigin","paper","minWidth","onMouseOver","background","length","List","dense","slice","map","fontStyle","default","Stack","direction","Button","fullWidth"],"sourceRoot":""}