{"version":3,"file":"static/js/14.fcadfef70e63f72ec667.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/map-custom/map-custom.tsx?7be2","webpack://Msdyn365.Commerce.Online/./src/modules/map-custom/map-custom.view.tsx?fdae","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-generic-tile.view.tsx?19d2","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/breadcrumb.view.tsx?b054","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/checkout-delivery-options.view.tsx?3e8c","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/product-specification.view.tsx?ddc2","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/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/check-in-for-pickup/check-in-confirmation.tsx?406f","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-error.tsx?e789","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.tsx?8686","webpack://Msdyn365.Commerce.Online/./src/modules/check-in-for-pickup/check-in-for-pickup.view.tsx?bd7a","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-details.view.tsx?1ce1","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-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?3609","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/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.tsx?78cb","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.view.tsx?1b00","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/b2b-requests-status.view.tsx?de3b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-history.view.tsx?692d","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.categorysuggest.tsx?6bcf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.mobile.empty.tsx?ff32","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.form.tsx?d41a","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.keywordsuggest.tsx?2724","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/search.productsuggest.tsx?6616","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/search.view.tsx?bfa7","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/sign-in.view.tsx?048a"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n// tslint:disable:no-reference\r\n/// \r\n\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport classname from 'classnames';\r\nimport { reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IStoreInfo } from '@msdyn365-commerce-modules/bopis-utilities';\r\n\r\nimport { IMapCustomData } from './map-custom.data';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { IMapCustomProps, IMapCustomResources, IPushpinOptionsData } from './map-custom.props.autogenerated';\r\n\r\n/**\r\n * Header Interface.\r\n */\r\nexport interface IHeader {\r\n headerProps: INodeProps;\r\n heading: React.ReactNode;\r\n}\r\n/**\r\n * MapViewProps Interface.\r\n */\r\nexport interface IMapViewProps extends IMapCustomProps {\r\n ModuleProps: IModuleProps;\r\n Header: IHeader;\r\n MapProps: INodeProps;\r\n Map: Microsoft.Maps.Map | undefined;\r\n}\r\n\r\nenum StoreType {\r\n VenchiStore,\r\n Retailer\r\n}\r\n\r\ninterface PushpinData {\r\n pushpin: Microsoft.Maps.Pushpin;\r\n storeType: StoreType;\r\n index: number;\r\n}\r\n\r\n/**\r\n *\r\n * Map component.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass Map extends React.PureComponent> {\r\n private map: Microsoft.Maps.Map | undefined;\r\n private clusterLayer: Microsoft.Maps.ClusterLayer | undefined;\r\n private pushpinMap: globalThis.Map = new globalThis.Map();\r\n private selectedPushPin: PushpinData | undefined = undefined;\r\n private clusterClickHandler: Microsoft.Maps.IHandlerId | undefined = undefined;\r\n private cachedLastInlineShownStoreInfo: IStoreInfo | undefined;\r\n private cachedOrgUnitFoundCount: number = 0;\r\n //TODO finire sviluppo\r\n // public previousPositionUser = undefined;\r\n\r\n private readonly mapRef: React.RefObject = React.createRef();\r\n\r\n public constructor(props: IMapCustomProps) {\r\n super(props);\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 } = this.props;\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?.isMapApiLoaded) {\r\n this._initMap();\r\n this._updateMapForOrgUnitChanges();\r\n }\r\n\r\n when(\r\n () => !!this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded,\r\n () => {\r\n this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded(true);\r\n }\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 reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\r\n () => {\r\n this._initMap();\r\n }\r\n );\r\n\r\n // reaction(\r\n // () => {\r\n // return [\r\n // this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\r\n // this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\r\n // this.map\r\n // ];\r\n // },\r\n // () => {\r\n // this._updateMap();\r\n // }\r\n // );\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\r\n () => {\r\n this._updateMapForOrgUnitChanges();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\r\n () => {\r\n this._updateMapForSelectedStore();\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n config: { heading, className },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n const shouldDisplayMap = storeSelectorStateManager?.listMapViewState.displayMap;\r\n\r\n const viewProps: IMapViewProps = {\r\n ...this.props,\r\n ModuleProps: {\r\n tag: 'div',\r\n moduleProps: this.props,\r\n className: classname('ms-map', { show: shouldDisplayMap }, className)\r\n },\r\n Header: {\r\n headerProps: { className: 'ms-map__header' },\r\n heading: heading?.text && (\r\n \r\n )\r\n },\r\n MapProps: {\r\n tag: 'div',\r\n className: 'ms-map__body',\r\n ref: this.mapRef\r\n },\r\n Map: this.map\r\n };\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 heading change.\r\n * @param event -Content Edit Event.\r\n */\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.heading!.text = event.target.value;\r\n };\r\n\r\n /**\r\n * Initialize the map.\r\n */\r\n private readonly _initMap = () => {\r\n const {\r\n context: {\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 if (storeSelectorStateManager?.isMapApiLoaded && !this.map) {\r\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\r\n credentials: channel?.BingMapsApiKey,\r\n pushpinAccessible: true,\r\n labelOverlay: Microsoft.Maps.LabelOverlay.hidden,\r\n showMapTypeSelector: false,\r\n showLocateMeButton: true,\r\n showTrafficButton: false,\r\n navigationBarMode: 3 as Microsoft.Maps.NavigationBarMode,\r\n enableInertia: true,\r\n customMapStyle: {\r\n elements: {\r\n countryRegion: { labelVisible: false }\r\n },\r\n version: '1.0'\r\n }\r\n });\r\n //TODO restore this pls cause i'll cry if not\r\n // Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\r\n // await storeSelectorStateManager.setSelectedStoreLocationId(undefined);\r\n // });\r\n }\r\n };\r\n\r\n private checkSameLocation(input: IStoreInfo, secondInput: IStoreInfo) {\r\n return input.Latitude === secondInput.Latitude && input.Longitude === secondInput.Longitude;\r\n }\r\n\r\n /**\r\n * Update the map.\r\n */\r\n private readonly _updateMapForOrgUnitChanges = () => {\r\n const pushpinOptions = this.props.config.pushpinOptions;\r\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\r\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\r\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\r\n const positionUser = storeSelectorStateManager?.lastInlineShownStoreInfo;\r\n var positionUserChanged: boolean = false;\r\n var firstOrgUnitsRender: boolean = false;\r\n if (positionUser) {\r\n if (\r\n this.cachedLastInlineShownStoreInfo === undefined ||\r\n !this.checkSameLocation(positionUser, this.cachedLastInlineShownStoreInfo)\r\n ) {\r\n this.cachedLastInlineShownStoreInfo = positionUser;\r\n positionUserChanged = true;\r\n }\r\n }\r\n if (this.map && orgUnitStoreInformation) {\r\n this.pushpinMap = new globalThis.Map();\r\n //TODO RESTORE\r\n var currentLayer: Microsoft.Maps.Layer = this.map?.layers[0];\r\n if (currentLayer) {\r\n currentLayer.clear();\r\n }\r\n // if (this.clusterClickHandler) {\r\n // Microsoft.Maps.Events.removeHandler(this.clusterClickHandler);\r\n // }\r\n this.map.layers.clear();\r\n this.selectedPushPin = undefined;\r\n\r\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\r\n if (this.cachedOrgUnitFoundCount === 0 && storeLocationList.length > 0) {\r\n this.cachedOrgUnitFoundCount = storeLocationList.length;\r\n firstOrgUnitsRender = true;\r\n }\r\n const firstThreeLocations = storeLocationList\r\n .slice(0, 3)\r\n .reduce((acc: Microsoft.Maps.Location[], org: IFullOrgUnitAvailability) => {\r\n const storeLocation = org.OrgUnitAvailability?.OrgUnitLocation;\r\n if (storeLocation && storeLocation.Latitude && storeLocation.Longitude) {\r\n acc.push(new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude));\r\n }\r\n return acc;\r\n }, []);\r\n\r\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\r\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\r\n if (storeLocation?.Latitude && storeLocation.Longitude && storeLocation.OrgUnitNumber) {\r\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\r\n const storeType =\r\n storeLocation.OrgUnitName && storeLocation.OrgUnitName.startsWith('R ')\r\n ? StoreType.Retailer\r\n : StoreType.VenchiStore;\r\n const options = this._getPushpinOptions(\r\n isSelectedLocation,\r\n index,\r\n storeType,\r\n pushpinOptions,\r\n storeLocation,\r\n this.props.resources\r\n );\r\n\r\n const pushpin = new Microsoft.Maps.Pushpin(\r\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\r\n options\r\n );\r\n\r\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\r\n this.handleClickEventOnPushPinStore(storeLocation.OrgUnitNumber);\r\n });\r\n\r\n this.pushpinMap.set(storeLocation.OrgUnitNumber, { pushpin: pushpin, storeType: storeType, index: index });\r\n\r\n if (isSelectedLocation) {\r\n this.selectedPushPin = { pushpin: pushpin, storeType: storeType, index: index };\r\n }\r\n }\r\n }\r\n\r\n if (positionUserChanged || firstOrgUnitsRender) {\r\n if (positionUser?.Latitude && positionUser.Longitude) {\r\n const currentLocation = new Microsoft.Maps.Location(positionUser.Latitude, positionUser.Longitude);\r\n if (firstThreeLocations) {\r\n const boundLocations = [currentLocation, ...firstThreeLocations];\r\n this.map.setView({\r\n bounds: Microsoft.Maps.LocationRect.fromLocations(boundLocations),\r\n padding: 100\r\n });\r\n }\r\n } else if (this.selectedPushPin) {\r\n const pushpinObject = this.selectedPushPin.pushpin;\r\n\r\n if (this.map.getZoom() >= 13) {\r\n this.map.setView({ center: pushpinObject.getLocation() });\r\n } else {\r\n this.map.setView({ center: pushpinObject.getLocation(), zoom: 14 });\r\n }\r\n } else {\r\n this.map.setView({\r\n bounds: Microsoft.Maps.LocationRect.fromShapes(\r\n Array.from(this.pushpinMap.values()).map(pushpinData => pushpinData.pushpin)\r\n )\r\n });\r\n }\r\n }\r\n\r\n Microsoft.Maps.loadModule('Microsoft.Maps.Clustering', () => {\r\n // Check if there are any pushpins to cluster\r\n if (this.map) {\r\n if (this.clusterLayer) {\r\n this.clusterLayer.clear();\r\n if (this.clusterClickHandler) {\r\n Microsoft.Maps.Events.removeHandler(this.clusterClickHandler);\r\n }\r\n }\r\n if (this.pushpinMap.size > 0) {\r\n // Convert pushpinMap values to an array of pushpins\r\n const pushpins = Array.from(this.pushpinMap.values()).map(pushpinData => pushpinData.pushpin);\r\n\r\n // Create a ClusterLayer with the pushpins\r\n this.clusterLayer = new Microsoft.Maps.ClusterLayer(pushpins, {\r\n clusteredPinCallback: this.customizeClusteredPin,\r\n gridSize: 92,\r\n clusteringEnabled: true\r\n });\r\n // Set options\r\n this.map.setOptions({ pushpinAccessible: true });\r\n\r\n // Add event handler for cluster click\r\n this.clusterClickHandler = Microsoft.Maps.Events.addHandler(this.clusterLayer, 'click', this.clusterClicked);\r\n\r\n // Insert the cluster layer into the map layers\r\n //@ts-ignore\r\n this.map.layers.insert(this.clusterLayer);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n private readonly _updateMapForSelectedStore = () => {\r\n const pushpinOptions = this.props.config.pushpinOptions;\r\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\r\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\r\n\r\n if (this.map) {\r\n if (this.selectedPushPin) {\r\n this.selectedPushPin.pushpin.setOptions(\r\n this._getPushpinColorAndIcon(false, this.selectedPushPin.storeType, pushpinOptions)\r\n );\r\n }\r\n if (selectedStoreLocationId) {\r\n // eslint-disable-next-line security/detect-object-injection\r\n const currentPushpin = this.pushpinMap.get(selectedStoreLocationId);\r\n if (currentPushpin) {\r\n const pushpinObject = currentPushpin.pushpin;\r\n pushpinObject.setOptions(this._getPushpinColorAndIcon(true, currentPushpin.storeType, pushpinOptions));\r\n this.selectedPushPin = currentPushpin;\r\n const mapLayer: Microsoft.Maps.Layer = this.map?.layers[0];\r\n if (mapLayer) {\r\n const containedPushpins: (Microsoft.Maps.ClusterPushpin | Microsoft.Maps.Pushpin)[] = mapLayer.getPrimitives() as (\r\n | Microsoft.Maps.ClusterPushpin\r\n | Microsoft.Maps.Pushpin\r\n )[];\r\n const mapBounds: Microsoft.Maps.LocationRect = this.map.getBounds();\r\n if (!containedPushpins.includes(pushpinObject)) {\r\n if (mapBounds && mapBounds.contains(pushpinObject.getLocation())) {\r\n const currentZoom = this.map.getZoom();\r\n const maxZoom = this.map.getZoomRange().max;\r\n if (currentZoom < maxZoom) {\r\n const nextZoom = currentZoom <= 13 ? 14 : currentZoom + 1;\r\n this.map.setView({ center: pushpinObject.getLocation(), zoom: nextZoom });\r\n }\r\n } else {\r\n if (this.map.getZoom() >= 13) {\r\n this.map.setView({ center: pushpinObject.getLocation() });\r\n } else {\r\n this.map.setView({ center: pushpinObject.getLocation(), zoom: 14 });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n // private selectFirstWithinDisplayed(){\r\n // if (this.map && this.clusterLayer) {\r\n // const currentlyDisplayedPushPinsthis = this.clusterLayer.getDisplayedPushpins();\r\n // if (currentlyDisplayedPushPinsthis) {\r\n // const first =\r\n // }\r\n // }\r\n // }\r\n\r\n private customizeClusteredPin = (cluster: Microsoft.Maps.ClusterPushpin) => {\r\n Microsoft.Maps.Events.addHandler(cluster, 'click', this.clusterClicked);\r\n };\r\n\r\n private clusterClicked = (e: any) => {\r\n if (this.map && e.target) {\r\n //Check to see if the clicked pushpin has any contained pushpins (this would be a cluster).\r\n if (e.target.containedPushpins) {\r\n var locs = [];\r\n for (var i = 0, len = e.target.containedPushpins.length; i < len; i++) {\r\n //Get the location of each pushpin.\r\n // eslint-disable-next-line security/detect-object-injection\r\n locs.push(e.target.containedPushpins[i].getLocation());\r\n }\r\n\r\n //Create a bounding box for the pushpins.\r\n var bounds = Microsoft.Maps.LocationRect.fromLocations(locs);\r\n\r\n //Zoom into the bounding box of the cluster.\r\n //Add a padding to compensate for the pixel area of the pushpins.\r\n this.map.setView({ bounds: bounds, padding: 100 });\r\n }\r\n }\r\n };\r\n\r\n //TODO RESTORE\r\n /**\r\n * Handle click event.\r\n * @param orgUnitNumber - Organization unit number.\r\n */\r\n private readonly handleClickEventOnPushPinStore = (orgUnitNumber: string | undefined): void => {\r\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\r\n if (orgUnitNumber) {\r\n //setTimeout(() => {\r\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\r\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- Time out.\r\n //}, 500);\r\n }\r\n };\r\n\r\n /**\r\n * Get the pushpin option.\r\n * @param isSelectedLocation - Is selected location.\r\n * @param index - Index.\r\n * @param pushpinOptions - PushpinOptions.\r\n * @returns - The pushpin options.\r\n */\r\n private readonly _getPushpinColorAndIcon = (\r\n isSelectedLocation: boolean,\r\n storeType: StoreType,\r\n pushpinOptions?: IPushpinOptionsData\r\n ) => {\r\n // const text = undefined;\r\n\r\n // const size = pushpinOptions?.size || 1;\r\n var color: string | undefined = '#8c7760';\r\n if (storeType === StoreType.Retailer) {\r\n color = isSelectedLocation ? pushpinOptions?.selectionColor_retailer || '#e87722' : pushpinOptions?.color_retailer || '#004f71';\r\n } else {\r\n color = isSelectedLocation ? pushpinOptions?.selectionColor_store || '#e87722' : pushpinOptions?.color_store || '#542D00';\r\n }\r\n //const icon = this._getSvgIcon(size, color, text);\r\n return {\r\n // Fallback if icon doesn't render properly\r\n color: color,\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `\r\n };\r\n };\r\n\r\n /**\r\n * Get the pushpin option.\r\n * @param isSelectedLocation - Is selected location.\r\n * @param index - Index.\r\n * @param pushpinOptions - PushpinOptions.\r\n * @returns - The pushpin options.\r\n */\r\n private readonly _getPushpinOptions = (\r\n isSelectedLocation: boolean,\r\n index: number,\r\n storeType: StoreType,\r\n pushpinOptions?: IPushpinOptionsData,\r\n storeLocation?: OrgUnitLocation,\r\n mapResources?: IMapCustomResources\r\n ) => {\r\n const { color, icon } = this._getPushpinColorAndIcon(isSelectedLocation, storeType, pushpinOptions);\r\n if (storeLocation) {\r\n return {\r\n // Fallback if icon doesn't render properly\r\n color: color,\r\n icon,\r\n //text: storeLocation.OrgUnitNumber!,\r\n title: `${storeType === StoreType.Retailer ? mapResources?.storeLabelRetailer : mapResources?.storeLabelVenchi} ${index +\r\n 1}`\r\n };\r\n }\r\n return {\r\n // Fallback if icon doesn't render properly\r\n color: color,\r\n icon,\r\n title: storeType === StoreType.Retailer ? mapResources?.storeLabelRetailer : mapResources?.storeLabelVenchi\r\n };\r\n };\r\n}\r\n\r\nexport default Map;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeader, IMapViewProps } from './map-custom';\r\n\r\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\r\n\r\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\r\n \r\n {Header && }\r\n \r\n \r\n);\r\n\r\nexport default MapView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountGenericTileViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { IAccountGenericTileProps } from '../definition-extensions/account-generic-tile.ext.props.autogenerated.js';\r\n\r\nconst AccountGenericTileView: React.FC> = props => {\r\n const { AccountGenericTile, heading, links } = props;\r\n const textField = props.config.text;\r\n const text = textField && ;\r\n\r\n return (\r\n \r\n {heading}\r\n {text}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default AccountGenericTileView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IBreadcrumbViewProps } from '@msdyn365-commerce-modules/breadcrumb';\r\nimport { IBreadcrumbProps } from '../definition-extensions/breadcrumb.ext.props.autogenerated';\r\n\r\nconst BreadCrumbView: React.FC> = props => {\r\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = 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\r\n let localizedRoot: React.ReactNode | React.ReactElement;\r\n\r\n // @ts-ignore\r\n if (root?.props?.text === 'Back to Order History') {\r\n // @ts-ignore\r\n localizedRoot = React.cloneElement(root, {\r\n text: props.resources.backToOrderHistory,\r\n ariaLabel: props.resources.backToOrderHistory\r\n });\r\n } else {\r\n localizedRoot = root;\r\n }\r\n\r\n return (\r\n \r\n \r\n {localizedRoot && (\r\n \r\n {localizedRoot}\r\n {links && separator}\r\n \r\n )}\r\n {backButton && {backButton}}\r\n {links &&\r\n links.map((link, index) => (\r\n \r\n \r\n {link}\r\n {links[index + 1] && separator}\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 * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport get from 'lodash/get';\r\n\r\nimport {\r\n ICheckoutDeliveryOption,\r\n ICheckoutDeliveryOptionsViewProps,\r\n ICheckoutDeliveryOptionsList\r\n} from '@msdyn365-commerce-modules/checkout';\r\nimport { ICheckoutDeliveryOptionsProps } from '../definition-extensions/checkout-delivery-options.ext.props.autogenerated';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\ninterface ICheckoutDeliveryData extends ICheckoutDeliveryOptionsList {\r\n deliveryOptions: DeliveryOption[];\r\n}\r\n\r\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list, deliveryOptions }) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n // deliveryOptions sorted by ShippingChargeAmount\r\n const sortedDeliveryOptions = deliveryOptions.sort((a, b) => {\r\n return get(a, 'ShippingChargeAmount', 0) - get(b, 'ShippingChargeAmount', 0);\r\n });\r\n\r\n // console.log(sortedDeliveryOptions);\r\n return (\r\n \r\n {sortedDeliveryOptions.map((deliveryOption: DeliveryOption) => {\r\n const sortedDeliveryOption = list.find(deliveryOptionEdit => deliveryOptionEdit.code === deliveryOption.Code);\r\n if (sortedDeliveryOption !== undefined) {\r\n return (\r\n \r\n {sortedDeliveryOption.radioButton}\r\n {sortedDeliveryOption.description}\r\n {sortedDeliveryOption.price}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({ DeliveryOption, description, price }) => {\r\n return (\r\n \r\n {description}\r\n {price}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC> = props => {\r\n const {\r\n CheckoutDeliveryOptions,\r\n checkoutErrorRef,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionsData,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton\r\n } = props;\r\n const extraTextField = props.config.paragraph;\r\n const extraText = extraTextField && ;\r\n return (\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {extraText}\r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Image, IImageData } from '@msdyn365-commerce/core';\r\n// import { StockCountJournalsDataActions } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n IProductSpecificationProps as IProductSpecificationExtensionProps,\r\n IProductSpecificationConfig as IProductSpecificationExtensionConfig,\r\n IReassuranceItemsData as IReassuranceItemsExtensionData\r\n} from '../definition-extensions/product-specification.ext.props.autogenerated';\r\nimport * as React from 'react';\r\n// import axios from 'axios';\r\ninterface NutritionalData {\r\n label: string;\r\n qty1Label: string;\r\n qty1Unit: string;\r\n qty1Value: number;\r\n subcategory: NutritionalSubcategoryData[];\r\n}\r\n\r\ninterface NutritionalSubcategoryData {\r\n label: string;\r\n qty1Unit: string;\r\n qty1Value: number;\r\n}\r\n\r\n/* interface ProductLabel {\r\n label: string;\r\n imgLink: string;\r\n} */\r\n\r\ninterface ReassuranceShowType {\r\n title: string;\r\n description: string;\r\n image: IImageData;\r\n}\r\n\r\nconst ProductSpecificationView: React.FC &\r\n IProductSpecificationExtensionConfig> = props => {\r\n const { ProductSpecification, productSpecificationResult } = props;\r\n const tags = ['Gluten free', 'Palm oil free', 'Vegan friendly', 'Light'];\r\n const specificationsList = ['Product description', /* 'Nutritional Values', */ 'Nutritional Values JSON', 'Ingredients'];\r\n const ingredientsAllAttributesList = ['Ingredients', 'Ingredients 2', 'Ingredients 3'];\r\n const labels = props.resources;\r\n // @ts-ignore\r\n const pTags = [];\r\n // @ts-ignore\r\n const pSpecifications = [];\r\n // @ts-ignore\r\n const ingredientsArray = [];\r\n var ingredientsString = '';\r\n\r\n const temporaryDisabled = true;\r\n\r\n const reassuranceItems: ReassuranceShowType[] =\r\n props?.config?.reassuranceItems?.map((reassurance: IReassuranceItemsExtensionData) => ({\r\n title: reassurance.reassuranceTitle,\r\n description: reassurance.reassuranceDescription,\r\n image: reassurance.reassuranceImage\r\n })) ?? [];\r\n\r\n const isProductAccordionOpened = props?.config?.productDescriptionAccordionOpened ?? false;\r\n\r\n const [accordionsState, setAccordionsState] = React.useState(isProductAccordionOpened ? 'Productdescription' : '');\r\n // const [fetchingLabels, setFetchingLabels] = React.useState(false);\r\n /* const [productLabels, setProductLabels] = React.useState(\r\n [{\r\n label: labels['product_specification_title_emea_label'] ?? \"EMEA label\",\r\n imgLink: ''\r\n },{\r\n label: labels['product_specification_title_emea_warnings'] ?? \"EMEA warnings\",\r\n imgLink: ''\r\n },{\r\n label: labels['product_specification_title_fda_label'] ?? \"FDA label\",\r\n imgLink: ''\r\n }]) */\r\n\r\n productSpecificationResult?.map(row => {\r\n const itemHtml = row?.props.cellData.props.dangerouslySetInnerHTML;\r\n if (row !== null && tags.includes(row.props.productName) && itemHtml !== undefined && itemHtml.__html === 'Yes') {\r\n pTags.push(row);\r\n }\r\n });\r\n productSpecificationResult?.map(row => {\r\n if (\r\n row !== null &&\r\n specificationsList.includes(row.props.productName) &&\r\n row.props.cellData.props.dangerouslySetInnerHTML !== undefined\r\n ) {\r\n pSpecifications.push(row);\r\n }\r\n if (\r\n row !== null &&\r\n ingredientsAllAttributesList.includes(row.props.productName) &&\r\n row.props.cellData.props.dangerouslySetInnerHTML !== undefined\r\n ) {\r\n ingredientsArray.push(row);\r\n }\r\n });\r\n // @ts-ignore\r\n const productSku = props.data.product.result?.ItemId;\r\n // @ts-ignore\r\n const productPrimaryImageUrl = props.data.product.result?.PrimaryImageUrl;\r\n\r\n // @ts-ignore\r\n ingredientsArray.map(row => {\r\n ingredientsString += row.props.cellData.props.dangerouslySetInnerHTML.__html || '';\r\n });\r\n\r\n const accordionOnClick = (accordion: string): void => {\r\n const accStates = accordionsState.split(',');\r\n if (accStates.includes(accordion)) {\r\n // setAccordionsState(accStates.filter(acc=>acc!==accordion).join(','));\r\n setAccordionsState('');\r\n } else {\r\n // setAccordionsState([...accStates, accordion].join(','));\r\n setAccordionsState(accordion);\r\n }\r\n };\r\n\r\n const isAccordionExpanded = (accordion: string): boolean => {\r\n const accStates = accordionsState.split(',');\r\n return accStates.includes(accordion);\r\n };\r\n\r\n const _renderNutritionalValues = (jData: any): JSX.Element => {\r\n // const jData = JSON.parse(data);\r\n return (\r\n
\r\n {jData.map((row: NutritionalData) => (\r\n <>\r\n
\r\n
{labels[row.label] ?? ''}
\r\n
\r\n
{labels[row.qty1Label] ?? ''}
\r\n
{row.qty1Value ?? ''}
\r\n
{row.qty1Unit ?? ''}
\r\n
\r\n {row.subcategory &&\r\n row.subcategory.map((subRow: NutritionalSubcategoryData) => (\r\n
\r\n
{labels[subRow.label] ?? ''}
\r\n
\r\n
{subRow.qty1Value ?? ''}
\r\n
{subRow.qty1Unit ?? ''}
\r\n
\r\n ))}\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n /* const _renderProductLabels = (productLabels: ProductLabel[], labels: any): JSX.Element => {\r\n const titleLabel = labels['product_specification_title_product_labels'] ?? 'Product labels';\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {productLabels.filter(label => label.imgLink !== '').map((row: ProductLabel) => (\r\n
\r\n
\r\n {row.label}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n } */\r\n\r\n const _renderReassurance = (reassuranceItems: ReassuranceShowType[], labels: any): JSX.Element => {\r\n const titleLabel = labels['product_specification_title_reassurance'] ?? 'Shipments and Returns';\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {reassuranceItems.map((row: ReassuranceShowType, index: number) => {\r\n const isLast = index === reassuranceItems.length - 1;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {row.title}\r\n {row.description}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n /* if (!fetchingLabels) {\r\n setFetchingLabels(true);\r\n _getProductLabels(productSku, productPrimaryImageUrl).then((response: string[]) => {\r\n const newProductLabels = [...productLabels];\r\n productLabels.forEach((_, index: number) => {\r\n newProductLabels[index].imgLink = response[index];\r\n });\r\n setProductLabels(newProductLabels);\r\n });\r\n } */\r\n });\r\n\r\n if (temporaryDisabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {props.title}\r\n {pSpecifications.length ? (\r\n \r\n {// @ts-ignore\r\n pSpecifications.map(row => {\r\n const title = row.props.productName;\r\n const titleId = title.replace(/\\s+/g, '');\r\n const titleLabel = labels[`product_specification_title_${title.replace(/\\s+/g, '_').toLowerCase()}`] ?? title;\r\n const ingredientsFinalString = ingredientsString;\r\n\r\n let accordionContent;\r\n if (title === 'Ingredients' && ingredientsFinalString) {\r\n accordionContent = ingredientsFinalString;\r\n } else if (title === 'Nutritional Values JSON') {\r\n try {\r\n const jData = JSON.parse(row.props.cellData.props.dangerouslySetInnerHTML.__html);\r\n accordionContent = _renderNutritionalValues(jData);\r\n } catch (e) {\r\n return;\r\n }\r\n } else if (row.props.cellData.props.dangerouslySetInnerHTML.__html) {\r\n accordionContent = row.props.cellData.props.dangerouslySetInnerHTML.__html;\r\n }\r\n\r\n if (!accordionContent) return;\r\n\r\n return (\r\n // tslint:disable-next-line:jsx-key\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{accordionContent}
\r\n \r\n );\r\n })}\r\n {reassuranceItems.length > 0 ? _renderReassurance(reassuranceItems, labels) : null}\r\n {/* {productLabels.filter(label => label.imgLink !== '').length > 0 ? _renderProductLabels(productLabels, labels) : null} */}\r\n {/* { _renderSocialShare(props.slots && props.slots?.socialShare)} */}\r\n
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n );\r\n};\r\n\r\n/* const _getProductLabels = async (productId?: string, baseImagePath?: string): Promise => {\r\n if (productId && baseImagePath) {\r\n const results: string[] = [];\r\n const imgBaseUrlArray = decodeURIComponent(baseImagePath).split('/');\r\n imgBaseUrlArray.pop();\r\n\r\n\r\n const imgUrls = [\r\n [...imgBaseUrlArray, `${productId}_000_006.jpg`].join('/'),\r\n [...imgBaseUrlArray, `${productId}_000_007.jpg`].join('/'),\r\n [...imgBaseUrlArray, `${productId}_000_008.jpg`].join('/'),\r\n ];\r\n \r\n for (let i=0; i<3; i=i+1) {\r\n try {\r\n const response = await axios.get(imgUrls[i]);\r\n results.push(response?.status === 200 ? imgUrls[i] : '');\r\n } catch (e) {\r\n results.push('');\r\n }\r\n }\r\n return results; \r\n }\r\n return ['', '', ''];\r\n} */\r\n\r\n/* const _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!socialShare || socialShare.length === 0) {\r\n return undefined;\r\n }\r\n return (\r\n <>\r\n {socialShare[0]}\r\n \r\n );\r\n}; */\r\n\r\nexport default ProductSpecificationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
\n

{confirmationText}

\n {channelReferenceId && (\n

\n {`${channelReferenceIdLabel} ${channelReferenceId}`}\n

\n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \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 React from 'react';\n\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\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 { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: (\n \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\n : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (\n this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText\n ) {\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage || this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\n );\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\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 { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\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\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n\n let contentBlockImageSettings: Msdyn365.IImageSettings | undefined;\n\n if (image && image.imageSettings && !image.imageSettings.backgroundColor && this.props.config.backgroundColor) {\n contentBlockImageSettings = {\n ...image?.imageSettings,\n backgroundColor: this.props.config.backgroundColor\n };\n } else {\n contentBlockImageSettings = image?.imageSettings;\n }\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: contentBlockImageSettings\n };\n\n const contentBlockImage = (\n \n );\n\n const contentBlockContainerStyle: React.CSSProperties | undefined = this.props.config.backgroundColor\n ? { backgroundColor: this.props.config.backgroundColor }\n : undefined;\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 style: contentBlockContainerStyle\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 IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress,\n note\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n {note}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\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 { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n {cellData}\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 { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n isAdditionalMediaDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n isAdditionalMediaDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : this._createTableBody(data))\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const tableRows = content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n <>\n \n \n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n const drawers = content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \n
\n \n
\n );\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList 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 private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\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 {\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
\n {orderInfomation.placedBy && {orderInfomation.placedBy}}\n
{orderInfomation && }
\n
\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 { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Categories heading.\n * @param inCategoriesHeading - The Keywords result heading.\n * @returns The JSX Element.\n */\nconst renderCategorySuggestionsTitle = (inCategoriesHeading: string): JSX.Element => {\n const categoryAutoSuggestionHeading = inCategoriesHeading ? inCategoriesHeading : 'In categories';\n\n return
{categoryAutoSuggestionHeading}
;\n};\n\n/**\n * Render Categories suggestion result.\n * @param inCategoriesHeading - The Categories result heading.\n * @param noResultText - The \"No Result\" text.\n * @param props - The Categories suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns The JSX Element.\n */\nexport const CategorySuggestionsComponent = (\n inCategoriesHeading: string,\n noResultText: string,\n props: ISearchViewProps & ISearchProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n return props.autosuggestCategory ? (\n \n {renderCategorySuggestionsTitle(inCategoriesHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n props.autosuggestCategory.text.map(text => {\n return text;\n })}\n \n \n ) : (\n \n {renderCategorySuggestionsTitle(inCategoriesHeading)}\n \n
  • {noResultText}
  • \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 { IImageData, Image } from '@msdyn365-commerce/core';\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Products Suggestion result heading.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\n if (!noSearchResultImage || !noSearchResultImage.src) {\n return null;\n }\n const imageSettings = {\n lazyload: true,\n viewports: {\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\n }\n };\n return (\n \n );\n};\n\n/**\n * Render Product suggestion result.\n * @param props -The props.\n * @returns The JSX Element.\n */\nexport const MobileAutoSuggestEmptyComponent = (props: ISearchProps): JSX.Element => {\n return (\n \n
    {renderProductNotFoundResultsImage(props)}
    \n
    \n
    {props.resources.emptyMobileSearchTextHeading}
    \n
    {props.resources.emptyMobileSearchText}
    \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 { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\n\n/**\n * Render Clear button for mobile viewport.\n * @param clearSearchButtonText -The Clear button text.\n * @param clearSearch -Clear Search callback.\n * @returns -The JSX Element.\n */\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\n return (\n \n );\n};\n\n/**\n * Render Search form.\n * @param form -Form view props.\n * @param searchForm -Search Form props.\n * @param formWrapper -Form Wrapper props.\n * @param isMobile -Is mobile viewport flag.\n * @param clearSearchButtonText -The Clear button text.\n * @param props -The props for resource.\n * @param isSearchText -Is SearchText flag for input text.\n * @param clearSearch -Clear Search callback.\n * @returns -The JSX Element.\n */\nexport const FormComponent = (\n form: ISearchFormViewProps,\n searchForm: INodeProps,\n formWrapper: INodeProps,\n isMobile: boolean,\n clearSearchButtonText: string,\n props: ISearchProps,\n isSearchText: boolean,\n clearSearch: () => void\n): JSX.Element => {\n const cancelButtonNode = (\n \n );\n\n return isMobile ? (\n \n {form.cancelBtn}\n \n {form.input}\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\n \n \n ) : (\n \n \n {form.submitBtn}\n {form.input}\n {isSearchText && cancelButtonNode}\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 { ISearchKeywordViewProps } from '@msdyn365-commerce-modules/search';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * Render keywords heading.\n * @param keywordsHeading -The Keywords result heading.\n * @returns The JSX Element.\n */\nconst renderKeywordSuggestionsTitle = (keywordsHeading: string): JSX.Element => {\n const categoryAutoSuggestionHeading = keywordsHeading ? keywordsHeading : 'Keywords';\n\n return
    {categoryAutoSuggestionHeading}
    ;\n};\n\n/**\n * Render keywords reults.\n * @param keywordSuggest -The Keywords suggest Node props.\n * @param ulKeyword -The List Node props.\n * @param keywordsHeading -The Keywords result heading.\n * @param noResultText -The \"No Result\" text.\n * @param keywordSuggestions -The Keywords suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns -The JSX Element.\n */\nexport const KeywordSuggestionsComponent = (\n keywordSuggest: INodeProps,\n ulKeyword: INodeProps,\n keywordsHeading: string,\n noResultText: string,\n keywordSuggestions?: ISearchKeywordViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n return keywordSuggestions ? (\n \n {renderKeywordSuggestionsTitle(keywordsHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n keywordSuggestions.text.map(text => {\n return text;\n })}\n \n \n ) : (\n \n {renderKeywordSuggestionsTitle(keywordsHeading)}\n \n
  • {noResultText}
  • \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 { IImageData, Image } from '@msdyn365-commerce/core';\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\n\n/**\n * Render Products Suggestion result heading.\n * @param productSuggestionsHeading -The products suggestion result heading.\n * @returns The JSX Element.\n */\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\n\n return
    {productAutoSuggestionHeading}
    ;\n};\n\n/**\n * Render Products Suggestion result heading.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\n if (!noSearchResultImage || !noSearchResultImage.src) {\n return null;\n }\n return (\n \n );\n};\n\n/**\n * Render Products No result section.\n * @param props -The props.\n * @returns The JSX Element.\n */\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\n return (\n \n
    {renderProductNotFoundResultsImage(props)}
    \n
    {props.resources.noResultContentHeadingText}
    \n
    \n {props.resources.noResultContentParagraphText}\n
    \n
    \n );\n};\n\n/**\n * Render Product suggestion result.\n * @param productSuggest -The product suggest Node props.\n * @param ulProduct -The List Node props.\n * @param props -The props.\n * @param productSuggestions -The Product suggestion result.\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\n * @param isLoadingNode - The autosuggestion loading node.\n * @returns The JSX Element.\n */\nexport const ProductSuggestionsComponent = (\n productSuggest: INodeProps,\n ulProduct: INodeProps,\n props: ISearchProps,\n productSuggestions?: ISearchProductViewProps,\n isLoadingAutoSuggest?: boolean,\n isLoadingNode?: React.ReactNode\n): JSX.Element => {\n const liProduct: INodeProps = {\n tag: 'li',\n className: 'msc-no-result-content'\n };\n return productSuggestions ? (\n \n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\n \n {isLoadingAutoSuggest && isLoadingNode}\n {!isLoadingAutoSuggest &&\n productSuggestions.items.map((item, index) => {\n return (\n \n \n {item.thumbnail}\n {item.text}\n {item.price}\n \n \n );\n })}\n \n \n ) : (\n \n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\n \n {renderProductNotFoundResults(props)}\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 { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\nimport { Button, format, isMobile, Module, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\nimport { CategorySuggestionsComponent } from './components/search.categorysuggest';\nimport { FormComponent } from './components/search.form';\nimport { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\n\n/**\n * Render Title for AutoSuggest.\n * @param searchSuggestionHeading -The heading resource string.\n * @param searchText -The search string.\n * @returns -The JSX Element.\n */\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\n const searchTextString = '\"'.concat(searchText.concat('\"'));\n const searchAutoSuggestionHeading = searchSuggestionHeading\n ? format(searchSuggestionHeading, searchTextString)\n : `Search for ${searchTextString}`;\n\n return {searchAutoSuggestionHeading};\n};\n\n/**\n * Search View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nconst SearchView: React.FC> = (\n props: ISearchViewProps & ISearchProps\n): JSX.Element => {\n const {\n Search,\n AutoSuggestAriaLabel,\n AutoSuggestAriaLabelText,\n searchText,\n AutoSuggest,\n KeywordSuggest,\n ProductSuggest,\n UlKeyword,\n UlProduct,\n form,\n autosuggestKeyword,\n autosuggestProduct,\n SearchForm,\n FormWrapper,\n label,\n context,\n isLoadingAutoSuggest,\n isLoadingNode,\n callbacks: { handleCancelSearchFocused }\n } = props;\n\n const { searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText, clearSearchButtonText } = props.resources;\n\n const [searchTextString, setSearchTextString] = useState();\n const [isMobilePort, setIsMobile] = useState(false);\n\n useEffect(() => {\n setSearchTextString(searchText);\n }, [searchText]);\n\n /**\n * ClearSearch callback method to clear search string.\n */\n const clearSearch = (): void => {\n setSearchTextString('');\n\n const propsForm = props.form as ISearchFormViewProps;\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\n\n if (propsFormInputCurrent) {\n propsFormInputCurrent.value = '';\n }\n\n propsFormInput.value = '';\n props.searchText = '';\n props.FormWrapper.action = '';\n };\n\n const isMobileViewport = useCallback(() => {\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\n setIsMobile(isMobileView);\n }, [context]);\n\n useEffect(() => {\n window.addEventListener('resize', isMobileViewport);\n isMobileViewport();\n }, [isMobileViewport]);\n\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\n\n const isMobileView = viewport === 'sm' || viewport === 'xs';\n\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString)\n ? `${AutoSuggest.className} show`\n : `${AutoSuggest.className} hide`;\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\n\n return (\n \n {label}\n {FormComponent(\n form as ISearchFormViewProps,\n SearchForm,\n FormWrapper,\n isMobilePort,\n clearSearchButtonText,\n props,\n isSearchText,\n clearSearch\n )}\n {!isMobileView && (\n \n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n {AutoSuggestAriaLabelText}\n ) : (\n ''\n )}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n \n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(\n categorySuggestionHeading,\n noResultText,\n props,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n {KeywordSuggestionsComponent(\n KeywordSuggest,\n UlKeyword,\n keywordsHeading,\n noResultText,\n autosuggestKeyword,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n {ProductSuggestionsComponent(\n ProductSuggest,\n UlProduct,\n props,\n autosuggestProduct,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n \n ) : null}\n \n )}\n {isMobileView && props.isSearchFormExpanded && (\n \n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n {AutoSuggestAriaLabelText}\n ) : (\n ''\n )}\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\n <>\n \n {(form as ISearchFormViewProps).cancelBtn}\n {renderTitle(searchSuggestionHeading, searchText)}\n \n \n \n {CategorySuggestionsComponent(\n categorySuggestionHeading,\n noResultText,\n props,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n {KeywordSuggestionsComponent(\n KeywordSuggest,\n UlKeyword,\n keywordsHeading,\n noResultText,\n autosuggestKeyword,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n {ProductSuggestionsComponent(\n ProductSuggest,\n UlProduct,\n props,\n autosuggestProduct,\n isLoadingAutoSuggest,\n isLoadingNode\n )}\n \n \n ) : null}\n \n )}\n \n );\n};\nexport default SearchView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps,\n ISignInButton\n} from '@msdyn365-commerce-modules/account-management';\n\nimport { ISignInProps, ISignInResources } from '../definition-extensions/sign-in.ext.props.autogenerated';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nconst signUpButton: React.FC> = (\n props: ISignInViewProps & ISignInProps\n) => {\n const {\n resources,\n telemetry,\n friendlyName,\n context: {\n request: { telemetryPageName }\n }\n } = props;\n const telemetryContent = getTelemetryObject(telemetryPageName!, friendlyName, telemetry);\n const attributes = {\n href: '#'\n };\n\n return (\n \n );\n};\n\nconst SignInView: React.FC> = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpButton(props)}\n \n
    \n
    \n or\n
    \n {B2BAccount(signInB2BAccount)}\n
    \n
    \n
    \n );\n};\n\nexport default SignInView;\n"],"names":["StoreType","Map","React","constructor","props","super","pushpinMap","globalThis","selectedPushPin","undefined","clusterClickHandler","cachedOrgUnitFoundCount","mapRef","handleHeadingChange","event","this","config","heading","text","target","value","_initMap","context","actionContext","requestContext","channel","data","storeSelectorStateManager","result","isMapApiLoaded","map","Microsoft","Maps","current","credentials","BingMapsApiKey","pushpinAccessible","labelOverlay","LabelOverlay","hidden","showMapTypeSelector","showLocateMeButton","showTrafficButton","navigationBarMode","enableInertia","customMapStyle","elements","countryRegion","labelVisible","version","_updateMapForOrgUnitChanges","_this$props$data$stor","_storeSelectorStateMa","pushpinOptions","orgUnitStoreInformation","selectedStoreLocationId","positionUser","lastInlineShownStoreInfo","positionUserChanged","firstOrgUnitsRender","cachedLastInlineShownStoreInfo","checkSameLocation","_this$map","currentLayer","layers","clear","storeLocationList","filter","store","OrgUnitAvailability","length","firstThreeLocations","slice","reduce","acc","org","_org$OrgUnitAvailabil","storeLocation","OrgUnitLocation","Latitude","Longitude","push","Location","index","unitStoreInfo","entries","_unitStoreInfo$OrgUni","OrgUnitNumber","isSelectedLocation","storeType","OrgUnitName","startsWith","Retailer","VenchiStore","options","_getPushpinOptions","resources","pushpin","Pushpin","Events","addHandler","handleClickEventOnPushPinStore","set","currentLocation","boundLocations","setView","bounds","LocationRect","fromLocations","padding","pushpinObject","getZoom","center","getLocation","zoom","fromShapes","Array","from","values","pushpinData","loadModule","clusterLayer","removeHandler","size","pushpins","ClusterLayer","clusteredPinCallback","customizeClusteredPin","gridSize","clusteringEnabled","setOptions","clusterClicked","insert","_updateMapForSelectedStore","_this$props$data$stor2","_getPushpinColorAndIcon","currentPushpin","get","_this$map2","mapLayer","containedPushpins","getPrimitives","mapBounds","getBounds","includes","contains","currentZoom","getZoomRange","max","nextZoom","cluster","e","locs","i","len","orgUnitNumber","setSelectedStoreLocationId","color","selectionColor_retailer","color_retailer","selectionColor_store","color_store","icon","mapResources","title","storeLabelRetailer","storeLabelVenchi","componentDidMount","_this$props$data$stor3","telemetry","BingMapsEnabled","when","_this$props$data$stor4","setMapModuleLoaded","_this$props$data$stor5","reaction","_this$props$data$stor6","loadMapApi","_this$props$data$stor7","_this$props$context","key","lang","locale","market","ChannelCountryRegionISOCode","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$stor10","error","render","className","shouldDisplayMap","listMapViewState","displayMap","viewProps","_objectSpread","ModuleProps","tag","moduleProps","classname","show","Header","headerProps","Msdyn365","Object","assign","editProps","onEdit","request","MapProps","ref","renderView","input","secondInput","__decorate","observer","MapHeader","_ref","Node","_ref2","Module","AccountGenericTile","links","textField","_root$props","root","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","separator","localizedRoot","backToOrderHistory","ariaLabel","link","classnames","DeliveryOptionList","DeliveryOptionsList","list","deliveryOptions","sortedDeliveryOptions","sort","a","b","deliveryOption","sortedDeliveryOption","find","deliveryOptionEdit","code","Code","DeliveryOption","radioButton","description","price","DeliveryOptionSelected","CheckoutDeliveryOptions","checkoutErrorRef","viewState","deliveryOptionsData","deliveryOptionSelected","alert","waiting","saveButton","editButton","cancelButton","extraTextField","paragraph","extraText","isLoading","isError","isShowList","isShowSelected","isShowSaveButton","isShowEditButton","isShowCancelButton","_props$config$reassur","_props$config","_props$config$product","_props$config2","_props$data$product$r","_props$data$product$r2","ProductSpecification","productSpecificationResult","tags","specificationsList","ingredientsAllAttributesList","pTags","pSpecifications","ingredientsArray","reassuranceItems","reassurance","reassuranceTitle","reassuranceDescription","image","reassuranceImage","isProductAccordionOpened","productDescriptionAccordionOpened","accordionsState","setAccordionsState","row","itemHtml","cellData","dangerouslySetInnerHTML","productName","__html","product","ItemId","PrimaryImageUrl","AccountProfileEdit","moduleClassName","onTextBoxChange","id","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","isShowLoading","accountProfileEdit","loading","modal","Modal","isOpen","modalBody","ModalBody","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","document","createElement","innerHTML","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","type","labelText","maxLength","pattern","wrapper","label","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","onChange","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","item","button","LocalAccount","disabled","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","Button","errorClassName","role","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","htmlFor","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","channelReferenceId","QRCode","CheckInErrorComponent","CheckInForPickup","checkInForOrderPickup","async","channelId","query","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","ObjectExtensions","isNullOrUndefined","additionalInformation","Key","Value","StringValue","SalesOrdersDataActions","callerContext","queryResultSettings","setState","headerErrorMessage","genericErrorMessage","isCheckedIn","Promise","resolve","_this$props$context$r","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","ArrayExtensions","hasElements","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","additionalInformationHeading","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","ctaLink","renderLinks","linkIndex","editableLink","linkText","linkUrl","destinationUrl","openInNewTab","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","forEach","contentAction","etext","btnClass","additionalProperties","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","handleLinkTextChange","_heading$tag","_this$props$config$im","imageAriaLabel","contentBlockTitle","contentBlockLinks","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImageSettings","imageSettings","backgroundColor","imageProps","gridSettings","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockContainerStyle","contentBlockviewProps","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","renderAdditionalContent","_additionalContent$ad","href","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelName","channelAddress","note","SalesLine","salesLineProps","salesLine","buyAgainButton","errors","GroupDelivery","deliveryProps","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","groups","group","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","viewModes","tableViewActions","table","placedBy","orderInfomation","orderSummary","payment","help","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","buildReviewCard","cardProps","rating","name","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","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","componentClassName","headingClassName","orderCountClassName","OrderHistoryWithSearchAndFiltersHeaderComponent","createComponent","component","salesOrders","textProps","showOrderCount","extraActions","orderCount","orderCountText","orderCountLabel","ordersCountLabel","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","location","origin","redirectUrl","searchParameters","searchParams","fieldName","StringExtensions","isNullOrWhitespace","replace","toLocaleLowerCase","fieldValue","toString","_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","trim","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","autoComplete","orderNumberInput","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","user","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","Name","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","ProductSpecificationTableRow","scope","getRichTextHtml","_toggle","drawerListId","isDrawerOpen","isAdditionalMediaDrawerOpen","catalogId","validateCatalogId","RecordId","actionInput","AttributesForSelectedVariantInput","apiSettings","getAttributesForSelectedVariant","catch","debug","productSpecificationData","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","_createDrawerBody","_createTableBody","content","_this$props$data$addi","tableRows","_renderProductCell","app","OmniChannelMedia","additionalMediaLocations","_createAdditionalMediaDrawer","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Drawer","collapseProps","timeout","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","additionalDownloadsText","prevState","mediaLocation","Uri","download","AltText","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","trueValueText","falseValueText","rowdata","TileList","_telemetryContent","Heading","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","_createHeading","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","slots","tileListView","tileItem","keyIndex","_props$data$operation","b2bRequestsStatus","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","OrderHistoryOrderInfomation","OrderHistoryGroupDelivery","processing","OrderHistoryGroup","OrderHistoryGroups","OrderHistoryHeader","OrderHistorySalesOder","salesOrderProps","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrder","orderHistoryProps","emptyMessage","backToShoppingLink","moreButton","renderCategorySuggestionsTitle","inCategoriesHeading","categoryAutoSuggestionHeading","CategorySuggestionsComponent","noResultText","isLoadingAutoSuggest","isLoadingNode","autosuggestCategory","CategorySuggest","UlCategory","MobileAutoSuggestEmptyComponent","noSearchResultImage","src","Image","altText","lazyload","viewports","xs","w","h","q","renderProductNotFoundResultsImage","emptyMobileSearchTextHeading","emptyMobileSearchText","FormComponent","searchForm","formWrapper","isMobile","clearSearchButtonText","isSearchText","clearSearch","cancelButtonNode","cancelBtnAriaLabel","cancelBtn","renderClearButton","submitBtn","renderKeywordSuggestionsTitle","keywordsHeading","KeywordSuggestionsComponent","keywordSuggest","ulKeyword","keywordSuggestions","renderProductSuggestionsTitle","productSuggestionsHeading","productAutoSuggestionHeading","renderProductNotFoundResults","noResultContentHeadingText","noResultContentParagraphText","ProductSuggestionsComponent","productSuggest","ulProduct","productSuggestions","productSuggestionHeading","_item$id","LiProduct","AProduct","thumbnail","renderTitle","searchSuggestionHeading","searchText","searchTextString","concat","searchAutoSuggestionHeading","format","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","AutoSuggest","KeywordSuggest","ProductSuggest","UlKeyword","UlProduct","autosuggestKeyword","autosuggestProduct","SearchForm","FormWrapper","callbacks","handleCancelSearchFocused","categorySuggestionHeading","setSearchTextString","useState","isMobilePort","setIsMobile","useEffect","propsFormInput","propsFormInputCurrent","action","isMobileViewport","useCallback","isMobileView","variant","VariantType","Browser","addEventListener","viewport","onBlur","isSearchFormExpanded","SignInLoading","SignInButton","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","forgetPassword","disclaimer","signInButton","socialAccounts","SocialAccount","b2bSignUpButtonAriaLabel","b2bSignUpButtonText","signUpButton","B2BAccount"],"sourceRoot":""}