{"version":3,"file":"static/js/36.2a8d1399c370a9c42915.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/themes/citta/views/accordion-item.view.tsx?0b3d","webpack://Citta2.0/./src/themes/citta/views/components/citta-drawer.tsx?e686","webpack://Citta2.0/./src/themes/citta/views/navigation-menu.view.tsx?7a33"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\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, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { createAccordionStateInput } from '../../../data-actions/accordion/accordion-state-data-action';\r\nimport { IAccordionItemProps } from '../definition-extensions/accordion-item.ext.props.autogenerated';\r\nimport { IAccordionItemData } from './accordion-item.data';\r\nimport Drawer, { IDrawerState } from './components/citta-drawer';\r\n\r\nexport const enum interactionStyle {\r\n Independent = 'Independent',\r\n ExpandOneItemOnly = 'ExpandOneItemOnly'\r\n}\r\n\r\nexport interface IControlledDrawerState {\r\n isOpen: boolean;\r\n accordionText?: string;\r\n}\r\n\r\nexport interface ICittaAccordionItemViewProps extends IAccordionItemProps {\r\n AccordionItemContainer: IModuleProps;\r\n drawer: INodeProps;\r\n accordionSlots: INodeProps;\r\n AccordionItemContent: INodeProps;\r\n className: string;\r\n interactionStyle: interactionStyle;\r\n}\r\n\r\nconst AccordionItemView: React.FC = (props) => {\r\n const { data, config, drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\r\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\r\n const expanded = accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined ?\r\n data && config.isExpandedOnInitialLoad :\r\n (accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded);\r\n\r\n const [state] = React.useState({\r\n isOpen: false\r\n });\r\n\r\n let toggleButtonText = drawer.toggleButtonText;\r\n if (toggleButtonText.indexOf('Product dimensions') != -1) {\r\n toggleButtonText = 'Product Details';\r\n } \r\n\r\n const drawerProps = {\r\n tag: drawer.tag,\r\n className: drawer.className,\r\n toggleButtonText: toggleButtonText,\r\n glyphPlacement: config.glyphPlacement,\r\n radioButtonOption: config.radioButtonOption,\r\n collapseProps: { isOpen: expanded },\r\n openGlyph: 'expand-glyph',\r\n closeGlyph: 'collapse-glyph',\r\n selectedStateOptionText: accordionExpandedStateResult?.radioButtonText,\r\n onToggle: () => {\r\n _onToggle(props, toggleButtonText, state);\r\n }\r\n };\r\n\r\n // PRODUCT DATA LOADING\r\n let content: IAccordionItemData;\r\n\r\n try {\r\n content = data;\r\n } catch (e) {\r\n return
{e}
;\r\n }\r\n\r\n let accordionItemContent = getAccordionItemContent(content, config.accordionItemTitle);\r\n let hasAccordionItemContent = accordionItemContent.length > 0;\r\n const hasAccordionItemSlotsContent = accordionSlots && accordionSlots.accordionItemContent && accordionSlots.accordionItemContent.length;\r\n return (\r\n <>\r\n {hasAccordionItemContent && (\r\n \r\n
\r\n \r\n \r\n {hasAccordionItemContent && (renderAccordionItemContent(accordionItemContent))}\r\n {hasAccordionItemSlotsContent && (renderAccordionItemSlotsContent(accordionSlots.accordionItemContent))}\r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {!hasAccordionItemContent && hasAccordionItemSlotsContent && (\r\n \r\n
\r\n \r\n \r\n {hasAccordionItemContent && (renderAccordionItemContent(accordionItemContent))}\r\n {hasAccordionItemSlotsContent && (renderAccordionItemSlotsContent(accordionSlots.accordionItemContent))}\r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst getAccordionItemContent = (content: IAccordionItemData, accordionItemTitle: string): any[] => {\r\n let titles = accordionItemTitle.split('|');\r\n let returnVal: any[] = [];\r\n titles.forEach(t => {\r\n\r\n if (t.toLocaleLowerCase() === 'care instructions') {\r\n returnVal.push(
{t}:
);\r\n }\r\n\r\n\r\n const productSpec = content.productSpecificationData.result;\r\n let contentText = '';\r\n\r\n if (productSpec) {\r\n productSpec.some(spec => {\r\n if (spec.TextValue && spec.Name === t) {\r\n contentText = spec.TextValue;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n \r\n if (contentText && t.toLocaleLowerCase() === 'additional information') {\r\n returnVal.push(
{t}:
);\r\n }\r\n \r\n returnVal.push(

{contentText}

);\r\n\r\n })\r\n return returnVal;\r\n};\r\n\r\nconst renderAccordionItemContent = (content: any[]): JSX.Element | null => {\r\n return (\r\n
\r\n {content.map(c => {\r\n return ({c})\r\n })}\r\n
\r\n );\r\n};\r\n\r\nconst renderAccordionItemSlotsContent = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n <>\r\n {items && items.length ? (\r\n items.map((item: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n })\r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst _onToggle = (props: ICittaAccordionItemViewProps, toggleButtonText: string, state: IDrawerState): void => {\r\n if (!state.isOpen && props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\r\n const accordionState = { isAllExpanded: false, radioButtonText: toggleButtonText };\r\n props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\r\n }\r\n};\r\n\r\nexport default AccordionItemView;","import { Button, Collapse } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICollapseProps } from '../components/citta-drawer.props';\r\nimport { IDrawerProps } from './citta-drawer.props';\r\n\r\nexport interface IDrawerState {\r\n isOpen: boolean;\r\n}\r\n\r\nexport type GlyphPlacement = 'start' | 'end';\r\n\r\n/**\r\n * Drawer - This is a full width uncontrolled collapse where the button glyph changes\r\n * when the drawer is open and closed\r\n */\r\nexport default class Drawer extends React.Component {\r\n public state: IDrawerState;\r\n private drawerOpenGlyph: string;\r\n private drawerCloseGlyph: string;\r\n private drawerGlyphClass: string;\r\n private isManuallyToggled: boolean;\r\n\r\n constructor(props: IDrawerProps) {\r\n super(props);\r\n this._toggle = this._toggle.bind(this);\r\n this.isManuallyToggled = false;\r\n this.state = { isOpen: (props.collapseProps && props.collapseProps.isOpen) || false };\r\n this.drawerGlyphClass = classnames('drawer__glyph', this.props.toggleGlyphClassName ? this.props.toggleGlyphClassName : '');\r\n if (this.props.animateGlyph) {\r\n this.drawerOpenGlyph = classnames(this.drawerGlyphClass,\r\n // tslint:disable-next-line:align\r\n this.props.openGlyph ?\r\n this.props.openGlyph :\r\n this.props.closeGlyph ?\r\n this.props.closeGlyph : '');\r\n this.drawerCloseGlyph = this.drawerOpenGlyph;\r\n } else {\r\n this.drawerOpenGlyph = classnames(this.drawerGlyphClass,\r\n // tslint:disable-next-line:align\r\n this.props.openGlyph ?\r\n this.props.openGlyph : '');\r\n this.drawerCloseGlyph = classnames(this.drawerGlyphClass,\r\n // tslint:disable-next-line:align\r\n this.props.closeGlyph ?\r\n this.props.closeGlyph : '');\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { selectedStateOptionText } = this.props;\r\n const collapseProps = { ...this.props.collapseProps } as ICollapseProps;\r\n // If the drawer is manually toggled by pressing the button, then we use the internal state\r\n if (collapseProps.isOpen === undefined || this.isManuallyToggled) {\r\n collapseProps.isOpen = this.state.isOpen;\r\n } else if (!collapseProps.isOpen) {\r\n this.state.isOpen = collapseProps.isOpen;\r\n }\r\n collapseProps.children = this.props.children;\r\n const drawerClass = classnames('drawer', this.props.className ? this.props.className : '');\r\n this.isManuallyToggled = false;\r\n return (\r\n
\r\n \r\n {this.props && this.props.radioButtonOption ? (\r\n
\r\n \r\n {/* tslint:disable-next-line: jsx-self-close */}\r\n \r\n
\r\n ) : null}\r\n {this._generateDrawerButtonInnerMarkup(collapseProps.isOpen, this.props.openInNewTab || false)}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _generateDrawerButtonInnerMarkup(collapseState: boolean, openInNewTab: boolean): JSX.Element {\r\n const drawerButtonTextClass = classnames('drawer__buttontext',\r\n // tslint:disable-next-line:align\r\n this.props.toggleButtonClassName ?\r\n this.props.toggleButtonClassName : '');\r\n if (this.props.glyphPlacement === 'end') {\r\n if (this.props.toggleButtonTextClick) {\r\n return (\r\n <>\r\n \r\n {this.props.toggleButtonText}\r\n \r\n {this._generateGlyphMarkup('drawer__glyph__end', collapseState)}\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n {this.props.toggleButtonText}\r\n {this._generateGlyphMarkup('drawer__glyph__end', collapseState)}\r\n \r\n );\r\n }\r\n }\r\n\r\n if (this.props.glyphPlacement === 'start') {\r\n if (this.props.toggleButtonTextClick) {\r\n return (\r\n <>\r\n {this._generateGlyphMarkup('drawer__glyph__start', collapseState)}\r\n {this.props.toggleButtonText}\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n {this._generateGlyphMarkup('drawer__glyph__start', collapseState)}\r\n {this.props.toggleButtonText}\r\n \r\n );\r\n }\r\n } else {\r\n if (this.props.toggleButtonTextClick) {\r\n return {this.props.toggleButtonText};\r\n } else {\r\n return {this.props.toggleButtonText};\r\n }\r\n }\r\n }\r\n private _clicFunction = (event: React.MouseEvent): void => {\r\n event.preventDefault();\r\n if (this.props.toggleButtonUrl) {\r\n window.location.assign(this.props.toggleButtonUrl);\r\n }\r\n }\r\n private _generateGlyphMarkup(location: string, collapseState: boolean): JSX.Element {\r\n let glyphClass = collapseState ? this.drawerOpenGlyph : this.drawerCloseGlyph;\r\n glyphClass = `${glyphClass} ${location}`;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _toggle(e: React.MouseEvent | React.KeyboardEvent): void {\r\n // @ts-ignore\r\n if (e.target.tagName.toLowerCase() !== 'a') {\r\n e.preventDefault();\r\n this.setState({ isOpen: !this.state.isOpen });\r\n this.isManuallyToggled = true;\r\n if (this.props.onToggle) {\r\n this.props.onToggle(this.state);\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport { Drawer };\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 { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\r\n// import { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { addThrottledEvent, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport MsDyn365, { ILinkData as MsdynILinkData } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { computed } from 'mobx';\r\nimport * as React from 'react';\r\nimport { Drawer } from './components/citta-drawer';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n activeDesktopMenu?: number;\r\n mobileViewLabelText?: string;\r\n cateGoryImageURL: string;\r\n onlyMobile: boolean;\r\n desktopCategoryId: number;\r\n isDrawerOpen: boolean;\r\n menuCurrentLevel: number[];\r\n openFirstByDefault: boolean;\r\n hasUserInteracted: boolean;\r\n}\r\nexport interface IMenuItemsData {\r\n id?: number;\r\n linkText?: string;\r\n linkURL?: string;\r\n imageSource?: string;\r\n imageDestinationURL?: string;\r\n subMenu?: IMenuItemsData[];\r\n menuLevel?: number;\r\n parent1Id?: number;\r\n parent2Id?: number;\r\n parent3Id?: number;\r\n levelIds?: number[];\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent {\r\n private supportedLevel: number = 4;\r\n private currentLevel: number = 0;\r\n private escapeKey: number = 27;\r\n private menuNode: React.RefObject;\r\n private viewport: GridSize;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n private coustomResizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItems: IMenuItemData[];\r\n constructor(props: INavigationMenuViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n\r\n // @ts-ignore\r\n let openFirstByDefault = props.config.openFirstMenuItem;\r\n this.state = {\r\n activeMenu: undefined,\r\n mobileViewLabelText: '',\r\n parentMenu: undefined,\r\n cateGoryImageURL: '',\r\n onlyMobile: this.onlyMobile,\r\n desktopCategoryId: -1,\r\n isDrawerOpen: false,\r\n menuCurrentLevel: [],\r\n activeDesktopMenu: undefined,\r\n openFirstByDefault: openFirstByDefault,\r\n hasUserInteracted: false\r\n };\r\n this.viewport = this._customGetViewport();\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this._customUpdateViewport = this._customUpdateViewport.bind(this);\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n\r\n this.menuItems = props.menuItemData\r\n }\r\n @computed get onlyMobile(): boolean {\r\n return (this.viewport === 'xs');\r\n }\r\n public componentDidMount(): void {\r\n document.body && document.addEventListener('mousedown', this._handleClickOutside);\r\n this.coustomResizeThrottledEventHandler =\r\n window && addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\r\n this._customUpdateViewport();\r\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n window && window.removeEventListener('resize', this.coustomResizeThrottledEventHandler!, false);\r\n // document.body && document.removeEventListener('mousedown', this._handleClickOutside, false);\r\n }\r\n\r\n public componentDidUpdate(hello: any, state: any): void {\r\n\r\n if (!state.activeMenu && !this.state.activeMenu && window.document.body.classList.contains('menu-open')) {\r\n window.document.body.classList.toggle('menu-open', false);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n this.currentLevel = 1;\r\n const showOverlay = this._shouldRenderOverlays();\r\n return (\r\n \r\n
\r\n {isMobileView && this.state.onlyMobile\r\n ? this._renderMobileMenu()\r\n : this._renderDesktopMenu()\r\n }\r\n \r\n );\r\n }\r\n\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, Navigation } = this.props;\r\n const _menuItems: IMenuItemsData[] = this.menuItems;\r\n\r\n const filteredMenuData = _menuItems.map(p => {\r\n p.menuLevel = 1;\r\n p.parent1Id = -1;\r\n p.parent2Id = -1;\r\n p.parent3Id = -1;\r\n p.levelIds = [p.id!];\r\n p.subMenu = p.subMenu?.filter(a => a.linkText?.toLowerCase() !== 'all');\r\n p.subMenu?.map(x => {\r\n x.menuLevel = 2;\r\n x.parent1Id = p.id;\r\n x.parent2Id = -1;\r\n x.parent3Id = -1;\r\n x.levelIds = [x.id!, p.id!];\r\n x.subMenu?.map(t => {\r\n t.menuLevel = 3;\r\n t.parent1Id = x.id;\r\n t.parent2Id = p.id;\r\n t.parent3Id = -1;\r\n t.levelIds = [x.id!, p.id!, t.id!];\r\n t.subMenu?.map(u => {\r\n u.menuLevel = 4;\r\n u.parent1Id = t.id;\r\n u.parent2Id = x.id;\r\n u.parent3Id = p.id;\r\n u.levelIds = [x.id!, p.id!, t.id!, u.id!];\r\n })\r\n });\r\n });\r\n return p;\r\n }\r\n );\r\n return (\r\n \r\n {filteredMenuData.map((menuItem: IMenuItemsData, index: number) => {\r\n return this._renderDrawerMenu(menuItem, menuItem.menuLevel, menuItem.linkText === 'Shop' ? 0 : undefined);\r\n })}\r\n \r\n );\r\n }\r\n\r\n private _shouldRenderOverlays(): boolean {\r\n const { activeMenu, isDrawerOpen } = this.state;\r\n const { menuItemData } = this.props;\r\n if (isDrawerOpen) {\r\n return true;\r\n }\r\n if (activeMenu) {\r\n const menuItem = menuItemData.find(menuItem => menuItem.id === activeMenu)\r\n\r\n return menuItem ? true : false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n const showOverlay = this._shouldRenderOverlays();\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n {
}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderDrawerMenu(menuItem: IMenuItemsData, mobileLevel?: number, parentIndex?: number): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0 && menuItem.linkText) {\r\n return (this._renderDrawer(menuItem, mobileLevel, parentIndex));\r\n } else {\r\n return (this._renderLinkMenuItem(menuItem));\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemsData, mobileLevel?: number, parentIndex?: number): JSX.Element | null {\r\n const { openFirstByDefault, hasUserInteracted } = this.state;\r\n const toggleButtonText = menuItem.linkText;\r\n let _setCollapse: boolean | undefined = menuItem.id && this.state.menuCurrentLevel.includes(menuItem.id) || false;\r\n\r\n // On level one, we don't have to collapse one menu on clicking other menu\r\n if (menuItem.menuLevel === 1) {\r\n _setCollapse = undefined;\r\n }\r\n\r\n if(menuItem.menuLevel ===2 && menuItem.linkText === 'Browse'){\r\n _setCollapse = true;\r\n }\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, index: number) => {\r\n return this._renderDrawerLink(menuSubItem, mobileLevel, index);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderMobileLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element {\r\n const { Link } = this.props;\r\n const optionVal = option.linkText;\r\n const linkText = option.linkText ? option.linkText : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n \r\n {optionVal}\r\n \r\n );\r\n }\r\n\r\n // tslint:disable-next-line: no-any\r\n // private _bindDesktopCategoryClickMobile = (menuItem: IMenuItemsData) => (e: any): void => {\r\n // this.setState({ menuCurrentLevel: menuItem.levelIds || [] });\r\n // }\r\n\r\n private _bindDesktopCategoryClickMobile = (menuItem: IMenuItemsData) => (e: any): void => {\r\n console.log('click')\r\n if (!menuItem.levelIds && menuItem.subMenu && menuItem.subMenu.length && menuItem.id && !this.state.onlyMobile) {\r\n if (this.state.menuCurrentLevel.includes(menuItem.id)) {\r\n this.setState({ menuCurrentLevel: menuItem.levelIds || [] });\r\n } else {\r\n this.setState({ menuCurrentLevel: [menuItem.id] });\r\n }\r\n } else {\r\n if (menuItem.id && menuItem.levelIds && this.state.menuCurrentLevel.includes(menuItem.id)) { \r\n const newArray = menuItem.levelIds || [];\r\n newArray.length && newArray.pop()\r\n this.setState({ menuCurrentLevel: newArray });\r\n } else {\r\n this.setState({ menuCurrentLevel: menuItem.levelIds || [] });\r\n }\r\n }\r\n if(!this.state.hasUserInteracted) {\r\n this.setState({ hasUserInteracted: true });\r\n }\r\n }\r\n\r\n private _renderLinkText(linkText: string | undefined): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderDrawerLink(item: IMenuItemData, mobileLevel?: number, parentIndex?: number): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n if (item && item.subMenu && item.subMenu?.length > 0 && item.linkText) {\r\n return (this._renderDrawer(item, mobileLevel, parentIndex));\r\n }\r\n return (\r\n this._renderLinkMenuItem(item)\r\n );\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return (\r\n this._renderSpanMenuItem(item)\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n const filteredMenuData = menuItemData.map(p => {\r\n if (p.linkText?.toLowerCase() === 'shop') {\r\n p.subMenu = p.subMenu?.filter(a => a.linkText?.toLowerCase() !== 'all');\r\n }\r\n return p;\r\n });\r\n if (isMobileView && this.state.onlyMobile && activeMenu !== undefined && filteredMenuData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (let i = 0; i < filteredMenuData.length; i++) {\r\n\r\n if (filteredMenuData[i] && filteredMenuData[i].id === activeMenu) {\r\n menuItem = filteredMenuData[i];\r\n\r\n\r\n this.setState({ parentMenu: undefined, mobileViewLabelText: filteredMenuData[i].linkText });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(filteredMenuData[i]) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem && menuItemList.push(\r\n {this._createMenuItemList(menuItem, 0)} \r\n );\r\n } else {\r\n\r\n filteredMenuData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item, index)}\r\n \r\n );\r\n });\r\n }\r\n return menuItemList;\r\n }\r\n\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData, parentIndex: number): JSX.Element | null {\r\n\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.onlyMobile && this.state.activeMenu !== undefined) {\r\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false, undefined, parentIndex));\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, true, undefined, parentIndex)}\r\n \r\n );\r\n }\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return (this._renderLinkMenuItem(menuItemData));\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return (this._renderSpanMenuItem(menuItemData));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, renderImageSection?: boolean, isMenuOpen?: boolean, parentIndex?: number): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const { openFirstByDefault } = this.state;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n let isInnerOpen = false;\r\n\r\n let levelClassName: string = '';\r\n const menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\r\n let isOpen = option.id === this.state.activeDesktopMenu || isMenuOpen;\r\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView && this.state.onlyMobile) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else if (this.currentLevel === 1 || !hasOptions) {\r\n if (option.subMenu && option.subMenu.length) {\r\n menuItem = this._renderDesktopButtonMenuItem(option, this.state.activeDesktopMenu, idx);\r\n } else {\r\n menuItem = (option.linkURL\r\n ? this._renderLinkMenuItem(option, idx)\r\n : this._renderSpanMenuItem(option)\r\n );\r\n }\r\n } else {\r\n menuItem = null;\r\n }\r\n let subMenu;\r\n\r\n if (hasOptions) {\r\n if (this.currentLevel >= 2) {\r\n levelClassName = 'level-3';\r\n subMenu = this._renderSubMenuDrawer(levelClassName, option, isMobileView && this.state.onlyMobile ? option.id : undefined, false, openFirstByDefault && idx === 0);\r\n } else if (this.currentLevel <= this.supportedLevel - 1) {\r\n this.currentLevel++;\r\n levelClassName = `level-${this.currentLevel.toString()}`;\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView && this.state.onlyMobile ? option.id : undefined, false, isOpen, parentIndex);\r\n }\r\n }\r\n\r\n if (isOpen) {\r\n isInnerOpen = isOpen;\r\n }\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n {/* {isOpen ? subMenu : null } */}\r\n \r\n );\r\n });\r\n this.currentLevel++;\r\n levelClassName = `level-${this.currentLevel.toString()}`;\r\n if (levelClassName === 'level-2') {\r\n levelClassName += ' open';\r\n }\r\n return (this._renderMenu(levelClassName, menuOptions, activeMenu, renderImageSection, isInnerOpen));\r\n }\r\n private _renderSubMenuDrawer(levelClassName: string, menuItem: IMenuItemData, activeMenu?: number, renderImageSection?: boolean, isOpen?: boolean): JSX.Element | null {\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, index: number) => {\r\n return this._renderDrawerLink(menuSubItem, index);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n private _formatLinkData = (href: MsdynILinkData | string | undefined): string => {\r\n const domain = this.props.context && this.props.context.request && this.props.context.request.url;\r\n let absoluteUrl: string = '';\r\n if (href === undefined) {\r\n return absoluteUrl;\r\n }\r\n const path: string = (href as MsdynILinkData).destinationUrl || (href as string);\r\n if (domain) {\r\n absoluteUrl = (new URL(path, domain.requestUrl)).href;\r\n }\r\n return absoluteUrl;\r\n }\r\n\r\n // tslint:disable-next-line: no-any\r\n private _bindDesktopCategoryClick = (desktopCategoryId: number) => (e: any): void => {\r\n if (this.state.desktopCategoryId !== desktopCategoryId) {\r\n this.setState({ desktopCategoryId: desktopCategoryId, isDrawerOpen: true });\r\n } else {\r\n this.setState({ desktopCategoryId: -1, isDrawerOpen: false });\r\n }\r\n\r\n }\r\n\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderDesktopButtonMenuItem(option: IMenuItemData, activeDesktopMenu?: number, index?: number, isOpen?: boolean): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Link } = this.props;\r\n const optionVal = option.linkText;\r\n const linkText = option.linkText ? option.linkText : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n \r\n {optionVal}\r\n \r\n );\r\n }\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n {option.linkText}\r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, renderImageSection?: boolean, isInnerOpen?: boolean): JSX.Element | null {\r\n const { MenuList } = this.props;\r\n this.currentLevel = 1;\r\n if (level === 'level-2 open') {\r\n setTimeout(() => {\r\n document.querySelector('.open')?.classList.remove('open');\r\n }, 0);\r\n }\r\n return (\r\n \r\n
\r\n {renderImageSection ?\r\n X\r\n \r\n : null}\r\n
\r\n {menuOptions}\r\n
\r\n {/*
\r\n {renderImageSection ?\r\n \r\n : null}\r\n
*/}\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n // private _bindChangeImage = (data: IMenuItemData) => (e: React.MouseEvent): MouseEvent => {\r\n // // console.log('_bindChangeImage', _bindChangeImage)\r\n // // const imageUrl = generateImageUrl(data.imageSource, (this.props.context.request).apiSettings) || 'undefined';\r\n // // this.setState({ cateGoryImageURL: imageUrl });\r\n // return e.nativeEvent;\r\n // }\r\n\r\n private _renderImage = (data: IMenuItemData) => (): void => {\r\n // const imageUrl = generateImageUrl(data.imageSource, (this.props.context.request).apiSettings) || 'undefined';\r\n // this.setState({ cateGoryImageURL: imageUrl });\r\n }\r\n\r\n private _handleDesktopDropdownToggle = (data: IMenuItemData, parentId?: number) => (e: React.MouseEvent | React.KeyboardEvent) => {\r\n e.preventDefault()\r\n\r\n if (this.state.activeDesktopMenu === data.id) {\r\n this.setState({\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId,\r\n activeDesktopMenu: undefined\r\n });\r\n } else {\r\n this.setState({\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId,\r\n activeDesktopMenu: data.id\r\n });\r\n }\r\n };\r\n\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => (e: React.MouseEvent | React.KeyboardEvent) => {\r\n e.preventDefault();\r\n if (!this.state.onlyMobile) {\r\n // const headerElem = document.querySelector('.ms-header');\r\n let activeMeu = (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!;\r\n let activeDesktopMeu;\r\n if (this.currentLevel === 1 && this.state.activeMenu !== data.id!) {\r\n //headerElem && headerElem.classList.toggle('lock-opaque', true);\r\n // if (activeMeu === this.props.menuItemData[0].id) {\r\n // activeDesktopMeu = this.props.menuItemData && this.props.menuItemData[0] && this.props.menuItemData[0].subMenu && this.props.menuItemData[0].subMenu[0].id;\r\n // }\r\n if (activeMeu === this.props.menuItemData[1].id) {\r\n activeDesktopMeu = this.props.menuItemData && this.props.menuItemData[1] && this.props.menuItemData[1].subMenu && this.props.menuItemData[1].subMenu[0].id;\r\n }\r\n if (!window.document.body.classList.contains('menu-open')) {\r\n window.document.body.classList.toggle('fade-open', true);\r\n setTimeout(function () {\r\n window.document.body.classList.toggle('fade-open', false);\r\n }, 1000);\r\n }\r\n window.document.body.classList.toggle('menu-open', true);\r\n\r\n } else {\r\n window.document.body.classList.toggle('menu-open', this.state.activeMenu === undefined ? true : false);\r\n }\r\n\r\n this.setState({\r\n activeMenu: activeMeu,\r\n parentMenu: parentId,\r\n activeDesktopMenu: activeDesktopMeu\r\n });\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n\r\n window.document.body.classList.toggle('menu-open', false);\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.state.onlyMobile) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (event.target && event.target.className.indexOf('ms-nav__list__item__button') !== -1) {\r\n //do nothing if the menu item is selected\r\n }\r\n else if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState({ activeMenu: undefined, activeDesktopMenu: undefined, mobileViewLabelText: '' });\r\n if (event.target.className.indexOf('nav-menu-overlay') !== -1 || (document.getElementsByClassName('level-2') && document.getElementsByClassName('level-2')[0] && !document.getElementsByClassName('level-2')[0].contains(event.target))) {\r\n window.document.body.classList.toggle('menu-open', false);\r\n window.document.body.classList.toggle('search-open', false);\r\n }\r\n }\r\n };\r\n\r\n private _closeSubmenu(): void {\r\n if (!this.state.onlyMobile) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n window.document.body.classList.toggle('menu-open', false);\r\n }\r\n }\r\n private _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n this._closeSubmenu();\r\n }\r\n }\r\n private _customUpdateViewport(): void {\r\n this.viewport = this._customGetViewport();\r\n this.setState({ onlyMobile: this.onlyMobile });\r\n }\r\n private _customGetViewport(): GridSize {\r\n const { context } = this.props;\r\n if (MsDyn365.isBrowser) {\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n }\r\n\r\n return 'xs';\r\n }\r\n // private _getCategoryImageSettings(): IImageSettings {\r\n // // tslint:disable-next-line: no-unnecessary-local-variable\r\n // const imageSettings: IImageSettings = {\r\n // viewports: {\r\n // xs: { q: 'w=200&h=300&q=80&m=6&f=jpg', w: 200, h: 300 },\r\n // sm: { q: 'w=200&h=300&q=80&m=6&f=jpg', w: 200, h: 300 },\r\n // md: { q: 'w=350&h=500&q=80&m=6&f=jpg', w: 350, h: 500 },\r\n // lg: { q: 'w=400&h=600&q=80&m=6&f=jpg', w: 400, h: 600 },\r\n // xl: { q: 'w=500&h=700&q=80&m=6&f=jpg', w: 500, h: 700 }\r\n // }\r\n // };\r\n\r\n // return imageSettings;\r\n // }\r\n}\r\n\r\nexport default NavigationMenuView;"],"names":["interactionStyle","getAccordionItemContent","content","accordionItemTitle","titles","split","returnVal","forEach","t","toLocaleLowerCase","push","React","productSpec","productSpecificationData","result","contentText","some","spec","TextValue","Name","renderAccordionItemContent","className","map","c","renderAccordionItemSlotsContent","items","length","item","index","key","_onToggle","props","toggleButtonText","state","isOpen","ExpandOneItemOnly","accordionState","isAllExpanded","radioButtonText","context","actionContext","update","createAccordionStateInput","data","config","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionExpandedStateResult","accordionExpandedState","expanded","undefined","isExpandedOnInitialLoad","indexOf","drawerProps","tag","glyphPlacement","radioButtonOption","collapseProps","openGlyph","closeGlyph","selectedStateOptionText","onToggle","e","accordionItemContent","hasAccordionItemContent","hasAccordionItemSlotsContent","Module","Object","assign","Drawer","toggleButtonTextClick","Node","constructor","super","_clicFunction","event","preventDefault","this","toggleButtonUrl","window","location","_toggle","bind","isManuallyToggled","drawerGlyphClass","classnames","toggleGlyphClassName","animateGlyph","drawerOpenGlyph","drawerCloseGlyph","render","_objectSpread","children","drawerClass","Button","toggleButtonProps","onClick","block","disabled","color","tabIndex","type","role","id","toString","checked","htmlFor","_generateDrawerButtonInnerMarkup","openInNewTab","Collapse","collapseState","drawerButtonTextClass","toggleButtonClassName","onMouseOver","onCategoryMouseOver","href","target","_generateGlyphMarkup","glyphClass","tagName","toLowerCase","setState","NavigationMenuView","supportedLevel","currentLevel","escapeKey","_bindDesktopCategoryClickMobile","menuItem","console","log","levelIds","subMenu","onlyMobile","menuCurrentLevel","includes","newArray","pop","hasUserInteracted","_formatLinkData","domain","request","url","absoluteUrl","path","destinationUrl","URL","requestUrl","_bindDesktopCategoryClick","desktopCategoryId","isDrawerOpen","_renderImage","_handleDesktopDropdownToggle","parentId","activeDesktopMenu","mobileViewLabelText","linkText","parentMenu","_handleDropdownToggle","activeMenu","document","body","classList","toggle","activeDesktopMeu","activeMeu","menuItemData","contains","setTimeout","_resetFocus","menuNode","current","focus","_handleClickOutside","getElementsByClassName","_escFunction","keyCode","_closeSubmenu","openFirstByDefault","openFirstMenuItem","cateGoryImageURL","viewport","_customGetViewport","_customUpdateViewport","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","menuItems","componentDidMount","addEventListener","coustomResizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","removeEventListener","componentDidUpdate","hello","isMobileView","showOverlay","_shouldRenderOverlays","_renderMobileMenu","_renderDesktopMenu","Navigation","filteredMenuData","p","_p$subMenu","_p$subMenu2","menuLevel","parent1Id","parent2Id","parent3Id","filter","a","_a$linkText","x","_x$subMenu","_t$subMenu","u","_renderDrawerMenu","find","MenuList","ref","_renderDisplay","mobileLevel","parentIndex","_renderDrawer","_renderLinkMenuItem","_setCollapse","timeout","linkURL","_renderMobileLinkMenuItem","_renderLinkText","menuSubItem","_renderDrawerLink","option","Link","optionVal","contentAction","etext","attributes","getTelemetryAttributes","onTelemetryClick","_item$subMenu","_renderSpanMenuItem","ListItem","menuItemList","_p$linkText","_p$subMenu3","_a$linkText2","i","_getFromSubMenu","_createMenuItemList","subMenus","found","_renderSubMenu","_renderButtonMenuItem","renderImageSection","isMenuOpen","error","isInnerOpen","levelClassName","menuOptions","idx","hasOptions","_renderDesktopButtonMenuItem","_renderSubMenuDrawer","_renderMenu","Span","level","currentItem","_document$querySelect","querySelector","remove","MsDyn365","isBrowser","innerWidth","gridSettings","xs","w","sm","md","lg","__decorate","computed"],"sourceRoot":""}