{"version":3,"file":"static/js/60.0571e51d9a52bbd44102.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/common/address/components/address-list.tsx?3d46","webpack://Citta2.0/./src/modules/citta-account-management-address/citta-account-management-address.tsx?f3d3","webpack://Citta2.0/./src/modules/citta-account-management-address/citta-account-management-address.view.tsx?2398"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\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, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressFormat } from '../address-format';\r\nimport { IAddressResource, IAddressResponse, IAddressConfig } from '../address-module.data';\r\nimport AddressButtonComponent from './address-button';\r\nimport AddressErrorMessageComponent from './address-error-message';\r\nimport AddressErrorTitleComponent from './address-error-title';\r\nimport { AddressShow, IAddressShowProps } from './address-show';\r\n\r\nexport interface IAddressListError {\r\n Error: INodeProps;\r\n isShowError: boolean;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressListItem {\r\n Item: INodeProps;\r\n key: number;\r\n error: IAddressListError;\r\n showItems: IAddressShowProps;\r\n isShowPrimaryButton: boolean;\r\n primaryButton: React.ReactNode;\r\n editButton: React.ReactNode;\r\n removeButton: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressList {\r\n List: INodeProps;\r\n isShowList: boolean;\r\n heading: React.ReactNode;\r\n items: IAddressListItem[];\r\n}\r\n\r\nexport interface IAddressListProps {\r\n ListAddress: INodeProps;\r\n heading: React.ReactNode;\r\n isShowEmptyListMessage: boolean;\r\n emptyListMessage: React.ReactNode;\r\n disclaimerMessage: React.ReactNode;\r\n addButton: React.ReactNode;\r\n primaryAddressList: IAddressList;\r\n otherAddressList: IAddressList;\r\n}\r\n\r\nexport interface IAddressListInputProps {\r\n isUpdating?: boolean;\r\n selectedAddress?: Address;\r\n addressFormat: AddressFormat;\r\n addresses: Address[];\r\n addressPurposes: AddressPurpose[];\r\n heading?: HeadingData;\r\n primaryAddressSectionHeading?: HeadingData;\r\n otherAddressSectionHeading?: HeadingData;\r\n addressActionResponse?: IAddressResponse;\r\n resources: IAddressResource;\r\n config: IAddressConfig;\r\n contextRequest: Msdyn365.IRequestContext;\r\n telemetryContent?: ITelemetryContent;\r\n onAddAddress(): void;\r\n onEditAddress(address?: Address): void;\r\n onRemoveAddress(address?: Address): void;\r\n onUpdatePrimaryAddress(address: Address): void;\r\n}\r\n\r\nconst getButtonAriaLabel = (ariaLabel: string, addressName?: string): string => {\r\n return ariaLabel.replace('{addressName}', addressName || '');\r\n};\r\n\r\nconst getAddressList = (className: string, addresses: Address[], showPrimaryButton: boolean, props: IAddressListInputProps, heading?: HeadingData): IAddressList => {\r\n const { resources, isUpdating, addressActionResponse, selectedAddress, addressFormat, onEditAddress, onRemoveAddress, onUpdatePrimaryAddress, addressPurposes, telemetryContent } = props;\r\n const { errorTitle = null, errorMessage = null } = addressActionResponse || {};\r\n\r\n return {\r\n List: { className: className },\r\n isShowList: addresses.length > 0,\r\n heading: heading && ,\r\n items: addresses.map((address: Address): IAddressListItem => {\r\n const isSelectedAddress = selectedAddress && selectedAddress.RecordId === address.RecordId;\r\n const isShowError = isSelectedAddress && errorTitle && errorMessage;\r\n return {\r\n Item: { className: `${className}-list` },\r\n key: address.RecordId || 0,\r\n showItems: AddressShow({ addressFormat: addressFormat.getAddressFormat(address.ThreeLetterISORegionName || ''), address: address, addressPurposes: addressPurposes }),\r\n error: {\r\n Error: { className: `${className}-error` },\r\n isShowError: isShowError ? true : false,\r\n title: ,\r\n message: \r\n },\r\n isShowPrimaryButton: showPrimaryButton,\r\n\r\n primaryButton: (\r\n { onUpdatePrimaryAddress(address); }\r\n }\r\n }\r\n />\r\n ),\r\n editButton: (\r\n { onEditAddress(address); }\r\n }\r\n }\r\n />\r\n ),\r\n removeButton: (\r\n { onRemoveAddress(address); }\r\n }\r\n }\r\n />\r\n )\r\n };\r\n })\r\n };\r\n};\r\n\r\nconst getPrimaryAddressList = (props: IAddressListInputProps): IAddressList => {\r\n const { addresses, primaryAddressSectionHeading } = props;\r\n const primaryAddresses = addresses.filter((address: Address) => address.IsPrimary);\r\n return getAddressList('msc-address-list__primary', primaryAddresses, false, props, primaryAddressSectionHeading);\r\n};\r\n\r\nconst getOtherAddressList = (props: IAddressListInputProps): IAddressList => {\r\n const { addresses, otherAddressSectionHeading } = props;\r\n const otherAddresses = addresses.filter((address: Address) => !address.IsPrimary);\r\n return getAddressList('msc-address-list__primary', otherAddresses, true, props, otherAddressSectionHeading);\r\n};\r\n\r\nexport const AddressList = (props: IAddressListInputProps): IAddressListProps => {\r\n const { addresses, heading, resources, onAddAddress, telemetryContent, config} = props;\r\n const handleLineItemHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\r\n heading!.text = event.target.value;\r\n };\r\n const headingComponent = heading && heading.text && (\r\n \r\n );\r\n\r\n return {\r\n ListAddress: { className: 'ms-address-list' },\r\n heading: headingComponent,\r\n isShowEmptyListMessage: addresses.length === 0,\r\n disclaimerMessage:{config.disclaimer},\r\n emptyListMessage: {resources.addressEmptyListAddressMessage},\r\n\r\n addButton: (\r\n \r\n ),\r\n primaryAddressList: getPrimaryAddressList(props),\r\n otherAddressList: getOtherAddressList(props)\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\nimport classnames from 'classnames';\r\nimport { action, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport {\r\n Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AutoSuggest } from '../../common/address/address-autosuggest';\r\nimport { IAutoSuggestOptions } from '../../common/address/address-autosuggest.data';\r\nimport { AddressCommon } from '../../common/address/address-common';\r\nimport { AddressFormat } from '../../common/address/address-format';\r\nimport { AddressItemType, IAddressDropdownsData } from '../../common/address/address-format.data';\r\nimport { AddressMetaData } from '../../common/address/address-meta-data';\r\nimport {\r\n AddressOperation, AddressType, IAddressResource, IAddressResponse, IAddressConfig\r\n} from '../../common/address/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/address/components/address-add';\r\nimport { AddressList, IAddressListProps } from '../../common/address/components/address-list';\r\nimport AddressSearch, { IFormattedAddressDetails } from '../../components/citta-address-search/citta-address-search';\r\nimport { ICittaAccountManagementAddressData } from './citta-account-management-address.data';\r\nimport { ICittaAccountManagementAddressProps } from './citta-account-management-address.props.autogenerated';\r\n\r\nexport interface IAccountManagementAddressViewState {\r\n isShowAddresList: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n}\r\n\r\nexport interface IAccountManagementAddressViewProps extends React.Component> {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: IAccountManagementAddressViewState;\r\n AccountAddressManagement: IModuleProps;\r\n isUpdating: boolean;\r\n showAddressList: IAddressListProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n}\r\n\r\n/**\r\n *\r\n * Address component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass AccountManagementAddress extends React.Component> {\r\n @observable private currentOperation: AddressOperation;\r\n @observable private selectedAddress?: Address;\r\n @observable private countryRegionId: string = 'NZL';\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n @observable private customerAddresses: Address[];\r\n @observable private addUpdateAddress: Address;\r\n @observable private validationError: object;\r\n @observable private addressActionResponse?: IAddressResponse;\r\n @observable private isUpdating?: boolean;\r\n @observable private hasError?: boolean;\r\n @observable private manualAddress: boolean;\r\n\r\n private addressCommon: AddressCommon;\r\n private addressFormat: AddressFormat;\r\n private countryRegions: CountryRegionInfo[];\r\n private addressPurposes: AddressPurpose[];\r\n private resources: IAddressResource;\r\n private config:IAddressConfig;\r\n private defaultAddressType: number = this.props.context.app.config.defaultAddressTypeValue || 7; // Default to Home\r\n private telemetryContent: ITelemetryContent;\r\n private autoSuggest?: AutoSuggest;\r\n private isNZ: boolean = false;\r\n private addressDropdownsData:IAddressDropdownsData = {};\r\n private showAddressSearch: boolean = false;\r\n private nzlCountryRegionId: string = 'NZL';\r\n\r\n constructor(props: ICittaAccountManagementAddressProps) {\r\n super(props);\r\n const { context, data, resources, telemetry, config } = this.props;\r\n\r\n this.resources = resources;\r\n this.config = config\r\n this.currentOperation = AddressOperation.List;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.customerAddresses = data.address.result || [];\r\n this.addUpdateAddress = {};\r\n this.validationError = {};\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.addressFormat = new AddressFormat(this.countryRegions, new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()), this.addressPurposes);\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n this.isNZ = this.selectedAddress && this.selectedAddress.ThreeLetterISORegionName === 'NZL' || false;\r\n this.manualAddress = false;\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n\r\n const {\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: {\r\n channel\r\n }\r\n }\r\n },\r\n config: {\r\n autoSuggestionEnabled,\r\n autoSuggestOptions\r\n }\r\n } = this.props;\r\n\r\n this.props.data.countryRegions.then(() => {\r\n this._setDefaultCountryRegionId();\r\n });\r\n\r\n reaction(\r\n () => this.countryRegionId,\r\n () => this._getStateProvinces()\r\n );\r\n\r\n reaction(\r\n () => this.currentOperation,\r\n () => {\r\n this._getStateProvinces();\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\r\n\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\r\n this.autoSuggest = new AutoSuggest(telemetry, options, channel?.BingMapsApiKey, channel?.ChannelCountryRegionISOCode, channel?.DefaultLanguageId);\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi !== undefined && (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\r\n async () => {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n );\r\n\r\n reaction(\r\n () => {\r\n this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\r\n },\r\n async () => {\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n await this._attachMapAutoSuggest();\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n public async componentDidUpdate(): Promise {\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\r\n await this._attachMapAutoSuggest();\r\n }\r\n } else {\r\n this.autoSuggest?.disposeAutoSuggest();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { renderView, config } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n currentOperation: this.currentOperation,\r\n selectedAddress: this.selectedAddress,\r\n addUpdateAddress: this.addUpdateAddress,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n customerAddresses: this.customerAddresses,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n isUpdating: this.isUpdating,\r\n hasError: this.hasError,\r\n className: config.className,\r\n viewState: {\r\n isShowAddresList: this.currentOperation === AddressOperation.List,\r\n isShowAddOrUpdateAddress: this.currentOperation !== AddressOperation.List,\r\n },\r\n AccountAddressManagement: {\r\n moduleProps: this.props,\r\n className: classnames('ms-account-management-address', config.className)\r\n },\r\n showAddressList: this._renderListAddress(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(config.allowCountryChange)\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n private _renderSearchAddress = (): React.ReactElement | null => {\r\n if (this.showAddressSearch && this.isNZ) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n private _renderAddOrUpdateAddress = (allowCountryChange?: boolean): IAddressAddUpdateProps => {\r\n let addressFormatItems = this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId);\r\n this.isNZ = this.addUpdateAddress.ThreeLetterISORegionName === this.nzlCountryRegionId;\r\n this.addressDropdownsData = this.addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n );\r\n // if (this.isNZ && !this.manualAddress) {\r\n // addressFormatItems = addressFormatItems.filter(item => item.name === 'Name' || item.name === 'Phone');\r\n // }\r\n return AddressAddUpdate(\r\n {\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: addressFormatItems,\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n dropdownDisplayData: this.addressDropdownsData,\r\n telemetryContent: this.telemetryContent,\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n onSave: this._onAddressAddUpdateSubmit,\r\n onCancel: this._resetView,\r\n searchAddress: this._renderSearchAddress,\r\n allowCountryChange: allowCountryChange\r\n }\r\n );\r\n }\r\n\r\n private _renderListAddress = (): IAddressListProps => {\r\n const { config } = this.props;\r\n\r\n return AddressList(\r\n {\r\n isUpdating: this.isUpdating,\r\n selectedAddress: this.selectedAddress,\r\n addressFormat: this.addressFormat,\r\n addresses: this.customerAddresses,\r\n addressPurposes: this.addressPurposes,\r\n resources: this.resources,\r\n config:this.config,\r\n heading: config.heading,\r\n primaryAddressSectionHeading: config.primaryAddressSectionHeading,\r\n otherAddressSectionHeading: config.otherAddressSectionHeading,\r\n contextRequest: this.props.context.request,\r\n telemetryContent: this.telemetryContent,\r\n onEditAddress: this._goToEditAddress,\r\n onRemoveAddress: this._onRemoveAddress,\r\n onAddAddress: this._goToAddAddress,\r\n onUpdatePrimaryAddress: this._onSubmitUpdatePrimaryAddress\r\n }\r\n );\r\n };\r\n\r\n private _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded) {\r\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n }\r\n\r\n @action\r\n private _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n this._clearAddressFields();\r\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\r\n set(this.addUpdateAddress, { ['Street']: '' });\r\n set(this.addUpdateAddress, { ['ZipCode']: address.ZipCode });\r\n set(this.addUpdateAddress, { ['CountyName']: address.CountyName });\r\n set(this.addUpdateAddress, { ['City']: address.City });\r\n set(this.addUpdateAddress, { ['State']: address.State });\r\n set(this.addUpdateAddress, { ['DistrictName']: address.DistrictName });\r\n set(this.addUpdateAddress, { ['FullAddress']: address.FullAddress });\r\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\r\n setTimeout(() => {\r\n set(this.addUpdateAddress, { ['Street']: address.Street });\r\n }, 0);\r\n\r\n }\r\n\r\n @action\r\n private _clearAddressFields = (): void => {\r\n const addressFormatItem = this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId);\r\n addressFormatItem.forEach(format => {\r\n if (this.addUpdateAddress[format.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(format.name)) {\r\n this.addressFormat[format.name] = '';\r\n }\r\n });\r\n this._clearValidation();\r\n }\r\n\r\n @action\r\n private _clearValidation = (): void => {\r\n this.validationError = {};\r\n }\r\n\r\n private onAddressAddUpdate = (name: string, value: string | boolean | number) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n }\r\n\r\n private _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n this.onAddressAddUpdate(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n }\r\n\r\n private _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n if (event.target.name === AddressItemType[AddressItemType.AddressTypeValue]) {\r\n this.onAddressAddUpdate(event.target.name, +event.target.value);\r\n } else {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n }\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n }\r\n\r\n private _onAddressUpdate = (response: Promise, onSuccess: (response: IAddressResponse) => void): void => {\r\n\r\n this.isUpdating = true;\r\n response.then(\r\n (result: IAddressResponse) => {\r\n if (result.address) {\r\n this.hasError = false;\r\n onSuccess(result);\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n }\r\n this.isUpdating = false;\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n }\r\n );\r\n }\r\n\r\n private _onAddressAddUpdateSubmit = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n this.manualAddress = true;\r\n return;\r\n }\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n response = this.currentOperation === AddressOperation.Update ? this.addressCommon.updateCustomerAddress(this.addUpdateAddress) : this.addressCommon.addCustomerAddress(this.addUpdateAddress);\r\n } else {\r\n response = Promise.resolve({ address: this.addUpdateAddress });\r\n }\r\n\r\n this._onAddressUpdate(response, this._onAddOrUpdateSuccess);\r\n }\r\n\r\n private _onCountryChange = (countryRegionId: string) => {\r\n this.countryRegionId = countryRegionId;\r\n const twoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\r\n set(this.addUpdateAddress, { ['ThreeLetterISORegionName']: countryRegionId });\r\n set(this.addUpdateAddress, { ['TwoLetterISORegionName']: twoLetterISORegionName });\r\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterISORegionName);\r\n this._clearAddressFields();\r\n }\r\n\r\n private _getAddressFormatExcludeList = (): AddressItemType[] => {\r\n const { config } = this.props;\r\n const addressFormatExcludeList: AddressItemType[] = [];\r\n\r\n if (!config.showAddressType) {\r\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\r\n }\r\n\r\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\r\n\r\n return addressFormatExcludeList;\r\n }\r\n\r\n private _getStateProvinces = (): void => {\r\n if (!this.countryRegionId || !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)) {\r\n return;\r\n }\r\n\r\n // tslint:disable-next-line:no-floating-promises\r\n this.addressCommon.getStateProvinces(this.countryRegionId).then(\r\n (result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n set(this.addUpdateAddress, { ['State']: '' });\r\n }\r\n this.stateProvinceInfo = result;\r\n });\r\n }\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { \r\n context: {\r\n request\r\n },\r\n config: {\r\n channelCountryRegionISOCodeOverride\r\n }\r\n } = this.props;\r\n\r\n const market = channelCountryRegionISOCodeOverride \r\n ? channelCountryRegionISOCodeOverride \r\n : request && request.channel && request.channel.ChannelCountryRegionISOCode;\r\n\r\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\r\n }\r\n\r\n private _updateCurrentOperation = (operation: AddressOperation) => {\r\n this.currentOperation = operation;\r\n if (operation === AddressOperation.Add) {\r\n this.showAddressSearch = true;\r\n this.manualAddress = false;\r\n } else if(operation === AddressOperation.Update) {\r\n this.showAddressSearch = true;\r\n this.manualAddress = true;\r\n }\r\n }\r\n\r\n private _onSubmitUpdatePrimaryAddress = (address: Address): void => {\r\n this.selectedAddress = address;\r\n const response = this.addressCommon.updateCustomerPrimaryAddress(address);\r\n this._onAddressUpdate(response, this._onUpdatePrimaryAddressSuccess);\r\n }\r\n\r\n private _goToEditAddress = (address: Address): void => {\r\n this.addUpdateAddress = { ...address };\r\n this.countryRegionId = this.addUpdateAddress.ThreeLetterISORegionName || this.nzlCountryRegionId;\r\n this._updateCurrentOperation(AddressOperation.Update);\r\n }\r\n\r\n private _onRemoveAddress = (address: Address): void => {\r\n address.Deactivate = true;\r\n const response = this.addressCommon.updateCustomerAddress(address);\r\n this._onAddressUpdate(response, this._onAddOrUpdateSuccess);\r\n }\r\n\r\n private _goToAddAddress = (): void => {\r\n this.addUpdateAddress = {};\r\n this._setDefaultCountryRegionId();\r\n set(this.addUpdateAddress, { ['ThreeLetterISORegionName']: this.countryRegionId });\r\n set(this.addUpdateAddress, { ['AddressTypeValue']: this.defaultAddressType });\r\n this._setDefaultCountryRegionId();\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n\r\n private _onAddOrUpdateSuccess = (response: IAddressResponse): void => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n this._resetView();\r\n }\r\n\r\n private _onUpdatePrimaryAddressSuccess = (response: IAddressResponse): void => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n }\r\n\r\n private _resetView = (): void => {\r\n this.selectedAddress = undefined;\r\n this._updateCurrentOperation(AddressOperation.List);\r\n }\r\n private _toggleManualAddressInput = (): void => {\r\n this.manualAddress = !this.manualAddress;\r\n }\r\n\r\n /**\r\n * callback function for receiving address details from address search component\r\n */\r\n private _handleSearchAddressSelection = (address: IFormattedAddressDetails): void => {\r\n // check fields\r\n if (!(address && address.country && address.city && address.postcode && address.street && address.suburb)) {\r\n this.addUpdateAddress = {\r\n Name: this.addUpdateAddress.Name,\r\n Phone: this.addUpdateAddress.Phone,\r\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n };\r\n return;\r\n }\r\n\r\n // cache name and phone in case of country change\r\n const name = this.addUpdateAddress.Name;\r\n const phone = this.addUpdateAddress.Phone;\r\n\r\n // country update - needs 3 letter iso\r\n const countryCode = this._getCountryThreeLetterCode(address.country);\r\n if (!countryCode) {\r\n this.props.telemetry.error('country code undefined for ', address.country);\r\n return;\r\n }\r\n\r\n this._elementUpdate('ThreeLetterISORegionName', countryCode);\r\n\r\n // save other address fields\r\n this._elementUpdate('City', address.city);\r\n this._elementUpdate('ZipCode', address.postcode);\r\n this._elementUpdate('Street', address.street);\r\n this._elementUpdate('StreetNumber', address.street_number ? address.street_number : '');\r\n this._elementUpdate('BuildingCompliment', address.building_name ? address.building_name : '');\r\n this._elementUpdate('DistrictName', address.suburb);\r\n\r\n // restore name & phone\r\n if (name) {\r\n this._elementUpdate('Name', name);\r\n }\r\n if (phone) {\r\n this._elementUpdate('Phone', phone);\r\n }\r\n }\r\n\r\n private _elementUpdate = (name: string, value: string) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n }\r\n\r\n private _getCountryThreeLetterCode = (country: string): string | undefined => {\r\n const dropdownDisplayData = this.addressDropdownsData.ThreeLetterISORegionName;\r\n const data = dropdownDisplayData.find((item) => item.value === country);\r\n return data ? data.key?.toString() : undefined;\r\n }\r\n}\r\n\r\nexport default AccountManagementAddress;","/*---------------------------------------------------------------------------------------------\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/address/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '../../common/address/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '../../common/address/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from './citta-account-management-address';\r\n// import {ICittaAccountManagementAddressConfig} from \"./citta-account-management-address.props.autogenerated\";\r\n\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n >\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n disclaimerMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {disclaimerMessage}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n searchAddress,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {searchAddress}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n"],"names":["getButtonAriaLabel","ariaLabel","addressName","replace","getAddressList","className","addresses","showPrimaryButton","props","heading","resources","isUpdating","addressActionResponse","selectedAddress","addressFormat","onEditAddress","onRemoveAddress","onUpdatePrimaryAddress","addressPurposes","telemetryContent","errorTitle","errorMessage","List","isShowList","length","React","Heading","Object","assign","items","map","address","isSelectedAddress","RecordId","isShowError","Item","key","showItems","AddressShow","getAddressFormat","ThreeLetterISORegionName","error","Error","title","AddressErrorTitleComponent","message","AddressErrorMessageComponent","isShowPrimaryButton","primaryButton","AddressButtonComponent","classname","disabled","text","addressPrimaryButtonText","addressPrimaryButtonAriaLabel","Name","onClick","editButton","addressEditButtonText","addressEditButtonAriaLabel","removeButton","addressRemoveButtonText","addressRemoveButtonAriaLabel","getPrimaryAddressList","primaryAddressSectionHeading","primaryAddresses","filter","IsPrimary","getOtherAddressList","otherAddressSectionHeading","otherAddresses","AccountManagementAddress","constructor","super","countryRegionId","defaultAddressType","this","context","app","config","defaultAddressTypeValue","isNZ","addressDropdownsData","showAddressSearch","nzlCountryRegionId","_renderSearchAddress","AddressSearch","manualAddress","addressSelectedCallback","_handleSearchAddressSelection","toggleManualAddressCallback","_toggleManualAddressInput","_renderAddOrUpdateAddress","allowCountryChange","addressFormatItems","addUpdateAddress","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","stateProvinceInfo","AddressAddUpdate","addressType","AddressType","Shipping","defaultCountryRegionId","validationError","dropdownDisplayData","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","onSave","_onAddressAddUpdateSubmit","onCancel","_resetView","searchAddress","_renderListAddress","onAddAddress","ListAddress","Msdyn365","tag","headingTag","editProps","onEdit","event","target","value","requestContext","contextRequest","isShowEmptyListMessage","disclaimerMessage","disclaimer","emptyListMessage","addressEmptyListAddressMessage","addButton","addressAddButtonText","addressAddButtonAriaLabel","primaryAddressList","otherAddressList","AddressList","customerAddresses","request","_goToEditAddress","_onRemoveAddress","_goToAddAddress","_onSubmitUpdatePrimaryAddress","_attachMapAutoSuggest","async","data","storeSelectorStateManager","result","_this$autoSuggest","isMapApiLoaded","autoSuggest","attachAutoSuggest","_onSuggestionSelected","_clearAddressFields","getTranformedAddress","set","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","Street","forEach","format","_this$autoSuggest2","undefined","name","excludedAddressFields","includes","_clearValidation","onAddressAddUpdate","validateAddressFormat","type","checked","RegExp","AddressItemType","AddressTypeValue","_onCountryChange","_onAddressUpdate","response","onSuccess","then","hasError","addressCommon","isAuthenticatedFlow","currentOperation","AddressOperation","Update","updateCustomerAddress","addCustomerAddress","Promise","resolve","_onAddOrUpdateSuccess","_this$autoSuggest3","twoLetterISORegionName","getTwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","addressFormatExcludeList","showAddressType","push","_getStateProvinces","Add","getStateProvinces","some","state","StateId","_updateCurrentOperation","operation","updateCustomerPrimaryAddress","_onUpdatePrimaryAddressSuccess","_objectSpread","Deactivate","_setDefaultCountryRegionId","country","city","postcode","street","suburb","Phone","phone","countryCode","_getCountryThreeLetterCode","_elementUpdate","street_number","building_name","telemetry","_data$key","find","item","toString","countryRegions","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","telemetryPageName","friendlyName","actionContext","channel","autoSuggestionEnabled","autoSuggestOptions","reaction","BingMapsApiKey","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_this$props$data$stor","loadMapApi","_this$autoSuggest4","_loadMapAPI","_this$props$data$stor2","_this$props$data$stor3","_this$autoSuggest5","disposeAutoSuggest","render","renderView","viewState","isShowAddresList","isShowAddOrUpdateAddress","AccountAddressManagement","moduleProps","classnames","showAddressList","showAddOrUpdateAddress","channelCountryRegionISOCodeOverride","market","getDefaultCountryRegionId","__decorate","observable","action","observer","_ref","AddressDetail","Node","description","_ref2","AddressLists","_ref3","_ref4","AddressForm","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","Module"],"sourceRoot":""}
{config.disclaimer}
{resources.addressEmptyListAddressMessage}