{"version":3,"file":"static/js/dca93d28a450d28ab96e.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-dimensions-for-master-product.ts?7864","webpack://Msdyn365.Commerce.Online/./src/actions/get-selected-variant.ts?43b0","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/buyboxInterface.ts?6ec7","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/utilities/error-utilities.ts?7407","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/buybox-components.tsx?03ba","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/swatch/email-handler.tsx?b2b4","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/swatch/swatch-item.tsx?68dc","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/swatch/swatch.tsx?0c6c","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/dropdown/dropdown.props.ts?f9a8","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/dropdown/dropdown.tsx?4fbf","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/common/buybox-product-configure.tsx?c82c","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/only-c-buybox.tsx?8ed3","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-buybox/only-c-buybox.view.tsx?ccf3","webpack://Msdyn365.Commerce.Online/./src/shared/functions/get-commercial-name.ts?6aba","webpack://Msdyn365.Commerce.Online/./src/utils/helper.tsx?0d7b","webpack://Msdyn365.Commerce.Online/./lib/only-c-buybox/module-registration.js?c9c6","webpack://Msdyn365.Commerce.Online/./node_modules/moment/locale/ sync ^\\.\\/.*$?b2df","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IProductDimensionsWithAvailabilitiesFull, ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\nimport {\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 {\r\n ProductDimension,\r\n ProductDimensionAvailabilitySearchCriteria,\r\n ProductDimensionValue,\r\n ProductDimensionValueInventoryAvailability,\r\n ProductsDataActions\r\n} from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport {\r\n ArrayExtensions,\r\n getSelectedProductIdFromActionInput,\r\n createInventoryAvailabilitySearchCriteria\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nexport interface IDimensionValueForSelectedVariant extends ProductDimensionValueInventoryAvailability, ProductDimensionValue {}\r\n\r\n/**\r\n * Defines the returned type for get dimensions for selected variant data action.\r\n * Includes old API format for backward compatibility and new API info for availabilities for new logic.\r\n */\r\nexport interface IDimensionForSelectedVariant extends ProductDimensionFull, IProductDimensionsWithAvailabilitiesFull {}\r\n\r\n/**\r\n * Input class for the getDimensionsForSelectedVariant data action.\r\n */\r\nexport class GetDimensionsForSelectedVariantInput implements IActionInput {\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public matchingDimensionValues: ProductDimension[];\r\n\r\n public constructor(productId: number, channelId: number, matchingDimensionValues?: ProductDimension[]) {\r\n this.productId = productId;\r\n this.channelId = channelId;\r\n this.matchingDimensionValues = matchingDimensionValues || [];\r\n }\r\n\r\n /**\r\n * Cache key.\r\n * @returns String.\r\n */\r\n public getCacheKey: () => string = () => `DimensionsForMasterProduct-${this.productId}-${this.channelId}`;\r\n\r\n /**\r\n * Cache object type.\r\n * @returns String.\r\n */\r\n public getCacheObjectType: () => string = () => 'DimensionsForMasterProductColorInput';\r\n\r\n /**\r\n * Cache type.\r\n * @returns String.\r\n */\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\n/**\r\n * Create input method for the getDimensionsForSelectedVariant data action.\r\n * @param inputData - The input data passed to the createInput method.\r\n * @returns - The input for the data action.\r\n */\r\nconst createDimensionsForSelectedVariantInput = (inputData: ICreateActionContext>): GetDimensionsForSelectedVariantInput => {\r\n const productId = getSelectedProductIdFromActionInput(inputData);\r\n\r\n if (productId) {\r\n return new GetDimensionsForSelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId, []);\r\n }\r\n throw new Error('Unable to create DimensionsForSelectedVariantInput, no productId found on module config or query');\r\n};\r\n\r\n/**\r\n * Converts new API type with availabilities to old API type to preserve backward compatibility.\r\n * @param dimensions - Dimensions to convert.\r\n * @returns Dimensions in old API format.\r\n */\r\nconst prepareDimensionsDataResult = (dimensions: IProductDimensionsWithAvailabilitiesFull[]): IDimensionForSelectedVariant[] => {\r\n return dimensions.map(newDimension => {\r\n const oldDimension: IDimensionForSelectedVariant = { ...newDimension };\r\n oldDimension.DimensionValues = ArrayExtensions.validValues(\r\n newDimension.dimensionValuesWithInventory?.map(value => value.DimensionValue)\r\n );\r\n return oldDimension;\r\n });\r\n};\r\n\r\n/**\r\n * Action Method for the getDimensionsForSelectedVariant Data Action.\r\n * @param input - Input for the data action.\r\n * @param context - Action context.\r\n * @returns Product dimensions with availability.\r\n */\r\nexport async function getDimensionsForSelectedVariantAction(\r\n input: GetDimensionsForSelectedVariantInput,\r\n context: IActionContext\r\n): Promise {\r\n const activeProduct = await ProductsDataActions.getByIdAsync({ callerContext: context }, input.productId, input.channelId);\r\n if (!ArrayExtensions.hasElements(activeProduct.Dimensions)) {\r\n return [];\r\n }\r\n\r\n const promises = activeProduct.Dimensions?.map(dimension => {\r\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(context, [], true, undefined, undefined);\r\n\r\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria = {\r\n RequestedDimensionTypeValue: dimension.DimensionTypeValue,\r\n MatchingDimensionValues: [],\r\n DefaultWarehouseOnly: shippingInventoryConfiguration.DefaultWarehouseOnly,\r\n FilterByChannelFulfillmentGroup: shippingInventoryConfiguration.FilterByChannelFulfillmentGroup,\r\n DeliveryModeTypeFilterValue: shippingInventoryConfiguration.DeliveryModeTypeFilterValue\r\n };\r\n\r\n const dimensionValuesPromise = ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\r\n { callerContext: context, queryResultSettings: {} },\r\n activeProduct.MasterProductId ? activeProduct.MasterProductId : activeProduct.RecordId,\r\n searchCriteria\r\n );\r\n const fullDimensionPromise = dimensionValuesPromise.then(dimensionValues => {\r\n const fullDimension: IProductDimensionsWithAvailabilitiesFull = {\r\n ...dimension,\r\n dimensionValuesWithInventory: dimensionValues\r\n };\r\n return fullDimension;\r\n });\r\n\r\n return fullDimensionPromise;\r\n });\r\n\r\n const dimensionValuesResults = await Promise.all(promises);\r\n\r\n return prepareDimensionsDataResult(dimensionValuesResults);\r\n}\r\n\r\n/**\r\n * The GetDimensionsForSelectedVariantDataAction\r\n * Get the currently selected Variant via the getSelectedVariant data action, and the gets the\r\n * available product dimensions for the variant via the getDimensionValues RetailServer API.\r\n */\r\nexport const getDimensionsForSelectedVariantActionDataAction = createObservableDataAction({\r\n id: 'get-dimensions-for-master-product',\r\n action: getDimensionsForSelectedVariantAction as IAction,\r\n input: createDimensionsForSelectedVariantInput\r\n});\r\n\r\nexport default getDimensionsForSelectedVariantActionDataAction;\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 { IProductDimensionsWithAvailabilitiesFull } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n getCatalogId,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICreateActionContext,\r\n IGeneric,\r\n IRequestContext\r\n} from '@msdyn365-commerce/core';\r\nimport {\r\n BypassCache,\r\n ProductDimension,\r\n ProductDimensionAvailabilitySearchCriteria,\r\n ProductsDataActions,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n ArrayExtensions,\r\n QueryResultSettingsProxy,\r\n generateProductImageUrl,\r\n getDimensionValuesFromQuery,\r\n getSelectedProductIdFromActionInput,\r\n createInventoryAvailabilitySearchCriteria\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getCommercialName } from '../shared/functions/get-commercial-name';\r\n\r\n/**\r\n * Stores data about the selected product.\r\n */\r\nexport interface ISelectedProduct extends SimpleProduct {\r\n productVariant?: SimpleProduct;\r\n}\r\n\r\n/**\r\n * Get selected variant action input class.\r\n */\r\nexport class SelectedVariantInput implements IActionInput {\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public matchingDimensionValues?: ProductDimension[];\r\n\r\n public bypassCache?: BypassCache;\r\n\r\n public catalogId?: number;\r\n\r\n public constructor(\r\n productId: number,\r\n channelId: number,\r\n matchingDimensionValues?: ProductDimension[],\r\n bypassCache?: BypassCache,\r\n requestContext?: IRequestContext\r\n ) {\r\n this.productId = productId;\r\n this.channelId = channelId;\r\n this.matchingDimensionValues = matchingDimensionValues;\r\n this.bypassCache = bypassCache;\r\n\r\n if (requestContext) {\r\n this.catalogId = getCatalogId(requestContext);\r\n }\r\n }\r\n\r\n /**\r\n * Cache key.\r\n * @returns String.\r\n */\r\n public getCacheKey: () => string = () => 'SelectedVariant';\r\n\r\n /**\r\n * Cache object type.\r\n * @returns String.\r\n */\r\n public getCacheObjectType: () => string = () => 'SimpleProduct';\r\n\r\n /**\r\n * Cache type.\r\n * @returns String.\r\n */\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\n/**\r\n * CreateInput method for the getSelectedVariant data action.\r\n * @param inputData - The input data passed to the createInput method.\r\n * @returns The input for the ata action getSelectedVariantNewAction.\r\n */\r\nconst createInput = (inputData: ICreateActionContext>): SelectedVariantInput => {\r\n const productId = getSelectedProductIdFromActionInput(inputData);\r\n\r\n if (productId) {\r\n return new SelectedVariantInput(\r\n +productId,\r\n +inputData.requestContext.apiSettings.channelId,\r\n undefined,\r\n undefined,\r\n inputData.requestContext\r\n );\r\n }\r\n throw new Error('Unable to create SelectedVariantInput, no productId found on module config or query');\r\n};\r\n\r\n/**\r\n * Checks if given product has any unmatched dimensions.\r\n * Modifies product entity to use matched dimension values.\r\n * @param product - The product to analyze and modify.\r\n * @param matchingDimensionValues - Matched dimensions.\r\n * @returns True if has any unmatched dimension, false if all dimensions are specified.\r\n */\r\nconst checkIfHasUnmatchedDimensions = (product: SimpleProduct, matchingDimensionValues: ProductDimension[]): boolean => {\r\n let hasUnmatchedDimension: boolean = false;\r\n if (product.Dimensions) {\r\n product.Dimensions = product.Dimensions.map(dimension => {\r\n return { ...dimension };\r\n });\r\n for (const dimension of product.Dimensions) {\r\n const matchedTargetDimension = matchingDimensionValues.find(\r\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\r\n );\r\n\r\n if (matchedTargetDimension) {\r\n dimension.DimensionValue = matchedTargetDimension.DimensionValue;\r\n } else {\r\n hasUnmatchedDimension = true;\r\n }\r\n }\r\n }\r\n return hasUnmatchedDimension;\r\n};\r\n\r\n/**\r\n * Retrieves product dimensions with availabilities.\r\n * @param product - Product for which the dimensions need to be retrieved.\r\n * @param matchingDimensionValues - Selected dimensions - filter criteria for the dimensions API.\r\n * @param context - Action context.\r\n * @param catalogId - Catalog id.\r\n * @returns Array of dimensions.\r\n */\r\nconst getFullDimensions = async (\r\n product: SimpleProduct,\r\n matchingDimensionValues: ProductDimension[],\r\n context: IActionContext,\r\n catalogId?: number\r\n) => {\r\n let fullDimensions: IProductDimensionsWithAvailabilitiesFull[] = [];\r\n const fullDimensionPromises = (product.Dimensions ?? []).map(dimension => {\r\n const shippingInventoryConfiguration = createInventoryAvailabilitySearchCriteria(context, [], true, undefined, undefined);\r\n const searchCriteria: ProductDimensionAvailabilitySearchCriteria = {\r\n RequestedDimensionTypeValue: dimension.DimensionTypeValue,\r\n MatchingDimensionValues: matchingDimensionValues,\r\n DefaultWarehouseOnly: shippingInventoryConfiguration.DefaultWarehouseOnly,\r\n FilterByChannelFulfillmentGroup: shippingInventoryConfiguration.FilterByChannelFulfillmentGroup,\r\n DeliveryModeTypeFilterValue: shippingInventoryConfiguration.DeliveryModeTypeFilterValue,\r\n CatalogId: catalogId\r\n };\r\n const dimensionValuesPromise = ProductsDataActions.getDimensionValuesWithEstimatedAvailabilitiesAsync(\r\n { callerContext: context, queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context) },\r\n product.MasterProductId ? product.MasterProductId : product.RecordId,\r\n searchCriteria\r\n );\r\n\r\n return dimensionValuesPromise.then(dimensionValues => {\r\n const fullDimension: IProductDimensionsWithAvailabilitiesFull = {\r\n ...dimension,\r\n dimensionValuesWithInventory: dimensionValues\r\n };\r\n return fullDimension;\r\n });\r\n });\r\n fullDimensions = await Promise.all(fullDimensionPromises);\r\n return fullDimensions;\r\n};\r\n\r\n/**\r\n * Retrieves product variant for the given input or undefined if not found.\r\n * @param input - Action input.\r\n * @param context - Action context.\r\n * @param fullDimensions - Product dimensions with availabilities.\r\n * @returns A product variant that is available or undefined.\r\n */\r\nconst getProductVariant = async (\r\n input: SelectedVariantInput,\r\n context: IActionContext,\r\n fullDimensions: IProductDimensionsWithAvailabilitiesFull[]\r\n) => {\r\n let productVariant: SimpleProduct | undefined;\r\n if (\r\n ArrayExtensions.hasElements(fullDimensions) &&\r\n ArrayExtensions.hasElements(fullDimensions[0].dimensionValuesWithInventory) &&\r\n ArrayExtensions.hasElements(fullDimensions[0].dimensionValuesWithInventory[0].ProductIds)\r\n ) {\r\n const variantProductId = fullDimensions[0].dimensionValuesWithInventory[0].ProductIds[0];\r\n const result = await ProductsDataActions.getByIdsAsync(\r\n {\r\n callerContext: context,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context),\r\n bypassCache: input.bypassCache\r\n },\r\n input.channelId,\r\n [variantProductId],\r\n null,\r\n input.catalogId ?? 0\r\n );\r\n productVariant = result[0];\r\n productVariant = { ...productVariant };\r\n const variantImageUrl = generateProductImageUrl(productVariant, context.requestContext.apiSettings);\r\n\r\n if (variantImageUrl) {\r\n productVariant.PrimaryImageUrl = variantImageUrl;\r\n }\r\n\r\n if (productVariant && context.requestContext.app.config?.useCommercialStyleName) {\r\n var attributes = await ProductsDataActions.getAttributeValuesAsync(\r\n {\r\n callerContext: context,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\r\n },\r\n productVariant.RecordId,\r\n input.channelId,\r\n input.catalogId ?? 0\r\n );\r\n productVariant.Name = getCommercialName(\r\n attributes,\r\n productVariant.Name,\r\n context.requestContext.app.config?.commercialStyleNameAttribute\r\n );\r\n }\r\n }\r\n\r\n return productVariant;\r\n};\r\n\r\n/**\r\n * Action method for the getSelectedVariant data action.\r\n * @param input - The action input class.\r\n * @param context - The action context.\r\n * @returns Simple product.\r\n */\r\nasync function getSelectedVariantAction(input: SelectedVariantInput, context: IActionContext): Promise {\r\n const matchingDimensionValues = input.matchingDimensionValues ?? getDimensionValuesFromQuery(context.requestContext.url.requestUrl);\r\n\r\n const result = await ProductsDataActions.getByIdsAsync(\r\n {\r\n callerContext: context,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context),\r\n bypassCache: input.bypassCache\r\n },\r\n input.channelId,\r\n [input.productId],\r\n null,\r\n input.catalogId ?? 0\r\n );\r\n let product = result[0];\r\n\r\n // Need to dereference this before editing it. Otherwise we might not\r\n // properly get the mobx events because if things aren't properly observable\r\n // they won't fire when you set them, and then if you don't deref the value in\r\n // the cache will match the value when you try to save it, so it won't detect any\r\n // changes there either\r\n product = { ...product };\r\n\r\n const hasUnmatchedDimension = checkIfHasUnmatchedDimensions(product, matchingDimensionValues);\r\n\r\n const newImageUrl = generateProductImageUrl(product, context.requestContext.apiSettings);\r\n\r\n if (newImageUrl) {\r\n product.PrimaryImageUrl = newImageUrl;\r\n }\r\n\r\n const fullDimensions: IProductDimensionsWithAvailabilitiesFull[] = await getFullDimensions(\r\n product,\r\n matchingDimensionValues,\r\n context,\r\n input.catalogId\r\n );\r\n\r\n // Retrieve product variants only if matching dimensions are provided.\r\n const productVariant: SimpleProduct | undefined = ArrayExtensions.hasElements(matchingDimensionValues)\r\n ? await getProductVariant(input, context, fullDimensions)\r\n : undefined;\r\n\r\n // Update dimension value back to the one that comes from API since the URL query might have a different format for the dimension values.\r\n if (productVariant?.Dimensions && product.Dimensions) {\r\n for (const dimension of product.Dimensions) {\r\n const matchedTargetDimensionFromApi = productVariant.Dimensions.find(\r\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\r\n );\r\n const matchedTargetDimensionFromSearch = matchingDimensionValues.find(\r\n targetDimension => targetDimension.DimensionTypeValue === dimension.DimensionTypeValue\r\n );\r\n\r\n if (matchedTargetDimensionFromSearch && matchedTargetDimensionFromApi) {\r\n dimension.DimensionValue = matchedTargetDimensionFromApi.DimensionValue;\r\n }\r\n }\r\n }\r\n\r\n if (!hasUnmatchedDimension && ArrayExtensions.hasElements(matchingDimensionValues) && productVariant) {\r\n return productVariant;\r\n }\r\n\r\n if (product && context.requestContext.app.config?.useCommercialStyleName) {\r\n var attributes = await ProductsDataActions.getAttributeValuesAsync(\r\n {\r\n callerContext: context,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\r\n },\r\n product.RecordId,\r\n input.channelId,\r\n input.catalogId ?? 0\r\n );\r\n product.Name = getCommercialName(attributes, product.Name, context.requestContext.app.config?.commercialStyleNameAttribute);\r\n }\r\n\r\n const selectedProduct: ISelectedProduct = product;\r\n selectedProduct.productVariant = productVariant;\r\n return selectedProduct;\r\n}\r\n\r\n/**\r\n * The complete getSelectedVariant data action.\r\n */\r\nexport const getSelectedVariantActionDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-selected-variant',\r\n action: getSelectedVariantAction as IAction,\r\n input: createInput\r\n});\r\n\r\nexport default getSelectedVariantActionDataAction;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ProductDimensionFull, RatingsSummary } from '@msdyn365-commerce/commerce-entities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport {\r\n AsyncResult,\r\n AttributeValue,\r\n CommerceList,\r\n Customer,\r\n FeatureState,\r\n ProductDeliveryOptions,\r\n ProductPrice,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport { IDimensionForSelectedVariant, IProductInventoryInformation, ISelectedProduct } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport interface IBuyboxState {\r\n quantity: number;\r\n min: number | undefined;\r\n max: number | undefined;\r\n errorState: IErrorState;\r\n selectedProduct?: Promise;\r\n productAvailableQuantity?: IProductInventoryInformation;\r\n productPrice?: ProductPrice;\r\n productDeliveryOptions?: ProductDeliveryOptions;\r\n modalOpen?: boolean;\r\n isUpdatingDimension?: boolean;\r\n isUpdatingDeliveryOptions?: boolean;\r\n isServiceItem?: boolean;\r\n isPriceKeyedIn?: boolean;\r\n keyInPriceAmount?: number;\r\n isCustomPriceSelected?: boolean;\r\n activeIndex?: number;\r\n animating?: boolean;\r\n lastUpdate?: number;\r\n mediaGalleryItems?: Msdyn365.IImageData[] | undefined;\r\n productAttributes?: AttributeValue[];\r\n productDescription: boolean;\r\n showCare: boolean;\r\n showComposition: boolean;\r\n sizeGuideModal: boolean;\r\n swatchProducts: SimpleProduct[];\r\n loaderOOSMail: boolean;\r\n}\r\n\r\nexport interface IBuyboxCommonData {\r\n // deliveryOptions: AsyncResult | undefined;\r\n product: AsyncResult;\r\n productDimensions: AsyncResult;\r\n productPrice: AsyncResult;\r\n // ratingsSummary: AsyncResult;\r\n storeSelectorStateManager: AsyncResult;\r\n wishlists: AsyncResult;\r\n // orderTemplates: AsyncResult;\r\n cart: AsyncResult;\r\n productAvailableQuantity: AsyncResult;\r\n customerInformation: AsyncResult;\r\n featureState: AsyncResult;\r\n masterProductDimensions: AsyncResult;\r\n}\r\nexport declare type IBuyboxErrorHost = 'ADDTOCART' | 'FINDINSTORE' | 'WISHLIST' | 'SHOPSIMILARITEM' | 'ORDER_TEMPLATE';\r\n\r\nexport interface IErrorState {\r\n errorHost?: IBuyboxErrorHost;\r\n configureErrors: { [configureId: string]: string | undefined };\r\n quantityError?: string;\r\n customAmountError?: string;\r\n otherError?: string;\r\n}\r\n\r\nexport interface IBuyboxAddToCartViewProps {\r\n ContainerProps: INodeProps;\r\n errorBlock?: React.ReactNode;\r\n button?: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxAddToOrderTemplateViewProps {\r\n ContainerProps: INodeProps;\r\n errorBlock?: React.ReactNode;\r\n button?: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxProductQuantityViewProps {\r\n ContainerProps: INodeProps;\r\n LabelContainerProps: INodeProps;\r\n\r\n heading: React.ReactNode;\r\n errors?: React.ReactNode;\r\n\r\n input: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxAddToWishlistViewProps {\r\n ContainerProps: INodeProps;\r\n errorBlock?: React.ReactNode;\r\n button?: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxShopSimilarLookViewProps {\r\n ContainerProps: INodeProps;\r\n errors?: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport enum ShopSimiliarButtonType {\r\n Looks = 'looks',\r\n Description = 'descriptions'\r\n}\r\n\r\nexport interface IBuyboxKeyInPriceViewProps {\r\n ContainerProps: INodeProps;\r\n LabelContainerProps: INodeProps;\r\n heading: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxErrorBlockProps {\r\n configureErrors: { [configureId: string]: string | undefined };\r\n quantityError?: string;\r\n customAmountError?: string;\r\n otherError?: string;\r\n resources: IBuyboxCommonResources;\r\n showError: boolean;\r\n}\r\n\r\nexport interface IBuyboxProductConfigureProps {\r\n product: SimpleProduct;\r\n productDimensions: ProductDimensionFull[];\r\n resources: IBuyboxCommonResources;\r\n channelId: number;\r\n actionContext: Msdyn365.IActionContext;\r\n errors: { [configureId: string]: string | undefined };\r\n\r\n dimensionChanged?(newValue: number): void;\r\n}\r\n\r\nexport interface IBuyboxProductConfigureDropdownViewProps {\r\n ContainerProps: INodeProps;\r\n LabelContainerProps: INodeProps;\r\n\r\n heading: React.ReactNode;\r\n errors?: React.ReactNode;\r\n\r\n select: React.ReactNode;\r\n}\r\n\r\nexport interface IBuyboxProductConfigureViewProps {\r\n ContainerProps: INodeProps;\r\n\r\n dropdowns: IBuyboxProductConfigureDropdownViewProps[];\r\n}\r\n\r\nexport interface IBuyboxCallbacks {\r\n updateQuantity(newQuantity: number): boolean;\r\n updateKeyInPrice(keyInPrice: number): void;\r\n updateErrorState(newErrorState: IErrorState): void;\r\n updateSelectedProduct(\r\n selectedProduct: Promise,\r\n newInventory: IProductInventoryInformation | undefined,\r\n newPrice: ProductPrice | undefined,\r\n newDeliveryOptions: ProductDeliveryOptions | undefined\r\n ): void;\r\n getDropdownName(dimensionType: number, resources: IBuyboxCommonResources): string;\r\n dimensionSelectedAsync(selectedDimensionId: number, selectedDimensionValueId: string): Promise;\r\n changeModalOpen(isModalOpen: boolean): void;\r\n changeUpdatingDimension(isUpdatingDimension: boolean): void;\r\n changeUpdatingDeliveryOptions?(isUpdatingDeliveryOptions: boolean): void;\r\n toggleSizeGuideModal(sizeGuideModal: boolean): void;\r\n toggleProductDescription(productDescription: boolean): void;\r\n toggleCare(showCare: boolean): void;\r\n toggleComposition(showComposition: boolean): void;\r\n triggerOOSEmailHandler(email: string): Promise;\r\n triggerOOSModal: () => string;\r\n}\r\n\r\nexport interface IBuyboxExtentedProps extends Msdyn365.IModule {\r\n resources: IBuyboxCommonResources;\r\n config: IBuyboxCommonConfig;\r\n slots: {\r\n sizeGuideSlot: React.ReactNode[];\r\n mediaGallery: React.ReactNode[];\r\n storeSelector: React.ReactNode[];\r\n textBlocks: React.ReactNode[];\r\n socialShare: React.ReactNode[];\r\n };\r\n}\r\n\r\nexport interface IBuyboxCommonConfig {\r\n titleHeadingTag?: titleHeadingTag;\r\n className?: string;\r\n enableShopSimilarLooks?: boolean;\r\n enableShopSimilarDescription?: boolean;\r\n enableKeyInPrice?: boolean;\r\n minimumKeyInPrice?: number;\r\n maximumKeyInPrice?: number;\r\n sizeGuideButtontext?: string;\r\n productDescriptionButtonText?: string;\r\n friendlyDescriptionAttr?: string;\r\n customDescriptionAttr?: string;\r\n careDescriptionButtonText?: string;\r\n careDescriptionAttrArray?: string[];\r\n compositionDescriptionButtonText?: string;\r\n compositionDescriptionAttr?: string;\r\n enableMasterDimensions?: boolean;\r\n}\r\n\r\nexport interface IProductDetails {\r\n product?: ISelectedProduct | null;\r\n productPrice?: ProductPrice | null;\r\n ratingsSummary?: RatingsSummary;\r\n productAvailableQuantity?: IProductInventoryInformation[];\r\n cart?: ICartState | undefined;\r\n productDimensions?: IDimensionForSelectedVariant[] | null;\r\n}\r\n\r\nexport enum titleHeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IBuyboxCommonResources {\r\n priceFree: string;\r\n invalidSmallCustomAmountText: string;\r\n invalidLargeCustomAmountText: string;\r\n buyBoxGoToCartText: string;\r\n buyBoxContinueShoppingText: string;\r\n closeNotificationLabel: string;\r\n buyBoxSingleItemText: string;\r\n buyBoxMultiLineItemFormatText: string;\r\n buyBoxHeaderMessageText: string;\r\n originalPriceText: string;\r\n currentPriceText: string;\r\n addedQuantityText: string;\r\n addToCartText: string;\r\n outOfStockText: string;\r\n averageRatingAriaLabel: string;\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 duplicatedProductsHeader: string;\r\n duplicatedProductsDescription: string;\r\n updateQuantityButtonText: string;\r\n cancelDuplicateItemsButtonText: string;\r\n addToWishlistButtonText: string;\r\n removeFromWishlistButtonText: string;\r\n addToWishlistMessage: string;\r\n removedFromWishlistMessage: string;\r\n addItemToWishlistError: string;\r\n removeItemFromWishlistError: string;\r\n nameOfWishlist: string;\r\n productQuantityHeading: string;\r\n inputQuantityAriaLabel: string;\r\n buyboxKeyInPriceLabelHeading: string;\r\n buyboxErrorMessageHeader: string;\r\n maxQuantityText: string;\r\n minQuantityText: string;\r\n selectDimensionFormatString: string;\r\n errorMessageOutOfStock: string;\r\n errorMessageOutOfRangeOneLeft: string;\r\n errorMessageOutOfRangeFormat: string;\r\n addToOrderTemplateButtonText: string;\r\n addedToCartFailureMessage: string;\r\n maxQuantityLimitText: string;\r\n productDimensionTypeColorErrorMessage: string;\r\n productDimensionTypeConfigurationErrorMessage: string;\r\n productDimensionTypeSizeErrorMessage: string;\r\n productDimensionTypeAmountErrorMessage: string;\r\n productDimensionTypeStyleErrorMessage: string;\r\n shopSimilarLooksText?: string;\r\n shopSimilarDescriptionText?: string;\r\n addToOrderTemplateButtonTooltip: string;\r\n loadingText?: string;\r\n informationIconText?: string;\r\n priceRangeSeparator?: string;\r\n swatchItemAriaLabel?: string;\r\n salesAgreementPricePrompt?: string;\r\n salesAgreementExpirationDatePrompt?: string;\r\n salesAgreementCommittedQuantityPrompt?: string;\r\n salesAgreementRemainingQuantityPrompt?: string;\r\n emailSuccessHeading?: string;\r\n emailSuccessContent?: string;\r\n emailInStock?: string;\r\n emailOutOfStock?: string;\r\n emailOutOfStockMsg1?: string;\r\n emailOutOfStockMsg2?: string;\r\n emailOutOfStockMsg3?: string;\r\n notifyBoxIAgree?: string;\r\n emailErrorMsg?: string;\r\n submitTxt?: string;\r\n styleNoHeading: string;\r\n lifeTag: string;\r\n sizeAndColorSelectionHeading: string;\r\n sizeSelectionHeading: string;\r\n colorSelectionHeading: string;\r\n}\r\n\r\nexport enum DropdownIds {\r\n color = '1',\r\n size = '3',\r\n style = '4'\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IAddToCartFailureResult } from '@msdyn365-commerce/components';\r\nimport { IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { OrgUnitLocation, ProductAvailableQuantity, ProductDimension, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { IBuyboxCommonResources } from '../buyboxInterface';\r\n\r\n/**\r\n * Get the quantity limit.\r\n * @param context - The context.\r\n * @param productAvailability - The product availability.\r\n * @returns The quantity limit.\r\n */\r\nexport function getQuantityLimit(context: ICoreContext>, productAvailability: ProductAvailableQuantity | undefined): number {\r\n // Get the quantity limit for the product\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- need read from config.\r\n const maxQuantityForCartLineItem: number | undefined = context.app.config.maxQuantityForCartLineItem;\r\n const availableQty = productAvailability?.AvailableQuantity;\r\n const defaultQuantityLimit = 10;\r\n\r\n let quantityLimit: number;\r\n\r\n if (maxQuantityForCartLineItem === undefined && availableQty === undefined) {\r\n quantityLimit = defaultQuantityLimit;\r\n } else if (availableQty === undefined) {\r\n quantityLimit = maxQuantityForCartLineItem ?? defaultQuantityLimit;\r\n } else if (maxQuantityForCartLineItem === undefined) {\r\n quantityLimit = availableQty;\r\n } else {\r\n quantityLimit = Math.min(maxQuantityForCartLineItem, availableQty);\r\n }\r\n\r\n return quantityLimit;\r\n}\r\n\r\n/**\r\n * Get the element index.\r\n * @param cart - The cart.\r\n * @param context - The context.\r\n * @param product - The product.\r\n * @param location - The location.\r\n * @returns The index of the element.\r\n */\r\nexport function getElementIndex(\r\n cart: ICartState | undefined,\r\n context: ICoreContext>,\r\n product: SimpleProduct | undefined,\r\n location: OrgUnitLocation | undefined\r\n): number {\r\n // Get the quantity of the product in cart\r\n let elementFoundAt: number = -1;\r\n\r\n const productIdToFind = product?.RecordId;\r\n\r\n for (let index = 0; index < cart!.cart.CartLines!.length; index++) {\r\n if (\r\n cart!.cart.CartLines![index].ProductId === productIdToFind &&\r\n (cart!.cart.CartLines![index].DeliveryMode || '') ===\r\n (location && (context.actionContext.requestContext.channel?.PickupDeliveryModeCode ?? '')) &&\r\n (cart!.cart.CartLines![index].FulfillmentStoreId || '') === (location?.OrgUnitNumber || '')\r\n ) {\r\n elementFoundAt = index;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return elementFoundAt;\r\n}\r\n\r\nexport function getQuantityError(stockLeft: number | undefined, resources: IBuyboxCommonResources): string | undefined {\r\n if (!stockLeft || stockLeft <= 0) {\r\n return resources.errorMessageOutOfStock;\r\n } else if (stockLeft === 1) {\r\n return resources.errorMessageOutOfRangeOneLeft;\r\n }\r\n return resources.errorMessageOutOfRangeFormat.replace('{numLeft}', stockLeft.toString());\r\n}\r\n\r\nexport function getGenericError(\r\n result: IAddToCartFailureResult,\r\n cart: ICartState | undefined,\r\n resources: IBuyboxCommonResources,\r\n context: ICoreContext>,\r\n product: SimpleProduct | undefined,\r\n productAvailability: ProductAvailableQuantity | undefined,\r\n location: OrgUnitLocation | undefined\r\n): string | undefined {\r\n if (result.failureReason === 'EMPTYINPUT') {\r\n return resources.addedToCartFailureMessage;\r\n } else if (result.failureReason === 'CARTACTIONFAILED') {\r\n if (result.cartActionResult && result.cartActionResult.substatus === 'MAXQUANTITY') {\r\n // Get the quantity of the product in cart\r\n const elementFoundAt: number = getElementIndex(cart, context, product, location);\r\n\r\n let currentQuantity: number = 0;\r\n if (elementFoundAt !== -1) {\r\n const cartLineToUpdate = { ...cart!.cart.CartLines![elementFoundAt] };\r\n currentQuantity = cartLineToUpdate.Quantity ?? 0;\r\n }\r\n\r\n // Get the quantity limit for the product\r\n const quantityLimit = getQuantityLimit(context, productAvailability);\r\n return resources.maxQuantityLimitText\r\n .replace('{curQuantity}', currentQuantity.toString())\r\n .replace('{maxQuantity}', quantityLimit.toString());\r\n } else if (\r\n result.cartActionResult &&\r\n (result.cartActionResult.substatus === 'QUANTITYLIMITS' || result.cartActionResult.substatus === 'INVOICEINCART')\r\n ) {\r\n return result.cartActionResult.errorDetails?.LocalizedMessage;\r\n }\r\n\r\n if (result.cartActionResult?.validationResults && ArrayExtensions.hasElements(result.cartActionResult.validationResults)) {\r\n return result.cartActionResult.validationResults\r\n .map(item => {\r\n return StringExtensions.isNullOrEmpty(item.LocalizedMessage)\r\n ? item.ErrorContext ?? item.ErrorResourceId\r\n : item.LocalizedMessage;\r\n })\r\n .toString();\r\n }\r\n\r\n return resources.addedToCartFailureMessage;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nexport function getConfigureErrors(\r\n result: ProductDimension[] | undefined,\r\n resources: IBuyboxCommonResources,\r\n isGiftCard?: boolean\r\n): { [configureId: string]: string | undefined } {\r\n if (!result) {\r\n return {};\r\n }\r\n\r\n const dimensions: { [configureId: string]: string | undefined } = {};\r\n\r\n for (const dimension of result) {\r\n dimensions[dimension.DimensionTypeValue] = getDimensionErrorString(dimension.DimensionTypeValue, resources, isGiftCard);\r\n }\r\n\r\n return dimensions;\r\n}\r\n\r\nexport function getDimensionErrorString(dimensionTypeValue: number, resources: IBuyboxCommonResources, isGiftCard?: boolean): string {\r\n switch (dimensionTypeValue) {\r\n case 1: // ProductDimensionType.Color\r\n return resources.productDimensionTypeColorErrorMessage;\r\n case 2: // ProductDimensionType.Configuration\r\n return resources.productDimensionTypeConfigurationErrorMessage;\r\n case 3: // ProductDimensionType.Size\r\n return resources.productDimensionTypeSizeErrorMessage;\r\n case 4: // ProductDimensionType.Style\r\n return isGiftCard ? resources.productDimensionTypeAmountErrorMessage : resources.productDimensionTypeStyleErrorMessage;\r\n default:\r\n return '';\r\n }\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n AddToWishlistComponent,\r\n IAddToCartFailureResult,\r\n IAddToCartResources,\r\n IWishlistActionErrorResult,\r\n PriceComponent\r\n // RatingComponent,\r\n // IOrderTemplateActionErrorResult,\r\n // IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\r\n // AddToOrderTemplateComponent\r\n} from '@msdyn365-commerce/components';\r\nimport { AddToCartComponent } from '../../../themes/only/views/components/addtocart.component';\r\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\r\nimport { AttributeValue, ProductAvailableQuantity, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, DeliveryMode } 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 Modal,\r\n ModalBody\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IBuyboxAddToCartViewProps,\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 // IBuyboxAddToOrderTemplateViewProps\r\n} from './buyboxInterface';\r\nimport { getConfigureErrors, getGenericError, getQuantityError } from './utilities/error-utilities';\r\nimport { IOnlyCBuyboxResources } from '..';\r\nimport Collapse from 'reactstrap/lib/Collapse';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core-internal';\r\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\r\n\r\nconst _getClassNamePrefix = (typeName: string): string => {\r\n return typeName.toLocaleLowerCase() === 'quickview' ? 'ms-quickView' : 'ms-buybox';\r\n};\r\n\r\nconst _getaddToCartText = (\r\n product: SimpleProduct,\r\n productDimensions: ProductDimensionFull[],\r\n resources: IBuyboxCommonResources,\r\n callbacks: IBuyboxCallbacks\r\n): string => {\r\n const selectedSize = product?.Dimensions?.find(item => item.DimensionTypeValue === 3 && item.DimensionValue?.Value);\r\n const selectedColor = product?.Dimensions?.find(item => item.DimensionTypeValue === 1);\r\n const colorExist = !!productDimensions?.find(productDimension =>\r\n productDimension.DimensionValues?.find(dimension => dimension.Value === selectedColor?.DimensionValue?.Value)\r\n );\r\n const sizeExist = !!productDimensions?.find(productDimension =>\r\n productDimension.DimensionValues?.find(dimension => dimension.Value === selectedSize?.DimensionValue?.Value)\r\n );\r\n callbacks.changeUpdatingDimension(true);\r\n if (!colorExist && !sizeExist) {\r\n return resources.sizeAndColorSelectionHeading;\r\n }\r\n if (!sizeExist) {\r\n return resources.sizeSelectionHeading;\r\n }\r\n if (!colorExist) {\r\n return resources.colorSelectionHeading;\r\n } else {\r\n callbacks.changeUpdatingDimension(false);\r\n return resources.addToCartText;\r\n }\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\r\n return product &&

{product.Description}

;\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) => (result: IAddToCartFailureResult) => {\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 undefined\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 quantityErrorForState = getGenericError(result, cart, props.resources, props.context, product, productAvailability, undefined);\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 if (typeName === 'quickview') {\r\n callbacks.changeModalOpen(false);\r\n }\r\n};\r\n\r\nconst _sizeGuideModal = (sizeGuideModal: boolean, callbacks: IBuyboxCallbacks) => {\r\n callbacks.toggleSizeGuideModal(sizeGuideModal);\r\n};\r\nconst _productDescription = (productDescription: boolean, callbacks: IBuyboxCallbacks) => {\r\n callbacks.toggleProductDescription(productDescription);\r\n};\r\nconst _careDescription = (showCare: boolean, callbacks: IBuyboxCallbacks) => {\r\n callbacks.toggleCare(showCare);\r\n};\r\nconst _compositionDescription = (showComposition: boolean, callbacks: IBuyboxCallbacks) => {\r\n callbacks.toggleComposition(showComposition);\r\n};\r\n\r\nexport function getBuyboxAddToCart(\r\n props: IBuyboxExtentedProps,\r\n onlyBuyBoxResources: IOnlyCBuyboxResources,\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 const productDimensions = props.data.productDimensions?.result || [];\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 const isProductQuantityLoading = typeName !== 'quickview' && props.data.productAvailableQuantity.status === 'LOADING';\r\n if (isProductQuantityLoading) {\r\n callbacks.changeUpdatingDimension(false);\r\n }\r\n\r\n // const isLoadingDeliveryOptions = typeName !== 'quickview' && props.data.deliveryOptions?.status === 'LOADING';\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 // const deliveryOptions = props.data.deliveryOptions?.result;\r\n // const isEmailDelivery = ArrayExtensions.hasElements(deliveryOptions?.DeliveryOptions) && deliveryOptions!.DeliveryOptions[0].Code === emailDeliveryModeCode;\r\n const className = _getClassNamePrefix(typeName);\r\n // VSI - Customization\r\n // disable Add to Cart button when wrong size given in url or size,color not selected and respective message.\r\n const isDisabled = isUpdatingDimension; // && typeName === 'quickview';\r\n const customAddToCartText = _getaddToCartText(product!, productDimensions, resources, callbacks);\r\n // VSI - Customization 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\n// export 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\n// function 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\n// function 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\n// function 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\n// function 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\n// const 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\n// export function getBuyboxProductAddToOrderTemplate(\r\n// props: IBuyboxExtentedProps,\r\n// state: IBuyboxState,\r\n// callbacks: IBuyboxCallbacks\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 * 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 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)) {\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\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