{"version":3,"file":"static/js/59d0d90e8aa1f6c39564.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b","webpack://Msdyn365.Commerce.Online/./lib/custom-navigation-menu/module-registration.js?f42c","webpack://Msdyn365.Commerce.Online/./src/modules/custom-navigation-menu/custom-navigation-menu.data.ts?ec5e","webpack://Msdyn365.Commerce.Online/./src/modules/custom-navigation-menu/custom-navigation-menu.tsx?7e14","webpack://Msdyn365.Commerce.Online/./src/modules/custom-navigation-menu/custom-navigation-menu.view.tsx?7b58"],"sourcesContent":["module.exports = React;","module.exports = ReactDOM;","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['custom-navigation-menu'] = {\n c: () => require('partner/modules/custom-navigation-menu/custom-navigation-menu.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'custom-navigation-menu',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/custom-navigation-menu'\n });\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|custom-navigation-menu|custom-navigation-menu'] = {\n c: () => require('partner/modules/custom-navigation-menu/custom-navigation-menu.view.tsx'),\n cn: '__local__-__local__-custom-navigation-menu'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport interface ICustomNavigationMenuData {\n actionResponse: { text: string };\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\nexport enum MenuTypeIndexId {\n Cms = 2000,\n Retail = 6000\n}","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IGridSettings, IImageSettings } from '@msdyn365-commerce/core';\n// import { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\n// import { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { ICustomNavigationMenuData, MenuTypeIndexId, IMenuItemData } from './custom-navigation-menu.data';\nimport { ICustomNavigationMenuProps, ICmsNavItemsData, ISubMenusData } from './custom-navigation-menu.props.autogenerated';\n\nexport interface ICustomNavigationMenuViewProps extends ICustomNavigationMenuProps {\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 ICustomNavigationMenuState {\n isMobile: boolean;\n}\n\n\n/**\n *\n * CustomNavigationMenu component\n * @extends {React.PureComponent>}\n */\nclass CustomNavigationMenu extends React.PureComponent,ICustomNavigationMenuState> {\n private menuItemList: IMenuItemData[];\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n @observable\n private viewport: GridSize;\n\n constructor(props: ICustomNavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\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 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\n return 'xs';\n }\n\n private _mapData(): IMenuItemData[] {\n const { config } = this.props;\n const mergedData: IMenuItemData[] = [];\n\n if (config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number)=> (\n mergedData.push(this._constructMenuItemData( item, false, idx + 1))\n ));\n }\n return mergedData;\n }\n\n private _constructMenuItemData(cmsItem?: ICmsNavItemsData, isRetail?: boolean, idx?: number, addedAllMenu?: boolean): IMenuItemData {\n // const locale = this.props.context && this.props.context.request && this.props.context.request.locale ? this.props.context.request.locale : 'en-us';\n const cmsItemText = cmsItem && cmsItem.linkText || '';\n const { menuAriaLabel } = this.props.resources;\n\n return {\n id: CustomNavigationMenu.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: 'Cms',\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n\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(item, false, idx));\n });\n return nestedChildren;\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\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 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: 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: false,\n showPromotionalContent: false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer:\n {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer:\n {\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': 'Back',\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 return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default CustomNavigationMenu;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/* eslint-disable no-duplicate-imports */\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ICustomNavigationMenuViewProps } from './custom-navigation-menu';\nimport { IMenuItemData } from './custom-navigation-menu.data';\n\ninterface ICustomNavigationState {\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 CustomNavigationMenuView 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: ICustomNavigationMenuViewProps) {\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(this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('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\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 \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 !CustomNavigationMenuView.isBackTrack ? this.setState({ parentMenu: undefined }) : 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 && menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}\n {' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n 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 !CustomNavigationMenuView.isBackTrack ? this.setState(\n { parentMenu: item?.id }\n ) : this.setState(\n { parentMenu: item && item.id, mobileViewLabelText: subMenus[`${i}`].linkText }\n );\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\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 = false;\n const multiLevelSupportedMenu = 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 = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1);\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n { menuItem }\n { subMenu }\n \n );\n });\n return (this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu));\n }\n\n 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(option: IMenuItemData, index?: number, hoverEffect: boolean = true, isParent: boolean = false): 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\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\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay = !isMobileView && (showCategoryImage || showPromotionalContent) && !ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const promotionalContentDisplay = !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n \n { menuOptions }\n \n {\n categoryImageDisplay && this.state.categoryImage && this.state.categoryImage.map(item => (\n \n { this.state.categoryImage && this._getCategoryImage(item) }\n { promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n ))\n }\n \n );\n }\n\n 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\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 CustomNavigationMenuView.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 CustomNavigationMenuView.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 {\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n }\n );\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * 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 (!CustomNavigationMenuView.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\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 CustomNavigationMenuView;\n"],"names":["module","exports","React","ReactDOM","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","MenuTypeIndexId","CustomNavigationMenu","constructor","props","super","this","_updateViewport","bind","viewport","context","request","device","Type","state","isMobile","menuItemList","_getViewport","setState","MsDyn365","isBrowser","innerWidth","gridSettings","xs","w","sm","lg","_mapData","config","mergedData","cmsNavItems","length","map","item","idx","push","_constructMenuItemData","cmsItem","isRetail","addedAllMenu","cmsItemText","linkText","menuAriaLabel","resources","id","CMSItemIdInit","linkURL","linkUrl","destinationUrl","imageDestinationURL","imageLink","imageSource","image","src","subMenu","_getCMSNestedChildren","menuSource","shouldOpenNewTab","openInNewTab","ariaLabel","category","nestedChildren","subMenus","render","viewProps","imageSettings","viewports","q","h","xl","lazyload","Navigation","moduleProps","className","classnames","tag","role","MenuList","ListItem","showCategoryImage","showPromotionalContent","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","MobileDescriptionLabel","isMobileView","menuItemData","renderView","Cms","__decorate","observable","computed","CustomNavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","option","promotionalImage","altText","categoryImage","categoryImageAltText","_handleDropdownToggle","data","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","undefined","_handleGoBack","_handleClickOutside","event","menuNode","current","contains","target","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","index","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","generateImageUrl","actionContext","requestContext","apiSettings","Image","Object","assign","loadFailureBehavior","menuItemRef","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","componentDidMount","document","body","addEventListener","componentDidUpdate","_this$menuItemRef$cur","children","focus","componentWillUnmount","removeEventListener","Module","Node","ref","tabIndex","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","key","_createMenuItemList","forEach","i","found","error","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","levelClassName","menuOptions","hasOptions","haveSubmenu","_renderMenu","onFocus","hoverEffect","arguments","isParent","imagesource","contentAction","etext","attributes","getTelemetryAttributes","onMouseOver","href","onTelemetryClick","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","ArrayExtensions","hasElements","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","additionalProperties"],"sourceRoot":""}