{"version":3,"sources":["webpack:///src/common/index.ts?ee63","webpack:///src/common/buybox-components.tsx?a1e9","webpack:///src/modules/quickview/quickview.view.tsx?60f3","webpack:///src/modules/buybox/components/buybox-find-in-store.tsx?24db","webpack:///src/modules/buybox/buybox.tsx?8cd9","webpack:///src/common/dropdown/dropdown.tsx?fc49","webpack:///src/common/dropdown/index.ts?13a2","webpack:///src/modules/buybox/buybox.view.tsx?7b02","webpack:///src/modules/quickview/utilities/get-valid-product-images.ts?1caa","webpack:///src/modules/quickview/quickview.tsx?2e18","webpack:///src/modules/quickview/utilities/get-product-details.ts?7091","webpack:///src/common/buybox-product-configure.tsx?6fe5","webpack:///src/common/buyboxInterface.ts?bff9","webpack:///src/common/utilities/error-utilities.ts?b6fd"],"names":["_getClassNamePrefix","typeName","toLocaleLowerCase","getBuyBoxInventoryLabel","props","productDetails","productAvailableQuantity","data","result","className","length","StockLevelLabel","inventoryClassName","StockLevelCode","toLowerCase","getBuyboxProductTitle","config","titleHeadingTag","product","headingTag","text","Name","getBuyboxProductDescription","Description","getBuyboxProductUnitOfMeasure","context","app","unitOfMeasureDisplayType","DefaultUnitOfMeasure","telemetry","warning","telemetryContent","getBuyboxAddToCart","state","callbacks","defaultMinimumKeyInPrice","defaultMaximumKeyInPrice","id","resources","minimumKeyInPrice","maximumKeyInPrice","cart","quantity","errorState","configureErrors","quantityError","customAmountError","otherError","errorHost","selectedProduct","isUpdatingDimension","isUpdatingDeliveryOptions","isServiceItem","keyInPriceAmount","productAvailability","ProductAvailableQuantity","undefined","dialogStrings","goToCartText","buyBoxGoToCartText","continueShoppingText","buyBoxContinueShoppingText","closeNotificationLabel","headerItemOneText","buyBoxSingleItemText","headerItemFormatText","buyBoxMultiLineItemFormatText","headerMessageText","buyBoxHeaderMessageText","freePriceText","priceFree","originalPriceText","currentPriceText","addedQuantityText","isLoading","status","changeUpdatingDimension","isLoadingDeliveryOptions","deliveryOptions","changeUpdatingDeliveryOptions","request","telemetryPageName","emailDeliveryModeCode","actionContext","requestContext","channel","EmailDeliveryModeCode","isEmailDelivery","hasElements","DeliveryOptions","Code","ContainerProps","button","addToCartText","outOfStockText","navigationUrl","price","productPrice","onError","quantityErrorForState","customAmountErrorForState","otherErrorForState","failureReason","stockLeft","cartActionResult","substatus","formatedAmountLimit","cultureFormatter","formatCurrency","invalidSmallCustomAmountText","replace","invalidLargeCustomAmountText","updateErrorState","missingDimensions","IsGiftCard","getSelectedProduct","gridSettings","imageSettings","viewports","xs","q","w","h","lg","xl","lazyload","isAddServiceItemToCart","isPriceKeyedIn","customPriceAmount","isCustomPriceSelected","isOrderQuantityLimitsFeatureEnabled","_isOrderQuantityLimitsFeatureEnabled","isAddEmailDeliveryItemToCart","onAdd","changeModalOpen","isNavigationToCartPageDisabled","errorBlock","BuyboxErrorBlock","showError","getBuyboxProductPrice","getBuyboxProductRating","ratingsSummary","ratingComponent","averageRating","avgRating","readOnly","ariaLabel","averageRatingAriaLabel","ratingCount","reviewsCount","generateAddToOrderTemplateDialogResources","addToOrderTemplateHeader","noOrderTemplatesMessage","noOrderTemplatesDescription","createAnOrderTemplateButtonText","createNewOrderTemplateButtonText","cancelOrderTemplateCreationButtonText","selectTemplatesText","addToTemplateButtonText","lineItemsText","generateOrderTemplateNameDialogResources","orderTemplateHeaderLabel","createOrderTemplateHeader","orderTemplateTitleLabel","orderTemplateTitle","orderTemplateNameAriaLabel","orderTemplateDescription","createOrderTemplateDescription","defaultOrderTemplateName","orderTemplateButtonLabel","createOrderTemplateButtonText","orderTemplateCancelButtonLabel","cancelNewOrderTemplateCreationButtonText","generateItemAddedToOrderTemplateDialogResources","viewOrderTemplateButtonText","continueShoppingButtonText","itemAddedToOrderTemplateHeaderItemOneText","itemAddedToOrderTemplateHeaderItemFormatText","itemAddedToOrderTemplateHeaderMessageText","generateDuplicateItemsWhenAddingToOrderTemplateDialogResources","duplicatedProductsHeader","duplicatedProductsDescription","updateQuantityButtonText","cancelDuplicateItemsButtonText","getBuyboxProductAddToOrderTemplate","orderTemplates","customerInformation","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","addToOrderTemplateDialogResources","createOrderTemplateDialogResources","itemAddedToOrderTemplateDialogResources","duplicateItemsWhenAddingToOrderTemplateDialogResources","shouldShowButtonFailedTooltip","getBuyboxProductAddToWishlist","wishlists","addToWishlistButtonText","removeFromWishlistButtonText","addToWishlistMessage","removedFromWishlistMessage","addItemToWishlistError","removeItemFromWishlistError","nameOfWishlist","getBuyboxProductQuantity","max","LabelContainerProps","tag","htmlFor","heading","productQuantityHeading","errors","input","currentCount","onChange","newValue","updateQuantity","inputQuantityAriaLabel","getBuyboxShopSimilarButton","buttonType","telemetryText","Looks","ShopSimliarLooks","ShopSimliarDescription","payLoad","attribute","shopSimilarLooksText","shopSimilarDescriptionText","title","onClick","shopSimiliarButtonType","searchURL","separator","includes","document","location","href","RecordId","getBuyboxKeyInPrice","buyboxKeyInPriceLabelHeading","type","e","value","currentTarget","updateKeyInPrice","Number","parseFloat","min","errorMessages","Object","values","filter","message","push","isOpen","color","assertive","buyboxErrorMessageHeader","map","index","key","getQuantityLimitsMessages","_renderMaxLabel","maxQuantityText","_renderMinLabel","minQuantityText","RetailDefaultOrderQuantityLimitsFeatureName","MAX_VALUE","toString","featureState","find","IsEnabled","defaultOrderQuantityLimitsFeatureConfig","platform","enableDefaultOrderQuantityLimits","customerInfo","IsB2b","_renderConfigureDropdown","dropdown","select","_renderQuickViewPopup","ModalContainer","ModalHeaderContainer","ModalFooterContainer","ModalHeaderContent","ModalBodyContainer","addToWishlist","addToCart","cartContainerProps","_renderBodyContent","_renderAddToCart","_renderAddToWishlist","rating","keyInPrice","configure","inventoryLabel","quantityLimitsMessages","seeDetailsbutton","loading","ProductInfoContainerProps","MediaGalleryContainerProps","CarouselProps","unitOfMeasure","dropdowns","_renderConfigure","_renderKeyInPrice","_renderQuantity","QuickViewFunctionalComponent","quickView","quickViewButton","isModalOpen","getBuyboxFindInStore","slots","storeSelector","findInStoreHeaderText","findInStoreDescriptionText","findInStoreLinkText","descriptionTextToShowAllPickupOptions","PickupDeliveryModeCode","storeSelectorStateManager","retailMulitplePickupMFeatureState","modalOpen","async","modules","dataProduct","Dimensions","dimension","DimensionValue","Value","storeSelectorId","keys","openDialog","onLocationSelected","orgUnitLocation","deliveryMode","Promise","resolve","behavior","addToCartBehavior","addProductToCart","count","then","failureResult","goToCart","window","assign","showModal","showNotification","defaultImageSettings","friendlyName","notification","instance","addNotification","catch","error","exception","debug","findInStoreOnClick","option","priceComponent","popupProps","productQuantity","setModalOpen","renderModalPopup","openFindInStoreDialog","description","productPickupOptionList","item","disabled","modal","super","dimensionUpdateQueue","dimensions","buyboxCallbacks","newQuantity","this","setState","newErrorState","updateSelectedProduct","newSelectedProduct","newInventory","newPrice","newDeliveryOptions","productDeliveryOptions","_updatePrice","dimensionSelectedAsync","selectedDimensionId","selectedDimensionValueId","enqueue","_updateDimensions","ProcessWasDiscardedFromTheQueue","getDropdownName","dimensionType","_getDropdownName","customPrice","productDimensions","apiSettings","channelId","dimensionsToUpdate","clearErrorState","mappedDimensions","DimensionTypeValue","_updateDimensionValue","ExtensionProperties","reject","newProduct","MasterProductId","variantProduct","newAvailableQuantity","RetailMulitplePickupMFeatureState","_updateQuantitiesInState","productDimensionFull","newValueId","DimensionValues","isGiftCard","productDimensionTypeColor","productDimensionTypeConfiguration","productDimensionTypeSize","productDimensionTypeAmount","productDimensionTypeStyle","PRODUCTASSERVICE","ItemTypeValue","mediaGallery","viewProps","ModuleProps","moduleProps","findInStore","addToOrderTemplate","hideRating","shopSimilarLook","enableShopSimilarLooks","shopSimilarDescription","enableShopSimilarDescription","enableKeyInPrice","renderView","CustomerContextualPrice","Behavior","DefaultQuantity","MinimumQuantity","MaximumQuantity","maxQuantityForCartLineItem","featureStatuses","information","Dropdown","selectMenu","_onChanged","selectedIndex","event","target","dropdownId","selectId","selectedValue","innerText","dropdownName","current","dropdownList","dropdownToggleName","ref","selected","hidden","_renderAddToOrderTemplate","_renderSocialShare","socialShare","_renderFindInStore","_renderShopSimilarItem","shopSimilarItem","getValidProductImages","productId","actionInput","mediaLocations","all","mediaLocation","imageData","src","Uri","altText","AltText","imageSettingsVal","imageConcatVal","http","XMLHttpRequest","open","addEventListener","send","validateMediaLocaionAsync","pairs","pair","Component","quickViewCallbacks","_hideQuickViewDialog","defaultGalleryImageSettings","sm","md","cropFocalRegion","defaultThumbnailImageSettings","_renderSeeDetailButton","seeDetails","attributes","seeDetailsLinkText","_getProductURL","_renderCarousel","mediaGalleryItems","galleryImageSettings","_renderCarouselItemImageView","_renderEmptyImage","items","activeIndex","next","previous","interval","directionTextPrev","previousScreenshotFlipperText","directionTextNext","nextScreenshotFlipperText","onIndicatorsClickHandler","goToIndex","handleOnExited","onExited","handleOnExiting","onExiting","lastUpdate","_renderThumbnails","thumbnailImageSettings","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","flipperPrevLabel","flipperNextLabel","parentId","useTabList","_getThumbnailItem","images","Date","now","animating","isLastItem","nextIndex","isFirstItem","_getCarouselItem","image","loadFailureBehavior","role","modifiedActiveIndex","ThumbnailItemContainerProps","tabIndex","_generateOnThumbnailClick","onKeyDown","_generateOnThumbnailKeyDown","Picture","which","preventDefault","onClickHandler","_onClick","_event","isNullOrUndefined","selectedProductId","ctx","tenantId","serviceEndPoint","productResult","productAvailabilities","cartState","ratingsSummaryData","getProductDetails","currentTime","_updateMediaItems","isDataLoaded","_quickViewCloseButtonclick","decrementButtonAriaLabel","incrementButtonAriaLabel","bind","nextProps","nextState","isMobileDevice","variant","Viewport","viewprops","quickViewbuttonText","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","Spinner","label","loadingText","size","large","Thumbnails","lastUpdatedTime","PrimaryImageUrl","_mapProductToImageData","producturl","canonicalurl","canonicalUrl","getBuyboxProductConfigure","onChanged","_mapProductDimensionFullToDropdownViewProps","dimensionChanged","dropdownCallback","selectDimensionFormatString","dimensionValue","errorMessage","ShopSimiliarButtonType","getQuantityError","errorMessageOutOfStock","errorMessageOutOfRangeOneLeft","errorMessageOutOfRangeFormat","getGenericError","addedToCartFailureMessage","elementFoundAt","productIdToFind","i","CartLines","ProductId","DeliveryMode","FulfillmentStoreId","OrgUnitNumber","curQuantity","Quantity","availableQty","AvailableQuantity","quantityLimit","Math","maxQuantityLimitText","errorDetails","LocalizedMessage","getConfigureErrors","forEach","dimensionTypeValue","productDimensionTypeColorErrorMessage","productDimensionTypeConfigurationErrorMessage","productDimensionTypeSizeErrorMessage","productDimensionTypeAmountErrorMessage","productDimensionTypeStyleErrorMessage","getDimensionErrorString"],"mappings":"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","file":"static/js/7.5717697857f2974f.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './__mocks__/mock-resources';\nexport * from './buybox-components';\nexport * from './buybox-product-configure';\nexport * from './buyboxInterface';\nexport * from './dropdown/dropdown';\nexport * from './dropdown/dropdown.props';\nexport * from './utilities/error-utilities';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n AddToCartComponent, AddToOrderTemplateComponent, AddToWishlistComponent, IAddToCartFailureResult, IAddToCartResources, IAddToOrderTemplateDialogResources,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources, IItemAddedToOrderTemplateDialogResources, IOrderTemplateActionErrorResult, IOrderTemplateNameDialogResources, IWishlistActionErrorResult,\n PriceComponent, RatingComponent } from '@msdyn365-commerce/components';\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\nimport { ICartActionResult } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, format, getPayloadObject, getTelemetryAttributes, getTelemetryObject, Heading, ITelemetryContent, Node, Quantity, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxAddToCartViewProps, IBuyboxAddToOrderTemplateViewProps, IBuyboxAddToWishlistViewProps, IBuyboxCallbacks, IBuyboxCommonData, IBuyboxCommonResources,\n IBuyboxErrorBlockProps, IBuyboxExtentedProps, IBuyboxKeyInPriceViewProps, IBuyboxProductQuantityViewProps, IBuyboxShopSimilarLookViewProps, IBuyboxState,\n IProductDetails, ShopSimiliarButtonType } from './buyboxInterface';\nimport { getConfigureErrors, getGenericError, getQuantityError } from './utilities/error-utilities';\n\nconst _getClassNamePrefix = (typeName: string): string => {\n return typeName.toLocaleLowerCase() === 'quickview' ? 'ms-quickView' : 'ms-buybox';\n};\n\nexport function getBuyBoxInventoryLabel(props: IBuyboxExtentedProps, productDetails?: IProductDetails): React.ReactElement | undefined {\n const { typeName } = props;\n const productAvailableQuantity = props.data.productAvailableQuantity?.result ? props.data.productAvailableQuantity?.result : productDetails?.productAvailableQuantity!;\n\n const className = _getClassNamePrefix(typeName);\n if (!productAvailableQuantity || productAvailableQuantity.length === 0) {\n return undefined;\n }\n if (productAvailableQuantity &&\n productAvailableQuantity.length > 0 &&\n productAvailableQuantity[0].StockLevelLabel) {\n const inventoryClassName = productAvailableQuantity[0].StockLevelCode ? `${className}__inventory-label ${className}__inventory-code-${productAvailableQuantity[0].StockLevelCode.toLowerCase()}` : `${className}__inventory-label`;\n return (
\n \n {productAvailableQuantity[0].StockLevelLabel}\n \n
);\n }\n\n return undefined;\n\n}\n\nexport function getBuyboxProductTitle(props: IBuyboxExtentedProps, productDetails?: IProductDetails): React.ReactElement | undefined {\n const {\n config: { titleHeadingTag = 'h1' },\n typeName\n } = props;\n const className = _getClassNamePrefix(typeName);\n\n const product = props.data.product?.result ? props.data.product?.result : productDetails?.product!;\n\n return product && (\n \n );\n}\n\nexport function getBuyboxProductDescription(props: IBuyboxExtentedProps, productDetails?: IProductDetails): React.ReactElement | undefined {\n const { typeName } = props;\n const className = _getClassNamePrefix(typeName);\n const product = props.data.product?.result ? props.data.product?.result : productDetails?.product!;\n\n return product && (\n

\n {product.Description}\n

\n );\n}\n\n/**\n * Gets the react node for product unit of measure display.\n * @param {IBuyboxExtentedProps} props The buybox module props.\n * @param {IProductDetails} productDetails The product details to be displyed in buybox.\n * @returns {React.ReactElement} The node representing markup for unit of measure component.\n */\nexport function getBuyboxProductUnitOfMeasure(\n props: IBuyboxExtentedProps, productDetails?: IProductDetails): React.ReactElement | undefined {\n\n const {\n typeName\n } = props;\n const className = _getClassNamePrefix(typeName);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Do not need type check for appsettings\n if (props.context.app.config && props.context.app.config.unitOfMeasureDisplayType === 'none') {\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- For quicview scenario result can be undefined.\n const product = props.data.product?.result ? props.data.product.result : productDetails?.product;\n if (!product || !product.DefaultUnitOfMeasure) {\n props.telemetry.warning('Missing defult unit of measureor theproduct');\n return undefined;\n }\n\n return (\n
\n \n {product.DefaultUnitOfMeasure}\n \n
\n );\n}\n\nlet telemetryContent: ITelemetryContent;\n\nexport function getBuyboxAddToCart(props: IBuyboxExtentedProps, state: IBuyboxState, callbacks: IBuyboxCallbacks,\n defaultMinimumKeyInPrice: number, defaultMaximumKeyInPrice: number, productDetails?: IProductDetails): IBuyboxAddToCartViewProps {\n const {\n id,\n typeName,\n context,\n resources,\n config: { minimumKeyInPrice, maximumKeyInPrice }\n } = props;\n\n const product = props.data.product?.result ? props.data.product?.result : productDetails?.product!;\n const cart = props.data.cart?.result ? props.data.cart?.result : productDetails?.cart!;\n const productAvailableQuantity = props.data.productAvailableQuantity?.result ? props.data.productAvailableQuantity?.result : productDetails?.productAvailableQuantity!;\n\n const {\n quantity,\n errorState: {\n configureErrors,\n quantityError,\n customAmountError,\n otherError,\n errorHost\n },\n selectedProduct,\n isUpdatingDimension,\n isUpdatingDeliveryOptions,\n isServiceItem,\n keyInPriceAmount\n } = state;\n\n const productAvailability = state.productAvailableQuantity ? state.productAvailableQuantity.ProductAvailableQuantity : (productAvailableQuantity && productAvailableQuantity.length > 0 ? productAvailableQuantity[0].ProductAvailableQuantity : undefined);\n\n const onAddToCartFailed = (result: IAddToCartFailureResult) => {\n let quantityErrorForState: string | undefined;\n let customAmountErrorForState: string | undefined;\n let otherErrorForState: string | undefined = getGenericError(result, cart, resources, context, product, productAvailability, undefined);\n\n if (result.failureReason === 'OUTOFSTOCK') {\n quantityErrorForState = result.failureReason === 'OUTOFSTOCK' ? getQuantityError(result.stockLeft, resources) : undefined;\n } else if (result.failureReason === 'CARTACTIONFAILED' &&\n result.cartActionResult &&\n (result.cartActionResult.substatus === 'MAXQUANTITY' || result.cartActionResult.substatus === 'QUANTITYLIMITS')) {\n quantityErrorForState = getGenericError(result, cart, resources, context, product, productAvailability, undefined);\n otherErrorForState = undefined; // Prevent error duplication in otherError and quantityError\n }\n\n if (result.failureReason === 'INVALIDCUSTOMAMOUNT') {\n if (keyInPriceAmount === undefined || keyInPriceAmount < (minimumKeyInPrice || defaultMinimumKeyInPrice)) {\n const formatedAmountLimit = props.context.cultureFormatter.formatCurrency(minimumKeyInPrice || defaultMinimumKeyInPrice);\n customAmountErrorForState = resources.invalidSmallCustomAmountText.replace('{minAmount}', formatedAmountLimit);\n } else if (keyInPriceAmount > (maximumKeyInPrice || defaultMaximumKeyInPrice)) {\n const formatedAmountLimit = props.context.cultureFormatter.formatCurrency(maximumKeyInPrice || defaultMaximumKeyInPrice);\n customAmountErrorForState = resources.invalidLargeCustomAmountText.replace('{maxAmount}', formatedAmountLimit);\n }\n }\n\n callbacks.updateErrorState({\n errorHost: 'ADDTOCART',\n quantityError: quantityErrorForState,\n configureErrors: result.failureReason === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {},\n customAmountError: customAmountErrorForState,\n otherError: otherErrorForState\n });\n };\n\n const dialogStrings: IAddToCartResources = {\n goToCartText: resources.buyBoxGoToCartText,\n continueShoppingText: resources.buyBoxContinueShoppingText,\n closeNotificationLabel: resources.closeNotificationLabel,\n headerItemOneText: resources.buyBoxSingleItemText,\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\n headerMessageText: resources.buyBoxHeaderMessageText,\n freePriceText: resources.priceFree,\n originalPriceText: resources.originalPriceText,\n currentPriceText: resources.currentPriceText,\n addedQuantityText: resources.addedQuantityText\n };\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const isLoading = typeName !== 'quickview' && props.data.productAvailableQuantity.status === 'LOADING';\n if (isLoading) {\n callbacks.changeUpdatingDimension(false);\n }\n\n const isLoadingDeliveryOptions = typeName !== 'quickview' && props.data.deliveryOptions?.status === 'LOADING';\n if (isLoadingDeliveryOptions && callbacks.changeUpdatingDeliveryOptions) {\n callbacks.changeUpdatingDeliveryOptions(false);\n }\n\n telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.typeName, props.telemetry);\n\n // Check if the product delivery mode is electronic\n const emailDeliveryModeCode = props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode;\n const deliveryOptions = props.data.deliveryOptions?.result;\n const isEmailDelivery = ArrayExtensions.hasElements(deliveryOptions?.DeliveryOptions) && deliveryOptions!.DeliveryOptions[0].Code === emailDeliveryModeCode;\n const className = _getClassNamePrefix(typeName);\n\n const onItemAddedToCart = (result: ICartActionResult) => {\n if (typeName === 'quickview') {\n callbacks.changeModalOpen(false);\n }\n };\n\n return {\n ContainerProps: {\n className: `${className}__add-to-cart-container`\n },\n button: product && (\n \n ),\n errorBlock: (\n \n )\n };\n}\n\nexport function getBuyboxProductPrice(props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined {\n const {\n id,\n typeName,\n context,\n resources\n } = props;\n\n return state.productPrice && (\n \n );\n}\n\nexport function getBuyboxProductRating(props: IBuyboxExtentedProps, productDetails?: IProductDetails): React.ReactElement | undefined {\n const {\n id,\n typeName,\n context,\n resources\n } = props;\n\n const ratingsSummary = props.data.ratingsSummary?.result ? props.data.ratingsSummary?.result : productDetails?.ratingsSummary!;\n\n const ratingComponent = ratingsSummary && ratingsSummary.averageRating && (\n \n ) || undefined;\n\n return ratingsSummary && ratingComponent && (\n ratingComponent\n );\n}\n\nfunction generateAddToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IAddToOrderTemplateDialogResources {\n return {\n addToOrderTemplateHeader: resources.addToOrderTemplateHeader,\n\n noOrderTemplatesMessage: resources.noOrderTemplatesMessage,\n noOrderTemplatesDescription: resources.noOrderTemplatesDescription,\n\n createAnOrderTemplateButtonText: resources.createAnOrderTemplateButtonText,\n createNewOrderTemplateButtonText: resources.createNewOrderTemplateButtonText,\n cancelOrderTemplateCreationButtonText: resources.cancelOrderTemplateCreationButtonText,\n\n selectTemplatesText: resources.selectTemplatesText,\n addToTemplateButtonText: resources.addToTemplateButtonText,\n lineItemsText: resources.lineItemsText\n };\n}\n\nfunction generateOrderTemplateNameDialogResources(resources: IBuyboxCommonResources): IOrderTemplateNameDialogResources {\n return {\n orderTemplateHeaderLabel: resources.createOrderTemplateHeader,\n orderTemplateTitleLabel: resources.orderTemplateTitle,\n orderTemplateNameAriaLabel: resources.orderTemplateNameAriaLabel,\n orderTemplateDescription: resources.createOrderTemplateDescription,\n\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\n\n orderTemplateButtonLabel: resources.createOrderTemplateButtonText,\n orderTemplateCancelButtonLabel: resources.cancelNewOrderTemplateCreationButtonText\n };\n}\n\nfunction generateItemAddedToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IItemAddedToOrderTemplateDialogResources {\n return {\n viewOrderTemplateButtonText: resources.viewOrderTemplateButtonText,\n continueShoppingButtonText: resources.continueShoppingButtonText,\n itemAddedToOrderTemplateHeaderItemOneText: resources.itemAddedToOrderTemplateHeaderItemOneText,\n itemAddedToOrderTemplateHeaderItemFormatText: resources.itemAddedToOrderTemplateHeaderItemFormatText,\n itemAddedToOrderTemplateHeaderMessageText: resources.itemAddedToOrderTemplateHeaderMessageText,\n freePriceText: resources.priceFree,\n originalPriceText: resources.originalPriceText,\n currentPriceText: resources.currentPriceText\n };\n}\n\nfunction generateDuplicateItemsWhenAddingToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\n return {\n duplicatedProductsHeader: resources.duplicatedProductsHeader,\n duplicatedProductsDescription: resources.duplicatedProductsDescription,\n updateQuantityButtonText: resources.updateQuantityButtonText,\n cancelDuplicateItemsButtonText: resources.cancelDuplicateItemsButtonText\n };\n}\n\nexport function getBuyboxProductAddToOrderTemplate(props: IBuyboxExtentedProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxAddToOrderTemplateViewProps | undefined {\n const {\n id,\n typeName,\n context,\n data: {\n product: { result: product },\n orderTemplates: { result: orderTemplates },\n customerInformation: { result: customerInformation }\n },\n resources\n } = props;\n\n const\n {\n errorState: {\n configureErrors,\n quantityError,\n customAmountError,\n otherError,\n errorHost\n },\n quantity\n } = state;\n\n // If custom amount is selected, add-to-orderTemplate is disabled\n if (state.isCustomPriceSelected) {\n return undefined;\n }\n const className = _getClassNamePrefix(typeName);\n const onAddToOrderTemplateFailed = (result: IOrderTemplateActionErrorResult) => {\n callbacks.updateErrorState({\n errorHost: 'ORDER_TEMPLATE',\n configureErrors: result.status === 'MISSING_DIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\n });\n };\n\n return {\n ContainerProps: {\n className: `${className}__add-to-order-template-container`\n },\n button: product && orderTemplates && (\n \n ),\n errorBlock: (\n \n )\n };\n}\n\nexport function getBuyboxProductAddToWishlist(props: IBuyboxExtentedProps, state: IBuyboxState, callbacks: IBuyboxCallbacks, productDetails?: IProductDetails): IBuyboxAddToWishlistViewProps | undefined {\n const {\n id,\n typeName,\n context,\n data: {\n wishlists: { result: wishlists }\n },\n resources\n } = props;\n\n const product = props.data.product?.result ? props.data.product?.result : productDetails?.product!;\n\n const\n {\n errorState: {\n configureErrors,\n quantityError,\n customAmountError,\n otherError,\n errorHost\n },\n selectedProduct\n } = state;\n\n // If custom amount is selected, add-to-wishlist is disabled\n if (state.isCustomPriceSelected) {\n return undefined;\n }\n\n const onAddToWishlistFailed = (result: IWishlistActionErrorResult) => {\n callbacks.updateErrorState({\n errorHost: 'WISHLIST',\n configureErrors: result.status === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\n });\n };\n const className = _getClassNamePrefix(typeName);\n\n return {\n ContainerProps: {\n className: `${className}__add-to-wishlist-container`\n },\n button: product && (\n \n ),\n errorBlock: (\n \n )\n };\n}\n\nexport function getBuyboxProductQuantity(props: IBuyboxExtentedProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxProductQuantityViewProps {\n const {\n resources,\n typeName\n } = props;\n\n const\n {\n quantity,\n max,\n errorState: {\n quantityError\n }\n } = state;\n\n const onChange = (newValue: number) => {\n if (callbacks.updateQuantity) {\n callbacks.updateQuantity(newValue);\n }\n };\n const className = _getClassNamePrefix(typeName);\n\n return {\n ContainerProps: {\n className: `${className}__quantity`\n },\n LabelContainerProps: {\n tag: 'label',\n className: `${className}__product-quantity-label`,\n htmlFor: `${className}__product-quantity-input`\n },\n heading: (\n
\n {resources.productQuantityHeading}\n
\n ),\n errors: quantityError && (\n \n \n ),\n input: (\n \n )\n };\n}\n\nexport function getBuyboxShopSimilarButton(props: IBuyboxExtentedProps, buttonType: ShopSimiliarButtonType): IBuyboxShopSimilarLookViewProps {\n const {\n resources,\n context,\n data: {\n product: { result: product }\n },\n typeName\n } = props;\n\n const className = _getClassNamePrefix(typeName);\n const navigationUrl = (shopSimiliarButtonType: ShopSimiliarButtonType) => () => {\n const searchURL = getUrlSync('search', context && context.actionContext);\n const separator = searchURL!.includes('?') ? '&' : '?';\n document.location.href = `${searchURL}${separator}productId=${product && product.RecordId}&recommendation=${shopSimiliarButtonType}`;\n };\n const telemetryText = buttonType === ShopSimiliarButtonType.Looks ? TelemetryConstant.ShopSimliarLooks : TelemetryConstant.ShopSimliarDescription;\n const payLoad = getPayloadObject('click', telemetryContent, telemetryText);\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n const text = buttonType === ShopSimiliarButtonType.Looks ? resources.shopSimilarLooksText : resources.shopSimilarDescriptionText;\n\n return {\n ContainerProps: {\n className: `${className}__shopsimilar${buttonType}`\n },\n input: (\n \n {text}\n \n )\n };\n}\n\nexport function getBuyboxKeyInPrice(props: IBuyboxExtentedProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxKeyInPriceViewProps {\n const {\n config,\n resources\n } = props;\n\n const\n {\n errorState: { }\n } = state;\n\n const className = _getClassNamePrefix(props.typeName);\n const onChange = (e: React.ChangeEvent) => {\n const value = e.currentTarget.value;\n callbacks.updateKeyInPrice(value.length > 0 ? Number(value) : Number.parseFloat(value));\n };\n\n return {\n ContainerProps: {\n className: `${className}__key_in_price`\n },\n LabelContainerProps: {\n tag: 'label',\n className: `${className}__key_in_price-label`,\n htmlFor: `${className}__key_in_price`\n },\n heading: (\n
\n {resources.buyboxKeyInPriceLabelHeading}\n
\n ),\n input: (\n \n )\n };\n\n}\n\nexport const BuyboxErrorBlock: React.FC = ({ showError, configureErrors, quantityError, customAmountError, otherError, resources }) => {\n let errorMessages: (string | undefined)[] = [];\n\n errorMessages = Object.values(configureErrors).filter(message => message !== undefined);\n\n if (quantityError) {\n errorMessages.push(quantityError);\n }\n\n if (customAmountError) {\n errorMessages.push(customAmountError);\n }\n\n if (otherError) {\n errorMessages.push(otherError);\n }\n\n return (\n 0} color='danger' assertive\n aria-label={resources.buyboxErrorMessageHeader} >\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n \n );\n};\n\nexport function getQuantityLimitsMessages(props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined {\n const {\n resources\n } = props;\n\n const\n {\n min,\n max\n } = state;\n\n if (!_isOrderQuantityLimitsFeatureEnabled(props)) {\n return undefined;\n }\n\n return (\n \n {_renderMaxLabel(max, resources.maxQuantityText)}\n {_renderMinLabel(min, resources.minQuantityText)}\n \n );\n}\n\nexport const RetailDefaultOrderQuantityLimitsFeatureName: string = 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature';\n\nconst _renderMaxLabel = (max: number | undefined, maxQuantityText: string, typeName?: string): React.ReactElement | undefined => {\n const className = _getClassNamePrefix(typeName ? typeName : '');\n if (max && max !== 0 && max !== Number.MAX_VALUE) {\n return (\n

\n {maxQuantityText.replace('{max}', max.toString())}\n

\n );\n }\n return undefined;\n\n};\n\nconst _renderMinLabel = (min: number | undefined, minQuantityText: string, typeName?: string): JSX.Element | undefined => {\n const className = _getClassNamePrefix(typeName ? typeName : '');\n if (min && min > 1) {\n return (\n

\n {minQuantityText.replace('{min}', min.toString())}\n

\n );\n }\n return undefined;\n\n};\n\nconst _isOrderQuantityLimitsFeatureEnabled = (props: IBuyboxExtentedProps): boolean | undefined => {\n const isFeatureEnabledInHq = props.data.featureState.result\n ?.find(featureState => featureState.Name === RetailDefaultOrderQuantityLimitsFeatureName)?.IsEnabled;\n if (!isFeatureEnabledInHq) {\n return false;\n }\n const defaultOrderQuantityLimitsFeatureConfig = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\n if (defaultOrderQuantityLimitsFeatureConfig === 'none') {\n return false;\n }\n\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\n return true;\n }\n\n const customerInfo = props.data.customerInformation.result;\n return customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b));\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBuyboxAddToCartViewProps, IBuyboxAddToWishlistViewProps, IBuyboxKeyInPriceViewProps, IBuyboxProductConfigureDropdownViewProps, IBuyboxProductConfigureViewProps, IBuyboxProductQuantityViewProps } from '../../common';\nimport { IQuickviewViewProps } from './quickview';\n\nconst _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\n const { ContainerProps, errorBlock, button } = addToCart;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\nconst _renderAddToWishlist = (addToWishlist: IBuyboxAddToWishlistViewProps): JSX.Element => {\n const { ContainerProps, errorBlock, button } = addToWishlist;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderQuickViewPopup = (props: IQuickviewViewProps): JSX.Element => {\n const { ModalContainer, ModalHeaderContainer, ModalFooterContainer, ModalHeaderContent, ModalBodyContainer, addToWishlist, addToCart,\n cartContainerProps } = props;\n\n return (\n \n \n {ModalHeaderContent}\n \n \n {_renderBodyContent(props)}\n \n \n \n {addToCart && _renderAddToCart(addToCart)}\n {addToWishlist && _renderAddToWishlist(addToWishlist)}\n \n \n \n );\n};\n\nconst _renderQuantity = (quantity: IBuyboxProductQuantityViewProps, quantityLimitsMessages: React.ReactNode): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input, errors } = quantity;\n\n return (\n \n \n {heading}\n {errors}\n \n {input}\n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n \n {heading}\n \n {input}\n \n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return (\n \n {dropdowns.map(_renderConfigureDropdown)}\n \n );\n};\n\nconst _renderBodyContent = (props: IQuickviewViewProps): JSX.Element => {\n const { title, price, rating, keyInPrice, quantity, configure, inventoryLabel, quantityLimitsMessages, seeDetailsbutton, loading,\n ProductInfoContainerProps, MediaGalleryContainerProps, CarouselProps, unitOfMeasure } = props;\n if (loading) {\n return (\n <>\n {loading}\n \n );\n }\n return (\n <>\n \n \n \n \n {title}\n {price}\n {unitOfMeasure}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, quantityLimitsMessages)}\n {seeDetailsbutton}\n {inventoryLabel}\n \n \n );\n\n};\n\n/**\n * Functional component which renders quick view button and popup based by the given props file.\n * @param {IQuickviewViewProps} props - Configuration for the quick view component.\n * @returns {React.FC} - Functional component of the quick view.\n */\nexport const QuickViewFunctionalComponent: React.FC = (props: IQuickviewViewProps) => {\n const { quickView, quickViewButton, isModalOpen } = props;\n return (\n \n {quickViewButton}\n {isModalOpen && _renderQuickViewPopup(props)}\n \n );\n};\n\nexport default QuickViewFunctionalComponent;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { AddToCartBehavior, IAddToCartFailureResult, IAddToCartResources, ItemSuccessfullyAddedToCartNotification, PriceComponent } from '@msdyn365-commerce/components';\nimport { getUrlSync, IImageSettings } from '@msdyn365-commerce/core';\nimport { ICartActionResult } from '@msdyn365-commerce/global-state';\nimport { DeliveryOption, FeatureState, OrgUnitLocation, ProductDimension } from '@msdyn365-commerce/retail-proxy';\nimport { NotificationsManager } from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, Heading, INodeProps, IPopupProps, Popup } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { BuyboxErrorBlock } from '../../../common/buybox-components';\nimport { IBuyboxCallbacks, IBuyboxState } from '../../../common/buyboxInterface';\nimport { getConfigureErrors, getGenericError } from '../../../common/utilities/error-utilities';\nimport { IBuyboxData } from '../buybox.data';\nimport { IBuyboxProps } from '../buybox.props.autogenerated';\n\nexport interface IFindInStoreFailureResult {\n missingDimensions?: ProductDimension[];\n}\n\nexport interface IBuyboxFindInStoreViewProps {\n storeSelector?: React.ReactNode;\n heading?: React.ReactNode;\n description?: React.ReactNode;\n errors?: React.ReactNode;\n button?: React.ReactNode;\n productPickupOptionList?: React.ReactNode;\n\n modal?: React.ReactNode;\n\n ContainerProps: INodeProps;\n\n openFindInStoreDialog(): Promise;\n}\n\nexport function getBuyboxFindInStore(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): IBuyboxFindInStoreViewProps | undefined {\n const {\n data,\n slots: {\n storeSelector\n },\n resources: {\n priceFree,\n originalPriceText,\n currentPriceText,\n findInStoreHeaderText,\n findInStoreDescriptionText,\n findInStoreLinkText,\n buyBoxGoToCartText,\n buyBoxContinueShoppingText,\n closeNotificationLabel,\n buyBoxSingleItemText,\n buyBoxMultiLineItemFormatText,\n buyBoxHeaderMessageText,\n descriptionTextToShowAllPickupOptions\n },\n context: {\n request: {\n channel: {\n PickupDeliveryModeCode\n } = { PickupDeliveryModeCode: undefined }\n }\n }\n } = props;\n\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const product = data?.product?.result;\n const price = data?.productPrice?.result;\n const storeSelectorStateManager = data?.storeSelectorStateManager?.result;\n const cart = data?.cart?.result;\n const deliveryOptions = data?.deliveryOptions?.result;\n const retailMulitplePickupMFeatureState = data?.featureState?.result\n ?.find((featureState: FeatureState) => featureState.Name === multiplePickupStoreSwitchName)?.IsEnabled;\n\n const\n {\n errorState: {\n configureErrors,\n quantityError,\n otherError,\n errorHost\n },\n modalOpen,\n quantity\n } = state;\n\n const onClick = async () => findInStoreOnClick(props, state, callbacks);\n\n if (!product || !storeSelectorStateManager || !ArrayExtensions.hasElements(storeSelector)) {\n return undefined;\n }\n\n // If no delivery options present on the product, or none of the delivery options\n // match the PickupDeliveryModeCode, that means the item cannot be used for BOPIS\n if (!deliveryOptions ||\n !deliveryOptions.DeliveryOptions ||\n !PickupDeliveryModeCode ||\n !deliveryOptions.DeliveryOptions.find((option: DeliveryOption) => option.Code === PickupDeliveryModeCode)) {\n return undefined;\n }\n\n const dialogStrings = {\n goToCartText: buyBoxGoToCartText,\n continueShoppingText: buyBoxContinueShoppingText,\n closeNotificationLabel,\n headerItemOneText: buyBoxSingleItemText,\n headerItemFormatText: buyBoxMultiLineItemFormatText,\n headerMessageText: buyBoxHeaderMessageText,\n freePriceText: priceFree,\n originalPriceText,\n currentPriceText\n };\n\n const priceComponent = price ? (\n ) : '';\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const popupProps: IPopupProps = {\n context: props.context,\n className: 'ms-buybox',\n id: props.id,\n typeName: props.typeName,\n data: { product: props.data.product?.result, price: props.data.productPrice?.result },\n dialogStrings,\n imageSettings: defaultImageSettings,\n gridSettings: props.context.request.gridSettings,\n productQuantity: quantity,\n priceComponent,\n navigationUrl: getUrlSync('cart', props.context.actionContext),\n modalOpen,\n setModalOpen: callbacks.changeModalOpen\n };\n const renderModalPopup = ;\n\n return {\n ContainerProps: {\n className: 'ms-buybox__find-in-store'\n },\n\n storeSelector: storeSelector[0],\n\n openFindInStoreDialog: onClick,\n\n heading: (\n \n ),\n\n description: (\n

\n {findInStoreDescriptionText}\n

\n ),\n productPickupOptionList: retailMulitplePickupMFeatureState ? (\n <>\n

\n {descriptionTextToShowAllPickupOptions}\n

\n
    \n {deliveryOptions.DeliveryOptions.map((item: DeliveryOption) => {\n return (
  • \n {item.Description}\n
  • );\n })}\n
\n \n ) : null,\n errors: (\n \n ),\n\n button: (\n \n {findInStoreLinkText}\n \n ),\n\n modal: renderModalPopup\n };\n}\n\nasync function findInStoreOnClick(props: IBuyboxProps, state: IBuyboxState, callbacks: IBuyboxCallbacks): Promise {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager },\n cart: { result: cart },\n productAvailableQuantity: { result: productAvailableQuantity }\n },\n resources,\n context,\n modules\n } = props;\n\n const {\n selectedProduct,\n quantity\n } = state;\n\n let dataProduct = props.data.product.result;\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const retailMulitplePickupMFeatureState = props.data?.featureState?.result\n ?.find((featureState: FeatureState) => featureState.Name === multiplePickupStoreSwitchName)?.IsEnabled;\n\n if (selectedProduct) {\n dataProduct = (await selectedProduct) || dataProduct;\n }\n\n if (!dataProduct || !storeSelectorStateManager) {\n return;\n }\n\n const product = dataProduct;\n\n const missingDimensions = product.Dimensions && product.Dimensions.filter((dimension: ProductDimension) => !(dimension.DimensionValue && dimension.DimensionValue.Value));\n\n let storeSelectorId: string = '';\n if (modules && Object.keys(modules).length > 0 && modules.storeSelector && modules.storeSelector.length > 0) {\n storeSelectorId = modules.storeSelector[0].id;\n }\n\n if (missingDimensions && missingDimensions.length > 0) {\n if (callbacks.updateErrorState) {\n callbacks.updateErrorState(\n {\n errorHost: 'FINDINSTORE',\n configureErrors: getConfigureErrors(missingDimensions, resources)\n }\n );\n }\n } else {\n storeSelectorStateManager.openDialog({\n product,\n id: storeSelectorId,\n deliveryOptions: retailMulitplePickupMFeatureState ? props.data.deliveryOptions.result : undefined,\n onLocationSelected: async (orgUnitLocation: OrgUnitLocation, deliveryMode: string) => {\n if (!cart) {\n return Promise.resolve();\n }\n\n const behavior = props.context?.app?.config?.addToCartBehavior;\n\n return cart.addProductToCart({ product, count: quantity, location: orgUnitLocation, deliveryMode })\n .then((result: ICartActionResult) => {\n if (result.status === 'FAILED' && result.substatus === 'MAXQUANTITY') {\n callbacks.changeModalOpen(false);\n\n const productAvailability = state.productAvailableQuantity ? state.productAvailableQuantity.ProductAvailableQuantity : (productAvailableQuantity && productAvailableQuantity.length > 0 ? productAvailableQuantity[0].ProductAvailableQuantity : undefined);\n\n const failureResult: IAddToCartFailureResult = { failureReason: 'CARTACTIONFAILED', cartActionResult: { status: result.status, substatus: result.substatus } };\n callbacks.updateErrorState({\n errorHost: 'ADDTOCART',\n configureErrors: {},\n otherError: getGenericError(failureResult, cart, resources, context, product, productAvailability, orgUnitLocation)\n });\n } else {\n callbacks.updateErrorState({\n configureErrors: {}\n });\n const navigationUrl = getUrlSync('cart', context.actionContext);\n if ((behavior === undefined || behavior === AddToCartBehavior.goToCart)) {\n if (result.status === 'SUCCESS' && navigationUrl) {\n window.location.assign(navigationUrl);\n }\n } else if (behavior === AddToCartBehavior.showModal) {\n callbacks.changeModalOpen(true);\n } else if (behavior === AddToCartBehavior.showNotification) {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n lg: { q: 'w=240&h=240&m=6', w: 0, h: 0 },\n xl: { q: 'w=240&h=240&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\n const dialogStrings: IAddToCartResources = {\n goToCartText: resources.buyBoxGoToCartText,\n continueShoppingText: resources.buyBoxContinueShoppingText,\n closeNotificationLabel: resources.closeNotificationLabel,\n headerItemOneText: resources.buyBoxSingleItemText,\n headerItemFormatText: resources.buyBoxMultiLineItemFormatText,\n headerMessageText: resources.buyBoxHeaderMessageText,\n freePriceText: resources.priceFree,\n originalPriceText: resources.originalPriceText,\n currentPriceText: resources.currentPriceText,\n addedQuantityText: resources.addedQuantityText\n };\n const notification = new ItemSuccessfullyAddedToCartNotification(\n props.context,\n dialogStrings,\n defaultImageSettings,\n props.context.request.gridSettings,\n product,\n props.data.productPrice?.result,\n quantity,\n navigationUrl,\n telemetryContent,\n props.id,\n props.typeName\n );\n NotificationsManager.instance().addNotification(notification);\n }\n }\n }).catch((error: Error) => {\n if (props.telemetry) {\n props.telemetry.exception(error);\n props.telemetry.debug('Unable to add product to cart');\n }\n\n });\n }\n }).catch((error: Error) => {\n if (props.telemetry) {\n props.telemetry.error(error.message);\n props.telemetry.debug('Unable to find in store');\n }\n\n });\n }\n\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ProductDimensionFull } from '@msdyn365-commerce/commerce-entities';\nimport { ProductDeliveryOptions, ProductDimensionValue, ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ReleasedProductType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n// eslint-disable-next-line max-len -- Due to SDK limitation on resolving refernces in ejected module.\nimport { FinitePromiseQueue, FinitePromiseQueueError, getDeliveryOptionsForSelectedVariant, GetDeliveryOptionsForSelectedVariantInput, getDimensionsForSelectedVariant, GetDimensionsForSelectedVariantInput, getPriceForSelectedVariant, getProductAvailabilitiesForSelectedVariant, getSelectedVariant, IProductInventoryInformation, IPromiseQueue, PriceForSelectedVariantInput, ProductAvailabilitiesForSelectedVariantInput, SelectedVariantInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\n// eslint-disable-next-line max-len -- Auto-suppressed.\nimport { getBuyboxAddToCart, getBuyBoxInventoryLabel, getBuyboxKeyInPrice, getBuyboxProductAddToOrderTemplate, getBuyboxProductAddToWishlist, getBuyboxProductDescription, getBuyboxProductPrice, getBuyboxProductQuantity, getBuyboxProductRating, getBuyboxProductTitle, getBuyboxProductUnitOfMeasure, getBuyboxShopSimilarButton, getQuantityLimitsMessages, RetailDefaultOrderQuantityLimitsFeatureName } from '../../common/buybox-components';\nimport { getBuyboxProductConfigure } from '../../common/buybox-product-configure';\n// eslint-disable-next-line max-len -- Auto-suppressed.\nimport { IBuyboxAddToCartViewProps, IBuyboxAddToOrderTemplateViewProps, IBuyboxAddToWishlistViewProps, IBuyboxCallbacks, IBuyboxCommonData, IBuyboxExtentedProps, IBuyboxKeyInPriceViewProps, IBuyboxProductConfigureViewProps, IBuyboxProductQuantityViewProps, IBuyboxShopSimilarLookViewProps, IBuyboxState, IErrorState, ShopSimiliarButtonType } from '../../common/buyboxInterface';\nimport { IBuyboxData } from './buybox.data';\nimport { IBuyboxProps, IBuyboxResources } from './buybox.props.autogenerated';\nimport { getBuyboxFindInStore, IBuyboxFindInStoreViewProps } from './components/buybox-find-in-store';\n\nexport interface IBuyboxViewProps extends IBuyboxProps {\n state: IBuyboxState;\n ModuleProps: IModuleProps;\n ProductInfoContainerProps: INodeProps;\n MediaGalleryContainerProps: INodeProps;\n callbacks: IBuyboxCallbacks;\n mediaGallery?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n rating?: React.ReactNode;\n price?: React.ReactNode;\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps;\n addToWishlist?: IBuyboxAddToWishlistViewProps;\n max: number | undefined;\n addToCart: IBuyboxAddToCartViewProps;\n findInStore?: IBuyboxFindInStoreViewProps;\n quantity?: IBuyboxProductQuantityViewProps;\n configure?: IBuyboxProductConfigureViewProps;\n inventoryLabel?: React.ReactNode;\n shopSimilarLook?: IBuyboxShopSimilarLookViewProps;\n shopSimilarDescription?: IBuyboxShopSimilarLookViewProps;\n quantityLimitsMessages: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n keyInPrice?: IBuyboxKeyInPriceViewProps;\n unitOfMeasure?: React.ReactNode;\n}\n\n/**\n * Buybox Module.\n */\nclass Buybox extends React.PureComponent, IBuyboxState> {\n /**\n * A queue of tasks of processing the changes in the dimensions.\n * Limit to two processes:\n * 1 - for the current process, which is under execution at the moment.\n * 2 - next process, which will process the latest version of data.\n * @remark Enqueueing new promises will discard the previous ones (except the one which is under processing).\n */\n private readonly dimensionUpdateQueue: IPromiseQueue = new FinitePromiseQueue(2);\n\n private dimensions: { [id: number]: string } = {};\n\n private readonly buyboxCallbacks: IBuyboxCallbacks = {\n updateQuantity: (newQuantity: number): boolean => {\n const errorState = { ...this.state.errorState };\n errorState.quantityError = undefined;\n errorState.otherError = undefined;\n\n this.setState({ quantity: newQuantity, errorState });\n return true;\n },\n updateErrorState: (newErrorState: IErrorState): void => {\n this.setState({ errorState: newErrorState });\n },\n updateSelectedProduct: (\n newSelectedProduct: Promise,\n newInventory: IProductInventoryInformation | undefined,\n newPrice: ProductPrice | undefined,\n newDeliveryOptions: ProductDeliveryOptions | undefined\n ): void => {\n this.setState({\n selectedProduct: newSelectedProduct,\n productAvailableQuantity: newInventory,\n productDeliveryOptions: newDeliveryOptions\n });\n this._updatePrice(newPrice);\n },\n dimensionSelectedAsync: async (selectedDimensionId: number, selectedDimensionValueId: string): Promise => {\n this.dimensions[selectedDimensionId] = selectedDimensionValueId;\n return this.dimensionUpdateQueue.enqueue(async () => {\n return this._updateDimensions();\n }).catch((error: any) => { // Ignore discarded processes.\n if (error !== FinitePromiseQueueError.ProcessWasDiscardedFromTheQueue) {\n throw error;\n }\n });\n },\n getDropdownName: (dimensionType: number, resources: IBuyboxResources): string => {\n return this._getDropdownName(dimensionType, resources);\n },\n changeModalOpen: (isModalOpen: boolean): void => {\n this.setState({ modalOpen: isModalOpen });\n },\n changeUpdatingDimension: (isUpdatingDimension: boolean): void => {\n this.setState({ isUpdatingDimension });\n },\n\n /**\n * Update isUpdatingDeliveryOptions state.\n *\n * @param isUpdatingDeliveryOptions - The status of updating delivery options.\n */\n changeUpdatingDeliveryOptions: (isUpdatingDeliveryOptions: boolean): void => {\n this.setState({ isUpdatingDeliveryOptions });\n },\n\n updateKeyInPrice: (customPrice: number): void => {\n // Remove custom amount error when updating the custom price\n const errorState = { ...this.state.errorState };\n errorState.customAmountError = undefined;\n\n this.setState({ isPriceKeyedIn: true, keyInPriceAmount: customPrice, errorState });\n this._updatePrice(this.state.productPrice, customPrice);\n }\n };\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IBuyboxProps, state: IBuyboxState) {\n super(props);\n this.state = {\n errorState: {\n configureErrors: {}\n },\n quantity: 1,\n min: undefined,\n max: undefined,\n selectedProduct: undefined,\n productPrice: undefined,\n productDeliveryOptions: undefined,\n\n modalOpen: false,\n isUpdatingDimension: false,\n isUpdatingDeliveryOptions: false\n };\n this.telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\n }\n\n public async componentDidMount(): Promise {\n const {\n data: {\n product: { result: product },\n productPrice\n }\n } = this.props;\n\n productPrice.then(async (result) => {\n this._updatePrice(result);\n });\n\n if (product) {\n // Check if the product is service or not by product type\n const PRODUCTASSERVICE = 2 as ReleasedProductType.Service;\n\n if (product.ItemTypeValue === PRODUCTASSERVICE) {\n this.setState({ isServiceItem: true });\n }\n await this._updateQuantitiesInState(product);\n }\n }\n\n public render(): JSX.Element | null {\n const {\n slots: {\n mediaGallery\n },\n data: {\n product: { result: product }\n },\n config: { className = '' }\n } = this.props;\n\n const\n {\n max\n } = this.state;\n\n if (!product) {\n this.props.context.telemetry.error('Product content is empty, module wont render');\n return null;\n }\n\n const props = this.props as IBuyboxExtentedProps;\n const defaultMinimumKeyInPrice = 10;\n const defaultMaximumKeyInPrice = 100;\n\n const viewProps: IBuyboxViewProps = {\n ...(this.props as IBuyboxProps),\n state: this.state,\n mediaGallery: mediaGallery && mediaGallery.length > 0 ? mediaGallery[0] : undefined,\n ModuleProps: {\n moduleProps: this.props,\n className: classnames('ms-buybox', className)\n },\n ProductInfoContainerProps: {\n className: 'ms-buybox__content'\n },\n MediaGalleryContainerProps: {\n className: 'ms-buybox__media-gallery'\n },\n telemetryContent: this.telemetryContent,\n callbacks: this.buyboxCallbacks,\n title: getBuyboxProductTitle(props),\n description: getBuyboxProductDescription(props),\n unitOfMeasure: getBuyboxProductUnitOfMeasure(props),\n configure: getBuyboxProductConfigure(props, this.state, this.buyboxCallbacks),\n findInStore: getBuyboxFindInStore(this.props, this.state, this.buyboxCallbacks),\n price: getBuyboxProductPrice(props, this.state),\n addToCart: getBuyboxAddToCart(props, this.state, this.buyboxCallbacks, defaultMinimumKeyInPrice, defaultMaximumKeyInPrice),\n addToOrderTemplate: getBuyboxProductAddToOrderTemplate(props, this.state, this.buyboxCallbacks),\n addToWishlist: getBuyboxProductAddToWishlist(props, this.state, this.buyboxCallbacks),\n rating: !props.context.app.config.hideRating && getBuyboxProductRating(props),\n quantity: product.IsGiftCard ? undefined : getBuyboxProductQuantity(props, this.state, this.buyboxCallbacks),\n inventoryLabel: getBuyBoxInventoryLabel(props),\n shopSimilarLook: this.props.config.enableShopSimilarLooks && !product.IsGiftCard ? getBuyboxShopSimilarButton(props, ShopSimiliarButtonType.Looks) : undefined,\n shopSimilarDescription: this.props.config.enableShopSimilarDescription && !product.IsGiftCard ? getBuyboxShopSimilarButton(props, ShopSimiliarButtonType.Description) : undefined,\n keyInPrice: this.props.config.enableKeyInPrice && this.state.isCustomPriceSelected ? getBuyboxKeyInPrice(props, this.state, this.buyboxCallbacks) : undefined,\n quantityLimitsMessages: getQuantityLimitsMessages(props, this.state),\n max\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _updatePrice(\n newPrice: ProductPrice | undefined,\n customPrice: number | undefined = this.state.keyInPriceAmount): void {\n\n if (this.state.isCustomPriceSelected && newPrice) {\n newPrice.CustomerContextualPrice = customPrice;\n }\n this.setState({ productPrice: newPrice });\n }\n\n private readonly _updateDimensions = async (): Promise => {\n const {\n data: {\n product: { result: product },\n productDimensions: { result: productDimensions }\n },\n context: {\n actionContext,\n request: {\n apiSettings: {\n channelId\n }\n }\n }\n } = this.props;\n\n if (!product || !productDimensions) {\n return;\n }\n\n const dimensionsToUpdate: { [id: number]: string } = { ...this.dimensions };\n this.setState({ isUpdatingDimension: true, isUpdatingDeliveryOptions: true });\n\n // Step 1: Clear error state to display relevant errors\n if (this.state.errorState.otherError || this.state.errorState.quantityError) {\n const clearErrorState = { ...this.state.errorState };\n clearErrorState.otherError = undefined;\n if (this.state.errorState.errorHost === 'ADDTOCART') {\n clearErrorState.quantityError = undefined;\n clearErrorState.errorHost = undefined;\n }\n this.setState({ errorState: clearErrorState });\n }\n\n // Step 2: Clear any errors indicating the dimension wasn't selected\n for (const key of Object.keys(dimensionsToUpdate)) {\n if (this.state.errorState.configureErrors[key]) {\n const errorState = { ...this.state.errorState };\n errorState.configureErrors[key] = undefined;\n\n this.setState({ errorState });\n }\n }\n\n // Step 3, Build the actually selected dimensions, prioritizing the information in state\n // over the information in data\n const mappedDimensions = productDimensions.map(dimension => {\n return {\n DimensionTypeValue: dimension.DimensionTypeValue,\n DimensionValue: this._updateDimensionValue(dimension, dimensionsToUpdate[dimension.DimensionTypeValue]) || dimension.DimensionValue,\n ExtensionProperties: dimension.ExtensionProperties\n };\n }).filter(dimension => {\n return dimension && dimension.DimensionValue;\n });\n\n // Step 4. Use these dimensions hydrate the product. Wrap this in a promise\n // so that places like add to cart can await it\n const selectedProduct = new Promise(async (resolve, reject) => {\n const newProduct = (await getSelectedVariant(\n new SelectedVariantInput(\n product.MasterProductId ? product.MasterProductId : product.RecordId,\n channelId,\n mappedDimensions\n ),\n actionContext\n ));\n if (newProduct) {\n await getDimensionsForSelectedVariant(\n new GetDimensionsForSelectedVariantInput(\n newProduct.MasterProductId ? newProduct.MasterProductId : newProduct.RecordId,\n channelId,\n mappedDimensions\n ),\n actionContext\n );\n }\n\n resolve(newProduct);\n });\n this.setState({ selectedProduct });\n const variantProduct = await selectedProduct;\n\n if (variantProduct) {\n // Step 5. Use these dimensions hydrate the inventory. Wrap this in a promise\n // so that places like add to cart can await it\n const newAvailableQuantity = await getProductAvailabilitiesForSelectedVariant(\n new ProductAvailabilitiesForSelectedVariantInput(\n variantProduct.RecordId,\n channelId\n ),\n actionContext\n );\n\n const isCustompriceSelected = variantProduct && variantProduct.Dimensions && variantProduct.Dimensions.find(dimension => dimension.DimensionTypeValue === 4 && dimension.DimensionValue && dimension.DimensionValue.Value === 'Custom');\n if (isCustompriceSelected) {\n this.setState({ isCustomPriceSelected: true });\n } else {\n // Remove custom amount error when unselect the custom amount\n const errorState = { ...this.state.errorState };\n errorState.customAmountError = undefined;\n\n this.setState({ isCustomPriceSelected: false, isPriceKeyedIn: false, errorState });\n }\n\n if (newAvailableQuantity && newAvailableQuantity.length > 0) {\n this.setState({ productAvailableQuantity: newAvailableQuantity[0] });\n } else {\n this.setState({ productAvailableQuantity: undefined });\n }\n\n // Step 6. Use these dimensions hydrate the product price.\n const newPrice = await getPriceForSelectedVariant(\n new PriceForSelectedVariantInput(\n variantProduct.RecordId,\n channelId\n ),\n actionContext\n );\n\n if (newPrice) {\n this._updatePrice(newPrice);\n }\n\n const RetailMulitplePickupMFeatureState = this.props.data.featureState.result?.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature');\n\n // Step 7. Use these dimensions hydrate the product delivery options.\n const newDeliveryOptions = await getDeliveryOptionsForSelectedVariant(\n new GetDeliveryOptionsForSelectedVariantInput(\n variantProduct.RecordId,\n channelId,\n undefined,\n undefined,\n RetailMulitplePickupMFeatureState?.IsEnabled\n ),\n actionContext\n );\n\n if (newDeliveryOptions) {\n this.setState({ productDeliveryOptions: newDeliveryOptions });\n }\n\n await this._updateQuantitiesInState(variantProduct);\n }\n };\n\n private async _updateQuantitiesInState(product: SimpleProduct): Promise {\n const isOrderQuantityLimitsFeatureEnabled = await this._isOrderQuantityLimitsFeatureEnabled();\n if (isOrderQuantityLimitsFeatureEnabled && product) {\n this.setState({\n quantity: product.Behavior?.DefaultQuantity || 1,\n min: product.Behavior?.MinimumQuantity || 1,\n\n // If max by feature in default order settings is not defined then use max from site settings or default max 10.\n max: (product.Behavior?.MaximumQuantity && product.Behavior?.MaximumQuantity > 0) ? product.Behavior?.MaximumQuantity : this.props.context.app.config.maxQuantityForCartLineItem || 10\n });\n } else {\n this.setState({\n min: 1,\n max: this.props.context.app.config.maxQuantityForCartLineItem || 10\n });\n }\n }\n\n private readonly _updateDimensionValue = (productDimensionFull: ProductDimensionFull, newValueId: string | undefined): ProductDimensionValue | undefined => {\n if (newValueId && productDimensionFull.DimensionValues) {\n return productDimensionFull.DimensionValues.find(dimension => dimension.RecordId === +newValueId);\n }\n\n return undefined;\n };\n\n private readonly _getDropdownName = (dimensionType: number, resources: IBuyboxResources): string => {\n const isGiftCard = this.props.data.product.result?.IsGiftCard;\n\n switch (dimensionType) {\n case 1: // ProductDimensionType.Color\n return resources.productDimensionTypeColor;\n case 2: // ProductDimensionType.Configuration\n return resources.productDimensionTypeConfiguration;\n case 3: // ProductDimensionType.Size\n return resources.productDimensionTypeSize;\n case 4: // ProductDimensionType.Style\n return isGiftCard ? resources.productDimensionTypeAmount : resources.productDimensionTypeStyle;\n default:\n return '';\n }\n };\n\n private async _isOrderQuantityLimitsFeatureEnabled(): Promise {\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\n if (defaultOrderQuantityLimitsFeatureConfig === 'none') {\n return false;\n }\n\n const featureStatuses = await this.props.data.featureState;\n const isFeatureEnabledInHq = featureStatuses?.find(featureState => featureState.Name === RetailDefaultOrderQuantityLimitsFeatureName)?.IsEnabled;\n if (!isFeatureEnabledInHq) {\n return false;\n }\n\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\n return true;\n }\n let customerInfo;\n try {\n customerInfo = await this.props.data.customerInformation;\n } catch (error) {\n this.props.telemetry.information(error);\n this.props.telemetry.debug('Unable to receive Customer Information. May be user is not authorized');\n return false;\n }\n\n return customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b));\n }\n}\n\nexport default Buybox;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IDropdownItemProps, IDropdownProps } from './dropdown.props';\n\ninterface IDropdownState {\n\n /**\n * @friendlyName selectedIndex\n * @description Selected index.\n */\n selectedIndex: string;\n}\n\n/**\n *\n * DropDown component.\n * @extends {React.PureComponent}\n */\nexport class Dropdown extends React.PureComponent {\n private readonly selectMenu: React.RefObject = React.createRef();\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IDropdownProps, state: IDropdownState) {\n super(props);\n this.state = {\n selectedIndex: ''\n };\n this.payLoad = getPayloadObject('click', props.telemetryContent!, this.props.dropdownName);\n }\n\n public componentDidMount(): void {\n if (this.selectMenu.current) {\n this.selectMenu.current.selectedIndex = 0;\n }\n }\n\n public render(): JSX.Element {\n const { dropdownId, dropdownList, dropdownName, dropdownToggleName } = this.props;\n const attribute = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n return (\n \n