{"version":3,"file":"static/js/23.c61ab1b83e0093337376.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-category-navigation-menu/components/link.tsx?c099","webpack://Citta2.0/./src/modules/citta-category-navigation-menu/components/subLink.tsx?099d","webpack://Citta2.0/./src/modules/citta-category-navigation-menu/citta-category-navigation-menu.tsx?40b8","webpack://Citta2.0/./src/modules/citta-category-navigation-menu/citta-category-navigation-menu.view.tsx?ab4a","webpack://Citta2.0/./src/modules/citta-checkout-payment-instrument-afterpay/citta-checkout-payment-instrument-afterpay.view.tsx?c323","webpack://Citta2.0/./src/themes/citta/views/footer-category.view.tsx?544e","webpack://Citta2.0/./src/themes/citta/views/invoice-details.view.tsx?b41b","webpack://Citta2.0/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Citta2.0/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Citta2.0/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://Citta2.0/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://Citta2.0/./src/modules/navigation-menu/navigation-menu.view.tsx?c594"],"sourcesContent":["import { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n// import { SubLink } from './subLink'\r\n\r\ninterface ILink {\r\n className?: string;\r\n text?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n index: string;\r\n noclick?: boolean;\r\n isActive: boolean;\r\n telemetryContent: ITelemetryContent;\r\n subLinks?: any;\r\n handleHover: Function;\r\n recordId: number;\r\n isHover: boolean;\r\n menuHover: boolean;\r\n}\r\n\r\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent, isActive, subLinks, handleHover, recordId, isHover, menuHover }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n const linkText = text !== undefined ? text : '';\r\n payLoad.contentAction.etext = linkText;\r\n // Construct telemetry attribute to render\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\r\n
handleHover(recordId)}\r\n onMouseLeave={() => handleHover(null)}\r\n >\r\n \r\n \r\n {linkText}\r\n \r\n \r\n \r\n\r\n {(isHover || (!menuHover && isActive)) && subLinks && subLinks.length ? \r\n (
\r\n {subLinks}\r\n
)\r\n :''\r\n }\r\n
\r\n );\r\n};","import { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ISubLink {\r\n className?: string;\r\n text?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n index: string;\r\n noclick?: boolean;\r\n isActive: boolean;\r\n telemetryContent: ITelemetryContent;\r\n handleHover: Function;\r\n recordId: number;\r\n}\r\n\r\nexport const SubLink: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent, isActive, handleHover, recordId }) => {\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n\r\n const subLinkText = text !== undefined ? text : '';\r\n payLoad.contentAction.etext = subLinkText;\r\n // Construct telemetry attribute to render\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n\r\n return (\r\n handleHover(recordId, true)}\r\n onMouseLeave={() => handleHover(null, true)}\r\n >\r\n \r\n {subLinkText}\r\n \r\n \r\n \r\n );\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { IGridSettings, IImageSettings, isEmptyOrNullObject} from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { Link } from './components/link';\r\nimport { SubLink } from './components/subLink';\r\nimport { IMenuItemData, ICittaCategoryNavigationMenuData } from './citta-category-navigation-menu.data';\r\nimport { ICittaCategoryNavigationMenuProps } from './citta-category-navigation-menu.props.autogenerated';\r\n\r\nexport interface INavigationMenuViewProps extends ICittaCategoryNavigationMenuProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer:INodeProps;\r\n MobileDescriptionContainer:INodeProps;\r\n MobileBackButton:INodeProps;\r\n MobileDescriptionLabel:INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?:INodeProps;\r\n ImageDivContainer?:INodeProps;\r\n showCategoryImage?:boolean;\r\n pageType: string;\r\n links?: React.ReactNode[];\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n linkHoverRecId?: number;\r\n subLinkHoverRecId?: number;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenu component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private hasSubLinks: boolean;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICittaCategoryNavigationMenuProps) {\r\n super(props);\r\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this.state = {\r\n isMobile: this.isMobile,\r\n linkHoverRecId: undefined,\r\n subLinkHoverRecId: undefined\r\n\r\n };\r\n this.hasSubLinks = false;\r\n\r\n this._handleHover = this._handleHover.bind(this);\r\n\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return (this.viewport === 'xs' || this.viewport === 'sm');\r\n }\r\n\r\n public componentDidMount(): void {\r\n let container = document.querySelector(\".ms-nav-category\");\r\n if (container) {\r\n const middle = container.querySelector(\"a.active\") || container.children[Math.floor((container.children.length - 1) / 2)];\r\n \r\n container.scrollTo({\r\n top: 0,\r\n // @ts-ignore\r\n left: middle.offsetLeft + middle.offsetWidth / 2 - container.offsetWidth / 2,\r\n behavior: 'smooth'\r\n })\r\n \r\n \r\n // middle.offsetLeft + middle.offsetWidth / 2 - container.offsetWidth / 2;\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const urlTokens = this.props.context.request.urlTokens;\r\n\r\n let links: React.ReactNode[] = [];\r\n\r\n if (urlTokens.pageType === 'Category') {\r\n const currentCategoryId = Number(urlTokens.recordId);\r\n const categoryHierarchyList = this.props.data.categories.result;\r\n if (categoryHierarchyList && categoryHierarchyList[1]) {\r\n const categoryHierarchyCurrent = categoryHierarchyList[1].Children[0];\r\n categoryHierarchyCurrent.Children.forEach(layerOneChild => {\r\n \r\n if (currentCategoryId === layerOneChild.RecordId) {\r\n links = this._getLinkData(layerOneChild, currentCategoryId);\r\n } else if (layerOneChild.Children && layerOneChild.Children.length) {\r\n layerOneChild.Children.forEach(layerTwoChild => {\r\n if (currentCategoryId === layerTwoChild.RecordId) {\r\n links = this._getLinkData(layerOneChild, currentCategoryId);\r\n \r\n } else if (layerTwoChild.Children && layerTwoChild.Children.length) {\r\n layerTwoChild.Children.forEach(layerThreeChild => {\r\n if (currentCategoryId === layerThreeChild.RecordId) {\r\n links = this._getLinkData(layerOneChild, currentCategoryId);\r\n }\r\n });\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n pageType: urlTokens.pageType,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames('ms-nav-category', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp', this.hasSubLinks ? 'hasSubMenu' : ''),\r\n tag:'nav',\r\n role:'navigation',\r\n 'aria-label': this.props.resources.menuAriaLabel\r\n },\r\n isMobileView: this.state.isMobile,\r\n links: links,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _handleHover(recordId?: number, isSubLink = false) {\r\n if (isSubLink) {\r\n this.setState({subLinkHoverRecId: recordId})\r\n } else {\r\n this.setState({linkHoverRecId: recordId})\r\n }\r\n }\r\n\r\n private _getLinkData(category: CategoryHierarchy, activeCurrent: Number): React.ReactNode[] {\r\n let links = [];\r\n links.push();\r\n \r\n (category.Children || []).forEach(childCategory => {\r\n let subLinks: any = [];\r\n let subLinkIsActive = false;\r\n if (childCategory.Children) {\r\n childCategory.Children.forEach(childChildCategory => {\r\n if (childChildCategory.RecordId === activeCurrent) {\r\n subLinkIsActive = true;\r\n }\r\n subLinks.push();\r\n });\r\n \r\n }\r\n if ((childCategory.RecordId === activeCurrent || subLinkIsActive) && childCategory.Children && childCategory.Children.length ) {\r\n this.hasSubLinks = true;\r\n }\r\n\r\n links.push();\r\n })\r\n\r\n return links;\r\n }\r\n}\r\n\r\nexport default NavigationMenu;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INavigationMenuViewProps } from './citta-category-navigation-menu';\r\n\r\nconst NavigationMenuView: React.FC = props => {\r\n const { isMobileView, Navigation, links, pageType} = props;\r\n if (pageType !== 'Category') {\r\n return null;\r\n }\r\n return (\r\n \r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default NavigationMenuView;","/*--------------------------------------------------------------\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutPaymentInstrumentViewProps, ICheckoutPaymentOverlayModal } from './citta-checkout-payment-instrument-afterpay';\r\n\r\nconst OverlayModal: React.FC = ({\r\n modal\r\n}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst CheckoutPaymentInstrumentView: React.FC = ({\r\n checkoutPaymentInstrument,\r\n className,\r\n id,\r\n waiting,\r\n alert,\r\n paymentInformation,\r\n addPaymentForm,\r\n overlayModal,\r\n ...restProps\r\n}) => (\r\n \r\n {waiting}\r\n {alert}\r\n {paymentInformation}\r\n {addPaymentForm}\r\n {overlayModal && }\r\n \r\n);\r\n\r\nexport default CheckoutPaymentInstrumentView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IFooterCategoryViewProps } from '@msdyn365-commerce-modules/footer/src/modules/footer-category';\r\nimport { Drawer, IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React, { ReactNode } from 'react';\r\nimport { IFooterCategoryProps } from '../definition-extensions/footer-category.ext.props.autogenerated';\r\n\r\nexport const FooterCategoryView: React.FC> = props => {\r\n const { categories, FooterList, FooterListItem } = props;\r\n if (!categories || !categories.length) {\r\n return null;\r\n }\r\n const FooterContainer: IModuleProps = {\r\n moduleProps: props,\r\n className: classnames('ms-footer_module', props.config.className),\r\n };\r\n\r\n if (props.config.renderDrawer) {\r\n return (\r\n \r\n {renderDesktop(props)}\r\n {renderMobile(props)}\r\n );\r\n } else {\r\n return (\r\n \r\n {categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n }\r\n};\r\n\r\nfunction renderDesktop(props: IFooterCategoryViewProps & IFooterCategoryProps<{}>): JSX.Element {\r\n const { categories, FooterListItem } = props;\r\n const DesktopFooterList: IModuleProps = {\r\n moduleProps: props,\r\n className: classnames('ms-footer__list-Desktop citta-footer-category-desktop', props.config.className),\r\n tag: 'ul',\r\n role: 'menu'\r\n };\r\n return (\r\n \r\n \r\n {props.config.categoryName}\r\n \r\n {categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n}\r\n\r\nfunction renderMobile(props: IFooterCategoryViewProps & IFooterCategoryProps<{}>): React.ReactNode {\r\n const { categories } = props;\r\n const MobileFooterList: IModuleProps = {\r\n moduleProps: props,\r\n className: classnames('ms-footer__list-mobile citta-footer-category-mobile', props.config.className),\r\n tag: 'ul',\r\n role: 'menu'\r\n };\r\n return (\r\n \r\n \r\n
\r\n {categories &&\r\n categories.map((category, id2: number) => (\r\n
\r\n {category}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FooterCategoryView;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IInvoiceDetailsConfig, IInvoiceDetailsProps as IInvoiceDetailsExtentionProps, IInvoiceDetailsResources as IInvoiceDetailsExtentionResources } from '../definition-extensions/invoice-details.ext.props.autogenerated'\r\n\r\nimport { IInvoiceDetailsViewProps } from '@msdyn365-commerce-modules/invoice-details/src/modules/invoice-details/./invoice-details';\r\n\r\nexport const InvoiceDetailsView: React.FC & IInvoiceDetailsExtentionResources> = props => {\r\n const { header, products, paymentDetails, payInvoiceError, config} = props;\r\n const salesId = props.data.invoiceDetails.result?.SalesId;\r\n const invoiceOrderId = props.data.invoiceDetails.result?.Id;\r\n return (\r\n \r\n {/* @ts-ignore */}\r\n {salesId && <>{props.resources.salesIdLabel}{salesId}}\r\n {/* @ts-ignore */}\r\n {invoiceOrderId &&
{props.resources.invoiceNoIdLabel}{invoiceOrderId}
}\r\n {config && config.gstNumber &&
{props.resources.gstNumberLabel}{config.gstNumber}
}\r\n {header}\r\n {products}\r\n {paymentDetails}\r\n {payInvoiceError}\r\n
\r\n );\r\n};\r\n\r\nexport default InvoiceDetailsView;\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. 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":["Link","_ref","text","className","href","ariaLabel","index","noclick","telemetryContent","isActive","subLinks","handleHover","recordId","isHover","menuHover","payLoad","getPayloadObject","linkText","undefined","contentAction","etext","attribute","getTelemetryAttributes","React","onMouseEnter","onMouseLeave","Object","assign","onClick","onTelemetryClick","itemProp","content","length","SubLink","subLinkText","NavigationMenu","constructor","props","super","this","viewport","context","request","device","Type","state","isMobile","linkHoverRecId","subLinkHoverRecId","hasSubLinks","_handleHover","bind","static","locale","nameTranslations","nameTranslation","find","item","Language","toLowerCase","Text","componentDidMount","container","document","querySelector","middle","children","Math","floor","scrollTo","top","left","offsetLeft","offsetWidth","behavior","componentWillUnmount","window","removeEventListener","resizeThrottledEventHandler","render","urlTokens","links","pageType","currentCategoryId","Number","categoryHierarchyList","data","categories","result","Children","forEach","layerOneChild","RecordId","_getLinkData","layerTwoChild","layerThreeChild","isEmptyOrNullObject","telemetry","error","viewProps","_objectSpread","Navigation","moduleProps","classnames","config","tag","role","resources","menuAriaLabel","isMobileView","renderView","arguments","setState","category","activeCurrent","push","Name","Url","pageName","moduleName","childCategory","subLinkIsActive","childChildCategory","__decorate","observable","computed","Module","OverlayModal","modal","Node","_ref2","checkoutPaymentInstrument","id","waiting","alert","paymentInformation","addPaymentForm","overlayModal","_objectWithoutProperties","_excluded","FooterCategoryView","FooterList","FooterListItem","FooterContainer","renderDrawer","DesktopFooterList","categoryName","map","key","renderDesktop","MobileFooterList","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","toggleButtonProps","color","id2","renderMobile","InvoiceDetailsView","_props$data$invoiceDe","_props$data$invoiceDe2","header","products","paymentDetails","payInvoiceError","salesId","invoiceDetails","SalesId","invoiceOrderId","Id","salesIdLabel","invoiceNoIdLabel","gstNumber","gstNumberLabel","CatalogPicker","handleTextChange","event","heading","target","value","handleParagraphChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","editProps","onEdit","requestContext","isCatalogsAvailable","ArrayExtensions","hasElements","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","Msdyn365","isBrowser","_getUrlSync","catalogUrl","getUrlSync","actionContext","fullUrl","URL","location","searchParams","set","Button","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","image","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","apiSettings","Uri","gridSettings","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","MenuTypeIndexId","MenuSource","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","navigationMenuSource","menuItemList","MsDyn365","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","viewports","xs","q","w","h","xl","lazyload","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","menuItemData","mergedData","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","promotionalData","filter","promoItem","_promoItem$categoryNa","_retailItem$Name","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","NameTranslations","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","linkUrl","destinationUrl","imageDestinationURL","imageLink","_getCMSNestedChildren","Cms","shouldOpenNewTab","openInNewTab","imageSourceUrl","nestedChildren","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","innerWidth","sm","md","lg","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","option","promotionalImage","imageSrc","promotionalItemImageSettings","additionalProperties","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","current","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","categoryImageSettings","menuItemRef","getTelemetryObject","telemetryPageName","friendlyName","body","addEventListener","componentDidUpdate","_this$menuItemRef$cur","focus","ref","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","round","toString","_renderMenu","onFocus","hoverEffect","isParent","imagesource","attributes","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope"],"sourceRoot":""}