{"version":3,"file":"static/js/14.1c014f9a60970b307f1f.chunk.js","mappings":"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MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,M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","sources":["webpack://venchi-ecommerce-msdyn365/./src/modules/country-selector/country-selector.tsx?a8bc","webpack://venchi-ecommerce-msdyn365/./src/modules/country-selector/country-selector.view.tsx?44d3","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/constants.ts?e30c","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/convert_a2_a3.ts?c0bb","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-management-address.view.tsx?2098","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/loyalty-sign-up.view.tsx?1edc","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/loyalty-terms.view.tsx?71d6","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/sign-in.view.tsx?a0ea","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/write-review.view.tsx?10da","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/components/link.tsx?d232","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://venchi-ecommerce-msdyn365/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://venchi-ecommerce-msdyn365/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://venchi-ecommerce-msdyn365/./src/modules/image-list/image-list.tsx?5602","webpack://venchi-ecommerce-msdyn365/./src/modules/image-list/image-list.view.tsx?2bed","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://venchi-ecommerce-msdyn365/./src/modules/map/map.tsx?6111","webpack://venchi-ecommerce-msdyn365/./src/modules/map/map.view.tsx?5db9","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { 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, ICountrySelectorData } from './country-selector.data';\r\nimport { ICmsNavItemsData, ICountrySelectorProps, ISubMenusData } from './country-selector.props.autogenerated';\r\n\r\nexport interface ICountrySelectorViewProps extends ICountrySelectorProps {\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 countrySelectorIntroText: string;\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 * CountrySelector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CountrySelector extends React.PureComponent, INavigationMenuState> {\r\n private static CMSItemIdInit: number = 1000;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItemList: IMenuItemData[];\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: ICountrySelectorProps) {\r\n super(props);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this.viewport =\r\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\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 = 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(\r\n 'ms-nav menu--country-selector',\r\n this.props.config.className,\r\n this.state.isMobile ? 'mobile-vp' : 'desktop-vp'\r\n ),\r\n tag: 'nav',\r\n role: 'navigation',\r\n 'aria-label': this.props.config.countrySelectorAriaLabel\r\n },\r\n MenuList: {\r\n className: 'ms-nav__list',\r\n tag: 'ul'\r\n },\r\n ListItem: {\r\n className: 'ms-nav__list__item',\r\n tag: 'li'\r\n },\r\n Link: {\r\n tag: 'a',\r\n className: 'ms-nav__list__item__link'\r\n },\r\n DivContainer: {\r\n tag: 'div',\r\n className: 'ms-nav__feature'\r\n },\r\n ImageDivContainer: {\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 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 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 { config } = this.props;\r\n const mergedData: IMenuItemData[] = [];\r\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n config.cmsNavItems.map((item: ICmsNavItemsData) => mergedData.push(this._constructMenuItemData(item)));\r\n }\r\n return mergedData;\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _constructMenuItemData(cmsItem?: ICmsNavItemsData): IMenuItemData {\r\n return {\r\n id: CountrySelector.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 _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(item));\r\n });\r\n return nestedChildren;\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 // 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 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 return 'xs';\r\n }\r\n}\r\n\r\nexport default CountrySelector;\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 {\r\n Drawer,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IDrawerState,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICountrySelectorViewProps } from './country-selector';\r\nimport { IMenuItemData } from './country-selector.data';\r\nimport { ICountrySelectorConfig } from './country-selector.props.autogenerated';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | 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 CountrySelectorView extends React.PureComponent {\r\n private currentLevel: number = 0;\r\n private escapeKey: number = 27;\r\n private menuNode: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n private resizeObserver: ResizeObserver | null = null;\r\n\r\n constructor(props: ICountrySelectorViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = {\r\n activeMenu: undefined,\r\n mobileViewLabelText: '',\r\n parentMenu: undefined,\r\n categoryImageAltText: ''\r\n };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n private initializeResizeObserver = () => {\r\n this.resizeObserver = new ResizeObserver(_ => {\r\n const div = document.querySelector('.mobile.menus');\r\n if (div) {\r\n div.scrollIntoView({ behavior: 'smooth', block: 'end' });\r\n }\r\n });\r\n };\r\n\r\n public componentDidMount(): void {\r\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n this.initializeResizeObserver();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n if (this.resizeObserver) {\r\n this.resizeObserver.disconnect();\r\n }\r\n }\r\n\r\n public handleDrawerToggle = (e: IDrawerState) => {\r\n const mobileMenu = document.querySelector('.mobile.menus');\r\n if (e.isOpen && mobileMenu && this.resizeObserver) {\r\n this.resizeObserver.observe(mobileMenu);\r\n }\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\r\n }\r\n\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, menuItemData, Navigation, config } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData) => {\r\n return this._renderDrawerMenu(menuItem, config);\r\n })}\r\n \r\n );\r\n }\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderDrawerMenu(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\r\n return this._renderDrawer(menuItem, config);\r\n } else {\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const toggleButtonImg = menuItem.imageSource;\r\n return (\r\n \r\n
\r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\r\n return this._renderDrawerLink(menuSubItem);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderLinkText(linkText: string | undefined, linkImg: string | undefined): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n {linkImg && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(item);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n 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 this.setState({\r\n parentMenu: undefined,\r\n mobileViewLabelText: menuItemData[i].linkText\r\n });\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 &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}{' '}\r\n \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 this.setState({\r\n parentMenu: item && item.id,\r\n mobileViewLabelText: subMenus[i].linkText\r\n });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): 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);\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\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\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 = false;\r\n const multiLevelSupportedMenu = 2;\r\n // const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Active menu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Submenu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions =\r\n subMenus &&\r\n 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 ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\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\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 {option.imageSource && {''}}\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 const currentSite = typeof window !== 'undefined' && `${location.origin}${this.props.context.request.sitePath}`;\r\n const currentLang = currentSite === option.linkURL ? true : false;\r\n return (\r\n \r\n {imagesource && {''}}\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 \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\r\n const { DivContainer, MenuList, config } = this.props;\r\n const DivContainerClass = this.currentLevel > 2 ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n \r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n\r\n {menuOptions}\r\n
\r\n
\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 } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\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({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n };\r\n\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n }\r\n private _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n this._closeSubmenu();\r\n }\r\n };\r\n}\r\n\r\nexport default CountrySelectorView;\r\n","export const TEMPORARY_ACCOUNT_NUMBER_LENGTH = 36;\r\nexport const GIFTCARD_ITEMID = '99991';\r\n","// tslint:disable-next-line:variable-name\r\nexport const convert_a2_to_a3 = {\r\n AF: 'AFG',\r\n AX: 'ALA',\r\n AL: 'ALB',\r\n DZ: 'DZA',\r\n AS: 'ASM',\r\n AD: 'AND',\r\n AO: 'AGO',\r\n AI: 'AIA',\r\n AQ: 'ATA',\r\n AG: 'ATG',\r\n AR: 'ARG',\r\n AM: 'ARM',\r\n AW: 'ABW',\r\n AU: 'AUS',\r\n AT: 'AUT',\r\n AZ: 'AZE',\r\n BS: 'BHS',\r\n BH: 'BHR',\r\n BD: 'BGD',\r\n BB: 'BRB',\r\n BY: 'BLR',\r\n BE: 'BEL',\r\n BZ: 'BLZ',\r\n BJ: 'BEN',\r\n BM: 'BMU',\r\n BT: 'BTN',\r\n BO: 'BOL',\r\n BA: 'BIH',\r\n BW: 'BWA',\r\n BV: 'BVT',\r\n BR: 'BRA',\r\n IO: 'IOT',\r\n BN: 'BRN',\r\n BG: 'BGR',\r\n BF: 'BFA',\r\n BI: 'BDI',\r\n KH: 'KHM',\r\n CM: 'CMR',\r\n CA: 'CAN',\r\n CV: 'CPV',\r\n KY: 'CYM',\r\n CF: 'CAF',\r\n TD: 'TCD',\r\n CL: 'CHL',\r\n CN: 'CHN',\r\n CX: 'CXR',\r\n CC: 'CCK',\r\n CO: 'COL',\r\n KM: 'COM',\r\n CG: 'COG',\r\n CD: 'COD',\r\n CK: 'COK',\r\n CR: 'CRI',\r\n CI: 'CIV',\r\n HR: 'HRV',\r\n CU: 'CUB',\r\n CY: 'CYP',\r\n CZ: 'CZE',\r\n DK: 'DNK',\r\n DJ: 'DJI',\r\n DM: 'DMA',\r\n DO: 'DOM',\r\n EC: 'ECU',\r\n EG: 'EGY',\r\n SV: 'SLV',\r\n GQ: 'GNQ',\r\n ER: 'ERI',\r\n EE: 'EST',\r\n ET: 'ETH',\r\n FK: 'FLK',\r\n FO: 'FRO',\r\n FJ: 'FJI',\r\n FI: 'FIN',\r\n FR: 'FRA',\r\n GF: 'GUF',\r\n PF: 'PYF',\r\n TF: 'ATF',\r\n GA: 'GAB',\r\n GM: 'GMB',\r\n GE: 'GEO',\r\n DE: 'DEU',\r\n GH: 'GHA',\r\n GI: 'GIB',\r\n GR: 'GRC',\r\n GL: 'GRL',\r\n GD: 'GRD',\r\n GP: 'GLP',\r\n GU: 'GUM',\r\n GT: 'GTM',\r\n GG: 'GGY',\r\n GN: 'GIN',\r\n GW: 'GNB',\r\n GY: 'GUY',\r\n HT: 'HTI',\r\n HM: 'HMD',\r\n VA: 'VAT',\r\n HN: 'HND',\r\n HK: 'HKG',\r\n HU: 'HUN',\r\n IS: 'ISL',\r\n IN: 'IND',\r\n ID: 'IDN',\r\n IR: 'IRN',\r\n IQ: 'IRQ',\r\n IE: 'IRL',\r\n IM: 'IMN',\r\n IL: 'ISR',\r\n IT: 'ITA',\r\n JM: 'JAM',\r\n JP: 'JPN',\r\n JE: 'JEY',\r\n JO: 'JOR',\r\n KZ: 'KAZ',\r\n KE: 'KEN',\r\n KI: 'KIR',\r\n KP: 'PRK',\r\n KR: 'KOR',\r\n KW: 'KWT',\r\n KG: 'KGZ',\r\n LA: 'LAO',\r\n LV: 'LVA',\r\n LB: 'LBN',\r\n LS: 'LSO',\r\n LR: 'LBR',\r\n LY: 'LBY',\r\n LI: 'LIE',\r\n LT: 'LTU',\r\n LU: 'LUX',\r\n MO: 'MAC',\r\n MK: 'MKD',\r\n MG: 'MDG',\r\n MW: 'MWI',\r\n MY: 'MYS',\r\n MV: 'MDV',\r\n ML: 'MLI',\r\n MT: 'MLT',\r\n MH: 'MHL',\r\n MQ: 'MTQ',\r\n MR: 'MRT',\r\n MU: 'MUS',\r\n YT: 'MYT',\r\n MX: 'MEX',\r\n FM: 'FSM',\r\n MD: 'MDA',\r\n MC: 'MCO',\r\n MN: 'MNG',\r\n ME: 'MNE',\r\n MS: 'MSR',\r\n MA: 'MAR',\r\n MZ: 'MOZ',\r\n MM: 'MMR',\r\n NA: 'NAM',\r\n NR: 'NRU',\r\n NP: 'NPL',\r\n NL: 'NLD',\r\n AN: 'ANT',\r\n NC: 'NCL',\r\n NZ: 'NZL',\r\n NI: 'NIC',\r\n NE: 'NER',\r\n NG: 'NGA',\r\n NU: 'NIU',\r\n NF: 'NFK',\r\n MP: 'MNP',\r\n NO: 'NOR',\r\n OM: 'OMN',\r\n PK: 'PAK',\r\n PW: 'PLW',\r\n PS: 'PSE',\r\n PA: 'PAN',\r\n PG: 'PNG',\r\n PY: 'PRY',\r\n PE: 'PER',\r\n PH: 'PHL',\r\n PN: 'PCN',\r\n PL: 'POL',\r\n PT: 'PRT',\r\n PR: 'PRI',\r\n QA: 'QAT',\r\n RE: 'REU',\r\n RO: 'ROU',\r\n RU: 'RUS',\r\n RW: 'RWA',\r\n BL: 'BLM',\r\n SH: 'SHN',\r\n KN: 'KNA',\r\n LC: 'LCA',\r\n MF: 'MAF',\r\n PM: 'SPM',\r\n VC: 'VCT',\r\n WS: 'WSM',\r\n SM: 'SMR',\r\n ST: 'STP',\r\n SA: 'SAU',\r\n SN: 'SEN',\r\n RS: 'SRB',\r\n SC: 'SYC',\r\n SL: 'SLE',\r\n SG: 'SGP',\r\n SK: 'SVK',\r\n SI: 'SVN',\r\n SB: 'SLB',\r\n SO: 'SOM',\r\n ZA: 'ZAF',\r\n GS: 'SGS',\r\n ES: 'ESP',\r\n LK: 'LKA',\r\n SD: 'SDN',\r\n SR: 'SUR',\r\n SJ: 'SJM',\r\n SZ: 'SWZ',\r\n SE: 'SWE',\r\n CH: 'CHE',\r\n SY: 'SYR',\r\n TW: 'TWN',\r\n TJ: 'TJK',\r\n TZ: 'TZA',\r\n TH: 'THA',\r\n TL: 'TLS',\r\n TG: 'TGO',\r\n TK: 'TKL',\r\n TO: 'TON',\r\n TT: 'TTO',\r\n TN: 'TUN',\r\n TR: 'TUR',\r\n TM: 'TKM',\r\n TC: 'TCA',\r\n TV: 'TUV',\r\n UG: 'UGA',\r\n UA: 'UKR',\r\n AE: 'ARE',\r\n GB: 'GBR',\r\n US: 'USA',\r\n UM: 'UMI',\r\n UY: 'URY',\r\n UZ: 'UZB',\r\n VU: 'VUT',\r\n VE: 'VEN',\r\n VN: 'VNM',\r\n VG: 'VGB',\r\n VI: 'VIR',\r\n WF: 'WLF',\r\n EH: 'ESH',\r\n YE: 'YEM',\r\n ZM: 'ZMB',\r\n ZW: 'ZWE'\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address';\r\nimport { convert_a2_to_a3 } from '../utils/convert_a2_a3';\r\n\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n// tslint:disable-next-line:max-func-body-length\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const resources = other?.moduleProps?.resources;\r\n // @ts-ignore\r\n const localeString = other?.moduleProps?.context?.request?.locale;\r\n // @ts-ignore\r\n const sitePath = other?.moduleProps?.context?.request?.sitePath;\r\n const europe = ['/fr', '/de'];\r\n // @ts-ignore\r\n const currency = other?.moduleProps?.context?.request?.channel?.Currency;\r\n const locale =\r\n sitePath && europe.includes(sitePath)\r\n ? 'eu'\r\n : currency === 'EUR' && localeString === 'en-GB'\r\n ? 'eu'\r\n : localeString.replace('-', '');\r\n\r\n const [hasAddressError, setHasAddressError] = React.useState(false);\r\n React.useEffect(() => {\r\n setHasAddressError(error.title ? true : false);\r\n }, [error.title]);\r\n // console.log(`${currency} ${localeString} ${locale}`);\r\n const countriesAvail = {\r\n enGB: {\r\n autocomplete: ['gb'],\r\n select: ['GBR']\r\n },\r\n it: {\r\n autocomplete: ['it'],\r\n select: ['ITA']\r\n },\r\n enUS: {\r\n autocomplete: ['us'],\r\n // autocomplete: ['us', 'ca'],\r\n // select: ['USA', 'CAN']\r\n select: ['USA']\r\n },\r\n eu: {\r\n // removed componentRestrictions for country as there is limit of 5 in google maps\r\n // autocomplete:['at','be','bg','ch','cz','de','dk','es','ee','fi','fr','gr','hr','hu','ie','li','lt','lu','lv','mc','nl','no','pl','pt','ro','sk','si','se'],\r\n autocomplete: [],\r\n select: [\r\n 'AUT',\r\n 'BEL',\r\n 'BGR',\r\n 'CHE',\r\n 'CZE',\r\n 'DEU',\r\n 'DNK',\r\n 'ESP',\r\n 'EST',\r\n 'FIN',\r\n 'FRA',\r\n 'GRC',\r\n 'HRV',\r\n 'HUN',\r\n 'IRL',\r\n 'LIE',\r\n 'LTU',\r\n 'LUX',\r\n 'LVA',\r\n 'MCO',\r\n 'NLD',\r\n 'NOR',\r\n 'POL',\r\n 'PRT',\r\n 'ROU',\r\n 'SVK',\r\n 'SVN',\r\n 'SWE'\r\n ]\r\n },\r\n enSG: {\r\n autocomplete: ['sg'],\r\n select: ['SGP']\r\n }\r\n };\r\n // @ts-ignore\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;\r\n // tslint:disable-next-line:typedef\r\n function gMapsAutocomplete() {\r\n const googleComponents = [\r\n { googleComponent: 'sublocality_level_1', id: 'shipping_addresscity' },\r\n { googleComponent: 'locality', id: 'shipping_addresscity' },\r\n { googleComponent: 'postal_town', id: 'shipping_addresscity' },\r\n { googleComponent: 'administrative_area_level_3', id: 'shipping_addresscity' },\r\n { googleComponent: 'administrative_area_level_1', id: 'shipping_addressstate' },\r\n { googleComponent: 'postal_code_prefix', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'postal_code', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'country', id: 'shipping_addressthreeletterisoregionname' },\r\n { googleComponent: 'administrative_area_level_2', id: 'shipping_addresscounty' }\r\n ];\r\n\r\n const autocompleteFormField = document.getElementById('shipping_addressstreet');\r\n // @ts-ignore\r\n const autocomplete = new window.google.maps.places.Autocomplete(autocompleteFormField, {\r\n types: ['address'],\r\n componentRestrictions: { country: countriesAvail[locale] && countriesAvail[locale].autocomplete }\r\n });\r\n if (autocompleteFormField === null) {\r\n return;\r\n }\r\n autocompleteFormField.setAttribute('placeholder', resources.startTypingYourAddress);\r\n // @ts-ignore\r\n window.google.maps.event.clearInstanceListeners(autocompleteFormField);\r\n // @ts-ignore\r\n window.google.maps.event.addListener(autocomplete, `place_changed`, () => {\r\n const place = autocomplete.getPlace();\r\n // console.log(place);\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(autocompleteFormField, place.name);\r\n const eCustom = new Event('change', { bubbles: true });\r\n autocompleteFormField.dispatchEvent(eCustom);\r\n for (const googleComponent of googleComponents) {\r\n const addressComponents = place.address_components;\r\n if (addressComponents && addressComponents.length > 0) {\r\n // @ts-ignore\r\n addressComponents.forEach(addressComponent => populateFormElements(addressComponent, googleComponent));\r\n }\r\n }\r\n });\r\n }\r\n // tslint:disable-next-line:typedef no-any\r\n function populateFormElements(\r\n addressComponent: { types: any[]; short_name: string; long_name: string },\r\n formMap: { googleComponent: any; id: string }\r\n ) {\r\n const addressType = addressComponent.types[0];\r\n\r\n if (document.getElementById(formMap.id) === undefined || document.getElementById(formMap.id) === null) {\r\n return;\r\n }\r\n\r\n if (formMap.googleComponent === addressType) {\r\n if (formMap.id === 'shipping_addressthreeletterisoregionname' || formMap.id === 'shipping_addressstate') {\r\n const input = document.getElementById(formMap.id) as HTMLSelectElement;\r\n if (input !== null) {\r\n const formValue = locale === 'it' && formMap.id === 'shipping_addressstate' ? 'DEF' : addressComponent.short_name;\r\n // console.log(formValue);\r\n const selectedValue = selectItemByValue(input, formValue, addressType === 'country' ? true : false);\r\n // console.log(selectedValue);\r\n if (selectedValue !== undefined) {\r\n input.value = selectedValue;\r\n // console.log(input.value);\r\n const event = new Event('change', { bubbles: true });\r\n input.dispatchEvent(event);\r\n }\r\n }\r\n } else {\r\n const formValue = formMap.id === 'shipping_addresscounty' ? addressComponent.short_name : addressComponent.long_name;\r\n const input = document.getElementById(formMap.id);\r\n if (input !== undefined) {\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(input, formValue);\r\n const eCustom = new Event('input', { bubbles: true });\r\n if (input !== null) {\r\n input.dispatchEvent(eCustom);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // @ts-ignore\r\n // tslint:disable-next-line:typedef\r\n function selectItemByValue(elmnt: HTMLSelectElement, value: string, is_convert_a2_to_a3) {\r\n for (let i = 0; i < elmnt.options.length; i++) {\r\n const eValue = elmnt.options[i].value;\r\n if ((is_convert_a2_to_a3 && eValue === convert_a2_to_a3[value]) || (!is_convert_a2_to_a3 && eValue === value)) {\r\n return elmnt.options[i].value;\r\n }\r\n }\r\n }\r\n const checkPhone = () => {\r\n const saveAddressButton = document.querySelector('.msc-address-form__button-save.msc-btn') as HTMLButtonElement;\r\n const phone = document.getElementById('shipping_addressphone') as HTMLInputElement;\r\n if (phone) {\r\n const phoneCtn = phone.closest('.msc-address-form__item') as HTMLElement;\r\n const phoneAlert = phoneCtn.getElementsByClassName('msc-address-form__alert')[0];\r\n const pattern = /^[0-9]*$/;\r\n const pattern2 = /^\\+?\\d+$/;\r\n phone.setAttribute('aria-required', 'true');\r\n phone.setAttribute('type', 'tel');\r\n phone.setAttribute('maxlength', '15');\r\n if (phone.value.length === 0) {\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n }\r\n phone.onkeyup = () => {\r\n if (!phone.value.match(pattern) && !phone.value.match(pattern2)) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else if (phone.value.length < 6) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else {\r\n phoneCtn.classList.remove('address-form__item-invalid');\r\n phoneAlert.textContent = '';\r\n saveAddressButton.removeAttribute('disabled');\r\n }\r\n };\r\n }\r\n };\r\n function phoneValidation(): void {\r\n const addressForm = document.getElementsByClassName('msc-address-form')[0];\r\n const saveAddressButton = document.querySelector('.msc-address-form__button-save.msc-btn') as HTMLButtonElement;\r\n const county = document.getElementById('shipping_addresscounty') as HTMLInputElement;\r\n const countyCtn = county && county !== null ? (county.closest('.msc-address-form__item') as HTMLInputElement) : undefined;\r\n const countyAlert = countyCtn?.getElementsByClassName('msc-address-form__alert')[0];\r\n\r\n if (countyCtn !== undefined) {\r\n countyCtn.onkeyup = () => {\r\n countyCtn?.classList.remove('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = '';\r\n }\r\n };\r\n }\r\n if (saveAddressButton !== undefined) {\r\n saveAddressButton.onclick = e => {\r\n const countyValid =\r\n locale === 'it' && (county.value === '' || county.value.length > 2 || !/[^a-z]/i.test(county.value) === false)\r\n ? false\r\n : true;\r\n if (!countyValid) {\r\n countyCtn?.classList.add('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = 'Inserire Codice ISO a 2 lettere';\r\n }\r\n const elements = addressForm.querySelectorAll('input');\r\n let fieldInALL = true;\r\n elements.forEach(fieldInControl);\r\n function fieldInControl(element: HTMLInputElement): void {\r\n if (element.value === '' && element.name !== 'County') {\r\n fieldInALL = false;\r\n }\r\n }\r\n if (fieldInALL) {\r\n e.stopPropagation();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n React.useEffect(() => {\r\n gMapsAutocomplete();\r\n const options = document.querySelectorAll('#shipping_addressthreeletterisoregionname option');\r\n options.forEach(o => {\r\n const optionV = (o as HTMLOptionElement).value;\r\n if (countriesAvail[locale] && !countriesAvail[locale].select.includes(optionV)) {\r\n o.remove();\r\n }\r\n });\r\n const countrySelect = document.getElementById('shipping_addressthreeletterisoregionname') as HTMLSelectElement;\r\n if (locale === 'enUS') {\r\n countrySelect.value = 'USA';\r\n }\r\n const event = new Event('change', { bubbles: true });\r\n countrySelect.dispatchEvent(event);\r\n }, []);\r\n\r\n // Auto select of DEF value in state select on italian site\r\n React.useEffect(() => {\r\n const event = new Event('change', { bubbles: true });\r\n if (locale === 'it' && (document.querySelector('#shipping_addressstate option[value=DEF]') as HTMLOptionElement)) {\r\n const optionDEF = document.querySelector('#shipping_addressstate option[value=DEF]') as HTMLOptionElement;\r\n optionDEF.setAttribute('aria-selected', 'true');\r\n (optionDEF.parentNode as HTMLSelectElement).value = 'DEF';\r\n (optionDEF.parentNode as HTMLSelectElement).dispatchEvent(event);\r\n (optionDEF.parentNode as HTMLSelectElement).disabled = Boolean('true');\r\n }\r\n }, [document.querySelector('#shipping_addressstate option[value=DEF]')]);\r\n\r\n React.useEffect(() => {\r\n const phoneItem = items.find(i => i.key === 'Phone');\r\n\r\n //@ts-ignore\r\n if (phoneItem?.input?.props?.onChange) {\r\n //@ts-ignore\r\n const { onChange } = phoneItem.input.props;\r\n\r\n const handlePhoneChange = (event: React.ChangeEvent) => {\r\n onChange(event);\r\n checkPhone();\r\n };\r\n\r\n //@ts-ignore\r\n phoneItem.input.props.onChange = handlePhoneChange;\r\n }\r\n }, [items]);\r\n\r\n React.useEffect(() => {\r\n phoneValidation();\r\n }, [document.getElementsByClassName('msc-address-form')[0]]);\r\n\r\n // Refesh once saving processed\r\n let updatedCount = 0;\r\n React.useEffect(() => {\r\n ++updatedCount;\r\n if (updatedCount > 1) {\r\n location.reload();\r\n }\r\n }, [document.querySelector('.msc-address-form__button-updating')]);\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n if (key === 'Name' && input) {\r\n // @ts-ignore\r\n input.props.maxLength = 34;\r\n }\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasAddressError && (\r\n \r\n

