{"version":3,"file":"static/js/23.e3be0a76ecf5403e13f7.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/catalog-picker/catalog-picker.tsx?02aa","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/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.view.tsx?1e13","webpack://Citta2.0/./src/modules/navigation-menu/navigation-menu.view.tsx?c594"],"sourcesContent":["/*!\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. 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","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 { 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 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":["CatalogPicker","React","constructor","props","super","handleTextChange","event","this","config","heading","text","target","value","handleParagraphChange","paragraph","render","_heading$tag","_this$props$data$cata","catalogPickerHeading","Text","className","_moduleClassName","tag","editProps","onEdit","requestContext","context","request","isCatalogsAvailable","ArrayExtensions","hasElements","data","catalogs","result","catalogPickerParagraph","RichTextComponent","resources","catalogValidationText","viewProps","_objectSpread","handleText","catalogPicker","moduleProps","_renderCatalogPicker","renderView","_renderCatalogPickerButton","item","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","Msdyn365","isBrowser","_getUrlSync","catalogUrl","getUrlSync","actionContext","fullUrl","URL","window","location","href","searchParams","set","Button","changeCatalogButtonText","_this$props$data$cata2","role","map","reactKey","JSON","stringify","String","image","firstOrDefault","Images","key","tabIndex","Name","Image","src","generateImageUrl","apiSettings","Uri","gridSettings","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","bind","viewport","device","Type","navigationMenuSource","state","isMobile","menuItemList","static","locale","nameTranslations","nameTranslation","length","find","Language","toLowerCase","componentDidMount","MsDyn365","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","removeEventListener","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","telemetry","error","viewports","xs","q","w","h","xl","lazyload","Navigation","classnames","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","Link","DivContainer","ImageDivContainer","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","index","push","_constructMenuItemData","undefined","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","id","linkText","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","filter","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","promotionalContent","menuSource","Retail","ariaLabel","CMSItemIdInit","linkUrl","destinationUrl","imageDestinationURL","imageLink","_getCMSNestedChildren","Cms","shouldOpenNewTab","openInNewTab","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","setState","innerWidth","sm","md","lg","__decorate","observable","computed","_ref","noclick","telemetryContent","isActive","subLinks","handleHover","recordId","isHover","menuHover","payLoad","getPayloadObject","contentAction","etext","attribute","getTelemetryAttributes","onMouseEnter","onMouseLeave","Object","assign","onTelemetryClick","itemProp","content","SubLink","subLinkText","linkHoverRecId","subLinkHoverRecId","hasSubLinks","_handleHover","container","document","querySelector","middle","children","Math","floor","scrollTo","top","left","offsetLeft","offsetWidth","behavior","urlTokens","links","pageType","currentCategoryId","Number","categoryHierarchyList","forEach","layerOneChild","_getLinkData","layerTwoChild","layerThreeChild","activeCurrent","pageName","moduleName","childCategory","subLinkIsActive","childChildCategory","Module","OverlayModal","modal","Node","_ref2","checkoutPaymentInstrument","waiting","alert","paymentInformation","addPaymentForm","overlayModal","_objectWithoutProperties","_excluded","FooterCategoryView","FooterList","FooterListItem","FooterContainer","renderDrawer","DesktopFooterList","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","CatalogPickerViewFunctionComponent","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":""}