{"version":3,"file":"static/js/2.0126a9919388f580ac42.chunk.js","mappings":"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","sources":["webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/fabrikam.tsx?5b10","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/components/cartlineitem.component.tsx?eb8c","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/components/promocode.component.tsx?d9d6","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/reviews-list.view.tsx?cd2e","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/fabrikam/views/search-result-container.view.tsx?89df"],"sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxResources as IBuyboxExtentionResources } from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const { ModuleProps, MediaGalleryContainerProps, ProductInfoContainerProps,\n addToCart, addToOrderTemplate, addToWishlist,\n telemetryContent, configure, description, findInStore,\n quantity, price, title, rating, callbacks, state, resources, inventoryLabel, shopSimilarLook, keyInPrice,\n quantityLimitsMessages, max, shopSimilarDescription, unitOfMeasure } = props;\n\n return (\n \n \n {props.mediaGallery}\n \n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n { _renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n { _renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n { _renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return (\n <>\n {textBlocks[0]}\n \n );\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return (\n <>\n {socialShare[0]}\n \n );\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return (\n \n {dropdowns.map(_renderConfigureDropdown)}\n \n );\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const {\n resources\n } = props;\n\n const\n {\n quantity\n } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n \n {heading}\n \n {input}\n \n\n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n ICartlinesViewProps,\n ICartResources,\n ICartViewProps,\n IOrderSummaryErrors\n} from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { Button, getPayloadObject, getTelemetryAttributes, INodeProps, ITelemetryContent, Node, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? _renderCartLinesGroup(props, props.resources) : \n {_renderCartlines(props.cartlines, props.resources, props.storeSelector, props.backToShoppingButton, props.waitingComponent, props.cartLoadingStatus,\n props.cartDataResult, props.telemetryContent, props.multiplePickUpEnabled, props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n }\n {props.orderSummaryHeading &&\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props) : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n }\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n\n \n );\n\n};\n\nconst _renderCartlines = (cartLines: ICartlinesViewProps[] | undefined, resources: ICartResources, storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode, waitingComponent: React.ReactNode, cartLoadingStatus: string, cartDataResult: boolean,\n telemetryContent?: ITelemetryContent, mulitplePickUp?: boolean, emailDeliveryModeCode?: string): JSX.Element[] | JSX.Element => {\n\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return (<>\n {cartLoadingStatus}\n );\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {\n mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ))\n }\n
\n );\n });\n }\n return (cartDataResult ? (\n
\n

\n {emptyCartText}\n

\n {backToShoppingButton}\n
\n ) : <>\n {waitingComponent}\n \n );\n\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined, telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { shipInsteadDisplayText, shipToAddressDisplayText, pickItUpDisplayText, pickUpAtStoreWithLocationText, changeStoreDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? \n {pickUpAtStoreWithLocationText}\n : \n {shipToAddressDisplayText}\n }\n
\n {\n isBopisSelected &&\n
\n \n {cartLine.pickUpInStore.orgUnitName}\n \n \n {changeStoreDisplayText}\n \n
\n }\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (orderSummaryLines: IOrderSummaryLines | undefined, OrderSummaryItems: INodeProps, props: ICartViewProps): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (invoiceSummaryLines: IInvoiceSummaryLines | undefined, OrderSummaryItems: INodeProps, props: ICartViewProps): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n { props.cartLinesGroup.map(cartlines => {\n return (
\n {_renderCartLinesGroupHeader(cartlines[0], props.storeSelector, resources, _countItems(cartlines), props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n {_renderCartlines(cartlines, props.resources, props.storeSelector, props.backToShoppingButton, props.waitingComponent, props.cartLoadingStatus, props.cartDataResult,\n props.telemetryContent, props.multiplePickUpEnabled, props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\n
);\n })}\n
\n );\n }\n return (props.cartDataResult ? (\n
\n
\n

\n {props.resources.emptyCartText}\n

\n {props.backToShoppingButton}\n
\n
\n ) : <>\n {props.waitingComponent}\n \n );\n\n};\nconst _renderCartLinesGroupHeader = (cartLine: ICartlinesViewProps, storeSelector: React.ReactNode | undefined, resources: ICartResources, count: number, emailDeliveryModeCode?: string) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n\n return (\n <>\n
\n

\n

\n {groupTitle}\n

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined, telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? : null }\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ?

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

: null}\n

