{"version":3,"file":"static/js/4.dc4d8c0c9054567f45ed.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/common/address-autosuggest.ts?f5a2","webpack://Citta2.0/./src/common/address-common.ts?cf4b","webpack://Citta2.0/./src/common/address-format.data.ts?6cbf","webpack://Citta2.0/./src/common/address-format.ts?4f04","webpack://Citta2.0/./src/common/address-meta-data.ts?c6e6","webpack://Citta2.0/./src/common/address-module.data.ts?697a","webpack://Citta2.0/./src/common/components/address-checkbox.tsx?eb1a","webpack://Citta2.0/./src/common/components/address-add.tsx?e6a6","webpack://Citta2.0/./src/common/components/address-alert.tsx?10d1","webpack://Citta2.0/./src/common/components/address-button.tsx?7f7b","webpack://Citta2.0/./src/common/components/address-detail-item.tsx?5209","webpack://Citta2.0/./src/common/components/address-dropdown.tsx?f24b","webpack://Citta2.0/./src/common/components/address-error-message.tsx?89ad","webpack://Citta2.0/./src/common/components/address-error-title.tsx?3926","webpack://Citta2.0/./src/common/components/address-input.tsx?8073","webpack://Citta2.0/./src/common/components/address-label.tsx?6864","webpack://Citta2.0/./src/common/components/address-list.tsx?a628","webpack://Citta2.0/./src/common/components/address-show.tsx?3f60","webpack://Citta2.0/./src/modules/business-account-address/business-account-address.tsx?299e","webpack://Citta2.0/./src/modules/business-account-address/business-account-address.view.tsx?5078"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ITelemetry } from '@msdyn365-commerce/core';\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\n\nimport { IAutoSuggestOptions } from './address-autosuggest.data';\n\n/**\n *\n * Auto Suggest.\n */\nexport class AutoSuggest {\n public readonly excludedAddressFields: string[] = ['ThreeLetterISORegionName', 'Name', 'AddressTypeValue', 'Phone'];\n\n private readonly telemetry: ITelemetry;\n\n private readonly countryCode?: string;\n\n private readonly bingMapsApiKey?: string;\n\n private readonly defaultLanguageId?: string;\n\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\n\n private autoSuggestOptions: IAutoSuggestOptions;\n\n constructor(\n telemetry: ITelemetry,\n autoSuggestOptions: IAutoSuggestOptions,\n BingMapsApiKey?: string,\n countryCode?: string,\n defaultLanguageId?: string\n ) {\n this.telemetry = telemetry;\n this.autoSuggestOptions = autoSuggestOptions;\n this.bingMapsApiKey = BingMapsApiKey;\n this.countryCode = countryCode;\n this.defaultLanguageId = defaultLanguageId;\n }\n\n public attachAutoSuggest = (\n inputId: string,\n containerId: string,\n selectedSuggestionCallback: (result: Microsoft.Maps.ISuggestionResult) => void\n ): void => {\n if (!this.autoSuggestManager) {\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\n callback: () => {\n const options = { ...this.autoSuggestOptions, countryCode: this.countryCode };\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\n this.autoSuggestManager.attachAutosuggest(inputId, containerId, selectedSuggestionCallback);\n document.querySelector(inputId)?.setAttribute('role', 'combobox');\n setTimeout(() => {\n document.querySelector(inputId)?.setAttribute('type', 'text');\n }, 0);\n },\n errorCallback: () => {\n if (this.telemetry) {\n this.telemetry.debug('Unable to attach map auto suggest.');\n }\n },\n credentials: this.bingMapsApiKey\n });\n }\n };\n\n public changeAutoSuggestionCountryCode = (countryCode?: string): void => {\n if (this.autoSuggestManager) {\n this.autoSuggestOptions.countryCode = countryCode;\n this.autoSuggestManager.setOptions(this.autoSuggestOptions);\n }\n };\n\n public disposeAutoSuggest = (): void => {\n this.autoSuggestManager?.detachAutosuggest();\n this.autoSuggestManager?.dispose();\n this.autoSuggestManager = undefined;\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _loadMapAPI = async (storeSelectorStateManager: IStoreSelectorStateManager): Promise => {\n await storeSelectorStateManager.loadMapApi({\n key: this.bingMapsApiKey,\n lang: this.defaultLanguageId,\n market: this.countryCode\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 { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\nimport {\n Address,\n AddressPurpose,\n CountryRegionInfo,\n StateProvinceInfo\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n addAddress,\n AddressManagementInput,\n ArrayExtensions,\n updateAddress,\n updatePrimaryAddress\n} from '@msdyn365-commerce-modules/retail-actions';\n\nimport { getAddressPurposesAction, GetAddressPurposesInput } from '../actions/get-address-purposes';\nimport { getStateProvinceAction, GetStateProvincesInput } from '../actions/get-state-provinces';\nimport { IAddressResource, IAddressResponse } from './address-module.data';\n\n/**\n *\n * Address common.\n */\nexport class AddressCommon {\n private readonly context: ICoreContext;\n\n private readonly resources: IAddressResource;\n\n private readonly telemetry: ITelemetry;\n\n constructor(context: ICoreContext, resources: IAddressResource, telemetry: ITelemetry) {\n this.context = context;\n this.resources = resources;\n this.telemetry = telemetry;\n }\n\n public getDefaultCountryRegionId = (countryRegionId: string, countryRegions: CountryRegionInfo[], market?: string): string => {\n const marketISOCode = market || 'US';\n const currentCountryRegion = countryRegions.find(countryRegion => (countryRegion.ISOCode || '') === marketISOCode);\n return (currentCountryRegion && currentCountryRegion.CountryRegionId) || countryRegionId;\n };\n\n public parseRetailException = (resources: IAddressResource): IAddressResponse => {\n return {\n errorTitle: resources.addressErrorMessageTitle,\n errorMessage: resources.addressGenericErrorMessage\n };\n };\n\n public isAuthenticatedFlow = (): boolean => {\n return this.context.request.user.isAuthenticated;\n };\n\n public getStateProvinces = async (countryRegionId: string): Promise => {\n let response: StateProvinceInfo[] = [];\n if (this.context && this.context.actionContext) {\n try {\n const input = new GetStateProvincesInput(countryRegionId, this.context.request.apiSettings);\n response = await getStateProvinceAction(input, this.context.actionContext);\n } catch (error) {\n if (this.telemetry) {\n this.telemetry.error(`Error encountered ${error}`);\n this.telemetry.debug('Unable to get state provinces');\n }\n }\n }\n return Promise.resolve(response);\n };\n\n // For any address, check for common requried field else treat it as invalid\\empty address.\n public isEmpty = (address: Address): boolean => {\n if (address && address.ThreeLetterISORegionName && (address.State || address.City)) {\n return false;\n }\n\n return true;\n };\n\n public addCustomerAddress = async (address: Address): Promise => {\n await this.updateLogisticsLocationRoleRecordId(address);\n return this.submitCustomerAddress(addAddress, address);\n };\n\n public updateCustomerAddress = async (address: Address): Promise => {\n await this.updateLogisticsLocationRoleRecordId(address);\n return this.submitCustomerAddress(updateAddress, address);\n };\n\n public updateCustomerPrimaryAddress = async (address: Address): Promise => {\n return this.submitCustomerAddress(updatePrimaryAddress, address);\n };\n\n private readonly submitCustomerAddress = async (\n addressAction: IObservableAction,\n address: Address\n ): Promise => {\n address.AddressTypeValue = address.AddressTypeValue || 7; // 7 sets it to HOME by default\n\n const input = new AddressManagementInput(address);\n return this.execAddressAction(addressAction, input, address);\n };\n\n private readonly execAddressAction = async (\n addressAction: IObservableAction,\n input: IActionInput | IActionInput[],\n address: Address\n ): Promise => {\n let response: IAddressResponse = {};\n\n if (this.context && this.context.actionContext) {\n try {\n const addresses = await addressAction(input, this.context.actionContext);\n if (addresses.length > 0) {\n response.address = address.RecordId ? address : addresses[addresses.length - 1];\n } else {\n response.address = address;\n }\n response.customerAddresses = addresses;\n } catch (error) {\n if (this.telemetry) {\n this.telemetry.error(`Error encountered ${error}`);\n this.telemetry.debug('Unable to exec address action');\n }\n response = this.parseRetailException(this.resources);\n }\n }\n return Promise.resolve(response);\n };\n\n /**\n * Function to get the address purposes and update the LogisticsLocationRoleRecordId to update the address type.\n * @param address - Address object.\n * @returns Returns void.\n */\n private readonly updateLogisticsLocationRoleRecordId = async (address: Address): Promise => {\n let addressPurposes: AddressPurpose[] = [];\n try {\n const input: GetAddressPurposesInput = new GetAddressPurposesInput(this.context.request.apiSettings);\n addressPurposes = await getAddressPurposesAction(input, this.context.actionContext);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- Supparsing the any type for error.\n this.telemetry.error(`Error encountered ${error}`);\n this.telemetry.debug('Unable to get address purposes');\n }\n if (ArrayExtensions.hasElements(addressPurposes)) {\n const addressPurpose: AddressPurpose | undefined = addressPurposes.find(\n purpose => purpose.AddressType === address.AddressTypeValue\n );\n if (addressPurpose) {\n address.LogisticsLocationRoleRecordId = addressPurpose.RecordId;\n }\n }\n };\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport enum AddressItemDisplayType {\n Input = 'Input',\n Dropdown = 'Dropdown',\n Checkbox = 'Checkbox'\n}\n\nexport enum AddressValidationRuleType {\n Required = 'Required',\n Format = 'Format'\n}\n\nexport enum AddressItemType {\n Name = 1001,\n Phone = 1002,\n IsPrimary = 1003,\n AddressTypeValue = 1004,\n ZipCode = 1,\n City = 2,\n County = 3,\n State = 4,\n ThreeLetterISORegionName = 5,\n Street = 6,\n DistrictName = 7,\n StreetNumber = 8,\n BuildingCompliment = 9,\n Postbox = 10,\n House_RU = 21,\n Flat_RU = 22,\n CountryOKSMCode_RU = 23\n}\n\nexport interface IAddressItem {\n name: string;\n type: AddressItemType;\n label: string;\n maxLength: number;\n displayType: AddressItemDisplayType;\n validationRules?: IAddressValidationRule[];\n isNewLine: boolean;\n}\n\nexport interface IAddressValidationRule {\n type: AddressValidationRuleType;\n regEx: string;\n message: string;\n}\n\nexport interface IAddressDropdownsData {\n [index: string]: { key?: string | number; value?: string }[];\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Address,\n AddressPurpose,\n CountryRegionInfo,\n StateProvinceInfo\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { get, set } from 'mobx';\n\nimport { AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule } from './address-format.data';\nimport { AddressMetaData } from './address-meta-data';\n\n/**\n *\n * Retail Service Address format parser.\n */\nexport class AddressFormat {\n private readonly countryRegionsInfo?: CountryRegionInfo[];\n\n private readonly addressPurposes?: AddressPurpose[];\n\n private readonly addressMetaData: AddressMetaData;\n\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\n this.countryRegionsInfo = countryRegionsInfo;\n this.addressMetaData = addressMetaData;\n this.addressPurposes = addressPurposes;\n }\n\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\n if (countryRegionInfo) {\n return this._getAddressDisplayFormat(countryRegionInfo);\n }\n return [];\n }\n\n public getCountryFormat(): { key?: string; value?: string }[] {\n return (this.countryRegionsInfo || []).map(countryRegion => {\n return {\n key: countryRegion.CountryRegionId,\n value: countryRegion.ShortName\n };\n });\n }\n\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\n return (stateProvinceInfo || []).map(state => {\n return {\n key: state.StateId,\n value: state.StateName\n };\n });\n }\n\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\n return (this.addressPurposes || []).map(addressPurpose => {\n return {\n key: addressPurpose.AddressType,\n value: addressPurpose.Description\n };\n });\n }\n\n public getPrefilledAddressDropdownData = (\n stateDefaultSelectionText: string,\n stateProvinceInfo?: StateProvinceInfo[]\n ): IAddressDropdownsData => {\n const defaultStateText = {\n key: '',\n value: stateDefaultSelectionText\n };\n const dropdownData: IAddressDropdownsData = {};\n\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\n\n return dropdownData;\n };\n\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\n\n return countryRegionInfo!.ISOCode;\n };\n\n public validateAddressFormat = (\n address: Address,\n validationError: Address,\n countryRegionId: string,\n propertyName?: string\n ): boolean => {\n let isValid: boolean = true;\n let validationtor;\n const addressFormat = this.getAddressFormat(address.ThreeLetterISORegionName || countryRegionId);\n\n addressFormat.forEach(addressFormatItem => {\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\n validationtor = this._inputValidation(addressFormatItem, validationError, address);\n if (validationtor !== undefined) {\n isValid = validationtor;\n }\n }\n });\n\n return isValid;\n };\n\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\n const address: Address = {};\n\n // Zip Code\n if (result.address.postalCode !== undefined) {\n address.ZipCode = result.address.postalCode;\n } else {\n address.ZipCode = '';\n }\n\n // State\n if (stateProvinceInfo) {\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\n if (!selectedState) {\n address.State = '';\n address.StateName = result.address.adminDistrict;\n } else {\n address.State = selectedState.StateId;\n address.StateName = selectedState.StateName;\n }\n }\n\n // Street\n if (result.address.addressLine !== undefined) {\n address.Street = result.address.addressLine;\n } else {\n address.Street = ' ';\n }\n\n // City\n if (result.address.locality !== undefined) {\n address.City = result.address.locality;\n } else {\n address.City = '';\n }\n\n // District\n if (result.address.district !== undefined) {\n address.DistrictName = result.address.district;\n address.CountyName = result.address.district;\n } else {\n address.DistrictName = '';\n }\n\n // Formatted Address\n address.FullAddress = result.address.formattedAddress;\n\n return address;\n };\n\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address): boolean | undefined {\n set(validationError, { [addressFormatItem.name]: null });\n for (const validationRule of addressFormatItem.validationRules || []) {\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\n set(validationError, { [addressFormatItem.name]: validationRule.message });\n return false;\n }\n }\n return undefined;\n }\n\n private readonly _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\n if (validationRule.regEx && validationRule.regEx.length > 0) {\n const regex = new RegExp(validationRule.regEx);\n return regex.test((get(address, propertyName) as string) || '');\n }\n return true;\n };\n\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\n return (this.countryRegionsInfo || []).find(countryRegion => {\n return (countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase();\n });\n }\n\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\n const addressDisplayItem: IAddressItem[] = [];\n\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\n if (AddressTypeItem) {\n addressDisplayItem.push(AddressTypeItem);\n }\n\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\n if (nameDisplayItem) {\n addressDisplayItem.push(nameDisplayItem);\n }\n\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\n if (formatLine.AddressComponentNameValue) {\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\n if (addressItem) {\n addressItem.isNewLine = formatLine.NewLine || false;\n addressDisplayItem.push(addressItem);\n }\n }\n });\n\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\n if (phoneDisplayItem) {\n addressDisplayItem.push(phoneDisplayItem);\n }\n\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\n if (isPrimaryDisplayItem) {\n addressDisplayItem.push(isPrimaryDisplayItem);\n }\n }\n\n return addressDisplayItem;\n }\n\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\n const addressItem = this.addressMetaData.getItemFormat(type);\n if (addressItem) {\n addressItem.isNewLine = isNewLine;\n }\n return addressItem;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PhoneRegex } from '@msdyn365-commerce-modules/retail-actions';\n\nimport {\n AddressItemDisplayType,\n AddressItemType,\n AddressValidationRuleType,\n IAddressItem,\n IAddressValidationRule\n} from './address-format.data';\nimport { IAddressResource } from './address-module.data';\n\n/**\n * Address meta data.\n */\nexport class AddressMetaData {\n private readonly metaData: IAddressItem[] = [];\n\n private readonly resources: IAddressResource;\n\n private readonly requiredFieldRegEx: string = '\\\\S';\n\n private readonly resourcesPrefix: string = 'address';\n\n private readonly maxLength: number = 64;\n\n private readonly requiredFields: AddressItemType[];\n\n private readonly excludedTypes: AddressItemType[];\n\n constructor(resources: IAddressResource, excluded?: AddressItemType[], required?: AddressItemType[]) {\n this.resources = resources || {};\n this.excludedTypes = excluded || [];\n this.requiredFields =\n required !== undefined\n ? required\n : [\n AddressItemType.AddressTypeValue,\n AddressItemType.Name,\n AddressItemType.ZipCode,\n AddressItemType.City,\n AddressItemType.State,\n AddressItemType.ThreeLetterISORegionName,\n AddressItemType.Street\n ];\n this._init();\n }\n\n public getItemFormat(id: number): IAddressItem | undefined {\n return this.metaData.find(item => {\n return item.type === id;\n });\n }\n\n private _init(): void {\n this._addItem(AddressItemType.Name, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.Phone, AddressItemDisplayType.Input, PhoneRegex.defaultRegex);\n this._addItem(AddressItemType.ZipCode, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.City, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.County, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.State, AddressItemDisplayType.Dropdown);\n this._addItem(AddressItemType.ThreeLetterISORegionName, AddressItemDisplayType.Dropdown);\n this._addItem(AddressItemType.Street, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.DistrictName, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.StreetNumber, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.BuildingCompliment, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.Postbox, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.House_RU, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.Flat_RU, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.CountryOKSMCode_RU, AddressItemDisplayType.Input);\n this._addItem(AddressItemType.AddressTypeValue, AddressItemDisplayType.Dropdown);\n this._addItem(AddressItemType.IsPrimary, AddressItemDisplayType.Checkbox);\n }\n\n private _addItem(type: AddressItemType, displayType: AddressItemDisplayType, format?: string): void {\n if (this.excludedTypes.includes(type)) {\n return;\n }\n\n const nameKey = AddressItemType[type].replace('_', '');\n\n // Find out if currentItem is required field\n const validationRules = this._validationRules(type, nameKey, format);\n const isRequired = validationRules.some(rule => rule.type === AddressValidationRuleType.Required);\n\n // If no optional string is provided in resource file, use the original label text\n const optionalString =\n this.resources[`${this.resourcesPrefix}${nameKey}LabelOptional`] || this.resources[`${this.resourcesPrefix}${nameKey}Label`];\n const item: IAddressItem = {\n type,\n displayType,\n name: AddressItemType[type],\n label: isRequired ? this.resources[`${this.resourcesPrefix}${nameKey}Label`] : optionalString,\n maxLength: this.maxLength,\n validationRules,\n isNewLine: true\n };\n\n this.metaData.push(item);\n }\n\n private _validationRules(type: AddressItemType, name: string, format?: string): IAddressValidationRule[] {\n const validationRules: IAddressValidationRule[] = [];\n\n for (const ruleType of Object.keys(AddressValidationRuleType)) {\n const key = `${this.resourcesPrefix}${name}${ruleType}`;\n const message: string = this.resources[`${key}ErrorMessage`];\n switch (ruleType) {\n case AddressValidationRuleType.Required: {\n if (this.requiredFields.find((itemType: AddressItemType) => itemType === type)) {\n validationRules.push(this._validationRule(ruleType, this.requiredFieldRegEx, message));\n }\n break;\n }\n case AddressValidationRuleType.Format: {\n validationRules.push(this._validationRule(ruleType, format!, message));\n break;\n }\n default:\n }\n }\n return validationRules;\n }\n\n private _validationRule(type: AddressValidationRuleType, regEx: string, message: string): IAddressValidationRule {\n return {\n type,\n regEx,\n message\n };\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Address } from '@msdyn365-commerce/retail-proxy';\nimport { Heading } from '@msdyn365-commerce-modules/data-types';\n\nexport enum AddressOperation {\n Add = 'Add',\n Show = 'Show',\n Update = 'Update',\n List = 'List',\n Multiple = 'Multiple'\n}\n\nexport enum AddressType {\n Shipping = 'Shipping',\n Billing = 'Billing',\n Invoice = 'Invoice',\n Company = 'Company'\n}\n\nexport interface IDropdownDisplayData {\n [index: string]: { key?: string; value?: string }[];\n}\n\nexport interface IAddressResponse {\n errorTitle?: string;\n errorMessage?: string;\n customerAddresses?: Address[];\n address?: Address;\n}\n\nexport interface IAddressConfig {\n heading?: Heading;\n primaryAddressSectionHeading?: Heading;\n otherAddressSectionHeading?: Heading;\n addAddressHeading?: Heading;\n editAddressHeading?: Heading;\n}\n\nexport interface IAddressResource {\n addressChangeCheckboxAriaLabel: string;\n addressAddButtonText: string;\n addressAddButtonAriaLabel: string;\n addressAddNewButtonText?: string;\n addressAddNewButtonAriaLabel?: string;\n addressPrimaryButtonText: string;\n addressPrimaryButtonAriaLabel: string;\n addressEditButtonText: string;\n addressEditButtonAriaLabel: string;\n addressRemoveButtonText: string;\n addressRemoveButtonAriaLabel: string;\n addressSaveButtonText: string;\n addressSaveButtonAriaLabel: string;\n addressCancelButtonText: string;\n addressCancelButtonAriaLabel: string;\n addressStateDefaultSelectionText: string;\n addressNameLabel: string;\n addressNameLabelOptional?: string;\n addressNameRequiredErrorMessage: string;\n addressPhoneLabel: string;\n addressPhoneLabelOptional?: string;\n addressPhoneRequiredErrorMessage: string;\n addressZipCodeLabel: string;\n addressZipCodeLabelOptional?: string;\n addressZipCodeRequiredErrorMessage: string;\n addressCityLabel: string;\n addressCityLabelOptional?: string;\n addressCityRequiredErrorMessage: string;\n addressCountyLabel: string;\n addressCountyLabelOptional?: string;\n addressCountyRequiredErrorMessage: string;\n addressStateLabel: string;\n addressStateLabelOptional?: string;\n addressStateRequiredErrorMessage: string;\n addressThreeLetterISORegionNameLabel: string;\n addressThreeLetterISORegionNameLabelOptional?: string;\n addressThreeLetterISORegionNameRequiredErrorMessage: string;\n addressStreetRequiredErrorMessage: string;\n addressDistrictLabel: string;\n addressDistrictLabelOptional?: string;\n addressDistrictNameLabel: string;\n addressDistrictNameLabelOptional?: string;\n addressDistrictRequiredErrorMessage: string;\n addressStreetNumberLabel: string;\n addressStreetNumberLabelOptional?: string;\n addressStreetNumberRequiredErrorMessage: string;\n addressBuildingComplimentLabel: string;\n addressBuildingComplimentLabelOptional?: string;\n addressBuildingComplimentRequiredErrorMessage: string;\n addressPostboxLabel: string;\n addressPostboxLabelOptional?: string;\n addressPostboxRequiredErrorMessage: string;\n addressHouseRULabel: string;\n addressHouseRULabelOptional?: string;\n addressHouseRURequiredErrorMessage: string;\n addressFlatRULabel: string;\n addressFlatRULabelOptional?: string;\n addressFlatRURequiredErrorMessage: string;\n addressCountryOKSMCodeRULabel: string;\n addressCountryOKSMCodeRURequiredErrorMessage: string;\n addressErrorMessageTitle: string;\n addressGenericErrorMessage: string;\n addressEmptyListAddressMessage: string;\n removeAddressNotification?: string;\n addressProductImage?: string;\n addressProductNumberText?: string;\n addressProductText?: string;\n addressProductUnitPriceText?: string;\n addressProductUOMText?: string;\n addressProductQuantityText?: string;\n addressProductActionsText?: string;\n addressSelectAllRowsText?: string;\n addressProductAddressText?: string;\n addressShipMultipleText?: string;\n addressShipMultipleAriaLabel?: string;\n saveAndContinueBtnLabel?: string;\n addressShipSingleText?: string;\n addressShipSingleAriaLabel?: string;\n clearSelectionButtonText?: string;\n clearSelectionButtonAriaLabel?: string;\n chooseAddressForSelectedItemsText?: string;\n chooseAddressForSelectedItemsAriaLabel?: string;\n noAddressSelectedAriaLabel?: string;\n unavailableProductErrorMessage?: string;\n outOfStockProductErrorMessage?: string;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAdressCheckbox {\n id?: string;\n name?: string;\n className: string;\n type: string;\n isChecked: boolean;\n autoFocus?: boolean;\n additionalAddributes?: object;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Address checkbox.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressCheckboxFunctionComponent: React.FC = (props: IAdressCheckbox) => {\n const {\n id: itemId,\n name,\n className,\n type,\n isChecked,\n additionalAddributes,\n telemetryContent,\n autoFocus: shouldBeAutoFocused,\n onChange\n } = props;\n\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default AddressCheckboxFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { get } from 'mobx';\nimport * as React from 'react';\n\nimport {\n AddressItemDisplayType,\n AddressItemType,\n AddressValidationRuleType,\n IAddressDropdownsData,\n IAddressItem,\n IAddressValidationRule\n} from '../address-format.data';\nimport { AddressType, IAddressResource, IAddressResponse } from '../address-module.data';\nimport AddressAlertComponent from './address-alert';\nimport AddressButtonComponent from './address-button';\nimport AdressCheckboxComponent from './address-checkbox';\nimport AdressDropdownComponent from './address-dropdown';\nimport AddressErrorMessageComponent from './address-error-message';\nimport AddressErrorTitleComponent from './address-error-title';\nimport AddressInputComponent from './address-input';\nimport AddressLabelComponent from './address-label';\n\nexport interface IAddressAddInputProps {\n isUpdating?: boolean;\n hasError?: boolean;\n hasExternalSubmitGroup?: boolean;\n addressType: AddressType;\n addressFormat: IAddressItem[];\n defaultCountryRegionId: string;\n defaultAddressType: number;\n selectedAddress?: Address;\n dropdownDisplayData: IAddressDropdownsData;\n resources: IAddressResource;\n addressActionResponse?: IAddressResponse;\n addAddressHeading?: HeadingData;\n editAddressHeading?: HeadingData;\n validationError?: object;\n telemetryContent?: ITelemetryContent;\n shouldAutoFocus?: boolean;\n onInputChange(event: React.ChangeEvent): void;\n onDropdownChange(event: React.ChangeEvent): void;\n onSave?(): void;\n onCancel?(): void;\n}\n\nexport interface IAddressError {\n AddressError: INodeProps;\n title: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAddressAddItem {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAddressAddUpdateProps {\n AddressForm: INodeProps;\n heading: React.ReactNode;\n items: IAddressAddItem[];\n hasError: boolean;\n error: IAddressError;\n isShowSaveButton: boolean;\n saveButton: React.ReactNode;\n isShowCancelButton: boolean;\n cancelButton: React.ReactNode;\n}\n\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\n const requriedRule = (validationRules || []).find(validationRule => {\n return validationRule.type === AddressValidationRuleType.Required;\n });\n\n return requriedRule ? { 'aria-required': true } : {};\n};\n\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps): IAddressAddItem[] => {\n const {\n addressFormat,\n addressType,\n dropdownDisplayData,\n defaultCountryRegionId,\n defaultAddressType,\n validationError = {},\n onInputChange,\n onDropdownChange,\n shouldAutoFocus\n } = props;\n\n return addressFormat.map((addressFormatItem, index) => {\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\n const errorMessage = get(validationError, addressFormatItem.name);\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, {\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\n 'address-form__item-invalid': errorMessage\n });\n let input;\n\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\n input = (\n \n );\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\n input = (\n \n );\n } else {\n const displayData = dropdownDisplayData[addressFormatItem.name];\n let selectedValue = selectedAddress[addressFormatItem.name];\n\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\n selectedValue = selectedValue || defaultCountryRegionId;\n }\n\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\n selectedValue = selectedValue || defaultAddressType;\n }\n\n input = (\n \n );\n }\n\n return {\n key: addressFormatItem.name,\n AddressItem: { className, id: `${elementId}_container` },\n label: ,\n alert: ,\n input\n };\n });\n};\n\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\n const {\n editAddressHeading,\n addAddressHeading,\n selectedAddress = {},\n resources,\n hasError,\n onCancel,\n onSave,\n hasExternalSubmitGroup,\n isUpdating,\n addressActionResponse,\n telemetryContent\n } = props;\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\n\n return {\n AddressForm: { className: 'msc-address-form' },\n heading: heading && ,\n items: getAddessItems(selectedAddress, props),\n isShowSaveButton: !hasExternalSubmitGroup,\n saveButton: onSave && (\n \n ),\n isShowCancelButton: !hasExternalSubmitGroup,\n cancelButton: onCancel && (\n \n ),\n hasError: hasError || false,\n error: {\n AddressError: { className: 'msc-address-form__error' },\n title: addressActionResponse && addressActionResponse.errorTitle && (\n \n ),\n message: addressActionResponse && addressActionResponse.errorMessage && (\n \n )\n }\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAdressAlert {\n message?: string;\n}\n\n/**\n * Address alert.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressAlertFunctionComponent: React.FC = (props: IAdressAlert) => {\n const message = props.message;\n return (\n \n {message && <>{message}}\n \n );\n};\n\nexport default AddressAlertFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAddressButton {\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n role?: string;\n onClick(event: React.MouseEvent): void;\n}\n\n/**\n * Address button.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressButtonFunctionComponent: React.FC = (props: IAddressButton) => {\n const { className, text, ariaLabel, disabled: isDisabled, telemetryContent, onClick, role } = props;\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default AddressButtonFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classname from 'classnames';\nimport * as React from 'react';\n\nexport interface IAddressDetailItem {\n isNewLine: boolean;\n isShowLabel: boolean;\n labelText: string;\n name: string;\n value: string;\n}\n\n/**\n * Address details item.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressDetailItemFunctionComponent: React.FC = (props: IAddressDetailItem) => {\n const { isNewLine, isShowLabel, labelText, name, value } = props;\n\n const className = `msc-address-detail__item msc-address-detail__item-${name.toLowerCase()}`;\n const isEmpty = !(value && value.length > 0);\n const mainClass = isShowLabel\n ? `msc-address-detail__item msc-address-detail__item-address-detail_${labelText}`\n : classname(className, { 'msc-address-detail__item-empty': isEmpty, 'msc-address-detail__item-newline': isNewLine });\n return (\n \n {isShowLabel && (\n <>\n {labelText}\n \n \n )}\n {value}\n \n );\n};\n\nexport default AddressDetailItemFunctionComponent;\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 IAdressDropdown {\n id: string;\n name: string;\n className: string;\n value: string | number;\n additionalAddributes?: object;\n recordId?: string;\n displayData: { key?: string | number; value?: string }[];\n onChange(event: React.ChangeEvent): void;\n}\n\nconst getDropdownItem = (key?: string | number, value?: string, selectedValue?: string | number): React.ReactNode => {\n let isSelected: boolean;\n if (typeof key === 'number') {\n isSelected = key === selectedValue;\n } else {\n isSelected = typeof selectedValue === 'string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\n }\n\n return (\n \n );\n};\n\n/**\n * Address dropdown.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressDropdownFunctionComponent: React.FC = (props: IAdressDropdown) => {\n const { id: itemId, name, className, value, additionalAddributes, displayData, onChange, recordId } = props;\n\n return (\n \n {displayData && displayData.map(item => getDropdownItem(item.key, item.value, value))}\n \n );\n};\n\nexport default AddressDropdownFunctionComponent;\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 IAdressErrorMessage {\n message: string;\n}\n\n/**\n * Address error message.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressErrorMessageFunctionComponent: React.FC = (props: IAdressErrorMessage) => {\n const { message } = props;\n\n return

{message}

;\n};\n\nexport default AddressErrorMessageFunctionComponent;\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 IAdressErrorTitle {\n title: string;\n}\n\n/**\n * Address error title.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressErrorTitleFunctionComponent: React.FC = (props: IAdressErrorTitle) => {\n const { title } = props;\n\n return

{title}

;\n};\n\nexport default AddressErrorTitleFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAdressInput {\n id?: string;\n name?: string;\n className: string;\n type: string;\n value: string;\n maxLength?: number;\n autoFocus?: boolean;\n additionalAddributes?: object;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Address input.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressInputFunctionComponent: React.FC = (props: IAdressInput) => {\n const {\n id: itemId,\n name,\n className,\n type,\n value,\n maxLength,\n additionalAddributes,\n autoFocus: shouldUseAutoFocus,\n telemetryContent,\n onChange\n } = props;\n\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default AddressInputFunctionComponent;\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 IAdressLabel {\n id: string;\n text: string;\n}\n\n/**\n * Address label.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressLabelFunctionComponent: React.FC = (props: IAdressLabel) => {\n const { id: itemId, text } = props;\n\n return (\n \n );\n};\n\nexport default AddressLabelFunctionComponent;\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 { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AddressFormat } from '../address-format';\nimport { IAddressResource, IAddressResponse } from '../address-module.data';\nimport AddressButtonComponent from './address-button';\nimport AddressErrorMessageComponent from './address-error-message';\nimport AddressErrorTitleComponent from './address-error-title';\nimport { AddressShow, IAddressShowProps } from './address-show';\n\nexport interface IAddressListError {\n Error: INodeProps;\n isShowError: boolean;\n title: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAddressListItem {\n Item: INodeProps;\n key: number;\n error: IAddressListError;\n showItems: IAddressShowProps;\n isShowPrimaryButton: boolean;\n primaryButton: React.ReactNode;\n editButton: React.ReactNode;\n removeButton: React.ReactNode;\n}\n\nexport interface IAddressList {\n List: INodeProps;\n isShowList: boolean;\n heading: React.ReactNode;\n items: IAddressListItem[];\n}\n\nexport interface IAddressListProps {\n ListAddress: INodeProps;\n heading: React.ReactNode;\n isShowEmptyListMessage: boolean;\n emptyListMessage: React.ReactNode;\n addButton: React.ReactNode;\n primaryAddressList: IAddressList;\n otherAddressList: IAddressList;\n}\n\nexport interface IAddressListInputProps {\n isUpdating?: boolean;\n selectedAddress?: Address;\n addressFormat: AddressFormat;\n addresses: Address[];\n addressPurposes: AddressPurpose[];\n heading?: HeadingData;\n primaryAddressSectionHeading?: HeadingData;\n otherAddressSectionHeading?: HeadingData;\n addressActionResponse?: IAddressResponse;\n resources: IAddressResource;\n contextRequest: Msdyn365.IRequestContext;\n telemetryContent?: ITelemetryContent;\n handleLineItemHeadingChange?(event: Msdyn365.ContentEditableEvent): void;\n onAddAddress(): void;\n onEditAddress(address?: Address): void;\n onRemoveAddress(address?: Address): void;\n onUpdatePrimaryAddress(address: Address): void;\n canRenderAsyncCustomerDataAsUnmodifiable?: boolean;\n isAsyncCustomer?: boolean;\n isAsyncCustomerAddressCreationFeatureEnabled?: boolean;\n isEditAsyncCustomerFeatureEnabled?: boolean;\n}\n\nconst getButtonAriaLabel = (ariaLabel: string, addressName?: string): string => {\n return ariaLabel.replace('{addressName}', addressName || '');\n};\n\nconst getAddressList = (\n className: string,\n addresses: Address[],\n showPrimaryButton: boolean,\n props: IAddressListInputProps,\n heading?: HeadingData\n): IAddressList => {\n const {\n resources,\n isUpdating,\n addressActionResponse,\n selectedAddress,\n addressFormat,\n onEditAddress,\n onRemoveAddress,\n onUpdatePrimaryAddress,\n addressPurposes,\n telemetryContent\n } = props;\n const { errorTitle = null, errorMessage = null } = addressActionResponse || {};\n\n return {\n List: { className },\n isShowList: addresses.length > 0,\n heading: heading && ,\n items: addresses.map(\n (address: Address): IAddressListItem => {\n const isSelectedAddress = selectedAddress && selectedAddress.RecordId === address.RecordId;\n const isShowError = isSelectedAddress && errorTitle && errorMessage;\n\n // Disable 'primary', 'edit', and 'remove' buttons if the customer IS EITHER async OR async address creation feature is enabled and edit async customer feature is disabled.\n // Conversely, these buttons can only be enabled when the customer is NOT async AND the address creation feature is disabled.\n const isInvalidAsyncState: boolean =\n props.isEditAsyncCustomerFeatureEnabled || false\n ? false\n : (props.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (props.isAsyncCustomer || false || props.isAsyncCustomerAddressCreationFeatureEnabled || false);\n\n return {\n Item: { className: `${className}-list` },\n key: address.RecordId || 0,\n showItems: AddressShow({\n addressFormat: addressFormat.getAddressFormat(address.ThreeLetterISORegionName || ''),\n address,\n addressPurposes\n }),\n error: {\n Error: { className: `${className}-error` },\n isShowError: !!isShowError,\n title: ,\n message: \n },\n isShowPrimaryButton: showPrimaryButton,\n\n primaryButton: (\n {\n onUpdatePrimaryAddress(address);\n }\n }}\n />\n ),\n editButton: (\n {\n onEditAddress(address);\n },\n role: 'link'\n }}\n />\n ),\n removeButton: (\n {\n onRemoveAddress(address);\n },\n role: 'link'\n }}\n />\n )\n };\n }\n )\n };\n};\n\nconst getPrimaryAddressList = (props: IAddressListInputProps): IAddressList => {\n const { addresses, primaryAddressSectionHeading } = props;\n const primaryAddresses = addresses.filter((address: Address) => address.IsPrimary);\n return getAddressList('msc-address-list__primary', primaryAddresses, false, props, primaryAddressSectionHeading);\n};\n\nconst getOtherAddressList = (props: IAddressListInputProps): IAddressList => {\n const { addresses, otherAddressSectionHeading } = props;\n const otherAddresses = addresses.filter((address: Address) => !address.IsPrimary);\n return getAddressList('msc-address-list__primary', otherAddresses, true, props, otherAddressSectionHeading);\n};\n\nexport const AddressList = (props: IAddressListInputProps): IAddressListProps => {\n const { addresses, heading, resources, onAddAddress, telemetryContent, handleLineItemHeadingChange } = props;\n const headingComponent = heading?.text && (\n {\n // Required\n },\n requestContext: props.contextRequest\n }}\n />\n );\n\n // IF the 'Edit async customer' feature is enabled. we won't be disabling the button in this scenario.\n // ELSE disable the 'Add' button only when the customer is async AND the 'Async Address Creation' feature is disabled.\n const disableAddButton: boolean =\n props.isEditAsyncCustomerFeatureEnabled || false\n ? false\n : (props.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (props.isAsyncCustomer || false) &&\n !(props.isAsyncCustomerAddressCreationFeatureEnabled || false);\n\n return {\n ListAddress: { className: 'ms-address-list' },\n heading: headingComponent,\n isShowEmptyListMessage: addresses.length === 0,\n emptyListMessage:

{resources.addressEmptyListAddressMessage}

,\n addButton: (\n \n ),\n primaryAddressList: getPrimaryAddressList(props),\n otherAddressList: getOtherAddressList(props)\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { AddressItemType, IAddressItem } from '../address-format.data';\nimport AddressDetailItemComponent from './address-detail-item';\n\nexport interface IAddressShowItem {\n key: string;\n description: React.ReactNode;\n}\n\nexport interface IAddressShowProps {\n AddressDetail: INodeProps;\n items: IAddressShowItem[];\n}\n\nexport interface IAddressShowInputProps {\n addressFormat: IAddressItem[];\n address: Address;\n addressPurposes: AddressPurpose[];\n}\n\nexport const AddressShow = (props: IAddressShowInputProps): IAddressShowProps => {\n const { addressFormat, addressPurposes, address } = props;\n\n return {\n AddressDetail: { className: 'msc-address-detail' },\n items: addressFormat.map(item => {\n if (item.name === AddressItemType[AddressItemType.AddressTypeValue]) {\n const addressType = addressPurposes.find(\n addressTypeValue => addressTypeValue.AddressType.toString() === (address[item.name] || '').toString()\n );\n if (addressType) {\n const addressTypeDescription = addressType.Description || '';\n return {\n key: item.name,\n description: (\n \n )\n };\n }\n }\n return {\n key: item.name,\n description: (\n \n )\n };\n })\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction, set } from 'mobx';\nimport * as React from 'react';\n\nimport { AddressCommon } from '../../common/address-common';\nimport { AddressFormat } from '../../common/address-format';\nimport { AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem } from '../../common/address-format.data';\nimport { AddressMetaData } from '../../common/address-meta-data';\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IBusinessAccountAddressData } from './business-account-address.data';\nimport { IBusinessAccountAddressProps } from './business-account-address.props.autogenerated';\n\n/**\n * Interface for IBusinessAccountAddressExtendedProps.\n */\nexport interface IBusinessAccountAddressExtendedProps extends IBusinessAccountAddressProps {\n hasError: boolean;\n isRequired: boolean;\n resetAddress: boolean;\n updateForm(errors: boolean, currentAddress?: Address): void;\n}\n\n/**\n * Interface for IBusinessAccountAddressState.\n */\nexport interface IBusinessAccountAddressState {\n countryId?: string;\n states?: StateProvinceInfo[];\n}\n\n/**\n * Interface for IBusinessAccountAddressViewProps.\n */\nexport interface IBusinessAccountAddressViewProps {\n className: string;\n currentOperation: AddressOperation;\n selectedAddress?: Address;\n addUpdateAddress: Address;\n addressListSelectedAddress: Address;\n countryRegionId: string;\n stateProvinceInfo?: StateProvinceInfo[];\n customerAddresses: Address[];\n validationError: object;\n addressActionResponse?: IAddressResponse;\n BusinessAccountAddress: IModuleProps;\n isUpdating: boolean;\n hasError: boolean;\n showAddOrUpdateAddress: IAddressAddUpdateProps;\n}\n\n/**\n *\n * Address component.\n * @extends {React.Component, IBusinessAccountAddressState>}\n */\nclass BusinessAccountAddress extends React.Component {\n @observable private addUpdateAddress: Address;\n\n @observable private countryRegionId: string = 'USA';\n\n @observable private stateProvinceInfo?: StateProvinceInfo[];\n\n @observable private readonly validationError: object;\n\n private readonly addressActionResponse?: IAddressResponse;\n\n private readonly isUpdating?: boolean;\n\n private readonly addressCommon: AddressCommon;\n\n private addressFormat: AddressFormat;\n\n private countryRegions: CountryRegionInfo[] = [];\n\n private addressPurposes: AddressPurpose[] = [];\n\n private readonly resources: IAddressResource;\n\n private readonly defaultAddressType: number = 0; // Default to None (This value set in HQ as Business)\n\n private readonly shouldAutoFocus?: boolean = false;\n\n private readonly excludedList: AddressItemType[] = [AddressItemType.Name, AddressItemType.AddressTypeValue, AddressItemType.IsPrimary]; // Default to hiding Name and AddressType inputs\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: IBusinessAccountAddressExtendedProps) {\n super(props);\n\n const { context, data, resources, telemetry } = this.props;\n this.addUpdateAddress = {};\n this.resources = resources;\n this.countryRegions = data.countryRegions.result || [];\n this.addressPurposes = data.addressPurposes.result || [];\n this.stateProvinceInfo = data.countryStates.result || [];\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this.excludedList, props.isRequired ? undefined : []),\n this.addressPurposes\n );\n this.addressCommon = new AddressCommon(context, resources, telemetry);\n this.validationError = {};\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n // Initializing data props\n this._dataInitialize(this.props);\n\n this._setDefaultCountryRegionId();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessAccountAddressExtendedProps, nextState: IBusinessAccountAddressState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { renderView, config, hasError, resetAddress } = this.props;\n\n // Business-sign-up will pass this flag when cancel button is clicked\n if (resetAddress) {\n this._resetAddressFields();\n }\n\n const viewProps = {\n ...this.props,\n countryRegionId: this.countryRegionId,\n stateProvinceInfo: this.stateProvinceInfo,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n hasError,\n className: config.className,\n BusinessAccountAddress: {\n moduleProps: this.props,\n className: classnames('ms-business-account-address', config.className)\n },\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Reset Address.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _resetAddressFields = () => {\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\n\n addressFormat.map(addressFormatItem => {\n switch (addressFormatItem.displayType) {\n case AddressItemDisplayType.Input:\n this.addUpdateAddress[addressFormatItem.name] = '';\n break;\n case AddressItemDisplayType.Checkbox:\n this.addUpdateAddress[addressFormatItem.name] = false;\n break;\n default:\n switch (addressFormatItem.type) {\n case AddressItemType.ThreeLetterISORegionName:\n this.addUpdateAddress[addressFormatItem.name] = this.countryRegionId;\n break;\n case AddressItemType.AddressTypeValue:\n this.addUpdateAddress[addressFormatItem.name] = this.defaultAddressType;\n break;\n case AddressItemType.State:\n this.addUpdateAddress[addressFormatItem.name] = '';\n break;\n default:\n this.addUpdateAddress[addressFormatItem.name] = undefined;\n }\n }\n });\n };\n\n /**\n * Method data initialization.\n * @param props -The account management props.\n */\n private readonly _dataInitialize = (props: IBusinessAccountAddressExtendedProps): void => {\n const { data } = props;\n\n reaction(\n () => data.countryRegions.result,\n () => {\n this.countryRegions = data.countryRegions.result ?? [];\n }\n );\n\n reaction(\n () => data.addressPurposes.result,\n () => {\n this.addressPurposes = data.addressPurposes.result ?? [];\n }\n );\n\n reaction(\n () => data.countryStates.result,\n () => {\n this.stateProvinceInfo = data.countryStates.result ?? [];\n }\n );\n };\n\n // Set validationError and hasError to hide error messages since in the B2B\n // request form, no errors would visually show since user wont be able to submit\n // until form is filled and correct\n /**\n * Render Add Or Update Address Function.\n * @returns - AddressAddUpdate.\n */\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\n return AddressAddUpdate({\n isUpdating: this.isUpdating,\n resources: this.resources,\n addressType: AddressType.Company,\n addressFormat: this.addressFormat.getAddressFormat(this.countryRegionId),\n defaultCountryRegionId: this.countryRegionId,\n defaultAddressType: this.defaultAddressType,\n selectedAddress: this.addUpdateAddress,\n shouldAutoFocus: this.shouldAutoFocus,\n validationError: this.validationError,\n hasError: this.props.hasError,\n addressActionResponse: this.addressActionResponse,\n telemetryContent: this.telemetryContent,\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\n this.resources.addressStateDefaultSelectionText,\n this.stateProvinceInfo\n ),\n onInputChange: this._onAddressAddUpdateInputChange,\n onDropdownChange: this._onAddressAddUpdateDropdownChange\n });\n };\n\n /**\n * On Address Add Update Input Change Function.\n * @param event - Input event change function.\n */\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\n this._updateAddress(event.target.name, event.target.value);\n };\n\n /**\n * On Address Add Update Dropdown Change Function.\n * @param event - Change dropdown event.\n */\n private readonly _onAddressAddUpdateDropdownChange = async (event: React.ChangeEvent): Promise => {\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\n await this._updateCountryRegionId(event.target.value);\n } else {\n this._updateAddress(event.target.name, event.target.value);\n }\n };\n\n /**\n * Update Address Function.\n * @param name - String.\n * @param value - String.\n */\n private readonly _updateAddress = (name: string, value: string | number) => {\n const { updateForm, isRequired, resources } = this.props;\n let cleanValue = value;\n if (typeof value === 'string') {\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\n }\n set(this.addUpdateAddress, { [name]: cleanValue });\n\n if (this._isEmpty()) {\n if (isRequired) {\n updateForm(true, undefined);\n } else {\n // Reset addressFormat as if address was NOT a required field\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this.excludedList, []),\n this.addressPurposes\n );\n updateForm(false, this.addUpdateAddress);\n }\n } else {\n // Get new addressFormat if address was a required field\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this.excludedList, this.props.isRequired ? undefined : []),\n this.addressPurposes\n );\n\n // Verify with new rules\n if (this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\n updateForm(false, this.addUpdateAddress);\n } else {\n updateForm(true, undefined);\n }\n }\n };\n\n /**\n * Is empty Function.\n * @returns - Boolean.\n */\n // Walk through array and check if valued is defined or value is not an empty string\n private readonly _isEmpty = () => {\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\n for (const addressFormatItem of addressFormat) {\n if (addressFormatItem.type !== AddressItemType.ThreeLetterISORegionName || this._isInputRequired(addressFormatItem)) {\n const addressItemValue = this.addUpdateAddress[addressFormatItem.name];\n\n // Check each input field, if value is defined and not an empty string --> address is not empty\n if (addressItemValue || (addressItemValue && addressItemValue !== '')) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n /**\n * Is Input Required Function.\n * @param addressFormatItem - IAddressItem.\n * @returns - Boolean.\n */\n private readonly _isInputRequired = (addressFormatItem: IAddressItem): boolean => {\n if (\n ObjectExtensions.isNullOrUndefined(addressFormatItem) ||\n !addressFormatItem.validationRules ||\n addressFormatItem.validationRules.length === 0\n ) {\n return false;\n }\n\n for (const validationRule of addressFormatItem.validationRules) {\n if (validationRule.type === AddressValidationRuleType.Required) {\n return false;\n }\n }\n\n return true;\n };\n\n private _setDefaultCountryRegionId(): void {\n const { request } = this.props.context;\n const market = request.channel?.ChannelCountryRegionISOCode;\n\n this._updateCountryRegionId(this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market));\n\n // Set default AddressType\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\n }\n\n /**\n * Update Country Region Id Function.\n * @param value - String.\n */\n private readonly _updateCountryRegionId = async (value: string) => {\n this.countryRegionId = value;\n\n await this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\n\n // Reset state if selected state not found in the list.\n if (!stateInfo) {\n this._updateAddress('State', '');\n }\n\n this.stateProvinceInfo = result;\n });\n\n this._updateAddress('ThreeLetterISORegionName', this.countryRegionId);\n };\n}\n\nexport default BusinessAccountAddress;\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 { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IBusinessAccountAddressViewProps } from './business-account-address';\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address Heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - IAddressError.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - AddressForm Node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {hasError && alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Business Account Address View Component.\n * @param props - Props.\n * @returns - BusinessAccountAddress Module.\n */\nconst BusinessAccountAddressView: React.FC = props => {\n const { BusinessAccountAddress, showAddOrUpdateAddress } = props;\n\n return (\n \n \n \n );\n};\n\nexport default BusinessAccountAddressView;\n"],"names":["AutoSuggest","constructor","telemetry","autoSuggestOptions","BingMapsApiKey","countryCode","defaultLanguageId","excludedAddressFields","attachAutoSuggest","inputId","containerId","selectedSuggestionCallback","this","autoSuggestManager","Microsoft","Maps","loadModule","callback","_document$querySelect","options","_objectSpread","AutosuggestManager","attachAutosuggest","document","querySelector","setAttribute","setTimeout","_document$querySelect2","errorCallback","debug","credentials","bingMapsApiKey","changeAutoSuggestionCountryCode","setOptions","disposeAutoSuggest","_this$autoSuggestMana","_this$autoSuggestMana2","detachAutosuggest","dispose","undefined","_loadMapAPI","async","storeSelectorStateManager","loadMapApi","key","lang","market","AddressCommon","context","resources","getDefaultCountryRegionId","countryRegionId","countryRegions","marketISOCode","currentCountryRegion","find","countryRegion","ISOCode","CountryRegionId","parseRetailException","errorTitle","addressErrorMessageTitle","errorMessage","addressGenericErrorMessage","isAuthenticatedFlow","request","user","isAuthenticated","getStateProvinces","response","actionContext","input","GetStateProvincesInput","apiSettings","getStateProvinceAction","error","Promise","resolve","isEmpty","address","ThreeLetterISORegionName","State","City","addCustomerAddress","updateLogisticsLocationRoleRecordId","submitCustomerAddress","addAddress","updateCustomerAddress","updateAddress","updateCustomerPrimaryAddress","updatePrimaryAddress","addressAction","AddressTypeValue","AddressManagementInput","execAddressAction","addresses","length","RecordId","customerAddresses","addressPurposes","GetAddressPurposesInput","getAddressPurposesAction","ArrayExtensions","hasElements","addressPurpose","purpose","AddressType","LogisticsLocationRoleRecordId","AddressItemDisplayType","AddressValidationRuleType","AddressItemType","AddressFormat","countryRegionsInfo","addressMetaData","getPrefilledAddressDropdownData","stateDefaultSelectionText","stateProvinceInfo","defaultStateText","value","dropdownData","getCountryFormat","getStateFormat","unshift","getAddressTypeFormat","getTwoLetterISORegionName","_getCountryRegionInfo","validateAddressFormat","validationError","propertyName","validationtor","isValid","getAddressFormat","forEach","addressFormatItem","name","_inputValidation","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","Description","set","validationRules","message","toLowerCase","addressDisplayItem","AddressFormatLines","AddressTypeItem","_extendAddressDisplayFormat","push","nameDisplayItem","Name","formatLine","AddressComponentNameValue","addressItem","getItemFormat","isNewLine","NewLine","phoneDisplayItem","Phone","isPrimaryDisplayItem","IsPrimary","type","AddressMetaData","excluded","required","metaData","requiredFieldRegEx","resourcesPrefix","maxLength","excludedTypes","requiredFields","_init","id","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","itemId","className","isChecked","additionalAddributes","telemetryContent","autoFocus","shouldBeAutoFocused","onChange","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","assign","checked","getRequriedAttribute","getAddessItems","selectedAddress","addressFormat","addressType","dropdownDisplayData","defaultCountryRegionId","defaultAddressType","onInputChange","onDropdownChange","shouldAutoFocus","index","elementId","classname","AddressInputComponent","AdressCheckboxComponent","displayData","selectedValue","AdressDropdownComponent","AddressItem","AddressLabelComponent","text","alert","AddressAlertComponent","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","role","isDisabled","isShowLabel","labelText","mainClass","recordId","getDropdownItem","isSelected","shouldUseAutoFocus","htmlFor","getButtonAriaLabel","addressName","getAddressList","showPrimaryButton","onEditAddress","onRemoveAddress","onUpdatePrimaryAddress","List","isShowList","isSelectedAddress","isShowError","isInvalidAsyncState","isEditAsyncCustomerFeatureEnabled","canRenderAsyncCustomerDataAsUnmodifiable","isAsyncCustomer","isAsyncCustomerAddressCreationFeatureEnabled","Item","showItems","AddressShow","Error","isShowPrimaryButton","primaryButton","classnames","addressPrimaryButtonText","addressPrimaryButtonAriaLabel","editButton","addressEditButtonText","addressEditButtonAriaLabel","removeButton","addressRemoveButtonText","addressRemoveButtonAriaLabel","getPrimaryAddressList","primaryAddressSectionHeading","primaryAddresses","filter","getOtherAddressList","otherAddressSectionHeading","otherAddresses","AddressList","_heading$headingTag","onAddAddress","handleLineItemHeadingChange","headingComponent","Msdyn365","tag","headingTag","editProps","onEdit","requestContext","contextRequest","disableAddButton","ListAddress","isShowEmptyListMessage","emptyListMessage","addressEmptyListAddressMessage","addButton","addressAddButtonText","addressAddButtonAriaLabel","primaryAddressList","otherAddressList","AddressDetail","addressTypeValue","toString","addressTypeDescription","description","AddressDetailItemComponent","BusinessAccountAddress","super","excludedList","_resetAddressFields","addUpdateAddress","_dataInitialize","data","reaction","_data$countryRegions$","_data$addressPurposes","countryStates","_data$countryStates$r","_renderAddOrUpdateAddress","Company","addressStateDefaultSelectionText","_onAddressAddUpdateInputChange","_onAddressAddUpdateDropdownChange","event","_updateAddress","target","_updateCountryRegionId","updateForm","cleanValue","_isEmpty","_isInputRequired","addressItemValue","ObjectExtensions","isNullOrUndefined","addressCommon","then","getTelemetryObject","telemetryPageName","friendlyName","componentDidMount","_setDefaultCountryRegionId","shouldComponentUpdate","nextProps","nextState","render","renderView","config","resetAddress","moduleProps","showAddOrUpdateAddress","_request$channel","channel","ChannelCountryRegionISOCode","__decorate","observable","_ref","Node","Module"],"sourceRoot":""}