{"version":3,"file":"static/js/20.3abd9b7b831200e32c0b.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/components/cartlineitem.component.tsx?432c","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/components/promocode.component.tsx?d99d","webpack://Msdyn365.Commerce.Online/./src/validate-cart.ts?cd50","webpack://Msdyn365.Commerce.Online/./src/Common/get-product.ts?0a21","webpack://Msdyn365.Commerce.Online/./src/modules/cart-icon/components/flyout-cart-line-items.tsx?f2c4","webpack://Msdyn365.Commerce.Online/./src/modules/cart-icon/utils/get-products-in-mini-cart.ts?3c15","webpack://Msdyn365.Commerce.Online/./src/modules/cart-icon/cart-icon.tsx?4ae8","webpack://Msdyn365.Commerce.Online/./src/modules/cart-icon/cart-icon.view.tsx?f9dd","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/components/promocode.component.tsx?d9d6","webpack://Msdyn365.Commerce.Online/./src/modules/header/components/header-preferred-store.tsx?ee9c","webpack://Msdyn365.Commerce.Online/./src/modules/header/components/logo.tsx?f27e","webpack://Msdyn365.Commerce.Online/./src/modules/header/components/nav-icon.tsx?2475","webpack://Msdyn365.Commerce.Online/./src/modules/header/header.tsx?e91a","webpack://Msdyn365.Commerce.Online/./src/modules/header/header.view.tsx?cf0f","webpack://Msdyn365.Commerce.Online/./src/modules/promo-banner/components/close-button.tsx?063b","webpack://Msdyn365.Commerce.Online/./src/modules/promo-banner/components/links.tsx?2587","webpack://Msdyn365.Commerce.Online/./src/modules/promo-banner/components/text.tsx?782b","webpack://Msdyn365.Commerce.Online/./src/modules/promo-banner/promo-banner.tsx?9ee9","webpack://Msdyn365.Commerce.Online/./src/modules/promo-banner/promo-banner.view.tsx?7f77","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/add-to-list/add-to-cart-selected-items.tsx?de21","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-actions.tsx?ca97","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-drawer.tsx?8701","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-form.tsx?5cbb","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-product.ts?187e","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-table/components/quick-order-grid-table-header-component.tsx?69b3","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-table/components/quick-order-grid-table-row-component.tsx?cd92","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/quick-order-grid-table/quick-order-grid-table-component.tsx?7cbc","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/quick-order-grid.tsx?fddf","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/components/utilities.ts?1806","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order-grid/quick-order-grid.view.tsx?f941","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/components/quick-order-drawer.tsx?f8b4","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/components/quick-order-form.tsx?eb54","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/components/quick-order-product.ts?7702","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/components/quick-order-table/components/quick-order-table-header-component.tsx?49e7","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/components/quick-order-table/components/quick-order-table-row-component.tsx?e487","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/components/quick-order-table/quick-order-table-component.tsx?46c1","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/quick-order.tsx?ef21","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/quick-order.view.tsx?a96d","webpack://Msdyn365.Commerce.Online/./src/search-state.ts?dd10","webpack://Msdyn365.Commerce.Online/./src/modules/search/actions/get-auto-suggest-suggestions.ts?4735","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.categorysuggest.tsx?c65d","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.form.tsx?25a5","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.keywordsuggest.tsx?297c","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.label.tsx?0c17","webpack://Msdyn365.Commerce.Online/./src/modules/search/components/search.productsuggest.tsx?2af9","webpack://Msdyn365.Commerce.Online/./src/modules/search/search.tsx?72fb","webpack://Msdyn365.Commerce.Online/./src/modules/search/search.view.tsx?1505","webpack://Msdyn365.Commerce.Online/./src/modules/video-player/components/additional-content.tsx?b368","webpack://Msdyn365.Commerce.Online/./src/modules/video-player/video-player.tsx?53e5","webpack://Msdyn365.Commerce.Online/./src/modules/video-player/video-player.view.tsx?fedb","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/components/wishlist-items-dimensions.tsx?15c5","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/components/wishlist-item.tsx?d2da","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/components/wishlist-items-status-message.tsx?cdb3","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/wishlist-items.tsx?df8b","webpack://Msdyn365.Commerce.Online/./src/modules/wishlist-items/wishlist-items.view.tsx?4d80","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/./src/modules/adventureworks/views/components/cartlineitem.component.tsx?ccc2","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/product-v2.component.tsx?d155","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/product.component.tsx?fd23","webpack://Msdyn365.Commerce.Online/./src/modules/header/utilities/mock-utilities.ts?d017","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/header.view.tsx?9bd3","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/quickview.view.tsx?8e29","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/search-result-container-v2.view.tsx?6eaa","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/search-result-container.view.tsx?6e86"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { ArrayExtensions, getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { IComponentProps, IGridSettings, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { ChannelDeliveryOptionConfiguration, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { CartLine, SalesLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * ICartlineResourceString: Interface for specifying the\r\n * resource strings that the component needs\r\n */\r\nexport interface ICartlineResourceString {\r\n /** Display string for discount label */\r\n discountStringText: string;\r\n /** String for size key */\r\n sizeString: string;\r\n /** String for color key */\r\n colorString: string;\r\n /** String associated with the configuration product dimension */\r\n configString: string;\r\n /** String for style key */\r\n styleString: string;\r\n /** String for amount key */\r\n amountString?: string;\r\n /** Display string for quantity label */\r\n quantityDisplayString: string;\r\n /** Display string for quantity label */\r\n inputQuantityAriaLabel: string;\r\n /** Aria label for the decrement button in quantity component */\r\n decrementButtonAriaLabel: string;\r\n /** Aria label for the increment button in quantity component */\r\n incrementButtonAriaLabel: string;\r\n /** original text screenreader */\r\n originalPriceText: string;\r\n /** current text screenreader */\r\n currentPriceText: string;\r\n /** shipping Charges Text */\r\n shippingChargesText: string;\r\n}\r\n\r\ninterface ICartLineData {\r\n cartLine: CartLine | SalesLine;\r\n product: SimpleProduct;\r\n}\r\n\r\n/**\r\n * ICartLineProps: The props required to render cartLineitem\r\n */\r\nexport interface ICartLineProps extends IComponentProps {\r\n /** The flag to change the quantity component from interactible to static */\r\n disableQuantityInteractivity?: boolean;\r\n /** The primary image url */\r\n primaryImageUrl?: string;\r\n /** The product url */\r\n productUrl?: string;\r\n /** GridSettings for the product image in cartLine */\r\n gridSettings: IGridSettings;\r\n /** ImageSettings for the product image in cartLine */\r\n imageSettings: IImageSettings;\r\n /** Boolean flag to indicate if the item is out of stock */\r\n isOutOfStock?: boolean;\r\n /** Flag to make quantity section editable */\r\n isQuantityEditable?: boolean;\r\n /** Max quantity for line item */\r\n maxQuantity?: number;\r\n /** Current quantity for line item */\r\n currentQuantity?: number;\r\n /** Resource string for the component */\r\n resources: ICartlineResourceString;\r\n /** SalesLine flag */\r\n isSalesLine?: boolean;\r\n /** Error message to show in place of quantity */\r\n errorMessage?: string;\r\n /** Inventory information label */\r\n inventoryInformationLabel?: string;\r\n /** Inventory information class name */\r\n inventoryLabelClassName?: string;\r\n /** Flag to show/hide shipping charges for line items */\r\n showShippingChargesForLineItems?: boolean;\r\n /** Boolean flag to indicate if cart state status is ready */\r\n isCartStateReady?: boolean;\r\n /** Chanel Delivery Option configuration is from api. */\r\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n /** The telemetry content */\r\n telemetryContent?: ITelemetryContent;\r\n /** Quantity onChange callback */\r\n quantityOnChange?(cartLine: CartLine, newQuantity: number): boolean;\r\n}\r\n\r\ninterface IDimensionStrings {\r\n /** String for size key */\r\n sizeString: string;\r\n /** String for color key */\r\n colorString: string;\r\n /** String associated with the configuration product dimension */\r\n configString: string;\r\n /** String for style key */\r\n styleString: string;\r\n /** String for amount key */\r\n amountString?: string;\r\n}\r\n\r\nconst CartLineItemFunctions = {\r\n renderProductDimensions: (Product: SimpleProduct, DimensionStrings: IDimensionStrings) => {\r\n if (!Product || !Product.Dimensions) {\r\n return [];\r\n }\r\n\r\n return Product.Dimensions.map(productDimension => {\r\n if (productDimension.DimensionTypeValue === 1) {\r\n return (\r\n
\r\n \r\n {DimensionStrings.colorString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 2) {\r\n return (\r\n
\r\n \r\n {DimensionStrings.configString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 3) {\r\n return (\r\n
\r\n \r\n {DimensionStrings.sizeString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n\r\n if (productDimension.DimensionTypeValue === 4) {\r\n return (\r\n
\r\n \r\n {Product.IsGiftCard ? DimensionStrings.amountString : DimensionStrings.styleString}:\r\n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n });\r\n },\r\n renderDiscountLines: (props: ICartLineProps) => {\r\n if (!props.data.cartLine.DiscountLines || props.data.cartLine.DiscountLines.length === 0) {\r\n return null;\r\n }\r\n return props.data.cartLine.DiscountLines.map((discountLine, index) => {\r\n return (\r\n
\r\n \r\n {discountLine.OfferName ? discountLine.OfferName : ''}:{` ${props.resources.discountStringText || 'Discount'} `}\r\n \r\n \r\n \r\n \r\n {` (${discountLine.Percentage !== undefined ? discountLine.Percentage : ''}%)`}\r\n
\r\n );\r\n });\r\n },\r\n renderInventoryLabel: (props: ICartLineProps) => {\r\n if (!props.inventoryInformationLabel) {\r\n return null;\r\n }\r\n const inventoryCssName = props.inventoryLabelClassName\r\n ? `msc-cart-line__product-inventory-label ${props.inventoryLabelClassName}`\r\n : 'msc-cart-line__product-inventory-label';\r\n return {props.inventoryInformationLabel};\r\n },\r\n renderShippingLabel: (props: ICartLineProps) => {\r\n const pickupDeliveryModeCode = props.context.request.channel?.PickupDeliveryModeCode;\r\n const channelDeliveryOptionConfig = props.channelDeliveryOptionConfig;\r\n const cartline = props.data.cartLine;\r\n let hasShippingMethod = false;\r\n if (channelDeliveryOptionConfig !== undefined) {\r\n hasShippingMethod =\r\n !!cartline.DeliveryMode &&\r\n channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.some(deliveryMode => deliveryMode !== cartline.DeliveryMode)\r\n ? true\r\n : false;\r\n } else {\r\n hasShippingMethod = !!cartline.DeliveryMode && cartline.DeliveryMode !== pickupDeliveryModeCode ? true : false;\r\n }\r\n if (!hasShippingMethod) {\r\n return undefined;\r\n }\r\n\r\n const shippingChargeLines = (cartline.ChargeLines || []).filter(chargeLine => chargeLine.IsShipping);\r\n\r\n if (shippingChargeLines.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const freightFee = shippingChargeLines.reduce((chargeTotal, chargeLine) => {\r\n return chargeTotal + (chargeLine.CalculatedAmount || 0);\r\n }, 0);\r\n\r\n const priceComponent = (\r\n \r\n );\r\n return (\r\n <>\r\n \r\n {priceComponent}\r\n \r\n );\r\n },\r\n renderOtherCharges: (props: ICartLineProps) => {\r\n const cartline = props.data.cartLine;\r\n const otherCharges = cartline.ChargeLines?.filter(chargeline => !chargeline.IsShipping);\r\n\r\n return (\r\n (otherCharges &&\r\n otherCharges.map((otherCharge, key) => {\r\n return otherCharge && otherCharge.CalculatedAmount ? (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n ''\r\n );\r\n })) ||\r\n undefined\r\n );\r\n }\r\n};\r\n\r\n// tslint:disable-next-line:max-func-body-length\r\nconst CartLine: React.FC = (props: ICartLineProps) => {\r\n const { isSalesLine, productUrl, resources } = props;\r\n const { product, cartLine } = props.data;\r\n\r\n const destructDimensionStrings = {\r\n sizeString: resources.sizeString,\r\n colorString: resources.colorString,\r\n styleString: resources.styleString,\r\n configString: resources.configString,\r\n amountString: resources.amountString\r\n };\r\n\r\n const fallbackImageUrl = product && getFallbackImageUrl(product.ItemId, props.context.actionContext.requestContext.apiSettings);\r\n const productDimensions = product && CartLineItemFunctions.renderProductDimensions(product, destructDimensionStrings);\r\n const imageSettings = props.imageSettings;\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n const renderDisountLines = CartLineItemFunctions.renderDiscountLines(props);\r\n const renderInventoryLabel = CartLineItemFunctions.renderInventoryLabel(props);\r\n const renderShippingLabel = CartLineItemFunctions.renderShippingLabel(props);\r\n const renderOtherCharges = CartLineItemFunctions.renderOtherCharges(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, '', product?.RecordId.toString());\r\n const prodAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const productName = product?.Name || cartLine.Description;\r\n\r\n /** VSI Customization, COC don't add quantity feature */\r\n // const onChange = (newValue: number): boolean => {\r\n // if (props.quantityOnChange) {\r\n // return props.quantityOnChange(props.data.cartLine, newValue);\r\n // }\r\n // return true;\r\n // };\r\n\r\n const _generateErrorMessage = (): JSX.Element | null => {\r\n if (props.errorMessage) {\r\n return (\r\n
\r\n \r\n {props.errorMessage}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const _generateQuantityandPrice = (): JSX.Element[] | null => {\r\n const nodes = [];\r\n if (props.isOutOfStock) {\r\n const errorMessage = _generateErrorMessage();\r\n\r\n if (errorMessage) {\r\n return [errorMessage];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // No quantity selector for invoice line\r\n if (!props.data.cartLine.IsInvoiceLine) {\r\n if (props.isQuantityEditable) {\r\n /** VSI Customization, COC don't add quantity feature */\r\n /** Currently, we have all digital products but in the future, there is a chance we need this functionality for non-digital products.\r\n * For now, COC doesn't need this functionality. So, the functionality is commented. */\r\n // nodes.push(\r\n //
\r\n //
{resources.quantityDisplayString}
\r\n // {_generateErrorMessage()}\r\n // \r\n //
\r\n // );\r\n } else {\r\n /* VSI-Customization -- START Need to remove quantity from mini-cart */\r\n // nodes.push(\r\n //
\r\n // \r\n // {_generateErrorMessage()}\r\n // {props.data.cartLine.Quantity}\r\n //
\r\n // );\r\n /* VSI-Customization -- END */\r\n }\r\n }\r\n\r\n nodes.push(\r\n
\r\n \r\n {(props.data.cartLine.DiscountAmount && props.data.cartLine.DiscountAmount > 0 && (\r\n <>\r\n {` ${props.resources.discountStringText ||\r\n 'Discount'} `}\r\n \r\n \r\n )) ||\r\n null}\r\n
\r\n );\r\n\r\n return nodes;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {productName}\r\n \r\n {ArrayExtensions.hasElements(productDimensions) ? (\r\n
{productDimensions}
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n \r\n
\r\n {renderDisountLines}\r\n {renderInventoryLabel}\r\n {props.showShippingChargesForLineItems &&
{renderShippingLabel}
}\r\n {renderOtherCharges}\r\n
\r\n {_generateQuantityandPrice()}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CartLine;\r\n","import * as React from 'react';\r\n\r\nimport {\r\n Button,\r\n format,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport interface IPromoCodeProps extends IComponentProps<{}> {\r\n cart: ICartState | undefined;\r\n promoCodeHeadingText: string;\r\n appliedPromoCodeHeadingText: string;\r\n removePromoAriaLabelFormat: string;\r\n promoPlaceholderText: string;\r\n promoCodeApplyButtonText: string;\r\n collapseTimeOut: number;\r\n removePromoText: string;\r\n invalidPromoCodeErrorText: string;\r\n failedToAddPromoCodeErrorText: string;\r\n duplicatePromoCodeErrorText: string;\r\n failedToRemovePromoCodeErrorText: string;\r\n /** The telemetry content */\r\n telemetryContent?: ITelemetryContent;\r\n promoCodeApplyCallback?(): void;\r\n}\r\n\r\ninterface IPromoCodeState {\r\n isCollapseOpen: boolean;\r\n promoCodeInputValue: string;\r\n error: string;\r\n canApply: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass PromoCode extends React.Component {\r\n private payLoad: IPayLoad;\r\n\r\n constructor(props: IPromoCodeProps, state: IPromoCodeState) {\r\n super(props);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\r\n this.state = {\r\n isCollapseOpen: false,\r\n promoCodeInputValue: '',\r\n error: '',\r\n canApply: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n
{this.props.promoCodeHeadingText}
\r\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\r\n

\r\n {this.state.error}\r\n

\r\n {this._renderAppliedPromoCode(this.props)}\r\n
\r\n );\r\n }\r\n\r\n private _onInputChange = (e: React.ChangeEvent) => {\r\n const error = e.target.value === '' ? '' : this.state.error;\r\n this.setState({\r\n promoCodeInputValue: e.target.value,\r\n error: error,\r\n canApply: e.target.value ? true : false\r\n });\r\n };\r\n\r\n private _applyPromotion = (cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart) {\r\n return;\r\n }\r\n const appliedPromo = this.state.promoCodeInputValue;\r\n\r\n cartState\r\n .addPromoCode({ promoCode: appliedPromo })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n // show success text\r\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\r\n } else if (result.substatus === 'ALREADYADDED') {\r\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\r\n } else {\r\n this.setState({ error: this.props.invalidPromoCodeErrorText });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\r\n });\r\n };\r\n\r\n private _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\r\n const _onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n this._applyPromotion(cartState);\r\n };\r\n const _applyPromotion = (event: React.MouseEvent) => {\r\n this._applyPromotion(cartState);\r\n };\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {promoCodeApplyButtonText}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\r\n if (!cartState) {\r\n return;\r\n }\r\n const code = event.currentTarget.getAttribute('data-value') || '';\r\n cartState\r\n .removePromoCodes({\r\n promoCodes: [code]\r\n })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\r\n });\r\n };\r\n private _calculateDiscount = (code: string, cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart || !cartState.cart.CartLines || cartState.cart.CartLines.length === 0 || !code) {\r\n return;\r\n }\r\n let discountAmount = 0;\r\n for (const line of cartState.cart.CartLines) {\r\n if (line.DiscountLines) {\r\n for (const discountLine of line.DiscountLines) {\r\n if (discountLine.DiscountCode === code) {\r\n discountAmount += discountLine.DiscountCost!;\r\n }\r\n }\r\n }\r\n }\r\n return discountAmount * -1;\r\n };\r\n\r\n private _renderAppliedPromoCode = (props: IPromoCodeProps) => {\r\n if (!props.cart || !props.cart.cart || !props.cart.cart.Coupons || !(props.cart.cart.Coupons.length > 0)) {\r\n return;\r\n }\r\n\r\n const _removePromotion = (event: React.MouseEvent) => {\r\n this._removePromotion(props.cart, event);\r\n };\r\n\r\n const promoCodTotalDiscount = props.cart.cart.Coupons.reduce((count: number, coupon: Coupon) => {\r\n return count + (this._calculateDiscount(coupon.Code || '', props.cart) || 0);\r\n }, 0);\r\n\r\n return (\r\n <>\r\n
\r\n
{this.props.appliedPromoCodeHeadingText}
\r\n \r\n
\r\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\r\n const ariaLabel = props.removePromoAriaLabelFormat\r\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\r\n : '';\r\n\r\n return (\r\n
\r\n
\r\n {coupon.Code} (\r\n \r\n )\r\n
\r\n \r\n {props.removePromoText}\r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n };\r\n}\r\n\r\nexport default PromoCode;\r\n","/*!\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';\nimport { ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\nimport {\n AsyncResult,\n CartLine,\n CartLineValidationResults,\n CartLineValidationResultsByLineId,\n CartsDataActions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ITelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Validate the cart.\n * @param isQuantityLimitsFeatureEnabled -- Is the quantity limits feature enabled.\n * @param cart -- The cart state to validate.\n * @param telemetry -- The telemetry.\n * @param propsContext -- The props context.\n * @param shouldRetry -- Should retry.\n * @returns A list of line data validation failures.\n */\nexport async function validateCartAsync(\n cart: AsyncResult,\n telemetry: ITelemetry,\n propsContext: ICoreContext,\n shouldRetry: boolean = true\n): Promise {\n let cartResult: ICartState;\n let cartVersion: number | undefined;\n try {\n cartResult = await cart;\n cartVersion = cartResult.cart.Version;\n } catch (error) {\n telemetry.warning(error);\n telemetry.debug('Unable to get cart or cart version.');\n return AsyncResult.resolve();\n }\n\n if (cartVersion) {\n try {\n const validationResult: CartLineValidationResults = await CartsDataActions.validateForCheckoutAsync(\n { callerContext: propsContext.actionContext, bypassCache: 'none' },\n cartResult.cart.Id,\n cartVersion\n );\n\n return await AsyncResult.resolve(validationResult.ValidationResultsByLineId ?? undefined);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- error type is not defined.\n if (shouldRetry && error.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\n try {\n await cartResult.refreshCart({});\n } catch (refreshError) {\n telemetry.warning(refreshError);\n telemetry.debug('Unable to refresh Cart');\n return AsyncResult.resolve();\n }\n try {\n await validateCartAsync(cart, telemetry, propsContext, false);\n return AsyncResult.resolve();\n } catch (validateError) {\n telemetry.warning(validateError);\n telemetry.debug('Unable to validate Cart');\n return AsyncResult.resolve();\n }\n }\n\n telemetry.warning(error);\n telemetry.debug('Unable to validate Cart');\n return AsyncResult.resolve();\n }\n } else {\n telemetry.warning('Cart version not found for Cart validation request.');\n return AsyncResult.resolve();\n }\n}\n\n/**\n * Check if cart line quantity update is success.\n * @param isQuantityLimitsFeatureEnabled -- Is quantity limits feature enabled.\n * @param cartResult -- The cart result.\n * @param telemetry -- The telemetry.\n * @param products -- The products.\n * @param cartLineToUpdate -- The cart line to update.\n * @param quantity -- The quantity.\n * @returns Boolean to indicate if the cart line quantity is updated.\n */\nexport async function isCartLineQuantityUpdatedAsync(\n isQuantityLimitsFeatureEnabled: boolean | undefined,\n cartResult: ICartState | undefined,\n telemetry: ITelemetry,\n products: SimpleProduct[] | undefined,\n cartLineToUpdate: CartLine,\n quantity: number\n): Promise {\n if (cartResult) {\n let isUsingDefaultOrderSettingsMax: boolean = false;\n if (ArrayExtensions.hasElements(products) && isQuantityLimitsFeatureEnabled) {\n const modifiedProduct: SimpleProduct | undefined = products.find(\n (product: SimpleProduct) => product.RecordId === cartLineToUpdate.ProductId\n );\n isUsingDefaultOrderSettingsMax = !!modifiedProduct && !!modifiedProduct.Behavior?.MaximumQuantity;\n } else {\n isUsingDefaultOrderSettingsMax = false;\n }\n\n const input = {\n cartLineId: cartLineToUpdate.LineId!.toString(),\n newQuantity: quantity,\n additionalProperties: { isUsingDefaultOrderSettingsMax }\n };\n\n try {\n const updateLineResult: ICartActionResult = await cartResult.updateCartLineQuantity(input);\n return await AsyncResult.resolve(updateLineResult.status === 'SUCCESS');\n } catch (error) {\n telemetry.warning((error as Error).message);\n telemetry.debug('Unable to update Cart Line quantity');\n }\n }\n\n return AsyncResult.resolve(false);\n}\n\n/**\n * Update cart line with cart action result.\n * @param isQuantityLimitsFeatureEnabled -- Is quantity limits feature enabled.\n * @param cartResult -- The cart result.\n * @param telemetry -- The telemetry.\n * @param products -- The products.\n * @param cartLineToUpdate -- The cart line to update.\n * @param quantity -- The quantity.\n * @returns Boolean to indicate if the cart line quantity is updated.\n */\nexport async function cartLineQuantityUpdatedAsync(\n isQuantityLimitsFeatureEnabled: boolean | undefined,\n cartResult: ICartState | undefined,\n telemetry: ITelemetry,\n products: SimpleProduct[] | undefined,\n cartLineToUpdate: CartLine,\n quantity: number\n): Promise {\n if (cartResult) {\n let isUsingDefaultOrderSettingsMax: boolean = false;\n if (ArrayExtensions.hasElements(products) && isQuantityLimitsFeatureEnabled) {\n const modifiedProduct: SimpleProduct | undefined = products.find(\n (product: SimpleProduct) => product.RecordId === cartLineToUpdate.ProductId\n );\n isUsingDefaultOrderSettingsMax = !!modifiedProduct && !!modifiedProduct.Behavior?.MaximumQuantity;\n } else {\n isUsingDefaultOrderSettingsMax = false;\n }\n\n const input = {\n cartLineId: cartLineToUpdate.LineId!.toString(),\n newQuantity: quantity,\n additionalProperties: { isUsingDefaultOrderSettingsMax }\n };\n\n try {\n const updateLineResult: ICartActionResult = await cartResult.updateCartLineQuantity(input);\n return await AsyncResult.resolve(updateLineResult);\n } catch (error) {\n telemetry.warning((error as Error).message);\n telemetry.debug('Unable to update Cart Line quantity');\n }\n }\n\n return AsyncResult.resolve();\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Find the product in array of products considering product id.\n * @param productId - The searched product id.\n * @param products - The array of products in which search is executed.\n * @returns - The found product.\n */\nexport function getProductByProductId(productId: number | undefined, products?: SimpleProduct[]): SimpleProduct | undefined {\n if (productId !== undefined && ArrayExtensions.hasElements(products)) {\n return products.find(product => {\n return productId === product.RecordId;\n });\n }\n\n return undefined;\n}\n\n/**\n * Find the product in array of products considering product id and product behavior's warehouse.\n * @param productId - The searched product id.\n * @param products - The array of products in which search is executed.\n * @param warehouseId - Warehouse id of cartLine.\n * @param cartState - The cart start in case cart line has no warehouse.\n * @returns - The found product.\n */\nexport function getProductByProductIdAndWarehouse(\n productId: number | undefined,\n products?: SimpleProduct[],\n warehouseId?: string,\n cartState?: ICartState\n): SimpleProduct | undefined {\n const targetWarehouseValue = warehouseId ?? cartState?.cart.WarehouseId;\n\n if (productId !== undefined && ArrayExtensions.hasElements(products)) {\n return products.find(product => {\n return productId === product.RecordId && product.Behavior?.InventoryLocationId === targetWarehouseValue;\n });\n }\n\n return undefined;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartLineItemComponent, ICartlineResourceString } from '@msdyn365-commerce/components';\nimport MsDyn365, { ICoreContext, IGridSettings, IImageSettings, ITelemetry, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport {\n CartLine,\n ChannelDeliveryOptionConfiguration,\n OrgUnitLocation,\n ProductAvailableQuantity,\n ProductDeliveryOptions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ProductCatalog, ReleasedProductType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductUrlSync, IProductInventoryInformation } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { getProductByProductId, getProductByProductIdAndWarehouse } from '../../../Common/get-product';\n\nexport interface IFlyoutCartLineItemsProps {\n cartlines: CartLine[];\n cartState: ICartState | undefined;\n orgUnitLocations: OrgUnitLocation[] | undefined;\n resources: ICartlineResourceString;\n productAvailabilites: IProductInventoryInformation[] | undefined;\n products: SimpleProduct[] | undefined;\n productDeliveryOptions: ProductDeliveryOptions[] | undefined;\n pickupDeliveryModeCode?: string;\n catalogs?: ProductCatalog[];\n\n /**\n * GridSettings for the product image in cartline\n */\n gridSettings: IGridSettings;\n\n /**\n * ImageSettings for the product image in cartline\n */\n imageSettings: IImageSettings;\n id: string;\n typeName: string;\n context: ICoreContext;\n telemetry: ITelemetry;\n removeButtonText: string;\n outOfStockText: string;\n outOfRangeOneText: string;\n outOfRangeFormatText: string;\n maxCartlineQuantity: number;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n isQuantityLimitsFeatureEnabled: boolean;\n\n outOfStockThreshold: number;\n isStockCheckEnabled: boolean;\n telemetryContent?: ITelemetryContent;\n removeItemClickHandler(cartlineToRemove: CartLine): void;\n}\n\nexport interface IFlyoutCartLineItemViewProps {\n cartline: React.ReactNode;\n remove: React.ReactNode;\n storeLocation: React.ReactNode;\n hasError: boolean;\n\n data: {\n product: SimpleProduct;\n cartline: CartLine;\n };\n}\n\nconst _getCartItemAvailableQuantity = (\n isStockCheckEnabled: boolean,\n outOfStockThreshold: number,\n productAvailability?: ProductAvailableQuantity\n): number => {\n if (isStockCheckEnabled) {\n if (\n !productAvailability ||\n !productAvailability.AvailableQuantity ||\n productAvailability.AvailableQuantity <= 0 ||\n productAvailability.AvailableQuantity <= outOfStockThreshold\n ) {\n return 0;\n }\n return productAvailability.AvailableQuantity - outOfStockThreshold;\n }\n\n return 0;\n};\n\nconst _getCartItemMaxQuantity = (\n maxQuantityByConfig: number,\n isStockCheckEnabled: boolean,\n availableQuantityInStock: number,\n isQuantityLimitsFeatureEnabled: boolean,\n maxByQuantityLimitsFeature: number\n) => {\n if (isQuantityLimitsFeatureEnabled) {\n let maxByQuantityLimitsFeatureResult = maxByQuantityLimitsFeature;\n\n // If max by feature in not defined when feature is on then we suggest that there is no max by feature\n // and consider available qty if stock check enabled and max from config in site settings.\n if (!maxByQuantityLimitsFeature) {\n maxByQuantityLimitsFeatureResult = maxQuantityByConfig || 10;\n }\n\n return isStockCheckEnabled\n ? maxByQuantityLimitsFeatureResult < availableQuantityInStock\n ? maxByQuantityLimitsFeatureResult\n : availableQuantityInStock\n : maxByQuantityLimitsFeatureResult;\n }\n if (isStockCheckEnabled) {\n return availableQuantityInStock < maxQuantityByConfig ? availableQuantityInStock : maxQuantityByConfig;\n }\n return maxQuantityByConfig;\n};\n\n/**\n * On Remove Click functionality.\n * @param removeItemClickHandler -Remove item click function.\n * @param cartline -CartLine.\n * @returns Remove change value.\n */\nconst onRemoveClickFunction = (removeItemClickHandler: (cartlineToRemove: CartLine) => void, cartline: CartLine) => () => {\n removeItemClickHandler(cartline);\n};\nconst _assembleNode = (\n cartline: CartLine,\n product: SimpleProduct,\n props: IFlyoutCartLineItemsProps,\n index: number,\n foundProductAvailability?: ProductAvailableQuantity,\n foundProductDeliveryOptions?: ProductDeliveryOptions\n): IFlyoutCartLineItemViewProps => {\n const { imageSettings, gridSettings, id, typeName, context, resources, removeButtonText, removeItemClickHandler } = props;\n\n const availableQuantityInStock = _getCartItemAvailableQuantity(\n props.isStockCheckEnabled,\n props.outOfStockThreshold,\n foundProductAvailability\n );\n const maxQuantity =\n product &&\n _getCartItemMaxQuantity(\n props.maxCartlineQuantity,\n props.isStockCheckEnabled,\n availableQuantityInStock,\n props.isQuantityLimitsFeatureEnabled,\n product?.Behavior?.MaximumQuantity || 0\n );\n\n // Check if the product is service or not by product type\n const isServiceItem = product.ItemTypeValue === ReleasedProductType.Service;\n\n const onRemoveClickHandler = onRemoveClickFunction(removeItemClickHandler, cartline);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.RemoveCartItem);\n const removeCartItemAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\n\n let productUrl = getProductUrlSync(product, props.context.actionContext, undefined);\n if (MsDyn365.isBrowser && isChannelTypeB2B(props.context.actionContext.requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${cartline.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n\n return {\n data: {\n product,\n cartline\n },\n hasError: !isServiceItem && props.isStockCheckEnabled ? cartline.Quantity! > maxQuantity : false,\n cartline: (\n \n ),\n remove: (\n \n {removeButtonText}\n \n ),\n storeLocation: _renderStoreLocation(cartline, props)\n };\n};\n\nconst _renderDeliveryLocation = (cartLine: CartLine | null | undefined, props: IFlyoutCartLineItemsProps): string | undefined => {\n let deliverylocation;\n if (cartLine && cartLine.FulfillmentStoreId) {\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, props.orgUnitLocations);\n\n let foundProductDeliveryOption;\n if (props.productDeliveryOptions && props.productDeliveryOptions.length > 0) {\n foundProductDeliveryOption = props.productDeliveryOptions.find(deliveryOption => {\n return deliveryOption && deliveryOption.ProductId === cartLine.ProductId;\n });\n }\n const delivery = foundProductDeliveryOption?.DeliveryOptions?.find(option => option.Code === cartLine.DeliveryMode);\n const location = delivery?.Description;\n\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n if (location) {\n deliverylocation = `${location}, ${orgUnitName}`;\n } else {\n deliverylocation = `${orgUnitName}`;\n }\n } else {\n deliverylocation = props.resources.shippingText;\n }\n return deliverylocation;\n};\n\nconst _renderStoreLocation = (cartLine: CartLine | null | undefined, props: IFlyoutCartLineItemsProps): JSX.Element | null => {\n if (cartLine && cartLine.FulfillmentStoreId) {\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, props.orgUnitLocations);\n\n if (orgUnitName) {\n return (\n
\n {orgUnitName}\n
\n );\n }\n }\n\n return null;\n};\n\nconst _getOrgUnitName = (fulfillmentStoreId: string | undefined, orgUnitLocations: OrgUnitLocation[] | undefined) => {\n if (!orgUnitLocations || !fulfillmentStoreId || orgUnitLocations.length === 0) {\n return '';\n }\n\n const foundLocation = orgUnitLocations.find(orgUnitLocation => {\n return orgUnitLocation.OrgUnitNumber === fulfillmentStoreId;\n });\n\n if (foundLocation) {\n return foundLocation.OrgUnitName;\n }\n return fulfillmentStoreId;\n};\n\nconst _assembleCartlines = (\n cartlines: CartLine[],\n products: SimpleProduct[] | undefined,\n props: IFlyoutCartLineItemsProps\n): IFlyoutCartLineItemViewProps[] | null => {\n const reactNodes: IFlyoutCartLineItemViewProps[] = [];\n\n if (!products || products.length === 0) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n\n cartlines.map((cartline, index) => {\n let product;\n if (props.isQuantityLimitsFeatureEnabled) {\n // When feature is enabled the same products could have different quantity limits in Behavior so we need\n // to check productId and WarehouseId for identification.\n product = getProductByProductIdAndWarehouse(cartline.ProductId, products, cartline.WarehouseId, props.cartState);\n } else {\n product = getProductByProductId(cartline.ProductId, products);\n }\n let foundProductAvailability;\n if (props.productAvailabilites && props.productAvailabilites.length > 0) {\n foundProductAvailability = props.productAvailabilites.find(productAvailability => {\n return productAvailability.ProductAvailableQuantity?.ProductId! === cartline.ProductId;\n });\n }\n let foundProductDeliveryOption;\n if (props.productDeliveryOptions && props.productDeliveryOptions.length > 0) {\n foundProductDeliveryOption = props.productDeliveryOptions.find(deliveryOption => {\n return deliveryOption && deliveryOption.ProductId === cartline.ProductId;\n });\n }\n if (product) {\n reactNodes.push(\n _assembleNode(\n cartline,\n product,\n props,\n index,\n foundProductAvailability?.ProductAvailableQuantity,\n foundProductDeliveryOption\n )\n );\n }\n });\n\n return reactNodes;\n};\n\n/**\n * CartLineItems component.\n */\n\nexport const FlyoutCartLineItems = (props: IFlyoutCartLineItemsProps) => {\n const { products, cartlines } = props;\n return _assembleCartlines(cartlines, products, props);\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 { ICartState } from '@msdyn365-commerce/global-state';\nimport { ProductDeliveryOptions, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n ActiveCartProductsInput,\n getActiveCartProductsAction,\n getAvailabilitiesForCartLineItems,\n getDeliveryOptionsForCartLineItems,\n IProductInventoryInformation,\n ProductAvailabilitiesForCartLineItems,\n ProductDeliveryOptionsForCartLineItems\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * IMiniCartData entity interface.\n */\nexport interface IMiniCartData {\n products?: SimpleProduct[];\n productAvailabilites?: IProductInventoryInformation[];\n deliveryOptions?: ProductDeliveryOptions[];\n}\n\nexport const createInput = () => {\n return new ActiveCartProductsInput();\n};\n\n/**\n * Calls the Retail API and returns a mini cart data.\n * @param ctx\n * @param cartState\n */\nexport async function getMiniCartData(ctx: IActionContext, cartState: ICartState): Promise {\n const miniCartData: IMiniCartData = {};\n\n const cart = cartState.cart;\n\n // If there are cart lines, make call to get products\n // If there are invocie linese, then there is no products, so don't make call to get products\n if (cart && cart.CartLines && cart.CartLines.length > 0 && !cartState.hasInvoiceLine) {\n await getActiveCartProductsAction(new ActiveCartProductsInput(), ctx)\n .then(products => {\n if (products) {\n miniCartData.products = products;\n }\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCartWithProdcuts]Unable to hydrate cart with product information');\n });\n\n await getAvailabilitiesForCartLineItems(new ProductAvailabilitiesForCartLineItems(ctx.requestContext.apiSettings), ctx)\n .then(availableQuantity => {\n if (availableQuantity) {\n miniCartData.productAvailabilites = availableQuantity;\n }\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCartWithProdcuts]Unable to hydrate cart with product information');\n });\n\n await getDeliveryOptionsForCartLineItems(new ProductDeliveryOptionsForCartLineItems(ctx.requestContext.apiSettings), ctx)\n .then(deliveryOptions => {\n if (deliveryOptions) {\n miniCartData.deliveryOptions = deliveryOptions;\n }\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCartWithProdcuts]Unable to hydrate cart with product information');\n });\n }\n\n return miniCartData;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToCartBehavior, CartIconComponent } from '@msdyn365-commerce/components';\nimport { getUrlSync, IDictionary, IImageSettings, msdyn365Commerce, TelemetryEvent } from '@msdyn365-commerce/core';\nimport {\n CartLine,\n ChannelDeliveryOptionConfiguration,\n CartLineValidationResultsByLineId,\n OrgUnitLocation\n} from '@msdyn365-commerce/retail-proxy';\nimport { validateCartAsync } from '@msdyn365-commerce-modules/cart-utilities';\nimport { ArrayExtensions, validateCartLinesInventory } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n INodeProps,\n ITelemetryContent,\n TelemetryConstant,\n UncontrolledTooltip,\n updateMaxQuantityForCartLineItem,\n urlCheck\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport React from 'react';\n\nimport { ICartIconData } from './cart-icon.data';\nimport { cartLinesSortOrder, ICartIconProps } from './cart-icon.props.autogenerated';\nimport { FlyoutCartLineItems, IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\nimport { getMiniCartData, IMiniCartData } from './utils/get-products-in-mini-cart';\n\nexport interface IMiniCartState {\n miniCartData: IMiniCartData;\n orgUnitLocations?: OrgUnitLocation[];\n isQuantityLimitsFeatureEnabled: boolean;\n isCartValid: boolean;\n}\n\nexport interface ICartIconViewProps extends ICartIconProps {\n className: string;\n cartIcon: React.ReactNode;\n FlyoutContainer?: INodeProps;\n CartlinesWrapper: INodeProps;\n miniCartWrapper: INodeProps;\n miniCartItemWrapper: INodeProps;\n cartlines?: IFlyoutCartLineItemViewProps[];\n flyoutTitle: React.ReactNode;\n totalPrice: React.ReactNode;\n checkoutAsGuestButton?: React.ReactNode;\n checkoutAsSignInUserButton?: React.ReactNode;\n goToCartButton?: React.ReactNode;\n waitingComponent?: React.ReactNode;\n isCartLoading: boolean;\n checkoutBlockedDueToUnavailableFunds?: React.ReactNode;\n\n removeItemClickHandler(cartlineToRemove: CartLine): void;\n}\n\n/**\n *\n * Cart component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass CartIcon extends React.Component, IMiniCartState> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly checkoutBySignInAttributes: IDictionary | undefined;\n\n private readonly checkoutByGuestAttributes: IDictionary | undefined;\n\n private readonly viewShoppingBagAttributes: IDictionary | undefined;\n\n private retailMultiplePickUpOptionEnabled?: boolean = false;\n\n private channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n\n private lastValidatedCartVersion: number | undefined;\n\n constructor(props: ICartIconProps) {\n super(props);\n this.state = {\n miniCartData: {},\n isCartValid: true,\n isQuantityLimitsFeatureEnabled: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payload = getPayloadObject(TelemetryEvent.CheckOut, this.telemetryContent, TelemetryConstant.Checkout);\n this.checkoutBySignInAttributes = getTelemetryAttributes(this.telemetryContent, payload);\n\n payload.contentAction.etext = TelemetryConstant.GuestCheckout;\n this.checkoutByGuestAttributes = getTelemetryAttributes(this.telemetryContent, payload);\n\n payload.contentAction.etext = TelemetryConstant.ViewShoppingBag;\n this.viewShoppingBagAttributes = getTelemetryAttributes(this.telemetryContent, payload);\n }\n\n public async componentDidMount(): Promise {\n const context = this.props.context.actionContext;\n\n reaction(\n () => this.props.data.cart.result?.cart.CartLines,\n async () => {\n this.setState({\n miniCartData: await getMiniCartData(context, this.props.data.cart.result!)\n });\n }\n );\n await this._setQuantityLimitsFeatureFlag();\n\n this.setState({\n orgUnitLocations: this.props.data.orgUnitLocations?.result\n });\n\n this._validateCart();\n }\n\n public componentDidUpdate(prevProps: ICartIconProps): void {\n this._validateCart();\n }\n\n public shouldComponentUpdate(nextProps: ICartIconProps, nextState: IMiniCartState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line complexity -- disabling the complexity for this method for now as its causing lot of other warnings\n public render(): JSX.Element | null {\n const {\n id,\n typeName,\n config: { enableHoverCart, isAnonymousCheckout },\n context: {\n request: {\n user: { isAuthenticated, signInUrl }\n }\n },\n context,\n resources\n } = this.props;\n\n const cart = (this.props.data.cart && this.props.data.cart.result) || undefined;\n const guestCheckoutUrl = getUrlSync('checkout', this.props.context.actionContext) || '';\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n const checkoutURL = this._getCheckoutURL(isAuthenticated, guestCheckoutUrl, signInUrl || '');\n const isCartEmpty = cart && cart.cart.CartLines && cart.cart.CartLines.length === 0;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- check config.\n const shouldShowMiniCart =\n cart?.isProductAddedToCart && this.props.context.app.config.addToCartBehavior === AddToCartBehavior.showMiniCart;\n const hasInvoiceLine = cart?.hasInvoiceLine;\n const emailDeliveryModeCode = this.props.context.request.channel?.EmailDeliveryModeCode;\n const cartLines = this._getCartLines();\n const validInventoryAcrossCartLines = validateCartLinesInventory(\n cart?.cart.CartLines ?? [],\n this.state.miniCartData.productAvailabilites ?? [],\n this.props.context.actionContext,\n this.state.miniCartData.products ?? [],\n emailDeliveryModeCode\n );\n const hasError =\n !validInventoryAcrossCartLines?.isValid ||\n (!validInventoryAcrossCartLines && !this.state.isCartValid) ||\n (cartLines ? cartLines.some(cartline => cartline.hasError) : false);\n const includeFlyout = this.props.data.cart && this.props.data.cart.status === 'SUCCESS' && enableHoverCart;\n const totalItemsInCart = cart?.totalItemsInCart ? cart.totalItemsInCart : 0;\n const goToCartButtonText = resources.goToCartButtonTitle.replace('{count}', totalItemsInCart.toString());\n const flyoutTitle = resources.flyoutTitle;\n const flyoutTooltip = {\n tag: UncontrolledTooltip,\n shouldShowMiniCart,\n placement: 'bottom-end',\n hideArrow: true,\n className: 'ms-cart-icon__flyout-container',\n trigger: 'hover',\n displayMode: 'FLYOUT',\n target: id,\n shouldShowCloseButton: true,\n cartPageUrl: cartUrl,\n hideAriaHidden: true\n };\n\n // If there are invoice lines, don't update mini cart price\n const price = (cart && !cart.hasInvoiceLine && cart.cart.TotalAmount) || undefined;\n const priceString = price\n ? resources.totalPriceFormatString.replace('{price}', context.cultureFormatter.formatCurrency(price))\n : '';\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n this.channelDeliveryOptionConfig = this.props.data.channelDeliveryOptionConfig?.result;\n this.retailMultiplePickUpOptionEnabled = this.props.data.featureState?.result?.find(\n feature => feature.Name === multiplePickupStoreSwitchName\n )?.IsEnabled;\n\n const viewProps = {\n ...this.props,\n cartIcon: (\n \n ),\n cartlines: cartLines,\n FlyoutContainer: includeFlyout ? flyoutTooltip : undefined,\n CartlinesWrapper: {\n className: 'ms-cart-icon__cart-lines'\n },\n miniCartWrapper: {\n className: classnames('ms-cart-icon'),\n id: this.props.id\n },\n miniCartItemWrapper: {\n className: classnames('msc-cart-lines-item')\n },\n\n // If there are invoice lines, don't update mini cart checkout button\n // Checkout button will display by default to maintain backward compatibility. When Anonymous user checkout is enabled &&\n // user is authenticated then we will show the checkout button otherwise we will show the guest checkout button.\n checkoutAsSignInUserButton:\n !isCartEmpty && !hasInvoiceLine && (!isAnonymousCheckout || isAuthenticated) ? (\n \n {resources.checkoutButtonTitle}\n \n ) : null,\n checkoutAsGuestButton:\n isAnonymousCheckout && !isCartEmpty && !isAuthenticated ? (\n \n {resources.guestCheckoutButtonTitle}\n \n ) : null,\n goToCartButton: (\n \n {goToCartButtonText}\n \n ),\n checkoutBlockedDueToUnavailableFunds: null,\n flyoutTitle: {flyoutTitle},\n totalPrice:
{priceString}
\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _validateCart(): void {\n const {\n data: { cart }\n } = this.props;\n const cartVersion = cart.result?.cart?.Version ?? undefined;\n if (this.lastValidatedCartVersion === cartVersion) {\n return;\n }\n\n this.lastValidatedCartVersion = cartVersion; // This field is populated to block concurrent requests\n\n if (this.state.isQuantityLimitsFeatureEnabled) {\n validateCartAsync(cart, this.props.telemetry, this.props.context)\n .then((result: CartLineValidationResultsByLineId | undefined) => {\n this.setState({ isCartValid: !ArrayExtensions.hasElements(result?.ValidationResultsPairs) });\n })\n .catch(() => {\n this.setState({ isCartValid: false });\n });\n } else {\n this.setState({ isCartValid: true });\n }\n }\n\n private _getCheckoutURL(isAuthenticated: boolean, guestCheckoutUrl: string, signInUrl: string): string {\n if (isAuthenticated) {\n return guestCheckoutUrl;\n }\n\n const isAbsoluteUrl = urlCheck(guestCheckoutUrl);\n let returnURL = guestCheckoutUrl;\n if (msdyn365Commerce.isBrowser && !isAbsoluteUrl) {\n returnURL = `${window.location.origin}${guestCheckoutUrl}`;\n }\n\n return `${signInUrl}${!signInUrl.includes('?') ? '?' : '&'}ru=${returnURL}`;\n }\n\n /**\n * Sort cartline items.\n * @param cartlines - Cartlines to be sorted.\n * @param sortOrder - Ascending or descending.\n * @returns - Sorted cartlines.\n */\n private readonly getSortedCartLines = (cartlines: CartLine[], sortOrder?: cartLinesSortOrder): CartLine[] => {\n const lines: CartLine[] = [...cartlines];\n const zero: number = 0;\n\n if (sortOrder === cartLinesSortOrder.descending) {\n return lines.sort((item1, item2) => (item2.LineNumber ?? zero) - (item1.LineNumber ?? zero));\n }\n return lines.sort((item1, item2) => (item1.LineNumber ?? zero) - (item2.LineNumber ?? zero));\n };\n\n private _getCartLines(): IFlyoutCartLineItemViewProps[] | null {\n const {\n context: {\n request: { channel: { PickupDeliveryModeCode } = { PickupDeliveryModeCode: undefined } }\n },\n config,\n telemetry,\n resources\n } = this.props;\n\n const imageSettings = this._getImageSettings(config.imageSettings);\n const cart = this.props.data.cart && this.props.data.cart.result;\n\n // Cart-icon could be placed in each page\n // so we check cart content to reduce number of RS calls\n return this.state.miniCartData.products && cart && cart.cart.CartLines && cart.cart.CartLines.length > 0\n ? FlyoutCartLineItems({\n cartlines: this.getSortedCartLines(cart.cart.CartLines, config.cartLinesSortOrder),\n products: this.state.miniCartData.products,\n productAvailabilites: this.state.miniCartData.productAvailabilites,\n productDeliveryOptions: this.state.miniCartData.deliveryOptions,\n imageSettings,\n outOfStockThreshold: this.props.context.app.config.outOfStockThreshold || 0,\n isStockCheckEnabled: this.props.context.app.config.enableStockCheck || false,\n maxCartlineQuantity: updateMaxQuantityForCartLineItem(this.props.context.app.config.maxQuantityForCartLineItem),\n gridSettings: this.props.context.request.gridSettings!,\n context: this.props.context,\n typeName: this.props.typeName,\n id: this.props.id,\n resources: {\n sizeString: resources.productDimensionTypeSize,\n colorString: resources.productDimensionTypeColor,\n configString: resources.productDimensionTypeConfiguration,\n styleString: resources.productDimensionTypeStyle,\n quantityDisplayString: resources.quantityDisplayText,\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\n inputQuantityAriaLabel: '', // Not used\n discountStringText: '', // Not used\n originalPriceText: '',\n currentPriceText: '',\n shippingChargesText: '',\n shippingText: resources.shippingText\n },\n telemetry,\n removeButtonText: resources.removeCartButtonText,\n outOfStockText: '', // Not used\n outOfRangeOneText: '', // Not used\n outOfRangeFormatText: '', // Not used\n cartState: cart,\n orgUnitLocations: this.state.orgUnitLocations,\n removeItemClickHandler: this._removeItemFromCartHandler,\n pickupDeliveryModeCode: PickupDeliveryModeCode,\n telemetryContent: this.telemetryContent,\n channelDeliveryOptionConfig: this.retailMultiplePickUpOptionEnabled ? this.channelDeliveryOptionConfig : undefined,\n isQuantityLimitsFeatureEnabled: this.state.isQuantityLimitsFeatureEnabled,\n catalogs: this.props.data.catalogs?.result\n })\n : null;\n }\n\n private readonly _getImageSettings = (imageSettings: IImageSettings | undefined): IImageSettings => {\n return (\n imageSettings || {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n sm: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true\n }\n );\n };\n\n private readonly _removeItemFromCartHandler = (cartlineToRemove: CartLine) => {\n if (this.props.data.cart.result) {\n const input = {\n cartLineIds: [cartlineToRemove.LineId!.toString()]\n };\n this.props.data.cart.result.removeCartLines(input).catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to Remove Cart Line');\n });\n }\n };\n\n private async _setQuantityLimitsFeatureFlag(): Promise {\n const featureStatuses = await this.props.data.featureState;\n\n const isChannelQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature'\n )?.IsEnabled || false;\n if (isChannelQuantityLimitsFeatureEnabledInHq) {\n this.setState({ isQuantityLimitsFeatureEnabled: true });\n return;\n }\n\n const useSiteBuilderSettings = featureStatuses?.find(\n featureState => featureState.Name === 'RevertToSiteBuilderOrderQuantityLimitsSettings'\n )?.IsEnabled;\n\n if (useSiteBuilderSettings) {\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\n if (!defaultOrderQuantityLimitsFeatureConfig || defaultOrderQuantityLimitsFeatureConfig === 'none') {\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n\n try {\n const featureStatuses = await this.props.data.featureState;\n const isQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature'\n )?.IsEnabled || false;\n if (!isQuantityLimitsFeatureEnabledInHq) {\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n } catch (error) {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to get feature states');\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\n this.setState({ isQuantityLimitsFeatureEnabled: true });\n } else {\n this.props.data.customerInformation\n .then(customerInfo => {\n const result =\n !!customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b));\n this.setState({ isQuantityLimitsFeatureEnabled: result });\n })\n .catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to get customer info');\n });\n }\n } else {\n const cartConfiguration = await this.props.data.cartConfiguration;\n this.setState({ isQuantityLimitsFeatureEnabled: !(cartConfiguration?.IgnoreOrderSettings ?? false) });\n return;\n }\n }\n}\n\nexport default CartIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartIconViewProps } from './cart-icon';\nimport { IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\n\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n return cartLines.map((cartLine, index) => {\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\nconst CartIconView: React.FC = (props: ICartIconViewProps) => (\n \n {props.cartIcon}\n {props.FlyoutContainer ? (\n \n {props.flyoutTitle}\n {props.checkoutBlockedDueToUnavailableFunds}\n {_renderCartlines(props.cartlines, props)}\n {props.totalPrice}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.goToCartButton}\n \n ) : (\n false\n )}\n \n);\n\nexport default CartIconView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\ninterface IPromoCodeState {\n isCollapseOpen: boolean;\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.Component {\n private readonly payLoad: IPayLoad;\n\n constructor(props: IPromoCodeProps, state: IPromoCodeState) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n isCollapseOpen: false,\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public shouldComponentUpdate(nextProps: IPromoCodeProps, nextState: IPromoCodeState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n return (\n
\n
{this.props.promoCodeHeadingText}
\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

\n {this.state.error}\n

\n {this._renderAppliedPromoCode(this.props)}\n
\n );\n }\n\n private readonly _onInputChangeHandler = (e: React.ChangeEvent) => {\n const error = e.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: e.target.value.trim(),\n error,\n canApply: !!e.target.value\n });\n };\n\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState || !cartState.cart) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(error => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On Submit function.\n * @param cartState -Cartstate.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotionHandler(cartState);\n };\n\n /**\n * On apply promotion function.\n * @param cartState -Cartstate.\n * @returns Apply promotion.\n */\n private readonly _applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
\n
\n \n \n {promoCodeApplyButtonText}\n \n
\n
\n );\n };\n\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') || '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n private readonly _calculateDiscount = (code: string, cartState: ICartState | undefined) => {\n if (!cartState || !cartState.cart || !cartState.cart.CartLines || cartState.cart.CartLines.length === 0 || !code) {\n return;\n }\n let discountAmount = 0;\n for (const line of cartState.cart.CartLines) {\n if (line.DiscountLines) {\n for (const discountLine of line.DiscountLines) {\n if (discountLine.DiscountCode === code) {\n discountAmount += discountLine.DiscountCost!;\n }\n }\n }\n }\n return discountAmount * -1;\n };\n\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart || !props.cart.cart.Coupons || props.cart.cart.Coupons.length === 0) {\n return;\n }\n\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n const promoCodTotalDiscount = props.cart.cart.Coupons.reduce((count: number, coupon: Coupon) => {\n return count + (this._calculateDiscount(coupon.Code || '', props.cart) || 0);\n }, 0);\n\n return (\n <>\n
\n
{this.props.appliedPromoCodeHeadingText}
\n \n
\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
\n
\n {coupon.Code}{' '}\n \n
\n \n {props.removePromoText}\n \n
\n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IHeaderData } from '../header.data';\nimport { IHeaderProps } from '../header.props.autogenerated';\n\n/**\n * The header preferred store component.\n */\n@observer\nexport class HeaderPreferredStore extends React.PureComponent> {\n private readonly modalCloseButtonRef: React.RefObject = React.createRef();\n\n /**\n * Handle click on the store selector.\n * @returns : Promise void.\n */\n public handleClick = () => {\n return this._findPreferredStoreOnClick(this.props);\n };\n\n public render(): JSX.Element | undefined {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n slots,\n resources\n } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- slots can be undefined.\n if (ArrayExtensions.hasElements(slots?.storeSelector)) {\n const storeName =\n storeSelectorStateManager?.preferredStore && storeSelectorStateManager.preferredStore.StoreName\n ? storeSelectorStateManager.preferredStore.StoreName\n : resources.headerPreferredStoreText;\n\n return (\n
\n \n {storeName}\n \n {slots.storeSelector}\n
\n );\n }\n\n return undefined;\n }\n\n private async _findPreferredStoreOnClick(props: IHeaderProps): Promise {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n modules\n } = props;\n if (!storeSelectorStateManager) {\n return;\n }\n let storeSelectorId: string = '';\n if (modules && Object.keys(modules).length > 0 && ArrayExtensions.hasElements(modules.storeSelector)) {\n storeSelectorId = modules.storeSelector[0].id;\n }\n await storeSelectorStateManager\n .openDialog({\n id: storeSelectorId,\n showMapViewLink: true,\n parentElementRef: this.modalCloseButtonRef,\n onLocationSelected: orgUnitLocation => {\n return Promise.resolve();\n }\n })\n .catch((error: Error) => {\n if (props.telemetry) {\n props.telemetry.error(error.message);\n props.telemetry.debug('Unable to set preferred store');\n }\n });\n }\n}\n\nexport default HeaderPreferredStore;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILogoProps {\n image: Msdyn365.IImageData;\n gridSettings?: Msdyn365.IGridSettings;\n link?: ILinkData;\n className?: string;\n telemetryContent?: ITelemetryContent;\n requestContext: Msdyn365.IRequestContext;\n typeName?: string;\n}\n\nexport interface ILinkData {\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n linkText?: string;\n}\n\n/**\n *\n * Logo component.\n * @extends {React.PureComponent}\n */\nexport class Logo extends React.PureComponent {\n private readonly attributes?: Msdyn365.IDictionary;\n\n constructor(props: ILogoProps) {\n super(props);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.Logo);\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n return
{this._renderLogo(this.props)}
;\n }\n\n private _renderLogo(config: ILogoProps): JSX.Element {\n if (config.link && config.link.linkUrl.destinationUrl) {\n return (\n \n {this._renderImage(config)}\n \n );\n }\n return this._renderImage(config);\n }\n\n private _renderImage(config: ILogoProps): JSX.Element {\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=132&h=28&m=6', w: 0, h: 0 },\n lg: { q: 'w=160&h=48&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n return (\n \n );\n }\n}\n\nexport default Logo;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IHeaderResources } from '../header.props.autogenerated';\n\nexport interface INavIconProps {\n resources: IHeaderResources;\n isExpanded: boolean;\n targetId: string;\n telemetryContent?: ITelemetryContent;\n toggleNavBar(): void;\n}\n\n/**\n *\n * NavIcon component.\n * @extends {React.PureComponent}\n */\n\n@observer\nexport class NavIcon extends React.PureComponent {\n private readonly attributes?: Msdyn365.IDictionary;\n\n constructor(props: INavIconProps) {\n super(props);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.NavIcon);\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n return (\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 { CartIconComponent, WishListIconComponent } from '@msdyn365-commerce/components';\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ErrorNotification, NotificationsManager } from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n KeyCodes,\n Modal,\n ModalBody,\n ModalHeader,\n onTelemetryClick,\n Popover,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { HeaderPreferredStore, Logo, NavIcon } from './components';\nimport { IHeaderData } from './header.data';\nimport { IHeaderProps, IHeaderResources, IMyAccountLinksData } from './header.props.autogenerated';\n\nexport interface IHeaderState {\n mobileMenuCollapsed: boolean;\n signinPopoverOpen: boolean;\n hasSigninerror?: boolean;\n}\n\nexport interface IHeaderViewProps extends IHeaderProps, IHeaderState {\n logo: React.ReactNode;\n wishListIconDesktop: React.ReactNode;\n wishListIconMobile: React.ReactNode;\n cartIcon: React.ReactNode;\n navIcon: React.ReactNode;\n className: string;\n menuBar: React.ReactNode[];\n search: React.ReactNode[];\n siteOptions: React.ReactNode[];\n HeaderTag: IModuleProps;\n HeaderContainer: INodeProps;\n MobileMenuContainer: INodeProps;\n MobileMenuHeader: React.ReactNode;\n MobileMenuBodyContainer: INodeProps;\n MobileMenuLinksContainer: INodeProps;\n HeaderTopBarContainer: INodeProps;\n Divider: INodeProps;\n\n AccountInfoDropdownParentContainer?: INodeProps;\n AccountInfoDropdownPopoverConentContainer?: INodeProps;\n accountInfoDropdownButton?: React.ReactNode;\n\n signOutLink?: React.ReactNode;\n signInLink?: React.ReactNode;\n switchCustomerLink?: React.ReactNode;\n isOBORequest?: boolean;\n accountLinks?: React.ReactNode[];\n preferredStore?: React.ReactNode;\n currentDistributor?: React.ReactNode;\n}\n\n/**\n *\n * Header component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass Header extends React.PureComponent, IHeaderState> {\n private readonly popOverRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private cart: ICartState | undefined;\n\n private isB2BSite: boolean = false;\n\n /**\n * The signed-in user name displayed in the header bar\n */\n @computed public get displayName(): Readonly {\n return (\n (MsDyn365.isOboRequest(this.props.context.request) ? this.workerName : this.customerName) ||\n this.props.context.request?.user?.name\n );\n }\n\n /**\n * OBO scenario. The name of worker who shops on behalf of customer.\n */\n @computed public get workerName(): Readonly {\n const worker = this.props.data.employee?.result;\n return worker?.Name;\n }\n\n @computed public get customerName(): Readonly {\n const customer = this.props.data.accountInformation?.result;\n if (MsDyn365.isOboRequest(this.props.context.request)) {\n // For OBO scenario, display full customer name because multiple customers may have the same first name.\n return customer ? customer.Name : undefined;\n } else {\n return customer ? customer.FirstName || customer.Name : undefined;\n }\n }\n\n public constructor(props: IHeaderProps) {\n super(props);\n this.popOverRef = React.createRef();\n this._toggleNavbar = this._toggleNavbar.bind(this);\n this._togglePopover = this._togglePopover.bind(this);\n this._keydown = this._keydown.bind(this);\n this.state = {\n mobileMenuCollapsed: true,\n signinPopoverOpen: false,\n hasSigninerror: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.isB2BSite = isChannelTypeB2B(this.props.context.request);\n }\n\n public componentDidMount(): void {\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n window.addEventListener('keydown', this._keydown);\n }\n reaction(\n () => {\n this.props.data.cart.result;\n },\n () => {\n this.cart = this.props.data.cart.result;\n }\n );\n\n const {\n context: {\n request: { user }\n },\n resources: {\n signUpCustomerNotFoundTitle,\n signUpMultipleCustomerFoundTitle,\n signInCustomerNotAuthorizedTitle,\n closeNotificationLabel\n }\n } = this.props;\n\n const signinNotificationError = this._getSigninNotification(\n user,\n signUpMultipleCustomerFoundTitle,\n signUpCustomerNotFoundTitle,\n signInCustomerNotAuthorizedTitle\n );\n if (signinNotificationError !== undefined && this.state.hasSigninerror === false) {\n // For signup show simple error notification.\n NotificationsManager.instance().addNotification(new ErrorNotification(signinNotificationError, closeNotificationLabel));\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n window.removeEventListener('keydown', this._keydown, false);\n }\n }\n\n public render(): JSX.Element | null {\n const {\n id,\n typeName,\n data: { accountInformation, wishlists },\n context: {\n request: { user }\n },\n context,\n resources: { cartLabel, cartQtyLabel }\n } = this.props;\n const { logoLink, logoImage, shouldShowWishlistCount } = this.props.config;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- app config is generic\n const disableTooltip = this.props.context.app.config.disableTooltip || false;\n const headerToggleClass = this.state.mobileMenuCollapsed ? '' : 'ms-header-open';\n const headerClassName = classnames('ms-header', this.props.config.className, headerToggleClass);\n const navbarKey = 'header-nav-mobile';\n const customer = accountInformation && accountInformation.result;\n const cartIconSlot = this._getSlot('cartIcon');\n const menuBarSlot = this._getSlot('menuBar');\n const searchSlot = this._getSlot('search');\n let wishlistCount = 0;\n const siteOptionsSlot = this._getSlot('siteOptions');\n const preferredStoreSlot = this._getSlot('storeSelector');\n const currentDistributorSlot = this._getSlot('distributorSelector');\n if (wishlists !== undefined) {\n if (\n !wishlists.result ||\n !ArrayExtensions.hasElements(wishlists.result) ||\n !wishlists.result[0].CommerceListLines ||\n !ArrayExtensions.hasElements(wishlists.result[0].CommerceListLines)\n ) {\n wishlistCount = 0;\n } else {\n wishlistCount = wishlists.result[0].CommerceListLines.length;\n }\n }\n const viewProps: IHeaderViewProps = {\n ...(this.props as IHeaderProps),\n ...this.state,\n logo: (\n \n ),\n wishListIconDesktop: (\n \n ),\n wishListIconMobile: (\n \n ),\n cartIcon: ArrayExtensions.hasElements(cartIconSlot) ? (\n cartIconSlot[0]\n ) : (\n \n ),\n navIcon: (\n \n ),\n menuBar: ArrayExtensions.hasElements(menuBarSlot) ? menuBarSlot : [],\n search: ArrayExtensions.hasElements(searchSlot) ? searchSlot : [],\n siteOptions: ArrayExtensions.hasElements(siteOptionsSlot) ? siteOptionsSlot : [],\n className: headerClassName,\n HeaderTag: {\n moduleProps: this.props,\n className: classnames(headerClassName),\n 'aria-label': this.props.resources.headerAriaLabel,\n tag: 'header'\n },\n HeaderContainer: {\n className: classnames('ms-header__container')\n },\n HeaderTopBarContainer: {\n className: classnames('ms-header__topbar')\n },\n Divider: {\n className: classnames('ms-header__divider')\n },\n MobileMenuContainer: {\n tag: Modal,\n id: navbarKey,\n className: 'ms-header__mobile-hamburger',\n isOpen: !this.state.mobileMenuCollapsed,\n wrapClassName: 'ms-header__modal',\n toggle: this._toggleNavbar\n },\n MobileMenuHeader: ,\n MobileMenuBodyContainer: {\n tag: ModalBody,\n className: 'ms-header__mobile-hamburger-menu-body'\n },\n MobileMenuLinksContainer: {\n className: 'ms-header__mobile-hamburger-menu-links'\n },\n AccountInfoDropdownParentContainer: {\n className: 'ms-header__account-info'\n },\n AccountInfoDropdownPopoverConentContainer: this.displayName\n ? {\n tag: Popover,\n id: 'myprofilePopover',\n className: 'ms-header__account-info-content',\n placement: 'bottom',\n isOpen: this.state.signinPopoverOpen,\n target: this.popOverRef,\n toggle: this._togglePopover\n }\n : undefined,\n signInLink: this._getSigninButton(user, this.props.resources),\n signOutLink: this._getSignOutButton(user, this.props.resources),\n isOBORequest: MsDyn365.isOboRequest(this.props.context.request),\n switchCustomerLink: this._getSwitchCustomerButton(user, this.props.resources),\n accountInfoDropdownButton: this._getAccountInfoDropdownButton(user, this.props.resources),\n accountLinks: this._getAccountLinks(customer),\n preferredStore: ArrayExtensions.hasElements(preferredStoreSlot) && ,\n currentDistributor: this.isB2BSite && ArrayExtensions.hasElements(currentDistributorSlot) ? currentDistributorSlot : undefined\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle link text change.\n * @param linkIndex - Link Index.\n * @returns : Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.myAccountLinks?.[linkIndex]) {\n this.props.config.myAccountLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Get the slot.\n * @param slotName - Name of the slot.\n * @returns The slot.\n */\n private _getSlot(slotName: string): React.ReactNode[] | null {\n const { slots } = this.props;\n return (slots && slots[slotName] && slots[slotName].length && slots[slotName]) || null;\n }\n\n /**\n * Renders the sign in button.\n * @param user - Request context user.\n * @param resources - Resources.\n * @returns React Node.\n */\n private _getSigninButton(user: MsDyn365.IRequestContextUser | undefined, resources: IHeaderResources): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n return (\n !this.displayName && (\n \n \n {resources.signInLinkText}\n \n \n )\n );\n }\n\n /**\n * Renders the sign out button.\n * @param user - Request context user.\n * @param resources - Resources.\n * @returns React Node.\n */\n private _getSignOutButton(user: MsDyn365.IRequestContextUser | undefined, resources: IHeaderResources): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignOut);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n return (\n this.displayName && (\n \n \n {resources.signOutLinkText}\n \n \n )\n );\n }\n\n /**\n * Renders the sign out button.\n * @param user - Request context user.\n * @param resources - Resources.\n * @returns React Node.\n */\n private _getSwitchCustomerButton(\n user: MsDyn365.IRequestContextUser | undefined,\n resources: IHeaderResources\n ): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SwitchCustomer);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n const isOBOAccountSelected =\n MsDyn365.isOboRequest(this.props.context.request) && this.props.context.request.cookies.getAccountSelectionCookie();\n return (\n this.displayName &&\n isOBOAccountSelected && (\n this.props.context.request.cookies.removeAccountSelectionCookie()}\n {...attributes}\n >\n
\n
{format(resources.shoppingAsText, this.customerName)}
\n
{resources.switchCustomerLinkText}
\n
\n \n )\n );\n }\n\n private getBusinessPartnerSelectionUrl(): string | undefined {\n const route = MsDyn365.getUrlSync('businessPartnerSelection', this.props.context.actionContext);\n if (!route || !MsDyn365.msdyn365Commerce.isBrowser) {\n return undefined;\n }\n\n // MsDyn365.getUrlSync persists some params in the route and remove other params.\n // Among the persisted params, we need to remove catalogid.\n const persistedParamToRemove = ['catalogid'];\n const url = new URL(route, window.location.href);\n persistedParamToRemove.forEach(param => url.searchParams.delete(param));\n return url.href;\n }\n\n private _getSigninNotification(\n user: MsDyn365.IRequestContextUser | undefined,\n signUpMultipleCustomerFoundTitle: string,\n signUpCustomerNotFoundTitle: string,\n signInCustomerNotAuthorizedTitle: string\n ): string | undefined {\n if (!user?.retailServerErrorCode) {\n return undefined;\n }\n\n const { signUpCustomerNotFound, signUpMultipleCustomerFound, signInCustomerNotAuthorized } = this.props.config;\n const notFoundError = 'Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound_WhenAutoLinking';\n const multipleAccountError = 'Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountsFoundWithSameEmailAddress';\n const accountAuthorizationError = 'Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed';\n\n if (user?.retailServerErrorCode === notFoundError) {\n return signUpCustomerNotFound !== undefined ? signUpCustomerNotFound : signUpCustomerNotFoundTitle;\n } else if (user?.retailServerErrorCode === multipleAccountError) {\n return signUpMultipleCustomerFound !== undefined ? signUpMultipleCustomerFound : signUpMultipleCustomerFoundTitle;\n } else if (user?.retailServerErrorCode === accountAuthorizationError) {\n return signInCustomerNotAuthorized !== undefined ? signInCustomerNotAuthorized : signInCustomerNotAuthorizedTitle;\n }\n return user?.retailServerErrorMessage;\n }\n\n private _getAccountInfoDropdownButton(\n user: MsDyn365.IRequestContextUser | undefined,\n resources: IHeaderResources\n ): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.MyProfile);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n return (\n this.displayName && (\n \n
\n
{this.displayName}
\n {MsDyn365.isOboRequest(this.props.context.request) && this.customerName && (\n
{format(resources.shoppingAsText, this.customerName)}
\n )}\n
\n \n )\n );\n }\n\n private _getAccountLinks(customer: Customer | undefined): React.ReactNode[] | undefined {\n const { myAccountLinks } = this.props.config;\n const payLoad = getPayloadObject('click', this.telemetryContent, '');\n if (!this.displayName || !myAccountLinks || !ArrayExtensions.hasElements(myAccountLinks)) {\n return undefined;\n }\n return myAccountLinks.map((cta: IMyAccountLinksData, index: number) => {\n payLoad.contentAction.etext = cta.linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: cta.ariaLabel,\n className: 'ms-signin-info__account-link-button',\n linkText: cta.linkText,\n linkUrl: cta.linkUrl.destinationUrl,\n openInNewTab: cta.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n\n return (\n \n );\n });\n }\n\n private _toggleNavbar(): void {\n this.setState({\n mobileMenuCollapsed: !this.state.mobileMenuCollapsed\n });\n }\n\n private _togglePopover(): void {\n this.setState({\n signinPopoverOpen: !this.state.signinPopoverOpen\n });\n }\n\n private _keydown(event: KeyboardEvent): void {\n if (event.keyCode === KeyCodes.Escape) {\n this.setState({ mobileMenuCollapsed: true });\n }\n }\n}\n\nexport default Header;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeaderViewProps } from './header';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n MobileMenuContainer,\n MobileMenuBodyContainer,\n MobileMenuLinksContainer,\n Divider\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {props.currentDistributor}\n {_renderDesktopAccountBlock(props)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n \n \n {props.MobileMenuHeader}\n {_renderReactFragment(props.menuBar)}\n \n {props.accountLinks ? props.accountLinks.map(link => link) : false}\n {props.siteOptions}\n {props.wishListIconMobile}\n {props.signInLink}\n {props.signOutLink}\n \n \n \n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map(link => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return {signInLink};\n }\n }\n props.context.telemetry.error('Header content is empty, module wont render.');\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPromoBannerCloseButton {\n closeButtonAriaLabel?: string;\n label?: string;\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const PromoBannerCloseButton: React.FC = ({ closeButtonAriaLabel, label, telemetryContent, onClose }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PromoBannerClose);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../promo-banner.props.autogenerated';\n\nexport interface IPromoBannerLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const PromoBannerLinks: React.FC = ({ links, requestContext, onTextChange, telemetryContent }) => {\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-promo-banner__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nexport interface IPromoBannerText {\n text: string;\n requestContext: Msdyn365.IRequestContext;\n onTextChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\nexport const PromoBannerText: React.FC = ({ text, onTextChange, requestContext }) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Carousel } from '@msdyn365-commerce/components';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { PromoBannerCloseButton, PromoBannerLinks, PromoBannerText } from './components';\nimport { IBannerMessagesData, IPromoBannerProps, IPromoBannerResources } from './promo-banner.props.autogenerated';\n\nexport interface IPromoBannerState {\n animating: boolean;\n isVisible: boolean;\n activeIndex: number;\n}\n\nexport interface IPromoBannerViewProps extends IPromoBannerProps<{}>, IPromoBannerState {\n promoBannerProps: IModuleProps;\n contentProps: INodeProps;\n bannerMessages: IBannerMessagesData[];\n promoBannerTextProps: INodeProps;\n promoBannerLinksProps: INodeProps;\n carouselProps: INodeProps;\n closeButton?: React.ReactNode;\n className: string;\n promoBannerText: string;\n resources: IPromoBannerResources;\n onDismiss(): void;\n handleText(): void;\n handleLinks(): void;\n}\n\n/**\n *\n * PromoBannerModule component.\n * @extends {React.PureComponent>}\n */\nclass PromoBanner extends React.PureComponent, IPromoBannerState> {\n public state: IPromoBannerState = {\n animating: false,\n isVisible: true,\n activeIndex: 0\n };\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { bannerMessages, dismissEnabled, interval, hideFlipper, autoplay, className = '' } = this.props.config;\n const { closeButtonAriaLabel, closeButtonLabel, bannerText, bannerAriaLabel } = this.props.resources;\n const { isVisible, activeIndex } = this.state;\n\n if (!isVisible) {\n this.props.context.telemetry.error('Promo banner content is empty, module wont render.');\n return null;\n }\n\n const viewProps = {\n // Context for telemetry and raw data for C1 to do customization\n // Including computed data, state data and methods\n ...this.props,\n className: classnames('ms-promo-banner', className),\n isVisible, // State data\n onDismiss: this._onDismiss, // Methods\n handleLinks: this.handleLinkTextChange,\n handleText: this.handleTextChange,\n\n promoBannerProps: {\n className: classnames('ms-promo-banner', className),\n moduleProps: this.props,\n role: 'banner',\n 'aria-label': bannerAriaLabel\n },\n promoBannerTextProps: {\n tag: PromoBannerText\n },\n promoBannerLinksProps: {\n tag: PromoBannerLinks,\n telemetryContent: this.telemetryContent\n },\n contentProps: { className: 'ms-promo-banner__content' },\n promoBannerText: bannerText,\n bannerMessages,\n activeIndex,\n carouselProps: {\n tag: Carousel,\n className: 'ms-promo-banner__carousel',\n activeIndex,\n next: this._next,\n previous: this._previous,\n onIndicatorsClickHandler: this._goToIndex,\n hideIndicator: hideFlipper,\n interval,\n hideFlipper,\n autoplay\n },\n closeButton: dismissEnabled && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.bannerMessages && this.props.config.bannerMessages[0]) {\n this.props.config.bannerMessages[0].text = event.target.value;\n }\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.bannerMessages && this.props.config.bannerMessages[1]) {\n const links = this.props.config.bannerMessages[1].links;\n if (links) {\n links[linkIndex].linkText = event.target.value;\n }\n }\n };\n\n private readonly _next = (): void => {\n const nextIndex = this._isLastItem() ? 0 : this.state.activeIndex + 1;\n this._goToIndex(nextIndex);\n };\n\n private readonly _previous = (): void => {\n const nextIndex = this._isFirstItem()\n ? this.props.config.bannerMessages\n ? this.props.config.bannerMessages.length - 1\n : 0\n : this.state.activeIndex - 1;\n this._goToIndex(nextIndex);\n };\n\n private readonly _goToIndex = (index: number): void => {\n if (this.state.animating) {\n return;\n }\n this.setState({ activeIndex: index });\n };\n\n private readonly _isFirstItem = () => this.state.activeIndex === 0;\n\n private readonly _isLastItem = () =>\n this.props.config.bannerMessages && this.state.activeIndex === this.props.config.bannerMessages.length - 1;\n\n private readonly _onDismiss = (): void => {\n this.setState({ isVisible: false });\n };\n}\n\nexport default PromoBanner;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPromoBannerViewProps } from './promo-banner';\n\nconst PromoBannerView: React.FC = props => {\n const {\n promoBannerProps,\n contentProps,\n closeButton,\n bannerMessages,\n promoBannerTextProps,\n promoBannerLinksProps,\n carouselProps,\n promoBannerText,\n handleLinks,\n handleText\n } = props;\n\n const slides =\n bannerMessages &&\n bannerMessages.map((message, index) => {\n return (\n \n {promoBannerText}\n {message.text && }\n {message.links && message.links.length > 0 && (\n \n )}\n \n );\n });\n\n return (\n \n \n {closeButton}\n \n );\n};\nexport default PromoBannerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToCartComponent, IAddToCartFailureResult, IAddToCartResources, OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport { getUrlSync, IComponentProps, ICoreContext } from '@msdyn365-commerce/core';\nimport { SalesLine } from '@msdyn365-commerce/retail-proxy';\nimport { QuickOrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\n/**\n * The data on which the component should operate.\n */\nexport interface IAddToCartSelectedData {\n quickOrderTemplate: QuickOrderTemplate | undefined;\n}\n\n/**\n * The resources needed to render a buy selected component.\n */\nexport interface IAddToCartSelectedResources {\n quickOrderGridBuySelectedButtonText?: string;\n quickOrderGridBuySelectedButtonAriaLabel?: string;\n quickOrderGridBuySelectedAddingToCartErrorNotificationTitle?: string;\n quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel?: string;\n quickOrderGridGoToCartText?: string;\n quickOrderGridDialogCloseText?: string;\n quickOrderGridSingleItemText?: string;\n quickOrderGridMultiLineItemFormatText?: string;\n quickOrderGridMultiLinesFormatText?: string;\n quickOrderGridHeaderMessageText?: string;\n addedQuantityText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n freePriceText?: string;\n}\n\n/**\n * Configuration of a buy selected component.\n */\nexport interface IAddToCartSelectedProps extends IComponentProps {\n className: string;\n context: ICoreContext;\n\n resources: IAddToCartSelectedResources;\n\n isIcon?: boolean;\n onError?(result: IAddToCartFailureResult): void;\n}\n\n/**\n * Get the dialog strings.\n * @param props - The buy selected props.\n * @returns The add to cart resources.\n */\nexport const getDialogStrings = (props: IAddToCartSelectedProps): IAddToCartResources => {\n return {\n goToCartText: props.resources.quickOrderGridGoToCartText ?? '',\n continueShoppingText: props.resources.quickOrderGridDialogCloseText ?? '',\n closeNotificationLabel: props.resources.quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel ?? '',\n headerItemOneText: props.resources.quickOrderGridSingleItemText ?? '',\n headerItemFormatText: props.resources.quickOrderGridMultiLineItemFormatText ?? '',\n headerLinesFormatText: props.resources.quickOrderGridMultiLinesFormatText ?? '',\n headerMessageText: props.resources.quickOrderGridHeaderMessageText ?? '',\n freePriceText: props.resources.freePriceText ?? '',\n originalPriceText: props.resources.originalPriceText ?? '',\n currentPriceText: props.resources.currentPriceText ?? '',\n addedQuantityText: props.resources.addedQuantityText ?? '',\n buyAgainNotificationTitle: props.resources.quickOrderGridBuySelectedAddingToCartErrorNotificationTitle ?? '',\n buyAgainNotificationCloseAriaLabel: props.resources.quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel ?? ''\n };\n};\n\n/**\n * Get the dialog strings.\n * @param quickOrder - The buy selected props.\n * @returns The add to cart resources.\n */\nexport const getOrderDetails = (quickOrder: QuickOrderTemplate): OrderDetailsProduct[] => {\n const orderDetails: OrderDetailsProduct[] = [];\n for (const quickLine of quickOrder.quickOrderTemplateLines) {\n const quantity = quickLine.productListLine.Quantity;\n const salesLine: SalesLine = {\n Quantity: quantity\n };\n const products = new OrderDetailsProduct(salesLine, quickLine.fullProduct?.ProductDetails);\n orderDetails.push(products);\n }\n return orderDetails;\n};\n\n/**\n * Renders a button which adds given products to the cart.\n * @param props - Configuration of the component.\n * @returns A react element or null if no products were given.\n */\nexport const AddToCartProductListComponent: React.FC = (props: IAddToCartSelectedProps): JSX.Element | null => {\n const {\n data: { quickOrderTemplate }\n } = props;\n\n if (quickOrderTemplate?.quickOrderTemplateLines[0].fullProduct?.ProductDetails === undefined) {\n return null;\n }\n const quantity = quickOrderTemplate.quickOrderTemplateLines[0].productListLine.Quantity;\n const buttonLabel = props.resources.quickOrderGridBuySelectedButtonText;\n const buttonAriaLabel = props.resources.quickOrderGridBuySelectedButtonAriaLabel;\n const dialogStrings: IAddToCartResources = getDialogStrings(props);\n const shouldSkipSiteSettings: boolean = true;\n const orderDetailProducts = getOrderDetails(quickOrderTemplate);\n return (\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 { IComponentProps, ICoreContext } from '@msdyn365-commerce/core';\nimport { QuickOrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { AddToCartProductListComponent } from './add-to-list';\nimport { IQuickOrderGridActionsViewProps, IQuickOrderGridState } from './utilities';\n\n/**\n * Interface for quick order grid action data.\n */\nexport interface IQuickOrderGridActionsData {\n quickOrderTemplate: QuickOrderTemplate | undefined;\n}\n\n/**\n * Interface for quick order grid action props.\n */\nexport interface IQuickOrderGridActionsProps extends IComponentProps {\n context: ICoreContext;\n telemetryContent?: ITelemetryContent;\n moduleClassName: string;\n typeName: string;\n handlers: {\n removeProductList(productListId: string): void;\n onErrorMessage(message: string): void;\n };\n quickOrderGridState: IQuickOrderGridState;\n resources: {\n quickOrderGridDeleteButtonText: string;\n quickOrderGridBuySelectedButtonText?: string;\n quickOrderGridBuySelectedButtonAriaLabel?: string;\n quickOrderGridBuySelectedAddingToCartErrorNotificationTitle?: string;\n quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel?: string;\n quickOrderGridGoToCartText?: string;\n quickOrderGridDialogCloseText?: string;\n quickOrderGridSingleItemText?: string;\n quickOrderGridMultiLineItemFormatText?: string;\n quickOrderGridMultiLinesFormatText?: string;\n quickOrderGridHeaderMessageText?: string;\n addedQuantityText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n freePriceText?: string;\n };\n}\n\n/**\n * Remove ProductList Action.\n * @param props -Quick order grid action props.\n */\nconst removeQuickOrderList = (props: IQuickOrderGridActionsProps): void => {\n const {\n data: { quickOrderTemplate },\n handlers\n } = props;\n const { removeProductList } = handlers;\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- Need to check data.\n if (quickOrderTemplate && quickOrderTemplate.productList.Id) {\n removeProductList(quickOrderTemplate.productList.Id);\n }\n};\n\n/**\n * Get Addtobag Button.\n * @param props -Order template action props.\n * @returns QuickOrderGrid actions view props.\n */\nconst getQuickOrderGridAddToCartDialog = (props: IQuickOrderGridActionsProps): React.ReactNode => {\n const {\n data: { quickOrderTemplate },\n context,\n moduleClassName,\n resources,\n typeName\n } = props;\n const buttonId = 'quick-order-grid';\n return (\n {\n if (result.cartActionResult?.errorDetails?.LocalizedMessage) {\n props.handlers.onErrorMessage(result.cartActionResult.errorDetails.LocalizedMessage);\n }\n }}\n />\n );\n};\n\n/**\n * Remove Quick order grid action.\n * @param props -Quick order grid action props.\n * @returns Remove order template.\n */\nconst removeActionHandler = (props: IQuickOrderGridActionsProps) => () => {\n removeQuickOrderList(props);\n};\n\n/**\n * Quick order grid action view.\n * @param props -Quick Order Grid template action props.\n * @returns QuickOrderGrid actions view props.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Name needs to be this.\nexport const QuickOrderGridActionsView = (props: IQuickOrderGridActionsProps): IQuickOrderGridActionsViewProps => {\n const { moduleClassName, quickOrderGridState, resources } = props;\n const { quickOrderGridDeleteButtonText } = resources;\n\n const userMessageNode = quickOrderGridState.topStateMessage ? (\n \n \n {quickOrderGridState.topStateMessage.messageText}\n \n ) : (\n undefined\n );\n\n return {\n addProductListToBag: getQuickOrderGridAddToCartDialog(props),\n removeProductList: (\n \n ),\n userMessage: userMessageNode\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, Collapse, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IQuickOrderGridDrawerProps } from './quick-order-grid-drawer-props';\n\n/**\n * Interface for drawer state.\n */\nexport interface IQuickOrderGridDrawerState {\n isOpen: boolean;\n}\n\n/**\n * Placement of glyph.\n */\nexport type GlyphPlacement = 'start' | 'end';\n\n/**\n * Quick Order Grid Drawer - This is a full width uncontrolled collapse where the button glyph changes\n * when the drawer is open and closed.\n */\nexport class QuickOrderGridDrawer extends React.Component {\n private readonly _drawerOpenGlyph: string;\n\n private readonly _drawerCloseGlyph: string;\n\n private readonly _drawerGlyphClass: string;\n\n private _isManuallyToggled: boolean;\n\n public constructor(props: IQuickOrderGridDrawerProps) {\n super(props);\n this._isManuallyToggled = false;\n this.state = { isOpen: props.collapseProps?.isOpen ?? false };\n this._drawerGlyphClass = classnames('drawer__glyph', this.props.toggleGlyphClassName ? this.props.toggleGlyphClassName : '');\n const closeGlyph = this.props.closeGlyph ? this.props.closeGlyph : '';\n if (this.props.isAnimateGlyph) {\n this._drawerOpenGlyph = classnames(this._drawerGlyphClass, this.props.openGlyph ? this.props.openGlyph : closeGlyph);\n this._drawerCloseGlyph = this._drawerOpenGlyph;\n } else {\n this._drawerOpenGlyph = classnames(this._drawerGlyphClass, this.props.openGlyph ? this.props.openGlyph : '');\n this._drawerCloseGlyph = classnames(this._drawerGlyphClass, closeGlyph);\n }\n }\n\n /**\n * Method to call on click of drawer button.\n * @param event - Product DeliveryOption List.\n */\n public toggle = (event: React.MouseEvent | React.KeyboardEvent): void => {\n event.preventDefault();\n this._isManuallyToggled = true;\n if (this.props.onToggle) {\n this.setState(previousState => ({ isOpen: !previousState.isOpen }));\n this.props.onToggle(this.state);\n } else {\n this.setState(previousState => ({ isOpen: !previousState.isOpen }));\n }\n };\n\n public shouldComponentUpdate(nextProps: IQuickOrderGridDrawerProps, nextState: IQuickOrderGridDrawerState): boolean {\n if (this.state === nextState && this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const collapseProps: ICollapseProps = { ...this.props.collapseProps };\n\n // If the drawer is manually toggled by pressing the button, then we use the internal state\n if (collapseProps.isOpen === undefined || this._isManuallyToggled) {\n collapseProps.isOpen = this.state.isOpen;\n }\n collapseProps.children = this.props.children;\n const drawerClass = classnames('drawer', this.props.className);\n const drawerButtonClassName = `${this.props.className ? this.props.className : ''}__button`;\n this._isManuallyToggled = false;\n return (\n
\n \n {this._generateDrawerButtonInnerMarkup(collapseProps.isOpen, drawerClass)}\n \n \n
\n );\n }\n\n private _generateDrawerButtonInnerMarkup(isCollapseState: boolean, drawerClass: string): JSX.Element {\n const drawerButtonTextClass = classnames(\n 'drawer__buttontext',\n this.props.toggleButtonClassName ? this.props.toggleButtonClassName : ''\n );\n const headingDrawerClass = `${drawerClass}-heading`;\n const descriptionDrawerClass = `${drawerClass}-description`;\n return (\n <>\n

{this.props.moduleHeadingText}

\n {this.props.moduleDescriptionText}\n {this._generateGlyphMarkup('drawer__glyph__end', isCollapseState)}\n \n );\n }\n\n private _generateGlyphMarkup(location: string, isCollapseState: boolean): JSX.Element {\n let glyphClass = isCollapseState ? this._drawerOpenGlyph : this._drawerCloseGlyph;\n glyphClass = `${glyphClass} ${location}`;\n return ;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderGridState } from './utilities';\n\n/**\n * Interface quick order grid form props.\n */\nexport interface IQuickOrderGridFormProps {\n isAddtoListDisabled: boolean | undefined;\n productTextInput: React.RefObject;\n quantityTextInput: React.RefObject;\n maxChars: number;\n minQuantity?: number;\n maxQuantity?: number;\n moduleClassName: string;\n ariaLabelQuantity: string;\n ariaLabelProduct: string;\n ariaLabelAddtoCart: string;\n quickOrderGridState: IQuickOrderGridState;\n handleInputChange(query: string): void;\n handleQuantityChange(query: string): void;\n handleAddProductListClick(): Promise;\n}\n\n/**\n * Interface quick order grid form view props.\n */\nexport interface IQuickOrderGridFormViewProps {\n product: React.ReactNode;\n quantity: React.ReactNode;\n addToListBtn: React.ReactNode;\n userMessage?: React.ReactNode;\n}\n\n/**\n * On Input Change functionality.\n * @param handleInputChange -Input change function.\n * @returns Input change value.\n */\nconst onInputChangeFunction = (handleInputChange: (query: string) => void) => (event: React.ChangeEvent) => {\n handleInputChange(event.target.value || '');\n};\n\n/**\n * On Quantity Change functionality.\n * @param handleQuantityChange -Quantity change function.\n * @returns Quantity change value.\n */\nconst onQuantityChangeFunction = (handleQuantityChange: (query: string) => void) => (event: React.ChangeEvent) => {\n handleQuantityChange(event.target.value || '');\n};\n\n/**\n * Quick order grid form component.\n * @param props -Component form props.\n * @returns Quick order gridp view props..\n */\nexport const QuickOrderGridFormComponent = (props: IQuickOrderGridFormProps): IQuickOrderGridFormViewProps => {\n const {\n moduleClassName,\n productTextInput,\n quantityTextInput,\n quickOrderGridState,\n maxChars,\n minQuantity,\n maxQuantity,\n isAddtoListDisabled,\n ariaLabelQuantity,\n ariaLabelProduct,\n ariaLabelAddtoCart,\n handleQuantityChange,\n handleInputChange,\n handleAddProductListClick\n } = props;\n\n const onInputChange = onInputChangeFunction(handleInputChange);\n\n const onQuantityInputChange = onQuantityChangeFunction(handleQuantityChange);\n\n const productNode = (\n
\n

\n {ariaLabelProduct}\n

\n \n
\n );\n\n const quantityNode = (\n
\n

\n {ariaLabelQuantity}\n

\n \n
\n );\n\n const addToListNode = (\n
\n \n {ariaLabelAddtoCart}\n \n
\n );\n\n const userMessageNode = quickOrderGridState.stateMessage ? (\n \n \n {quickOrderGridState.stateMessage.messageText}\n \n ) : (\n undefined\n );\n\n return {\n product: productNode,\n addToListBtn: addToListNode,\n quantity: quantityNode,\n userMessage: userMessageNode\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { QuickOrderTemplateLine } from '@msdyn365-commerce-modules/retail-actions';\nimport { observable } from 'mobx';\n\n/**\n * Represents a product for quick order grid.\n */\nexport class QuickOrderGridProduct {\n @observable\n public isSelected: boolean;\n\n public readonly productLine: QuickOrderTemplateLine;\n\n public constructor(productLine: QuickOrderTemplateLine) {\n this.productLine = productLine;\n this.isSelected = false;\n }\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, ICoreContext } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\n/**\n * Interface for quick order grid table header resources.\n */\nexport interface IQuickOrderGridTableHeaderResources {\n quickOrderGridProductNumberText: string;\n quickOrderGridProductText: string;\n quickOrderGridUnitPriceText: string;\n quickOrderGridUnitOfMeasureText: string;\n quickOrderGridQuantityText: string;\n quickOrderGridActionsText: string;\n}\n\n/**\n * Interface for quick order grid table props.\n */\nexport interface IQuickOrderGridTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isMobile: boolean;\n resources: IQuickOrderGridTableHeaderResources;\n}\n\n/**\n * Interface for quick order grid table header component.\n */\nexport interface IQuickOrderGridTableHeaderComponent extends IComponent {}\n\n/**\n * Get the quick order grid header cells for desktop.\n * @param props -- The quick order grid table header props.\n * @returns The list of cells for quick order grid header component in desktop version.\n */\nconst QuickOrderGridDesktopHeaderCellsComponent: React.FC = (props: IQuickOrderGridTableHeaderProps) => {\n const { resources } = props;\n const columnWithNumberClassName = `${props.className}__row__column-with-number`;\n return (\n <>\n \n \n \n {resources.quickOrderGridProductNumberText}\n {resources.quickOrderGridProductText}\n {resources.quickOrderGridUnitPriceText}\n {resources.quickOrderGridUnitOfMeasureText}\n {resources.quickOrderGridQuantityText}\n {resources.quickOrderGridActionsText}\n \n );\n};\n\n/**\n * Get the quick order grid header cells for mobile.\n * @param props -- The quick order grid table header props.\n * @returns The quick order grid header component in desktop version.\n */\nconst QuickOrderGridMobileHeaderCellsComponent: React.FC = (props: IQuickOrderGridTableHeaderProps) => {\n const { resources } = props;\n return (\n <>\n \n {resources.quickOrderGridProductNumberText}\n \n \n );\n};\n\n/**\n * Quick order table header component.\n * @param props - Configuration of the component.\n * @returns React node with the header.\n */\nexport const QuickOrderGridTableHeaderComponent: React.FC = (props: IQuickOrderGridTableHeaderProps) => {\n const rowClassName = `${props.className}__row`;\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = ;\n } else {\n headerCells = ;\n }\n\n return (\n \n {headerCells}\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 { PriceComponent } from '@msdyn365-commerce/components';\nimport MsDyn365, { IComponentProps, ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ProductListLine, ProductPrice } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IncrementalQuantity, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { QuickOrderGridProduct } from '../../quick-order-grid-product';\nimport { IQuickOrderGridRowCallbacks } from '../../utilities';\n\n/**\n * Data required to render each quick order grid row.\n */\nexport interface IQuickOrderGridTableRowData {\n product: QuickOrderGridProduct;\n}\n\n/**\n * Resources for quick order grid table rows.\n */\nexport interface IQuickOrderGridTableRowResources {\n quickOrderGridQuantityMobileText: string;\n quickOrderGridProductDimensionsSeparator: string;\n quickOrderGridViewDetailsButtonText: string;\n quickOrderGridViewDetailsButtonAriaLabel: string;\n quickOrderGridRemoveItemButtonAriaLabel: string;\n quickOrderGridInputQuantityAriaLabel: string;\n quickOrderGridDecrementButtonAriaLabel: string;\n quickOrderGridIncrementButtonAriaLabel: string;\n originalPriceText: string;\n currentPriceText: string;\n freePriceText: string;\n}\n\n/**\n * Interface for quick order grid table props.\n */\nexport interface IQuickOrderGridTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n productListLine: ProductListLine;\n price?: ProductPrice;\n moduleId: string;\n moduleTypeName: string;\n min: number;\n max: number;\n quantity: number;\n imageSettings?: IImageSettings;\n isMobile: boolean;\n resources: IQuickOrderGridTableRowResources;\n index: number;\n callbacks: IQuickOrderGridRowCallbacks;\n}\n\n/**\n * The default image settings for quick order grid table row.\n */\nconst defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=80&m=6', w: 0, h: 0 },\n lg: { q: 'w=147&h=147&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n};\n\n/**\n * Renders product image for quick order grid row.\n * @param props - Quick order table row props.\n * @returns React element.\n */\nconst QuickOrderGridTableRowProductImageComponent: React.FC = (props: IQuickOrderGridTableRowProps) => {\n const product = props.data.product.productLine.fullProduct?.ProductDetails;\n const fallbackImageUrl = getFallbackImageUrl(\n product?.ItemId,\n props.context.actionContext.requestContext.apiSettings,\n props.context.request.app?.config?.OmniChannelMedia\n );\n\n const containerClassName = `${props.className}__product-image-container`;\n\n return (\n
\n \n
\n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * Renders product price.\n * @param props - Props for price component.\n * @returns React element.\n */\nconst renderProductPrice = (props: IQuickOrderGridTableRowProps): JSX.Element | null => {\n const { context, moduleId, moduleTypeName, resources } = props;\n const price = props.price;\n\n if (price) {\n return (\n \n );\n }\n return null;\n};\n\n/**\n * Renders product price.\n * @param props - Props for price component.\n * @returns React element.\n */\nconst renderUnitOfMeasure = (props: IQuickOrderGridTableRowProps): JSX.Element | null => {\n const price = props.price;\n\n if (price) {\n return (\n
\n {StringExtensions.isNullOrEmpty(props.productListLine.UnitOfMeasure) || price.UnitOfMeasure}\n
\n );\n }\n return null;\n};\n\n/**\n * On Change function.\n * @param onChangeQuantity -On change quantity function.\n * @param itemKey -String.\n * @param props -Order template line props.\n * @returns Set change quantity.\n */\nconst onChangeHandler = (\n onChangeQuantity: (\n orderTemplateLineId: string | undefined,\n quantity: number,\n props?: IQuickOrderGridTableRowProps | undefined\n ) => boolean,\n itemKey: string | undefined,\n props: IQuickOrderGridTableRowProps\n) => (newValue: number) => {\n onChangeQuantity(itemKey, newValue, props);\n return true;\n};\n\n/**\n * On Change function.\n * @param onRemoveItem -On change quantity function.\n * @param quickOrderGridProductKey -QuickOrderGridp Product.\n * @param props -Order template line props.\n * @returns Set change quantity.\n */\nconst onRemoveHandler = (\n onRemoveItem: (quickOrderGridProduct: QuickOrderGridProduct, props?: IQuickOrderGridTableRowProps | undefined) => void,\n quickOrderGridProductKey: QuickOrderGridProduct,\n props: IQuickOrderGridTableRowProps\n) => () => {\n onRemoveItem(quickOrderGridProductKey, props);\n};\n\n/**\n * Renders actions popup for the mobile view.\n * @param props - Configuration for popup.\n * @returns A react node with actions..\n */\nconst QuickOrderGridExtraActionsPopupComponent: React.FC = (\n props: IQuickOrderGridTableRowProps\n): JSX.Element | null => {\n const {\n resources: { quickOrderGridViewDetailsButtonAriaLabel, quickOrderGridViewDetailsButtonText }\n } = props;\n const product = props.data.product.productLine.fullProduct?.ProductDetails;\n const [shouldShowActions, setShowActions] = useState(false);\n let productUrl = '';\n if (product === undefined) {\n return null;\n }\n if (!StringExtensions.isNullOrWhitespace(product.Name) && !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\n productUrl = getProductPageUrlSync(product.Name!, product.RecordId, props.context.actionContext);\n }\n\n const onClickViewDetails = React.useCallback(() => {\n if (MsDyn365.isBrowser) {\n window.location.href = productUrl;\n }\n }, [productUrl]);\n\n const toggle = React.useCallback(() => {\n const shouldShowActionsNewValue = !shouldShowActions;\n if (shouldShowActionsNewValue) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActionsNewValue);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActionsNewValue);\n }\n }, [shouldShowActions, setShowActions]);\n\n if (StringExtensions.isNullOrWhitespace(productUrl)) {\n return null;\n }\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n\n return (\n
\n \n \n {props.resources.quickOrderGridRemoveItemButtonAriaLabel}\n \n
\n )}\n \n );\n};\n\n/**\n * Renders quick order grid table rows for desktop view.\n * @param props - Configuration for the rows.\n * @returns A react node with a list of quick order grid rows for desktop view.\n */\nexport const QuickOrderGridDesktopTableRowCellComponent: React.FC = (props: IQuickOrderGridTableRowProps) => {\n const product = props.data.product.productLine.fullProduct?.ProductDetails;\n const productListLine = props.data.product.productLine.productListLine;\n const { min, max, quantity } = props;\n const columnWithNumberClassName = `${props.className}__column-with-number`;\n if (product !== undefined) {\n let productUrl = '';\n if (!StringExtensions.isNullOrWhitespace(product.Name) && !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\n productUrl = getProductPageUrlSync(product.Name!, product.RecordId, props.context.actionContext);\n }\n\n return (\n <>\n \n \n \n {product.ItemId}\n \n
\n \n {product.Name}\n \n \n {product.Dimensions?.map(dimension => dimension.DimensionValue?.Value)\n .filter(dimensionValue => !StringExtensions.isNullOrWhitespace(dimensionValue))\n .join(props.resources.quickOrderGridProductDimensionsSeparator)}\n \n
\n \n {renderProductPrice(props)}\n {renderUnitOfMeasure(props)}\n \n \n \n \n \n \n \n );\n }\n\n return null;\n};\n\n/**\n * Renders rows for mobile view.\n * @param props - Configuration for the rows.\n * @returns A react node with a list of quick order grid rows for mobile view.\n */\nexport const QuickOrderGridMobileTableRowCellComponent: React.FC = (props: IQuickOrderGridTableRowProps) => {\n const product = props.data.product.productLine.fullProduct?.ProductDetails;\n const productListLine = props.data.product.productLine.productListLine;\n const { min, max, quantity } = props;\n if (product !== undefined) {\n return (\n <>\n \n \n \n \n
\n {product.RecordId}\n \n \n \n
\n \n \n \n \n \n );\n }\n return null;\n};\n\n/**\n * Quick order table row component.\n * @param props - Configuration of the component.\n * @returns React node for the row.\n */\nexport const QuickOrderGridTableRowComponent: React.FC = (props: IQuickOrderGridTableRowProps) => {\n const rowClassName = `${props.className}__row`;\n const isMobileView = isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\n let headerCells: JSX.Element;\n if (isMobileView) {\n headerCells = ;\n } else {\n headerCells = ;\n }\n\n return (\n \n {headerCells}\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 MsDyn365, { IComponent, IComponentProps, ICoreContext, IImageSettings } from '@msdyn365-commerce/core';\nimport React from 'react';\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { QuickOrderGridProduct } from '../quick-order-grid-product';\nimport { IQuickOrderGridRowCallbacks } from '../utilities';\nimport {\n IQuickOrderGridTableHeaderResources,\n IQuickOrderGridTableRowResources,\n QuickOrderGridTableHeaderComponent,\n QuickOrderGridTableRowComponent\n} from './components';\n\n/**\n * Quick order table data interface.\n */\ninterface IQuickOrderGridTableData {\n quickOrderGridProducts: QuickOrderGridProduct[];\n isOrderQuantityLimitsFeatureEnabled: boolean;\n}\n\n/**\n * Quick order table resources.\n */\nexport interface IQuickOrderGridTableResources extends IQuickOrderGridTableHeaderResources, IQuickOrderGridTableRowResources {}\n\n/**\n * Quick order table props.\n */\nexport interface IQuickOrderGridTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n moduleId: string;\n moduleTypeName: string;\n\n resources: IQuickOrderGridTableResources;\n isMobileView: boolean;\n imageSettings?: IImageSettings;\n callBacks: IQuickOrderGridRowCallbacks;\n}\n\n/**\n * Quick order table component.\n */\nexport interface IQuickOrderGridTableComponent extends IComponent {}\n\n/**\n * The quick order table.\n * @param props -- The quick order table props.\n * @returns The quick order table element.\n */\nexport const QuickOrderGridTableComponent: React.FC = (props: IQuickOrderGridTableProps) => {\n const [isMobile, setIsMobile] = React.useState(props.isMobileView);\n const quickOrderGridProducts = props.data.quickOrderGridProducts;\n const isOrderQuantityLimitsFeatureEnabled = props.data.isOrderQuantityLimitsFeatureEnabled;\n\n /**\n * Update the view port.\n */\n const updateViewport = () => {\n setIsMobile(props.isMobileView);\n };\n\n if (MsDyn365.isBrowser) {\n window.addEventListener('resize', updateViewport);\n }\n\n const headerClassName = `${props.className}__header`;\n const rowClassName = `${props.className}__row`;\n\n return (\n \n \n {quickOrderGridProducts.map((quickOrderProduct, index) => {\n let quantity = quickOrderProduct.productLine.productListLine.Quantity!;\n const product = quickOrderProduct.productLine.fullProduct;\n let min: number = 1;\n let max: number = 10;\n const behavior = product?.ProductDetails?.Behavior;\n if (isOrderQuantityLimitsFeatureEnabled && !ObjectExtensions.isNullOrUndefined(behavior)) {\n if (behavior.MinimumQuantity && behavior.MinimumQuantity > 0) {\n min = behavior.MinimumQuantity;\n }\n if (behavior.MaximumQuantity && behavior.MaximumQuantity > 0) {\n max = behavior.MaximumQuantity;\n }\n quantity = Math.max(quantity, min);\n }\n const price = quickOrderProduct.productLine.fullProduct?.ProductPrice;\n return (\n \n );\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 {\n getProductConfigure,\n IProductDimensionCallbacks,\n IProductDimensionConfigureResources,\n IProductDimensionConfigureViewProps\n} from '@msdyn365-commerce/components';\nimport {\n ProductDimension,\n ProductDimensionType,\n ProductDimensionValue,\n ProductListsDataActions,\n ProductListType,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport {\n addItemToProductListAction,\n AddItemToProductListInput,\n ArrayExtensions,\n createProductList,\n CreateProductListInput,\n FinitePromiseQueue,\n FinitePromiseQueueError,\n getDimensionsForSelectedVariant,\n GetDimensionsForSelectedVariantInput,\n getScanResult,\n GetScanResultInput,\n getSelectedVariant,\n IDimensionForSelectedVariant,\n IPromiseQueue,\n ObjectExtensions,\n QuickOrderTemplate,\n QuickOrderTemplateLine,\n SelectedVariantInput,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IModuleProps,\n INodeProps,\n isMobile,\n ITelemetryContent,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { debounce } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { ActiveProductListInput } from './actions';\nimport {\n EcommerceQuantityLimitConfigurationsFeatureName,\n IQuickOrderGridActionsProps,\n IQuickOrderGridActionsViewProps,\n IQuickOrderGridRowCallbacks,\n IQuickOrderGridState,\n QuickOrderGridActionsView,\n QuickOrderGridDrawer,\n QuickOrderGridFormComponent,\n QuickOrderGridProduct,\n QuickOrderGridTableComponent,\n RetailDefaultOrderQuantityLimitsFeatureName\n} from './components';\nimport { IQuickOrderGridData } from './quick-order-grid.data';\nimport { IQuickOrderGridProps, IQuickOrderGridResources } from './quick-order-grid.props.autogenerated';\n\n/**\n * QuickOrder Grid View props.\n */\nexport interface IQuickOrderGridViewProps extends IQuickOrderGridProps {\n header: JSX.Element;\n actions?: INodeProps;\n isB2bCustomer?: boolean;\n isQuickOrderGridFormExpanded: boolean;\n contentProps: INodeProps;\n drawer: INodeProps;\n loading?: React.ReactNode;\n quickOrderGridForm: INodeProps;\n quickOrderGridFormProductContent: INodeProps;\n quickOrderGridFormMsgContent: INodeProps;\n quickOrderGridProps: IModuleProps;\n form: React.ReactNode;\n configure?: IProductDimensionConfigureViewProps;\n isMobileView: boolean;\n container?: JSX.Element;\n orderActions?: IQuickOrderGridActionsViewProps | null;\n bulkPurchase?: React.ReactNode;\n}\n\n/**\n * QuickOrder Grid View port.\n */\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * QuickOrderGrid component.\n * @extends {React.PureComponent>}\n */\nclass QuickOrderGrid extends React.PureComponent, IQuickOrderGridState> {\n private readonly _productTextInput: React.RefObject;\n\n private readonly _quantityInput: React.RefObject;\n\n private readonly _waitTime: number = 500;\n\n private readonly _dimensionUpdateQueueMaxLength: number = 2;\n\n private readonly _errorCssClass: string = 'danger';\n\n private readonly _errorCssGlyphClass: string = 'fas fa-exclamation-triangle';\n\n private readonly _quickOrderGridFormClass: string;\n\n private readonly _quickOrderGridFormProductContent: string;\n\n private readonly _quickOrderGridFormMsgContent: string;\n\n private readonly _telemetryContent: ITelemetryContent;\n\n private readonly _dimensionUpdateQueue: IPromiseQueue = new FinitePromiseQueue(this._dimensionUpdateQueueMaxLength);\n\n private _dimensions: { [id: number]: string } = {};\n\n private _initializedDimensions: Set = new Set();\n\n private readonly _cssClassNameConfigure: string = 'ms-quick-order_grid__content-form-main';\n\n private readonly _className: string = 'ms-quick-order-grid';\n\n // @ts-expect-error: Debouce needs to be used as type.\n private _cancellabelDebounce: debounce;\n\n private _isOrderQuantityLimitsFeatureEnabled: boolean = false;\n\n private _isChannelLimitsFeatureEnabled: boolean = false;\n\n private _applyDefaultOrderSettingsForCartLine: boolean = false;\n\n private readonly _quickOrderGridCallbacks: IProductDimensionCallbacks = {\n initializeDimension: (initializedDimension: string): void => {\n if (initializedDimension) {\n this._initializedDimensions.add(initializedDimension);\n }\n },\n /**\n * Get Dropdown name.\n * @param selectedDimensionId - Dimension type.\n * @param selectedDimensionValueId - Resources.\n * @returns Dropdown name.\n */\n dimensionSelectedAsync: async (selectedDimensionId: number, selectedDimensionValueId: string): Promise => {\n this._dimensions[selectedDimensionId] = selectedDimensionValueId;\n // Only trigger _updateDimensions when all dimensions are initialized\n if (this._initializedDimensions.size === this.state.productDimensions?.length) {\n return this._dimensionUpdateQueue\n .enqueue(async () => {\n return this._updateDimensions();\n })\n .catch((error: string) => {\n // Ignore discarded processes.\n if (error !== FinitePromiseQueueError.ProcessWasDiscardedFromTheQueue) {\n throw new Error(error);\n }\n });\n }\n },\n\n /**\n * Get Dropdown name.\n * @param dimensionType - Dimension type.\n * @param resources - Resources.\n * @returns Dropdown name.\n */\n getDropdownName: (dimensionType: number, resources: IProductDimensionConfigureResources): string => {\n return this._getDropdownName(dimensionType, resources);\n },\n\n /**\n * Method to call on dimension change.\n * @param isUpdatingDimension - Flag to update dimension.\n */\n changeUpdatingDimension: (isUpdatingDimension: boolean): void => {\n this.setState({ isUpdatingDimension });\n }\n };\n\n private readonly _quickOrderGridRowCallbacks: IQuickOrderGridRowCallbacks = {\n /**\n * Method to call remove button.\n * @param line - Grid row product.\n */\n onRemoveItem: (line: QuickOrderGridProduct): void => {\n this._removeItemRowFromTable(line.productLine);\n },\n\n /**\n * Method to call on change quantity button.\n * @param productListLineId - Grid row product list line id.\n * @param quantity - Product quantity.\n * @returns - Falg to get confirmation for action.\n */\n onChangeQuantity: (productListLineId: string | undefined, quantity: number): boolean => {\n return this._changeRowQuantity(productListLineId, quantity);\n }\n };\n\n public constructor(props: IQuickOrderGridProps) {\n super(props);\n this._productTextInput = React.createRef();\n this._quantityInput = React.createRef();\n\n this._telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isQuickOrderGridFormExpanded: false,\n min: 0,\n max: 10,\n quantity: 1,\n productResponse: undefined,\n productDimensions: undefined,\n productDimensionErrorState: {\n configureErrors: {}\n },\n isMobile: this.isMobile,\n products: [],\n isUpdatingDimension: false,\n productListId: ''\n };\n\n this._quickOrderGridFormClass = 'ms-quick-order-grid__content-form';\n this._quickOrderGridFormProductContent = 'ms-quick-order-grid__content-form-main';\n this._quickOrderGridFormMsgContent = 'ms-quick-order-grid__content-form-msg';\n\n this._isOrderQuantityLimitsFeatureEnabled =\n this.props.data.featureState.result?.find(featureState => featureState.Name === RetailDefaultOrderQuantityLimitsFeatureName)\n ?.IsEnabled ?? false;\n\n this._isChannelLimitsFeatureEnabled =\n this.props.data.featureState.result?.find(featureState => featureState.Name === EcommerceQuantityLimitConfigurationsFeatureName)\n ?.IsEnabled ?? false;\n\n const cartConfiguration = this.props.data.cartConfiguration;\n this._applyDefaultOrderSettingsForCartLine = cartConfiguration?.result?.ValidateDefaultOrderSettingsPerLine ?? false;\n }\n\n @computed public get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { data } = this.props;\n if (!data.customerInformation.result) {\n return null;\n }\n const quickOrderTemplate = data.quickOrderTemplate;\n\n if (quickOrderTemplate?.result !== undefined) {\n this.setState({\n products: quickOrderTemplate.result.quickOrderTemplateLines,\n productListId: quickOrderTemplate.result.productList.Id\n });\n }\n const { className = '', maxQuantity } = this.props.config;\n const customerInfo = this.props.data.customerInformation.result;\n const {\n quickOrderGridModuleHeading,\n quickOrderGridModuleDescription,\n quickOrderGridAddtogrid,\n quickOrderGridProductQuantityInputLabel,\n quickOrderGridProductInputLabel,\n quickOrderGridProductDimensionTypeColor,\n quickOrderGridProductDimensionTypeConfiguration,\n quickOrderGridSelectDimensionFormatString,\n quickOrderGridProductDimensionTypeSize,\n quickOrderGridProductDimensionTypeStyle,\n quickOrderGridProductDimensionTypeAmount,\n quickOrderGridModulePageHeading\n } = this.props.resources;\n\n const productConfigureResources: IProductDimensionConfigureResources = {\n selectDimensionFormatString: quickOrderGridSelectDimensionFormatString,\n productDimensionTypeColor: quickOrderGridProductDimensionTypeColor,\n productDimensionTypeConfiguration: quickOrderGridProductDimensionTypeConfiguration,\n productDimensionTypeSize: quickOrderGridProductDimensionTypeSize,\n productDimensionTypeStyle: quickOrderGridProductDimensionTypeStyle,\n productDimensionTypeAmount: quickOrderGridProductDimensionTypeAmount\n };\n\n const { isQuickOrderGridFormExpanded, productDimensionErrorState, productResponse, productDimensions } = this.state;\n\n const headerClassName = `${this._className}__header`;\n\n const header = (\n
\n \n
\n );\n\n const viewProps: IQuickOrderGridViewProps = {\n ...(this.props as IQuickOrderGridProps),\n\n quickOrderGridProps: { className: classnames('ms-quick-order-grid', className), moduleProps: this.props },\n contentProps: { className: 'ms-quick-order-grid__content' },\n isB2bCustomer: customerInfo?.IsB2b,\n header,\n actions: {\n className: `${this._className}-action-bar`,\n tag: 'div'\n },\n drawer: {\n tag: QuickOrderGridDrawer,\n className: `${this._className}__drawer`,\n collapseProps: { isOpen: this.state.isQuickOrderGridFormExpanded },\n moduleHeadingText: quickOrderGridModuleHeading,\n moduleDescriptionText: quickOrderGridModuleDescription,\n requestContext: this.props.context.request,\n telemetryContent: this._telemetryContent\n },\n bulkPurchase: this._renderBulkPurchase(),\n quickOrderGridForm: {\n className: `${this._quickOrderGridFormClass} ${isQuickOrderGridFormExpanded ? 'qo-show' : 'qo-hide'}`\n },\n quickOrderGridFormProductContent: {\n className: this._quickOrderGridFormProductContent\n },\n quickOrderGridFormMsgContent: {\n className: this._quickOrderGridFormMsgContent\n },\n form: QuickOrderGridFormComponent({\n productTextInput: this._productTextInput,\n quantityTextInput: this._quantityInput,\n isAddtoListDisabled: !productResponse,\n ariaLabelAddtoCart: quickOrderGridAddtogrid,\n ariaLabelProduct: quickOrderGridProductInputLabel,\n ariaLabelQuantity: quickOrderGridProductQuantityInputLabel,\n maxChars: 50,\n minQuantity: this.state.min ?? 0,\n maxQuantity: this.state.max ?? maxQuantity,\n moduleClassName: this._className,\n quickOrderGridState: this.state,\n handleInputChange: this._handleInputChange,\n handleQuantityChange: this._handleQuantityChange,\n handleAddProductListClick: this._addItemToProductListLine\n }),\n configure:\n productResponse && productDimensions\n ? getProductConfigure(\n this._cssClassNameConfigure,\n this.props.context,\n this.props.friendlyName,\n this.props.telemetry,\n quickOrderGridSelectDimensionFormatString,\n productConfigureResources,\n this._quickOrderGridCallbacks,\n productResponse,\n productDimensions,\n productDimensionErrorState\n )\n : undefined,\n isQuickOrderGridFormExpanded: this.state.isQuickOrderGridFormExpanded,\n isMobileView: this.state.isMobile,\n container: ArrayExtensions.hasElements(this.state.products) ? this._renderListContainer() : undefined,\n orderActions: this._renderQuickOrderGridActions(quickOrderTemplate?.result)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _renderQuickOrderGridActions(quickOrderTemplate: QuickOrderTemplate | undefined): IQuickOrderGridActionsViewProps | null {\n const { typeName, context, resources } = this.props;\n const {\n quickOrderGridDeleteButtonText,\n quickOrderGridBuySelectedButtonText,\n quickOrderGridBuySelectedButtonAriaLabel,\n quickOrderGridBuySelectedAddingToCartErrorNotificationTitle,\n quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel,\n quickOrderGridGoToCartText,\n quickOrderGridDialogCloseText,\n quickOrderGridSingleItemText,\n quickOrderGridMultiLineItemFormatText,\n quickOrderGridMultiLinesFormatText,\n quickOrderGridHeaderMessageText,\n addedQuantityText,\n originalPriceText,\n currentPriceText,\n freePriceText\n } = resources;\n if (ArrayExtensions.hasElements(quickOrderTemplate?.quickOrderTemplateLines)) {\n const quickOrderGridActions: IQuickOrderGridActionsProps = {\n data: { quickOrderTemplate },\n moduleClassName: this._className,\n id: 'quick-order-grid',\n typeName,\n context,\n handlers: {\n removeProductList: this._removeProductList,\n onErrorMessage: (message: string) =>\n this.setState({\n topStateMessage: {\n messageText: message,\n statusCssString: this._errorCssClass,\n messageGlyph: this._errorCssGlyphClass,\n isOpen: true\n }\n })\n },\n quickOrderGridState: this.state,\n resources: {\n quickOrderGridDeleteButtonText,\n quickOrderGridBuySelectedButtonText,\n quickOrderGridBuySelectedButtonAriaLabel,\n quickOrderGridBuySelectedAddingToCartErrorNotificationTitle,\n quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel,\n quickOrderGridGoToCartText,\n quickOrderGridDialogCloseText,\n quickOrderGridSingleItemText,\n quickOrderGridMultiLineItemFormatText,\n quickOrderGridMultiLinesFormatText,\n quickOrderGridHeaderMessageText,\n addedQuantityText,\n originalPriceText,\n currentPriceText,\n freePriceText\n }\n };\n\n return QuickOrderGridActionsView(quickOrderGridActions);\n }\n return null;\n }\n\n /**\n * Renders bulk purchase module.\n * @returns Bulk purchase module react node.\n */\n private _renderBulkPurchase(): 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 (!ArrayExtensions.hasElements(this.props.slots.bulkPurchaseSlots)) {\n return null;\n }\n\n const containerClass = `${this._className}__bulk-purchase`;\n return (\n
\n {React.cloneElement(this.props.slots.bulkPurchaseSlots[0] as React.ReactElement, {\n productDimensions: this.state.productDimensions\n })}\n
\n );\n }\n\n /**\n * Render list container.\n * @returns JSX element.\n */\n private _renderListContainer(): JSX.Element {\n const containerClass = `${this._className}__table-content`;\n return
{this._renderQuickOrderTable(this._className)}
;\n }\n\n /**\n * Initial the products on quick order.\n * @returns List of quick order products or undefined.\n */\n private _initQuickOrderGridProducts(): QuickOrderGridProduct[] {\n const products: QuickOrderTemplateLine[] = this.state.products;\n\n const quickOrderGridProduct: QuickOrderGridProduct[] = products.map((product: QuickOrderTemplateLine) => {\n return new QuickOrderGridProduct(product);\n });\n\n return ArrayExtensions.validValues(quickOrderGridProduct);\n }\n\n /**\n * Method to call on clear button.\n */\n private readonly _removeProductList = () => {\n const { context, data, telemetry, resources } = this.props;\n const { quickOrderTemplate } = data;\n const userToken = context.request.user.isAuthenticated && context.request.user.token;\n if (userToken && quickOrderTemplate && quickOrderTemplate.result) {\n ProductListsDataActions.deleteAsync({ callerContext: context.actionContext }, quickOrderTemplate.result.productList)\n .then(() => {\n window.location.reload();\n })\n .catch((error: string) => {\n telemetry.warning('[quick-order-grid] Unable to delete product list.');\n telemetry.error(error);\n this._updateStatusState(\n resources.quickOrderGridDeleteProductListFailedText,\n this._errorCssClass,\n this._errorCssGlyphClass,\n true\n );\n });\n } else {\n telemetry.warning('[quick-order-grid] Failed to delete product list. Product List was not found');\n }\n };\n\n /**\n * Initial the products on quick order.\n * @param className - Class name.\n * @returns JSX element.\n */\n private _renderQuickOrderTable(className: string): JSX.Element {\n const tableClassName = `${className}__table-list`;\n\n return (\n \n );\n }\n\n private _updateQuantitiesInState(product: SimpleProduct): void {\n const min: number = this._getMinQuantityForCartLineItem(this._isOrderQuantityLimitsFeatureEnabled, product);\n const max: number = this._getMaxQuantityForCartLineItem(\n this._isChannelLimitsFeatureEnabled || this._isOrderQuantityLimitsFeatureEnabled,\n product\n );\n let quantity: number = this._getQuantity(\n this._isOrderQuantityLimitsFeatureEnabled,\n this._applyDefaultOrderSettingsForCartLine,\n product\n );\n quantity = Math.max(quantity, min);\n\n this.setState({\n min,\n max,\n quantity\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 this.props.context.app.config.maxQuantityForCartLineItem;\n }\n\n private _getQuantity(\n isOrderQuantityLimitsFeatureEnabled: boolean,\n applyDefaultOrderSettingsForCartLine: boolean,\n product: SimpleProduct\n ): number {\n let defaultQuantity = 1;\n\n if (!isOrderQuantityLimitsFeatureEnabled || !applyDefaultOrderSettingsForCartLine) {\n return defaultQuantity;\n }\n\n if (product?.Behavior?.DefaultQuantity && product.Behavior.DefaultQuantity > 0) {\n defaultQuantity = product.Behavior.DefaultQuantity;\n }\n\n return defaultQuantity;\n }\n\n /**\n * Method to called on product input change.\n * @param query - Product inventory info.\n */\n private readonly _handleInputChange = (query: string): void => {\n const queryMinLength = 4;\n if (!query || query.length > queryMinLength) {\n this.setState({ quantity: 0, productDimensions: [], productResponse: undefined });\n this._updateStatusState('', '', '', false);\n }\n if (this._cancellabelDebounce) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call -- existing code.\n this._cancellabelDebounce.cancel();\n }\n\n const { telemetry, context } = this.props;\n const zeroNumber = 0;\n if (!StringExtensions.isNullOrEmpty(query)) {\n this._cancellabelDebounce = debounce(() => {\n getScanResult(\n new GetScanResultInput(\n context.actionContext.requestContext.apiSettings,\n query,\n context.actionContext.requestContext.apiSettings.channelId\n ),\n this.props.context.actionContext\n )\n .then(results => {\n this.setState({\n productResponse: results?.Product,\n productDimensions: results?.ProductDimensionFull,\n isQuickOrderGridFormExpanded: true\n });\n if (results?.Product) {\n this._updateQuantitiesInState(results.Product);\n }\n })\n .catch((error: Error) => {\n telemetry.exception(error);\n telemetry.debug('Unable to get scan results');\n });\n }, this._waitTime);\n\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- Existing code.\n this._cancellabelDebounce();\n }, zeroNumber);\n this.setState({ isQuickOrderGridFormExpanded: true });\n } else {\n this.setState({ productResponse: undefined, isQuickOrderGridFormExpanded: true });\n }\n };\n\n /**\n * Method to called on quantity change.\n * @param value - Quantity value.\n */\n private readonly _handleQuantityChange = (value: string): void => {\n let currentValue = Number.parseInt(value, 10);\n const inputElement = this._quantityInput.current instanceof HTMLInputElement && this._quantityInput.current;\n const quantityChangeDebounceTimeout = 200;\n let minimumQuantity = 0;\n let needToUpdateUIValue: boolean = false;\n if (this._isOrderQuantityLimitsFeatureEnabled && !ObjectExtensions.isNullOrUndefined(this.state.productResponse?.Behavior)) {\n const behavior = this.state.productResponse!.Behavior;\n minimumQuantity = behavior?.MinimumQuantity ?? 0;\n const newCurrentValue = Math.max(currentValue, minimumQuantity);\n if (newCurrentValue !== currentValue) {\n needToUpdateUIValue = true;\n }\n currentValue = newCurrentValue;\n }\n\n this.setState({ quantity: currentValue }, () => {\n debounce(() => {\n if (needToUpdateUIValue && !Number.isNaN(this.state.quantity) && inputElement) {\n inputElement.setAttribute('aria-valuenow', currentValue.toString());\n inputElement.value = currentValue.toString();\n }\n }, quantityChangeDebounceTimeout)();\n });\n };\n\n /**\n * Method to get dropdwon name.\n * @param dimensionType - Dimension Type.\n * @param resources - String resources.\n * @returns Dropdwon label.\n */\n private readonly _getDropdownName = (dimensionType: number, resources: IProductDimensionConfigureResources): string => {\n const isGiftCard = this.state.productResponse?.IsGiftCard;\n\n switch (dimensionType) {\n case ProductDimensionType.Color: // ProductDimensionType.Color\n return resources.productDimensionTypeColor;\n case ProductDimensionType.Configuration: // ProductDimensionType.Configuration\n return resources.productDimensionTypeConfiguration;\n case ProductDimensionType.Size: // ProductDimensionType.Size\n return resources.productDimensionTypeSize;\n case ProductDimensionType.Style: // ProductDimensionType.Style\n return isGiftCard ? resources.productDimensionTypeAmount : resources.productDimensionTypeStyle;\n default:\n return '';\n }\n };\n\n /**\n * Method to update dimension and product in UI.\n */\n private readonly _updateDimensions = async (): Promise => {\n const {\n context: {\n actionContext,\n request: {\n apiSettings: { channelId }\n }\n }\n } = this.props;\n const { productDimensions, productResponse } = this.state;\n const hasProductDimensions = ArrayExtensions.hasElements(productDimensions);\n if (!productResponse || !hasProductDimensions) {\n return;\n }\n\n const dimensionsToUpdate: { [id: number]: string } = { ...this._dimensions };\n this.setState({ isUpdatingDimension: true });\n\n // eslint-disable-next-line no-console -- Testing.\n console.log(this.state.isUpdatingDimension);\n\n // Step 1: Update state to indicate which dimensions are selected\n if (this.state.productDimensionErrorState.otherError) {\n // eslint-disable-next-line react/no-access-state-in-setstate -- existing code.\n const clearOtherErrorState = { ...this.state.productDimensionErrorState };\n clearOtherErrorState.otherError = undefined;\n this.setState({ productDimensionErrorState: clearOtherErrorState });\n }\n\n // Step 2: Clear any errors indicating the dimension wasn't selected\n for (const dimensionKey of Object.keys(dimensionsToUpdate)) {\n if (this.state.productDimensionErrorState.configureErrors[dimensionKey]) {\n // eslint-disable-next-line react/no-access-state-in-setstate -- existing code.\n const errorState = { ...this.state.productDimensionErrorState };\n errorState.configureErrors[dimensionKey] = undefined;\n\n this.setState({ productDimensionErrorState: errorState });\n }\n }\n\n // Step 3, Build the actually selected dimensions, prioritizing the information in state\n // over the information in data\n const mappedDimensions = productDimensions\n ?.map(dimension => {\n return {\n DimensionTypeValue: dimension.DimensionTypeValue,\n DimensionValue:\n this._updateDimensionValue(dimension, dimensionsToUpdate[dimension.DimensionTypeValue]) ?? dimension.DimensionValue,\n ExtensionProperties: dimension.ExtensionProperties\n };\n })\n .filter(dimension => {\n return dimension.DimensionValue;\n });\n\n // Step 4. Use these dimensions hydrate the product. Wrap this in a promise\n // so that places like add to cart can await it\n // eslint-disable-next-line no-async-promise-executor -- existing code\n const selectedProduct = new Promise(async resolve => {\n const newProduct = await getSelectedVariant(\n new SelectedVariantInput(\n productResponse.MasterProductId ? productResponse.MasterProductId : productResponse.RecordId,\n channelId,\n mappedDimensions,\n undefined,\n this.props.context.request\n ),\n actionContext\n );\n if (newProduct) {\n await getDimensionsForSelectedVariant(\n new GetDimensionsForSelectedVariantInput(\n newProduct.MasterProductId ? newProduct.MasterProductId : newProduct.RecordId,\n channelId,\n mappedDimensions,\n this.props.context.request\n ),\n actionContext\n );\n }\n\n resolve(newProduct);\n });\n\n const variantProduct = await selectedProduct;\n this.setState({ productResponse: variantProduct !== null ? variantProduct : undefined });\n };\n\n /**\n * Method to get updated dimension value.\n * @param productDimensionFull - Product dimension full.\n * @param newValueId - New Dimension value.\n * @returns Dimension Value.\n */\n private readonly _updateDimensionValue = (\n productDimensionFull: IDimensionForSelectedVariant,\n newValueId: string | undefined\n ): ProductDimensionValue | undefined => {\n if (newValueId && productDimensionFull.DimensionValues) {\n return productDimensionFull.DimensionValues.find(dimension => dimension.RecordId === +newValueId);\n }\n\n return undefined;\n };\n\n /**\n * Method to get dropdwon name.\n * @param dimensionTypeValue - Dimension Type.\n * @param resources - String resources.\n * @param isGiftCard - Flag to check if its a giftcard product.\n * @returns Dropdwon error label.\n */\n private readonly _getDimensionErrorString = (\n dimensionTypeValue: number,\n resources: IQuickOrderGridResources,\n isGiftCard?: boolean\n ): string => {\n const amountErrorMessage = resources.quickOrderGridproductDimensionTypeAmountErrorMessage;\n\n switch (dimensionTypeValue) {\n case ProductDimensionType.Color: // ProductDimensionType.Color\n return resources.quickOrderGridproductDimensionTypeColorErrorMessage;\n case ProductDimensionType.Configuration: // ProductDimensionType.Configuration\n return resources.quickOrderGridproductDimensionTypeConfigurationErrorMessage;\n case ProductDimensionType.Size: // ProductDimensionType.Size\n return resources.quickOrderGridproductDimensionTypeSizeErrorMessage;\n case ProductDimensionType.Style: // ProductDimensionType.Style\n return isGiftCard ? amountErrorMessage : resources.quickOrderGridproductDimensionTypeStyleErrorMessage;\n default:\n return '';\n }\n };\n\n /**\n * Initial the products on quick order.\n * @param productResponse - Simple Product.\n * @param quantity - Product Quantity.\n * @returns Flag to validate productlistline.\n */\n private readonly _validateCart = (productResponse: SimpleProduct, quantity: number): boolean => {\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- existing code\n const missingDimensions = productResponse.Dimensions?.filter(\n dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value)\n );\n const minimumQuantity = 0;\n if (ArrayExtensions.hasElements(missingDimensions)) {\n const userMessage = this._getConfigureErrors(missingDimensions, false);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- existing code\n if (this.state.productDimensionErrorState.configureErrors) {\n // eslint-disable-next-line react/no-access-state-in-setstate -- existing code\n const errorState = { ...this.state.productDimensionErrorState };\n errorState.configureErrors = userMessage;\n\n this.setState({ productDimensionErrorState: errorState });\n return false;\n }\n }\n\n if (quantity <= minimumQuantity) {\n const resources = this.props.resources;\n this._updateStatusState(resources.quickOrderGridWrongQuantityErrorMsg, this._errorCssClass, this._errorCssGlyphClass, true);\n return false;\n }\n return true;\n };\n\n /**\n * Initial the products on quick order.\n * @param result - Simple Product.\n * @param isGiftCard - Product Quantity.\n * @returns Flag to validate cart.\n */\n private _getConfigureErrors(\n result: ProductDimension[] | undefined,\n isGiftCard?: boolean\n ): { [configureId: string]: string | undefined } {\n if (!result) {\n return {};\n }\n const dimensions: { [configureId: string]: string | undefined } = {};\n const resources = this.props.resources;\n for (const dimension of result) {\n dimensions[dimension.DimensionTypeValue] = this._getDimensionErrorString(dimension.DimensionTypeValue, resources, isGiftCard);\n }\n return dimensions;\n }\n\n /**\n * Method to call on quantity change in row.\n * @param itemKey - Product Key.\n * @param quantity - Product quantity.\n * @returns Flag to update status.\n */\n private readonly _changeRowQuantity = (itemKey: string | undefined, quantity: number): boolean => {\n const { context, data, telemetry } = this.props;\n const { quickOrderTemplate } = data;\n if (quickOrderTemplate?.result) {\n const quickOrderTemplateLinesData = quickOrderTemplate.result.quickOrderTemplateLines;\n if (ArrayExtensions.hasElements(quickOrderTemplateLinesData)) {\n const orderLineIndex = quickOrderTemplateLinesData.findIndex(\n (lines: QuickOrderTemplateLine) => lines.productListLine.LineId === itemKey\n );\n const newProductListLine = { ...quickOrderTemplateLinesData[orderLineIndex] };\n if (quickOrderTemplateLinesData[orderLineIndex].productListLine.Quantity === quantity) {\n return true;\n }\n const previousQuantity = newProductListLine.productListLine.Quantity;\n newProductListLine.productListLine.Quantity = quantity;\n const { fullProduct, ...line } = newProductListLine;\n\n ProductListsDataActions.updateProductListLinesAsync(\n { callerContext: context.actionContext },\n quickOrderTemplate.result.productList.Id,\n [line.productListLine]\n )\n .then(list => {\n if (ArrayExtensions.hasElements(list)) {\n const newLine = list.find(lines => lines.LineId === itemKey);\n quickOrderTemplateLinesData[orderLineIndex].productListLine = newLine!;\n const updatedLines = [...quickOrderTemplateLinesData];\n updatedLines[orderLineIndex] = { fullProduct, productListLine: newLine! };\n const updatedProductList = { ...quickOrderTemplate.result, ProductListLines: updatedLines };\n context.actionContext.update(\n new ActiveProductListInput(context.actionContext.requestContext),\n updatedProductList\n );\n return true;\n }\n\n return false;\n })\n .catch((error: Error) => {\n telemetry.warning('[quick-order-grid] Unable to update product quantity.');\n telemetry.error(error.message);\n const userMessage = 'Failed to update quantity value.';\n newProductListLine.productListLine.Quantity = previousQuantity;\n this._updateStatusState(userMessage, this._errorCssClass, this._errorCssGlyphClass, true);\n return false;\n });\n }\n return false;\n }\n\n return false;\n };\n\n /**\n * Method to call on remove item from table.\n * @param line - Order Template Line.\n */\n private readonly _removeItemRowFromTable = (line: QuickOrderTemplateLine): void => {\n const { context, data, telemetry } = this.props;\n const { quickOrderTemplate } = data;\n\n if (quickOrderTemplate?.result) {\n const userToken = context.request.user.isAuthenticated && context.request.user.token;\n if (userToken) {\n ProductListsDataActions.removeProductListLinesAsync(\n { callerContext: context.actionContext },\n line.productListLine.ProductListId!,\n [line.productListLine]\n )\n .then(() => {\n window.location.reload(false);\n })\n .catch((error: Error) => {\n telemetry.warning('[quick-order-grid] Unable remove item from product list grid');\n telemetry.error(error.message);\n });\n } else {\n telemetry.warning('[quick-order-grid] Unable remove items from product list grid user token was not found');\n }\n }\n };\n\n /**\n * Method to call on add item from form.\n */\n private readonly _addItemToProductListLine = async (): Promise => {\n const {\n context: { actionContext },\n resources,\n telemetry\n } = this.props;\n const {\n quickOrderGridAddedToGridSuccessMessage,\n quickOrderGridAddedToGridFailureMessage,\n quickOrderGridAddedToGridDuplicateError\n } = resources;\n const { productResponse, quantity, productListId } = this.state;\n\n this._updateStatusState('', '', '', false);\n\n if (productResponse !== undefined && this._validateCart(productResponse, quantity)) {\n if (StringExtensions.isNullOrWhitespace(productListId)) {\n await this._createProductList();\n }\n\n if (StringExtensions.isNullOrWhitespace(this.state.productListId)) {\n this._updateStatusState(quickOrderGridAddedToGridFailureMessage, this._errorCssClass, this._errorCssGlyphClass, true);\n return;\n }\n const input = new AddItemToProductListInput(\n this.state.productListId,\n productResponse.RecordId,\n quantity,\n productResponse.DefaultUnitOfMeasure ?? 'ea'\n );\n\n await addItemToProductListAction(input, actionContext)\n .then(result => {\n if (result.ProductListId) {\n this._updateStatusState(quickOrderGridAddedToGridSuccessMessage, 'success', 'fas fa-check', true);\n window.location.reload();\n this.setState({});\n }\n })\n .catch((error: Error) => {\n telemetry.debug('[quick-order-grid] Error trying to Update Grid Line from the quick order grid');\n if (error.name === 'Microsoft_Dynamics_Commerce_Runtime_DuplicateObject') {\n this._updateStatusState(\n quickOrderGridAddedToGridDuplicateError,\n this._errorCssClass,\n this._errorCssGlyphClass,\n true\n );\n } else {\n this._updateStatusState(\n quickOrderGridAddedToGridFailureMessage,\n this._errorCssClass,\n this._errorCssGlyphClass,\n true\n );\n }\n });\n }\n };\n\n /**\n * Method to create product list.\n * @returns - ProductListId.\n */\n private _createProductList = async (): Promise => {\n const {\n context: { actionContext },\n telemetry,\n resources\n } = this.props;\n const { productListId } = this.state;\n const { quickOrderGridAddedToGridFailureMessage } = resources;\n\n if (StringExtensions.isNullOrWhitespace(productListId)) {\n const input = new CreateProductListInput('', ProductListType.QuickOrder);\n\n await createProductList(input, actionContext)\n .then(result => {\n if (!StringExtensions.isNullOrWhitespace(result.Id)) {\n this.setState({ productListId: result.Id });\n return result.Id;\n }\n return '';\n })\n .catch((error: Error) => {\n telemetry.debug('[quick-order-grid] Error on creating productlist from quick order grid');\n telemetry.error(error.message);\n this._updateStatusState(quickOrderGridAddedToGridFailureMessage, this._errorCssClass, this._errorCssGlyphClass, true);\n return '';\n });\n return '';\n }\n\n return productListId;\n };\n\n /**\n * Method to create product list.\n * @param messageText - Message Text.\n * @param statusCssString - Css class names.\n * @param messageGlyph - Glyph string.\n * @param isOpen - Flag to show.\n */\n private readonly _updateStatusState = (messageText: string, statusCssString: string, messageGlyph: string, isOpen: boolean): void => {\n this.setState({\n // eslint-disable-next-line react/no-unused-state -- Showing user message in Form component.\n stateMessage: {\n messageText,\n statusCssString,\n messageGlyph,\n isOpen\n }\n });\n };\n}\nexport default QuickOrderGrid;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IErrorState } from '@msdyn365-commerce/components';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IDimensionForSelectedVariant, OrderTemplateLine } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { QuickOrderGridProduct } from './quick-order-grid-product';\n\n/**\n * QuickOrderGrid state message Interface.\n */\nexport interface IQuickOrderGridStateMessage {\n isOpen: boolean;\n messageGlyph: string;\n messageText: string;\n statusCssString: string;\n}\n\n/**\n * QuickOrderGrid state Interface.\n */\nexport interface IQuickOrderGridState {\n isQuickOrderGridFormExpanded: boolean;\n isUpdatingDimension?: boolean;\n productResponse: SimpleProduct | undefined;\n productDimensions: IDimensionForSelectedVariant[] | undefined;\n min: number | undefined;\n max: number | undefined;\n quantity: number;\n stateMessage?: IQuickOrderGridStateMessage;\n topStateMessage?: IQuickOrderGridStateMessage;\n productDimensionErrorState: IErrorState;\n isMobile: boolean;\n products: OrderTemplateLine[];\n productListId: string;\n}\n\n/**\n * QuickOrder Grid Row view.\n */\nexport interface IQuickOrderGridRowViewModel extends OrderTemplateLine {\n isChecked: boolean;\n}\n\n/**\n * Interface for quick order callbacks.\n */\nexport interface IQuickOrderGridRowCallbacks {\n onRemoveItem(line: QuickOrderGridProduct): void;\n onChangeQuantity(orderTemplateLineId: string | undefined, quantity: number): boolean;\n}\n\n/**\n * Interface for quick order grid action view props.\n */\nexport interface IQuickOrderGridActionsViewProps {\n addProductListToBag: React.ReactNode;\n removeProductList?: React.ReactNode;\n userMessage?: React.ReactNode;\n}\n\nexport const RetailDefaultOrderQuantityLimitsFeatureName: string = 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature';\n\nexport const EcommerceQuantityLimitConfigurationsFeatureName: string =\n 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionConfigureDropdownViewProps, IProductDimensionConfigureViewProps } from '@msdyn365-commerce/components';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderGridViewProps, IQuickOrderGridFormViewProps } from './index';\n\n/**\n * Render product dimension/configure dropdown.\n * @param dropdown -- Product dimension drop down.\n * @returns Dropdown.\n */\nconst renderConfigureDropdown = (dropdown: IProductDimensionConfigureDropdownViewProps): JSX.Element => {\n const { containerProps, labelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {errors}\n {select}\n \n );\n};\n\n/**\n * Render product dimension/configure container.\n * @param configure -- Product dimension configuration.\n * @returns Container to have dimension dropdown.\n */\nconst renderConfigure = (configure?: IProductDimensionConfigureViewProps): JSX.Element | null => {\n if (configure !== undefined) {\n const { containerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n }\n return null;\n};\n\n/**\n * Render product dimension/configure container.\n * @param form -- Form props.\n * @param isMobileView -- Flag to check mobile view.\n * @param quickOrderForm - Form component container.\n * @param quickOrderProductContent - Form product component.\n * @param quickOrderMessageContent - Form user message component.\n * @param configure - Product Dimension component.\n * @returns Jsx element of quick order form component.\n */\nconst renderForm = (\n form: IQuickOrderGridFormViewProps,\n isMobileView: boolean,\n quickOrderForm: INodeProps,\n quickOrderProductContent: INodeProps,\n quickOrderMessageContent: INodeProps,\n configure?: IProductDimensionConfigureViewProps\n) => {\n return isMobileView ? (\n \n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.userMessage}\n {form.addToListBtn}\n \n \n ) : (\n \n {form.userMessage}\n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.addToListBtn}\n \n \n );\n};\n\n/**\n * Retrieves current sort criteria.\n * @param props - QuickOrder Grid view props.\n * @returns - Render View.\n */\nconst quickOrderGridView: React.FC = props => {\n const {\n quickOrderGridProps,\n contentProps,\n form,\n quickOrderGridForm,\n drawer,\n configure,\n quickOrderGridFormProductContent,\n quickOrderGridFormMsgContent,\n isMobileView,\n header,\n container,\n actions,\n orderActions\n } = props;\n\n return (\n \n {header}\n {actions && (\n \n {orderActions?.userMessage}\n {orderActions?.addProductListToBag}\n {orderActions?.removeProductList}\n \n )}\n \n \n {renderForm(\n form as IQuickOrderGridFormViewProps,\n isMobileView,\n quickOrderGridForm,\n quickOrderGridFormProductContent,\n quickOrderGridFormMsgContent,\n configure\n )}\n {props.bulkPurchase}\n \n \n {container}\n \n );\n};\n\nexport default quickOrderGridView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, Collapse, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IQuickOrderDrawerProps } from './quick-order-drawer-props';\n\nexport interface IQuickOrderDrawerState {\n isOpen: boolean;\n}\n\nexport type GlyphPlacement = 'start' | 'end';\n\n/**\n * Quick Order Drawer - This is a full width uncontrolled collapse where the button glyph changes\n * when the drawer is open and closed.\n */\n\nexport default class QuickOrderDrawer extends React.Component {\n public state: IQuickOrderDrawerState;\n\n private readonly drawerOpenGlyph: string;\n\n private readonly drawerCloseGlyph: string;\n\n private readonly drawerGlyphClass: string;\n\n private isManuallyToggled: boolean;\n\n constructor(props: IQuickOrderDrawerProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this.isManuallyToggled = false;\n this.state = { isOpen: (props.collapseProps && props.collapseProps.isOpen) || false };\n this.drawerGlyphClass = classnames('drawer__glyph', this.props.toggleGlyphClassName ? this.props.toggleGlyphClassName : '');\n\n if (this.props.animateGlyph) {\n this.drawerOpenGlyph = classnames(\n this.drawerGlyphClass,\n this.props.openGlyph ? this.props.openGlyph : this.props.closeGlyph ? this.props.closeGlyph : ''\n );\n this.drawerCloseGlyph = this.drawerOpenGlyph;\n } else {\n this.drawerOpenGlyph = classnames(this.drawerGlyphClass, this.props.openGlyph ? this.props.openGlyph : '');\n this.drawerCloseGlyph = classnames(this.drawerGlyphClass, this.props.closeGlyph ? this.props.closeGlyph : '');\n }\n }\n\n public shouldComponentUpdate(nextProps: IQuickOrderDrawerProps, nextState: IQuickOrderDrawerState): boolean {\n if (this.state === nextState && this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const collapseProps = { ...this.props.collapseProps } as ICollapseProps;\n\n // If the drawer is manually toggled by pressing the button, then we use the internal state\n if (collapseProps.isOpen === undefined || this.isManuallyToggled) {\n collapseProps.isOpen = this.state.isOpen;\n } else {\n // eslint-disable-next-line react/no-direct-mutation-state\n this.state.isOpen = collapseProps.isOpen;\n }\n collapseProps.children = this.props.children;\n const drawerClass = classnames('drawer', this.props.className ? this.props.className : '');\n this.isManuallyToggled = false;\n return (\n
\n \n {this._generateDrawerButtonInnerMarkup(collapseProps.isOpen)}\n \n \n
\n );\n }\n\n private _generateDrawerButtonInnerMarkup(collapseState: boolean): JSX.Element {\n const drawerButtonTextClass = classnames(\n 'drawer__buttontext',\n this.props.toggleButtonClassName ? this.props.toggleButtonClassName : ''\n );\n return (\n <>\n

{this.props.moduleHeadingText}

\n \n {this.props.moduleDescriptionText}\n \n {this._generateGlyphMarkup('drawer__glyph__end', collapseState)}\n \n );\n }\n\n private _generateGlyphMarkup(location: string, collapseState: boolean): JSX.Element {\n let glyphClass = collapseState ? this.drawerOpenGlyph : this.drawerCloseGlyph;\n glyphClass = `${glyphClass} ${location}`;\n return ;\n }\n\n private _toggle(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n this.setState({ isOpen: !this.state.isOpen });\n this.isManuallyToggled = true;\n if (this.props.onToggle) {\n this.props.onToggle(this.state);\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 { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderState } from '../quick-order';\n\nexport interface IQuickOrderFormProps {\n disableAddtoCart: boolean | undefined;\n productTextInput: React.RefObject;\n quantityTextInput: React.RefObject;\n maxChars: number;\n maxQuantity?: number;\n ariaLabelQuantity: string;\n ariaLabelProduct: string;\n ariaLabelAddtoCart: string;\n addQuantityPlaceholderText: string;\n quickOrderState: IQuickOrderState;\n handleInputChange(query: string): void;\n handleQuantityChange(query: string): void;\n handleAddToCartClick(): Promise;\n}\n\nexport interface IQuickOrderFormViewProps {\n product: React.ReactNode;\n quantity: React.ReactNode;\n addToCartBtn: React.ReactNode;\n userMessage?: React.ReactNode;\n}\n\n/**\n * On Input Change functionality.\n * @param handleInputChange -Input change function.\n * @returns Input change value.\n */\nconst onInputChangeFunction = (handleInputChange: (query: string) => void) => (event: React.ChangeEvent) => {\n handleInputChange(event.target.value || '');\n};\n\n/**\n * On Quantity Change functionality.\n * @param handleQuantityChange -Quantity change function.\n * @returns Quantity change value.\n */\nconst onQuantityChangeFunction = (handleQuantityChange: (query: string) => void) => (event: React.ChangeEvent) => {\n handleQuantityChange(event.target.value || '');\n};\n\nexport const QuickOrderFormComponent = (props: IQuickOrderFormProps): IQuickOrderFormViewProps => {\n const {\n productTextInput,\n quantityTextInput,\n quickOrderState,\n maxChars,\n maxQuantity,\n disableAddtoCart,\n ariaLabelQuantity,\n ariaLabelProduct,\n ariaLabelAddtoCart,\n addQuantityPlaceholderText,\n handleQuantityChange,\n handleInputChange,\n handleAddToCartClick\n } = props;\n\n const onInputChange = onInputChangeFunction(handleInputChange);\n\n const onQuantityInputChange = onQuantityChangeFunction(handleQuantityChange);\n\n const productNode = (\n
\n

\n {ariaLabelProduct}\n

\n \n
\n );\n\n const quantityNode = (\n
\n

\n {ariaLabelQuantity}\n

\n \n
\n );\n\n const addtoCartNode = (\n
\n \n {ariaLabelAddtoCart}\n \n
\n );\n\n const userMessageNode =\n quickOrderState && quickOrderState.stateMessage ? (\n \n \n {quickOrderState.stateMessage.messageText}\n \n ) : (\n undefined\n );\n\n return {\n product: productNode,\n addToCartBtn: addtoCartNode,\n quantity: quantityNode,\n userMessage: userMessageNode\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { observable } from 'mobx';\n\n/**\n * Represents a product for quick order.\n */\nexport class QuickOrderProduct {\n @observable\n public isSelected: boolean;\n\n public readonly cartLine: CartLine;\n\n public readonly simpleProduct: SimpleProduct;\n\n public constructor(cartLine: CartLine, simpleProduct: SimpleProduct) {\n this.cartLine = cartLine;\n this.simpleProduct = simpleProduct;\n this.isSelected = false;\n }\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, ICoreContext } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\n/**\n * Interface for quick order table header resources.\n */\nexport interface IQuickOrderTableHeaderResources {\n quickOrderProductNumberText: string;\n quickOrderProductText: string;\n quickOrderUnitPriceText: string;\n quickOrderUnitOfMeasureText: string;\n quickOrderQuantityText: string;\n quickOrderTotalText: string;\n quickOrderActionsText: string;\n}\n\n/**\n * Interface for quick order table props.\n */\nexport interface IQuickOrderTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isMobile: boolean;\n resources: IQuickOrderTableHeaderResources;\n}\n\n/**\n * Interface for quick order table header component.\n */\nexport interface IQuickOrderTableHeaderComponent extends IComponent {}\n\n/**\n * Get the quick order header cells for desktop.\n * @param props -- The quick order table header props.\n * @returns The list of cells for quick order header component in desktop version.\n */\nconst QuickOrderDesktopHeaderCellsComponent: React.FC = (props: IQuickOrderTableHeaderProps) => {\n const { resources } = props;\n const columnWithNumberClassName = `${props.className}__row__column-with-number`;\n return (\n <>\n \n \n \n {resources.quickOrderProductNumberText}\n {resources.quickOrderProductText}\n {resources.quickOrderUnitPriceText}\n {resources.quickOrderUnitOfMeasureText}\n {resources.quickOrderQuantityText}\n {resources.quickOrderTotalText}\n {resources.quickOrderActionsText}\n \n );\n};\n\n/**\n * Get the quick order header cells for mobile.\n * @param props -- The quick order table header props.\n * @returns The quick order header component in desktop version.\n */\nconst QuickOrderMobileHeaderCellsComponent: React.FC = (props: IQuickOrderTableHeaderProps) => {\n const { resources } = props;\n return (\n <>\n \n {resources.quickOrderProductNumberText}\n \n \n );\n};\n\n/**\n * Quick order table header component.\n * @param props - Configuration of the component.\n * @returns React node with the header.\n */\nexport const QuickOrderTableHeaderComponent: React.FC = (props: IQuickOrderTableHeaderProps) => {\n const rowClassName = `${props.className}__row`;\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = ;\n } else {\n headerCells = ;\n }\n\n return (\n \n {headerCells}\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 { IComponentProps, ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { CartLine, format, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IncrementalQuantity } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * Data required to render each quick order row.\n */\nexport interface IQuickOrderTableRowData {\n cartLine: CartLine;\n product: SimpleProduct;\n}\n\n/**\n * Resources for quick order table rows.\n */\nexport interface IQuickOrderTableRowResources {\n quickOrderQuantityMobileText: string;\n quickOrderProductDimensionsSeparator: string;\n quickOrderViewDetailsButtonText: string;\n quickOrderViewDetailsButtonAriaLabel: string;\n quickOrderRemoveItemButtonAriaLabel: string;\n quickOrderInputQuantityAriaLabel: string;\n quickOrderDecrementButtonAriaLabel: string;\n quickOrderIncrementButtonAriaLabel: string;\n}\n\n/**\n * Interface for quick order table props.\n */\nexport interface IQuickOrderTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n imageSettings?: IImageSettings;\n isMobile: boolean;\n resources: IQuickOrderTableRowResources;\n}\n\n/**\n * The default image settings for quick order table row.\n */\nconst defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=80&m=6', w: 0, h: 0 },\n lg: { q: 'w=147&h=147&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n};\n\n/**\n * Renders product image for quick order row.\n * @param props - Quick order table row props.\n * @returns React element.\n */\nconst QuickOrderTableRowProductImageComponent: React.FC = (props: IQuickOrderTableRowProps) => {\n const fallbackImageUrl = getFallbackImageUrl(\n props.data.product.ItemId,\n props.context.actionContext.requestContext.apiSettings,\n props.context.request.app?.config?.OmniChannelMedia\n );\n\n const containerClassName = `${props.className}__product-image-container`;\n\n return (\n
\n \n
\n );\n};\n\n/**\n * Renders actions popup for the mobile view.\n * @param props - Configuration for popup.\n * @returns A react node with actions..\n */\nconst QuickOrderExtraActionsPopupComponent: React.FC = (props: IQuickOrderTableRowProps): JSX.Element | null => {\n const product: SimpleProduct = props.data.product;\n\n let productUrl = '';\n if (!StringExtensions.isNullOrWhitespace(product.Name) && !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\n productUrl = getProductPageUrlSync(product.Name!, product.RecordId, props.context.actionContext);\n }\n\n if (StringExtensions.isNullOrWhitespace(productUrl)) {\n return null;\n }\n\n const className = `${props.className}__extra-actions-cell`;\n\n return (\n
\n
\n );\n};\n\n/**\n * Renders quick order table rows for desktop view.\n * @param props - Configuration for the rows.\n * @returns A react node with a list of quick order rows for desktop view.\n */\nexport const QuickOrderDesktopTableRowCellComponent: React.FC = (props: IQuickOrderTableRowProps) => {\n const product: SimpleProduct = props.data.product;\n const cartLine: CartLine = props.data.cartLine;\n const columnWithNumberClassName = `${props.className}__column-with-number`;\n\n let productUrl = '';\n if (!StringExtensions.isNullOrWhitespace(product.Name) && !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\n productUrl = getProductPageUrlSync(product.Name!, product.RecordId, props.context.actionContext);\n }\n\n return (\n <>\n \n \n \n {product.ItemId}\n \n
\n \n {product.Name}\n \n \n {product.Dimensions?.map(dimension => dimension.DimensionValue?.Value)\n .filter(dimensionValue => !StringExtensions.isNullOrWhitespace(dimensionValue))\n .join(props.resources.quickOrderProductDimensionsSeparator)}\n \n
\n \n {cartLine.Price}\n {cartLine.UnitOfMeasureSymbol}\n \n \n \n {cartLine.TotalAmount}\n \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 { PriceComponent } from '@msdyn365-commerce/components';\nimport { getRichTextHtml, IActionContext, IImageSettings, Image, ITelemetry } from '@msdyn365-commerce/core';\nimport { SearchSuggestion } from '@msdyn365-commerce/retail-proxy';\nimport { getProductPageUrlSync, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISearchData } from '../search.data';\nimport { ISearchProps } from '../search.props.autogenerated';\n\n/**\n * Search product suggest resources.\n */\nexport interface ISearchProductSuggestResources {\n freePriceText: string;\n}\n\nexport interface ISearchProductSuggestProps {\n searchProductSuggestClass: string;\n searchPageURL: string;\n searchQsp: string | undefined;\n hitPrefix: string;\n hitSuffix: string;\n autoSuggestProps: ISearchProps;\n searchText: string;\n suggestions: SearchSuggestion[] | undefined;\n telemetry: ITelemetry;\n moduleType: string;\n moduleId: string;\n telemetryContent?: ITelemetryContent;\n resources?: ISearchProductSuggestResources;\n}\n\nexport interface ISearchProductViewProps {\n title: React.ReactNode;\n items: ISearchProductItemViewProps[];\n}\n\nexport interface ISearchProductItemViewProps {\n text: React.ReactNode;\n thumbnail: React.ReactNode;\n price: React.ReactNode;\n LiProduct: INodeProps;\n AProduct: INodeProps;\n id: string | undefined;\n}\n\nlet payLoad: IPayLoad;\nlet telemetryContent: ITelemetryContent | undefined;\n\n/**\n * ProductSuggestionsComponent.\n * @param props\n */\nexport const ProductSuggestionsComponent = (props: ISearchProductSuggestProps): ISearchProductViewProps | undefined => {\n const {\n suggestions,\n hitSuffix,\n hitPrefix,\n autoSuggestProps: {\n context: { actionContext },\n resources: { productSuggestionHeading }\n },\n moduleType,\n moduleId\n } = props;\n const reactNodes: ISearchProductItemViewProps[] = [];\n telemetryContent = props.telemetryContent;\n payLoad = getPayloadObject('click', props.telemetryContent!, '');\n\n suggestions?.map(item => {\n reactNodes.push(_assembleNode(item, hitPrefix, hitSuffix, actionContext, props, moduleType, moduleId));\n });\n\n const titleNode = _renderTitle(productSuggestionHeading);\n\n return { title: titleNode, items: reactNodes };\n};\n\nconst _renderTitle = (productSuggestionHeading: string) => {\n const productAutoSuggestionHeading = productSuggestionHeading ? productSuggestionHeading : 'Go to products';\n\n return
  • {productAutoSuggestionHeading}
  • ;\n};\n\nconst _assembleNode = (\n item: SearchSuggestion,\n hitPrefix: string,\n hitSuffix: string,\n actionContext: IActionContext,\n props: ISearchProductSuggestProps,\n moduleType: string,\n moduleId: string\n): ISearchProductItemViewProps => {\n const altText =\n item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\n\n const price = item.Value3?.Value?.DecimalValue;\n return {\n text: _getHighlightedText(item.Value ? item.Value : '', hitPrefix, hitSuffix),\n thumbnail: _renderThumbnail(item, altText ? altText : '', props),\n price: !ObjectExtensions.isNullOrUndefined(price) && _renderPrice(price, price, moduleId, moduleType, props),\n LiProduct: _getLiWrapper(),\n AProduct: _getAWrapper(item, hitPrefix, hitSuffix, actionContext, props),\n id: item.Id\n };\n};\n\nconst _getLiWrapper = () => {\n return {\n className: 'msc-autoSuggest__productResults-item',\n tag: 'li' as NodeTag\n };\n};\n\nconst _getAWrapper = (\n item: SearchSuggestion,\n hitPrefix: string,\n hitSuffix: string,\n actionContext: IActionContext,\n props: ISearchProductSuggestProps\n) => {\n const {\n autoSuggestProps: { context }\n } = props;\n const ariaLabel =\n item.Value && item.Value.replace(new RegExp(`[${hitPrefix}]`, 'gi'), '').replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\n\n payLoad.contentAction.recid = item.Id;\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\n const productPrice = context.cultureFormatter.formatCurrency(item.Value3!.Value!.DecimalValue!);\n\n return {\n className: 'msc-autoSuggest__productResults-item',\n tag: 'a' as NodeTag,\n 'aria-label': `${ariaLabel!} ${productPrice}`,\n href: _generateLink(item, hitPrefix, hitSuffix, actionContext),\n ...attribute\n };\n};\n\nconst _generateLink = (suggestion: SearchSuggestion, hitPrefix: string, hitSuffix: string, actionContext: IActionContext) => {\n const formattedLink = (suggestion.Value as string)\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\n return suggestion.Value && suggestion.Id\n ? getProductPageUrlSync(formattedLink, (suggestion.Id as unknown) as number, actionContext, undefined)\n : '';\n};\n\nconst _getHighlightedText = (suggestion: string, hitPrefix: string, hitSuffix: string): JSX.Element => {\n const formattedText = suggestion\n .replace(new RegExp(`[${hitPrefix}]`, 'gi'), '')\n .replace(new RegExp(`[${hitSuffix}]`, 'gi'), '');\n\n return (\n // eslint-disable-next-line react/no-danger\n \n );\n};\n\nconst _renderPrice = (\n adjustedPrice: number,\n basePrice: number,\n moduleId: string,\n moduleType: string,\n props: ISearchProductSuggestProps\n): JSX.Element | null => {\n const {\n autoSuggestProps: { context }\n } = props;\n\n return (\n \n );\n};\n\nconst _renderThumbnail = (suggestion: SearchSuggestion, altText: string, props: ISearchProductSuggestProps): JSX.Element | null => {\n const {\n autoSuggestProps: {\n context: {\n request: { gridSettings }\n },\n config: { imageSettings }\n }\n } = props;\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n if (!suggestion || !suggestion.ImageUrl) {\n props.telemetry.error('Search suggestion content is empty, module wont render.');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=40&h=40&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=40&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=40&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\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 { Autosuggestions } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { getCatalogId, getUrlSync } from '@msdyn365-commerce/core';\nimport { ProductRefiner, ProductRefinerSource, ProductsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { createSearchStateInput } from '@msdyn365-commerce-modules/search-utilities';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, KeyCodes } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { debounce } from 'lodash';\nimport { Spinner, SpinnerSize } from 'office-ui-fabric-react';\nimport * as React from 'react';\n\nimport getSearchSuggestionsAction, { AutoSuggestInput, SuggestionType } from './actions/get-auto-suggest-suggestions';\nimport {\n CategorySuggestionsComponent,\n FormComponent,\n ISearchCategoryViewProps,\n ISearchKeywordViewProps,\n ISearchProductViewProps,\n KeywordSuggestionsComponent,\n LabelComponent,\n ProductSuggestionsComponent\n} from './components';\nimport { ISearchData } from './search.data';\nimport { ISearchProps, ISuggestionTypeCriterionData, SuggestionTypeCriterionSuggestionType } from './search.props.autogenerated';\n\nexport interface ISearchState {\n isSearchFormExpanded: boolean;\n searchText: string;\n searchKeywordSuggestClass: string;\n searchProductSuggestClass: string;\n searchCategorySuggestClass: string;\n suggestions: Autosuggestions | undefined;\n searchRefiners?: ProductRefiner[] | undefined;\n autoSuggestAriaLabel: string;\n isInitialState: boolean;\n isLoadingAutoSuggest?: boolean;\n}\n\nexport interface ISearchViewProps extends ISearchProps {\n Search: IModuleProps;\n AutoSuggestAriaLabel: INodeProps;\n AutoSuggestAriaLabelText: string;\n searchText: string;\n AutoSuggest: INodeProps;\n KeywordSuggest: INodeProps;\n ProductSuggest: INodeProps;\n CategorySuggest: INodeProps;\n SearchForm: INodeProps;\n FormWrapper: INodeProps;\n UlKeyword: INodeProps;\n UlProduct: INodeProps;\n UlCategory: INodeProps;\n label: React.ReactNode;\n form: React.ReactNode;\n autosuggestKeyword?: ISearchKeywordViewProps;\n autosuggestProduct?: ISearchProductViewProps;\n autosuggestCategory?: ISearchCategoryViewProps;\n callbacks: {\n handleCancelSearchChange(): void;\n handleCancelSearchFocused?(): void;\n };\n isSearchFormExpanded: boolean;\n isLoadingAutoSuggest?: boolean;\n isLoadingNode?: React.ReactNode;\n}\n\n/**\n *\n * Search module.\n * @extends {React.Component, ISearchState>}\n */\nclass Search extends React.Component, ISearchState> {\n private readonly searchTextInput: React.RefObject;\n\n private readonly searchCollapsedLabel: React.RefObject;\n\n private readonly formReference: React.RefObject;\n\n private readonly maxChars: number;\n\n private readonly topResultsCount?: number;\n\n private readonly hitPrefix: string = '{';\n\n private readonly hitSuffix: string = '}';\n\n private readonly waitTime: number = 500;\n\n private readonly autoSuggestResultScreenReaderDiv: React.RefObject;\n\n private readonly autoSuggestResultDiv: React.RefObject;\n\n private readonly searchFormClass: string;\n\n private readonly searchLabelClass: string;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private loadSuggestionsRequestId?: string;\n\n private inputSuggestionType: ISuggestionTypeCriterionData[];\n\n // @ts-expect-error\n private cancellabelDebounce: debounce;\n\n public constructor(props: ISearchProps) {\n super(props);\n this.searchTextInput = React.createRef();\n this.searchCollapsedLabel = React.createRef();\n this.autoSuggestResultScreenReaderDiv = React.createRef();\n this.autoSuggestResultDiv = React.createRef();\n this.formReference = React.createRef();\n this.state = {\n isSearchFormExpanded: false,\n searchText: '',\n searchKeywordSuggestClass: 'ms-search__autoSuggest__keyword',\n searchProductSuggestClass: 'ms-search__autoSuggest__product',\n searchCategorySuggestClass: 'ms-search__autoSuggest__category',\n suggestions: undefined,\n searchRefiners: undefined,\n autoSuggestAriaLabel: '',\n isInitialState: true,\n isLoadingAutoSuggest: false\n };\n this.maxChars =\n (this.props.context &&\n this.props.context.app &&\n this.props.context.app.config &&\n this.props.context.app.config.searchInputMaxLength) ||\n 50;\n\n this.inputSuggestionType = [];\n this.topResultsCount = this.props.config && this.props.config.topResultsCount ? this.props.config.topResultsCount : 5;\n this.searchFormClass = 'ms-search__form';\n this.searchLabelClass = 'ms-search__label';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this._initSuggestionTypes();\n }\n\n public async componentDidMount(): Promise {\n document.body && document.body.addEventListener('mousedown', this._focusOutTarget);\n window && window.addEventListener('keyup', this._keyup);\n }\n\n public componentWillUnmount(): void {\n document.body && document.body.removeEventListener('mousedown', this._focusOutTarget, false);\n window && window.removeEventListener('keyup', this._keyup, false);\n }\n\n public componentDidUpdate(): void {\n const {\n config: { hideSearchLabel }\n } = this.props;\n const { isSearchFormExpanded, isInitialState } = this.state;\n\n if (!this.props.context.request.params.isEditor) {\n if (!hideSearchLabel && isSearchFormExpanded) {\n this.searchTextInput && this.searchTextInput.current && this.searchTextInput.current.focus();\n } else if (!isInitialState) {\n this.searchCollapsedLabel && this.searchCollapsedLabel.current && this.searchCollapsedLabel.current.focus();\n }\n }\n }\n\n public shouldComponentUpdate(nextProps: ISearchProps, nextState: ISearchState): boolean {\n if (this.state === nextState && this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line complexity -- ignore complexity.\n public render(): JSX.Element {\n const {\n context,\n resources: { searchtext, searchLabelArialLabel, cancelBtnAriaLabel, searchBtnAriaLabel, submitBtnAriaLabel },\n config: { hideSearchLabel, disableSubmitSearch, searchplaceholderText, shouldShowFullCategoryPath, className = '' }\n } = this.props;\n\n const {\n isSearchFormExpanded,\n searchText,\n searchKeywordSuggestClass,\n searchProductSuggestClass,\n searchCategorySuggestClass,\n suggestions,\n searchRefiners,\n isLoadingAutoSuggest\n } = this.state;\n\n const searchQsp = (context && context.app && context.app.config && context.app.config.searchQueryStringParameter) || 'q';\n const searchPageURL = getUrlSync('search', context && context.actionContext) || '';\n const searchURL = this._appendQueryParams(searchPageURL, searchText, searchQsp);\n const searchPlaceholder = searchplaceholderText && searchplaceholderText.length > 0 ? searchplaceholderText : 'Search in Fabrikam';\n\n const keywordSuggestions = suggestions?.AllSearchResults?.filter(\n suggestion => suggestion.SuggestionType === SuggestionType.Keyword || suggestion.SuggestionType === SuggestionType.None\n );\n const productSuggestions = suggestions?.AllSearchResults?.filter(\n suggestion => suggestion.SuggestionType === SuggestionType.Product\n );\n const categoryRefiners = searchRefiners?.find(refiner => {\n return refiner.SourceValue === ProductRefinerSource.Category;\n });\n const categorySuggestions = suggestions?.AllSearchResults?.filter(suggestion => {\n if (suggestion.SuggestionType !== SuggestionType.Category) {\n return false;\n }\n const refiner = categoryRefiners?.Values?.find(item => {\n return `${item.RefinerRecordId ?? 0}` === suggestion.Id;\n });\n\n return !ObjectExtensions.isNullOrUndefined(refiner);\n });\n\n const viewProps: ISearchViewProps = {\n ...(this.props as ISearchProps),\n\n Search: {\n moduleProps: this.props,\n className: `${classnames('ms-search', className)} ${disableSubmitSearch ? 'no-submit' : 'with-submit'}`\n },\n AutoSuggestAriaLabel: {\n tag: 'div',\n className: 'msc-autoSuggest__screen-reader',\n 'aria-live': 'assertive',\n ref: this.autoSuggestResultScreenReaderDiv\n },\n AutoSuggestAriaLabelText: this.state.autoSuggestAriaLabel,\n searchText: this.state.searchText,\n AutoSuggest: {\n ref: this.autoSuggestResultDiv,\n className: 'ms-search__autoSuggest'\n },\n KeywordSuggest: {\n className: searchKeywordSuggestClass\n },\n ProductSuggest: {\n className: searchProductSuggestClass\n },\n CategorySuggest: {\n className: searchCategorySuggestClass\n },\n SearchForm: {\n className: `${this.searchFormClass} ${isSearchFormExpanded ? 'bx-show' : 'bx-hide'}`\n },\n FormWrapper: {\n tag: 'form',\n ref: this.formReference,\n className: 'ms-search__searchForm',\n 'aria-label': 'Search',\n name: 'searchForm',\n role: 'search',\n action: searchURL,\n autoComplete: 'off',\n onSubmit: this._handleSubmit\n },\n UlKeyword: {\n tag: 'ul',\n className: classnames('msc-autoSuggest__keywordResults-items', className)\n },\n UlProduct: {\n tag: 'ul',\n className: classnames('msc-autoSuggest__productResults-items', className)\n },\n UlCategory: {\n tag: 'ul',\n className: classnames('msc-autoSuggest__categoryResults-items', className)\n },\n label: LabelComponent({\n isSearchFormExpanded,\n searchLabelClass: `${this.searchLabelClass} ${isSearchFormExpanded ? 'bx-hide' : 'bx-show'}`,\n searchtext,\n searchLabelArialLabel,\n searchCollapsedLabel: this.searchCollapsedLabel,\n hideSearchLabel,\n handleCancelSearchChange: this._handleCancelSearchChange,\n telemetryContent: this.telemetryContent\n }),\n form: FormComponent({\n ariaLabelCancel: cancelBtnAriaLabel,\n ariaLabelSearch: searchBtnAriaLabel,\n ariaLabelSubmit: submitBtnAriaLabel,\n hideSearchLabel,\n searchTextInput: this.searchTextInput,\n disableSubmitSearch,\n handleInputChange: this._handleInputChange,\n handleCancelSearchChange: this._handleCancelSearchChange,\n maxChars: this.maxChars,\n searchQsp,\n searchPlaceholder,\n query: searchText\n }),\n autosuggestKeyword:\n searchText &&\n searchText.length > 0 &&\n (isLoadingAutoSuggest || (keywordSuggestions && ArrayExtensions.hasElements(keywordSuggestions)))\n ? KeywordSuggestionsComponent({\n searchKeywordSuggestClass,\n searchPageURL,\n searchQsp,\n hitPrefix: this.hitPrefix,\n hitSuffix: this.hitSuffix,\n autoSuggestProps: this.props,\n searchText,\n suggestions: keywordSuggestions,\n telemetryContent: this.telemetryContent\n })\n : undefined,\n autosuggestProduct:\n searchText &&\n searchText.length > 0 &&\n (isLoadingAutoSuggest || (productSuggestions && ArrayExtensions.hasElements(productSuggestions)))\n ? ProductSuggestionsComponent({\n searchProductSuggestClass,\n searchPageURL,\n searchQsp,\n hitPrefix: this.hitPrefix,\n hitSuffix: this.hitSuffix,\n autoSuggestProps: this.props,\n searchText,\n suggestions: productSuggestions,\n telemetry: this.props.telemetry,\n moduleType: this.props.typeName,\n moduleId: this.props.id,\n telemetryContent: this.telemetryContent,\n resources: this.props.resources\n })\n : undefined,\n autosuggestCategory:\n searchText &&\n searchText.length > 0 &&\n (isLoadingAutoSuggest || (categorySuggestions && ArrayExtensions.hasElements(categorySuggestions)))\n ? CategorySuggestionsComponent({\n searchCategorySuggestClass,\n searchPageURL,\n searchQsp,\n hitPrefix: this.hitPrefix,\n hitSuffix: this.hitSuffix,\n autoSuggestProps: this.props,\n searchText,\n suggestions: categorySuggestions,\n searchRefiners,\n telemetryContent: this.telemetryContent,\n shouldShowFullPath: shouldShowFullCategoryPath\n })\n : undefined,\n callbacks: {\n handleCancelSearchChange: this._handleCancelSearchChange,\n handleCancelSearchFocused: this._handleCancelSearchFocused\n },\n isSearchFormExpanded: this.state.isSearchFormExpanded,\n isLoadingAutoSuggest,\n isLoadingNode: this._isLoadingNode()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initSuggestionTypes() {\n const suggestionTypes = this.props.config.suggestionTypeCriterion;\n\n const suggestions = ArrayExtensions.unique(ArrayExtensions.validValues(suggestionTypes));\n if (!ArrayExtensions.hasElements(suggestions)) {\n this.inputSuggestionType = [\n { SuggestionType: SuggestionTypeCriterionSuggestionType.keyword },\n { SuggestionType: SuggestionTypeCriterionSuggestionType.product },\n { SuggestionType: SuggestionTypeCriterionSuggestionType.scopedCategory }\n ];\n return;\n }\n\n const validSuggestions = suggestions.filter(suggestion => suggestion.SuggestionType);\n if (ArrayExtensions.hasElements(validSuggestions)) {\n this.inputSuggestionType = validSuggestions;\n return;\n }\n\n this.inputSuggestionType = [];\n }\n\n /**\n * Function to create the ReactNode for loading Autosuggest result.\n * @returns ReachNode for loading Autosuggest result.\n */\n private readonly _isLoadingNode = (): React.ReactNode => {\n const loadingText = this.props.resources.autoSuggestResultLoadingMessage;\n return ;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _focusOutTarget = (e: any): void => {\n const { suggestions } = this.state;\n\n if (suggestions && suggestions.AllSearchResults && e.target.closest('.ms-search') === null) {\n this._clearAutoSuggestState();\n }\n };\n\n private readonly _keyup = (e: KeyboardEvent): void => {\n const { suggestions } = this.state;\n\n if (suggestions && suggestions.AllSearchResults && e.keyCode === KeyCodes.Escape) {\n this._clearAutoSuggestState();\n } else if (this.state.isSearchFormExpanded && e.keyCode === KeyCodes.Escape) {\n if (this.state.isSearchFormExpanded) {\n this.setState({ isSearchFormExpanded: false });\n }\n }\n\n if (\n !(\n (this.formReference.current && this.formReference.current.contains((e.target as unknown) as Node)) ||\n (this.autoSuggestResultDiv.current && this.autoSuggestResultDiv.current.contains((e.target as unknown) as Node))\n )\n ) {\n if (suggestions && suggestions.AllSearchResults) {\n this._clearAutoSuggestState();\n }\n\n if (this.state.isSearchFormExpanded) {\n this.setState({ isSearchFormExpanded: false });\n }\n }\n };\n\n private readonly _clearAutoSuggestState = (): void => {\n const {\n context: { actionContext },\n data: { searchState }\n } = this.props;\n\n if (this.searchTextInput.current && this.searchTextInput.current.value.length > 0) {\n searchState.searchText = '';\n searchState.defaultBasicSearchUrl = '';\n searchState.searchQueryStringParameter = '';\n actionContext ? actionContext.update(createSearchStateInput(searchState), searchState) : null;\n this.searchTextInput.current.value = '';\n }\n\n this.setState({ searchText: '', suggestions: undefined, searchRefiners: undefined });\n };\n\n private async _getSearchSuggestions(loadSuggestionsRequestId: string, query: string) {\n try {\n const searchSuggestions = await getSearchSuggestionsAction(\n new AutoSuggestInput(query, this.topResultsCount, this._getSuggestionType(), this.hitPrefix, this.hitSuffix),\n this.props.context.actionContext\n );\n if (loadSuggestionsRequestId !== this.loadSuggestionsRequestId) {\n return undefined;\n }\n return searchSuggestions;\n } catch (error) {\n if (loadSuggestionsRequestId !== this.loadSuggestionsRequestId) {\n return undefined;\n }\n this.setState({ suggestions: undefined, searchRefiners: undefined, autoSuggestAriaLabel: this._setAutoSuggestResultCount() });\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Unable to get auto suggest results');\n return undefined;\n }\n }\n\n private async _updateSearchRefiners(loadSuggestionsRequestId: string, query: string, suggestions: Autosuggestions | undefined) {\n try {\n const refiners = await this._getSearchRefiners(query);\n if (loadSuggestionsRequestId !== this.loadSuggestionsRequestId) {\n return;\n }\n this.setState({\n suggestions,\n searchRefiners: refiners,\n autoSuggestAriaLabel: this._setAutoSuggestResultCount(suggestions),\n isLoadingAutoSuggest: false\n });\n } catch (error) {\n if (loadSuggestionsRequestId !== this.loadSuggestionsRequestId) {\n return;\n }\n this.setState({ suggestions, searchRefiners: undefined, autoSuggestAriaLabel: this._setAutoSuggestResultCount(suggestions) });\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Unable to get refiners results');\n }\n }\n\n private _loadSuggestions(query: string) {\n this.cancellabelDebounce = debounce(async () => {\n this.setState({ isLoadingAutoSuggest: true });\n const loadSuggestionsRequestId = Random.Guid.generateGuid();\n this.loadSuggestionsRequestId = loadSuggestionsRequestId;\n const searchSuggestions = await this._getSearchSuggestions(loadSuggestionsRequestId, query);\n await this._updateSearchRefiners(loadSuggestionsRequestId, query, searchSuggestions);\n }, this.waitTime);\n\n setTimeout(() => {\n this.cancellabelDebounce();\n }, 0);\n }\n\n private readonly _handleInputChange = (query: string): void => {\n if (!query || query.length <= this.maxChars) {\n this.setState({ searchText: query });\n }\n\n if (this.cancellabelDebounce) {\n this.cancellabelDebounce.cancel();\n }\n\n const {\n context,\n data: { searchState }\n } = this.props;\n\n if (context) {\n if (query && query.length > 0) {\n if (query.length > this.maxChars) {\n return;\n }\n\n if (ArrayExtensions.hasElements(this.inputSuggestionType)) {\n this._loadSuggestions(query);\n }\n\n searchState.searchText = query;\n } else {\n this.setState({ suggestions: undefined, searchRefiners: undefined });\n searchState.searchText = '';\n }\n context.actionContext.update(createSearchStateInput(searchState), searchState);\n }\n };\n\n private _getSuggestionType(): string {\n const distinctSuggestionTypes: string[] = this.inputSuggestionType.map(\n suggestionTypeItem => suggestionTypeItem.SuggestionType!.charAt(0).toUpperCase() + suggestionTypeItem.SuggestionType!.slice(1)\n );\n return distinctSuggestionTypes.join(',');\n }\n\n private async _getSearchRefiners(searchText: string): Promise {\n const { actionContext: ctx } = this.props.context;\n const catalogId = getCatalogId(ctx.requestContext);\n validateCatalogId(catalogId);\n return ProductsDataActions.getProductSearchRefinersAsync(\n { callerContext: ctx },\n {\n SearchCondition: searchText,\n Context: {\n ChannelId: +ctx.requestContext.apiSettings.channelId,\n CatalogId: catalogId\n }\n }\n );\n }\n\n private readonly _handleSubmit = (\n e: React.MouseEvent | React.KeyboardEvent | React.FormEvent\n ): void => {\n const {\n config: { disableSubmitSearch },\n context: {\n actionContext,\n app: {\n config: { searchQueryStringParameter }\n }\n }\n } = this.props;\n\n const query = this.searchTextInput.current && this.searchTextInput.current.value;\n e.preventDefault();\n\n if (!query || (query && query.length === 0) || disableSubmitSearch) {\n this.searchTextInput && this.searchTextInput.current && this.searchTextInput.current.focus();\n } else {\n const searchQsp = searchQueryStringParameter || 'q';\n const searchURL = this._appendQueryParams(getUrlSync('search', actionContext) || '', query, searchQsp);\n document.location.href = searchURL;\n }\n };\n\n private readonly _handleCancelSearchChange = (): void => {\n const { isSearchFormExpanded, suggestions } = this.state;\n\n if (!isSearchFormExpanded) {\n this.setState({\n isSearchFormExpanded: true,\n searchText: '',\n isInitialState: false\n });\n } else {\n if (suggestions && suggestions.AllSearchResults) {\n this._clearAutoSuggestState();\n }\n this.setState({ isSearchFormExpanded: false });\n }\n };\n\n private readonly _handleCancelSearchFocused = (): void => {\n const { suggestions } = this.state;\n if (!(suggestions && suggestions.AllSearchResults)) {\n this._clearAutoSuggestState();\n this.setState({ isSearchFormExpanded: false });\n }\n };\n\n private readonly _appendQueryParams = (route: string, query: string, qsp: string): string => {\n if (!MsDyn365.isBrowser) {\n return '';\n }\n\n const queryUrl = new URL(route, window.location.href);\n if (qsp && query) {\n queryUrl.searchParams.set(qsp, query);\n }\n\n return queryUrl.href;\n };\n\n private readonly _setAutoSuggestResultCount = (result?: Autosuggestions) => {\n if (this.autoSuggestResultScreenReaderDiv.current !== null) {\n const ariaLiveRegion = this.autoSuggestResultScreenReaderDiv.current;\n const suggestResultString = this.props.resources.autoSuggestFoundMessage;\n const emptyResultString = this.props.resources.noAutoSuggestionMessage;\n ariaLiveRegion.innerText =\n result && result.AllSearchResults && result.AllSearchResults.length > 0 ? suggestResultString : emptyResultString;\n ariaLiveRegion.setAttribute('aria-live', 'assertive');\n return ariaLiveRegion.innerText;\n }\n return '';\n };\n}\n\nexport default Search;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from './components';\nimport { ISearchViewProps } from './search';\n\nconst SearchView: React.FC = props => {\n const {\n Search,\n AutoSuggestAriaLabel,\n AutoSuggestAriaLabelText,\n searchText,\n AutoSuggest,\n KeywordSuggest,\n ProductSuggest,\n CategorySuggest,\n UlKeyword,\n UlProduct,\n UlCategory,\n form,\n autosuggestCategory,\n autosuggestKeyword,\n autosuggestProduct,\n SearchForm,\n FormWrapper,\n label,\n isLoadingAutoSuggest,\n isLoadingNode\n } = props;\n\n return (\n \n {label}\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\n \n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword, isLoadingAutoSuggest, isLoadingNode)}\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct, isLoadingAutoSuggest, isLoadingNode)}\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory, isLoadingAutoSuggest, isLoadingNode)}\n \n \n );\n};\n\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\n return (\n \n \n {form.input}\n {form.cancelBtn}\n {form.submitBtn}\n \n \n );\n};\n\nconst _renderKeywordSuggestions = (\n KeywordSuggest: INodeProps,\n UlKeyword: INodeProps,\n keywordSuggestions?: ISearchKeywordViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n) => {\n return (\n keywordSuggestions && (\n \n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n keywordSuggestions.text.map(text => {\n return text;\n })}\n \n \n )\n );\n};\n\nconst _renderProductSuggestions = (\n ProductSuggest: INodeProps,\n UlProduct: INodeProps,\n productSuggestions?: ISearchProductViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n) => {\n return (\n productSuggestions && (\n \n \n {productSuggestions.title}\n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n productSuggestions.items.map((item, index) => {\n return (\n \n \n {item.thumbnail}\n {item.text}\n {item.price}\n \n \n );\n })}\n \n \n )\n );\n};\n\nconst _renderCategorySuggestions = (\n CategorySuggest: INodeProps,\n UlCategory: INodeProps,\n categorySuggestions?: ISearchCategoryViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n) => {\n return (\n categorySuggestions && (\n \n \n {categorySuggestions.title}\n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n categorySuggestions.text.map(text => {\n return text;\n })}\n \n \n )\n );\n};\n\nexport default SearchView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../video-player.props.autogenerated';\n\n/**\n * IVideoPlayerAdditionalContentProps: Interface for\n * Video Player Additional Content Component props.\n */\nexport interface IVideoPlayerAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData | undefined;\n handleAdditionalTextChange(event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IVideoPlayerAdditionalContentProps: Interface for\n * Video Player Additional Content view props.\n */\nexport interface IVideoPlayerAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IVideoPlayerAdditionalContentItemViewProps;\n}\n\n/**\n * IVideoPlayerAdditionalContentProps: Interface for\n * Video Player Additional Content Item view props.\n */\nexport interface IVideoPlayerAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Video Player Additional content component props.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IVideoPlayerAdditionalContentProps) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Video Player Additional content component props.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IVideoPlayerAdditionalContentProps) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalParagraphChange(event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Video Player Additional content component props.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IVideoPlayerAdditionalContentProps, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-video-player__details__additional-content__cta__links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Video Player additonal content item props.\n * @param props - Video Player Additional content component props.\n * @returns IVideoPlayerAdditionalContentItemViewProps.\n */\nconst getAdditionalContentItems = (\n item: IAdditionalContentData,\n props: IVideoPlayerAdditionalContentProps\n): IVideoPlayerAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-video-player__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-video-player__details__additional-content__cta' }\n };\n};\n\n/**\n * VideoPlayerAdditionalContent component.\n * @param props - Video Player Additional content component props.\n * @returns Video Player Additional content view props.\n */\nexport const videoPlayerAdditionalContent = (\n props: IVideoPlayerAdditionalContentProps\n): IVideoPlayerAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IVideoPlayerAdditionalContentItemViewProps = getAdditionalContentItems(additionalContent, props);\n return {\n additionalContentNode: { className: 'ms-video-player__details__additional-content' },\n additionalContentItems: reactNodes\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IPlayerData, IPlayerOptions, IPlayerResources, IVideoMetadata, Player } from '@msdyn365-commerce/components';\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n INodeProps,\n isMobile,\n ITelemetryContent,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IVideoPlayerAdditionalContentViewProps, videoPlayerAdditionalContent } from './components/additional-content';\nimport { ILinksData, IVideoPlayerConfig, IVideoPlayerProps } from './video-player.props.autogenerated';\n\nexport interface IVideoPlayerViewProps extends IVideoPlayerProps<{}> {\n player: React.ReactNode;\n title?: React.ReactNode;\n text?: React.ReactNode;\n links?: React.ReactNode;\n detailsContainer?: INodeProps;\n detailsContainerCta?: INodeProps;\n additionalContent?: IVideoPlayerAdditionalContentViewProps;\n handleText?(): void;\n handleParagraph?(): void;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleLink?(): void;\n handleAdditionalLink?(): void;\n}\n\n/**\n *\n * VideoPlayer component.\n * @extends {React.PureComponent>}\n */\nclass VideoPlayer extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly isMobileDevice: boolean;\n\n public constructor(props: IVideoPlayerProps) {\n super(props);\n this.isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const options = {\n ...this.props.config,\n isMobileDevice: this.isMobileDevice\n };\n const video: MsDyn365.IVideoData = this.props.config.video;\n const playerResources: IPlayerResources = {\n playAriaLabel: this.props.resources.playLabel,\n pauseAriaLabel: this.props.resources.pauseLabel,\n playingAriaLabel: this.props.resources.playingLabel,\n pausedAriaLabel: this.props.resources.pausedLabel,\n muteAriaLabel: this.props.resources.muteLabel,\n unMuteAriaLabel: this.props.resources.unMuteLabel,\n fullScreenAriaLabel: this.props.resources.fullScreenLabel,\n exitFullScreenAriaLabel: this.props.resources.exitFullScreenLabel,\n seekBarLabel: this.props.resources.seekBarLabel,\n videoTimeDurationLabel: this.props.resources.videoTimeDurationLabel,\n closedCaptionLabel: this.props.resources.closedCaptionLabel\n };\n const videoMetaData: IVideoMetadata = {};\n\n if (video) {\n videoMetaData.videoId = video.id;\n videoMetaData.title = video.title;\n videoMetaData.duration = video.playTime;\n\n if (video.thumbnail) {\n videoMetaData.posterframeUrl = video.thumbnail.src;\n }\n\n if (video._links?.binaryReferences) {\n videoMetaData.videoBinaryReferences = video._links.binaryReferences;\n }\n }\n const videoPlayerData: IPlayerData = { options: options as IPlayerOptions, metaData: videoMetaData };\n const viewProps = {\n // Context for telemetry and raw data for C1 to do customization\n // Including computed data, state data and methods\n ...this.props,\n\n player: (\n \n \n \n ),\n title: this._getVideoDetailsHeading(),\n text: this._getVideoDetailsParagraph(),\n links: this._getVideoDetailsLinks(),\n detailsContainer: { className: 'ms-video-player__details' },\n detailsContainerCTA: { className: 'ms-video-player__details__cta' },\n additionalContent: videoPlayerAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleText: this.handleTextChange,\n handleParagraph: this.handleParagraphChange,\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleLink: this.handleLinkTextChange,\n handleAdditionalLink: this.handleAdditionalTextChange\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleLinkTextChange(linkIndex: number, event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handle additional text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleAdditionalTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent.heading = event.target.value;\n }\n }\n\n /**\n * Handle additional link text change.\n * @param linkIndex - The link index.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleAdditionalLinkTextChange(linkIndex: number, event: MsDyn365.ContentEditableEvent): void {\n const additionalContent = this.props.config.additionalContent ?? {};\n if (additionalContent.links) {\n additionalContent.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n /**\n * Handle additional paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleAdditionalParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent.subtext = event.target.value;\n }\n }\n\n /**\n * Get video details links.\n * @returns - React node.\n */\n private _getVideoDetailsLinks(): React.ReactNode[] | undefined {\n const { links } = this.props.config;\n const payLoad = getPayloadObject('click', this.telemetryContent, '');\n\n return links?.map((linkData: ILinksData, index: number) => {\n payLoad.contentAction.etext = linkData.linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n const linkId = index;\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: linkData.ariaLabel,\n className: 'ms-video-player__details__cta__link',\n linkText: linkData.linkText,\n linkUrl: linkData.linkUrl.destinationUrl,\n openInNewTab: linkData.openInNewTab,\n role: 'button',\n additionalProperties: attributes\n };\n\n return (\n {\n this.handleLinkTextChange(index, event);\n },\n requestContext: this.props.context.request\n }}\n />\n );\n });\n }\n\n private _getVideoDetailsHeading(): React.ReactNode | undefined {\n const { heading } = this.props.config;\n\n return (\n heading && (\n \n )\n );\n }\n\n private _getVideoDetailsParagraph(): React.ReactNode | undefined {\n const { paragraph } = this.props.config;\n\n return (\n paragraph && (\n \n )\n );\n }\n}\n\nexport default VideoPlayer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IVideoPlayerAdditionalContentViewProps, IVideoPlayerViewProps } from './index';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IVideoPlayerAdditionalContentViewProps) => {\n if (additionalContent.additionalContentItems) {\n return (\n \n <>\n {additionalContent.additionalContentItems.heading}\n \n {additionalContent.additionalContentItems.text}\n \n {additionalContent.additionalContentItems.links}\n \n \n \n \n );\n }\n\n return null;\n};\n\nconst VideoPlayerView: React.FC = props => {\n return (\n
    \n {props.player}\n \n {props.title}\n {props.text}\n {props.additionalContent && renderAdditionalContent(props.additionalContent)}\n \n {props.links}\n \n \n
    \n );\n};\n\nexport default VideoPlayerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IWishlistItemDimension {\n key: string;\n className?: string;\n dimensionType: string;\n dimensionValue: string;\n}\n\nexport const WishlistItemDimension: React.FC = ({ key, className, dimensionType, dimensionValue }) => (\n
    \n {dimensionType}:\n {dimensionValue}\n
    \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { IAny, ICoreContext, IGeneric, IImageSettings, Image, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n CommerceListLine,\n ProductPrice,\n ReleasedProductType,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n convertProductDimensionTypeToDimensionTypes,\n getFallbackImageUrl,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IWishlistItemActionMessageState } from '../wishlist-items';\nimport { WishlistItemDimension } from './wishlist-items-dimensions';\n\nexport interface IWishlistItemProps extends CommerceListLine {\n product: SimpleProduct;\n wishlistState: IWishlistItemActionMessageState;\n price?: ProductPrice;\n context: ICoreContext>;\n productUrl: string;\n imageSettings?: IImageSettings;\n removeFromWishlistText: string;\n isInStock: boolean;\n addToCartText: string;\n outOfStockText: string;\n index: number;\n itemKey: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n enableImageProductLink?: boolean;\n inventoryInformationLabel?: string;\n inventoryLabelClassName?: string;\n telemetryContent?: ITelemetryContent;\n handlers: {\n onAddToCart(product: SimpleProduct, itemKey: string): void;\n onRemoveItem(productId: number): void | undefined;\n onDismiss(): void;\n };\n resources: {\n productDimensionTypeColor: string;\n productDimensionTypeSize: string;\n productDimensionTypeStyle: string;\n originalPriceText: string;\n currentPriceText: string;\n freePriceText: string;\n };\n}\n\nexport interface IWishlistItemViewProps {\n key: string;\n productImage: React.ReactNode;\n productLink: React.ReactNode;\n productDimensions?: React.ReactNode[];\n productPrice?: React.ReactNode;\n addToCartButton?: React.ReactNode;\n removeButton?: React.ReactNode;\n productStatusMessage?: React.ReactNode;\n productName?: React.ReactNode;\n productAriaLabel?: string;\n entireProductLink?: string;\n inventoryInformation?: React.ReactNode;\n productUnitOfMeasure?: React.ReactNode;\n}\n\nconst _addItemToCart = (props: IWishlistItemProps): void => {\n const { product, itemKey, handlers } = props;\n const { onAddToCart } = handlers;\n\n onAddToCart && product && itemKey && onAddToCart(product, itemKey);\n};\n\nconst _removeItemFromWishlist = (props: IWishlistItemProps): void => {\n const { onRemoveItem } = props.handlers;\n const { RecordId } = props.product;\n\n onRemoveItem && RecordId && onRemoveItem(RecordId);\n};\n\nconst WishListItemActions = {\n addToCart: _addItemToCart,\n removeItem: _removeItemFromWishlist\n};\n\nconst _getFullProductLink = (props: IWishlistItemProps): string => {\n if (!msdyn365Commerce.isBrowser) {\n return '';\n }\n\n const fullUrl = new URL(props.productUrl, window.location.href);\n for (const dimension of props.product.Dimensions ?? []) {\n const dimensionValue = dimension.DimensionValue?.Value;\n if (!StringExtensions.isNullOrWhitespace(dimensionValue)) {\n const dimensionName = convertProductDimensionTypeToDimensionTypes(dimension.DimensionTypeValue);\n fullUrl.searchParams.set(dimensionName, dimensionValue!);\n }\n }\n return fullUrl.href;\n // return updateProductUrl(productUrl, context, swatch);\n};\n\nconst _renderAriaLabel = (props: IWishlistItemProps): string => {\n const { product, price, context, resources } = props;\n\n const { Name, Dimensions } = product;\n const { productDimensionTypeColor, productDimensionTypeSize, productDimensionTypeStyle } = resources;\n\n let formattedPrice = 'Free';\n let dimensions = null;\n\n if (price) {\n formattedPrice =\n price.BasePrice === 0 ? resources.freePriceText : context.cultureFormatter.formatCurrency(price.BasePrice!, price.CurrencyCode);\n }\n\n if (Dimensions) {\n dimensions = Dimensions.map(productDimension => {\n switch (productDimension.DimensionTypeValue) {\n case 1:\n return `${productDimensionTypeColor}${productDimension.DimensionValue && productDimension.DimensionValue.Value}`;\n case 3:\n return `${productDimensionTypeSize}${productDimension.DimensionValue && productDimension.DimensionValue.Value}`;\n case 4:\n return `${productDimensionTypeStyle}${productDimension.DimensionValue && productDimension.DimensionValue.Value}`;\n default:\n return '';\n }\n });\n }\n\n return `${Name} ${formattedPrice} ${(dimensions && dimensions.join('')) || ''}`;\n};\n\n/**\n * Renders a link to a product based on the given props.\n * @param input - Wishlist item props with the info about the product.\n * @param productUrl - The url to the product.\n * @returns React component with a link to a product.\n */\nconst renderProductLink = (input: IWishlistItemProps, productUrl: string) => {\n const { telemetryContent } = input;\n const { RecordId: recordId, Name: productName } = input.product;\n const payLoad = getPayloadObject('click', telemetryContent!, '', recordId.toString());\n const productAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const productPageUrlWithSwatch = productUrl;\n return (\n !StringExtensions.isNullOrWhitespace(productPageUrlWithSwatch) && (\n \n {productName}\n \n )\n );\n};\n\n/**\n * Renders a product name box.\n * @param productName - The text to display.\n * @returns React component with a name of a product.\n */\nconst renderProductName = (productName: string) => {\n return
    {productName}
    ;\n};\n\n/**\n * Renders inventory information.\n * @param inventoryInformationLabel - The text to display.\n * @param inventoryLabelClassName - The component class name.\n * @returns React component.\n */\nconst renderInventoryInformationLabel = (inventoryInformationLabel: string | undefined, inventoryLabelClassName: string | undefined) => {\n const inventoryCssName = inventoryLabelClassName\n ? `ms-wishlist-items__inventory-label ${inventoryLabelClassName}`\n : 'ms-wishlist-items__inventory-label';\n return (\n !StringExtensions.isNullOrWhitespace(inventoryInformationLabel) && (\n {inventoryInformationLabel}\n )\n );\n};\n\n/**\n * Renders add to cart button.\n * @param input - Wishlist item props with the configuration.\n * @returns React component.\n */\nconst WishlistItemAddToCartButtonComponent = (input: IWishlistItemProps) => {\n const { isInStock, addToCartText, outOfStockText } = input;\n\n // Check if the product is service or not by product type.\n const isServiceItem = input.product.ItemTypeValue === ReleasedProductType.Service;\n\n const addItemAction = React.useCallback(() => {\n WishListItemActions.addToCart(input);\n }, [input]);\n\n return (\n \n {((isServiceItem || isInStock) && addToCartText) || outOfStockText}\n \n );\n};\n\n/**\n * Renders remove from wishlist button.\n * @param input - Wishlist item props with the configuration.\n * @returns React component.\n */\nconst WishlistItemRemoveFromWishlistButtonComponent = (input: IWishlistItemProps) => {\n const { removeFromWishlistText } = input;\n\n const removeItemAction = React.useCallback(() => {\n WishListItemActions.removeItem(input);\n }, [input]);\n\n return \n
    {choiceSummary}
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n
    \n {refineMenu && isExpanded && renderRefiner(refineMenu)}\n \n {refineMenu && isExpanded && renderRefinerFooter(refineMenu, toggle, resources)}\n \n
    \n\n \n {errorMessage}\n {props.config.enableProdutDescription ? renderProducts(props) : renderProductCards(props)}\n {pagination}\n \n \n \n );\n};\n\n/**\n * Render Search result Modal.\n * @param modalProps - The Search Result Modal view props.\n * @param refineMenu - The Refine Menu view props.\n * @param sortByDropDown - The Sort by view props.\n * @param isRecoSearchPage - The recomandation search page flag.\n * @returns The JSX Element.\n */\nconst createSearchResultModal = (\n modalProps: ISearchResultV2ModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown?: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\n/**\n * Render Refiner Mobile.\n * @param props - The Refine Menu view props.\n * @returns The JSX Element.\n */\nconst renderRefinerMobile = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, refineMenuContainer, refinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\n/**\n * Render Search result Body.\n * @param props - The Search Result Modal view props.\n * @param refineMenu - The Refine Menu view props.\n * @param sortByDropDown - The Sort by view props.\n * @param isRecoSearchPage - The recomandation search page flag.\n * @returns The JSX Element.\n */\nconst createModalBody = (\n props: ISearchResultV2ModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown?: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefinerMobile(refineMenu));\n }\n return null;\n};\n\n/**\n * Render Refiner.\n * @param props - The Refine Menu view props.\n * @returns The JSX Element.\n */\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, refineMenuContainer, refinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\n/**\n * Render Refiner Footer.\n * @param props - The Refine Menu view props.\n * @param handler - The Refine menu toggle function.\n * @param resources - Resources to get the done text and aria label.\n * @returns The JSX Element.\n */\nconst renderRefinerFooter = (\n props: IRefineMenuViewProps,\n handler: MouseEventHandler,\n resources: ISearchResultContainerV2Resources\n): JSX.Element | null => {\n const { refiners } = props;\n if (refiners) {\n return (\n \n \n {resources.doneText}\n \n \n );\n }\n return null;\n};\n\n/**\n * Render sort by drop down.\n * @param props - The sort by view props.\n * @param isRecoSearchPage - The recomandation search page flag.\n * @returns The JSX Element.\n */\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { sortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\n/**\n * Render Title.\n * @param props - The title view props.\n * @returns The JSX Element.\n */\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, titleContainer } = props;\n if (title) {\n return (\n \n \n {title.titlePrefix}\n {title.titleText}\n \n \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IPriceComponentResources } from '@msdyn365-commerce/components';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Button, getTelemetryObject, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { MouseEventHandler, useEffect, useState } from 'react';\n\nimport { IProductsDimensionsAvailabilities } from '@msdyn365-commerce/commerce-entities';\nimport {\n ISearchResultContainerProps,\n ISearchResultContainerResources\n} from '../definition-extensions/search-result-container.ext.props.autogenerated';\nimport { ProductComponent } from './components/product.component';\n\n/**\n * DescriptionInterval.\n */\nenum DescriptionInterval {\n productDescriptionInterval = 14,\n productDescriptionIntervalRemainder0 = 0,\n productDescriptionIntervalRemainder9 = 9\n}\n\n/**\n * Render Clear button for mobile viewport.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst renderProductCards = (props: ISearchResultContainerViewProps & ISearchResultContainerProps<{}>): JSX.Element | null => {\n return {props.products};\n};\n\n/**\n * Returns the product inventory label.\n * @param channelInventoryConfigurationId - The channel configuration Id.\n * @param product - The product.\n * @returns The inventory label.\n */\nfunction getInventoryLabel(channelInventoryConfigurationId: number | undefined, product: ProductSearchResult): string | undefined {\n if (!channelInventoryConfigurationId || !ArrayExtensions.hasElements(product.AttributeValues)) {\n return undefined;\n }\n const inventoryAttribute = product.AttributeValues.find(attribute => attribute.RecordId === channelInventoryConfigurationId);\n if (inventoryAttribute) {\n return inventoryAttribute.TextValue;\n }\n return undefined;\n}\n\n/**\n * Render Clear button for mobile viewport.\n * @param props - The view props.\n * @param product - The product item data.\n * @param index - The index of each product item.\n * @param isEnabledProductDescription - The flag for showing Product desription tile.\n * @returns The JSX Element.\n */\nconst renderProductCardsDescription = (\n props: ISearchResultContainerViewProps & ISearchResultContainerProps<{}>,\n product: ProductSearchResult,\n index: number,\n isEnabledProductDescription?: boolean\n): JSX.Element | null => {\n const { config, context, resources, productsDimensionAvailabilities } = props;\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\n const breadCrumbType = props.context.app.config.breadcrumbType;\n const isAllowBack = props.config.allowBackNavigation && (breadCrumbType === 'back' || breadCrumbType === 'categoryAndBack');\n const classname = isEnabledProductDescription\n ? 'ms-product-search-result__item product__description'\n : 'ms-product-search-result__item';\n const quickviewslot = ArrayExtensions.hasElements(props.slots.quickview) ? props.slots.quickview[0] : undefined;\n const channelInventoryConfigurationId = props.data.products.result?.channelInventoryConfigurationId;\n const isPriceMinMaxFeatureState = props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailSearchPriceRangeFeature'\n );\n const priceResources: IPriceComponentResources = {\n priceRangeSeparator: resources.priceRangeSeparator\n };\n\n const productComparisonButton = ArrayExtensions.hasElements(props.slots.productComparisonButton)\n ? props.slots.productComparisonButton[0]\n : null;\n\n return (\n
  • \n \n ArrayExtensions.hasElements(dimensionAvailability) &&\n dimensionAvailability[0].masterProductId === product.MasterProductId\n )}\n />\n
  • \n );\n};\n\n/**\n * Render Clear button for mobile viewport.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst renderProducts = (props: ISearchResultContainerViewProps & ISearchResultContainerProps<{}>): JSX.Element | null => {\n const products = props.data.listPageState.result?.activeProducts;\n if (!products || !ArrayExtensions.hasElements(products)) {\n return null;\n }\n const productDescriptionInterval: number = DescriptionInterval.productDescriptionInterval;\n const productDescriptionIntervalRemainder0: number = DescriptionInterval.productDescriptionIntervalRemainder0;\n const productDescriptionIntervalRemainder9: number = DescriptionInterval.productDescriptionIntervalRemainder9;\n return (\n \n {props.errorMessage}\n
      \n {products.map((product: ProductSearchResult, index: number) =>\n index % productDescriptionInterval === productDescriptionIntervalRemainder0 ||\n index % productDescriptionInterval === productDescriptionIntervalRemainder9\n ? renderProductCardsDescription(props, product, index, true)\n : renderProductCardsDescription(props, product, index, false)\n )}\n
    \n
    \n );\n};\n\n/**\n * Render Title Count.\n * @param props - The title view props.\n * @returns The JSX Element.\n */\nconst renderTitleCount = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return {title.titleCount};\n }\n return null;\n};\n\n/**\n * Render Category Hierarchy.\n * @param props - The category hierarchy view props.\n * @returns The JSX Element.\n */\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\n/**\n * Function to make filter sticky.\n * @param isMobile - The boolean prop.\n * @param isStickyHeader - The boolean prop.\n */\nexport const configureStickyFilter = (isMobile: boolean, isStickyHeader: boolean): void => {\n // Get heights of cookie and promotion banners\n const defaultValue = 0;\n const defaultOffset = 28;\n const headerContainer: HTMLElement | null = document.querySelector('.ms-header');\n\n const headerHeight: number | undefined = headerContainer?.offsetHeight;\n const containerHeight: number = headerHeight ?? defaultOffset;\n const bannerHeights = isStickyHeader ? defaultValue : containerHeight;\n const headerElement = document.querySelector('header .lock-opaque');\n const defaultContainer = document.querySelector('header .default-container');\n const refinerElement = isMobile ? document.querySelector('.msc-sort-filter-wrapper') : document.querySelector('.ms-refiner-heading');\n if (refinerElement && headerElement && defaultContainer) {\n if (MsDyn365.isBrowser && document.documentElement.scrollTop > bannerHeights) {\n refinerElement.classList.add('lock-Filter');\n refinerElement.setAttribute('style', `top: ${defaultContainer.clientHeight}px`);\n } else {\n refinerElement.classList.remove('lock-Filter');\n }\n } else if (refinerElement) {\n if (MsDyn365.isBrowser && document.documentElement.scrollTop > bannerHeights) {\n refinerElement.classList.add('lock-top');\n } else {\n refinerElement.classList.remove('lock-top');\n refinerElement.classList.remove('lock-Filter');\n refinerElement.removeAttribute('style');\n }\n }\n};\n\n/**\n * Function to setup filter sticky.\n * @param isMobile - The boolean prop.\n * @param isStickyHeader - The boolean prop.\n */\nfunction stickyFilterSetup(isMobile: boolean, isStickyHeader: boolean): void {\n window.addEventListener('scroll', () => {\n configureStickyFilter(isMobile, isStickyHeader);\n });\n configureStickyFilter(isMobile, isStickyHeader);\n}\n\n/**\n * Function to make filter sticky.\n * @param refinerRefernce - Ref prop for filter.\n * @param toggle - Toggle function for filter menu.\n */\nfunction useOutsideClick(refinerRefernce: React.RefObject, toggle: (event: Event) => void) {\n React.useEffect(() => {\n /**\n * Function to make filter sticky.\n * @param event - Event prop for filter.\n */\n function handleClickOutside(event: Event) {\n const element = document.querySelector('.ms-refine-filter__toggle_collapsed');\n if (refinerRefernce.current && !refinerRefernce.current.contains(event.target as Node) && !element) {\n toggle(event);\n }\n }\n if (MsDyn365.isBrowser) {\n document.addEventListener('click', handleClickOutside);\n }\n return () => {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('click', handleClickOutside);\n }\n };\n }, [refinerRefernce, toggle]);\n}\n\n/**\n * Render the category page items.\n * @param props - The view props.\n * @returns The search Result container module view.\n */\nconst SearchResultContainerView: React.FC> = props => {\n const {\n SearchResultContainer,\n pagination,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n FeatureSearchContainer,\n similarLookProduct,\n errorMessage,\n resources\n } = props;\n useEffect(() => {\n if (props.config.useStickyFilter && MsDyn365.isBrowser) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app context is generic\n stickyFilterSetup(props.isMobile, props.context.app.config.enableStickyHeader as boolean);\n }\n }, [props]);\n const [isExpanded, setIsExpanded] = useState(false);\n const toggle = () => {\n setIsExpanded(!isExpanded);\n };\n const wrapperRefiner = React.useRef(null);\n useOutsideClick(wrapperRefiner, toggle);\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {similarLookProduct ? null : (\n \n {renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {renderTitleCount(TitleViewProps)}\n \n )}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n {errorMessage}\n {props.config.enableProdutDescription ? renderProducts(props) : renderProductCards(props)}\n {pagination}\n \n );\n }\n return (\n \n {similarLookProduct ? null : (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {TitleViewProps && renderTitle(TitleViewProps)}\n {TitleViewProps && renderTitleCount(TitleViewProps)}\n \n )}\n {similarLookProduct}\n \n \n \n \n {resources.filterText}\n \n
    {choiceSummary}
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n
    \n {refineMenu && isExpanded && renderRefiner(refineMenu)}\n \n {refineMenu && isExpanded && renderRefinerFooter(refineMenu, toggle, resources)}\n \n
    \n\n \n {errorMessage}\n {props.config.enableProdutDescription ? renderProducts(props) : renderProductCards(props)}\n {pagination}\n \n
    \n
    \n );\n};\n\n/**\n * Render Search result Modal.\n * @param modalProps - The Search Result Modal view props.\n * @param refineMenu - The Refine Menu view props.\n * @param sortByDropDown - The Sort by view props.\n * @param isRecoSearchPage - The recomandation search page flag.\n * @returns The JSX Element.\n */\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\n/**\n * Render Refiner Mobile.\n * @param props - The Refine Menu view props.\n * @returns The JSX Element.\n */\nconst renderRefinerMobile = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\n/**\n * Render Search result Body.\n * @param props - The Search Result Modal view props.\n * @param refineMenu - The Refine Menu view props.\n * @param sortByDropDown - The Sort by view props.\n * @param isRecoSearchPage - The recomandation search page flag.\n * @returns The JSX Element.\n */\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefinerMobile(refineMenu));\n }\n return null;\n};\n\n/**\n * Render Refiner.\n * @param props - The Refine Menu view props.\n * @returns The JSX Element.\n */\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\n/**\n * Render Refiner Footer.\n * @param props - The Refine Menu view props.\n * @param handler - The Refine menu toggle function.\n * @param resources - Resources to get the done text and aria label.\n * @returns The JSX Element.\n */\nconst renderRefinerFooter = (\n props: IRefineMenuViewProps,\n handler: MouseEventHandler,\n resources: ISearchResultContainerResources\n): JSX.Element | null => {\n const { refiners } = props;\n if (refiners) {\n return (\n \n \n {resources.doneText}\n \n \n );\n }\n return null;\n};\n\n/**\n * Render sort by drop down.\n * @param props - The sort by view props.\n * @param isRecoSearchPage - The recomandation search page flag.\n * @returns The JSX Element.\n */\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\n/**\n * Render Title.\n * @param props - The title view props.\n * @returns The JSX Element.\n */\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n \n {title.titlePrefix}\n {title.titleText}\n \n \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n"],"names":["CartLineItemFunctions","renderProductDimensions","Product","DimensionStrings","Dimensions","map","productDimension","DimensionTypeValue","React","key","RecordId","className","colorString","DimensionValue","Value","configString","sizeString","IsGiftCard","amountString","styleString","props","data","cartLine","DiscountLines","length","discountLine","index","OfferId","OfferName","resources","discountStringText","PriceComponent","isSalesLine","price","CustomerContextualPrice","PeriodicDiscount","EffectiveAmount","BasePrice","context","id","typeName","undefined","Percentage","inventoryInformationLabel","inventoryCssName","inventoryLabelClassName","_props$context$reques","pickupDeliveryModeCode","request","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","cartline","hasShippingMethod","_channelDeliveryOptio","DeliveryMode","PickupDeliveryModeCodes","some","deliveryMode","shippingChargeLines","ChargeLines","filter","chargeLine","IsShipping","freightFee","reduce","chargeTotal","CalculatedAmount","priceComponent","freePriceText","shippingChargesText","_cartline$ChargeLines","otherCharges","chargeline","otherCharge","Description","productUrl","product","destructDimensionStrings","fallbackImageUrl","getFallbackImageUrl","ItemId","actionContext","requestContext","apiSettings","productDimensions","imageSettings","cropFocalRegion","renderDisountLines","renderInventoryLabel","renderShippingLabel","renderOtherCharges","payLoad","getPayloadObject","telemetryContent","toString","prodAttribute","getTelemetryAttributes","productName","Name","Image","src","primaryImageUrl","fallBackSrc","altText","gridSettings","loadFailureBehavior","Object","assign","href","ArrayExtensions","hasElements","NetAmount","Price","NetAmountWithoutTax","NetPrice","showShippingChargesForLineItems","_generateQuantityandPrice","nodes","isOutOfStock","errorMessage","IsInvoiceLine","isQuantityEditable","push","originalPriceText","currentPriceText","DiscountAmount","DiscountAmountWithoutTax","PromoCode","constructor","state","super","_onInputChange","e","error","target","value","this","setState","promoCodeInputValue","canApply","_applyPromotion","cartState","cart","appliedPromo","addPromoCode","promoCode","then","result","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","attributes","onSubmit","event","preventDefault","onChange","placeholder","Button","title","onClick","disabled","_removePromotion","code","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_calculateDiscount","CartLines","discountAmount","line","DiscountCode","DiscountCost","_renderAppliedPromoCode","Coupons","promoCodTotalDiscount","count","coupon","Code","appliedPromoCodeHeadingText","ariaLabel","removePromoAriaLabelFormat","format","removePromoText","TelemetryConstant","ApplyPromoCode","isCollapseOpen","render","promoCodeHeadingText","role","async","validateCartAsync","telemetry","propsContext","cartResult","cartVersion","shouldRetry","arguments","Version","warning","debug","AsyncResult","resolve","_validationResult$Val","validationResult","CartsDataActions","callerContext","bypassCache","Id","ValidationResultsByLineId","name","refreshCart","refreshError","validateError","cartLineQuantityUpdatedAsync","isQuantityLimitsFeatureEnabled","products","cartLineToUpdate","quantity","isUsingDefaultOrderSettingsMax","_modifiedProduct$Beha2","modifiedProduct","find","ProductId","Behavior","MaximumQuantity","input","cartLineId","LineId","newQuantity","additionalProperties","updateLineResult","updateCartLineQuantity","message","getProductByProductId","productId","getProductByProductIdAndWarehouse","warehouseId","targetWarehouseValue","WarehouseId","_product$Behavior","InventoryLocationId","_renderDeliveryLocation","deliverylocation","FulfillmentStoreId","_foundProductDelivery","orgUnitName","_getOrgUnitName","orgUnitLocations","foundProductDeliveryOption","productDeliveryOptions","deliveryOption","delivery","DeliveryOptions","option","location","shippingText","_renderStoreLocation","fulfillmentStoreId","foundLocation","orgUnitLocation","OrgUnitNumber","OrgUnitName","_assembleCartlines","cartlines","reactNodes","foundProductAvailability","_foundProductAvailabi","productAvailabilites","productAvailability","_productAvailability$","ProductAvailableQuantity","_assembleNode","foundProductDeliveryOptions","removeButtonText","removeItemClickHandler","availableQuantityInStock","isStockCheckEnabled","outOfStockThreshold","AvailableQuantity","_getCartItemAvailableQuantity","maxQuantity","_getCartItemMaxQuantity","maxQuantityByConfig","maxByQuantityLimitsFeature","maxByQuantityLimitsFeatureResult","maxCartlineQuantity","isServiceItem","ItemTypeValue","ReleasedProductType","Service","onRemoveClickHandler","onRemoveClickFunction","RemoveCartItem","removeCartItemAttribute","getProductUrlSync","MsDyn365","isBrowser","isChannelTypeB2B","_cartline$CatalogId","fullUrl","URL","window","searchParams","set","CatalogId","hasError","Quantity","CartLineItemComponent","catalogs","currentQuantity","PrimaryImageUrl","displayMode","deliveryLocation","remove","storeLocation","getMiniCartData","ctx","miniCartData","hasInvoiceLine","getActiveCartProductsAction","ActiveCartProductsInput","exception","Error","getAvailabilitiesForCartLineItems","ProductAvailabilitiesForCartLineItems","availableQuantity","getDeliveryOptionsForCartLineItems","ProductDeliveryOptionsForCartLineItems","deliveryOptions","CartIcon","retailMultiplePickUpOptionEnabled","getSortedCartLines","sortOrder","lines","sort","item1","item2","_item2$LineNumber","_item1$LineNumber","LineNumber","_item1$LineNumber2","_item2$LineNumber2","_getImageSettings","viewports","xs","q","w","h","sm","lg","lazyload","_removeItemFromCartHandler","cartlineToRemove","cartLineIds","removeCartLines","isCartValid","getTelemetryObject","telemetryPageName","friendlyName","payload","TelemetryEvent","CheckOut","Checkout","checkoutBySignInAttributes","contentAction","etext","GuestCheckout","checkoutByGuestAttributes","ViewShoppingBag","viewShoppingBagAttributes","_this$props$data$orgU","reaction","_this$props$data$cart","_setQuantityLimitsFeatureFlag","_validateCart","componentDidUpdate","prevProps","shouldComponentUpdate","nextProps","nextState","_this$props$context$r","_cart$cart$CartLines","_this$state$miniCartD","_this$state$miniCartD2","_this$props$data$chan","_this$props$data$feat","config","enableHoverCart","isAnonymousCheckout","user","isAuthenticated","signInUrl","guestCheckoutUrl","getUrlSync","cartUrl","checkoutURL","_getCheckoutURL","isCartEmpty","shouldShowMiniCart","isProductAddedToCart","app","addToCartBehavior","AddToCartBehavior","showMiniCart","emailDeliveryModeCode","EmailDeliveryModeCode","cartLines","_getCartLines","validInventoryAcrossCartLines","validateCartLinesInventory","isValid","includeFlyout","totalItemsInCart","goToCartButtonText","goToCartButtonTitle","replace","flyoutTitle","flyoutTooltip","tag","UncontrolledTooltip","placement","hideArrow","trigger","shouldShowCloseButton","cartPageUrl","hideAriaHidden","TotalAmount","priceString","totalPriceFormatString","cultureFormatter","formatCurrency","featureState","feature","IsEnabled","viewProps","_objectSpread","cartIcon","CartIconComponent","cartLabel","cartQtyLabel","FlyoutContainer","CartlinesWrapper","miniCartWrapper","classnames","miniCartItemWrapper","checkoutAsSignInUserButton","checkoutButtonTitle","checkoutAsGuestButton","guestCheckoutButtonTitle","goToCartButton","checkoutBlockedDueToUnavailableFunds","totalPrice","renderView","_cart$result$cart$Ver","_cart$result","lastValidatedCartVersion","ValidationResultsPairs","isAbsoluteUrl","urlCheck","returnURL","msdyn365Commerce","origin","includes","_this$props$data$cata","FlyoutCartLineItems","cartLinesSortOrder","enableStockCheck","updateMaxQuantityForCartLineItem","maxQuantityForCartLineItem","productDimensionTypeSize","productDimensionTypeColor","productDimensionTypeConfiguration","productDimensionTypeStyle","quantityDisplayString","quantityDisplayText","salesAgreementPricePrompt","inputQuantityAriaLabel","removeCartButtonText","outOfStockText","outOfRangeOneText","outOfRangeFormatText","_featureStatuses$find","_featureStatuses$find2","featureStatuses","_this$props$context","defaultOrderQuantityLimitsFeatureConfig","platform","enableDefaultOrderQuantityLimits","_featureStatuses$find3","customerInformation","customerInfo","IsB2b","_cartConfiguration$Ig","cartConfiguration","IgnoreOrderSettings","__decorate","observer","Node","renderModuleAttributes","_renderCartlines","_onInputChangeHandler","trim","_onSubmitHandler","_applyPromotionHandler","removePromotionHandler","HeaderPreferredStore","modalCloseButtonRef","handleClick","_findPreferredStoreOnClick","storeSelectorStateManager","slots","storeSelector","storeName","preferredStore","StoreName","headerPreferredStoreText","color","headerPreferredStoreAriaLabel","ref","modules","storeSelectorId","keys","openDialog","showMapViewLink","parentElementRef","onLocationSelected","Promise","Logo","_renderLogo","link","linkUrl","destinationUrl","openInNewTab","rel","_renderImage","Msdyn365","image","editProps","moduleType","imagePropertyName","shouldSkipToMainImage","NavIcon","toggleNavBar","mobileHamburgerAriaLabel","isExpanded","targetId","Header","isB2BSite","handleLinkTextChange","linkIndex","_this$props$config$my","myAccountLinks","linkText","popOverRef","_toggleNavbar","bind","_togglePopover","_keydown","mobileMenuCollapsed","signinPopoverOpen","hasSigninerror","workerName","customerName","_this$props$data$empl","worker","employee","_this$props$data$acco","customer","accountInformation","FirstName","componentDidMount","addEventListener","signUpCustomerNotFoundTitle","signUpMultipleCustomerFoundTitle","signInCustomerNotAuthorizedTitle","closeNotificationLabel","signinNotificationError","_getSigninNotification","NotificationsManager","instance","addNotification","ErrorNotification","componentWillUnmount","removeEventListener","wishlists","logoLink","logoImage","shouldShowWishlistCount","disableTooltip","headerToggleClass","headerClassName","navbarKey","cartIconSlot","_getSlot","menuBarSlot","searchSlot","wishlistCount","siteOptionsSlot","preferredStoreSlot","currentDistributorSlot","CommerceListLines","logo","wishListIconDesktop","WishListIconComponent","showButtonTooltip","wishlistTooltipText","wishlistCountLabel","isDispayWishlistCount","wishListIconMobile","navIcon","menuBar","search","siteOptions","HeaderTag","moduleProps","headerAriaLabel","HeaderContainer","HeaderTopBarContainer","Divider","MobileMenuContainer","Modal","isOpen","wrapClassName","toggle","MobileMenuHeader","ModalHeader","MobileMenuBodyContainer","ModalBody","MobileMenuLinksContainer","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","displayName","Popover","signInLink","_getSigninButton","signOutLink","_getSignOutButton","isOBORequest","switchCustomerLink","_getSwitchCustomerButton","accountInfoDropdownButton","_getAccountInfoDropdownButton","accountLinks","_getAccountLinks","currentDistributor","slotName","SignIn","signInLinkText","signInLinkAriaText","onTelemetryClick","_user$signOutUrl","SignOut","signOutLinkText","signOutUrl","signOutLinkAriaText","SwitchCustomer","isOBOAccountSelected","cookies","getAccountSelectionCookie","switchCustomerLinkAriaText","switchCustomerLinkText","getBusinessPartnerSelectionUrl","removeAccountSelectionCookie","shoppingAsText","route","url","forEach","param","delete","retailServerErrorCode","signUpCustomerNotFound","signUpMultipleCustomerFound","signInCustomerNotAuthorized","retailServerErrorMessage","MyProfile","innerRef","cta","editableLink","onTextChange","keyCode","KeyCodes","Escape","computed","_renderReactFragment","items","slot","Module","_renderDesktopAccountBlock","PromoBannerCloseButton","_ref","closeButtonAriaLabel","label","onClose","PromoBannerClose","PromoBannerLinks","links","editableLinks","_mapEditableLinks","linkdata","PromoBannerText","text","onEdit","PromoBanner","animating","isVisible","activeIndex","handleTextChange","bannerMessages","_next","nextIndex","_isLastItem","_goToIndex","_previous","_isFirstItem","_onDismiss","dismissEnabled","interval","hideFlipper","autoplay","closeButtonLabel","bannerText","bannerAriaLabel","onDismiss","handleLinks","handleText","promoBannerProps","promoBannerTextProps","promoBannerLinksProps","contentProps","promoBannerText","carouselProps","Carousel","next","previous","onIndicatorsClickHandler","hideIndicator","closeButton","slides","AddToCartProductListComponent","_quickOrderTemplate$q","_quickOrderTemplate$q2","quickOrderTemplate","quickOrderTemplateLines","fullProduct","ProductDetails","productListLine","buttonLabel","quickOrderGridBuySelectedButtonText","buttonAriaLabel","quickOrderGridBuySelectedButtonAriaLabel","dialogStrings","_props$resources$quic","_props$resources$quic2","_props$resources$quic3","_props$resources$quic4","_props$resources$quic5","_props$resources$quic6","_props$resources$quic7","_props$resources$free","_props$resources$orig","_props$resources$curr","_props$resources$adde","_props$resources$quic8","_props$resources$quic9","goToCartText","quickOrderGridGoToCartText","continueShoppingText","quickOrderGridDialogCloseText","quickOrderGridBuySelectedAddingToCartErrorNotificationCloseAriaLabel","headerItemOneText","quickOrderGridSingleItemText","headerItemFormatText","quickOrderGridMultiLineItemFormatText","headerLinesFormatText","quickOrderGridMultiLinesFormatText","headerMessageText","quickOrderGridHeaderMessageText","addedQuantityText","buyAgainNotificationTitle","quickOrderGridBuySelectedAddingToCartErrorNotificationTitle","buyAgainNotificationCloseAriaLabel","getDialogStrings","orderDetailProducts","quickOrder","orderDetails","quickLine","_quickLine$fullProduc","salesLine","OrderDetailsProduct","getOrderDetails","AddToCartComponent","addToCartText","addToCartArialLabel","navigationUrl","shouldSkipSiteSettings","orderDetailsProducts","onError","getQuickOrderGridAddToCartDialog","moduleClassName","_result$cartActionRes","cartActionResult","errorDetails","LocalizedMessage","handlers","onErrorMessage","removeActionHandler","removeProductList","productList","removeQuickOrderList","QuickOrderGridDrawer","_props$collapseProps$","_props$collapseProps","_isManuallyToggled","onToggle","previousState","collapseProps","_drawerGlyphClass","toggleGlyphClassName","closeGlyph","isAnimateGlyph","_drawerOpenGlyph","openGlyph","_drawerCloseGlyph","children","drawerClass","drawerButtonClassName","toggleButtonProps","block","isDisabled","_generateDrawerButtonInnerMarkup","Collapse","isCollapseState","drawerButtonTextClass","toggleButtonClassName","headingDrawerClass","descriptionDrawerClass","moduleHeadingText","moduleDescriptionText","_generateGlyphMarkup","glyphClass","QuickOrderGridFormComponent","productTextInput","quantityTextInput","quickOrderGridState","maxChars","minQuantity","isAddtoListDisabled","ariaLabelQuantity","ariaLabelProduct","ariaLabelAddtoCart","handleQuantityChange","handleInputChange","handleAddProductListClick","onInputChange","onInputChangeFunction","onQuantityInputChange","onQuantityChangeFunction","productNode","type","quantityNode","pattern","maxLength","addToListBtn","userMessage","stateMessage","Alert","statusCssString","messageGlyph","messageText","QuickOrderGridProduct","productLine","isSelected","observable","QuickOrderGridDesktopHeaderCellsComponent","columnWithNumberClassName","quickOrderGridProductNumberText","quickOrderGridProductText","quickOrderGridUnitPriceText","quickOrderGridUnitOfMeasureText","quickOrderGridQuantityText","quickOrderGridActionsText","QuickOrderGridMobileHeaderCellsComponent","QuickOrderGridTableHeaderComponent","rowClassName","headerCells","isMobile","defaultImageSettings","QuickOrderGridTableRowProductImageComponent","_props$data$product$p","_product$PrimaryImage","_props$imageSettings","OmniChannelMedia","containerClassName","setShowPreviousActions","onChangeHandler","onChangeQuantity","itemKey","newValue","onRemoveHandler","onRemoveItem","quickOrderGridProductKey","QuickOrderGridExtraActionsPopupComponent","_props$data$product$p2","quickOrderGridViewDetailsButtonAriaLabel","quickOrderGridViewDetailsButtonText","shouldShowActions","setShowActions","useState","StringExtensions","isNullOrWhitespace","ObjectExtensions","isNullOrUndefined","getProductPageUrlSync","onClickViewDetails","shouldShowActionsNewValue","actionsContainerClassName","quickOrderGridRemoveItemButtonAriaLabel","QuickOrderGridDesktopTableRowCellComponent","_props$data$product$p3","min","max","_product$Dimensions","_productListLine$Line","dimension","_dimension$DimensionV","dimensionValue","join","quickOrderGridProductDimensionsSeparator","moduleId","moduleTypeName","renderProductPrice","isNullOrEmpty","UnitOfMeasure","renderUnitOfMeasure","IncrementalQuantity","currentCount","quickOrderGridInputQuantityAriaLabel","decrementButtonAriaLabel","quickOrderGridDecrementButtonAriaLabel","incrementButtonAriaLabel","quickOrderGridIncrementButtonAriaLabel","isGiftCard","callbacks","QuickOrderGridMobileTableRowCellComponent","_props$data$product$p4","_productListLine$Line2","QuickOrderGridTableRowComponent","variant","VariantType","Viewport","QuickOrderGridTableComponent","setIsMobile","isMobileView","quickOrderGridProducts","isOrderQuantityLimitsFeatureEnabled","updateViewport","quickOrderProduct","_product$ProductDetai","_quickOrderProduct$pr","_quickOrderProduct$pr2","behavior","MinimumQuantity","Math","ProductPrice","callBacks","QuickOrderGrid","_this$props$data$feat2","_this$props$data$feat3","_this$props$data$feat4","_cartConfiguration$re","_cartConfiguration$re2","_waitTime","_dimensionUpdateQueueMaxLength","_errorCssClass","_errorCssGlyphClass","_dimensionUpdateQueue","FinitePromiseQueue","_dimensions","_initializedDimensions","Set","_cssClassNameConfigure","_className","_isOrderQuantityLimitsFeatureEnabled","_isChannelLimitsFeatureEnabled","_applyDefaultOrderSettingsForCartLine","_quickOrderGridCallbacks","initializeDimension","initializedDimension","add","dimensionSelectedAsync","selectedDimensionId","selectedDimensionValueId","_this$state$productDi","size","enqueue","_updateDimensions","FinitePromiseQueueError","ProcessWasDiscardedFromTheQueue","getDropdownName","dimensionType","_getDropdownName","changeUpdatingDimension","isUpdatingDimension","_quickOrderGridRowCallbacks","_removeItemRowFromTable","productListLineId","_changeRowQuantity","_removeProductList","token","ProductListsDataActions","reload","_updateStatusState","quickOrderGridDeleteProductListFailedText","_handleInputChange","query","productResponse","_cancellabelDebounce","cancel","isQuickOrderGridFormExpanded","_debounce","getScanResult","GetScanResultInput","channelId","results","ProductDimensionFull","_updateQuantitiesInState","setTimeout","_handleQuantityChange","_this$state$productRe","currentValue","Number","parseInt","inputElement","_quantityInput","current","HTMLInputElement","minimumQuantity","needToUpdateUIValue","_behavior$MinimumQuan","newCurrentValue","isNaN","setAttribute","_this$state$productRe2","ProductDimensionType","Color","Configuration","Size","Style","productDimensionTypeAmount","hasProductDimensions","dimensionsToUpdate","console","log","productDimensionErrorState","otherError","clearOtherErrorState","dimensionKey","configureErrors","errorState","mappedDimensions","_this$_updateDimensio","_updateDimensionValue","ExtensionProperties","selectedProduct","newProduct","getSelectedVariant","SelectedVariantInput","MasterProductId","getDimensionsForSelectedVariant","GetDimensionsForSelectedVariantInput","variantProduct","productDimensionFull","newValueId","DimensionValues","_getDimensionErrorString","dimensionTypeValue","amountErrorMessage","quickOrderGridproductDimensionTypeAmountErrorMessage","quickOrderGridproductDimensionTypeColorErrorMessage","quickOrderGridproductDimensionTypeConfigurationErrorMessage","quickOrderGridproductDimensionTypeSizeErrorMessage","quickOrderGridproductDimensionTypeStyleErrorMessage","_productResponse$Dime","missingDimensions","_getConfigureErrors","quickOrderGridWrongQuantityErrorMsg","quickOrderTemplateLinesData","orderLineIndex","findIndex","newProductListLine","previousQuantity","_objectWithoutProperties","_excluded","list","newLine","updatedLines","updatedProductList","ProductListLines","update","ActiveProductListInput","ProductListId","_addItemToProductListLine","quickOrderGridAddedToGridSuccessMessage","quickOrderGridAddedToGridFailureMessage","quickOrderGridAddedToGridDuplicateError","productListId","_productResponse$Defa","_createProductList","AddItemToProductListInput","DefaultUnitOfMeasure","addItemToProductListAction","CreateProductListInput","ProductListType","QuickOrder","createProductList","_productTextInput","_telemetryContent","_quickOrderGridFormClass","_quickOrderGridFormProductContent","_quickOrderGridFormMsgContent","ValidateDefaultOrderSettingsPerLine","_this$state$min","_this$state$max","quickOrderGridModuleHeading","quickOrderGridModuleDescription","quickOrderGridAddtogrid","quickOrderGridProductQuantityInputLabel","quickOrderGridProductInputLabel","quickOrderGridProductDimensionTypeColor","quickOrderGridProductDimensionTypeConfiguration","quickOrderGridSelectDimensionFormatString","quickOrderGridProductDimensionTypeSize","quickOrderGridProductDimensionTypeStyle","quickOrderGridProductDimensionTypeAmount","quickOrderGridModulePageHeading","productConfigureResources","selectDimensionFormatString","header","Heading","quickOrderGridProps","isB2bCustomer","actions","drawer","bulkPurchase","_renderBulkPurchase","quickOrderGridForm","quickOrderGridFormProductContent","quickOrderGridFormMsgContent","form","configure","getProductConfigure","container","_renderListContainer","orderActions","_renderQuickOrderGridActions","quickOrderGridDeleteButtonText","userMessageNode","topStateMessage","addProductListToBag","QuickOrderGridActionsView","isBulkPurchaseEnabled","bulkPurchaseSlots","containerClass","_renderQuickOrderTable","_initQuickOrderGridProducts","quickOrderGridProduct","validValues","tableClassName","_getMinQuantityForCartLineItem","_getMaxQuantityForCartLineItem","_getQuantity","_product$Behavior2","applyDefaultOrderSettingsForCartLine","_product$Behavior3","defaultQuantity","DefaultQuantity","dimensions","renderConfigureDropdown","dropdown","containerProps","labelContainerProps","heading","errors","select","renderConfigure","dropdowns","renderForm","quickOrderForm","quickOrderProductContent","quickOrderMessageContent","QuickOrderDrawer","_toggle","isManuallyToggled","drawerGlyphClass","animateGlyph","drawerOpenGlyph","drawerCloseGlyph","collapseState","QuickOrderFormComponent","quickOrderState","disableAddtoCart","addQuantityPlaceholderText","handleAddToCartClick","addToCartBtn","QuickOrderProduct","simpleProduct","QuickOrderDesktopHeaderCellsComponent","quickOrderProductNumberText","quickOrderProductText","quickOrderUnitPriceText","quickOrderUnitOfMeasureText","quickOrderQuantityText","quickOrderTotalText","quickOrderActionsText","QuickOrderMobileHeaderCellsComponent","QuickOrderTableHeaderComponent","QuickOrderTableRowProductImageComponent","_props$data$product$P","QuickOrderExtraActionsPopupComponent","QuickOrderDesktopTableRowCellComponent","_cartLine$LineId","quickOrderProductDimensionsSeparator","UnitOfMeasureSymbol","quickOrderInputQuantityAriaLabel","quickOrderDecrementButtonAriaLabel","quickOrderIncrementButtonAriaLabel","quickOrderRemoveItemButtonAriaLabel","QuickOrderMobileTableRowCellComponent","quickOrderQuantityMobileText","QuickOrderTableRowComponent","QuickOrderTableComponent","quickOrderProducts","waitTime","dimensionUpdateQueue","initializedDimensions","cssClassNameConfigure","quickOrderCallbacks","productText","inputQuantityText","quantityInput","cancellableDebounce","isQuickOrderFormExpanded","_addItemToCart","quickOrderAddedToCartSuccessMessage","quickOrderAddedToCartFailureMessage","_this$props$context$a","getDeliveryOptionsAsync","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","defaultDeliveryOption","productAvailableQuantity","_updateAvailability","shouldValidateQuantityLimits","_shouldValidateQuantityLimits","addProductToCartInput","orderQuantityLimitsFeatureIsEnabled","isAddEmailDeliveryItemToCart","addProductToCart","inputProductText","maxQtyLimitReachedMessage","_getMaxQtyMessage","_result$errorDetails","isOrderQuantityLimitsFeatureEnabledInSiteSettings","_getConcatenatedMaxQtyMessage","quickOrderMaxQuantityLimitText","quickOrderAlreadyItemQuantityText","reject","newAvailableQuantity","getProductAvailabilitiesForSelectedVariant","ProductAvailabilitiesForSelectedVariantInput","productAvailable","quickOrderproductDimensionTypeColorErrorMessage","quickOrderproductDimensionTypeConfigurationErrorMessage","quickOrderproductDimensionTypeSizeErrorMessage","quickOrderproductDimensionTypeAmountErrorMessage","quickOrderproductDimensionTypeStyleErrorMessage","_updateProductAvailability","quickOrderWrongQuantityErrorMsg","quickOrderOutofStockErrorMsg","viewport","device","Type","quickOrderFormClass","quickOrderFormProductContent","quickOrderFormMsgContent","quickOrderModuleHeading","quickOrderModuleDescription","quickOrderAddtobag","quickOrderProductQuantityInputLabel","quickOrderProductInputLabel","quickOrderProductDimensionTypeColor","quickOrderProductDimensionTypeConfiguration","quickOrderSelectDimensionFormatString","quickOrderProductDimensionTypeSize","quickOrderProductDimensionTypeStyle","quickOrderProductDimensionTypeAmount","quickAddQuantityPlaceholderText","quickOrderProps","isB2B","quickOrderList","_initQuickOrderProducts","productInventoryInfo","maxQuantityForLineItem","addedQuantity","item","_item$ItemId","minInventory","quickOrderMsgContent","SearchState","SuggestionType","ProductListInventoryFilteringOptions","AutoSuggestInput","searchText","top","suggestionType","hitPrefix","hitSuffix","getCacheKey","getCacheObjectType","dataCacheType","searchQuery","topResultsCount","_getAutoSuggest","autosuggest","_ctx$requestContext$a","catalogId","getCatalogId","productSearchCriteria","SearchCondition","Context","ChannelId","productListInventoryDisplay","HideOOS","inventoryRefinerValue","getInventorySortableRefinerValue","channelInventoryConfiguration","isInStock","ProductAvailabilitySortableAttributeRecordId","RefinerRecordId","DataTypeValue","AttributeDataType","TrueFalse","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","Count","RefinerSourceValue","ProductRefinerSource","Attribute","getInventoryConfigurationAsync","Refinement","searchCriteria","ProductSearchCriteria","HitPrefix","HitSuffix","searchSuggestions","getSearchSuggestionsAsync","Paging","Top","ImageUrl","generateImageUrl","AllSearchResults","createObservableDataAction","action","autoSuggestPromises","all","inputData","CategorySuggestionsComponent","suggestions","autoSuggestProps","categorySuggestionHeading","_renderTitle","categoryAutoSuggestionHeading","shouldShowFullPath","splitValue","split","pop","RegExp","attribute","_generateLink","_getHighlightedText","suggestion","_getCategoryLink","_categoryRefiners$Val","searchPageURL","searchQsp","searchRefiners","queryUrl","categoryRefiners","refiners","SourceValue","Category","refiner","Values","encodedRefiner","JSON","stringify","compressRefiners","formattedText","dangerouslySetInnerHTML","getRichTextHtml","compressedRefinerKeys","compressedRefiners","compressedRefiner","refinerKey","FormComponent","searchPlaceholder","hideSearchLabel","searchTextInput","disableSubmitSearch","handleCancelSearchChange","ariaLabelCancel","ariaLabelSearch","ariaLabelSubmit","inputNode","submitBtnNode","cancelBtn","submitBtn","KeywordSuggestionsComponent","formattedLink","LabelComponent","searchLabelClass","searchLabelArialLabel","isSearchFormExpanded","searchtext","searchCollapsedLabel","ProductSuggestionsComponent","productSuggestionHeading","productAutoSuggestionHeading","_item$Value","Value3","DecimalValue","thumbnail","_renderThumbnail","_renderPrice","LiProduct","_getLiWrapper","AProduct","_getAWrapper","recid","adjustedPrice","basePrice","_props$resources","xl","Search","_isLoadingNode","loadingText","autoSuggestResultLoadingMessage","Spinner","SpinnerSize","medium","labelPosition","_focusOutTarget","closest","_clearAutoSuggestState","_keyup","formReference","contains","autoSuggestResultDiv","searchState","defaultBasicSearchUrl","searchQueryStringParameter","createSearchStateInput","cancellabelDebounce","inputSuggestionType","_loadSuggestions","_handleSubmit","focus","searchURL","_appendQueryParams","document","_handleCancelSearchChange","isInitialState","_handleCancelSearchFocused","qsp","_setAutoSuggestResultCount","autoSuggestResultScreenReaderDiv","ariaLiveRegion","suggestResultString","autoSuggestFoundMessage","emptyResultString","noAutoSuggestionMessage","innerText","searchKeywordSuggestClass","searchProductSuggestClass","searchCategorySuggestClass","autoSuggestAriaLabel","isLoadingAutoSuggest","searchInputMaxLength","searchFormClass","_initSuggestionTypes","body","params","isEditor","_suggestions$AllSearc","_suggestions$AllSearc2","_suggestions$AllSearc3","cancelBtnAriaLabel","searchBtnAriaLabel","submitBtnAriaLabel","searchplaceholderText","shouldShowFullCategoryPath","keywordSuggestions","Keyword","None","productSuggestions","categorySuggestions","_item$RefinerRecordId","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","CategorySuggest","SearchForm","FormWrapper","autoComplete","UlKeyword","UlProduct","UlCategory","autosuggestKeyword","autosuggestProduct","autosuggestCategory","handleCancelSearchFocused","isLoadingNode","suggestionTypes","suggestionTypeCriterion","unique","validSuggestions","loadSuggestionsRequestId","getSearchSuggestionsAction","_getSuggestionType","_getSearchRefiners","Random","Guid","generateGuid","_getSearchSuggestions","_updateSearchRefiners","suggestionTypeItem","charAt","toUpperCase","slice","validateCatalogId","ProductsDataActions","_renderKeywordSuggestions","_renderProductSuggestions","_renderCategorySuggestions","getAdditionalContentItems","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","handleAdditionalParagraphChange","ctaLink","renderLinks","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","videoPlayerAdditionalContent","additionalContent","additionalContentNode","additionalContentItems","VideoPlayer","handleParagraphChange","paragraph","isMobileDevice","options","video","playerResources","playAriaLabel","playLabel","pauseAriaLabel","pauseLabel","playingAriaLabel","playingLabel","pausedAriaLabel","pausedLabel","muteAriaLabel","muteLabel","unMuteAriaLabel","unMuteLabel","fullScreenAriaLabel","fullScreenLabel","exitFullScreenAriaLabel","exitFullScreenLabel","seekBarLabel","videoTimeDurationLabel","closedCaptionLabel","videoMetaData","_video$_links","videoId","duration","playTime","posterframeUrl","_links","binaryReferences","videoBinaryReferences","videoPlayerData","metaData","player","Player","playerData","_getVideoDetailsHeading","_getVideoDetailsParagraph","_getVideoDetailsLinks","detailsContainer","detailsContainerCTA","handleParagraph","handleAdditionalText","handleAdditionalParagraph","handleLink","handleAdditionalLink","_this$props$config$ad","linkData","linkId","_heading$tag","detailsContainerCta","WishlistItemDimension","WishListItemActions","onAddToCart","_renderAriaLabel","formattedPrice","CurrencyCode","renderProductLink","recordId","productAttributes","productPageUrlWithSwatch","renderInventoryInformationLabel","WishlistItemAddToCartButtonComponent","addItemAction","WishlistItemRemoveFromWishlistButtonComponent","removeFromWishlistText","removeItemAction","unitOfMeasure","unitOfMeasureDisplayType","WishlistItem","wishlistState","enableImageProductLink","_context$request$app","fallbackImage","_props$product$Dimens","dimensionName","convertProductDimensionTypeToDimensionTypes","_getFullProductLink","productImage","_renderProductImage","productLink","_renderProductDimensions","productPrice","productUnitOfMeasure","entireProductLink","productAriaLabel","addToCartButton","inventoryInformation","removeButton","productStatusMessage","WishlistItemsStatusMessage","errorType","WishlistItems","handleHeadingChange","_renderHeading","addedToCartSuccessMessage","addedToCartFailureMessage","invoiceInCartErrorMessage","productInventoryInformation","_getProductInventory","_product$Behavior$Min","validateQuantity","isQuantityValidationRequired","respectQuantityLimits","_await$cart$cart","curQuantity","_getInventoryValueMessage","_result$errorDetails2","isChannelQuantityLimitsFeatureEnabledInHq","_this$props$data$cart2","validateLimitsPerLine","_this$props$data$cart3","_removeItemFromWishlist","noLongerLineExist","userToken","wishlistLineId","_getWishlistLineIdFromProductId","removeLinesAsync","commerceList","castCommerceList","_getProductsNoLongerExists","_removeNoLongerExistsLines","createGetByCustomerInput","getItemsInWishlists","ActiveWishlistInput","castSimpleProducts","isError","_inventoryLabel","StockLevelLabel","_inventoryClassName","StockLevelCode","toLowerCase","_isProductInStock","productResult","IsProductAvailable","foundWishlistItem","commerceListLine","_castCommerceList$Com","noLongerExist","emptyWishlistText","wishlistErrorGettingWishlist","noLongerExitsWishlistItemText","errorProps","statusMessage","productsList","emptyViewProps","Products","ProductDimensions","_renderProductList","statusNotExistsMessage","_getProductNotExists","emptytext","noLongerExisttext","priceFree","addToCartButtonText","currentProductProps","maxQuantityLimitText","productInventoryCollection","_renderItem","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","updateErrorState","errorHost","getConfigureErrors","BuyBoxConstants","updateQuantity","renderAddToOrderTemplate","addToOrderTemplate","orderTemplateButton","renderAddToOrderTemplateButton","orderTemplates","isMultipleCatalogsFeatureEnabled","isChannelMultipleCatalogsFeatureEnabled","AddToOrderTemplateComponent","addToOrderTemplateButtonText","addToOrderTemplateButtonTooltip","addToOrderTemplateDialogResources","createOrderTemplateDialogResources","itemAddedToOrderTemplateDialogResources","duplicateItemsWhenAddingToOrderTemplateDialogResources","shouldShowButtonFailedTooltip","isCustomPriceSelected","showButtonText","isMultipleCatalogFeatureEnabledInHq","currentCatalogId","ContainerProps","errorBlock","onAddToWishlistFailed","renderAddToWishlist","addToWishlist","enableWishlist","wishlistButton","renderAddtoWishlistButton","AddToWishlistComponent","addToWishlistButtonText","removeFromWishlistButtonText","addToWishlistMessage","removedFromWishlistMessage","addItemToWishlistError","removeItemFromWishlistError","nameOfWishlist","ariaRole","getSelectedProduct","renderShopSimilarItem","shopSimilarItem","LabelContainerProps","_props$data$product$r","_props$data$storeSele","_props$data$product$r3","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","addToCart","productComparisonButton","description","findInStore","rating","inventoryLabel","shopSimilarLook","keyInPrice","shopSimilarDescription","applyDefaultOrderSettings","quantityLimitsMessages","appConfig","skuText","preferredStoreInfo","preferredStoreId","StoreId","preferredStoreName","availability","setAvailability","isStoreChange","setIsStoreChange","getInventory","_props$data$product$r2","GetFullAvailableInventoryNearbyInput","zero","getFullAvailableInventoryNearby","response","_preferredStoreAvaila","isPreferredStore","_value$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","filteredFullOrgUnitAvailability","preferredStoreAvailability","stockStatusLabel","availabilityWithHours","ProductInventoryInformation","_availabilityWithHour","InventLocationId","getStockInventoryLabel","resourceLabel","itemAvailabilities","ItemAvailabilities","inStockText","stockText","preferredStoreAvailabilityText","availabilityAtPreferredStoreText","displayStockAvailability","_props$data$storeSele2","selectedStoreLocationId","mediaGallery","priceText","renderKeyInPrice","renderQuantity","quantityComponent","extentionResources","minQuantityText","maxQuantityText","bulkPurchaseLink","renderAvailabilityAtPreferredStore","_props$data$product$r4","_props$data$product$r5","button","renderAddToCart","modal","productPickupOptionList","renderFindInStore","socialShare","_renderSocialShare","shopText","descriptionText","productSpecification","CatalogLabelComponent","catalog","cartLineItemFunctions","dimensionStrings","_productDimension$Dim","_productDimension$Dim2","_productDimension$Dim3","_productDimension$Dim4","renderProductUnitPrice","currencyCode","priceCurrency","renderDiscountLines","_discountLine$OfferId","discountPercent","_discountLine$Percent","updatedPercent","DiscountLineTypeValue","DiscountLineType","TenderTypeDiscount","_discountLine$Effecti","effectiveAmount","toFixed","_chargeLine$Calculate","_cartline$ChargeLines2","_otherCharges$map","itemIndex","String","renderSalesAgreementPrompt","SalesAgreementLineRecordId","renderConfirmedShipDate","confirmedShipDate","confirmedShipDateLabel","createComponentOverride","component","_props$context$reques2","_product$Name","_props$primaryImageUr","productAttribute","imgeClassName","cartLineContentClassName","quantityOnChange","generateErrorMessage","NetAmountWithAllInclusiveTax","GrossAmount","ExtendedPrice","generateQuantityAndPrice","_props$maxQuantity","_props$data$product$I","isCartStateReady","classNames","htmlFor","priceEditorResources","CartLinePriceEditor","getDefaultColorSwatchSelected","productData","_colorAttribute$swatc","_colorAttribute$swatc2","_colorAttribute$swatc3","attributeValues","colorAttribute","attributeValue","_attributeValue$keyNa","keyName","toLocaleLowerCase","DimensionTypes","defaultSwatch","swatches","isDefault","updateProductUrl","productDetailsPageUrl","coreContext","queryString","sourceUrl","baseUrl","pathname","renderProductUnitOfMeasure","renderLabel","ratingAriaLabelText","reviewCount","ratingCountAriaLabelText","reviewCountArialableText","getReviewAriaLabel","getRatingAriaLabel","ratingAriaLabel","roundedRating","renderPrice","savingsText","isPriceMinMaxEnabled","priceResources","AdjustedPrice","renderProductPlacementImage","imageUrl","_context$app$config","contextConfig","placeholderImageName","fallbackImageSource","img","imageProps","bypassHideOnFailure","ProductComponentV2","_product$name","_product$recordId","_getProductImageUrlFr","_getProductPageUrlFro","ratingCountAriaLabel","allowBack","quickViewButton","isEnabledProductDescription","dimensionAvailabilities","swatchItemAriaLabel","MIN_VALUE","productImageUrlFromSwatch","dimensionToPreSelectInProductCard","none","productImageUrls","getProductImageUrlFromDefaultColorSwatch","productPageUrlFromSwatch","swatchValue","getProductPageUrlFromDefaultSwatch","productPageUrl","setProductPageUrl","productImageUrl","setProductImageUrl","selectedSwatchItems","Dictionary","updatePageAndImageUrl","swatchItem","setValue","newUrl","swatchProductImageUrl","newImageUrl","isUnitOfMeasureEnabled","averageRating","totalRatings","defaultUnitOfMeasure","_item$keyName$toLocal","_item$keyName","_item$swatches$map","_item$swatches","dimensionsToDisplayOnProductCard","dimensionsInProductCard","shouldDisplayDimension","_item$recordId","_swatchItem$swatchVal","_swatchItem$swatchVal2","_dimensionAvailabilit","itemId","colorHexCode","swatchColorHexCode","swatchImageUrl","dimensionAvailability","_swatchItem$swatchVal3","swatch","ProductComponentV2SwatchComponent","onSelectDimension","hideRating","avgRating","numberRatings","RatingComponent","ratingCount","readOnly","renderRating","inventoryAvailabilityLabel","quickview","selectedDimensions","getValues","convertDimensionTypeToProductDimensionType","selectedProductId","renderQuickView","renderProductComparisonButton","getDefaultSwatchSelected","_productData$Attribut","_attributeSwatches$fi","AttributeValues","attributeSwatches","_attributeValue$KeyNa","KeyName","Swatches","IsDefault","ProductComponent","_product$RecordId","swatchProductImageUrls","ProductImageUrls","getProductImageUrlFromDefaultSwatch","SwatchValue","encodeURIComponent","AverageRating","TotalRatings","_item$KeyName$toLocal","_item$KeyName","_item$Swatches$map","_item$Swatches","_item$RecordId","_swatchItem$SwatchVal","_swatchItem$SwatchVal2","SwatchColorHexCode","SwatchImageUrl","_swatchItem$SwatchVal3","ProductComponentSwatchComponent","mockRequest","buildMockRequest","mockRequestURL","requestUrl","staticCdnUrl","md","signUpUrl","mockAnonRequest","mockSigninErrorRequest","mockActionContext","buildHydratedMockActionContext","HeaderView","_configureStickyHeader","headerAlertsContainer","querySelector","bannerHeights","offsetHeight","headerElement","documentElement","scrollTop","classList","stickyHeader","headerLogo","navStickyPos","_renderAccountBlock","accountClassName","_renderAccountDropdownLinks","menuNode","useStickyHeader","_renderMobileLogo","_config$mobileLogoIma","mobileLogoImage","_props$productDetails","productDetails","renderBodyContent","loading","CarouselProps","renderQuickViewPopup","_props$state$productP","_props$state$productP2","ModalContainer","ModalHeaderContainer","ModalFooterContainer","ModalHeaderContent","ModalBodyContainer","cartContainerProps","seeDetailsbutton","QuickViewFunctionalComponent","quickView","isModalOpen","quickViewUpdatedProps","quickViewbuttonText","DescriptionInterval","renderProductCards","productsContainer","getInventoryLabel","channelInventoryConfigurationId","inventoryAttribute","textValue","renderProductCardsDescription","_props$data$products$","_props$data$featureSt","productsDimensionAvailabilities","breadCrumbType","breadcrumbType","isAllowBack","allowBackNavigation","classname","quickviewslot","isPriceMinMaxFeatureState","priceRangeSeparator","masterProductId","renderProducts","_data$products$result","_data$products$result2","listPageState","activeProducts","productDescriptionInterval","productDescriptionIntervalRemainder0","productDescriptionIntervalRemainder9","renderTitleCount","titleContainer","titleCount","configureStickyFilter","isStickyHeader","headerContainer","headerHeight","defaultContainer","refinerElement","clientHeight","removeAttribute","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modalHeader","createModalBody","modalFooter","modalBody","renderSort","refineMenuContainer","refinerSectionContainer","submenu","renderRefinerMobile","renderRefiner","renderRefinerFooter","handler","doneAriaLabel","tabIndex","doneText","sortingContainer","renderTitle","titlePrefix","titleText","_props$context$action","searchResultContainer","pagination","productSectionContainer","choiceSummary","modalToggle","searchResultModal","titleViewProps","sortByOptions","categoryNavContainer","refineAndProductSectionContainer","featureSearchContainer","similarLookProduct","useStickyFilter","stickyFilterSetup","enableStickyHeader","setIsExpanded","wrapperRefiner","refinerRefernce","handleClickOutside","element","useOutsideClick","recommendation","enableProdutDescription","filterText","ProductsContainer","TextValue","_props$data$listPageS","TitleContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","RefineMenuContainer","RefinerSectionContainer","SortingContainer","SearchResultContainer","ProductSectionContainer","TitleViewProps","categoryHierarchy","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","useEffect"],"sourceRoot":""}