{"version":3,"file":"static/js/23.043cd562299c38bc7492.chunk.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/modules/promo-banner-cookie/promo-banner-cookie.tsx?026a","webpack://msdyn365.commerce.online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://msdyn365.commerce.online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://msdyn365.commerce.online/./src/modules/accordion/accordion.tsx?78b1","webpack://msdyn365.commerce.online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://msdyn365.commerce.online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://msdyn365.commerce.online/./src/modules/footer-item/footer-item.tsx?074a","webpack://msdyn365.commerce.online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://msdyn365.commerce.online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://msdyn365.commerce.online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://msdyn365.commerce.online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/pickup-option-list.tsx?dae0","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/store-pickup-option-list.tsx?7a25","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/store-selector-location-line-item/date-time-helpers.ts?fe27","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/store-selector-location-line-item/store-selector-location-line-item.components.tsx?923d","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/store-selector-location-lines.tsx?87ff","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/store-selector-search-form.tsx?fb9a","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/store-selector-small-components.tsx?4335","webpack://msdyn365.commerce.online/./src/modules/store-selector/components/selected-store/selected-store.tsx?bfbc","webpack://msdyn365.commerce.online/./src/modules/store-selector/store-selector.tsx?e416","webpack://msdyn365.commerce.online/./src/modules/store-selector/store-selector.view.tsx?71a6"],"sourcesContent":["import { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICookieValue, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IPromoBannerCookieData } from './promo-banner-cookie.data';\r\nimport { ILinkData, IPromoBannerCookieProps } from './promo-banner-cookie.props.autogenerated';\r\n\r\n// =========================================================================\r\n// MODULE-WIDE CONSTANTS\r\n// =========================================================================\r\nconst CookieName = 'promoBannerCookie';\r\n\r\n/**\r\n *\r\n * PromoBannerCookie component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass PromoBannerCookie extends React.Component> {\r\n\r\n // ==========================================================================\r\n // OBSERVABLES\r\n // ==========================================================================\r\n\r\n @observable private bannerDismissed: boolean = false;\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n constructor(props: IPromoBannerCookieProps) {\r\n super(props);\r\n this._closeModal = this._closeModal.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.config.bodyClass && (!this._isCookieSet || this.bannerDismissed === false)) {\r\n document.body.classList.add(this.props.config.bodyClass);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n\r\n // tslint:disable-next-line: no-typeof-undefined\r\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\r\n return null;\r\n }\r\n\r\n const { config } = this.props;\r\n const cookie = this.props.context.request.cookies;\r\n\r\n try {\r\n cookie.setConsentCookie();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n if (this._isCookieSet === true || this.bannerDismissed === true) { return null; }\r\n return (\r\n \r\n {this._renderContent}\r\n {this._renderButton(config.dismissible!)}\r\n \r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _setCookie(): void {\r\n const cookieMaxAge = this.props.config.cookieMaxAge ? this.props.config.cookieMaxAge * 60 * 60 : 86400;\r\n this.props.context.request.cookies.set(CookieName, true, { path: '/', maxAge: cookieMaxAge });\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _isCookieSet(): boolean {\r\n const cookie = this.props.context.request.cookies;\r\n const promoBannerCookie = cookie.get(CookieName) as ICookieValue<{}> | undefined;\r\n\r\n if (promoBannerCookie === undefined || promoBannerCookie.value === 'false') { return false; }\r\n\r\n return (!!promoBannerCookie.value);\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _closeModal(): void {\r\n this._setCookie();\r\n if (this.props.config.bodyClass) {\r\n document.body.classList.remove(this.props.config.bodyClass);\r\n }\r\n this.bannerDismissed = true;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _target(link: ILinkData): string | undefined {\r\n return (link.openInNewTab) ? '_blank' : undefined;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _renderContent(): JSX.Element {\r\n const { config } = this.props;\r\n if (config.link && config.link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {this._renderTitle}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {this._renderTitle}\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _renderTitle(): JSX.Element | null {\r\n const title = this.props.config.title;\r\n if (!title) { return null; }\r\n if (!title.text) { return null; }\r\n return (\r\n \r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderButton(dismissible: boolean): JSX.Element | null {\r\n if (!dismissible) { return null; }\r\n\r\n return \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\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 { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\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 handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\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 }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\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 } 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 { 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\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, 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\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"],"names":["CookieName","PromoBannerCookie","React","constructor","props","super","bannerDismissed","this","_closeModal","bind","componentDidMount","config","bodyClass","_isCookieSet","document","body","classList","add","render","window","location","hostname","cookie","context","request","cookies","setConsentCookie","error","console","log","className","style","backgroundColor","_renderContent","_renderButton","dismissible","_setCookie","cookieMaxAge","set","path","maxAge","promoBannerCookie","get","undefined","value","remove","_target","link","openInNewTab","linkUrl","destinationUrl","href","target","ariaLabel","color","textColor","_renderTitle","RichTextComponent","text","title","Heading","headingTag","tag","onClick","__decorate","observable","observer","AccordionItem","moduleClassName","handleHeadingChange","event","accordionItemTitle","_onToggle","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","data","slots","renderView","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","_objectSpread","AccordionItemContainer","moduleProps","classnames","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","state","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","_renderAccordionItemContent","items","length","map","item","index","key","Module","Object","assign","Node","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","heading","_onExpandAll","_onCollapseAll","payLoad","getPayloadObject","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","resources","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","getTelemetryAttributes","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","ref","toggleAllSeparator","collapseAllText","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess","FooterItem","handleTextChange","handleLinkTextChange","linkText","image","footerItemClassName","attributes","viewProps","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","role","onTelemetryClick","editableLink","additionalProperties","ariaHiddenAttr","src","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","shouldSkipToMainImage","FooterItemView","_renderElement","InteractiveFeatureCollection","_telemetryContent","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","id","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","customer","IsB2bAdmin","selectorState","setSelectorState","currentSelectorState","onClickHandler","newSelectorState","onChange","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","Button","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","PickUpOptionList","eventsToBeBind","handleDocumentClick","htmlElement","_pickupListOptionButton","contains","_pickupListOptionMenu","expandSiteOptions","_onSelect","async","preventDefault","deliveryCode","currentTarget","getAttribute","_renderDeliveryOptions","addEventListener","componentWillUnmount","removeEventListener","pickupListOptionMenuText","pickupmodeList","delivery","Code","tabIndex","Description","stopPropagation","isExpandSiteOptionsState","StorePickUpOptionList","_rendeDeliveryOptions","isExpandOptionsState","isFilterExpanded","selectedPickupMode","_onKeyDown","_storePickupListOptionMenu","_productPickupModeLis","productPickupListOptionMenuText","productPickupModeList","defaultOptionText","selectedPickupModeDesc","find","onKeyDown","secondsToTime","seconds","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","day","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","buildStoreHoursString","closedText","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","push","storeSelectorLocationLineItemComponentActions","onLocationSelected","deliveryMode","handlers","onSelected","onSetAsPreferredStore","OrgUnitNumber","onRemovePreferredStore","buildDistanceString","distance","preferredDistanceUnit","isLocationDisabled","onPickupModeSelectHandler","pickupMode","onSetPreferredStoreClickHandler","removePreferredStoreHandler","onChangeHandler","Promise","resolve","matchDeliveryOptions","productdeliveryOptions","storePickUpOptionList","deliveryOption","pickup","_delivery","StoreSelectorLocationLineItemComponent","hideStockStatus","isCurrentLocation","isInStock","stockStatusLabel","storeLocatorView","preferredStoreLocationId","isPreferredStoreEnabled","productPickUpOptionList","shouldShowIndex","storeName","OrgUnitName","distanceAsString","Distance","storeAddress","Address","phoneNumber","contacts","allPhoneContacts","filter","contact","ContactTypeValue","IsPrivate","ArrayExtensions","hasElements","primaryPhoneContact","IsPrimary","Locator","extractPhoneNumber","Contacts","resourceLabel","inStock","outOfStock","stockLabel","stockText","canSelectLocation","pickupInStoreButtonText","selectLocation","pickupInStoreAriaLabel","selectLocationAriaLabelFormat","replace","isPreferredStore","PickupInStore","PreferredStore","preferredStoreAttributes","RemovePreferredStore","removePreferredStoreAttributes","deliveryOptionList","isError","setError","contactInfoHeader","storeHoursHeader","renderStoreHours","RegularStoreHours","displayTime","JSON","stringify","storeOpenFrom","OpenFrom","storeOpenTo","OpenTo","availabilityInfoHeader","currentLocation","pickUpButtonClickHandler","renderPickupModes","filteredPickupMode","preferredStoreAriaLabel","preferredStoreText","setAsPreferredStoreTextAriaLabel","setAsPreferredStoreText","pickupDeliveryOptionErrorMessage","StoreSelectorLocationLines","orgUnitLocation","_scrollIntoView","selectedLocationDiv","selectedLocationRef","parent","parentElement","scrollTop","offsetTop","clientHeight","_isCurrentLocation","alreadySelectedLocation","_isProductInStock","itemAvailabilities","enableOutOfStockCheck","AvailableQuantity","_stockInventoryLabel","availabilityWithHours","ProductInventoryInformation","i","_availabilityWithHour","OrgUnitAvailability","OrgUnitLocation","InventoryLocationId","InventLocationId","StockLevelLabel","_mapResources","contactText","timeText","availabilityText","storeHoursClosedText","outOfStockText","inStockText","selectedStoreLocationText","selectStoreText","selectStoreAriaFormatText","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","storeCounter","componentDidUpdate","previousProps","selectedStoreLocationId","locations","_stores","_sortStores","reaction","show","displayList","store","_renderStoreLocation","_store$OrgUnitAvailab","deliveryOptions","OrgUnitPickUpDeliveryModes","_store$OrgUnitAvailab2","selected","StoreHours","ItemAvailabilities","toString","DeliveryOptions","productPickUpDeliveryOptions","stores","_value$OrgUnitAvailab","StoreSelectorSearchForm","searchBoxRef","previousValue","isSearchResultOpened","_handleInputKeyPress","keyCode","KeyCodes","ArrowUp","ArrowDown","activeDescedantValue","_handleKeyPressPrev","Enter","Space","onShowAllStores","_searchTextChanged","inputValue","searchTermChanged","_onSubmit","_this$searchBoxRef$cu","blur","performSearch","_onChangeHandler","filterPickupModeSelected","renderPickupModesList","pickupFilterMenuHeading","locatorView","pickupFilterByHeading","hasEnabledPickupFilterToShowStore","shouldDisplayList","toggleButtonClass","onToggleListMapViewState","toggleMapViewAttributes","SearchStore","storeSearchAttributes","ShowAllStore","showAllStoreAttributes","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","seeAllStoresText","viewListText","viewMapText","isMapDisabled","showAllStores","name","autoComplete","onSubmit","type","searchInputAriaLabel","placeholder","onKeyUp","StoreSelectorEmptyMessage","_ref","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","_ref2","StoreSelectorFoundLocationsMessage","_ref3","searchRadius","isSeeAllStore","storeCountMessage","milesShortText","storeCountMessageInKm","storeAllCountMessage","onPickupInStoreClickHandler","_props$selectedStore","selectedStore","_props$selectedStore2","_props$selectedStore3","_props$selectedStore4","storeDetailsModalHandler","closeStoreDetailsModal","SelectedStoreComponent","_selectedStore$OrgUni","_selectedStore$OrgUni2","shouldHideStockStatus","parentClassName","storeDetailsMain","storeHeader","storeDetailsCloseButton","storeDistance","storeDetailsAvailabilityContainer","productAvailability","stockStatus","pickUpDeliveryOptionButton","pickupModes","preferredStoreButton","removePreferredStoreButton","StoreSelector","renderSelectedStore","shouldHideInventory","preferredStore","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","debug","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_preferredStore$OrgUn","_preferredStore$OrgUn2","_preferredStore$OrgUn3","storeId","mode","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","clearPreferredStore","setSelectedStoreLocationId","_setSelectedStore","searchTerm","isSearchInProgress","isSeeAllStoreValue","geoLocate","trim","_updateLocations","latitude","longitude","shouldShowAllStores","_navigator","isDialogOpen","navigator","geolocation","getCurrentPosition","position","coords","PERMISSION_DENIED","timeout","_closeDialog","_storeSelectorStateMa","parentElementRef","closeDialog","_setOrgUnitStoreInformation","moduleId","styleDefault","input","preferredLocationId","storeLocationList","orgUnitStoreInformation","showMapViewLink","isDialog","product","setOrgUnitStoreInformation","catch","message","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$context$a","_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","app","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","Modal","classname","autoFocus","fade","onClosed","horizontalPosition","verticalPosition","toggle","isMobileView","HeaderContainerProps","ModalHeader","HeaderProps","FooterContainerProps","ModalFooter","BodyContainerProps","ModalBody","bodyWrapperProps","storeResultContainerProps","mapContainerProps","storeDetailsModal","locationsMessage","search","spinner","locationsList","outOfStockThreshold","noLocationsMessage","terms","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","isStoreLocatorView","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","_store$OrgUnitAvailab4","locationOpen","openFrom","openTo","renderDeliveryOptions","renderBody"],"sourceRoot":""}