{"version":3,"file":"static/js/16.f98ba834afb440e3b6d0.chunk.js","mappings":"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","sources":["webpack://nile.commerce.online/./src/modules/nile-subscribe/nile-subscribe.tsx?3793","webpack://nile.commerce.online/./src/modules/nile-subscribe/nile-subscribe.view.tsx?a2d9","webpack://nile.commerce.online/./src/themes/nile-theme/views/media-gallery.view.tsx?ccfc","webpack://nile.commerce.online/./src/themes/nile-theme/views/navigation-menu.view.tsx?5abc","webpack://nile.commerce.online/./src/themes/nile-theme/views/order-confirmation.view.tsx?9b48","webpack://nile.commerce.online/./src/themes/nile-theme/views/order-history.view.tsx?d07b","webpack://nile.commerce.online/./src/themes/nile-theme/views/reviews-list.view.tsx?1c4e","webpack://nile.commerce.online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://nile.commerce.online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://nile.commerce.online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://nile.commerce.online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://nile.commerce.online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://nile.commerce.online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://nile.commerce.online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://nile.commerce.online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://nile.commerce.online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://nile.commerce.online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://nile.commerce.online/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://nile.commerce.online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://nile.commerce.online/./src/modules/iframe/iframe.tsx?65fe","webpack://nile.commerce.online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://nile.commerce.online/./src/modules/store-selector/components/store-pickup-option-list.tsx?7a25","webpack://nile.commerce.online/./src/modules/store-selector/components/store-selector-location-lines.tsx?87ff","webpack://nile.commerce.online/./src/modules/store-selector/components/store-selector-search-form.tsx?fb9a","webpack://nile.commerce.online/./src/modules/store-selector/components/store-selector-small-components.tsx?4335","webpack://nile.commerce.online/./src/modules/store-selector/components/pickup-option-list.tsx?dae0","webpack://nile.commerce.online/./src/modules/store-selector/components/selected-store/selected-store.tsx?bfbc","webpack://nile.commerce.online/./src/modules/store-selector/components/store-selector-location-line-item/date-time-helpers.ts?fe27","webpack://nile.commerce.online/./src/modules/store-selector/components/store-selector-location-line-item/store-selector-location-line-item.components.tsx?923d","webpack://nile.commerce.online/./src/modules/store-selector/store-selector.tsx?e416","webpack://nile.commerce.online/./src/modules/store-selector/store-selector.view.tsx?71a6","webpack://nile.commerce.online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://nile.commerce.online/./src/modules/adventureworks/views/order-details.view.tsx?027b","webpack://nile.commerce.online/./src/modules/adventureworks/views/store-selector.view.tsx?ccdd","webpack://nile.commerce.online/./src/modules/adventureworks/views/write-review.view.tsx?c67c"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { INileSubscribeConfig, INileSubscribeProps } from './nile-subscribe.props.autogenerated';\r\nimport { subscribeToMailChimpAsync } from '../../actions/DataActionExtension.g';\r\nimport { Alert } from 'reactstrap';\r\n\r\ninterface ISubscribeState {\r\n showResponseMessage: boolean;\r\n isError: boolean;\r\n inputValue: string;\r\n}\r\n\r\n/**\r\n * Subscribe view props.\r\n */\r\nexport interface ISubscribeViewProps extends INileSubscribeProps {\r\n subscribe: IModuleProps;\r\n subscribeContainer: INodeProps;\r\n heading: React.ReactNode;\r\n text: React.ReactNode;\r\n submitButton?: INodeProps;\r\n submitButtonLabelText?: string;\r\n subscribeForm?: INodeProps;\r\n emailInput?: INodeProps;\r\n handleText(): void;\r\n handleSubscribe(): void;\r\n responseMessage: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Subscribe component.\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class Subscribe extends React.PureComponent, ISubscribeState> {\r\n private readonly _emailAddressInputRef: React.RefObject;\r\n\r\n public constructor(props: ISubscribeViewProps) {\r\n super(props);\r\n const {\r\n context: {\r\n request: {\r\n user: { emailAddress }\r\n }\r\n }\r\n } = props;\r\n this._emailAddressInputRef = React.createRef();\r\n\r\n this.state = {\r\n showResponseMessage: false,\r\n isError: false,\r\n inputValue: emailAddress || ''\r\n };\r\n this.hideResponseMessage = this.hideResponseMessage.bind(this);\r\n }\r\n\r\n private hideResponseMessage() {\r\n this.setState({ showResponseMessage: false });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph } = this.props.config;\r\n\r\n const moduleClassName = 'ms-subscribe';\r\n\r\n const doSubscribe = async () => {\r\n const {\r\n context: { actionContext },\r\n config: { useDoubleOptIn, audience }\r\n } = this.props;\r\n const { inputValue } = this.state;\r\n if (inputValue) {\r\n try {\r\n const response = await subscribeToMailChimpAsync(\r\n { callerContext: actionContext },\r\n inputValue,\r\n useDoubleOptIn ?? false,\r\n audience\r\n );\r\n this.setState({\r\n showResponseMessage: true,\r\n isError: !response.Status\r\n });\r\n } catch (exception) {\r\n this.setState({\r\n showResponseMessage: true,\r\n isError: true\r\n });\r\n }\r\n }\r\n };\r\n\r\n const renderSubscriptionResultMessage = () => {\r\n const { showResponseMessage, isError } = this.state;\r\n const {\r\n config: { useDoubleOptIn },\r\n resources: { subscriptionSuccessMessage, subscriptionOptInMessage, subscriptionFailMessage }\r\n } = this.props;\r\n if (!showResponseMessage) {\r\n return null;\r\n }\r\n if (isError) {\r\n return {subscriptionFailMessage};\r\n } else if (useDoubleOptIn) {\r\n return {subscriptionOptInMessage};\r\n } else {\r\n return {subscriptionSuccessMessage};\r\n }\r\n };\r\n\r\n const renderSubscriptionResultAlert = () => {\r\n const { showResponseMessage, isError } = this.state;\r\n\r\n return (\r\n \r\n {renderSubscriptionResultMessage()}\r\n \r\n );\r\n };\r\n\r\n const handleInputValueChange = (e: React.ChangeEvent) => {\r\n this.setState({ inputValue: e.target.value });\r\n };\r\n\r\n const subscribeParagraph = paragraph && (\r\n \r\n );\r\n\r\n const subscribeHeading = heading && (\r\n \r\n );\r\n const viewProps = {\r\n ...this.props,\r\n handleText: this.handleTextChange,\r\n handleSubscribe: doSubscribe,\r\n subscribe: {\r\n moduleProps: this.props,\r\n className: moduleClassName\r\n },\r\n subscribeContainer: {\r\n className: 'ms-subscribe__details'\r\n },\r\n heading: subscribeHeading,\r\n text: subscribeParagraph,\r\n subscribeForm: {\r\n className: 'ms-subscribe__details__form',\r\n tag: 'form',\r\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\r\n name: 'subscribeForm',\r\n role: 'form',\r\n autoComplete: 'off',\r\n onSubmit: doSubscribe\r\n },\r\n emailInput: {\r\n className: 'ms-subscribe__details__form__email',\r\n tag: 'input',\r\n ref: this._emailAddressInputRef,\r\n type: 'email',\r\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\r\n placeholder: this.props.resources.subscribeEmailPlaceholderText,\r\n value: this.state.inputValue,\r\n onChange: handleInputValueChange\r\n },\r\n submitButton: {\r\n className: 'ms-subscribe__details__form__submit',\r\n tag: Button,\r\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\r\n type: 'submit',\r\n title: this.props.resources.subscribeButtonLabel\r\n },\r\n submitButtonLabelText: this.props.resources.subscribeButtonLabel,\r\n responseMessage: renderSubscriptionResultAlert(),\r\n inputValue: this.state.inputValue\r\n };\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n\r\n /**\r\n * Handle text change.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.heading!.text = event.target.value;\r\n };\r\n\r\n /**\r\n * Handle paragraph change.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.paragraph = event.target.value;\r\n };\r\n}\r\n\r\nexport default Subscribe;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISubscribeViewProps } from './nile-subscribe';\r\n\r\n/**\r\n * View component.\r\n * @param props - The view properties.\r\n * @returns - Returns nothing.\r\n */\r\nexport const subscribeView: React.FC = props => {\r\n const {\r\n subscribe,\r\n subscribeContainer,\r\n heading,\r\n text,\r\n subscribeForm,\r\n emailInput,\r\n submitButton,\r\n handleSubscribe,\r\n responseMessage\r\n } = props;\r\n\r\n /**\r\n * Override form action and button action below.\r\n * @param event - The form event.\r\n */\r\n const onSubmit = (event: React.FormEvent): void => {\r\n event.preventDefault();\r\n handleSubscribe();\r\n };\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {text}\r\n \r\n \r\n \r\n {props.submitButtonLabelText}\r\n \r\n \r\n \r\n {responseMessage}\r\n \r\n );\r\n};\r\n\r\nexport default subscribeView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IMediaGalleryThumbnailItemViewProps, IMediaGalleryThumbnailsViewProps, IMediaGalleryViewProps } from '@msdyn365-commerce-modules/media-gallery/src/modules/media-gallery/../..';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\n\r\nconst MediaGalleryView: React.FC = props => {\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n //Change images to jpg\r\n if (MsDyn365.isBrowser) {\r\n const images = document.querySelectorAll('.ms-inline-zoom img');\r\n const formatJpgString = '&f=jpg';\r\n if (images && images.length) {\r\n images.forEach(img => img.src = img.src.indexOf(formatJpgString) === -1 ? img.src + '&f=jpg' : img.src);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {Modal}\r\n {_renderThumbnails(Thumbnails)}\r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps): JSX.Element => {\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps, items } = thumbnails;\r\n\r\n return (\r\n \r\n \r\n {items && items.map(_renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\nexport default MediaGalleryView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\r\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Drawer,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n ICollapseProps,\r\n IDrawerState,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport {\r\n ICmsNavItemsData,\r\n INavigationMenuProps\r\n} from \"../definition-extensions/navigation-menu.ext.props.autogenerated\";\r\nimport * as _ from 'lodash';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | null;\r\n categoryImageAltText: string;\r\n drawerKeyValue: IDictionary;\r\n timeout: ReturnType | null;\r\n menuItemData: IMenuItemData[];\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent, INavigationState> {\r\n private currentLevel: number = 0;\r\n\r\n private readonly _positionInSetOffset: number = 1;\r\n\r\n private readonly escapeKey: number = 27;\r\n\r\n private readonly menuNode: React.RefObject;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n constructor(props: INavigationMenuViewProps & INavigationMenuProps<{}>) {\r\n super(props);\r\n const { menuItemData , config : { retailMenuInsertLinks, cmsNavItems }} = props;\r\n const _menuItemDataClone = [...menuItemData];\r\n const retailMenu = _menuItemDataClone.find(mi => mi.menuSource === 'Retail');\r\n if (retailMenu && ArrayExtensions.hasElements(retailMenuInsertLinks)) {\r\n //Handle pushing in new menu items\r\n retailMenuInsertLinks.map(item => {\r\n if (!item.hideMenuItem) {\r\n const tempMenuItem: IMenuItemData = {\r\n linkURL: item.linkUrl?.destinationUrl,\r\n linkText: item.linkText,\r\n shouldOpenNewTab: item.openInNewTab,\r\n id: retailMenu.subMenu?.length || 0,\r\n imageSource: item.image?.src,\r\n }\r\n retailMenu.subMenu?.splice(item.insertPosition && item.insertPosition - 1 || 0, 0, tempMenuItem);\r\n }\r\n })\r\n }\r\n if (_menuItemDataClone) {\r\n for (const menuItem of _menuItemDataClone) {\r\n if (menuItem.menuSource === 'Retail') {\r\n continue;\r\n }\r\n const menuItemPair = cmsNavItems?.find(cms => cms.linkText === menuItem.linkText);\r\n if ((menuItemPair as ICmsNavItemsData)?.hideMenuItem) {\r\n const idx = _menuItemDataClone.findIndex(i => i.id === menuItem.id);\r\n if (idx > -1) {\r\n _menuItemDataClone.splice(idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.menuNode = React.createRef();\r\n this.state = { activeMenu: undefined,\r\n parentMenu: undefined,\r\n categoryImageAltText: '',\r\n drawerKeyValue: {},\r\n timeout: null,\r\n menuItemData: _menuItemDataClone\r\n };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.isBrowser) {\r\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body.addEventListener('mousedown', this._handleClickOutside);\r\n document.body.addEventListener('focusout', this._handleFocusOutside);\r\n }\r\n\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.isBrowser) {\r\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return (\r\n <>\r\n {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render mobile menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, Navigation } = this.props;\r\n const { menuItemData } = this.state;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\r\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\r\n })}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render desktop menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render drawer menu.\r\n * @param menuItem -Menuitem data.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\r\n return (this._renderDrawer(menuItem, setSize, posinset));\r\n }\r\n return (this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset));\r\n\r\n }\r\n\r\n /**\r\n * Method to render drawer component.\r\n * @param menuItem -Menuitem data.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const keyValue = this.state.drawerKeyValue;\r\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\r\n const keys = keyValue !== undefined ? keyValue : {};\r\n\r\n let isDrawerOpen = false;\r\n if (keys[buttonText]) {\r\n isDrawerOpen = true;\r\n }\r\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\r\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\r\n return (this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset));\r\n }\r\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render link.\r\n * @param linkText -Text on Menu link.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render drawer link.\r\n * @param item -Single Menuitem.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return (\r\n this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset)\r\n );\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return (\r\n this._renderSpanMenuItem(item)\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to generate menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, isMobileView } = this.props;\r\n const { menuItemData } = this.state;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (const menuItemDatum of menuItemData) {\r\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\r\n menuItem = menuItemDatum;\r\n this.setState({ parentMenu: undefined });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem && menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}\r\n {' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n return menuItemList;\r\n }\r\n\r\n /**\r\n * Method to get data for submenu.\r\n * @param item -Single Menuitem.\r\n * @returns IMenuItemData.\r\n */\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({ parentMenu: item?.id });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to create item list.\r\n * @param menuItemData -Single Menuitem.\r\n * @returns Jsx element.\r\n */\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id));\r\n }\r\n return (\r\n <>\r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\r\n \r\n );\r\n\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return (this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true));\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return (this._renderSpanMenuItem(menuItemData, menuItemData.id, true));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\r\n const subMenuLevel = 3;\r\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\r\n\r\n // Const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = (option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option)\r\n );\r\n }\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1);\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n }\r\n return (\r\n \r\n { menuItem }\r\n { subMenu }\r\n \r\n );\r\n });\r\n return (this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu));\r\n }\r\n\r\n\r\n /**\r\n * Handles the mouseover and mouseleave functions of the menu hover functionality\r\n * @private\r\n */\r\n private _handleMouseLeaveEvent() {\r\n const { config: { menuHideTimeout }} = this.props;\r\n const classToWatch = 'ms-nav'; // Main nav class\r\n const timeToCloseMenu = menuHideTimeout && menuHideTimeout * 1000 || 0; // From props\r\n\r\n // traverse the nodes that are currently being hovered and find out if they are part of the nav system\r\n const traverseNodes = () => {\r\n const nodeList = document.querySelectorAll(':hover');\r\n let node = nodeList[nodeList.length - 1];\r\n let isInMenu = false;\r\n while (node.parentNode) {\r\n node = node.parentNode as Element;\r\n if (node.classList?.contains(classToWatch)) {\r\n isInMenu = true;\r\n break;\r\n }\r\n }\r\n // If they are not part of the nav system - Close the menu\r\n if (!isInMenu) {\r\n // If a timeout time is set, then close the menu after a delay\r\n if (timeToCloseMenu > 0) {\r\n let timeout = this.state.timeout;\r\n if (!timeout) {\r\n timeout = setTimeout(() => {\r\n this._closeSubmenu();\r\n document.removeEventListener('mousemove', traverseNodes);\r\n }, timeToCloseMenu);\r\n this.setState({ timeout });\r\n }\r\n } else {\r\n // Otherwise - close the menu instantly\r\n this._closeSubmenu();\r\n document.removeEventListener('mousemove', traverseNodes);\r\n }\r\n } else {\r\n // Logic to cancel closing the menu if it is still open and the mouse moves back in\r\n if (timeToCloseMenu > 0) {\r\n const timeout = this.state.timeout;\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n this.setState({ timeout: null});\r\n }\r\n }\r\n }\r\n }\r\n document.removeEventListener('mousemove', traverseNodes);\r\n document.addEventListener('mousemove', traverseNodes);\r\n }\r\n\r\n /**\r\n * Method to render button menu item.\r\n * @param option -Single Menuitem.\r\n * @param activeMenu -Active menu number.\r\n * @param index -Active menu index.\r\n * @returns Jsx element.\r\n */\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button, config: { showMenuOnHover } } = this.props;\r\n\r\n if (showMenuOnHover) {\r\n return (\r\n option.linkURL ? window.location.href = option.linkURL : null}\r\n onMouseEnter={this._handleDropdownToggle(option, activeMenu)}\r\n onFocus={this._closeSubmenu}\r\n aria-haspopup={!(this.state.activeMenu && this.state.activeMenu === option.id)}\r\n aria-expanded={!!(this.state.activeMenu && this.state.activeMenu === option.id)}\r\n data-parent={activeMenu}\r\n role={'link'}\r\n >\r\n { option.linkText }\r\n \r\n )\r\n }\r\n return (\r\n \r\n { option.linkText }\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render link menu item.\r\n * @param option -Single Menuitem.\r\n * @param index -Active menu index.\r\n * @param hoverEffect -Active menu effect.\r\n * @param isParent -Is parent menu.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true, isParent: boolean = false,\r\n setSize?: number, posinset?: number): JSX.Element | null {\r\n const { Link, isMobileView, config: { retailMenuInsertLinks, cmsNavItems } } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource = option.imageSource ? option.imageSource : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n let currentPath = this.props.context.actionContext.requestContext.url.requestUrl.pathname;\r\n let className = '';\r\n if (retailMenuInsertLinks) {\r\n const menuLink = retailMenuInsertLinks.find(item => item.linkText === option.linkText);\r\n if (menuLink) {\r\n className = menuLink.className || '';\r\n }\r\n }\r\n if (cmsNavItems) {\r\n const cmsMenuLink = cmsNavItems.find(cms => cms.linkText === option.linkText);\r\n if (cmsMenuLink) {\r\n className = (cmsMenuLink as ICmsNavItemsData).className || '';\r\n }\r\n }\r\n\r\n return (\r\n onTelemetryClick(this.telemetryContent, this.payLoad, linkText)}>\r\n =0 ?\r\n 'active-nav-item' : '', className)}>\r\n { option.linkText }\r\n \r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render promotional link.\r\n * @param linkText -Link text.\r\n * @param linkUrl -Link url.\r\n * @returns Jsx element.\r\n */\r\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\r\n const { Link } = this.props;\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n if (linkText && linkUrl) {\r\n return (\r\n \r\n { linkText }\r\n \r\n );\r\n }\r\n return null;\r\n\r\n }\r\n\r\n /**\r\n * Method to render span menu item.\r\n * @param option -Single Menu Item.\r\n * @param index -Index.\r\n * @param isParent -Is parent menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n { option.linkText }\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render menu.\r\n * @param level -Menu level.\r\n * @param menuOptions -Menu lists.\r\n * @param currentItem -Menu current.\r\n * @param submenu -Mneu has submenu or not.\r\n * @returns Jsx element.\r\n */\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\r\n\r\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\r\n const categoryImageDisplay = !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\r\n const promotionalContentDisplay = !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\r\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n 2 && 'navmenu-multi-level')}>\r\n { menuOptions }\r\n \r\n
\r\n {\r\n categoryImageDisplay && this.state.categoryImage && this.state.categoryImage.map(item => (\r\n \r\n { this.state.categoryImage && this._getCategoryImage(item) }\r\n { promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\r\n ))\r\n }\r\n
\r\n
\r\n );\r\n }\r\n\r\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\r\n const linkText = option && option.linkText ? option.linkText : '';\r\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\r\n\r\n // Read category and promotional image in one array\r\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\r\n option.promotionalContent.map(item => {\r\n if (item && item.image) {\r\n const imageSrc = item.image.src;\r\n const promotionalItemImageSettings = item.image.imageSettings;\r\n promotionalImage.push({ src: imageSrc, altText: item.text, imageSettings: promotionalItemImageSettings,\r\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl } });\r\n }\r\n });\r\n }\r\n this.setState({\r\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\r\n categoryImageAltText: linkText\r\n });\r\n };\r\n\r\n /**\r\n * Method to handle dropdwon change.\r\n * @param data -Menuitem data.\r\n * @param parentId -Menu parent.\r\n * @returns Jsx element.\r\n */\r\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n if (this.props.config.showMenuOnHover) { // If we're showing menu on hover, we have to handle this part differently\r\n if (this.state.activeMenu !== data.id!) { // Only change state logic if we're not hovering over an already open menu\r\n this.setState({\r\n activeMenu: (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n }\r\n this._handleMouseLeaveEvent(); // run the mouse event\r\n } else {\r\n this.setState({\r\n activeMenu: (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n if (this.props.showCategoryImage) {\r\n this._updateCategoryImage(data.imageSource!, data)();\r\n }\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n parentMenu: parentId\r\n });\r\n }\r\n this._resetFocus();\r\n };\r\n\r\n /**\r\n * Method to call when focus lost from menu.\r\n */\r\n private readonly _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle click outside of menu.\r\n * @param event -HTML event.\r\n */\r\n private readonly _handleClickOutside = (event: MouseEvent) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\r\n this.setState(\r\n {\r\n activeMenu: undefined,\r\n categoryImage: null\r\n }\r\n );\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle click outside of menu.\r\n * @param event -HTML event.\r\n */\r\n private readonly _handleFocusOutside = (event: FocusEvent) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\r\n this._closeSubmenu();\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle close submenu event.\r\n */\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined });\r\n }\r\n }\r\n\r\n /**\r\n * Method to handle escape key event.\r\n * @param event -HTML event.\r\n */\r\n private readonly _escFunction = (event: React.KeyboardEvent) => {\r\n\r\n if (event.keyCode === this.escapeKey) {\r\n if (!this.props.isMobileView) {\r\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\r\n for (const item of navDrawerList) {\r\n const navDrawerButton = item.firstChild as HTMLButtonElement;\r\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\r\n navDrawerButton.focus();\r\n }\r\n }\r\n }\r\n this._closeSubmenu();\r\n }\r\n };\r\n\r\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\r\n\r\n if (!categoryImage || !categoryImage.src) {\r\n return null;\r\n }\r\n\r\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n if (categoryImageUrl !== undefined) {\r\n const ImageData: IImageData = { src: categoryImageUrl };\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n\r\n /**\r\n * Method to handle escape key event.\r\n * @param drawerState -HTML event.\r\n */\r\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\r\n const { drawerKeyValue } = this.state;\r\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\r\n const newPair = { [drawerText]: drawerState.isOpen };\r\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\r\n };\r\n}\r\n\r\nexport default NavigationMenuView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { IHelp, IOrderSummary, IPaymentMethods, IPriceContext } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\nimport {IOrderConfirmationProps, IOrderConfirmationResources} from '../definition-extensions/order-confirmation.ext.props.autogenerated';\r\n// import { PriceComponent } from '@msdyn365-commerce/components';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\r\n\r\n\r\nexport interface IOrderSummaryR extends IOrderSummary {\r\n priceContext?: IPriceContext;\r\n backToShoppingLink? : React.ReactNode;\r\n resources: IOrderConfirmationResources;\r\n}\r\n\r\n// interface ISummaryLineProps {\r\n// priceContext?: IPriceContext;\r\n// name: string;\r\n// label: string;\r\n// value?: number;\r\n// }\r\n\r\n\r\n// const OrderSummaryLine: React.FC = ({ name, label, value = 0, priceContext }) => (\r\n//

\r\n// \r\n// {label}\r\n// \r\n// {priceContext ? (\r\n// \r\n// ) : (\r\n// \r\n// {value}\r\n// \r\n// )}\r\n//

\r\n// );\r\n\r\nexport interface IGroupR extends IGroup {\r\n resources: IOrderConfirmationResources;\r\n}\r\n\r\nexport interface IGroupsR extends IGroups {\r\n groupsProps: INodeProps;\r\n groups: IGroup[];\r\n resources: IOrderConfirmationResources;\r\n}\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate\r\n}) => (\r\n \r\n {createdDate}\r\n {receiptEmail}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines, resources }) => (\r\n\r\n \r\n {delivery && }\r\n {/* {delivery && delivery.shippingItemsToYou} */}\r\n

{resources.orderSummaryTitle}

\r\n {_renderOrderSummaryHeading(resources)}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n\r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups, resources }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport interface IExtendedOrderSummaryR extends IOrderSummaryR {\r\n salesOrder: SalesOrder | undefined;\r\n}\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ salesOrder, orderSummaryProps, heading, shipping, subtotal, totalAmount, earnedPoints, backToShoppingLink, resources}) => (\r\n \r\n {heading}\r\n {/* */}\r\n\r\n {React.cloneElement(subtotal as React.ReactElement, {value: salesOrder?.SubtotalAmountWithoutTax})}\r\n\r\n {shipping}\r\n {/*tax*/}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n {backToShoppingLink}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const OrderConfirmationHelp: 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 _renderOrderSummaryHeading = (resources: IOrderConfirmationResources & IOrderConfirmationResources): JSX.Element | null => {\r\n return (\r\n
\r\n
{resources.productColumnHeading}
\r\n
{resources.colorColumnHeading}
\r\n
{resources.sizeColumnHeading}
\r\n
{resources.quantityColumnHeading}
\r\n
{resources.priceColumnHeading}
\r\n
{resources.totalColumnHeading}
\r\n
\r\n );\r\n};\r\n\r\nconst OrderConfirmationView: React.FC> = props => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\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 salesOrder,\r\n config }\r\n = props;\r\n const orderString = salesOrder?.CreatedDateTime?.toString() ?? '';\r\n const orderDate = new Date(orderString);\r\n\r\n const changeHref = () => {\r\n if (msdyn365Commerce.isBrowser && config.backToShoppingLink){\r\n let el = document.querySelectorAll('.ms-order-confirmation__btn-keep-shopping')[0];\r\n if (el.href !== config.backToShoppingLink){\r\n el.href = config.backToShoppingLink;\r\n }\r\n }\r\n }\r\n\r\n changeHref();\r\n \r\n return (\r\n \r\n {heading}\r\n

{orderInfomation?.channelReferenceId}

\r\n {alert}\r\n {loading}\r\n

{resources.thankYouMessage}

\r\n {/* {orderInfomation && } */}\r\n\r\n \r\n \r\n {resources.orderPlacedOnLabel.replace(\":\",\"\")}\r\n {orderDate.toLocaleDateString('en-GB')}\r\n \r\n {orderInfomation?.receiptEmail}\r\n \r\n {groups && }\r\n {/* {payment && } */}\r\n {orderSummary && }\r\n \r\n {resources.tyvm}{resources.paidMsg}\r\n {payment?.methods}\r\n
\r\n {resources.signOff}\r\n
\r\n {resources.teamNile}\r\n
\r\n {help && }\r\n
\r\n );\r\n};\r\n\r\nconst getPriceContext = (props: IOrderConfirmationViewProps & IOrderConfirmationProps<{}>): IPriceContext => {\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n telemetry,\r\n resources: { freePriceText }\r\n } = props;\r\n return {\r\n id,\r\n typeName,\r\n context,\r\n telemetry,\r\n freePriceText\r\n };\r\n}\r\n\r\nexport default OrderConfirmationView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IGroup, IGroupDelivery, IGroups, IHeader, IList, IOrderHistoryViewProps, IOrderInformation, ISalesOrder } from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount,\r\n channelReferenceId\r\n}) => (\r\n \r\n {channelName}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {channelReferenceId}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.salesLine}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\r\n \r\n {heading}\r\n {orderCountLabel}\r\n {extraActions}\r\n \r\n);\r\n\r\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink, expandProductsButton }) => (\r\n \r\n {orderInfomation && }\r\n {groups && }\r\n {expandProductsButton}\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\r\n \r\n {salesOrders && salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n table,\r\n moreButton\r\n}) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n {alert}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n \r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {table}\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nexport default OrderHistoryView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n averageRating,\r\n filterByDropdown,\r\n moduleProps,\r\n noReviewsMessage,\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n refineReviewsProps,\r\n reportReviewModal,\r\n reviewsListProps,\r\n reviewCards,\r\n reviewCount,\r\n reviewModal,\r\n sortByDropdown,\r\n state,\r\n userReview\r\n } = props;\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n return (\r\n {noReviewsMessage}\r\n );\r\n }\r\n\r\n return (\r\n \r\n {averageRating}\r\n {reviewCount}\r\n \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n \r\n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n \r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.rating}\r\n {props.name}\r\n {props.date}\r\n \r\n \r\n \r\n {props.reviewTitle}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike}\r\n {props.edit}\r\n {props.report}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): 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 | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): 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 | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\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 { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
{error}
;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress,\n note\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n {note}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

\n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\n/**\n * Store Pickup option list interface.\n */\nexport interface IStorePickUpOptionListProps {\n productPickupListOptionMenuText?: string;\n productPickupModeList?: DeliveryOption[];\n defaultOptionText?: string;\n onChange(deliveryCode: string): Promise;\n}\n\n/**\n * Store Pickup option state interface.\n */\nexport interface IStorePickOptionListState {\n isFilterExpanded: boolean;\n selectedPickupMode?: string;\n}\n\n/**\n * Simple Pickup option dropdown with Button to get menu option.\n */\nexport class StorePickUpOptionList extends React.PureComponent {\n private readonly _storePickupListOptionMenu: React.RefObject;\n\n public constructor(props: IStorePickUpOptionListProps) {\n super(props);\n this._storePickupListOptionMenu = React.createRef();\n this.state = {\n isFilterExpanded: false,\n selectedPickupMode: ''\n };\n }\n\n public render(): JSX.Element {\n const { productPickupListOptionMenuText, productPickupModeList, defaultOptionText } = this.props;\n const selectedPickupModeDesc = defaultOptionText\n ? defaultOptionText\n : productPickupModeList?.find((delivery: DeliveryOption) => delivery.Code === this.state.selectedPickupMode)?.Description;\n const role = 'menu';\n return (\n
\n \n {this.state.isFilterExpanded ? (\n
    \n {productPickupModeList?.map((delivery: DeliveryOption) => {\n return (\n
  • \n \n \n {delivery.Description}\n \n \n
  • \n );\n })}\n
\n ) : null}\n
\n );\n }\n\n /**\n * Method to call when drop dwon get selected.\n */\n private readonly _rendeDeliveryOptions = () => {\n const isExpandOptionsState = this.state.isFilterExpanded;\n this.setState({\n isFilterExpanded: !isExpandOptionsState\n });\n };\n\n /**\n * Method to call on select pickup mode.\n * @param event - Mouse event.\n * @returns Void.\n */\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\n event.preventDefault();\n const deliveryCode = event.currentTarget.getAttribute('data-value');\n if (deliveryCode !== null) {\n this.setState({\n selectedPickupMode: deliveryCode\n });\n\n this._rendeDeliveryOptions();\n await this.props.onChange(deliveryCode);\n }\n };\n\n /**\n * Method to call on select pickup mode.\n * @param event - Mouse event.\n * @returns Void.\n */\n private readonly _onKeyDown = async (event: React.KeyboardEvent): Promise => {\n event.preventDefault();\n const deliveryCode = event.currentTarget.getAttribute('data-value');\n if (deliveryCode !== null) {\n this.setState({\n selectedPickupMode: deliveryCode\n });\n\n this._rendeDeliveryOptions();\n await this.props.onChange(deliveryCode);\n }\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DeliveryOption, ItemAvailability, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IStoreSelectorResources } from '../store-selector.props.autogenerated';\nimport { IStoreSelectorLocationLineItemResources, StoreSelectorLocationLineItemComponent } from './store-selector-location-line-item';\n\n/**\n * Store selector location lines props interface.\n */\nexport interface IStoreSelectorLocationLinesProps {\n locations?: IFullOrgUnitAvailability[];\n resources: IStoreSelectorResources;\n preferredDistanceUnit?: string;\n\n alreadySelectedLocation?: OrgUnitLocation;\n outOfStockThreshold: number;\n enableOutOfStockCheck: boolean;\n storeLocatorView?: boolean;\n selectedStoreLocationId?: string;\n isPreferredStoreEnabled?: boolean;\n displayList?: boolean;\n isLocationDisabled?: boolean;\n productPickUpDeliveryOptions?: DeliveryOption[];\n onClick: (locationId: string | undefined) => void;\n preferredStoreLocationId: string | null;\n onSetAsPreferredStore: (locationId: string | undefined) => void;\n onRemovePreferredStore: () => void;\n filteredPickupMode?: string;\n shouldShowIndex?: boolean;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n onLocationSelected(location: OrgUnitLocation | undefined): void;\n}\n\n/**\n * Displays all the location line items, or null if none exists.\n */\n@observer\nexport class StoreSelectorLocationLines extends React.PureComponent {\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\n\n private readonly selectedLocationRef: React.RefObject;\n\n private storeCounter: number;\n\n public constructor(props: IStoreSelectorLocationLinesProps) {\n super(props);\n this.selectedLocationRef = React.createRef();\n this.storeCounter = 0;\n }\n\n public componentDidUpdate(previousProps: IStoreSelectorLocationLinesProps): void {\n if (this.props.selectedStoreLocationId !== previousProps.selectedStoreLocationId) {\n this._scrollIntoView();\n }\n }\n\n public componentDidMount(): void {\n if (this.props.locations) {\n this._stores = this._sortStores(this.props.locations);\n }\n\n reaction(\n () => this.props.locations,\n () => {\n if (this.props.locations) {\n this._stores = this._sortStores(this.props.locations);\n }\n }\n );\n }\n\n public render(): JSX.Element | null {\n if (!ArrayExtensions.hasElements(this._stores)) {\n return null;\n }\n\n this.storeCounter = 0;\n\n return (\n
\n {this._stores.map((store, index) => {\n return this._renderStoreLocation(store, index);\n })}\n
\n );\n }\n\n /**\n * On click Handler function.\n * @param orgUnitLocation -OrgUnit location.\n * @returns Click action on orgUnit Location.\n */\n private readonly onClickHandler = (orgUnitLocation: OrgUnitLocation | undefined) => () => {\n this.props.onClick(orgUnitLocation?.OrgUnitNumber);\n };\n\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number): JSX.Element | undefined {\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\n const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\n const defaultAriaSetsize = 0;\n if (orgUnitLocation) {\n ++this.storeCounter;\n return (\n \n \n \n );\n }\n return undefined;\n }\n\n /**\n * Sort store.\n * @param stores - Array of stores data.\n * @returns Sorted stores array.\n */\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\n /**\n * IsPreferredStore.\n * @param value - Array of stores data.\n * @returns IsPreferred store boolean value.\n */\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\n this.props.isPreferredStoreEnabled &&\n this.props.preferredStoreLocationId &&\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\n\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\n }\n\n /**\n * Scroll into view.\n */\n private readonly _scrollIntoView = () => {\n const selectedLocationDiv = this.selectedLocationRef.current;\n const parent = selectedLocationDiv?.parentElement;\n if (selectedLocationDiv && parent) {\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\n parent.scrollTop = selectedLocationDiv.offsetTop;\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\n }\n }\n };\n\n /**\n * Is current location.\n * @param location - Org unit location.\n * @returns The current location.\n */\n private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean =>\n (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) ||\n false;\n\n /**\n * Check the product is in stock or not.\n * @param itemAvailabilities - Item availabilities.\n * @returns If the product is in stock.\n */\n private readonly _isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\n if (!this.props.enableOutOfStockCheck) {\n return true;\n }\n\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\n return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > 0 : false;\n }\n\n return false;\n };\n\n /**\n * Get the stock inventory label.\n * @param availabilityWithHours - Full org unit availability.\n * @returns The stock label.\n */\n private readonly _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\n if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\n for (let i = 0; i < availabilityWithHours.ProductInventoryInformation.length; i++) {\n if (\n availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\n availabilityWithHours.ProductInventoryInformation[i].InventLocationId\n ) {\n return availabilityWithHours.ProductInventoryInformation[i].StockLevelLabel;\n }\n }\n }\n\n return undefined;\n };\n\n /**\n * Map resources.\n * @param resources - Store resources.\n * @returns Resources.\n */\n private readonly _mapResources = (resources: IStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\n return {\n contactInfoHeader: resources.contactText,\n storeHoursHeader: resources.timeText,\n availabilityInfoHeader: resources.availabilityText,\n\n closedText: resources.storeHoursClosedText,\n outOfStock: resources.outOfStockText,\n inStock: resources.inStockText,\n\n currentLocation: resources.selectedStoreLocationText,\n selectLocation: resources.selectStoreText,\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\n preferredStoreText: resources.preferredStoreText,\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\n pickupDeliveryOptionErrorMessage: resources.pickupDeliveryOptionErrorMessage,\n\n days: {\n monday: resources.storeHoursMondayText,\n tuesday: resources.storeHoursTuesdayText,\n wednesday: resources.storeHoursWednesdayText,\n thursday: resources.storeHoursThursdayText,\n friday: resources.storeHoursFridayText,\n saturday: resources.storeHoursSaturdayText,\n sunday: resources.storeHoursSundayText,\n mondayFull: resources.storeHoursMondayFullText,\n tuesdayFull: resources.storeHoursTuesdayFullText,\n wednesdayFull: resources.storeHoursWednesdayFullText,\n thursdayFull: resources.storeHoursThursdayFullText,\n fridayFull: resources.storeHoursFridayFullText,\n saturdayFull: resources.storeHoursSaturdayFullText,\n sundayFull: resources.storeHoursSundayFullText\n }\n };\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n KeyCodes,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { StorePickUpOptionList } from './store-pickup-option-list';\n\n/**\n * Store Selector Search Form Props interface.\n */\nexport interface IStoreSelectorSearchFormProps {\n resources: {\n searchInputAriaLabel: string;\n searchButtonAriaLabel: string;\n searchPlaceholderText: string;\n seeAllStoresText: string;\n viewListText: string;\n viewMapText: string;\n pickupFilterByHeading?: string;\n pickupFilterMenuHeading?: string;\n };\n\n id: string;\n value: string;\n isMapDisabled?: boolean;\n showAllStores?: boolean;\n displayList?: boolean;\n locatorView?: boolean;\n productPickUpDeliveryOptions?: DeliveryOption[];\n hasEnabledPickupFilterToShowStore?: boolean;\n filteredPickupMode?: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n onShowAllStores(): void;\n onToggleListMapViewState(): void;\n performSearch(searchTerm: string): Promise;\n searchTermChanged(searchTerm: string): Promise;\n filterPickupModeSelected(pickupMode: string): void;\n}\n\n/**\n * Simple search form consisting of search text and a search button.\n */\nexport class StoreSelectorSearchForm extends React.PureComponent {\n private readonly searchBoxRef: React.RefObject = React.createRef();\n\n private readonly storeSearchAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly showAllStoreAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\n\n private previousValue: string = '';\n\n private isSearchResultOpened: boolean = false;\n\n public constructor(props: IStoreSelectorSearchFormProps) {\n super(props);\n this.state = { value: '' };\n this._handleKeyPressPrev = this._handleKeyPressPrev.bind(this);\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.SearchStore);\n this.storeSearchAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.ShowAllStore;\n this.showAllStoreAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.ToggleMapView;\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n const {\n resources: {\n searchButtonAriaLabel,\n searchPlaceholderText,\n seeAllStoresText,\n viewListText,\n viewMapText,\n pickupFilterByHeading,\n pickupFilterMenuHeading\n },\n id,\n value,\n isMapDisabled,\n showAllStores,\n displayList,\n locatorView,\n onShowAllStores,\n productPickUpDeliveryOptions,\n hasEnabledPickupFilterToShowStore\n } = this.props;\n\n const toggleButtonText = displayList ? viewMapText : viewListText;\n\n return (\n
\n \n
\n )}\n {this.renderPickupModesList(\n this.props,\n toggleButtonText,\n productPickUpDeliveryOptions,\n pickupFilterMenuHeading,\n locatorView,\n pickupFilterByHeading,\n hasEnabledPickupFilterToShowStore,\n displayList\n )}\n \n );\n }\n\n /**\n * Handles the key press on the input box.\n * @param event - Event object.\n */\n private readonly _handleInputKeyPress = (event: React.KeyboardEvent): void => {\n // When the user navigates through the up and down arrow on the result returned by the auto suggest and press enter.\n // At that time, two requests were made to fetch the store details due to which incorrect result is shown and causes flickering.\n // In order to avoid that. Checking if the search result is open or not.\n if (event.keyCode === KeyCodes.ArrowUp || event.keyCode === KeyCodes.ArrowDown) {\n const activeDescedantValue = (event.target as HTMLInputElement).getAttribute('aria-activedescendant');\n if (activeDescedantValue) {\n if (this.previousValue === '') {\n this.previousValue = activeDescedantValue;\n this.isSearchResultOpened = true;\n return;\n }\n\n if (activeDescedantValue !== this.previousValue) {\n this.previousValue = activeDescedantValue;\n this.isSearchResultOpened = true;\n } else {\n this.isSearchResultOpened = false;\n }\n }\n }\n };\n\n /**\n * Calls method display result.\n * @param event - The first number.\n */\n private readonly _handleKeyPressPrev = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {\n this.props.onShowAllStores();\n }\n };\n\n /**\n * Method called on search text changed.\n * @param event - Input value.\n */\n private readonly _searchTextChanged = async (event: React.ChangeEvent): Promise => {\n const inputValue: string = event.target.value;\n\n await this.props.searchTermChanged(inputValue);\n };\n\n /**\n * Method called on search submit.\n * @param event - Input value.\n */\n private readonly _onSubmit = async (event: React.SyntheticEvent): Promise => {\n event.preventDefault(); // Prevents form submission\n this.searchBoxRef.current?.blur();\n if (!this.isSearchResultOpened) {\n await this.props.performSearch(this.props.value);\n }\n this.isSearchResultOpened = false;\n };\n\n /**\n * Method called on product pickup option change.\n * @returns - Void.\n */\n private readonly _onChangeHandler = () => async (deliveryCode: string): Promise => {\n this.props.filterPickupModeSelected(deliveryCode);\n return Promise.resolve();\n };\n\n /**\n * Method to render pickup mode list.\n * @param props - Store selector search form props.\n * @param toggleButtonText - Locator view button text.\n * @param productPickUpDeliveryOptions - Product DeliveryOption List.\n * @param pickupFilterMenuHeading - Pickup store button text.\n * @param locatorView - Locator View is on\\off.\n * @param pickupFilterByHeading - Pickup list label text.\n * @param hasEnabledPickupFilterToShowStore - Flag to check header filter is enabled.\n * @param shouldDisplayList - Display List.\n * @returns Jsx component.\n */\n private readonly renderPickupModesList = (\n props: IStoreSelectorSearchFormProps,\n toggleButtonText: string,\n productPickUpDeliveryOptions: DeliveryOption[] | undefined,\n pickupFilterMenuHeading: string | undefined,\n locatorView: boolean | undefined,\n pickupFilterByHeading: string | undefined,\n hasEnabledPickupFilterToShowStore: boolean | undefined,\n shouldDisplayList?: boolean\n ): JSX.Element | null => {\n const toggleButtonClass = shouldDisplayList ? 'view-map' : 'list-view';\n if (hasEnabledPickupFilterToShowStore) {\n return (\n
\n {locatorView && (\n \n {toggleButtonText}\n \n )}\n \n
{pickupFilterByHeading}
\n
\n );\n }\n if (locatorView) {\n return (\n \n {toggleButtonText}\n \n );\n }\n return null;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IStoreSelectorResources, ITermsOfServiceLinkData } from '../store-selector.props.autogenerated';\n\nexport interface IStoreSelectorEmptyMessageProps {\n resources: IStoreSelectorResources;\n}\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\n
\n

