{"version":3,"file":"static/js/11.e342cf4d4ac0501659f4.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/krannich-portal/krannich-portal.tsx?fe65","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-portal/krannich-portal.view.tsx?7e56","webpack://Msdyn365.Commerce.Online/./src/actions/customProxy/MyAccount/DataServiceEntities.g.ts?407f","webpack://Msdyn365.Commerce.Online/./src/actions/customProxy/MyAccount/DataActionExtension.g.ts?1377","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/account-profile.view.tsx?acd7","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/cookie-compliance.view.tsx?aeb8","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/footer-item.view.tsx?d46d","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/search.view.tsx?59e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.tsx?65fe","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.tsx?9384","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.view.tsx?94a7","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-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/pickup-option-list.tsx?dae0","webpack://Msdyn365.Commerce.Online/./src/modules/store-selector/components/selected-store/selected-store.tsx?bfbc","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/store-selector.tsx?e416","webpack://Msdyn365.Commerce.Online/./src/modules/store-selector/store-selector.view.tsx?71a6","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/cart.view.tsx?3909","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-details.view.tsx?027b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/sign-in.view.tsx?048a","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/store-selector.view.tsx?ccdd","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/write-review.view.tsx?c67c"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\n\r\nimport { IKrannichPortalData } from './krannich-portal.data';\r\nimport MsDyn365, { IActionContext, ICookieContext, ICoreContext } from '@msdyn365-commerce/core';\r\nimport actionAddressFromZipCode, { GetAddressFromZipCodeInput } from '../../actions/get-address-from-zip-code.action';\r\nimport { IKrannichPortalProps, IKrannichPortalConfig, IKrannichPortalResources } from './krannich-portal.props.autogenerated';\r\nimport { getMainDomain } from '../../utils/helper';\r\n\r\nexport interface IModalRouterPortalProps {\r\n actionContext: IActionContext;\r\n cookies: ICookieContext;\r\n resources: IKrannichPortalResources;\r\n config: IKrannichPortalConfig;\r\n context: ICoreContext;\r\n}\r\n\r\ninterface IZipCode {\r\n Locality: string;\r\n Pcode: number;\r\n State: string;\r\n Territory: string;\r\n}\r\n\r\n/**\r\n * KrannichPortal functional component\r\n */\r\n\r\nconst KrannichPortal: React.FC> = props => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [zipCode, setZipCode] = useState('');\r\n const [error, setError] = useState('');\r\n const [alertActive, setAlertActive] = useState(false);\r\n const modalBtn = useRef();\r\n const inputRef = useRef(null);\r\n const [isPreviewUrl, setIsPreviewUrl] = useState(false);\r\n const enableGenericTerritories = props.config.enableGenericTerritories || false;\r\n\r\n const territory_data = props.config?.territoryData!;\r\n const notFoundError =\r\n props?.context?.actionContext?.requestContext?.apiSettings?.oun !== props.context.app.config.ounNumberForUsSite\r\n ? props.resources.notFound\r\n : props.resources.notFoundZipcode;\r\n\r\n const toggle = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n useEffect(() => {\r\n const addressFromZip = props.context.request.cookies.get('addressFromZip');\r\n\r\n if (!enableGenericTerritories) {\r\n if (addressFromZip.status === 'FOUND') {\r\n const { value } = addressFromZip;\r\n const territory = value?.Territory;\r\n let isTerritoryMatched;\r\n const pathName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.pathname;\r\n const hostName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.hostname;\r\n if (\r\n territory === 'KAUM' &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) || pathName?.includes('aus-mb') || hostName?.includes('aus-mb'))\r\n ) {\r\n isTerritoryMatched = true;\r\n } else if (\r\n territory === 'KAUB' &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) || pathName?.includes('aus-br') || hostName?.includes('aus-br'))\r\n ) {\r\n isTerritoryMatched = true;\r\n } else {\r\n isTerritoryMatched = false;\r\n }\r\n !isTerritoryMatched && __reditectTo(territory);\r\n } else {\r\n toggle();\r\n }\r\n } else {\r\n if (addressFromZip.status === 'FOUND' && territory_data?.length > 0) {\r\n const { value } = addressFromZip;\r\n const territory = value?.Territory;\r\n\r\n let isTerritoryMatched;\r\n const pathName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.pathname;\r\n const hostName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.hostname;\r\n\r\n for (const item of territory_data) {\r\n if (\r\n territory === item.name &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) ||\r\n pathName?.includes(item.pathKeyword) ||\r\n hostName?.includes(item.pathKeyword))\r\n ) {\r\n isTerritoryMatched = true;\r\n break;\r\n }\r\n }\r\n !isTerritoryMatched && __reditectTo(territory ?? '');\r\n } else {\r\n toggle();\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const checkPreviewInProgress = () => {\r\n const currentUrl = window.location.href;\r\n try {\r\n const urlObj = new URL(currentUrl);\r\n const searchParams = new URLSearchParams(urlObj.search);\r\n const isInProgress = searchParams.get('preview') === 'inprogress';\r\n setIsPreviewUrl(isInProgress);\r\n } catch (error) {\r\n console.error('Invalid URL:', currentUrl, error);\r\n setIsPreviewUrl(false);\r\n }\r\n };\r\n\r\n checkPreviewInProgress();\r\n }, []);\r\n\r\n const __reditectTo = (territory: string | undefined) => {\r\n if (!enableGenericTerritories) {\r\n const { brBaseUrl, mbBaseUrl } = props.config;\r\n let redirectURL = null;\r\n if (territory?.toUpperCase() === 'KAUM') {\r\n redirectURL = mbBaseUrl;\r\n }\r\n if (territory?.toUpperCase() === 'KAUB') {\r\n redirectURL = brBaseUrl;\r\n }\r\n MsDyn365.isBrowser && (window.location.href = redirectURL!);\r\n } else {\r\n let redirectURL = '';\r\n const matchingTerritory = territory_data?.find(item => item.name === territory?.toUpperCase());\r\n\r\n if (matchingTerritory) {\r\n redirectURL = matchingTerritory.redirectURL;\r\n MsDyn365.isBrowser && (window.location.href = redirectURL!);\r\n } else {\r\n toggle();\r\n }\r\n }\r\n };\r\n\r\n const _handleZipCode = async (event: React.FormEvent) => {\r\n if (!enableGenericTerritories) {\r\n const { apiException } = props.resources;\r\n event.preventDefault();\r\n if (zipCode.length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n }\r\n try {\r\n const getAddressFromZipCode = await actionAddressFromZipCode(\r\n new GetAddressFromZipCodeInput(zipCode, props.config.defaultTerritory),\r\n props.context.actionContext\r\n );\r\n if (Object.keys(getAddressFromZipCode).length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n } else {\r\n if (MsDyn365.isBrowser) {\r\n const currentHostname = window.location.hostname;\r\n // TODO: List of known production hostnames which we will make dynamic after Go Alive.\r\n const productionHostnames = [\r\n // Todo: for local testing, need to remove later on\r\n // 'localhost:4000',\r\n 'aus.krannich-shop.com',\r\n 'aus-mb.krannich-shop.com',\r\n 'aus-br.krannich-shop.com'\r\n ];\r\n const isProdEnv = productionHostnames.includes(currentHostname);\r\n if (isProdEnv) {\r\n props?.context?.request?.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: '.krannich-shop.com',\r\n path: '/'\r\n });\r\n } else {\r\n props?.context?.request?.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode));\r\n }\r\n setIsOpen(false);\r\n setAlertActive(false);\r\n __reditectTo(getAddressFromZipCode?.Territory);\r\n }\r\n }\r\n } catch (e) {\r\n setError(apiException);\r\n setAlertActive(true);\r\n }\r\n setZipCode('');\r\n } else {\r\n event.preventDefault();\r\n if (zipCode.length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n }\r\n try {\r\n const getAddressFromZipCode = await actionAddressFromZipCode(\r\n new GetAddressFromZipCodeInput(zipCode, props.config.defaultTerritory),\r\n props.context.actionContext\r\n );\r\n if (Object.keys(getAddressFromZipCode).length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n } else {\r\n if (MsDyn365.isBrowser) {\r\n const currentHostname = window.location.hostname;\r\n const mainDomain = getMainDomain(currentHostname);\r\n if (currentHostname === 'localhost') {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode));\r\n } else if (mainDomain) {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: `.${mainDomain}`,\r\n path: '/'\r\n });\r\n } else {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: '.krannich-shop.com',\r\n path: '/'\r\n });\r\n }\r\n setIsOpen(false);\r\n setAlertActive(false);\r\n __reditectTo(getAddressFromZipCode?.Territory);\r\n }\r\n }\r\n } catch (e) {\r\n setError(props.resources.apiException);\r\n setAlertActive(true);\r\n }\r\n setZipCode('');\r\n }\r\n };\r\n const viewProps = {\r\n ...props,\r\n isOpen,\r\n inputRef,\r\n zipCode,\r\n setZipCode,\r\n error,\r\n alertActive,\r\n toggle,\r\n _handleZipCode,\r\n modalBtn,\r\n isPreviewUrl\r\n };\r\n return props.renderView(viewProps) as React.ReactElement;\r\n};\r\n\r\nexport default KrannichPortal;\r\n","import React from 'react';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IKrannichPortalConfig, IKrannichPortalResources } from './krannich-portal.props.autogenerated';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n config: IKrannichPortalConfig;\r\n resources: IKrannichPortalResources;\r\n inputRef: any;\r\n zipCode: string;\r\n setZipCode: React.Dispatch>;\r\n error: string;\r\n alertActive: boolean;\r\n _handleZipCode: (event: React.FormEvent) => Promise;\r\n modalBtn: any;\r\n isPreviewUrl: boolean;\r\n}\r\n\r\nconst PortalModal: React.FC = props => {\r\n const { alertActive, config, error, inputRef, isOpen, modalBtn, resources, setZipCode, _handleZipCode, zipCode, isPreviewUrl } = props;\r\n // const isPreviewUrlEnabled = config.enablePreviewUrl &&;\r\n return (\r\n
\r\n \r\n \r\n
\r\n {config.logoImage?.altText}\r\n
\r\n
\r\n \r\n

{config.headingWebShop}

\r\n
\r\n
\r\n \r\n {config.newZealandZipCodeMsg &&

{config.newZealandZipCodeMsg}

}\r\n setZipCode(e.target.value)}\r\n maxLength={10}\r\n />\r\n {alertActive &&

{error}

}\r\n {\r\n setZipCode(inputRef.current?.value!);\r\n }}\r\n type='submit'\r\n >\r\n {resources.submitBtnLabel}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PortalModal;\r\n","// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * KRV_AddressResponseEntity entity interface.\r\n */\r\nexport interface IKRV_AddressResponseEntity {\r\n Id: string;\r\n AddressList?: IKRV_AddressEntity[];\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * KRV_AddressEntity entity interface.\r\n */\r\nexport interface IKRV_AddressEntity {\r\n AddressName?: string;\r\n Street?: string;\r\n City?: string;\r\n State?: string;\r\n PostalCode?: string;\r\n Country?: string;\r\n CountryRegion?: string;\r\n FullAddress?: string;\r\n}\r\n\r\n/**\r\n * KRV_AddressResponseEntity entity class.\r\n */\r\nexport class KRV_AddressResponseEntityExtensionClass implements IKRV_AddressResponseEntity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Id: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public AddressList: IKRV_AddressEntity[];\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Id = odataObject.Id;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AddressList = undefined;\r\n if (odataObject.AddressList) {\r\n this.AddressList = [];\r\n for (var i = 0; i < odataObject.AddressList.length; i++) {\r\n if (odataObject.AddressList[Number(i)]) {\r\n if (odataObject.AddressList[Number(i)]['@odata.type']) {\r\n var className: string = odataObject.AddressList[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.AddressList[Number(i)] = new EntityClasses[String(className)](odataObject.AddressList[Number(i)]);\r\n }\r\n } else {\r\n this.AddressList[Number(i)] = new KRV_AddressEntityExtensionClass(odataObject.AddressList[Number(i)]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AddressList[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (let i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[Number(i)]) {\r\n if (odataObject.ExtensionProperties[Number(i)]['@odata.type']) {\r\n let className: string = odataObject.ExtensionProperties[Number(i)]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[String(className)]) {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses[String(className)](\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n this.ExtensionProperties[Number(i)] = new EntityClasses.CommercePropertyClass(\r\n odataObject.ExtensionProperties[Number(i)]\r\n );\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[Number(i)] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * KRV_AddressEntity entity class.\r\n */\r\nexport class KRV_AddressEntityExtensionClass implements IKRV_AddressEntity {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public AddressName: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Street: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public City: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public State: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PostalCode: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Country: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CountryRegion: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FullAddress: string;\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AddressName = odataObject.AddressName;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Street = odataObject.Street;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.City = odataObject.City;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.State = odataObject.State;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PostalCode = odataObject.PostalCode;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Country = odataObject.Country;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CountryRegion = odataObject.CountryRegion;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FullAddress = odataObject.FullAddress;\r\n }\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport {\r\n AsyncResult,\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest,\r\n IQueryResultSettings\r\n} from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction kRV_BillingAddressQuery(id?: string): DataServiceQuery {\r\n const key = id ? { Id: id } : null;\r\n return new DataServiceQuery(\r\n 'KRV_BillingAddress',\r\n 'KRV_AddressResponseEntity',\r\n DataServiceEntities.KRV_AddressResponseEntityExtensionClass,\r\n key\r\n );\r\n}\r\n\r\nexport function createKRV_GetAddressInput(queryResultSettings: IQueryResultSettings, customerAccountNumber: string): IDataServiceRequest {\r\n const query = kRV_BillingAddressQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'KRV_GetAddress',\r\n true,\r\n DataServiceEntities.KRV_AddressEntityExtensionClass,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IKRV_AddressEntity' },\r\n { customerAccountNumber: customerAccountNumber }\r\n );\r\n}\r\n\r\nexport function kRV_GetAddressAsync(\r\n context: IContext,\r\n customerAccountNumber: string\r\n): AsyncResult {\r\n const request = createKRV_GetAddressInput(context.queryResultSettings || {}, customerAccountNumber);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference,\r\n IAccountPreferences,\r\n IAccountProfileItem,\r\n IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\nimport { IAccountProfileProps } from '../definition-extensions/account-profile.ext.props.autogenerated';\r\nimport { kRV_GetAddressAsync } from '../../../actions/customProxy/MyAccount/DataActionExtension.g';\r\nimport { IAccountProfileData } from './account-profile.data';\r\n\r\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {extraPreferences &&\r\n extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC> = props => {\r\n const {\r\n AccountProfile,\r\n accountProfileWrapper,\r\n heading,\r\n emailSection,\r\n preferenceSection,\r\n customerAttributesWrapper,\r\n customerAttributesSection,\r\n data: { accountInformation, customerInformation }\r\n } = props;\r\n\r\n const [billingAddress, setBillingAddress] = React.useState();\r\n const companyName = customerInformation.result?.ExtensionProperties?.find(item => item.Key === 'CompanyName');\r\n const context1 = { callerContext: props.context.actionContext };\r\n const accountNumber = accountInformation?.result?.AccountNumber;\r\n const invoiceAccountNumber = accountInformation.result?.InvoiceAccount;\r\n let billAddress: string | undefined;\r\n let billName: string | undefined;\r\n let billNumber: string | undefined;\r\n\r\n if (invoiceAccountNumber === '') {\r\n accountInformation.result?.Addresses?.map((item: any) => {\r\n if (item.IsPrimary === true) {\r\n billName = item.Name;\r\n billAddress = item.FullAddress;\r\n billNumber = item.Phone;\r\n }\r\n });\r\n } else {\r\n billName = accountInformation.result?.Name;\r\n billAddress = billingAddress?.FullAddress!;\r\n billNumber = accountInformation.result?.Phone;\r\n }\r\n React.useEffect(() => {\r\n if (accountNumber) {\r\n kRV_GetAddressAsync(context1, accountNumber).then((result: any) => {\r\n setBillingAddress(result[0]);\r\n });\r\n }\r\n }, [accountNumber]);\r\n return (\r\n \r\n {/* {infoMessageBar} */}\r\n {accountProfileWrapper && (\r\n <>\r\n \r\n {heading}\r\n {/* VSI CUSTOMIZATION START */}\r\n {/* \r\n */}\r\n
\r\n \r\n
\r\n
\r\n {/* {props.resources.personalDataHeading} */}\r\n
\r\n {/* */}\r\n {props.resources.firstNameHeading}\r\n {props.data.customerInformation.result?.FirstName}\r\n
\r\n
\r\n {props.resources.lastNameHeading}\r\n {props.data.customerInformation.result?.LastName}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {props.resources.companyNameHeading}\r\n \r\n {companyName?.Value?.StringValue ? companyName?.Value?.StringValue : '-'}\r\n \r\n
\r\n
\r\n\r\n {/* VSI CUSTOMIZATION End */}\r\n
\r\n {billName && billNumber && (\r\n
\r\n

{props.resources.billingAddressHeading}

\r\n
\r\n {props.resources.name}\r\n {billName}\r\n
\r\n
\r\n {props.resources.phone}\r\n {billNumber}\r\n
\r\n
\r\n {props.resources.fulladdress}\r\n {billAddress ? billAddress : props.resources.noAddressFoundtext}\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n
\r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICookieComplianceViewProps } from '@msdyn365-commerce-modules/cookie-compliance/src/modules/cookie-compliance/./cookie-compliance';\r\nimport { ICookieComplianceProps as ICookieComplianceExtensionProps } from './../definition-extensions/cookie-compliance.ext.props.autogenerated';\r\n\r\ndeclare global {\r\n interface Window {\r\n CookieConsent: {\r\n consent: {\r\n necessary: boolean;\r\n };\r\n };\r\n }\r\n}\r\n\r\nconst CookieComplianceView: React.FC> = props => {\r\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\r\n\r\n const { config, context } = props;\r\n const { externalConsent } = config;\r\n\r\n React.useEffect(() => {\r\n if (externalConsent) {\r\n const consentChoosed = () => {\r\n if (context && context.request && context.request.cookies) {\r\n context.request.cookies.setConsentCookie();\r\n location.reload();\r\n }\r\n };\r\n if (window?.CookieConsent?.consent?.necessary) {\r\n context.request.cookies.setConsentCookie();\r\n location.reload();\r\n }\r\n window.addEventListener(\r\n 'CookiebotOnAccept',\r\n () => {\r\n window.CookieConsent.consent.necessary && consentChoosed();\r\n },\r\n false\r\n );\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n {!externalConsent && (\r\n \r\n \r\n \r\n {text}\r\n {links}\r\n \r\n {acceptButton}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default CookieComplianceView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer/src/modules/footer-item';\r\n\r\n/**\r\n *\r\n * FooterItemView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const {\r\n FooterItem,\r\n Link,\r\n context: {\r\n actionContext: {\r\n requestContext: {\r\n user: { isAuthenticated }\r\n }\r\n }\r\n }\r\n } = this.props;\r\n //VSI CUSTOMIZATION START Hide register now link in case of logged in user\r\n if (Link?.title === 'Become a Valued Customer' && isAuthenticated) {\r\n return null;\r\n }\r\n return {this._renderElement(this.props)};\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\r\n if (heading) {\r\n return {heading} ;\r\n } else if (Link && image) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n } else if (Link) {\r\n return EditableLink;\r\n }\r\n return (\r\n <>\r\n {text}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISearchCategoryViewProps,\r\n ISearchFormViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps\r\n} from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n context: {\r\n actionContext: {\r\n requestContext: {\r\n user: { isAuthenticated }\r\n }\r\n }\r\n }\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword, isLoadingAutoSuggest, isLoadingNode)}\r\n {_renderProductSuggestions(\r\n ProductSuggest,\r\n UlProduct,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n isAuthenticated\r\n )}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory, isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.input}\r\n {form.cancelBtn}\r\n {form.submitBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode,\r\n isAuthenticated?: boolean\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n
{item.thumbnail}
\r\n
\r\n
{item.text}
\r\n {/* VSI CUSTOMIZATION START => Price Shows in Search for Only Logged in User */}\r\n {/*
{isAuthenticated ? item.price : null}
*/}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\r\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 { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\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 onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\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 {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

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

\n {message}\n

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

{resources.emptyLocationsText}

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

{resources.contactInfoHeader}

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

{resources.storeHoursHeader}

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

{resources.availabilityInfoHeader}

}\n {stockText &&

{stockText}

}\n {isCurrentLocation ? (\n

{resources.currentLocation}

\n ) : canSelectLocation ? (\n deliveryOptionList.length === 0 ? (\n \n {pickupInStoreButtonText}\n \n ) : (\n renderPickupModes(props, deliveryOptionList, pickupInStoreButtonText, pickupInStoreAriaLabel)\n )\n ) : (\n false\n )}\n
\n )}\n {isPreferredStoreEnabled ? (\n isPreferredStore ? (\n \n {resources.preferredStoreText}\n \n ) : (\n \n {resources.setAsPreferredStoreText}\n \n )\n ) : null}\n
\n {isError ? (\n \n \n ) : ('')}\n
\n );\n};\n\n/**\n * Store location line item component.\n */\nexport const StoreSelectorLocationLineItemComponent = storeSelectorLocationLineItem as (\n props: IStoreSelectorLocationLineItemProps\n) => JSX.Element;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { DeliveryOption, ItemAvailability, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\nimport { IStoreInfo, IStoreSelectionStateContext } from '@msdyn365-commerce-modules/bopis-utilities';\nimport {\n ArrayExtensions,\n getFullAvailableInventoryNearby,\n GetFullAvailableInventoryNearbyInput,\n getOrgUnitLocationsByArea,\n GetOrgUnitLocationsByAreaInput,\n IFullOrgUnitAvailability\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n isMobile,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n NodeTag,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport {\n StoreSelectorEmptyMessage,\n StoreSelectorFoundLocationsMessage,\n StoreSelectorLocationLines,\n StoreSelectorSearchForm,\n StoreSelectorTermsOfService,\n StoreSelectorWaiting\n} from './components';\nimport { ISelectedStoreProps, ISelectedStoreViewProps, SelectedStoreComponent } from './components/selected-store/selected-store';\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './components/store-selector-location-line-item/date-time-helpers';\nimport { IStoreSelectorData } from './store-selector.data';\nimport {\n IStoreSelectorProps,\n IStoreSelectorResources,\n mode as modeEnum,\n searchRadiusUnit as SearchRadiusUnit,\n style as styleEnum\n} from './store-selector.props.autogenerated';\n\n/**\n * StoreSelector State Interface.\n */\nexport interface IStoreSelectorState {\n isSearchInProgress: boolean;\n searchTerm?: string;\n isSeeAllStoreValue: boolean;\n isLocationDisabled?: boolean;\n filteredPickupMode?: string;\n}\n\n/**\n * StoreSelector View Props Interface.\n */\nexport interface IStoreSelectorViewProps extends IStoreSelectorProps {\n state: IStoreSelectorState;\n\n // Containers:\n ModuleProps: IModuleProps;\n BodyContainerProps: INodeProps;\n FooterContainerProps: INodeProps;\n HeaderContainerProps: INodeProps;\n HeaderProps?: React.ReactNode;\n\n // Components\n locationsMessage?: React.ReactNode;\n search?: React.ReactNode;\n spinner?: React.ReactNode;\n locationsList?: React.ReactNode;\n selectedLocation?: ISelectedStoreViewProps;\n noLocationsMessage?: React.ReactNode;\n terms?: React.ReactNode;\n headerText?: React.ReactNode;\n sortLocations?: IFullOrgUnitAvailability[];\n locationListProps?: IStoreSelectorLocationLineItemProps[];\n bodyWrapperProps?: INodeProps;\n storeResultContainerProps?: INodeProps;\n mapContainerProps?: INodeProps;\n maps?: React.ReactNode;\n isMobileView?: boolean;\n storeDetailsModal?: INodeProps;\n\n callbacks: {\n closeDialog(): Promise;\n searchTermChanged(searchTerm: string): Promise;\n performSearch(searchTerm: string): Promise;\n selectedLocation(location: OrgUnitLocation | undefined): Promise;\n getAndUpdateUserLocation(): Promise;\n attachMapAutoSuggest(): Promise;\n onSuggestionSelected(result: Microsoft.Maps.ISuggestionResult): Promise;\n setPreferredStore(storeId: string | undefined): Promise;\n removePreferredStore(): Promise;\n setSelectedStore(storeId: string | undefined): Promise;\n setOrgUnitStoreInformation(location: OrgUnitLocation | undefined): Promise;\n };\n}\n\n/**\n * StoreSelectorLocation Line Resources Interface.\n */\nexport interface IStoreSelectorLocationLineItemResources {\n contactInfoHeader: string;\n storeHoursHeader: string;\n availabilityInfoHeader: string;\n closedText: string;\n outOfStock: string;\n inStock: string;\n currentLocation: string;\n selectLocation: string;\n selectLocationAriaLabelFormat: string;\n setAsPreferredStoreText: string;\n setAsPreferredStoreTextAriaLabel: string;\n preferredStoreText: string;\n preferredStoreAriaLabel: string;\n\n days: {\n monday: string;\n tuesday: string;\n wednesday: string;\n thursday: string;\n friday: string;\n saturday: string;\n sunday: string;\n mondayFull: string;\n tuesdayFull: string;\n wednesdayFull: string;\n thursdayFull: string;\n fridayFull: string;\n saturdayFull: string;\n sundayFull: string;\n };\n}\n\n/**\n * ILocationHours Interface.\n */\nexport interface ILocationHours {\n openFrom?: string;\n openTo?: string;\n}\n\n/**\n * StoreSelectorLocation Line Item Props Interface.\n */\nexport interface IStoreSelectorLocationLineItemProps {\n location: OrgUnitLocation;\n storeHours?: StoreHours;\n storeHoursList?: IHoursDisplayInfo[];\n\n hideStockStatus?: boolean;\n isInStock?: boolean;\n isCurrentLocation?: boolean;\n\n resources: IStoreSelectorLocationLineItemResources;\n stockStatusLabel?: string;\n storeLocatorView?: boolean;\n isPreferredStoreEnabled?: boolean;\n index: string;\n preferredStoreLocationId: string | null;\n storePickUpOptionList?: DeliveryOption[];\n productPickUpOptionList?: DeliveryOption[];\n selectedStoreLocationId?: string;\n locationOpen?: ILocationHours;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n preferredDistanceUnit: string;\n isLocationDisabled?: boolean;\n handlers: {\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\n onSetAsPreferredStore(locationId: string | undefined): void;\n onRemovePreferredStore(): void;\n closeStoreDetailsModal(): Promise;\n };\n onClick: (locationId: string | undefined) => void;\n}\n\n/**\n *\n * Pick Up In Store module.\n * @extends React.Component>}\n */\n@observer\nclass StoreSelector extends React.Component, IStoreSelectorState> {\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private storeCounter: number;\n\n private isPreferredStoreEnabled?: boolean;\n\n public constructor(props: IStoreSelectorProps) {\n super(props);\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.state = { isSearchInProgress: true, searchTerm: '', isSeeAllStoreValue: false, filteredPickupMode: undefined };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.storeCounter = 0;\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n config: { autoSuggestionEnabled: isAutoSuggestionEnabled }\n } = this.props;\n\n // Adding Timeout to make sure it loads the data based upon the preferred store.\n setTimeout(() => {\n this._getAndUpdateStoreLocation();\n }, 0);\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isDialogOpen,\n async () => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (context?.id === this.props.id) {\n this._getAndUpdateStoreLocation();\n }\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.context?.id,\n async () => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (!context || context.id === this.props.id) {\n await this._searchTermChanged('');\n this._getAndUpdateStoreLocation();\n }\n }\n );\n\n if (this.props.data.storeSelectorStateManager.result?.loadMapApi) {\n await this.props.data.storeSelectorStateManager.result.loadMapApi({\n key: channel?.BingMapsEnabled ? channel.BingMapsApiKey : '',\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsEnabled ? channel.BingMapsApiKey : '',\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context.actionContext.requestContext.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.availabilitiesWithHours.result,\n async () => {\n if (this.props.data.storeSelectorStateManager.result?.isDialogOpen) {\n const storeLocationList = this.props.data.availabilitiesWithHours.result;\n if (storeLocationList) {\n await this._setOrgUnitStoreInformation(storeLocationList);\n }\n }\n }\n );\n\n if (isAutoSuggestionEnabled) {\n when(\n () => {\n const isMapApiLoaded = !!this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\n const isDialogOpen = !!this.props.data.storeSelectorStateManager.result?.isDialogOpen;\n const isSameContext = this.props.data.storeSelectorStateManager.result?.context?.id === this.props.id;\n return isMapApiLoaded && isDialogOpen && isSameContext;\n },\n () => {\n setTimeout(async () => {\n await this._attachMapAutoSuggest();\n }, 0);\n }\n );\n }\n }\n\n public shouldComponentUpdate(): boolean {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n if (context && context.id === this.props.id) {\n return true;\n }\n return false;\n }\n\n // eslint-disable-next-line complexity -- disabling the complexity for this method for now as its causing lot of other warnings\n public render(): JSX.Element {\n const {\n config: {\n termsOfServiceLink,\n className,\n heading,\n mode,\n style,\n setAsPreferredStore: shouldSetAsPreferredStore,\n showAllStores: shouldShowAllStores,\n lookupRadius,\n enablePickupFilterToShowStore: hasEnablePickupFilterToShowStore,\n searchRadiusUnit\n },\n context: {\n telemetry,\n app: { config: appConfig },\n actionContext: {\n requestContext: { channel, cookies }\n }\n },\n slots: { maps: mapSlot },\n resources,\n data: {\n availabilitiesWithHours: { result: availabilitiesWithHours },\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations }\n }\n } = this.props;\n\n this.storeCounter = 0;\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n const isMapDisabled = !(channel?.BingMapsApiKey && channel.BingMapsEnabled);\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n const isDialogOpen: boolean = storeSelectorStateManager\n ? storeSelectorStateManager.isDialogOpen && context?.id === this.props.id\n : false;\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n const isInlineView = styleDefault === styleEnum.inline;\n const isLocatorView = modeDefault === modeEnum.findStores;\n const shouldHideInventory = isLocatorView;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\n const shouldDisplayList = storeSelectorStateManager?.listMapViewState?.displayList;\n this.isPreferredStoreEnabled = shouldSetAsPreferredStore && cookies?.isConsentGiven();\n const canShowLocationView =\n context && (context.showMapViewLink === undefined || context.showMapViewLink) && storeSelectorStateManager?.isMapModuleLoaded;\n\n const storeSelectorActions = {\n async toggleListMapViewState(): Promise {\n await storeSelectorStateManager?.toggleListMapViewState();\n }\n };\n\n if (!channel?.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n }\n\n const configHeading = heading ? heading : isLocatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText;\n const preferredDistanceUnit =\n searchRadiusUnit === SearchRadiusUnit.kilometers ? resources.kilometersShortText : resources.milesShortText;\n const preferredLocationId = preferredStore?.StoreId ? preferredStore.StoreId : '';\n let storeLocationList: IFullOrgUnitAvailability[] | undefined = shouldHideInventory ? storeLocations : availabilitiesWithHours;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment -- Reading value from app config.\n const isEnableOutofStock: boolean = appConfig?.enableStockCheck || false;\n const alreadySelectedLocation = context ? context.alreadySelectedLocation : undefined;\n const productPickUpOptionList = storeSelectorStateManager?.context?.deliveryOptions?.DeliveryOptions;\n if (this.state.filteredPickupMode && storeLocationList) {\n storeLocationList = this.onFilterLocations(storeLocationList, this.state.filteredPickupMode);\n }\n\n let sortLocation = null;\n if (storeLocationList) {\n sortLocation = this._sortStores(storeLocationList, this.isPreferredStoreEnabled, preferredLocationId);\n }\n\n const locationListProps = this._getStoreLocationListProps(\n isEnableOutofStock,\n isLocatorView,\n preferredLocationId,\n this.isPreferredStoreEnabled,\n selectedStoreLocationId,\n sortLocation ?? null,\n preferredDistanceUnit,\n alreadySelectedLocation,\n productPickUpOptionList\n );\n\n const hasMapSlot = ArrayExtensions.hasElements(mapSlot);\n const dialogClassName = hasMapSlot ? 'ms-store-select__map' : '';\n const viewProps: IStoreSelectorViewProps = {\n ...(this.props as IStoreSelectorProps),\n state: this.state,\n maps: hasMapSlot ? mapSlot[0] : undefined,\n\n ModuleProps: {\n tag: isInlineView ? ('div' as NodeTag) : Modal,\n moduleProps: this.props,\n className: classname(\n `ms-store-${isInlineView ? 'locate' : 'select'}`,\n className,\n dialogClassName,\n isInlineView ? '' : 'msc-modal-input-required'\n ),\n autoFocus: true,\n fade: true,\n isOpen: isDialogOpen,\n 'aria-label': configHeading,\n onClosed: this._closeDialog,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n toggle: this._closeDialog\n },\n isMobileView: isMobileDevice,\n HeaderContainerProps: {\n tag: isInlineView ? ('div' as NodeTag) : ModalHeader,\n className: `ms-store-select__${isInlineView ? 'header' : 'modal-header'}`,\n toggle: this._closeDialog\n },\n HeaderProps: configHeading && (\n \n ),\n FooterContainerProps: {\n tag: isInlineView ? ('div' as NodeTag) : ModalFooter,\n className: `ms-store-select__${isInlineView ? 'footer' : 'modal-footer'} ${!shouldDisplayList ? 'map-only-view' : ''}`\n },\n BodyContainerProps: {\n tag: isInlineView ? ('div' as NodeTag) : ModalBody,\n className: `ms-store-select__${isInlineView ? 'body' : 'modal-body'}`\n },\n bodyWrapperProps: {\n tag: 'div' as NodeTag,\n className: 'ms-store-select__body_wrapper'\n },\n storeResultContainerProps: {\n tag: 'div' as NodeTag,\n className: 'ms-store-select__store_container'\n },\n mapContainerProps: {\n tag: 'div' as NodeTag,\n className: 'ms-store-select__map_container'\n },\n storeDetailsModal: {\n tag: 'div' as NodeTag,\n className: `ms-store-select__map__selected_store__modal ${\n selectedStoreLocationId && isDialogOpen && !shouldDisplayList ? 'show' : 'hide'\n }`\n },\n locationsMessage: !this.state.isLocationDisabled && (\n \n ),\n selectedLocation: this.renderSelectedStore(\n shouldHideInventory,\n preferredDistanceUnit,\n preferredStore,\n this.isPreferredStoreEnabled,\n isEnableOutofStock,\n productPickUpOptionList,\n shouldDisplayList\n ),\n search: (\n \n ),\n spinner: ,\n locationsList: ArrayExtensions.hasElements(storeLocationList) ? (\n \n ) : (\n undefined\n ),\n noLocationsMessage: ,\n terms: (\n \n ),\n\n // Not being used in current context, we can use it here to pass more props.\n headerText: (\n {heading ? heading : isLocatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText}\n ),\n sortLocations: sortLocation,\n locationListProps,\n callbacks: {\n searchTermChanged: this._searchTermChanged,\n performSearch: this._performSearch,\n closeDialog: this._closeDialog,\n selectedLocation: this._onOrgUnitLocationSelected,\n getAndUpdateUserLocation: async () => {\n this._getAndUpdateStoreLocation();\n return Promise.resolve();\n },\n attachMapAutoSuggest: this._attachMapAutoSuggest,\n onSuggestionSelected: this._onOrgUnitLocationSelected,\n setPreferredStore: this._setPreferredStore,\n removePreferredStore: this._removePreferredStore,\n setSelectedStore: this._setSelectedStore,\n setOrgUnitStoreInformation: this._setOrgUnitStoreInformation\n }\n } as IStoreSelectorViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Render the selected store for the mobile devices.\n * @param shouldHideInventory -- Hide Inventory.\n * @param preferredDistanceUnit -- Preferred Distance Unit.\n * @param preferredStore -- Preferred Store.\n * @param isPreferredStoreEnabled -- Is Preferred Store Enabled.\n * @param hasEnabledOutOfStockCheck -- Stock check is enabled or not.\n * @param productPickUpOptionList -- Product pickup option list.\n * @param shouldDisplayList - Should Display list.\n * @returns -- Returns the view props.\n */\n public renderSelectedStore = (\n shouldHideInventory: boolean,\n preferredDistanceUnit: string,\n preferredStore: IStoreInfo | undefined,\n isPreferredStoreEnabled: boolean | undefined,\n hasEnabledOutOfStockCheck: boolean,\n productPickUpOptionList?: DeliveryOption[],\n shouldDisplayList?: boolean\n ): ISelectedStoreViewProps | undefined => {\n const {\n resources,\n data: {\n availabilitiesWithHours: { result: availabilitiesWithHours },\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations }\n }\n } = this.props;\n\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n const selectedStore = (shouldHideInventory ? storeLocations : availabilitiesWithHours)?.find(\n store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === selectedStoreLocationId\n );\n const orgUnitLocation = selectedStore?.OrgUnitAvailability?.OrgUnitLocation;\n const selectedStoreResources = this._mapResources(resources);\n\n if (!shouldDisplayList && selectedStore) {\n const selectedProps: ISelectedStoreProps = {\n shouldHideStockStatus: shouldHideInventory,\n isCurrentLocation: this._isCurrentLocation(orgUnitLocation, context?.alreadySelectedLocation),\n isInStock: this._isProductInStock(hasEnabledOutOfStockCheck, selectedStore.OrgUnitAvailability?.ItemAvailabilities),\n selectedStore,\n resources: selectedStoreResources,\n stockStatusLabel: this._stockInventoryLabel(selectedStore),\n preferredStoreLocationId: preferredStore?.StoreId ? preferredStore.StoreId : '',\n isPreferredStoreEnabled,\n isLocationDisabled: this.state.isLocationDisabled,\n telemetryContent: this.telemetryContent,\n storePickUpOptionList: selectedStore.OrgUnitPickUpDeliveryModes?.DeliveryOptions,\n productPickUpOptionList,\n preferredDistanceUnit,\n handlers: {\n onSelected: this._onOrgUnitLocationSelected,\n onSetAsPreferredStore: this._setPreferredStore,\n onRemovePreferredStore: this._removePreferredStore,\n closeStoreDetailsModal: this._closeStoreDetailModal\n }\n };\n\n return SelectedStoreComponent(selectedProps);\n }\n\n return undefined;\n };\n\n /**\n * Method to be called on link text change.\n * @param event -Content Edit Event.\n */\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.termsOfServiceLink) {\n this.props.config.termsOfServiceLink.linkText = event.target.value;\n }\n };\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading = event.target.value;\n };\n\n /**\n * Show all stores handler function.\n */\n private readonly onShowAllStoresHandler = () => {\n this._getAndUpdateStoreLocation(true);\n this.setState({ filteredPickupMode: undefined });\n };\n\n /**\n * Method to be called for filtered the store location based on the filter selected by the user.\n * @param stores -All the stores from the API.\n * @param filteredPickupMode -Filter selected by the user.\n * @returns -Filtered stores.\n */\n private readonly onFilterLocations = (stores: IFullOrgUnitAvailability[], filteredPickupMode: string) => {\n return stores.filter(location => {\n return location.OrgUnitPickUpDeliveryModes?.DeliveryOptions?.some(deliveryOption => {\n return deliveryOption.Code === filteredPickupMode;\n });\n });\n };\n\n /**\n * Filter Store by pickup mode.\n * @param deliveryCode -Delivery Code.\n */\n private readonly onFilteredPickupMode = (deliveryCode: string) => {\n this.setState({ filteredPickupMode: deliveryCode });\n };\n\n /**\n * Method will sort all stores.\n * @param stores -Stores List.\n * @param isPreferredStoreEnabled -Module config value.\n * @param preferredStoreLocationId -Store Id.\n * @returns List of Stores.\n */\n // eslint-disable-next-line class-methods-use-this -- No need of introducing new variable.\n private _sortStores(\n stores: IFullOrgUnitAvailability[],\n isPreferredStoreEnabled: boolean | undefined,\n preferredStoreLocationId: string\n ): IFullOrgUnitAvailability[] {\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\n isPreferredStoreEnabled &&\n preferredStoreLocationId &&\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === preferredStoreLocationId;\n\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\n }\n\n /**\n * Method will list of store selector location line.\n * @param hasEnabledOutOfStockCheck -Stores List.\n * @param isStoreLocatorView -Module config value.\n * @param preferredStoreLocationId -Store Id.\n * @param isPreferredStoreEnabled -Stores List.\n * @param selectedStoreLocationId -Module config value.\n * @param stores -Store Id.\n * @param preferredDistanceUnit -Module config value.\n * @param alreadySelectedLocation -Already Selected Location.\n * @param productPickUpOptionList -Product supported Pickup Modes List.\n * @returns List of StoreSelectorLocation Line.\n */\n private _getStoreLocationListProps(\n hasEnabledOutOfStockCheck: boolean,\n isStoreLocatorView: boolean,\n preferredStoreLocationId: string,\n isPreferredStoreEnabled: boolean | undefined,\n selectedStoreLocationId: string | undefined,\n stores: IFullOrgUnitAvailability[] | null,\n preferredDistanceUnit?: string | undefined,\n alreadySelectedLocation?: OrgUnitLocation,\n productPickUpOptionList?: DeliveryOption[]\n ): IStoreSelectorLocationLineItemProps[] {\n const storeList: IStoreSelectorLocationLineItemProps[] = [];\n if (ArrayExtensions.hasElements(stores)) {\n stores.map((store, index: number) => {\n const storeLineProps = this._createStoreLocationList(\n store,\n index,\n hasEnabledOutOfStockCheck,\n isStoreLocatorView,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n selectedStoreLocationId,\n preferredDistanceUnit,\n alreadySelectedLocation,\n productPickUpOptionList\n );\n if (storeLineProps) {\n storeList.push(storeLineProps);\n }\n });\n }\n return storeList;\n }\n\n /**\n * Initialize Map AutoSuggest.\n */\n private readonly _attachMapAutoSuggest = async (): Promise => {\n const {\n config: { autoSuggestOptions },\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager?.isMapApiLoaded && !this.autoSuggestManager) {\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\n /**\n * Callback for the autosuggest API.\n */\n callback: () => {\n const options = { ...autoSuggestOptions, countryCode: channel?.ChannelCountryRegionISOCode };\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\n this.autoSuggestManager.attachAutosuggest(\n `#ms-store-select__search-box_${this.props.id}`,\n `#ms-store-select__search-box-container_${this.props.id}`,\n this._onSuggestionSelected\n );\n },\n\n /**\n * Error call back for autosuggest API.\n */\n errorCallback: () => {\n if (telemetry) {\n telemetry.debug('Unable to attach map auto suggest.');\n }\n },\n credentials: channel?.BingMapsApiKey\n });\n }\n };\n\n /**\n * On Selecting Location Suggestion.\n * @param result - Map Suggestions List.\n */\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\n const context = this.props.data.storeSelectorStateManager.result?.context;\n if (context && context.id === this.props.id) {\n await this._searchTermChanged(result.formattedSuggestion);\n await this._performSearch(result.formattedSuggestion);\n }\n };\n\n /**\n * On Selecting Preferred Store.\n * @param storeId - Store Id.\n */\n private readonly _setPreferredStore = async (storeId: string | undefined): Promise => {\n if (!storeId) {\n return;\n }\n\n const {\n context: {\n actionContext: {\n requestContext: { cookies }\n }\n },\n config: { mode },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager },\n storeLocations: { result: storeLocations },\n availabilitiesWithHours: { result: availabilitiesWithHours }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n\n let stores: IFullOrgUnitAvailability[];\n if (modeDefault === modeEnum.findStores && storeLocations) {\n stores = storeLocations;\n } else {\n stores = availabilitiesWithHours!;\n }\n\n const preferredStore = stores.find(store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === storeId);\n\n await storeSelectorStateManager.setPreferredStoreLocation(\n storeId,\n preferredStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName,\n cookies.isConsentGiven(),\n preferredStore?.OrgUnitAvailability?.OrgUnitLocation?.Latitude,\n preferredStore?.OrgUnitAvailability?.OrgUnitLocation?.Longitude\n );\n };\n\n /**\n * On Removing Preferred Store.\n */\n private readonly _removePreferredStore = async (): Promise => {\n const {\n context: {\n actionContext: {\n requestContext: { cookies }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n\n await storeSelectorStateManager.clearPreferredStore(cookies.isConsentGiven());\n };\n\n /**\n * Method called to close the store details modal that comes up on clicking the pushpin.\n * @returns Void promise.\n */\n private readonly _closeStoreDetailModal = async (): Promise => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n await storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n };\n\n /**\n * On Selecting Store for pickup.\n * @param storeId - Store Id.\n */\n private readonly _setSelectedStore = async (storeId: string | undefined): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n\n await storeSelectorStateManager.setSelectedStoreLocationId(storeId);\n };\n\n /**\n * Method to be called on search.\n * @param searchTerm - Search string.\n */\n private readonly _performSearch = async (searchTerm: string): Promise => {\n const {\n context: { actionContext },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!searchTerm || !storeSelectorStateManager) {\n return;\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\n\n const location = await storeSelectorStateManager.geoLocate(searchTerm.trim() !== '' ? searchTerm : '0', actionContext);\n\n if (location) {\n await this._updateLocations(location.latitude, location.longitude);\n } else {\n await this._updateLocations();\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n };\n\n /**\n * Method to be called on search term changed.\n * @param searchTerm - Search string.\n */\n private readonly _searchTermChanged = async (searchTerm: string): Promise => {\n this.setState({ searchTerm });\n };\n\n /**\n * Method to be called updating the store location.\n * @param shouldShowAllStores - Flag to show all stores.\n */\n private readonly _getAndUpdateStoreLocation = (shouldShowAllStores?: boolean): void => {\n const {\n config: { style },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n\n if (styleDefault !== styleEnum.inline && (!storeSelectorStateManager || !storeSelectorStateManager.isDialogOpen)) {\n // Store selector dialog isn't open yet, so don't try and update anything\n return;\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\n\n if (navigator?.geolocation) {\n navigator.geolocation.getCurrentPosition(\n async position => {\n // eslint-disable-next-line react/no-unused-state -- This state is used in the views.\n this.setState({ isLocationDisabled: false, isSearchInProgress: true });\n if (shouldShowAllStores) {\n this.setState({ isSeeAllStoreValue: true });\n await this._searchTermChanged('');\n await this._updateLocations(position.coords.latitude, position.coords.longitude, 0);\n } else {\n await this._updateLocations(position.coords.latitude, position.coords.longitude);\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n },\n async error => {\n // If the location setting is turned off\n if (error.PERMISSION_DENIED) {\n this.setState({ isLocationDisabled: true, isSeeAllStoreValue: true });\n await this._searchTermChanged('');\n await this._updateLocations(0, 0, 0);\n }\n\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n },\n { timeout: 5000 }\n );\n } else {\n // eslint-disable-next-line react/no-unused-state -- State is used in the view.\n this.setState({ isSearchInProgress: false });\n }\n };\n\n /**\n * Method to be called closing the store selector dialog.\n * @returns Void promise.\n */\n private readonly _closeDialog = async (): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n this.setState({ searchTerm: '' });\n\n if (storeSelectorStateManager) {\n storeSelectorStateManager.context?.parentElementRef?.current?.focus();\n return storeSelectorStateManager.closeDialog();\n }\n };\n\n /**\n * Method to set store info.\n * @param orgUnitStoreInformation - Store Info Object.\n * @returns Void promise.\n */\n private readonly _setOrgUnitStoreInformation = async (orgUnitStoreInformation: IFullOrgUnitAvailability[]): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n config: { style },\n telemetry\n } = this.props;\n\n if (!storeSelectorStateManager) {\n return;\n }\n\n const context = storeSelectorStateManager.context;\n const moduleId: string = context?.id ? context.id : this.props.id;\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n let input: IStoreSelectionStateContext = {\n /**\n * On Location selected.\n * @returns - Returns promise.\n */\n onLocationSelected: async () => {\n // TO-DO handle event for when location in selected\n return Promise.resolve();\n }\n };\n\n if (storeSelectorStateManager.context) {\n input = storeSelectorStateManager.context;\n }\n\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager.preferredStore;\n const preferredLocationId = preferredStore?.StoreId ? preferredStore.StoreId : '';\n const storeLocationList = this._sortStores(orgUnitStoreInformation, this.isPreferredStoreEnabled, preferredLocationId);\n\n input = {\n ...input,\n id: moduleId,\n showMapViewLink: context?.showMapViewLink,\n parentElementRef: context?.parentElementRef,\n isDialog: styleDefault === styleEnum.dialog,\n orgUnitStoreInformation: storeLocationList,\n product: context?.product\n };\n\n await storeSelectorStateManager.setOrgUnitStoreInformation(input).catch((error: Error) => {\n if (telemetry) {\n telemetry.error(error.message);\n telemetry.debug('Unable to Update store location state');\n }\n });\n };\n\n /**\n * Method to update user location.\n * @param latitude - User location.\n * @param longitude - User location.\n * @param radius - Search Criteria Radius.\n * @returns Void promise.\n */\n private readonly _updateLocations = async (latitude?: number, longitude?: number, radius?: number): Promise => {\n const {\n config: { mode, lookupRadius, style, searchRadiusUnit },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\n const calRadius = radius || radius === 0 ? radius : lookupRadius || 50;\n const distanceUnitValue = searchRadiusUnit === SearchRadiusUnit.kilometers ? 1 : 0;\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\n let localLatitude = this.state.searchTerm || !preferredStore?.Latitude ? latitude : preferredStore.Latitude;\n let long = this.state.searchTerm || !preferredStore?.Longitude ? longitude : preferredStore.Longitude;\n if (styleDefault === styleEnum.inline) {\n const lastInlineStoreLocation = storeSelectorStateManager?.lastInlineShownStoreInfo;\n if (lastInlineStoreLocation && !this.state.searchTerm) {\n localLatitude = lastInlineStoreLocation.Latitude ? lastInlineStoreLocation.Latitude : localLatitude;\n long = lastInlineStoreLocation.Longitude ? lastInlineStoreLocation.Longitude : long;\n }\n await storeSelectorStateManager?.setLastInlineStoreInfo(localLatitude, long);\n }\n\n if (modeDefault === modeEnum.findStores) {\n await this.getOrgUnitLocationByArea(calRadius, distanceUnitValue, localLatitude, long);\n return;\n }\n\n await this.getFullAvailableInventoryNearby(calRadius, distanceUnitValue, localLatitude, long);\n };\n\n /**\n * Get org unit location by area.\n * @param calRadius - Radius.\n * @param distanceUnitValue - Distance unit value.\n * @param latitude - Latitude.\n * @param longitude - Longitude.\n * @returns - Returns a void promise.\n */\n private readonly getOrgUnitLocationByArea = async (\n calRadius: number,\n distanceUnitValue: number,\n latitude?: number,\n longitude?: number\n ): Promise => {\n const {\n context: { actionContext }\n } = this.props;\n const orgUnitLocationsInput = new GetOrgUnitLocationsByAreaInput(\n latitude,\n longitude,\n calRadius,\n distanceUnitValue,\n this.state.isLocationDisabled\n );\n\n const orgUnitLocations = await getOrgUnitLocationsByArea(orgUnitLocationsInput, actionContext);\n if (orgUnitLocations) {\n await this._setOrgUnitStoreInformation(orgUnitLocations);\n await this._setSelectedStore(undefined);\n }\n };\n\n /**\n * Get full available inventory nearby.\n * @param calRadius - Radius.\n * @param distanceUnitValue - Distance unit value.\n * @param latitude - Latitude.\n * @param longitude - Longitude.\n * @returns - Returns a void promise.\n */\n private readonly getFullAvailableInventoryNearby = async (\n calRadius: number,\n distanceUnitValue: number,\n latitude?: number,\n longitude?: number\n ): Promise => {\n const {\n telemetry,\n context: { actionContext },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (!storeSelectorStateManager || !storeSelectorStateManager.context) {\n // Store selector dialog isn't open yet, so don't try and update anything\n return;\n }\n\n if (!storeSelectorStateManager.context.product) {\n // TODO: Use alternative search method here to not make inventory check\n return;\n }\n\n const input = new GetFullAvailableInventoryNearbyInput(\n storeSelectorStateManager.context.product.RecordId,\n latitude ?? 0,\n longitude ?? 0,\n calRadius,\n distanceUnitValue,\n this.state.isLocationDisabled\n );\n\n await getFullAvailableInventoryNearby(input, actionContext).catch(error => {\n telemetry.warning(error);\n telemetry.error(error.message);\n telemetry.debug('Unable to get full available inventory near by');\n });\n };\n\n /**\n * Method to called on store selected.\n * @param location - Store Info.\n * @param deliveryMode - Pickup mode.\n * @returns Void promise.\n */\n private readonly _onOrgUnitLocationSelected = async (location: OrgUnitLocation | undefined, deliveryMode?: string): Promise => {\n const {\n telemetry,\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager) {\n if (location && storeSelectorStateManager.context) {\n // Want to eat exceptions here so that the dialog still closes even if the onLocationSelected call goes wrong\n await storeSelectorStateManager.context.onLocationSelected(location, deliveryMode).catch(error => {\n telemetry.warning(error);\n telemetry.error(error.message);\n telemetry.debug('Unable to get on org unit location selected');\n });\n }\n\n await storeSelectorStateManager.closeDialog();\n }\n };\n\n /**\n * Method will list of store selector location line.\n * @param store -Store Info.\n * @param index - List index.\n * @param hasEnabledOutOfStockCheck -Stores List.\n * @param isStoreLocatorView -Module config value.\n * @param preferredStoreLocationId -Store Id.\n * @param isPreferredStoreEnabled -Stores List.\n * @param selectedStoreLocationId -Module config value.\n * @param preferredDistanceUnit -Module config value.\n * @param alreadySelectedLocation -Already Selected Location.\n * @param productPickUpOptionList -Product supported Pickup Modes List.\n * @returns StoreSelectorLocation Line Prop.\n */\n private _createStoreLocationList(\n store: IFullOrgUnitAvailability,\n index: number,\n hasEnabledOutOfStockCheck: boolean,\n isStoreLocatorView: boolean,\n preferredStoreLocationId: string,\n isPreferredStoreEnabled: boolean | undefined,\n selectedStoreLocationId: string | undefined,\n preferredDistanceUnit?: string | undefined,\n alreadySelectedLocation?: OrgUnitLocation,\n productPickUpOptionList?: DeliveryOption[]\n ): IStoreSelectorLocationLineItemProps | undefined {\n const orgUnitLocation = store.OrgUnitAvailability?.OrgUnitLocation;\n const selectedStoreLocation = selectedStoreLocationId;\n const deliveryOptions = store.OrgUnitPickUpDeliveryModes;\n const lineResources = this._mapResources(this.props.resources);\n const storeOpenFrom: string | undefined = secondsToTime(orgUnitLocation?.OpenFrom);\n const storeOpenTo: string | undefined = secondsToTime(orgUnitLocation?.OpenTo);\n const storeHours = store.StoreHours;\n\n if (orgUnitLocation) {\n ++this.storeCounter;\n return {\n location: orgUnitLocation,\n selectedStoreLocationId: selectedStoreLocation,\n storeHours,\n resources: lineResources,\n preferredDistanceUnit: preferredDistanceUnit!,\n isCurrentLocation: this._isCurrentLocation(orgUnitLocation, alreadySelectedLocation),\n hideStockStatus: !hasEnabledOutOfStockCheck,\n isInStock: this._isProductInStock(hasEnabledOutOfStockCheck, store.OrgUnitAvailability?.ItemAvailabilities),\n stockStatusLabel: this._stockInventoryLabel(store),\n storeLocatorView: isStoreLocatorView,\n index: this.storeCounter.toString(),\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n telemetryContent: this.telemetryContent,\n isLocationDisabled: this.state.isLocationDisabled,\n storePickUpOptionList: deliveryOptions?.DeliveryOptions,\n productPickUpOptionList,\n locationOpen: { openFrom: storeOpenFrom, openTo: storeOpenTo },\n storeHoursList: storeHours?.RegularStoreHours ? buildStoreHours(storeHours.RegularStoreHours, lineResources) : [],\n onClick: this._setSelectedStore,\n handlers: {\n onSelected: this._onOrgUnitLocationSelected,\n onSetAsPreferredStore: this._setPreferredStore,\n onRemovePreferredStore: this._removePreferredStore,\n closeStoreDetailsModal: this._closeStoreDetailModal\n }\n };\n }\n return undefined;\n }\n\n /**\n * Method to map resources with Location Item.\n * @param resources - List of strings for module.\n * @returns Resources for StoreSelector location line.\n */\n private readonly _mapResources = (resources: IStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\n return {\n contactInfoHeader: resources.contactText,\n storeHoursHeader: resources.timeText,\n availabilityInfoHeader: resources.availabilityText,\n\n closedText: resources.storeHoursClosedText,\n outOfStock: resources.outOfStockText,\n inStock: resources.inStockText,\n\n currentLocation: resources.selectedStoreLocationText,\n selectLocation: resources.selectStoreText,\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\n preferredStoreText: resources.preferredStoreText,\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\n\n days: {\n monday: resources.storeHoursMondayText,\n tuesday: resources.storeHoursTuesdayText,\n wednesday: resources.storeHoursWednesdayText,\n thursday: resources.storeHoursThursdayText,\n friday: resources.storeHoursFridayText,\n saturday: resources.storeHoursSaturdayText,\n sunday: resources.storeHoursSundayText,\n mondayFull: resources.storeHoursMondayFullText,\n tuesdayFull: resources.storeHoursTuesdayFullText,\n wednesdayFull: resources.storeHoursWednesdayFullText,\n thursdayFull: resources.storeHoursThursdayFullText,\n fridayFull: resources.storeHoursFridayFullText,\n saturdayFull: resources.storeHoursSaturdayFullText,\n sundayFull: resources.storeHoursSundayFullText\n }\n };\n };\n\n private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined, selectedLocation?: OrgUnitLocation): boolean =>\n (selectedLocation && location && selectedLocation.OrgUnitNumber === location.OrgUnitNumber) || false;\n\n /**\n * Method to get stock.\n * @param hasEnableOutOfStockCheck - Config to check for stock check enabled.\n * @param itemAvailabilities - Item quantity availability.\n * @returns Boolean value for item stock.\n */\n private readonly _isProductInStock = (\n hasEnableOutOfStockCheck: boolean,\n itemAvailabilities: ItemAvailability[] | undefined\n ): boolean => {\n if (!hasEnableOutOfStockCheck) {\n return true;\n }\n const quantityCount = 0;\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\n return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > quantityCount : false;\n }\n\n return false;\n };\n\n /**\n * Method to get stocklevel label.\n * @param isInStock - Stock available in store.\n * @returns Label for stock status.\n */\n private readonly _stockInventoryLabel = (isInStock: IFullOrgUnitAvailability | undefined): string | undefined => {\n if (isInStock?.ProductInventoryInformation && ArrayExtensions.hasElements(isInStock.ProductInventoryInformation)) {\n for (let index = 0; index < isInStock.ProductInventoryInformation.length; index++) {\n if (\n isInStock.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\n isInStock.ProductInventoryInformation[index].InventLocationId\n ) {\n return isInStock.ProductInventoryInformation[index].StockLevelLabel;\n }\n }\n }\n\n return undefined;\n };\n}\n\nexport default StoreSelector;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISelectedStoreViewProps, IStoreSelectorViewProps } from './index';\n\n/**\n * Renders the pickup Delivery options.\n * @param props -- Selected store view props.\n * @returns -- HTML.\n */\nconst renderDeliveryOptions: React.FC = props => {\n const { canSelectLocation, deliveryOptions, pickUpDeliveryOptionButton, pickupModes } = props;\n\n return (\n <>\n {/* eslint-disable-next-line no-nested-ternary -- Need this.*/}\n {canSelectLocation ? (ArrayExtensions.hasElements(deliveryOptions) ? pickupModes : pickUpDeliveryOptionButton) : false}\n \n );\n};\n\n/**\n * Render the selected store.\n * @param props -- Selected store view props.\n * @returns -- HTML.\n */\nconst renderSelectedStore: React.FC = props => {\n const {\n storeDetailsMain,\n storeHeader,\n storeName,\n storeDetailsCloseButton,\n storeDistance,\n storeDetailsAvailabilityContainer,\n productAvailability,\n stockStatus,\n isCurrentLocation,\n currentLocation,\n isPreferredStore,\n preferredStoreButton,\n removePreferredStoreButton\n } = props;\n\n return (\n \n \n {storeDetailsCloseButton}\n {storeName}\n {storeDistance}\n \n \n {productAvailability}\n {stockStatus}\n \n {isCurrentLocation ? currentLocation : renderDeliveryOptions(props)}\n {isPreferredStore ? preferredStoreButton : removePreferredStoreButton}\n \n );\n};\n\n/**\n * Render the body of the popup.\n * @param props -- Store selector view props.\n * @returns -- Returns the html.\n */\nconst renderBody: React.FC = props => {\n const {\n BodyContainerProps,\n locationsMessage,\n search,\n state,\n spinner,\n locationsList,\n noLocationsMessage,\n maps,\n bodyWrapperProps,\n storeResultContainerProps,\n mapContainerProps,\n isMobileView,\n storeDetailsModal,\n selectedLocation\n } = props;\n\n if (isMobileView) {\n return (\n \n {locationsMessage}\n {search}\n \n \n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\n {maps}\n {selectedLocation && renderSelectedStore(selectedLocation)}\n \n \n \n );\n }\n\n return (\n \n \n \n {locationsMessage}\n {search}\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\n \n {maps}\n \n \n );\n};\n\n/**\n * Store selector view props.\n * @param props - Store selector view props.\n * @returns - HTML.\n */\nconst StoreSelectorView: React.FC = props => {\n const {\n FooterContainerProps,\n HeaderContainerProps,\n HeaderProps,\n ModuleProps,\n\n terms\n } = props;\n\n return (\n \n {HeaderProps}\n {renderBody(props)}\n {terms}\n \n );\n};\n\nexport default StoreSelectorView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICartLineItemViewProps,\n ICartlinesViewProps,\n ICartResources,\n ICartViewProps,\n IOrderSummaryErrors\n} from '@msdyn365-commerce-modules/cart';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartProps as ICartExtensionProps } from '../definition-extensions/cart.ext.props.autogenerated';\n\n/**\n * Toggle Bopis Function.\n * @param cartLine -CartLine.\n * @param isBopisSelected -Boolean.\n * @returns Toggle Bopis.\n */\nconst toggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * Change Store Function.\n * @param cartLine -CartLine.\n * @returns Toggle Bopis.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(true);\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderBopisBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderGroupBopisBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - FLag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLine = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element => {\n if (cartLine.error === resources.outOfStockErrorMessage) {\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (isMultiplePickUp) {\n return (\n \n {renderGroupBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (cartLine.addToOrderTemplate) {\n return (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlinesInternal = (\n cartLines: ICartlinesViewProps[],\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n return cartLines.map((cartLine, index) => {\n const itemIndex = index;\n return (\n
\n {cartLine.cartline}\n \n {isMultiplePickUp\n ? null\n : renderBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {renderCartLine(cartLine, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n
\n );\n });\n};\n\n/**\n * Render Cart Lines.\n * @param props - The cart line props.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param waitingComponent - Waiting component element.\n * @param cartLoadingStatus - Cart loading status string.\n * @param isCartDataResult - Flag to check if there is cart data.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlines = (\n props: ICartViewProps & ICartExtensionProps<{}>,\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n isCartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n\n // Props.CartlinesWrapper is only required on cart lines and when multiple pickup mode is disabled. This is also required to handle the empty cart styling.\n // Else, empty cart multiple pickup mode is disabled falls under the other cart line wrapper which is creating issue with Empty cart scenario.\n if (cartLines) {\n return props.multiplePickUpEnabled ? (\n renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\n ) : (\n \n {renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n );\n }\n\n return isCartDataResult ? (\n
\n
{props.slots.emptyCart}
\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const itemCountOne: number = 1;\n const suffix = count > itemCountOne ? itemsLabel : itemLabel;\n const countTitle = `(${count} ${suffix})`;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

{countTitle}

\n
\n \n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\n/**\n * Returns count of products.\n * @param cartLine - The cart line view props.\n * @returns Number of products.\n */\nconst countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n const defaultItemCount = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity ?? defaultItemCount);\n }, defaultItemCount);\n return countItem;\n};\n\n/**\n * Render Cart Lines group.\n * @param props - The cart line view props.\n * @param resources - Module resource strings.\n * @returns JSX Element.\n */\nconst renderCartLinesGroup = (props: ICartViewProps & ICartExtensionProps<{}>, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {renderCartLinesGroupHeader(\n cartlines[0],\n resources,\n countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {renderCartlines(\n props,\n cartlines,\n props.resources,\n props.storeSelector,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
{props.slots.emptyCart}
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\n\n/**\n * Render error block.\n * @param errorData - Error component.\n * @returns JSX Element.\n */\nconst renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\n/**\n * Render invoice summary.\n * @param invoiceSummaryLines - Invoice summary component.\n * @param orderSummaryItems - Order summary component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n orderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render order summary.\n * @param orderSummaryLines - Order summary component.\n * @param orderSummaryItems - Order summary items component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n orderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {orderSummaryLines.subtotal}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render error block.\n * @param promotions - The module view props.\n * @returns JSX Element.\n */\nconst renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\n/**\n * Render order summary checkout.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckout = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.cart?.hasInvoiceLine ? null : props.promoCode}\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n \n {props.createTemplateFromCartButton}\n \n );\n};\n\n/**\n * Render order summary checkout button.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckoutButton = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n \n );\n};\n\n/**\n * Render cart view.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst CartView: React.FC> = (props: ICartViewProps & ICartExtensionProps<{}>) => {\n const totalItemCountOne: number = 1;\n const updatedTitle = (\n

\n {props.resources.cartTitle}\n \n {` (${Number(props.cart?.totalItemsInCart)} ${props.cart?.totalItemsInCart !== totalItemCountOne ? 'items' : 'item'})`}\n \n

\n );\n return (\n
\n {props.checkoutBlockedDueToUnavailableFunds}\n {updatedTitle}\n
{props.orderSummaryLineitems?.orderTotal}
\n {renderOrderSummaryCheckoutButton(props)}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled\n ? renderCartLinesGroup(props, props.resources)\n : renderCartlines(\n props,\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n {props.orderSummaryHeading && (\n \n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {renderErrorBlock(props.OrderSummaryErrors)}\n \n {renderOrderSummaryCheckout(props)}\n \n )}\n {props.storeSelector}\n
\n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n note,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n {note}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps,\n ISignInButton\n} from '@msdyn365-commerce-modules/account-management';\n\nimport { ISignInProps, ISignInResources } from '../definition-extensions/sign-in.ext.props.autogenerated';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nconst signUpButton: React.FC> = (\n props: ISignInViewProps & ISignInProps\n) => {\n const {\n resources,\n telemetry,\n friendlyName,\n context: {\n request: { telemetryPageName }\n }\n } = props;\n const telemetryContent = getTelemetryObject(telemetryPageName!, friendlyName, telemetry);\n const attributes = {\n href: '#'\n };\n\n return (\n \n );\n};\n\nconst SignInView: React.FC> = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpButton(props)}\n \n
\n
\n or\n
\n {B2BAccount(signInB2BAccount)}\n
\n
\n
\n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { RichTextComponent } from '@msdyn365-commerce/core';\nimport {\n ContactInformationType,\n DeliveryOption,\n IDictionary,\n OrgUnitContact,\n OrgUnitLocation,\n StoreHours\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n buildStoreHours,\n IHoursDisplayInfo,\n ILocationHours,\n IStoreSelectorFoundLocationsMessage,\n IStoreSelectorLocationLineItemProps,\n IStoreSelectorLocationLineItemResources,\n IStoreSelectorViewProps,\n secondsToTime\n} from '@msdyn365-commerce-modules/store-selector';\nimport { ISelectedStoreViewProps } from '@msdyn365-commerce-modules/store-selector/src/modules/store-selector/components/selected-store/selected-store';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n isMobile,\n Module,\n Node,\n TelemetryConstant,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IStoreSelectorProps, IStoreSelectorResources } from '../definition-extensions/store-selector.ext.props.autogenerated';\n\n/**\n * PickUpMethodComponent View Props Interface.\n */\nexport interface IPickupComponent extends IStoreSelectorLocationLineItemProps {\n pickUpStatesProps: IStoreSelectorViewProps;\n}\n\nexport interface IPickUpButtonComponent {\n attributes: IDictionary | undefined;\n onPickupInStoreClickHandler?(): void;\n}\n\n/**\n * Found Locations Message component in Store Selector.\n * @param props - The component props.\n * @returns The JSX Element.\n */\nconst StoreSelectorFoundLocationsMessageComponent: React.FC = props => {\n const { locations, searchRadius, resources, isSeeAllStore, preferredDistanceUnit } = props;\n if (locations) {\n const storeCountMessage =\n preferredDistanceUnit === resources.milesShortText ? resources.storeCountMessage : resources.storeCountMessageInKm;\n\n return (\n ${locations.length.toString()}`\n )\n : storeCountMessage\n .replace(\n '{count}',\n `${locations.length.toString()}`\n )\n .replace(\n '{radius}',\n `${searchRadius.toString()}`\n )\n }\n />\n );\n }\n\n return null;\n};\n\n/**\n * Build distance string.\n * @param distance - The distance.\n * @param preferredDistanceUnit - The preferred distance unit.\n * @param resources - The module resources.\n * @param isLocationDisabled - True if location is disabled.\n * @returns The distance string.\n */\nconst buildDistanceString = (\n distance: number | undefined,\n preferredDistanceUnit: string,\n resources: IStoreSelectorResources & IStoreSelectorResources,\n isLocationDisabled?: boolean\n): string | undefined => {\n const closeDistance: number = 1;\n if (distance === undefined || isLocationDisabled) {\n return undefined;\n } else if (distance < closeDistance) {\n const closeDistanceString: string = resources.closeDistanceString;\n return closeDistanceString.replace('{preferredDistanceUnit}', preferredDistanceUnit);\n }\n const distanceAsString: string = resources.distanceString;\n return distanceAsString\n .replace('{preferredDistanceUnit}', preferredDistanceUnit)\n .replace('{distance}', Math.floor(distance).toString());\n};\n\n/**\n * Extract phone number.\n * @param contacts - Contacts array.\n * @returns Phone number.\n */\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\n if (!contacts) {\n return undefined;\n }\n\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === ContactInformationType.Phone && !contact.IsPrivate);\n\n if (ArrayExtensions.hasElements(allPhoneContacts)) {\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\n\n if (primaryPhoneContact) {\n return primaryPhoneContact.Locator;\n }\n\n return allPhoneContacts[0].Locator;\n }\n\n return undefined;\n};\n\n/**\n * Render Store Hours Day.\n * @param displayTime - Store Hours Information.\n * @param storeHoursDayPeriodString - The string for store hours day period.\n * @param storeHoursDayString - The string for store hours day period.\n * @returns JSX element with store hours day.\n */\nconst buildStoreHoursDay = (displayTime: IHoursDisplayInfo, storeHoursDayPeriodString: string, storeHoursDayString: string) => {\n return (\n ${displayTime.startDayShort}`)\n .replace(\n '{endDay}',\n `${displayTime.endDayShort}`\n )\n : storeHoursDayString.replace(\n '{startDay}',\n `${displayTime.startDayShort}`\n )\n }\n />\n );\n};\n\n/**\n * Render Store Hours.\n * @param storeHours - Store hours.\n * @param storeHoursList - Store hours list.\n * @param locationOpen - Location open.\n * @param resources - The module resources.\n * @returns JSX element with store hours.\n */\nconst renderStoreHours = (\n storeHours: StoreHours | undefined,\n storeHoursList: IHoursDisplayInfo[] | undefined,\n locationOpen: ILocationHours | undefined,\n resources: IStoreSelectorResources & IStoreSelectorResources\n): JSX.Element | null => {\n // First, use the store hours. This will allow listing day by day hours\n if (storeHours?.RegularStoreHours) {\n return (\n
\n {storeHoursList?.map(displayTime => (\n
\n {buildStoreHoursDay(displayTime, resources.storeHoursDayPeriod, resources.storeHoursDay)}\n
{displayTime.timeRange}
\n
\n ))}\n
\n );\n }\n\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\n const storeOpenFrom: string = locationOpen?.openFrom ? locationOpen.openFrom : '';\n const storeOpenTo: string = locationOpen?.openTo ? locationOpen.openTo : '';\n return (\n
\n {resources.storeHoursDayPeriod.replace('{startDay}', storeOpenFrom).replace('{endDay}', storeOpenTo)}\n
\n );\n};\n\n/**\n * Match delivery options.\n * @param productDeliveryOptions - The list of product delivery options.\n * @param storePickUpOptionList - The list of store pick up options.\n * @returns Matched delivery option.\n */\nconst matchDeliveryOptions = (\n productDeliveryOptions: DeliveryOption[] | undefined,\n storePickUpOptionList: DeliveryOption[] | undefined\n): DeliveryOption[] => {\n if (!productDeliveryOptions) {\n return [] as DeliveryOption[];\n }\n return productDeliveryOptions\n .map(productDeliveryOption => storePickUpOptionList?.find(delivery => delivery.Code === productDeliveryOption.Code))\n .filter(productDeliveryOption => productDeliveryOption) as DeliveryOption[];\n};\n\n/**\n * PickUpMethod Resources Interface.\n */\nexport interface IPickUpButtonResources {\n pickupInStoreAriaLabel: string;\n pickupInStoreButtonText: string;\n pickupDeliveryOptionErrorMessage: string;\n}\n\n/**\n * PickUpMethod Resources Interface.\n */\nexport interface IPickUpMethodResources {\n selectStoreText: string;\n pickUpMethodLabel: string;\n pickUpOptionPlaceholder: string;\n pickupOptionDropdownError: string;\n pickupButtonAriaLabel: string;\n}\n\n/**\n * PickUp method dropdown component.\n * @param props - The view props.\n * @returns JSX Element.\n */\nconst PickUpMethodDropdownComponent = (props: IPickupComponent & IPickUpMethodResources) => {\n const {\n handlers,\n location,\n pickUpStatesProps,\n selectStoreText,\n pickUpMethodLabel,\n pickUpOptionPlaceholder,\n pickupOptionDropdownError,\n pickupButtonAriaLabel,\n productPickUpOptionList,\n storePickUpOptionList\n } = props;\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\n const [selectedStorePickUpOption, selectStorePickUpOption] = React.useState('');\n const [currentStorePickUpOption, setCurrentStorePickUpOption] = React.useState(pickUpOptionPlaceholder);\n const [isDropdownOpen, toggleDropdown] = React.useState(false);\n const [isError, setError] = React.useState(false);\n\n /**\n * Method to handle the store pickup option change.\n * @param event - Change Event.\n */\n const onChangeHandler = React.useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n selectStorePickUpOption(event.currentTarget.value);\n setCurrentStorePickUpOption(event.currentTarget.dataset.description ? event.currentTarget.dataset.description : '');\n toggleDropdown(false);\n setError(false);\n }, []);\n\n /**\n * Method to render store location line pick up button.\n * @param filteredDeliveryMode - Filtered Delivery Mode.\n * @returns JSX Element.\n */\n const renderLocationLinePickupButton = (filteredDeliveryMode: DeliveryOption | undefined) => {\n return filteredDeliveryMode !== undefined ? (\n
\n \n {filteredDeliveryMode.Description}\n \n
\n ) : null;\n };\n\n /**\n * Method to handle the store pickup option submit.\n */\n const onClickHandler = React.useCallback(() => {\n if (!StringExtensions.isNullOrEmpty(selectedStorePickUpOption)) {\n handlers.onSelected(location, selectedStorePickUpOption);\n } else if (pickUpStatesProps.state.filteredPickupMode !== undefined) {\n handlers.onSelected(location, pickUpStatesProps.state.filteredPickupMode);\n } else {\n toggleDropdown(false);\n setError(true);\n }\n }, [location, selectedStorePickUpOption, handlers, pickUpStatesProps.state.filteredPickupMode]);\n\n const handleDropdownToggle = React.useCallback(() => {\n toggleDropdown(!isDropdownOpen);\n setError(false);\n }, [isDropdownOpen]);\n\n const filterDeliveryOption = deliveryOptionList.find(\n (delivery: DeliveryOption) => delivery.Code === pickUpStatesProps.state.filteredPickupMode\n );\n\n const pickupInStoreButtonText: string = selectStoreText;\n const filteredDeliveryMode: DeliveryOption | undefined =\n pickUpStatesProps.state.filteredPickupMode !== undefined ? filterDeliveryOption : undefined;\n\n return (\n \n
{pickUpMethodLabel}
\n {pickUpStatesProps.state.filteredPickupMode === undefined ? (\n
\n \n {currentStorePickUpOption}\n \n
    \n {deliveryOptionList.map((delivery: DeliveryOption) => (\n \n \n {delivery.Description}\n \n \n ))}\n
\n
{pickupOptionDropdownError}
\n
\n ) : (\n renderLocationLinePickupButton(filteredDeliveryMode)\n )}\n \n
\n );\n};\n\n/**\n * PickUp button component.\n * @param props - The view props.\n * @returns JSX Element.\n */\nconst PickUpButtonComponent = (props: IPickUpButtonComponent & IPickUpButtonResources) => {\n const { pickupInStoreAriaLabel, pickupInStoreButtonText, pickupDeliveryOptionErrorMessage, attributes } = props;\n const [isError, setError] = React.useState(false);\n const onPickupButtonClickHandler = () => () => {\n setError(true);\n };\n\n return (\n <>\n \n {pickupInStoreButtonText}\n \n
\n {pickupDeliveryOptionErrorMessage}\n
\n \n );\n};\n\n/**\n * Method to render store location line item.\n * @param locationLineItem - The Location Line item view props.\n * @param props - The view props.\n * @returns JSX Element.\n */\nconst renderStoreLocationLineItem = (\n locationLineItem: IStoreSelectorLocationLineItemProps,\n props: IStoreSelectorViewProps & IStoreSelectorProps\n) => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from store-selector.tsx file\n hideStockStatus,\n index,\n isInStock,\n preferredStoreLocationId,\n isPreferredStoreEnabled,\n location,\n resources,\n storeHours,\n storeHoursList,\n stockStatusLabel,\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from store-selector.tsx file\n storeLocatorView,\n telemetryContent\n } = locationLineItem;\n const storeName = location.OrgUnitName;\n const distanceAsString: string | undefined = buildDistanceString(\n location.Distance,\n locationLineItem.preferredDistanceUnit,\n props.resources,\n locationLineItem.isLocationDisabled\n );\n const storeAddress: string | undefined = location.Address;\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\n\n const resourceLabel = isInStock ? resources.inStock : resources.outOfStock;\n const stockStatus = stockStatusLabel ? stockStatusLabel : resourceLabel;\n const stockText: string | undefined = hideStockStatus ? undefined : stockStatus;\n\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n\n /**\n * Method to handle the change for preferred store.\n * @returns Void.\n */\n const onSetPreferredStoreClickHandler = () => {\n locationLineItem.handlers.onSetAsPreferredStore(locationLineItem.location.OrgUnitNumber);\n };\n\n /**\n * Method to handle the removal of the preferred store.\n * @returns Void.\n */\n const onRemovePreferredStoreClickHandler = async (event: React.MouseEvent) => {\n event.stopPropagation();\n locationLineItem.handlers.onRemovePreferredStore();\n await props.data.storeSelectorStateManager.result?.setSelectedStoreLocationId(undefined);\n };\n\n const isPreferredStore = preferredStoreLocationId === location.OrgUnitNumber;\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\n const preferredStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\n const removePreferredStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n
\n
\n {storeLocatorView && {index}}\n {storeName}\n {distanceAsString ? {distanceAsString} : false}\n
\n
\n
\n

{locationLineItem.resources.contactInfoHeader}

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

{locationLineItem.resources.storeHoursHeader}

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

{resources.availabilityInfoHeader}

\n {stockText &&

{stockText}

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

{resources.currentLocation}

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

{storeSelectorViewProps.resources.contactText}

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

{storeSelectorViewProps.resources.timeText}

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

{productAvailability}

\n {stockStatus &&

{stockStatus}

}\n
\n )}\n
\n {isPreferredStore ? preferredStoreButton : removePreferredStoreButton}\n {canSelectPickUpMethod}\n
\n );\n};\n\n/**\n * Store Selector View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst StoreSelectorViewComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Store-Selector.tsx file\n const {\n BodyContainerProps,\n storeResultContainerProps,\n FooterContainerProps,\n HeaderContainerProps,\n HeaderProps,\n ModuleProps,\n locationsMessage,\n search,\n state,\n spinner,\n maps,\n locationsList,\n noLocationsMessage,\n terms,\n storeDetailsModal,\n selectedLocation,\n bodyWrapperProps,\n data,\n context\n } = props;\n const selectedLocationReference = React.useRef(null);\n const [isDesktopPort, setIsDesktopPort] = React.useState(false);\n\n const isDesktopViewport = React.useCallback(() => {\n const portView = isMobile({ variant: VariantType.Browser, context: context.request });\n const isDesktopPorts = portView === 'md' || portView === 'xl' || portView === 'lg';\n setIsDesktopPort(isDesktopPorts);\n }, [context]);\n\n React.useEffect(() => {\n if (props.locationsList) {\n /**\n * Method to handle scrolling.\n */\n const scrollIntoView = () => {\n const selectedLocationDiv = (selectedLocationReference as React.RefObject).current;\n if (selectedLocationDiv !== null) {\n const offset = selectedLocationDiv.getBoundingClientRect();\n const parent = selectedLocationDiv.parentElement?.parentElement;\n if (parent && offset) {\n const totalHeight = parent.scrollTop + offset.top;\n parent.scrollTop = totalHeight - parent.clientHeight;\n }\n }\n };\n scrollIntoView();\n }\n }, [props.locationsList]);\n\n React.useEffect(() => {\n if (MsDyn365.isBrowser) {\n window.addEventListener('resize', isDesktopViewport);\n }\n isDesktopViewport();\n }, [isDesktopViewport]);\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\n\n const isDesktopView = viewport === 'md' || viewport === 'lg' || viewport === 'xl';\n\n if (!isDesktopView || !isDesktopPort) {\n return (\n \n {HeaderProps}\n \n \n {locationsMessage && (\n \n )}\n {search}\n \n \n {state.isSearchInProgress ? (\n spinner\n ) : (\n <>{locationsList ? renderStoreLocations(props, selectedLocationReference) : noLocationsMessage}\n )}\n \n {maps}\n \n {selectedLocation && renderSelectedStore(selectedLocation, props)}\n \n \n \n
\n {terms}\n \n );\n }\n return (\n \n {HeaderProps}\n \n \n {locationsMessage && (\n \n )}\n {search}\n {state.isSearchInProgress ? (\n spinner\n ) : (\n <>{locationsList ? renderStoreLocations(props, selectedLocationReference) : noLocationsMessage}\n )}\n \n \n {maps}\n \n \n {terms}\n \n );\n};\n\nexport default StoreSelectorViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Create Write Review Modal.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * WriteReview view.\n * @param props - WriteReview ViewProps.\n * @returns WriteReview view module.\n */\nconst WriteReviewView: React.FC> = props => {\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\n const { paragraph } = config;\n const isAuthenticated = props.context.request.user.isAuthenticated;\n const text = paragraph && ;\n\n return (\n \n {heading}\n {!isAuthenticated ? (\n <>\n {signInMessage}\n {signInButton}\n \n ) : (\n <>\n {text}\n {modalToggle}\n {createReviewModal(props)}\n \n )}\n \n );\n};\n\nexport default WriteReviewView;\n"],"names":["props","_props$config","_props$context","isOpen","setIsOpen","useState","zipCode","setZipCode","error","setError","alertActive","setAlertActive","modalBtn","useRef","inputRef","isPreviewUrl","setIsPreviewUrl","enableGenericTerritories","config","territory_data","territoryData","notFoundError","context","actionContext","requestContext","apiSettings","oun","app","ounNumberForUsSite","resources","notFound","notFoundZipcode","toggle","useEffect","addressFromZip","request","cookies","get","status","length","_props$context4","_props$context5","value","territory","Territory","isTerritoryMatched","pathName","url","requestUrl","pathname","hostName","hostname","item","name","includes","toLocaleLowerCase","pathKeyword","__reditectTo","_props$context2","_props$context3","checkPreviewInProgress","currentUrl","window","location","href","urlObj","URL","isInProgress","URLSearchParams","search","console","redirectURL","matchingTerritory","find","toUpperCase","MsDyn365","isBrowser","brBaseUrl","mbBaseUrl","viewProps","_objectSpread","_handleZipCode","async","event","preventDefault","getAddressFromZipCode","actionAddressFromZipCode","GetAddressFromZipCodeInput","defaultTerritory","Object","keys","currentHostname","mainDomain","getMainDomain","set","JSON","stringify","domain","path","e","apiException","_props$context6","_props$context7","renderView","_config$logoImage","_config$logoImage2","React","className","Modal","autoFocus","fade","returnFocusRef","enablePortalForPreviewUrl","horizontalPosition","verticalPosition","ModalHeader","src","logoImage","alt","altText","ModalBody","headingWebShop","onSubmit","htmlFor","zipCodeLabel","newZealandZipCodeMsg","type","id","ref","placeholder","onChange","target","maxLength","onClick","_inputRef$current","current","submitBtnLabel","RichTextComponent","text","infoText","ModalFooter","footerContent","KRV_AddressResponseEntityExtensionClass","constructor","odataObject","this","Id","AddressList","undefined","i","Number","substr","lastIndexOf","concat","EntityClasses","String","KRV_AddressEntityExtensionClass","ExtensionProperties","AddressName","Street","City","State","PostalCode","Country","CountryRegion","FullAddress","createKRV_GetAddressInput","queryResultSettings","customerAccountNumber","key","DataServiceQuery","DataServiceEntities","kRV_BillingAddressQuery","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","AccountPreferencesSection","_ref","accountPreferences","heading","personalization","extraPreferences","Node","assign","AccountPreferenceSection","map","preferenceSecton","index","_ref2","accountPreference","description","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","links","_customerInformation$","_accountInformation$r","_accountInformation$r2","_props$data$customerI","_props$data$customerI2","_companyName$Value","_companyName$Value2","AccountProfile","accountProfileWrapper","emailSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","data","accountInformation","customerInformation","billingAddress","setBillingAddress","companyName","result","Key","context1","callerContext","accountNumber","AccountNumber","billAddress","billName","billNumber","_accountInformation$r3","_accountInformation$r4","_accountInformation$r5","InvoiceAccount","Addresses","IsPrimary","Name","Phone","callActionOrExecute","kRV_GetAddressAsync","then","Module","firstNameHeading","FirstName","lastNameHeading","LastName","companyNameHeading","Value","StringValue","billingAddressHeading","phone","fulladdress","noAddressFoundtext","CookieComplianceBanner","AlertProps","Content","acceptButton","externalConsent","_window","consentChoosed","setConsentCookie","reload","CookieConsent","consent","necessary","addEventListener","Alert","color","FooterItemView","render","FooterItem","Link","user","isAuthenticated","title","_renderElement","HeadingContainer","linkText","image","EditableLink","_renderForm","form","SearchForm","FormWrapper","input","cancelBtn","submitBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","isLoadingAutoSuggest","isLoadingNode","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","items","LiProduct","AProduct","thumbnail","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","label","AccountProfileEdit","super","moduleClassName","handleHeadingChange","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","viewState","isShowLoading","accountProfileEdit","moduleProps","classnames","loading","modal","tag","modalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","Msdyn365","editProps","onEdit","accountProfileEditLocalAccount","_renderLocalAccount","str","document","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","ariaLabel","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","push","emailAddressLabelText","labelText","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","__decorate","observable","observer","AccountProfileEditItem","AccountProfileEditLoading","LocalAccount","disabled","payLoad","getPayloadObject","attributes","getTelemetryAttributes","Button","errorClassName","role","GetMaxLength","parsedMaxLength","parseInt","isNaN","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","clicked","setState","IssueLoyaltyInput","issueLoyalty","catch","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","contentAction","etext","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","applicationNode","returnRef","modalHeader","modalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","isJoining","substring","qsps","split","qsp","splitQsp","isModalOpen","hideToggle","slots","serviceTerms","modalToggle","innerRef","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","forEach","link","editableLink","linkUrl","destinationUrl","openInNewTab","additionalProperties","onTelemetryClick","onTextChange","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","content","visible","cookieRef","_onDismiss","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","ArrayExtensions","hasElements","renderCustomerName","customer","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelReferenceId","channelName","channelAddress","note","SalesLine","salesLineProps","salesLine","buyAgainButton","errors","GroupDelivery","deliveryProps","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","viewModes","tableViewActions","table","placedBy","alert","orderInfomation","orderSummary","payment","help","Iframe","iframeRef","srcURL","exception","protocol","iframeClassName","Heading","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","height","iframeAriaLabel","IFrameView","ProductComparisonButton","_addToProductComparison","_this$props$data$acco","ProductComparisonItem","product","RecordId","catalogId","ProductComparisonState","instance","addItem","_removeFromProductComparison","_this$props$data$acco2","removeItemById","comparisonItemId","_getNewState","_this$props$data$acco3","getItemId","products","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","productComparisonPreview","buttonText","onClickHandler","isDisabled","ObjectExtensions","isNullOrUndefined","_this$props$data$acco4","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","componentWillUnmount","_this$props$data$acco5","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","viewport","isMobile","variant","VariantType","Browser","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_this$props$data$acco6","_items$filter","getCatalogId","filter","ProductComparisonButtonViewFunctionalComponent","StorePickUpOptionList","_rendeDeliveryOptions","isExpandOptionsState","isFilterExpanded","_onSelect","deliveryCode","currentTarget","getAttribute","selectedPickupMode","_onKeyDown","_storePickupListOptionMenu","_productPickupModeLis","productPickupListOptionMenuText","productPickupModeList","defaultOptionText","selectedPickupModeDesc","Code","Description","tabIndex","onKeyDown","StoreSelectorLocationLines","orgUnitLocation","OrgUnitNumber","_scrollIntoView","selectedLocationDiv","selectedLocationRef","parent","parentElement","scrollTop","offsetTop","clientHeight","_isCurrentLocation","alreadySelectedLocation","_isProductInStock","itemAvailabilities","enableOutOfStockCheck","AvailableQuantity","_stockInventoryLabel","availabilityWithHours","ProductInventoryInformation","_availabilityWithHour","OrgUnitAvailability","OrgUnitLocation","InventoryLocationId","InventLocationId","StockLevelLabel","_mapResources","contactInfoHeader","contactText","storeHoursHeader","timeText","availabilityInfoHeader","availabilityText","closedText","storeHoursClosedText","outOfStock","outOfStockText","inStock","inStockText","currentLocation","selectedStoreLocationText","selectLocation","selectStoreText","selectLocationAriaLabelFormat","selectStoreAriaFormatText","setAsPreferredStoreText","setAsPreferredStoreTextAriaLabel","preferredStoreText","preferredStoreAriaLabel","pickupDeliveryOptionErrorMessage","days","monday","storeHoursMondayText","tuesday","storeHoursTuesdayText","wednesday","storeHoursWednesdayText","thursday","storeHoursThursdayText","friday","storeHoursFridayText","saturday","storeHoursSaturdayText","sunday","storeHoursSundayText","mondayFull","storeHoursMondayFullText","tuesdayFull","storeHoursTuesdayFullText","wednesdayFull","storeHoursWednesdayFullText","thursdayFull","storeHoursThursdayFullText","fridayFull","storeHoursFridayFullText","saturdayFull","storeHoursSaturdayFullText","sundayFull","storeHoursSundayFullText","storeCounter","selectedStoreLocationId","locations","_stores","_sortStores","reaction","show","displayList","store","_renderStoreLocation","_store$OrgUnitAvailab","deliveryOptions","OrgUnitPickUpDeliveryModes","_store$OrgUnitAvailab2","selected","StoreSelectorLocationLineItemComponent","storeHours","StoreHours","preferredDistanceUnit","isCurrentLocation","isInStock","ItemAvailabilities","hideStockStatus","handlers","onSelected","onLocationSelected","onSetAsPreferredStore","onRemovePreferredStore","stockStatusLabel","storeLocatorView","toString","preferredStoreLocationId","isPreferredStoreEnabled","isLocationDisabled","storePickUpOptionList","DeliveryOptions","productPickUpOptionList","productPickUpDeliveryOptions","filteredPickupMode","shouldShowIndex","stores","isPreferredStore","_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","Promise","resolve","renderPickupModesList","pickupFilterMenuHeading","locatorView","pickupFilterByHeading","hasEnabledPickupFilterToShowStore","shouldDisplayList","toggleButtonClass","onToggleListMapViewState","toggleMapViewAttributes","SearchStore","storeSearchAttributes","ShowAllStore","showAllStoreAttributes","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","seeAllStoresText","viewListText","viewMapText","isMapDisabled","showAllStores","autoComplete","searchInputAriaLabel","onKeyUp","StoreSelectorEmptyMessage","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","StoreSelectorFoundLocationsMessage","searchRadius","isSeeAllStore","storeCountMessage","milesShortText","storeCountMessageInKm","storeAllCountMessage","replace","PickUpOptionList","eventsToBeBind","handleDocumentClick","htmlElement","_pickupListOptionButton","contains","_pickupListOptionMenu","expandSiteOptions","_renderDeliveryOptions","removeEventListener","pickupListOptionMenuText","pickupmodeList","stopPropagation","isExpandSiteOptionsState","onPickupInStoreClickHandler","_props$selectedStore","selectedStore","onSetPreferredStoreClickHandler","_props$selectedStore2","onChangeHandler","_props$selectedStore3","removePreferredStoreHandler","onPickupModeSelectHandler","pickupMode","_props$selectedStore4","storeDetailsModalHandler","closeStoreDetailsModal","renderPickupModes","deliveryOptionList","pickupInStoreButtonText","pickupInStoreAriaLabel","SelectedStoreComponent","_selectedStore$OrgUni","_selectedStore$OrgUni2","shouldHideStockStatus","parentClassName","storeName","OrgUnitName","distanceAsString","buildDistanceString","Distance","resourceLabel","stockLabel","stockText","canSelectLocation","PickupInStore","PreferredStore","preferredStoreAttributes","RemovePreferredStore","removePreferredStoreAttributes","matchDeliveryOptions","storeDetailsMain","storeHeader","storeDetailsCloseButton","storeDistance","storeDetailsAvailabilityContainer","productAvailability","stockStatus","pickUpDeliveryOptionButton","pickupModes","preferredStoreButton","removePreferredStoreButton","secondsToTime","seconds","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","day","getFullTimeString","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","dateForLookup","buildStoreHoursString","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","storeSelectorLocationLineItemComponentActions","deliveryMode","distance","productdeliveryOptions","deliveryOption","pickup","_delivery","storeAddress","Address","phoneNumber","contacts","allPhoneContacts","contact","ContactTypeValue","IsPrivate","primaryPhoneContact","Locator","extractPhoneNumber","Contacts","isError","renderStoreHours","RegularStoreHours","displayTime","storeOpenFrom","OpenFrom","storeOpenTo","OpenTo","pickUpButtonClickHandler","StoreSelector","renderSelectedStore","shouldHideInventory","hasEnabledOutOfStockCheck","availabilitiesWithHours","storeSelectorStateManager","storeLocations","selectedStoreResources","_selectedStore$OrgUni3","selectedProps","StoreId","_onOrgUnitLocationSelected","_setPreferredStore","_removePreferredStore","_closeStoreDetailModal","termsOfServiceLink","onShowAllStoresHandler","_getAndUpdateStoreLocation","onFilterLocations","_location$OrgUnitPick","some","onFilteredPickupMode","_attachMapAutoSuggest","autoSuggestOptions","channel","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_preferredStore$OrgUn","_preferredStore$OrgUn2","_preferredStore$OrgUn3","storeId","mode","setPreferredStoreLocation","Latitude","Longitude","clearPreferredStore","setSelectedStoreLocationId","_setSelectedStore","searchTerm","isSearchInProgress","isSeeAllStoreValue","geoLocate","trim","_updateLocations","latitude","longitude","shouldShowAllStores","_navigator","isDialogOpen","navigator","geolocation","getCurrentPosition","position","coords","PERMISSION_DENIED","timeout","_closeDialog","_storeSelectorStateMa","parentElementRef","focus","closeDialog","_setOrgUnitStoreInformation","moduleId","styleDefault","preferredLocationId","storeLocationList","orgUnitStoreInformation","showMapViewLink","isDialog","setOrgUnitStoreInformation","radius","lookupRadius","searchRadiusUnit","calRadius","distanceUnitValue","modeDefault","localLatitude","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","getFullAvailableInventoryNearby","getOrgUnitLocationByArea","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByArea","GetFullAvailableInventoryNearbyInput","warning","selectedLocation","hasEnableOutOfStockCheck","_isInStock$OrgUnitAva","_this$props$data$stor6","autoSuggestionEnabled","isAutoSuggestionEnabled","_this$props$context","_this$props$data$stor2","_this$props$data$stor3","_this$props$data$stor4","_this$props$data$stor5","loadMapApi","BingMapsEnabled","lang","locale","market","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","when","_this$props$data$stor10","_this$props$data$stor11","_this$props$data$stor12","isSameContext","_storeSelectorStateMa2","_storeSelectorStateMa3","_sortLocation","_storeSelectorStateMa4","_storeSelectorStateMa5","setAsPreferredStore","shouldSetAsPreferredStore","enablePickupFilterToShowStore","hasEnablePickupFilterToShowStore","appConfig","maps","mapSlot","isMobileDevice","Viewport","isInlineView","isLocatorView","listMapViewState","canShowLocationView","isMapModuleLoaded","storeSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","storeSelectorHeaderText","kilometersShortText","isEnableOutofStock","enableStockCheck","sortLocation","locationListProps","_getStoreLocationListProps","hasMapSlot","dialogClassName","ModuleProps","onClosed","isMobileView","HeaderContainerProps","HeaderProps","FooterContainerProps","BodyContainerProps","bodyWrapperProps","storeResultContainerProps","mapContainerProps","storeDetailsModal","locationsMessage","spinner","locationsList","outOfStockThreshold","noLocationsMessage","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","isStoreLocatorView","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","_store$OrgUnitAvailab4","locationOpen","openFrom","openTo","renderDeliveryOptions","renderBody","toggleBopisHandler","cartLine","isBopisSelected","_cartLine$pickUpInSto","pickUpInStore","toggleBopis","onChangeStoreHandler","_cartLine$pickUpInSto2","renderCartLine","storeSelector","isMultiplePickUp","emailDeliveryModeCode","outOfStockErrorMessage","addToWishlist","remove","renderGroupBopisBlock","_cartLine$data2","cartline","DeliveryMode","changeStoreDisplayText","shipInsteadDisplayText","pickItUpDisplayText","puckUpinStoreAttribute","addToOrderTemplate","renderCartlinesInternal","cartLines","itemIndex","renderBopisBlock","_cartLine$data","shipToAddressDisplayText","pickUpAtStoreWithLocationText","ContainerProps","orgUnitName","renderCartlines","waitingComponent","cartLoadingStatus","isCartDataResult","multiplePickUpEnabled","CartlinesWrapper","emptyCart","renderCartLinesGroupHeader","_cartLine$pickUpInSto6","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","StringExtensions","isNullOrEmpty","renderCartLinesGroupTitle","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","_cartLine$pickUpInSto5","itemLabel","itemsLabel","countTitle","_props$cart2","_props$cart3","_props$orderSummaryLi","_props$cart4","_props$cart5","_props$cart6","updatedTitle","cartTitle","cart","totalItemsInCart","renderModuleAttributes","checkoutBlockedDueToUnavailableFunds","orderSummaryLineitems","orderTotal","checkoutAsSignInUserButton","checkoutAsGuestButton","renderOrderSummaryCheckoutButton","hasInvoiceLine","promotionOptions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action","_props$context$action2","cartlineId","countItem","reduce","_item$data$cartline$Q","_item$data","Quantity","countItems","EmailDeliveryModeCode","cartDataResult","orderSummaryHeading","OrderSummaryWrapper","renderInvoiceSummarylines","invoiceSummaryLines","orderSummaryItems","invoices","giftCard","loyalty","invoiceSummaryLineitems","OrderSummaryItems","renderOrderSummarylines","orderSummaryLines","totalDiscounts","otherCharge","errorData","OrderSummaryErrors","Wrapper","header","_props$cart","promoCode","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","renderOrderSummaryCheckout","SignInLoading","SignInButton","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","forgetPassword","disclaimer","signInButton","socialAccounts","SocialAccount","b2bSignUpButtonAriaLabel","b2bSignUpButtonText","B2BAccount","StoreSelectorFoundLocationsMessageComponent","ContactInformationType","buildStoreHoursDay","storeHoursDayPeriodString","storeHoursDayString","storeHoursDayPeriod","storeHoursDay","productDeliveryOptions","productDeliveryOption","PickUpMethodDropdownComponent","pickUpStatesProps","pickUpMethodLabel","pickUpOptionPlaceholder","pickupOptionDropdownError","pickupButtonAriaLabel","selectedStorePickUpOption","selectStorePickUpOption","currentStorePickUpOption","setCurrentStorePickUpOption","isDropdownOpen","toggleDropdown","dataset","handleDropdownToggle","filterDeliveryOption","filteredDeliveryMode","renderLocationLinePickupButton","PickUpButtonComponent","renderStoreLocationLineItem","locationLineItem","closeDistanceString","distanceString","preferredStoreAttribute","removePreferredStoreAttribute","_props$data$storeSele","renderStoreLocations","selectedLocationReference","_props$data$storeSele2","_props$locationListPr","renderStoreLocation","pickUpOptionDropdownPlaceholderText","pickupOptionDropdownPlaceholderText","unitLocation","canSelectPickUpMethod","pickupOptionDropdownErrorText","pickUpMethodSelection","selectedLocationProps","storeSelectorViewProps","_selectedStore$StoreH","_selectedStore$OrgUni4","_selectedStore$OrgUni5","_selectedStore$OrgUni6","_storeSelectorViewPro","_storeSelectorViewPro2","storeNameValue","orgUnitNumber","_data$storeSelectorSt2","_data$storeSelectorSt3","isDesktopPort","setIsDesktopPort","isDesktopViewport","portView","scrollIntoView","_selectedLocationDiv$","offset","getBoundingClientRect","totalHeight","top","_data$storeSelectorSt","displayMap","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","Image","fallBackSrc","loadFailureBehavior","gridSettings","imageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","cropFocalRegion","renderProductImage","ItemId","signInMessage","paragraph","reviewModal","inputRow","selectRatingLabel","rating","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","createReviewModal"],"sourceRoot":""}