{"version":3,"file":"static/js/23.23bf5ff84a10247b8895.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-navigation-menu/citta-navigation-menu.props.autogenerated.ts?fa94","webpack://Citta2.0/./src/modules/citta-navigation-menu/citta-navigation-menu.tsx?fb75","webpack://Citta2.0/./src/modules/citta-navigation-menu/citta-navigation-menu.view.tsx?c465","webpack://Citta2.0/./src/modules/citta-tile-list-item/components/links.tsx?7aff","webpack://Citta2.0/./src/modules/citta-tile-list-item/citta-tile-list-item.tsx?6ea4","webpack://Citta2.0/./src/modules/citta-tile-list-item/citta-tile-list-item.view.tsx?7f62","webpack://Citta2.0/./src/themes/citta/views/footer-category.view.tsx?544e","webpack://Citta2.0/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Citta2.0/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Citta2.0/./src/modules/social-share/social-share.tsx?899b","webpack://Citta2.0/./src/modules/social-share/social-share.view.tsx?dcdf"],"sourcesContent":["/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * ICittaNavigationMenu contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum navigationMenuSource {\r\n retailServerOnly = 'retailServerOnly',\r\n cmsOnly = 'cmsOnly',\r\n all = 'all'\r\n}\r\n\r\nexport interface ICittaNavigationMenuConfig extends Msdyn365.IModuleConfig {\r\n categoryImageSettings?: Msdyn365.IImageSettings;\r\n displayCategoryImage?: boolean;\r\n navigationMenuSource?: navigationMenuSource;\r\n enableMultilevelMenu?: boolean;\r\n menuLevelSupport?: number;\r\n enabletopMenu?: boolean;\r\n rootMenuNavigation?: string;\r\n cmsNavItems?: ICmsNavItemsData[];\r\n className?: string;\r\n}\r\n\r\nexport interface ICittaNavigationMenuResources {\r\n menuAriaLabel: string;\r\n backButtonAriaLabel: string;\r\n allCategoryMenuText: string;\r\n}\r\n\r\nexport interface ICmsNavItemsData {\r\n linkText?: string;\r\n linkUrl?: Msdyn365.ILinkData;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n}\r\n\r\nexport interface ICittaNavigationMenuProps extends Msdyn365.IModule {\r\n resources: ICittaNavigationMenuResources;\r\n config: ICittaNavigationMenuConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject} from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { IMenuItemData, ICittaNavigationMenuData } from './citta-navigation-menu.data';\r\nimport { ICmsNavItemsData, ICittaNavigationMenuProps, ISubMenusData, navigationMenuSource } from './citta-navigation-menu.props.autogenerated';\r\n\r\nexport interface INavigationMenuViewProps extends ICittaNavigationMenuProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer:INodeProps;\r\n MobileDescriptionContainer:INodeProps;\r\n MobileBackButton:INodeProps;\r\n MobileDescriptionLabel:INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?:INodeProps;\r\n ImageDivContainer?:INodeProps;\r\n showCategoryImage?:boolean;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenu component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\r\n private static CMSItemIdInit: number = 1000;\r\n private static RSItemIdInit: number = 5000;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItemList: IMenuItemData[];\r\n private isRetail: boolean = true;\r\n private isCMS: boolean = true;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICittaNavigationMenuProps) {\r\n super(props);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\r\n this.state = {isMobile: this.isMobile};\r\n this.menuItemList = [];\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return (this.viewport === 'xs' || this.viewport === 'sm');\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.resizeThrottledEventHandler =\r\n window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n this._updateViewport();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n this.menuItemList = this._mapData();\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=224&h=300&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=224&h=300&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: this.props.context.request.gridSettings,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\r\n tag:'nav',\r\n role:'navigation',\r\n 'aria-label': this.props.resources.menuAriaLabel\r\n },\r\n MenuList: {\r\n className: 'ms-nav__list',\r\n tag:'ul',\r\n role: 'menu'\r\n },\r\n ListItem: {\r\n className: 'ms-nav__list__item',\r\n role: 'presentation',\r\n tag:'li'\r\n },\r\n showCategoryImage:this.props.config.displayCategoryImage||false,\r\n Link: {\r\n tag: 'a',\r\n className: 'ms-nav__list__item__link',\r\n role: 'menuitem'\r\n },\r\n DivContainer:\r\n {\r\n tag: 'div',\r\n className:'ms-nav__feature',\r\n role:'menuitem'\r\n },\r\n ImageDivContainer:\r\n {\r\n tag:'div',\r\n className:'category-image',\r\n role:'tabpanel'\r\n },\r\n Button: {\r\n className: 'ms-nav__list__item__button',\r\n tag:'button',\r\n role:'menuitem',\r\n onClick:this.props\r\n },\r\n ImageContainer: {\r\n className: 'ms-nav__list__item__image'\r\n },\r\n Span: {\r\n className: 'ms-nav__list__item__span',\r\n tag:'span'\r\n },\r\n MobileDescriptionContainer: {\r\n className: 'ms-nav__list__mobile__container'\r\n },\r\n MobileBackButton: {\r\n className: 'ms-nav__list__mobile__container__button',\r\n tag:'button',\r\n 'aria-label': this.props.resources.backButtonAriaLabel,\r\n onClick:this.props\r\n },\r\n MobileDescriptionLabel: {\r\n className: 'ms-nav__list__mobile__container__span',\r\n tag:'span'\r\n },\r\n isMobileView: this.state.isMobile,\r\n menuItemData: this.menuItemList,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _mapData(): IMenuItemData[] {\r\n const { data, config } = this.props;\r\n const mergedData: IMenuItemData[] = [];\r\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\r\n data.categories.result.map((item: CategoryHierarchy,index) => (\r\n mergedData.push(this._constructMenuItemData(item, undefined, true,index,true))\r\n ));\r\n }\r\n\r\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) => (\r\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx+1))\r\n ));\r\n }\r\n return this._constructTopMenuItemData(mergedData);\r\n }\r\n private _constructTopMenuItemData(mergedData:IMenuItemData[]):IMenuItemData[] {\r\n const enableTopLevelMenu = this.props.config.enabletopMenu||false;\r\n if(!enableTopLevelMenu) {\r\n return mergedData;\r\n }\r\n const mergedRootMenuData: IMenuItemData[] = [];\r\n const topMenu = {\r\n id:1,\r\n linkText:this.props.config.rootMenuNavigation||'...',\r\n linkURL:'#',\r\n imageSource:undefined,\r\n subMenu: mergedData\r\n } as IMenuItemData;\r\n mergedRootMenuData.push(topMenu);\r\n\r\n return mergedRootMenuData;\r\n }\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _constructMenuItemData(retailItem?: CategoryHierarchy, cmsItem?: ICmsNavItemsData, isRetail?: boolean, idx?: number,addedAllMenu?:boolean): IMenuItemData {\r\n const locale = this.props.context && this.props.context.request && this.props.context.request.locale ? this.props.context.request.locale : 'en-us';\r\n const imageSouce = retailItem && retailItem.Images && retailItem.Images[0].Uri ? retailItem.Images[0].Uri: 'empty';\r\n if (isRetail) {\r\n return {\r\n id: NavigationMenu.RSItemIdInit++,\r\n linkText: NavigationMenu.getFriendlyName(locale, retailItem && retailItem.NameTranslations) || '',\r\n linkURL: retailItem && retailItem.Url,\r\n imageSource: imageSouce,\r\n subMenu: this._getNestedChildren(retailItem,imageSouce,addedAllMenu)\r\n } as IMenuItemData;\r\n } else {\r\n return {\r\n id: NavigationMenu.CMSItemIdInit++,\r\n linkText: cmsItem && cmsItem.linkText || '',\r\n linkURL: cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl || '',\r\n imageDestinationURL: cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl || '',\r\n imageSource: cmsItem && cmsItem.image && cmsItem.image.src || '',\r\n subMenu: this._getCMSNestedChildren(cmsItem)\r\n } as IMenuItemData;\r\n }\r\n }\r\n private _getNestedChildren(category?: CategoryHierarchy,imageSourceUrl?:string,addedAllMenu:boolean=false): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n if (!category || !category.Children || !category.Children.length) {\r\n return [];\r\n }\r\n if(!this.props.config.enabletopMenu && addedAllMenu) {\r\n nestedChildren.push({linkText: this.props.resources.allCategoryMenuText,imageSource:imageSourceUrl,linkURL: getCategoryUrl(category, this.props.context as unknown as IActionContext, {}) });\r\n }\r\n category.Children.map((item: CategoryHierarchy,index) => {\r\n nestedChildren.push(this._constructMenuItemData(item, undefined, true,index,false));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n\r\n if (!category || !category.subMenus || !category.subMenus.length) {\r\n return [];\r\n }\r\n\r\n category.subMenus.map((item: ISubMenusData, idx: number) => {\r\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _setNavigationSource = (sourceType?: navigationMenuSource): void => {\r\n switch(sourceType) {\r\n case navigationMenuSource.retailServerOnly:\r\n this.isRetail = true;\r\n this.isCMS = false;\r\n break;\r\n case navigationMenuSource.cmsOnly:\r\n this.isRetail = false;\r\n this.isCMS = true;\r\n break;\r\n case navigationMenuSource.all:\r\n this.isRetail = true;\r\n this.isCMS = true;\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\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 return 'xs';\r\n }\r\n}\r\n\r\nexport default NavigationMenu;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData, IImageSettings, Image} from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INavigationMenuViewProps } from './citta-navigation-menu';\r\nimport { IMenuItemData } from './citta-navigation-menu.data';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?:string|null;\r\n mobileViewLabelText?: string;\r\n categoryImageAltText:string;\r\n}\r\n\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 static isBackTrack: boolean = false;\r\n private currentLevel: number = 0;\r\n private menuNode: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n constructor(props: INavigationMenuViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = {activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined,categoryImageAltText:''};\r\n this._closeSubmenu =this._closeSubmenu.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\r\n public componentDidMount(): void {\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation} = this.props;\r\n\r\n this.currentLevel = 1;\r\n return(\r\n \r\n \r\n {isMobileView && this.state.activeMenu !== undefined &&\r\n \r\n \r\n {this.state.mobileViewLabelText}\r\n }\r\n {this._renderDisplay()}\r\n \r\n \r\n );\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 if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for(let i = 0; i < menuItemData.length; i++) {\r\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\r\n menuItem = menuItemData[i];\r\n !NavigationMenuView.isBackTrack ? this.setState({parentMenu: undefined}) : this.setState({parentMenu: undefined, mobileViewLabelText: menuItemData[i].linkText});\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemData[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)} \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push (\r\n \r\n {this._createMenuItemList(item)}\r\n \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 !NavigationMenuView.isBackTrack ? this.setState({parentMenu: item && item.id}) : 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 this.props.context.telemetry.error('Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id,false));\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id,false)}\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,menuItemData.id,false));\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return (this._renderSpanMenuItem(menuItemData));\r\n }\r\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number,IsSubMenu?:boolean): JSX.Element | null {\r\n const {isMobileView, ListItem} = this.props;\r\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\r\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\r\n // const isParentMenu:boolean= false;\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 levelClassName: string = '';\r\n const menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, 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\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu)-1);\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu?`level-${this.currentLevel.toString()}`:'';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined,true);\r\n }\r\n return (\r\n \r\n { menuItem }\r\n { subMenu }\r\n \r\n );\r\n });\r\n return (this._renderMenu(levelClassName, menuOptions, activeMenu,IsSubMenu));\r\n }\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): 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 private _renderLinkMenuItem(option: IMenuItemData, index?: number,hoverEffect:boolean=true): JSX.Element | null {\r\n const {Link} = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource= option.imageSource ? option.imageSource :'';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n \r\n { option.linkText }\r\n \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,submenu?:boolean): JSX.Element | null {\r\n\r\n const {DivContainer, MenuList,ImageDivContainer,showCategoryImage,isMobileView} = this.props;\r\n const categoryImageDisplay = !isMobileView && showCategoryImage && this.state.categoryImage !==null && this.state.categoryImage !==undefined && !submenu;\r\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className:'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n 2 && 'navmenu-multi-level') }>\r\n { menuOptions }\r\n \r\n {\r\n categoryImageDisplay && this.state.categoryImage && (\r\n \r\n { this.state.categoryImage && this._getCategoryImage(this.state.categoryImage,this.state.categoryImageAltText) }\r\n )\r\n }\r\n \r\n );\r\n }\r\n private _updateCategoryImage=(categoryImageSrc:string,linkText:string) => ()=> {\r\n this.setState({\r\n categoryImage: categoryImageSrc !==''? categoryImageSrc :'empty',\r\n categoryImageAltText:linkText\r\n });\r\n }\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n if(this.props.showCategoryImage) {\r\n this._updateCategoryImage(data.imageSource!,data.linkText!)();\r\n }\r\n } else {\r\n NavigationMenuView.isBackTrack = false;\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _handleGoBack = () => () => {\r\n NavigationMenuView.isBackTrack = true;\r\n this.setState({ activeMenu: this.state.parentMenu});\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.props.isMobileView) {\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 (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState(\r\n {\r\n activeMenu:undefined,\r\n mobileViewLabelText: '',\r\n categoryImage:null\r\n }\r\n );\r\n }\r\n };\r\n\r\n private _closeSubmenu():void {\r\n if (!this.props.isMobileView) {\r\n this.setState({activeMenu:undefined,categoryImage:null,mobileViewLabelText: ''});\r\n }\r\n }\r\n private _getCategoryImage=(categoryImage:string,alttext:string):React.ReactNode|null => {\r\n\r\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, this.props.context.actionContext.requestContext.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n if(categoryImageUrl !== undefined) {\r\n const ImageData:IImageData = {src:categoryImageUrl};\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default NavigationMenuView;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILinksData } from '../citta-tile-list-item.props.autogenerated';\r\n\r\n/**\r\n * Tile List links.\r\n */\r\nexport interface ITileListLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ITileListLinks component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class TileListLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n
\r\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * ITileListLinks component.\r\n * @param linkdata - Link data.\r\n * @returns Editable links.\r\n */\r\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!ArrayExtensions.hasElements(linkdata)) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n for (const link of linkdata) {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-tile-list__link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n }\r\n\r\n return editableLinks;\r\n };\r\n}\r\nexport default TileListLinks;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { TileListLinks } from './components';\r\nimport { IHeadingData, ICittaTileListItemProps } from './citta-tile-list-item.props.autogenerated';\r\n\r\n/**\r\n * Tile-list-item view props.\r\n */\r\nexport interface ITileListItemViewProps extends ICittaTileListItemProps<{}> {\r\n heading?: React.ReactNode;\r\n paragraph?: React.ReactNode;\r\n links?: React.ReactNode;\r\n backgroundImage?: React.ReactNode;\r\n thumbnailImage?: React.ReactNode;\r\n tileListItem: IModuleProps;\r\n tileListContainer: INodeProps;\r\n tileListImageContainer: INodeProps;\r\n tileListThumbnailImageContainer: INodeProps;\r\n tileListHeadingContainer: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * TileListItem component.\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class TileListItem extends React.PureComponent> {\r\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public constructor(props: ICittaTileListItemProps<{}>) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { heading, paragraph, backgroundImage, thumbnailImage, redirectionUrl, links } = this.props.config;\r\n const tileListLinks = links && ArrayExtensions.hasElements(links) && (\r\n \r\n );\r\n const tileListLinkContainer = {\r\n tag: 'a' as NodeTag,\r\n className: 'ms-tile-list-container',\r\n role: 'link',\r\n href: redirectionUrl?.linkUrl.destinationUrl,\r\n 'aria-label': redirectionUrl?.ariaLabel\r\n };\r\n\r\n const tileListButtonContainer = {\r\n tag: 'button' as NodeTag,\r\n className: 'ms-tile-list-container'\r\n };\r\n const viewProps: ITileListItemViewProps = {\r\n ...this.props,\r\n heading: this._createHeading(heading),\r\n paragraph: this._createParagraph(paragraph),\r\n backgroundImage: this._renderBackgroundImage(backgroundImage),\r\n thumbnailImage: this._renderThumbnailImage(thumbnailImage),\r\n links: tileListLinks,\r\n tileListItem: {\r\n moduleProps: this.props,\r\n className: ''\r\n },\r\n tileListContainer: redirectionUrl ? tileListLinkContainer : tileListButtonContainer,\r\n tileListImageContainer: {\r\n className: 'ms-tile-list__image'\r\n },\r\n tileListThumbnailImageContainer: {\r\n className: 'ms-tile-list__thumbnail_image',\r\n 'aria-hidden': 'true'\r\n },\r\n tileListHeadingContainer: {\r\n className: 'ms-tile-list__heading'\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handles heading content change event.\r\n * @param event - Content editable event.\r\n */\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.heading!.text = event.target.value;\r\n };\r\n\r\n /**\r\n * Handles paragraph content change event.\r\n * @param event - Content editable event.\r\n */\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.paragraph = event.target.value;\r\n };\r\n\r\n /**\r\n * Handles paragraph content change event.\r\n * @param linkIndex - Index of link in linkarray.\r\n * @returns Void.\r\n */\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\r\n if (this.props.config.links?.[Number(linkIndex)]) {\r\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\r\n }\r\n };\r\n\r\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\r\n if (!text) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\r\n if (!heading) {\r\n return null;\r\n }\r\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderBackgroundImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\r\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\r\n\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=500&h=500&m=6', w: 500, h: 500 },\r\n sm: { q: 'w=600&h=600&m=6', w: 600, h: 600 },\r\n md: { q: 'w=700&h=700&m=6', w: 700, h: 700 },\r\n lg: { q: 'w=800&h=800&m=6', w: 800, h: 800 },\r\n xl: { q: 'w=900&h=900&m=6', w: 900, h: 900 }\r\n },\r\n lazyload: true\r\n };\r\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderThumbnailImage(\r\n item?: Msdyn365.IImageData,\r\n itemImageSettings?: Msdyn365.IImageSettings,\r\n isAriaHiddenAttribute?: boolean\r\n ): React.ReactNode | null {\r\n if (!item) {\r\n return null;\r\n }\r\n if (StringExtensions.isNullOrWhitespace(item.src)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TileListItem;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ITileListItemViewProps } from './citta-tile-list-item';\r\n\r\n/**\r\n *\r\n * ITileListItemViewProps component.\r\n * @param props - Component props.\r\n * @returns TileListView.\r\n */\r\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\r\n const {\r\n heading,\r\n paragraph,\r\n backgroundImage,\r\n links,\r\n thumbnailImage,\r\n tileListContainer,\r\n tileListImageContainer,\r\n tileListThumbnailImageContainer,\r\n tileListHeadingContainer\r\n } = props;\r\n\r\n return (\r\n \r\n {backgroundImage}\r\n \r\n {heading}\r\n {paragraph}\r\n {links}\r\n \r\n {thumbnailImage}\r\n \r\n );\r\n};\r\n\r\n/**\r\n *\r\n * TileListItemViewProps component.\r\n * @param props - Component props.\r\n * @returns TileListView.\r\n */\r\nexport const TileListItemViewComponent: React.FC = props => {\r\n const { tileListItem } = props;\r\n return {renderTileListItemContent(props)};\r\n};\r\n\r\nexport default TileListItemViewComponent;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IFooterCategoryViewProps } from '@msdyn365-commerce-modules/footer/src/modules/footer-category';\r\nimport { Drawer, IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React, { ReactNode } from 'react';\r\nimport { IFooterCategoryProps } from '../definition-extensions/footer-category.ext.props.autogenerated';\r\n\r\nexport const FooterCategoryView: React.FC> = props => {\r\n const { categories, FooterList, FooterListItem } = props;\r\n if (!categories || !categories.length) {\r\n return null;\r\n }\r\n const FooterContainer: IModuleProps = {\r\n moduleProps: props,\r\n className: classnames('ms-footer_module', props.config.className),\r\n };\r\n\r\n if (props.config.renderDrawer) {\r\n return (\r\n \r\n {renderDesktop(props)}\r\n {renderMobile(props)}\r\n );\r\n } else {\r\n return (\r\n \r\n {categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n }\r\n};\r\n\r\nfunction renderDesktop(props: IFooterCategoryViewProps & IFooterCategoryProps<{}>): JSX.Element {\r\n const { categories, FooterListItem } = props;\r\n const DesktopFooterList: IModuleProps = {\r\n moduleProps: props,\r\n className: classnames('ms-footer__list-Desktop citta-footer-category-desktop', props.config.className),\r\n tag: 'ul',\r\n role: 'menu'\r\n };\r\n return (\r\n \r\n \r\n {props.config.categoryName}\r\n \r\n {categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n}\r\n\r\nfunction renderMobile(props: IFooterCategoryViewProps & IFooterCategoryProps<{}>): React.ReactNode {\r\n const { categories } = props;\r\n const MobileFooterList: IModuleProps = {\r\n moduleProps: props,\r\n className: classnames('ms-footer__list-mobile citta-footer-category-mobile', props.config.className),\r\n tag: 'ul',\r\n role: 'menu'\r\n };\r\n return (\r\n \r\n \r\n
\r\n {categories &&\r\n categories.map((category, id2: number) => (\r\n
\r\n {category}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FooterCategoryView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n"],"names":["navigationMenuSource","NavigationMenu","React","constructor","props","super","isRetail","isCMS","_setNavigationSource","sourceType","retailServerOnly","this","cmsOnly","all","_updateViewport","bind","viewport","context","request","device","Type","config","state","isMobile","menuItemList","static","locale","nameTranslations","nameTranslation","length","find","item","Language","toLowerCase","Text","componentDidMount","resizeThrottledEventHandler","window","addThrottledEvent","componentWillUnmount","removeEventListener","render","_mapData","isEmptyOrNullObject","data","telemetry","error","defaultImageSettings","viewports","xs","q","w","h","xl","lazyload","viewProps","_objectSpread","imageSettings","gridSettings","Navigation","moduleProps","className","classnames","tag","role","resources","menuAriaLabel","MenuList","ListItem","showCategoryImage","displayCategoryImage","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","renderView","mergedData","categories","result","map","index","push","_constructMenuItemData","undefined","cmsNavItems","idx","_constructTopMenuItemData","enabletopMenu","mergedRootMenuData","topMenu","id","linkText","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","imageSouce","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","CMSItemIdInit","linkUrl","destinationUrl","imageDestinationURL","imageLink","image","src","_getCMSNestedChildren","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","setState","innerWidth","sm","md","lg","__decorate","observable","computed","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","_handleGoBack","setTimeout","menuNode","current","focus","_handleClickOutside","event","contains","target","_getCategoryImage","alttext","categoryImageUrl","generateImageUrl","actionContext","requestContext","apiSettings","ImageData","Image","Object","assign","categoryImageSettings","loadFailureBehavior","altText","_closeSubmenu","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","document","body","addEventListener","Module","Node","ref","tabIndex","_renderDisplay","menuItem","i","_getFromSubMenu","key","_createMenuItemList","forEach","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","option","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","imagesource","contentAction","etext","attributes","getTelemetryAttributes","onMouseOver","href","onTelemetryClick","level","currentItem","submenu","categoryImageDisplay","DivContainerClass","TileListLinks","_mapEditableLinks","linkdata","ArrayExtensions","hasElements","editableLinks","link","editableLink","ariaLabel","openInNewTab","additionalProperties","links","Msdyn365","editProps","onTextChange","TileListItem","_telemetryContent","handleHeadingChange","heading","text","value","handleParagraphChange","paragraph","handleLinkTextChange","linkIndex","_this$props$config$li","Number","backgroundImage","thumbnailImage","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","tileListItem","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","onEdit","_heading$tag","StringExtensions","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","moduleType","typeName","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","TileListItemViewComponent","renderTileListItemContent","FooterCategoryView","FooterList","FooterListItem","FooterContainer","renderDrawer","DesktopFooterList","categoryName","renderDesktop","MobileFooterList","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","toggleButtonProps","color","id2","renderMobile","CatalogPicker","handleTextChange","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","isBrowser","_getUrlSync","catalogUrl","getUrlSync","fullUrl","URL","location","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Name","galleryImageSettings","AltText","CatalogPickerViewFunctionComponent","SocialShare","slots","socialShareItems","cookies","isConsentGiven","params","isEditor","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement"],"sourceRoot":""}