{resources.emptyLocationsText}

\n
\n);\n\nexport const StoreSelectorWaiting: React.FC = () =>
;\n\nexport interface IStoreSelectorTermsOfServiceProps {\n link?: ITermsOfServiceLinkData;\n requestContext: Msdyn365.IRequestContext;\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\n}\n\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\n if (link) {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-store-select__terms-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link'\n };\n\n return (\n
\n \n
\n );\n }\n return null;\n};\n\nexport interface IStoreSelectorFoundLocationsMessage {\n resources: IStoreSelectorResources;\n locations?: IFullOrgUnitAvailability[];\n searchRadius: number;\n preferredDistanceUnit: string;\n isSeeAllStore: boolean;\n}\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({\n locations,\n searchRadius,\n resources,\n isSeeAllStore,\n preferredDistanceUnit\n}) => {\n if (locations) {\n const storeCountMessage =\n preferredDistanceUnit === resources.milesShortText ? resources.storeCountMessage : resources.storeCountMessageInKm;\n return (\n
\n {isSeeAllStore\n ? resources.storeAllCountMessage.replace('{count}', locations.length.toString())\n : storeCountMessage.replace('{count}', locations.length.toString()).replace('{radius}', searchRadius.toString())}\n
\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 { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\n/**\n * Interface Pickup option list.\n */\nexport interface IPickUpOptionListProps {\n pickupListOptionMenuText: string;\n pickupmodeList?: DeliveryOption[];\n onChange(deliveryCode: string): Promise;\n}\n\n/**\n * Interface pickup option list state.\n */\nexport interface IPickOptionListState {\n expandSiteOptions: boolean;\n}\n\n/**\n * Simple Pickup option dropdown with Button to get menu option.\n */\nexport class PickUpOptionList extends React.PureComponent {\n private readonly _pickupListOptionMenu: React.RefObject;\n\n private readonly _pickupListOptionButton: React.RefObject;\n\n private readonly eventsToBeBind = ['click', 'touchstart'];\n\n public constructor(props: IPickUpOptionListProps) {\n super(props);\n this._renderDeliveryOptions = this._renderDeliveryOptions.bind(this);\n this._pickupListOptionMenu = React.createRef();\n this._pickupListOptionButton = React.createRef();\n this.state = {\n expandSiteOptions: false\n };\n }\n\n public componentDidMount(): void {\n for (const event of this.eventsToBeBind) {\n window.addEventListener(event, this.handleDocumentClick, true);\n }\n }\n\n public componentWillUnmount(): void {\n for (const event of this.eventsToBeBind) {\n window.removeEventListener(event, this.handleDocumentClick, true);\n }\n }\n\n public render(): JSX.Element {\n const { pickupListOptionMenuText, pickupmodeList } = this.props;\n\n return (\n
\n \n {pickupListOptionMenuText}\n \n \n {this.state.expandSiteOptions ? (\n
    \n {pickupmodeList?.map((delivery: DeliveryOption) => {\n return (\n
  • \n \n \n {delivery.Description}\n \n \n
  • \n );\n })}\n
\n ) : null}\n
\n );\n }\n\n /**\n * Handle the document click.\n * @param event -- Event object.\n */\n private readonly handleDocumentClick = (event: Event): void => {\n const htmlElement = event.target as HTMLElement;\n if (\n !(\n (this._pickupListOptionButton.current !== null &&\n (event.target === this._pickupListOptionButton.current ||\n this._pickupListOptionButton.current.contains(htmlElement))) ||\n (this._pickupListOptionMenu.current !== null &&\n (event.target === this._pickupListOptionMenu.current || this._pickupListOptionMenu.current.contains(htmlElement)))\n )\n ) {\n this.setState({\n expandSiteOptions: false\n });\n }\n };\n\n private _renderDeliveryOptions(event: React.MouseEvent): void {\n event.stopPropagation();\n const isExpandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !isExpandSiteOptionsState\n });\n }\n\n /**\n * Select Delivery option.\n * @param event -- Event Object.\n */\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\n event.preventDefault();\n const deliveryCode = event.currentTarget.getAttribute('data-value');\n if (deliveryCode && deliveryCode.length > 0) {\n await this.props.onChange(deliveryCode);\n }\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PickUpOptionList } from '../pickup-option-list';\nimport { buildDistanceString, matchDeliveryOptions } from '../store-selector-location-line-item';\n\n/**\n * Store Locator line item resources.\n */\nexport interface ISelectedStoreResources {\n availabilityInfoHeader: string;\n closedText: string;\n outOfStock: string;\n inStock: string;\n currentLocation: string;\n selectLocation: string;\n selectLocationAriaLabelFormat: string;\n setAsPreferredStoreText: string;\n setAsPreferredStoreTextAriaLabel: string;\n preferredStoreText: string;\n preferredStoreAriaLabel: string;\n}\n\n/**\n * Store Selector resources.\n */\nexport interface ISelectedStoreProps {\n className?: string;\n shouldHideStockStatus?: boolean;\n isCurrentLocation?: boolean;\n isInStock?: boolean;\n selectedStore?: IFullOrgUnitAvailability;\n resources: ISelectedStoreResources;\n stockStatusLabel?: string;\n preferredStoreLocationId: string | null;\n isPreferredStoreEnabled?: boolean;\n isLocationDisabled?: boolean;\n telemetryContent?: ITelemetryContent;\n storePickUpOptionList?: DeliveryOption[];\n productPickUpOptionList?: DeliveryOption[];\n preferredDistanceUnit: string;\n filteredPickupMode?: string;\n handlers: {\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\n onSetAsPreferredStore(locationId: string | undefined): void;\n onRemovePreferredStore(): void;\n closeStoreDetailsModal(): Promise;\n };\n}\n\n/**\n * Store Selector resources.\n */\nexport interface ISelectedStoreViewProps {\n isCurrentLocation?: boolean;\n canSelectLocation?: boolean;\n selectedStore?: IFullOrgUnitAvailability;\n deliveryOptions?: DeliveryOption[];\n isPreferredStore?: boolean;\n resources: ISelectedStoreResources;\n\n storeDetailsMain: INodeProps;\n storeHeader: INodeProps;\n storeName: React.ReactNode;\n storeDistance: React.ReactNode;\n storeDetailsAvailabilityContainer: INodeProps;\n productAvailability: React.ReactNode;\n stockStatus: React.ReactNode;\n currentLocation: React.ReactNode;\n pickUpDeliveryOptionButton: React.ReactNode;\n pickupModes?: React.ReactNode;\n preferredStoreButton?: React.ReactNode;\n removePreferredStoreButton?: React.ReactNode;\n storeDetailsCloseButton?: React.ReactNode;\n handlers: {\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\n onSetAsPreferredStore(locationId: string | undefined): void;\n onRemovePreferredStore(): void;\n closeStoreDetailsModal(): Promise;\n };\n}\n\n/**\n * On Store locator click functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onPickupInStoreClickHandler = (props: ISelectedStoreProps) => () => {\n if (props.selectedStore?.OrgUnitAvailability?.OrgUnitLocation) {\n props.handlers.onSelected(props.selectedStore.OrgUnitAvailability.OrgUnitLocation);\n }\n};\n\n/**\n * Set Preferred store functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onSetPreferredStoreClickHandler = (props: ISelectedStoreProps) => () => {\n props.handlers.onSetAsPreferredStore(props.selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber);\n};\n\n/**\n * On Change functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onChangeHandler = (props: ISelectedStoreProps) => async (deliveryCode: string): Promise => {\n if (props.selectedStore?.OrgUnitAvailability?.OrgUnitLocation) {\n props.handlers.onSelected(props.selectedStore.OrgUnitAvailability.OrgUnitLocation, deliveryCode);\n }\n return Promise.resolve();\n};\n\n/**\n * Remove preferred store functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst removePreferredStoreHandler = (props: ISelectedStoreProps) => () => {\n props.handlers.onRemovePreferredStore();\n};\n\n/**\n * On Store locator click functionality.\n * @param props -Store locator location items.\n * @param pickupMode -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onPickupModeSelectHandler = (props: ISelectedStoreProps, pickupMode?: string) => () => {\n if (props.selectedStore?.OrgUnitAvailability?.OrgUnitLocation) {\n props.handlers.onSelected(props.selectedStore.OrgUnitAvailability.OrgUnitLocation, pickupMode);\n }\n};\n\n/**\n * On store details close functionality.\n * @param props -Store locator location items.\n * @returns Void promise.\n */\nconst storeDetailsModalHandler = (props: ISelectedStoreProps) => async (): Promise => {\n await props.handlers.closeStoreDetailsModal();\n};\n\n/**\n * Method to render pickup modes.\n * @param props - StoreSelector Line item props.\n * @param deliveryOptionList - Product DeliveryOption List.\n * @param pickupInStoreButtonText - Pickup store button text.\n * @param pickupInStoreAriaLabel - Pickup store aria label.\n * @returns Jsx component.\n */\nconst renderPickupModes = (\n props: ISelectedStoreProps,\n deliveryOptionList: DeliveryOption[],\n pickupInStoreButtonText: string,\n pickupInStoreAriaLabel: string\n): JSX.Element | null => {\n if (props.filteredPickupMode === undefined) {\n return (\n \n );\n }\n return (\n \n {pickupInStoreButtonText}\n \n );\n};\n\n/**\n * Renders selected store details.\n * @param props - Store location details props.\n * @returns - Selected Store view props.\n */\nconst selectedStoreDetails = (props: ISelectedStoreProps): ISelectedStoreViewProps => {\n const {\n className,\n shouldHideStockStatus,\n isCurrentLocation,\n isInStock,\n selectedStore,\n resources,\n stockStatusLabel,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n isLocationDisabled,\n telemetryContent,\n storePickUpOptionList,\n productPickUpOptionList,\n preferredDistanceUnit\n } = props;\n\n const parentClassName = className ? className : 'ms-store-select__map__selected_store';\n const storeName: string | undefined = selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName;\n const location = selectedStore?.OrgUnitAvailability?.OrgUnitLocation;\n const distanceAsString: string | undefined = buildDistanceString(location?.Distance, preferredDistanceUnit, isLocationDisabled);\n\n const resourceLabel = isInStock ? resources.inStock : resources.outOfStock;\n const stockLabel = stockStatusLabel ? stockStatusLabel : undefined;\n // eslint-disable-next-line no-nested-ternary -- Required to check stock Label\n const stockText: string | undefined = shouldHideStockStatus ? undefined : stockLabel ? stockLabel : resourceLabel;\n const canSelectLocation = !shouldHideStockStatus && isInStock;\n const pickupInStoreButtonText: string = resources.selectLocation;\n const pickupInStoreAriaLabel: string = resources.selectLocationAriaLabelFormat.replace('{StoreName}', storeName ?? '');\n const isPreferredStore = preferredStoreLocationId === location?.OrgUnitNumber;\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\n const preferredStoreAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\n const removePreferredStoreAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\n\n const viewProps: ISelectedStoreViewProps = {\n selectedStore,\n isCurrentLocation,\n canSelectLocation,\n isPreferredStore,\n resources,\n deliveryOptions: deliveryOptionList,\n storeDetailsMain: {\n tag: 'div' as NodeTag,\n className: `${parentClassName}__main`\n },\n storeHeader: {\n tag: 'div' as NodeTag,\n className: `${parentClassName}__header`\n },\n storeName: {storeName},\n storeDetailsCloseButton: \n ),\n pickupModes: renderPickupModes(props, deliveryOptionList, pickupInStoreButtonText, pickupInStoreAriaLabel),\n preferredStoreButton: isPreferredStoreEnabled ? (\n \n {resources.preferredStoreText}\n \n ) : null,\n removePreferredStoreButton: isPreferredStoreEnabled ? (\n \n {resources.setAsPreferredStoreText}\n \n ) : null,\n handlers: {\n onSelected: props.handlers.onSelected,\n onSetAsPreferredStore: props.handlers.onSetAsPreferredStore,\n onRemovePreferredStore: props.handlers.onRemovePreferredStore,\n closeStoreDetailsModal: props.handlers.closeStoreDetailsModal\n }\n };\n\n return viewProps;\n};\n\n/**\n * Store location line item component.\n */\nexport const SelectedStoreComponent = selectedStoreDetails as (props: ISelectedStoreProps) => ISelectedStoreViewProps;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\nimport get from 'lodash/get';\n\nimport { IStoreSelectorLocationLineItemResources } from '.';\n\nexport interface IHoursDisplayInfo {\n startDayShort: string;\n startDayFull: string;\n endDayShort?: string;\n endDayFull?: string;\n timeRange: string;\n}\n\ninterface IHoursInfo {\n isClosed: boolean;\n openTime?: number;\n closeTime?: number;\n}\n\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\n\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\n if (seconds === undefined) {\n return undefined;\n }\n let hours = Math.floor(seconds / (60 * 60));\n const ampm = hours >= 12 ? 'pm' : 'am';\n hours %= 12;\n hours = hours ? hours : 12;\n const divisorForMinutes = seconds % (60 * 60);\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\n return `${hours}:${minutes} ${ampm}`;\n};\n\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\n switch (day) {\n case 'MON':\n return resources.days.monday;\n case 'TUE':\n return resources.days.tuesday;\n case 'WED':\n return resources.days.wednesday;\n case 'THU':\n return resources.days.thursday;\n case 'FRI':\n return resources.days.friday;\n case 'SAT':\n return resources.days.saturday;\n default:\n // Case 'SUN':\n return resources.days.sunday;\n }\n};\n\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\n switch (day) {\n case 'MON':\n return resources.days.mondayFull;\n case 'TUE':\n return resources.days.tuesdayFull;\n case 'WED':\n return resources.days.wednesdayFull;\n case 'THU':\n return resources.days.thursdayFull;\n case 'FRI':\n return resources.days.fridayFull;\n case 'SAT':\n return resources.days.saturdayFull;\n default:\n // Case 'SUN':\n return resources.days.sundayFull;\n }\n};\n\nconst buildHoursDisplayInfo = (\n startDay: DayType,\n endDay: DayType,\n hoursInfo: string,\n resources: IStoreSelectorLocationLineItemResources\n): IHoursDisplayInfo => {\n return {\n startDayShort: getShortTimeString(startDay, resources),\n startDayFull: getFullTimeString(startDay, resources),\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\n timeRange: hoursInfo\n };\n};\n\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\n if (firstLine.isClosed && secondLine.isClosed) {\n return true;\n }\n\n if (!firstLine.isClosed && !secondLine.isClosed) {\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\n }\n\n return false;\n};\n\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\n return {\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\n };\n};\n\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\n if (hoursInfo.isClosed) {\n return resources.closedText;\n }\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\n\n return `${openFrom}–${openTo}`;\n};\n\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\n const storeHoursList: IHoursDisplayInfo[] = [];\n\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\n\n let periodStart: DayType = 'MON';\n let periodEnd: DayType = 'MON';\n\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\n\n periodStart = 'TUE';\n }\n periodEnd = 'TUE';\n\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\n\n periodStart = 'WED';\n }\n periodEnd = 'WED';\n\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\n\n periodStart = 'THU';\n }\n periodEnd = 'THU';\n\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\n\n periodStart = 'FRI';\n }\n periodEnd = 'FRI';\n\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\n\n periodStart = 'SAT';\n }\n periodEnd = 'SAT';\n\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\n\n periodStart = 'SUN';\n }\n periodEnd = 'SUN';\n\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\n\n return storeHoursList;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DeliveryOption, OrgUnitContact, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { PickUpOptionList } from '../pickup-option-list';\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\n\n/**\n * Store Locator line item resources.\n */\nexport interface IStoreSelectorLocationLineItemResources {\n contactInfoHeader: string;\n storeHoursHeader: string;\n availabilityInfoHeader: string;\n\n closedText: string;\n\n outOfStock: string;\n inStock: string;\n\n currentLocation: string;\n selectLocation: string;\n selectLocationAriaLabelFormat: string;\n setAsPreferredStoreText: string;\n setAsPreferredStoreTextAriaLabel: string;\n preferredStoreText: string;\n preferredStoreAriaLabel: string;\n pickupDeliveryOptionErrorMessage?: string;\n\n days: {\n monday: string;\n tuesday: string;\n wednesday: string;\n thursday: string;\n friday: string;\n saturday: string;\n sunday: string;\n mondayFull: string;\n tuesdayFull: string;\n wednesdayFull: string;\n thursdayFull: string;\n fridayFull: string;\n saturdayFull: string;\n sundayFull: string;\n };\n}\n\n/**\n * Store Locator line item props.\n */\nexport interface IStoreSelectorLocationLineItemProps {\n location: OrgUnitLocation;\n storeHours?: StoreHours;\n\n hideStockStatus?: boolean;\n isInStock?: boolean;\n isCurrentLocation?: boolean;\n\n resources: IStoreSelectorLocationLineItemResources;\n stockStatusLabel?: string;\n storeLocatorView?: boolean;\n isPreferredStoreEnabled?: boolean;\n index: string;\n preferredStoreLocationId: string | null;\n storePickUpOptionList?: DeliveryOption[];\n productPickUpOptionList?: DeliveryOption[];\n filteredPickupMode?: string;\n shouldShowIndex?: boolean;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n preferredDistanceUnit: string;\n isLocationDisabled?: boolean;\n handlers: {\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\n onSetAsPreferredStore(locationId: string | undefined): void;\n onRemovePreferredStore(): void;\n };\n}\n\n/**\n * Store Locator line item action component.\n */\nconst storeSelectorLocationLineItemComponentActions = {\n onLocationSelected(props: IStoreSelectorLocationLineItemProps, deliveryMode?: string): void {\n props.handlers.onSelected(props.location, deliveryMode);\n },\n onSetAsPreferredStore(props: IStoreSelectorLocationLineItemProps): void {\n props.handlers.onSetAsPreferredStore(props.location.OrgUnitNumber);\n },\n onRemovePreferredStore(props: IStoreSelectorLocationLineItemProps): void {\n props.handlers.onRemovePreferredStore();\n }\n};\n\n/**\n * Function to render store hours.\n * @param storeHours - Store Hours object.\n * @param location - Store Unit.\n * @param resources - Resources.\n * @returns - Jsx element.\n */\nconst renderStoreHours = (\n storeHours: StoreHours | undefined,\n location: OrgUnitLocation,\n resources: IStoreSelectorLocationLineItemResources\n): JSX.Element | null => {\n // First, use the store hours. This will allow listing day by day houts\n if (storeHours?.RegularStoreHours) {\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\n\n return (\n
\n {storeHoursList.map(displayTime => (\n
\n {displayTime.endDayShort ? (\n
\n {displayTime.startDayShort}–\n {displayTime.endDayShort}\n
\n ) : (\n
\n {displayTime.startDayShort}\n
\n )}\n
{displayTime.timeRange}
\n
\n ))}\n
\n );\n }\n\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\n\n return (\n
\n {storeOpenFrom}-{storeOpenTo}\n
\n );\n};\n\n/**\n * Function to return distance measure unit.\n * @param distance - Store location within radius.\n * @param preferredDistanceUnit - Unit configuration.\n * @param isLocationDisabled - Flag to check user location.\n * @returns - Unit of distance.\n */\nexport const buildDistanceString = (\n distance: number | undefined,\n preferredDistanceUnit: string,\n isLocationDisabled?: boolean\n): string | undefined => {\n if (distance === undefined || isLocationDisabled) {\n return undefined;\n } else if (distance < 1) {\n return `(<1 ${preferredDistanceUnit})`;\n }\n return `(${Math.floor(distance)} ${preferredDistanceUnit})`;\n};\n\n/**\n * Function to store contact.\n * @param contacts - Store location within radius.\n * @returns - Return primary contact number of store.\n */\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\n if (!contacts) {\n return undefined;\n }\n\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\n\n if (ArrayExtensions.hasElements(allPhoneContacts)) {\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\n\n if (primaryPhoneContact) {\n return primaryPhoneContact.Locator;\n }\n\n return allPhoneContacts[0].Locator;\n }\n\n return undefined;\n};\n\n/**\n * On Store locator click functionality.\n * @param props -Store locator location items.\n * @param pickupMode -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onPickupModeSelectHandler = (props: IStoreSelectorLocationLineItemProps, pickupMode?: string) => () => {\n storeSelectorLocationLineItemComponentActions.onLocationSelected(props, pickupMode);\n};\n\n/**\n * Set Preferred store functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onSetPreferredStoreClickHandler = (props: IStoreSelectorLocationLineItemProps) => () => {\n storeSelectorLocationLineItemComponentActions.onSetAsPreferredStore(props);\n};\n\n/**\n * Remove preferred store functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst removePreferredStoreHandler = (props: IStoreSelectorLocationLineItemProps) => () => {\n storeSelectorLocationLineItemComponentActions.onRemovePreferredStore(props);\n};\n\n/**\n * On Change functionality.\n * @param props -Store locator location items.\n * @returns Store locator selected location line item action.\n */\nconst onChangeHandler = (props: IStoreSelectorLocationLineItemProps) => async (deliveryCode: string): Promise => {\n storeSelectorLocationLineItemComponentActions.onLocationSelected(props, deliveryCode);\n return Promise.resolve();\n};\n\n/**\n * Method to render pickup modes.\n * @param props - StoreSelector Line item props.\n * @param deliveryOptionList - Product DeliveryOption List.\n * @param pickupInStoreButtonText - Pickup store button text.\n * @param pickupInStoreAriaLabel - Pickup store aria label.\n * @returns Jsx component.\n */\nconst renderPickupModes = (\n props: IStoreSelectorLocationLineItemProps,\n deliveryOptionList: DeliveryOption[],\n pickupInStoreButtonText: string,\n pickupInStoreAriaLabel: string\n): JSX.Element | null => {\n if (props.filteredPickupMode === undefined) {\n return (\n \n );\n }\n return (\n \n {pickupInStoreButtonText}\n \n );\n};\n\n/**\n * Method to check if we have atleast one common delivery code between product and channel.\n * @param productdeliveryOptions - Product DeliveryOption List.\n * @param storePickUpOptionList - Channel DeliveryOption List.\n * @returns DeliveryOptionList.\n */\nexport const matchDeliveryOptions = (\n productdeliveryOptions: DeliveryOption[] | undefined,\n storePickUpOptionList: DeliveryOption[] | undefined\n): DeliveryOption[] => {\n const deliveryOption: DeliveryOption[] = [];\n productdeliveryOptions?.map(delivery => {\n const pickup = storePickUpOptionList?.find(_delivery => _delivery.Code === delivery.Code);\n if (pickup) {\n deliveryOption.push(pickup);\n }\n });\n\n return deliveryOption;\n};\n\n/**\n * Renders store location line items.\n * @param props - Store location line items props.\n * @returns - HTML.\n */\nconst storeSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\n const {\n hideStockStatus,\n isCurrentLocation,\n isInStock,\n location,\n resources,\n storeHours,\n stockStatusLabel,\n storeLocatorView,\n index,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n isLocationDisabled,\n telemetryContent,\n storePickUpOptionList,\n productPickUpOptionList,\n shouldShowIndex\n } = props;\n\n const storeName: string | undefined = location.OrgUnitName;\n const distanceAsString: string | undefined = buildDistanceString(location.Distance, props.preferredDistanceUnit, isLocationDisabled);\n const storeAddress: string | undefined = location.Address;\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\n\n const resourceLabel = isInStock ? resources.inStock : resources.outOfStock;\n const stockLabel = stockStatusLabel ? stockStatusLabel : undefined;\n const stockText: string | undefined = hideStockStatus ? undefined : stockLabel ? stockLabel : resourceLabel;\n const canSelectLocation = hideStockStatus || isInStock;\n const pickupInStoreButtonText: string = resources.selectLocation;\n const pickupInStoreAriaLabel: string = resources.selectLocationAriaLabelFormat.replace('{StoreName}', storeName || '');\n const isPreferredStore = preferredStoreLocationId === location.OrgUnitNumber;\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\n const preferredStoreAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\n const removePreferredStoreAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\n const [isError, setError] = React.useState(false);\n\n const pickUpButtonClickHandler = (props: IStoreSelectorLocationLineItemProps) => () => {\n if (deliveryOptionList.length === 0) {\n setError(true);\n } else {\n storeSelectorLocationLineItemComponentActions.onLocationSelected(props);\n }\n };\n\n /* eslint-disable prettier/prettier */\n return (\n
\n
\n {(shouldShowIndex || storeLocatorView) && {index}}\n {storeName}\n {distanceAsString ? \n {' '}\n {distanceAsString}\n : false}\n
\n
\n
\n

{resources.contactInfoHeader}

\n {storeAddress && (\n
\n \n {storeAddress}\n
\n )}\n {phoneNumber && (\n
\n \n {phoneNumber}\n
\n )}\n
\n
\n

{resources.storeHoursHeader}

\n {renderStoreHours(storeHours, location, resources)}\n
\n {!storeLocatorView && (\n
\n {!hideStockStatus &&

{resources.availabilityInfoHeader}

}\n {stockText &&

{stockText}

}\n {isCurrentLocation ? (\n

{resources.currentLocation}

\n ) : canSelectLocation ? (\n deliveryOptionList.length === 0 ? (\n \n {pickupInStoreButtonText}\n \n ) : (\n renderPickupModes(props, deliveryOptionList, pickupInStoreButtonText, pickupInStoreAriaLabel)\n )\n ) : (\n false\n )}\n
\n )}\n {isPreferredStoreEnabled ? (\n isPreferredStore ? (\n \n {resources.preferredStoreText}\n \n ) : (\n \n {resources.setAsPreferredStoreText}\n \n )\n ) : null}\n
\n {isError ? (\n \n \n ) : ('')}\n
\n );\n};\n\n/**\n * Store location line item component.\n */\nexport const StoreSelectorLocationLineItemComponent = storeSelectorLocationLineItem as (\n props: IStoreSelectorLocationLineItemProps\n) => JSX.Element;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { DeliveryOption, ItemAvailability, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\nimport { IStoreInfo, IStoreSelectionStateContext } from '@msdyn365-commerce-modules/bopis-utilities';\nimport {\n ArrayExtensions,\n getFullAvailableInventoryNearby,\n GetFullAvailableInventoryNearbyInput,\n getOrgUnitLocationsByArea,\n GetOrgUnitLocationsByAreaInput,\n IFullOrgUnitAvailability\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n isMobile,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n NodeTag,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport {\n StoreSelectorEmptyMessage,\n StoreSelectorFoundLocationsMessage,\n StoreSelectorLocationLines,\n StoreSelectorSearchForm,\n StoreSelectorTermsOfService,\n StoreSelectorWaiting\n} from './components';\nimport { ISelectedStoreProps, ISelectedStoreViewProps, SelectedStoreComponent } from './components/selected-store/selected-store';\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './components/store-selector-location-line-item/date-time-helpers';\nimport { IStoreSelectorData } from './store-selector.data';\nimport {\n IStoreSelectorProps,\n IStoreSelectorResources,\n mode as modeEnum,\n searchRadiusUnit as SearchRadiusUnit,\n style as styleEnum\n} from './store-selector.props.autogenerated';\n\n/**\n * StoreSelector State Interface.\n */\nexport interface IStoreSelectorState {\n isSearchInProgress: boolean;\n searchTerm?: string;\n isSeeAllStoreValue: boolean;\n isLocationDisabled?: boolean;\n filteredPickupMode?: string;\n}\n\n/**\n * StoreSelector View Props Interface.\n */\nexport interface IStoreSelectorViewProps extends IStoreSelectorProps {\n state: IStoreSelectorState;\n\n // Containers:\n ModuleProps: IModuleProps;\n BodyContainerProps: INodeProps;\n FooterContainerProps: INodeProps;\n HeaderContainerProps: INodeProps;\n HeaderProps?: React.ReactNode;\n\n // Components\n locationsMessage?: React.ReactNode;\n search?: React.ReactNode;\n spinner?: React.ReactNode;\n locationsList?: React.ReactNode;\n selectedLocation?: ISelectedStoreViewProps;\n noLocationsMessage?: React.ReactNode;\n terms?: React.ReactNode;\n headerText?: React.ReactNode;\n sortLocations?: IFullOrgUnitAvailability[];\n locationListProps?: IStoreSelectorLocationLineItemProps[];\n bodyWrapperProps?: INodeProps;\n storeResultContainerProps?: INodeProps;\n mapContainerProps?: INodeProps;\n maps?: React.ReactNode;\n isMobileView?: boolean;\n storeDetailsModal?: INodeProps;\n\n callbacks: {\n closeDialog(): Promise;\n searchTermChanged(searchTerm: string): Promise;\n performSearch(searchTerm: string): Promise;\n selectedLocation(location: OrgUnitLocation | undefined): Promise;\n getAndUpdateUserLocation(): Promise;\n attachMapAutoSuggest(): Promise;\n onSuggestionSelected(result: Microsoft.Maps.ISuggestionResult): Promise;\n setPreferredStore(storeId: string | undefined): Promise;\n removePreferredStore(): Promise;\n setSelectedStore(storeId: string | undefined): Promise;\n setOrgUnitStoreInformation(location: OrgUnitLocation | undefined): Promise;\n };\n}\n\n/**\n * StoreSelectorLocation Line Resources Interface.\n */\nexport interface IStoreSelectorLocationLineItemResources {\n contactInfoHeader: string;\n storeHoursHeader: string;\n availabilityInfoHeader: string;\n closedText: string;\n outOfStock: string;\n inStock: string;\n currentLocation: string;\n selectLocation: string;\n selectLocationAriaLabelFormat: string;\n setAsPreferredStoreText: string;\n setAsPreferredStoreTextAriaLabel: string;\n preferredStoreText: string;\n preferredStoreAriaLabel: string;\n\n days: {\n monday: string;\n tuesday: string;\n wednesday: string;\n thursday: string;\n friday: string;\n saturday: string;\n sunday: string;\n mondayFull: string;\n tuesdayFull: string;\n wednesdayFull: string;\n thursdayFull: string;\n fridayFull: string;\n saturdayFull: string;\n sundayFull: string;\n };\n}\n\n/**\n * ILocationHours Interface.\n */\nexport interface ILocationHours {\n openFrom?: string;\n openTo?: string;\n}\n\n/**\n * StoreSelectorLocation Line Item Props Interface.\n */\nexport interface IStoreSelectorLocationLineItemProps {\n location: OrgUnitLocation;\n storeHours?: StoreHours;\n storeHoursList?: IHoursDisplayInfo[];\n\n hideStockStatus?: boolean;\n isInStock?: boolean;\n isCurrentLocation?: boolean;\n\n resources: IStoreSelectorLocationLineItemResources;\n stockStatusLabel?: string;\n storeLocatorView?: boolean;\n isPreferredStoreEnabled?: boolean;\n index: string;\n preferredStoreLocationId: string | null;\n storePickUpOptionList?: DeliveryOption[];\n productPickUpOptionList?: DeliveryOption[];\n selectedStoreLocationId?: string;\n locationOpen?: ILocationHours;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n preferredDistanceUnit: string;\n isLocationDisabled?: boolean;\n handlers: {\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\n onSetAsPreferredStore(locationId: string | undefined): void;\n onRemovePreferredStore(): void;\n closeStoreDetailsModal(): Promise;\n };\n onClick: (locationId: string | undefined) => void;\n}\n\n/**\n *\n * Pick Up In Store module.\n * @extends React.Component>}\n */\n@observer\nclass StoreSelector extends React.Component, IStoreSelectorState> {\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private storeCounter: number;\n\n private isPreferredStoreEnabled?: boolean;\n\n public constructor(props: IStoreSelectorProps) {\n super(props);\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.state = { isSearchInProgress: true, searchTerm: '', isSeeAllStoreValue: false, filteredPickupMode: undefined };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.storeCounter = 0;\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n config: { autoSuggestionEnabled: isAutoSuggestionEnabled }\n } = this.props;\n\n // Adding Timeout to make sure it loads the data based upon the preferred store.\n setTimeout(() => {\n this._getAndUpdateStoreLocation();\n }, 0);\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isDialogOpen,\n async () => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (context?.id === this.props.id) {\n this._getAndUpdateStoreLocation();\n }\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.context?.id,\n async () => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (!context || context.id === this.props.id) {\n await this._searchTermChanged('');\n this._getAndUpdateStoreLocation();\n }\n }\n );\n\n if (this.props.data.storeSelectorStateManager.result?.loadMapApi) {\n await this.props.data.storeSelectorStateManager.result.loadMapApi({\n key: channel?.BingMapsEnabled ? channel.BingMapsApiKey : '',\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsEnabled ? channel.BingMapsApiKey : '',\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context.actionContext.requestContext.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.availabilitiesWithHours.result,\n async () => {\n if (this.props.data.storeSelectorStateManager.result?.isDialogOpen) {\n const storeLocationList = this.props.data.availabilitiesWithHours.result;\n if (storeLocationList) {\n await this._setOrgUnitStoreInformation(storeLocationList);\n }\n }\n }\n );\n\n if (isAutoSuggestionEnabled) {\n when(\n () => {\n const isMapApiLoaded = !!this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\n const isDialogOpen = !!this.props.data.storeSelectorStateManager.result?.isDialogOpen;\n const isSameContext = this.props.data.storeSelectorStateManager.result?.context?.id === this.props.id;\n return isMapApiLoaded && isDialogOpen && isSameContext;\n },\n () => {\n setTimeout(async () => {\n await this._attachMapAutoSuggest();\n }, 0);\n }\n );\n }\n }\n\n public shouldComponentUpdate(): boolean {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n if (context && context.id === this.props.id) {\n return true;\n }\n return false;\n }\n\n // eslint-disable-next-line complexity -- disabling the complexity for this method for now as its causing lot of other warnings\n public render(): JSX.Element {\n const {\n config: {\n termsOfServiceLink,\n className,\n heading,\n mode,\n style,\n setAsPreferredStore: shouldSetAsPreferredStore,\n showAllStores: shouldShowAllStores,\n lookupRadius,\n enablePickupFilterToShowStore: hasEnablePickupFilterToShowStore,\n searchRadiusUnit\n },\n context: {\n telemetry,\n app: { config: appConfig },\n actionContext: {\n requestContext: { channel, cookies }\n }\n },\n slots: { maps: mapSlot },\n resources,\n data: {\n availabilitiesWithHours: { result: availabilitiesWithHours },\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations }\n }\n } = this.props;\n\n this.storeCounter = 0;\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n const isMapDisabled = !(channel?.BingMapsApiKey && channel.BingMapsEnabled);\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n const isDialogOpen: boolean = storeSelectorStateManager\n ? storeSelectorStateManager.isDialogOpen && context?.id === this.props.id\n : false;\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n const isInlineView = styleDefault === styleEnum.inline;\n const isLocatorView = modeDefault === modeEnum.findStores;\n const shouldHideInventory = isLocatorView;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\n const shouldDisplayList = storeSelectorStateManager?.listMapViewState?.displayList;\n this.isPreferredStoreEnabled = shouldSetAsPreferredStore && cookies?.isConsentGiven();\n const canShowLocationView =\n context && (context.showMapViewLink === undefined || context.showMapViewLink) && storeSelectorStateManager?.isMapModuleLoaded;\n\n const storeSelectorActions = {\n async toggleListMapViewState(): Promise {\n await storeSelectorStateManager?.toggleListMapViewState();\n }\n };\n\n if (!channel?.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n }\n\n const configHeading = heading ? heading : isLocatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText;\n const preferredDistanceUnit =\n searchRadiusUnit === SearchRadiusUnit.kilometers ? resources.kilometersShortText : resources.milesShortText;\n const preferredLocationId = preferredStore?.StoreId ? preferredStore.StoreId : '';\n let storeLocationList: IFullOrgUnitAvailability[] | undefined = shouldHideInventory ? storeLocations : availabilitiesWithHours;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment -- Reading value from app config.\n const isEnableOutofStock: boolean = appConfig?.enableStockCheck || false;\n const alreadySelectedLocation = context ? context.alreadySelectedLocation : undefined;\n const productPickUpOptionList = storeSelectorStateManager?.context?.deliveryOptions?.DeliveryOptions;\n if (this.state.filteredPickupMode && storeLocationList) {\n storeLocationList = this.onFilterLocations(storeLocationList, this.state.filteredPickupMode);\n }\n\n let sortLocation = null;\n if (storeLocationList) {\n sortLocation = this._sortStores(storeLocationList, this.isPreferredStoreEnabled, preferredLocationId);\n }\n\n const locationListProps = this._getStoreLocationListProps(\n isEnableOutofStock,\n isLocatorView,\n preferredLocationId,\n this.isPreferredStoreEnabled,\n selectedStoreLocationId,\n sortLocation ?? null,\n preferredDistanceUnit,\n alreadySelectedLocation,\n productPickUpOptionList\n );\n\n const hasMapSlot = ArrayExtensions.hasElements(mapSlot);\n const dialogClassName = hasMapSlot ? 'ms-store-select__map' : '';\n const viewProps: IStoreSelectorViewProps = {\n ...(this.props as IStoreSelectorProps),\n state: this.state,\n maps: hasMapSlot ? mapSlot[0] : undefined,\n\n ModuleProps: {\n tag: isInlineView ? ('div' as NodeTag) : Modal,\n moduleProps: this.props,\n className: classname(\n `ms-store-${isInlineView ? 'locate' : 'select'}`,\n className,\n dialogClassName,\n isInlineView ? '' : 'msc-modal-input-required'\n ),\n autoFocus: true,\n fade: true,\n isOpen: isDialogOpen,\n 'aria-label': configHeading,\n onClosed: this._closeDialog,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n toggle: this._closeDialog\n },\n isMobileView: isMobileDevice,\n HeaderContainerProps: {\n tag: isInlineView ? ('div' as NodeTag) : ModalHeader,\n className: `ms-store-select__${isInlineView ? 'header' : 'modal-header'}`,\n toggle: this._closeDialog\n },\n HeaderProps: configHeading && (\n \n ),\n FooterContainerProps: {\n tag: isInlineView ? ('div' as NodeTag) : ModalFooter,\n className: `ms-store-select__${isInlineView ? 'footer' : 'modal-footer'} ${!shouldDisplayList ? 'map-only-view' : ''}`\n },\n BodyContainerProps: {\n tag: isInlineView ? ('div' as NodeTag) : ModalBody,\n className: `ms-store-select__${isInlineView ? 'body' : 'modal-body'}`\n },\n bodyWrapperProps: {\n tag: 'div' as NodeTag,\n className: 'ms-store-select__body_wrapper'\n },\n storeResultContainerProps: {\n tag: 'div' as NodeTag,\n className: 'ms-store-select__store_container'\n },\n mapContainerProps: {\n tag: 'div' as NodeTag,\n className: 'ms-store-select__map_container'\n },\n storeDetailsModal: {\n tag: 'div' as NodeTag,\n className: `ms-store-select__map__selected_store__modal ${\n selectedStoreLocationId && isDialogOpen && !shouldDisplayList ? 'show' : 'hide'\n }`\n },\n locationsMessage: !this.state.isLocationDisabled && (\n \n ),\n selectedLocation: this.renderSelectedStore(\n shouldHideInventory,\n preferredDistanceUnit,\n preferredStore,\n this.isPreferredStoreEnabled,\n isEnableOutofStock,\n productPickUpOptionList,\n shouldDisplayList\n ),\n search: (\n \n ),\n spinner: ,\n locationsList: ArrayExtensions.hasElements(storeLocationList) ? (\n \n ) : (\n undefined\n ),\n noLocationsMessage: ,\n terms: (\n \n ),\n\n // Not being used in current context, we can use it here to pass more props.\n headerText: (\n {heading ? heading : isLocatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText}\n ),\n sortLocations: sortLocation,\n locationListProps,\n callbacks: {\n searchTermChanged: this._searchTermChanged,\n performSearch: this._performSearch,\n closeDialog: this._closeDialog,\n selectedLocation: this._onOrgUnitLocationSelected,\n getAndUpdateUserLocation: async () => {\n this._getAndUpdateStoreLocation();\n return Promise.resolve();\n },\n attachMapAutoSuggest: this._attachMapAutoSuggest,\n onSuggestionSelected: this._onOrgUnitLocationSelected,\n setPreferredStore: this._setPreferredStore,\n removePreferredStore: this._removePreferredStore,\n setSelectedStore: this._setSelectedStore,\n setOrgUnitStoreInformation: this._setOrgUnitStoreInformation\n }\n } as IStoreSelectorViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Render the selected store for the mobile devices.\n * @param shouldHideInventory -- Hide Inventory.\n * @param preferredDistanceUnit -- Preferred Distance Unit.\n * @param preferredStore -- Preferred Store.\n * @param isPreferredStoreEnabled -- Is Preferred Store Enabled.\n * @param hasEnabledOutOfStockCheck -- Stock check is enabled or not.\n * @param productPickUpOptionList -- Product pickup option list.\n * @param shouldDisplayList - Should Display list.\n * @returns -- Returns the view props.\n */\n public renderSelectedStore = (\n shouldHideInventory: boolean,\n preferredDistanceUnit: string,\n preferredStore: IStoreInfo | undefined,\n isPreferredStoreEnabled: boolean | undefined,\n hasEnabledOutOfStockCheck: boolean,\n productPickUpOptionList?: DeliveryOption[],\n shouldDisplayList?: boolean\n ): ISelectedStoreViewProps | undefined => {\n const {\n resources,\n data: {\n availabilitiesWithHours: { result: availabilitiesWithHours },\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations }\n }\n } = this.props;\n\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n const selectedStore = (shouldHideInventory ? storeLocations : availabilitiesWithHours)?.find(\n store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === selectedStoreLocationId\n );\n const orgUnitLocation = selectedStore?.OrgUnitAvailability?.OrgUnitLocation;\n const selectedStoreResources = this._mapResources(resources);\n\n if (!shouldDisplayList && selectedStore) {\n const selectedProps: ISelectedStoreProps = {\n shouldHideStockStatus: shouldHideInventory,\n isCurrentLocation: this._isCurrentLocation(orgUnitLocation, context?.alreadySelectedLocation),\n isInStock: this._isProductInStock(hasEnabledOutOfStockCheck, selectedStore.OrgUnitAvailability?.ItemAvailabilities),\n selectedStore,\n resources: selectedStoreResources,\n stockStatusLabel: this._stockInventoryLabel(selectedStore),\n preferredStoreLocationId: preferredStore?.StoreId ? preferredStore.StoreId : '',\n isPreferredStoreEnabled,\n isLocationDisabled: this.state.isLocationDisabled,\n telemetryContent: this.telemetryContent,\n storePickUpOptionList: selectedStore.OrgUnitPickUpDeliveryModes?.DeliveryOptions,\n productPickUpOptionList,\n preferredDistanceUnit,\n handlers: {\n onSelected: this._onOrgUnitLocationSelected,\n onSetAsPreferredStore: this._setPreferredStore,\n onRemovePreferredStore: this._removePreferredStore,\n closeStoreDetailsModal: this._closeStoreDetailModal\n }\n };\n\n return SelectedStoreComponent(selectedProps);\n }\n\n return undefined;\n };\n\n /**\n * Method to be called on link text change.\n * @param event -Content Edit Event.\n */\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.termsOfServiceLink) {\n this.props.config.termsOfServiceLink.linkText = event.target.value;\n }\n };\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading = event.target.value;\n };\n\n /**\n * Show all stores handler function.\n */\n private readonly onShowAllStoresHandler = () => {\n this._getAndUpdateStoreLocation(true);\n this.setState({ filteredPickupMode: undefined });\n };\n\n /**\n * Method to be called for filtered the store location based on the filter selected by the user.\n * @param stores -All the stores from the API.\n * @param filteredPickupMode -Filter selected by the user.\n * @returns -Filtered stores.\n */\n private readonly onFilterLocations = (stores: IFullOrgUnitAvailability[], filteredPickupMode: string) => {\n return stores.filter(location => {\n return location.OrgUnitPickUpDeliveryModes?.DeliveryOptions?.some(deliveryOption => {\n return deliveryOption.Code === filteredPickupMode;\n });\n });\n };\n\n /**\n * Filter Store by pickup mode.\n * @param deliveryCode -Delivery Code.\n */\n private readonly onFilteredPickupMode = (deliveryCode: string) => {\n this.setState({ filteredPickupMode: deliveryCode });\n };\n\n /**\n * Method will sort all stores.\n * @param stores -Stores List.\n * @param isPreferredStoreEnabled -Module config value.\n * @param preferredStoreLocationId -Store Id.\n * @returns List of Stores.\n */\n // eslint-disable-next-line class-methods-use-this -- No need of introducing new variable.\n private _sortStores(\n stores: IFullOrgUnitAvailability[],\n isPreferredStoreEnabled: boolean | undefined,\n preferredStoreLocationId: string\n ): IFullOrgUnitAvailability[] {\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\n isPreferredStoreEnabled &&\n preferredStoreLocationId &&\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === preferredStoreLocationId;\n\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\n }\n\n /**\n * Method will list of store selector location line.\n * @param hasEnabledOutOfStockCheck -Stores List.\n * @param isStoreLocatorView -Module config value.\n * @param preferredStoreLocationId -Store Id.\n * @param isPreferredStoreEnabled -Stores List.\n * @param selectedStoreLocationId -Module config value.\n * @param stores -Store Id.\n * @param preferredDistanceUnit -Module config value.\n * @param alreadySelectedLocation -Already Selected Location.\n * @param productPickUpOptionList -Product supported Pickup Modes List.\n * @returns List of StoreSelectorLocation Line.\n */\n private _getStoreLocationListProps(\n hasEnabledOutOfStockCheck: boolean,\n isStoreLocatorView: boolean,\n preferredStoreLocationId: string,\n isPreferredStoreEnabled: boolean | undefined,\n selectedStoreLocationId: string | undefined,\n stores: IFullOrgUnitAvailability[] | null,\n preferredDistanceUnit?: string | undefined,\n alreadySelectedLocation?: OrgUnitLocation,\n productPickUpOptionList?: DeliveryOption[]\n ): IStoreSelectorLocationLineItemProps[] {\n const storeList: IStoreSelectorLocationLineItemProps[] = [];\n if (ArrayExtensions.hasElements(stores)) {\n stores.map((store, index: number) => {\n const storeLineProps = this._createStoreLocationList(\n store,\n index,\n hasEnabledOutOfStockCheck,\n isStoreLocatorView,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n selectedStoreLocationId,\n preferredDistanceUnit,\n alreadySelectedLocation,\n productPickUpOptionList\n );\n if (storeLineProps) {\n storeList.push(storeLineProps);\n }\n });\n }\n return storeList;\n }\n\n /**\n * Initialize Map AutoSuggest.\n */\n private readonly _attachMapAutoSuggest = async (): Promise => {\n const {\n config: { autoSuggestOptions },\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager?.isMapApiLoaded && !this.autoSuggestManager) {\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\n /**\n * Callback for the autosuggest API.\n */\n callback: () => {\n const options = { ...autoSuggestOptions, countryCode: channel?.ChannelCountryRegionISOCode };\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\n this.autoSuggestManager.attachAutosuggest(\n `#ms-store-select__search-box_${this.props.id}`,\n `#ms-store-select__search-box-container_${this.props.id}`,\n this._onSuggestionSelected\n );\n },\n\n /**\n * Error call back for autosuggest API.\n */\n errorCallback: () => {\n if (telemetry) {\n telemetry.debug('Unable to attach map auto suggest.');\n }\n },\n credentials: channel?.BingMapsApiKey\n });\n }\n };\n\n /**\n * On Selecting Location Suggestion.\n * @param result - Map Suggestions List.\n */\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (context && context.id === this.props.id) {\n await this._searchTermChanged(result.formattedSuggestion);\n await this._performSearch(result.formattedSuggestion);\n }\n };\n\n /**\n * On Selecting Preferred Store.\n * @param storeId - Store Id.\n */\n private readonly _setPreferredStore = async (storeId: string | undefined): Promise => {\n if (!storeId) {\n return;\n }\n\n const {\n context: {\n actionContext: {\n requestContext: { cookies }\n }\n },\n config: { mode },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations },\n availabilitiesWithHours: { result: availabilitiesWithHours }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n\n let stores: IFullOrgUnitAvailability[];\n if (modeDefault === modeEnum.findStores && storeLocations) {\n stores = storeLocations;\n } else {\n stores = availabilitiesWithHours!;\n }\n\n const preferredStore = stores.find(store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === storeId);\n\n await storeSelectorStateManager.setPreferredStoreLocation(\n storeId,\n preferredStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName,\n cookies.isConsentGiven(),\n preferredStore?.OrgUnitAvailability?.OrgUnitLocation?.Latitude,\n preferredStore?.OrgUnitAvailability?.OrgUnitLocation?.Longitude\n );\n };\n\n /**\n * On Removing Preferred Store.\n */\n private readonly _removePreferredStore = async (): Promise => {\n const {\n context: {\n actionContext: {\n requestContext: { cookies }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n\n await storeSelectorStateManager.clearPreferredStore(cookies.isConsentGiven());\n };\n\n /**\n * Method called to close the store details modal that comes up on clicking the pushpin.\n * @returns Void promise.\n */\n private readonly _closeStoreDetailModal = async (): Promise => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n await storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n };\n\n /**\n * On Selecting Store for pickup.\n * @param storeId - Store Id.\n */\n private readonly _setSelectedStore = async (storeId: string | undefined): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n\n await storeSelectorStateManager.setSelectedStoreLocationId(storeId);\n };\n\n /**\n * Method to be called on search.\n * @param searchTerm - Search string.\n */\n private readonly _performSearch = async (searchTerm: string): Promise => {\n const {\n context: { actionContext },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!searchTerm || !storeSelectorStateManager) {\n return;\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\n\n const location = await storeSelectorStateManager.geoLocate(searchTerm.trim() !== '' ? searchTerm : '0', actionContext);\n\n if (location) {\n await this._updateLocations(location.latitude, location.longitude);\n } else {\n await this._updateLocations();\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n };\n\n /**\n * Method to be called on search term changed.\n * @param searchTerm - Search string.\n */\n private readonly _searchTermChanged = async (searchTerm: string): Promise => {\n this.setState({ searchTerm });\n };\n\n /**\n * Method to be called updating the store location.\n * @param shouldShowAllStores - Flag to show all stores.\n */\n private readonly _getAndUpdateStoreLocation = (shouldShowAllStores?: boolean): void => {\n const {\n config: { style },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n\n if (styleDefault !== styleEnum.inline && (!storeSelectorStateManager || !storeSelectorStateManager.isDialogOpen)) {\n // Store selector dialog isn't open yet, so don't try and update anything\n return;\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\n\n if (navigator?.geolocation) {\n navigator.geolocation.getCurrentPosition(\n async position => {\n // eslint-disable-next-line react/no-unused-state -- This state is used in the views.\n this.setState({ isLocationDisabled: false, isSearchInProgress: true });\n if (shouldShowAllStores) {\n this.setState({ isSeeAllStoreValue: true });\n await this._searchTermChanged('');\n await this._updateLocations(position.coords.latitude, position.coords.longitude, 0);\n } else {\n await this._updateLocations(position.coords.latitude, position.coords.longitude);\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n },\n async error => {\n // If the location setting is turned off\n if (error.PERMISSION_DENIED) {\n this.setState({ isLocationDisabled: true, isSeeAllStoreValue: true });\n await this._searchTermChanged('');\n await this._updateLocations(0, 0, 0);\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n },\n { timeout: 5000 }\n );\n } else {\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n }\n };\n\n /**\n * Method to be called closing the store selector dialog.\n * @returns Void promise.\n */\n private readonly _closeDialog = async (): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n this.setState({ searchTerm: '' });\n\n if (storeSelectorStateManager) {\n storeSelectorStateManager.context?.parentElementRef?.current?.focus();\n return storeSelectorStateManager.closeDialog();\n }\n };\n\n /**\n * Method to set store info.\n * @param orgUnitStoreInformation - Store Info Object.\n * @returns Void promise.\n */\n private readonly _setOrgUnitStoreInformation = async (orgUnitStoreInformation: IFullOrgUnitAvailability[]): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n config: { style },\n telemetry\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n\n const context = storeSelectorStateManager.context;\n const moduleId: string = context?.id ? context.id : this.props.id;\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n let input: IStoreSelectionStateContext = {\n /**\n * On Location selected.\n * @returns - Returns promise.\n */\n onLocationSelected: async () => {\n // TO-DO handle event for when location in selected\n return Promise.resolve();\n }\n };\n\n if (storeSelectorStateManager.context) {\n input = storeSelectorStateManager.context;\n }\n\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager.preferredStore;\n const preferredLocationId = preferredStore?.StoreId ? preferredStore.StoreId : '';\n const storeLocationList = this._sortStores(orgUnitStoreInformation, this.isPreferredStoreEnabled, preferredLocationId);\n\n input = {\n ...input,\n id: moduleId,\n showMapViewLink: context?.showMapViewLink,\n parentElementRef: context?.parentElementRef,\n isDialog: styleDefault === styleEnum.dialog,\n orgUnitStoreInformation: storeLocationList,\n product: context?.product\n };\n\n await storeSelectorStateManager.setOrgUnitStoreInformation(input).catch((error: Error) => {\n if (telemetry) {\n telemetry.error(error.message);\n telemetry.debug('Unable to Update store location state');\n }\n });\n };\n\n /**\n * Method to update user location.\n * @param latitude - User location.\n * @param longitude - User location.\n * @param radius - Search Criteria Radius.\n * @returns Void promise.\n */\n private readonly _updateLocations = async (latitude?: number, longitude?: number, radius?: number): Promise => {\n const {\n config: { mode, lookupRadius, style, searchRadiusUnit },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n const calRadius = radius || radius === 0 ? radius : lookupRadius || 50;\n const distanceUnitValue = searchRadiusUnit === SearchRadiusUnit.kilometers ? 1 : 0;\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\n let localLatitude = this.state.searchTerm || !preferredStore?.Latitude ? latitude : preferredStore.Latitude;\n let long = this.state.searchTerm || !preferredStore?.Longitude ? longitude : preferredStore.Longitude;\n if (styleDefault === styleEnum.inline) {\n const lastInlineStoreLocation = storeSelectorStateManager?.lastInlineShownStoreInfo;\n if (lastInlineStoreLocation && !this.state.searchTerm) {\n localLatitude = lastInlineStoreLocation.Latitude ? lastInlineStoreLocation.Latitude : localLatitude;\n long = lastInlineStoreLocation.Longitude ? lastInlineStoreLocation.Longitude : long;\n }\n await storeSelectorStateManager?.setLastInlineStoreInfo(localLatitude, long);\n }\n\n if (modeDefault === modeEnum.findStores) {\n await this.getOrgUnitLocationByArea(calRadius, distanceUnitValue, localLatitude, long);\n return;\n }\n\n await this.getFullAvailableInventoryNearby(calRadius, distanceUnitValue, localLatitude, long);\n };\n\n /**\n * Get org unit location by area.\n * @param calRadius - Radius.\n * @param distanceUnitValue - Distance unit value.\n * @param latitude - Latitude.\n * @param longitude - Longitude.\n * @returns - Returns a void promise.\n */\n private readonly getOrgUnitLocationByArea = async (\n calRadius: number,\n distanceUnitValue: number,\n latitude?: number,\n longitude?: number\n ): Promise => {\n const {\n context: { actionContext }\n } = this.props;\n const orgUnitLocationsInput = new GetOrgUnitLocationsByAreaInput(\n latitude,\n longitude,\n calRadius,\n distanceUnitValue,\n this.state.isLocationDisabled\n );\n\n const orgUnitLocations = await getOrgUnitLocationsByArea(orgUnitLocationsInput, actionContext);\n if (orgUnitLocations) {\n await this._setOrgUnitStoreInformation(orgUnitLocations);\n await this._setSelectedStore(undefined);\n }\n };\n\n /**\n * Get full available inventory nearby.\n * @param calRadius - Radius.\n * @param distanceUnitValue - Distance unit value.\n * @param latitude - Latitude.\n * @param longitude - Longitude.\n * @returns - Returns a void promise.\n */\n private readonly getFullAvailableInventoryNearby = async (\n calRadius: number,\n distanceUnitValue: number,\n latitude?: number,\n longitude?: number\n ): Promise => {\n const {\n telemetry,\n context: { actionContext },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager || !storeSelectorStateManager.context) {\n // Store selector dialog isn't open yet, so don't try and update anything\n return;\n }\n\n if (!storeSelectorStateManager.context.product) {\n // TODO: Use alternative search method here to not make inventory check\n return;\n }\n\n const input = new GetFullAvailableInventoryNearbyInput(\n storeSelectorStateManager.context.product.RecordId,\n latitude ?? 0,\n longitude ?? 0,\n calRadius,\n distanceUnitValue,\n this.state.isLocationDisabled\n );\n\n await getFullAvailableInventoryNearby(input, actionContext).catch(error => {\n telemetry.warning(error);\n telemetry.error(error.message);\n telemetry.debug('Unable to get full available inventory near by');\n });\n };\n\n /**\n * Method to called on store selected.\n * @param location - Store Info.\n * @param deliveryMode - Pickup mode.\n * @returns Void promise.\n */\n private readonly _onOrgUnitLocationSelected = async (location: OrgUnitLocation | undefined, deliveryMode?: string): Promise => {\n const {\n telemetry,\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager) {\n if (location && storeSelectorStateManager.context) {\n // Want to eat exceptions here so that the dialog still closes even if the onLocationSelected call goes wrong\n await storeSelectorStateManager.context.onLocationSelected(location, deliveryMode).catch(error => {\n telemetry.warning(error);\n telemetry.error(error.message);\n telemetry.debug('Unable to get on org unit location selected');\n });\n }\n\n await storeSelectorStateManager.closeDialog();\n }\n };\n\n /**\n * Method will list of store selector location line.\n * @param store -Store Info.\n * @param index - List index.\n * @param hasEnabledOutOfStockCheck -Stores List.\n * @param isStoreLocatorView -Module config value.\n * @param preferredStoreLocationId -Store Id.\n * @param isPreferredStoreEnabled -Stores List.\n * @param selectedStoreLocationId -Module config value.\n * @param preferredDistanceUnit -Module config value.\n * @param alreadySelectedLocation -Already Selected Location.\n * @param productPickUpOptionList -Product supported Pickup Modes List.\n * @returns StoreSelectorLocation Line Prop.\n */\n private _createStoreLocationList(\n store: IFullOrgUnitAvailability,\n index: number,\n hasEnabledOutOfStockCheck: boolean,\n isStoreLocatorView: boolean,\n preferredStoreLocationId: string,\n isPreferredStoreEnabled: boolean | undefined,\n selectedStoreLocationId: string | undefined,\n preferredDistanceUnit?: string | undefined,\n alreadySelectedLocation?: OrgUnitLocation,\n productPickUpOptionList?: DeliveryOption[]\n ): IStoreSelectorLocationLineItemProps | undefined {\n const orgUnitLocation = store.OrgUnitAvailability?.OrgUnitLocation;\n const selectedStoreLocation = selectedStoreLocationId;\n const deliveryOptions = store.OrgUnitPickUpDeliveryModes;\n const lineResources = this._mapResources(this.props.resources);\n const storeOpenFrom: string | undefined = secondsToTime(orgUnitLocation?.OpenFrom);\n const storeOpenTo: string | undefined = secondsToTime(orgUnitLocation?.OpenTo);\n const storeHours = store.StoreHours;\n\n if (orgUnitLocation) {\n ++this.storeCounter;\n return {\n location: orgUnitLocation,\n selectedStoreLocationId: selectedStoreLocation,\n storeHours,\n resources: lineResources,\n preferredDistanceUnit: preferredDistanceUnit!,\n isCurrentLocation: this._isCurrentLocation(orgUnitLocation, alreadySelectedLocation),\n hideStockStatus: !hasEnabledOutOfStockCheck,\n isInStock: this._isProductInStock(hasEnabledOutOfStockCheck, store.OrgUnitAvailability?.ItemAvailabilities),\n stockStatusLabel: this._stockInventoryLabel(store),\n storeLocatorView: isStoreLocatorView,\n index: this.storeCounter.toString(),\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n telemetryContent: this.telemetryContent,\n isLocationDisabled: this.state.isLocationDisabled,\n storePickUpOptionList: deliveryOptions?.DeliveryOptions,\n productPickUpOptionList,\n locationOpen: { openFrom: storeOpenFrom, openTo: storeOpenTo },\n storeHoursList: storeHours?.RegularStoreHours ? buildStoreHours(storeHours.RegularStoreHours, lineResources) : [],\n onClick: this._setSelectedStore,\n handlers: {\n onSelected: this._onOrgUnitLocationSelected,\n onSetAsPreferredStore: this._setPreferredStore,\n onRemovePreferredStore: this._removePreferredStore,\n closeStoreDetailsModal: this._closeStoreDetailModal\n }\n };\n }\n return undefined;\n }\n\n /**\n * Method to map resources with Location Item.\n * @param resources - List of strings for module.\n * @returns Resources for StoreSelector location line.\n */\n private readonly _mapResources = (resources: IStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\n return {\n contactInfoHeader: resources.contactText,\n storeHoursHeader: resources.timeText,\n availabilityInfoHeader: resources.availabilityText,\n\n closedText: resources.storeHoursClosedText,\n outOfStock: resources.outOfStockText,\n inStock: resources.inStockText,\n\n currentLocation: resources.selectedStoreLocationText,\n selectLocation: resources.selectStoreText,\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\n preferredStoreText: resources.preferredStoreText,\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\n\n days: {\n monday: resources.storeHoursMondayText,\n tuesday: resources.storeHoursTuesdayText,\n wednesday: resources.storeHoursWednesdayText,\n thursday: resources.storeHoursThursdayText,\n friday: resources.storeHoursFridayText,\n saturday: resources.storeHoursSaturdayText,\n sunday: resources.storeHoursSundayText,\n mondayFull: resources.storeHoursMondayFullText,\n tuesdayFull: resources.storeHoursTuesdayFullText,\n wednesdayFull: resources.storeHoursWednesdayFullText,\n thursdayFull: resources.storeHoursThursdayFullText,\n fridayFull: resources.storeHoursFridayFullText,\n saturdayFull: resources.storeHoursSaturdayFullText,\n sundayFull: resources.storeHoursSundayFullText\n }\n };\n };\n\n private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined, selectedLocation?: OrgUnitLocation): boolean =>\n (selectedLocation && location && selectedLocation.OrgUnitNumber === location.OrgUnitNumber) || false;\n\n /**\n * Method to get stock.\n * @param hasEnableOutOfStockCheck - Config to check for stock check enabled.\n * @param itemAvailabilities - Item quantity availability.\n * @returns Boolean value for item stock.\n */\n private readonly _isProductInStock = (\n hasEnableOutOfStockCheck: boolean,\n itemAvailabilities: ItemAvailability[] | undefined\n ): boolean => {\n if (!hasEnableOutOfStockCheck) {\n return true;\n }\n const quantityCount = 0;\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\n return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > quantityCount : false;\n }\n\n return false;\n };\n\n /**\n * Method to get stocklevel label.\n * @param isInStock - Stock available in store.\n * @returns Label for stock status.\n */\n private readonly _stockInventoryLabel = (isInStock: IFullOrgUnitAvailability | undefined): string | undefined => {\n if (isInStock?.ProductInventoryInformation && ArrayExtensions.hasElements(isInStock.ProductInventoryInformation)) {\n for (let index = 0; index < isInStock.ProductInventoryInformation.length; index++) {\n if (\n isInStock.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\n isInStock.ProductInventoryInformation[index].InventLocationId\n ) {\n return isInStock.ProductInventoryInformation[index].StockLevelLabel;\n }\n }\n }\n\n return undefined;\n };\n}\n\nexport default StoreSelector;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISelectedStoreViewProps, IStoreSelectorViewProps } from './index';\n\n/**\n * Renders the pickup Delivery options.\n * @param props -- Selected store view props.\n * @returns -- HTML.\n */\nconst renderDeliveryOptions: React.FC = props => {\n const { canSelectLocation, deliveryOptions, pickUpDeliveryOptionButton, pickupModes } = props;\n\n return (\n <>\n {/* eslint-disable-next-line no-nested-ternary -- Need this.*/}\n {canSelectLocation ? (ArrayExtensions.hasElements(deliveryOptions) ? pickupModes : pickUpDeliveryOptionButton) : false}\n \n );\n};\n\n/**\n * Render the selected store.\n * @param props -- Selected store view props.\n * @returns -- HTML.\n */\nconst renderSelectedStore: React.FC = props => {\n const {\n storeDetailsMain,\n storeHeader,\n storeName,\n storeDetailsCloseButton,\n storeDistance,\n storeDetailsAvailabilityContainer,\n productAvailability,\n stockStatus,\n isCurrentLocation,\n currentLocation,\n isPreferredStore,\n preferredStoreButton,\n removePreferredStoreButton\n } = props;\n\n return (\n \n \n {storeDetailsCloseButton}\n {storeName}\n {storeDistance}\n \n \n {productAvailability}\n {stockStatus}\n \n {isCurrentLocation ? currentLocation : renderDeliveryOptions(props)}\n {isPreferredStore ? preferredStoreButton : removePreferredStoreButton}\n \n );\n};\n\n/**\n * Render the body of the popup.\n * @param props -- Store selector view props.\n * @returns -- Returns the html.\n */\nconst renderBody: React.FC = props => {\n const {\n BodyContainerProps,\n locationsMessage,\n search,\n state,\n spinner,\n locationsList,\n noLocationsMessage,\n maps,\n bodyWrapperProps,\n storeResultContainerProps,\n mapContainerProps,\n isMobileView,\n storeDetailsModal,\n selectedLocation\n } = props;\n\n if (isMobileView) {\n return (\n \n {locationsMessage}\n {search}\n \n \n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\n {maps}\n {selectedLocation && renderSelectedStore(selectedLocation)}\n \n \n \n );\n }\n\n return (\n \n \n \n {locationsMessage}\n {search}\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\n \n {maps}\n \n \n );\n};\n\n/**\n * Store selector view props.\n * @param props - Store selector view props.\n * @returns - HTML.\n */\nconst StoreSelectorView: React.FC = props => {\n const {\n FooterContainerProps,\n HeaderContainerProps,\n HeaderProps,\n ModuleProps,\n\n terms\n } = props;\n\n return (\n \n {HeaderProps}\n {renderBody(props)}\n {terms}\n \n );\n};\n\nexport default StoreSelectorView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\n */\nconst contentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default contentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n note,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n {note}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { RichTextComponent } from '@msdyn365-commerce/core';\nimport {\n ContactInformationType,\n DeliveryOption,\n IDictionary,\n OrgUnitContact,\n OrgUnitLocation,\n StoreHours\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n buildStoreHours,\n IHoursDisplayInfo,\n ILocationHours,\n IStoreSelectorFoundLocationsMessage,\n IStoreSelectorLocationLineItemProps,\n IStoreSelectorLocationLineItemResources,\n IStoreSelectorViewProps,\n secondsToTime\n} from '@msdyn365-commerce-modules/store-selector';\nimport { ISelectedStoreViewProps } from '@msdyn365-commerce-modules/store-selector/src/modules/store-selector/components/selected-store/selected-store';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n isMobile,\n Module,\n Node,\n TelemetryConstant,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IStoreSelectorProps, IStoreSelectorResources } from '../definition-extensions/store-selector.ext.props.autogenerated';\n\n/**\n * PickUpMethodComponent View Props Interface.\n */\nexport interface IPickupComponent extends IStoreSelectorLocationLineItemProps {\n pickUpStatesProps: IStoreSelectorViewProps;\n}\n\nexport interface IPickUpButtonComponent {\n attributes: IDictionary | undefined;\n onPickupInStoreClickHandler?(): void;\n}\n\n/**\n * Found Locations Message component in Store Selector.\n * @param props - The component props.\n * @returns The JSX Element.\n */\nconst StoreSelectorFoundLocationsMessageComponent: React.FC = props => {\n const { locations, searchRadius, resources, isSeeAllStore, preferredDistanceUnit } = props;\n if (locations) {\n const storeCountMessage =\n preferredDistanceUnit === resources.milesShortText ? resources.storeCountMessage : resources.storeCountMessageInKm;\n\n return (\n ${locations.length.toString()}`\n )\n : storeCountMessage\n .replace(\n '{count}',\n `${locations.length.toString()}`\n )\n .replace(\n '{radius}',\n `${searchRadius.toString()}`\n )\n }\n />\n );\n }\n\n return null;\n};\n\n/**\n * Build distance string.\n * @param distance - The distance.\n * @param preferredDistanceUnit - The preferred distance unit.\n * @param resources - The module resources.\n * @param isLocationDisabled - True if location is disabled.\n * @returns The distance string.\n */\nconst buildDistanceString = (\n distance: number | undefined,\n preferredDistanceUnit: string,\n resources: IStoreSelectorResources & IStoreSelectorResources,\n isLocationDisabled?: boolean\n): string | undefined => {\n const closeDistance: number = 1;\n if (distance === undefined || isLocationDisabled) {\n return undefined;\n } else if (distance < closeDistance) {\n const closeDistanceString: string = resources.closeDistanceString;\n return closeDistanceString.replace('{preferredDistanceUnit}', preferredDistanceUnit);\n }\n const distanceAsString: string = resources.distanceString;\n return distanceAsString\n .replace('{preferredDistanceUnit}', preferredDistanceUnit)\n .replace('{distance}', Math.floor(distance).toString());\n};\n\n/**\n * Extract phone number.\n * @param contacts - Contacts array.\n * @returns Phone number.\n */\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\n if (!contacts) {\n return undefined;\n }\n\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === ContactInformationType.Phone && !contact.IsPrivate);\n\n if (ArrayExtensions.hasElements(allPhoneContacts)) {\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\n\n if (primaryPhoneContact) {\n return primaryPhoneContact.Locator;\n }\n\n return allPhoneContacts[0].Locator;\n }\n\n return undefined;\n};\n\n/**\n * Render Store Hours Day.\n * @param displayTime - Store Hours Information.\n * @param storeHoursDayPeriodString - The string for store hours day period.\n * @param storeHoursDayString - The string for store hours day period.\n * @returns JSX element with store hours day.\n */\nconst buildStoreHoursDay = (displayTime: IHoursDisplayInfo, storeHoursDayPeriodString: string, storeHoursDayString: string) => {\n return (\n ${displayTime.startDayShort}`)\n .replace(\n '{endDay}',\n `${displayTime.endDayShort}`\n )\n : storeHoursDayString.replace(\n '{startDay}',\n `${displayTime.startDayShort}`\n )\n }\n />\n );\n};\n\n/**\n * Render Store Hours.\n * @param storeHours - Store hours.\n * @param storeHoursList - Store hours list.\n * @param locationOpen - Location open.\n * @param resources - The module resources.\n * @returns JSX element with store hours.\n */\nconst renderStoreHours = (\n storeHours: StoreHours | undefined,\n storeHoursList: IHoursDisplayInfo[] | undefined,\n locationOpen: ILocationHours | undefined,\n resources: IStoreSelectorResources & IStoreSelectorResources\n): JSX.Element | null => {\n // First, use the store hours. This will allow listing day by day hours\n if (storeHours?.RegularStoreHours) {\n return (\n
\n {storeHoursList?.map(displayTime => (\n
\n {buildStoreHoursDay(displayTime, resources.storeHoursDayPeriod, resources.storeHoursDay)}\n
{displayTime.timeRange}
\n
\n ))}\n
\n );\n }\n\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\n const storeOpenFrom: string = locationOpen?.openFrom ? locationOpen.openFrom : '';\n const storeOpenTo: string = locationOpen?.openTo ? locationOpen.openTo : '';\n return (\n
\n {resources.storeHoursDayPeriod.replace('{startDay}', storeOpenFrom).replace('{endDay}', storeOpenTo)}\n
\n );\n};\n\n/**\n * Match delivery options.\n * @param productDeliveryOptions - The list of product delivery options.\n * @param storePickUpOptionList - The list of store pick up options.\n * @returns Matched delivery option.\n */\nconst matchDeliveryOptions = (\n productDeliveryOptions: DeliveryOption[] | undefined,\n storePickUpOptionList: DeliveryOption[] | undefined\n): DeliveryOption[] => {\n if (!productDeliveryOptions) {\n return [] as DeliveryOption[];\n }\n return productDeliveryOptions\n .map(productDeliveryOption => storePickUpOptionList?.find(delivery => delivery.Code === productDeliveryOption.Code))\n .filter(productDeliveryOption => productDeliveryOption) as DeliveryOption[];\n};\n\n/**\n * PickUpMethod Resources Interface.\n */\nexport interface IPickUpButtonResources {\n pickupInStoreAriaLabel: string;\n pickupInStoreButtonText: string;\n pickupDeliveryOptionErrorMessage: string;\n}\n\n/**\n * PickUpMethod Resources Interface.\n */\nexport interface IPickUpMethodResources {\n selectStoreText: string;\n pickUpMethodLabel: string;\n pickUpOptionPlaceholder: string;\n pickupOptionDropdownError: string;\n pickupButtonAriaLabel: string;\n}\n\n/**\n * PickUp method dropdown component.\n * @param props - The view props.\n * @returns JSX Element.\n */\nconst PickUpMethodDropdownComponent = (props: IPickupComponent & IPickUpMethodResources) => {\n const {\n handlers,\n location,\n pickUpStatesProps,\n selectStoreText,\n pickUpMethodLabel,\n pickUpOptionPlaceholder,\n pickupOptionDropdownError,\n pickupButtonAriaLabel,\n productPickUpOptionList,\n storePickUpOptionList\n } = props;\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\n const [selectedStorePickUpOption, selectStorePickUpOption] = React.useState('');\n const [currentStorePickUpOption, setCurrentStorePickUpOption] = React.useState(pickUpOptionPlaceholder);\n const [isDropdownOpen, toggleDropdown] = React.useState(false);\n const [isError, setError] = React.useState(false);\n\n /**\n * Method to handle the store pickup option change.\n * @param event - Change Event.\n */\n const onChangeHandler = React.useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n selectStorePickUpOption(event.currentTarget.value);\n setCurrentStorePickUpOption(event.currentTarget.dataset.description ? event.currentTarget.dataset.description : '');\n toggleDropdown(false);\n setError(false);\n }, []);\n\n /**\n * Method to render store location line pick up button.\n * @param filteredDeliveryMode - Filtered Delivery Mode.\n * @returns JSX Element.\n */\n const renderLocationLinePickupButton = (filteredDeliveryMode: DeliveryOption | undefined) => {\n return filteredDeliveryMode !== undefined ? (\n
\n \n {filteredDeliveryMode.Description}\n \n
\n ) : null;\n };\n\n /**\n * Method to handle the store pickup option submit.\n */\n const onClickHandler = React.useCallback(() => {\n if (!StringExtensions.isNullOrEmpty(selectedStorePickUpOption)) {\n handlers.onSelected(location, selectedStorePickUpOption);\n } else if (pickUpStatesProps.state.filteredPickupMode !== undefined) {\n handlers.onSelected(location, pickUpStatesProps.state.filteredPickupMode);\n } else {\n toggleDropdown(false);\n setError(true);\n }\n }, [location, selectedStorePickUpOption, handlers, pickUpStatesProps.state.filteredPickupMode]);\n\n const handleDropdownToggle = React.useCallback(() => {\n toggleDropdown(!isDropdownOpen);\n setError(false);\n }, [isDropdownOpen]);\n\n const filterDeliveryOption = deliveryOptionList.find(\n (delivery: DeliveryOption) => delivery.Code === pickUpStatesProps.state.filteredPickupMode\n );\n\n const pickupInStoreButtonText: string = selectStoreText;\n const filteredDeliveryMode: DeliveryOption | undefined =\n pickUpStatesProps.state.filteredPickupMode !== undefined ? filterDeliveryOption : undefined;\n\n return (\n \n
{pickUpMethodLabel}
\n {pickUpStatesProps.state.filteredPickupMode === undefined ? (\n
\n \n {currentStorePickUpOption}\n \n
    \n {deliveryOptionList.map((delivery: DeliveryOption) => (\n \n \n {delivery.Description}\n \n \n ))}\n
\n
{pickupOptionDropdownError}
\n
\n ) : (\n renderLocationLinePickupButton(filteredDeliveryMode)\n )}\n \n
\n );\n};\n\n/**\n * PickUp button component.\n * @param props - The view props.\n * @returns JSX Element.\n */\nconst PickUpButtonComponent = (props: IPickUpButtonComponent & IPickUpButtonResources) => {\n const { pickupInStoreAriaLabel, pickupInStoreButtonText, pickupDeliveryOptionErrorMessage, attributes } = props;\n const [isError, setError] = React.useState(false);\n const onPickupButtonClickHandler = () => () => {\n setError(true);\n };\n\n return (\n <>\n \n {pickupInStoreButtonText}\n \n
\n {pickupDeliveryOptionErrorMessage}\n
\n \n );\n};\n\n/**\n * Method to render store location line item.\n * @param locationLineItem - The Location Line item view props.\n * @param props - The view props.\n * @returns JSX Element.\n */\nconst renderStoreLocationLineItem = (\n locationLineItem: IStoreSelectorLocationLineItemProps,\n props: IStoreSelectorViewProps & IStoreSelectorProps\n) => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from store-selector.tsx file\n hideStockStatus,\n index,\n isInStock,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n location,\n resources,\n storeHours,\n storeHoursList,\n stockStatusLabel,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from store-selector.tsx file\n storeLocatorView,\n telemetryContent\n } = locationLineItem;\n const storeName = location.OrgUnitName;\n const distanceAsString: string | undefined = buildDistanceString(\n location.Distance,\n locationLineItem.preferredDistanceUnit,\n props.resources,\n locationLineItem.isLocationDisabled\n );\n const storeAddress: string | undefined = location.Address;\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\n\n const resourceLabel = isInStock ? resources.inStock : resources.outOfStock;\n const stockStatus = stockStatusLabel ? stockStatusLabel : resourceLabel;\n const stockText: string | undefined = hideStockStatus ? undefined : stockStatus;\n\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n\n /**\n * Method to handle the change for preferred store.\n * @returns Void.\n */\n const onSetPreferredStoreClickHandler = () => {\n locationLineItem.handlers.onSetAsPreferredStore(locationLineItem.location.OrgUnitNumber);\n };\n\n /**\n * Method to handle the removal of the preferred store.\n * @returns Void.\n */\n const onRemovePreferredStoreClickHandler = async (event: React.MouseEvent) => {\n event.stopPropagation();\n locationLineItem.handlers.onRemovePreferredStore();\n await props.data.storeSelectorStateManager.result?.setSelectedStoreLocationId(undefined);\n };\n\n const isPreferredStore = preferredStoreLocationId === location.OrgUnitNumber;\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\n const preferredStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\n const removePreferredStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n
\n
\n {storeLocatorView && {index}}\n {storeName}\n {distanceAsString ? {distanceAsString} : false}\n
\n
\n
\n

