{"version":3,"file":"static/js/21.855ecc7da9531090a8ad.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/punchout-empty-cart/methods/empty-active-cart.ts?ff67","webpack://Msdyn365.Commerce.Online/./src/modules/punchout-empty-cart/punchout-empty-cart.tsx?92a0","webpack://Msdyn365.Commerce.Online/./src/modules/punchout-empty-cart/punchout-empty-cart.view.tsx?cc83","webpack://Msdyn365.Commerce.Online/./src/themes/dyn-tebutheme/views/buybox.view.tsx?a4bb","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.tsx?797a","webpack://Msdyn365.Commerce.Online/./src/modules/msdyn365-pva-chat-connector/msdyn365-pva-chat-connector.view.tsx?cb2f","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.view.tsx?c594"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { getCartState, getCheckoutState } from '@msdyn365-commerce/global-state';\r\n\r\nasync function emptyActiveCart(ctx: IActionContext): Promise {\r\n let cartState;\r\n let checkoutState;\r\n const lineItemIdsToRemove = [];\r\n\r\n try {\r\n cartState = await getCartState(ctx);\r\n checkoutState = await getCheckoutState(ctx);\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n if (!cartState || !cartState.cart) {\r\n throw new Error('Fail to fetch active cart');\r\n }\r\n\r\n if (!checkoutState || !checkoutState.checkoutCart) {\r\n throw new Error('Fail to fetch checkoutCart cart');\r\n }\r\n\r\n const activeCart = cartState.cart;\r\n const checkoutCart = checkoutState.checkoutCart.cart;\r\n\r\n for (const activeCartLine of activeCart.CartLines || []) {\r\n for (const checkoutCartLine of checkoutCart.CartLines || []) {\r\n if (activeCartLine.LineId && activeCartLine.LineId === checkoutCartLine.LineId) {\r\n lineItemIdsToRemove.push(activeCartLine.LineId);\r\n }\r\n }\r\n }\r\n\r\n try {\r\n await cartState.removeCartLines({ cartLineIds: lineItemIdsToRemove });\r\n await cartState.removeAllPromoCodes({});\r\n await checkoutState.removeCheckoutCartId({});\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport default emptyActiveCart;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IPunchoutEmptyCartData } from './punchout-empty-cart.data';\r\nimport { IPunchoutEmptyCartProps } from './punchout-empty-cart.props.autogenerated';\r\nimport emptyActiveCart from './methods/empty-active-cart';\r\n\r\nexport interface IPunchoutEmptyCartViewProps extends IPunchoutEmptyCartProps {}\r\n\r\n/**\r\n *\r\n * PunchoutEmptyCart component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass PunchoutEmptyCart extends React.PureComponent> {\r\n public async componentDidMount(): Promise {\r\n const isPunchoutAccess: string | null = window.sessionStorage.getItem('isPunchoutAccess') ?? null;\r\n\r\n if (isPunchoutAccess === '1') {\r\n await emptyActiveCart(this.props.context.actionContext);\r\n window.sessionStorage.removeItem('isPunchoutAccess');\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default PunchoutEmptyCart;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IPunchoutEmptyCartViewProps } from './punchout-empty-cart';\r\n\r\nexport default (props: IPunchoutEmptyCartViewProps) => {\r\n return <>;\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n IBuyboxAddToWishlistViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxData,\r\n IBuyboxFindInStoreViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxProps,\r\n IBuyboxShopSimilarLookViewProps,\r\n IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxResources as IBuyboxExtentionResources } from '../definition-extensions/buybox.ext.props.autogenerated';\r\n\r\nconst BuyboxView: React.FC> = props => {\r\n const { ModuleProps, MediaGalleryContainerProps, ProductInfoContainerProps,\r\n addToCart, addToOrderTemplate, addToWishlist,\r\n telemetryContent, configure, description, findInStore,\r\n quantity, price, title, rating, callbacks, state, resources, inventoryLabel, shopSimilarLook, keyInPrice,\r\n quantityLimitsMessages, max, shopSimilarDescription, unitOfMeasure } = props;\r\n\r\n return (\r\n \r\n \r\n {props.mediaGallery}\r\n \r\n \r\n {title}\r\n {price}\r\n {unitOfMeasure}\r\n {description}\r\n { _renderTextBlock(props.slots.textBlocks)}\r\n {rating}\r\n {configure && _renderConfigure(configure)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\r\n {inventoryLabel}\r\n { _renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\r\n {findInStore && _renderFindInStore(findInStore)}\r\n { _renderSocialShare(props.slots && props.slots?.socialShare)}\r\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\r\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <>\r\n {textBlocks[0]}\r\n \r\n );\r\n};\r\n\r\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!socialShare || socialShare.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <>\r\n {socialShare[0]}\r\n \r\n );\r\n};\r\n\r\nconst _renderCartAndActions = (\r\n addToCart?: IBuyboxAddToCartViewProps,\r\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\r\n addToWishlist?: IBuyboxAddToWishlistViewProps): JSX.Element | undefined => {\r\n if (!addToCart && !addToWishlist) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n
\r\n {addToCart && addToCart.errorBlock}\r\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\r\n {addToWishlist && addToWishlist.errorBlock}\r\n
\r\n {addToCart && addToCart.button}\r\n {addToOrderTemplate && addToOrderTemplate.button}\r\n {addToWishlist && addToWishlist.button}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return (\r\n \r\n {dropdowns.map(_renderConfigureDropdown)}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\r\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\r\n\r\n return (\r\n \r\n {storeSelector}\r\n {heading}\r\n {productPickupOptionList}\r\n {description}\r\n {errors}\r\n {button}\r\n {modal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * On Change function.\r\n * @param callbacks -Callbacks.\r\n * @returns Update quantity.\r\n */\r\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\r\n if (callbacks.updateQuantity) {\r\n return callbacks.updateQuantity(newValue);\r\n }\r\n return true;\r\n};\r\n\r\nconst _renderQuantity = (\r\n quantityComponent: IBuyboxProductQuantityViewProps,\r\n callbacks: IBuyboxCallbacks,\r\n props: IBuyboxProps,\r\n state: IBuyboxState,\r\n extentionResources: IBuyboxExtentionResources,\r\n quantityLimitsMessages: React.ReactNode,\r\n max: number | undefined,\r\n telemetryContent?: ITelemetryContent): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n\r\n const {\r\n resources\r\n } = props;\r\n\r\n const\r\n {\r\n quantity\r\n } = state;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n\r\n \r\n {quantityLimitsMessages}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {input}\r\n \r\n\r\n );\r\n};\r\n\r\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\r\n const { ContainerProps, errors, input } = shopSimilarItem;\r\n\r\n return (\r\n \r\n {errors}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nexport default BuyboxView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: 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: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\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';\nimport { isOboRequest } from '@msdyn365-commerce/core-internal';\nimport { IMsdyn365PvaChatConnectorData } from './msdyn365-pva-chat-connector.data';\nimport { IMsdyn365PvaChatConnectorConfig, IMsdyn365PvaChatConnectorProps } from './msdyn365-pva-chat-connector.props.autogenerated';\n\nexport interface IPvaChatConnectorViewProps extends IMsdyn365PvaChatConnectorProps {\n config: IMsdyn365PvaChatConnectorConfig;\n}\n\n/**\n * PvaChatConnector component\n * @extends {React.PureComponent>}\n */\nclass PvaChatConnector extends React.PureComponent> {\n // Loads CDN version of Botframework-Webchat library\n public componentDidMount(): void {\n if (isOboRequest(this.props.context.request)) {\n return;\n }\n\n const url = this.props.config.botFrameworkCDNURL || this.props.context.app.config.pvaChatConnectorBotFrameworkCDNURL;\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.crossOrigin = 'anonymous';\n document.body.appendChild(script);\n }\n\n public render(): JSX.Element | null {\n if (isOboRequest(this.props.context.request)) {\n return null;\n }\n\n return this.props.renderView(this.props);\n }\n}\n\nexport default PvaChatConnector;\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';\nimport { Chat, IPvaChatConnectorViewProps } from './index';\n\nexport default (props: IPvaChatConnectorViewProps) => {\n // Only for CDN loading check, won't be needed with npm package of Botframework-WebChat\n const [loaded, setLoaded] = React.useState(false);\n const p = {\n ...props\n };\n\n // Just to verify that CDN Chat Widget js lib is loaded\n // Remove this block if moving to npm package of Botframework-WebChat\n const interval = setInterval(() => {\n const t = typeof window;\n if (t !== 'undefined' && window.WebChat) {\n setLoaded(true);\n clearInterval(interval);\n }\n }, 100);\n\n return
{loaded && }
;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n }\n}\n\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: 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.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\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, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\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 !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\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 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 !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\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, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\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 this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\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 multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\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 =\n subMenus &&\n 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 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 private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = 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 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 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 private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !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 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n 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 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({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\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 NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\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 activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\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 * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\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 return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n"],"names":["async","ctx","cartState","checkoutState","lineItemIdsToRemove","getCartState","getCheckoutState","error","cart","Error","checkoutCart","activeCart","activeCartLine","CartLines","checkoutCartLine","LineId","push","removeCartLines","cartLineIds","removeAllPromoCodes","removeCheckoutCartId","PunchoutEmptyCart","React","window","sessionStorage","getItem","emptyActiveCart","this","props","context","actionContext","removeItem","render","renderView","_renderTextBlock","textBlocks","length","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","className","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","Node","Object","map","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","state","extentionResources","quantityLimitsMessages","max","telemetryContent","resources","quantity","IncrementalQuantity","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","slots","CatalogPicker","constructor","super","handleTextChange","event","config","text","target","value","handleParagraphChange","paragraph","catalogPickerHeading","Text","_moduleClassName","tag","editProps","onEdit","requestContext","request","isCatalogsAvailable","ArrayExtensions","data","catalogs","result","catalogPickerParagraph","RichTextComponent","catalogValidationText","viewProps","handleText","catalogPicker","moduleProps","_renderCatalogPicker","_renderCatalogPickerButton","item","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","Msdyn365","catalogUrl","getUrlSync","fullUrl","URL","location","href","searchParams","set","Button","changeCatalogButtonText","isBrowser","role","reactKey","JSON","stringify","String","image","Images","key","tabIndex","Name","Image","src","generateImageUrl","apiSettings","Uri","gridSettings","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","PvaChatConnector","componentDidMount","isOboRequest","url","botFrameworkCDNURL","app","pvaChatConnectorBotFrameworkCDNURL","script","document","createElement","crossOrigin","body","appendChild","loaded","setLoaded","p","interval","setInterval","WebChat","clearInterval","Chat","FooterItem","handleHeadingChange","handleLinkTextChange","link","linkText","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","footerItemClassName","classnames","contentAction","etext","attributes","getTelemetryAttributes","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","linkUrl","destinationUrl","ariaLabel","openInNewTab","undefined","onClick","onTelemetryClick","editableLink","additionalProperties","onTextChange","ariaHiddenAttr","viewports","xs","q","w","h","lg","lazyload","shouldSkipToMainImage","FooterItemView","_renderElement","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","bind","viewport","device","Type","navigationMenuSource","isMobile","menuItemList","locale","nameTranslations","nameTranslation","find","Language","toLowerCase","MsDyn365","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","removeEventListener","_mapData","isEmptyOrNullObject","xl","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","index","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","filter","promoItem","categoryName","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","imageDestinationURL","imageLink","_getCMSNestedChildren","Cms","shouldOpenNewTab","category","imageSourceUrl","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","setState","innerWidth","sm","md","__decorate","observable","computed","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","option","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","current","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","categoryImageSettings","menuItemRef","addEventListener","componentDidUpdate","children","focus","ref","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","forEach","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass"],"sourceRoot":""}