{"version":3,"file":"static/js/06c757b900748f03307d.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/vinhuset-adventureworks/views/components/product.component.tsx?af8d"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React, { useState } from 'react';\r\nimport classnames from 'classnames';\r\nimport { reaction } from 'mobx';\r\nimport { IProductsDimensionsAvailabilities } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n //AddToCartComponent,\r\n //AddToOrderTemplateComponent,\r\n IPriceComponentResources,\r\n ISwatchItem,\r\n //PriceComponent,\r\n ProductComponentSwatchComponent,\r\n RatingComponent,\r\n IOrderTemplateNameDialogResources,\r\n IAddToOrderTemplateDialogResources,\r\n IItemAddedToOrderTemplateDialogResources,\r\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources\r\n} from '@msdyn365-commerce/components';\r\nimport { PriceComponent } from './price.component';\r\nimport {\r\n getCatalogId,\r\n IAny,\r\n IComponent,\r\n IComponentProps,\r\n ICoreContext,\r\n IGeneric,\r\n IGridSettings,\r\n IImageData,\r\n IImageSettings,\r\n Image,\r\n msdyn365Commerce\r\n} from '@msdyn365-commerce/core';\r\nimport {\r\n AttributeSwatch,\r\n AttributeValue,\r\n Customer,\r\n ProductDimension,\r\n ProductList,\r\n ProductPrice,\r\n ProductSearchResult,\r\n SimpleProduct,\r\n UnitOfMeasureConversion\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n ArrayExtensions,\r\n convertDimensionTypeToProductDimensionType,\r\n Dictionary,\r\n DimensionTypes,\r\n generateImageUrl,\r\n getProductPageUrlSync,\r\n IDimensionsApp,\r\n StringExtensions,\r\n OrderTemplate\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n format,\r\n Tooltip,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n ITelemetryContent, Node,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { AddToCartComponent, IAddToCartToastResources } from '../../../../modules/vinhuset-buybox/common/add-to-cart.component';\r\nimport { toast } from '../../../../components/toast/toast';\r\nimport AddToOrderTemplateComponent from './addtoordertemplate.component';\r\nimport PQueue from 'p-queue';\r\nimport { IProductInventoryInformation } from '../../../../components/common/product-inventory-utils';\r\nimport { ProductSearchResultExt } from '../../../../modules/vinhuset-search-result-container/components';\r\nimport { humanizeUnitOfMeasure, UnitOfMeasure } from '../../../../components/unit-of-measure';\r\nimport { SimpleProductExt } from '../../../../shared-utils/types';\r\nimport DiscountBadge from '../../../../components/discount-badge/discount-badge';\r\nimport QuantityInput from '../../../../components/common/quantity-input';\r\nimport { addInventoryVisibilityInfo } from '../../../../shared-utils/string-utils';\r\nimport { multiplyPriceBy } from '../../../../shared-utils/price-utils';\r\nimport QuantityBreakoffSelector from '../../../../components/common/quantity-breakoff-selector';\r\n\r\nexport interface IProductComponentProps extends IComponentProps<{\r\n cart?: ICartState,\r\n product?: ProductSearchResultExt,\r\n simpleProduct?: SimpleProduct,\r\n orderTemplates?: OrderTemplate[],\r\n customerInformation?: Customer,\r\n unitConversions?: UnitOfMeasureConversion[]\r\n}> {\r\n className?: string;\r\n resources?: IProductComponentResources;\r\n imageSettings?: IImageSettings;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n ratingAriaLabel?: string;\r\n ratingCountAriaLabel?: string;\r\n depositSuffixText?: string;\r\n pricePerLiterText?: string;\r\n pricePerText?: string;\r\n cartQueue?: PQueue;\r\n allowBack?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n quickViewButton?: React.ReactNode;\r\n productComparisonButton?: React.ReactNode;\r\n wishlistButton?: React.ReactNode;\r\n isEnabledProductDescription?: boolean;\r\n isPriceMinMaxEnabled?: boolean;\r\n disableBuyButton?: boolean;\r\n showPrice?: boolean;\r\n userHasAccess?: boolean;\r\n buyAlwaysAdd?: boolean;\r\n priceResources?: IPriceComponentResources;\r\n inventoryLabel?: string;\r\n inventoryStatus?: IProductInventoryInformation;\r\n dimensionAvailabilities?: IProductsDimensionsAvailabilities[];\r\n swatchItemAriaLabel?: string;\r\n addToCartText?: string;\r\n updateCartText?: string,\r\n removeFromCartText?: string;\r\n outOfStockText?: string;\r\n expiredText?: string;\r\n priceErrorText?: string;\r\n toastStrings?: IAddToCartToastResources;\r\n inCartTooltipText?: string;\r\n addToOrderTemplateResources?: IAddToOrderTemplateResources;\r\n onUpdateOrderTemplates?: (orderTemplate?: ProductList) => Promise;\r\n retrieveOrderTemplates?(): Promise;\r\n onBuyValidate?: (product: ProductSearchResultExt, quantity: number) => Promise;\r\n}\r\n\r\nexport interface IProductComponent extends IComponent {\r\n}\r\n\r\nexport interface IProductComponentResources {\r\n expectedInventoryDateWithQuantityText?: string;\r\n expectedInventoryDateText?: string;\r\n}\r\n\r\nexport interface IAddToOrderTemplateResources {\r\n addToOrderTemplateHeader: string;\r\n noOrderTemplatesMessage: string;\r\n noOrderTemplatesDescription: string;\r\n createAnOrderTemplateButtonText: string;\r\n createNewOrderTemplateButtonText: string;\r\n cancelOrderTemplateCreationButtonText: string;\r\n selectTemplatesText: string;\r\n addToTemplateButtonText: string;\r\n lineItemsText: string;\r\n createOrderTemplateHeader: string;\r\n orderTemplateTitle: string;\r\n orderTemplateNameAriaLabel: string;\r\n createOrderTemplateDescription: string;\r\n defaultOrderTemplateName: string;\r\n createOrderTemplateButtonText: string;\r\n cancelNewOrderTemplateCreationButtonText: string;\r\n viewOrderTemplateButtonText: string;\r\n continueShoppingButtonText: string;\r\n itemAddedToOrderTemplateHeaderItemOneText: string;\r\n itemAddedToOrderTemplateHeaderItemFormatText: string;\r\n itemAddedToOrderTemplateHeaderMessageText: string;\r\n priceFree: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n duplicatedProductsHeader: string;\r\n duplicatedProductsDescription: string;\r\n updateQuantityButtonText: string;\r\n cancelDuplicateItemsButtonText: string;\r\n addToOrderTemplateButtonText: string;\r\n addToOrderTemplateButtonTooltip: string;\r\n}\r\n\r\nexport interface BuyValidationResult {\r\n isValid: boolean;\r\n message?: string;\r\n}\r\n\r\nconst PriceComponentActions = {};\r\n\r\n/**\r\n * Gets the product page url from the default swatch selected.\r\n * @param productData - Product card to be rendered.\r\n * @returns The default color swatch selected if any.\r\n */\r\nfunction getDefaultSwatchSelected(coreContext: ICoreContext, productData?: ProductSearchResult): AttributeSwatch | null {\r\n if (!productData || !productData.AttributeValues) {\r\n return null;\r\n }\r\n\r\n const siteContext = coreContext as ICoreContext;\r\n const dimensionToPreSelectInProductCard = siteContext.app.config.dimensionToPreSelectInProductCard;\r\n\r\n const attributeSwatches = productData.AttributeValues.find(\r\n attributeValue => attributeValue.KeyName?.toLocaleLowerCase() === dimensionToPreSelectInProductCard\r\n )?.Swatches;\r\n\r\n if (!ArrayExtensions.hasElements(attributeSwatches)) {\r\n return null;\r\n }\r\n\r\n const defaultSwatch = attributeSwatches.find(item => item.IsDefault === true) ?? attributeSwatches[0];\r\n return defaultSwatch;\r\n}\r\n\r\n/**\r\n * Gets the product image from the default swatch selected.\r\n * @param coreContext - Context of the module using the component.\r\n * @param productData - Product card to be rendered.\r\n * @returns The product card image url.\r\n */\r\nfunction getProductImageUrlFromDefaultSwatch(coreContext: ICoreContext, productData?: ProductSearchResult): string | undefined {\r\n const defaultSwatch = getDefaultSwatchSelected(coreContext, productData);\r\n const swatchProductImageUrls = defaultSwatch?.ProductImageUrls;\r\n if (!ArrayExtensions.hasElements(swatchProductImageUrls)) {\r\n return productData?.PrimaryImageUrl;\r\n }\r\n\r\n return generateImageUrl(swatchProductImageUrls[0], coreContext.request.apiSettings);\r\n}\r\n\r\n/**\r\n * Updates the product url link to product details page.\r\n * @param productDetailsPageUrl - Product page url.\r\n * @param coreContext - Context of the module using the component.\r\n * @param queryString - Querystring to be added to the URL.\r\n * @returns The update product page url.\r\n */\r\nfunction updateProductUrl(productDetailsPageUrl: string, coreContext: ICoreContext, queryString: string): string {\r\n const sourceUrl = new URL(productDetailsPageUrl, coreContext.request.apiSettings.baseUrl);\r\n if (sourceUrl.search) {\r\n sourceUrl.search += `&${queryString}`;\r\n } else {\r\n sourceUrl.search += queryString;\r\n }\r\n\r\n const updatedUrl = new URL(sourceUrl.href);\r\n return updatedUrl.pathname + sourceUrl.search;\r\n}\r\n\r\n/**\r\n * Gets the react node for product unit of measure display.\r\n * @param unitOfMeasure - DefaultUnitOfMeasure property from product.\r\n * @returns The node representing markup for unit of measure component.\r\n */\r\n// @ts-expect-error\r\nfunction renderProductUnitOfMeasure(context: ICoreContext, unitOfMeasure?: string): JSX.Element | null {\r\n if (!unitOfMeasure) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n}\r\n\r\n/**\r\n * Gets the react node for product availability.\r\n * @param inventoryAvailabilityLabel - The product information.\r\n * @returns The node representing markup for product availability.\r\n */\r\nfunction renderProductAvailability(\r\n locale: string,\r\n resources: IProductComponentResources | undefined,\r\n inventoryAvailabilityLabel: string | undefined,\r\n inventoryStatus?: IProductInventoryInformation\r\n): JSX.Element | null {\r\n let availabilityClassName = 'retrieving';\r\n\r\n if (inventoryStatus?.IsProductAvailable) {\r\n availabilityClassName = 'available';\r\n } else if (inventoryStatus?.IsProductAvailable === false) {\r\n availabilityClassName = 'not-available';\r\n }\r\n\r\n if (inventoryStatus?.StockLevelCode === 'ERR') {\r\n availabilityClassName = 'error';\r\n }\r\n\r\n let inventoryStatusText = inventoryStatus?.StockLevelCode === 'ERR'\r\n ? inventoryStatus?.StockLevelLabel || 'ERROR'\r\n : inventoryStatus ? inventoryAvailabilityLabel : <> ;\r\n\r\n if (locale !== 'en-US') {\r\n if (inventoryStatusText === 'Available') {\r\n inventoryStatusText = 'På lager';\r\n } else if (inventoryStatusText === 'Out of stock') {\r\n inventoryStatusText = <> ;\r\n }\r\n }\r\n\r\n const availableQuantity = inventoryStatus?.ProductAvailableQuantity.AvailableQuantity || 0;\r\n\r\n if (typeof inventoryStatusText === 'string') {\r\n inventoryStatusText = format(inventoryStatusText, availableQuantity);\r\n inventoryStatusText = addInventoryVisibilityInfo(\r\n inventoryStatusText,\r\n inventoryStatus,\r\n resources?.expectedInventoryDateWithQuantityText,\r\n resources?.expectedInventoryDateText);\r\n }\r\n\r\n return (\r\n
\r\n
Status:
\r\n
{inventoryStatusText}
\r\n
\r\n );\r\n}\r\n\r\n/**\r\n * Renders product comparison button similar to the quick view button.\r\n * @param productComparisonButton - React element of the button.\r\n * @param product - Current product info.\r\n * @param catalogId - Current catalog.\r\n * @returns React element for the specific product.\r\n */\r\nfunction renderProductComparisonButton(\r\n productComparisonButton: React.ReactNode,\r\n product: ProductSearchResult,\r\n catalogId: number\r\n): JSX.Element | undefined {\r\n return React.cloneElement(productComparisonButton as React.ReactElement, { product, catalogId });\r\n}\r\n\r\n/**\r\n * Gets the product page url from the default swatch selected.\r\n * @param coreContext - Context of the module using the component.\r\n * @param productUrl - Product page url for the product card.\r\n * @param productData - Product card to be rendered.\r\n * @returns The product card image url.\r\n */\r\nfunction getProductPageUrlFromDefaultSwatch(\r\n coreContext: ICoreContext,\r\n productUrl: string,\r\n productData?: ProductSearchResult\r\n): string | undefined {\r\n const defaultSwatch = getDefaultSwatchSelected(coreContext, productData);\r\n if (!defaultSwatch?.SwatchValue) {\r\n return productUrl;\r\n }\r\n\r\n const siteContext = coreContext as ICoreContext;\r\n const dimensionToPreSelectInProductCard = siteContext.app.config.dimensionToPreSelectInProductCard;\r\n\r\n const queryStringEncoded = encodeURIComponent(defaultSwatch.SwatchValue);\r\n const queryString = `${dimensionToPreSelectInProductCard}=${queryStringEncoded}`;\r\n return updateProductUrl(productUrl, coreContext, queryString);\r\n}\r\n\r\nfunction generateAddToOrderTemplateDialogResources(resources: IAddToOrderTemplateResources | undefined): IAddToOrderTemplateDialogResources {\r\n return {\r\n addToOrderTemplateHeader: resources?.addToOrderTemplateHeader || 'addToOrderTemplateHeader',\r\n\r\n noOrderTemplatesMessage: resources?.noOrderTemplatesMessage || 'noOrderTemplatesMessage',\r\n noOrderTemplatesDescription: resources?.noOrderTemplatesDescription || 'noOrderTemplatesDescription',\r\n\r\n createAnOrderTemplateButtonText: resources?.createAnOrderTemplateButtonText || 'createAnOrderTemplateButtonText',\r\n createNewOrderTemplateButtonText: resources?.createNewOrderTemplateButtonText || 'createNewOrderTemplateButtonText',\r\n cancelOrderTemplateCreationButtonText: resources?.cancelOrderTemplateCreationButtonText || 'cancelOrderTemplateCreationButtonText',\r\n\r\n selectTemplatesText: resources?.selectTemplatesText || 'selectTemplatesText',\r\n addToTemplateButtonText: resources?.addToTemplateButtonText || 'addToTemplateButtonText',\r\n lineItemsText: resources?.lineItemsText || 'lineItemsText',\r\n };\r\n}\r\n\r\nfunction generateOrderTemplateNameDialogResources(resources: IAddToOrderTemplateResources | undefined): IOrderTemplateNameDialogResources {\r\n return {\r\n orderTemplateHeaderLabel: resources?.createOrderTemplateHeader || 'createOrderTemplateHeader',\r\n orderTemplateTitleLabel: resources?.orderTemplateTitle || 'orderTemplateTitle',\r\n orderTemplateNameAriaLabel: resources?.orderTemplateNameAriaLabel || 'orderTemplateNameAriaLabel',\r\n orderTemplateDescription: resources?.createOrderTemplateDescription || 'createOrderTemplateDescription',\r\n\r\n defaultOrderTemplateName: resources?.defaultOrderTemplateName || 'defaultOrderTemplateName',\r\n\r\n orderTemplateButtonLabel: resources?.createOrderTemplateButtonText || 'createOrderTemplateButtonText',\r\n orderTemplateCancelButtonLabel: resources?.cancelNewOrderTemplateCreationButtonText || 'cancelNewOrderTemplateCreationButtonText',\r\n };\r\n}\r\n\r\nfunction generateItemAddedToOrderTemplateDialogResources(resources: IAddToOrderTemplateResources | undefined): IItemAddedToOrderTemplateDialogResources {\r\n return {\r\n viewOrderTemplateButtonText: resources?.viewOrderTemplateButtonText || 'viewOrderTemplateButtonText',\r\n continueShoppingButtonText: resources?.continueShoppingButtonText || 'continueShoppingButtonText',\r\n itemAddedToOrderTemplateHeaderItemOneText: resources?.itemAddedToOrderTemplateHeaderItemOneText || 'itemAddedToOrderTemplateHeaderItemOneText',\r\n itemAddedToOrderTemplateHeaderItemFormatText: resources?.itemAddedToOrderTemplateHeaderItemFormatText || 'itemAddedToOrderTemplateHeaderItemFormatText',\r\n itemAddedToOrderTemplateHeaderMessageText: resources?.itemAddedToOrderTemplateHeaderMessageText || 'itemAddedToOrderTemplateHeaderMessageText',\r\n freePriceText: resources?.priceFree || 'priceFree',\r\n originalPriceText: resources?.originalPriceText || 'originalPriceText',\r\n currentPriceText: resources?.currentPriceText || 'currentPriceText',\r\n };\r\n}\r\n\r\nfunction generateDuplicateItemsWhenAddingToOrderTemplateDialogResources(resources: IAddToOrderTemplateResources | undefined): IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\r\n return {\r\n duplicatedProductsHeader: resources?.duplicatedProductsHeader || 'duplicatedProductsHeader',\r\n duplicatedProductsDescription: resources?.duplicatedProductsDescription || 'duplicatedProductsDescription',\r\n updateQuantityButtonText: resources?.updateQuantityButtonText || 'updateQuantityButtonText',\r\n cancelDuplicateItemsButtonText: resources?.cancelDuplicateItemsButtonText || 'cancelDuplicateItemsButtonText',\r\n };\r\n}\r\n\r\nconst ProductCard: React.FC = ({\r\n resources,\r\n data,\r\n context,\r\n imageSettings,\r\n savingsText,\r\n freePriceText,\r\n originalPriceText,\r\n currentPriceText,\r\n ratingAriaLabel,\r\n ratingCountAriaLabel,\r\n depositSuffixText,\r\n pricePerLiterText,\r\n pricePerText,\r\n cartQueue,\r\n allowBack,\r\n typeName,\r\n id,\r\n telemetryContent,\r\n quickViewButton,\r\n productComparisonButton,\r\n wishlistButton,\r\n isEnabledProductDescription,\r\n isPriceMinMaxEnabled,\r\n disableBuyButton,\r\n showPrice = true,\r\n buyAlwaysAdd,\r\n priceResources,\r\n inventoryLabel,\r\n inventoryStatus,\r\n dimensionAvailabilities,\r\n swatchItemAriaLabel,\r\n addToCartText,\r\n updateCartText,\r\n removeFromCartText,\r\n outOfStockText,\r\n expiredText,\r\n priceErrorText,\r\n toastStrings,\r\n inCartTooltipText,\r\n addToOrderTemplateResources,\r\n onUpdateOrderTemplates,\r\n retrieveOrderTemplates,\r\n onBuyValidate\r\n}) => {\r\n const { product, simpleProduct } = data;\r\n const cartQuantity = buyAlwaysAdd\r\n ? 0\r\n : data.cart?.cart?.CartLines?.find(x => x.ProductId === product?.RecordId)?.Quantity ?? 0;\r\n const [orderQuantity, setOrderQuantity] = useState(cartQuantity);\r\n const [breakoff, setBreakoff] = useState(false);\r\n\r\n let productUrl = getProductPageUrlSync(product?.Name ?? '', product?.RecordId ?? Number.MIN_VALUE, context.actionContext, undefined);\r\n if (allowBack) {\r\n productUrl = updateProductUrl(productUrl, context, 'back=true');\r\n }\r\n const productImageUrlFromSwatch = getProductImageUrlFromDefaultSwatch(context, product) ?? product?.PrimaryImageUrl;\r\n const productPageUrlFromSwatch = getProductPageUrlFromDefaultSwatch(context, productUrl, product) ?? productUrl;\r\n const [productPageUrl, setProductPageUrl] = useState(productPageUrlFromSwatch);\r\n const [productImageUrl, setProductImageUrl] = useState(productImageUrlFromSwatch);\r\n const [cardActionsOpen, setCardActionsOpen] = useState(false);\r\n const [showCartCountTooltip, setShowCartCountTooltip] = useState(false);\r\n const cardActionWrapperRef = React.createRef();\r\n\r\n React.useEffect(() => {\r\n if (buyAlwaysAdd) {\r\n return;\r\n }\r\n\r\n const disposer = reaction(\r\n () => data.cart?.cart.CartLines,\r\n () => {\r\n if (cartQuantity > 0 && !data.cart?.cart.CartLines?.find(x => x.ProductId === product?.RecordId)) {\r\n // This product was removed from cart, reset quantity\r\n setOrderQuantity(0);\r\n }\r\n });\r\n\r\n return disposer;\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setProductPageUrl(productPageUrlFromSwatch);\r\n setProductImageUrl(productImageUrlFromSwatch);\r\n }, [productUrl, productPageUrlFromSwatch, productImageUrlFromSwatch]);\r\n\r\n React.useEffect(() => {\r\n // Set 'title' attribute on AddToOrderTemplate buttons\r\n document.querySelectorAll('.order-template-button').forEach(element => {\r\n element.setAttribute('title', element.getAttribute('aria-label') || '');\r\n });\r\n }, []);\r\n const [selectedSwatchItems] = useState(new Dictionary());\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access -- app context is generic\r\n const enableStockCheck = context.app.config.enableStockCheck;\r\n\r\n const siteContext = context as ICoreContext;\r\n const dimensionToPreSelectInProductCard = siteContext.app.config.dimensionToPreSelectInProductCard;\r\n\r\n /**\r\n * Updates the product page and Image url based on swatch selected.\r\n * @param coreContext - Context of the caller.\r\n * @param swatchItem - Dimension swatch selected.\r\n */\r\n const updatePageAndImageUrl = React.useCallback(\r\n (coreContext: ICoreContext, swatchItem: ISwatchItem) => {\r\n const dimensionType = swatchItem.dimensionType;\r\n selectedSwatchItems.setValue(dimensionType, swatchItem);\r\n if (StringExtensions.isNullOrWhitespace(swatchItem.value)) {\r\n return;\r\n }\r\n const queryString = `${dimensionType}=${swatchItem.value}`;\r\n let productPageUrlWithSwatch = '';\r\n if (productPageUrl.includes(dimensionType)) {\r\n const newUrl = new URL(productPageUrl, coreContext.request.apiSettings.baseUrl);\r\n newUrl.searchParams.delete(dimensionType);\r\n productPageUrlWithSwatch = updateProductUrl(newUrl.toString(), context, queryString);\r\n } else {\r\n productPageUrlWithSwatch = updateProductUrl(productPageUrl, context, queryString);\r\n }\r\n setProductPageUrl(productPageUrlWithSwatch);\r\n if (dimensionType === dimensionToPreSelectInProductCard) {\r\n const swatchProductImageUrl = ArrayExtensions.hasElements(swatchItem.productImageUrls)\r\n ? swatchItem.productImageUrls[0]\r\n : undefined;\r\n const newImageUrl = generateImageUrl(swatchProductImageUrl, coreContext.request.apiSettings);\r\n setProductImageUrl(newImageUrl);\r\n }\r\n },\r\n [selectedSwatchItems, context, productPageUrl]\r\n );\r\n\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n /**\r\n * Checks if rendering the particular dimensions is allowed for product card.\r\n * @param dimensionType - Dimension to be displayed.\r\n * @returns Updates the state with new product page url.\r\n */\r\n function shouldDisplayDimension(dimensionType: string): boolean {\r\n const dimensionsContext = context as ICoreContext;\r\n const dimensionsToDisplayOnProductCard = dimensionsContext.app.config.dimensionsInProductCard;\r\n return (\r\n ArrayExtensions.hasElements(dimensionsToDisplayOnProductCard) &&\r\n !dimensionsToDisplayOnProductCard.includes(DimensionTypes.none) &&\r\n dimensionsToDisplayOnProductCard.includes(dimensionType.toLocaleLowerCase() as DimensionTypes)\r\n );\r\n }\r\n\r\n /**\r\n * Gets the react node for product dimension as swatch.\r\n * @param attributeValues - Attribute value property from product.\r\n * @returns The node representing markup for unit of measure component.\r\n */\r\n function renderProductDimensions(attributeValues?: AttributeValue[]): JSX.Element | null {\r\n if (!attributeValues) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {attributeValues.map((item: AttributeValue) => {\r\n const dimensionTypeValue = item.KeyName?.toLocaleLowerCase() ?? '';\r\n if (!shouldDisplayDimension(dimensionTypeValue)) {\r\n return null;\r\n }\r\n\r\n const siteContext = context as ICoreContext;\r\n const dimensionToPreSelectInProductCard = siteContext.app.config.dimensionToPreSelectInProductCard;\r\n const dimensionType = dimensionTypeValue as DimensionTypes;\r\n const swatches =\r\n item.Swatches?.map(swatchItem => {\r\n return {\r\n itemId: `${item.RecordId ?? ''}-${dimensionTypeValue}-${swatchItem.SwatchValue ?? ''}`,\r\n value: swatchItem.SwatchValue ?? '',\r\n dimensionType,\r\n colorHexCode: swatchItem.SwatchColorHexCode,\r\n imageUrl: swatchItem.SwatchImageUrl,\r\n productImageUrls: swatchItem.ProductImageUrls,\r\n isDefault: swatchItem.IsDefault,\r\n swatchItemAriaLabel: swatchItemAriaLabel ? format(swatchItemAriaLabel, dimensionType) : '',\r\n isDisabled:\r\n enableStockCheck &&\r\n dimensionAvailabilities?.find(\r\n dimensionAvailability => dimensionAvailability.value === (swatchItem.SwatchValue ?? '')\r\n )?.isDisabled\r\n };\r\n }) ?? [];\r\n if (\r\n dimensionType === dimensionToPreSelectInProductCard &&\r\n ArrayExtensions.hasElements(swatches) &&\r\n !swatches.some(swatch => swatch.isDefault)\r\n ) {\r\n swatches[0].isDefault = true;\r\n }\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n );\r\n }\r\n\r\n function renderQuickView(quickview: React.ReactNode, item?: number): JSX.Element | undefined {\r\n if (quickview === null) {\r\n return undefined;\r\n }\r\n const selectedDimensions: ProductDimension[] = selectedSwatchItems.getValues().map(swatches => {\r\n return {\r\n DimensionTypeValue: convertDimensionTypeToProductDimensionType(swatches.dimensionType),\r\n DimensionValue: {\r\n RecordId: 0,\r\n Value: swatches.value\r\n }\r\n };\r\n });\r\n return React.cloneElement(quickview as React.ReactElement, { selectedProductId: item, selectedDimensions });\r\n }\r\n\r\n function renderOrderTemplateButton() {\r\n if (!data.customerInformation?.IsB2b) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {\r\n await onUpdateOrderTemplates?.(orderTemplate);\r\n toast({\r\n text: `${data.product?.Name}${addToOrderTemplateResources?.itemAddedToOrderTemplateHeaderMessageText}`,\r\n autoClose: 3000,\r\n canClose: true,\r\n position: 'bottom-right',\r\n type: 'success',\r\n showProgress: true\r\n });\r\n }}\r\n retrieveOrderTemplates={retrieveOrderTemplates}\r\n />\r\n
\r\n );\r\n }\r\n\r\n function renderWishlistButton(wishlistButton: React.ReactNode): React.ReactNode | undefined {\r\n return wishlistButton;\r\n }\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', telemetryContent!, '', product.RecordId.toString());\r\n\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- -- Do not need type check for appsettings\r\n // @ts-expect-error\r\n const isUnitOfMeasureEnabled = context.app.config && context.app.config.unitOfMeasureDisplayType === 'buyboxAndBrowse';\r\n const _renderCartButton = (renderCartCount: boolean): JSX.Element => {\r\n const product1: SimpleProduct = {\r\n RecordId: data.product?.RecordId!,\r\n ItemId: data.product?.ItemId,\r\n Name: data.product?.Name,\r\n Description: data.product?.Description,\r\n ProductTypeValue: data.product?.RecordId!,\r\n DefaultUnitOfMeasure: data.product?.DefaultUnitOfMeasure,\r\n BasePrice: data.product?.BasePrice!,\r\n Price: data.product?.Price!,\r\n AdjustedPrice: data.product?.Price!,\r\n MasterProductId: data.product?.MasterProductId,\r\n PrimaryImageUrl: data.product?.PrimaryImageUrl,\r\n ExtensionProperties: data.product?.ExtensionProperties\r\n };\r\n const productDimensionAvailabilities =\r\n dimensionAvailabilities &&\r\n dimensionAvailabilities?.find(\r\n dimensionAvailability =>\r\n ArrayExtensions.hasElements(dimensionAvailabilities) &&\r\n dimensionAvailability.masterProductId &&\r\n dimensionAvailability.masterProductId === product.MasterProductId\r\n );\r\n\r\n const ProductAvailableQuantity: any = {\r\n AvailableQuantity: 1000\r\n };\r\n\r\n let cartCount: JSX.Element | undefined = undefined;\r\n // const cartQuantity = data.cart?.cart.CartLines?.find(x => x.ProductId === product.RecordId)?.Quantity;\r\n const cartQuantity = data.cart?.cart.CartLines?.filter(x => x.ProductId === product.RecordId).reduce((acc, val) => acc + (val.Quantity || 0), 0);\r\n\r\n if (renderCartCount && cartQuantity) {\r\n const cartCountId = `product-component-cart-count-${product.RecordId}`;\r\n const tooltipString = inCartTooltipText || '{0} i handlekurven';\r\n const tooltipText = format(tooltipString, cartQuantity);\r\n\r\n cartCount = (\r\n setShowCartCountTooltip(true)}\r\n onMouseOut={() => setShowCartCountTooltip(false)}\r\n onTouchStart={() => setShowCartCountTooltip(true)}\r\n >\r\n {cartQuantity}\r\n \r\n {tooltipText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n setOrderQuantity(quantity);\r\n }}\r\n onBuyValidate={onBuyValidate}\r\n />\r\n {cartCount}\r\n \r\n );\r\n };\r\n\r\n const _renderCartCount = (): JSX.Element | undefined => {\r\n const cartQuantity = data.cart?.cart.CartLines\r\n ?.filter(x => x.ProductId === product.RecordId)\r\n .reduce((acc, val) => acc + (val.Quantity || 0), 0);\r\n\r\n if (!cartQuantity) {\r\n return undefined;\r\n }\r\n\r\n const cartCountId = `product-component-cart-count-${product.RecordId}`;\r\n const tooltipString = inCartTooltipText || '{0} {1} i handlekurven';\r\n const friendlyUOM = simpleProduct?.ExtensionProperties?.find((x) => x.Key === 'FRIENDLYUOM')?.Value?.StringValue;\r\n const uom = friendlyUOM || simpleProduct?.DefaultUnitOfMeasure;\r\n const tooltipText = format(tooltipString, cartQuantity, uom?.toLocaleLowerCase());\r\n\r\n return (\r\n setShowCartCountTooltip(true)}\r\n onMouseOut={() => setShowCartCountTooltip(false)}\r\n onTouchStart={() => setShowCartCountTooltip(true)}\r\n >\r\n \r\n {cartQuantity}\r\n \r\n {tooltipText}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const baseClassName = 'msc-product-component';\r\n\r\n return (\r\n
\r\n {isEnabledProductDescription ? (\r\n \r\n
\r\n
\r\n {renderProductPlacementImage(\r\n imageSettings,\r\n context.request.gridSettings,\r\n productImageUrl,\r\n product.PrimaryImageUrl,\r\n product.Name,\r\n context\r\n )}\r\n
\r\n
\r\n
{product.Name}
\r\n {context.request.user.isAuthenticated && renderPrice(\r\n context,\r\n typeName,\r\n id,\r\n showPrice,\r\n breakoff,\r\n product,\r\n simpleProduct,\r\n data.unitConversions,\r\n savingsText,\r\n freePriceText,\r\n originalPriceText,\r\n currentPriceText,\r\n depositSuffixText,\r\n pricePerLiterText,\r\n pricePerText,\r\n isPriceMinMaxEnabled,\r\n priceResources,\r\n priceErrorText\r\n )}\r\n {renderDescription(product.Description)}\r\n
\r\n
\r\n \r\n ) : (\r\n \r\n
\r\n {renderProductPlacementImage(\r\n imageSettings,\r\n context.request.gridSettings,\r\n productImageUrl,\r\n product.PrimaryImageUrl,\r\n product.Name,\r\n context\r\n )}\r\n
\r\n
\r\n {product.Category && (\r\n
{product.Category}
\r\n )}\r\n {product.Producer && (\r\n
{product.Producer}
\r\n )}\r\n
\r\n
{product.Name}
\r\n
\r\n
{product.ItemId}
\r\n {product.CountryAndDistrict && (\r\n
{product.CountryAndDistrict}
\r\n )}\r\n
\r\n {context.request.user.isAuthenticated && renderPrice(\r\n context,\r\n typeName,\r\n id,\r\n showPrice,\r\n breakoff,\r\n product,\r\n simpleProduct,\r\n data.unitConversions,\r\n savingsText,\r\n freePriceText,\r\n originalPriceText,\r\n currentPriceText,\r\n depositSuffixText,\r\n pricePerLiterText,\r\n pricePerText,\r\n undefined,\r\n undefined,\r\n priceErrorText\r\n )}\r\n \r\n )}\r\n {renderProductDimensions(product.AttributeValues)}\r\n {context.request.user.isAuthenticated && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n {!context.app.config.hideRating &&\r\n renderRating(context, typeName, id, product.AverageRating, product.TotalRatings, ratingAriaLabel, ratingCountAriaLabel)}\r\n {context.request.user.isAuthenticated && _renderCartCount()}\r\n {renderProductAvailability(context.request.locale, resources, inventoryLabel, inventoryStatus)}\r\n {\r\n if (e.target === cardActionWrapperRef.current) {\r\n setCardActionsOpen(!cardActionsOpen);\r\n }\r\n }}\r\n onBlur={(e) => {\r\n if (!cardActionWrapperRef.current?.contains(e.relatedTarget as Node)) {\r\n setCardActionsOpen(false);\r\n }\r\n }}\r\n ref={cardActionWrapperRef}\r\n >\r\n
\r\n {quickViewButton && renderQuickView(quickViewButton, product.RecordId)}\r\n {productComparisonButton && renderProductComparisonButton(productComparisonButton, product, getCatalogId(context.request))}\r\n {context.request.user.isAuthenticated && (\r\n <>\r\n {renderOrderTemplateButton()}\r\n {wishlistButton && renderWishlistButton(wishlistButton)}\r\n \r\n )}\r\n
\r\n
\r\n\r\n {product.Badge && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nfunction renderLabel(\r\n name?: string,\r\n price?: string,\r\n rating?: number,\r\n ratingAriaLabelText?: string,\r\n reviewCount?: number,\r\n ratingCountAriaLabelText?: string\r\n): string {\r\n const reviewCountArialableText = getReviewAriaLabel(reviewCount, ratingCountAriaLabelText ?? '');\r\n return `${name ?? ''} ${price ?? ''} ${getRatingAriaLabel(rating, ratingAriaLabelText)}${\r\n reviewCountArialableText ? ` ${reviewCountArialableText}` : ''\r\n }`;\r\n}\r\n\r\nfunction renderDescription(description?: string): JSX.Element | null {\r\n return

{description}

;\r\n}\r\n\r\nfunction getRatingAriaLabel(rating?: number, ratingAriaLabel?: string): string {\r\n if (rating && ratingAriaLabel) {\r\n const roundedRating = rating.toFixed(2);\r\n return format(ratingAriaLabel || '', roundedRating, '5');\r\n }\r\n return '';\r\n}\r\n\r\nfunction getReviewAriaLabel(reviewCount?: number, ratingCountAriaLabelText?: string): string {\r\n if (reviewCount && ratingCountAriaLabelText) {\r\n return format(ratingCountAriaLabelText || '', reviewCount);\r\n }\r\n return '';\r\n}\r\n\r\nfunction renderRating(\r\n coreContext: ICoreContext,\r\n moduleTypeName: string,\r\n moduleId: string,\r\n avgRating?: number,\r\n totalRatings?: number,\r\n ariaLabel?: string,\r\n ratingCountAriaLabel?: string\r\n): JSX.Element | null {\r\n if (!avgRating) {\r\n return null;\r\n }\r\n\r\n const numberRatings = totalRatings?.toString() || undefined;\r\n const ratingAriaLabelText = getRatingAriaLabel(avgRating, ariaLabel);\r\n const ratingCountAriaLabelText = getReviewAriaLabel(Number(numberRatings), ratingCountAriaLabel);\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction renderPrice(\r\n context: ICoreContext,\r\n typeName: string,\r\n id: string,\r\n show: boolean,\r\n breakoff: boolean,\r\n product?: ProductSearchResultExt,\r\n simpleProduct?: SimpleProductExt,\r\n unitConversions?: UnitOfMeasureConversion[] | undefined,\r\n savingsText?: string,\r\n freePriceText?: string,\r\n originalPriceText?: string,\r\n currentPriceText?: string,\r\n depositSuffixText?: string,\r\n pricePerLiterText?: string,\r\n pricePerText?: string,\r\n isPriceMinMaxEnabled?: boolean,\r\n priceResources?: IPriceComponentResources,\r\n priceErrorText?: string\r\n): JSX.Element | null {\r\n const price: ProductPrice = {\r\n BasePrice: product?.BasePrice,\r\n AdjustedPrice: product?.Price,\r\n CustomerContextualPrice: product?.Price\r\n };\r\n\r\n if (product?.PriceFailed) {\r\n return (\r\n
\r\n \r\n \r\n {priceErrorText || 'Pris n/a'}\r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n if (!show || !simpleProduct) {\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 // const volumeCl = parseInt(product?.VolumeCl || '') || undefined;\r\n // Sometimes UOM is not set on the product so fallback to SimpleProduct\r\n const uom = product?.DefaultUnitOfMeasure || simpleProduct.DefaultUnitOfMeasure;\r\n const fpakToCl = unitConversions?.find(x => x.FromUnitOfMeasureSymbol === uom && x.ToUnitOfMeasureSymbol === 'cl')?.Factor;\r\n const fpakToLtr = unitConversions?.find(x => x.FromUnitOfMeasureSymbol === uom && x.ToUnitOfMeasureSymbol === 'ltr')?.Factor;\r\n const volumeClOnProduct = product?.VolumeCl ? parseFloat(product.VolumeCl) : undefined;\r\n const volumeCl = volumeClOnProduct || fpakToCl || (fpakToLtr ? fpakToLtr * 100 : undefined);\r\n const deposit = simpleProduct?.ExtensionProperties?.find(x => x.Key === 'DEPOSIT')?.Value?.DecimalValue;\r\n\r\n let productPrice = { ...(product?.ProductPrice || price) };\r\n\r\n if (!breakoff && simpleProduct?.Behavior?.DefaultQuantity) {\r\n productPrice = multiplyPriceBy(productPrice, simpleProduct.Behavior.DefaultQuantity);\r\n }\r\n\r\n const multiplier = breakoff ? 1 : simpleProduct?.Behavior?.DefaultQuantity || 1;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {volumeCl && (\r\n \r\n {multiplier > 1 ? `${multiplier} x ${volumeCl} cl` : `${volumeCl} cl`}\r\n \r\n )}\r\n
\r\n {!breakoff && !!simpleProduct?.Behavior?.DefaultQuantity && (\r\n
\r\n
\r\n \r\n \r\n  \r\n {format(pricePerText || 'pr. {0}', humanizeUnitOfMeasure(context, simpleProduct.DefaultUnitOfMeasure, simpleProduct).toLocaleLowerCase())}\r\n \r\n
\r\n
\r\n )}\r\n {volumeCl && (\r\n
\r\n
\r\n \r\n {` ${pricePerLiterText}`}\r\n
\r\n
\r\n )}\r\n {deposit && deposit > 0 && (\r\n
\r\n
\r\n +{' '}\r\n \r\n {` ${depositSuffixText}`}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nfunction renderProductPlacementImage(\r\n imageSettings?: IImageSettings,\r\n gridSettings?: IGridSettings,\r\n imageUrl?: string,\r\n fallbackImageUrl?: string,\r\n altText?: string,\r\n context?: ICoreContext>\r\n): JSX.Element | null {\r\n if (!gridSettings || !imageSettings) {\r\n return null;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment -- Site level config can be of any type.\r\n const contextConfig = context?.app.config?.placeholderImageName;\r\n const emptyPlaceHolderImage = contextConfig as string;\r\n let fallbackImageSource = context?.request.apiSettings.baseImageUrl;\r\n if (fallbackImageSource?.endsWith('/')) {\r\n fallbackImageSource = fallbackImageSource.slice(0, -1);\r\n }\r\n if (emptyPlaceHolderImage) {\r\n fallbackImageSource = `${fallbackImageSource}${emptyPlaceHolderImage}`;\r\n }\r\n const img: IImageData = {\r\n src: imageUrl || fallbackImageSource,\r\n altText: altText ? altText : '',\r\n fallBackSrc: fallbackImageSource\r\n };\r\n const imageProps = {\r\n gridSettings,\r\n imageSettings\r\n };\r\n imageProps.imageSettings.cropFocalRegion = true;\r\n imageProps.imageSettings.mode = 0;\r\n const sharedViewports = {\r\n h: 315, w: 315, q: 'w=315&h=315&q=80&m=0&f=webp', qe: 't=315h315qhigh'\r\n };\r\n imageProps.imageSettings.viewports = {\r\n xs: { ...sharedViewports },\r\n lg: { ...sharedViewports },\r\n md: { ...sharedViewports },\r\n sm: { ...sharedViewports },\r\n xl: { ...sharedViewports }\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport const ProductComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride('Product', { component: ProductCard, ...PriceComponentActions });\r\n\r\nexport default ProductComponent;\r\n"],"names":["getDefaultSwatchSelected","coreContext","productData","_productData$Attribut","_attributeSwatches$fi","AttributeValues","dimensionToPreSelectInProductCard","app","config","attributeSwatches","find","attributeValue","_attributeValue$KeyNa","KeyName","toLocaleLowerCase","Swatches","ArrayExtensions","hasElements","item","IsDefault","updateProductUrl","productDetailsPageUrl","queryString","sourceUrl","URL","request","apiSettings","baseUrl","search","href","pathname","generateAddToOrderTemplateDialogResources","resources","addToOrderTemplateHeader","noOrderTemplatesMessage","noOrderTemplatesDescription","createAnOrderTemplateButtonText","createNewOrderTemplateButtonText","cancelOrderTemplateCreationButtonText","selectTemplatesText","addToTemplateButtonText","lineItemsText","generateOrderTemplateNameDialogResources","orderTemplateHeaderLabel","createOrderTemplateHeader","orderTemplateTitleLabel","orderTemplateTitle","orderTemplateNameAriaLabel","orderTemplateDescription","createOrderTemplateDescription","defaultOrderTemplateName","orderTemplateButtonLabel","createOrderTemplateButtonText","orderTemplateCancelButtonLabel","cancelNewOrderTemplateCreationButtonText","generateItemAddedToOrderTemplateDialogResources","viewOrderTemplateButtonText","continueShoppingButtonText","itemAddedToOrderTemplateHeaderItemOneText","itemAddedToOrderTemplateHeaderItemFormatText","itemAddedToOrderTemplateHeaderMessageText","freePriceText","priceFree","originalPriceText","currentPriceText","generateDuplicateItemsWhenAddingToOrderTemplateDialogResources","duplicatedProductsHeader","duplicatedProductsDescription","updateQuantityButtonText","cancelDuplicateItemsButtonText","renderLabel","name","price","rating","ratingAriaLabelText","reviewCount","ratingCountAriaLabelText","reviewCountArialableText","getReviewAriaLabel","getRatingAriaLabel","ratingAriaLabel","roundedRating","toFixed","format","renderPrice","context","typeName","id","show","breakoff","product","simpleProduct","unitConversions","savingsText","depositSuffixText","pricePerLiterText","pricePerText","isPriceMinMaxEnabled","priceResources","priceErrorText","_unitConversions$find","_unitConversions$find2","_simpleProduct$Extens2","_simpleProduct$Behavi","_simpleProduct$Behavi2","_simpleProduct$Behavi3","_product$ProductPrice","_product$ProductPrice2","BasePrice","AdjustedPrice","Price","CustomerContextualPrice","PriceFailed","React","className","uom","DefaultUnitOfMeasure","fpakToCl","x","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","Factor","fpakToLtr","volumeCl","VolumeCl","parseFloat","undefined","deposit","ExtensionProperties","Key","Value","DecimalValue","productPrice","_objectSpread","ProductPrice","Behavior","DefaultQuantity","multiplyPriceBy","multiplier","PriceComponent","data","humanizeUnitOfMeasure","renderProductPlacementImage","imageSettings","gridSettings","imageUrl","fallbackImageUrl","altText","_context$app$config","_fallbackImageSource","emptyPlaceHolderImage","placeholderImageName","fallbackImageSource","baseImageUrl","endsWith","slice","img","src","fallBackSrc","imageProps","cropFocalRegion","mode","sharedViewports","h","w","q","qe","viewports","xs","lg","md","sm","xl","Image","Object","assign","requestContext","actionContext","loadFailureBehavior","bypassHideOnFailure","ProductComponent","msdyn365Commerce","createComponentOverride","component","_ref","_data$cart$cart$CartL","_data$cart","_product$Name","_product$RecordId","_getProductImageUrlFr","_getProductPageUrlFro","ratingCountAriaLabel","cartQueue","allowBack","telemetryContent","quickViewButton","productComparisonButton","wishlistButton","isEnabledProductDescription","disableBuyButton","showPrice","buyAlwaysAdd","inventoryLabel","inventoryStatus","dimensionAvailabilities","swatchItemAriaLabel","addToCartText","updateCartText","removeFromCartText","outOfStockText","expiredText","toastStrings","inCartTooltipText","addToOrderTemplateResources","onUpdateOrderTemplates","retrieveOrderTemplates","onBuyValidate","cartQuantity","cart","CartLines","ProductId","RecordId","Quantity","orderQuantity","setOrderQuantity","useState","setBreakoff","productUrl","getProductPageUrlSync","Name","Number","MIN_VALUE","productImageUrlFromSwatch","defaultSwatch","swatchProductImageUrls","ProductImageUrls","generateImageUrl","PrimaryImageUrl","getProductImageUrlFromDefaultSwatch","productPageUrlFromSwatch","SwatchValue","encodeURIComponent","getProductPageUrlFromDefaultSwatch","productPageUrl","setProductPageUrl","productImageUrl","setProductImageUrl","cardActionsOpen","setCardActionsOpen","showCartCountTooltip","setShowCartCountTooltip","cardActionWrapperRef","reaction","_data$cart2","_data$cart3","document","querySelectorAll","forEach","element","setAttribute","getAttribute","selectedSwatchItems","Dictionary","enableStockCheck","updatePageAndImageUrl","swatchItem","dimensionType","setValue","StringExtensions","isNullOrWhitespace","value","productPageUrlWithSwatch","includes","newUrl","searchParams","delete","toString","swatchProductImageUrl","productImageUrls","newImageUrl","payLoad","getPayloadObject","attribute","getTelemetryAttributes","baseClassName","unitOfMeasureDisplayType","onClick","onTelemetryClick","cultureFormatter","formatCurrency","AverageRating","TotalRatings","user","isAuthenticated","description","Description","Category","Producer","classnames","title","ItemId","CountryAndDistrict","attributeValues","map","_item$KeyName$toLocal","_item$KeyName","_item$Swatches$map","_item$Swatches","dimensionTypeValue","dimensionsToDisplayOnProductCard","dimensionsInProductCard","DimensionTypes","none","shouldDisplayDimension","swatches","_item$RecordId","_swatchItem$SwatchVal","_swatchItem$SwatchVal2","_dimensionAvailabilit","itemId","colorHexCode","SwatchColorHexCode","SwatchImageUrl","isDefault","isDisabled","dimensionAvailability","_swatchItem$SwatchVal3","some","swatch","ProductComponentSwatchComponent","onSelectDimension","key","QuantityBreakoffSelector","quantity","onQuantityChange","onBreakoffChange","QuantityInput","showNonBreakoffAmount","BuyButton","renderCartCount","_data$product14","_data$product15","_data$product16","_data$product17","_data$product18","_data$product19","_data$product20","_data$product21","_data$product22","_data$product23","_data$product24","_data$product25","_data$cart4","product1","ProductTypeValue","MasterProductId","productDimensionAvailabilities","masterProductId","cartCount","filter","reduce","acc","val","cartCountId","tooltipString","tooltipText","onMouseOver","onMouseOut","onTouchStart","Tooltip","isOpen","target","Node","AddToCartComponent","hasAvailableProducts","productAvailability","AvailableQuantity","productSearch","disabled","onUpdateQuantity","_renderCartButton","hideRating","moduleTypeName","moduleId","avgRating","totalRatings","ariaLabel","numberRatings","RatingComponent","ratingCount","readOnly","renderRating","_renderCartCount","_data$cart5","_simpleProduct$Extens","StringValue","locale","inventoryAvailabilityLabel","availabilityClassName","IsProductAvailable","StockLevelCode","inventoryStatusText","StockLevelLabel","availableQuantity","ProductAvailableQuantity","addInventoryVisibilityInfo","expectedInventoryDateWithQuantityText","expectedInventoryDateText","renderProductAvailability","open","tabIndex","e","current","onBlur","_cardActionWrapperRef","contains","relatedTarget","ref","quickview","selectedDimensions","getValues","DimensionTypeValue","convertDimensionTypeToProductDimensionType","DimensionValue","selectedProductId","renderQuickView","catalogId","renderProductComparisonButton","getCatalogId","_data$customerInforma","customerInformation","IsB2b","AddToOrderTemplateComponent","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","addToOrderTemplateDialogResources","createOrderTemplateDialogResources","itemAddedToOrderTemplateDialogResources","duplicateItemsWhenAddingToOrderTemplateDialogResources","_data$product","_data$product2","_data$product3","_data$product4","_data$product5","_data$product6","_data$product7","_data$product8","_data$product9","_data$product10","_data$product11","_data$product12","showButtonTooltip","onSuccess","async","_data$product13","orderTemplate","toast","text","autoClose","canClose","position","type","showProgress","Badge","DiscountBadge","badge","size"],"sourceRoot":""}