{"version":3,"file":"static/js/21.1e66b3552325bdd4021b.chunk.js","mappings":"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","sources":["webpack://venchi-ecommerce-msdyn365/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://venchi-ecommerce-msdyn365/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://venchi-ecommerce-msdyn365/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://venchi-ecommerce-msdyn365/./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack://venchi-ecommerce-msdyn365/./src/modules/tab/tab.view.tsx?a99d","webpack://venchi-ecommerce-msdyn365/./src/modules/tab/tab.tsx?9ac6","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/pickup-option-list.tsx?9899","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/store-pickup-option-list.tsx?fcf6","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-location-line-item/date-time-helpers.ts?31c5","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-location-line-item/find-store-worldwide-location-line-item.components.tsx?9ca8","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-location-lines.tsx?bbef","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-search-form.tsx?05ef","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/find-store-worldwide-small-components.tsx?cef1","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/components/selected-store/selected-store.tsx?d7a6","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/find-store-worldwide.props.autogenerated.ts?b0ff","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/find-store-worldwide.tsx?f58c","webpack://venchi-ecommerce-msdyn365/./src/modules/find-store-worldwide/find-store-worldwide.view.tsx?59ba","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/order-details.view.tsx?d810","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/search-result-container.view.tsx?89df","webpack://venchi-ecommerce-msdyn365/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/components/navigation-menu-utilities.tsx?d092","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/components/navigation-menu-root-disabled.tsx?1d68","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/components/navigation-menu-root-enabled.tsx?d5b3","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/navigation-menu.view.tsx?5304","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/components/promocode.component.tsx?c06b","webpack://venchi-ecommerce-msdyn365/./src/modules/navigation-menu/navigation-menu.data.ts?9815"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\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, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n }\n}\n\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\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 { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\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, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Interface Pickup option list.\r\n */\r\nexport interface IPickUpOptionListProps {\r\n pickupListOptionMenuText: string;\r\n pickupmodeList?: DeliveryOption[];\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Interface pickup option list state.\r\n */\r\nexport interface IPickOptionListState {\r\n expandSiteOptions: boolean;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class PickUpOptionList extends React.PureComponent {\r\n private readonly _pickupListOptionMenu: React.RefObject;\r\n\r\n private readonly _pickupListOptionButton: React.RefObject;\r\n\r\n private readonly eventsToBeBind = ['click', 'touchstart'];\r\n\r\n public constructor(props: IPickUpOptionListProps) {\r\n super(props);\r\n this._renderDeliveryOptions = this._renderDeliveryOptions.bind(this);\r\n this._pickupListOptionMenu = React.createRef();\r\n this._pickupListOptionButton = React.createRef();\r\n this.state = {\r\n expandSiteOptions: false\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n for (const event of this.eventsToBeBind) {\r\n window.addEventListener(event, this.handleDocumentClick, true);\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n for (const event of this.eventsToBeBind) {\r\n window.removeEventListener(event, this.handleDocumentClick, true);\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { pickupListOptionMenuText, pickupmodeList } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {pickupListOptionMenuText}\r\n \r\n \r\n {this.state.expandSiteOptions ? (\r\n
    \r\n {pickupmodeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n
  • \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Handle the document click.\r\n * @param event -- Event object.\r\n */\r\n private readonly handleDocumentClick = (event: Event): void => {\r\n const htmlElement = event.target as HTMLElement;\r\n if (\r\n !(\r\n (this._pickupListOptionButton.current !== null &&\r\n (event.target === this._pickupListOptionButton.current ||\r\n this._pickupListOptionButton.current.contains(htmlElement))) ||\r\n (this._pickupListOptionMenu.current !== null &&\r\n (event.target === this._pickupListOptionMenu.current || this._pickupListOptionMenu.current.contains(htmlElement)))\r\n )\r\n ) {\r\n this.setState({\r\n expandSiteOptions: false\r\n });\r\n }\r\n };\r\n\r\n private _renderDeliveryOptions(event: React.MouseEvent): void {\r\n event.stopPropagation();\r\n const isExpandSiteOptionsState = this.state.expandSiteOptions;\r\n this.setState({\r\n expandSiteOptions: !isExpandSiteOptionsState\r\n });\r\n }\r\n\r\n /**\r\n * Select Delivery option.\r\n * @param event -- Event Object.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode && deliveryCode.length > 0) {\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Store Pickup option list interface.\r\n */\r\nexport interface IStorePickUpOptionListProps {\r\n productPickupListOptionMenuText?: string;\r\n productPickupModeList?: DeliveryOption[];\r\n defaultOptionText?: string;\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Store Pickup option state interface.\r\n */\r\nexport interface IStorePickOptionListState {\r\n isFilterExpanded: boolean;\r\n selectedPickupMode?: string;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class StorePickUpOptionList extends React.PureComponent {\r\n private readonly _storePickupListOptionMenu: React.RefObject;\r\n\r\n public constructor(props: IStorePickUpOptionListProps) {\r\n super(props);\r\n this._storePickupListOptionMenu = React.createRef();\r\n this.state = {\r\n isFilterExpanded: false,\r\n selectedPickupMode: ''\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { productPickupListOptionMenuText, productPickupModeList, defaultOptionText } = this.props;\r\n const selectedPickupModeDesc = defaultOptionText\r\n ? defaultOptionText\r\n : productPickupModeList?.find((delivery: DeliveryOption) => delivery.Code === this.state.selectedPickupMode)?.Description;\r\n const role = 'menu';\r\n return (\r\n
\r\n \r\n {this.state.isFilterExpanded ? (\r\n
    \r\n {productPickupModeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Method to call when drop dwon get selected.\r\n */\r\n private readonly _rendeDeliveryOptions = () => {\r\n const isExpandOptionsState = this.state.isFilterExpanded;\r\n this.setState({\r\n isFilterExpanded: !isExpandOptionsState\r\n });\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onKeyDown = async (event: React.KeyboardEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\nimport { IStoreSelectorLocationLineItemResources } from '../../find-store-worldwide';\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (\r\n startDay: DayType,\r\n endDay: DayType,\r\n hoursInfo: string,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\r\n };\r\n};\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return resources.closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom}–${openTo}`;\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\r\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\r\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\r\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\r\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { OrgUnitContact, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\r\nimport { IStoreSelectorLocationLineItemProps, IStoreSelectorLocationLineItemResources } from '../../find-store-worldwide';\r\n\r\n// /**\r\n// * Store Locator line item resources.\r\n// */\r\n// export interface IStoreSelectorLocationLineItemResources {\r\n// storeHoursHeader: string;\r\n// closedText: string;\r\n// storeLabelRetailer: string;\r\n// storeLabelVenchi: string;\r\n// goToStoreWebPage: string;\r\n\r\n// days: {\r\n// monday: string;\r\n// tuesday: string;\r\n// wednesday: string;\r\n// thursday: string;\r\n// friday: string;\r\n// saturday: string;\r\n// sunday: string;\r\n// mondayFull: string;\r\n// tuesdayFull: string;\r\n// wednesdayFull: string;\r\n// thursdayFull: string;\r\n// fridayFull: string;\r\n// saturdayFull: string;\r\n// sundayFull: string;\r\n// };\r\n// }\r\n\r\n// /**\r\n// * Store Locator line item props.\r\n// */\r\n// export interface IStoreSelectorLocationLineItemProps {\r\n// location: OrgUnitLocation;\r\n// storeHours?: StoreHours;\r\n\r\n// // hideStockStatus?: boolean;\r\n// // isInStock?: boolean;\r\n// // isCurrentLocation?: boolean;\r\n\r\n// resources: IStoreSelectorLocationLineItemResources;\r\n// // stockStatusLabel?: string;\r\n// // storeLocatorView?: boolean;\r\n// // isPreferredStoreEnabled?: boolean;\r\n// index: string;\r\n// // preferredStoreLocationId: string | null;\r\n// // storePickUpOptionList?: DeliveryOption[];\r\n// // productPickUpOptionList?: DeliveryOption[];\r\n// // filteredPickupMode?: string;\r\n// // shouldShowIndex?: boolean;\r\n// baseUrl?: string;\r\n// shouldShowStorePageLinks?: boolean;\r\n// storePageLinksCountries?: string[];\r\n// baseClassName?: string;\r\n\r\n// /**\r\n// * The telemetry content.\r\n// */\r\n// telemetryContent?: ITelemetryContent;\r\n// preferredDistanceUnit: string;\r\n// isLocationDisabled?: boolean;\r\n// // handlers: {\r\n// // onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n// // onSetAsPreferredStore(locationId: string | undefined): void;\r\n// // onRemovePreferredStore(): void;\r\n// // };\r\n// }\r\n\r\nconst hasStoreHoursInfo = (storeHours: StoreHours | undefined, location: OrgUnitLocation): boolean => {\r\n if (storeHours?.RegularStoreHours || (location.OpenFrom && location.OpenTo)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Function to render store hours.\r\n * @param storeHours - Store Hours object.\r\n * @param location - Store Unit.\r\n * @param resources - Resources.\r\n * @returns - Jsx element.\r\n */\r\nexport const renderStoreHours = (\r\n storeHours: StoreHours | undefined,\r\n location: OrgUnitLocation,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): JSX.Element | null => {\r\n // First, use the store hours. This will allow listing day by day houts\r\n if (storeHours?.RegularStoreHours) {\r\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\r\n return (\r\n \r\n \r\n \r\n {\r\n //TODO LOCALIZE\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {storeHoursList.map(displayTime => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DayHours
\r\n {displayTime.endDayShort ? (\r\n <>\r\n {displayTime.startDayShort}–\r\n {displayTime.endDayShort}\r\n \r\n ) : (\r\n {displayTime.startDayShort}\r\n )}\r\n {displayTime.timeRange}
\r\n );\r\n // return (\r\n //
\r\n // {storeHoursList.map(displayTime => (\r\n //
\r\n // {displayTime.endDayShort ? (\r\n //
\r\n // {displayTime.startDayShort}–\r\n // {displayTime.endDayShort}\r\n //
\r\n // ) : (\r\n //
\r\n // {displayTime.startDayShort}\r\n //
\r\n // )}\r\n //
{displayTime.timeRange}
\r\n //
\r\n // ))}\r\n //
\r\n // );\r\n }\r\n\r\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\r\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\r\n\r\n return (\r\n
\r\n {storeOpenFrom}-{storeOpenTo}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Function to return distance measure unit.\r\n * @param distance - Store location within radius.\r\n * @param preferredDistanceUnit - Unit configuration.\r\n * @param isLocationDisabled - Flag to check user location.\r\n * @returns - Unit of distance.\r\n */\r\nexport const buildDistanceString = (\r\n distance: number | undefined,\r\n preferredDistanceUnit: string,\r\n isLocationDisabled?: boolean\r\n): string | undefined => {\r\n if (distance === undefined || isLocationDisabled) {\r\n return undefined;\r\n } else if (distance < 1) {\r\n return `(<1 ${preferredDistanceUnit})`;\r\n }\r\n return `(${Math.floor(distance)} ${preferredDistanceUnit})`;\r\n};\r\n\r\n/**\r\n * Function to store contact.\r\n * @param contacts - Store location within radius.\r\n * @returns - Return primary contact number of store.\r\n */\r\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n\r\n if (ArrayExtensions.hasElements(allPhoneContacts)) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n return primaryPhoneContact.Locator;\r\n }\r\n\r\n return allPhoneContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport function formatAddress(location: OrgUnitLocation): string {\r\n const addressParts = [];\r\n\r\n // Street and Street Number\r\n if (location.Street || location.StreetNumber) {\r\n addressParts.push(`${location.Street || ''} ${location.StreetNumber || ''}`.trim());\r\n }\r\n\r\n // District and Building Compliment\r\n const districtBuildingParts = [];\r\n if (location.DistrictName) {\r\n districtBuildingParts.push(location.DistrictName);\r\n }\r\n if (location.BuildingCompliment) {\r\n districtBuildingParts.push(location.BuildingCompliment);\r\n }\r\n if (districtBuildingParts.length > 0) {\r\n addressParts.push(districtBuildingParts.join(', '));\r\n }\r\n\r\n // City, County, State\r\n const cityCountyStateParts = [];\r\n if (location.City) {\r\n cityCountyStateParts.push(location.City);\r\n }\r\n if ((location.State || location.StateName) && !(location.Country === 'ITA')) {\r\n cityCountyStateParts.push(location.State || location.StateName);\r\n }\r\n if (cityCountyStateParts.length > 0) {\r\n addressParts.push(cityCountyStateParts.join(', '));\r\n }\r\n\r\n // Zipcode\r\n if (location.Zip) {\r\n addressParts.push(location.Zip);\r\n }\r\n\r\n // Country\r\n if (location.Country) {\r\n addressParts.push(location.Country);\r\n }\r\n\r\n return addressParts.join('\\n');\r\n}\r\n/**\r\n * Renders store location line items.\r\n * @param props - Store location line items props.\r\n * @returns - HTML.\r\n */\r\nconst storeSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\r\n const {\r\n location,\r\n resources,\r\n storeHours,\r\n index,\r\n isLocationDisabled,\r\n storePageLinksCountries,\r\n shouldShowStorePageLinks,\r\n baseUrl,\r\n baseClassName\r\n } = props;\r\n\r\n var storeName: string | undefined = location.OrgUnitName;\r\n const retailer = storeName?.startsWith('R ') ? true : false;\r\n if (storeName && retailer) {\r\n storeName = storeName.slice(2);\r\n }\r\n const storeUrl = storeName\r\n ?.toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const distanceAsString: string | undefined = buildDistanceString(location.Distance, props.preferredDistanceUnit, isLocationDisabled);\r\n const storeAddress: string = formatAddress(location);\r\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\r\n const displayStoreHours = hasStoreHoursInfo(storeHours, location);\r\n const parentClassName = baseClassName ? baseClassName : 'ms-store-select-venchi__location-line-item';\r\n\r\n const urlStorePage = (): JSX.Element | null => {\r\n if (!retailer && shouldShowStorePageLinks && location.Country && storePageLinksCountries?.includes(location.Country)) {\r\n return (\r\n
\r\n \r\n \r\n {resources.goToStoreWebPage}\r\n \r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n /* eslint-disable prettier/prettier */\r\n return (\r\n
\r\n
\r\n

\r\n {`${\r\n retailer ? resources.storeLabelRetailer : resources.storeLabelVenchi\r\n } ${index}`}\r\n {distanceAsString ? {distanceAsString} : false}\r\n

\r\n

{storeName}

\r\n
\r\n
\r\n
\r\n {storeAddress && (\r\n
\r\n \r\n {storeAddress}\r\n
\r\n )}\r\n {phoneNumber && (\r\n
\r\n \r\n {phoneNumber}\r\n
\r\n )}\r\n {urlStorePage()}\r\n
\r\n {displayStoreHours && (\r\n
\r\n

{resources.storeHoursHeader}

\r\n {renderStoreHours(storeHours, location, resources)}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Store location line item component.\r\n */\r\nexport const StoreSelectorLocationLineItemComponent = storeSelectorLocationLineItem as (\r\n props: IStoreSelectorLocationLineItemProps\r\n) => JSX.Element;\r\n","/* eslint-disable security/detect-object-injection */\r\n/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { IFindStoreWorldwideResources } from '../find-store-worldwide.props.autogenerated';\r\nimport { StoreSelectorLocationLineItemComponent } from './find-store-worldwide-location-line-item';\r\nimport { IStoreSelectorLocationLineItemResources } from '../find-store-worldwide';\r\n\r\n/**\r\n * Store selector location lines props interface.\r\n */\r\nexport interface IStoreSelectorLocationLinesProps {\r\n locations?: IFullOrgUnitAvailability[];\r\n resources: IFindStoreWorldwideResources;\r\n preferredDistanceUnit?: string;\r\n\r\n alreadySelectedLocation?: OrgUnitLocation;\r\n outOfStockThreshold: number;\r\n enableOutOfStockCheck: boolean;\r\n storeLocatorView?: boolean;\r\n selectedStoreLocationId?: string;\r\n isPreferredStoreEnabled?: boolean;\r\n displayList?: boolean;\r\n isLocationDisabled?: boolean;\r\n productPickUpDeliveryOptions?: DeliveryOption[];\r\n onClick: (locationId: string | undefined) => void;\r\n preferredStoreLocationId: string | null;\r\n onSetAsPreferredStore: (locationId: string | undefined) => void;\r\n onRemovePreferredStore: () => void;\r\n filteredPickupMode?: string;\r\n shouldShowIndex?: boolean;\r\n baseUrl?: string;\r\n shouldShowStorePageLinks?: boolean;\r\n storePageLinksCountries?: string[];\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onLocationSelected(location: OrgUnitLocation | undefined): void;\r\n}\r\n\r\n/**\r\n * Displays all the location line items, or null if none exists.\r\n */\r\n@observer\r\nexport class StoreSelectorLocationLines extends React.PureComponent {\r\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\r\n\r\n private readonly selectedLocationRef: React.RefObject;\r\n\r\n private storeCounter: number;\r\n\r\n public constructor(props: IStoreSelectorLocationLinesProps) {\r\n super(props);\r\n this.selectedLocationRef = React.createRef();\r\n this.storeCounter = 0;\r\n }\r\n\r\n public componentDidUpdate(previousProps: IStoreSelectorLocationLinesProps): void {\r\n if (this.props.selectedStoreLocationId !== previousProps.selectedStoreLocationId) {\r\n this._scrollIntoView();\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n\r\n reaction(\r\n () => this.props.locations,\r\n () => {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!ArrayExtensions.hasElements(this._stores)) {\r\n return null;\r\n }\r\n\r\n this.storeCounter = 0;\r\n\r\n return (\r\n
\r\n {this._stores.map((store, index) => {\r\n return this._renderStoreLocation(store, index);\r\n })}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * On click Handler function.\r\n * @param orgUnitLocation -OrgUnit location.\r\n * @returns Click action on orgUnit Location.\r\n */\r\n private readonly onClickHandler = (orgUnitLocation: OrgUnitLocation | undefined) => () => {\r\n this.props.onClick(orgUnitLocation?.OrgUnitNumber);\r\n };\r\n\r\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number): JSX.Element | undefined {\r\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\r\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\r\n // const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\r\n const defaultAriaSetsize = 0;\r\n if (orgUnitLocation) {\r\n ++this.storeCounter;\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sort store.\r\n * @param stores - Array of stores data.\r\n * @returns Sorted stores array.\r\n */\r\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\r\n /**\r\n * IsPreferredStore.\r\n * @param value - Array of stores data.\r\n * @returns IsPreferred store boolean value.\r\n */\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\r\n this.props.isPreferredStoreEnabled &&\r\n this.props.preferredStoreLocationId &&\r\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\r\n\r\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\r\n }\r\n\r\n /**\r\n * Scroll into view.\r\n */\r\n private readonly _scrollIntoView = () => {\r\n const selectedLocationDiv = this.selectedLocationRef.current;\r\n const parent = selectedLocationDiv?.parentElement;\r\n if (selectedLocationDiv && parent) {\r\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop;\r\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\r\n }\r\n }\r\n };\r\n\r\n // /**\r\n // * Is current location.\r\n // * @param location - Org unit location.\r\n // * @returns The current location.\r\n // */\r\n // private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean =>\r\n // (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) ||\r\n // false;\r\n\r\n // /**\r\n // * Check the product is in stock or not.\r\n // * @param itemAvailabilities - Item availabilities.\r\n // * @returns If the product is in stock.\r\n // */\r\n // private readonly _isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\r\n // if (!this.props.enableOutOfStockCheck) {\r\n // return true;\r\n // }\r\n\r\n // if (ArrayExtensions.hasElements(itemAvailabilities)) {\r\n // return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > 0 : false;\r\n // }\r\n\r\n // return false;\r\n // };\r\n\r\n // /**\r\n // * Get the stock inventory label.\r\n // * @param availabilityWithHours - Full org unit availability.\r\n // * @returns The stock label.\r\n // */\r\n // private readonly _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n // if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\r\n // for (let i = 0; i < availabilityWithHours.ProductInventoryInformation.length; i++) {\r\n // if (\r\n // availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\r\n // availabilityWithHours.ProductInventoryInformation[i].InventLocationId\r\n // ) {\r\n // return availabilityWithHours.ProductInventoryInformation[i].StockLevelLabel;\r\n // }\r\n // }\r\n // }\r\n\r\n // return undefined;\r\n // };\r\n\r\n /**\r\n * Map resources.\r\n * @param resources - Store resources.\r\n * @returns Resources.\r\n */\r\n private readonly _mapResources = (resources: IFindStoreWorldwideResources): IStoreSelectorLocationLineItemResources => {\r\n return {\r\n storeHoursHeader: resources.timeText,\r\n closedText: resources.storeHoursClosedText,\r\n storeLabelRetailer: resources.storeLabelRetailer,\r\n storeLabelVenchi: resources.storeLabelVenchi,\r\n goToStoreWebPage: resources.goToStoreWebPage,\r\n\r\n days: {\r\n monday: resources.storeHoursMondayText,\r\n tuesday: resources.storeHoursTuesdayText,\r\n wednesday: resources.storeHoursWednesdayText,\r\n thursday: resources.storeHoursThursdayText,\r\n friday: resources.storeHoursFridayText,\r\n saturday: resources.storeHoursSaturdayText,\r\n sunday: resources.storeHoursSundayText,\r\n mondayFull: resources.storeHoursMondayFullText,\r\n tuesdayFull: resources.storeHoursTuesdayFullText,\r\n wednesdayFull: resources.storeHoursWednesdayFullText,\r\n thursdayFull: resources.storeHoursThursdayFullText,\r\n fridayFull: resources.storeHoursFridayFullText,\r\n saturdayFull: resources.storeHoursSaturdayFullText,\r\n sundayFull: resources.storeHoursSundayFullText\r\n }\r\n };\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n KeyCodes,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { CustomInput } from 'reactstrap';\r\n\r\n/**\r\n * Store Selector Search Form Props interface.\r\n */\r\nexport interface IStoreSelectorSearchFormProps {\r\n resources: {\r\n searchInputAriaLabel: string;\r\n searchButtonAriaLabel: string;\r\n searchPlaceholderText: string;\r\n viewListText: string;\r\n viewMapText: string;\r\n includeRetailersButtonLabel: string;\r\n pickupFilterByHeading?: string;\r\n pickupFilterMenuHeading?: string;\r\n };\r\n\r\n id: string;\r\n value: string;\r\n displayIncludeRetailersButton: boolean;\r\n isMapDisabled?: boolean;\r\n showAllStores?: boolean;\r\n displayRetailers?: boolean;\r\n displayList?: boolean;\r\n locatorView?: boolean;\r\n locationsMessage?: React.ReactNode;\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onShowAllStores(): void;\r\n onDisplayRetailers(displayRetailersValue: boolean): void;\r\n onToggleListMapViewState(): void;\r\n performSearch(searchTerm: string): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n}\r\n\r\n/**\r\n * Simple search form consisting of search text and a search button.\r\n */\r\nexport class StoreSelectorSearchForm extends React.PureComponent {\r\n private readonly searchBoxRef: React.RefObject = React.createRef();\r\n private readonly searchSectionRef: React.RefObject = React.createRef();\r\n\r\n private readonly storeSearchAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n // private readonly showAllStoreAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private previousValue: string = '';\r\n\r\n private isSearchResultOpened: boolean = false;\r\n\r\n public constructor(props: IStoreSelectorSearchFormProps) {\r\n super(props);\r\n this.state = { value: '' };\r\n // this._handleKeyPressPrev = this._handleKeyPressPrev.bind(this);\r\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.SearchStore);\r\n this.storeSearchAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ShowAllStore;\r\n // this.showAllStoreAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ToggleMapView;\r\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n private setScrollPositionToSearch = () => {\r\n if (this.searchSectionRef.current?.offsetParent) {\r\n window.scrollTo({\r\n //@ts-ignore\r\n top: this.searchSectionRef.current.offsetParent.offsetTop - 48,\r\n behavior: 'auto'\r\n });\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const {\r\n resources: { searchButtonAriaLabel, searchPlaceholderText, viewListText, viewMapText, includeRetailersButtonLabel },\r\n id,\r\n value,\r\n isMapDisabled,\r\n // showAllStores,\r\n displayList,\r\n displayRetailers,\r\n // onShowAllStores,\r\n onDisplayRetailers,\r\n locatorView,\r\n locationsMessage,\r\n displayIncludeRetailersButton\r\n } = this.props;\r\n\r\n const toggleButtonText = displayList ? viewMapText : viewListText;\r\n\r\n const onDisplayAllRetailersInternal = (event: React.ChangeEvent) => {\r\n const isChecked = event.target.checked;\r\n onDisplayRetailers(isChecked);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Handles the key press on the input box.\r\n * @param event - Event object.\r\n */\r\n private readonly _handleInputKeyPress = (event: React.KeyboardEvent): void => {\r\n // When the user navigates through the up and down arrow on the result returned by the auto suggest and press enter.\r\n // At that time, two requests were made to fetch the store details due to which incorrect result is shown and causes flickering.\r\n // In order to avoid that. Checking if the search result is open or not.\r\n if (event.keyCode === KeyCodes.ArrowUp || event.keyCode === KeyCodes.ArrowDown) {\r\n const activeDescedantValue = (event.target as HTMLInputElement).getAttribute('aria-activedescendant');\r\n if (activeDescedantValue) {\r\n if (this.previousValue === '') {\r\n this.previousValue = activeDescedantValue;\r\n this.isSearchResultOpened = true;\r\n return;\r\n }\r\n\r\n if (activeDescedantValue !== this.previousValue) {\r\n this.previousValue = activeDescedantValue;\r\n this.isSearchResultOpened = true;\r\n } else {\r\n this.isSearchResultOpened = false;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // /**\r\n // * Calls method display result.\r\n // * @param event - The first number.\r\n // */\r\n // private readonly _handleKeyPressPrev = (event: React.KeyboardEvent): void => {\r\n // if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {\r\n // this.props.onShowAllStores();\r\n // }\r\n // };\r\n\r\n /**\r\n * Method called on search text changed.\r\n * @param event - Input value.\r\n */\r\n private readonly _searchTextChanged = async (event: React.ChangeEvent): Promise => {\r\n const inputValue: string = event.target.value;\r\n\r\n await this.props.searchTermChanged(inputValue);\r\n };\r\n\r\n /**\r\n * Method called on search submit.\r\n * @param event - Input value.\r\n */\r\n private readonly _onSubmit = async (event: React.SyntheticEvent): Promise => {\r\n event.preventDefault(); // Prevents form submission\r\n this.searchBoxRef.current?.blur();\r\n if (!this.isSearchResultOpened) {\r\n await this.props.performSearch(this.props.value);\r\n }\r\n this.isSearchResultOpened = false;\r\n };\r\n\r\n /**\r\n * Method to render pickup mode list.\r\n * @param props - Store selector search form props.\r\n * @param toggleButtonText - Locator view button text.\r\n * @param locatorView - Locator View is on\\off.\r\n * @param shouldDisplayList - Display List.\r\n * @returns Jsx component.\r\n */\r\n private readonly renderToggleMapButton = (\r\n props: IStoreSelectorSearchFormProps,\r\n toggleButtonText: string,\r\n locatorView: boolean | undefined,\r\n shouldDisplayList?: boolean\r\n ): JSX.Element | null => {\r\n const handleButtonClick = () => {\r\n this.setScrollPositionToSearch();\r\n props.onToggleListMapViewState();\r\n };\r\n const toggleButtonClass = shouldDisplayList ? 'view-map' : 'list-view';\r\n if (locatorView) {\r\n return (\r\n \r\n {toggleButtonText}\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IFindStoreWorldwideResources, ITermsOfServiceLinkData } from '../find-store-worldwide.props.autogenerated';\r\n\r\nexport interface IStoreSelectorEmptyMessageProps {\r\n resources: IFindStoreWorldwideResources;\r\n}\r\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\r\n
\r\n

{resources.emptyLocationsText}

\r\n
\r\n);\r\n\r\nexport const StoreSelectorWaiting: React.FC = () => (\r\n
\r\n);\r\n\r\nexport interface IStoreSelectorTermsOfServiceProps {\r\n link?: ITermsOfServiceLinkData;\r\n requestContext: Msdyn365.IRequestContext;\r\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\r\n if (link) {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-store-select-venchi__terms-link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link'\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport interface IStoreSelectorFoundLocationsMessage {\r\n resources: IFindStoreWorldwideResources;\r\n locations?: IFullOrgUnitAvailability[];\r\n includeRetailers: boolean;\r\n forSearchBar: boolean;\r\n shouldDisplayLabel: boolean;\r\n}\r\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({\r\n locations,\r\n resources,\r\n includeRetailers,\r\n forSearchBar,\r\n shouldDisplayLabel\r\n}) => {\r\n if (locations) {\r\n const countRetailers: number = locations.filter(loc => {\r\n return loc.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName?.startsWith('R ') ? true : false;\r\n }).length;\r\n const countVenchiStores: number = locations.length - countRetailers;\r\n return (\r\n \r\n {includeRetailers\r\n ? resources.storeAndRetailersAllCountMessage\r\n .replace('{count}', countVenchiStores.toString())\r\n .replace('{countRetailers}', countRetailers.toString())\r\n : resources.storeAllCountMessage.replace('{count}', countVenchiStores.toString())}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n NodeTag,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { buildDistanceString } from '../find-store-worldwide-location-line-item';\r\n\r\n/**\r\n * Store Locator line item resources.\r\n */\r\nexport interface ISelectedStoreResources {\r\n closedText: string;\r\n}\r\n\r\n/**\r\n * Store Selector resources.\r\n */\r\nexport interface ISelectedStoreProps {\r\n className?: string;\r\n shouldHideStockStatus?: boolean;\r\n isCurrentLocation?: boolean;\r\n isInStock?: boolean;\r\n selectedStore?: IFullOrgUnitAvailability;\r\n resources: ISelectedStoreResources;\r\n stockStatusLabel?: string;\r\n isLocationDisabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n preferredDistanceUnit: string;\r\n storeRenderedComponent?: React.ReactNode;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n onSetAsPreferredStore(locationId: string | undefined): void;\r\n onRemovePreferredStore(): void;\r\n closeStoreDetailsModal(): Promise;\r\n };\r\n}\r\n\r\n/**\r\n * Store Selector resources.\r\n */\r\nexport interface ISelectedStoreViewProps {\r\n isCurrentLocation?: boolean;\r\n canSelectLocation?: boolean;\r\n selectedStore?: IFullOrgUnitAvailability;\r\n deliveryOptions?: DeliveryOption[];\r\n resources: ISelectedStoreResources;\r\n storeRenderedComponent: React.ReactNode;\r\n storeDetailsMain: INodeProps;\r\n storeHeader: INodeProps;\r\n storeName: React.ReactNode;\r\n storeDistance: React.ReactNode;\r\n storeDetailsAvailabilityContainer: INodeProps;\r\n currentLocation: React.ReactNode;\r\n storeDetailsCloseButton?: React.ReactNode;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n };\r\n}\r\n\r\n/**\r\n * On store details close functionality.\r\n * @param props -Store locator location items.\r\n * @returns Void promise.\r\n */\r\nconst storeDetailsModalHandler = (props: ISelectedStoreProps) => async (): Promise => {\r\n await props.handlers.closeStoreDetailsModal();\r\n};\r\n\r\n/**\r\n * Renders selected store details.\r\n * @param props - Store location details props.\r\n * @returns - Selected Store view props.\r\n */\r\nconst selectedStoreDetails = (props: ISelectedStoreProps): ISelectedStoreViewProps => {\r\n const {\r\n className,\r\n shouldHideStockStatus,\r\n isCurrentLocation,\r\n isInStock,\r\n selectedStore,\r\n resources,\r\n isLocationDisabled,\r\n telemetryContent,\r\n preferredDistanceUnit,\r\n storeRenderedComponent\r\n } = props;\r\n\r\n const parentClassName = className ? className : 'ms-store-select-venchi__map__selected_store';\r\n const storeName: string | undefined = selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName;\r\n const location = selectedStore?.OrgUnitAvailability?.OrgUnitLocation;\r\n const distanceAsString: string | undefined = buildDistanceString(location?.Distance, preferredDistanceUnit, isLocationDisabled);\r\n // eslint-disable-next-line no-nested-ternary -- Required to check stock Label\r\n const canSelectLocation = !shouldHideStockStatus && isInStock;\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\r\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\r\n\r\n const viewProps: ISelectedStoreViewProps = {\r\n storeRenderedComponent,\r\n selectedStore,\r\n isCurrentLocation,\r\n canSelectLocation,\r\n resources,\r\n storeDetailsMain: {\r\n tag: 'div' as NodeTag,\r\n className: `${parentClassName}__main`\r\n },\r\n storeHeader: {\r\n tag: 'div' as NodeTag,\r\n className: `${parentClassName}__header`\r\n },\r\n storeName: {storeName},\r\n storeDetailsCloseButton: \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n {buyAgainButton}\r\n \r\n);\r\n\r\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count, trackingInfo, shippedStatusCheck }) => (\r\n \r\n {heading}\r\n {count}\r\n {/* shippedStatusCheck === 'shipped' ? null : trackingInfo */}\r\n \r\n);\r\n\r\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\r\n \r\n {salesLine.salesStatus}\r\n \r\n ))}\r\n \r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nconst _renderCustomTaxLine = (taxAmount: number): JSX.Element | null => {\r\n //const { estimatedTaxLabel, yetToBeCalculatedText} = props.resources;\r\n\r\n return (\r\n
\r\n

\r\n Tax\r\n \r\n \r\n {taxAmount}\r\n \r\n \r\n

\r\n
\r\n );\r\n};\r\n\r\nexport const OrderSummary: React.FC = ({\r\n orderSummaryProps,\r\n heading,\r\n subtotal,\r\n shipping,\r\n tax,\r\n totalAmount,\r\n earnedPoints,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const locale = other.locale;\r\n // @ts-ignore\r\n const taxAmount = other.taxAmount;\r\n\r\n return (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {locale.toLowerCase() == 'en-gb' && taxAmount > 0 ? _renderCustomTaxLine(taxAmount) : tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n );\r\n};\r\n\r\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderDetailsView: React.FC> = ({\r\n salesOrder,\r\n moduleProps,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n resources\r\n}) => {\r\n // prettier-ignore\r\n // @ts-ignore\r\n const customTrackingNumber = salesOrder?.ExtensionProperties?.filter((tracking: { Key: string }) => tracking.Key === 'trackingId_CAP')[0]?.Value.StringValue;\r\n // prettier-ignore\r\n // @ts-ignore\r\n const customTrackingStatus = salesOrder?.ExtensionProperties?.filter((tracking: { Key: string }) => tracking.Key === 'trakingStatus_CAP')[0]?.Value.StringValue;\r\n const locale = moduleProps.moduleProps.context.request.locale;\r\n // @ts-ignore\r\n const salesOrderData = moduleProps?.moduleProps?.data?.orderHydration?.result?.salesOrder;\r\n const taxAmount = salesOrderData?.TaxAmount;\r\n const extraOrdersSummaryEu = {\r\n locale: locale,\r\n taxAmount: taxAmount\r\n };\r\n\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {groups && }\r\n \r\n {orderSummary && }\r\n {payment && }\r\n \r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
\n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
\n
\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
\n \n {errorMessage}\n {products}\n \n {pagination}\n
\n
\n
\n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

\n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

\n
\n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\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 { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\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 { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../../definition-extensions/navigation-menu.ext.props.autogenerated';\n\n/**\n * INavigationMenuViewRootProps.\n */\nexport interface INavigationMenuViewRootProps {\n navProps: INavigationMenuViewProps & INavigationMenuProps<{}>;\n}\n\n/**\n * Represent navigation menu state interface.\n */\nexport interface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: Msdyn365.IImageData[] | null;\n mobileViewLabelText?: string;\n drawerKeyValue: Msdyn365.IDictionary;\n isOnlyMobile: boolean;\n isNavOpen: boolean;\n}\n\n/**\n * NavMenuConstants enum.\n */\nexport enum NavMenuConstants {\n zero = 0,\n one = 1,\n two = 2,\n three = 3,\n four = 4,\n escapeKey = 27,\n rootMenu = 1\n}\n\n/**\n * GridSizes.\n */\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Get category image.\n * @param props - Navigation menu props.\n * @param categoryImage - Category Image.\n * @param alttext - AltText String.\n * @returns Returns Node.\n */\nexport const getCategoryImage = (props: INavigationMenuViewRootProps, categoryImage: string, alttext: string): React.ReactNode | null => {\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, props.navProps.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n sm: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n md: { q: 'w=203&h=203&m=8', w: 0, h: 0 },\n lg: { q: 'w=203&h=203&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const imageData: Msdyn365.IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n};\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 { IMenuItemData, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootDisabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootDisabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n\n this.state = {\n activeMenu: 1,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = 1;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: 1,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = 1;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props.navProps;\n\n return (\n \n \n {this._renderDisplay()}\n
\n
\n
\n
\n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n const menuItemData: IMenuItemData[] = this.props.navProps.menuItemData;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (ArrayExtensions.hasElements(menuItemData)) {\n menuItemData[0].id = 1;\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n const menuItem = this._getFromSubMenu(undefined, menuItemData);\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of menuItemData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
\n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(parentMenuId?: number, menu?: IMenuItemData[]): IMenuItemData | null {\n if (!menu) {\n return null;\n }\n\n for (let index = 0; index <= menu.length - NavMenuConstants.one; index++) {\n const item: IMenuItemData = menu[Number(index)];\n\n if (item.id === this.state.activeMenu) {\n if (!NavigationMenuRootDisabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: item.linkText });\n }\n return item;\n }\n const found = this._getFromSubMenu(item.id, item.subMenu);\n if (found) {\n return found;\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL && !(this.state.isOnlyMobile && this.state.activeMenu !== undefined)) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
\n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
\n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootDisabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootDisabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootDisabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootDisabled;\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 { IMenuItemData, MenuSource, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootEnabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootEnabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private menuItemData: IMenuItemData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n this.state = {\n activeMenu: NavMenuConstants.rootMenu,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n this._addShopAllLink();\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = NavMenuConstants.one;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: NavMenuConstants.rootMenu,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = NavMenuConstants.one;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { Navigation } = this.props.navProps;\n return (\n \n \n {this._renderDisplay()}\n
\n
\n
\n
\n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n let menuItemData: IMenuItemData[] = [];\n if (this.state.isOnlyMobile) {\n menuItemData = this.menuItemData;\n } else {\n menuItemData = this.props.navProps.menuItemData;\n }\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n let cmsMenuData: IMenuItemData[] | undefined = [];\n let retailMenuItemData: IMenuItemData[] | undefined = [];\n const retailMenuData = JSON.parse(JSON.stringify(menuItemData)) as IMenuItemData[];\n\n for (const item of retailMenuData) {\n retailMenuItemData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n item.subMenu = retailMenuItemData;\n }\n\n for (const item of menuItemData) {\n cmsMenuData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id < MenuTypeIndexId.Retail);\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n let menuItem: IMenuItemData | null = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({\n parentMenu: undefined\n });\n } else {\n this.setState({\n parentMenu: undefined,\n mobileViewLabelText: menuItemDatum.linkText\n });\n }\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum);\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of retailMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
\n );\n }\n\n for (const [index, item] of cmsMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item?.subMenu;\n if (subMenus && ArrayExtensions.hasElements(subMenus)) {\n for (let index = 0; index <= subMenus.length - NavMenuConstants.one; index++) {\n const subMenu: IMenuItemData = subMenus[Number(index)];\n let parentMenuId = item?.id;\n\n if (subMenu.id === this.state.activeMenu) {\n if (parentMenuId === NavMenuConstants.rootMenu && subMenu.id! < MenuTypeIndexId.Retail) {\n parentMenuId = undefined;\n }\n\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: subMenu.linkText });\n }\n return subMenu;\n }\n const found = this._getFromSubMenu(subMenu);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel - NavMenuConstants.one) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
\n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
\n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootEnabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootEnabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Add shop all link for Mobile submenu.\n */\n private readonly _addShopAllLink = (): void => {\n const { menuItemData } = this.props.navProps;\n this.menuItemData = menuItemData;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n this.menuItemData[0].subMenu?.map(item => {\n const shopAllObject = {};\n Object.assign(shopAllObject, { imageSource: item.imageSource });\n Object.assign(shopAllObject, { linkText: this.props.navProps.resources.allCategoryMenuText });\n Object.assign(shopAllObject, { linkURL: item.linkURL });\n if (ArrayExtensions.hasElements(item.subMenu) && item.menuSource === MenuSource.Retail) {\n item.subMenu.unshift(shopAllObject);\n }\n return item;\n });\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootEnabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootEnabled;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../definition-extensions/navigation-menu.ext.props.autogenerated';\nimport NavigationMenuRootDisabled from './components/navigation-menu-root-disabled';\nimport NavigationMenuRootEnabled from './components/navigation-menu-root-enabled';\n\n/**\n * Render the Navigation menu.\n * @param props - The navigation menu view props.\n * @returns Return HTML having INavigationMenuViewProps props with navigation menu.\n */\nconst navigationMenuView = (props: INavigationMenuViewProps & INavigationMenuProps<{}>): JSX.Element => {\n if (props.config.enabletopMenu) {\n return ;\n }\n\n return ;\n};\n\nexport default navigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
\n
{this.props.promoCodeHeadingText}
\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

\n {this.state.error}\n

\n {this._renderAppliedPromoCode(this.props)}\n
\n );\n }\n\n /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
\n
\n \n \n
\n
\n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\n */\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') ?? '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n /**\n * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
\n
\n {'Code '}\n {coupon.Code}\n {'Applied '}\n
\n \n
\n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n"],"names":["componentClassName","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","msdyn365Commerce","createComponent","component","props","_props$resources$deta","_props$resources","_props$resources$deta2","_props$resources2","_props$resources$list","_props$resources3","_props$resources$list2","_props$resources4","viewModeState","setViewModeState","React","currentViewModeState","onClickHandler","newViewModeState","onClick","viewModeDetailedViewAttributes","getTelemetryAttributes","telemetryContent","getPayloadObject","TelemetryConstant","ViewMode","viewModeListViewAttributes","className","classnames","Button","Object","assign","DetailedView","resources","detailedViewOptionAriaLabel","title","role","ListView","listViewOptionAriaLabel","TabItemType","TabItem","constructor","super","moduleContentClassName","moduleHeaderClassName","this","_renderTabHeader","bind","render","slots","renderView","config","data","isSelected","itemIndex","index","contentID","getContentID","tabId","activeContentIDResult","activeTabState","result","shown","undefined","activeContentIndex","_objectSpread","TabContentContainer","moduleProps","TabHeaderContainer","TabItemContent","tag","tabIndex","id","tabHeader","tabSlots","tabItemTitle","__decorate","observer","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","viewport","context","request","device","Type","navigationMenuSource","state","isMobile","menuItemList","locale","nameTranslations","nameTranslation","length","find","item","Language","toLowerCase","Text","componentDidMount","MsDyn365","isBrowser","resizeThrottledEventHandler","addThrottledEvent","window","componentWillUnmount","removeEventListener","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","telemetry","error","viewProps","imageSettings","viewports","xs","q","w","h","xl","lazyload","gridSettings","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","Link","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","map","push","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","linkText","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","filter","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","Name","_NavigationMenu$getFr","_NavigationMenu$getFr2","ArrayExtensions","hasElements","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","promotionalContent","menuSource","MenuSource","Retail","ariaLabel","CMSItemIdInit","linkUrl","destinationUrl","imageDestinationURL","imageLink","image","src","_getCMSNestedChildren","Cms","shouldOpenNewTab","openInNewTab","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","setState","innerWidth","sm","md","lg","MenuTypeIndexId","observable","computed","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","option","promotionalImage","altText","imageSrc","promotionalItemImageSettings","text","additionalProperties","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","event","menuNode","current","contains","target","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_ref","_categoryImage$imageS","generateImageUrl","actionContext","requestContext","apiSettings","Image","categoryImageSettings","loadFailureBehavior","menuItemRef","getTelemetryObject","telemetryPageName","friendlyName","payLoad","document","body","addEventListener","componentDidUpdate","_this$menuItemRef$cur","children","focus","Module","Node","ref","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","key","_createMenuItemList","forEach","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","isParent","imagesource","contentAction","etext","attributes","onMouseOver","href","onTelemetryClick","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","heading","TabContainer","tabHeaders","tabContents","headerSection","tabsSection","tabItemContainer","Tab","tabIndexQuery","handleHeadingChange","value","_refHandler","link","activeLink","_onClick","e","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","query","activeTab","queryTabIndex","indexOf","arr","split","Number","parseInt","_getTabHeader","_getTabContent","shouldComponentUpdate","nextProps","nextState","headingComponent","editProps","onEdit","tabViewProps","params","isEditor","dataActionTabId","selected","onKeyDown","tabItemType","TabHeader","TabContent","paramName","paramValue","url","URL","location","requestUrl","URLSearchParams","search","set","decodeURIComponent","secondsToTime","seconds","hours","floor","ampm","divisorForMinutes","getShortTimeString","day","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","get","buildStoreHoursString","closedText","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","buildDistanceString","distance","preferredDistanceUnit","isLocationDisabled","StoreSelectorLocationLineItemComponent","_storeName","_storeName2","storePageLinksCountries","shouldShowStorePageLinks","baseUrl","baseClassName","storeName","OrgUnitName","retailer","startsWith","slice","storeUrl","replace","distanceAsString","Distance","storeAddress","addressParts","Street","StreetNumber","trim","districtBuildingParts","DistrictName","BuildingCompliment","join","cityCountyStateParts","City","State","StateName","Country","Zip","formatAddress","phoneNumber","contacts","allPhoneContacts","contact","ContactTypeValue","IsPrivate","primaryPhoneContact","IsPrimary","Locator","extractPhoneNumber","Contacts","displayStoreHours","hasStoreHoursInfo","RegularStoreHours","OpenFrom","OpenTo","parentClassName","storeLabelRetailer","storeLabelVenchi","includes","rel","goToStoreWebPage","storeHoursHeader","renderStoreHours","scope","displayTime","JSON","stringify","storeOpenFrom","storeOpenTo","StoreSelectorLocationLines","orgUnitLocation","OrgUnitNumber","_scrollIntoView","selectedLocationDiv","selectedLocationRef","parent","parentElement","scrollTop","offsetTop","clientHeight","_mapResources","timeText","storeHoursClosedText","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","storeCounter","previousProps","selectedStoreLocationId","locations","_stores","_sortStores","reaction","show","displayList","store","_renderStoreLocation","_store$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","StoreHours","stores","isPreferredStore","_value$OrgUnitAvailab","isPreferredStoreEnabled","preferredStoreLocationId","StoreSelectorSearchForm","searchBoxRef","searchSectionRef","previousValue","isSearchResultOpened","setScrollPositionToSearch","_this$searchSectionRe","offsetParent","scrollTo","top","behavior","_handleInputKeyPress","KeyCodes","ArrowUp","ArrowDown","activeDescedantValue","getAttribute","_searchTextChanged","async","inputValue","searchTermChanged","_onSubmit","_this$searchBoxRef$cu","preventDefault","blur","performSearch","renderToggleMapButton","toggleButtonText","locatorView","shouldDisplayList","handleButtonClick","onToggleListMapViewState","toggleButtonClass","toggleMapViewAttributes","SearchStore","storeSearchAttributes","ShowAllStore","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","viewListText","viewMapText","includeRetailersButtonLabel","isMapDisabled","displayRetailers","onDisplayRetailers","locationsMessage","displayIncludeRetailersButton","name","autoComplete","onSubmit","type","searchInputAriaLabel","placeholder","onChange","onKeyUp","color","CustomInput","checked","isChecked","label","StoreSelectorEmptyMessage","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","_ref2","onTextChange","editableLink","Msdyn365","StoreSelectorFoundLocationsMessage","_ref3","includeRetailers","forSearchBar","shouldDisplayLabel","countRetailers","loc","_loc$OrgUnitAvailabil","countVenchiStores","storeAndRetailersAllCountMessage","storeAllCountMessage","storeDetailsModalHandler","handlers","closeStoreDetailsModal","SelectedStoreComponent","_selectedStore$OrgUni","_selectedStore$OrgUni2","shouldHideStockStatus","isCurrentLocation","isInStock","selectedStore","storeRenderedComponent","canSelectLocation","PickupInStore","PreferredStore","RemovePreferredStore","storeDetailsMain","storeHeader","storeDetailsCloseButton","storeDistance","storeDetailsAvailabilityContainer","currentLocation","onSelected","searchRadiusUnit","StoreSelector","_this$props$config$de","renderSelectedStore","storeSelectorStateManager","storeLocations","selectedStoreIndex","findIndex","selectedStoreResources","currentUrl","substring","lastIndexOf","storeIndexString","selectedProps","_isCurrentLocation","alreadySelectedLocation","_onOrgUnitLocationSelected","onSetAsPreferredStore","_setPreferredStore","onRemovePreferredStore","_removePreferredStore","_closeStoreDetailModal","displayStorePageLinks","storePageLinksContries","handleLinkTextChange","termsOfServiceLink","onShowAllStoresHandler","_getAndUpdateStoreLocation","filteredPickupMode","onDisplayRetailersHandler","displayRetailersValue","onFilterLocations","_location$OrgUnitPick","OrgUnitPickUpDeliveryModes","DeliveryOptions","some","deliveryOption","Code","_attachMapAutoSuggest","autoSuggestOptions","channel","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","debug","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_preferredStore$OrgUn","_preferredStore$OrgUn2","_preferredStore$OrgUn3","storeId","cookies","availabilitiesWithHours","preferredStore","_store$OrgUnitAvailab2","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","clearPreferredStore","setSelectedStoreLocationId","_setSelectedStore","searchTerm","isSearchInProgress","geoLocate","_updateLocations","latitude","longitude","shouldShowAllStores","_navigator","navigator","geolocation","getCurrentPosition","position","coords","PERMISSION_DENIED","isSeeAllStoreValue","timeout","_closeDialog","_storeSelectorStateMa","parentElementRef","closeDialog","_setOrgUnitStoreInformation","moduleId","input","onLocationSelected","Promise","resolve","preferredLocationId","StoreId","storeLocationList","orgUnitStoreInformation","showMapViewLink","isDialog","product","setOrgUnitStoreInformation","catch","message","retailersLookup","distanceUnitValue","SearchRadiusUnit","kilometers","localLatitude","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","getOrgUnitLocationByArea","calRadius","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByAreaDataAction","deliveryMode","warning","selectedLocation","defaultIncludeRetailers","_this$props$data$stor6","autoSuggestionEnabled","isAutoSuggestionEnabled","_this$props$context","setTimeout","_this$props$data$stor2","isDialogOpen","_this$props$data$stor3","_this$props$data$stor4","_this$props$data$stor5","loadMapApi","BingMapsEnabled","lang","market","_this$props$data$stor7","_this$props$data$stor8","_this$props$context$a","_this$props$data$stor9","when","_this$props$data$stor10","_this$props$data$stor11","_this$props$data$stor12","isSameContext","_storeSelectorStateMa2","_this$state$displayRe","_this$state$displayRe2","_storeSelectorStateMa3","app","appConfig","maps","mapSlot","currentViewport","variant","VariantType","Browser","isMobileDevice","listMapViewState","canShowLocationView","isMapModuleLoaded","storeSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","kilometersShortText","milesShortText","locationListProps","_getStoreLocationListProps","locationsMessageForSearch","hasMapSlot","locationsMessageForList","origin","sitePath","ModuleProps","classname","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","HeaderContainerProps","HeaderProps","FooterContainerProps","FooterContainerPropsMaps","SearchBarSectionMapOnlyMobileClassName","BodyContainerProps","bodyWrapperProps","storeResultContainerProps","mapContainerProps","storeDetailsModal","showAllStores","onShowAllStores","spinner","locationsList","outOfStockThreshold","enableOutOfStockCheck","enableStockCheck","productPickUpDeliveryOptions","deliveryOptions","shouldShowIndex","noLocationsMessage","terms","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","locationOpen","openFrom","openTo","OrderInfomation","_salesOrder$Extension","_salesOrder$Extension2","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelReferenceId","channelName","channelAddress","salesOrder","customTrackingUrl","ExtensionProperties","tracking","Key","Value","StringValue","customTrackingCarrier","shippingInformation","shippedWith","trackTheOrder","SalesLine","salesLineProps","salesLine","buyAgainButton","GroupDelivery","deliveryProps","trackingInfo","shippedStatusCheck","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","LineId","deliveryType","shipment","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","other","_objectWithoutProperties","_excluded","taxAmount","style","marginBottom","itemProp","_renderCustomTaxLine","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","_salesOrder$Extension3","_salesOrder$Extension4","_moduleProps$modulePr","alert","loading","orderInfomation","orderSummary","payment","help","salesOrderData","orderHydration","extraOrdersSummaryEu","TaxAmount","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modal","modalHeader","createModalBody","modalFooter","modalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","_props$context$action","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","errorMessage","FeatureSearchContainer","similarLookProduct","recommendation","_renderTabItemContent","items","tabItemContent","NavMenuConstants","getCategoryImage","alttext","categoryImageUrl","navProps","_props$navProps$confi","imageData","NavigationMenuRootDisabled","supportedLevel","four","zero","escapeKey","_toggleNavBar","previousState","isNavOpen","_bindDesktopCategoryClick","menuId","isDrawerOpen","drawerKeyValue","newPair","categoryImageSource","isOnlyMobile","_closeNavMenu","_this$menuNode$curren","_escFunction","_this$menuNode$curren2","_customUpdateViewport","customResizeThrottledEventHandler","_renderMobileMenu","hamburgerAriaLabel","_renderCollapseMenu","Collapse","_renderDesktopMenu","_renderDrawerLink","StringExtensions","isNullOrWhitespace","entries","parentMenuId","menu","one","subMenuArray","isSubMenu","_this$props$navProps$","_this$props$navProps$2","rootMenu","subMenuItem","isEnableMultiSupportMenu","three","getMenuItem","isHavingSubmenu","two","_renderSubMenuDrawer","_renderLinkMenuItemLevelOne","_this$props$navProps$3","buttonText","keys","colProps","Drawer","collapseProps","openGlyph","closeGlyph","glyphPlacement","onToggle","menuSubItem","isHoverEffect","isSubmenu","_this$state$categoryI","isCategoryImageDisplay","isPromotionalContentDisplay","divContainerClass","menuLevelSupportClassName","categoryImages","imagesContainerKey","_item$src","NavigationMenuRootEnabled","_addShopAllLink","_this$menuItemData$0$","shopAllObject","unshift","cmsMenuData","retailMenuItemData","retailMenuData","parse","PromoCode","_onInputChangeHandler","promoCodeInputValue","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","promoCode","then","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","failedToAddPromoCodeErrorText","_onSubmitHandler","applyPromotionHandler","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","disabled","_removePromotion","_event$currentTarget$","code","currentTarget","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","cart","Coupons","removePromotionHandler","coupon","removePromoAriaLabelFormat","format","removePromoText","ApplyPromoCode","promoCodeHeadingText"],"sourceRoot":""}