{resources.addressErrorMessage}

\r\n
\r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n
\r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILoyaltySignUpViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { ILoyaltySignUpProps } from '../definition-extensions/loyalty-sign-up.ext.props.autogenerated';\r\n\r\nconst LoyaltySignUpView: React.FC> = props => {\r\n const {\r\n LoyaltySignUp,\r\n heading,\r\n memberHeading,\r\n signInLink,\r\n signUpText,\r\n signUpButton,\r\n detailsLink,\r\n // termsLink, Not needed\r\n loading,\r\n infoMessageBar\r\n } = props;\r\n\r\n if (loading) {\r\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\r\n return null;\r\n }\r\n\r\n // const hostname = props?.context?.request?.url?.requestUrl?.hostname || '';\r\n\r\n if (typeof window !== 'undefined') {\r\n const loyalty_join_toggle_btn = document.getElementsByClassName('ms-loyalty-terms__toggle')[0];\r\n loyalty_join_toggle_btn?.addEventListener('click', () => {\r\n const loyalty_join_btn = document.getElementsByClassName('ms-loyalty-terms__submit')[0];\r\n loyalty_join_btn.addEventListener('click', () => {\r\n loyalty_join_btn.innerHTML = \"
\";\r\n });\r\n });\r\n }\r\n\r\n /*\r\n [signInLink = true, loyalty_join_flag = false] guest (no loyalty join) -> standard sign in\r\n [signInLink = true, loyalty_join_flag = true] guest (loyalty join) -> \"thanks\" instead of sign in\r\n [signInLink = false] logged in -> hidden module content\r\n */\r\n const loyalty_join_flag = props.context.request.query?.hasJoined;\r\n // signInLink is null (thus false) when the user is logged in\r\n return (\r\n signInLink &&\r\n (loyalty_join_flag ? (\r\n
\r\n {props.resources.joinedLoyaltyThankYouHeader && (\r\n

{props.resources.joinedLoyaltyThankYouHeader}

\r\n )}\r\n {props.resources.joinedLoyaltyParagraphContent && (\r\n
\r\n

{props.resources.joinedLoyaltyParagraphContent}

\r\n
\r\n )}\r\n {/* {props.resources.loyaltyBalanceCheckURL && props.resources.joinedLoyaltyBalanceCheckLinkText && ({props.resources.joinedLoyaltyBalanceCheckLinkText})} */}\r\n
\r\n ) : (\r\n \r\n {infoMessageBar}\r\n {memberHeading}\r\n {heading}\r\n {detailsLink}\r\n {signUpText}\r\n {/* {termsLink} Not needed */}\r\n {signUpButton}\r\n {signInLink}\r\n \r\n ))\r\n );\r\n};\r\n\r\nexport default LoyaltySignUpView;\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILoyaltyTermsViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { ILoyaltyTermsProps } from '../definition-extensions/loyalty-terms.ext.props.autogenerated';\r\n\r\nimport { AsyncResult, Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { TEMPORARY_ACCOUNT_NUMBER_LENGTH } from '../utils/constants';\r\n\r\ninterface ILoyaltyTermsData {\r\n customerInformation: AsyncResult;\r\n}\r\n\r\nconst LoyaltyTermsView: React.FC> = props => {\r\n const customerInformation = props.data.customerInformation.result;\r\n\r\n // The user does NOT have a customer number yet, they still have a tmp_guid\r\n let tempAccount = false;\r\n if (customerInformation?.AccountNumber?.length === TEMPORARY_ACCOUNT_NUMBER_LENGTH) {\r\n tempAccount = true;\r\n }\r\n\r\n const auth = props.context.request.user.isAuthenticated;\r\n\r\n // const hostname = props?.context?.request?.url?.requestUrl?.hostname || ''; // Protip: this does NOT keep the /de or whatever, so make sure to fix it if used in the future\r\n\r\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\r\n\r\n if (auth && tempAccount) {\r\n return (\r\n
\r\n {props.resources.joinedLoyaltyThankYouHeader && (\r\n

{props.resources.joinedLoyaltyThankYouHeader}

\r\n )}\r\n {props.resources.joinedLoyaltyParagraphContent && (\r\n
\r\n

{props.resources.joinedLoyaltyParagraphContent}

\r\n
\r\n )}\r\n {/* {props.resources.loyaltyBalanceCheckURL && props.resources.joinedLoyaltyBalanceCheckLinkText && ({props.resources.joinedLoyaltyBalanceCheckLinkText})} */}\r\n
\r\n );\r\n // User is NOT temp but IS auth --> old/synced user\r\n } else if (auth && !loading && modal && !tempAccount) {\r\n if (props.config.layout === 'wideLayout') {\r\n return (\r\n \r\n {props.config.showImages && props.config.marketingImage ? (\r\n
\r\n
\r\n {props.config.marketingImage.altText}\r\n
\r\n
\r\n {props.config.marketingText &&

{props.config.marketingText}

}\r\n {modalToggle}\r\n
\r\n
\r\n {props.config.marketingImage.altText}\r\n
\r\n
\r\n ) : (\r\n
\r\n {props.config.marketingText &&

{props.config.marketingText}

}\r\n {modalToggle}\r\n
\r\n )}\r\n \r\n {modal.heading}\r\n \r\n {modal.terms}\r\n \r\n {modal.checkbox}\r\n {modal.agreeText}\r\n \r\n \r\n \r\n {modal.submitButton}\r\n {modal.cancelButton}\r\n \r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n {props.config.showImages && props.config.marketingImage && (\r\n {props.config.marketingImage.altText}\r\n )}\r\n {props.config.marketingText &&

{props.config.marketingText}

}\r\n {modalToggle}\r\n
\r\n \r\n {modal.heading}\r\n \r\n {modal.terms}\r\n \r\n {modal.checkbox}\r\n {modal.agreeText}\r\n \r\n \r\n \r\n {modal.submitButton}\r\n {modal.cancelButton}\r\n \r\n \r\n
\r\n );\r\n }\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nexport default LoyaltyTermsView;\r\n","import * as React from 'react';\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\nimport {\r\n Module,\r\n Node,\r\n ITelemetryContent,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject\r\n} from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps } from '@msdyn365-commerce-modules/account-management';\r\n\r\nimport { ISignInProps } from '../definition-extensions/sign-in.ext.props.autogenerated';\r\n\r\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC> = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n const canonicalDomain = props.signIn.moduleProps.context.request.canonicalDomain;\r\n const sitePath =\r\n props.signIn.moduleProps.context.request.sitePath && props.signIn.moduleProps.context.request.sitePath !== null\r\n ? props.signIn.moduleProps.context.request.sitePath\r\n : '';\r\n const requestUrl: string = `https://${canonicalDomain}${sitePath}`;\r\n\r\n const telemetryContent: ITelemetryContent = getTelemetryObject(\r\n props.context.request.telemetryPageName!,\r\n props.friendlyName,\r\n props.telemetry\r\n );\r\n const payLoad = getPayloadObject('click', telemetryContent!, props.resources.signUpButtonText);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n const showContinueAsGuest = props.config.showContinueAsGuestButton;\r\n const showVclubColumn = props.config.showVclubColumn;\r\n\r\n React.useEffect(() => {\r\n if (!viewState.isShowLoading) {\r\n const registerButtonLink = document.getElementById('createAccount');\r\n const vclubButtonLink = document.getElementById('vclub-signin');\r\n\r\n if (registerButtonLink && vclubButtonLink) {\r\n // @ts-ignore\r\n vclubButtonLink.href = registerButtonLink.href;\r\n }\r\n }\r\n }, [viewState.isShowLoading]);\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n {showVclubColumn && (\r\n \r\n

{props.resources.signinVclubTitle}

\r\n

{props.resources.signinVclubText}

\r\n
\r\n \r\n {props.resources.signUpButtonText}\r\n \r\n
\r\n\r\n {showContinueAsGuest && (\r\n \r\n )}\r\n
\r\n )}\r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n
{signUpLink}
\r\n\r\n {showContinueAsGuest && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SignInView;\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// import { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\nimport { IWriteReviewViewProps, IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { Module, Node, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const { heading, /* signInMessage, */ signInButton, modalToggle, reviewModal, moduleProps } = props;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n // @ts-ignore\r\n //const reviewButtonLabel = moduleProps?.moduleProps?.resources?.reviewButtonLabel ?? '';\r\n //const customSignInButton = signInButton;\r\n // @ts-ignore\r\n //customSignInButton.props.text = reviewButtonLabel;\r\n // const test = { ...moduleProps };\r\n // @ts-ignore\r\n moduleProps.moduleProps.resources.signInLabel = moduleProps.moduleProps.resources.reviewButtonLabel;\r\n React.useEffect(() => {\r\n const button = document.getElementsByClassName('ms-write-review__sign-in-btn')[0];\r\n if (button) {\r\n button.setAttribute('style', 'visibility: visible');\r\n }\r\n }, []);\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated\r\n ? React.createElement(React.Fragment, null, null, signInButton)\r\n : React.createElement(React.Fragment, null, modalToggle, createReviewModal(reviewModal, moduleProps))\r\n );\r\n /* return (React.createElement(Module, Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated ? React.createElement(React.Fragment, null,\r\n signInMessage,\r\n signInButton) : React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))); */\r\n};\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps) => {\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, props.modal, moduleProps),\r\n props.modalHeader,\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.modalBody),\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.form),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.rating, props.ratingLabel),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.titleLabel, props.titleInput),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.textLabel, props.textInput),\r\n props.privacyPolicyUrl,\r\n props.error\r\n )\r\n ),\r\n React.createElement(Node, Object.assign({}, props.modalFooter), props.submitButton, props.cancelButton)\r\n );\r\n};\r\nexport default ContentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\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 * as React from 'react';\n\nimport { ICountryPickerViewProps } from './index';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\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 { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\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 * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n"],"names":["CountrySelector","React","constructor","props","super","isCMS","this","_updateViewport","bind","viewport","context","request","device","Type","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","config","tag","role","countrySelectorAriaLabel","MenuList","ListItem","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","MobileDescriptionLabel","isMobileView","menuItemData","renderView","mergedData","cmsNavItems","map","push","_constructMenuItemData","cmsItem","id","CMSItemIdInit","linkText","linkURL","linkUrl","destinationUrl","imageDestinationURL","imageLink","imageSource","image","src","subMenu","_getCMSNestedChildren","category","nestedChildren","subMenus","idx","_getViewport","setState","undefined","innerWidth","sm","md","lg","__decorate","observable","computed","CountrySelectorView","currentLevel","escapeKey","resizeObserver","initializeResizeObserver","ResizeObserver","_","div","document","querySelector","scrollIntoView","behavior","block","handleDrawerToggle","e","mobileMenu","isOpen","observe","_handleDropdownToggle","parentId","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","event","contains","target","_escFunction","keyCode","_closeSubmenu","categoryImageAltText","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","body","addEventListener","disconnect","_renderMobileMenu","_renderDesktopMenu","Module","Object","assign","menuItem","_renderDrawerMenu","Node","ref","tabIndex","_renderDisplay","_renderDrawer","_renderLinkMenuItem","toggleButtonText","toggleButtonImg","Drawer","onToggle","key","_renderLinkText","countrySelectorIntroText","menuSubItem","_renderDrawerLink","linkImg","alt","_renderSpanMenuItem","i","_getFromSubMenu","_createMenuItemList","forEach","index","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","levelClassName","menuOptions","option","hasOptions","haveSubmenu","_renderMenu","onFocus","imagesource","contentAction","etext","attributes","getTelemetryAttributes","currentLang","location","origin","sitePath","href","onTelemetryClick","level","currentItem","submenu","DivContainerClass","TEMPORARY_ACCOUNT_NUMBER_LENGTH","GIFTCARD_ITEMID","convert_a2_to_a3","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AddressShow","_ref","AddressDetail","items","description","AddressList","_ref2","List","isShowList","heading","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","_other$moduleProps","_other$moduleProps2","_other$moduleProps3","_other$moduleProps4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","other","_objectWithoutProperties","_excluded","resources","localeString","currency","channel","Currency","includes","replace","hasAddressError","setHasAddressError","countriesAvail","enGB","autocomplete","select","it","enUS","eu","enSG","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","populateFormElements","addressComponent","formMap","addressType","types","getElementById","googleComponent","input","selectedValue","elmnt","value","is_convert_a2_to_a3","options","eValue","selectItemByValue","short_name","Event","bubbles","dispatchEvent","formValue","long_name","call","eCustom","googleComponents","autocompleteFormField","google","maps","places","Autocomplete","componentRestrictions","country","setAttribute","startTypingYourAddress","clearInstanceListeners","addListener","place","getPlace","name","addressComponents","address_components","gMapsAutocomplete","querySelectorAll","o","optionV","remove","countrySelect","optionDEF","parentNode","disabled","Boolean","_phoneItem$input","phoneItem","onChange","handlePhoneChange","checkPhone","saveAddressButton","phone","phoneCtn","closest","phoneAlert","getElementsByClassName","pattern","pattern2","onkeyup","match","classList","add","textContent","addressPhoneRequiredErrorMessage","removeAttribute","addressForm","county","countyCtn","countyAlert","onclick","test","elements","fieldInALL","fieldInControl","element","stopPropagation","phoneValidation","updatedCount","reload","AddressItem","label","alert","maxLength","AddressError","addressErrorMessage","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","isShowAddresList","isShowAddOrUpdateAddress","_props$context$reques","LoyaltySignUp","memberHeading","signInLink","signUpText","signUpButton","detailsLink","loading","infoMessageBar","loyalty_join_toggle_btn","loyalty_join_btn","innerHTML","loyalty_join_flag","query","hasJoined","joinedLoyaltyThankYouHeader","joinedLoyaltyParagraphContent","_customerInformation$","customerInformation","result","tempAccount","AccountNumber","auth","user","isAuthenticated","LoyaltyTerms","modalToggle","modal","layout","showImages","marketingImage","altText","marketingText","modalHeader","modalBody","terms","agreeSection","checkbox","agreeText","modalFooter","submitButton","SignInLoading","icon","_props$resources$cont","_props$resources$cont2","signIn","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signUpSectionHeading","signUpDescription","signUpLink","requestUrl","canonicalDomain","signUpButtonText","showContinueAsGuest","showContinueAsGuestButton","showVclubColumn","isShowLoading","registerButtonLink","vclubButtonLink","localAccount","forgetPassword","disclaimer","signInButton","wrapper","LocalAccount","signinVclubTitle","signinVclubText","continueAsGuest","createReviewModal","form","inputRow","rating","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","reviewModal","signInLabel","reviewButtonLabel","button","text","ariaLabel","noclick","attribute","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","links","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","NameTranslations","Url","_nameTranslation","ArrayExtensions","hasElements","_getPDPLinks","categoryPaths","product","url","Name","hideProductName","_goBack","history","back","_getPDPBackButton","MsDyn365","isBrowser","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","link","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","baseUrl","isCookieValueSet","get","_heading$tag","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","editProps","onEdit","handleTextChange","requestContext","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","stayOnCurrentSiteButtonText","viewprops","modalContainer","Modal","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","renderCountryList","stayOnCurrentSiteButton","handleLinkTextChange","_this$props$config$ac","StringExtensions","isNullOrEmpty","_link$linkText","editableLink","openInNewTab","additionalProperties","onTextChange","localeItems","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","imageSize","imageProps","displayString","loadFailureBehavior","shouldSkipToMainImage","displaySubString","countryPickerView","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","quantity","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","ImageList","images","paragraph","_renderImageListItems","imageList","disableLazyLoad","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","Msdyn365","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","InteractiveFeatureCollection","itemsCounter","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","InteractiveFeatureItem","handleHeadingChange","linkIndex","_this$props$config$li","Number","featureItemLinks","_createHeading","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","typeName","imagePropertyName","moduleId","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","Map","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","actionContext","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","Events","addHandler","async","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","filter","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","RecordId","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","recordId","_this$props$data$dist2","showIndex","size","color","selectionColor","_getSvgIcon","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","reaction","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","classname","show","Header","headerProps","MapProps","observer","MapHeader","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","status","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","orderTemplateName","orderTemplateImageElement","currentImageListLength","children"],"sourceRoot":""}