{"version":3,"file":"static/js/41.2311c75b97287d9a35dd.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/navigation-menu.view.tsx?7a33","webpack://Citta2.0/./src/themes/citta/views/components/citta-drawer.tsx?e686"],"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;","/*---------------------------------------------------------------------------------------------\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 if(menuItem.linkText === \"Sale\" || menuItem.linkText === \"Città Essentials\" || menuItem.linkText ===\"Sofas & Armchairs\"){\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, index: number) => {\r\n return null;\r\n })}\r\n
\r\n \r\n );\r\n } else {\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\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 if(menuItem.linkText === \"Sale\" || menuItem.linkText === \"Città Essentials\" || menuItem.linkText ===\"Sofas & Armchairs\"){\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, index: number) => {\r\n return null;\r\n })}\r\n
\r\n \r\n );\r\n } else {\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 }\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;","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"],"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","NavigationMenuView","constructor","super","supportedLevel","currentLevel","escapeKey","_bindDesktopCategoryClickMobile","menuItem","console","log","levelIds","subMenu","id","this","onlyMobile","menuCurrentLevel","includes","setState","newArray","pop","hasUserInteracted","_formatLinkData","href","domain","request","url","absoluteUrl","path","destinationUrl","URL","requestUrl","_bindDesktopCategoryClick","desktopCategoryId","isDrawerOpen","_renderImage","_handleDesktopDropdownToggle","parentId","preventDefault","activeDesktopMenu","mobileViewLabelText","linkText","parentMenu","_handleDropdownToggle","activeMenu","window","document","body","classList","toggle","activeDesktopMeu","activeMeu","menuItemData","contains","setTimeout","_resetFocus","menuNode","current","focus","_handleClickOutside","event","target","getElementsByClassName","_escFunction","keyCode","_closeSubmenu","openFirstByDefault","openFirstMenuItem","cateGoryImageURL","viewport","_customGetViewport","bind","_customUpdateViewport","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","menuItems","componentDidMount","addEventListener","coustomResizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","removeEventListener","componentDidUpdate","hello","render","isMobileView","showOverlay","_shouldRenderOverlays","_renderMobileMenu","_renderDesktopMenu","Navigation","filteredMenuData","p","_p$subMenu","_p$subMenu2","menuLevel","parent1Id","parent2Id","parent3Id","filter","a","_a$linkText","toLowerCase","x","_x$subMenu","_t$subMenu","u","classnames","_renderDrawerMenu","find","MenuList","ref","tabIndex","_renderDisplay","mobileLevel","parentIndex","_renderDrawer","_renderLinkMenuItem","_setCollapse","timeout","linkURL","_renderMobileLinkMenuItem","_renderLinkText","menuSubItem","_renderDrawerLink","option","Link","optionVal","contentAction","etext","attributes","getTelemetryAttributes","onClick","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","toString","_renderMenu","toggleButtonUrl","Button","onMouseOver","Span","level","currentItem","_document$querySelect","querySelector","remove","MsDyn365","isBrowser","innerWidth","gridSettings","xs","w","sm","md","lg","__decorate","computed","_clicFunction","location","_toggle","isManuallyToggled","drawerGlyphClass","toggleGlyphClassName","animateGlyph","drawerOpenGlyph","drawerCloseGlyph","_objectSpread","children","drawerClass","toggleButtonProps","block","disabled","color","type","role","checked","htmlFor","_generateDrawerButtonInnerMarkup","openInNewTab","Collapse","collapseState","drawerButtonTextClass","toggleButtonClassName","onCategoryMouseOver","_generateGlyphMarkup","glyphClass","tagName"],"sourceRoot":""}