{locationLineItem.resources.contactInfoHeader}

\n {storeAddress && (\n
\n
\n )}\n {phoneNumber && (\n
\n \n {phoneNumber}\n
\n )}\n
\n
\n

{locationLineItem.resources.storeHoursHeader}

\n {renderStoreHours(storeHours, storeHoursList, locationLineItem.locationOpen, props.resources)}\n
\n {!storeLocatorView && !hideStockStatus && (\n
\n

{resources.availabilityInfoHeader}

\n {stockText &&

{stockText}

}\n
\n )}\n {isPreferredStoreEnabled &&\n (isPreferredStore ? (\n \n {resources.preferredStoreText}\n \n ) : (\n \n {resources.setAsPreferredStoreText}\n \n ))}\n
\n
\n );\n};\n\n/**\n * Render Store Location.\n * @param location - The location props.\n * @param index - The location index.\n * @param props - The view props.\n * @param selectedLocationReference - The ref.\n * @returns The JSX Element.\n */\nconst renderStoreLocation = (\n location: IStoreSelectorLocationLineItemProps,\n index: number,\n props: IStoreSelectorViewProps & IStoreSelectorProps,\n selectedLocationReference: React.RefObject\n): JSX.Element | undefined => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from store-selector.tsx file\n hideStockStatus,\n storeLocatorView,\n isCurrentLocation,\n isInStock,\n productPickUpOptionList,\n resources,\n storePickUpOptionList,\n telemetryContent\n } = location;\n\n const orgUnitLocation = location.location;\n const selectedStoreLocationId = location.selectedStoreLocationId;\n const defaultAriaSetsize = 0;\n const canSelectLocation = hideStockStatus || isInStock;\n const storeName = location.location.OrgUnitName;\n const pickupInStoreAriaLabel: string = resources.selectLocationAriaLabelFormat.replace('{StoreName}', storeName ?? '');\n const pickupInStoreButtonText: string = resources.selectLocation;\n const pickUpOptionDropdownPlaceholderText: string = props.resources.pickupOptionDropdownPlaceholderText;\n\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\n const selectStoreText = props.resources.selectStoreText;\n const pickUpMethodLabel = props.resources.pickUpMethodLabel;\n\n /**\n * Method to handle the pick up in store.\n * @returns Void.\n */\n const onPickupInStoreClickHandler = () => () => {\n location.handlers.onSelected(location.location);\n };\n\n /**\n * Render Store Locations.\n * @param unitLocation - The org unit location.\n * @returns Handler for onClick.\n */\n const onClickHandler = (unitLocation: OrgUnitLocation | undefined) => () => {\n location.onClick(unitLocation?.OrgUnitNumber);\n };\n\n const canSelectPickUpMethod = !ArrayExtensions.hasElements(deliveryOptionList) ? (\n \n ) : (\n \n );\n const pickUpMethodSelection = canSelectLocation ? canSelectPickUpMethod : false;\n\n return (\n \n \n {renderStoreLocationLineItem(location, props)}\n \n {!storeLocatorView &&\n (isCurrentLocation ? (\n

{resources.currentLocation}

\n ) : (\n pickUpMethodSelection\n ))}\n \n );\n};\n\n/**\n * Render Store Locations.\n * @param props - The view props.\n * @param selectedLocationReference - The ref.\n * @returns The JSX Element.\n */\nconst renderStoreLocations = (\n props: IStoreSelectorViewProps & IStoreSelectorProps,\n selectedLocationReference: React.RefObject\n) => {\n return (\n \n {props.locationListProps?.map((store, index) => {\n return renderStoreLocation(store, index, props, selectedLocationReference);\n })}\n \n );\n};\n\n/**\n * Method to map resources with Location Item.\n * @param resources - List of strings for module.\n * @returns Resources for StoreSelector location line.\n */\nconst mapResources = (resources: IStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\n return {\n contactInfoHeader: resources.contactText,\n storeHoursHeader: resources.timeText,\n availabilityInfoHeader: resources.availabilityText,\n\n closedText: resources.storeHoursClosedText,\n outOfStock: resources.outOfStockText,\n inStock: resources.inStockText,\n\n currentLocation: resources.selectedStoreLocationText,\n selectLocation: resources.selectStoreText,\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\n preferredStoreText: resources.preferredStoreText,\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\n\n days: {\n monday: resources.storeHoursMondayText,\n tuesday: resources.storeHoursTuesdayText,\n wednesday: resources.storeHoursWednesdayText,\n thursday: resources.storeHoursThursdayText,\n friday: resources.storeHoursFridayText,\n saturday: resources.storeHoursSaturdayText,\n sunday: resources.storeHoursSundayText,\n mondayFull: resources.storeHoursMondayFullText,\n tuesdayFull: resources.storeHoursTuesdayFullText,\n wednesdayFull: resources.storeHoursWednesdayFullText,\n thursdayFull: resources.storeHoursThursdayFullText,\n fridayFull: resources.storeHoursFridayFullText,\n saturdayFull: resources.storeHoursSaturdayFullText,\n sundayFull: resources.storeHoursSundayFullText\n }\n };\n};\n\n/**\n * Render the selected store.\n * @param selectedLocationProps -- Selected store view props.\n * @param storeSelectorViewProps -- Store selector view props.\n * @returns -- HTML.\n */\nexport const renderSelectedStore = (\n selectedLocationProps: ISelectedStoreViewProps,\n storeSelectorViewProps: IStoreSelectorViewProps & IStoreSelectorProps\n): JSX.Element => {\n const {\n storeDetailsMain,\n storeHeader,\n storeName,\n storeDetailsCloseButton,\n storeDistance,\n storeDetailsAvailabilityContainer,\n productAvailability,\n stockStatus,\n isPreferredStore,\n preferredStoreButton,\n removePreferredStoreButton,\n selectedStore\n } = selectedLocationProps;\n\n const storeAddress: string | undefined = selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.Address;\n const phoneNumber: string | undefined = extractPhoneNumber(selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.Contacts);\n const storeHoursList = selectedStore?.StoreHours?.RegularStoreHours\n ? buildStoreHours(selectedStore.StoreHours.RegularStoreHours, mapResources(storeSelectorViewProps.resources))\n : [];\n const storeOpenFrom: string | undefined = secondsToTime(selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OpenFrom);\n const storeOpenTo: string | undefined = secondsToTime(selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OpenTo);\n const locationOpen = { openFrom: storeOpenFrom, openTo: storeOpenTo };\n const storeNameValue = selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName;\n const pickupInStoreAriaLabel: string = selectedLocationProps.resources.selectLocationAriaLabelFormat.replace(\n '{StoreName}',\n storeNameValue ?? ''\n );\n const telemetryContent = getTelemetryObject(\n storeSelectorViewProps.context.request.telemetryPageName!,\n storeSelectorViewProps.friendlyName,\n storeSelectorViewProps.telemetry\n );\n const payLoad = getPayloadObject('click', telemetryContent, TelemetryConstant.PickupInStore);\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n const pickupInStoreButtonText: string = selectedLocationProps.resources.selectLocation;\n const selectStoreText = storeSelectorViewProps.resources.selectStoreText;\n const pickUpMethodLabel = storeSelectorViewProps.resources.pickUpMethodLabel;\n const pickUpOptionDropdownPlaceholderText: string = storeSelectorViewProps.resources.pickupOptionDropdownPlaceholderText;\n const orgUnitNumber = selectedStore?.OrgUnitAvailability?.OrgUnitLocation!.OrgUnitNumber;\n const productPickUpOptionList = storeSelectorViewProps.data.storeSelectorStateManager.result?.context?.deliveryOptions?.DeliveryOptions;\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, selectedLocationProps.deliveryOptions);\n const selectedLocation = storeSelectorViewProps.locationListProps?.find(location => location.location.OrgUnitNumber === orgUnitNumber);\n\n /**\n * Method to handle the pick up in store.\n * @returns Void.\n */\n const onPickupInStoreClickHandler = () => () => {\n selectedLocationProps.handlers.onSelected(selectedStore!.OrgUnitAvailability!.OrgUnitLocation!);\n };\n const canSelectPickUpMethod = !ArrayExtensions.hasElements(deliveryOptionList) ? (\n \n ) : (\n selectedLocation && (\n \n )\n );\n\n return (\n \n \n {storeDetailsCloseButton}\n {storeName}\n {storeDistance}\n \n \n
\n

{storeSelectorViewProps.resources.contactText}

\n {storeAddress && (\n
\n
\n )}\n {phoneNumber && (\n
\n \n {phoneNumber}\n
\n )}\n
\n
\n

{storeSelectorViewProps.resources.timeText}

\n {renderStoreHours(selectedStore?.StoreHours, storeHoursList, locationOpen, storeSelectorViewProps.resources)}\n
\n {productAvailability && (\n
\n

{productAvailability}

\n {stockStatus &&

{stockStatus}

}\n
\n )}\n
\n {isPreferredStore ? preferredStoreButton : removePreferredStoreButton}\n {canSelectPickUpMethod}\n
\n );\n};\n\n/**\n * Store Selector View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst StoreSelectorViewComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Store-Selector.tsx file\n const {\n BodyContainerProps,\n storeResultContainerProps,\n FooterContainerProps,\n HeaderContainerProps,\n HeaderProps,\n ModuleProps,\n locationsMessage,\n search,\n state,\n spinner,\n maps,\n locationsList,\n noLocationsMessage,\n terms,\n storeDetailsModal,\n selectedLocation,\n bodyWrapperProps,\n data,\n context\n } = props;\n const selectedLocationReference = React.useRef(null);\n const [isDesktopPort, setIsDesktopPort] = React.useState(false);\n\n const isDesktopViewport = React.useCallback(() => {\n const portView = isMobile({ variant: VariantType.Browser, context: context.request });\n const isDesktopPorts = portView === 'md' || portView === 'xl' || portView === 'lg';\n setIsDesktopPort(isDesktopPorts);\n }, [context]);\n\n React.useEffect(() => {\n if (props.locationsList) {\n /**\n * Method to handle scrolling.\n */\n const scrollIntoView = () => {\n const selectedLocationDiv = (selectedLocationReference as React.RefObject).current;\n if (selectedLocationDiv !== null) {\n const offset = selectedLocationDiv.getBoundingClientRect();\n const parent = selectedLocationDiv.parentElement?.parentElement;\n if (parent && offset) {\n const totalHeight = parent.scrollTop + offset.top;\n parent.scrollTop = totalHeight - parent.clientHeight;\n }\n }\n };\n scrollIntoView();\n }\n }, [props.locationsList]);\n\n React.useEffect(() => {\n if (MsDyn365.isBrowser) {\n window.addEventListener('resize', isDesktopViewport);\n }\n isDesktopViewport();\n }, [isDesktopViewport]);\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\n\n const isDesktopView = viewport === 'md' || viewport === 'lg' || viewport === 'xl';\n\n if (!isDesktopView || !isDesktopPort) {\n return (\n \n {HeaderProps}\n \n \n {locationsMessage && (\n \n )}\n {search}\n \n \n {state.isSearchInProgress ? (\n spinner\n ) : (\n <>{locationsList ? renderStoreLocations(props, selectedLocationReference) : noLocationsMessage}\n )}\n \n {maps}\n \n {selectedLocation && renderSelectedStore(selectedLocation, props)}\n \n \n \n \n {terms}\n \n );\n }\n return (\n \n {HeaderProps}\n \n \n {locationsMessage && (\n \n )}\n {search}\n {state.isSearchInProgress ? (\n spinner\n ) : (\n <>{locationsList ? renderStoreLocations(props, selectedLocationReference) : noLocationsMessage}\n )}\n \n \n {maps}\n \n \n {terms}\n \n );\n};\n\nexport default StoreSelectorViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Create Write Review Modal.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * WriteReview view.\n * @param props - WriteReview ViewProps.\n * @returns WriteReview view module.\n */\nconst WriteReviewView: React.FC> = props => {\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\n const { paragraph } = config;\n const isAuthenticated = props.context.request.user.isAuthenticated;\n const text = paragraph && ;\n\n return (\n \n {heading}\n {!isAuthenticated ? (\n <>\n {signInMessage}\n {signInButton}\n \n ) : (\n <>\n {text}\n {modalToggle}\n {createReviewModal(props)}\n \n )}\n \n );\n};\n\nexport default WriteReviewView;\n"],"names":["Subscribe","React","constructor","props","super","handleTextChange","event","this","config","heading","text","target","value","handleParagraphChange","paragraph","context","request","user","emailAddress","_emailAddressInputRef","state","showResponseMessage","isError","inputValue","hideResponseMessage","bind","setState","render","_heading$tag","doSubscribe","async","actionContext","useDoubleOptIn","audience","response","subscribeToMailChimpAsync","callerContext","Status","exception","renderSubscriptionResultMessage","resources","subscriptionSuccessMessage","subscriptionOptInMessage","subscriptionFailMessage","className","subscribeParagraph","Msdyn365","editProps","onEdit","requestContext","subscribeHeading","tag","viewProps","_objectSpread","handleText","handleSubscribe","subscribe","moduleProps","subscribeContainer","subscribeForm","subscribeFormAriaLabel","name","role","autoComplete","onSubmit","emailInput","ref","type","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","onChange","e","submitButton","Button","subscribeFormSubmitAriaLabel","title","subscribeButtonLabel","submitButtonLabelText","responseMessage","renderSubscriptionResultAlert","Alert","color","isOpen","toggle","renderView","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","Module","Object","assign","Node","preventDefault","_renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","items","map","_renderThumbnailItem","thumbnail","ThumbnailItemContainerProps","Picture","CarouselProps","Thumbnails","MediaGallery","Modal","MsDyn365","isBrowser","images","document","querySelectorAll","formatJpgString","length","forEach","img","src","indexOf","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","linkText","promotionalImage","altText","ArrayExtensions","hasElements","promotionalContent","item","image","imageSrc","promotionalItemImageSettings","imageSettings","push","additionalProperties","linkUrl","destinationUrl","categoryImage","categoryImageAltText","_handleDropdownToggle","data","parentId","isMobileView","activeMenu","id","parentMenu","showMenuOnHover","undefined","_handleMouseLeaveEvent","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","apiSettings","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","_categoryImage$imageS","_this$props$config$ca","ImageData","Image","gridSettings","categoryImageSettings","loadFailureBehavior","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","menuItemData","retailMenuInsertLinks","cmsNavItems","_menuItemDataClone","retailMenu","find","mi","menuSource","hideMenuItem","_item$linkUrl","_retailMenu$subMenu","_item$image","_retailMenu$subMenu2","tempMenuItem","linkURL","shouldOpenNewTab","openInNewTab","subMenu","splice","insertPosition","menuItem","menuItemPair","cms","idx","findIndex","i","timeout","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","componentDidMount","body","addEventListener","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","Navigation","classnames","posinset","_renderDrawerMenu","MenuList","tabIndex","_renderDisplay","setSize","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","isDrawerOpen","colProps","Drawer","toggleButtonProps","key","openGlyph","onToggle","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","index","subMenus","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","error","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","menuHideTimeout","timeToCloseMenu","traverseNodes","nodeList","node","isInMenu","parentNode","_node$classList","classList","clearTimeout","href","onClick","window","location","onMouseEnter","onFocus","hoverEffect","arguments","isParent","Link","imagesource","contentAction","etext","attributes","getTelemetryAttributes","currentPath","url","requestUrl","pathname","menuLink","cmsMenuLink","onMouseOver","onTelemetryClick","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","OrderConfirmationOrderInfomation","_ref","orderInformationProps","receiptEmail","createdDate","OrderConfirmationSalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","OrderConfirmationGroupDelivery","_ref3","deliveryProps","count","processing","address","trackingInfo","pickupDateTimeslot","OrderConfirmationGroup","_ref4","groupProps","delivery","salesLinesProps","salesLines","orderSummaryTitle","_renderOrderSummaryHeading","LineId","OrderConfirmationGroups","_ref5","groupsProps","groups","group","OrderConfirmationOrderSummary","_ref6","salesOrder","orderSummaryProps","shipping","subtotal","totalAmount","earnedPoints","backToShoppingLink","SubtotalAmountWithoutTax","OrderConfirmationPayment","_ref7","paymentMethodsProps","methods","OrderConfirmationHelp","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","productColumnHeading","colorColumnHeading","sizeColumnHeading","quantityColumnHeading","priceColumnHeading","totalColumnHeading","getPriceContext","typeName","freePriceText","_salesOrder$CreatedDa","_salesOrder$CreatedDa2","alert","loading","orderInfomation","orderSummary","payment","help","orderString","CreatedDateTime","orderDate","Date","changeHref","msdyn365Commerce","el","channelReferenceId","thankYouMessage","orderPlacedOnLabel","replace","toLocaleDateString","priceContext","tyvm","paidMsg","signOff","teamNile","OrderHistoryOrderInfomation","salesId","receiptId","channelName","amount","OrderHistoryGroupDelivery","OrderHistoryGroup","OrderHistoryGroups","OrderHistoryHeader","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","orderHistoryProps","header","emptyMessage","list","table","moreButton","buildReviewCard","cardProps","rating","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","cancelButton","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","SignUpText","LoyaltySignUp","handleHeadingChange","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","input","IssueLoyaltyInput","issueLoyalty","then","catch","message","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","shouldComponentUpdate","nextProps","nextState","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","result","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","disabled","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","__decorate","observer","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","applicationNode","returnFocusRef","returnRef","ModalHeader","ModalFooter","ModalBody","cancelLoyaltyTermsText","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","qsps","split","qsp","splitQsp","isModalOpen","hideToggle","slots","serviceTerms","modalToggle","innerRef","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","link","editableLink","ariaLabel","links","onTextChange","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","content","visible","cookieRef","_onDismiss","cookies","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","AlertProps","fade","Content","acceptButton","setConsentCookie","reload","renderCustomerName","accountInformation","customer","FirstName","Name","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","OrderInfomation","channelAddress","note","SalesLine","errors","GroupDelivery","Group","isCashAndCarryTransaction","deliveryType","shipment","salesStatus","showTimeslot","pickupProps","Groups","OrderSummary","tax","Payment","Help","_ref9","viewModes","tableViewActions","placedBy","Iframe","iframeRef","srcURL","URL","protocol","toLocaleLowerCase","iframeClassName","Heading","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","height","iframeAriaLabel","IFrameView","StorePickUpOptionList","_rendeDeliveryOptions","isExpandOptionsState","isFilterExpanded","_onSelect","deliveryCode","currentTarget","selectedPickupMode","_onKeyDown","_storePickupListOptionMenu","_productPickupModeLis","productPickupListOptionMenuText","productPickupModeList","defaultOptionText","selectedPickupModeDesc","Code","Description","onKeyDown","StoreSelectorLocationLines","onClickHandler","orgUnitLocation","OrgUnitNumber","_scrollIntoView","selectedLocationDiv","selectedLocationRef","parent","parentElement","scrollTop","offsetTop","clientHeight","_isCurrentLocation","alreadySelectedLocation","_isProductInStock","itemAvailabilities","enableOutOfStockCheck","AvailableQuantity","_stockInventoryLabel","availabilityWithHours","ProductInventoryInformation","_availabilityWithHour","OrgUnitAvailability","OrgUnitLocation","InventoryLocationId","InventLocationId","StockLevelLabel","_mapResources","contactInfoHeader","contactText","storeHoursHeader","timeText","availabilityInfoHeader","availabilityText","closedText","storeHoursClosedText","outOfStock","outOfStockText","inStock","inStockText","currentLocation","selectedStoreLocationText","selectLocation","selectStoreText","selectLocationAriaLabelFormat","selectStoreAriaFormatText","setAsPreferredStoreText","setAsPreferredStoreTextAriaLabel","preferredStoreText","preferredStoreAriaLabel","pickupDeliveryOptionErrorMessage","days","monday","storeHoursMondayText","tuesday","storeHoursTuesdayText","wednesday","storeHoursWednesdayText","thursday","storeHoursThursdayText","friday","storeHoursFridayText","saturday","storeHoursSaturdayText","sunday","storeHoursSundayText","mondayFull","storeHoursMondayFullText","tuesdayFull","storeHoursTuesdayFullText","wednesdayFull","storeHoursWednesdayFullText","thursdayFull","storeHoursThursdayFullText","fridayFull","storeHoursFridayFullText","saturdayFull","storeHoursSaturdayFullText","sundayFull","storeHoursSundayFullText","storeCounter","componentDidUpdate","previousProps","selectedStoreLocationId","locations","_stores","_sortStores","reaction","show","displayList","store","_renderStoreLocation","_store$OrgUnitAvailab","deliveryOptions","OrgUnitPickUpDeliveryModes","_store$OrgUnitAvailab2","selected","StoreSelectorLocationLineItemComponent","storeHours","StoreHours","preferredDistanceUnit","isCurrentLocation","isInStock","ItemAvailabilities","hideStockStatus","handlers","onSelected","onLocationSelected","onSetAsPreferredStore","onRemovePreferredStore","stockStatusLabel","storeLocatorView","preferredStoreLocationId","isPreferredStoreEnabled","isLocationDisabled","storePickUpOptionList","DeliveryOptions","productPickUpOptionList","productPickUpDeliveryOptions","filteredPickupMode","shouldShowIndex","stores","isPreferredStore","_value$OrgUnitAvailab","filter","observable","StoreSelectorSearchForm","searchBoxRef","previousValue","isSearchResultOpened","_handleInputKeyPress","KeyCodes","ArrowUp","ArrowDown","activeDescedantValue","_handleKeyPressPrev","Enter","Space","onShowAllStores","_searchTextChanged","searchTermChanged","_onSubmit","_this$searchBoxRef$cu","blur","performSearch","_onChangeHandler","filterPickupModeSelected","Promise","resolve","renderPickupModesList","pickupFilterMenuHeading","locatorView","pickupFilterByHeading","hasEnabledPickupFilterToShowStore","shouldDisplayList","toggleButtonClass","onToggleListMapViewState","toggleMapViewAttributes","SearchStore","storeSearchAttributes","ShowAllStore","showAllStoreAttributes","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","seeAllStoresText","viewListText","viewMapText","isMapDisabled","showAllStores","searchInputAriaLabel","onKeyUp","StoreSelectorEmptyMessage","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","StoreSelectorFoundLocationsMessage","searchRadius","isSeeAllStore","storeCountMessage","milesShortText","storeCountMessageInKm","storeAllCountMessage","PickUpOptionList","eventsToBeBind","handleDocumentClick","htmlElement","_pickupListOptionButton","_pickupListOptionMenu","expandSiteOptions","_renderDeliveryOptions","pickupListOptionMenuText","pickupmodeList","stopPropagation","isExpandSiteOptionsState","onPickupInStoreClickHandler","_props$selectedStore","selectedStore","onSetPreferredStoreClickHandler","_props$selectedStore2","onChangeHandler","_props$selectedStore3","removePreferredStoreHandler","onPickupModeSelectHandler","pickupMode","_props$selectedStore4","storeDetailsModalHandler","closeStoreDetailsModal","renderPickupModes","deliveryOptionList","pickupInStoreButtonText","pickupInStoreAriaLabel","SelectedStoreComponent","_selectedStore$OrgUni","_selectedStore$OrgUni2","shouldHideStockStatus","parentClassName","storeName","OrgUnitName","distanceAsString","buildDistanceString","Distance","resourceLabel","stockLabel","stockText","canSelectLocation","PickupInStore","PreferredStore","preferredStoreAttributes","RemovePreferredStore","removePreferredStoreAttributes","matchDeliveryOptions","storeDetailsMain","storeHeader","storeDetailsCloseButton","storeDistance","storeDetailsAvailabilityContainer","productAvailability","stockStatus","pickUpDeliveryOptionButton","pickupModes","preferredStoreButton","removePreferredStoreButton","secondsToTime","seconds","hours","floor","ampm","divisorForMinutes","getShortTimeString","day","getFullTimeString","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","dateForLookup","get","buildStoreHoursString","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","storeSelectorLocationLineItemComponentActions","deliveryMode","distance","productdeliveryOptions","deliveryOption","pickup","_delivery","storeAddress","Address","phoneNumber","contacts","allPhoneContacts","contact","ContactTypeValue","IsPrivate","primaryPhoneContact","IsPrimary","Locator","extractPhoneNumber","Contacts","setError","renderStoreHours","RegularStoreHours","displayTime","JSON","stringify","storeOpenFrom","OpenFrom","storeOpenTo","OpenTo","pickUpButtonClickHandler","StoreSelector","renderSelectedStore","shouldHideInventory","hasEnabledOutOfStockCheck","availabilitiesWithHours","storeSelectorStateManager","storeLocations","selectedStoreResources","_selectedStore$OrgUni3","selectedProps","StoreId","_onOrgUnitLocationSelected","_setPreferredStore","_removePreferredStore","_closeStoreDetailModal","termsOfServiceLink","onShowAllStoresHandler","_getAndUpdateStoreLocation","onFilterLocations","_location$OrgUnitPick","some","onFilteredPickupMode","_attachMapAutoSuggest","autoSuggestOptions","channel","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_preferredStore$OrgUn","_preferredStore$OrgUn2","_preferredStore$OrgUn3","storeId","mode","setPreferredStoreLocation","Latitude","Longitude","clearPreferredStore","setSelectedStoreLocationId","_setSelectedStore","searchTerm","isSearchInProgress","isSeeAllStoreValue","geoLocate","trim","_updateLocations","latitude","longitude","shouldShowAllStores","_navigator","style","isDialogOpen","navigator","geolocation","getCurrentPosition","position","coords","PERMISSION_DENIED","_closeDialog","_storeSelectorStateMa","parentElementRef","closeDialog","_setOrgUnitStoreInformation","moduleId","styleDefault","preferredLocationId","storeLocationList","orgUnitStoreInformation","showMapViewLink","isDialog","product","setOrgUnitStoreInformation","radius","lookupRadius","searchRadiusUnit","calRadius","distanceUnitValue","modeDefault","localLatitude","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","getFullAvailableInventoryNearby","getOrgUnitLocationByArea","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByArea","GetFullAvailableInventoryNearbyInput","RecordId","warning","selectedLocation","hasEnableOutOfStockCheck","_isInStock$OrgUnitAva","_this$props$data$stor6","autoSuggestionEnabled","isAutoSuggestionEnabled","_this$props$context","_this$props$data$stor2","_this$props$data$stor3","_this$props$data$stor4","_this$props$data$stor5","loadMapApi","BingMapsEnabled","lang","locale","market","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","when","_this$props$data$stor10","_this$props$data$stor11","_this$props$data$stor12","isSameContext","_storeSelectorStateMa2","_storeSelectorStateMa3","_sortLocation","_storeSelectorStateMa4","_storeSelectorStateMa5","setAsPreferredStore","shouldSetAsPreferredStore","enablePickupFilterToShowStore","hasEnablePickupFilterToShowStore","appConfig","maps","mapSlot","isMobileDevice","isMobile","variant","VariantType","Viewport","isInlineView","isLocatorView","listMapViewState","canShowLocationView","isMapModuleLoaded","storeSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","storeSelectorHeaderText","kilometersShortText","isEnableOutofStock","enableStockCheck","sortLocation","locationListProps","_getStoreLocationListProps","hasMapSlot","dialogClassName","ModuleProps","autoFocus","onClosed","horizontalPosition","verticalPosition","HeaderContainerProps","HeaderProps","FooterContainerProps","BodyContainerProps","bodyWrapperProps","storeResultContainerProps","mapContainerProps","storeDetailsModal","locationsMessage","spinner","locationsList","outOfStockThreshold","noLocationsMessage","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","isStoreLocatorView","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","_store$OrgUnitAvailab4","locationOpen","openFrom","openTo","renderDeliveryOptions","renderBody","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","StoreSelectorFoundLocationsMessageComponent","RichTextComponent","ContactInformationType","Phone","buildStoreHoursDay","storeHoursDayPeriodString","storeHoursDayString","storeHoursDayPeriod","storeHoursDay","productDeliveryOptions","productDeliveryOption","PickUpMethodDropdownComponent","pickUpStatesProps","pickUpMethodLabel","pickUpOptionPlaceholder","pickupOptionDropdownError","pickupButtonAriaLabel","selectedStorePickUpOption","selectStorePickUpOption","currentStorePickUpOption","setCurrentStorePickUpOption","isDropdownOpen","toggleDropdown","dataset","description","StringExtensions","isNullOrEmpty","handleDropdownToggle","filterDeliveryOption","filteredDeliveryMode","renderLocationLinePickupButton","PickUpButtonComponent","renderStoreLocationLineItem","locationLineItem","closeDistanceString","distanceString","preferredStoreAttribute","removePreferredStoreAttribute","_props$data$storeSele","renderStoreLocations","selectedLocationReference","_props$data$storeSele2","_props$locationListPr","renderStoreLocation","pickUpOptionDropdownPlaceholderText","pickupOptionDropdownPlaceholderText","unitLocation","canSelectPickUpMethod","pickupOptionDropdownErrorText","pickUpMethodSelection","Number","parseInt","selectedLocationProps","storeSelectorViewProps","_selectedStore$StoreH","_selectedStore$OrgUni4","_selectedStore$OrgUni5","_selectedStore$OrgUni6","_storeSelectorViewPro","_storeSelectorViewPro2","storeNameValue","orgUnitNumber","_data$storeSelectorSt2","_data$storeSelectorSt3","isDesktopPort","setIsDesktopPort","isDesktopViewport","portView","Browser","scrollIntoView","_selectedLocationDiv$","offset","getBoundingClientRect","totalHeight","top","viewport","_data$storeSelectorSt","displayMap","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","fallBackSrc","xl","cropFocalRegion","renderProductImage","ItemId","signInMessage","signInButton","selectRatingLabel","reviewTitleLabel","reviewTextLabel"],"sourceRoot":""}