{"version":3,"file":"static/js/13.972c7a0c972d1fb65a14.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/pickup-option-list.tsx?b553","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/store-pickup-option-list.tsx?02d3","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/cz-store-selector-location-line-item/cz-store-selector-location-line-item.components.tsx?687f","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/cz-store-selector-location-lines.tsx?d221","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/cz-store-selector-search-form.tsx?30aa","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/cz-store-selector-small-components.tsx?12c5","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/components/cz-store-selector-location-line-item/date-time-helpers.ts?a843","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/cz-store-selector.props.autogenerated.ts?24d6","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/cz-store-selector.tsx?9bce","webpack://Msdyn365.Commerce.Online/./src/modules/cz-store-selector/cz-store-selector.view.tsx?f89f","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/account-generic-tile.view.tsx?6b6c","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/breadcrumb.view.tsx?aba9","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/components/aaa_carticon.component.tsx?6ad9","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/components/carticon.component.tsx?fd9c","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/components/promocode.component.tsx?e3df","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/order-history.view.tsx?6480","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/order-template-list.view.tsx?d0bf","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/links.tsx?abbf","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.tsx?3084","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.view.tsx?1773","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/reviews-list.view.tsx?cd2e","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/b2b-requests-status.view.tsx?de3b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-history.view.tsx?692d"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\nexport interface IPickUpOptionListProps {\r\n pickupListOptionMenuText: string;\r\n pickupmodeList?: DeliveryOption[];\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\nexport interface IPickOptionListState {\r\n expandSiteOptions: boolean;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class PickUpOptionList extends React.PureComponent {\r\n private readonly _pickupListOptionMenu: React.RefObject;\r\n\r\n constructor(props: IPickUpOptionListProps) {\r\n super(props);\r\n this._rendeDeliveryOptions = this._rendeDeliveryOptions.bind(this);\r\n this._pickupListOptionMenu = React.createRef();\r\n this.state = {\r\n expandSiteOptions: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { pickupListOptionMenuText, pickupmodeList } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {this.state.expandSiteOptions ? (\r\n
    \r\n {pickupmodeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n
  • \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n private _rendeDeliveryOptions(): void {\r\n const expandSiteOptionsState = this.state.expandSiteOptions;\r\n this.setState({\r\n expandSiteOptions: !expandSiteOptionsState\r\n });\r\n }\r\n\r\n private readonly _onSelect = async (e: React.MouseEvent): Promise => {\r\n e.preventDefault();\r\n const deliveryCode = e.currentTarget.getAttribute('data-value');\r\n if (deliveryCode && deliveryCode.length > 0) {\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Store Pickup option list interface.\r\n */\r\nexport interface IStorePickUpOptionListProps {\r\n productPickupListOptionMenuText?: string;\r\n productPickupModeList?: DeliveryOption[];\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Store Pickup option state interface.\r\n */\r\nexport interface IStorePickOptionListState {\r\n isFilterExpanded: boolean;\r\n selectedPickupMode?: string;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class StorePickUpOptionList extends React.PureComponent {\r\n private readonly _storePickupListOptionMenu: React.RefObject;\r\n\r\n public constructor(props: IStorePickUpOptionListProps) {\r\n super(props);\r\n this._storePickupListOptionMenu = React.createRef();\r\n this.state = {\r\n isFilterExpanded: false,\r\n selectedPickupMode: ''\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { productPickupListOptionMenuText, productPickupModeList } = this.props;\r\n const selectedPickupModeDesc = productPickupModeList?.find(\r\n (delivery: DeliveryOption) => delivery.Code === this.state.selectedPickupMode\r\n )?.Description;\r\n return (\r\n
\r\n \r\n {this.state.isFilterExpanded ? (\r\n
    \r\n {productPickupModeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Method to call when drop dwon get selected.\r\n */\r\n private readonly _rendeDeliveryOptions = () => {\r\n const isExpandOptionsState = this.state.isFilterExpanded;\r\n this.setState({\r\n isFilterExpanded: !isExpandOptionsState\r\n });\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onKeyDown = async (event: React.KeyboardEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitContact, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { PickUpOptionList } from '../pickup-option-list';\r\n//import { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\r\n\r\n/**\r\n * Store Locator line item resources.\r\n */\r\nexport interface IStoreSelectorLocationLineItemResources {\r\n contactInfoHeader: string;\r\n storeHoursHeader: string;\r\n availabilityInfoHeader: string;\r\n\r\n closedText: string;\r\n\r\n outOfStock: string;\r\n inStock: string;\r\n\r\n currentLocation: string;\r\n selectLocation: string;\r\n selectLocationAriaLabelFormat: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n\r\n days: {\r\n monday: string;\r\n tuesday: string;\r\n wednesday: string;\r\n thursday: string;\r\n friday: string;\r\n saturday: string;\r\n sunday: string;\r\n mondayFull: string;\r\n tuesdayFull: string;\r\n wednesdayFull: string;\r\n thursdayFull: string;\r\n fridayFull: string;\r\n saturdayFull: string;\r\n sundayFull: string;\r\n };\r\n}\r\n\r\n/**\r\n * Store Locator line item props.\r\n */\r\nexport interface IStoreSelectorLocationLineItemProps {\r\n location: OrgUnitLocation;\r\n storeHours?: StoreHours;\r\n\r\n hideStockStatus?: boolean;\r\n isInStock?: boolean;\r\n isCurrentLocation?: boolean;\r\n\r\n resources: IStoreSelectorLocationLineItemResources;\r\n stockStatusLabel?: string;\r\n storeLocatorView?: boolean;\r\n isPreferredStoreEnabled?: boolean;\r\n index: string;\r\n preferredStoreLocationId: string | null;\r\n storePickUpOptionList?: DeliveryOption[];\r\n productPickUpOptionList?: DeliveryOption[];\r\n filteredPickupMode?: string;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n preferredDistanceUnit: string;\r\n isLocationDisabled?: boolean;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n onSetAsPreferredStore(locationId: string | undefined): void;\r\n onRemovePreferredStore(): void;\r\n };\r\n}\r\n\r\n/**\r\n * Store Locator line item action component.\r\n */\r\nconst StoreSelectorLocationLineItemComponentActions = {\r\n onLocationSelected(props: IStoreSelectorLocationLineItemProps, deliveryMode?: string): void {\r\n props.handlers.onSelected(props.location, deliveryMode);\r\n },\r\n onSetAsPreferredStore(props: IStoreSelectorLocationLineItemProps): void {\r\n props.handlers.onSetAsPreferredStore(props.location.OrgUnitNumber);\r\n },\r\n onRemovePreferredStore(props: IStoreSelectorLocationLineItemProps): void {\r\n props.handlers.onRemovePreferredStore();\r\n }\r\n};\r\n\r\n/**\r\n * Function to render store hours.\r\n * @param storeHours - Store Hours object.\r\n * @param location - Store Unit.\r\n * @param resources - Resources.\r\n * @returns - Jsx element.\r\n *\r\nconst renderStoreHours = (\r\n storeHours: StoreHours | undefined,\r\n location: OrgUnitLocation,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): JSX.Element | null => {\r\n // First, use the store hours. This will allow listing day by day houts\r\n if (storeHours && storeHours.RegularStoreHours) {\r\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\r\n\r\n return (\r\n
\r\n {storeHoursList.map(displayTime => (\r\n
\r\n {displayTime.endDayShort ? (\r\n
\r\n {displayTime.startDayShort}–\r\n {displayTime.endDayShort}\r\n
\r\n ) : (\r\n
\r\n {displayTime.startDayShort}\r\n
\r\n )}\r\n
{displayTime.timeRange}
\r\n
\r\n ))}\r\n
\r\n );\r\n }\r\n\r\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\r\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\r\n\r\n return (\r\n
\r\n {storeOpenFrom}-{storeOpenTo}\r\n
\r\n );\r\n};\r\n\r\n*/\r\n\r\n/**\r\n * Function to retrun distance measure unit.\r\n * @param distance - Store location within radius.\r\n * @param preferredDistanceUnit - Unit configuration.\r\n * @param isLocationDisabled - Flag to check user location.\r\n * @returns - Unit of distance.\r\n */\r\nconst buildDistanceString = (\r\n distance: number | undefined,\r\n preferredDistanceUnit: string,\r\n isLocationDisabled?: boolean\r\n): string | undefined => {\r\n if (distance === undefined || isLocationDisabled) {\r\n return undefined;\r\n } else if (distance < 1) {\r\n return `(<1 ${preferredDistanceUnit})`;\r\n }\r\n return `(${Math.floor(distance)} ${preferredDistanceUnit})`;\r\n};\r\n\r\n/**\r\n * Function to store contact.\r\n * @param contacts - Store location within radius.\r\n * @returns - Return primary contact number of store.\r\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n\r\n if (allPhoneContacts && allPhoneContacts.length > 0) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n return primaryPhoneContact.Locator;\r\n }\r\n\r\n return allPhoneContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n*/\r\n\r\n/**\r\n * Function to store Email.\r\n * @param contacts - Store location within radius.\r\n * @returns - Return primary contact number of store.\r\n */\r\nconst extractEmail = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allEmailContacts = contacts.filter(contact => contact.ContactTypeValue === 2 && !contact.IsPrivate);\r\n\r\n if (allEmailContacts && allEmailContacts.length > 0) {\r\n const primaryEmailContact = allEmailContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryEmailContact) {\r\n return primaryEmailContact.Locator;\r\n }\r\n\r\n return allEmailContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * On Store locator click functionality.\r\n * @param props -Store locator location items.\r\n * @returns Store locator selected location line item action.\r\n */\r\nconst onPickupInStoreClickHandler = (props: IStoreSelectorLocationLineItemProps) => () => {\r\n StoreSelectorLocationLineItemComponentActions.onLocationSelected(props);\r\n};\r\n\r\n/**\r\n * On Store locator click functionality.\r\n * @param props -Store locator location items.\r\n * @param pickupMode -Store locator location items.\r\n * @returns Store locator selected location line item action.\r\n */\r\nconst onPickupModeSelectHandler = (props: IStoreSelectorLocationLineItemProps, pickupMode?: string) => () => {\r\n StoreSelectorLocationLineItemComponentActions.onLocationSelected(props, pickupMode);\r\n};\r\n\r\n/**\r\n * Set Preferred store functionality.\r\n * @param props -Store locator location items.\r\n * @returns Store locator selected location line item action.\r\n */\r\nconst onSetPreferredStoreClickHandler = (props: IStoreSelectorLocationLineItemProps) => () => {\r\n StoreSelectorLocationLineItemComponentActions.onSetAsPreferredStore(props);\r\n};\r\n\r\n/**\r\n * Remove preferred store functionality.\r\n * @param props -Store locator location items.\r\n * @returns Store locator selected location line item action.\r\n */\r\nconst removePreferredStoreHandler = (props: IStoreSelectorLocationLineItemProps) => () => {\r\n StoreSelectorLocationLineItemComponentActions.onRemovePreferredStore(props);\r\n};\r\n\r\n/**\r\n * On Change functionality.\r\n * @param props -Store locator location items.\r\n * @returns Store locator selected location line item action.\r\n */\r\nconst onChangeHandler = (props: IStoreSelectorLocationLineItemProps) => async (deliveryCode: string): Promise => {\r\n StoreSelectorLocationLineItemComponentActions.onLocationSelected(props, deliveryCode);\r\n return Promise.resolve();\r\n};\r\n\r\n/**\r\n * Method to render pickup modes.\r\n * @param props - StoreSelector Line item props.\r\n * @param deliveryOptionList - Product DeliveryOption List.\r\n * @param pickupInStoreButtonText - Pickup store button text.\r\n * @param pickupInStoreAriaLabel - Pickup store aria label.\r\n * @returns Jsx component.\r\n */\r\nconst renderPickupModes = (\r\n props: IStoreSelectorLocationLineItemProps,\r\n deliveryOptionList: DeliveryOption[],\r\n pickupInStoreButtonText: string,\r\n pickupInStoreAriaLabel: string\r\n): JSX.Element | null => {\r\n if (props.filteredPickupMode === undefined) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n {pickupInStoreButtonText}\r\n \r\n );\r\n};\r\n\r\nconst StoreSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\r\n const {\r\n hideStockStatus,\r\n isCurrentLocation,\r\n isInStock,\r\n location,\r\n resources,\r\n // storeHours,\r\n stockStatusLabel,\r\n storeLocatorView,\r\n index,\r\n preferredStoreLocationId,\r\n isPreferredStoreEnabled,\r\n isLocationDisabled,\r\n telemetryContent,\r\n storePickUpOptionList,\r\n productPickUpOptionList\r\n } = props;\r\n\r\n const storeName: string | undefined = location.OrgUnitName;\r\n const distanceAsString: string | undefined = buildDistanceString(location.Distance, props.preferredDistanceUnit, isLocationDisabled);\r\n const storeAddress: string | undefined = location.Address;\r\n // const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\r\n const email: string | undefined = extractEmail(location.Contacts);\r\n\r\n const resourceLabel = isInStock ? resources.inStock : resources.outOfStock;\r\n const stockLabel = stockStatusLabel ? stockStatusLabel : undefined;\r\n const stockText: string | undefined = hideStockStatus ? undefined : stockLabel ? stockLabel : resourceLabel;\r\n const canSelectLocation = hideStockStatus || isInStock;\r\n const pickupInStoreButtonText: string = resources.selectLocation;\r\n const pickupInStoreAriaLabel: string = resources.selectLocationAriaLabelFormat.replace('{StoreName}', storeName || '');\r\n const isPreferredStore = preferredStoreLocationId === location.OrgUnitNumber;\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\r\n const preferredStoreAttr = getTelemetryAttributes(telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\r\n const RemovePreferredStoreAttr = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const deliveryOptionList = matchDeliveryOptions(productPickUpOptionList, storePickUpOptionList);\r\n\r\n return (\r\n
\r\n
\r\n {storeLocatorView && {index}}\r\n \r\n {index}. {storeName}\r\n \r\n {distanceAsString ? {distanceAsString} : false}\r\n
\r\n
\r\n {isPreferredStoreEnabled ? (\r\n isPreferredStore ? (\r\n \r\n {resources.preferredStoreText}\r\n \r\n ) : (\r\n \r\n {resources.setAsPreferredStoreText}\r\n \r\n )\r\n ) : null}\r\n\r\n
\r\n {/**

{resources.contactInfoHeader}

*/}\r\n {storeAddress && (\r\n
\r\n \r\n {storeAddress}\r\n
\r\n )}\r\n {/** {phoneNumber && (\r\n
\r\n \r\n {phoneNumber}\r\n
\r\n )}\r\n */}\r\n {email && (\r\n
\r\n \r\n {email}\r\n
\r\n )}\r\n
\r\n\r\n {/*\r\n
\r\n

{resources.storeHoursHeader}

\r\n {renderStoreHours(storeHours, location, resources)}\r\n
\r\n */}\r\n\r\n {!storeLocatorView && (\r\n
\r\n

{resources.availabilityInfoHeader}

\r\n {stockText &&

{stockText}

}\r\n {isCurrentLocation ? (\r\n

{resources.currentLocation}

\r\n ) : canSelectLocation ? (\r\n deliveryOptionList.length === 0 ? (\r\n \r\n {pickupInStoreButtonText}\r\n \r\n ) : (\r\n renderPickupModes(props, deliveryOptionList, pickupInStoreButtonText, pickupInStoreAriaLabel)\r\n )\r\n ) : (\r\n false\r\n )}\r\n
\r\n )}\r\n {/*\r\n {isPreferredStoreEnabled ? (\r\n isPreferredStore ? (\r\n \r\n {resources.preferredStoreText}\r\n \r\n ) : (\r\n \r\n {resources.setAsPreferredStoreText}\r\n \r\n )\r\n ) : null}\r\n */}\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Method to check if we have atleast one common delivery code between product and channel.\r\n * @param productdeliveryOptions - Product DeliveryOption List.\r\n * @param storePickUpOptionList - Channel DeliveryOption List.\r\n * @returns DeliveryOptionList.\r\n */\r\nconst matchDeliveryOptions = (\r\n productdeliveryOptions: DeliveryOption[] | undefined,\r\n storePickUpOptionList: DeliveryOption[] | undefined\r\n): DeliveryOption[] => {\r\n const deliveryOption: DeliveryOption[] = [];\r\n productdeliveryOptions?.map(delivery => {\r\n const pickup = storePickUpOptionList?.find(_delivery => _delivery.Code === delivery.Code);\r\n if (pickup) {\r\n deliveryOption.push(pickup);\r\n }\r\n });\r\n\r\n return deliveryOption;\r\n};\r\n\r\nexport const StoreSelectorLocationLineItemComponent = StoreSelectorLocationLineItem as (\r\n props: IStoreSelectorLocationLineItemProps\r\n) => JSX.Element;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, ItemAvailability, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { ICzStoreSelectorResources } from '../cz-store-selector.props.autogenerated';\r\nimport { IStoreSelectorLocationLineItemResources, StoreSelectorLocationLineItemComponent } from './cz-store-selector-location-line-item';\r\n\r\nexport interface IStoreSelectorLocationLinesProps {\r\n locations?: IFullOrgUnitAvailability[];\r\n resources: ICzStoreSelectorResources;\r\n preferredDistanceUnit?: string;\r\n\r\n alreadySelectedLocation?: OrgUnitLocation;\r\n outOfStockThreshold: number;\r\n enableOutOfStockCheck: boolean;\r\n storeLocatorView?: boolean;\r\n selectedStoreLocationId?: string;\r\n isPreferredStoreEnabled?: boolean;\r\n displayList?: boolean;\r\n isLocationDisabled?: boolean;\r\n productPickUpDeliveryOptions?: DeliveryOption[];\r\n onClick: (locationId: string | undefined) => void;\r\n preferredStoreLocationId: string | null;\r\n onSetAsPreferredStore: (locationId: string | undefined) => void;\r\n onRemovePreferredStore: () => void;\r\n filteredPickupMode?: string;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onLocationSelected(location: OrgUnitLocation | undefined): void;\r\n}\r\n\r\n/**\r\n * Displays all the location line items, or null if none exists.\r\n */\r\n@observer\r\nexport class StoreSelectorLocationLines extends React.PureComponent {\r\n private readonly selectedLocationRef: React.RefObject;\r\n\r\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\r\n\r\n private storeCounter: number;\r\n\r\n public constructor(props: IStoreSelectorLocationLinesProps) {\r\n super(props);\r\n this.selectedLocationRef = React.createRef();\r\n this.storeCounter = 0;\r\n }\r\n\r\n public componentDidUpdate(prevProps: IStoreSelectorLocationLinesProps): void {\r\n if (this.props.selectedStoreLocationId !== prevProps.selectedStoreLocationId) {\r\n this._scrollIntoView();\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this._stores || this._stores.length === 0) {\r\n return null;\r\n }\r\n\r\n this.storeCounter = 0;\r\n\r\n return (\r\n
\r\n {this._stores.map((store, index) => {\r\n return this._renderStoreLocation(store, index);\r\n })}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * On click Handler function.\r\n * @param orgUnitLocation -OrgUnit location.\r\n * @returns Click action on orgUnit Location.\r\n */\r\n private readonly onClickHandler = (orgUnitLocation: OrgUnitLocation | undefined) => () => {\r\n this.props.onClick(orgUnitLocation?.OrgUnitNumber);\r\n };\r\n\r\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number): JSX.Element | undefined {\r\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\r\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\r\n const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\r\n const defaultAriaSetsize = 0;\r\n if (orgUnitLocation) {\r\n ++this.storeCounter;\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\r\n this.props.isPreferredStoreEnabled &&\r\n this.props.preferredStoreLocationId &&\r\n value?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\r\n\r\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\r\n }\r\n\r\n private readonly _scrollIntoView = () => {\r\n const selectedLocationDiv = this.selectedLocationRef.current;\r\n const parent = selectedLocationDiv?.parentElement;\r\n if (selectedLocationDiv && parent) {\r\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop;\r\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\r\n }\r\n }\r\n };\r\n\r\n private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean =>\r\n (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) ||\r\n false;\r\n\r\n private readonly _isProductInStock = (ItemAvailabilities: ItemAvailability[] | undefined): boolean => {\r\n if (!this.props.enableOutOfStockCheck) {\r\n return true;\r\n }\r\n\r\n if (ItemAvailabilities && ItemAvailabilities.length > 0) {\r\n return ItemAvailabilities[0].AvailableQuantity ? ItemAvailabilities[0].AvailableQuantity > 0 : false;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n private readonly _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n if (availabilityWithHours?.ProductInventoryInformation && availabilityWithHours?.ProductInventoryInformation.length > 0) {\r\n for (let i = 0; i < availabilityWithHours.ProductInventoryInformation.length; i++) {\r\n if (\r\n availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\r\n availabilityWithHours.ProductInventoryInformation[i].InventLocationId\r\n ) {\r\n return availabilityWithHours.ProductInventoryInformation[i].StockLevelLabel;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n private readonly _mapResources = (resources: ICzStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\r\n return {\r\n contactInfoHeader: resources.contactText,\r\n storeHoursHeader: resources.timeText,\r\n availabilityInfoHeader: resources.availabilityText,\r\n\r\n closedText: resources.storeHoursClosedText,\r\n outOfStock: resources.outOfStockText,\r\n inStock: resources.inStockText,\r\n\r\n currentLocation: resources.selectedStoreLocationText,\r\n selectLocation: resources.selectStoreText,\r\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\r\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\r\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\r\n preferredStoreText: resources.preferredStoreText,\r\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\r\n\r\n days: {\r\n monday: resources.storeHoursMondayText,\r\n tuesday: resources.storeHoursTuesdayText,\r\n wednesday: resources.storeHoursWednesdayText,\r\n thursday: resources.storeHoursThursdayText,\r\n friday: resources.storeHoursFridayText,\r\n saturday: resources.storeHoursSaturdayText,\r\n sunday: resources.storeHoursSundayText,\r\n mondayFull: resources.storeHoursMondayFullText,\r\n tuesdayFull: resources.storeHoursTuesdayFullText,\r\n wednesdayFull: resources.storeHoursWednesdayFullText,\r\n thursdayFull: resources.storeHoursThursdayFullText,\r\n fridayFull: resources.storeHoursFridayFullText,\r\n saturdayFull: resources.storeHoursSaturdayFullText,\r\n sundayFull: resources.storeHoursSundayFullText\r\n }\r\n };\r\n };\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n KeyCodes,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { StorePickUpOptionList } from './store-pickup-option-list';\r\n\r\n/**\r\n * Store Selector Search Form Props interface.\r\n */\r\nexport interface IStoreSelectorSearchFormProps {\r\n resources: {\r\n searchInputAriaLabel: string;\r\n searchButtonAriaLabel: string;\r\n searchPlaceholderText: string;\r\n seeAllStoresText: string;\r\n viewListText: string;\r\n viewMapText: string;\r\n pickupFilterByHeading?: string;\r\n pickupFilterMenuHeading?: string;\r\n };\r\n\r\n id: string;\r\n value: string;\r\n isMapDisabled?: boolean;\r\n showAllStores?: boolean;\r\n displayList?: boolean;\r\n locatorView?: boolean;\r\n productPickUpDeliveryOptions?: DeliveryOption[];\r\n hasEnabledPickupFilterToShowStore?: boolean;\r\n filteredPickupMode?: string;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onShowAllStores(): void;\r\n onToggleListMapViewState(): void;\r\n performSearch(searchTerm: string): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n filterPickupModeSelected(pickupMode: string): void;\r\n}\r\n\r\n/**\r\n * Simple search form consisting of search text and a search button.\r\n */\r\nexport class StoreSelectorSearchForm extends React.PureComponent {\r\n private readonly searchBoxRef: React.RefObject = React.createRef();\r\n\r\n private readonly storeSearchAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private readonly showAllStoreAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n constructor(props: IStoreSelectorSearchFormProps) {\r\n super(props);\r\n this.state = { value: '' };\r\n this._handleKeyPressPrev = this._handleKeyPressPrev.bind(this);\r\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.SearchStore);\r\n this.storeSearchAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ShowAllStore;\r\n this.showAllStoreAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ToggleMapView;\r\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n resources: {\r\n searchButtonAriaLabel,\r\n searchPlaceholderText,\r\n seeAllStoresText,\r\n viewListText,\r\n viewMapText,\r\n pickupFilterByHeading,\r\n pickupFilterMenuHeading\r\n },\r\n id,\r\n value,\r\n isMapDisabled,\r\n showAllStores,\r\n displayList,\r\n locatorView,\r\n onShowAllStores,\r\n productPickUpDeliveryOptions,\r\n hasEnabledPickupFilterToShowStore\r\n } = this.props;\r\n\r\n const toggleButtonText = displayList ? viewMapText : viewListText;\r\n\r\n return (\r\n
\r\n \r\n
\r\n )}\r\n {this.renderPickupModesList(\r\n this.props,\r\n toggleButtonText,\r\n productPickUpDeliveryOptions,\r\n pickupFilterMenuHeading,\r\n locatorView,\r\n pickupFilterByHeading,\r\n hasEnabledPickupFilterToShowStore\r\n )}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Calls method display result.\r\n * @param event - The first number.\r\n */\r\n private readonly _handleKeyPressPrev = (event: React.KeyboardEvent): void => {\r\n if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {\r\n this.props.onShowAllStores();\r\n }\r\n };\r\n\r\n /**\r\n * Method called on search text changed.\r\n * @param event - Input value.\r\n */\r\n private readonly _searchTextChanged = async (event: React.ChangeEvent): Promise => {\r\n const inputValue: string = event.target.value;\r\n\r\n await this.props.searchTermChanged(inputValue);\r\n };\r\n\r\n /**\r\n * Method called on search submit.\r\n * @param event - Input value.\r\n */\r\n private readonly _onSubmit = async (event: React.SyntheticEvent): Promise => {\r\n event.preventDefault(); // Prevents form submission\r\n this.searchBoxRef.current?.blur();\r\n await this.props.performSearch(this.props.value);\r\n };\r\n\r\n /**\r\n * Method called on product pickup option change.\r\n * @returns - Void.\r\n */\r\n private readonly _onChangeHandler = () => async (deliveryCode: string): Promise => {\r\n this.props.filterPickupModeSelected(deliveryCode);\r\n return Promise.resolve();\r\n };\r\n\r\n /**\r\n * Method to render pickup mode list.\r\n * @param props - Store selector search form props.\r\n * @param toggleButtonText - Locator view button text.\r\n * @param productPickUpDeliveryOptions - Product DeliveryOption List.\r\n * @param pickupFilterMenuHeading - Pickup store button text.\r\n * @param locatorView - Locator View is on\\off.\r\n * @param pickupFilterByHeading - Pickup list label text.\r\n * @param hasEnabledPickupFilterToShowStore - Flag to check header filter is enabled.\r\n * @returns Jsx component.\r\n */\r\n private readonly renderPickupModesList = (\r\n props: IStoreSelectorSearchFormProps,\r\n toggleButtonText: string,\r\n productPickUpDeliveryOptions: DeliveryOption[] | undefined,\r\n pickupFilterMenuHeading: string | undefined,\r\n locatorView: boolean | undefined,\r\n pickupFilterByHeading: string | undefined,\r\n hasEnabledPickupFilterToShowStore: boolean | undefined\r\n ): JSX.Element | null => {\r\n if (hasEnabledPickupFilterToShowStore) {\r\n return (\r\n
\r\n {locatorView && (\r\n \r\n {toggleButtonText}\r\n \r\n )}\r\n \r\n
{pickupFilterByHeading}
\r\n
\r\n );\r\n }\r\n if (locatorView) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { ICzStoreSelectorResources, ITermsOfServiceLinkData } from '../cz-store-selector.props.autogenerated';\r\n\r\nexport interface IStoreSelectorEmptyMessageProps {\r\n resources: ICzStoreSelectorResources;\r\n}\r\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\r\n
\r\n

{resources.emptyLocationsText}

\r\n
\r\n);\r\n\r\nexport const StoreSelectorWaiting: React.FC = () =>
;\r\n\r\nexport interface IStoreSelectorTermsOfServiceProps {\r\n link?: ITermsOfServiceLinkData;\r\n requestContext: Msdyn365.IRequestContext;\r\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\r\n if (link) {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-store-select__terms-link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link'\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport interface IStoreSelectorFoundLocationsMessage {\r\n resources: ICzStoreSelectorResources;\r\n locations?: IFullOrgUnitAvailability[];\r\n searchRadius: number;\r\n preferredDistanceUnit: string;\r\n isSeeAllStore: boolean;\r\n}\r\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({\r\n locations,\r\n searchRadius,\r\n resources,\r\n isSeeAllStore,\r\n preferredDistanceUnit\r\n}) => {\r\n if (locations) {\r\n const storeCountMessage =\r\n preferredDistanceUnit === resources.milesShortText ? resources.storeCountMessage : resources.storeCountMessageInKm;\r\n return (\r\n
\r\n {isSeeAllStore\r\n ? resources.storeAllCountMessage.replace('{count}', locations.length.toString())\r\n : storeCountMessage.replace('{count}', locations.length.toString()).replace('{radius}', searchRadius.toString())}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\n\r\nimport { IStoreSelectorLocationLineItemResources } from '.';\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (\r\n startDay: DayType,\r\n endDay: DayType,\r\n hoursInfo: string,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\r\n };\r\n};\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return resources.closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom}–${openTo}`;\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\r\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\r\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\r\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\r\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * ICzStoreSelector contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum mode {\r\n findStores = 'findStores',\r\n pickupInStore = 'pickupInStore'\r\n}\r\n\r\nexport const enum searchRadiusUnit {\r\n miles = 'miles',\r\n kilometers = 'kilometers'\r\n}\r\n\r\nexport const enum style {\r\n inline = 'inline',\r\n dialog = 'dialog'\r\n}\r\n\r\nexport interface ICzStoreSelectorConfig extends Msdyn365.IModuleConfig {\r\n heading?: string;\r\n termsOfServiceLink?: ITermsOfServiceLinkData;\r\n mode?: mode;\r\n searchRadiusUnit?: searchRadiusUnit;\r\n lookupRadius: number;\r\n style?: style;\r\n setAsPreferredStore?: boolean;\r\n enablePickupFilterToShowStore?: boolean;\r\n showAllStores?: boolean;\r\n autoSuggestionEnabled?: boolean;\r\n autoSuggestOptions?: IAutoSuggestOptionsData;\r\n className?: string;\r\n stockistAttributeName?: string;\r\n stockistAttributeRecordId?: number;\r\n}\r\n\r\nexport interface ICzStoreSelectorResources {\r\n searchPlaceholderText: string;\r\n searchButtonAriaLabel: string;\r\n searchInputAriaLabel: string;\r\n outOfStockText: string;\r\n inStockText: string;\r\n selectedStoreLocationText: string;\r\n emptyLocationsText: string;\r\n selectStoreText: string;\r\n selectStoreAriaFormatText: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n timeText: string;\r\n captionText: string;\r\n milesShortText: string;\r\n kilometersShortText: string;\r\n contactText: string;\r\n availabilityText: string;\r\n productDimensionTypeColor: string;\r\n productDimensionTypeConfiguration: string;\r\n productDimensionTypeSize: string;\r\n productDimensionTypeStyle: string;\r\n storeHoursClosedText: string;\r\n storeHoursMondayText: string;\r\n storeHoursTuesdayText: string;\r\n storeHoursWednesdayText: string;\r\n storeHoursThursdayText: string;\r\n storeHoursFridayText: string;\r\n storeHoursSaturdayText: string;\r\n storeHoursSundayText: string;\r\n storeHoursMondayFullText: string;\r\n storeHoursTuesdayFullText: string;\r\n storeHoursWednesdayFullText: string;\r\n storeHoursThursdayFullText: string;\r\n storeHoursFridayFullText: string;\r\n storeHoursSaturdayFullText: string;\r\n storeHoursSundayFullText: string;\r\n storePhoneAriaLabel: string;\r\n storeAddressAriaLabel: string;\r\n storeCountMessage: string;\r\n storeAllCountMessage: string;\r\n storeCountMessageInKm: string;\r\n storeSelectorHeaderText: string;\r\n storeLocatorHeaderText: string;\r\n seeAllStoresText: string;\r\n viewMapText: string;\r\n viewListText: string;\r\n pickupFilterByHeading: string;\r\n pickupFilterMenuHeading: string;\r\n}\r\n\r\nexport interface ITermsOfServiceLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAutoSuggestOptionsData {\r\n maxResults?: number;\r\n}\r\n\r\nexport interface ICzStoreSelectorProps extends Msdyn365.IModule {\r\n resources: ICzStoreSelectorResources;\r\n config: ICzStoreSelectorConfig;\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/// \r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { DeliveryOption, ItemAvailability, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport {\r\n ArrayExtensions,\r\n getFullAvailableInventoryNearby,\r\n GetFullAvailableInventoryNearbyInput,\r\n getOrgUnitLocationsByArea,\r\n GetOrgUnitLocationsByAreaInput,\r\n IFullOrgUnitAvailability\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n getTelemetryObject,\r\n IModuleProps,\r\n INodeProps,\r\n ITelemetryContent,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n NodeTag\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n StoreSelectorEmptyMessage,\r\n StoreSelectorFoundLocationsMessage,\r\n StoreSelectorLocationLines,\r\n StoreSelectorSearchForm,\r\n StoreSelectorTermsOfService,\r\n StoreSelectorWaiting\r\n} from './components';\r\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './components/cz-store-selector-location-line-item/date-time-helpers';\r\nimport { ICzStoreSelectorData } from './cz-store-selector.data';\r\nimport {\r\n ICzStoreSelectorProps,\r\n ICzStoreSelectorResources,\r\n mode as modeEnum,\r\n searchRadiusUnit,\r\n style as styleEnum\r\n} from './cz-store-selector.props.autogenerated';\r\nimport { readAsync, updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\r\n\r\n/**\r\n * StoreSelector State Interface.\r\n */\r\nexport interface IStoreSelectorState {\r\n isSearchInProgress: boolean;\r\n searchTerm?: string;\r\n isSeeAllStoreValue: boolean;\r\n isLocationDisabled?: boolean;\r\n filteredPickupMode?: string;\r\n jewelerInfo?: any;\r\n}\r\n\r\n/**\r\n * StoreSelector View Props Interface.\r\n */\r\nexport interface IStoreSelectorViewProps extends ICzStoreSelectorProps {\r\n state: IStoreSelectorState;\r\n\r\n // Containers:\r\n ModuleProps: IModuleProps;\r\n BodyContainerProps: INodeProps;\r\n FooterContainerProps: INodeProps;\r\n HeaderContainerProps: INodeProps;\r\n HeaderProps?: React.ReactNode;\r\n\r\n // Components\r\n locationsMessage?: React.ReactNode;\r\n search?: React.ReactNode;\r\n spinner?: React.ReactNode;\r\n locationsList?: React.ReactNode;\r\n noLocationsMessage?: React.ReactNode;\r\n terms?: React.ReactNode;\r\n headerText?: React.ReactNode;\r\n sortLocations?: IFullOrgUnitAvailability[];\r\n locationListProps?: IStoreSelectorLocationLineItemProps[];\r\n\r\n callbacks: {\r\n closeDialog(): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n performSearch(searchTerm: string): Promise;\r\n selectedLocation(location: OrgUnitLocation | undefined): Promise;\r\n getAndUpdateUserLocation(): Promise;\r\n attachMapAutoSuggest(): Promise;\r\n onSuggestionSelected(result: Microsoft.Maps.ISuggestionResult): Promise;\r\n setPreferredStore(storeId: string | undefined): Promise;\r\n removePreferredStore(): Promise;\r\n setSelectedStore(storeId: string | undefined): Promise;\r\n setOrgUnitStoreInformation(location: OrgUnitLocation | undefined): Promise;\r\n };\r\n}\r\n\r\n/**\r\n * StoreSelectorLocation Line Resources Interface.\r\n */\r\nexport interface IStoreSelectorLocationLineItemResources {\r\n contactInfoHeader: string;\r\n storeHoursHeader: string;\r\n availabilityInfoHeader: string;\r\n closedText: string;\r\n outOfStock: string;\r\n inStock: string;\r\n currentLocation: string;\r\n selectLocation: string;\r\n selectLocationAriaLabelFormat: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n\r\n days: {\r\n monday: string;\r\n tuesday: string;\r\n wednesday: string;\r\n thursday: string;\r\n friday: string;\r\n saturday: string;\r\n sunday: string;\r\n mondayFull: string;\r\n tuesdayFull: string;\r\n wednesdayFull: string;\r\n thursdayFull: string;\r\n fridayFull: string;\r\n saturdayFull: string;\r\n sundayFull: string;\r\n };\r\n}\r\n\r\n/**\r\n * ILocationHours Interface.\r\n */\r\nexport interface ILocationHours {\r\n openFrom?: string;\r\n openTo?: string;\r\n}\r\n\r\n/**\r\n * StoreSelectorLocation Line Item Props Interface.\r\n */\r\nexport interface IStoreSelectorLocationLineItemProps {\r\n location: OrgUnitLocation;\r\n storeHours?: StoreHours;\r\n storeHoursList?: IHoursDisplayInfo[];\r\n\r\n hideStockStatus?: boolean;\r\n isInStock?: boolean;\r\n isCurrentLocation?: boolean;\r\n\r\n resources: IStoreSelectorLocationLineItemResources;\r\n stockStatusLabel?: string;\r\n storeLocatorView?: boolean;\r\n isPreferredStoreEnabled?: boolean;\r\n index: string;\r\n preferredStoreLocationId: string | null;\r\n storePickUpOptionList?: DeliveryOption[];\r\n productPickUpOptionList?: DeliveryOption[];\r\n selectedStoreLocationId?: string;\r\n locationOpen?: ILocationHours;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n preferredDistanceUnit: string;\r\n isLocationDisabled?: boolean;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n onSetAsPreferredStore(locationId: string | undefined): void;\r\n onRemovePreferredStore(): void;\r\n };\r\n onClick: (locationId: string | undefined) => void;\r\n}\r\n\r\n/**\r\n *\r\n * Pick Up In Store module.\r\n * @extends React.Component>}\r\n */\r\n@observer\r\nclass StoreSelector extends React.Component, IStoreSelectorState> {\r\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n private storeCounter: number;\r\n private redirectUri: string | null = '';\r\n public constructor(props: ICzStoreSelectorProps) {\r\n super(props);\r\n this.state = {\r\n isSearchInProgress: true,\r\n searchTerm: '',\r\n isSeeAllStoreValue: false,\r\n filteredPickupMode: undefined,\r\n jewelerInfo: undefined\r\n };\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.storeCounter = 0;\r\n }\r\n\r\n public componentDidMount(): void {\r\n const {\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: { channel }\r\n }\r\n },\r\n config: { autoSuggestionEnabled }\r\n } = this.props;\r\n\r\n // Adding Timeout to make sure it loads the data based upon the preferred store.\r\n setTimeout(() => {\r\n this._getAndUpdateStoreLocation();\r\n }, 0);\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result && this.props.data.storeSelectorStateManager.result.isDialogOpen,\r\n async () => {\r\n const context = this.props.data.storeSelectorStateManager.result?.context;\r\n if (context?.id === this.props.id) {\r\n this._getAndUpdateStoreLocation();\r\n }\r\n }\r\n );\r\n\r\n reaction(\r\n () =>\r\n this.props.data.storeSelectorStateManager.result &&\r\n this.props.data.storeSelectorStateManager.result.context &&\r\n this.props.data.storeSelectorStateManager.result.context.id,\r\n async () => {\r\n const context = this.props.data.storeSelectorStateManager.result?.context;\r\n if (!context || context?.id === this.props.id) {\r\n await this._searchTermChanged('');\r\n this._getAndUpdateStoreLocation();\r\n }\r\n }\r\n );\r\n\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n if (this.props.data.storeSelectorStateManager.result?.loadMapApi) {\r\n this.props.data.storeSelectorStateManager.result\r\n ?.loadMapApi({\r\n key: channel?.BingMapsApiKey,\r\n lang: this.props.context.actionContext.requestContext.locale,\r\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\r\n })\r\n .then()\r\n .catch();\r\n }\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\r\n () => {\r\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\r\n key: channel?.BingMapsApiKey,\r\n lang: this.props.context.actionContext.requestContext.locale,\r\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\r\n });\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\r\n when(\r\n () => {\r\n const isMapApiLoaded = !!this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\r\n const isDialogOpen = !!this.props.data.storeSelectorStateManager.result?.isDialogOpen;\r\n const isSameContext = this.props.data.storeSelectorStateManager.result?.context?.id === this.props.id;\r\n return isMapApiLoaded && isDialogOpen && isSameContext;\r\n },\r\n async () => {\r\n setTimeout(async () => {\r\n await this._attachMapAutoSuggest();\r\n }, 0);\r\n }\r\n );\r\n }\r\n void this.getJewelerInfo();\r\n this.checkRedirectUriAvailable();\r\n this.setState({});\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: ICzStoreSelectorProps): boolean {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\r\n if (context && context.id === this.props.id) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private getJewelerInfo = async () => {\r\n if (this.props.context.actionContext.requestContext.user.isAuthenticated) {\r\n const customerAccountNumber = this.props.context.actionContext.requestContext.user.customerAccountNumber;\r\n if (customerAccountNumber) {\r\n const jewelerInfo: any = await readAsync({ callerContext: this.props.context.actionContext }, customerAccountNumber);\r\n this.setState({ jewelerInfo });\r\n }\r\n }\r\n };\r\n\r\n // eslint-disable-next-line complexity -- disabling the complexity for this method for now as its causing lot of other warnings\r\n public render(): JSX.Element {\r\n const {\r\n config: {\r\n termsOfServiceLink,\r\n className,\r\n heading,\r\n mode,\r\n style,\r\n setAsPreferredStore,\r\n showAllStores,\r\n lookupRadius,\r\n enablePickupFilterToShowStore\r\n },\r\n context: {\r\n telemetry,\r\n app: { config: appConfig },\r\n actionContext: {\r\n requestContext: { channel, cookies }\r\n }\r\n },\r\n resources,\r\n data: {\r\n availabilitiesWithHours: { result: availabilitiesWithHours },\r\n storeSelectorStateManager: { result: storeSelectorStateManager },\r\n storeLocations: { result: storeLocations }\r\n }\r\n } = this.props;\r\n\r\n this.storeCounter = 0;\r\n const isMapDisabled = !(channel && channel.BingMapsApiKey && channel.BingMapsEnabled);\r\n const context = storeSelectorStateManager ? storeSelectorStateManager.context : undefined;\r\n const isDialogOpen: boolean = storeSelectorStateManager\r\n ? storeSelectorStateManager.isDialogOpen && context?.id === this.props.id\r\n : false;\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\r\n const inlineView = styleDefault === styleEnum.inline;\r\n const locatorView = modeDefault === modeEnum.findStores;\r\n const hideInventory = locatorView;\r\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\r\n const displayList = storeSelectorStateManager?.listMapViewState?.displayList;\r\n const isPreferredStoreEnabled = setAsPreferredStore && cookies?.isConsentGiven();\r\n const showLocationView =\r\n context &&\r\n (context.showMapViewLink === undefined || context.showMapViewLink) &&\r\n locatorView &&\r\n storeSelectorStateManager?.isMapModuleLoaded;\r\n\r\n const StoreSelectorActions = {\r\n toggleListMapViewState(): void {\r\n storeSelectorStateManager?.toggleListMapViewState();\r\n }\r\n };\r\n\r\n if (!(channel && channel.BingMapsApiKey)) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n }\r\n\r\n const configHeading = heading ? heading : locatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText;\r\n const preferredDistanceUnit =\r\n this.props.config.searchRadiusUnit === searchRadiusUnit.kilometers ? resources.kilometersShortText : resources.milesShortText;\r\n let preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\r\n const preferredLocationId = preferredStore?.StoreId ? preferredStore.StoreId : '';\r\n const locationsList: IFullOrgUnitAvailability[] | undefined = hideInventory ? storeLocations : availabilitiesWithHours;\r\n let sortLocation = null;\r\n if (locationsList) {\r\n sortLocation = this._sortStores(locationsList, isPreferredStoreEnabled, preferredLocationId);\r\n }\r\n if (storeSelectorStateManager && storeSelectorStateManager.preferredStore && this.state.jewelerInfo) {\r\n const customerAccountNumber = this.props.context.actionContext.requestContext.user.customerAccountNumber;\r\n if (customerAccountNumber) {\r\n if (this.props.context.actionContext.requestContext.user.isAuthenticated) {\r\n const stockist = this.state.jewelerInfo.Attributes.find((attr: any) => {\r\n return attr.Name === this.props.config.stockistAttributeName;\r\n });\r\n const locations = this.props.data.storeLocations.result;\r\n if (stockist && locations) {\r\n const stockistInfo: any = locations.find((loc: any) => {\r\n return loc.OrgUnitAvailability.OrgUnitLocation.OrgUnitName === stockist.AttributeValue.StringValue;\r\n });\r\n if (stockistInfo) {\r\n preferredStore = {\r\n StoreName: stockistInfo.OrgUnitAvailability.OrgUnitLocation.OrgUnitName,\r\n StoreId: stockistInfo.OrgUnitAvailability.OrgUnitLocation.OrgUnitNumber,\r\n Latitude: stockistInfo.OrgUnitAvailability.OrgUnitLocation.Latitude,\r\n Longitude: stockistInfo.OrgUnitAvailability.OrgUnitLocation.Longitude\r\n };\r\n } else if (stockist.AttributeValue.StringValue === 'None') {\r\n preferredStore = undefined;\r\n }\r\n } else {\r\n preferredStore = undefined;\r\n }\r\n } else {\r\n preferredStore = undefined;\r\n }\r\n }\r\n } else if (storeSelectorStateManager && !storeSelectorStateManager.preferredStore) {\r\n preferredStore = undefined;\r\n } else {\r\n preferredStore = undefined;\r\n }\r\n const enableOutofStock = appConfig?.enableStockCheck || false;\r\n const alreadySelectedLocation = context ? context.alreadySelectedLocation : undefined;\r\n const productPickUpOptionList = storeSelectorStateManager?.context?.deliveryOptions?.DeliveryOptions;\r\n const locationListProps = this._getStoreLocationListProps(\r\n enableOutofStock,\r\n locatorView,\r\n preferredLocationId,\r\n isPreferredStoreEnabled,\r\n selectedStoreLocationId,\r\n locationsList ?? null,\r\n preferredDistanceUnit,\r\n alreadySelectedLocation,\r\n productPickUpOptionList\r\n );\r\n const viewProps = {\r\n ...(this.props as ICzStoreSelectorProps),\r\n state: this.state,\r\n\r\n ModuleProps: {\r\n tag: inlineView ? ('div' as NodeTag) : Modal,\r\n moduleProps: this.props,\r\n className: classname(\r\n `ms-store-${inlineView ? 'locate' : 'select'}`,\r\n className,\r\n inlineView ? '' : 'msc-modal-input-required'\r\n ),\r\n autoFocus: true,\r\n fade: true,\r\n isOpen: isDialogOpen,\r\n 'aria-label': configHeading,\r\n onClosed: this._closeDialog,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'center',\r\n toggle: this._closeDialog\r\n },\r\n HeaderContainerProps: {\r\n tag: inlineView ? ('div' as NodeTag) : ModalHeader,\r\n className: `ms-store-select__${inlineView ? 'header' : 'modal-header'}`,\r\n toggle: this._closeDialog\r\n },\r\n HeaderProps: configHeading && (\r\n \r\n ),\r\n FooterContainerProps: {\r\n tag: inlineView ? ('div' as NodeTag) : ModalFooter,\r\n className: `ms-store-select__${inlineView ? 'footer' : 'modal-footer'} ${!displayList ? 'map-only-view' : ''}`\r\n },\r\n BodyContainerProps: {\r\n tag: inlineView ? ('div' as NodeTag) : ModalBody,\r\n className: `ms-store-select__${inlineView ? 'body' : 'modal-body'}`\r\n },\r\n locationsMessage: !this.state.isLocationDisabled && (\r\n \r\n ),\r\n search: (\r\n \r\n ),\r\n spinner: ,\r\n locationsList: ((availabilitiesWithHours && availabilitiesWithHours.length) || (storeLocations && storeLocations.length)) && (\r\n \r\n ),\r\n noLocationsMessage: ,\r\n terms: (\r\n \r\n ),\r\n\r\n // Not being used in current context, we can use it here to pass more props.\r\n headerText: (\r\n {heading ? heading : locatorView ? resources.storeLocatorHeaderText : resources.storeSelectorHeaderText}\r\n ),\r\n sortLocations: sortLocation,\r\n locationListProps,\r\n callbacks: {\r\n searchTermChanged: this._searchTermChanged,\r\n performSearch: this._performSearch,\r\n closeDialog: this._closeDialog,\r\n selectedLocation: this._onOrgUnitLocationSelected,\r\n getAndUpdateUserLocation: async () => {\r\n this._getAndUpdateStoreLocation();\r\n return Promise.resolve();\r\n },\r\n attachMapAutoSuggest: this._attachMapAutoSuggest,\r\n onSuggestionSelected: this._onOrgUnitLocationSelected,\r\n setPreferredStore: this._setPreferredStore,\r\n removePreferredStore: this._removePreferredStore,\r\n setSelectedStore: this._setSelectedStore,\r\n setOrgUnitStoreInformation: this._setOrgUnitStoreInformation\r\n }\r\n } as IStoreSelectorViewProps;\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Method to be called on link text change.\r\n * @param event -Content Edit Event.\r\n */\r\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => {\r\n if (this.props.config.termsOfServiceLink) {\r\n this.props.config.termsOfServiceLink.linkText = event.target.value;\r\n }\r\n };\r\n\r\n /**\r\n * Method to be called on heading change.\r\n * @param event -Content Edit Event.\r\n * @returns Set the heading value.\r\n */\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading = event.target.value);\r\n\r\n /**\r\n * Show all stores handler function.\r\n */\r\n private readonly onShowAllStoresHandler = () => {\r\n this._getAndUpdateStoreLocation(true);\r\n };\r\n\r\n /**\r\n * Filter Store by pickup mode.\r\n * @param deliveryCode -Delivery Code.\r\n */\r\n private readonly onFilteredPickupMode = (deliveryCode: string) => {\r\n this.setState({ filteredPickupMode: deliveryCode });\r\n };\r\n\r\n /**\r\n * Method will sort all stores.\r\n * @param stores -Stores List.\r\n * @param isPreferredStoreEnabled -Module config value.\r\n * @param preferredStoreLocationId -Store Id.\r\n * @returns List of Stores.\r\n */\r\n // eslint-disable-next-line class-methods-use-this -- No need of introducing new variable.\r\n private _sortStores(\r\n stores: IFullOrgUnitAvailability[],\r\n isPreferredStoreEnabled: boolean | undefined,\r\n preferredStoreLocationId: string\r\n ): IFullOrgUnitAvailability[] {\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\r\n isPreferredStoreEnabled &&\r\n preferredStoreLocationId &&\r\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === preferredStoreLocationId;\r\n\r\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\r\n }\r\n\r\n /**\r\n * Method will list of store selector location line.\r\n * @param hasEnabledOutOfStockCheck -Stores List.\r\n * @param isStoreLocatorView -Module config value.\r\n * @param preferredStoreLocationId -Store Id.\r\n * @param isPreferredStoreEnabled -Stores List.\r\n * @param selectedStoreLocationId -Module config value.\r\n * @param stores -Store Id.\r\n * @param preferredDistanceUnit -Module config value.\r\n * @param alreadySelectedLocation -Already Selected Location.\r\n * @param productPickUpOptionList -Product supported Pickup Modes List.\r\n * @returns List of StoreSelectorLocation Line.\r\n */\r\n private _getStoreLocationListProps(\r\n hasEnabledOutOfStockCheck: boolean,\r\n isStoreLocatorView: boolean,\r\n preferredStoreLocationId: string,\r\n isPreferredStoreEnabled: boolean | undefined,\r\n selectedStoreLocationId: string | undefined,\r\n stores: IFullOrgUnitAvailability[] | null,\r\n preferredDistanceUnit?: string | undefined,\r\n alreadySelectedLocation?: OrgUnitLocation,\r\n productPickUpOptionList?: DeliveryOption[]\r\n ): IStoreSelectorLocationLineItemProps[] {\r\n const storeList: IStoreSelectorLocationLineItemProps[] = [];\r\n if (ArrayExtensions.hasElements(stores)) {\r\n stores?.map((store, index: number) => {\r\n const storeLineProps = this._createStoreLocationList(\r\n store,\r\n index,\r\n hasEnabledOutOfStockCheck,\r\n isStoreLocatorView,\r\n preferredStoreLocationId,\r\n isPreferredStoreEnabled,\r\n selectedStoreLocationId,\r\n preferredDistanceUnit,\r\n alreadySelectedLocation,\r\n productPickUpOptionList\r\n );\r\n if (storeLineProps) {\r\n storeList.push(storeLineProps);\r\n }\r\n });\r\n }\r\n return storeList;\r\n }\r\n\r\n /**\r\n * Intialize Map AutoSuggest.\r\n */\r\n private readonly _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n config: { autoSuggestOptions },\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: { channel }\r\n }\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded && !this.autoSuggestManager) {\r\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\r\n callback: () => {\r\n const options = { ...autoSuggestOptions, countryCode: channel?.ChannelCountryRegionISOCode };\r\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\r\n this.autoSuggestManager.attachAutosuggest(\r\n `#ms-store-select__search-box_${this.props.id}`,\r\n `#ms-store-select__search-box-container_${this.props.id}`,\r\n this._onSuggestionSelected\r\n );\r\n },\r\n errorCallback: () => {\r\n if (telemetry) {\r\n telemetry.debug('Unable to attach map auto suggest.');\r\n }\r\n },\r\n credentials: channel?.BingMapsApiKey\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * On Selecting Location Suggestion.\r\n * @param result - Map Suggestions List.\r\n */\r\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n const context =\r\n this.props.data.storeSelectorStateManager &&\r\n this.props.data.storeSelectorStateManager.result &&\r\n this.props.data.storeSelectorStateManager.result.context;\r\n if (context && context.id === this.props.id) {\r\n await this._searchTermChanged(result.formattedSuggestion);\r\n await this._performSearch(result.formattedSuggestion);\r\n }\r\n };\r\n\r\n /**\r\n * On Selecting Preferred Store.\r\n * @param storeId - Store Id.\r\n */\r\n private readonly _setPreferredStore = async (storeId: string | undefined): Promise => {\r\n if (!storeId) {\r\n return;\r\n }\r\n\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: { cookies }\r\n }\r\n },\r\n config: { mode },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager },\r\n storeLocations: { result: storeLocations },\r\n availabilitiesWithHours: { result: availabilitiesWithHours }\r\n }\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\r\n\r\n let stores: IFullOrgUnitAvailability[];\r\n if (modeDefault === modeEnum.findStores && storeLocations) {\r\n stores = storeLocations;\r\n } else {\r\n stores = availabilitiesWithHours!;\r\n }\r\n\r\n const preferedStore = stores.find(store => store.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === storeId);\r\n\r\n await storeSelectorStateManager.setPreferredStoreLocation(\r\n storeId,\r\n preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName,\r\n cookies.isConsentGiven(),\r\n preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.Latitude,\r\n preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.Longitude\r\n );\r\n const customerAccountNumber = this.props.context.actionContext.requestContext.user.customerAccountNumber;\r\n if (customerAccountNumber) {\r\n const customer: any = await readAsync({ callerContext: this.props.context.actionContext }, customerAccountNumber);\r\n const attributes = customer.Attributes;\r\n const stockistAttributeIndex = attributes.findIndex((a: any) => {\r\n return this.props.config.stockistAttributeName === a.Name;\r\n });\r\n if (stockistAttributeIndex > -1) {\r\n const stockistAttribute = attributes[stockistAttributeIndex];\r\n stockistAttribute.AttributeValue.StringValue = preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName;\r\n attributes[stockistAttributeIndex] = stockistAttribute;\r\n } else {\r\n const stockistAttribute = {\r\n DataTypeValue: 5,\r\n KeyName: this.props.config.stockistAttributeName,\r\n Name: this.props.config.stockistAttributeName,\r\n RecordId: this.props.config.stockistAttributeRecordId,\r\n AttributeValue: {\r\n StringValue: preferedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName\r\n },\r\n ExtensionProperties: [],\r\n NameTranslations: []\r\n };\r\n attributes.push(stockistAttribute);\r\n }\r\n\r\n // update stockist value...\r\n const updatePayload = {\r\n AccountNumber: customer.AccountNumber,\r\n RecordId: customer.RecordId,\r\n CreatedDateTime: customer.CreatedDateTime,\r\n ChargeGroup: customer.ChargeGroup,\r\n PriceGroup: customer.PriceGroup,\r\n IsCustomerTaxInclusive: customer.IsCustomerTaxInclusive,\r\n Phone: customer.Phone,\r\n PhoneRecordId: customer.PhoneRecordId,\r\n PhoneExt: customer.PhoneExt,\r\n Cellphone: customer.Cellphone,\r\n Email: customer.Email,\r\n EmailRecordId: customer.EmailRecordId,\r\n Url: customer.Url,\r\n UrlRecordId: customer.UrlRecordId,\r\n Name: customer.Name,\r\n PersonNameId: customer.PersonNameId,\r\n FirstName: customer.FirstName,\r\n MiddleName: customer.MiddleName,\r\n LastName: customer.LastName,\r\n DirectoryPartyRecordId: customer.DirectoryPartyRecordId,\r\n PartyNumber: customer.PartyNumber,\r\n CustomerTypeValue: customer.CustomerTypeValue,\r\n Language: customer.Language,\r\n CustomerGroup: customer.CustomerGroup,\r\n CurrencyCode: customer.CurrencyCode,\r\n CNPJCPFNumber: customer.CNPJCPFNumber,\r\n IdentificationNumber: customer.IdentificationNumber,\r\n InvoiceAccount: customer.InvoiceAccount,\r\n MandatoryCreditLimit: customer.MandatoryCreditLimit,\r\n CreditRating: customer.CreditRating,\r\n CreditLimit: customer.CreditLimit,\r\n Balance: customer.Balance,\r\n Blocked: customer.Blocked,\r\n BlockedType: customer.BlockedType,\r\n UseOrderNumberReference: customer.UseOrderNumberReference,\r\n OrganizationId: customer.OrganizationId,\r\n UsePurchaseRequest: customer.UsePurchaseRequest,\r\n MultilineDiscountGroup: customer.MultilineDiscountGroup,\r\n TotalDiscountGroup: customer.TotalDiscountGroup,\r\n LineDiscountGroup: customer.LineDiscountGroup,\r\n TaxGroup: customer.TaxGroup,\r\n SalesTaxGroup: customer.SalesTaxGroup,\r\n CommissionSalesGroupId: customer.CommissionSalesGroupId,\r\n TaxExemptNumber: customer.TaxExemptNumber,\r\n VatNumber: customer.VatNumber,\r\n TaxOffice: customer.TaxOffice,\r\n NonChargeableAccount: customer.NonChargeableAccount,\r\n Tag: customer.Tag,\r\n ReceiptSettings: customer.ReceiptSettings,\r\n ReceiptEmail: customer.ReceiptEmail,\r\n OptOutPersonalization: customer.OptOutPersonalization,\r\n OptOutWebActivityTracking: customer.OptOutWebActivityTracking,\r\n RetailCustomerTableRecordId: customer.RetailCustomerTableRecordId,\r\n OfflineImage: customer.OfflineImage,\r\n IsAsyncCustomer: customer.IsAsyncCustomer,\r\n NewCustomerPartyNumber: customer.NewCustomerPartyNumber,\r\n CustomerAffiliations: customer.CustomerAffiliations,\r\n Addresses: customer.Addresses,\r\n Attributes: attributes,\r\n Images: customer.Images,\r\n TitleRecordId: customer.TitleRecordId,\r\n IsFloorLimitBlocked: customer.IsFloorLimitBlocked,\r\n IsB2b: customer.IsB2b,\r\n IsB2bAdmin: customer.IsB2bAdmin,\r\n BusinessPartnerId: customer.BusinessPartnerId,\r\n Contacts: customer.Contacts,\r\n AllowOnAccountPayment: customer.AllowOnAccountPayment,\r\n ExtensionProperties: customer.ExtensionProperties\r\n };\r\n await updateAsync({ callerContext: this.props.context.actionContext }, updatePayload);\r\n if (this.redirectUri) {\r\n window.location.href = this.redirectUri;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * On Removing Preferred Store.\r\n */\r\n private readonly _removePreferredStore = async (): Promise => {\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: { cookies }\r\n }\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n await storeSelectorStateManager.clearPreferredStore(cookies.isConsentGiven());\r\n };\r\n\r\n /**\r\n * On Selecting Store for pickup.\r\n * @param storeId - Store Id.\r\n */\r\n private readonly _setSelectedStore = async (storeId: string | undefined): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n await storeSelectorStateManager.setSelectedStoreLocationId(storeId);\r\n };\r\n\r\n /**\r\n * Method to be called on search.\r\n * @param searchTerm - Search string.\r\n */\r\n private readonly _performSearch = async (searchTerm: string): Promise => {\r\n const {\r\n context: { actionContext },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (!searchTerm || !storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\r\n\r\n const location = await storeSelectorStateManager.geoLocate(searchTerm.trim() !== '' ? searchTerm : '0', actionContext);\r\n\r\n if (location) {\r\n await this._updateLocations(location.latitude, location.longitude);\r\n } else {\r\n await this._updateLocations();\r\n }\r\n\r\n this.setState({ isSearchInProgress: false });\r\n };\r\n\r\n /**\r\n * Method to be called on search term changed.\r\n * @param searchTerm - Search string.\r\n */\r\n private readonly _searchTermChanged = async (searchTerm: string): Promise => {\r\n this.setState({ searchTerm });\r\n };\r\n\r\n /**\r\n * Method to be called updating the store location.\r\n * @param showAllStores - Flag to show all stores.\r\n */\r\n private readonly _getAndUpdateStoreLocation = (showAllStores?: boolean): void => {\r\n const {\r\n config: { style },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n\r\n if (styleDefault !== styleEnum.inline && (!storeSelectorStateManager || !storeSelectorStateManager.isDialogOpen)) {\r\n // Store selector dialog isn't open yet, so don't try and update anything\r\n return;\r\n }\r\n\r\n this.setState({ isSearchInProgress: true, isSeeAllStoreValue: false });\r\n\r\n if (navigator && navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n async position => {\r\n // eslint-disable-next-line react/no-unused-state -- This state is used in the views.\r\n this.setState({ isLocationDisabled: false, isSearchInProgress: true });\r\n if (showAllStores) {\r\n this.setState({ isSeeAllStoreValue: true });\r\n await this._searchTermChanged('');\r\n await this._updateLocations(position.coords.latitude, position.coords.longitude, 0);\r\n } else {\r\n await this._updateLocations(position.coords.latitude, position.coords.longitude);\r\n }\r\n\r\n this.setState({ isSearchInProgress: false });\r\n },\r\n async error => {\r\n // If the location setting is turned off\r\n if (error.PERMISSION_DENIED) {\r\n this.setState({ isLocationDisabled: true });\r\n if (showAllStores) {\r\n this.setState({ isSeeAllStoreValue: true });\r\n await this._searchTermChanged('');\r\n await this._updateLocations(void 0, void 0, 0);\r\n } else {\r\n await this._updateLocations();\r\n }\r\n }\r\n\r\n this.setState({ isSearchInProgress: false });\r\n },\r\n { timeout: 5000 }\r\n );\r\n } else {\r\n this.setState({ isSearchInProgress: false });\r\n }\r\n };\r\n\r\n /**\r\n * Method to be called closing the store selector dialog.\r\n * @returns Void promise.\r\n */\r\n private readonly _closeDialog = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n this.setState({ searchTerm: '' });\r\n\r\n if (storeSelectorStateManager) {\r\n storeSelectorStateManager.context?.parentElementRef?.current?.focus();\r\n return storeSelectorStateManager.closeDialog();\r\n }\r\n };\r\n\r\n /**\r\n * Method to set store info.\r\n * @param orgUnitStoreInformation - Store Info Object.\r\n * @returns Void promise.\r\n */\r\n private readonly _setOrgUnitStoreInformation = async (orgUnitStoreInformation: IFullOrgUnitAvailability[]): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n },\r\n config: { style },\r\n telemetry\r\n } = this.props;\r\n\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n\r\n const context = storeSelectorStateManager.context;\r\n const id: string = context && context.id ? context.id : this.props.id;\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n await storeSelectorStateManager\r\n .setOrgUnitStoreInformation({\r\n id,\r\n showMapViewLink: context && context.showMapViewLink,\r\n parentElementRef: context?.parentElementRef,\r\n isDialog: styleDefault === styleEnum.dialog,\r\n orgUnitStoreInformation,\r\n onLocationSelected: async orgUnitLocation => {\r\n // TO-DO handle event for when location in selected\r\n return Promise.resolve();\r\n }\r\n })\r\n .catch((error: Error) => {\r\n if (telemetry) {\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to Update store location state');\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Method to update user location.\r\n * @param latitude - User location.\r\n * @param longitude - User location.\r\n * @param radius - Search Critiria Radius.\r\n * @returns Void promise.\r\n */\r\n private readonly _updateLocations = async (latitude?: number, longitude?: number, radius?: number): Promise => {\r\n const {\r\n telemetry,\r\n config: { mode, lookupRadius, style },\r\n context: { actionContext },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n const styleDefault = style !== undefined ? style : styleEnum.dialog;\r\n const calRadius = radius || radius === 0 ? radius : lookupRadius || 50;\r\n const distanceUnitValue = this.props.config.searchRadiusUnit === searchRadiusUnit.kilometers ? 1 : 0;\r\n const modeDefault = mode !== undefined ? mode : modeEnum.pickupInStore;\r\n const preferredStore: IStoreInfo | undefined = storeSelectorStateManager?.preferredStore;\r\n let lat = this.state.searchTerm || !preferredStore?.Latitude ? latitude : preferredStore.Latitude;\r\n let long = this.state.searchTerm || !preferredStore?.Longitude ? longitude : preferredStore.Longitude;\r\n if (styleDefault === styleEnum.inline) {\r\n const lastInlineStoreLocation = storeSelectorStateManager?.lastInlineShownStoreInfo;\r\n if (lastInlineStoreLocation && !this.state.searchTerm) {\r\n lat = lastInlineStoreLocation.Latitude ? lastInlineStoreLocation.Latitude : lat;\r\n long = lastInlineStoreLocation.Longitude ? lastInlineStoreLocation.Longitude : long;\r\n }\r\n await storeSelectorStateManager?.setLastInlineStoreInfo(lat, long);\r\n }\r\n\r\n if (modeDefault === modeEnum.findStores) {\r\n const orgUnitLocationsInput = new GetOrgUnitLocationsByAreaInput(\r\n lat,\r\n long,\r\n calRadius,\r\n distanceUnitValue,\r\n this.state.isLocationDisabled\r\n );\r\n\r\n const orgUnitLocations = await getOrgUnitLocationsByArea(orgUnitLocationsInput, actionContext);\r\n if (orgUnitLocations) {\r\n await this._setOrgUnitStoreInformation(orgUnitLocations);\r\n await this._setSelectedStore(undefined);\r\n }\r\n return;\r\n }\r\n\r\n if (!storeSelectorStateManager || !storeSelectorStateManager.context) {\r\n // Store selector dialog isn't open yet, so don't try and update anything\r\n return;\r\n }\r\n\r\n if (!storeSelectorStateManager.context.product) {\r\n // TODO: Use alternative search method here to not make inventory check\r\n return;\r\n }\r\n\r\n const input = new GetFullAvailableInventoryNearbyInput(\r\n storeSelectorStateManager.context.product.RecordId,\r\n lat || 0,\r\n long || 0,\r\n calRadius,\r\n distanceUnitValue,\r\n this.state.isLocationDisabled\r\n );\r\n\r\n await getFullAvailableInventoryNearby(input, actionContext).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to get full available inventory near by');\r\n });\r\n };\r\n\r\n /**\r\n * Method to called on store selected.\r\n * @param location - Store Info.\r\n * @param deliveryMode - Pickup mode.\r\n * @returns Void promise.\r\n */\r\n private readonly _onOrgUnitLocationSelected = async (location: OrgUnitLocation | undefined, deliveryMode?: string): Promise => {\r\n const {\r\n telemetry,\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager) {\r\n if (location && storeSelectorStateManager.context) {\r\n // Want to eat exceptions here so that the dialog still closes even if the onLocationSelected call goes wrong\r\n await storeSelectorStateManager.context.onLocationSelected(location, deliveryMode).catch(error => {\r\n telemetry.warning(error);\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to get on org unit location selected');\r\n });\r\n }\r\n\r\n await storeSelectorStateManager.closeDialog();\r\n }\r\n };\r\n\r\n /**\r\n * Method will list of store selector location line.\r\n * @param store -Store Info.\r\n * @param index - List index.\r\n * @param hasEnabledOutOfStockCheck -Stores List.\r\n * @param isStoreLocatorView -Module config value.\r\n * @param preferredStoreLocationId -Store Id.\r\n * @param isPreferredStoreEnabled -Stores List.\r\n * @param selectedStoreLocationId -Module config value.\r\n * @param preferredDistanceUnit -Module config value.\r\n * @param alreadySelectedLocation -Already Selected Location.\r\n * @param productPickUpOptionList -Product supported Pickup Modes List.\r\n * @returns StoreSelectorLocation Line Prop.\r\n */\r\n private _createStoreLocationList(\r\n store: IFullOrgUnitAvailability,\r\n index: number,\r\n hasEnabledOutOfStockCheck: boolean,\r\n isStoreLocatorView: boolean,\r\n preferredStoreLocationId: string,\r\n isPreferredStoreEnabled: boolean | undefined,\r\n selectedStoreLocationId: string | undefined,\r\n preferredDistanceUnit?: string | undefined,\r\n alreadySelectedLocation?: OrgUnitLocation,\r\n productPickUpOptionList?: DeliveryOption[]\r\n ): IStoreSelectorLocationLineItemProps | undefined {\r\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\r\n const selectedStoreLocation = selectedStoreLocationId;\r\n const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\r\n const lineResources = this._mapResources(this.props.resources);\r\n const storeOpenFrom: string | undefined = secondsToTime(orgUnitLocation?.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(orgUnitLocation?.OpenTo);\r\n const storeHours = store.StoreHours;\r\n\r\n if (orgUnitLocation) {\r\n ++this.storeCounter;\r\n return {\r\n location: orgUnitLocation,\r\n selectedStoreLocationId: selectedStoreLocation,\r\n storeHours,\r\n resources: lineResources,\r\n preferredDistanceUnit: preferredDistanceUnit!,\r\n isCurrentLocation: this._isCurrentLocation(orgUnitLocation, alreadySelectedLocation),\r\n isInStock: this._isProductInStock(hasEnabledOutOfStockCheck, store?.OrgUnitAvailability?.ItemAvailabilities),\r\n stockStatusLabel: this._stockInventoryLabel(store),\r\n storeLocatorView: isStoreLocatorView,\r\n index: this.storeCounter.toString(),\r\n preferredStoreLocationId,\r\n isPreferredStoreEnabled,\r\n telemetryContent: this.telemetryContent,\r\n isLocationDisabled: this.state.isLocationDisabled,\r\n storePickUpOptionList: deliveryOptions?.DeliveryOptions,\r\n productPickUpOptionList,\r\n locationOpen: { openFrom: storeOpenFrom, openTo: storeOpenTo },\r\n storeHoursList: storeHours?.RegularStoreHours ? buildStoreHours(storeHours.RegularStoreHours, lineResources) : [],\r\n onClick: this._setSelectedStore,\r\n handlers: {\r\n onSelected: this._onOrgUnitLocationSelected,\r\n onSetAsPreferredStore: this._setPreferredStore,\r\n onRemovePreferredStore: this._removePreferredStore\r\n }\r\n };\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Method to map resources with Location Item.\r\n * @param resources - List of strings for module.\r\n * @returns Resources for StoreSelector location line.\r\n */\r\n private readonly _mapResources = (resources: ICzStoreSelectorResources): IStoreSelectorLocationLineItemResources => {\r\n return {\r\n contactInfoHeader: resources.contactText,\r\n storeHoursHeader: resources.timeText,\r\n availabilityInfoHeader: resources.availabilityText,\r\n\r\n closedText: resources.storeHoursClosedText,\r\n outOfStock: resources.outOfStockText,\r\n inStock: resources.inStockText,\r\n\r\n currentLocation: resources.selectedStoreLocationText,\r\n selectLocation: resources.selectStoreText,\r\n selectLocationAriaLabelFormat: resources.selectStoreAriaFormatText,\r\n setAsPreferredStoreText: resources.setAsPreferredStoreText,\r\n setAsPreferredStoreTextAriaLabel: resources.setAsPreferredStoreTextAriaLabel,\r\n preferredStoreText: resources.preferredStoreText,\r\n preferredStoreAriaLabel: resources.preferredStoreAriaLabel,\r\n\r\n days: {\r\n monday: resources.storeHoursMondayText,\r\n tuesday: resources.storeHoursTuesdayText,\r\n wednesday: resources.storeHoursWednesdayText,\r\n thursday: resources.storeHoursThursdayText,\r\n friday: resources.storeHoursFridayText,\r\n saturday: resources.storeHoursSaturdayText,\r\n sunday: resources.storeHoursSundayText,\r\n mondayFull: resources.storeHoursMondayFullText,\r\n tuesdayFull: resources.storeHoursTuesdayFullText,\r\n wednesdayFull: resources.storeHoursWednesdayFullText,\r\n thursdayFull: resources.storeHoursThursdayFullText,\r\n fridayFull: resources.storeHoursFridayFullText,\r\n saturdayFull: resources.storeHoursSaturdayFullText,\r\n sundayFull: resources.storeHoursSundayFullText\r\n }\r\n };\r\n };\r\n\r\n private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined, selectedLocation?: OrgUnitLocation): boolean =>\r\n (selectedLocation && location && selectedLocation.OrgUnitNumber === location.OrgUnitNumber) || false;\r\n\r\n /**\r\n * Method to get stock.\r\n * @param hasEnableOutOfStockCheck - Config to check for stock check enabled.\r\n * @param itemAvailabilities - Item quantity availablity.\r\n * @returns Boolean value for item stock.\r\n */\r\n private readonly _isProductInStock = (\r\n hasEnableOutOfStockCheck: boolean,\r\n itemAvailabilities: ItemAvailability[] | undefined\r\n ): boolean => {\r\n if (!hasEnableOutOfStockCheck) {\r\n return true;\r\n }\r\n const quantityCount = 0;\r\n if (ArrayExtensions.hasElements(itemAvailabilities)) {\r\n return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > quantityCount : false;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n /**\r\n * Method to get stocklevel label.\r\n * @param isInStock - Stock available in store.\r\n * @returns Label for stock status.\r\n */\r\n private readonly _stockInventoryLabel = (isInStock: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n if (isInStock?.ProductInventoryInformation && ArrayExtensions.hasElements(isInStock.ProductInventoryInformation)) {\r\n for (let index = 0; index < isInStock.ProductInventoryInformation.length; index++) {\r\n if (\r\n isInStock.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\r\n isInStock.ProductInventoryInformation[index].InventLocationId\r\n ) {\r\n return isInStock.ProductInventoryInformation[index].StockLevelLabel;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n private readonly checkRedirectUriAvailable = () => {\r\n if (window && window.location && window.location.href) {\r\n const params = new URLSearchParams(this.props.context.request.url.requestUrl.search);\r\n if (params.has('redirectUri')) {\r\n this.redirectUri = params.get('redirectUri');\r\n } else {\r\n const request = this.props.context.request;\r\n let homePageUrl = request.url.requestUrl.origin;\r\n if (request.sitePath) {\r\n homePageUrl = homePageUrl + request.sitePath;\r\n }\r\n this.redirectUri = `${homePageUrl}/homepage`;\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport default StoreSelector;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IStoreSelectorViewProps } from './cz-store-selector';\r\n\r\nconst StoreSelectorView: React.FC = props => {\r\n const {\r\n BodyContainerProps,\r\n FooterContainerProps,\r\n HeaderContainerProps,\r\n HeaderProps,\r\n ModuleProps,\r\n\r\n // HeaderText,\r\n locationsMessage,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n terms\r\n } = props;\r\n\r\n return (\r\n \r\n {HeaderProps}\r\n \r\n {locationsMessage}\r\n {search}\r\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\r\n \r\n {terms}\r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountGenericTileViewProps } from '@msdyn365-commerce-modules/account-management';\r\nconst AccountGenericTileView: React.FC = props => {\r\n const { AccountGenericTile, heading, links } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n

View or Edit Profile

\r\n {links}\r\n
\r\n );\r\n};\r\n\r\nexport default AccountGenericTileView;\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 classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IBreadcrumbViewProps } from '@msdyn365-commerce-modules/breadcrumb/src/modules/breadcrumb/breadcrumb';\r\n\r\nconst BreadCrumbView: React.FC = props => {\r\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem } = props;\r\n if (!root && !links && !backButton) {\r\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n {root &&\r\n \r\n {root}\r\n {links && |}\r\n }\r\n {backButton &&\r\n \r\n {backButton}\r\n }\r\n {links && links.map((link, index) => (\r\n \r\n \r\n {link}\r\n {links[index + 1] && |}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default BreadCrumbView;\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 { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * ICartIconData: Interface for Cart Icon Data.\r\n */\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\n/**\r\n * ICartIconComponentProps: Interface for Cart Icon component props.\r\n */\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\n/**\r\n * ICartIconComponent: Interface for Cart Icon component.\r\n */\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, cartQtyLabel, data: { cart } } = props;\r\n const defaultCartItemCount: number = 0;\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n let cartItem = defaultCartItemCount;\r\n\r\n if (cart) {\r\n cartItem = cart.hasInvoiceLine ? defaultCartItemCount : cart.totalItemsInCart;\r\n }\r\n\r\n let qtyLabel: string = '';\r\n const cartMaxQuantity: number = 99;\r\n const maxQuantityLabel: string = '99+';\r\n if (cartItem > cartMaxQuantity) {\r\n qtyLabel = maxQuantityLabel;\r\n } else {\r\n qtyLabel = format(cartQtyLabel, cartItem);\r\n }\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {qtyLabel}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// @ts-expect-error -- Compatible issue with the component override.\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\nexport default CartIconComponent;\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 { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * ICartIconData: Interface for Cart Icon Data.\r\n */\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\n/**\r\n * ICartIconComponentProps: Interface for Cart Icon component props.\r\n */\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\n/**\r\n * ICartIconComponent: Interface for Cart Icon component.\r\n */\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, cartQtyLabel, data: { cart } } = props;\r\n const defaultCartItemCount: number = 0;\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n let cartItem = defaultCartItemCount;\r\n\r\n if (cart) {\r\n cartItem = cart.hasInvoiceLine ? defaultCartItemCount : cart.totalItemsInCart;\r\n }\r\n\r\n let qtyLabel: string = '';\r\n const cartMaxQuantity: number = 99;\r\n const maxQuantityLabel: string = '99+';\r\n if (cartItem > cartMaxQuantity) {\r\n qtyLabel = maxQuantityLabel;\r\n } else {\r\n qtyLabel = format(cartQtyLabel, cartItem);\r\n }\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {qtyLabel}\r\n
\r\n \r\n );\r\n});\r\n\r\n// @ts-expect-error -- Compatible issue with the component override.\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\nexport default CartIconComponent;\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 { IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, format, getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * IPromoCodeProps: Interface for promo code component.\r\n */\r\nexport interface IPromoCodeProps extends IComponentProps<{}> {\r\n cart: ICartState | undefined;\r\n promoCodeHeadingText: string;\r\n appliedPromoCodeHeadingText: string;\r\n removePromoAriaLabelFormat: string;\r\n promoPlaceholderText: string;\r\n promoCodeApplyButtonText: string;\r\n collapseTimeOut: number;\r\n removePromoText: string;\r\n invalidPromoCodeErrorText: string;\r\n failedToAddPromoCodeErrorText: string;\r\n duplicatePromoCodeErrorText: string;\r\n failedToRemovePromoCodeErrorText: string;\r\n\r\n /** The telemetry content. */\r\n telemetryContent?: ITelemetryContent;\r\n promoCodeApplyCallback?(): void;\r\n}\r\n\r\n/**\r\n * IPromoCodeProps: Interface for promo code component.\r\n */\r\nexport interface IPromoCodeComponent extends IComponent { }\r\n\r\n/**\r\n * IPromoCodeProps: Interface for promo code state.\r\n */\r\ninterface IPromoCodeState {\r\n promoCodeInputValue: string;\r\n error: string;\r\n canApply: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass PromoCode extends React.PureComponent {\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n public constructor(props: IPromoCodeProps) {\r\n super(props);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\r\n this.state = {\r\n promoCodeInputValue: '',\r\n error: '',\r\n canApply: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n
\r\n {this.props.promoCodeHeadingText}\r\n
\r\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\r\n

\r\n {this.state.error}\r\n

\r\n {this._renderAppliedPromoCode(this.props)}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * On input change method.\r\n * @param event - Change event.\r\n */\r\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\r\n const error = event.target.value === '' ? '' : this.state.error;\r\n this.setState({\r\n promoCodeInputValue: event.target.value, error,\r\n canApply: !!event.target.value\r\n });\r\n };\r\n\r\n /**\r\n * Apply promo code method.\r\n * @param cartState - Cart state interface.\r\n */\r\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\r\n if (!cartState) {\r\n return;\r\n }\r\n const appliedPromo = this.state.promoCodeInputValue;\r\n\r\n cartState.addPromoCode({ promoCode: appliedPromo })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n // Show success text\r\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\r\n } else if (result.substatus === 'ALREADYADDED') {\r\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\r\n } else {\r\n this.setState({ error: this.props.invalidPromoCodeErrorText });\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\r\n });\r\n };\r\n\r\n /**\r\n * On submit action.\r\n * @param cartState - Cart state.\r\n * @returns Apply promotion.\r\n */\r\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\r\n event.preventDefault();\r\n this._applyPromotion(cartState);\r\n };\r\n\r\n /**\r\n * On apply promotion.\r\n * @param cartState - Cart state.\r\n * @returns Apply promotion.\r\n */\r\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\r\n this._applyPromotion(cartState);\r\n };\r\n\r\n /**\r\n * Renders promo code form.\r\n * @param promoPlaceholderText - Promo code input box placeholder string.\r\n * @param promoCodeApplyButtonText - Promo code button text string.\r\n * @param cartState - Cart state interface.\r\n * @returns Promo code form.\r\n */\r\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\r\n\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * Remove promo code method.\r\n * @param cartState - Cart state interface.\r\n * @param event - Mouse event.\r\n */\r\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\r\n if (!cartState) {\r\n return;\r\n }\r\n const code = event.currentTarget.getAttribute('data-value') ?? '';\r\n cartState.removePromoCodes({\r\n promoCodes: [code]\r\n })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\r\n });\r\n\r\n };\r\n\r\n /**\r\n * Renders applied promo code form.\r\n * @param props - Promo code component props.\r\n * @returns Applied promo code.\r\n */\r\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\r\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\r\n return;\r\n }\r\n\r\n /**\r\n * On remove promotion action.\r\n * @param event - Mouse event.\r\n */\r\n const removePromotionHandler = (event: React.MouseEvent) => {\r\n this._removePromotion(props.cart, event);\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n props.cart.cart.Coupons.map((coupon: Coupon) => {\r\n const ariaLabel = props.removePromoAriaLabelFormat ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code) : '';\r\n\r\n return (\r\n
\r\n
\r\n {'Code '}\r\n \r\n {coupon.Code}\r\n \r\n {'Applied '}\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 PromoCode;\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 {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHeader,\r\n IList,\r\n IOrderHistoryViewProps,\r\n IOrderInformation,\r\n ISalesOrder\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IGridSettings, IImageSettings, Image, IRequestContext } from '@msdyn365-commerce/core';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { SalesLineState } from '@msdyn365-commerce-modules/order-management/src/common/sales-line-state';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount,\r\n channelReferenceId\r\n }) => (\r\n \r\n {channelName}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {channelReferenceId}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroupDelivery: React.FC = ({\r\n deliveryProps,\r\n heading,\r\n count,\r\n processing,\r\n address,\r\n trackingInfo\r\n }) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\ninterface IGroup2 extends IGroup {\r\n moduleProps: any;\r\n}\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines, moduleProps }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\ninterface IGroups2 extends IGroups {\r\n moduleProps: any;\r\n}\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups, moduleProps }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\r\n \r\n {heading}\r\n {orderCountLabel}\r\n {extraActions}\r\n \r\n);\r\ninterface ISalesOrder2 extends ISalesOrder {\r\n moduleProps: any;\r\n}\r\nexport const OrderHistorySalesOder: React.FC = ({\r\n salesOrderProps,\r\n orderInfomation,\r\n groups,\r\n orderDetailsLink,\r\n expandProductsButton,\r\n moduleProps\r\n }) => (\r\n \r\n {orderInfomation && }\r\n {groups && }\r\n {expandProductsButton}\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\ninterface IList2 extends IList {\r\n moduleProps: any;\r\n}\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders, moduleProps }) => (\r\n \r\n {salesOrders &&\r\n salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n table,\r\n moreButton\r\n }) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n {alert}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n \r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {table}\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nconst SalesLineImageComponent: (props: any) => false | any = (props: any) => {\r\n const productName = props.data.product?.Name ?? props.data.salesLine.Description;\r\n const requestContext = props.moduleProps.moduleProps.context.actionContext.requestContext;\r\n const fallbackImageUrl = getFallbackImageUrl(props.data.product?.ItemId, requestContext.apiSettings);\r\n return getSalesLineImage(\r\n 'ms-order-history',\r\n requestContext,\r\n productName,\r\n props.data.product,\r\n fallbackImageUrl,\r\n requestContext.gridSettings!,\r\n props.moduleProps.moduleProps.config.imageSettings,\r\n props.data.salesLineState,\r\n props.data.salesLine\r\n );\r\n};\r\n\r\nconst getSalesLineImage = (\r\n moduleName: string,\r\n requestContext: IRequestContext,\r\n productName: string | undefined,\r\n product: SimpleProduct | undefined,\r\n fallbackImageUrl: string | undefined,\r\n gridSettings: IGridSettings,\r\n imageSettings: IImageSettings | undefined,\r\n salesLineState?: SalesLineState,\r\n salesLine?: any\r\n) => {\r\n let productUrl = product?.PrimaryImageUrl ?? '';\r\n if (salesLine.ExtensionProperties && salesLine.ExtensionProperties.length > 0) {\r\n const imageUrl = salesLine.ExtensionProperties.find((e: any) => {\r\n return e.Key === 'AAA_RETAILIMAGEURL';\r\n });\r\n if (imageUrl && imageUrl.Value && imageUrl.Value.StringValue) {\r\n productUrl = imageUrl.Value.StringValue;\r\n }\r\n }\r\n return (\r\n !salesLineState?.isHidden && (\r\n
\r\n \r\n
\r\n )\r\n );\r\n};\r\n\r\nexport default OrderHistoryView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Interface for OrderTemplateImage.\r\n */\r\ninterface IOrderTemplateImage {\r\n props: {\r\n children: React.ReactElement[];\r\n };\r\n}\r\n\r\n/**\r\n * To render order template.\r\n * @param orderTemplate - The order template view props.\r\n * @param orderTemplateNodeProps - The order template node props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\r\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\r\n\r\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\r\n const currentImageListLength = orderTemplateImageElement.props.children.length;\r\n const defaultNumberImagesInTile = 4;\r\n\r\n if (currentImageListLength < defaultNumberImagesInTile) {\r\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\r\n orderTemplateImageElement.props.children.push();\r\n }\r\n }\r\n\r\n return (\r\n \r\n {orderTemplateName}\r\n {orderTemplateImage}\r\n {addToCartButton}\r\n {removeButton}\r\n {orderTemplateStatusMessage}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Order Template List View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nexport const OrderTemplateListViewComponent: React.FC> = props => {\r\n const {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\r\n OrderTemplateList, OrderTemplates, OrderTemplate,\r\n status,\r\n statusMessage,\r\n heading,\r\n orderTemplates,\r\n createOrderTemplateButton,\r\n templateHeaderStatusMessage\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {status !== 'SUCCESS' && statusMessage}\r\n \r\n {status === 'SUCCESS' &&\r\n (!OrderTemplates || !orderTemplates ||\r\n !ArrayExtensions.hasElements(orderTemplates)) ? (\r\n
\r\n

\r\n {props.resources.headingForEmptyOrderTemplateList}\r\n

\r\n

\r\n {props.resources.textForEmptyOrderTemplateList}\r\n

\r\n {createOrderTemplateButton}\r\n
\r\n ) : createOrderTemplateButton}\r\n {templateHeaderStatusMessage}\r\n
\r\n { OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) &&\r\n \r\n {orderTemplates.map((orderTemplate) => {\r\n return renderOrderTemplate(orderTemplate, OrderTemplate);\r\n })}\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderTemplateListViewComponent;\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 { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\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 { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \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 handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\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 { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\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 IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const RetailB2BEcommerceFeatureState = this.props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailB2BEcommerceFeature'\n );\n if (\n !this.props.context.request.params.isEditor &&\n (!RetailB2BEcommerceFeatureState?.IsEnabled || !this.props.data.customerInformation.result?.IsB2b)\n ) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\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 { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\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 IPasswordResetButton {\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 PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\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 IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\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 IPasswordResetInputProps {\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 IPasswordResetInput {\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 PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\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 IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\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 IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\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 IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\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 { PasswordRegex } 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 PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: 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: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.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(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): 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 passwordReset: {\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 && (\n \n ),\n passwordResetLocalAccount: 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 // 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 // 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((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\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 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(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\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\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\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 PasswordReset;\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 { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: 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: IPasswordResetItem) => {\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 PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\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 { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks 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: ILinksData[]): 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 btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\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, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: image?.imageSettings\n };\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n const contentBlockImage = (\n \n );\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className)\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n
\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\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 { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\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 { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\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 { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\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 { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\n\n/**\n * B2b Request status View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\nconst B2bRequestsStatusView: React.FC> = props => {\n const { b2bRequestsStatus, heading, table } = props;\n const { continueShoppingButtonTitle } = props.resources;\n const initialCount = 0;\n\n if (props.data.operationRequests.result?.length === initialCount) {\n return (\n \n {heading}\n \n
\n

{props.resources.headingForEmptyRequestStatus}

\n

{props.resources.textForEmptyRequestStatus}

\n \n \n {continueShoppingButtonTitle}\n \n \n
\n
\n
\n );\n }\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\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 { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\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 IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n"],"names":["PickUpOptionList","React","constructor","props","super","_onSelect","async","e","preventDefault","deliveryCode","currentTarget","getAttribute","length","this","onChange","_rendeDeliveryOptions","bind","_pickupListOptionMenu","state","expandSiteOptions","render","pickupListOptionMenuText","pickupmodeList","className","onClick","role","ref","map","delivery","key","Code","tabIndex","Description","expandSiteOptionsState","setState","StorePickUpOptionList","isExpandOptionsState","isFilterExpanded","event","selectedPickupMode","_onKeyDown","_storePickupListOptionMenu","_productPickupModeLis","productPickupListOptionMenuText","productPickupModeList","selectedPickupModeDesc","find","undefined","onKeyDown","StoreSelectorLocationLineItemComponentActions","onLocationSelected","deliveryMode","handlers","onSelected","location","onSetAsPreferredStore","OrgUnitNumber","onRemovePreferredStore","onPickupInStoreClickHandler","onPickupModeSelectHandler","pickupMode","onSetPreferredStoreClickHandler","removePreferredStoreHandler","onChangeHandler","Promise","resolve","matchDeliveryOptions","productdeliveryOptions","storePickUpOptionList","deliveryOption","pickup","_delivery","push","StoreSelectorLocationLineItemComponent","hideStockStatus","isCurrentLocation","isInStock","resources","stockStatusLabel","storeLocatorView","index","preferredStoreLocationId","isPreferredStoreEnabled","isLocationDisabled","telemetryContent","productPickUpOptionList","storeName","OrgUnitName","distanceAsString","buildDistanceString","distance","preferredDistanceUnit","Math","floor","Distance","storeAddress","Address","email","contacts","allEmailContacts","filter","contact","ContactTypeValue","IsPrivate","primaryEmailContact","IsPrimary","Locator","extractEmail","Contacts","resourceLabel","inStock","outOfStock","stockLabel","stockText","canSelectLocation","pickupInStoreButtonText","selectLocation","pickupInStoreAriaLabel","selectLocationAriaLabelFormat","replace","isPreferredStore","payLoad","getPayloadObject","TelemetryConstant","PickupInStore","attributes","getTelemetryAttributes","contentAction","etext","PreferredStore","preferredStoreAttr","RemovePreferredStore","RemovePreferredStoreAttr","deliveryOptionList","Object","assign","preferredStoreAriaLabel","preferredStoreText","setAsPreferredStoreTextAriaLabel","setAsPreferredStoreText","availabilityInfoHeader","currentLocation","renderPickupModes","filteredPickupMode","StoreSelectorLocationLines","onClickHandler","orgUnitLocation","_scrollIntoView","selectedLocationDiv","selectedLocationRef","current","parent","parentElement","scrollTop","offsetTop","clientHeight","_isCurrentLocation","alreadySelectedLocation","_isProductInStock","ItemAvailabilities","enableOutOfStockCheck","AvailableQuantity","_stockInventoryLabel","availabilityWithHours","ProductInventoryInformation","i","_availabilityWithHour","_availabilityWithHour2","OrgUnitAvailability","OrgUnitLocation","InventoryLocationId","InventLocationId","StockLevelLabel","_mapResources","contactInfoHeader","contactText","storeHoursHeader","timeText","availabilityText","closedText","storeHoursClosedText","outOfStockText","inStockText","selectedStoreLocationText","selectStoreText","selectStoreAriaFormatText","days","monday","storeHoursMondayText","tuesday","storeHoursTuesdayText","wednesday","storeHoursWednesdayText","thursday","storeHoursThursdayText","friday","storeHoursFridayText","saturday","storeHoursSaturdayText","sunday","storeHoursSundayText","mondayFull","storeHoursMondayFullText","tuesdayFull","storeHoursTuesdayFullText","wednesdayFull","storeHoursWednesdayFullText","thursdayFull","storeHoursThursdayFullText","fridayFull","storeHoursFridayFullText","saturdayFull","storeHoursSaturdayFullText","sundayFull","storeHoursSundayFullText","storeCounter","componentDidUpdate","prevProps","selectedStoreLocationId","componentDidMount","locations","_stores","_sortStores","classnames","show","displayList","store","_renderStoreLocation","_store$OrgUnitAvailab","deliveryOptions","OrgUnitPickUpDeliveryModes","_store$OrgUnitAvailab2","selected","ArrayExtensions","hasElements","storeHours","StoreHours","toString","DeliveryOptions","productPickUpDeliveryOptions","stores","value","_value$OrgUnitAvailab","_value$OrgUnitAvailab2","__decorate","observable","observer","StoreSelectorSearchForm","searchBoxRef","_handleKeyPressPrev","keyCode","KeyCodes","Enter","Space","onShowAllStores","_searchTextChanged","inputValue","target","searchTermChanged","_onSubmit","_this$searchBoxRef$cu","blur","performSearch","_onChangeHandler","filterPickupModeSelected","renderPickupModesList","toggleButtonText","pickupFilterMenuHeading","locatorView","pickupFilterByHeading","hasEnabledPickupFilterToShowStore","onToggleListMapViewState","toggleMapViewAttributes","SearchStore","storeSearchAttributes","ShowAllStore","showAllStoreAttributes","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","seeAllStoresText","viewListText","viewMapText","id","isMapDisabled","showAllStores","name","autoComplete","onSubmit","type","searchInputAriaLabel","placeholder","color","onKeyUp","StoreSelectorEmptyMessage","_ref","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","_ref2","link","requestContext","onTextChange","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","Msdyn365","editProps","StoreSelectorFoundLocationsMessage","_ref3","searchRadius","isSeeAllStore","storeCountMessage","milesShortText","storeCountMessageInKm","storeAllCountMessage","secondsToTime","seconds","hours","ampm","divisorForMinutes","getShortTimeString","day","getFullTimeString","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","dateForLookup","get","buildStoreHoursString","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","mode","searchRadiusUnit","style","StoreSelector","redirectUri","getJewelerInfo","context","actionContext","user","isAuthenticated","customerAccountNumber","jewelerInfo","readAsync","callerContext","handleLinkTextChange","config","termsOfServiceLink","handleHeadingChange","heading","onShowAllStoresHandler","_getAndUpdateStoreLocation","onFilteredPickupMode","_attachMapAutoSuggest","autoSuggestOptions","telemetry","channel","data","storeSelectorStateManager","result","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","_objectSpread","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","debug","credentials","BingMapsApiKey","_searchTermChanged","formattedSuggestion","_performSearch","_setPreferredStore","_preferedStore$OrgUni","_preferedStore$OrgUni2","_preferedStore$OrgUni3","_preferedStore$OrgUni4","_preferedStore$OrgUni5","_preferedStore$OrgUni6","storeId","cookies","storeLocations","availabilitiesWithHours","modeEnum","pickupInStore","findStores","preferedStore","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","customer","Attributes","stockistAttributeIndex","findIndex","a","stockistAttributeName","Name","_preferedStore$OrgUni7","_preferedStore$OrgUni8","stockistAttribute","AttributeValue","StringValue","_preferedStore$OrgUni9","_preferedStore$OrgUni10","DataTypeValue","KeyName","RecordId","stockistAttributeRecordId","ExtensionProperties","NameTranslations","updatePayload","AccountNumber","CreatedDateTime","ChargeGroup","PriceGroup","IsCustomerTaxInclusive","Phone","PhoneRecordId","PhoneExt","Cellphone","Email","EmailRecordId","Url","UrlRecordId","PersonNameId","FirstName","MiddleName","LastName","DirectoryPartyRecordId","PartyNumber","CustomerTypeValue","Language","CustomerGroup","CurrencyCode","CNPJCPFNumber","IdentificationNumber","InvoiceAccount","MandatoryCreditLimit","CreditRating","CreditLimit","Balance","Blocked","BlockedType","UseOrderNumberReference","OrganizationId","UsePurchaseRequest","MultilineDiscountGroup","TotalDiscountGroup","LineDiscountGroup","TaxGroup","SalesTaxGroup","CommissionSalesGroupId","TaxExemptNumber","VatNumber","TaxOffice","NonChargeableAccount","Tag","ReceiptSettings","ReceiptEmail","OptOutPersonalization","OptOutWebActivityTracking","RetailCustomerTableRecordId","OfflineImage","IsAsyncCustomer","NewCustomerPartyNumber","CustomerAffiliations","Addresses","Images","TitleRecordId","IsFloorLimitBlocked","IsB2b","IsB2bAdmin","BusinessPartnerId","AllowOnAccountPayment","updateAsync","window","href","_removePreferredStore","clearPreferredStore","_setSelectedStore","setSelectedStoreLocationId","searchTerm","isSearchInProgress","isSeeAllStoreValue","geoLocate","trim","_updateLocations","latitude","longitude","styleEnum","dialog","inline","isDialogOpen","navigator","geolocation","getCurrentPosition","position","coords","error","PERMISSION_DENIED","timeout","_closeDialog","_storeSelectorStateMa","_storeSelectorStateMa2","_storeSelectorStateMa3","parentElementRef","focus","closeDialog","_setOrgUnitStoreInformation","styleDefault","setOrgUnitStoreInformation","showMapViewLink","isDialog","orgUnitStoreInformation","catch","message","radius","lookupRadius","calRadius","distanceUnitValue","kilometers","modeDefault","preferredStore","lat","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByArea","product","input","GetFullAvailableInventoryNearbyInput","getFullAvailableInventoryNearby","warning","_onOrgUnitLocationSelected","selectedLocation","hasEnableOutOfStockCheck","itemAvailabilities","_isInStock$OrgUnitAva","_isInStock$OrgUnitAva2","checkRedirectUriAvailable","params","URLSearchParams","request","url","requestUrl","search","has","homePageUrl","origin","sitePath","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$stor3","autoSuggestionEnabled","setTimeout","reaction","_this$props$data$stor","_this$props$data$stor2","BingMapsEnabled","_this$props$data$stor4","_this$props$context","_this$props$context$a","_this$props$context$a2","_this$props$context$a3","loadMapApi","lang","locale","market","then","_this$props$data$stor5","_this$props$data$stor6","_this$props$context2","_this$props$context2$","_this$props$context2$2","_this$props$context2$3","when","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$stor10","isSameContext","shouldComponentUpdate","nextProps","_storeSelectorStateMa4","_preferredStore","_storeSelectorStateMa5","_storeSelectorStateMa6","_storeSelectorStateMa7","_storeSelectorStateMa8","_preferredStore2","_storeSelectorStateMa9","_storeSelectorStateMa10","setAsPreferredStore","enablePickupFilterToShowStore","app","appConfig","inlineView","hideInventory","listMapViewState","showLocationView","isMapModuleLoaded","StoreSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","storeSelectorHeaderText","kilometersShortText","preferredLocationId","StoreId","locationsList","sortLocation","stockist","attr","stockistInfo","loc","StoreName","enableOutofStock","enableStockCheck","locationListProps","_getStoreLocationListProps","viewProps","ModuleProps","tag","Modal","moduleProps","classname","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","HeaderContainerProps","ModalHeader","HeaderProps","text","onEdit","FooterContainerProps","ModalFooter","BodyContainerProps","ModalBody","locationsMessage","spinner","outOfStockThreshold","noLocationsMessage","terms","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","renderView","hasEnabledOutOfStockCheck","isStoreLocatorView","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","storeOpenFrom","OpenFrom","storeOpenTo","OpenTo","_store$OrgUnitAvailab4","locationOpen","openFrom","openTo","RegularStoreHours","Module","Node","AccountGenericTile","links","root","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","CartIcon","cartLabel","cartQtyLabel","cart","cartItem","hasInvoiceLine","totalItemsInCart","qtyLabel","format","label","visibility","title","CartIconComponent","msdyn365Commerce","createComponentOverride","component","PromoCode","_onInputChangeHandler","promoCodeInputValue","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","promoCode","status","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","failedToAddPromoCodeErrorText","_onSubmitHandler","applyPromotionHandler","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","Button","disabled","_removePromotion","_event$currentTarget$","code","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","removePromotionHandler","coupon","removePromoAriaLabelFormat","removePromoText","ApplyPromoCode","promoCodeHeadingText","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","salesLinesProps","salesLines","salesLine","LineId","SalesLineImageComponent","OrderHistoryGroups","_ref4","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","_props$data$product$N","_props$data$product","_props$data$product2","productName","fallbackImageUrl","getFallbackImageUrl","ItemId","apiSettings","getSalesLineImage","gridSettings","imageSettings","salesLineState","moduleName","_product$PrimaryImage","productUrl","PrimaryImageUrl","imageUrl","Key","Value","isHidden","Image","altText","src","fallBackSrc","loadFailureBehavior","_ref8","orderHistoryProps","header","alert","loading","emptyMessage","backToShoppingLink","list","table","moreButton","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","_mapEditableLinks","linkdata","editableLinks","forEach","additionalProperties","AccountLoyaltyTile","linkIndex","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","description","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","toFixed","LinksComponent","DescriptionComponent","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","_this$props$data$feat","_this$props$data$cust","RetailB2BEcommerceFeatureState","featureState","isEditor","IsEnabled","customerInformation","accountOrderTemplatesTileDescription","orderTemplatesCount","errorClassName","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","pattern","forId","htmlFor","PasswordReset","moduleClassName","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","obj","ID","toLowerCase","newPasswordRegex","PAT","reenterPasswordRegex","verifying_blurb","loadingMessage","PasswordRegex","defaultRegex","source","nextState","viewState","isShowLoading","passwordReset","modal","modalBody","icon","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","defaultAADConainer","display","aadConainer","passwordResetLocalAccount","_renderLocalAccount","localAccount","items","_renderInput","newPasswordLabelText","confirmPasswordLabelText","errorMessage","PasswordResetErrorComponent","passwordEntryMismatchError","requiredFieldMissingError","fieldIncorrectError","buttonsWrapper","buttons","PasswordResetButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","labelText","wrapper","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","item","button","LocalAccount","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","ctaLink","renderLinks","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","btnClass","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","paragraph","_heading$tag","_this$props$context$r","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","imageProps","contentBlockLinks","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockviewProps","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","renderAdditionalContent","_additionalContent$ad","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","buildReviewCard","cardProps","rating","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","modalHeader","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInUrl","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","URL","redirectUrl","searchParameters","searchParams","set","fieldName","StringExtensions","isNullOrWhitespace","toLocaleLowerCase","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","isNullOrEmpty","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","EmailRegex","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","headingTag","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","orderNumberInput","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","_props$data$operation","b2bRequestsStatus","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","SummaryForm","formProps","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerSince","accountCredit","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","isReady"],"sourceRoot":""}