{"version":3,"file":"static/js/5.92f4dfdfc5c5526b7dd5.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-address-purposes.ts?3461","webpack://Msdyn365.Commerce.Online/./src/actions/get-state-provinces.ts?a6ba","webpack://Msdyn365.Commerce.Online/./src/common/address-common.ts?e30a","webpack://Msdyn365.Commerce.Online/./src/common/address-format.data.ts?f2e7","webpack://Msdyn365.Commerce.Online/./src/common/address-format.ts?b845","webpack://Msdyn365.Commerce.Online/./src/common/address-meta-data.ts?c0c5","webpack://Msdyn365.Commerce.Online/./src/common/address-module.data.ts?1c51","webpack://Msdyn365.Commerce.Online/./src/common/components/address-alert.tsx?e0a2","webpack://Msdyn365.Commerce.Online/./src/common/components/address-checkbox.tsx?a2d4","webpack://Msdyn365.Commerce.Online/./src/common/components/address-dropdown.tsx?34b0","webpack://Msdyn365.Commerce.Online/./src/common/components/address-label.tsx?1e7b","webpack://Msdyn365.Commerce.Online/./src/common/components/address-add.tsx?876e","webpack://Msdyn365.Commerce.Online/./src/common/components/address-button.tsx?ce28","webpack://Msdyn365.Commerce.Online/./src/common/components/address-error-message.tsx?73f9","webpack://Msdyn365.Commerce.Online/./src/common/components/address-error-title.tsx?b6f8","webpack://Msdyn365.Commerce.Online/./src/common/components/address-input.tsx?2742","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-business-account-address/krannich-c-business-account-address.tsx?acea","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-business-account-address/krannich-c-business-account-address.view.tsx?e981","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-order-template/components/add-order-template-to-cart.component.tsx?ea94","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-order-template/components/order-template-products-preview.tsx?d308","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-order-template/components/lines-added-to-cart-dialog.component.tsx?9ea8","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-portal/krannich-portal.tsx?fe65","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-portal/krannich-portal.view.tsx?7e56","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/media-gallery.view.tsx?5d21","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/order-details.view.tsx?450a","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/search.view.tsx?59e3","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/components/terms-paragraph.tsx?1a9a","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.tsx?df24","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.view.tsx?1ff2","webpack://Msdyn365.Commerce.Online/./src/modules/cart/cart.view.tsx?d8c2","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/search-result-container.view.tsx?89df","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.tsx?65fe","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.tsx?9384","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.view.tsx?94a7","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/quick-order.view.tsx?a96d","webpack://Msdyn365.Commerce.Online/./src/modules/search-result-container/search-result-container.view.tsx?b779","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/promocode.component.tsx?c06b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/footer-item.view.tsx?15be","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/write-review.view.tsx?c67c"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICommerceApiSettings,\r\n ICreateActionContext,\r\n IGeneric\r\n} from '@msdyn365-commerce/core';\r\nimport { getAddressPurposesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\n/**\r\n * Input class for get Address Purposes data action.\r\n */\r\nexport class GetAddressPurposesInput implements IActionInput {\r\n private readonly apiSettings: ICommerceApiSettings;\r\n\r\n constructor(apiSettings: ICommerceApiSettings) {\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey('AddressPurpose', this.apiSettings);\r\n\r\n public getCacheObjectType = () => 'AddressPurpose';\r\n\r\n public dataCacheType = (): CacheType => 'application';\r\n}\r\n\r\n/**\r\n * Creates the input required to make the retail api call.\r\n * @param inputData\r\n */\r\nconst createInput = (inputData: ICreateActionContext>): GetAddressPurposesInput => {\r\n return new GetAddressPurposesInput(inputData.requestContext.apiSettings);\r\n};\r\n\r\nexport async function getAddressPurposesAction(input: GetAddressPurposesInput, ctx: IActionContext): Promise {\r\n return getAddressPurposesAsync({\r\n callerContext: ctx,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\r\n });\r\n}\r\n\r\nexport const getAddressPurposesActionDataAction = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/address/get-address-purposes',\r\n action: >getAddressPurposesAction,\r\n input: createInput\r\n});\r\n\r\nexport default getAddressPurposesActionDataAction;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICommerceApiSettings\r\n} from '@msdyn365-commerce/core';\r\nimport { getStateProvincesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { StateProvinceInfo } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\n/**\r\n * Input class for get state provinces data action.\r\n */\r\nexport class GetStateProvincesInput implements IActionInput {\r\n public countryRegionId: string;\r\n\r\n private readonly apiSettings: ICommerceApiSettings;\r\n\r\n constructor(countryRegionId: string, apiSettings: ICommerceApiSettings) {\r\n this.countryRegionId = countryRegionId;\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey(`StateProvinceInfo-${this.countryRegionId}`, this.apiSettings);\r\n\r\n public getCacheObjectType = () => 'StateProvinceInfo';\r\n\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nexport async function getStateProvinceAction(input: GetStateProvincesInput, ctx: IActionContext): Promise {\r\n return getStateProvincesAsync(\r\n {\r\n callerContext: ctx,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\r\n },\r\n input.countryRegionId\r\n );\r\n}\r\n\r\nexport const getStateProvinceActionDataAction = createObservableDataAction({\r\n action: >getStateProvinceAction\r\n});\r\n\r\nexport default getStateProvinceActionDataAction;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n CountryRegionInfo,\r\n StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n addAddress,\r\n AddressManagementInput,\r\n ArrayExtensions,\r\n updateAddress,\r\n updatePrimaryAddress\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { getAddressPurposesAction, GetAddressPurposesInput } from '../actions/get-address-purposes';\r\nimport { getStateProvinceAction, GetStateProvincesInput } from '../actions/get-state-provinces';\r\n// import { IAddressResource, IAddressResponse } from './address-module.data';\r\nimport { IAddressResource, IAddressResponse } from '../common/address-module.data';\r\n\r\n/**\r\n *\r\n * Address common.\r\n */\r\nexport class AddressCommon {\r\n private readonly context: ICoreContext;\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly telemetry: ITelemetry;\r\n\r\n constructor(context: ICoreContext, resources: IAddressResource, telemetry: ITelemetry) {\r\n this.context = context;\r\n this.resources = resources;\r\n this.telemetry = telemetry;\r\n }\r\n\r\n public getDefaultCountryRegionId = (countryRegionId: string, countryRegions: CountryRegionInfo[], market?: string): string => {\r\n const marketISOCode = market || 'US';\r\n const currentCountryRegion = countryRegions.find(countryRegion => (countryRegion.ISOCode || '') === marketISOCode);\r\n return (currentCountryRegion && currentCountryRegion.CountryRegionId) || countryRegionId;\r\n };\r\n\r\n public parseRetailException = (resources: IAddressResource): IAddressResponse => {\r\n return {\r\n errorTitle: resources.addressErrorMessageTitle,\r\n errorMessage: resources.addressGenericErrorMessage\r\n };\r\n };\r\n\r\n public isAuthenticatedFlow = (): boolean => {\r\n return this.context.request.user.isAuthenticated;\r\n };\r\n\r\n public getStateProvinces = async (countryRegionId: string): Promise => {\r\n let response: StateProvinceInfo[] = [];\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const input = new GetStateProvincesInput(countryRegionId, this.context.request.apiSettings);\r\n response = await getStateProvinceAction(input, this.context.actionContext);\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to get state provinces');\r\n }\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n\r\n // For any address, check for common requried field else treat it as invalid\\empty address.\r\n public isEmpty = (address: Address): boolean => {\r\n if (address && address.ThreeLetterISORegionName && (address.State || address.City)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n public addCustomerAddress = async (address: Address): Promise => {\r\n await this.updateLogisticsLocationRoleRecordId(address);\r\n return this.submitCustomerAddress(addAddress, address);\r\n };\r\n\r\n public updateCustomerAddress = async (address: Address): Promise => {\r\n await this.updateLogisticsLocationRoleRecordId(address);\r\n return this.submitCustomerAddress(updateAddress, address);\r\n };\r\n\r\n public updateCustomerPrimaryAddress = async (address: Address): Promise => {\r\n return this.submitCustomerAddress(updatePrimaryAddress, address);\r\n };\r\n\r\n private readonly submitCustomerAddress = async (\r\n addressAction: IObservableAction,\r\n address: Address\r\n ): Promise => {\r\n address.AddressTypeValue = address.AddressTypeValue || 7; // 7 sets it to HOME by default\r\n\r\n const input = new AddressManagementInput(address);\r\n return this.execAddressAction(addressAction, input, address);\r\n };\r\n\r\n private readonly execAddressAction = async (\r\n addressAction: IObservableAction,\r\n input: IActionInput | IActionInput[],\r\n address: Address\r\n ): Promise => {\r\n let response: IAddressResponse = {};\r\n\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const addresses = await addressAction(input, this.context.actionContext);\r\n if (addresses.length > 0) {\r\n response.address = address.RecordId ? address : addresses[addresses.length - 1];\r\n } else {\r\n response.address = address;\r\n }\r\n response.customerAddresses = addresses;\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to exec address action');\r\n }\r\n response = this.parseRetailException(this.resources);\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n\r\n /**\r\n * Function to get the address purposes and update the LogisticsLocationRoleRecordId to update the address type.\r\n * @param address - Address object.\r\n * @returns Returns void.\r\n */\r\n private readonly updateLogisticsLocationRoleRecordId = async (address: Address): Promise => {\r\n let addressPurposes: AddressPurpose[] = [];\r\n try {\r\n const input: GetAddressPurposesInput = new GetAddressPurposesInput(this.context.request.apiSettings);\r\n addressPurposes = await getAddressPurposesAction(input, this.context.actionContext);\r\n } catch (error) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- Supparsing the any type for error.\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to get address purposes');\r\n }\r\n if (ArrayExtensions.hasElements(addressPurposes)) {\r\n const addressPurpose: AddressPurpose | undefined = addressPurposes.find(\r\n purpose => purpose.AddressType === address.AddressTypeValue\r\n );\r\n if (addressPurpose) {\r\n address.LogisticsLocationRoleRecordId = addressPurpose.RecordId;\r\n }\r\n }\r\n };\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nexport enum AddressItemDisplayType {\r\n Input = 'Input',\r\n Dropdown = 'Dropdown',\r\n Checkbox = 'Checkbox',\r\n Number = 'number' // VSI Customization for phone number\r\n}\r\n\r\nexport enum AddressValidationRuleType {\r\n Required = 'Required',\r\n Format = 'Format'\r\n}\r\n\r\nexport enum AddressItemType {\r\n Name = 1001,\r\n Phone = 1002,\r\n IsPrimary = 1003,\r\n AddressTypeValue = 1004,\r\n ZipCode = 1,\r\n City = 2,\r\n County = 3,\r\n State = 4,\r\n ThreeLetterISORegionName = 5,\r\n Street = 6,\r\n DistrictName = 7,\r\n StreetNumber = 8,\r\n BuildingCompliment = 9,\r\n Postbox = 10,\r\n House_RU = 21,\r\n Flat_RU = 22,\r\n CountryOKSMCode_RU = 23\r\n}\r\n\r\nexport interface IAddressItem {\r\n name: string;\r\n type: AddressItemType;\r\n label: string;\r\n maxLength: number;\r\n displayType: AddressItemDisplayType;\r\n validationRules?: IAddressValidationRule[];\r\n isNewLine: boolean;\r\n}\r\n\r\nexport interface IAddressValidationRule {\r\n type: AddressValidationRuleType;\r\n regEx: string;\r\n message: string;\r\n}\r\n\r\nexport interface IAddressDropdownsData {\r\n [index: string]: { key?: string | number; value?: string }[];\r\n}\r\n\r\n// tslint:disable-next-line: no-empty-interface\r\nexport interface IAddressFormatData {}\r\n","/* eslint-disable security/detect-non-literal-regexp */\r\n/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n CountryRegionInfo,\r\n StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { get, set } from 'mobx';\r\n\r\nimport { AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule } from '../common/address-format.data';\r\nimport { AddressMetaData } from '../common/address-meta-data';\r\n/**\r\n *\r\n * Retail Service Address format parser.\r\n */\r\nexport class AddressFormat {\r\n private readonly countryRegionsInfo?: CountryRegionInfo[];\r\n\r\n private readonly addressPurposes?: AddressPurpose[];\r\n\r\n private readonly addressMetaData: AddressMetaData;\r\n\r\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\r\n this.countryRegionsInfo = countryRegionsInfo;\r\n this.addressMetaData = addressMetaData;\r\n this.addressPurposes = addressPurposes;\r\n }\r\n\r\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n if (countryRegionInfo) {\r\n return this._getAddressDisplayFormat(countryRegionInfo);\r\n }\r\n return [];\r\n }\r\n\r\n public getCountryFormat(): { key?: string; value?: string }[] {\r\n return (this.countryRegionsInfo || []).map(countryRegion => {\r\n return {\r\n key: countryRegion.CountryRegionId,\r\n value: countryRegion.ShortName\r\n };\r\n });\r\n }\r\n\r\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\r\n return (stateProvinceInfo || []).map(state => {\r\n return {\r\n key: state.StateId,\r\n value: state.StateName\r\n };\r\n });\r\n }\r\n\r\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\r\n return (this.addressPurposes || []).map(addressPurpose => {\r\n return {\r\n key: addressPurpose.AddressType,\r\n value: addressPurpose.Name\r\n };\r\n });\r\n }\r\n\r\n public getPrefilledAddressDropdownData = (\r\n stateDefaultSelectionText: string,\r\n stateProvinceInfo?: StateProvinceInfo[]\r\n ): IAddressDropdownsData => {\r\n const defaultStateText = {\r\n key: '',\r\n value: stateDefaultSelectionText\r\n };\r\n const dropdownData: IAddressDropdownsData = {};\r\n\r\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\r\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\r\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\r\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\r\n\r\n return dropdownData;\r\n };\r\n\r\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n\r\n return countryRegionInfo!.ISOCode;\r\n };\r\n\r\n public validateAddressFormat = (\r\n address: Address,\r\n validationError: Address,\r\n countryRegionId: string,\r\n propertyName?: string\r\n ): boolean => {\r\n let isValid: boolean = true;\r\n let validationtor;\r\n const addressFormat = this.getAddressFormat(address.ThreeLetterISORegionName || countryRegionId);\r\n\r\n addressFormat.forEach(addressFormatItem => {\r\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\r\n validationtor = this._inputValidation(addressFormatItem, validationError, address);\r\n if (validationtor !== undefined) {\r\n isValid = validationtor;\r\n }\r\n }\r\n });\r\n\r\n return isValid;\r\n };\r\n\r\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\r\n const address: Address = {};\r\n\r\n // Zip Code\r\n if (result.address.postalCode !== undefined) {\r\n address.ZipCode = result.address.postalCode;\r\n } else {\r\n address.ZipCode = '';\r\n }\r\n\r\n // State\r\n if (stateProvinceInfo) {\r\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\r\n if (!selectedState) {\r\n address.State = '';\r\n address.StateName = result.address.adminDistrict;\r\n } else {\r\n address.State = selectedState.StateId;\r\n address.StateName = selectedState.StateName;\r\n }\r\n }\r\n\r\n // Street\r\n if (result.address.addressLine !== undefined) {\r\n address.Street = result.address.addressLine;\r\n } else {\r\n address.Street = ' ';\r\n }\r\n\r\n // City\r\n if (result.address.locality !== undefined) {\r\n address.City = result.address.locality;\r\n } else {\r\n address.City = '';\r\n }\r\n\r\n // District\r\n if (result.address.district !== undefined) {\r\n address.DistrictName = result.address.district;\r\n address.CountyName = result.address.district;\r\n } else {\r\n address.DistrictName = '';\r\n }\r\n\r\n // Formatted Address\r\n address.FullAddress = result.address.formattedAddress;\r\n\r\n return address;\r\n };\r\n\r\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address): boolean | undefined {\r\n set(validationError, { [addressFormatItem.name]: null });\r\n for (const validationRule of addressFormatItem.validationRules || []) {\r\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\r\n set(validationError, { [addressFormatItem.name]: validationRule.message });\r\n return false;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private readonly _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\r\n if (validationRule.regEx && validationRule.regEx.length > 0) {\r\n const regex = new RegExp(validationRule.regEx);\r\n return regex.test((get(address, propertyName) as string) || '');\r\n }\r\n return true;\r\n };\r\n\r\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\r\n return (this.countryRegionsInfo || []).find(countryRegion => {\r\n return (countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase();\r\n });\r\n }\r\n\r\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\r\n const addressDisplayItem: IAddressItem[] = [];\r\n\r\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\r\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\r\n if (AddressTypeItem) {\r\n addressDisplayItem.push(AddressTypeItem);\r\n }\r\n\r\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\r\n if (nameDisplayItem) {\r\n addressDisplayItem.push(nameDisplayItem);\r\n }\r\n\r\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\r\n if (formatLine.AddressComponentNameValue) {\r\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\r\n if (addressItem) {\r\n addressItem.isNewLine = formatLine.NewLine || false;\r\n addressDisplayItem.push(addressItem);\r\n }\r\n }\r\n });\r\n\r\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\r\n if (phoneDisplayItem) {\r\n addressDisplayItem.push(phoneDisplayItem);\r\n }\r\n\r\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\r\n if (isPrimaryDisplayItem) {\r\n addressDisplayItem.push(isPrimaryDisplayItem);\r\n }\r\n }\r\n\r\n return addressDisplayItem;\r\n }\r\n\r\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\r\n const addressItem = this.addressMetaData.getItemFormat(type);\r\n if (addressItem) {\r\n addressItem.isNewLine = isNewLine;\r\n }\r\n return addressItem;\r\n }\r\n}\r\n","/* eslint-disable security/detect-object-injection */\r\n/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n// import { PhoneRegex } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { PhoneRegex } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from '../common/address-format.data';\r\nimport { IAddressResource } from '../common/address-module.data';\r\n\r\n/**\r\n * Address meta data.\r\n */\r\nexport class AddressMetaData {\r\n private readonly metaData: IAddressItem[] = [];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly requiredFieldRegEx: string = '\\\\S';\r\n\r\n private readonly resourcesPrefix: string = 'address';\r\n\r\n private readonly maxLength: number = 64;\r\n\r\n private readonly requiredFields: AddressItemType[];\r\n\r\n private readonly excludedTypes: AddressItemType[];\r\n\r\n constructor(resources: IAddressResource, excluded?: AddressItemType[], required?: AddressItemType[]) {\r\n this.resources = resources || {};\r\n this.excludedTypes = excluded || [];\r\n this.requiredFields =\r\n required !== undefined\r\n ? required\r\n : [\r\n AddressItemType.Name,\r\n AddressItemType.ZipCode,\r\n AddressItemType.City,\r\n AddressItemType.State,\r\n AddressItemType.ThreeLetterISORegionName,\r\n AddressItemType.Street,\r\n AddressItemType.Phone\r\n ];\r\n this._init();\r\n }\r\n\r\n public getItemFormat(id: number): IAddressItem | undefined {\r\n return this.metaData.find(item => {\r\n return item.type === id;\r\n });\r\n }\r\n\r\n private _init(): void {\r\n this._addItem(AddressItemType.Name, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Phone, AddressItemDisplayType.Input, PhoneRegex.defaultRegex); // VSI Customization for phone number and change error message from resources. Account management address, Buisness Account address, checkout shipping address.\r\n this._addItem(AddressItemType.ZipCode, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.City, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.County, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.State, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.ThreeLetterISORegionName, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.Street, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.DistrictName, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.StreetNumber, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.BuildingCompliment, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Postbox, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.House_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Flat_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.CountryOKSMCode_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.AddressTypeValue, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.IsPrimary, AddressItemDisplayType.Checkbox);\r\n }\r\n\r\n private _addItem(type: AddressItemType, displayType: AddressItemDisplayType, format?: string): void {\r\n if (this.excludedTypes.includes(type)) {\r\n return;\r\n }\r\n const nameKey = AddressItemType[type].replace('_', '');\r\n\r\n // Find out if currentItem is required field\r\n const validationRules = this._validationRules(type, nameKey, format);\r\n const isRequired = validationRules.some(rule => rule.type === AddressValidationRuleType.Required);\r\n\r\n // If no optional string is provided in resource file, use the original label text\r\n const optionalString =\r\n this.resources[`${this.resourcesPrefix}${nameKey}LabelOptional`] || this.resources[`${this.resourcesPrefix}${nameKey}Label`];\r\n const item: IAddressItem = {\r\n type,\r\n displayType,\r\n name: AddressItemType[type],\r\n label: isRequired ? this.resources[`${this.resourcesPrefix}${nameKey}Label`] : optionalString,\r\n maxLength: type === 1002 ? 11 : this.maxLength,\r\n validationRules,\r\n isNewLine: true\r\n };\r\n this.metaData.push(item);\r\n }\r\n\r\n private _validationRules(type: AddressItemType, name: string, format?: string): IAddressValidationRule[] {\r\n const validationRules: IAddressValidationRule[] = [];\r\n\r\n for (const ruleType of Object.keys(AddressValidationRuleType)) {\r\n const key = `${this.resourcesPrefix}${name}${ruleType}`;\r\n const message: string = this.resources[`${key}ErrorMessage`];\r\n switch (ruleType) {\r\n case AddressValidationRuleType.Required: {\r\n if (this.requiredFields.find((itemType: AddressItemType) => itemType === type)) {\r\n validationRules.push(this._validationRule(ruleType, this.requiredFieldRegEx, message));\r\n }\r\n break;\r\n }\r\n case AddressValidationRuleType.Format: {\r\n validationRules.push(this._validationRule(ruleType, format!, message));\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n return validationRules;\r\n }\r\n\r\n private _validationRule(type: AddressValidationRuleType, regEx: string, message: string): IAddressValidationRule {\r\n return {\r\n type,\r\n regEx,\r\n message\r\n };\r\n }\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\nimport { Heading } from '@msdyn365-commerce-modules/data-types';\r\n\r\nexport enum AddressOperation {\r\n Add = 'Add',\r\n Show = 'Show',\r\n Update = 'Update',\r\n List = 'List',\r\n Multiple = 'Multiple'\r\n}\r\n\r\nexport enum AddressType {\r\n Shipping = 'Shipping',\r\n Billing = 'Billing',\r\n Invoice = 'Invoice',\r\n Company = 'Company'\r\n}\r\n\r\nexport interface IDropdownDisplayData {\r\n [index: string]: { key?: string; value?: string }[];\r\n}\r\n\r\nexport interface IAddressResponse {\r\n errorTitle?: string;\r\n errorMessage?: string;\r\n customerAddresses?: Address[];\r\n address?: Address;\r\n}\r\n\r\nexport interface IAddressConfig {\r\n heading?: Heading;\r\n primaryAddressSectionHeading?: Heading;\r\n otherAddressSectionHeading?: Heading;\r\n addAddressHeading?: Heading;\r\n editAddressHeading?: Heading;\r\n}\r\n\r\nexport interface IAddressResource {\r\n addressChangeCheckboxAriaLabel: string;\r\n addressAddButtonText: string;\r\n addressAddButtonAriaLabel: string;\r\n addressAddNewButtonText?: string;\r\n addressAddNewButtonAriaLabel?: string;\r\n addressPrimaryButtonText: string;\r\n addressPrimaryButtonAriaLabel: string;\r\n addressEditButtonText: string;\r\n addressEditButtonAriaLabel: string;\r\n addressRemoveButtonText: string;\r\n addressRemoveButtonAriaLabel: string;\r\n addressSaveButtonText: string;\r\n addressSaveButtonAriaLabel: string;\r\n addressCancelButtonText: string;\r\n addressCancelButtonAriaLabel: string;\r\n addressStateDefaultSelectionText: string;\r\n addressNameLabel: string;\r\n addressNameLabelOptional?: string;\r\n addressNameRequiredErrorMessage: string;\r\n addressPhoneLabel: string;\r\n addressPhoneLabelOptional?: string;\r\n addressPhoneRequiredErrorMessage: string;\r\n addressZipCodeLabel: string;\r\n addressZipCodeLabelOptional?: string;\r\n addressZipCodeRequiredErrorMessage: string;\r\n addressCityLabel: string;\r\n addressCityLabelOptional?: string;\r\n addressCityRequiredErrorMessage: string;\r\n addressCountyLabel: string;\r\n addressCountyLabelOptional?: string;\r\n addressCountyRequiredErrorMessage: string;\r\n addressStateLabel: string;\r\n addressStateLabelOptional?: string;\r\n addressStateRequiredErrorMessage: string;\r\n addressThreeLetterISORegionNameLabel: string;\r\n addressThreeLetterISORegionNameLabelOptional?: string;\r\n addressThreeLetterISORegionNameRequiredErrorMessage: string;\r\n addressStreetRequiredErrorMessage: string;\r\n addressDistrictLabel: string;\r\n addressDistrictLabelOptional?: string;\r\n addressDistrictNameLabel: string;\r\n addressDistrictNameLabelOptional?: string;\r\n addressDistrictRequiredErrorMessage: string;\r\n addressStreetNumberLabel: string;\r\n addressStreetNumberLabelOptional?: string;\r\n addressStreetNumberRequiredErrorMessage: string;\r\n addressBuildingComplimentLabel: string;\r\n addressBuildingComplimentLabelOptional?: string;\r\n addressBuildingComplimentRequiredErrorMessage: string;\r\n addressPostboxLabel: string;\r\n addressPostboxLabelOptional?: string;\r\n addressPostboxRequiredErrorMessage: string;\r\n addressHouseRULabel: string;\r\n addressHouseRULabelOptional?: string;\r\n addressHouseRURequiredErrorMessage: string;\r\n addressFlatRULabel: string;\r\n addressFlatRULabelOptional?: string;\r\n addressFlatRURequiredErrorMessage: string;\r\n addressCountryOKSMCodeRULabel: string;\r\n addressCountryOKSMCodeRURequiredErrorMessage: string;\r\n addressErrorMessageTitle: string;\r\n addressGenericErrorMessage: string;\r\n addressEmptyListAddressMessage: string;\r\n removeAddressNotification?: string;\r\n addressProductImage?: string;\r\n addressProductNumberText?: string;\r\n addressProductText?: string;\r\n addressProductUnitPriceText?: string;\r\n addressProductUOMText?: string;\r\n addressProductQuantityText?: string;\r\n addressProductActionsText?: string;\r\n addressSelectAllRowsText?: string;\r\n addressProductAddressText?: string;\r\n addressShipMultipleText?: string;\r\n addressShipMultipleAriaLabel?: string;\r\n saveAndContinueBtnLabel?: string;\r\n addressShipSingleText?: string;\r\n addressShipSingleAriaLabel?: string;\r\n clearSelectionButtonText?: string;\r\n clearSelectionButtonAriaLabel?: string;\r\n chooseAddressForSelectedItemsText?: string;\r\n chooseAddressForSelectedItemsAriaLabel?: string;\r\n noAddressSelectedAriaLabel?: string;\r\n unavailableProductErrorMessage?: string;\r\n outOfStockProductErrorMessage?: string;\r\n}\r\n\r\n// tslint:disable-next-line: no-empty-interface\r\nexport interface IAddressModuleData {}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressAlert {\r\n message?: string;\r\n}\r\n\r\n/**\r\n * Address alert.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressAlertFunctionComponent: React.FC = (props: IAdressAlert) => {\r\n const message = props.message;\r\n return (\r\n \r\n {message && <>{message}}\r\n \r\n );\r\n};\r\n\r\nexport default AddressAlertFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressCheckbox {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n isChecked: boolean;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\n/**\r\n * Address checkbox.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressCheckboxFunctionComponent: React.FC = (props: IAdressCheckbox) => {\r\n const {\r\n id: itemId,\r\n name,\r\n className,\r\n type,\r\n isChecked,\r\n additionalAddributes,\r\n telemetryContent,\r\n autoFocus: shouldBeAutoFocused,\r\n onChange\r\n } = props;\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressCheckboxFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressDropdown {\r\n id: string;\r\n name: string;\r\n className: string;\r\n value: string | number;\r\n additionalAddributes?: object;\r\n displayData: { key?: string | number; value?: string }[];\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst getDropdownItem = (key?: string | number, value?: string, selectedValue?: string | number): React.ReactNode => {\r\n let isSelected: boolean;\r\n if (typeof key === 'number') {\r\n isSelected = key === selectedValue;\r\n } else {\r\n isSelected = typeof selectedValue === 'string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address dropdown.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressDropdownFunctionComponent: React.FC = (props: IAdressDropdown) => {\r\n const { id: itemId, name, className, value, additionalAddributes, displayData, onChange } = props;\r\n\r\n return (\r\n \r\n {displayData && displayData.map(item => getDropdownItem(item.key, item.value, value))}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDropdownFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressLabel {\r\n id: string;\r\n text: string;\r\n}\r\n\r\n/**\r\n * Address label.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressLabelFunctionComponent: React.FC = (props: IAdressLabel) => {\r\n const { id: itemId, text } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressLabelFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressDropdownsData,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from '../address-format.data';\r\nimport { AddressType, IAddressResource, IAddressResponse } from '../address-module.data';\r\nimport AddressAlertComponent from './address-alert';\r\nimport AddressButtonComponent from './address-button';\r\nimport AdressCheckboxComponent from './address-checkbox';\r\nimport AdressDropdownComponent from './address-dropdown';\r\nimport AddressErrorMessageComponent from './address-error-message';\r\nimport AddressErrorTitleComponent from './address-error-title';\r\nimport AddressInputComponent from './address-input';\r\nimport AddressLabelComponent from './address-label';\r\n\r\nexport interface IAddressAddInputProps {\r\n isUpdating?: boolean;\r\n hasError?: boolean;\r\n hasExternalSubmitGroup?: boolean;\r\n addressType: AddressType;\r\n addressFormat: IAddressItem[];\r\n defaultCountryRegionId: string;\r\n defaultAddressType: number;\r\n selectedAddress?: Address;\r\n dropdownDisplayData: IAddressDropdownsData;\r\n resources: IAddressResource;\r\n addressActionResponse?: IAddressResponse;\r\n addAddressHeading?: HeadingData;\r\n editAddressHeading?: HeadingData;\r\n validationError?: object;\r\n telemetryContent?: ITelemetryContent;\r\n shouldAutoFocus?: boolean;\r\n onInputChange(event: React.ChangeEvent): void;\r\n onDropdownChange(event: React.ChangeEvent): void;\r\n onSave?(): void;\r\n onCancel?(): void;\r\n usSiteFlag: boolean;\r\n mexicoSiteFlag: boolean;\r\n}\r\n\r\nexport interface IAddressError {\r\n AddressError: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddItem {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n customAlert: React.ReactNode;\r\n customLabel?: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddUpdateProps {\r\n AddressForm: INodeProps;\r\n heading: React.ReactNode;\r\n items: IAddressAddItem[];\r\n hasError: boolean;\r\n error: IAddressError;\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n usSiteFlag?: boolean;\r\n mexicoSiteFlag?: boolean;\r\n}\r\n\r\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\r\n const requriedRule = (validationRules || []).find(validationRule => {\r\n return validationRule.type === AddressValidationRuleType.Required;\r\n });\r\n\r\n return requriedRule ? { 'aria-required': true } : {};\r\n};\r\n\r\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps): IAddressAddItem[] => {\r\n const {\r\n addressFormat,\r\n addressType,\r\n dropdownDisplayData,\r\n defaultCountryRegionId,\r\n defaultAddressType,\r\n validationError = {},\r\n onInputChange,\r\n onDropdownChange,\r\n shouldAutoFocus,\r\n usSiteFlag,\r\n mexicoSiteFlag\r\n } = props;\r\n return addressFormat.map((addressFormatItem, index) => {\r\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\r\n const errorMessage = get(validationError, addressFormatItem.name);\r\n const className = classname(\r\n 'msc-address-form__item',\r\n addressFormatItem.name === 'Phone' && usSiteFlag && 'us-phone-format',\r\n `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`,\r\n {\r\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\r\n 'address-form__item-invalid': errorMessage\r\n }\r\n );\r\n let input;\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\r\n \r\n );\r\n }\r\n // VSI Customization for type number\r\n else if (addressFormatItem.displayType === AddressItemDisplayType.Number) {\r\n input = (\r\n \r\n );\r\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\r\n input = (\r\n \r\n );\r\n } else {\r\n const displayData = dropdownDisplayData[addressFormatItem.name];\r\n let selectedValue = selectedAddress[addressFormatItem.name];\r\n\r\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\r\n selectedValue = selectedValue || defaultCountryRegionId;\r\n }\r\n\r\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\r\n selectedValue = selectedValue || defaultAddressType;\r\n }\r\n\r\n input = (\r\n \r\n );\r\n }\r\n const zipcodeError = errorMessage?.replace('Post code', 'Zip Code');\r\n const postcodeError = errorMessage?.replace('Post code', 'Postal Code');\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className, id: `${elementId}_container` },\r\n label: ,\r\n customLabel:\r\n addressFormatItem.name.toLowerCase() === 'zipcode' ? (\r\n \r\n ) : null,\r\n alert: (\r\n \r\n ),\r\n input,\r\n customAlert:\r\n addressFormatItem.name === 'ZipCode' && selectedAddress[addressFormatItem.name]?.length === 10 ? (\r\n \r\n ) : (\r\n returnAddressAlertComponent(addressFormatItem.name, selectedAddress[addressFormatItem.name], usSiteFlag, mexicoSiteFlag)\r\n )\r\n };\r\n });\r\n};\r\n\r\nconst returnAddressAlertComponent = (AddressName: string, value: string, usSiteFlag?: boolean, mexicoSiteFlag?: boolean) => {\r\n if (usSiteFlag) {\r\n if (AddressName === 'Phone' && (value?.length <= 12 || value?.length === 14)) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n } else if (mexicoSiteFlag) {\r\n if (AddressName === 'Phone' && (value?.length <= 12 || value?.length === 15)) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n if (AddressName === 'Phone' && value?.length === 14) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\r\n const {\r\n editAddressHeading,\r\n addAddressHeading,\r\n selectedAddress = {},\r\n resources,\r\n hasError,\r\n onCancel,\r\n onSave,\r\n hasExternalSubmitGroup,\r\n isUpdating,\r\n addressActionResponse,\r\n telemetryContent\r\n } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n return {\r\n AddressForm: { className: 'msc-address-form' },\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton: onSave && (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: onCancel && (\r\n \r\n ),\r\n hasError: hasError || false,\r\n error: {\r\n AddressError: { className: 'msc-address-form__error' },\r\n title: addressActionResponse && addressActionResponse.errorTitle && ,\r\n message: addressActionResponse && addressActionResponse.errorMessage && (\r\n \r\n )\r\n }\r\n };\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressButton {\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n role?: string;\r\n onClick(event: React.MouseEvent): void;\r\n}\r\n\r\n/**\r\n * Address button.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressButtonFunctionComponent: React.FC = (props: IAddressButton) => {\r\n const { className, text, ariaLabel, disabled: isDisabled, telemetryContent, onClick, role } = props;\r\n const payLoad = getPayloadObject('click', telemetryContent!, text);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressButtonFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorMessage {\r\n message: string;\r\n}\r\n\r\n/**\r\n * Address error message.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressErrorMessageFunctionComponent: React.FC = (props: IAdressErrorMessage) => {\r\n const { message } = props;\r\n\r\n return

