{"version":3,"file":"static/js/d4f012c26d5e632a40d5.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online.Memx/./src/actions/get-product-default-variant.action.ts?4082","webpack://Msdyn365.Commerce.Online.Memx/./src/actions/state-data-actions/product-quantity-state.action.ts?f54a","webpack://Msdyn365.Commerce.Online.Memx/./src/modules/mmx-buybox/common/buybox-components.tsx?b6f7","webpack://Msdyn365.Commerce.Online.Memx/./src/modules/mmx-buybox/common/buybox-product-configure.tsx?cce3","webpack://Msdyn365.Commerce.Online.Memx/./src/modules/mmx-buybox/common/buyboxInterface.ts?4938","webpack://Msdyn365.Commerce.Online.Memx/./src/modules/mmx-buybox/common/dropdown/dropdown.props.ts?8451","webpack://Msdyn365.Commerce.Online.Memx/./src/modules/mmx-buybox/common/dropdown/dropdown.tsx?78bb","webpack://Msdyn365.Commerce.Online.Memx/./src/modules/mmx-buybox/common/utilities/error-utilities.ts?ceef"],"sourcesContent":["import {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n ICreateActionContext,\r\n IActionContext,\r\n IActionInput,\r\n IGeneric,\r\n IAny\r\n} from '@msdyn365-commerce/core';\r\nimport { getProductDefaultVariantsAsync } from './DataActionExtension.g';\r\nimport { IProductDefaultVariant } from './DataServiceEntities.g';\r\nimport { getSelectedProductIdFromActionInput } from '../utilities/utils';\r\n\r\n/*\r\n * Input class for the getProductDefaultVariant data action\r\n */\r\nexport class ProductDefaultVariantInput implements IActionInput {\r\n public productId: number;\r\n constructor(productId: number) {\r\n this.productId = productId;\r\n }\r\n public getCacheKey = () => `mmx-productdefaultvariant-${this.productId.toString()}`;\r\n public getCacheObjectType = () => 'IProductDefaultVariant';\r\n public dataCacheType = (): CacheType => 'application';\r\n}\r\n\r\n/**\r\n * Create input method for the getProductDefaultVariant data action.\r\n * @param inputData The input data passed to the createInput method.\r\n */\r\nexport const createProductDefaultVariantInput = (inputData: ICreateActionContext>): ProductDefaultVariantInput[] => {\r\n const productIds: string[] = [];\r\n const selectedId = getSelectedProductIdFromActionInput(inputData);\r\n if (selectedId) {\r\n productIds.push(selectedId);\r\n if (Array.isArray(productIds) && productIds.length > 0) {\r\n return productIds.map((productId: string) => {\r\n return new ProductDefaultVariantInput(+productId);\r\n });\r\n }\r\n }\r\n throw new Error('Unable to find product variant, no productId found on module config or query');\r\n};\r\n\r\n/**\r\n * Action method for the getProductDefaultVariant data action.\r\n * @param input\r\n * @param ctx\r\n */\r\nexport async function getProductDefaultVariantAction(\r\n input: ProductDefaultVariantInput[],\r\n ctx: IActionContext\r\n): Promise {\r\n const productIds = input.map((input: ProductDefaultVariantInput): number => {\r\n return input.productId;\r\n });\r\n return getProductDefaultVariantsAsync({ callerContext: ctx }, productIds).then((response: IProductDefaultVariant[]) => {\r\n return response;\r\n });\r\n}\r\n\r\n/**\r\n * The GetProductDefaultVariant data action\r\n * Finds product the default variants for given product masters via the RetailServer API.\r\n */\r\nexport default createObservableDataAction({\r\n id: 'get-product-default-variant',\r\n action: >getProductDefaultVariantAction,\r\n input: createProductDefaultVariantInput,\r\n isBatched: true\r\n});\r\n","import {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICreateActionContext,\r\n IGeneric\r\n} from '@msdyn365-commerce/core';\r\nimport { getSelectedProductIdFromActionInput } from '../../utilities/utils';\r\n\r\nexport class ProductQuantityStateInput implements IActionInput {\r\n public productId: number;\r\n\r\n constructor(productId: number) {\r\n this.productId = productId;\r\n }\r\n\r\n public getCacheKey = () => `ProductQuantityState-${this.productId}`;\r\n public getCacheObjectType = () => 'number';\r\n public dataCacheType = (): CacheType => 'instance';\r\n}\r\n\r\nexport async function ProductQuantityStateAction(input: ProductQuantityStateInput, ctx: IActionContext): Promise {\r\n return {};\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\r\n const selectedId = getSelectedProductIdFromActionInput(inputData);\r\n if (selectedId) {\r\n return new ProductQuantityStateInput(+selectedId);\r\n }\r\n throw new Error('Unable to find warranty disabled state, no productId found on module config or query');\r\n};\r\n\r\nexport default createObservableDataAction({\r\n action: >ProductQuantityStateAction,\r\n input: createInput\r\n});\r\n","/*!\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 {\r\n //mmx-feature: imports --start\r\n /*\r\n AddToCartComponent,\r\n */\r\n //mmx-feature: imports --end\r\n AddToOrderTemplateComponent,\r\n AddToWishlistComponent,\r\n IAddToCartFailureResult,\r\n IAddToCartResources,\r\n IAddToOrderTemplateDialogResources,\r\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\r\n IItemAddedToOrderTemplateDialogResources,\r\n IOrderTemplateActionErrorResult,\r\n IOrderTemplateNameDialogResources,\r\n IWishlistActionErrorResult,\r\n PriceComponent,\r\n RatingComponent\r\n} from '@msdyn365-commerce/components';\r\n//mmx-feature: imports --start\r\nimport { AddToCartComponent } from '../../../themes/memoryexpress/views/components/addtocart.component';\r\n//mmx-feature: imports --end\r\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\r\n//mmx-feature --start\r\n/*\r\nimport { ProductAvailableQuantity, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\n*/\r\nimport { OrgUnitLocation, ProductAvailableQuantity, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\n//mmx-feature --end\r\nimport { ArrayExtensions, DeliveryMode, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Alert,\r\n Button,\r\n format,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n Heading,\r\n ITelemetryContent,\r\n Node,\r\n Quantity,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n IBuyboxAddToWishlistViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxCommonData,\r\n IBuyboxCommonResources,\r\n IBuyboxErrorBlockProps,\r\n IBuyboxExtentedProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxShopSimilarLookViewProps,\r\n IBuyboxState,\r\n IProductDetails,\r\n ShopSimiliarButtonType\r\n} from './buyboxInterface';\r\nimport { getConfigureErrors, getGenericError, getQuantityError } from './utilities/error-utilities';\r\n\r\nconst _getClassNamePrefix = (typeName: string): string => {\r\n //mmx-feature: allow mmx quickview --start\r\n /*\r\n return typeName.toLocaleLowerCase() === 'quickview' ? 'ms-quickView' : 'ms-buybox';\r\n */\r\n return (typeName.toLocaleLowerCase() === 'quickview' || typeName.toLocaleLowerCase() === 'mmx-quickview') ? 'ms-quickView' : 'ms-buybox';\r\n //mmx-feature: allow mmx quickview --end\r\n};\r\n\r\nexport function getBuyBoxInventoryLabel(\r\n props: IBuyboxExtentedProps,\r\n productDetails?: IProductDetails\r\n): React.ReactElement | undefined {\r\n const { typeName } = props;\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const productAvailableQuantity = props.data.productAvailableQuantity?.result ?? productDetails?.productAvailableQuantity;\r\n\r\n const className = _getClassNamePrefix(typeName);\r\n if (!productAvailableQuantity || !ArrayExtensions.hasElements(productAvailableQuantity)) {\r\n return undefined;\r\n }\r\n const shippingInventory = productAvailableQuantity.find(shipping => shipping.deliveryType === DeliveryMode.shipping);\r\n\r\n if (shippingInventory) {\r\n let inventoryClassName: string;\r\n if (shippingInventory.StockLevelCode) {\r\n inventoryClassName = `${className}__inventory-label ${className}__inventory-code-${shippingInventory.StockLevelCode.toLowerCase()}`;\r\n } else {\r\n inventoryClassName = `${className}__inventory-label`;\r\n }\r\n return (\r\n
\r\n {shippingInventory.StockLevelLabel}\r\n
\r\n );\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nexport function getBuyboxProductTitle(\r\n props: IBuyboxExtentedProps,\r\n productDetails?: IProductDetails\r\n): React.ReactElement | undefined {\r\n const {\r\n config: { titleHeadingTag = 'h1' },\r\n typeName\r\n } = props;\r\n const className = _getClassNamePrefix(typeName);\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const product = props.data.product?.result ?? productDetails?.product ?? undefined;\r\n\r\n return product && ;\r\n}\r\n\r\nexport function getBuyboxProductDescription(\r\n props: IBuyboxExtentedProps,\r\n productDetails?: IProductDetails\r\n): React.ReactElement | undefined {\r\n const { typeName } = props;\r\n const className = _getClassNamePrefix(typeName);\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const product = props.data.product?.result ?? productDetails?.product ?? undefined;\r\n const descriptionLines = product?.Description?.split('\\n').map((line: string) => line.length == 0 ?
:

{line}

);\r\n\r\n //mmx-feaure: description newlines --start\r\n return product &&
{descriptionLines}
;\r\n /*\r\n return product &&

{product.Description}

;\r\n */\r\n //mmx-feaure: description newlines --end\r\n}\r\n\r\n/**\r\n * Gets the react node for product unit of measure display.\r\n * @param {IBuyboxExtentedProps} props The buybox module props.\r\n * @param {IProductDetails} productDetails The product details to be displyed in buybox.\r\n * @returns {React.ReactElement} The node representing markup for unit of measure component.\r\n */\r\nexport function getBuyboxProductUnitOfMeasure(\r\n props: IBuyboxExtentedProps,\r\n productDetails?: IProductDetails\r\n): React.ReactElement | undefined {\r\n const { typeName } = props;\r\n const className = _getClassNamePrefix(typeName);\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Do not need type check for appsettings\r\n if (\r\n props.context.app.config &&\r\n (!props.context.app.config.unitOfMeasureDisplayType || props.context.app.config.unitOfMeasureDisplayType === 'none')\r\n ) {\r\n return undefined;\r\n }\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const product = props.data.product?.result ?? productDetails?.product;\r\n if (!product || !product.DefaultUnitOfMeasure) {\r\n props.telemetry.warning('Missing defult unit of measureor theproduct');\r\n return undefined;\r\n }\r\n\r\n return (\r\n
\r\n {product.DefaultUnitOfMeasure}\r\n
\r\n );\r\n}\r\n\r\nlet telemetryContent: ITelemetryContent;\r\n\r\n/**\r\n * On add to cart failed function.\r\n * @param props -The buybox module props.\r\n * @param state -The buybox module state.\r\n * @param callbacks -The buybox module callbacks.\r\n * @param defaultMinimumKeyInPrice -The default minimum key in price.\r\n * @param defaultMaximumKeyInPrice -The default maximum key in price.\r\n * @param cart -The cart state.\r\n * @param product -The simple product.\r\n * @param productAvailability -The product available quantity.\r\n * @returns Update error state.\r\n */\r\nconst onAddToCartFailed = (\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks,\r\n defaultMinimumKeyInPrice: number,\r\n defaultMaximumKeyInPrice: number,\r\n cart: ICartState,\r\n product: SimpleProduct,\r\n productAvailability: ProductAvailableQuantity | undefined\r\n //mmx-feature --start\r\n /*\r\n) => (result: IAddToCartFailureResult) => {\r\n */\r\n) => (result: IAddToCartFailureResult, location: OrgUnitLocation) => {\r\n //mmx-feature --end\r\n let quantityErrorForState: string | undefined;\r\n let customAmountErrorForState: string | undefined;\r\n let otherErrorForState: string | undefined = getGenericError(\r\n result,\r\n cart,\r\n props.resources,\r\n props.context,\r\n product,\r\n productAvailability,\r\n //mmx-feature --start\r\n /*\r\n undefined\r\n */\r\n location\r\n //mmx-feature --end\r\n );\r\n\r\n if (result.failureReason === 'OUTOFSTOCK') {\r\n quantityErrorForState = result.failureReason === 'OUTOFSTOCK' ? getQuantityError(result.stockLeft, props.resources) : undefined;\r\n } else if (\r\n result.failureReason === 'CARTACTIONFAILED' &&\r\n result.cartActionResult &&\r\n (result.cartActionResult.substatus === 'MAXQUANTITY' || result.cartActionResult.substatus === 'QUANTITYLIMITS')\r\n ) {\r\n //mmx-feature --start\r\n /*\r\n quantityErrorForState = getGenericError(result, cart, props.resources, props.context, product, productAvailability, undefined);\r\n */\r\n quantityErrorForState = getGenericError(result, cart, props.resources, props.context, product, productAvailability, location);\r\n //mmx-feature --end\r\n otherErrorForState = undefined; // Prevent error duplication in otherError and quantityError\r\n }\r\n\r\n if (result.failureReason === 'INVALIDCUSTOMAMOUNT') {\r\n if (state.keyInPriceAmount === undefined || state.keyInPriceAmount < (props.config.minimumKeyInPrice || defaultMinimumKeyInPrice)) {\r\n const formatedAmountLimit = props.context.cultureFormatter.formatCurrency(\r\n props.config.minimumKeyInPrice || defaultMinimumKeyInPrice\r\n );\r\n customAmountErrorForState = props.resources.invalidSmallCustomAmountText.replace('{minAmount}', formatedAmountLimit);\r\n } else if (state.keyInPriceAmount > (props.config.maximumKeyInPrice || defaultMaximumKeyInPrice)) {\r\n const formatedAmountLimit = props.context.cultureFormatter.formatCurrency(\r\n props.config.maximumKeyInPrice || defaultMaximumKeyInPrice\r\n );\r\n customAmountErrorForState = props.resources.invalidLargeCustomAmountText.replace('{maxAmount}', formatedAmountLimit);\r\n }\r\n }\r\n\r\n callbacks.updateErrorState({\r\n errorHost: 'ADDTOCART',\r\n quantityError: quantityErrorForState,\r\n configureErrors:\r\n result.failureReason === 'MISSINGDIMENSION'\r\n ? getConfigureErrors(result.missingDimensions, props.resources, product?.IsGiftCard)\r\n : {},\r\n customAmountError: customAmountErrorForState,\r\n otherError: otherErrorForState\r\n });\r\n};\r\n\r\n/**\r\n * On Item Add To Cart function.\r\n * @param typeName -Type name.\r\n * @param callbacks -Buybox Callbacks.\r\n * @returns Change modal open.\r\n */\r\nconst onItemAddedToCart = (typeName: string, callbacks: IBuyboxCallbacks) => (result: ICartActionResult) => {\r\n //mmx-feature: allow mmx quickview --start\r\n /*\r\n if (typeName === 'quickview') {\r\n callbacks.changeModalOpen(false);\r\n }\r\n */\r\n /*\r\n //keeping ours commented out in case it becomes relevant again\r\n if (typeName === 'quickview' || typeName === 'mmx-quickview') {\r\n callbacks.changeModalOpen(false);\r\n }\r\n */\r\n //mmx-feature: allow mmx quickview --end\r\n};\r\n\r\nexport function getBuyboxAddToCart(\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks,\r\n defaultMinimumKeyInPrice: number,\r\n defaultMaximumKeyInPrice: number,\r\n productDetails?: IProductDetails,\r\n hasAvailableProducts?: boolean\r\n): IBuyboxAddToCartViewProps {\r\n const { id, typeName, context, resources } = props;\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const product = props.data.product?.result ?? productDetails?.product;\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const cart = props.data.cart?.result ?? productDetails?.cart;\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const productAvailableQuantity = props.data.productAvailableQuantity?.result ?? productDetails?.productAvailableQuantity;\r\n\r\n const {\r\n quantity,\r\n errorState: { configureErrors, quantityError, customAmountError, otherError, errorHost },\r\n selectedProduct,\r\n isUpdatingDimension,\r\n isUpdatingDeliveryOptions,\r\n isServiceItem\r\n } = state;\r\n\r\n const productAvailability = state.productAvailableQuantity\r\n ? state.productAvailableQuantity.ProductAvailableQuantity\r\n : productAvailableQuantity && productAvailableQuantity.length > 0\r\n ? productAvailableQuantity[0].ProductAvailableQuantity\r\n : undefined;\r\n\r\n const dialogStrings: IAddToCartResources = {\r\n goToCartText: resources.buyBoxGoToCartText,\r\n continueShoppingText: resources.buyBoxContinueShoppingText,\r\n closeNotificationLabel: resources.closeNotificationLabel,\r\n headerItemOneText: resources.buyBoxSingleItemText,\r\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\r\n headerMessageText: resources.buyBoxHeaderMessageText,\r\n freePriceText: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText,\r\n addedQuantityText: resources.addedQuantityText\r\n };\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n //mmx-feature: allow mmx quickview --start\r\n /*\r\n const isProductQuantityLoading = typeName !== 'quickview' && props.data.productAvailableQuantity.status === 'LOADING';\r\n */\r\n const isProductQuantityLoading = (typeName !== 'quickview' && typeName !== 'mmx-quickview') && props.data.productAvailableQuantity.status === 'LOADING';\r\n //mmx-feature: allow mmx quickview --end\r\n if (isProductQuantityLoading) {\r\n callbacks.changeUpdatingDimension(false);\r\n }\r\n\r\n //mmx-feature: allow mmx quickview --start\r\n /*\r\n const isLoadingDeliveryOptions = typeName !== 'quickview' && props.data.deliveryOptions?.status === 'LOADING';\r\n */\r\n const isLoadingDeliveryOptions = (typeName !== 'quickview' && typeName !== 'mmx-quickview') && props.data.deliveryOptions?.status === 'LOADING';\r\n //mmx-feature: allow mmx quickview --end\r\n if (isLoadingDeliveryOptions && callbacks.changeUpdatingDeliveryOptions) {\r\n callbacks.changeUpdatingDeliveryOptions(false);\r\n }\r\n\r\n telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.typeName, props.telemetry);\r\n\r\n // Check if the product delivery mode is electronic\r\n const emailDeliveryModeCode = props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode;\r\n //mmx-feature --start\r\n /*\r\n // from quickview we are not getting deliveryoptions in props.data hence getting it from quickview state\r\n const deliveryOptions = typeName === 'quickview' ? state.productDeliveryOptions : props.data.deliveryOptions?.result;\r\n */\r\n const deliveryOptions = (typeName === 'quickview' || typeName === 'mmx-quickview') ? state.productDeliveryOptions : props.data.deliveryOptions?.result;\r\n //mmx-feature --end\r\n const isEmailDelivery =\r\n ArrayExtensions.hasElements(deliveryOptions?.DeliveryOptions) && deliveryOptions!.DeliveryOptions[0].Code === emailDeliveryModeCode;\r\n const className = _getClassNamePrefix(typeName);\r\n //mmx-feature: allow mmx quickview --start\r\n /*\r\n const isDisabled = isUpdatingDimension && typeName === 'quickview';\r\n */\r\n const isDisabled = isUpdatingDimension && (typeName === 'quickview' || typeName === 'mmx-quickview');\r\n //mmx-feature: allow mmx quickview --end\r\n\r\n return {\r\n ContainerProps: {\r\n className: `${className}__add-to-cart-container`\r\n },\r\n button: product && (\r\n \r\n ),\r\n errorBlock: (\r\n \r\n )\r\n };\r\n}\r\n\r\n/**\r\n * Get the React.ReactElement contains price.\r\n * @param props - The IBuyboxExtentedProps.\r\n * @param state - The buybox state.\r\n * @returns The React.ReactElement.\r\n */\r\nexport function getBuyboxProductPrice(props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined {\r\n const { id, typeName, context, resources } = props;\r\n\r\n return (\r\n state.productPrice && (\r\n featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\r\n )?.IsEnabled\r\n }\r\n isSalesAgreementPriceFeatureEnabled={\r\n props.data.featureState.result?.find(\r\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature'\r\n )?.IsEnabled\r\n }\r\n priceResources={{\r\n priceRangeSeparator: resources.priceRangeSeparator,\r\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\r\n salesAgreementExpirationDatePrompt: resources.salesAgreementExpirationDatePrompt,\r\n salesAgreementCommittedQuantityPrompt: resources.salesAgreementCommittedQuantityPrompt,\r\n salesAgreementRemainingQuantityPrompt: resources.salesAgreementRemainingQuantityPrompt\r\n }}\r\n freePriceText={resources.priceFree}\r\n originalPriceText={resources.originalPriceText}\r\n currentPriceText={resources.currentPriceText}\r\n />\r\n )\r\n );\r\n}\r\n\r\nexport function getBuyboxProductRating(\r\n props: IBuyboxExtentedProps,\r\n productDetails?: IProductDetails\r\n): React.ReactElement | undefined {\r\n const { id, typeName, context, resources } = props;\r\n\r\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const ratingsSummary = props.data.ratingsSummary?.result ?? productDetails?.ratingsSummary;\r\n if (!ratingsSummary || !ratingsSummary.averageRating) {\r\n return
;\r\n }\r\n const ratingComponent = (\r\n \r\n );\r\n\r\n return ratingComponent;\r\n}\r\n\r\nfunction generateAddToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IAddToOrderTemplateDialogResources {\r\n return {\r\n addToOrderTemplateHeader: resources.addToOrderTemplateHeader,\r\n\r\n noOrderTemplatesMessage: resources.noOrderTemplatesMessage,\r\n noOrderTemplatesDescription: resources.noOrderTemplatesDescription,\r\n\r\n createAnOrderTemplateButtonText: resources.createAnOrderTemplateButtonText,\r\n createNewOrderTemplateButtonText: resources.createNewOrderTemplateButtonText,\r\n cancelOrderTemplateCreationButtonText: resources.cancelOrderTemplateCreationButtonText,\r\n\r\n selectTemplatesText: resources.selectTemplatesText,\r\n addToTemplateButtonText: resources.addToTemplateButtonText,\r\n lineItemsText: resources.lineItemsText\r\n };\r\n}\r\n\r\nfunction generateOrderTemplateNameDialogResources(resources: IBuyboxCommonResources): IOrderTemplateNameDialogResources {\r\n return {\r\n orderTemplateHeaderLabel: resources.createOrderTemplateHeader,\r\n orderTemplateTitleLabel: resources.orderTemplateTitle,\r\n orderTemplateNameAriaLabel: resources.orderTemplateNameAriaLabel,\r\n orderTemplateDescription: resources.createOrderTemplateDescription,\r\n\r\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\r\n\r\n orderTemplateButtonLabel: resources.createOrderTemplateButtonText,\r\n orderTemplateCancelButtonLabel: resources.cancelNewOrderTemplateCreationButtonText\r\n };\r\n}\r\n\r\nfunction generateItemAddedToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IItemAddedToOrderTemplateDialogResources {\r\n return {\r\n viewOrderTemplateButtonText: resources.viewOrderTemplateButtonText,\r\n continueShoppingButtonText: resources.continueShoppingButtonText,\r\n itemAddedToOrderTemplateHeaderItemOneText: resources.itemAddedToOrderTemplateHeaderItemOneText,\r\n itemAddedToOrderTemplateHeaderItemFormatText: resources.itemAddedToOrderTemplateHeaderItemFormatText,\r\n itemAddedToOrderTemplateHeaderMessageText: resources.itemAddedToOrderTemplateHeaderMessageText,\r\n freePriceText: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText\r\n };\r\n}\r\n\r\nfunction generateDuplicateItemsWhenAddingToOrderTemplateDialogResources(\r\n resources: IBuyboxCommonResources\r\n): IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\r\n return {\r\n duplicatedProductsHeader: resources.duplicatedProductsHeader,\r\n duplicatedProductsDescription: resources.duplicatedProductsDescription,\r\n updateQuantityButtonText: resources.updateQuantityButtonText,\r\n cancelDuplicateItemsButtonText: resources.cancelDuplicateItemsButtonText\r\n };\r\n}\r\n\r\n/**\r\n * Add to order template failed function.\r\n * @param callbacks -Buybox callbacks.\r\n * @param resources -Buybox common resources.\r\n * @param product -Simple product.\r\n * @returns Update error state.\r\n */\r\nconst onAddToOrderTemplateFailed = (callbacks: IBuyboxCallbacks, resources: IBuyboxCommonResources, product: SimpleProduct | undefined) => (\r\n result: IOrderTemplateActionErrorResult\r\n) => {\r\n callbacks.updateErrorState({\r\n errorHost: 'ORDER_TEMPLATE',\r\n configureErrors:\r\n result.status === 'MISSING_DIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\r\n });\r\n};\r\n\r\nexport function getBuyboxProductAddToOrderTemplate(\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks,\r\n isMultipleCatalogsFeatureEnabled?: boolean,\r\n catalogId?: number\r\n): IBuyboxAddToOrderTemplateViewProps | undefined {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: {\r\n orderTemplates: { result: orderTemplates },\r\n customerInformation: { result: customerInformation }\r\n },\r\n resources\r\n } = props;\r\n\r\n const product = props.data.product?.result;\r\n\r\n const {\r\n errorState: { configureErrors, quantityError, customAmountError, otherError, errorHost },\r\n quantity\r\n } = state;\r\n\r\n // If custom amount is selected, add-to-orderTemplate is disabled\r\n if (state.isCustomPriceSelected) {\r\n return undefined;\r\n }\r\n const className = _getClassNamePrefix(typeName);\r\n\r\n return {\r\n ContainerProps: {\r\n className: `${className}__add-to-order-template-container`\r\n },\r\n button: product && orderTemplates && (\r\n \r\n ),\r\n errorBlock: (\r\n \r\n )\r\n };\r\n}\r\n\r\n/**\r\n * Renders add to comparison button for the given product.\r\n * @param productComparisonButton - React element of the button.\r\n * @param product - Product information.\r\n * @param catalogId - Current catalog.\r\n * @param state - Buybox state.\r\n * @returns React element of the button.\r\n */\r\nexport function getBuyboxProductComparisonButton(\r\n productComparisonButton: React.ReactNode,\r\n product: SimpleProduct,\r\n catalogId: number,\r\n state: IBuyboxState\r\n): JSX.Element | undefined {\r\n if (state.isCustomPriceSelected) {\r\n return undefined;\r\n }\r\n\r\n validateCatalogId(catalogId);\r\n return React.cloneElement(productComparisonButton as React.ReactElement, { product, catalogId });\r\n}\r\n\r\n/**\r\n * Add to wishlist failed function.\r\n * @param callbacks -Buybox callbacks.\r\n * @param resources -Buybox resources.\r\n * @param product -Simple product.\r\n * @returns Update error state.\r\n */\r\nconst onAddToWishlistFailed = (callbacks: IBuyboxCallbacks, resources: IBuyboxCommonResources, product: SimpleProduct | undefined) => (\r\n result: IWishlistActionErrorResult\r\n) => {\r\n callbacks.updateErrorState({\r\n errorHost: 'WISHLIST',\r\n configureErrors:\r\n result.status === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\r\n });\r\n};\r\n\r\nexport function getBuyboxProductAddToWishlist(\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks,\r\n productDetails?: IProductDetails\r\n): IBuyboxAddToWishlistViewProps | undefined {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n data: {\r\n wishlists: { result: wishlists }\r\n },\r\n resources\r\n } = props;\r\n\r\n const product = props.data.product?.result ? props.data.product.result : productDetails?.product;\r\n\r\n const {\r\n errorState: { configureErrors, quantityError, customAmountError, otherError, errorHost },\r\n selectedProduct\r\n } = state;\r\n\r\n // If custom amount is selected, add-to-wishlist is disabled\r\n if (state.isCustomPriceSelected) {\r\n return undefined;\r\n }\r\n\r\n const className = _getClassNamePrefix(typeName);\r\n\r\n return {\r\n ContainerProps: {\r\n className: `${className}__add-to-wishlist-container`\r\n },\r\n button: product && (\r\n \r\n ),\r\n errorBlock: (\r\n \r\n )\r\n };\r\n}\r\n\r\n/**\r\n * On quantity change function.\r\n * @param callbacks -Buybox callbacks.\r\n * @returns Update quantity.\r\n */\r\nconst onQuantityChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number) => {\r\n if (callbacks.updateQuantity) {\r\n callbacks.updateQuantity(newValue);\r\n }\r\n};\r\n\r\nexport function getBuyboxProductQuantity(\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks\r\n): IBuyboxProductQuantityViewProps {\r\n const { resources, typeName } = props;\r\n\r\n const {\r\n quantity,\r\n min,\r\n max,\r\n errorState: { quantityError }\r\n } = state;\r\n\r\n const className = _getClassNamePrefix(typeName);\r\n\r\n return {\r\n ContainerProps: {\r\n className: `${className}__quantity`\r\n },\r\n LabelContainerProps: {\r\n tag: 'label',\r\n className: `${className}__product-quantity-label`,\r\n htmlFor: `${className}__product-quantity-input`\r\n },\r\n heading:
{resources.productQuantityHeading}
,\r\n errors: quantityError && (\r\n \r\n \r\n ),\r\n input: (\r\n \r\n )\r\n };\r\n}\r\n\r\nexport function getBuyboxShopSimilarButton(\r\n props: IBuyboxExtentedProps,\r\n buttonType: ShopSimiliarButtonType\r\n): IBuyboxShopSimilarLookViewProps {\r\n const { resources, context, typeName } = props;\r\n const product = props.data.product?.result;\r\n\r\n const className = _getClassNamePrefix(typeName);\r\n const navigationUrl = (shopSimiliarButtonType: ShopSimiliarButtonType) => () => {\r\n const searchURL = getUrlSync('search', context && context.actionContext);\r\n const separator = searchURL!.includes('?') ? '&' : '?';\r\n document.location.href = `${searchURL}${separator}productId=${product &&\r\n product.RecordId}&recommendation=${shopSimiliarButtonType}`;\r\n };\r\n const telemetryText =\r\n buttonType === ShopSimiliarButtonType.Looks ? TelemetryConstant.ShopSimliarLooks : TelemetryConstant.ShopSimliarDescription;\r\n const payLoad = getPayloadObject('click', telemetryContent, telemetryText);\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n const text = buttonType === ShopSimiliarButtonType.Looks ? resources.shopSimilarLooksText : resources.shopSimilarDescriptionText;\r\n\r\n return {\r\n ContainerProps: {\r\n className: `${className}__shopsimilar${buttonType}`\r\n },\r\n input: (\r\n \r\n {text}\r\n \r\n )\r\n };\r\n}\r\n\r\n/**\r\n * On price change function.\r\n * @param callbacks -Buybox callbacks.\r\n * @returns Update key in price.\r\n */\r\nconst onPriceChangeHandler = (callbacks: IBuyboxCallbacks) => (event: React.ChangeEvent) => {\r\n const value = event.currentTarget.value;\r\n callbacks.updateKeyInPrice(value.length > 0 ? Number(value) : Number.parseFloat(value));\r\n};\r\n\r\nexport function getBuyboxKeyInPrice(\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks\r\n): IBuyboxKeyInPriceViewProps {\r\n const { config, resources } = props;\r\n\r\n const {\r\n errorState: {}\r\n } = state;\r\n\r\n const className = _getClassNamePrefix(props.typeName);\r\n\r\n return {\r\n ContainerProps: {\r\n className: `${className}__key_in_price`\r\n },\r\n LabelContainerProps: {\r\n tag: 'label',\r\n className: `${className}__key_in_price-label`,\r\n htmlFor: `${className}__key_in_price`\r\n },\r\n heading:
{resources.buyboxKeyInPriceLabelHeading}
,\r\n input: (\r\n \r\n )\r\n };\r\n}\r\n\r\nexport const BuyboxErrorBlock: React.FC = ({\r\n showError,\r\n configureErrors,\r\n quantityError,\r\n customAmountError,\r\n otherError,\r\n resources\r\n}) => {\r\n let errorMessages: (string | undefined)[] = [];\r\n\r\n errorMessages = Object.values(configureErrors).filter(message => message !== undefined);\r\n\r\n if (quantityError) {\r\n errorMessages.push(quantityError);\r\n }\r\n\r\n if (customAmountError) {\r\n errorMessages.push(customAmountError);\r\n }\r\n\r\n if (otherError) {\r\n errorMessages.push(otherError);\r\n }\r\n\r\n return (\r\n 0} color='danger' assertive aria-label={resources.buyboxErrorMessageHeader}>\r\n \r\n {errorMessages.map((message, index) => {\r\n return (\r\n
\r\n {message}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport function getQuantityLimitsMessages(\r\n props: IBuyboxExtentedProps,\r\n state: IBuyboxState\r\n): React.ReactElement | undefined {\r\n const { resources } = props;\r\n\r\n const { min, max } = state;\r\n\r\n if (!_isOrderQuantityLimitsFeatureEnabled(props) && !_isChannelLimitsFeatureEnabled(props)) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n \r\n {_renderMaxLabel(props, max, resources.maxQuantityText)}\r\n {_renderMinLabel(props, min, resources.minQuantityText)}\r\n \r\n );\r\n}\r\n\r\nexport const RetailDefaultOrderQuantityLimitsFeatureName: string = 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature';\r\nexport const EcommerceQuantityLimitConfigurationsFeatureName: string =\r\n 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature';\r\nexport const RevertToSiteBuilderOrderQuantityLimitsSettingsCRTFeatureName: string = 'RevertToSiteBuilderOrderQuantityLimitsSettings';\r\n\r\nconst _renderMaxLabel = (\r\n props: IBuyboxExtentedProps,\r\n max: number | undefined,\r\n maxQuantityText: string\r\n): React.ReactElement | undefined => {\r\n const { resources, typeName } = props;\r\n const className = _getClassNamePrefix(typeName);\r\n if (max && max !== 0 && max !== Number.MAX_VALUE) {\r\n return (\r\n

\r\n {resources.informationIconText}\r\n