{"version":3,"file":"static/js/97de77b324509c63d8dc.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/buybox/common/buybox-product-configure.tsx?9215","webpack://Msdyn365.Commerce.Online/./src/modules/buybox/components/price.components.tsx?dfe6","webpack://Msdyn365.Commerce.Online/./src/modules/buybox/buybox.tsx?e884","webpack://Msdyn365.Commerce.Online/./src/modules/buybox/buybox.view.tsx?e499","webpack://Msdyn365.Commerce.Online/./src/themes/localy-theme/views/buybox.view.tsx?a4c5","webpack://Msdyn365.Commerce.Online/./lib/buybox/module-registration.js?bcce","webpack://Msdyn365.Commerce.Online/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://Msdyn365.Commerce.Online/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://Msdyn365.Commerce.Online/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/dataActions/get-attributes-for-selected-variant.ts?e4b6","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/buybox-add-to-order-template.tsx?ceb4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/buybox.view.tsx?98cf","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-buffer-basic-detection.js?01ca","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-buffer-view-core.js?cc65","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/array-fill.js?99b9","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-big-int.js?2a04","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-offset.js?ee41","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/to-positive-integer.js?78f5","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.fill.js?16cf","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.set.js?f4b4","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.sort.js?496b","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.typed-array.to-locale-string.js?c309"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\nimport { ProductDimension, ProductDimensionType } from '@msdyn365-commerce/retail-proxy';\nimport {\n ArrayExtensions,\n convertProductDimensionTypeToDimensionTypes,\n DimensionTypes,\n getDimensionValuesFromQuery,\n getInventoryLevelCodeFromDimensionValue,\n IDimensionForSelectedVariant,\n IDimensionsApp,\n IDimensionValueForSelectedVariant,\n InventoryLevelValues,\n ObjectExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { format, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxCallbacks,\n IBuyboxCommonData,\n IBuyboxCommonResources,\n IBuyboxExtentedProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxState,\n IProductDetails,\n Dropdown,\n IDropdownItemProps,\n IDropdownOnSelectionChangeNotification,\n SelectionType\n} from '@msdyn365-commerce-modules/buybox';\n\nlet telemetryContent: ITelemetryContent;\n\n/**\n * Dimension pre-processing info.\n */\ninterface IProductDimensionInfo {\n dropdownName: string;\n dropdownId: string;\n dropdownList: IDropdownItemProps[];\n}\n\n/**\n * Props for rendering a dropdown.\n */\ninterface IProductDimensionDropdownProps extends IProductDimensionInfo {\n resources: IBuyboxCommonResources;\n className: string;\n context: ICoreContext;\n\n configureErrors: { [configureId: string]: string | undefined };\n\n getDropdownName(dimensionType: number, resources: IBuyboxCommonResources): string;\n dropdownCallback(notification: IDropdownOnSelectionChangeNotification): Promise;\n}\n\nconst mapProductDimensionFullToDropdownViewProps = (props: IProductDimensionDropdownProps): IBuyboxProductConfigureDropdownViewProps => {\n const dimensionId = Number.parseInt(props.dropdownId, 10) as ProductDimensionType;\n const dropdownToggleName = format(props.resources.selectDimensionFormatString, props.dropdownName);\n\n const errorMessage = props.configureErrors[props.dropdownId];\n\n let dimensionSelectionType = SelectionType.dropdown;\n\n const dimensionType = convertProductDimensionTypeToDimensionTypes(dimensionId);\n\n const dimensionsAsSwatchConfiguration = props.context.app.config.dimensionsAsSwatchType;\n if (\n ArrayExtensions.hasElements(dimensionsAsSwatchConfiguration) &&\n !dimensionsAsSwatchConfiguration.includes(DimensionTypes.none) &&\n dimensionsAsSwatchConfiguration.includes(dimensionType)\n ) {\n dimensionSelectionType = SelectionType.dropdown;\n }\n\n return {\n ContainerProps: {\n className: `${props.className}__dropdown`\n },\n LabelContainerProps: {\n tag: 'label',\n className: `${props.className}__dropdown-quantity-label`,\n htmlFor: `${props.className}__dropown-quantity-input-${props.dropdownId}`\n },\n errors: errorMessage && (\n \n \n ),\n heading:
{props.dropdownName}:
,\n select: (\n \n )\n };\n};\n\nexport function getBuyboxProductConfigure(\n props: IBuyboxExtentedProps,\n state: IBuyboxState,\n callbacks: IBuyboxCallbacks,\n productDetails?: IProductDetails,\n selectedDimensions?: ProductDimension[]\n): IBuyboxProductConfigureViewProps | undefined {\n const { resources, typeName } = props;\n\n const {\n errorState: { configureErrors }\n } = state;\n\n const { getDropdownName } = callbacks;\n\n const context = props.context as ICoreContext;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const product = props.data.product?.result ? props.data.product.result : productDetails?.product;\n\n // Since the data action can return no value, and the type is non-nullable due to backward compatibility reasons, the null check is required.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const productDimensionsData = props.data.productDimensions?.result ?? productDetails?.productDimensions;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access -- app context is generic\n const enableStockCheck = props.context.app.config.enableStockCheck;\n\n const hasProductDimensions = ArrayExtensions.hasElements(productDimensionsData);\n\n if (!product || !hasProductDimensions) {\n return undefined;\n }\n\n const className = _getClassNamePrefix(typeName);\n\n const onChanged = async (notification: IDropdownOnSelectionChangeNotification) =>\n _onChanged(notification, callbacks.dimensionSelectedAsync);\n\n telemetryContent = getTelemetryObject(context.request.telemetryPageName!, props.typeName, props.telemetry);\n\n const inventoryLevel = context.app.config.inventoryLevel;\n\n let dimensionsInfo: IProductDimensionInfo[] = [];\n\n const productDimensions = productDimensionsData as IDimensionForSelectedVariant[];\n\n dimensionsInfo = productDimensions.map(productDimensionFull => {\n const dropdownName = getDropdownName(productDimensionFull.DimensionTypeValue, resources);\n const dropdownId = productDimensionFull.DimensionTypeValue.toString();\n\n const dimensions = (productDimensionFull.dimensionValuesWithInventory ??\n productDimensionFull.DimensionValues ??\n []) as IDimensionValueForSelectedVariant[];\n const validProductDimensionsFull = dimensions.filter(\n value => !ObjectExtensions.isNullOrUndefined(value.DimensionValue?.RecordId ?? value.RecordId)\n );\n\n const dropdownList: IDropdownItemProps[] = validProductDimensionsFull.map(dimensionValuesWithInventory => {\n const dimensionValue = dimensionValuesWithInventory.DimensionValue ?? dimensionValuesWithInventory;\n const inventoryLevelCode = getInventoryLevelCodeFromDimensionValue(dimensionValuesWithInventory, inventoryLevel);\n return {\n value: dimensionValue.Value ?? '',\n id: dimensionValue.RecordId.toString(),\n colorHexCode: dimensionValue.ColorHexCode,\n imageUrl: dimensionValue.ImageUrl,\n isDisabled: enableStockCheck && inventoryLevelCode === InventoryLevelValues.outOfStock,\n swatchItemAriaLabel: resources.swatchItemAriaLabel ? resources.swatchItemAriaLabel : ''\n };\n });\n return {\n dropdownName,\n dropdownId,\n dropdownList\n };\n });\n\n const matchedDimensions = selectedDimensions ?? getDimensionValuesFromQuery(context.request.url.requestUrl);\n for (const dimensionInfo of dimensionsInfo) {\n const currentDimensionsFromQuery = matchedDimensions.filter(\n dimensionFromQuery => dimensionFromQuery.DimensionTypeValue.toString() === dimensionInfo.dropdownId\n );\n if (!ArrayExtensions.hasElements(currentDimensionsFromQuery)) {\n continue;\n }\n const currentDimensionFromQuery = currentDimensionsFromQuery[0];\n const selectedDimensionItem = dimensionInfo.dropdownList.filter(\n dimensionItem =>\n dimensionItem.value.toLocaleLowerCase() === currentDimensionFromQuery.DimensionValue?.Value?.toLocaleLowerCase()\n );\n if (!ArrayExtensions.hasElements(selectedDimensionItem)) {\n continue;\n }\n selectedDimensionItem[0].isDefault = true;\n }\n\n const dropdowns: IBuyboxProductConfigureDropdownViewProps[] = dimensionsInfo.map(dimensionInfo => {\n return mapProductDimensionFullToDropdownViewProps({\n ...dimensionInfo,\n resources,\n configureErrors,\n getDropdownName,\n dropdownCallback: onChanged,\n className,\n context\n });\n });\n\n return {\n ContainerProps: {\n className: `${className}__configure`\n },\n dropdowns\n };\n}\n\nconst _onChanged = async (\n notification: IDropdownOnSelectionChangeNotification,\n dimensionChanged: (newValue: number, selectedDimensionValue: string) => Promise\n): Promise => {\n await dimensionChanged(+notification.dropdownId, notification.selectId);\n};\n\nconst _getClassNamePrefix = (typeName: string): string => {\n return typeName.toLocaleLowerCase() === 'quickview' ? 'ms-quickView' : 'ms-buybox';\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ProductPrice, ProductType, SalesAgreementPriceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { Button, format, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst defaultPrice: number = 0;\nconst freePrice: number = 0;\n\n/**\n * Interface for price component resources.\n * @param {string} priceRangeSeparator - The price range separator.\n */\nexport interface IPriceComponentResources {\n priceRangeSeparator?: string;\n salesAgreementPricePrompt?: string;\n salesAgreementExpirationDatePrompt?: string;\n salesAgreementCommittedQuantityPrompt?: string;\n salesAgreementRemainingQuantityPrompt?: string;\n}\n\n/**\n * Interface for price component props.\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\n * @param {IPriceComponentResources} priceResources - The price range resources.\n */\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\n className?: string;\n product?: SimpleProduct;\n savingsText?: string;\n freePriceText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n isPriceMinMaxEnabled?: boolean;\n isSalesAgreementPriceFeatureEnabled?: boolean;\n salesAgreementLineId?: number;\n priceResources?: IPriceComponentResources;\n salesAgreementDetailCollapseProps?: ICollapseProps;\n currencyCode?: string;\n salesAgreementDetailOnClick?(event: React.MouseEvent | React.KeyboardEvent): void;\n}\n\n/**\n * The interface of price component.\n */\nexport interface IPriceComponent extends IComponent {}\n\nconst priceComponentActions = {};\n\n/**\n * Get the original price from price component props.\n * @param props - The IPriceComponentProps.\n * @returns The original price.\n */\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\n console.log('thiss is coming in buybox-component : ', props.data.price.BasePrice, defaultPrice);\n\n return props.data.price.BasePrice ?? defaultPrice;\n // return props.data.price.BasePrice ?? props.data.price.AdjustedPrice ?? props.data.price.TradeAgreementPrice ?? defaultPrice;\n};\n\nconst getActivePrice = (props: IPriceComponentProps): number => {\n if (showPriceRangeForMasterProduct(props) && props.data.price.MinVariantPrice !== undefined) {\n return props.data.price.MinVariantPrice;\n }\n\n if (props.data.price.CustomerContextualPrice !== undefined) {\n return props.data.price.CustomerContextualPrice;\n }\n\n return getOriginalPrice(props);\n};\n\n/**\n * Get the formatted currency.\n * @param props - The props.\n * @param price - The price.\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\n * @returns The formatted currency.\n */\nconst formatCurrency = (\n props: IPriceComponentProps,\n price: number | undefined,\n shouldUseFreePriceText: boolean | undefined,\n currencyCode?: string | undefined\n): string => {\n if (price === undefined) {\n return '';\n }\n\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\n return props.freePriceText;\n }\n\n return props.context.cultureFormatter.formatCurrency(price, currencyCode);\n};\n\nconst showPriceRangeForMasterProduct = (props: IPriceComponentProps): boolean => {\n return (\n (props.isPriceMinMaxEnabled ?? false) &&\n (props.product?.ProductTypeValue === ProductType.Master || props.product?.ProductTypeValue === ProductType.KitMaster) &&\n props.data.price.MinVariantPrice !== undefined &&\n props.data.price.MaxVariantPrice !== undefined\n );\n};\n\n/**\n * ShowStrikethroughPricing.\n * @param props - The props.\n * @returns True if showStrikethroughPricing, false otherwise.\n */\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\n const originalSalesPrice = getOriginalPrice(props);\n const activeSalesPrice = showPriceRangeForMasterProduct(props)\n ? props.data.price.MinVariantPrice\n : props.data.price.CustomerContextualPrice;\n console.log('thiss buybox prices : originalSalesPrice : ', originalSalesPrice, ' activeSalesPrice : ', activeSalesPrice);\n\n if (activeSalesPrice && originalSalesPrice) {\n return activeSalesPrice < originalSalesPrice;\n }\n\n return false;\n};\n\n/**\n * Render current price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false, props.currencyCode);\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false, props.currencyCode);\n if (\n props.isPriceMinMaxEnabled &&\n props.data.price.MaxVariantPrice &&\n props.data.price.MinVariantPrice &&\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\n ) {\n return (\n \n \n {minVariantPrice}\n \n \n {props.priceResources?.priceRangeSeparator}\n \n \n {maxVariantPrice}\n \n \n );\n }\n\n return (\n \n {formatCurrency(props, getActivePrice(props), true, props.currencyCode)}\n \n );\n};\n\n/**\n * Render active sales price with original sales price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\n const initialPrice: any = getOriginalPrice(props); //formatCurrency(props, getOriginalPrice(props), true);\n\n return (\n <>\n {/* \n {` `}\n {props.originalPriceText}\n {` `}\n {initialPrice}\n {` `}\n {props.currentPriceText}\n {` `}\n {renderCurrentPrice(props)}\n */}\n {renderCurrentPrice(props)}\n {` `}\n \n {/* {props.savingsText && {props.savingsText}} */}\n \n );\n};\n\nconst renderSalesAgreementDetail = (props: IPriceComponentProps): JSX.Element => {\n // In most cases there should be only one sales agreement line.\n // If there are more than one, only the first one will be shown.\n const firstPriceLine: SalesAgreementPriceLine = (props.data.price.AttainablePriceLines ?? [])[0] as SalesAgreementPriceLine;\n return (\n

\n

\n {/* Available date */}\n {` · ${format(\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\n props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\n props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\n )}`}\n

\n

\n {/* Quantity commitment */}\n {` · ${format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', firstPriceLine.CommittedQuantity)}`}\n

\n

\n {/* Remaining quantity to qualify */}\n {` · ${format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', firstPriceLine.RemainingQuantity)}`}\n

\n

\n );\n};\n\n/**\n * Price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\n // CustomerContextualPrice could be zero\n if (props.data.price.CustomerContextualPrice === undefined) {\n return null;\n }\n\n // Determine if contract price is avaiable/applied by:\n // isFeatureEnabled and SA price != 0, for PDP.\n // SA line id != 0, for cart line.\n if (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) {\n const [isExpanded, setIsExpanded] = React.useState(false);\n const toggle = () => {\n setIsExpanded(!isExpanded);\n };\n return (\n \n \n

\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\n

\n \n {props.priceResources?.salesAgreementPricePrompt}\n \n {isExpanded && renderSalesAgreementDetail(props)}\n
\n
\n );\n }\n\n return (\n \n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\n \n );\n};\n\n/**\n * The PriceComponent.\n */\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponent('Price', {\n component: Price,\n ...priceComponentActions\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable no-duplicate-imports */\nimport { getCatalogId, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core-internal';\nimport {\n CommerceProperty,\n ProductCatalog,\n ProductDeliveryOptions,\n ProductDimensionValue,\n ProductDimensionValueInventoryAvailability,\n ProductPrice,\n ReleasedProductType,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { BulkPurchase } from '@msdyn365-commerce-modules/bulk-purchase';\nimport {\n ArrayExtensions,\n DeliveryMode,\n FinitePromiseQueue,\n FinitePromiseQueueError,\n getDeliveryOptionsForSelectedVariant,\n GetDeliveryOptionsForSelectedVariantInput,\n getDimensionsForSelectedVariant,\n GetDimensionsForSelectedVariantInput,\n getInventoryLevelCodeFromDimensionValue,\n getPriceForSelectedVariant,\n getProductAvailabilitiesForSelectedVariant,\n getSelectedVariant,\n IDimensionsApp,\n IDimensionValueForSelectedVariant,\n InventoryLevelValues,\n IProductInventoryInformation,\n IPromiseQueue,\n PriceForSelectedVariantInput,\n ProductAvailabilitiesForSelectedVariantInput,\n SelectedVariantInput,\n setDimensionValuesToQuery,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n updateMaxQuantityForCartLineItem\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport {\n getBuyboxAddToCart,\n getBuyBoxInventoryLabel,\n getBuyboxKeyInPrice,\n getBuyboxProductAddToOrderTemplate,\n getBuyboxProductAddToWishlist,\n getBuyboxProductComparisonButton,\n getBuyboxProductDescription,\n getBuyboxProductQuantity,\n getBuyboxProductRating,\n getBuyboxProductUnitOfMeasure,\n getBuyboxShopSimilarButton,\n getQuantityLimitsMessages,\n RetailDefaultOrderQuantityLimitsFeatureName,\n EcommerceQuantityLimitConfigurationsFeatureName\n} from '@msdyn365-commerce-modules/buybox';\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxCommonData,\n IBuyboxExtentedProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxShopSimilarLookViewProps,\n // IBuyboxState,\n IErrorState,\n ShopSimiliarButtonType\n} from '@msdyn365-commerce-modules/buybox';\nimport { IBuyboxData } from './buybox.data';\nimport { IBuyboxProps, IBuyboxResources } from './buybox.props.autogenerated';\nimport { IBuyboxFindInStoreViewProps } from '../../components/buybox-find-in-store';\nimport { RecentlyViewedState } from '@msdyn365-commerce-modules/buybox';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getBuyboxProductConfigure } from './common/buybox-product-configure';\nimport { PriceComponent } from './components/price.components';\n\nexport interface IBuyboxState {\n quantity: number;\n min: number | undefined;\n max: number | undefined;\n errorState: IErrorState;\n selectedProduct?: Promise;\n productAvailableQuantity?: IProductInventoryInformation;\n productPrice?: ProductPrice;\n productDeliveryOptions?: ProductDeliveryOptions;\n modalOpen?: boolean;\n isUpdatingDimension?: boolean;\n isUpdatingDeliveryOptions?: boolean;\n isServiceItem?: boolean;\n isPriceKeyedIn?: boolean;\n keyInPriceAmount?: number;\n isCustomPriceSelected?: boolean;\n activeIndex?: number;\n animating?: boolean;\n lastUpdate?: number;\n mediaGalleryItems?: Msdyn365.IImageData[] | undefined;\n isPriceApiCalled?: boolean;\n isShareModalOpen: boolean;\n}\n\nexport interface IBuyboxViewProps extends IBuyboxProps {\n state: IBuyboxState;\n ModuleProps: IModuleProps;\n ProductInfoContainerProps: INodeProps;\n MediaGalleryContainerProps: INodeProps;\n callbacks: IBuyboxCallbacks;\n mediaGallery?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n rating?: React.ReactNode;\n price?: React.ReactNode;\n productComparisonButton?: React.ReactNode;\n bulkPurchaseLink?: React.ReactNode;\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps;\n addToWishlist?: IBuyboxAddToWishlistViewProps;\n max: number | undefined;\n addToCart: IBuyboxAddToCartViewProps;\n findInStore?: IBuyboxFindInStoreViewProps;\n quantity?: IBuyboxProductQuantityViewProps;\n configure?: IBuyboxProductConfigureViewProps;\n inventoryLabel?: React.ReactNode;\n shopSimilarLook?: IBuyboxShopSimilarLookViewProps;\n shopSimilarDescription?: IBuyboxShopSimilarLookViewProps;\n quantityLimitsMessages: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n keyInPrice?: IBuyboxKeyInPriceViewProps;\n unitOfMeasure?: React.ReactNode;\n catalogs?: ProductCatalog[] | undefined;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n currentCatalogId?: number;\n toggleShareModal: any;\n prodSpecs: any;\n isShareModalOpen: boolean;\n}\n\n/**\n * Buybox Module.\n */\nclass Buybox extends React.PureComponent, IBuyboxState> {\n /**\n * A queue of tasks of processing the changes in the dimensions.\n * Limit to two processes:\n * 1 - for the current process, which is under execution at the moment.\n * 2 - next process, which will process the latest version of data.\n * @remark Enqueueing new promises will discard the previous ones (except the one which is under processing).\n */\n private readonly dimensionUpdateQueue: IPromiseQueue = new FinitePromiseQueue(2);\n\n private dimensions: { [id: number]: string } = {};\n\n private readonly buyboxCallbacks: IBuyboxCallbacks = {\n updateQuantity: (newQuantity: number): boolean => {\n const errorState = { ...this.state.errorState };\n errorState.quantityError = undefined;\n errorState.otherError = undefined;\n\n this.setState({ quantity: newQuantity, errorState });\n return true;\n },\n updateErrorState: (newErrorState: IErrorState): void => {\n this.setState({ errorState: newErrorState });\n },\n updateSelectedProduct: (\n newSelectedProduct: Promise,\n newInventory: IProductInventoryInformation | undefined,\n newPrice: ProductPrice | undefined,\n newDeliveryOptions: ProductDeliveryOptions | undefined\n ): void => {\n this.setState({\n selectedProduct: newSelectedProduct,\n productAvailableQuantity: newInventory,\n productDeliveryOptions: newDeliveryOptions\n });\n this._updatePrice(newPrice);\n },\n dimensionSelectedAsync: async (selectedDimensionId: number, selectedDimensionValueId: string): Promise => {\n this.dimensions[selectedDimensionId] = selectedDimensionValueId;\n return this.dimensionUpdateQueue\n .enqueue(async () => {\n return this._updateDimensions();\n })\n .catch((error: unknown) => {\n // Ignore discarded processes.\n if (error !== FinitePromiseQueueError.ProcessWasDiscardedFromTheQueue) {\n throw error;\n }\n });\n },\n getDropdownName: (dimensionType: number, resources: IBuyboxResources): string => {\n return this._getDropdownName(dimensionType, resources);\n },\n changeModalOpen: (isModalOpen: boolean): void => {\n this.setState({ modalOpen: isModalOpen });\n },\n changeUpdatingDimension: (isUpdatingDimension: boolean): void => {\n this.setState({ isUpdatingDimension });\n },\n\n /**\n * Update isUpdatingDeliveryOptions state.\n *\n * @param isUpdatingDeliveryOptions - The status of updating delivery options.\n */\n changeUpdatingDeliveryOptions: (isUpdatingDeliveryOptions: boolean): void => {\n this.setState({ isUpdatingDeliveryOptions });\n },\n\n updateKeyInPrice: (customPrice: number): void => {\n // Remove custom amount error when updating the custom price\n const errorState = { ...this.state.errorState };\n errorState.customAmountError = undefined;\n\n this.setState({ isPriceKeyedIn: true, keyInPriceAmount: customPrice, errorState });\n this._updatePrice(this.state.productPrice, customPrice);\n }\n };\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: IBuyboxProps, state: IBuyboxState) {\n super(props);\n this.state = {\n errorState: {\n configureErrors: {}\n },\n quantity: 1,\n min: undefined,\n max: undefined,\n selectedProduct: undefined,\n productPrice: undefined,\n productDeliveryOptions: undefined,\n\n modalOpen: false,\n isUpdatingDimension: false,\n isUpdatingDeliveryOptions: false,\n isPriceApiCalled: false,\n isShareModalOpen: false\n };\n this.toggleShareModal = this.toggleShareModal.bind(this);\n\n this.telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\n }\n public async componentDidMount(): Promise {\n const {\n data: {\n product: { result: product },\n productPrice\n },\n context\n } = this.props;\n\n // There are multiple sources triggering the callback function dimensionSelectedAsync calling the GetActivePrice api before componentDidMount and after componentDidMount.\n // Set isPriceApiCalled to false here to prevent redundant API call after componentDidMount:\n // If the price has not been hydrated before, this means the component was just loaded for the first time with variant selected.\n // We will skip calling RS API in this case as the price data has already been fetched via module data action in node server.\n this.setState({ isPriceApiCalled: false });\n\n productPrice.then(async result => {\n this._updatePrice(result);\n });\n\n if (product) {\n // Check if the product is service or not by product type\n if (product.ItemTypeValue === ReleasedProductType.Service) {\n this.setState({ isServiceItem: true });\n }\n await this._updateQuantitiesInState(product);\n }\n\n if (product && context.app.config.maxRecentlyViewedItemsCount > 0) {\n RecentlyViewedState.instance(this.props.context, context.app.config.maxRecentlyViewedItemsCount, product.RecordId);\n }\n }\n\n private async toggleShareModal(): Promise {\n this.setState({ isShareModalOpen: !this.state.isShareModalOpen });\n }\n\n public render(): JSX.Element | null {\n const {\n slots: { mediaGallery, productComparisonButton },\n data: {\n product: { result: product }\n },\n config: { className = '' }\n } = this.props;\n\n // const { max } = this.state;\n\n if (!product) {\n this.props.context.telemetry.error('Product content is empty, module wont render');\n return null;\n }\n\n const props = this.props as IBuyboxExtentedProps;\n const defaultMinimumKeyInPrice = 10;\n const defaultMaximumKeyInPrice = 100;\n\n const context = this.props.context as ICoreContext;\n const inventoryLevel = context.app.config.inventoryLevel;\n const dimensionValuesWithInventory = ArrayExtensions.flatten(\n ArrayExtensions.validValues(this.props.data.productDimensions.result?.map(value => value.dimensionValuesWithInventory))\n );\n const hasAvailableProducts =\n !ArrayExtensions.hasElements(dimensionValuesWithInventory) ||\n dimensionValuesWithInventory.some((value: unknown) => {\n const inventoryLevelCode = getInventoryLevelCodeFromDimensionValue(\n value as ProductDimensionValueInventoryAvailability,\n inventoryLevel\n );\n return inventoryLevelCode !== InventoryLevelValues.outOfStock;\n });\n const catalogId = getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n const totalAvailableStock =\n this.props.data.productAvailableQuantity.result && this.props.data.productAvailableQuantity.result.length > 0\n ? Math.floor(\n (Number(this.props.data.productAvailableQuantity.result[0].ProductAvailableQuantity.AvailableQuantity) * 100) / 100\n )\n : 3;\n const viewProps: IBuyboxViewProps = {\n ...(this.props as IBuyboxProps),\n state: this.state,\n mediaGallery: mediaGallery && mediaGallery.length > 0 ? mediaGallery[0] : undefined,\n ModuleProps: {\n moduleProps: this.props,\n className: classnames('ms-buybox', className)\n },\n ProductInfoContainerProps: {\n className: 'ms-buybox__content'\n },\n MediaGalleryContainerProps: {\n className: 'ms-buybox__media-gallery'\n },\n telemetryContent: this.telemetryContent,\n callbacks: this.buyboxCallbacks,\n description: getBuyboxProductDescription(props),\n bulkPurchaseLink: this._renderBuyboxBulkPurchaseLink(),\n unitOfMeasure: getBuyboxProductUnitOfMeasure(props),\n configure: getBuyboxProductConfigure(props, this.state, this.buyboxCallbacks),\n // findInStore: getBuyboxFindInStore(this.props, this.state, this.buyboxCallbacks),\n price: this.getBuyboxProductPrice(props, this.state),\n prodSpecs: this.props.data.productSpecificationData?.result,\n addToCart: getBuyboxAddToCart(\n props,\n this.state,\n this.buyboxCallbacks,\n defaultMinimumKeyInPrice,\n defaultMaximumKeyInPrice,\n undefined,\n hasAvailableProducts\n ),\n productComparisonButton: ArrayExtensions.hasElements(productComparisonButton)\n ? getBuyboxProductComparisonButton(\n productComparisonButton[0],\n product,\n getCatalogId(this.props.context.request),\n this.state\n )\n : undefined,\n addToOrderTemplate: getBuyboxProductAddToOrderTemplate(\n props,\n this.state,\n this.buyboxCallbacks,\n this._isChannelMultipleCatalogsFeatureEnabled(),\n catalogId\n ),\n addToWishlist: getBuyboxProductAddToWishlist(props, this.state, this.buyboxCallbacks),\n rating: !props.context.app.config.hideRating && getBuyboxProductRating(props),\n quantity: product.IsGiftCard ? undefined : getBuyboxProductQuantity(props, this.state, this.buyboxCallbacks),\n inventoryLabel: getBuyBoxInventoryLabel(props),\n shopSimilarLook:\n this.props.config.enableShopSimilarLooks && !product.IsGiftCard\n ? getBuyboxShopSimilarButton(props, ShopSimiliarButtonType.Looks)\n : undefined,\n shopSimilarDescription:\n this.props.config.enableShopSimilarDescription && !product.IsGiftCard\n ? getBuyboxShopSimilarButton(props, ShopSimiliarButtonType.Description)\n : undefined,\n keyInPrice:\n this.props.config.enableKeyInPrice && this.state.isCustomPriceSelected\n ? getBuyboxKeyInPrice(props, this.state, this.buyboxCallbacks)\n : undefined,\n quantityLimitsMessages: getQuantityLimitsMessages(props, this.state),\n max: totalAvailableStock,\n isChannelMultipleCatalogsFeatureEnabled: this._isChannelMultipleCatalogsFeatureEnabled(),\n currentCatalogId: catalogId,\n catalogs: this._validateCatalogDetails(catalogId),\n toggleShareModal: this.toggleShareModal,\n isShareModalOpen: this.state.isShareModalOpen\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n /**\n * Get the React.ReactElement contains price.\n * @param props - The IBuyboxExtentedProps.\n * @param state - The buybox state.\n * @returns The React.ReactElement.\n */\n private getBuyboxProductPrice(props: IBuyboxExtentedProps, state: IBuyboxState): React.ReactElement | undefined {\n const { id, typeName, context, resources } = props;\n console.log('thiss prices : ', props, this.state);\n\n return (\n state.productPrice && (\n featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\n )?.IsEnabled\n }\n isSalesAgreementPriceFeatureEnabled={\n props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSalesAgreementPriceSupportFeature'\n )?.IsEnabled\n }\n priceResources={{\n priceRangeSeparator: resources.priceRangeSeparator,\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\n salesAgreementExpirationDatePrompt: resources.salesAgreementExpirationDatePrompt,\n salesAgreementCommittedQuantityPrompt: resources.salesAgreementCommittedQuantityPrompt,\n salesAgreementRemainingQuantityPrompt: resources.salesAgreementRemainingQuantityPrompt\n }}\n freePriceText={resources.priceFree}\n originalPriceText={resources.originalPriceText}\n currentPriceText={resources.currentPriceText}\n />\n )\n );\n }\n /**\n * Handles anchor click event and scrolls to the given bulk purchase module.\n * @param bulkPurchaseModule - Bulk purchase module.\n * @returns Handler.\n */\n private readonly _onBulkPurchaseLinkClick = (bulkPurchaseModule: Element) => () => {\n const boundingRect = bulkPurchaseModule.getBoundingClientRect();\n const scrollX = boundingRect.left + window.pageXOffset;\n const scrollY = boundingRect.top + window.pageYOffset;\n\n window.scrollTo(scrollX, scrollY);\n };\n private readonly _isChannelMultipleCatalogsFeatureEnabled = (): boolean => {\n let isMultipleCatalogFeatureEnabledInHq = false;\n if (this.props.data.featureState) {\n isMultipleCatalogFeatureEnabledInHq =\n this.props.data.featureState.result?.find(\n feature => feature.Name === 'Dynamics.AX.Application.ChannelMultipleCatalogsFeature'\n )?.IsEnabled || false;\n }\n return isMultipleCatalogFeatureEnabledInHq;\n };\n\n private _renderBuyboxBulkPurchaseLink(): React.ReactNode {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Temporary switch for the feature which is under development.\n if (!this.props.context.app.config.isBulkPurchaseEnabled) {\n return null;\n }\n\n if (!msdyn365Commerce.isBrowser) {\n return null;\n }\n\n const bulkPurchaseModules = Array.from(document.getElementsByClassName(BulkPurchase.className));\n\n if (!ArrayExtensions.hasElements(bulkPurchaseModules)) {\n return null;\n }\n\n return (\n \n {this.props.resources.bulkPurchaseLinkText}\n \n );\n }\n\n private _updatePrice(newPrice: ProductPrice | undefined, customPrice: number | undefined = this.state.keyInPriceAmount): void {\n if (this.state.isCustomPriceSelected && newPrice) {\n newPrice.CustomerContextualPrice = customPrice;\n }\n this.setState({ productPrice: newPrice });\n }\n\n private _getProductVariant(dimensionsToUpdate: { [id: number]: string }) {\n const {\n data: {\n product: { result: product }\n },\n context: {\n actionContext,\n request: {\n apiSettings: { channelId }\n }\n }\n } = this.props;\n\n const productDimensions = this.props.data.productDimensions.result!;\n // Step 3, Build the actually selected dimensions, prioritizing the information in state\n // over the information in data\n const mappedDimensions = productDimensions\n .map(dimension => {\n const dimensions = (dimension.dimensionValuesWithInventory ??\n dimension.DimensionValues ??\n []) as IDimensionValueForSelectedVariant[];\n return {\n DimensionTypeValue: dimension.DimensionTypeValue,\n DimensionValue:\n dimensions.find(\n value => value.DimensionValue?.RecordId.toString() === dimensionsToUpdate[dimension.DimensionTypeValue]\n )?.DimensionValue ?? dimension.DimensionValue,\n ExtensionProperties: dimension.ExtensionProperties\n };\n })\n .filter(dimension => dimension.DimensionValue);\n setDimensionValuesToQuery(this.props.context.actionContext.requestContext.url.requestUrl, mappedDimensions);\n\n // Step 4. Use these dimensions hydrate the product. Wrap this in a promise\n // so that places like add to cart can await it\n const selectedProductPromise = getSelectedVariant(\n new SelectedVariantInput(\n product!.MasterProductId ? product!.MasterProductId : product!.RecordId,\n channelId,\n undefined,\n undefined,\n this.props.context.request\n ),\n actionContext\n );\n this.setState({ selectedProduct: selectedProductPromise });\n\n return { productVariantPromise: selectedProductPromise, mappedDimensions };\n }\n\n private readonly _updateDimensions = async (): Promise => {\n const product = this.props.data.product.result;\n\n const productDimensions = this.props.data.productDimensions.result;\n\n const hasProductDimensions = ArrayExtensions.hasElements(productDimensions);\n\n if (!product || !hasProductDimensions) {\n return;\n }\n\n const dimensionsToUpdate: { [id: number]: string } = { ...this.dimensions };\n\n this.setState({ isUpdatingDimension: true, isUpdatingDeliveryOptions: true });\n\n // Step 1: Clear error state to display relevant errors\n if (this.state.errorState.otherError || this.state.errorState.quantityError) {\n const clearErrorState = { ...this.state.errorState };\n clearErrorState.otherError = undefined;\n if (this.state.errorState.errorHost === 'ADDTOCART') {\n clearErrorState.quantityError = undefined;\n clearErrorState.errorHost = undefined;\n }\n this.setState({ errorState: clearErrorState });\n }\n\n // Step 2: Clear any errors indicating the dimension wasn't selected\n for (const key of Object.keys(dimensionsToUpdate)) {\n if (this.state.errorState.configureErrors[key]) {\n this.setState(previousState => {\n const errorState = previousState.errorState;\n errorState.configureErrors[key] = undefined;\n return { errorState };\n });\n }\n }\n\n const data = this._getProductVariant(dimensionsToUpdate);\n const productVariant: SimpleProduct | null = await data.productVariantPromise;\n\n if (!productVariant) {\n return;\n }\n\n const promises: Promise[] = [\n this._getDimensionsForSelectedVariant(productVariant, data.mappedDimensions),\n this._hydrateInventoryInfo(productVariant),\n this._hydratePrice(productVariant),\n this._hydrateDeliveryOptions(productVariant),\n this._updateQuantitiesInState(productVariant)\n ];\n\n await Promise.all(promises);\n };\n\n private async _getDimensionsForSelectedVariant(\n productVariant: SimpleProduct,\n mappedDimensions: {\n /* eslint-disable @typescript-eslint/naming-convention -- Retail proxy values */\n DimensionTypeValue: number;\n DimensionValue: ProductDimensionValue | undefined;\n ExtensionProperties: CommerceProperty[] | undefined;\n /* eslint-enable @typescript-eslint/naming-convention -- Retail proxy values */\n }[]\n ): Promise {\n await getDimensionsForSelectedVariant(\n new GetDimensionsForSelectedVariantInput(\n productVariant.MasterProductId ? productVariant.MasterProductId : productVariant.RecordId,\n this.props.context.request.apiSettings.channelId,\n mappedDimensions,\n this.props.context.request\n ),\n this.props.context.actionContext\n );\n }\n\n private async _hydrateInventoryInfo(productVariant: SimpleProduct): Promise {\n // Step 5. Use these dimensions hydrate the inventory. Wrap this in a promise\n // so that places like add to cart can await it\n const newAvailableQuantity = await getProductAvailabilitiesForSelectedVariant(\n new ProductAvailabilitiesForSelectedVariantInput(productVariant.RecordId, this.props.context.request.apiSettings.channelId),\n this.props.context.actionContext\n );\n\n const newShippingQuantity = newAvailableQuantity?.find(\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (shipping: { deliveryType: any }) => shipping.deliveryType === DeliveryMode.shipping\n );\n const isCustomPriceSelected = productVariant.Dimensions?.find(\n dimension =>\n dimension.DimensionTypeValue === 4 && dimension.DimensionValue && dimension.DimensionValue.Value?.toLowerCase() === 'custom'\n );\n if (isCustomPriceSelected) {\n this.setState({ isCustomPriceSelected: true });\n } else {\n this.setState(previousState => {\n const errorState = previousState.errorState;\n errorState.customAmountError = undefined;\n return { isCustomPriceSelected: false, isPriceKeyedIn: false, errorState };\n });\n }\n\n if (newShippingQuantity) {\n this.setState({ productAvailableQuantity: newShippingQuantity });\n } else {\n this.setState({ productAvailableQuantity: undefined });\n }\n }\n\n private async _hydratePrice(productVariant: SimpleProduct): Promise {\n // This function is invoked when dimensionSelectedAsync get called.\n // If the price has not been hydrated before, this means the component was just loaded for the first time with variant selected.\n // We will skip calling RS API in this case as the price data has already been fetched via module data action in node server.\n if (!this.state.isPriceApiCalled) {\n this.setState({ isPriceApiCalled: true });\n return;\n }\n\n // Step 6. Use these dimensions hydrate the product price.\n const newPrice = await getPriceForSelectedVariant(\n new PriceForSelectedVariantInput(productVariant.RecordId, this.props.context.request.apiSettings.channelId),\n this.props.context.actionContext\n );\n\n if (newPrice) {\n this._updatePrice(newPrice);\n }\n }\n\n private async _hydrateDeliveryOptions(productVariant: SimpleProduct): Promise {\n const retailMultiplePickupFeatureState = this.props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature'\n );\n\n // Step 7. Use these dimensions hydrate the product delivery options.\n const newDeliveryOptions = await getDeliveryOptionsForSelectedVariant(\n new GetDeliveryOptionsForSelectedVariantInput(\n productVariant.RecordId,\n this.props.context.request.apiSettings.channelId,\n undefined,\n undefined,\n retailMultiplePickupFeatureState?.IsEnabled\n ),\n this.props.context.actionContext\n );\n\n if (newDeliveryOptions) {\n this.setState({ productDeliveryOptions: newDeliveryOptions });\n }\n }\n\n private async _updateQuantitiesInState(product: SimpleProduct): Promise {\n const isOrderQuantityLimitsFeatureEnabled = await this._isOrderQuantityLimitsFeatureEnabled();\n const isChannelLimitsFeatureEnabled = await this._isChannelLimitsFeatureEnabled();\n\n const min: number = this._getMinQuantityForCartLineItem(isOrderQuantityLimitsFeatureEnabled, product);\n const max: number = this._getMaxQuantityForCartLineItem(\n isChannelLimitsFeatureEnabled || isOrderQuantityLimitsFeatureEnabled,\n product\n );\n\n this.setState({\n min,\n max\n });\n }\n\n private _getMinQuantityForCartLineItem(isOrderQuantityLimitsFeatureEnabled: boolean, product: SimpleProduct): number {\n if (isOrderQuantityLimitsFeatureEnabled && product?.Behavior?.MinimumQuantity && product.Behavior.MinimumQuantity > 0) {\n return product.Behavior.MinimumQuantity;\n }\n\n return 1;\n }\n\n private _getMaxQuantityForCartLineItem(isQuantityLimitsFeatureEnabled: boolean, product: SimpleProduct): number {\n if (isQuantityLimitsFeatureEnabled && product?.Behavior?.MaximumQuantity && product.Behavior.MaximumQuantity > 0) {\n return product.Behavior.MaximumQuantity;\n }\n\n return updateMaxQuantityForCartLineItem(this.props.context.app.config.maxQuantityForCartLineItem);\n }\n\n private readonly _getDropdownName = (dimensionType: number, resources: IBuyboxResources): string => {\n const isGiftCard = this.props.data.product.result?.IsGiftCard;\n switch (dimensionType) {\n case 1: // ProductDimensionType.Color\n return resources.productDimensionTypeColor;\n case 2: // ProductDimensionType.Configuration\n return resources.productDimensionTypeConfiguration;\n case 3: // ProductDimensionType.Size\n return resources.productDimensionTypeSize;\n case 4: // ProductDimensionType.Style\n return isGiftCard ? resources.productDimensionTypeAmount : resources.productDimensionTypeStyle;\n default:\n return '';\n }\n };\n\n private async _isOrderQuantityLimitsFeatureEnabled(): Promise {\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\n if (defaultOrderQuantityLimitsFeatureConfig === 'none') {\n return false;\n }\n\n const featureStatuses = await this.props.data.featureState;\n const isFeatureEnabledInHq = featureStatuses?.find(\n featureState => featureState.Name === RetailDefaultOrderQuantityLimitsFeatureName\n )?.IsEnabled;\n if (!isFeatureEnabledInHq) {\n return false;\n }\n\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\n return true;\n }\n let customerInfo;\n try {\n customerInfo = await this.props.data.customerInformation;\n } catch (error) {\n // @ts-ignore\n this.props.telemetry.information(error);\n this.props.telemetry.debug('Unable to receive Customer Information. May be user is not authorized');\n return false;\n }\n\n return (\n customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b))\n );\n }\n\n private _validateCatalogDetails(catalogId: number): ProductCatalog[] | undefined {\n const catalogs = this.props.data.catalogs?.result?.filter(item => item.RecordId === catalogId);\n if (ArrayExtensions.hasElements(catalogs) && catalogs[0].RecordId === 0) {\n return;\n }\n\n return catalogs;\n }\n\n private async _isChannelLimitsFeatureEnabled(): Promise {\n const featureStatuses = await this.props.data.featureState;\n\n const isChannelLimitsFeatureEnabledInHq = featureStatuses?.find(\n featureState => featureState.Name === EcommerceQuantityLimitConfigurationsFeatureName\n )?.IsEnabled;\n\n return isChannelLimitsFeatureEnabledInHq ?? false;\n }\n}\n\nexport default Buybox;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable no-duplicate-imports */\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxShopSimilarLookViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IBuyboxViewProps } from './buybox';\nimport { IBuyboxFindInStoreViewProps } from '../../components/buybox-find-in-store';\n\nconst BuyboxView: React.FC = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n shopSimilarDescription,\n unitOfMeasure,\n productComparisonButton\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {addToWishlist && _renderAddToWishlist(addToWishlist)}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity)}\n {inventoryLabel}\n {addToCart && _renderAddToCart(addToCart)}\n {findInStore && _renderFindInStore(findInStore)}\n {addToOrderTemplate && _renderAddToOrderTemplate(addToOrderTemplate)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {productComparisonButton}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\n const { ContainerProps, errorBlock, button } = addToCart;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\nconst _renderAddToOrderTemplate = (addToOrderTemplate: IBuyboxAddToOrderTemplateViewProps): JSX.Element => {\n const { ContainerProps, errorBlock, button } = addToOrderTemplate;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\nconst _renderAddToWishlist = (addToWishlist: IBuyboxAddToWishlistViewProps): JSX.Element => {\n const { ContainerProps, errorBlock, button } = addToWishlist;\n\n return (\n \n {errorBlock}\n {button}\n \n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\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\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\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\nconst _renderQuantity = (quantity: IBuyboxProductQuantityViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input, errors } = quantity;\n\n return (\n \n \n {heading}\n {errors}\n \n {input}\n \n );\n};\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\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable no-duplicate-imports */\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n // IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport {\n IModuleProps,\n IncrementalQuantity,\n INodeProps,\n ITelemetryContent, Modal, ModalBody, ModalFooter, ModalHeader,\n Module,\n Node\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\nimport {ProductCatalog} from \"@msdyn365-commerce/retail-proxy\";\nexport interface IBuyboxViewProps extends IBuyboxProps {\n state: IBuyboxState;\n ModuleProps: IModuleProps;\n ProductInfoContainerProps: INodeProps;\n MediaGalleryContainerProps: INodeProps;\n callbacks: IBuyboxCallbacks;\n mediaGallery?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n rating?: React.ReactNode;\n price?: React.ReactNode;\n productComparisonButton?: React.ReactNode;\n bulkPurchaseLink?: React.ReactNode;\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps;\n addToWishlist?: IBuyboxAddToWishlistViewProps;\n max: number | undefined;\n addToCart: IBuyboxAddToCartViewProps;\n findInStore?: IBuyboxFindInStoreViewProps;\n quantity?: IBuyboxProductQuantityViewProps;\n configure?: IBuyboxProductConfigureViewProps;\n inventoryLabel?: React.ReactNode;\n shopSimilarLook?: IBuyboxShopSimilarLookViewProps;\n shopSimilarDescription?: IBuyboxShopSimilarLookViewProps;\n quantityLimitsMessages: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n keyInPrice?: IBuyboxKeyInPriceViewProps;\n unitOfMeasure?: React.ReactNode;\n catalogs?: ProductCatalog[] | undefined;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n currentCatalogId?: number;\n isShareModalOpen?:boolean;\n toggleShareModal: () => void;\n prodSpecs: any;\n}\nconst BuyboxView: React.FC> = props => {\n // @ts-ignore\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n // description,\n findInStore,\n quantity,\n price,\n rating,\n callbacks,\n state,\n resources,\n // inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n max,\n shopSimilarDescription,\n // unitOfMeasure,\n isShareModalOpen,\n toggleShareModal\n } = props;\n const featuredAttribute = props.prodSpecs &&\n props.prodSpecs.length > 0 && props.prodSpecs.filter((sp: { Name:\n string; }) => {\n return sp.Name?.toLowerCase() === 'featured';\n });\n const featuredAttributeValue = featuredAttribute &&\n featuredAttribute?.[0] ? featuredAttribute[0]?.TextValue?.split('|') :\n [];\n\n\n return (\n \n\n {props.mediaGallery}\n \n {_titleHead(\n addToWishlist,\n props.data.product.result?.Name,\n props.data.product.result?.ProductNumber,\n toggleShareModal,\n isShareModalOpen,\n props.slots && props.slots.socialShare,\n featuredAttributeValue,\n props.context,\n )}\n {/*{price}*/}\n {/*{unitOfMeasure}*/}\n {props.bulkPurchaseLink}\n {/*{description}*/}\n {/*{_renderTextBlock(props.slots.textBlocks)}*/}\n {rating}\n {/*{configure && _renderConfigure(configure)}*/}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n
\n
\n
{configure &&\n _renderConfigure(configure)}
\n
{price}
\n
\n
\n
\n
\n {quantity && _renderQuantity(quantity,\n callbacks, props, state, resources, quantityLimitsMessages, max,\n telemetryContent)}\n
\n
\n {_renderCartAndActions(addToCart,\n addToOrderTemplate,price,configure, props?.state?.productPrice)}\n
\n
\n {/*{inventoryLabel}*/}\n\n {findInStore && _renderFindInStore(findInStore)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription &&\n _renderShopSimilarItem(shopSimilarDescription)}\n
\n
\n );\n};\n\n/*const _renderTextBlock = (textBlocks: React.ReactNode[]):\nJSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};*/\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n // addToWishlist?: IBuyboxAddToWishlistViewProps,\n price?: any,\n configure?:any,\n productPrice?: any\n): JSX.Element | undefined => {\n if (!addToCart) {\n return undefined;\n }\n//const percentageOff = productPrice?.DiscountAmount !==\n productPrice?.BasePrice ? Math.floor(productPrice?.DiscountAmount /\n productPrice?.BasePrice * 100) : 0;\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {/*{addToWishlist && addToWishlist.errorBlock}*/}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {/*{addToWishlist && addToWishlist.button}*/}\n
\n
\n );\n};\n\nconst _titleHead = (\n addToWishlist?: IBuyboxAddToWishlistViewProps,\n name?:string,\n Number?:string,\n toggleShareModal?: () => void,\n isShareModalOpen?:any,\n socialShare?:React.ReactNode[],\n featuredAttributeValue?: [],\n props?:any,\n): JSX.Element | undefined => {\n if (!addToWishlist) {\n return undefined;\n }\n let whatspappLink= 'https://wa.me/?text='+props.request.url.requestUrl;\n return (\n\n <>\n
\n
\n

{name}

\n
\n
\n
\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToWishlist && addToWishlist.button}\n
\n
\n
\n
\n

\n \n

\n\n
\n
\n
\n
SKU:{Number}
\n\n {featuredAttributeValue && featuredAttributeValue.length > 0 &&\n (featuredAttributeValue.map((value:any) => {\n return <>
\n
\n {value == 'Planted & Produced'?\n \n \n \n : null\n }\n {value == 'Manufactured'?\n \n \n \n \n : null\n }\n {value == 'Packed'?\n \n \n \n \n \n \n \n \n \n \n \n : null\n }\n
\n
{value}
\n
\n })\n )\n }\n\n
\n {/*
\n
\n \n \n \n
\n
Order 3 items together and\nget 15% extra discount
\n
*/}\n {isShareModalOpen && (\n \n \n \n \n
\n
\n \n \n \n {socialShare ? socialShare : [0]}\n
\n
\n
\n \n \n
\n )}\n \n );\n};\n\nconst _renderConfigure = (configure:\n IBuyboxProductConfigureViewProps): JSX.Element => {\n\n const { ContainerProps, dropdowns } = configure;\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown:\n IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors,\n select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps):\n JSX.Element => {\n const { ContainerProps, storeSelector, heading, description,\n 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 * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue:\n number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } =\n quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps):\n JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem:\n IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;","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('partner/modules/buybox/buybox.tsx'),\n $type: 'containerModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', 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:'productSpecificationData', path:'@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-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: false,\n ns: '__local__',\n n: 'buybox',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/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/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/product-specification/dist/lib/dataActions/get-attributes-for-selected-variant');\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__|modules|buybox|buybox'] = {\n c: () => require('partner/modules/buybox/buybox.view.tsx'),\n cn: '__local__-__local__-buybox'\n };\nviewDictionary['__local__|__local__|themes|localy-theme|views|buybox'] = {\n c: () => require('partner/themes/localy-theme/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-modules|fabrikam-design-kit|modules|fabrikam|views|buybox'] = {\n c: () => require('@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/views/buybox.view.js'),\n cn: '@msdyn365-commerce-modules-fabrikam-design-kit-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 IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\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 )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\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\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\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 * 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\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\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 {quantityLimitsMessages}\n \n );\n};\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\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n getCatalogId,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { AttributeValue, ProductsDataActions, SimpleProduct, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n getAttributeValuesByConfiguration,\n getSelectedProductIdFromActionInput,\n getSelectedVariant,\n QueryResultSettingsProxy,\n SelectedVariantInput\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Chains getting the SelectedVariant with GetActivePrice.\n */\nexport class AttributesForSelectedVariantInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n public selectedProduct: SimpleProduct | undefined;\n\n constructor(productId: number, channelId: number, selectedProduct?: SimpleProduct, catalogId?: number) {\n this.productId = productId;\n this.channelId = channelId;\n this.selectedProduct = selectedProduct;\n this.catalogId = catalogId || 0;\n }\n\n public getCacheKey = () => 'AttributesForSelectedVariant';\n\n public getCacheObjectType = () => 'ProductAttributeValue';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const createAttributesForSelectedVariantInput = (\n inputData: ICreateActionContext>\n): AttributesForSelectedVariantInput => {\n const productId = getSelectedProductIdFromActionInput(inputData);\n const catalogId = getCatalogId(inputData.requestContext);\n\n if (productId) {\n return new AttributesForSelectedVariantInput(+productId, +inputData.requestContext.apiSettings.channelId, undefined, catalogId);\n }\n throw new Error('Unable to create PriceForSelectedVariantInput, no productId found on module config or query');\n};\n\n/**\n * Calls the Retail API a get a list of dimension values for a given product.\n * @param input - The input.\n * @param context - The context.\n * @returns The attribute values.\n */\nexport async function getAttributesForSelectedVariantAction(\n input: AttributesForSelectedVariantInput,\n context: IActionContext\n): Promise {\n return Promise.resolve()\n .then(() => {\n const activeProduct: SimpleProduct | undefined = input.selectedProduct;\n\n if (!activeProduct) {\n const selectedVariantInput = new SelectedVariantInput(\n input.productId,\n input.channelId,\n undefined,\n undefined,\n context.requestContext\n );\n\n return getSelectedVariant(selectedVariantInput, context);\n }\n\n return activeProduct;\n })\n .then((productResult: SimpleProduct | null) => {\n const activeProduct: SimpleProduct | undefined = productResult;\n\n if (activeProduct) {\n return ProductsDataActions.getAttributeValuesAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n activeProduct.RecordId,\n input.channelId,\n input.catalogId\n );\n }\n\n return null;\n })\n .then(async (attributeValues: AttributeValue[] | null) => {\n const channelInventoryConfiguration = await StoreOperationsDataActions.getInventoryConfigurationAsync({\n callerContext: context\n });\n\n return { attributeValues, channelInventoryConfiguration };\n })\n .then(result => {\n return getAttributeValuesByConfiguration(result.attributeValues, result.channelInventoryConfiguration);\n })\n .catch((error: Error) => {\n context.trace(error.message);\n throw new Error('[getPriceForSelectedVariantAction]Error executing action');\n });\n}\n\nexport default createObservableDataAction({\n id: '@msdyn365-commerce-modules/product-info/get-attributes-for-selected-variant',\n action: >getAttributesForSelectedVariantAction,\n input: createAttributesForSelectedVariantInput\n});\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;","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw new RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n"],"names":["telemetryContent","getBuyboxProductConfigure","props","state","callbacks","productDetails","selectedDimensions","_props$data$product","_props$data$productDi","_props$data$productDi2","resources","typeName","errorState","configureErrors","getDropdownName","context","product","data","result","productDimensionsData","productDimensions","enableStockCheck","app","config","hasProductDimensions","ArrayExtensions","hasElements","className","_getClassNamePrefix","onChanged","async","_onChanged","notification","dimensionSelectedAsync","getTelemetryObject","request","telemetryPageName","telemetry","inventoryLevel","dimensionsInfo","map","productDimensionFull","_ref","_productDimensionFull","dropdownName","DimensionTypeValue","dropdownId","toString","dropdownList","dimensionValuesWithInventory","DimensionValues","filter","value","_value$DimensionValue","_value$DimensionValue2","ObjectExtensions","isNullOrUndefined","DimensionValue","RecordId","_dimensionValuesWithI","_dimensionValue$Value","dimensionValue","inventoryLevelCode","getInventoryLevelCodeFromDimensionValue","Value","id","colorHexCode","ColorHexCode","imageUrl","ImageUrl","isDisabled","InventoryLevelValues","outOfStock","swatchItemAriaLabel","matchedDimensions","getDimensionValuesFromQuery","url","requestUrl","dimensionInfo","currentDimensionsFromQuery","dimensionFromQuery","currentDimensionFromQuery","selectedDimensionItem","dimensionItem","_currentDimensionFrom","toLocaleLowerCase","isDefault","dropdowns","dimensionId","Number","parseInt","dropdownToggleName","format","selectDimensionFormatString","errorMessage","dimensionSelectionType","SelectionType","dropdown","dimensionType","convertProductDimensionTypeToDimensionTypes","dimensionsAsSwatchConfiguration","dimensionsAsSwatchType","includes","DimensionTypes","none","ContainerProps","LabelContainerProps","tag","htmlFor","errors","React","role","heading","select","Dropdown","onChange","dropdownCallback","selectionType","apiSettings","mapProductDimensionFullToDropdownViewProps","_objectSpread","dimensionChanged","selectId","getOriginalPrice","_props$data$price$Bas","console","log","price","BasePrice","formatCurrency","shouldUseFreePriceText","currencyCode","undefined","freePriceText","cultureFormatter","showPriceRangeForMasterProduct","_props$isPriceMinMaxE","_props$product","_props$product2","isPriceMinMaxEnabled","ProductTypeValue","ProductType","Master","KitMaster","MinVariantPrice","MaxVariantPrice","renderCurrentPrice","maxVariantPrice","minVariantPrice","_props$priceResources","itemProp","priceResources","priceRangeSeparator","CustomerContextualPrice","getActivePrice","PriceComponent","msdyn365Commerce","createComponent","component","isSalesAgreementPriceFeatureEnabled","SalesAgreementPrice","_props$data$price$Sal","_props$priceResources8","_props$priceResources9","isExpanded","setIsExpanded","toggle","classnames","Button","salesAgreementPricePrompt","onClick","tabIndex","_props$data$price$Att","_props$priceResources2","_props$priceResources3","_props$priceResources4","_props$priceResources5","_props$priceResources6","_props$priceResources7","firstPriceLine","AttainablePriceLines","salesAgreementExpirationDatePrompt","formatDate","EffectiveDate","ExpirationDate","salesAgreementCommittedQuantityPrompt","CommittedQuantity","salesAgreementRemainingQuantityPrompt","RemainingQuantity","renderSalesAgreementDetail","originalSalesPrice","activeSalesPrice","showStrikethroughPricing","initialPrice","renderCurrentPriceWithOriginalPrice","Buybox","constructor","super","dimensionUpdateQueue","FinitePromiseQueue","dimensions","buyboxCallbacks","updateQuantity","newQuantity","this","quantityError","otherError","setState","quantity","updateErrorState","newErrorState","updateSelectedProduct","newSelectedProduct","newInventory","newPrice","newDeliveryOptions","selectedProduct","productAvailableQuantity","productDeliveryOptions","_updatePrice","selectedDimensionId","selectedDimensionValueId","enqueue","_updateDimensions","catch","error","FinitePromiseQueueError","ProcessWasDiscardedFromTheQueue","_getDropdownName","changeModalOpen","isModalOpen","modalOpen","changeUpdatingDimension","isUpdatingDimension","changeUpdatingDeliveryOptions","isUpdatingDeliveryOptions","updateKeyInPrice","customPrice","customAmountError","isPriceKeyedIn","keyInPriceAmount","productPrice","_onBulkPurchaseLinkClick","bulkPurchaseModule","boundingRect","getBoundingClientRect","scrollX","left","window","pageXOffset","scrollY","top","pageYOffset","scrollTo","_isChannelMultipleCatalogsFeatureEnabled","isMultipleCatalogFeatureEnabledInHq","_this$props$data$feat","featureState","find","feature","Name","IsEnabled","dimensionsToUpdate","clearErrorState","errorHost","key","Object","keys","previousState","_getProductVariant","productVariant","productVariantPromise","promises","_getDimensionsForSelectedVariant","mappedDimensions","_hydrateInventoryInfo","_hydratePrice","_hydrateDeliveryOptions","_updateQuantitiesInState","Promise","all","_this$props$data$prod","isGiftCard","IsGiftCard","productDimensionTypeColor","productDimensionTypeConfiguration","productDimensionTypeSize","productDimensionTypeAmount","productDimensionTypeStyle","min","max","isPriceApiCalled","isShareModalOpen","toggleShareModal","bind","friendlyName","then","ItemTypeValue","ReleasedProductType","Service","isServiceItem","maxRecentlyViewedItemsCount","RecentlyViewedState","instance","render","_this$props$data$prod2","_this$props$data$prod3","slots","mediaGallery","productComparisonButton","flatten","validValues","hasAvailableProducts","some","catalogId","getCatalogId","validateCatalogId","totalAvailableStock","length","Math","floor","ProductAvailableQuantity","AvailableQuantity","viewProps","ModuleProps","moduleProps","ProductInfoContainerProps","MediaGalleryContainerProps","description","getBuyboxProductDescription","bulkPurchaseLink","_renderBuyboxBulkPurchaseLink","unitOfMeasure","getBuyboxProductUnitOfMeasure","configure","getBuyboxProductPrice","prodSpecs","productSpecificationData","addToCart","getBuyboxAddToCart","getBuyboxProductComparisonButton","addToOrderTemplate","getBuyboxProductAddToOrderTemplate","addToWishlist","getBuyboxProductAddToWishlist","rating","hideRating","getBuyboxProductRating","getBuyboxProductQuantity","inventoryLabel","getBuyBoxInventoryLabel","shopSimilarLook","enableShopSimilarLooks","getBuyboxShopSimilarButton","ShopSimiliarButtonType","Looks","shopSimilarDescription","enableShopSimilarDescription","Description","keyInPrice","enableKeyInPrice","isCustomPriceSelected","getBuyboxKeyInPrice","quantityLimitsMessages","getQuantityLimitsMessages","isChannelMultipleCatalogsFeatureEnabled","currentCatalogId","catalogs","_validateCatalogDetails","renderView","_props$data$featureSt","_props$data$featureSt2","priceFree","originalPriceText","currentPriceText","isBulkPurchaseEnabled","isBrowser","bulkPurchaseModules","Array","from","document","getElementsByClassName","BulkPurchase","title","bulkPurchaseLinkText","arguments","actionContext","channelId","dimension","_dimension$dimensionV","_dimensions$find$Dime","_dimensions$find","ExtensionProperties","setDimensionValuesToQuery","requestContext","selectedProductPromise","getSelectedVariant","SelectedVariantInput","MasterProductId","getDimensionsForSelectedVariant","GetDimensionsForSelectedVariantInput","_productVariant$Dimen","newAvailableQuantity","getProductAvailabilitiesForSelectedVariant","ProductAvailabilitiesForSelectedVariantInput","newShippingQuantity","shipping","deliveryType","DeliveryMode","Dimensions","_dimension$DimensionV","toLowerCase","getPriceForSelectedVariant","PriceForSelectedVariantInput","_this$props$data$feat2","retailMultiplePickupFeatureState","getDeliveryOptionsForSelectedVariant","GetDeliveryOptionsForSelectedVariantInput","isOrderQuantityLimitsFeatureEnabled","_isOrderQuantityLimitsFeatureEnabled","isChannelLimitsFeatureEnabled","_isChannelLimitsFeatureEnabled","_getMinQuantityForCartLineItem","_getMaxQuantityForCartLineItem","_product$Behavior","Behavior","MinimumQuantity","isQuantityLimitsFeatureEnabled","_product$Behavior2","MaximumQuantity","updateMaxQuantityForCartLineItem","maxQuantityForCartLineItem","_this$props$context","_featureStatuses$find","defaultOrderQuantityLimitsFeatureConfig","platform","enableDefaultOrderQuantityLimits","featureStatuses","RetailDefaultOrderQuantityLimitsFeatureName","customerInfo","customerInformation","information","debug","IsB2b","_this$props$data$cata","item","_featureStatuses$find2","isChannelLimitsFeatureEnabledInHq","EcommerceQuantityLimitConfigurationsFeatureName","_renderAddToCart","errorBlock","button","Node","assign","_renderAddToOrderTemplate","_renderAddToWishlist","_renderConfigure","_renderConfigureDropdown","_renderSocialShare","socialShare","_renderFindInStore","findInStore","storeSelector","modal","productPickupOptionList","_renderQuantity","input","_renderKeyInPrice","_renderShopSimilarItem","shopSimilarItem","Module","_renderCartAndActions","DiscountAmount","_titleHead","name","featuredAttributeValue","whatspappLink","width","height","viewBox","fill","xmlns","rx","d","stroke","transform","type","href","target","src","cx","cy","r","Modal","isOpen","modalClassName","ModalHeader","ModalBody","style","ModalFooter","onChangeHandler","newValue","quantityComponent","extentionResources","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_featuredAttribute$","_props$data$product$r","_props$data$product$r2","_props$state","featuredAttribute","sp","_sp$Name","TextValue","split","ProductNumber","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","BaseStoreSelectorStateManager","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","isMapModuleLoaded","_readFromToCookie","storeInfo","JSON","parse","preferredStore","_unused","_context","storeId","selectedStoreLocationId","storeName","writeToCookie","StoreId","StoreName","Latitude","Longitude","_writeToCookie","stringify","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","MsDyn365","localStorage","removeItem","setItem","cookieValue","getItem","__decorate","computed","observable","action","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","channel","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","Uint32Array","ChannelCountryRegionISOCode","trim","query","encodeURI","geolocationApiUrl","resolve","script","createElement","setAttribute","remove","resourceSets","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","getElementById","currentWindowAPI","mapAPIReady","isMapApiLoaded","lang","market","reject","_document2","_document3","defer","addEventListener","createStoreSelectorStateInput","GenericInput","getGenericActionDataAction","createObservableDataAction","getGenericAction","inputData","_renderTextBlock","textBlocks","applyDefaultOrderSettings","AttributesForSelectedVariantInput","productId","getCacheKey","getCacheObjectType","dataCacheType","createAttributesForSelectedVariantInput","getSelectedProductIdFromActionInput","getAttributesForSelectedVariantAction","activeProduct","selectedVariantInput","productResult","ProductsDataActions","callerContext","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","attributeValues","channelInventoryConfiguration","StoreOperationsDataActions","getAttributeValuesByConfiguration","trace","message","generateAddToOrderTemplateDialogResources","addToOrderTemplateHeader","noOrderTemplatesMessage","noOrderTemplatesDescription","createAnOrderTemplateButtonText","createNewOrderTemplateButtonText","cancelOrderTemplateCreationButtonText","selectTemplatesText","addToTemplateButtonText","lineItemsText","generateOrderTemplateNameDialogResources","orderTemplateHeaderLabel","createOrderTemplateHeader","orderTemplateTitleLabel","orderTemplateTitle","orderTemplateNameAriaLabel","orderTemplateDescription","createOrderTemplateDescription","defaultOrderTemplateName","orderTemplateButtonLabel","createOrderTemplateButtonText","orderTemplateCancelButtonLabel","cancelNewOrderTemplateCreationButtonText","generateItemAddedToOrderTemplateDialogResources","viewOrderTemplateButtonText","continueShoppingButtonText","itemAddedToOrderTemplateHeaderItemOneText","itemAddedToOrderTemplateHeaderItemFormatText","itemAddedToOrderTemplateHeaderMessageText","generateDuplicateItemsWhenAddingToOrderTemplateDialogResources","duplicatedProductsHeader","duplicatedProductsDescription","updateQuantityButtonText","cancelDuplicateItemsButtonText","onAddToOrderTemplateFailed","status","getConfigureErrors","missingDimensions","BuyBoxConstants","renderAddToOrderTemplate","orderTemplateButton","renderAddToOrderTemplateButton","orderTemplates","isMultipleCatalogsFeatureEnabled","AddToOrderTemplateComponent","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","addToOrderTemplateDialogResources","createOrderTemplateDialogResources","itemAddedToOrderTemplateDialogResources","duplicateItemsWhenAddingToOrderTemplateDialogResources","onError","shouldShowButtonFailedTooltip","showButtonTooltip","showButtonText","imageSettings","onAddToWishlistFailed","renderAddToWishlist","enableWishlist","wishlistButton","renderAddtoWishlistButton","wishlists","AddToWishlistComponent","addToWishlistButtonText","removeFromWishlistButtonText","addToWishlistMessage","removedFromWishlistMessage","addItemToWishlistError","removeItemFromWishlistError","nameOfWishlist","ariaRole","getSelectedProduct","renderShopSimilarItem","renderConfigureDropdown","_props$data$storeSele","_props$data$product$r3","appConfig","skuText","ItemId","preferredStoreInfo","storeSelectorStateManager","preferredStoreId","preferredStoreName","availability","setAvailability","isStoreChange","setIsStoreChange","getInventory","GetFullAvailableInventoryNearbyInput","zero","getFullAvailableInventoryNearby","response","_preferredStoreAvaila","isPreferredStore","_value$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","OrgUnitNumber","filteredFullOrgUnitAvailability","preferredStoreAvailability","stockStatusLabel","availabilityWithHours","ProductInventoryInformation","productInventoryInformation","_availabilityWithHour","InventoryLocationId","InventLocationId","StockLevelLabel","getStockInventoryLabel","resourceLabel","itemAvailabilities","ItemAvailabilities","inStockText","outOfStockText","stockText","preferredStoreAvailabilityText","availabilityAtPreferredStoreText","displayStockAvailability","reaction","_props$data$storeSele2","priceText","renderConfigure","renderKeyInPrice","renderQuantity","renderAvailabilityAtPreferredStore","_props$data$product$r4","_props$data$product$r5","renderAddToCart","renderFindInStore","shopText","descriptionText","productSpecification","module","exports","ReactDOM","ArrayBuffer","DataView","NAME","Constructor","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","isCallable","isObject","hasOwn","classof","tryToString","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","isPrototypeOf","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","get","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TypeError","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","it","proto","isTypedArray","klass","Function","configurable","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","options","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","isView","toObject","toAbsoluteIndex","lengthOfArrayLike","O","argumentsLength","index","end","endPos","toPrimitive","$TypeError","argument","prim","BigInt","toPositiveInteger","$RangeError","RangeError","BYTES","offset","toIntegerOrInfinity","ArrayBufferViewCore","$fill","toBigInt","call","uncurryThis","fails","slice","actualValue","count","valueOf","toOffset","toIndexedObject","$set","set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","array","0","TO_OBJECT_BUG","arrayLike","len","aCallable","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","a","b","comparefn","x","y","getSortCompare","apply","arraySlice","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG"],"sourceRoot":""}