{"version":3,"file":"static/js/13.856b4c4ee05d5ec7bf9e.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/checkout-delivery-options.view.tsx?3e8c","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/iframe.view.tsx?059a","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/product-specification.view.tsx?ddc2","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/store-selector.view.tsx?4246","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/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/footer-item.view.tsx?15be","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/src/modules/account-generic-tile/./account-generic-tile';\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. 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 { ICheckoutDeliveryOption, ICheckoutDeliveryOptionsViewProps, ICheckoutDeliveryOptionsList } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\nimport { ICheckoutDeliveryOptionsProps } from '../definition-extensions/checkout-delivery-options.ext.props.autogenerated';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n\r\ninterface ICheckoutDeliveryData extends ICheckoutDeliveryOptionsList {\r\n deliveryOptions: DeliveryOption[];\r\n}\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\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","/*!\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 { IIframeViewProps } from '@msdyn365-commerce-modules/iframe/src/modules/iframe/./iframe';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * IFrameView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class IFrameView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\r\n\r\n return (\r\n \r\n {alert}\r\n {cookieConsentAccepted && cookieConsentAccepted === true ? (\r\n <>\r\n {Heading}\r\n
{IFrame}
\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\nexport default IFrameView;\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/src/modules/product-specification/./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","/*---------------------------------------------------------------------------------------------\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 { IStoreSelectorViewProps } from '@msdyn365-commerce-modules/store-selector/src/modules/store-selector/./store-selector';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst StoreSelectorView: React.FC = props => {\r\n const {\r\n BodyContainerProps,\r\n FooterContainerProps,\r\n HeaderContainerProps,\r\n HeaderProps,\r\n ModuleProps,\r\n // headerText,\r\n locationsMessage,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n terms\r\n } = props;\r\n const currentUrl = ModuleProps.moduleProps.context.request.url.requestUrl.href;\r\n const baseUrl = currentUrl.substring(0, currentUrl.lastIndexOf('/') + 1);\r\n React.useEffect(() => {\r\n const titles = Array.from(document.querySelectorAll('.ms-store-select__location-line-item-store-name'));\r\n if (titles.length > 0) {\r\n titles.forEach(el => {\r\n const storeName = el.textContent;\r\n if (storeName && storeName.startsWith('R ')) {\r\n el.closest('.ms-store-select__location-line-item')?.classList.add('location-type__dealer');\r\n el.textContent = storeName.replace('R ', '');\r\n }\r\n // @ts-ignore\r\n if (props.config.renderLinkToStorePage) {\r\n const goToStoreCtn = el.closest('.ms-store-select__location-line-item')?.querySelector('.go-to-store');\r\n if (goToStoreCtn === null) {\r\n const storeUrl = storeName\r\n ?.replace('R ', '')\r\n .toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const goToStore = document.createElement('div');\r\n goToStore.className = 'go-to-store';\r\n // tslint:disable-next-line:no-inner-html\r\n goToStore.innerHTML = `${\r\n // @ts-ignore\r\n props.resources.goToStorePage ? props.resources.goToStorePage : 'Go to Store page'\r\n }`;\r\n el.closest('.ms-store-select__location-line-item:not(.location-type__dealer)')\r\n ?.querySelector('.ms-store-select__location-line-item-content')\r\n ?.appendChild(goToStore);\r\n }\r\n }\r\n });\r\n }\r\n }, [locationsList]);\r\n\r\n return (\r\n \r\n {HeaderProps}\r\n \r\n {locationsMessage}\r\n {search}\r\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\r\n \r\n {terms}\r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\r\n","/*!\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 { 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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n \n {' '}\n \n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n 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","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","IFrameView","Heading","IframeContainer","IFrame","cookieConsentAccepted","_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","BodyContainerProps","FooterContainerProps","HeaderContainerProps","HeaderProps","locationsMessage","search","state","spinner","locationsList","noLocationsMessage","terms","currentUrl","url","requestUrl","href","baseUrl","substring","lastIndexOf","titles","document","querySelectorAll","forEach","el","storeName","textContent","_el$closest","closest","classList","add","replace","renderLinkToStorePage","_el$closest2","querySelector","_el$closest3","storeUrl","toLowerCase","goToStore","createElement","innerHTML","goToStorePage","appendChild","isSearchInProgress","AccountProfileEdit","moduleClassName","onTextBoxChange","id","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","isShowLoading","accountProfileEdit","classnames","loading","modal","Modal","isOpen","modalBody","ModalBody","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","ariaLabel","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","link","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","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","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","URL","location","origin","redirectUrl","searchParameters","searchParams","fieldName","StringExtensions","isNullOrWhitespace","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","_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","table","continueShoppingButtonTitle","operationRequests","headingForEmptyRequestStatus","textForEmptyRequestStatus","getUrlSync","FooterItemView","FooterItem","_renderElement","HeadingContainer","Link","EditableLink","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","_ref4","groupsProps","groups","group","OrderHistoryHeader","_ref5","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","placedBy","OrderHistoryList","_ref7","listProps","salesOrder","_ref8","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":""}