\n (\n {count}\n {' '}\n {suffix}\n )\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CartLinePriceEditor, ICartLinePriceEditorResources, PriceComponent } from '@msdyn365-commerce/components';\nimport { IComponentProps, IGridSettings, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { ChannelDeliveryOptionConfiguration, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { CartLine, SalesLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions, getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, IncrementalQuantity, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classNames from 'classnames';\nimport * as React from 'react';\n\n/**\n * ICartlineResourceString: Interface for specifying the\n * resource strings that the component needs.\n */\nexport interface ICartlineResourceString {\n\n /**\n * Display string for discount label\n */\n discountStringText: string;\n\n /**\n * String for size key\n */\n sizeString: string;\n\n /**\n * String for color key\n */\n colorString: string;\n\n /**\n * String associated with the configuration product dimension\n */\n configString: string;\n\n /**\n * String for style key\n */\n styleString: string;\n\n /**\n * String for amount key\n */\n amountString?: string;\n\n /**\n * Display string for quantity label\n */\n quantityDisplayString: string;\n\n /**\n * Display string for quantity label\n */\n inputQuantityAriaLabel: string;\n\n /**\n * Aria label for the decrement button in quantity component\n */\n decrementButtonAriaLabel: string;\n\n /**\n * Aria label for the increment button in quantity component\n */\n incrementButtonAriaLabel: string;\n\n /**\n * Original text screenreader\n */\n originalPriceText: string;\n\n /**\n * Current text screenreader\n */\n currentPriceText: string;\n\n /**\n * Shipping Charges Text\n */\n shippingChargesText: string;\n\n priceEditorResources?: ICartLinePriceEditorResources;\n}\n\ninterface ICartLineData {\n cartLine: CartLine | SalesLine;\n cartState?: ICartState;\n product?: SimpleProduct;\n}\n\n/**\n * ICartLineProps: The props required to render cartLineitem.\n */\nexport interface ICartLineProps extends IComponentProps {\n\n /**\n * The flag to change the quantity component from intractable to static.\n */\n disableQuantityInteractivity?: boolean;\n\n /**\n * The primary image url.\n */\n primaryImageUrl?: string;\n\n /**\n * The product url.\n */\n productUrl?: string;\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\n /**\n * Boolean flag to indicate if the item is out of stock.\n */\n isOutOfStock?: boolean;\n\n /**\n * Flag to make quantity section editable.\n */\n isQuantityEditable?: boolean;\n\n /**\n * Max quantity for line item.\n */\n maxQuantity?: number;\n\n /**\n * Current quantity for line item.\n */\n currentQuantity?: number;\n\n /**\n * Resource string for the component.\n */\n resources: ICartlineResourceString;\n\n /**\n * SalesLine flag.\n */\n isSalesLine?: boolean;\n\n /**\n * Error message to show in place of quantity.\n */\n errorMessage?: string;\n\n /**\n * Inventory information label.\n */\n inventoryInformationLabel?: string;\n\n /**\n * Inventory information class name.\n */\n inventoryLabelClassName?: string;\n\n /**\n * Flag to show/hide shipping charges for line items.\n */\n showShippingChargesForLineItems?: boolean;\n\n /**\n * Boolean flag to indicate if cart state status is ready.\n */\n isCartStateReady?: boolean;\n\n /**\n * Chanel Delivery Option configuration is from api.\n */\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n\n /**\n * The cart line index.\n */\n lineIndex?: number;\n\n /**\n * Quantity onChange callback.\n */\n quantityOnChange?(cartLine: CartLine, newQuantity: number, lineIndex?: number): boolean;\n}\n\ninterface IDimensionStrings {\n\n /**\n * String for size key.\n */\n sizeString: string;\n\n /**\n * String for color key.\n */\n colorString: string;\n\n /**\n * String associated with the configuration product dimension.\n */\n configString: string;\n\n /**\n * String for style key.\n */\n styleString: string;\n\n /**\n * String for amount key.\n */\n amountString?: string;\n}\n\nconst CartLineItemFunctions = {\n renderProductDimensions: (Product: SimpleProduct, DimensionStrings: IDimensionStrings) => {\n if (!Product || !Product.Dimensions) {\n return [];\n }\n\n return Product.Dimensions.map(productDimension => {\n\n if (productDimension.DimensionTypeValue === 1) {\n return (\n
\n \n {DimensionStrings.colorString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n\n if (productDimension.DimensionTypeValue === 2) {\n return (\n
\n \n {DimensionStrings.configString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n\n if (productDimension.DimensionTypeValue === 3) {\n return (\n
\n \n {DimensionStrings.sizeString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n\n if (productDimension.DimensionTypeValue === 4) {\n return (\n
\n \n {Product.IsGiftCard ? DimensionStrings.amountString : DimensionStrings.styleString}\n :\n \n {productDimension.DimensionValue && productDimension.DimensionValue.Value}\n \n \n
\n );\n }\n return null;\n });\n },\n\n renderDiscountLines: (props: ICartLineProps) => {\n\n if (!props.data.cartLine.DiscountLines || props.data.cartLine.DiscountLines.length === 0) {\n return null;\n }\n\n return props.data.cartLine.DiscountLines.map((discountLine, index) => {\n return (\n
\n \n {discountLine.OfferName ? discountLine.OfferName : ''}\n :\n {` ${props.resources.discountStringText || 'Discount'} `}\n \n \n \n \n \n {` (${discountLine.EffectivePercentage !== undefined ? discountLine.EffectivePercentage : ''}%)`}\n \n
\n );\n });\n },\n renderInventoryLabel: (props: ICartLineProps) => {\n if (!props.inventoryInformationLabel) {\n return null;\n }\n const inventoryCssName = props.inventoryLabelClassName ? `msc-cart-line__product-inventory-label ${props.inventoryLabelClassName}` : 'msc-cart-line__product-inventory-label';\n return (\n \n {props.inventoryInformationLabel}\n \n );\n },\n\n /**\n * Gets the react node for product unit of measure display.\n * @param props - Icartline props.\n * @returns The node representing markup for unit of measure component.\n */\n renderUnitOfMeasure: (props: ICartLineProps) => {\n\n if (props.data.cartLine.IsInvoiceLine) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Do not need type check for appsettings\n if (!props.context.app.config.unitOfMeasureDisplayType || props.context.app.config.unitOfMeasureDisplayType === 'none') {\n return undefined;\n }\n\n const product = props.data.product;\n if (!product || !product.DefaultUnitOfMeasure) {\n return undefined;\n }\n\n return (\n
\n \n {product.DefaultUnitOfMeasure}\n \n
\n );\n },\n renderShippingLabel: (props: ICartLineProps) => {\n const pickupDeliveryModeCode = props.context.request.channel?.PickupDeliveryModeCode;\n const channelDeliveryOptionConfig = props.channelDeliveryOptionConfig;\n const cartline = props.data.cartLine;\n let hasShippingMethod = false;\n if (channelDeliveryOptionConfig !== undefined) {\n hasShippingMethod = !!(cartline.DeliveryMode &&\n channelDeliveryOptionConfig.PickupDeliveryModeCodes?.some(deliveryMode => deliveryMode !== cartline.DeliveryMode));\n } else {\n hasShippingMethod = !!(cartline.DeliveryMode && cartline.DeliveryMode !== pickupDeliveryModeCode);\n }\n if (!hasShippingMethod) {\n return undefined;\n }\n\n const shippingChargeLines = (cartline.ChargeLines || []).filter(chargeLine => chargeLine.IsShipping);\n\n if (shippingChargeLines.length === 0) {\n return undefined;\n }\n\n const freightFee = shippingChargeLines.reduce((chargeTotal, chargeLine) => {\n return chargeTotal + (chargeLine.CalculatedAmount || 0);\n }, 0);\n\n const priceComponent = (\n \n );\n return (\n <>\n \n \n {priceComponent}\n \n \n );\n },\n renderOtherCharges: (props: ICartLineProps) => {\n const cartline = props.data.cartLine;\n const otherCharges = cartline.ChargeLines?.filter((chargeline) => !chargeline.IsShipping);\n\n return otherCharges && otherCharges.map((otherCharge, key) => {\n return otherCharge && otherCharge.CalculatedAmount ? (\n
\n \n \n \n \n
\n ) : '';\n }) || undefined;\n }\n};\n\nconst CartLine: React.FC = (props: ICartLineProps) => {\n const { isSalesLine, productUrl, resources } = props;\n const { product, cartLine } = props.data;\n\n const destructDimensionStrings = {\n sizeString: resources.sizeString,\n colorString: resources.colorString,\n styleString: resources.styleString,\n configString: resources.configString,\n amountString: resources.amountString\n };\n\n const fallbackImageUrl = product && getFallbackImageUrl(product.ItemId, props.context.actionContext.requestContext.apiSettings);\n const productDimensions = product && CartLineItemFunctions.renderProductDimensions(product, destructDimensionStrings);\n const imageSettings = props.imageSettings;\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n const renderDisountLines = CartLineItemFunctions.renderDiscountLines(props);\n const renderInventoryLabel = CartLineItemFunctions.renderInventoryLabel(props);\n const renderUnitOfMeasure = CartLineItemFunctions.renderUnitOfMeasure(props);\n const renderShippingLabel = CartLineItemFunctions.renderShippingLabel(props);\n const renderOtherCharges = CartLineItemFunctions.renderOtherCharges(props);\n const payLoad = getPayloadObject('click', props.telemetryContent!, '', product?.RecordId.toString());\n const productAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const productName = product?.Name || cartLine.Description;\n const imgeClassName = props.data.cartLine.IsInvoiceLine ? 'msc-cart-line__invoice-image' : 'msc-cart-line__product-image';\n\n const onChange = (newValue: number): boolean => {\n if (props.quantityOnChange) {\n return props.quantityOnChange(props.data.cartLine, newValue, props.lineIndex);\n }\n return true;\n };\n\n const _generateErrorMessage = (): JSX.Element | null => {\n if (props.errorMessage) {\n return (\n
\n \n \n {props.errorMessage}\n \n
\n );\n }\n\n return null;\n };\n\n const _generateQuantityandPrice = (): JSX.Element[] | null => {\n const nodes = [];\n if (props.isOutOfStock) {\n return null;\n }\n\n // No quantity selector for invoice line\n if (!props.data.cartLine.IsInvoiceLine) {\n if (props.data.product && props.isQuantityEditable) {\n nodes.push(\n
\n
\n {resources.quantityDisplayString}\n
\n \n
\n );\n } else {\n nodes.push(\n
\n \n \n {props.data.cartLine.Quantity}\n \n
\n );\n }\n }\n\n nodes.push(\n
\n \n {\n props.data.cartLine.DiscountAmount && props.data.cartLine.DiscountAmount > 0 &&\n <>\n \n {` ${props.resources.discountStringText || 'Discount'} `}\n \n \n ||\n null\n }\n
\n );\n\n return nodes;\n };\n\n return (\n <>\n
\n
\n \n
\n
\n
\n \n {productName}\n \n {ArrayExtensions.hasElements(productDimensions) ?
\n {productDimensions}\n
: ''}\n {renderUnitOfMeasure}\n
\n \n
\n {renderDisountLines}\n {renderInventoryLabel}\n {props.showShippingChargesForLineItems &&
\n {renderShippingLabel}\n
}\n {renderOtherCharges}\n
\n {\n _generateQuantityandPrice()\n }\n {\n props.data.cartLine.IsInvoiceLine && props.data.cartState && props.resources.priceEditorResources && \n }\n
\n
\n { _generateErrorMessage() }\n \n );\n};\n\nexport default CartLine;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { Button, format, getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent, TelemetryConstant } 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\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
\n {this.props.promoCodeHeadingText}\n
\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, 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.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\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.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\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(\n (count: number, coupon: Coupon) => {\n return count + (this._calculateDiscount(coupon.Code || '', props.cart) || 0);\n },\n 0);\n\n return (\n <>\n
\n
\n {this.props.appliedPromoCodeHeadingText}\n
\n \n
\n {\n props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code) : '';\n\n return (\n
\n
\n {coupon.Code}\n {' '}\n (\n \n )\n
\n \n {props.removePromoText}\n \n
\n );\n })\n }\n \n );\n };\n}\n\nexport default PromoCode;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n Divider\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n \n {_renderReactFragment(props.menuBar)}\n \n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n { props.wishListIconMobile }\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return (\n <>\n {customer ? customer.FirstName || customer.Name : ''}\n \n );\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n signOutLink,\n signInLink,\n data,\n accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n\n if (accountLinks) {\n return (\n \n
\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0 ? items.map((slot: React.ReactNode, index: number) => {\n return (\n {slot}\n );\n }) : null}\n \n );\n}\n\nexport default headerView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return (\n <>\n {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return (this._renderDrawer(menuItem, setSize, posinset));\n }\n return (this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset));\n\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return (this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset));\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
\n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return (\n this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset)\n );\n } else if (item && item.linkText && !item.linkURL) {\n return (\n this._renderSpanMenuItem(item)\n );\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem && menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}\n {' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id));\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return (this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true));\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return (this._renderSpanMenuItem(menuItemData, menuItemData.id, true));\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = (option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option)\n );\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1);\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n { menuItem }\n { subMenu }\n \n );\n });\n return (this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu));\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n { option.linkText }\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true, isParent: boolean = false,\n setSize?: number, posinset?: number): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n { option.linkText }\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n { linkText }\n \n );\n }\n return null;\n\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n { option.linkText }\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay = !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay = !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 && 'navmenu-multi-level')}>\n { menuOptions }\n \n
\n {\n categoryImageDisplay && this.state.categoryImage && this.state.categoryImage.map(item => (\n \n { this.state.categoryImage && this._getCategoryImage(item) }\n { promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n ))\n }\n
\n
\n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({ src: imageSrc, altText: item.text, imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl } });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState(\n {\n activeMenu: undefined,\n categoryImage: null\n }\n );\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IGroup, IGroupDelivery, IGroups, IHeader, IList, IOrderHistoryViewProps, IOrderInformation, ISalesOrder } from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.salesLine}\n \n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink, expandProductsButton }) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return (\n {noReviewsMessage}\n );\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n \n {state.reported ? props.headerSubmitted : props.header}\n \n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n \n );\n};\n\nexport default ReviewsListview;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ICategoryHierarchyViewProps, IRefineMenuViewProps, ISearchResultContainerViewProps, ISearchResultModalViewProps, ISortByViewProps, ITitleViewProps } from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const { SearchResultContainer, products, pagination, ProductsContainer, ProductSectionContainer, choiceSummary, isMobile, modalToggle, searchResultModal, TitleViewProps,\n refineMenu, categoryHierarchy, sortByOptions, CategoryNavContainer, RefineAndProductSectionContainer, errorMessage, FeatureSearchContainer, similarLookProduct } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n \n {similarLookProduct}\n \n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy &&\n \n {renderCategoryHierarchy(categoryHierarchy)}\n }\n \n {refineMenu && renderRefiner(refineMenu)}\n \n \n {similarLookProduct}\n \n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n\n};\n\nconst createSearchResultModal = (modalProps: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps, sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string): JSX.Element => {\n return React.cloneElement(modalProps.modal, {}, modalProps.modalHeader, createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter);\n};\n\nconst createModalBody = (props: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\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 \n {submenu}\n \n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return (\n \n {sortByDropDown}\n \n );\n }\n return null;\n};\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 && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\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 {title.titleCount}\n )\n

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n"],"names":["_renderTextBlock","textBlocks","length","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","className","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","Node","map","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","props","state","extentionResources","quantityLimitsMessages","max","telemetryContent","resources","quantity","id","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","title","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","Module","mediaGallery","bulkPurchaseLink","slots","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","index","key","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","toggleBopis","onChangeStoreHandler","data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","payLoad","puckUpinStoreAttribute","orgUnitName","role","onClick","_renderErrorBlock","errorData","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","context","telemetry","error","_renderCartLinesGroup","cartLinesGroup","cartlines","_renderCartLinesGroupHeader","_countItems","actionContext","requestContext","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","pickUpText","shippingText","emailshippingText","groupTitle","toLowerCase","_renderCartLinesGroupTitle","countItem","reduce","item","Quantity","itemLabel","itemsLabel","suffix","deliveryOption","renderModuleAttributes","promotionOptions","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","cart","hasInvoiceLine","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","createTemplateFromCartButton","CartLineItemFunctions","Product","DimensionStrings","Dimensions","productDimension","DimensionTypeValue","RecordId","colorString","DimensionValue","Value","configString","sizeString","IsGiftCard","amountString","styleString","DiscountLines","discountLine","OfferId","OfferName","discountStringText","PriceComponent","isSalesLine","CustomerContextualPrice","PeriodicDiscount","EffectiveAmount","BasePrice","typeName","undefined","EffectivePercentage","inventoryInformationLabel","inventoryCssName","inventoryLabelClassName","IsInvoiceLine","app","config","unitOfMeasureDisplayType","product","DefaultUnitOfMeasure","pickupDeliveryModeCode","request","PickupDeliveryModeCode","channelDeliveryOptionConfig","hasShippingMethod","PickupDeliveryModeCodes","some","deliveryMode","shippingChargeLines","ChargeLines","filter","chargeLine","IsShipping","freightFee","chargeTotal","CalculatedAmount","priceComponent","freePriceText","shippingChargesText","otherCharges","chargeline","Description","productUrl","destructDimensionStrings","fallbackImageUrl","getFallbackImageUrl","ItemId","apiSettings","productDimensions","imageSettings","cropFocalRegion","renderDisountLines","renderInventoryLabel","renderUnitOfMeasure","renderShippingLabel","renderOtherCharges","toString","productAttribute","productName","Name","imgeClassName","quantityOnChange","lineIndex","src","primaryImageUrl","fallBackSrc","altText","gridSettings","loadFailureBehavior","href","ArrayExtensions","NetAmount","Price","NetAmountWithoutTax","NetPrice","showShippingChargesForLineItems","nodes","isOutOfStock","isQuantityEditable","push","quantityDisplayString","LineId","maxQuantity","currentQuantity","disabled","isCartStateReady","isGiftCard","originalPriceText","currentPriceText","DiscountAmount","DiscountAmountWithoutTax","_generateQuantityandPrice","cartState","priceEditorResources","CartLinePriceEditor","errorMessage","PromoCode","super","_onInputChangeHandler","e","target","value","this","setState","promoCodeInputValue","canApply","_applyPromotion","appliedPromo","addPromoCode","then","result","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_onSubmitHandler","event","preventDefault","_applyPromotionHandler","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","attributes","onSubmit","placeholder","_removePromotion","code","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_calculateDiscount","CartLines","discountAmount","line","DiscountCode","DiscountCost","_renderAppliedPromoCode","Coupons","removePromotionHandler","promoCodTotalDiscount","coupon","Code","appliedPromoCodeHeadingText","ariaLabel","removePromoAriaLabelFormat","removePromoText","isCollapseOpen","nextProps","nextState","promoCodeHeadingText","renderCustomerName","accountInformation","customer","FirstName","_renderReactFragment","items","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","link","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","linkText","promotionalImage","promotionalContent","image","imageSrc","promotionalItemImageSettings","text","additionalProperties","linkUrl","destinationUrl","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","_getCategoryImage","categoryImageUrl","generateImageUrl","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","ImageData","categoryImageSettings","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","bind","telemetryPageName","friendlyName","document","body","addEventListener","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","ref","tabIndex","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","keyValue","isDrawerOpen","colProps","toggleButtonProps","onToggle","collapseProps","_renderLinkText","menuSubItem","currentPos","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","forEach","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","Math","round","_renderMenu","Button","onFocus","hoverEffect","isParent","Link","imagesource","contentAction","etext","shouldOpenNewTab","onMouseOver","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_renderPromotionalLink","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","amount","channelReferenceId","channelName","channelAddress","SalesLine","salesLineProps","salesLine","buyAgainButton","GroupDelivery","deliveryProps","Group","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","groupsProps","groups","group","OrderSummary","orderSummaryProps","totalAmount","earnedPoints","Payment","paymentMethodsProps","methods","Help","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","moduleProps","viewModes","tableViewActions","table","alert","loading","orderInfomation","orderSummary","payment","help","OrderHistoryOrderInfomation","OrderHistoryGroupDelivery","processing","OrderHistoryGroup","OrderHistoryGroups","OrderHistoryHeader","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","salesOrder","orderHistoryProps","emptyMessage","backToShoppingLink","list","moreButton","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","buildReviewCard","cardProps","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation"],"sourceRoot":""}