{message}

;\r\n};\r\n\r\nexport default AddressErrorMessageFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorTitle {\r\n title: string;\r\n}\r\n\r\n/**\r\n * Address error title.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressErrorTitleFunctionComponent: React.FC = (props: IAdressErrorTitle) => {\r\n const { title } = props;\r\n\r\n return

{title}

;\r\n};\r\n\r\nexport default AddressErrorTitleFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressInput {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n value: string;\r\n maxLength?: number;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n defaultCountryRegionId?: string;\r\n usSiteFlag?: boolean;\r\n mexicoSiteFlag?: boolean;\r\n}\r\n\r\n/**\r\n * Address input.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressInputFunctionComponent: React.FC = (props: IAdressInput) => {\r\n const {\r\n id: itemId,\r\n name,\r\n className,\r\n type,\r\n value,\r\n maxLength,\r\n additionalAddributes,\r\n autoFocus: shouldUseAutoFocus,\r\n telemetryContent,\r\n onChange,\r\n defaultCountryRegionId\r\n } = props;\r\n const usSiteFlag = props.usSiteFlag ? props.usSiteFlag : undefined;\r\n const mexicoSiteFlag = props.mexicoSiteFlag ? props.mexicoSiteFlag : undefined;\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n //VSI customization for business-sign-up\r\n let numberValue = '';\r\n const customMaxLength = usSiteFlag && name === 'Phone' ? 14 : maxLength;\r\n if (name === 'Phone' && value !== undefined) {\r\n if (usSiteFlag) {\r\n const rawPhoneNumber = value.replace(/\\D/g, ''); // Remove non-numeric characters\r\n let formattedPhoneNumber = '';\r\n if (rawPhoneNumber.length >= 11) {\r\n formattedPhoneNumber = rawPhoneNumber.substring(1);\r\n formattedPhoneNumber = formattedPhoneNumber?.split(' ').join('');\r\n // Apply formatting\r\n const areaCode = formattedPhoneNumber?.slice(0, 3);\r\n const firstPart = formattedPhoneNumber?.slice(3, 6);\r\n const secondPart = formattedPhoneNumber?.slice(6);\r\n formattedPhoneNumber = `(${areaCode}) ${firstPart}-${secondPart}`;\r\n } else if (mexicoSiteFlag) {\r\n formattedPhoneNumber = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n const tempValue = formattedPhoneNumber.split(' ').join('');\r\n formattedPhoneNumber = tempValue.replace(/(\\d{2})(\\d{2})(\\d{4})(\\d{4})/, '$1 $2 $3 $4');\r\n } else {\r\n if (rawPhoneNumber.length >= 1) {\r\n formattedPhoneNumber = `(${rawPhoneNumber.slice(0, 3)}`;\r\n if (rawPhoneNumber.length > 3) {\r\n formattedPhoneNumber += `) ${rawPhoneNumber.slice(3, 6)}`;\r\n if (rawPhoneNumber.length > 6) {\r\n formattedPhoneNumber += `-${rawPhoneNumber.slice(6, 10)}`;\r\n }\r\n }\r\n }\r\n }\r\n numberValue = formattedPhoneNumber;\r\n } else {\r\n const phoneReg = /^[0-9\\s]*$/;\r\n if (phoneReg.test(value)) {\r\n numberValue = value;\r\n } else {\r\n numberValue = value.slice(0, -1);\r\n }\r\n }\r\n } else if (name === 'ZipCode' && value !== undefined) {\r\n const zipCodeRegex = /^[a-zA-Z0-9_.-]*$/;\r\n if (zipCodeRegex.test(value)) {\r\n numberValue = value;\r\n } else {\r\n numberValue = value.slice(0, -1);\r\n }\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressInputFunctionComponent;\r\n","/* eslint-disable @typescript-eslint/no-floating-promises */\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, reaction, set } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { AddressCommon } from '../../common/address-common';\r\nimport { AddressFormat } from '../../common/address-format';\r\nimport { AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem } from '../../common/address-format.data';\r\nimport { AddressMetaData } from '../../common/address-meta-data';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IKrannichCBusinessAccountAddressData } from './krannich-c-business-account-address.data';\r\nimport { IKrannichCBusinessAccountAddressProps } from './krannich-c-business-account-address.props.autogenerated';\r\n\r\n/**\r\n * Interface for IBusinessAccountAddressExtendedProps.\r\n */\r\nexport interface IBusinessAccountAddressExtendedProps extends IKrannichCBusinessAccountAddressProps {\r\n hasError: boolean;\r\n isRequired: boolean;\r\n resetAddress: boolean;\r\n updateForm(errors: boolean, currentAddress?: Address): void;\r\n}\r\n\r\n/**\r\n * Interface for IBusinessAccountAddressState.\r\n */\r\nexport interface IBusinessAccountAddressState {\r\n countryId?: string;\r\n states?: StateProvinceInfo[];\r\n}\r\n\r\n/**\r\n * Interface for IBusinessAccountAddressViewProps.\r\n */\r\nexport interface IBusinessAccountAddressViewProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n BusinessAccountAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n usSiteFlag?: boolean;\r\n mexicoSiteFlag?: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component, IBusinessAccountAddressState>}\r\n */\r\nclass BusinessAccountAddress extends React.Component {\r\n @observable private addUpdateAddress: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private readonly validationError: object;\r\n\r\n private readonly addressActionResponse?: IAddressResponse;\r\n\r\n private readonly isUpdating?: boolean;\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat: AddressFormat;\r\n\r\n private countryRegions: CountryRegionInfo[] = [];\r\n\r\n private addressPurposes: AddressPurpose[] = [];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 0; // Default to None (This value set in HQ as Business)\r\n\r\n private readonly shouldAutoFocus?: boolean = false;\r\n\r\n private readonly excludedList: AddressItemType[] = [AddressItemType.Name, AddressItemType.AddressTypeValue, AddressItemType.IsPrimary]; // Default to hiding Name and AddressType inputs\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n public constructor(props: IBusinessAccountAddressExtendedProps) {\r\n super(props);\r\n\r\n const { context, data, resources, telemetry } = this.props;\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this.excludedList, props.isRequired ? undefined : []),\r\n this.addressPurposes\r\n );\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.validationError = {};\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n // Initializing data props\r\n this._dataInitialize(this.props);\r\n\r\n this._setDefaultCountryRegionId();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IBusinessAccountAddressExtendedProps, nextState: IBusinessAccountAddressState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { renderView, config, hasError, resetAddress } = this.props;\r\n\r\n // Business-sign-up will pass this flag when cancel button is clicked\r\n if (resetAddress) {\r\n this._resetAddressFields();\r\n }\r\n const viewProps = {\r\n ...this.props,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n hasError,\r\n className: config.className,\r\n BusinessAccountAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-business-account-address', config.className)\r\n },\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\r\n usSiteFlag:\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForUsSite,\r\n mexicoSiteFlag:\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun ===\r\n this.props.context.app.config.ounNumberForMexicoSite\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Reset Address.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public _resetAddressFields = () => {\r\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\r\n\r\n addressFormat.map(addressFormatItem => {\r\n switch (addressFormatItem.displayType) {\r\n case AddressItemDisplayType.Input:\r\n this.addUpdateAddress[addressFormatItem.name] = '';\r\n break;\r\n case AddressItemDisplayType.Checkbox:\r\n this.addUpdateAddress[addressFormatItem.name] = false;\r\n break;\r\n default:\r\n switch (addressFormatItem.type) {\r\n case AddressItemType.ThreeLetterISORegionName:\r\n this.addUpdateAddress[addressFormatItem.name] = this.countryRegionId;\r\n break;\r\n case AddressItemType.AddressTypeValue:\r\n this.addUpdateAddress[addressFormatItem.name] = this.defaultAddressType;\r\n break;\r\n case AddressItemType.State:\r\n this.addUpdateAddress[addressFormatItem.name] = '';\r\n break;\r\n default:\r\n this.addUpdateAddress[addressFormatItem.name] = undefined;\r\n }\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Method data initialization.\r\n * @param props -The account management props.\r\n */\r\n private readonly _dataInitialize = (props: IBusinessAccountAddressExtendedProps): void => {\r\n const { data } = props;\r\n\r\n reaction(\r\n () => data.countryRegions.result,\r\n () => {\r\n this.countryRegions = data.countryRegions.result ?? [];\r\n }\r\n );\r\n\r\n reaction(\r\n () => data.addressPurposes.result,\r\n () => {\r\n this.addressPurposes = data.addressPurposes.result ?? [];\r\n }\r\n );\r\n\r\n reaction(\r\n () => data.countryStates.result,\r\n () => {\r\n this.stateProvinceInfo = data.countryStates.result ?? [];\r\n }\r\n );\r\n };\r\n\r\n // Set validationError and hasError to hide error messages since in the B2B\r\n // request form, no errors would visually show since user wont be able to submit\r\n // until form is filled and correct\r\n /**\r\n * Render Add Or Update Address Function.\r\n * @returns - AddressAddUpdate.\r\n */\r\n\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n const usSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForUsSite;\r\n const mexicoSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForMexicoSite;\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Company,\r\n addressFormat: this.addressFormat.getAddressFormat(this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n shouldAutoFocus: this.shouldAutoFocus,\r\n validationError: this.validationError,\r\n hasError: this.props.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n usSiteFlag,\r\n mexicoSiteFlag\r\n });\r\n };\r\n\r\n /**\r\n * On Address Add Update Input Change Function.\r\n * @param event - Input event change function.\r\n */\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n this._updateAddress(event.target.name, event.target.value);\r\n };\r\n\r\n /**\r\n * On Address Add Update Dropdown Change Function.\r\n * @param event - Change dropdown event.\r\n */\r\n private readonly _onAddressAddUpdateDropdownChange = async (event: React.ChangeEvent): Promise => {\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n await this._updateCountryRegionId(event.target.value);\r\n } else {\r\n this._updateAddress(event.target.name, event.target.value);\r\n }\r\n };\r\n\r\n /**\r\n * Update Address Function.\r\n * @param name - String.\r\n * @param value - String.\r\n */\r\n private readonly _updateAddress = (name: string, value: string | number) => {\r\n const usSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForUsSite;\r\n const mexicoSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForMexicoSite;\r\n const { updateForm, isRequired, resources } = this.props;\r\n let cleanValue = value;\r\n if (typeof value === 'string') {\r\n if (name === 'Phone') {\r\n if (usSiteFlag) {\r\n cleanValue = value.replace(/\\D/g, ''); // Remove non-numeric characters\r\n } else if (mexicoSiteFlag) {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n const tempValue = cleanValue.split(' ').join('');\r\n cleanValue = tempValue.replace(/(\\d{2})(\\d{2})(\\d{4})(\\d{4})/, '$1 $2 $3 $4');\r\n } else {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n const tempValue = cleanValue.split(' ').join('');\r\n cleanValue = tempValue.replace(/(\\d{2})(\\d{1})(\\d{4})(\\d{4})/, '$1 $2 $3 $4');\r\n // VSI CUSOTMIZATION TO REPLACE STRING WITH NUMBER FORMAT\r\n }\r\n } else {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n }\r\n }\r\n set(this.addUpdateAddress, { [name]: cleanValue });\r\n\r\n if (this._isEmpty()) {\r\n if (isRequired) {\r\n updateForm(true, undefined);\r\n } else {\r\n // Reset addressFormat as if address was NOT a required field\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this.excludedList, []),\r\n this.addressPurposes\r\n );\r\n updateForm(false, this.addUpdateAddress);\r\n }\r\n } else {\r\n // Get new addressFormat if address was a required field\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this.excludedList, undefined),\r\n this.addressPurposes\r\n );\r\n\r\n // Verify with new rules\r\n if (this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n updateForm(false, this.addUpdateAddress);\r\n } else {\r\n updateForm(true, undefined);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Is empty Function.\r\n * @returns - Boolean.\r\n */\r\n // Walk through array and check if valued is defined or value is not an empty string\r\n private readonly _isEmpty = () => {\r\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\r\n for (const addressFormatItem of addressFormat) {\r\n if (addressFormatItem.type !== AddressItemType.ThreeLetterISORegionName || this._isInputRequired(addressFormatItem)) {\r\n const addressItemValue = this.addUpdateAddress[addressFormatItem.name];\r\n\r\n // Check each input field, if value is defined and not an empty string --> address is not empty\r\n if (addressItemValue || (addressItemValue && addressItemValue !== '')) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * Is Input Required Function.\r\n * @param addressFormatItem - IAddressItem.\r\n * @returns - Boolean.\r\n */\r\n private readonly _isInputRequired = (addressFormatItem: IAddressItem): boolean => {\r\n if (\r\n ObjectExtensions.isNullOrUndefined(addressFormatItem) ||\r\n !addressFormatItem.validationRules ||\r\n addressFormatItem.validationRules.length === 0\r\n ) {\r\n return false;\r\n }\r\n\r\n for (const validationRule of addressFormatItem.validationRules) {\r\n if (validationRule.type === AddressValidationRuleType.Required) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request.channel?.ChannelCountryRegionISOCode;\r\n\r\n this._updateCountryRegionId(this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market));\r\n\r\n // Set default AddressType\r\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\r\n }\r\n\r\n /**\r\n * Update Country Region Id Function.\r\n * @param value - String.\r\n */\r\n private readonly _updateCountryRegionId = async (value: string) => {\r\n this.countryRegionId = value;\r\n\r\n await this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n this._updateAddress('State', '');\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n });\r\n\r\n this._updateAddress('ThreeLetterISORegionName', this.countryRegionId);\r\n };\r\n}\r\n\r\nexport default BusinessAccountAddress;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IBusinessAccountAddressViewProps } from './krannich-c-business-account-address';\r\n\r\n/**\r\n * Address Add Update Component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address Heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - IAddressError.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns - AddressForm Node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n usSiteFlag,\r\n mexicoSiteFlag\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input, customAlert, customLabel } = item;\r\n if (key === 'County' || key === 'BuildingCompliment' || key === 'DistrictName' || key === 'StreetNumber') {\r\n return null;\r\n }\r\n return (\r\n \r\n {customLabel !== null && (usSiteFlag || mexicoSiteFlag) ? customLabel : label}\r\n {hasError && alert}\r\n {customAlert !== null ? customAlert : null}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business Account Address View Component.\r\n * @param props - Props.\r\n * @returns - BusinessAccountAddress Module.\r\n */\r\nconst BusinessAccountAddressView: React.FC = props => {\r\n const { BusinessAccountAddress, showAddOrUpdateAddress, usSiteFlag, mexicoSiteFlag } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinessAccountAddressView;\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPopupProductsProps,\r\n ITelemetryContent,\r\n PopupProducts,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport classnames from 'classnames';\r\nimport React, { useState } from 'react';\r\n\r\nimport { ILinesAddedToCartDialogResources, LinesAddedToCartDialog } from './lines-added-to-cart-dialog.component';\r\n\r\nexport interface IAddOrderTemplateToCartComponentData {\r\n orderTemplate: OrderTemplate;\r\n cart: ICartState | undefined;\r\n}\r\n\r\nexport interface IAddOrderTemplateToCartComponentProps extends IComponentProps {\r\n className?: string;\r\n parentElementRef?: React.RefObject\r\n \r\n \r\n );\r\n};\r\n\r\nexport const AddOrderTemplateToCartComponent: React.FunctionComponent =\r\n // @ts-expect-error -- As per design, custom component\r\n msdyn365Commerce.createComponent('AddOrderTemplate', {\r\n component: AddOrderTemplate,\r\n ...AddToCartComponentActions\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\n\r\nexport interface IOrderTemplateProductsPreviewComponentProps {\r\n className: string;\r\n products: FullProduct[];\r\n context: ICoreContext;\r\n imageSettings?: IImageSettings;\r\n}\r\n\r\nexport const OrderTemplateProductsPreviewComponent = (props: IOrderTemplateProductsPreviewComponentProps) => {\r\n const { products, className, imageSettings } = props;\r\n\r\n return (\r\n
\r\n {renderOrderTemplateImages(props.context, `${className}__products`, products, imageSettings)}\r\n
\r\n );\r\n};\r\n\r\nconst renderOrderTemplateImage = (context: ICoreContext, className: string, product: FullProduct, imageSettings?: IImageSettings) => {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst renderOrderTemplateImages = (\r\n context: ICoreContext,\r\n className: string,\r\n products: FullProduct[],\r\n imageSettings?: IImageSettings\r\n): JSX.Element | null => {\r\n return (\r\n
\r\n
\r\n
\r\n {products.length > 0 && renderOrderTemplateImage(context, className, products[0], imageSettings)}\r\n
\r\n
\r\n {products.length > 1 && renderOrderTemplateImage(context, className, products[1], imageSettings)}\r\n
\r\n
\r\n
\r\n
\r\n {products.length > 2 && renderOrderTemplateImage(context, className, products[2], imageSettings)}\r\n
\r\n
\r\n {products.length > 3 && renderOrderTemplateImage(context, className, products[3], imageSettings)}\r\n
\r\n
\r\n
\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { OrderTemplateProductsPreviewComponent } from './order-template-products-preview';\r\n\r\nexport interface ILinesAddedToCartDialogResources {\r\n viewCartButtonText: string;\r\n orderTemplateCloseButtonText: string;\r\n linesAddedToCartHeaderItemsOneText: string;\r\n linesAddedToCartHeaderLinesOneText: string;\r\n linesAddedToCartHeaderLinesFormatText: string;\r\n linesAddedToCartHeaderMessageText: string;\r\n onlyThoselinesAddedToCartMessageText: string;\r\n}\r\n\r\nexport interface ILinesAddedToCartDialogData {\r\n linesCount: number;\r\n orderTemplate: ProductList;\r\n products: FullProduct[];\r\n onlyThoselinesAddedWithAvailableQuantityMessage: boolean;\r\n}\r\n\r\nexport interface ILinesAddedToCartDialogProps extends IComponentProps {\r\n className: string;\r\n imageSettings?: IImageSettings;\r\n\r\n dialogStrings: ILinesAddedToCartDialogResources;\r\n\r\n modalOpen: boolean | undefined;\r\n onClose(): void;\r\n\r\n // as required passing in components for later user\r\n isMultipleCatalogFeatureEnabledInHq?: boolean;\r\n catalogId?: number;\r\n}\r\n\r\nexport const LinesAddedToCartDialog = (dialogProps: ILinesAddedToCartDialogProps) => {\r\n const {\r\n dialogStrings,\r\n className,\r\n context,\r\n modalOpen,\r\n imageSettings,\r\n data: { orderTemplate, products, linesCount, onlyThoselinesAddedWithAvailableQuantityMessage }\r\n } = dialogProps;\r\n const getCartPageUrl = (): string => {\r\n return getUrlSync('cart', context.actionContext) || '';\r\n };\r\n\r\n const close: () => void = () => {\r\n dialogProps.onClose();\r\n };\r\n\r\n const lineItemsString =\r\n linesCount === 1\r\n ? dialogStrings.linesAddedToCartHeaderLinesOneText\r\n : dialogStrings.linesAddedToCartHeaderLinesFormatText.replace('{0}', linesCount.toString());\r\n\r\n return (\r\n \r\n \r\n {dialogStrings.linesAddedToCartHeaderItemsOneText}\r\n {dialogStrings.linesAddedToCartHeaderMessageText}\r\n \r\n \r\n
\r\n \r\n
\r\n
{orderTemplate.Name}
\r\n
{lineItemsString}
\r\n {onlyThoselinesAddedWithAvailableQuantityMessage && (\r\n
{dialogStrings.onlyThoselinesAddedToCartMessageText}
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n {dialogStrings.viewCartButtonText}\r\n \r\n \r\n {dialogStrings.orderTemplateCloseButtonText}\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\r\n\r\nimport { IKrannichPortalData } from './krannich-portal.data';\r\nimport MsDyn365, { IActionContext, ICookieContext, ICoreContext } from '@msdyn365-commerce/core';\r\nimport actionAddressFromZipCode, { GetAddressFromZipCodeInput } from '../../actions/get-address-from-zip-code.action';\r\nimport { IKrannichPortalProps, IKrannichPortalConfig, IKrannichPortalResources } from './krannich-portal.props.autogenerated';\r\nimport { getMainDomain } from '../../utils/helper';\r\n\r\nexport interface IModalRouterPortalProps {\r\n actionContext: IActionContext;\r\n cookies: ICookieContext;\r\n resources: IKrannichPortalResources;\r\n config: IKrannichPortalConfig;\r\n context: ICoreContext;\r\n}\r\n\r\ninterface IZipCode {\r\n Locality: string;\r\n Pcode: number;\r\n State: string;\r\n Territory: string;\r\n}\r\n\r\n/**\r\n * KrannichPortal functional component\r\n */\r\n\r\nconst KrannichPortal: React.FC> = props => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [zipCode, setZipCode] = useState('');\r\n const [error, setError] = useState('');\r\n const [alertActive, setAlertActive] = useState(false);\r\n const modalBtn = useRef();\r\n const inputRef = useRef(null);\r\n const enableGenericTerritories = props.config.enableGenericTerritories || false;\r\n\r\n const territory_data = props.config?.territoryData!;\r\n const notFoundError =\r\n props?.context?.actionContext?.requestContext?.apiSettings?.oun !== props.context.app.config.ounNumberForUsSite\r\n ? props.resources.notFound\r\n : props.resources.notFoundZipcode;\r\n\r\n const toggle = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n useEffect(() => {\r\n const addressFromZip = props.context.request.cookies.get('addressFromZip');\r\n\r\n if (!enableGenericTerritories) {\r\n if (addressFromZip.status === 'FOUND') {\r\n const { value } = addressFromZip;\r\n const territory = value?.Territory;\r\n let isTerritoryMatched;\r\n const pathName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.pathname;\r\n const hostName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.hostname;\r\n if (\r\n territory === 'KAUM' &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) || pathName?.includes('aus-mb') || hostName?.includes('aus-mb'))\r\n ) {\r\n isTerritoryMatched = true;\r\n } else if (\r\n territory === 'KAUB' &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) || pathName?.includes('aus-br') || hostName?.includes('aus-br'))\r\n ) {\r\n isTerritoryMatched = true;\r\n } else {\r\n isTerritoryMatched = false;\r\n }\r\n !isTerritoryMatched && __reditectTo(territory);\r\n } else {\r\n toggle();\r\n }\r\n } else {\r\n if (addressFromZip.status === 'FOUND' && territory_data?.length > 0) {\r\n const { value } = addressFromZip;\r\n const territory = value?.Territory;\r\n\r\n let isTerritoryMatched;\r\n const pathName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.pathname;\r\n const hostName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.hostname;\r\n\r\n for (const item of territory_data) {\r\n if (\r\n territory === item.name &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) ||\r\n pathName?.includes(item.pathKeyword) ||\r\n hostName?.includes(item.pathKeyword))\r\n ) {\r\n isTerritoryMatched = true;\r\n break;\r\n }\r\n }\r\n !isTerritoryMatched && __reditectTo(territory ?? '');\r\n } else {\r\n toggle();\r\n }\r\n }\r\n }, []);\r\n\r\n const __reditectTo = (territory: string | undefined) => {\r\n if (!enableGenericTerritories) {\r\n const { brBaseUrl, mbBaseUrl } = props.config;\r\n let redirectURL = null;\r\n if (territory?.toUpperCase() === 'KAUM') {\r\n redirectURL = mbBaseUrl;\r\n }\r\n if (territory?.toUpperCase() === 'KAUB') {\r\n redirectURL = brBaseUrl;\r\n }\r\n MsDyn365.isBrowser && (window.location.href = redirectURL!);\r\n } else {\r\n let redirectURL = '';\r\n const matchingTerritory = territory_data?.find(item => item.name === territory?.toUpperCase());\r\n\r\n if (matchingTerritory) {\r\n redirectURL = matchingTerritory.redirectURL;\r\n MsDyn365.isBrowser && (window.location.href = redirectURL!);\r\n } else {\r\n toggle();\r\n }\r\n }\r\n };\r\n\r\n const _handleZipCode = async (event: React.FormEvent) => {\r\n if (!enableGenericTerritories) {\r\n const { apiException } = props.resources;\r\n event.preventDefault();\r\n if (zipCode.length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n }\r\n try {\r\n const getAddressFromZipCode = await actionAddressFromZipCode(\r\n new GetAddressFromZipCodeInput(zipCode, props.config.defaultTerritory),\r\n props.context.actionContext\r\n );\r\n if (Object.keys(getAddressFromZipCode).length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n } else {\r\n if (MsDyn365.isBrowser) {\r\n const currentHostname = window.location.hostname;\r\n // TODO: List of known production hostnames which we will make dynamic after Go Alive.\r\n const productionHostnames = [\r\n // Todo: for local testing, need to remove later on\r\n // 'localhost:4000',\r\n 'aus.krannich-shop.com',\r\n 'aus-mb.krannich-shop.com',\r\n 'aus-br.krannich-shop.com'\r\n ];\r\n const isProdEnv = productionHostnames.includes(currentHostname);\r\n if (isProdEnv) {\r\n props?.context?.request?.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: '.krannich-shop.com',\r\n path: '/'\r\n });\r\n } else {\r\n props?.context?.request?.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode));\r\n }\r\n setIsOpen(false);\r\n setAlertActive(false);\r\n __reditectTo(getAddressFromZipCode?.Territory);\r\n }\r\n }\r\n } catch (e) {\r\n setError(apiException);\r\n setAlertActive(true);\r\n }\r\n setZipCode('');\r\n } else {\r\n event.preventDefault();\r\n if (zipCode.length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n }\r\n try {\r\n const getAddressFromZipCode = await actionAddressFromZipCode(\r\n new GetAddressFromZipCodeInput(zipCode, props.config.defaultTerritory),\r\n props.context.actionContext\r\n );\r\n if (Object.keys(getAddressFromZipCode).length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n } else {\r\n if (MsDyn365.isBrowser) {\r\n const currentHostname = window.location.hostname;\r\n const mainDomain = getMainDomain(currentHostname);\r\n if (currentHostname === 'localhost') {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode));\r\n } else if (mainDomain) {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: `.${mainDomain}`,\r\n path: '/'\r\n });\r\n } else {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: '.krannich-shop.com',\r\n path: '/'\r\n });\r\n }\r\n setIsOpen(false);\r\n setAlertActive(false);\r\n __reditectTo(getAddressFromZipCode?.Territory);\r\n }\r\n }\r\n } catch (e) {\r\n setError(props.resources.apiException);\r\n setAlertActive(true);\r\n }\r\n setZipCode('');\r\n }\r\n };\r\n const viewProps = {\r\n ...props,\r\n isOpen,\r\n inputRef,\r\n zipCode,\r\n setZipCode,\r\n error,\r\n alertActive,\r\n toggle,\r\n _handleZipCode,\r\n modalBtn\r\n };\r\n return props.renderView(viewProps) as React.ReactElement;\r\n};\r\n\r\nexport default KrannichPortal;\r\n","import React from 'react';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IKrannichPortalConfig, IKrannichPortalResources } from './krannich-portal.props.autogenerated';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n config: IKrannichPortalConfig;\r\n resources: IKrannichPortalResources;\r\n inputRef: any;\r\n zipCode: string;\r\n setZipCode: React.Dispatch>;\r\n error: string;\r\n alertActive: boolean;\r\n _handleZipCode: (event: React.FormEvent) => Promise;\r\n modalBtn: any;\r\n}\r\n\r\nconst PortalModal: React.FC = props => {\r\n const { alertActive, config, error, inputRef, isOpen, modalBtn, resources, setZipCode, _handleZipCode, zipCode } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {config.logoImage?.altText}\r\n
\r\n
\r\n \r\n

{config.headingWebShop}

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

{config.newZealandZipCodeMsg}

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

{error}

}\r\n {\r\n setZipCode(inputRef.current?.value!);\r\n }}\r\n type='submit'\r\n >\r\n {resources.submitBtnLabel}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PortalModal;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nimport {\r\n // IMediaGalleryThumbnailItemViewProps,\r\n // IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery/src/modules/media-gallery/../..';\r\n\r\nconst MediaGalleryView: React.FC = props => {\r\n const { CarouselProps, MediaGallery, Modal } = props;\r\n let isEdgeBrowser = false;\r\n if (MsDyn365.isBrowser) {\r\n const browserInfo = navigator?.userAgent;\r\n isEdgeBrowser = browserInfo.includes('Edg');\r\n }\r\n\r\n // VSI Customization for Thumbnails\r\n // this above thumbnails are recieve through props and for now according to client requirement\r\n // we dont want to show thumbnails on PDP. so these lines are commented\r\n // IF you again display thumbnails on PDP uncomment all below code, above improts\r\n // and move Thumbnails into props\r\n return (\r\n \r\n \r\n {Modal}\r\n {/* {_renderThumbnails(Thumbnails)} */}\r\n \r\n );\r\n};\r\n\r\n// const _renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps): JSX.Element => {\r\n// const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps, items } = thumbnails;\r\n\r\n// return (\r\n// \r\n// {items && items.map(_renderThumbnailItem)}\r\n// \r\n// );\r\n// };\r\n\r\n// const _renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n// const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n// return {Picture};\r\n// };\r\n\r\nexport default MediaGalleryView;\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, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/../../common';\r\nimport { IGroup } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/../../common/get-groups';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/../../common/get-sales-line';\r\nimport { IOrderDetailsViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/./order-details';\r\nimport { IOrderDetailsProps, IOrderDetailsResources } from '../definition-extensions/order-details.ext.props.autogenerated';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core-internal';\r\nimport { currencyFormat, dateFormatByLocale, filteredProductAttributeList, formatUrlPath, getOrderStatus } from '../../../utils/helper';\r\nimport { IContentBlockConfig } from '../definition-extensions/content-block.ext.props.autogenerated';\r\nimport { GridSize } from '../../../modules/krannich-c-search-result-container/krannich-c-search-result-container';\r\nimport { getAttributeValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\ninterface IGroupsExtended {\r\n groupsProps: INodeProps;\r\n groups: IGroup[];\r\n resources: IOrderDetailsResources;\r\n salesId: React.ReactNode;\r\n createdDate: React.ReactNode;\r\n statusValue?: number;\r\n context?: ICoreContext>;\r\n}\r\n\r\ninterface IGroupExtended {\r\n context?: ICoreContext>;\r\n group: IGroup;\r\n resources: IOrderDetailsResources;\r\n salesId: React.ReactNode;\r\n createdDate: React.ReactNode;\r\n statusValue?: number;\r\n}\r\n\r\ninterface IGroupDeliveryExtended {\r\n deliveryProps: INodeProps;\r\n pickupProps: INodeProps;\r\n showTimeslot: boolean;\r\n heading: React.ReactNode;\r\n count: React.ReactNode;\r\n processing: React.ReactNode;\r\n trackingInfo: React.ReactNode;\r\n address: React.ReactNode;\r\n shippingItemsToYou?: React.ReactNode;\r\n pickupDateTimeslot?: React.ReactNode;\r\n shippedStatusCheck?: React.ReactNode;\r\n statusValue?: number;\r\n}\r\n\r\nexport const OrderDetailsSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\r\n \r\n
\r\n
{buyAgainButton}
\r\n
\r\n {errors}\r\n
\r\n);\r\n\r\nexport const OrderDetailsGroupDelivery: React.FC = ({ deliveryProps, heading, count, statusValue }) => (\r\n \r\n \r\n {getOrderStatus(statusValue)}\r\n \r\n {/* {count} */}\r\n \r\n);\r\n\r\nexport const OrderDetailsGroup: React.FC = ({ group, resources, salesId, context, createdDate, statusValue }) => {\r\n const { groupProps, delivery, address, salesLinesProps, salesLines } = group;\r\n const productManufacturerIdentifier = 'Manufacturer';\r\n const productWeightAttribute = context?.app?.config?.productWeightAttribute || 'Weight (kg)';\r\n\r\n //Configs For Mobile View\r\n const [isMobile, setIsMobile] = React.useState();\r\n const [attributeValues, setAttributeValues] = React.useState([]);\r\n const [prodAttrIdentifier, setProdAttrIdentifier] = React.useState('');\r\n const _updateViewport = (): void => {\r\n const viewport = _getViewport();\r\n viewport === 'xs' || viewport === 'sm' ? setIsMobile(true) : setIsMobile(false);\r\n };\r\n const _getViewport = (): GridSize => {\r\n // const { context } = productManufacturarAttribute;\r\n\r\n // Always render in mobile viewport on a mobile device\r\n if (context?.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = context?.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'lg';\r\n };\r\n React.useEffect(() => {\r\n _updateViewport();\r\n if (MsDyn365.isBrowser && window.addEventListener) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n window.addEventListener('resize', _updateViewport);\r\n }\r\n }, []);\r\n React.useEffect(() => {\r\n const fetchData = async () => {\r\n let prodAttributeIdentifier = 'Manufacturer';\r\n if (salesLines.length) {\r\n const res: { recId: number; manufacturer: AttributeValue | undefined }[] = [];\r\n for (const salesLine of salesLines) {\r\n const productAttributes = await getAttributeValuesAsync(\r\n { callerContext: context?.actionContext!, queryResultSettings: {} },\r\n salesLine.data.product?.RecordId!,\r\n context?.request?.apiSettings?.channelId!,\r\n context?.request?.apiSettings?.catalogId!\r\n );\r\n const productAttributesFiltered = filteredProductAttributeList(\r\n productAttributes,\r\n context?.request.app.config.kcProductAttribute\r\n );\r\n const manufacturer = productAttributesFiltered?.find(item => item.identifier === productManufacturerIdentifier);\r\n if (manufacturer) {\r\n prodAttributeIdentifier = manufacturer?.Name! || '';\r\n }\r\n res.push({ recId: salesLine.data.product?.RecordId!, manufacturer });\r\n }\r\n setProdAttrIdentifier(prodAttributeIdentifier);\r\n setAttributeValues(res);\r\n }\r\n };\r\n fetchData();\r\n }, [salesLines]);\r\n //Ending configuration//\r\n\r\n const createdDateJSX = createdDate as JSX.Element;\r\n const createdDateJSXProps = createdDateJSX.props as any;\r\n const createdDateJSXPropsChildren = createdDateJSXProps?.children as any;\r\n const customDate = createdDateJSXPropsChildren[2];\r\n // Split the date string\r\n const dateParts = customDate?.split('/');\r\n // Create a Date object using the parts\r\n const formattedDate = new Date(dateParts?.[2], dateParts?.[0] - 1, dateParts?.[1]);\r\n // Format the date as \"DD/MM/YYYY\" using toLocaleDateString()\r\n const formattedDateString = formattedDate.toLocaleDateString('en-GB');\r\n const usSiteFlag = context?.actionContext?.requestContext?.apiSettings?.oun === context?.app.config.ounNumberForUsSite;\r\n const dateLocale = context?.app.config.dateFormat;\r\n const currency = context?.request.channel?.Currency;\r\n const formattedDateStringBylocale =\r\n (dateLocale && currency && formattedDateString && dateFormatByLocale(dateLocale, currency, formattedDateString)) || undefined;\r\n if (isMobile) {\r\n //View Shown in case of Mobile\r\n return (\r\n \r\n {salesLines.map(salesLine => {\r\n const salesLineAttr = salesLine.data.salesLine.AttributeValues;\r\n\r\n const productAttrManufactrValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === prodAttrIdentifier\r\n );\r\n const productAttrWeightValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === productWeightAttribute\r\n );\r\n const lineTotal = Number(salesLine?.data?.salesLine?.GrossAmount) - Number(salesLine?.data?.salesLine?.DiscountAmount);\r\n const manufItemTypeNameObj = salesLine.data.product?.ExtensionProperties?.find(item => {\r\n if (item.Key === 'ManufItemTypeName') {\r\n return item;\r\n }\r\n return null;\r\n });\r\n\r\n const manufacturerObj =\r\n attributeValues.length &&\r\n attributeValues.find((item: { recId: number | undefined }) => item.recId === salesLine?.data?.product?.RecordId);\r\n const urlPath = formatUrlPath(manufacturerObj?.manufacturer?.TextValue, manufItemTypeNameObj?.Value?.StringValue!);\r\n const pathName = context?.actionContext.requestContext.url.requestUrl.pathname.split('/');\r\n const isAddingPathWithUrl = context?.actionContext.requestContext.app.config.addPathWithUrl ?? false;\r\n let productUrl =\r\n salesLine &&\r\n (isAddingPathWithUrl\r\n ? `${context?.actionContext.requestContext.url.requestUrl.origin}/${pathName![1]}/${urlPath}/${\r\n salesLine?.data?.product?.RecordId\r\n }.p`\r\n : `${context?.actionContext.requestContext.url.requestUrl.origin}/${urlPath}/${salesLine?.data?.product?.RecordId}.p`);\r\n const buyAgainButtonCloned = (\r\n \r\n {resources.buyAgain}\r\n \r\n );\r\n salesLine.buyAgainButton = buyAgainButtonCloned;\r\n return (\r\n
\r\n {createdDate && (\r\n \r\n {resources.documentedDateTabelHeaderLabel} : {formattedDateStringBylocale}\r\n \r\n )}\r\n {salesId && (\r\n \r\n {resources.salesIDHeaderLabel}\r\n : {salesId}\r\n \r\n )}\r\n {\r\n \r\n {resources.weightTabelHeaderLabel}{' '}\r\n : {productAttrWeightValue?.TextValue ? productAttrWeightValue?.TextValue : '-'}\r\n \r\n }\r\n {\r\n \r\n {/* {resources.manufacturerHeaderLabel} : {productAttrManufactrValue?.TextValue} */}\r\n {prodAttrIdentifier || resources.manufacturerHeaderLabel}{' '}\r\n : {productAttrManufactrValue?.TextValue}\r\n \r\n }\r\n {\r\n \r\n {resources.productTabelHeaderLabel} : {salesLine.data.product?.Name}\r\n \r\n }\r\n {\r\n \r\n {resources.productNumberTabelHeaderLabel}\r\n : {salesLine.data.product?.ItemId}\r\n \r\n }\r\n {\r\n \r\n {resources.quantityTabelHeaderLabel} : {salesLine.data.salesLine.Quantity}\r\n \r\n }\r\n {\r\n \r\n {resources.netAmountTabelHeaderLabel} : {currencyFormat(lineTotal, context)}\r\n \r\n }\r\n {\r\n \r\n {resources.grossAmountTabelHeaderLabel}{' '}\r\n : {currencyFormat(salesLine?.data?.salesLine?.TotalAmount, context)}\r\n \r\n }\r\n {\r\n \r\n {resources.currencyTabelHeaderLabel} {usSiteFlag ? : $ : : A$}\r\n \r\n }\r\n {createdDate && (\r\n \r\n {resources.fulfilledTabelHeaderLabel}{' '}\r\n : {getOrderStatus(salesLine.data.salesLine.SalesStatusValue)}\r\n \r\n )}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n } else {\r\n //View Shown in case of Web\r\n return (\r\n <>\r\n \r\n
\r\n {resources.orderStateLabel}\r\n {delivery && }\r\n
\r\n \r\n {salesLines && (\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 {salesLines.map(salesLine => {\r\n const salesLineAttr = salesLine.data.salesLine.AttributeValues;\r\n\r\n const productAttrManufactrValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === prodAttrIdentifier\r\n );\r\n const productAttrWeightValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === productWeightAttribute\r\n );\r\n const lineTotal =\r\n Number(salesLine?.data?.salesLine?.GrossAmount) -\r\n Number(salesLine?.data?.salesLine?.DiscountAmount);\r\n const manufItemTypeNameObj = salesLine.data.product?.ExtensionProperties?.find(item => {\r\n if (item.Key === 'ManufItemTypeName') {\r\n return item;\r\n }\r\n return null;\r\n });\r\n\r\n const manufacturerObj =\r\n attributeValues.length &&\r\n attributeValues.find(\r\n (item: { recId: number | undefined }) => item.recId === salesLine?.data?.product?.RecordId\r\n );\r\n const urlPath = formatUrlPath(\r\n manufacturerObj?.manufacturer?.TextValue ?? '',\r\n manufItemTypeNameObj?.Value?.StringValue! ?? ''\r\n );\r\n const pathName = context?.actionContext.requestContext.url.requestUrl.pathname.split('/');\r\n const isAddingPathWithUrl =\r\n context?.actionContext.requestContext.app.config.addPathWithUrl ?? false;\r\n let productUrl =\r\n salesLine &&\r\n (isAddingPathWithUrl\r\n ? `${context?.actionContext.requestContext.url.requestUrl.origin}/${\r\n pathName![1]\r\n }/${urlPath}/${salesLine?.data?.product?.RecordId}.p`\r\n : `${context?.actionContext.requestContext.url.requestUrl.origin}/${urlPath}/${salesLine?.data?.product?.RecordId}.p`);\r\n const buyAgainButtonCloned = (\r\n \r\n {resources.buyAgain}\r\n \r\n );\r\n salesLine.buyAgainButton = buyAgainButtonCloned;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {usSiteFlag ? : }\r\n \r\n \r\n \r\n );\r\n })}\r\n
{resources.documentedDateTabelHeaderLabel}{resources.salesIDHeaderLabel}{resources.weightTabelHeaderLabel}{prodAttrIdentifier || resources.manufacturerHeaderLabel}{resources.productTabelHeaderLabel}{resources.productNumberTabelHeaderLabel}{resources.quantityTabelHeaderLabel}{resources.netAmountTabelHeaderLabel}{resources.grossAmountTabelHeaderLabel}{resources.currencyTabelHeaderLabel}{resources.fulfilledTabelHeaderLabel}{resources.actionTabelHeaderLabel}
{formattedDateStringBylocale}{salesId}{productAttrWeightValue?.TextValue ? productAttrWeightValue?.TextValue : '-'}{productAttrManufactrValue?.TextValue ? productAttrManufactrValue?.TextValue : '-'}\r\n {salesLine.data.product?.Name}\r\n {salesLine.data.product?.ItemId}{salesLine.data.salesLine.Quantity}{currencyFormat(lineTotal, context)}{currencyFormat(salesLine?.data?.salesLine?.TotalAmount, context)}$A$ {getOrderStatus(salesLine.data.salesLine.SalesStatusValue)}\r\n \r\n
\r\n
\r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n }\r\n};\r\n\r\nexport const OrderDetailsGroups: React.FC = ({\r\n groupsProps,\r\n groups,\r\n resources,\r\n salesId,\r\n createdDate,\r\n statusValue,\r\n context\r\n}) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\ninterface IOrderSummaryExtend {\r\n discountAmount?: number;\r\n context?: ICoreContext>;\r\n deliveryMode?: string;\r\n chargeAmount?: number;\r\n resources?: any;\r\n}\r\n\r\ninterface JSXNumberValue {\r\n value: number;\r\n}\r\nexport const OrderDetailsOrderSummary: React.FC = ({\r\n orderSummaryProps,\r\n heading,\r\n subtotal,\r\n shipping,\r\n tax,\r\n totalAmount,\r\n earnedPoints,\r\n discountAmount,\r\n context,\r\n deliveryMode,\r\n chargeAmount,\r\n resources\r\n}) => {\r\n const subTotalJSX = subtotal as JSX.Element;\r\n const subTotalJSXValue = subTotalJSX.props as JSXNumberValue;\r\n const subTotalAmount = subTotalJSXValue?.value;\r\n return (\r\n \r\n <>\r\n

{resources?.paymentSummaryText}

\r\n
\r\n {heading}\r\n\r\n {/* {subtotal} */}\r\n

\r\n {resources?.subTotalText}\r\n \r\n {currencyFormat(subTotalAmount, context)}\r\n \r\n

\r\n

\r\n {resources?.shippingFeeText}\r\n \r\n {deliveryMode && deliveryMode === 'Collection' ? (\r\n \r\n {resources?.freeText}\r\n \r\n ) : chargeAmount === 0 ? (\r\n

\r\n {resources?.toBeCalculatedText}\r\n
\r\n \r\n {resources?.excludingFreightCostMessage}\r\n
\r\n
\r\n ) : (\r\n {currencyFormat(chargeAmount, context)}\r\n )}\r\n \r\n

\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const OrderDetailsPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const OrderDetailsHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderDetailsView: React.FC> = ({\r\n moduleProps,\r\n viewModes,\r\n tableViewActions,\r\n table,\r\n placedBy,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n groups,\r\n resources,\r\n config: { bannerImage, bannerLink },\r\n context: {\r\n request: { gridSettings },\r\n actionContext: { requestContext }\r\n },\r\n context,\r\n data: {\r\n orderHydration: { result }\r\n }\r\n}) => {\r\n const { salesOrder } = result!;\r\n\r\n const imageProps = {\r\n gridSettings: gridSettings ?? {},\r\n imageSettings: bannerImage?.imageSettings\r\n };\r\n interface IContentBlockFullConfig extends IContentBlockConfig {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\r\n msdyn365__moduleLayout?: string;\r\n }\r\n const contentBlockImage = (\r\n \r\n );\r\n return (\r\n <>\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {tableViewActions}\r\n {result?.salesOrder?.Name ? (\r\n
\r\n {resources.orderPlacedBy} {result?.salesOrder?.Name?.split(' ')[0]}\r\n
\r\n ) : (\r\n placedBy\r\n )}\r\n {viewModes}\r\n {table}\r\n {groups && orderInfomation && (\r\n \r\n )}\r\n \r\n {orderSummary && (\r\n \r\n )}\r\n {bannerLink && bannerLink.linkUrl && bannerLink.linkUrl.destinationUrl && (\r\n
\r\n {' '}\r\n \r\n {contentBlockImage}\r\n \r\n
\r\n )}\r\n {/* {payment && } */}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISearchCategoryViewProps,\r\n ISearchFormViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps\r\n} from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n context: {\r\n actionContext: {\r\n requestContext: {\r\n user: { isAuthenticated }\r\n }\r\n }\r\n }\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword, isLoadingAutoSuggest, isLoadingNode)}\r\n {_renderProductSuggestions(\r\n ProductSuggest,\r\n UlProduct,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n isAuthenticated\r\n )}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory, isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.input}\r\n {form.cancelBtn}\r\n {form.submitBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode,\r\n isAuthenticated?: boolean\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n
{item.thumbnail}
\r\n
\r\n
{item.text}
\r\n {/* VSI CUSTOMIZATION START => Price Shows in Search for Only Logged in User */}\r\n {/*
{isAuthenticated ? item.price : null}
*/}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessPartnerPromotionTermsParagraphProp {\n description: string;\n className: string;\n title?: string;\n titleClassName?: string;\n}\n\nexport const BusinessPartnerPromotionTermsParagraph: React.FC = ({\n title,\n description,\n className,\n titleClassName\n}) => {\n return (\n
  • \n {title &&

    {title}

    }\n

    {description}

    \n
  • \n );\n};\n\nexport default BusinessPartnerPromotionTermsParagraph;\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\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { Button, Alert, IModuleProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport { promoteToSellerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Text } from '@msdyn365-commerce/core';\nimport { IBusinessPartnerPromotionData } from './business-partner-promotion.data';\nimport { IBusinessPartnerPromotionProps } from './business-partner-promotion.props.autogenerated';\nimport { BusinessPartnerPromotionTermsParagraph } from './components';\n\nexport interface IBusinessPartnerPromotionViewProps extends IBusinessPartnerPromotionProps {\n businessPartnerPromotionProps: IModuleProps;\n heading: React.ReactNode;\n notificationMessage?: React.ReactNode;\n sellerDescriptions: React.ReactNode[];\n termsOfServiceCheckbox: React.ReactNode;\n termsOfServiceModal: React.ReactNode;\n submitButton: React.ReactNode;\n}\n\nexport interface IBusinessPartnerPromotionState {\n showTermsOfService: boolean;\n showSubmitButton: boolean;\n termsOfServiceChecked: boolean;\n termsOfServiceModalOpened: boolean;\n errorMessage?: string;\n notificationMessage?: string;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partner-promotion';\n\n/**\n *\n * BusinessPartnerPromotion component\n * @extends {React.PureComponent>}\n */\nclass BusinessPartnerPromotion extends React.Component<\n IBusinessPartnerPromotionProps,\n IBusinessPartnerPromotionState\n> {\n constructor(props: IBusinessPartnerPromotionProps) {\n super(props);\n this.state = {\n showTermsOfService: true,\n showSubmitButton: true,\n termsOfServiceChecked: false,\n termsOfServiceModalOpened: false,\n errorMessage: undefined,\n notificationMessage: undefined\n };\n }\n\n public render(): JSX.Element | null {\n const {\n showSubmitButton,\n showTermsOfService,\n termsOfServiceChecked,\n termsOfServiceModalOpened,\n errorMessage,\n notificationMessage\n } = this.state;\n const { resources, data, config } = this.props;\n const { heading, termsOfService } = config;\n const { authorizationErrorMessage } = resources;\n const { b2bUserInformation } = data;\n const canSubmit = this.isAdminUser(b2bUserInformation.result);\n let error: string | undefined = errorMessage;\n\n // do not show error message when the API is still in loading.\n if (!canSubmit && b2bUserInformation.status !== 'LOADING') {\n error = authorizationErrorMessage;\n }\n const btnEnabled = canSubmit && termsOfServiceChecked;\n\n const viewProps: IBusinessPartnerPromotionViewProps = {\n ...this.props,\n businessPartnerPromotionProps: {\n moduleProps: this.props,\n className: classnames(moduleClassName, moduleClassName)\n },\n heading: ,\n notificationMessage: this.renderNotificationBar(error, notificationMessage),\n sellerDescriptions: this.renderSellerDescriptions(),\n termsOfServiceCheckbox: showTermsOfService && (\n
    \n \n {resources.termsOfServiceAgreementText}\n \n {resources.termsOfServiceLinkText}\n \n
    \n ),\n termsOfServiceModal: (\n \n {resources.termsOfServiceModalHeading}\n \n \n \n \n ),\n submitButton: showSubmitButton && (\n
    \n \n {resources.submitRequestLabel}\n \n
    \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private renderNotificationBar(errorMessage: string | undefined, notificationMessage: string | undefined): React.ReactNode {\n let notificationBar: React.ReactNode = null;\n if (errorMessage) {\n notificationBar = {errorMessage};\n } else if (notificationMessage) {\n notificationBar = {notificationMessage};\n }\n return notificationBar;\n }\n\n private renderSellerDescriptions(): React.ReactNode[] {\n const { config } = this.props;\n const results: React.ReactNode[] = [];\n const sellerDescriptions = config.sellerDescriptions;\n\n if (!sellerDescriptions) {\n return results;\n }\n\n return sellerDescriptions.map((description, idx1) => {\n return (\n
    \n \n
      \n {description.bulletPoints?.map((bulletPoint, idx2) => {\n return (\n \n );\n })}\n
    \n
    \n );\n });\n }\n\n private isAdminUser(user: BusinessPartnerUser | undefined): boolean {\n return (\n !ObjectExtensions.isNullOrUndefined(user) && !StringExtensions.isNullOrEmpty(user.BusinessPartnerId) && user.IsAdmin === true\n );\n }\n\n private readonly onCheckBoxChange = (event: React.ChangeEvent) => {\n this.setState({\n termsOfServiceChecked: event.target.checked\n });\n };\n\n private readonly onToggleTermOfServiceModal = () => {\n this.setState({\n termsOfServiceModalOpened: !this.state.termsOfServiceModalOpened\n });\n };\n\n private readonly onSubmit = async (event: React.MouseEvent) => {\n const { context, data, resources } = this.props;\n const { errorMessageText, promoteToSellerSubmitSuccessMessage } = resources;\n const businessPartnerId = data.b2bUserInformation.result?.BusinessPartnerId ?? '';\n\n try {\n await promoteToSellerAsync({ callerContext: context.actionContext }, businessPartnerId);\n this.setState({\n showSubmitButton: false,\n showTermsOfService: false,\n errorMessage: undefined,\n notificationMessage: promoteToSellerSubmitSuccessMessage\n });\n } catch {\n this.setState({\n showTermsOfService: true,\n showSubmitButton: true,\n errorMessage: errorMessageText,\n notificationMessage: undefined\n });\n }\n };\n}\n\nexport default BusinessPartnerPromotion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessPartnerPromotionViewProps } from './business-partner-promotion';\n\n/**\n * View layout of business partner promotion module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n const {\n businessPartnerPromotionProps,\n heading,\n notificationMessage,\n sellerDescriptions,\n termsOfServiceCheckbox,\n termsOfServiceModal,\n submitButton\n } = props;\n return (\n \n {heading}\n {notificationMessage}\n {sellerDescriptions}\n {termsOfServiceCheckbox}\n {termsOfServiceModal}\n {submitButton}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartViewProps, IOrderSummaryErrors } from './cart';\nimport { ICartlinesViewProps } from './components/cart-line-items';\nimport { ICartLineItemViewProps } from './components/cart-line-items-promotion';\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n cartEmptyText: string,\n CartlinesWrapper: INodeProps,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean\n): JSX.Element[] | JSX.Element => {\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map(cartLine => {\n return (\n
    \n {cartLine.cartline}\n {storeSelector && cartLine.pickUpInStore ? (\n {cartLine.pickUpInStore.defaultComponent}\n ) : null}\n {cartLine.addToOrderTemplate ? (\n \n {cartLine.remove}\n {cartLine.addToWishlist}\n {cartLine.addToOrderTemplate}\n \n ) : (\n <>\n {cartLine.remove}\n {cartLine.addToWishlist}\n \n )}\n
    \n );\n });\n }\n return cartDataResult ? (\n
    \n

    {cartEmptyText}

    \n {backToShoppingButton}\n
    \n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * Method will render error block.\n * @param errorData -The order summary errors interface.\n * @returns Jsx element.\n */\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\n/**\n * Method will render invoice summary lines.\n * @param invoiceSummaryLines -The invoicesummary lines interface.\n * @param OrderSummaryItems -The order summary items props.\n * @param props -The cartview props.\n * @returns Jsx element.\n */\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Method will render order summary lines.\n * @param orderSummaryLines -The ordersummary lines interface.\n * @param OrderSummaryItems -The order summary items props.\n * @param props -The cartview props.\n * @returns Jsx element.\n */\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Method will render cart promotions.\n * @param promotions -The cartline item view props.\n * @returns Jsx element.\n */\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\n/**\n * Method will render cartlines group title.\n * @param cartLine -The cartline view props.\n * @param titleSeparate -The title separate.\n * @returns Jsx element.\n */\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, titleSeparate: string) => {\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\n return (\n <>\n \n {isBopisSelected ? (\n

    \n {cartLine.pickUpInStore?.deliveryOption}\n {titleSeparate}\n {cartLine.pickUpInStore?.orgUnitName}\n

    \n ) : null}\n
    \n \n );\n};\n\n/**\n * Method will render cartlines groups header title.\n * @param pickUpText -The pickup text for group.\n * @param shippingText -The shipping text for group.\n * @param emailShippingText -The email shipping text for group.\n * @param titleSeparate -The title separator.\n * @param cartLine -The cartline view props.\n * @param emailDeliveryModeCode -The email delivery code from channel.\n * @returns Jsx element.\n */\nconst renderCartLinesGroupHeader = (\n pickUpText: string,\n shippingText: string,\n emailShippingText: string,\n titleSeparate: string,\n cartLine: ICartlinesViewProps,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailShippingText : groupTitle;\n }\n\n return (\n <>\n
    \n

    \n

    {groupTitle}

    \n {renderCartLinesGroupTitle(cartLine, titleSeparate)}\n
    \n \n );\n};\n\n/**\n * Method will render cartlines in groups.\n * @param props -The cartline.\n * @returns Jsx element.\n */\nconst renderCartLinesGroup = (props: ICartViewProps): JSX.Element | undefined => {\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\n return (\n
    \n {props.cartLinesGroup.map(cartlines => {\n return (\n
    \n {renderCartLinesGroupHeader(\n props.resources.pickUpText,\n props.resources.shippingText,\n props.resources.emailshippingText,\n props.resources.titleSeparate,\n cartlines[0],\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources.emptyCartText,\n props.CartlinesWrapper,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n
    \n );\n })}\n
    \n );\n }\n return props.cartDataResult ? (\n
    \n
    \n

    {props.resources.emptyCartText}

    \n {props.backToShoppingButton}\n
    \n
    \n ) : (\n <>{props.waitingComponent}\n );\n};\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
    \n {props.title}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? (\n renderCartLinesGroup(props)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources.emptyCartText,\n props.CartlinesWrapper,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
    \n);\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
    {error}
    ;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
    \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
    \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
    \n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
    \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
    \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n \n {errorMessage}\n {products}\n \n {pagination}\n
    \n
    \n
    \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\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 { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

    \n {message}\n

    \n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult, Customer, ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {\n accountInformation?: AsyncResult;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
    \n
    {buttonText}
    \n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).listModifiedEvent.subscribe(\n {\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n }\n );\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).removeItemById(\n this.state.comparisonItemId\n );\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).hasItemById(comparisonItemId),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductComparisonButtonViewProps } from './product-comparison-button';\n\n/**\n * Represents product comparison button view.\n * @param props - View props for product comparison button.\n * @returns Functional component of product comparison button.\n */\nexport const ProductComparisonButtonViewFunctionalComponent: React.FC = props => {\n const { productComparisonButton, productComparisonPreview } = props;\n\n return (\n \n {productComparisonButton}\n {productComparisonPreview}\n \n );\n};\n\nexport default ProductComparisonButtonViewFunctionalComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionConfigureDropdownViewProps, IProductDimensionConfigureViewProps } from '@msdyn365-commerce/components';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderFormViewProps, IQuickOrderViewProps } from './index';\n\n/**\n * Render product dimension/configure container.\n * @param configure -- Product dimension configuration.\n * @returns Container to have dimension dropdown.\n */\nconst renderConfigure = (configure?: IProductDimensionConfigureViewProps): JSX.Element | null => {\n if (configure !== undefined) {\n const { containerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n }\n return null;\n};\n\n/**\n * Render product dimension/configure dropdown.\n * @param dropdown -- Product dimension drop down.\n * @returns Dropdown.\n */\nconst renderConfigureDropdown = (dropdown: IProductDimensionConfigureDropdownViewProps): JSX.Element => {\n const { containerProps, labelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {errors}\n {select}\n \n );\n};\n\nconst renderForm = (\n form: IQuickOrderFormViewProps,\n isMobileView: boolean,\n quickOrderForm: INodeProps,\n quickOrderProductContent: INodeProps,\n quickOrderMsgContent: INodeProps,\n configure?: IProductDimensionConfigureViewProps\n) => {\n return isMobileView ? (\n \n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.userMessage}\n {form.addToCartBtn}\n \n \n ) : (\n \n {form.userMessage}\n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.addToCartBtn}\n \n \n );\n};\n\nconst quickOrderView: React.FC = props => {\n const {\n quickOrderProps,\n contentProps,\n form,\n quickOrderForm,\n drawer,\n configure,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n quickOrderList,\n isMobileView\n } = props;\n\n return (\n \n \n \n {renderForm(\n form as IQuickOrderFormViewProps,\n isMobileView,\n quickOrderForm,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n configure\n )}\n \n \n\n {quickOrderList}\n \n );\n};\nexport default quickOrderView;\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 { ISearchResultModalViewProps } from './components';\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from './search-result-container';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {TitleViewProps && renderTitleCount(TitleViewProps)}\n \n \n {refineMenu && renderRefiner(refineMenu)}\n \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n \n \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}\n

    \n
    \n );\n }\n return null;\n};\n\nconst renderTitleCount = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n
    {title.titleCount}
    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
    \n
    {this.props.promoCodeHeadingText}
    \n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

    \n {this.state.error}\n

    \n {this._renderAppliedPromoCode(this.props)}\n
    \n );\n }\n\n /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
    \n
    \n \n \n
    \n
    \n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\n */\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') ?? '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n /**\n * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
    \n
    \n {'Code '}\n {coupon.Code}\n {'Applied '}\n
    \n \n
    \n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\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\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\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 // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\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 { 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 { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
    {renderProductImage(props)}
    \n
    \n
    {product?.Name}
    \n
    {product?.ItemId}
    \n
    \n
    \n );\n};\n\n/**\n * Create Write Review Modal.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
    {resources.selectRatingLabel}
    \n {reviewModal.rating}\n
    \n
    \n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
    \n
    \n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
    \n );\n};\n\n/**\n * WriteReview view.\n * @param props - WriteReview ViewProps.\n * @returns WriteReview view module.\n */\nconst WriteReviewView: React.FC> = props => {\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\n const { paragraph } = config;\n const isAuthenticated = props.context.request.user.isAuthenticated;\n const text = paragraph && ;\n\n return (\n \n {heading}\n {!isAuthenticated ? (\n <>\n {signInMessage}\n {signInButton}\n \n ) : (\n <>\n {text}\n {modalToggle}\n {createReviewModal(props)}\n \n )}\n \n );\n};\n\nexport default WriteReviewView;\n"],"names":["GetAddressPurposesInput","constructor","apiSettings","getCacheKey","buildCacheKey","this","getCacheObjectType","dataCacheType","async","getAddressPurposesAction","input","ctx","getAddressPurposesAsync","callerContext","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","createObservableDataAction","id","action","inputData","requestContext","GetStateProvincesInput","countryRegionId","getStateProvinceAction","getStateProvincesAsync","AddressCommon","context","resources","telemetry","getDefaultCountryRegionId","countryRegions","market","marketISOCode","currentCountryRegion","find","countryRegion","ISOCode","CountryRegionId","parseRetailException","errorTitle","addressErrorMessageTitle","errorMessage","addressGenericErrorMessage","isAuthenticatedFlow","request","user","isAuthenticated","getStateProvinces","response","actionContext","error","debug","Promise","resolve","isEmpty","address","ThreeLetterISORegionName","State","City","addCustomerAddress","updateLogisticsLocationRoleRecordId","submitCustomerAddress","addAddress","updateCustomerAddress","updateAddress","updateCustomerPrimaryAddress","updatePrimaryAddress","addressAction","AddressTypeValue","AddressManagementInput","execAddressAction","addresses","length","RecordId","customerAddresses","addressPurposes","ArrayExtensions","hasElements","addressPurpose","purpose","AddressType","LogisticsLocationRoleRecordId","AddressItemDisplayType","AddressValidationRuleType","AddressItemType","AddressFormat","countryRegionsInfo","addressMetaData","getPrefilledAddressDropdownData","stateDefaultSelectionText","stateProvinceInfo","defaultStateText","key","value","dropdownData","getCountryFormat","getStateFormat","unshift","getAddressTypeFormat","getTwoLetterISORegionName","_getCountryRegionInfo","validateAddressFormat","validationError","propertyName","validationtor","isValid","getAddressFormat","forEach","addressFormatItem","name","_inputValidation","undefined","getTranformedAddress","result","postalCode","ZipCode","selectedState","state","StateName","adminDistrict","StateId","addressLine","Street","locality","district","DistrictName","CountyName","FullAddress","formattedAddress","_validateRegEx","validationRule","regEx","RegExp","test","get","countryRegionInfo","_getAddressDisplayFormat","map","ShortName","Name","set","validationRules","message","toLowerCase","addressDisplayItem","AddressFormatLines","AddressTypeItem","_extendAddressDisplayFormat","push","nameDisplayItem","formatLine","AddressComponentNameValue","addressItem","getItemFormat","isNewLine","NewLine","phoneDisplayItem","Phone","isPrimaryDisplayItem","IsPrimary","type","AddressMetaData","excluded","required","metaData","requiredFieldRegEx","resourcesPrefix","maxLength","excludedTypes","requiredFields","_init","item","_addItem","Input","PhoneRegex","defaultRegex","County","Dropdown","StreetNumber","BuildingCompliment","Postbox","House_RU","Flat_RU","CountryOKSMCode_RU","Checkbox","displayType","format","includes","nameKey","replace","_validationRules","isRequired","some","rule","Required","optionalString","label","ruleType","Object","keys","itemType","_validationRule","Format","AddressOperation","props","React","className","role","itemId","isChecked","additionalAddributes","telemetryContent","autoFocus","shouldBeAutoFocused","onChange","payLoad","getPayloadObject","attributes","getTelemetryAttributes","assign","checked","displayData","getDropdownItem","selectedValue","isSelected","text","htmlFor","getRequriedAttribute","getAddessItems","selectedAddress","addressFormat","addressType","dropdownDisplayData","defaultCountryRegionId","defaultAddressType","onInputChange","onDropdownChange","shouldAutoFocus","usSiteFlag","mexicoSiteFlag","index","_selectedAddress$addr","elementId","classname","AddressInputComponent","Number","AdressCheckboxComponent","AdressDropdownComponent","zipcodeError","postcodeError","AddressItem","AddressLabelComponent","customLabel","alert","AddressAlertComponent","customAlert","returnAddressAlertComponent","AddressName","AddressAddUpdate","editAddressHeading","addAddressHeading","hasError","onCancel","onSave","hasExternalSubmitGroup","isUpdating","addressActionResponse","heading","AddressForm","Heading","items","isShowSaveButton","saveButton","AddressButtonComponent","addressSaveButtonText","ariaLabel","addressSaveButtonAriaLabel","disabled","onClick","isShowCancelButton","cancelButton","addressCancelButtonText","addressCancelButtonAriaLabel","AddressError","title","AddressErrorTitleComponent","AddressErrorMessageComponent","isDisabled","shouldUseAutoFocus","numberValue","customMaxLength","rawPhoneNumber","formattedPhoneNumber","_formattedPhoneNumber","_formattedPhoneNumber2","_formattedPhoneNumber3","_formattedPhoneNumber4","substring","split","join","slice","tempValue","placeholder","BusinessAccountAddress","super","excludedList","_resetAddressFields","addUpdateAddress","_dataInitialize","data","reaction","_data$countryRegions$","_data$addressPurposes","countryStates","_data$countryStates$r","_renderAddOrUpdateAddress","_this$props","_this$props2","oun","app","config","ounNumberForUsSite","ounNumberForMexicoSite","Company","addressStateDefaultSelectionText","_onAddressAddUpdateInputChange","_onAddressAddUpdateDropdownChange","event","_updateAddress","target","_updateCountryRegionId","_this$props3","_this$props4","updateForm","cleanValue","_isEmpty","_objectSpread","_isInputRequired","addressItemValue","ObjectExtensions","isNullOrUndefined","addressCommon","then","getTelemetryObject","telemetryPageName","friendlyName","componentDidMount","_setDefaultCountryRegionId","shouldComponentUpdate","nextProps","nextState","render","_this$props5","_this$props6","renderView","resetAddress","moduleProps","classnames","showAddOrUpdateAddress","_request$channel","channel","ChannelCountryRegionISOCode","__decorate","observable","_ref","Node","Module","AddToCartComponentActions","_event","setUploadStatus","openModal","setLinesAddedToCartDialogOpen","setAddedLinesCount","setErrorMessage","setOnlyThoselinesAddedWithAvailableQuantityMessage","_props$data$orderTemp","dialogStrings","atpData","cart","addProductToCartInput","orderTemplate","orderTemplateLines","line","twoZeroFourProd","_line$fullProduct","ItemId","fullProduct","ProductDetails","StatusCode","twoZeroFourProductQuantity","_cart$cart$CartLines","atpQuantity","JSON","parse","jsonResponce","Quantity","twoZeroFourProdInCart","CartLines","_line$fullProduct2","productListLine","_line$fullProduct3","product","count","addProductsToCart","_result$errorDetails","status","setTimeout","errorDetails","LocalizedMessage","console","orderTemplateErrorMessage","buttonEventReference","AddOrderTemplateToCartComponent","msdyn365Commerce","createComponent","component","uploadStatus","useState","modalOpen","setModalOpen","addedLinesCount","linesAddedToCartDialogOpen","onlyThoselinesAddedWithAvailableQuantityMessage","modalText","_getModalText","errorMsg","addToCartFailureMessage","addToCartSuccessMessage","addToCartProcessMessage","processStatusClass","closeWindowButtonText","TelemetryConstant","AddOrderTemplateToCart","addOrderTemplateAttribute","popupProps","renderModalPopup","PopupProducts","products","filter","totalLines","addToCartText","LinesAddedToCartDialog","typeName","linesAddedToCartDialogResources","linesCount","productList","onClose","closeLinesAddedToCartDialog","_buttonEventReference","focus","OrderTemplateProductsPreviewComponent","imageSettings","renderOrderTemplateImages","renderOrderTemplateImage","_product$ProductDetai","_getFallbackImageUrl","_context$request$app","_product$ProductDetai2","Image","src","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","OmniChannelMedia","gridSettings","viewports","xs","q","w","h","lg","xl","lazyload","loadFailureBehavior","altText","dialogProps","close","lineItemsString","linesAddedToCartHeaderLinesOneText","linesAddedToCartHeaderLinesFormatText","toString","Modal","isOpen","toggle","ModalHeader","linesAddedToCartHeaderItemsOneText","linesAddedToCartHeaderMessageText","ModalBody","onlyThoselinesAddedToCartMessageText","ModalFooter","Button","viewCartButtonText","href","getUrlSync","orderTemplateCloseButtonText","_props$config","_props$context","setIsOpen","zipCode","setZipCode","setError","alertActive","setAlertActive","modalBtn","useRef","inputRef","enableGenericTerritories","territory_data","territoryData","notFoundError","notFound","notFoundZipcode","useEffect","addressFromZip","cookies","_props$context4","_props$context5","territory","Territory","isTerritoryMatched","pathName","url","requestUrl","pathname","hostName","hostname","toLocaleLowerCase","pathKeyword","__reditectTo","_props$context2","_props$context3","redirectURL","matchingTerritory","toUpperCase","MsDyn365","isBrowser","window","location","brBaseUrl","mbBaseUrl","viewProps","_handleZipCode","preventDefault","getAddressFromZipCode","actionAddressFromZipCode","GetAddressFromZipCodeInput","defaultTerritory","currentHostname","mainDomain","getMainDomain","stringify","domain","path","e","apiException","_props$context6","_props$context7","_config$logoImage","_config$logoImage2","fade","returnFocusRef","horizontalPosition","verticalPosition","logoImage","alt","headingWebShop","onSubmit","zipCodeLabel","newZealandZipCodeMsg","ref","_inputRef$current","current","submitBtnLabel","RichTextComponent","infoText","footerContent","CarouselProps","MediaGallery","isEdgeBrowser","_navigator","navigator","userAgent","OrderDetailsSalesLine","salesLineProps","salesLine","buyAgainButton","errors","OrderDetailsGroupDelivery","_ref2","deliveryProps","statusValue","getOrderStatus","OrderDetailsGroup","_ref3","_context$app","_context$actionContex","_context$request$chan","group","salesId","createdDate","groupProps","delivery","salesLinesProps","salesLines","productWeightAttribute","isMobile","setIsMobile","attributeValues","setAttributeValues","prodAttrIdentifier","setProdAttrIdentifier","_updateViewport","viewport","_getViewport","device","Type","innerWidth","sm","md","addEventListener","prodAttributeIdentifier","res","_salesLine$data$produ","_context$request","_context$request2","_salesLine$data$produ2","productAttributes","getAttributeValuesAsync","channelId","catalogId","productAttributesFiltered","filteredProductAttributeList","kcProductAttribute","manufacturer","identifier","recId","fetchData","createdDateJSXProps","customDate","children","dateParts","formattedDateString","Date","toLocaleDateString","dateLocale","dateFormat","currency","Currency","formattedDateStringBylocale","dateFormatByLocale","_salesLine$data","_salesLine$data2","_salesLine$data$produ3","_manufacturerObj$manu","_manufItemTypeNameObj","_context$actionContex2","_salesLine$data4","_salesLine$data5","_salesLine$data$produ4","_salesLine$data$produ5","_salesLine$data$produ6","_salesLine$data6","salesLineAttr","AttributeValues","productAttrManufactrValue","productAttrWeightValue","lineTotal","GrossAmount","DiscountAmount","manufItemTypeNameObj","ExtensionProperties","Key","manufacturerObj","_salesLine$data3","urlPath","formatUrlPath","TextValue","Value","StringValue","isAddingPathWithUrl","addPathWithUrl","productUrl","origin","buyAgainButtonCloned","buyAgain","documentedDateTabelHeaderLabel","salesIDHeaderLabel","weightTabelHeaderLabel","manufacturerHeaderLabel","productTabelHeaderLabel","productNumberTabelHeaderLabel","quantityTabelHeaderLabel","netAmountTabelHeaderLabel","currencyFormat","grossAmountTabelHeaderLabel","TotalAmount","currencyTabelHeaderLabel","fulfilledTabelHeaderLabel","SalesStatusValue","orderStateLabel","actionTabelHeaderLabel","_salesLine$data7","_salesLine$data8","_salesLine$data$produ7","_manufacturerObj$manu2","_manufacturerObj$manu3","_manufItemTypeNameObj2","_manufItemTypeNameObj3","_context$actionContex3","_salesLine$data10","_salesLine$data11","_salesLine$data$produ8","_salesLine$data$produ9","_salesLine$data$produ10","_salesLine$data12","_salesLine$data9","showTimeslot","pickupProps","pickupDateTimeslot","OrderDetailsGroups","_ref4","groupsProps","groups","OrderDetailsOrderSummary","_ref5","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","discountAmount","deliveryMode","chargeAmount","subTotalJSXValue","subTotalAmount","paymentSummaryText","subTotalText","shippingFeeText","itemProp","freeText","toBeCalculatedText","tabIndex","excludingFreightCostMessage","OrderDetailsPayment","_ref6","paymentMethodsProps","methods","OrderDetailsHelp","_ref7","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref8","_result$salesOrder","_result$salesOrder2","_bannerLink$linkUrl","viewModes","tableViewActions","table","placedBy","loading","orderInfomation","orderSummary","bannerImage","bannerLink","orderHydration","salesOrder","imageProps","contentBlockImage","Msdyn365","editProps","imagePropertyName","layout","msdyn365__moduleLayout","shouldSkipToMainImage","orderPlacedBy","StatusValue","DeliveryMode","ChargeAmount","linkUrl","destinationUrl","openInNewTab","_renderForm","form","SearchForm","FormWrapper","cancelBtn","submitBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","isLoadingAutoSuggest","isLoadingNode","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","LiProduct","AProduct","thumbnail","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","BusinessPartnerPromotionTermsParagraph","description","titleClassName","moduleClassName","BusinessPartnerPromotion","onCheckBoxChange","setState","termsOfServiceChecked","onToggleTermOfServiceModal","termsOfServiceModalOpened","_data$b2bUserInformat","_data$b2bUserInformat2","errorMessageText","promoteToSellerSubmitSuccessMessage","businessPartnerId","b2bUserInformation","BusinessPartnerId","promoteToSellerAsync","showSubmitButton","showTermsOfService","notificationMessage","_unused","termsOfService","authorizationErrorMessage","canSubmit","isAdminUser","btnEnabled","businessPartnerPromotionProps","Text","renderNotificationBar","sellerDescriptions","renderSellerDescriptions","termsOfServiceCheckbox","termsOfServiceLinkText","termsOfServiceAgreementText","termsOfServiceModal","termsOfServiceModalHeading","submitButton","submitRequestLabel","notificationBar","Alert","color","results","idx1","_description$bulletPo","bulletPoints","bulletPoint","idx2","StringExtensions","isNullOrEmpty","IsAdmin","_renderCartlines","cartLines","cartEmptyText","CartlinesWrapper","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","cartLine","_cartLine$cartlineId","cartlineId","cartline","pickUpInStore","ContainerProps","defaultComponent","addToOrderTemplate","remove","addToWishlist","renderCartLinesGroupHeader","pickUpText","shippingText","emailShippingText","titleSeparate","emailDeliveryModeCode","_cartLine$pickUpInSto4","groupTitle","isBopisSelected","renderCartLinesGroupTitle","_cartLine$pickUpInSto","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","deliveryOption","orgUnitName","_props$cart","_props$cart2","errorData","promotions","renderModuleAttributes","hasInvoiceLine","promotionOptions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","multiplePickUpEnabled","cartLinesGroup","cartlines","_props$context$action","emailshippingText","EmailDeliveryModeCode","emptyCartText","renderCartLinesGroup","orderSummaryHeading","OrderSummaryWrapper","_renderInvoiceSummarylines","invoiceSummaryLines","OrderSummaryItems","invoices","giftCard","loyalty","orderTotal","invoiceSummaryLineitems","_renderOrderSummarylines","orderSummaryLines","promoCode","otherCharge","totalDiscounts","orderSummaryLineitems","OrderSummaryErrors","Wrapper","header","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","link","linkText","contentAction","etext","editableLink","additionalProperties","onTelemetryClick","links","onTextChange","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","content","visible","cookieRef","_onDismiss","bind","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","AlertProps","Content","onEdit","acceptButton","setConsentCookie","reload","renderCustomerName","accountInformation","customer","FirstName","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","promotionalImage","promotionalContent","image","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","menuNode","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","defaultImageSettings","_categoryImage$imageS","ImageData","categoryImageSettings","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","document","body","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","keyValue","isDrawerOpen","colProps","toggleButtonProps","onToggle","collapseProps","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","Math","round","_renderMenu","onFocus","hoverEffect","arguments","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modal","modalHeader","createModalBody","modalFooter","modalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","BackTopFooter","backtoTopText","destination","BackToTop","Iframe","iframeRef","srcURL","URL","exception","protocol","iframeClassName","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","height","iframeAriaLabel","IFrameView","ProductComparisonButton","_addToProductComparison","_this$props$data$acco","ProductComparisonItem","ProductComparisonState","instance","addItem","_removeFromProductComparison","_this$props$data$acco2","removeItemById","comparisonItemId","_getNewState","_this$props$data$acco3","getItemId","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","slots","productComparisonPreview","onClickHandler","_this$props$data$acco4","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","_this$props$data$acco5","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","variant","VariantType","Browser","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_this$props$data$acco6","_items$filter","getCatalogId","ProductComparisonButtonViewFunctionalComponent","renderConfigure","configure","containerProps","dropdowns","renderConfigureDropdown","dropdown","labelContainerProps","select","quickOrderProps","contentProps","quickOrderForm","drawer","quickOrderFormProductContent","quickOrderFormMsgContent","quickOrderList","renderForm","quickOrderProductContent","quickOrderMsgContent","quantity","userMessage","addToCartBtn","renderTitleCount","PromoCode","_onInputChangeHandler","promoCodeInputValue","trim","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_onSubmitHandler","applyPromotionHandler","promoPlaceholderText","promoCodeApplyButtonText","_removePromotion","_event$currentTarget$","code","currentTarget","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","removePromotionHandler","coupon","removePromoAriaLabelFormat","removePromoText","Code","ApplyPromoCode","promoCodeHeadingText","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","tag","renderProductDescription","_props$data$product$r","primaryImageSource","imageUrl","cropFocalRegion","renderProductImage","signInMessage","signInButton","paragraph","reviewModal","inputRow","selectRatingLabel","rating","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","createReviewModal"],"sourceRoot":""}