{"version":3,"file":"static/js/b9592ca10973e941700d.bundle.js","mappings":"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","sources":["webpack://jansen-adventureworks/./src/actions/get-product-availabilities-for-selected-variant-copy.action.ts?e41c","webpack://jansen-adventureworks/./src/themes/jansen-adventureworks/views/components/buybox-add-to-order-template.tsx?f583","webpack://jansen-adventureworks/./src/themes/jansen-adventureworks/views/buybox.view.tsx?292d","webpack://jansen-adventureworks/./src/themes/jansen-adventureworks/views/components/IncrementalQuantity.tsx?9858","webpack://jansen-adventureworks/./lib/buybox/module-registration.js?bcce","webpack://jansen-adventureworks/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://jansen-adventureworks/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://jansen-adventureworks/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://jansen-adventureworks/./src/modules/adventureworks/views/components/buybox-add-to-order-template.tsx?ceb4","webpack://jansen-adventureworks/./src/modules/adventureworks/views/buybox.view.tsx?98cf","webpack://jansen-adventureworks/external var \"React\"?0d3b","webpack://jansen-adventureworks/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport {\r\n ArrayExtensions,\r\n createInventoryAvailabilitySearchCriteria,\r\n DeliveryMode,\r\n getSelectedProductIdFromActionInput,\r\n getSelectedVariant,\r\n IProductInventoryInformation,\r\n mapAggregatedProductInventoryInformation,\r\n SelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\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 ProductAvailableQuantity,\r\n ProductsDataActions,\r\n ProductType,\r\n ProductWarehouseInventoryAvailability,\r\n ReleasedProductType,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport enum Availability {\r\n outOfStock = 'Out of stock',\r\n available = 'Available',\r\n outOfStockClass = 'out-of-stock',\r\n availableClass = 'available',\r\n loading = 'loading',\r\n loadingClass = 'loading'\r\n}\r\n\r\n/**\r\n * Input class for the getProductAvailabilitiesForSelectedVariant Data Action.\r\n */\r\nexport class ProductAvailabilitiesForSelectedVariantInput implements IActionInput {\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public selectedProduct: SimpleProduct | undefined;\r\n\r\n public constructor(productId: number | string, channelId: number, selectedProduct?: SimpleProduct) {\r\n this.productId = typeof productId === 'string' ? +productId : productId;\r\n this.channelId = channelId;\r\n this.selectedProduct = selectedProduct;\r\n }\r\n\r\n /**\r\n * GetCacheKey.\r\n * @returns - Returns string.\r\n */\r\n public getCacheKey = (): string => 'ProductAvailabilitiesForSelectedVariant';\r\n\r\n /**\r\n * GetCacheObjectType.\r\n * @returns - Cache Object Type string.\r\n */\r\n public getCacheObjectType = (): string => 'ProductAvailabilities';\r\n\r\n /**\r\n * DataCacheType.\r\n * @returns - CacheType string.\r\n */\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\n/**\r\n * CreateInput method for the getProductAvailabilitiesForSelectedVariant data action.\r\n * @param inputData - The input data passed to the createInput method.\r\n * @returns - ProductAvailabilitiesForSelectedVariant or error.\r\n */\r\nexport const createProductAvailabilitiesForSelectedVariantInput = (\r\n inputData: ICreateActionContext>\r\n): ProductAvailabilitiesForSelectedVariantInput => {\r\n const productId = getSelectedProductIdFromActionInput(inputData);\r\n\r\n if (productId) {\r\n return new ProductAvailabilitiesForSelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId);\r\n }\r\n throw new Error('Unable to create ProductAvailabilitiesForSelectedVariantInput, no productId found on module config or query');\r\n};\r\n\r\n/**\r\n * The action method for the getProductAvailabilitiesForSelectedVariant data action.\r\n * @param input - ProductAvailabilitiesForSelectedVariant.\r\n * @param ctx - Action Context.\r\n * @returns - Product inventory information.\r\n */\r\nexport async function getProductAvailabilitiesForSelectedVariantAction(\r\n input: ProductAvailabilitiesForSelectedVariantInput,\r\n ctx: IActionContext\r\n): Promise {\r\n const productInventoryInformation: IProductInventoryInformation[] = [];\r\n try {\r\n let productResult: SimpleProduct | null = input.selectedProduct ?? null;\r\n\r\n if (!productResult) {\r\n const selectedVariantInput = new SelectedVariantInput(\r\n input.productId,\r\n input.channelId,\r\n undefined,\r\n undefined,\r\n ctx.requestContext\r\n );\r\n\r\n productResult = await getSelectedVariant(selectedVariantInput, ctx);\r\n }\r\n\r\n // Don't get availability if it is service item && enableStockCheck is disbaled.\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Reading config.\r\n if (\r\n ctx.requestContext.app.config.enableStockCheck &&\r\n productResult &&\r\n productResult.ItemTypeValue !== ReleasedProductType.Service &&\r\n productResult.ProductTypeValue !== ProductType.Master\r\n ) {\r\n const shippingSearchCriteria = createInventoryAvailabilitySearchCriteria(\r\n ctx,\r\n [productResult.RecordId],\r\n true,\r\n undefined,\r\n undefined,\r\n DeliveryMode.shipping\r\n );\r\n const pickupSearchCriteria = createInventoryAvailabilitySearchCriteria(\r\n ctx,\r\n [input.productId],\r\n false,\r\n true,\r\n undefined,\r\n DeliveryMode.pickup\r\n );\r\n const shippingAvailability = await ProductsDataActions.getEstimatedAvailabilityAsync(\r\n { callerContext: ctx },\r\n shippingSearchCriteria\r\n );\r\n if (shippingAvailability.ProductWarehouseInventoryAvailabilities) {\r\n const shippingInventory = mapAggregatedProductInventoryInformation(ctx, shippingAvailability);\r\n if (ArrayExtensions.hasElements(shippingInventory)) {\r\n shippingInventory[0].deliveryType = DeliveryMode.shipping;\r\n productInventoryInformation.push(shippingInventory[0]);\r\n }\r\n }\r\n const pickupAvailability = await ProductsDataActions.getEstimatedAvailabilityAsync(\r\n { callerContext: ctx },\r\n pickupSearchCriteria\r\n );\r\n if (pickupAvailability.ProductWarehouseInventoryAvailabilities) {\r\n const pickupInventory = mapAggregatedProductInventoryInformation(ctx, pickupAvailability);\r\n if (ArrayExtensions.hasElements(pickupInventory)) {\r\n pickupInventory[0].deliveryType = DeliveryMode.pickup;\r\n productInventoryInformation.push(pickupInventory[0]);\r\n }\r\n }\r\n return productInventoryInformation;\r\n } else if (\r\n productResult &&\r\n productResult.ItemTypeValue !== ReleasedProductType.Service &&\r\n productResult.ProductTypeValue !== ProductType.Master\r\n ) {\r\n const shippingSearchCriteria = createInventoryAvailabilitySearchCriteria(\r\n ctx,\r\n [productResult.RecordId],\r\n true,\r\n undefined,\r\n undefined,\r\n DeliveryMode.shipping\r\n );\r\n const shippingAvailability = await ProductsDataActions.getEstimatedAvailabilityAsync(\r\n { callerContext: ctx },\r\n shippingSearchCriteria\r\n );\r\n if (\r\n shippingAvailability.ProductWarehouseInventoryAvailabilities &&\r\n shippingAvailability.AggregatedProductInventoryAvailabilities\r\n ) {\r\n return shippingAvailability.AggregatedProductInventoryAvailabilities[0];\r\n }\r\n }\r\n return undefined;\r\n } catch (error) {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- cann't assign type to the error variable.\r\n // ctx.telemetry.exception(error);\r\n ctx.telemetry.debug('[getPriceForSelectedVariantAction]Error executing action');\r\n return undefined;\r\n }\r\n}\r\n\r\n/**\r\n * The function that maps a ProductWareHouse object into a ProductAvailabilityQuantity.\r\n * @param productsWarehouseInventory - Product warehouse inventory.\r\n * @returns Product Available quantity.\r\n */\r\nexport function mergeProductWarehouseToProductAvailabities(\r\n productsWarehouseInventory: ProductWarehouseInventoryAvailability[]\r\n): ProductAvailableQuantity[] {\r\n const productAvailable: ProductAvailableQuantity[] = [];\r\n if (ArrayExtensions.hasElements(productsWarehouseInventory)) {\r\n for (const product of productsWarehouseInventory) {\r\n if (product.TotalAvailable !== undefined && product.ProductId !== undefined) {\r\n productAvailable.push({ ProductId: product.ProductId, AvailableQuantity: product.TotalAvailable });\r\n }\r\n }\r\n }\r\n return productAvailable;\r\n}\r\n\r\n/**\r\n * The complete getProductAvailabilitiesForSelectedVariant data action\r\n * Get the currently selected variant via the getSelectedVariant data action, and\r\n * then gets the availabilities for the variant via the getProductAvailabilities RetailServer API.\r\n */\r\nexport const getProductAvailabilitiesForSelectedVariantActionDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-product-availabilities-for-selected-variant',\r\n action: >getProductAvailabilitiesForSelectedVariantAction,\r\n input: createProductAvailabilitiesForSelectedVariantInput\r\n});\r\n\r\nexport default getProductAvailabilitiesForSelectedVariantActionDataAction;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport {\r\n AddToOrderTemplateComponent,\r\n IAddToOrderTemplateDialogResources,\r\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\r\n IItemAddedToOrderTemplateDialogResources,\r\n IOrderTemplateActionErrorResult,\r\n IOrderTemplateNameDialogResources\r\n} from '@msdyn365-commerce/components';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n getConfigureErrors,\r\n IBuyboxCallbacks,\r\n IBuyboxCommonResources,\r\n IBuyboxData,\r\n IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport * as React from 'react';\r\n\r\nimport { IBuyboxProps as IBuyboxExtentionProps } from '../../definition-extensions/buybox.ext.props.autogenerated';\r\n\r\n/**\r\n * To generate AddToOrderTemplateDialog resources.\r\n * @param resources - The resources.\r\n * @returns -- Returns the list of AddToOrderTemplateDialog resources..\r\n */\r\nfunction generateAddToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IAddToOrderTemplateDialogResources {\r\n return {\r\n addToOrderTemplateHeader: resources.addToOrderTemplateHeader,\r\n\r\n noOrderTemplatesMessage: resources.noOrderTemplatesMessage,\r\n noOrderTemplatesDescription: resources.noOrderTemplatesDescription,\r\n\r\n createAnOrderTemplateButtonText: resources.createAnOrderTemplateButtonText,\r\n createNewOrderTemplateButtonText: resources.createNewOrderTemplateButtonText,\r\n cancelOrderTemplateCreationButtonText: resources.cancelOrderTemplateCreationButtonText,\r\n\r\n selectTemplatesText: resources.selectTemplatesText,\r\n addToTemplateButtonText: resources.addToTemplateButtonText,\r\n lineItemsText: resources.lineItemsText\r\n };\r\n}\r\n\r\n/**\r\n * To generate OrderTemplateNameDialog resources.\r\n * @param resources - The resources.\r\n * @returns -- Returns the list of OrderTemplateNameDialog resources..\r\n */\r\nfunction generateOrderTemplateNameDialogResources(resources: IBuyboxCommonResources): IOrderTemplateNameDialogResources {\r\n return {\r\n orderTemplateHeaderLabel: resources.createOrderTemplateHeader,\r\n orderTemplateTitleLabel: resources.orderTemplateTitle,\r\n orderTemplateNameAriaLabel: resources.orderTemplateNameAriaLabel,\r\n orderTemplateDescription: resources.createOrderTemplateDescription,\r\n\r\n defaultOrderTemplateName: resources.defaultOrderTemplateName,\r\n\r\n orderTemplateButtonLabel: resources.createOrderTemplateButtonText,\r\n orderTemplateCancelButtonLabel: resources.cancelNewOrderTemplateCreationButtonText\r\n };\r\n}\r\n\r\n/**\r\n * To generate ItemAddedToOrderTemplateDialog resources.\r\n * @param resources - The resources.\r\n * @returns -- Returns the list of ItemAddedToOrderTemplateDialog resources..\r\n */\r\nfunction generateItemAddedToOrderTemplateDialogResources(resources: IBuyboxCommonResources): IItemAddedToOrderTemplateDialogResources {\r\n return {\r\n viewOrderTemplateButtonText: resources.viewOrderTemplateButtonText,\r\n continueShoppingButtonText: resources.continueShoppingButtonText,\r\n itemAddedToOrderTemplateHeaderItemOneText: resources.itemAddedToOrderTemplateHeaderItemOneText,\r\n itemAddedToOrderTemplateHeaderItemFormatText: resources.itemAddedToOrderTemplateHeaderItemFormatText,\r\n itemAddedToOrderTemplateHeaderMessageText: resources.itemAddedToOrderTemplateHeaderMessageText,\r\n freePriceText: resources.priceFree,\r\n originalPriceText: resources.originalPriceText,\r\n currentPriceText: resources.currentPriceText\r\n };\r\n}\r\n\r\n/**\r\n * To generate DuplicateItemsWhenAddingToOrderTemplateDialog resources.\r\n * @param resources - The resources.\r\n * @returns -- Returns the list of DuplicateItemsWhenAddingToOrderTemplateDialog resources..\r\n */\r\nfunction generateDuplicateItemsWhenAddingToOrderTemplateDialogResources(\r\n resources: IBuyboxCommonResources\r\n): IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\r\n return {\r\n duplicatedProductsHeader: resources.duplicatedProductsHeader,\r\n duplicatedProductsDescription: resources.duplicatedProductsDescription,\r\n updateQuantityButtonText: resources.updateQuantityButtonText,\r\n cancelDuplicateItemsButtonText: resources.cancelDuplicateItemsButtonText\r\n };\r\n}\r\n\r\n/**\r\n * Add to 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 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/**\r\n * RenderAddToOrderTemplateButton.\r\n * @param props - Buybox view props.\r\n * @param state - Buybox state.\r\n * @param callbacks - Buybox callbacks.\r\n * @param product - Product data.\r\n * @returns -- Returns JSX element.\r\n */\r\nexport const renderAddToOrderTemplateButton = (\r\n props: IBuyboxViewProps & IBuyboxExtentionProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks,\r\n product: SimpleProduct\r\n): React.ReactNode => {\r\n const {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\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 config\r\n } = props;\r\n\r\n const { quantity } = state;\r\n\r\n const isShowButtonText = true;\r\n const isMultipleCatalogsFeatureEnabled = props.isChannelMultipleCatalogsFeatureEnabled || false;\r\n return (\r\n orderTemplates && (\r\n \r\n )\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { format, ItemAvailability } from '@msdyn365-commerce/retail-proxy';\r\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxData,\r\n IBuyboxFindInStoreViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxResources as IBuyboxExtentionResources,\r\n IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport {\r\n ArrayExtensions,\r\n getFullAvailableInventoryNearby,\r\n GetFullAvailableInventoryNearbyInput,\r\n IFullOrgUnitAvailability\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { INodeProps, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport IncrementalQuantity from './components/IncrementalQuantity';\r\nimport { reaction } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxProps } from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { renderAddToOrderTemplateButton } from './components/buybox-add-to-order-template';\r\nimport { Availability } from '../../../actions/get-product-availabilities-for-selected-variant-copy.action';\r\n\r\n/**\r\n * BuyBoxConstants enum.\r\n */\r\nexport enum BuyBoxConstants {\r\n zero = 0\r\n}\r\n\r\n/**\r\n * On Change function.\r\n * @param callbacks -Callbacks.\r\n * @returns Update quantity.\r\n */\r\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\r\n if (callbacks.updateQuantity) {\r\n return callbacks.updateQuantity(newValue);\r\n }\r\n return true;\r\n};\r\n\r\n/**\r\n * RenderQuantity.\r\n * @param quantityComponent - QuantityComponent.\r\n * @param callbacks - Callbacks.\r\n * @param props - Props.\r\n * @param state - State.\r\n * @param extentionResources - ExtentionResources.\r\n * @param quantityLimitsMessages - QuantityLimitsMessages.\r\n * @param max - Max.\r\n * @param telemetryContent - TelemetryContent.\r\n * @param unitOfMeasure - Unit Of Measure.\r\n * @returns -- Returns.\r\n */\r\nconst renderQuantity = (\r\n quantityComponent: IBuyboxProductQuantityViewProps,\r\n callbacks: IBuyboxCallbacks,\r\n props: IBuyboxProps,\r\n state: IBuyboxState,\r\n extentionResources: IBuyboxExtentionResources,\r\n quantityLimitsMessages: React.ReactNode,\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n min: number | undefined,\r\n max: number | undefined,\r\n applyDefaultOrderSettings?: boolean,\r\n telemetryContent?: ITelemetryContent,\r\n unitOfMeasure?: React.ReactNode\r\n): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n const { ContainerProps, LabelContainerProps, heading } = quantityComponent;\r\n\r\n const { resources } = props;\r\n\r\n const { quantity } = state;\r\n\r\n return (\r\n \r\n {heading}\r\n\r\n \r\n\r\n {unitOfMeasure}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render key in price function.\r\n * @param keyInPrice - KeyInPrice.\r\n * @returns -- Returns.\r\n */\r\nconst renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n {heading}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * RenderAddToCart.\r\n * @param addToCart - AddToCart.\r\n * @returns -- Returns.\r\n */\r\nconst renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n const { ContainerProps, errorBlock, button } = addToCart;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * RenderFindInStore.\r\n * @param findInStore - FindInStore.\r\n * @returns -- Returns.\r\n */\r\nconst renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\r\n\r\n return (\r\n \r\n {storeSelector}\r\n {heading}\r\n {productPickupOptionList}\r\n {description}\r\n {errors}\r\n {button}\r\n {modal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * RenderAddToOrderTemplate.\r\n * @param props - Buybox view props.\r\n * @param state - Buybox state.\r\n * @param callbacks - Buybox callbacks.\r\n * @returns -- Returns.\r\n */\r\nconst renderAddToOrderTemplate = (\r\n props: IBuyboxViewProps & IBuyboxExtentionProps,\r\n state: IBuyboxState,\r\n callbacks: IBuyboxCallbacks\r\n): JSX.Element | null => {\r\n const product = props.data.product.result;\r\n if (!props.addToOrderTemplate || !product) {\r\n return null;\r\n }\r\n\r\n const orderTemplateButton = renderAddToOrderTemplateButton(props, state, callbacks, product);\r\n\r\n return (\r\n \r\n {props.addToOrderTemplate.errorBlock}\r\n {orderTemplateButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * RenderSocialShare.\r\n * @param socialShare - Social share react node array.\r\n * @returns -- Returns.\r\n */\r\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!socialShare || socialShare.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return <>{socialShare[0]};\r\n};\r\n\r\n/**\r\n * RenderTextBlocks.\r\n * @param textBlocks - Social share react node array.\r\n * @returns -- Returns.\r\n */\r\nconst _renderTextBlocks = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return <>{textBlocks[0]};\r\n};\r\n\r\n/**\r\n * RenderConfigureDropdown.\r\n * @param dropdown - Buybox product configure dropdown view props.\r\n * @returns -- Returns JSX.Element.\r\n */\r\nconst renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n {heading}\r\n {select}\r\n {errors}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * RenderConfigure.\r\n * @param configure - Buybox product configure view props.\r\n * @returns -- Returns JSX.Element.\r\n */\r\nconst renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return {dropdowns.map(renderConfigureDropdown)};\r\n};\r\n\r\n/**\r\n * BuyboxView.\r\n * @param props - Props.\r\n * @returns -- Returns.\r\n */\r\nconst BuyboxView: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n const {\r\n ModuleProps,\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n MediaGalleryContainerProps,\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n ProductInfoContainerProps,\r\n addToCart,\r\n addToOrderTemplate,\r\n productComparisonButton,\r\n configure,\r\n description,\r\n findInStore,\r\n quantity,\r\n price,\r\n title,\r\n rating,\r\n inventoryLabel,\r\n keyInPrice,\r\n min,\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n max,\r\n applyDefaultOrderSettings,\r\n unitOfMeasure,\r\n callbacks,\r\n state,\r\n resources,\r\n quantityLimitsMessages,\r\n telemetryContent,\r\n app: { config: appConfig },\r\n catalogs\r\n } = props;\r\n let skuText: string = props.resources.skuText;\r\n skuText += props.data.product.result?.ItemId;\r\n const preferredStoreInfo: IStoreInfo | undefined = props.data.storeSelectorStateManager.result?.preferredStore;\r\n const preferredStoreId = preferredStoreInfo?.StoreId ? preferredStoreInfo.StoreId : '';\r\n const preferredStoreName = preferredStoreInfo?.StoreName ? preferredStoreInfo.StoreName : '';\r\n\r\n const [availability, setAvailability] = React.useState('');\r\n const [isLoadingAvailability, setIsLoadingAvailability] = React.useState(true);\r\n const [totalAvailability, setTotalAvailability] = React.useState('');\r\n const [isStoreChange, setIsStoreChange] = React.useState(false);\r\n\r\n /**\r\n * GetStockInventoryLabel.\r\n * @param availabilityWithHours - Stock availability with hours.\r\n * @returns -- Returns.\r\n */\r\n const getStockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\r\n for (const productInventoryInformation of availabilityWithHours.ProductInventoryInformation) {\r\n if (\r\n availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\r\n productInventoryInformation.InventLocationId\r\n ) {\r\n return productInventoryInformation.StockLevelLabel;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n const getInventory = React.useCallback(async () => {\r\n const input = new GetFullAvailableInventoryNearbyInput(\r\n props.data.product.result?.RecordId,\r\n BuyBoxConstants.zero,\r\n BuyBoxConstants.zero,\r\n BuyBoxConstants.zero,\r\n BuyBoxConstants.zero,\r\n true\r\n );\r\n\r\n /**\r\n * IsProductInStock.\r\n * @param itemAvailabilities - Item availability array.\r\n * @returns -- Returns.\r\n */\r\n const isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\r\n if (!appConfig.enableStockCheck) {\r\n return true;\r\n }\r\n\r\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\r\n return itemAvailabilities[BuyBoxConstants.zero].AvailableQuantity! > BuyBoxConstants.zero;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n await getFullAvailableInventoryNearby(input, props.context.actionContext).then(response => {\r\n if (props.data.productAvailableQuantity.result) {\r\n const result = props.data.productAvailableQuantity.result as any;\r\n setTotalAvailability(result.TotalAvailableInventoryLevelLabel as string);\r\n setIsLoadingAvailability(false);\r\n }\r\n if (response && ArrayExtensions.hasElements(response)) {\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\r\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === preferredStoreId;\r\n const filteredFullOrgUnitAvailability = response.filter(isPreferredStore);\r\n const preferredStoreAvailability = ArrayExtensions.hasElements(filteredFullOrgUnitAvailability)\r\n ? filteredFullOrgUnitAvailability[BuyBoxConstants.zero]\r\n : undefined;\r\n const stockStatusLabel: string | undefined = getStockInventoryLabel(preferredStoreAvailability);\r\n const isInStock = isProductInStock(preferredStoreAvailability?.OrgUnitAvailability?.ItemAvailabilities);\r\n const resourceLabel = isInStock ? props.resources.inStockText : props.resources.outOfStockText;\r\n const stockText: string | undefined = stockStatusLabel ? stockStatusLabel : resourceLabel;\r\n const preferredStoreAvailabilityText = `${format(\r\n props.resources.availabilityAtPreferredStoreText,\r\n preferredStoreName\r\n )} ${stockText}`;\r\n setAvailability(preferredStoreAvailabilityText);\r\n }\r\n });\r\n\r\n setIsStoreChange(false);\r\n }, [\r\n props.data.product.result?.RecordId,\r\n appConfig.enableStockCheck,\r\n preferredStoreId,\r\n preferredStoreName,\r\n props.context.actionContext,\r\n props.resources.availabilityAtPreferredStoreText,\r\n props.resources.inStockText,\r\n props.resources.outOfStockText,\r\n props.telemetry\r\n ]);\r\n\r\n React.useEffect(() => {\r\n getInventory().catch((error: Error) => {\r\n props.telemetry.error(error.message);\r\n });\r\n }, [getInventory, isStoreChange, props.telemetry, props.config.displayStockAvailability]);\r\n\r\n reaction(\r\n () => props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\r\n () => {\r\n setIsStoreChange(true);\r\n }\r\n );\r\n\r\n /**\r\n * RenderAvailabiltyAtPreferredStore.\r\n * @returns -- Returns.\r\n */\r\n const renderAvailabilityAtPreferredStore = (): JSX.Element | undefined => {\r\n const hasProductDimensions = ArrayExtensions.hasElements(props.data.product.result?.Dimensions);\r\n if (hasProductDimensions && props.data.product.result?.MasterProductId === undefined) {\r\n return undefined;\r\n }\r\n const containerProps: INodeProps = {\r\n className: 'ms-buybox__preferred-store-availability',\r\n tag: 'span'\r\n };\r\n\r\n return {availability};\r\n };\r\n\r\n const renderAvailability = (): JSX.Element | undefined => {\r\n const { product } = props.data;\r\n const hasProductDimensions = ArrayExtensions.hasElements(product.result?.Dimensions);\r\n\r\n if (hasProductDimensions && !product.result?.MasterProductId) {\r\n return undefined;\r\n }\r\n \r\n const isAvailable = totalAvailability === Availability.available;\r\n const indicator = isAvailable ? Availability.availableClass : Availability.outOfStockClass;\r\n const availabilityLabel = isAvailable ? props.resources.availabilityIndicatorAvailable : props.resources.availabilityIndicatorOutOfStock\r\n \r\n const containerProps: INodeProps = {\r\n className: `ms-buybox__availability ms-buybox__availability-${indicator}`,\r\n tag: 'span',\r\n title: availabilityLabel\r\n };\r\n\r\n return (\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {props.mediaGallery}\r\n \r\n {catalogs && catalogs[0].Name}\r\n {title}\r\n \r\n
{skuText}
\r\n {!isLoadingAvailability && renderAvailability()}\r\n {rating}\r\n
\r\n \r\n
{props.resources.priceText}
\r\n {price}\r\n
\r\n {configure && renderConfigure(configure)}\r\n {keyInPrice && renderKeyInPrice(keyInPrice)}\r\n \r\n
\r\n {quantity &&\r\n renderQuantity(\r\n quantity,\r\n callbacks,\r\n props,\r\n state,\r\n resources,\r\n quantityLimitsMessages,\r\n min,\r\n max,\r\n applyDefaultOrderSettings,\r\n telemetryContent,\r\n unitOfMeasure\r\n )}\r\n {props.bulkPurchaseLink}\r\n
\r\n
\r\n {props.config.displayStockAvailability && preferredStoreId && renderAvailabilityAtPreferredStore()}\r\n {inventoryLabel}\r\n {renderAddToCart(addToCart)}\r\n {findInStore && renderFindInStore(findInStore)}\r\n {productComparisonButton}\r\n {addToOrderTemplate && renderAddToOrderTemplate(props, state, callbacks)}\r\n {findInStore?.productPickupOptionList ? (\r\n
{findInStore.productPickupOptionList}
\r\n ) : null}\r\n {_renderSocialShare(props.slots && props.slots.socialShare)}\r\n {_renderTextBlocks(props.slots && props.slots.textBlocks)}\r\n \r\n
{props.resources.descriptionText}
\r\n {description}\r\n
\r\n {ArrayExtensions.hasElements(props.slots.productSpecification) ? (\r\n {props.slots.productSpecification[0]}\r\n ) : null}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BuyboxView;\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 { IRequestContext } from '@msdyn365-commerce/core';\r\nimport { debounce } from 'lodash';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ITelemetry } from '@msdyn365-commerce/telemetry-internal';\r\nimport { IDictionary } from '@msdyn365-commerce/core';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nexport enum VariantType {\r\n Browser,\r\n Viewport\r\n}\r\n\r\n/**\r\n * Returns the payload Object.\r\n * @param {string} contentCategory - Content Category.\r\n * @param {IModule} props - Module props.\r\n * @param {string} moduleName - Module Name.\r\n * @param eventType\r\n * @param telemetryContent\r\n * @param {string} etext - Etext Name.\r\n * @param {string} recid - Recid Name.\r\n */\r\nexport function getPayloadObject(eventType: string, telemetryContent: ITelemetryContent, etext: string, recid?: string): IPayLoad {\r\n const pageName = telemetryContent && telemetryContent.pageName ? telemetryContent.pageName : '';\r\n const moduleName = telemetryContent && telemetryContent.moduleName ? telemetryContent.moduleName : '';\r\n const payload: IPayLoad = {\r\n contentCategory: eventType,\r\n contentAction: {\r\n pgname: pageName,\r\n mname: moduleName,\r\n etext,\r\n recid,\r\n etype: eventType\r\n }\r\n };\r\n return payload;\r\n}\r\n\r\nexport interface IMobileProps {\r\n variant?: VariantType;\r\n context?: IRequestContext;\r\n}\r\n\r\nexport const isMobile = (props: IMobileProps) => {\r\n const { variant, context } = props;\r\n switch (variant) {\r\n case VariantType.Browser:\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = context?.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'lg';\r\n case VariantType.Viewport:\r\n const viewport = context?.device?.Type === 'Mobile' ? 'xs' : 'lg';\r\n return viewport;\r\n default:\r\n return 'lg';\r\n }\r\n};\r\n\r\n/**\r\n * Returns the telemetry Attributes.\r\n * @param {IModule} props - Module Props.\r\n * @param telemetryContent\r\n * @param {IPayLoad} payLoad - Pay Load.\r\n */\r\nexport function getTelemetryAttributes(telemetryContent: ITelemetryContent, payLoad: IPayLoad): IDictionary | undefined {\r\n const contentData = payLoad.contentAction.recid ? payLoad.contentAction.recid : payLoad.contentAction.etext;\r\n const attributes: IDictionary | undefined =\r\n telemetryContent &&\r\n telemetryContent.telemetry &&\r\n telemetryContent.telemetry.setTelemetryAttribute &&\r\n telemetryContent.telemetry.setTelemetryAttribute(contentData!, payLoad.contentAction);\r\n return attributes;\r\n}\r\n\r\nexport interface IContentAction {\r\n pgname: string;\r\n mname: string;\r\n etext?: string;\r\n recid?: string;\r\n etype?: string;\r\n}\r\n\r\nexport interface IPayLoad {\r\n contentCategory: string;\r\n contentAction: IContentAction;\r\n}\r\n\r\nexport enum TelemetryConstant {\r\n ShopSimliarLooks = 'shop similar looks',\r\n ShopSimliarDescription = 'shop similar description',\r\n PickupInStore = 'pick up in store',\r\n PreferredStore = 'set as preferred store',\r\n RemovePreferredStore = 'remove preferred store',\r\n IncrementQuantity = 'Increment quantity',\r\n DecrementQuantity = 'Decrement quantity',\r\n Checkout = 'Checkout',\r\n GuestCheckout = 'Guest checkout',\r\n BackToShopping = 'Back to shopping',\r\n ApplyPromoCode = 'Apply promo code',\r\n ViewMore = 'View more',\r\n OrderDetails = 'Order details',\r\n AvailablePoints = 'Available points',\r\n ExpiringPoints = 'Expiring points',\r\n AddUser = 'Add user',\r\n BuyItAgain = 'Buy it again',\r\n ContactNumber = 'ContactNumber',\r\n CheckoutChange = 'Change',\r\n Save = 'Save',\r\n SaveContinue = 'Save and Continue',\r\n Cancel = 'Cancel',\r\n DeliveryOptions = 'Delivery options',\r\n CheckoutTermsAndConditions = 'Checkout terms and conditions',\r\n ExpandAll = 'Expand all',\r\n CollapseAll = 'Collapse all',\r\n Expand = 'Expand',\r\n Collapse = 'Collapse',\r\n SignIn = 'Sign in',\r\n SignUp = 'Sign up',\r\n SignOut = 'Sign out',\r\n SwitchCustomer = 'Switch Customer',\r\n LoyaltyDetailLink = 'Loyalty detail ink',\r\n LoyaltyTermsLink = 'Loyalty terms link',\r\n LoyaltyTermsCancel = 'Loyalty terms cancel',\r\n LoyaltyTermsSubmit = 'Loyalty terms submit',\r\n LoyaltyTermsAgree = 'Loyalty terms agree',\r\n RemoveCartItem = 'Remove cart item',\r\n EditCart = 'Edit cart',\r\n BackToTop = 'Back to top',\r\n Logo = 'Logo',\r\n NavIcon = 'Navigation icon',\r\n ViewBagAndCheckout = 'View bag and checkout',\r\n ContinueShopping = 'Continue shopping',\r\n AddOrderTemplateToCart = 'Add order template to cart',\r\n PromoBannerClose = 'Close promo banner',\r\n WriteReview = 'Write Review',\r\n Next = 'Next',\r\n Previous = 'Previous',\r\n SubmitReview = 'Submit review',\r\n SuccessButton = 'Success',\r\n SearchStore = 'Search store',\r\n ShowAllStore = 'Show all store',\r\n ToggleMapView = 'Toggle map view',\r\n PrivacyPolicy = 'Privacy policy',\r\n ViewShoppingBag = 'View shopping bag',\r\n MyProfile = 'My profile',\r\n seeDetails = 'See Details',\r\n CurrentDistributor = 'Set as current distributor',\r\n ViewMode = 'View mode',\r\n ApplyRefiner = 'Apply Refiner',\r\n Search = 'Search'\r\n}\r\n\r\ninterface ITelemetryContent {\r\n pageName: string;\r\n moduleName: string;\r\n telemetry?: ITelemetry;\r\n}\r\n\r\ninterface IIncrementalQuantityState {\r\n isUpdating: boolean;\r\n currentInput: string;\r\n}\r\n\r\ninterface IIncrementalQuantityProps {\r\n min?: number;\r\n max: number;\r\n currentCount?: number;\r\n disabled?: boolean;\r\n incrementGlyphClass?: string;\r\n decrementGlyphClass?: string;\r\n decrementButtonAriaLabel?: string;\r\n incrementButtonAriaLabel?: string;\r\n minQuantityText: string;\r\n maxQuantityText: string;\r\n inputQuantityAriaLabel?: string;\r\n isGiftCard?: boolean;\r\n id?: string;\r\n telemetryContent?: ITelemetryContent;\r\n applyDefaultOrderSettings?: boolean;\r\n onChange?(newValue: number): boolean;\r\n}\r\n/**\r\n * Quantity Component - This component is used to add or remove quantity.\r\n */\r\n@observer\r\nexport default class IncrementalQuantity extends React.PureComponent {\r\n public static defaultProps: Partial = {\r\n min: 1,\r\n decrementGlyphClass: 'fas fa-minus',\r\n incrementGlyphClass: 'fas fa-plus'\r\n };\r\n\r\n private _minValue: number;\r\n\r\n private readonly inputRef: React.RefObject = React.createRef();\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n public static getDerivedStateFromProps(\r\n props: Readonly,\r\n state: IIncrementalQuantityState\r\n ): IIncrementalQuantityState {\r\n const nextState = { ...state };\r\n\r\n if (props.disabled && !state.isUpdating) {\r\n nextState.isUpdating = true;\r\n }\r\n\r\n let updatedValue = parseFloat(state.currentInput);\r\n\r\n if (\r\n (!props.disabled && state.isUpdating) ||\r\n ((props.applyDefaultOrderSettings ?? false) &&\r\n updatedValue === 1.00 &&\r\n props.currentCount &&\r\n props.currentCount > IncrementalQuantity.defaultProps.min!)\r\n ) {\r\n updatedValue = props.currentCount ?? 1.00;\r\n nextState.isUpdating = false;\r\n }\r\n\r\n return nextState;\r\n }\r\n\r\n constructor(props: IIncrementalQuantityProps) {\r\n super(props);\r\n this.state = { isUpdating: false, currentInput: props.currentCount?.toFixed(2) ?? '1.00' };\r\n this._onIncrement = this._onIncrement.bind(this);\r\n this._onDecrement = this._onDecrement.bind(this);\r\n this._handleChange = this._handleChange.bind(this);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, '');\r\n this._minValue = this.props.min ?? IncrementalQuantity.defaultProps.min!;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { min, max } = this.props;\r\n\r\n this._minValue = min ?? IncrementalQuantity.defaultProps.min!;\r\n const currentValue1 = this.state.currentInput;\r\n\r\n const glyphMinusClassName: string = `${this.props.decrementGlyphClass!} quantity__controls-glyph`;\r\n const glyphPlusClassName: string = `${this.props.incrementGlyphClass!} quantity__controls-glyph`;\r\n const decrementDisabled = parseFloat(currentValue1) <= this._minValue || this.props.isGiftCard;\r\n const incrementDisabled = parseFloat(currentValue1) >= max || this.props.isGiftCard;\r\n const currentValue = parseFloat(currentValue1);\r\n this.payLoad.contentAction.etext = TelemetryConstant.DecrementQuantity;\r\n const decrementAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n this.payLoad.contentAction.etext = TelemetryConstant.IncrementQuantity;\r\n const incrementAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n const ariaLablelText = `${this.props.inputQuantityAriaLabel ?? ''} ${parseFloat(currentValue1)}`;\r\n\r\n let extraClassDecrement = '';\r\n if (decrementDisabled) {\r\n // The quantity has reached its boundaries (max or min)\r\n extraClassDecrement = 'disabled';\r\n } else if (this.props.disabled) {\r\n // This.props.disabled shows if the state is not succeded yet\r\n extraClassDecrement = 'transition';\r\n }\r\n let extraClassIncrement = '';\r\n if (incrementDisabled) {\r\n // The quantity has reached its boundaries (max or min)\r\n extraClassIncrement = 'disabled';\r\n } else if (this.props.disabled) {\r\n // This.props.disabled shows if the state is not succeded yet\r\n extraClassIncrement = 'transition';\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n /**\r\n * It checks if its in mobile view or not.\r\n * @returns Boolean.\r\n */\r\n private readonly isMobileView = (): boolean => {\r\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Added gridsetting values.\r\n const context = {\r\n gridSettings: {\r\n xs: { w: 767 },\r\n sm: { w: 991 },\r\n md: { w: 1199 },\r\n lg: { w: 1599 },\r\n xl: { w: 1600 }\r\n }\r\n } as IRequestContext;\r\n\r\n const isMobileCheck = isMobile({ variant: VariantType.Browser, context });\r\n return isMobileCheck === 'xs' || isMobileCheck === 'sm';\r\n };\r\n\r\n private _onIncrement(): void {\r\n let invokeCallback = false;\r\n const currQuantity = parseFloat(this.state.currentInput)\r\n \r\n let updatedQuantity: number;\r\n \r\n if (currQuantity < this.props.max) {\r\n invokeCallback = true;\r\n updatedQuantity = currQuantity + 1;\r\n } else {\r\n invokeCallback = false;\r\n updatedQuantity = this.props.max;\r\n }\r\n\r\n if (invokeCallback && this.props.onChange) {\r\n if (this.props.onChange(updatedQuantity)) {\r\n this.setState({ currentInput: updatedQuantity.toFixed(2) });\r\n }\r\n }\r\n }\r\n\r\n private _onDecrement(): void {\r\n let invokeCallback = false;\r\n const currQuantity = parseFloat(this.state.currentInput)\r\n let updatedQuantity: number;\r\n\r\n if (currQuantity >= this._minValue) {\r\n invokeCallback = true;\r\n updatedQuantity = currQuantity - 1;\r\n } else {\r\n invokeCallback = false;\r\n updatedQuantity = this._minValue;\r\n }\r\n\r\n if (invokeCallback && this.props.onChange) {\r\n if (this.props.onChange(updatedQuantity)) {\r\n this.setState({ currentInput: updatedQuantity.toFixed(2) });\r\n }\r\n }\r\n }\r\n\r\n private _handleChange(e: React.ChangeEvent): void {\r\n let value = e.target.value;\r\n \r\n // If the input field is empty, we update the state to an empty field.\r\n if (value === '') {\r\n this.setState({ currentInput: '' });\r\n } else if (/^[0-9]*[.]?[0-9]{0,2}$/.test(value)) {\r\n // Converts the comma to a dot and stores the valid value in the state.\r\n const formattedValue = value.replace(\",\", \".\");\r\n this.setState({ currentInput: formattedValue });\r\n \r\n debounce(() => {\r\n this.props.onChange && this.props.onChange(parseFloat(this.state.currentInput));\r\n \r\n const inputElement =\r\n this.inputRef && this.inputRef.current && this.inputRef.current instanceof HTMLInputElement && this.inputRef.current;\r\n if (inputElement) {\r\n inputElement.setAttribute('aria-valuenow', this.state.currentInput);\r\n inputElement.setAttribute('value', this.state.currentInput);\r\n }\r\n }, 1000)();\r\n }\r\n }\r\n\r\n /**\r\n * Validates min and updates.\r\n */\r\n private readonly _validateMin = (): void => {\r\n // If the input field is empty, we update the state to an empty field.\r\n if (this.state.currentInput === '') {\r\n this.setState({ currentInput: '1' });\r\n }\r\n \r\n const currentValue = parseFloat(this.state.currentInput);\r\n \r\n if (isNaN(currentValue)) {\r\n // If the value is invalid, we set it to the minimum value.\r\n this.setState({ currentInput: this._minValue.toFixed(2) });\r\n } else {\r\n const validValue = Math.min(this.props.max, Math.max(this._minValue, currentValue));\r\n if (validValue !== currentValue) {\r\n this.setState({ currentInput: validValue.toFixed(2) });\r\n }\r\n }\r\n };\r\n}\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['buybox'] = {\n c: () => require('@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox/buybox'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'cartConfiguration', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-cart-configuration', runOn: 0},{name:'catalogs', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'deliveryOptions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orderTemplates', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview', runOn: 1},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productAvailableQuantity', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant', runOn: 0},{name:'productDimensions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant', runOn: 0},{name:'productPrice', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant', runOn: 0},{name:'ratingsSummary', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary', runOn: 1},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'buybox',\n p: 'buybox',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-cart-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-cart-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-price-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/order-templates/get-order-templates-preview');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|jansen-adventureworks|views|buybox'] = {\n c: () => require('partner/themes/jansen-adventureworks/views/buybox.view.tsx'),\n cn: '__local__-__local__-buybox'\n };\nviewDictionary['@msdyn365-commerce-modules|buybox|modules|buybox|buybox'] = {\n c: () => require('@msdyn365-commerce-modules/buybox/dist/lib/modules/buybox/buybox.view.js'),\n cn: '@msdyn365-commerce-modules-buybox-buybox'\n };\nviewDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|buybox'] = {\n c: () => require('@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/buybox.view.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-buybox'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport {\n IListMapViewState,\n ILoadMapApiInput,\n IStoreInfo,\n IStoreSelectionStateContext,\n IStoreSelectorLocation,\n IStoreSelectorStateManager\n} from './i-store-selection-state-manager';\n\n/**\n * Abstract instance of IStoreSelectorStateManager with base implementation\n * of everything except the geoLocate function.\n */\nexport abstract class BaseStoreSelectorStateManager implements IStoreSelectorStateManager {\n @computed public get isDialogOpen(): Readonly {\n return this._context !== undefined;\n }\n\n @computed public get context(): Readonly {\n return this._context;\n }\n\n @observable public isMapApiLoaded?: boolean;\n\n @observable public selectedStoreLocationId?: string;\n\n @observable public preferredStore?: IStoreInfo;\n\n @observable public listMapViewState: IListMapViewState = { displayList: true, displayMap: false };\n\n @observable public isMapModuleLoaded?: boolean;\n\n @observable public lastInlineShownStoreInfo?: IStoreInfo;\n\n @observable protected _context?: IStoreSelectionStateContext;\n\n private readonly preferredStoreLocalStorageKey: string = '_msdyn365__preferredStore_';\n\n constructor() {\n this.isMapModuleLoaded = false;\n const value = this._readFromToCookie(this.preferredStoreLocalStorageKey);\n try {\n const storeInfo: IStoreInfo | undefined = value ? JSON.parse(value) : undefined;\n if (storeInfo) {\n this.preferredStore = storeInfo;\n }\n } catch {\n this.preferredStore = undefined;\n }\n }\n\n public abstract geoLocate(searchTerm: string, actionContext: IActionContext): Promise;\n\n public abstract loadMapApi(input: ILoadMapApiInput): Promise;\n\n @action\n public async toggleListMapViewState(): Promise {\n this.listMapViewState = {\n displayList: !this.listMapViewState.displayList,\n displayMap: !this.listMapViewState.displayMap\n };\n }\n\n @action\n public async setMapModuleLoaded(input: boolean): Promise {\n this.isMapModuleLoaded = input;\n }\n\n @action\n public async setOrgUnitStoreInformation(input: IStoreSelectionStateContext): Promise {\n this._context = input;\n }\n\n @action\n public async setSelectedStoreLocationId(storeId: string | undefined): Promise {\n this.selectedStoreLocationId = storeId;\n }\n\n @action\n public async setPreferredStoreLocation(\n storeId?: string,\n storeName?: string | undefined,\n writeToCookie: boolean = false,\n latitude?: number,\n longitude?: number\n ): Promise {\n const storeInfo: IStoreInfo = { StoreId: storeId, StoreName: storeName, Latitude: latitude, Longitude: longitude };\n this.preferredStore = storeInfo;\n if (writeToCookie) {\n this._writeToCookie(this.preferredStoreLocalStorageKey, JSON.stringify(storeInfo));\n }\n }\n\n @action\n public async setLastInlineStoreInfo(latitude?: number, longitude?: number): Promise {\n const storeInfo: IStoreInfo = { StoreId: '', StoreName: '', Latitude: latitude, Longitude: longitude };\n this.lastInlineShownStoreInfo = storeInfo;\n }\n\n @action\n public async clearPreferredStore(writeToCookie: boolean): Promise {\n this.preferredStore = undefined;\n if (writeToCookie) {\n this._removeCookie(this.preferredStoreLocalStorageKey);\n }\n }\n\n @action\n public async openDialog(input: IStoreSelectionStateContext): Promise {\n if (this._context && this._context.id === input.id) {\n throw new Error('Dialog is already opened');\n }\n\n this._context = input;\n }\n\n @action\n public async closeDialog(): Promise {\n this._context = undefined;\n }\n\n private _removeCookie(key: string): void {\n if (!key) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.removeItem(key);\n }\n }\n\n private _writeToCookie(key: string, value: string | undefined): void {\n if (!key || !value) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.setItem(key, value);\n }\n }\n\n private _readFromToCookie(key: string): string | undefined {\n if (!key) {\n return undefined;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n const cookieValue = storage.getItem(key);\n if (cookieValue) {\n return cookieValue;\n }\n }\n\n return undefined;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { action } from 'mobx';\n\nimport { BaseStoreSelectorStateManager } from './base-store-selector-state-manager';\nimport { ILoadMapApiInput, IStoreSelectorLocation } from './i-store-selection-state-manager';\nimport { IMapWindow, MapLocationsResult } from './models/map-data';\n\ndeclare const window: IMapWindow;\n\n/**\n * Instance of IStoreSelectorStateManager manager that uses Map service\n * for geo location.\n */\nexport class MapStoreSelectorStateManager extends BaseStoreSelectorStateManager {\n private readonly SERVICE_ENDPOINT: string = 'https://dev.virtualearth.net/REST/v1/';\n\n private readonly MAP_API_ENDPOINT: string = 'https://www.bing.com/api/maps/mapcontrol?callback=mapAPIReady';\n\n @action\n public async geoLocate(searchTerm: string, actionContext: IActionContext): Promise {\n if (\n !searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled\n ) {\n return undefined;\n }\n\n let searchContent: string = searchTerm;\n\n const jsonp = `mapSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\n\n if (actionContext.requestContext.channel.ChannelCountryRegionISOCode) {\n searchContent = `${searchTerm.trim()} ${actionContext.requestContext.channel.ChannelCountryRegionISOCode}`;\n }\n\n const query = encodeURI(searchContent);\n const key = encodeURI(actionContext.requestContext.channel.BingMapsApiKey);\n\n const geolocationApiUrl =\n actionContext.requestContext.app &&\n actionContext.requestContext.app.config &&\n actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${\n geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT\n }/Locations?query=${query}&key=${key}&jsonp=${jsonp}`;\n\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', requestUrl);\n\n window[jsonp] = (data: MapLocationsResult) => {\n delete window[jsonp];\n script.remove();\n\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\n resolve({\n latitude: data.resourceSets[0].resources[0].point.coordinates[0],\n longitude: data.resourceSets[0].resources[0].point.coordinates[1]\n });\n }\n\n resolve(undefined);\n };\n\n document.body.appendChild(script);\n });\n }\n\n @action\n public async loadMapApi(input: ILoadMapApiInput): Promise {\n if (StringExtensions.isNullOrEmpty(input.key)) {\n return Promise.resolve();\n }\n\n const isScriptAlreadyLoaded = !!document?.getElementById('msdyn_map-api-script');\n\n if (isScriptAlreadyLoaded) {\n if (window) {\n const currentWindowAPI = window.mapAPIReady;\n window.mapAPIReady = () => {\n if (currentWindowAPI) {\n currentWindowAPI();\n }\n this.isMapApiLoaded = true;\n };\n }\n // Prevents from loading multiple script into the body\n return Promise.resolve();\n }\n\n const url = `${this.MAP_API_ENDPOINT}${input.key ? `&key=${input.key}` : ''}${input.lang ? `&setLang=${input.lang}` : ''}${\n input.market ? `&setMkt=${input.market}` : ''\n }`;\n\n return new Promise((resolve, reject) => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n script.id = 'msdyn_map-api-script';\n if (window) {\n window.mapAPIReady = () => {\n this.isMapApiLoaded = true;\n resolve();\n };\n }\n script.addEventListener('error', (error: string | Event) => {\n reject(error);\n });\n document?.body?.appendChild(script);\n });\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreSelectorStateManager } from './i-store-selection-state-manager';\nimport { MapStoreSelectorStateManager } from './map-store-selector-state-manager';\n\nexport function createStoreSelectorStateInput(result: IStoreSelectorStateManager): GenericInput {\n return new GenericInput('mapSSSM', result, 'IStoreSelectorStateManager');\n}\n\nconst createStoreSelectorStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createStoreSelectorStateInput(new MapStoreSelectorStateManager());\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createStoreSelectorStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n AddToOrderTemplateComponent,\n IAddToOrderTemplateDialogResources,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\n IItemAddedToOrderTemplateDialogResources,\n IOrderTemplateActionErrorResult,\n IOrderTemplateNameDialogResources\n} from '@msdyn365-commerce/components';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n getConfigureErrors,\n IBuyboxCallbacks,\n IBuyboxCommonResources,\n IBuyboxData,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport * as React from 'react';\n\nimport { IBuyboxProps as IBuyboxExtentionProps } from '../../definition-extensions/buybox.ext.props.autogenerated';\n\n/**\n * To generate AddToOrderTemplateDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of AddToOrderTemplateDialog resources..\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\n/**\n * To generate OrderTemplateNameDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of OrderTemplateNameDialog resources..\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\n/**\n * To generate ItemAddedToOrderTemplateDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of ItemAddedToOrderTemplateDialog resources..\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\n/**\n * To generate DuplicateItemsWhenAddingToOrderTemplateDialog resources.\n * @param resources - The resources.\n * @returns -- Returns the list of DuplicateItemsWhenAddingToOrderTemplateDialog resources..\n */\nfunction generateDuplicateItemsWhenAddingToOrderTemplateDialogResources(\n resources: IBuyboxCommonResources\n): IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\n return {\n duplicatedProductsHeader: resources.duplicatedProductsHeader,\n duplicatedProductsDescription: resources.duplicatedProductsDescription,\n updateQuantityButtonText: resources.updateQuantityButtonText,\n cancelDuplicateItemsButtonText: resources.cancelDuplicateItemsButtonText\n };\n}\n\n/**\n * Add to wishlist failed function.\n * @param callbacks -Buybox callbacks.\n * @param resources -Buybox resources.\n * @param product -Simple product.\n * @returns Update error state.\n */\nconst onAddToOrderTemplateFailed = (callbacks: IBuyboxCallbacks, resources: IBuyboxCommonResources, product: SimpleProduct | undefined) => (\n result: IOrderTemplateActionErrorResult\n) => {\n callbacks.updateErrorState({\n errorHost: 'ORDER_TEMPLATE',\n configureErrors:\n result.status === 'MISSING_DIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\n });\n};\n\n/**\n * RenderAddToOrderTemplateButton.\n * @param props - Buybox view props.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @param product - Product data.\n * @returns -- Returns JSX element.\n */\nexport const renderAddToOrderTemplateButton = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n product: SimpleProduct\n): React.ReactNode => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n id,\n typeName,\n context,\n data: {\n orderTemplates: { result: orderTemplates },\n customerInformation: { result: customerInformation }\n },\n resources,\n config\n } = props;\n\n const { quantity } = state;\n\n const isShowButtonText = true;\n const isMultipleCatalogsFeatureEnabled = props.isChannelMultipleCatalogsFeatureEnabled || false;\n return (\n orderTemplates && (\n \n )\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToWishlistComponent, IWishlistActionErrorResult } from '@msdyn365-commerce/components';\nimport { format, ItemAvailability, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\nimport {\n getConfigureErrors,\n IBuyboxAddToCartViewProps,\n IBuyboxCallbacks,\n IBuyboxCommonResources,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxResources as IBuyboxExtentionResources,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport {\n ArrayExtensions,\n getFullAvailableInventoryNearby,\n GetFullAvailableInventoryNearbyInput,\n IFullOrgUnitAvailability\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { IncrementalQuantity, INodeProps, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxProps } from '../definition-extensions/buybox.ext.props.autogenerated';\nimport { renderAddToOrderTemplateButton } from './components/buybox-add-to-order-template';\n\n/**\n * BuyBoxConstants enum.\n */\nexport enum BuyBoxConstants {\n zero = 0\n}\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\n/**\n * RenderQuantity.\n * @param quantityComponent - QuantityComponent.\n * @param callbacks - Callbacks.\n * @param props - Props.\n * @param state - State.\n * @param extentionResources - ExtentionResources.\n * @param quantityLimitsMessages - QuantityLimitsMessages.\n * @param max - Max.\n * @param telemetryContent - TelemetryContent.\n * @param unitOfMeasure - Unit Of Measure.\n * @returns -- Returns.\n */\nconst renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent,\n unitOfMeasure?: React.ReactNode\n): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {unitOfMeasure}\n {quantityLimitsMessages}\n \n );\n};\n\n/**\n * Render key in price function.\n * @param keyInPrice - KeyInPrice.\n * @returns -- Returns.\n */\nconst renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\n/**\n * RenderAddToCart.\n * @param addToCart - AddToCart.\n * @returns -- Returns.\n */\nconst renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, errorBlock, button } = addToCart;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\n/**\n * RenderFindInStore.\n * @param findInStore - FindInStore.\n * @returns -- Returns.\n */\nconst renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * RenderAddToOrderTemplate.\n * @param props - Buybox view props.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @returns -- Returns.\n */\nconst renderAddToOrderTemplate = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks\n): JSX.Element | null => {\n const product = props.data.product.result;\n if (!props.addToOrderTemplate || !product) {\n return null;\n }\n\n const orderTemplateButton = renderAddToOrderTemplateButton(props, state, callbacks, product);\n\n return (\n \n {props.addToOrderTemplate.errorBlock}\n {orderTemplateButton}\n \n );\n};\n\n/**\n * Add to wishlist failed function.\n * @param callbacks -Buybox callbacks.\n * @param resources -Buybox resources.\n * @param product -Simple product.\n * @returns Update error state.\n */\nconst onAddToWishlistFailed = (callbacks: IBuyboxCallbacks, resources: IBuyboxCommonResources, product: SimpleProduct | undefined) => (\n result: IWishlistActionErrorResult\n) => {\n callbacks.updateErrorState({\n errorHost: 'WISHLIST',\n configureErrors:\n result.status === 'MISSINGDIMENSION' ? getConfigureErrors(result.missingDimensions, resources, product?.IsGiftCard) : {}\n });\n};\n\n/**\n * RenderAddToWishlist.\n * @param props - Buybox view props.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @param product - Product data.\n * @returns -- Returns.\n */\nconst renderAddtoWishlistButton = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n product: SimpleProduct\n): React.ReactNode => {\n const { context, resources } = props;\n const wishlists = props.data.wishlists.result;\n const isShowWishlitButtonText = true;\n return (\n \n );\n};\n\n/**\n * RenderAddToWishlist.\n * @param props - Buybox viewprops.\n * @param state - Buybox state.\n * @param callbacks - Buybox callbacks.\n * @returns -- Returns.\n */\nconst renderAddToWishlist = (\n props: IBuyboxViewProps & IBuyboxExtentionProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks\n): JSX.Element | null => {\n const product = props.data.product.result;\n if (!props.addToWishlist || !product) {\n return null;\n }\n\n if (!props.config.enableWishlist) {\n return null;\n }\n\n const wishlistButton = renderAddtoWishlistButton(props, state, callbacks, product);\n return (\n \n {props.addToWishlist.errorBlock}\n {wishlistButton}\n \n );\n};\n\n/**\n * RRenderShopSimilarItem.\n * @param shopSimilarItem - ShopSimilarItem.\n * @returns -- Returns.\n */\nconst renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\n/**\n * RenderSocialShare.\n * @param socialShare - Social share react node array.\n * @returns -- Returns.\n */\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\n/**\n * RenderConfigureDropdown.\n * @param dropdown - Buybox product configure dropdown view props.\n * @returns -- Returns JSX.Element.\n */\nconst renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {select}\n {errors}\n \n );\n};\n\n/**\n * RenderConfigure.\n * @param configure - Buybox product configure view props.\n * @returns -- Returns JSX.Element.\n */\nconst renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n};\n\n/**\n * BuyboxView.\n * @param props - Props.\n * @returns -- Returns.\n */\nconst BuyboxView: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n const {\n ModuleProps,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n MediaGalleryContainerProps,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n productComparisonButton,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n shopSimilarDescription,\n min,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\n max,\n applyDefaultOrderSettings,\n unitOfMeasure,\n callbacks,\n state,\n resources,\n quantityLimitsMessages,\n telemetryContent,\n app: { config: appConfig },\n catalogs\n } = props;\n let skuText: string = props.resources.skuText;\n skuText += props.data.product.result?.ItemId;\n const preferredStoreInfo: IStoreInfo | undefined = props.data.storeSelectorStateManager.result?.preferredStore;\n const preferredStoreId = preferredStoreInfo?.StoreId ? preferredStoreInfo.StoreId : '';\n const preferredStoreName = preferredStoreInfo?.StoreName ? preferredStoreInfo.StoreName : '';\n\n const [availability, setAvailability] = React.useState('');\n const [isStoreChange, setIsStoreChange] = React.useState(false);\n\n /**\n * GetStockInventoryLabel.\n * @param availabilityWithHours - Stock availability with hours.\n * @returns -- Returns.\n */\n const getStockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\n if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\n for (const productInventoryInformation of availabilityWithHours.ProductInventoryInformation) {\n if (\n availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\n productInventoryInformation.InventLocationId\n ) {\n return productInventoryInformation.StockLevelLabel;\n }\n }\n }\n\n return undefined;\n };\n\n const getInventory = React.useCallback(async () => {\n const input = new GetFullAvailableInventoryNearbyInput(\n props.data.product.result?.RecordId,\n BuyBoxConstants.zero,\n BuyBoxConstants.zero,\n BuyBoxConstants.zero,\n BuyBoxConstants.zero,\n true\n );\n\n /**\n * IsProductInStock.\n * @param itemAvailabilities - Item availability array.\n * @returns -- Returns.\n */\n const isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\n if (!appConfig.enableStockCheck) {\n return true;\n }\n\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\n return itemAvailabilities[BuyBoxConstants.zero].AvailableQuantity! > BuyBoxConstants.zero;\n }\n\n return false;\n };\n\n await getFullAvailableInventoryNearby(input, props.context.actionContext)\n .catch((error: Error) => {\n props.telemetry.error(error.message);\n })\n .then(response => {\n if (response && ArrayExtensions.hasElements(response)) {\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === preferredStoreId;\n const filteredFullOrgUnitAvailability = response.filter(isPreferredStore);\n const preferredStoreAvailability = ArrayExtensions.hasElements(filteredFullOrgUnitAvailability)\n ? filteredFullOrgUnitAvailability[BuyBoxConstants.zero]\n : undefined;\n const stockStatusLabel: string | undefined = getStockInventoryLabel(preferredStoreAvailability);\n const isInStock = isProductInStock(preferredStoreAvailability?.OrgUnitAvailability?.ItemAvailabilities);\n const resourceLabel = isInStock ? props.resources.inStockText : props.resources.outOfStockText;\n const stockText: string | undefined = stockStatusLabel ? stockStatusLabel : resourceLabel;\n const preferredStoreAvailabilityText = `${format(\n props.resources.availabilityAtPreferredStoreText,\n preferredStoreName\n )} ${stockText}`;\n setAvailability(preferredStoreAvailabilityText);\n }\n });\n\n setIsStoreChange(false);\n }, [\n props.data.product.result?.RecordId,\n appConfig.enableStockCheck,\n preferredStoreId,\n preferredStoreName,\n props.context.actionContext,\n props.resources.availabilityAtPreferredStoreText,\n props.resources.inStockText,\n props.resources.outOfStockText,\n props.telemetry\n ]);\n\n React.useEffect(() => {\n if (props.config.displayStockAvailability) {\n getInventory().catch((error: Error) => {\n props.telemetry.error(error.message);\n });\n }\n }, [getInventory, isStoreChange, props.telemetry, props.config.displayStockAvailability]);\n\n reaction(\n () => props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n () => {\n setIsStoreChange(true);\n }\n );\n\n /**\n * RenderAvailabiltyAtPreferredStore.\n * @returns -- Returns.\n */\n const renderAvailabilityAtPreferredStore = (): JSX.Element | undefined => {\n const hasProductDimensions = ArrayExtensions.hasElements(props.data.product.result?.Dimensions);\n if (hasProductDimensions && props.data.product.result?.MasterProductId === undefined) {\n return undefined;\n }\n const containerProps: INodeProps = {\n className: 'ms-buybox__preferred-store-availability',\n tag: 'span'\n };\n\n return {availability};\n };\n return (\n \n {props.mediaGallery}\n \n {catalogs && catalogs[0].Name}\n {title}\n \n
{skuText}
\n {rating}\n
\n \n
{props.resources.priceText}
\n {price}\n
\n {configure && renderConfigure(configure)}\n {keyInPrice && renderKeyInPrice(keyInPrice)}\n \n
\n {quantity &&\n renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent,\n unitOfMeasure\n )}\n {props.bulkPurchaseLink}\n
\n
\n {props.config.displayStockAvailability && preferredStoreId && renderAvailabilityAtPreferredStore()}\n {inventoryLabel}\n {renderAddToCart(addToCart)}\n {findInStore && renderFindInStore(findInStore)}\n {addToWishlist && renderAddToWishlist(props, state, callbacks)}\n {productComparisonButton}\n {addToOrderTemplate && renderAddToOrderTemplate(props, state, callbacks)}\n {findInStore?.productPickupOptionList ? (\n
{findInStore.productPickupOptionList}
\n ) : null}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n
{props.resources.shopText}
\n \n {shopSimilarLook && renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && renderShopSimilarItem(shopSimilarDescription)}\n \n \n
{props.resources.descriptionText}
\n {description}\n
\n {ArrayExtensions.hasElements(props.slots.productSpecification) ? (\n {props.slots.productSpecification[0]}\n ) : null}\n
\n
\n );\n};\n\nexport default BuyboxView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["Availability","ProductAvailabilitiesForSelectedVariantInput","constructor","productId","channelId","selectedProduct","getCacheKey","getCacheObjectType","dataCacheType","this","createProductAvailabilitiesForSelectedVariantInput","inputData","getSelectedProductIdFromActionInput","requestContext","apiSettings","Error","async","getProductAvailabilitiesForSelectedVariantAction","input","ctx","productInventoryInformation","_input$selectedProduc","productResult","selectedVariantInput","SelectedVariantInput","undefined","getSelectedVariant","app","config","enableStockCheck","ItemTypeValue","ReleasedProductType","Service","ProductTypeValue","ProductType","Master","shippingSearchCriteria","createInventoryAvailabilitySearchCriteria","RecordId","DeliveryMode","shipping","pickupSearchCriteria","pickup","shippingAvailability","ProductsDataActions","callerContext","ProductWarehouseInventoryAvailabilities","shippingInventory","mapAggregatedProductInventoryInformation","ArrayExtensions","hasElements","deliveryType","push","pickupAvailability","pickupInventory","AggregatedProductInventoryAvailabilities","error","telemetry","debug","mergeProductWarehouseToProductAvailabities","productsWarehouseInventory","productAvailable","product","TotalAvailable","ProductId","AvailableQuantity","getProductAvailabilitiesForSelectedVariantActionDataAction","createObservableDataAction","id","action","generateAddToOrderTemplateDialogResources","resources","addToOrderTemplateHeader","noOrderTemplatesMessage","noOrderTemplatesDescription","createAnOrderTemplateButtonText","createNewOrderTemplateButtonText","cancelOrderTemplateCreationButtonText","selectTemplatesText","addToTemplateButtonText","lineItemsText","generateOrderTemplateNameDialogResources","orderTemplateHeaderLabel","createOrderTemplateHeader","orderTemplateTitleLabel","orderTemplateTitle","orderTemplateNameAriaLabel","orderTemplateDescription","createOrderTemplateDescription","defaultOrderTemplateName","orderTemplateButtonLabel","createOrderTemplateButtonText","orderTemplateCancelButtonLabel","cancelNewOrderTemplateCreationButtonText","generateItemAddedToOrderTemplateDialogResources","viewOrderTemplateButtonText","continueShoppingButtonText","itemAddedToOrderTemplateHeaderItemOneText","itemAddedToOrderTemplateHeaderItemFormatText","itemAddedToOrderTemplateHeaderMessageText","freePriceText","priceFree","originalPriceText","currentPriceText","generateDuplicateItemsWhenAddingToOrderTemplateDialogResources","duplicatedProductsHeader","duplicatedProductsDescription","updateQuantityButtonText","cancelDuplicateItemsButtonText","onAddToOrderTemplateFailed","callbacks","result","updateErrorState","errorHost","configureErrors","status","getConfigureErrors","missingDimensions","IsGiftCard","BuyBoxConstants","onChangeHandler","newValue","updateQuantity","renderAddToOrderTemplate","props","state","data","addToOrderTemplate","orderTemplateButton","renderAddToOrderTemplateButton","typeName","context","orderTemplates","customerInformation","quantity","isMultipleCatalogsFeatureEnabled","isChannelMultipleCatalogsFeatureEnabled","React","AddToOrderTemplateComponent","Object","assign","className","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","addToOrderTemplateDialogResources","createOrderTemplateDialogResources","itemAddedToOrderTemplateDialogResources","duplicateItemsWhenAddingToOrderTemplateDialogResources","onError","shouldShowButtonFailedTooltip","isCustomPriceSelected","showButtonTooltip","showButtonText","imageSettings","isMultipleCatalogFeatureEnabledInHq","catalogId","currentCatalogId","Node","ContainerProps","errorBlock","renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_props$data$product$r","_props$data$storeSele","_props$data$product$r3","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","addToCart","productComparisonButton","configure","description","findInStore","price","title","rating","inventoryLabel","keyInPrice","min","max","applyDefaultOrderSettings","unitOfMeasure","quantityLimitsMessages","telemetryContent","appConfig","catalogs","skuText","ItemId","preferredStoreInfo","storeSelectorStateManager","preferredStore","preferredStoreId","StoreId","preferredStoreName","StoreName","availability","setAvailability","isLoadingAvailability","setIsLoadingAvailability","totalAvailability","setTotalAvailability","isStoreChange","setIsStoreChange","getInventory","_props$data$product$r2","GetFullAvailableInventoryNearbyInput","zero","getFullAvailableInventoryNearby","actionContext","then","response","productAvailableQuantity","TotalAvailableInventoryLevelLabel","_preferredStoreAvaila","isPreferredStore","value","_value$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","OrgUnitNumber","filteredFullOrgUnitAvailability","filter","preferredStoreAvailability","stockStatusLabel","availabilityWithHours","ProductInventoryInformation","_availabilityWithHour","InventoryLocationId","InventLocationId","StockLevelLabel","getStockInventoryLabel","resourceLabel","itemAvailabilities","ItemAvailabilities","inStockText","outOfStockText","stockText","preferredStoreAvailabilityText","format","availabilityAtPreferredStoreText","catch","message","displayStockAvailability","reaction","_props$data$storeSele2","selectedStoreLocationId","Module","mediaGallery","Name","renderAvailability","_product$result","_product$result2","Dimensions","MasterProductId","isAvailable","available","containerProps","availableClass","outOfStockClass","tag","availabilityIndicatorAvailable","availabilityIndicatorOutOfStock","priceText","dropdowns","map","renderConfigure","renderKeyInPrice","renderQuantity","quantityComponent","extentionResources","IncrementalQuantity","currentCount","onChange","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","bulkPurchaseLink","renderAvailabilityAtPreferredStore","_props$data$product$r4","_props$data$product$r5","button","renderAddToCart","storeSelector","modal","productPickupOptionList","renderFindInStore","socialShare","length","_renderSocialShare","slots","textBlocks","_renderTextBlocks","descriptionText","productSpecification","VariantType","getTelemetryAttributes","payLoad","contentData","contentAction","recid","etext","setTelemetryAttribute","TelemetryConstant","IncrementalQuantity_1","_props$currentCount$t","_props$currentCount","_this$props$min","eventType","super","inputRef","isMobileView","isMobileCheck","_context$device","variant","Browser","MsDyn365","isBrowser","window","innerWidth","gridSettings","xs","w","sm","md","lg","Viewport","device","Type","isMobile","xl","_validateMin","currentInput","setState","currentValue","parseFloat","isNaN","_minValue","toFixed","validValue","Math","isUpdating","_onIncrement","bind","_onDecrement","_handleChange","contentCategory","pgname","pageName","mname","moduleName","etype","defaultProps","_props$applyDefaultOr","nextState","_objectSpread","disabled","updatedValue","_props$currentCount2","render","_this$props$inputQuan","_this$props$inputQuan2","currentValue1","glyphMinusClassName","decrementGlyphClass","glyphPlusClassName","incrementGlyphClass","decrementDisabled","isGiftCard","incrementDisabled","DecrementQuantity","decrementAttributes","IncrementQuantity","incrementAttributes","ariaLablelText","inputQuantityAriaLabel","extraClassDecrement","extraClassIncrement","onClick","color","type","onBlur","role","ref","invokeCallback","currQuantity","updatedQuantity","e","target","test","formattedValue","replace","_debounce","inputElement","current","HTMLInputElement","setAttribute","__decorate","observer","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","prototype","RegistrationId","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","__bindings__","viewDictionary","cn","BaseStoreSelectorStateManager","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","isMapModuleLoaded","_readFromToCookie","storeInfo","JSON","parse","_unused","_context","storeId","storeName","writeToCookie","arguments","Latitude","Longitude","_writeToCookie","stringify","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","key","localStorage","removeItem","setItem","cookieValue","getItem","computed","observable","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","channel","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","Uint32Array","ChannelCountryRegionISOCode","trim","query","encodeURI","geolocationApiUrl","requestUrl","Promise","resolve","script","document","createElement","remove","resourceSets","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","getElementById","currentWindowAPI","mapAPIReady","isMapApiLoaded","url","lang","market","reject","_document2","_document3","defer","src","addEventListener","createStoreSelectorStateInput","GenericInput","getGenericActionDataAction","getGenericAction","onAddToWishlistFailed","renderAddToWishlist","addToWishlist","enableWishlist","wishlistButton","renderAddtoWishlistButton","wishlists","AddToWishlistComponent","addToWishlistButtonText","removeFromWishlistButtonText","addToWishlistMessage","removedFromWishlistMessage","addItemToWishlistError","removeItemFromWishlistError","nameOfWishlist","ariaRole","getSelectedProduct","renderShopSimilarItem","shopSimilarItem","shopSimilarLook","shopSimilarDescription","shopText","module","exports","ReactDOM"],"sourceRoot":""}