{"version":3,"file":"static/js/35.44f19971605ffea9fbf7.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/common/address/address-autosuggest.ts?a33c","webpack://Citta2.0/./src/common/address/address-common.ts?a474","webpack://Citta2.0/./src/common/address/address-format.data.ts?95b3","webpack://Citta2.0/./src/common/address/address-format.ts?1ccb","webpack://Citta2.0/./src/common/address/address-meta-data.ts?3d2e","webpack://Citta2.0/./src/common/address/address-module.data.ts?0b28","webpack://Citta2.0/./src/common/address/components/address-alert.tsx?55f1","webpack://Citta2.0/./src/common/address/components/address-checkbox.tsx?e374","webpack://Citta2.0/./src/common/address/components/address-dropdown.tsx?c3df","webpack://Citta2.0/./src/common/address/components/address-label.tsx?821d","webpack://Citta2.0/./src/common/address/components/address-add.tsx?e89c","webpack://Citta2.0/./src/common/address/components/address-button.tsx?2d1a","webpack://Citta2.0/./src/common/address/components/address-error-message.tsx?f569","webpack://Citta2.0/./src/common/address/components/address-error-title.tsx?81a8","webpack://Citta2.0/./src/common/address/components/address-input.tsx?1d04","webpack://Citta2.0/./src/common/address/components/address-detail-item.tsx?8040","webpack://Citta2.0/./src/common/address/components/address-show.tsx?6ef2","webpack://Citta2.0/./src/data-actions/address/get-nz-post-address.ts?5c0c","webpack://Citta2.0/./src/data-actions/address/get-nz-post-address-details.ts?0cce","webpack://Citta2.0/./src/components/citta-address-search/citta-address-search.tsx?f513"],"sourcesContent":["// tslint:disable:no-reference\r\n/// \r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport MsDyn365, { ITelemetry } from '@msdyn365-commerce/core';\r\nimport { IAutoSuggestOptions } from './address-autosuggest.data';\r\n/**\r\n *\r\n * Auto Suggest\r\n */\r\nexport class AutoSuggest {\r\n public readonly excludedAddressFields: string[] = ['ThreeLetterISORegionName', 'Name', 'AddressTypeValue', 'Phone'];\r\n private telemetry: ITelemetry;\r\n private countryCode?: string;\r\n private bingMapsApiKey?: string;\r\n private defaultLanguageId?: string;\r\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\r\n private autoSuggestOptions: IAutoSuggestOptions;\r\n\r\n constructor(telemetry: ITelemetry, autoSuggestOptions: IAutoSuggestOptions, BingMapsApiKey?: string, countryCode?: string, defaultLanguageId?: string) {\r\n this.telemetry = telemetry;\r\n this.autoSuggestOptions = autoSuggestOptions;\r\n this.bingMapsApiKey = BingMapsApiKey;\r\n this.countryCode = countryCode;\r\n this.defaultLanguageId = defaultLanguageId;\r\n }\r\n\r\n public attachAutoSuggest = (inputId: string, containerId: string, selectedSuggestionCallback: (result: Microsoft.Maps.ISuggestionResult) => void): void => {\r\n if (!this.autoSuggestManager) {\r\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\r\n callback: () => {\r\n const options = { ...this.autoSuggestOptions, countryCode: this.countryCode };\r\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\r\n this.autoSuggestManager.attachAutosuggest(inputId, containerId, selectedSuggestionCallback);\r\n if (MsDyn365.isBrowser) {\r\n document.querySelector(inputId)?.setAttribute('role','combobox');\r\n setTimeout(\r\n () => {\r\n document.querySelector(inputId)?.setAttribute('type', 'text');\r\n },\r\n 0\r\n );\r\n }\r\n },\r\n errorCallback: () => {\r\n if (this.telemetry) {\r\n this.telemetry.debug('Unable to attach map auto suggest.');\r\n }\r\n },\r\n credentials: this.bingMapsApiKey\r\n });\r\n }\r\n }\r\n\r\n public changeAutoSuggestionCountryCode = (countryCode?: string): void => {\r\n if(this.autoSuggestManager) {\r\n this.autoSuggestOptions.countryCode = countryCode;\r\n this.autoSuggestManager.setOptions(this.autoSuggestOptions);\r\n }\r\n }\r\n\r\n public disposeAutoSuggest = (): void => {\r\n this.autoSuggestManager?.detachAutosuggest();\r\n this.autoSuggestManager?.dispose();\r\n this.autoSuggestManager = undefined;\r\n }\r\n\r\n public _loadMapAPI = async (storeSelectorStateManager: IStoreSelectorStateManager): Promise => {\r\n await storeSelectorStateManager.loadMapApi({\r\n key: this.bingMapsApiKey,\r\n lang: this.countryCode,\r\n market: this.defaultLanguageId\r\n });\r\n }\r\n}","import {\r\n addAddress, AddressManagementInput, updateAddress, updatePrimaryAddress\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\r\nimport {\r\n Address, CountryRegionInfo, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { getStateProvinceAction, GetStateProvincesInput } from '../../data-actions/address/get-state-provinces';\r\nimport { IAddressResource, IAddressResponse } from './address-module.data';\r\n\r\n/**\r\n *\r\n * Address common\r\n */\r\nexport class AddressCommon {\r\n\r\n private context: ICoreContext;\r\n private resources: IAddressResource;\r\n private 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.City) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n public addCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(addAddress, address);\r\n };\r\n\r\n public updateCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updateAddress, address);\r\n };\r\n\r\n public updateCustomerPrimaryAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updatePrimaryAddress, address);\r\n };\r\n\r\n private submitCustomerAddress = (addressAction: IObservableAction, address: Address): 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 execAddressAction = async (addressAction: IObservableAction, input: IActionInput | IActionInput[], address: Address): 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","export enum AddressItemDisplayType {\r\n Input = 'Input',\r\n Dropdown = 'Dropdown',\r\n Checkbox = 'Checkbox'\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 autocompleteType: string\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\nexport interface IAddressFormatData {\r\n id: string;\r\n}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { get, set } from 'mobx';\r\n\r\nimport {\r\n Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport {\r\n AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule\r\n} from './address-format.data';\r\nimport { AddressMetaData } from './address-meta-data';\r\n\r\n/**\r\n *\r\n * Retail Service Address format parser\r\n */\r\nexport class AddressFormat {\r\n private countryRegionsInfo?: CountryRegionInfo[];\r\n private addressPurposes?: AddressPurpose[];\r\n private 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 = (stateDefaultSelectionText: string, stateProvinceInfo?: StateProvinceInfo[]): 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 = (address: Address, validationError: Address, countryRegionId: string, propertyName?: string): 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 private _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) || '');\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","import {\r\n AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem,\r\n IAddressValidationRule\r\n} from './address-format.data';\r\nimport { IAddressResource } from './address-module.data';\r\n\r\n/**\r\n * Address meta data\r\n */\r\nexport class AddressMetaData {\r\n\r\n private metaData: IAddressItem[] = [];\r\n private resources: IAddressResource;\r\n private requiredFieldRegEx: string = '\\\\S';\r\n private resourcesPrefix: string = 'address';\r\n private maxLength: number = 64;\r\n private streetNumberMaxLength: number = 20;\r\n private stateMaxLength: number = 10;\r\n private requiredFields: AddressItemType[];\r\n private 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.County,\r\n AddressItemType.Phone,\r\n // AddressItemType.StreetNumber,\r\n AddressItemType.DistrictName,\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);\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): void {\r\n if (this.excludedTypes.includes(type)) {\r\n return;\r\n }\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);\r\n let isRequired = false;\r\n validationRules.forEach(rule => {\r\n if (rule.type === AddressValidationRuleType.Required) {\r\n isRequired = true;\r\n }\r\n });\r\n\r\n // if no optional string is provided in resource file, use the original label text\r\n const optionalString = 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: this._getMaxFieldLength(type),\r\n validationRules: validationRules,\r\n isNewLine: true,\r\n autocompleteType:this._getAutocompleteType(type),\r\n };\r\n\r\n this.metaData.push(item);\r\n }\r\n\r\n private _getMaxFieldLength(type: AddressItemType): number {\r\n if (AddressItemType.StreetNumber === type) {\r\n return this.streetNumberMaxLength;\r\n } \r\n else if (AddressItemType.State === type) {\r\n return this.stateMaxLength;\r\n }\r\n return this.maxLength;\r\n }\r\n\r\n private _getAutocompleteType(type: AddressItemType): string {\r\n if(AddressItemType.Street === type) {\r\n return 'street-address'\r\n }\r\n else if(AddressItemType.DistrictName === type) {\r\n return 'address-level3'\r\n }\r\n else if(AddressItemType.City === type) {\r\n return 'address-level2'\r\n }\r\n else if(AddressItemType.ZipCode === type) {\r\n return 'postal-code'\r\n }\r\n return ''\r\n }\r\n\r\n private _validationRules(type: AddressItemType, name: 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 = 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 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}","import { Heading } from '@msdyn365-commerce-modules/data-types';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport enum AddressOperation {\r\n Add = 'Add',\r\n Show = 'Show',\r\n Update = 'Update',\r\n List = 'List'\r\n}\r\n\r\nexport enum AddressType {\r\n Shipping = 'Shipping',\r\n Billing = 'Billing',\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 disclaimer?: string;\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 addressAddButtonText: string;\r\n addressAddButtonAriaLabel: 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 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}\r\n\r\nexport interface IAddressModuleData {\r\n id: string;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressAlert {\r\n message?: string;\r\n}\r\n\r\nconst AdressAlert: React.FC = ({ message }) => (\r\n \r\n {\r\n message &&\r\n <>\r\n {message}\r\n \r\n }\r\n \r\n);\r\n\r\nexport default AdressAlert;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { 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\nconst AdressCheckbox: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n isChecked,\r\n additionalAddributes,\r\n telemetryContent,\r\n autoFocus,\r\n onChange\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 AdressCheckbox;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressDropdown {\r\n id: string;\r\n disabled: boolean;\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\nconst AdressDropdown: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n value,\r\n additionalAddributes,\r\n displayData,\r\n onChange,\r\n disabled\r\n\r\n}) => (\r\n \r\n {displayData && displayData.map(item =>\r\n (\r\n getDropdownItem(item.key, item.value, value)\r\n ))\r\n }\r\n \r\n );\r\n\r\nexport default AdressDropdown;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressLabel {\r\n id: string;\r\n text: string;\r\n}\r\n\r\nconst AdressLabel: React.FC = ({\r\n id,\r\n text\r\n}) => (\r\n \r\n );\r\n\r\nexport default AdressLabel;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\nimport {\r\n AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressDropdownsData,\r\n IAddressItem, 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 onInputChange(event: React.ChangeEvent): void;\r\n onDropdownChange(event: React.ChangeEvent): void;\r\n onSave?(): void;\r\n onCancel?(): void;\r\n searchAddress(): React.ReactNode | null;\r\n allowCountryChange?: 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}\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 searchAddress: React.ReactNode | null;\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 { addressFormat, addressType, dropdownDisplayData, defaultCountryRegionId, defaultAddressType, validationError = {}, onInputChange, onDropdownChange } = props;\r\n\r\n // @ts-ignore\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('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, { 'msc-address-form__item-newline': addressFormatItem.isNewLine, 'address-form__item-invalid': errorMessage });\r\n let input;\r\n const lockShippingAddress = elementId === 'shipping_addressthreeletterisoregionname' && !props.allowCountryChange;\r\n\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\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\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className: className, id: `${elementId}_container` },\r\n label: ,\r\n alert: ,\r\n input: input\r\n };\r\n });\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\r\n const { editAddressHeading, addAddressHeading, selectedAddress = {}, resources, hasError, onCancel, onSave, hasExternalSubmitGroup, isUpdating, addressActionResponse, telemetryContent, searchAddress } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n\r\n return {\r\n AddressForm: { className: `msc-address-form ${selectedAddress.ThreeLetterISORegionName}` },\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props),\r\n searchAddress: searchAddress(),\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 * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { 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 onClick(event: React.MouseEvent): void;\r\n}\r\n\r\nconst AddressButton: React.FC = ({ className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, text);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n {text}\r\n );\r\n};\r\n\r\nexport default AddressButton;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorMessage {\r\n message: string;\r\n}\r\n\r\nconst AdressErrorMessage: React.FC = ({ message }) => (\r\n

\r\n {message}\r\n

\r\n);\r\n\r\nexport default AdressErrorMessage;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorTitle {\r\n title: string;\r\n}\r\n\r\nconst AdressErrorTitle: React.FC = ({ title }) => (\r\n

\r\n {title}\r\n

\r\n);\r\n\r\nexport default AdressErrorTitle;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { 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 autocomplete: string;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressInput: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n value,\r\n maxLength,\r\n additionalAddributes,\r\n autoFocus,\r\n telemetryContent,\r\n autocomplete,\r\n onChange\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 AdressInput;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressDetailItem {\r\n isNewLine: boolean;\r\n isShowLabel: boolean;\r\n labelText: string;\r\n name: string;\r\n value: string;\r\n}\r\n\r\nconst AddressDetailItem: React.FC = ({\r\n isNewLine,\r\n isShowLabel,\r\n labelText,\r\n name,\r\n value\r\n}) => {\r\n const className = `msc-address-detail__item msc-address-detail__item-${name.toLowerCase()}`;\r\n const isEmpty = !(value && value.length > 0);\r\n const mainClass= isShowLabel? `msc-address-detail__item msc-address-detail__item-address-detail_${labelText}`:classname(className, { 'msc-address-detail__item-empty': isEmpty, 'msc-address-detail__item-newline': isNewLine });\r\n return (\r\n \r\n {\r\n isShowLabel && <>\r\n {labelText}\r\n \r\n \r\n }\r\n {value}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDetailItem;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressItemType, IAddressItem } from '../address-format.data';\r\nimport AddressDetailItemComponent from './address-detail-item';\r\n\r\nexport interface IAddressShowItem {\r\n key: string;\r\n description: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressShowProps {\r\n AddressDetail: INodeProps;\r\n items: IAddressShowItem[];\r\n}\r\n\r\nexport interface IAddressShowInputProps {\r\n addressFormat: IAddressItem[];\r\n address: Address;\r\n addressPurposes: AddressPurpose[];\r\n}\r\n\r\nexport const AddressShow = (props: IAddressShowInputProps): IAddressShowProps => {\r\n const { addressFormat, addressPurposes, address } = props;\r\n\r\n return {\r\n AddressDetail: { className: 'msc-address-detail' },\r\n items: addressFormat.map((item) => {\r\n if (item.name === AddressItemType[AddressItemType.AddressTypeValue]) {\r\n const addressType = addressPurposes.find((addressTypeValue) => addressTypeValue.AddressType.toString() === (address[item.name] || '').toString());\r\n if (addressType) {\r\n const value = addressType.Name || '';\r\n return {\r\n key: item.name,\r\n description: \r\n };\r\n }\r\n }\r\n return {\r\n key: item.name,\r\n description: \r\n };\r\n })\r\n };\r\n};","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getAddressAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_GetNZPostAddressResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * GetNZPostAddressActionInput Input Action\r\n */\r\n\r\nexport class GetNZPostAddressResponseActionInput implements IActionInput {\r\n public search: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(search: string) {\r\n this.search = search;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'GetNZAddressResponse2020';\r\n public getCacheObjectType = () => 'GetNZAddressResponse';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: GetNZPostAddressResponseActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function getNZAddressResponseAction(\r\n input: GetNZPostAddressResponseActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n\r\n let addressResult: IDXC_GetNZPostAddressResponse = { success: false };\r\n return getAddressAsync({ callerContext: ctx }, input.search)\r\n .then((response) => {\r\n if (response && !(response instanceof Error)) {\r\n addressResult = response;\r\n return addressResult;\r\n } else {\r\n return addressResult;\r\n }\r\n })\r\n .catch((error: Error) => {\r\n ctx.trace(error.message);\r\n return addressResult;\r\n });\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >getNZAddressResponseAction,\r\n input: createInput\r\n});\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getAddressDetailAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_GetNZPostAddressDetailResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * GetNZPostAddressActionInput Input Action\r\n */\r\n\r\nexport class GetNZPostAddressDetailsActionInput implements IActionInput {\r\n public addressId: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(addressId: string) {\r\n this.addressId = addressId;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'GetNZAddressDetailsResponse2020';\r\n public getCacheObjectType = () => 'GetNZAddressDetailsResponse';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: GetNZPostAddressDetailsActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function getNZAddressResponseDetailsAction(\r\n input: GetNZPostAddressDetailsActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n let addressDetailsResult: IDXC_GetNZPostAddressDetailResponse = { success: false };\r\n return getAddressDetailAsync({ callerContext: ctx }, input.addressId)\r\n .then((response) => {\r\n console.log('response', response)\r\n if (response && !(response instanceof Error)) {\r\n addressDetailsResult = response;\r\n return addressDetailsResult;\r\n } else {\r\n return addressDetailsResult;\r\n }\r\n })\r\n .catch((error: Error) => {\r\n ctx.trace(error.message);\r\n return addressDetailsResult;\r\n });\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >getNZAddressResponseDetailsAction,\r\n input: createInput\r\n});\r\n","import classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { getNZAddressResponseAction, GetNZPostAddressResponseActionInput } from '../../data-actions/address/get-nz-post-address';\r\nimport { getNZAddressResponseDetailsAction, GetNZPostAddressDetailsActionInput } from '../../data-actions/address/get-nz-post-address-details';\r\nimport { IAddressDetails, IDXC_Address } from '../../data-actions/generated/DataServiceEntities.g';\r\n\r\ninterface IState {\r\n showAddressList: boolean;\r\n searchAddress: string | undefined;\r\n selectedAddress: IAddressDetails | undefined;\r\n formattedAddress: IFormattedAddressDetails | undefined;\r\n addressList: IDXC_Address[] | undefined;\r\n messageID: string | undefined;\r\n manualAddressLabel: string;\r\n searchAddressLabel: string;\r\n errorMessage: string | undefined;\r\n}\r\n\r\ninterface IProp {\r\n // tslint:disable-next-line: no-any\r\n context: any; // needed for API calls\r\n manualAddress: boolean; // boolean toggle for manual address input - passed from wrapper module\r\n addressSelectedCallback(address: IFormattedAddressDetails | undefined): void; // passes selected address to wrapper module\r\n toggleManualAddressCallback(): void; // called to toggle search and manual address input (should toggle manualAddress variable in wrapper module)\r\n}\r\n\r\n/**\r\n * AddressSearch component\r\n */\r\nclass AddressSearch extends React.Component {\r\n private _SearchAddressInputRef: React.RefObject;\r\n\r\n constructor(props: IProp) {\r\n super(props);\r\n this._SearchAddressInputRef = React.createRef();\r\n\r\n this.state = {\r\n showAddressList: false,\r\n searchAddress: '',\r\n selectedAddress: undefined,\r\n formattedAddress: undefined,\r\n addressList: [],\r\n messageID: '',\r\n manualAddressLabel: 'Enter Address Manually',\r\n searchAddressLabel: 'Search for your Address',\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return(\r\n
\r\n {!this.props.manualAddress &&\r\n
\r\n
Search Address
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.showAddressList && this.state.addressList &&\r\n
\r\n
    \r\n {this.state.addressList.map((address: IDXC_Address, index: number) => {\r\n if (address) {\r\n const addressId = address && address.address_id ? address.address_id : '';\r\n const fullAddress = address && address.full_address ? address.full_address : '';\r\n return (\r\n
  • \r\n {address.full_address}\r\n
  • \r\n );\r\n }\r\n return null;\r\n })}\r\n
\r\n
\r\n }\r\n
\r\n }\r\n {this.state.errorMessage &&\r\n
\r\n {this.state.errorMessage}\r\n
\r\n }\r\n \r\n
\r\n );\r\n }\r\n\r\n public clearAddress = () => {\r\n this.setState({\r\n searchAddress: '',\r\n selectedAddress: undefined,\r\n formattedAddress: undefined\r\n });\r\n }\r\n\r\n /**\r\n * Calls lookahead search API for currently typed input string\r\n */\r\n private getNZAddress = () => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n const inputText = this._SearchAddressInputRef.current && this._SearchAddressInputRef.current.value || '';\r\n this.setState({\r\n searchAddress: inputText,\r\n selectedAddress: undefined,\r\n formattedAddress: undefined,\r\n errorMessage: undefined\r\n });\r\n this.props.addressSelectedCallback(undefined);\r\n if (inputText.length > 3) {\r\n getNZAddressResponseAction(new GetNZPostAddressResponseActionInput(inputText), this.props.context.actionContext).then(\r\n (result) => {\r\n\r\n this.setState({\r\n addressList: result.addresses,\r\n messageID: result.message_id,\r\n showAddressList: true\r\n });\r\n }\r\n )\r\n .catch(() => {\r\n console.log('No data');\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Calls API to get full details of selected address\r\n */\r\n private getNZAddressDetails = (addressId: string, fullAddress: string) => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n getNZAddressResponseDetailsAction(new GetNZPostAddressDetailsActionInput(addressId), this.props.context.actionContext).then(\r\n (result) => {\r\n console.log('result', result);\r\n const formattedAddressObject = this._getFormattedAddressObject(result.address);\r\n this.setState({\r\n showAddressList: false,\r\n searchAddress: result.address ? fullAddress : this.state.searchAddress,\r\n selectedAddress: result.address,\r\n formattedAddress: formattedAddressObject,\r\n errorMessage: result.address ? undefined : 'There was an error retrieving this address, if this error persists please enter your address manually'\r\n });\r\n this.props.addressSelectedCallback(formattedAddressObject);\r\n }\r\n )\r\n .catch(() => {\r\n console.log('No data');\r\n });\r\n }\r\n\r\n /**\r\n * Formats the address object to match data needed in AX\r\n * @param address Address object from NZ Post API\r\n */\r\n private _getFormattedAddressObject(address: IAddressDetails | undefined): IFormattedAddressDetails | undefined {\r\n if (!address) {\r\n return;\r\n }\r\n console.log('address', address)\r\n return {\r\n building_name: this._getFormattedBuildingName(address),\r\n street_number: this._getFormattedStreetNumber(address),\r\n street: this._getFormattedStreet(address),\r\n suburb: address.suburb,\r\n city: address.city,\r\n postcode: address.postcode,\r\n country: address.country,\r\n };\r\n }\r\n\r\n private _getFormattedBuildingName(address: IAddressDetails): string | undefined {\r\n if (!(address.unit_type || address.unit_value || address.floor)) {\r\n return;\r\n }\r\n\r\n let buildingName = address.unit_type ? address.unit_type : '';\r\n buildingName += address.unit_value ? ` ${address.unit_value}` : '';\r\n if (address.floor) {\r\n buildingName.length > 0 ? buildingName += ` ${address.floor}` : buildingName = address.floor;\r\n }\r\n return buildingName;\r\n }\r\n\r\n private _getFormattedStreetNumber(address: IAddressDetails): string | undefined {\r\n if (!(address.street_number || address.street_alpha)) {\r\n return;\r\n }\r\n let streetNumDetails = address.street_number ? `${address.street_number}` : '';\r\n streetNumDetails += address.street_alpha ? address.street_alpha : '';\r\n return streetNumDetails;\r\n }\r\n\r\n private _getFormattedStreet(address: IAddressDetails): string | undefined {\r\n if (!(address.street || address.street_type || address.road_suffix_name)) {\r\n return;\r\n }\r\n let street = address.street ? address.street : '';\r\n street += address.street_type ? ` ${address.street_type}` : '';\r\n street += address.road_suffix_name ? ` ${address.road_suffix_name}` : '';\r\n\r\n if (address.rural_delivery_number) {\r\n street += `, ${address.rural_delivery_number}` \r\n }\r\n return street;\r\n }\r\n\r\n /**\r\n * onClick function to trigger manual input toggle callback\r\n */\r\n private toggleManualAddress = () => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n this.props.toggleManualAddressCallback();\r\n this.clearAddress();\r\n }\r\n}\r\n\r\nexport default AddressSearch;\r\n\r\n/**\r\n * Formatted address object\r\n */\r\nexport interface IFormattedAddressDetails {\r\n building_name?: string;\r\n\r\n street_number?: string;\r\n\r\n street?: string;\r\n\r\n suburb?: string;\r\n\r\n city?: string;\r\n\r\n postcode?: string;\r\n\r\n country?: string;\r\n\r\n rural_delivery_number?: string;\r\n}\r\n"],"names":["AutoSuggest","constructor","telemetry","autoSuggestOptions","BingMapsApiKey","countryCode","defaultLanguageId","excludedAddressFields","attachAutoSuggest","inputId","containerId","selectedSuggestionCallback","this","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","_objectSpread","_document$querySelect","AutosuggestManager","attachAutosuggest","MsDyn365","isBrowser","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","City","addCustomerAddress","submitCustomerAddress","addAddress","updateCustomerAddress","updateAddress","updateCustomerPrimaryAddress","updatePrimaryAddress","addressAction","AddressTypeValue","AddressManagementInput","execAddressAction","addresses","length","RecordId","customerAddresses","AddressItemDisplayType","AddressValidationRuleType","AddressItemType","AddressFormat","countryRegionsInfo","addressMetaData","addressPurposes","getPrefilledAddressDropdownData","stateDefaultSelectionText","stateProvinceInfo","defaultStateText","value","dropdownData","getCountryFormat","State","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","addressPurpose","AddressType","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","streetNumberMaxLength","stateMaxLength","excludedTypes","requiredFields","County","_init","id","item","_addItem","Input","Dropdown","StreetNumber","BuildingCompliment","Postbox","House_RU","Flat_RU","CountryOKSMCode_RU","Checkbox","displayType","includes","nameKey","replace","_validationRules","isRequired","rule","Required","optionalString","label","_getMaxFieldLength","autocompleteType","_getAutocompleteType","ruleType","Object","keys","itemType","_validationRule","AddressOperation","_ref","React","className","role","isChecked","additionalAddributes","telemetryContent","autoFocus","onChange","payLoad","getPayloadObject","attributes","getTelemetryAttributes","assign","checked","displayData","disabled","getDropdownItem","selectedValue","isSelected","text","htmlFor","getRequriedAttribute","getAddessItems","selectedAddress","props","addressFormat","addressType","dropdownDisplayData","defaultCountryRegionId","defaultAddressType","onInputChange","onDropdownChange","index","elementId","classname","lockShippingAddress","allowCountryChange","AddressInputComponent","autocomplete","AdressCheckboxComponent","AdressDropdownComponent","AddressItem","AddressLabelComponent","alert","AddressAlertComponent","AddressAddUpdate","editAddressHeading","addAddressHeading","hasError","onCancel","onSave","hasExternalSubmitGroup","isUpdating","addressActionResponse","searchAddress","heading","AddressForm","Heading","items","isShowSaveButton","saveButton","AddressButtonComponent","addressSaveButtonText","ariaLabel","addressSaveButtonAriaLabel","glyph","onClick","isShowCancelButton","cancelButton","addressCancelButtonText","addressCancelButtonAriaLabel","AddressError","title","AddressErrorTitleComponent","AddressErrorMessageComponent","autoComplete","isShowLabel","labelText","mainClass","AddressShow","AddressDetail","addressTypeValue","toString","description","AddressDetailItemComponent","GetNZPostAddressResponseActionInput","search","getCacheKey","getCacheObjectType","dataCacheType","getNZAddressResponseAction","ctx","addressResult","success","getAddressAsync","callerContext","then","Error","catch","trace","createObservableDataAction","action","args","GetNZPostAddressDetailsActionInput","addressId","getNZAddressResponseDetailsAction","addressDetailsResult","getAddressDetailAsync","console","log","AddressSearch","super","clearAddress","setState","getNZAddress","e","inputText","_SearchAddressInputRef","current","addressSelectedCallback","addressList","messageID","message_id","showAddressList","getNZAddressDetails","fullAddress","formattedAddressObject","_getFormattedAddressObject","toggleManualAddress","toggleManualAddressCallback","manualAddressLabel","searchAddressLabel","render","manualAddress","ref","placeholder","address_id","full_address","building_name","_getFormattedBuildingName","street_number","_getFormattedStreetNumber","street","_getFormattedStreet","suburb","city","postcode","country","unit_type","unit_value","floor","buildingName","street_alpha","streetNumDetails","street_type","road_suffix_name","rural_delivery_number"],"sourceRoot":""}