{"version":3,"file":"static/js/12.9ad8fc31d40c3070cc3f.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/default-page-summary/default-page-summary.tsx?0c78","webpack://Citta2.0/./src/modules/social-share/social-share.tsx?899b","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-product-video/citta-product-video.tsx?bc8d","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-navigation-menu/citta-navigation-menu.view.tsx?c465","webpack://Citta2.0/./src/modules/citta-product-video/citta-product-video.view.tsx?ed50","webpack://Citta2.0/./src/modules/citta-tile-list-item/citta-tile-list-item.view.tsx?7f62","webpack://Citta2.0/./src/themes/citta/views/checkout-guest-profile.view.tsx?7905","webpack://Citta2.0/./src/themes/citta/views/footer-item.view.tsx?8324","webpack://Citta2.0/./src/modules/social-share/social-share.view.tsx?dcdf"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += appConfig.pageTitleSuffix as string;\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\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","/**\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.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n// import { reaction } from 'mobx';\r\nimport * as React from 'react';\r\n// import { IVideoMetadata } from '@msdyn365-commerce/components';\r\n\r\nimport { ICittaProductVideoData } from './citta-product-video.data';\r\nimport { ICittaProductVideoProps } from './citta-product-video.props.autogenerated';\r\n\r\nimport {\r\n IModuleProps,\r\n INodeProps\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\n\r\nimport { IImageData } from '@msdyn365-commerce/core';\r\n\r\nimport { IMediaGalleryData, IMediaGalleryProps } from '@msdyn365-commerce-modules/media-gallery';\r\n// import { IPlayerResources } from '@msdyn365-commerce/components/dist/types/videoplayer/components/data/player-resources';\r\n// import { IPlayerData } from '@msdyn365-commerce/components/dist/types/videoplayer/players/player/Player.props';\r\n// import * as MsDyn365 from '@msdyn365-commerce/core';\r\n// import { getValidProductImages } from './utils';\r\n\r\nexport const enum imageSource {\r\n pageContext = 'pageContext',\r\n productId = 'productId'\r\n}\r\nexport interface IMediaGalleryState {\r\n animating: boolean;\r\n activeIndex: number;\r\n mediaGalleryItems: IImageData[] | undefined;\r\n isImageZoomed: boolean;\r\n modalIsOpen: boolean;\r\n lastUpdate?: number;\r\n}\r\n\r\nexport interface IMediaGalleryThumbnailsViewProps {\r\n ThumbnailsContainerProps: INodeProps;\r\n SingleSlideCarouselComponentProps: INodeProps;\r\n items?: IMediaGalleryThumbnailItemViewProps[];\r\n}\r\n\r\nexport interface IMediaGalleryThumbnailItemViewProps {\r\n ThumbnailItemContainerProps: INodeProps;\r\n Picture: React.ReactElement;\r\n}\r\n\r\nexport interface IMediaGalleryViewProps extends IMediaGalleryProps {\r\n state: IMediaGalleryState;\r\n MediaGallery: IModuleProps;\r\n CarouselProps: INodeProps;\r\n Thumbnails: IMediaGalleryThumbnailsViewProps;\r\n Modal?:React.ReactElement|null;\r\n}\r\n\r\n\r\nexport interface ICittaProductVideoViewProps extends ICittaProductVideoProps<{}> {\r\n player: INodeProps;\r\n ProductVideoContainer: IModuleProps\r\n}\r\n\r\n/**\r\n * Media gallery component\r\n */\r\nclass CittaProductVideo extends React.Component, IMediaGalleryState> {\r\n public render(): JSX.Element | null {\r\n const {\r\n className\r\n } = this.props.config;\r\n\r\n const content: ICittaProductVideoData = this.props.data;\r\n\r\n const attributes = content.attributes.result;\r\n if (!attributes) {\r\n return null;\r\n }\r\n \r\n const srcAttribute = attributes?.find(attribute => attribute.Name === this.props.resources.attributeName);\r\n\r\n if (!srcAttribute || !srcAttribute.TextValue) {\r\n return null;\r\n }\r\n \r\n const viewProps = {\r\n ...this.props,\r\n ProductVideoContainer: {\r\n moduleProps: this.props,\r\n className: classnames('product-video-container', className)\r\n },\r\n player: \r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default CittaProductVideo;","/*!\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. 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\nimport * as React from 'react';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICittaProductVideoViewProps } from './citta-product-video';\r\n\r\nexport default (props: ICittaProductVideoViewProps) => {\r\n return (\r\n \r\n { /* @ts-ignore */ }\r\n {props.player}\r\n \r\n );\r\n};\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutGuestProfileViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-guest-profile/checkout-guest-profile';\r\nimport { IAddContactInfo } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-guest-profile/components/get-add-contact-info';\r\nimport { IShowContactInfo } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-guest-profile/components/get-show-contact-info';\r\n\r\nexport const ShowContactInfo: React.FC = ({ showInfoProps, email, editButton }) => (\r\n \r\n {email}\r\n {editButton}\r\n \r\n);\r\nexport const AddContactInfo: React.FC = ({\r\n addFormProps,\r\n submitButton,\r\n cancelButton,\r\n inputGroupProps,\r\n label,\r\n error,\r\n input\r\n}) => (\r\n \r\n \r\n {'Email Address'}\r\n {error}\r\n {input}\r\n \r\n {submitButton}\r\n {cancelButton}\r\n \r\n);\r\n\r\nconst CheckoutGuestProfileView: React.FC = ({ moduleProps, showContactInfo, addContactInfo }) => {\r\n return (\r\n \r\n {showContactInfo && }\r\n {addContactInfo && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutGuestProfileView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n }\r\n}\r\n\r\nexport default FooterItemView;","/*!\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":["DefaultPageSummary","React","render","undefined","this","props","data","pageSummary","result","Error","title","description","keywords","sharingImageUrl","faviconUrl","config","context","canonicalUrl","sharingImage","src","pageTitle","_constructPageTitle","request","app","HtmlHeadInclude","name","content","rel","href","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","SocialShare","constructor","super","slots","ArrayExtensions","hasElements","socialShareItems","telemetry","error","cookies","isConsentGiven","params","isEditor","viewprops","_objectSpread","moduleProps","className","classnames","SocialShareList","caption","orientation","tag","role","SocialShareItem","tabIndex","SocialShareItemElements","length","renderView","navigationMenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","retailServerOnly","cmsOnly","all","_updateViewport","bind","viewport","device","Type","state","isMobile","menuItemList","static","locale","nameTranslations","nameTranslation","find","item","Language","toLowerCase","Text","componentDidMount","resizeThrottledEventHandler","window","addThrottledEvent","componentWillUnmount","removeEventListener","_mapData","isEmptyOrNullObject","defaultImageSettings","viewports","xs","q","w","h","xl","lazyload","viewProps","imageSettings","gridSettings","Navigation","resources","menuAriaLabel","MenuList","ListItem","showCategoryImage","displayCategoryImage","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","map","index","push","_constructMenuItemData","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","_getCMSNestedChildren","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","setState","innerWidth","sm","md","lg","__decorate","observable","computed","CittaProductVideo","attributes","srcAttribute","attribute","Name","attributeName","TextValue","ProductVideoContainer","player","width","controls","TileListLinks","_mapEditableLinks","linkdata","editableLinks","link","payLoad","getPayloadObject","telemetryContent","contentAction","etext","getTelemetryAttributes","editableLink","ariaLabel","openInNewTab","additionalProperties","onTelemetryClick","links","Msdyn365","editProps","onTextChange","requestContext","TileListItem","_telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","handleHeadingChange","event","heading","text","target","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","Object","assign","loadFailureBehavior","key","moduleType","typeName","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","_handleGoBack","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_getCategoryImage","alttext","categoryImageUrl","generateImageUrl","actionContext","apiSettings","ImageData","Image","categoryImageSettings","altText","_closeSubmenu","document","body","addEventListener","Module","Node","ref","_renderDisplay","menuItem","i","_getFromSubMenu","_createMenuItemList","forEach","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","option","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","imagesource","onMouseOver","level","currentItem","submenu","categoryImageDisplay","DivContainerClass","TileListItemViewComponent","renderTileListItemContent","ShowContactInfo","_ref","showInfoProps","email","editButton","AddContactInfo","_ref2","addFormProps","submitButton","cancelButton","inputGroupProps","label","input","_ref3","showContactInfo","addContactInfo","FooterItemView","_formatLinkData","path","newUrl","URL","url","requestUrl","FooterItem","_renderElement","HeadingContainer","SocialShareView","SocialShareElement"],"sourceRoot":""}