{"version":3,"file":"static/js/42.c8d7ab438999536e099b.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/common/citta-address/modules/account-management-address/account-management-address.tsx?2cb2","webpack://Citta2.0/./src/common/citta-address/modules/account-management-address/account-management-address.view.tsx?3a33","webpack://Citta2.0/./src/common/citta-address/modules/business-account-address/business-account-address.tsx?0f6f","webpack://Citta2.0/./src/common/citta-address/modules/business-account-address/business-account-address.view.tsx?eaf3","webpack://Citta2.0/./src/modules/citta-checkout-shipping-address-intl/citta-checkout-shipping-address-intl.tsx?cd0b","webpack://Citta2.0/./src/modules/citta-checkout-shipping-address-intl/citta-checkout-shipping-address-intl.view.tsx?4d6d","webpack://Citta2.0/./src/common/citta-address/common/components/address-list.tsx?0a34"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\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 { AutoSuggest } from '../../common/address-autosuggest';\r\nimport { IAutoSuggestOptions } from '../../common/address-autosuggest.data';\r\nimport { AddressCommon } from '../../common/address-common';\r\nimport { AddressFormat } from '../../common/address-format';\r\nimport { AddressItemType } from '../../common/address-format.data';\r\nimport { AddressMetaData } from '../../common/address-meta-data';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { AddressList, IAddressListProps } from '../../common/components/address-list';\r\nimport { IAccountManagementAddressData } from './account-management-address.data';\r\nimport { IAccountManagementAddressProps } from './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\r\n @observable private selectedAddress?: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private customerAddresses: Address[];\r\n\r\n @observable private addUpdateAddress: Address;\r\n\r\n @observable private validationError: object;\r\n\r\n @observable private addressActionResponse?: IAddressResponse;\r\n\r\n @observable private isUpdating?: boolean;\r\n\r\n @observable private hasError?: boolean;\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat: AddressFormat;\r\n\r\n private readonly countryRegions: CountryRegionInfo[];\r\n\r\n private readonly addressPurposes: AddressPurpose[];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 6; // Default to Home\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n private autoSuggest?: AutoSuggest;\r\n\r\n constructor(props: IAccountManagementAddressProps) {\r\n super(props);\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.resources = resources;\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 }\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 () => {\r\n this._getStateProvinces();\r\n }\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()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n return AddressAddUpdate(\r\n {\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: this.addressFormat.getAddressFormat((this.addUpdateAddress.ThreeLetterISORegionName) || this.countryRegionId),\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.addressFormat.getPrefilledAddressDropdownData(this.resources.addressStateDefaultSelectionText, this.stateProvinceInfo),\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 }\r\n );\r\n };\r\n\r\n private readonly _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 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 readonly _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 readonly _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\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 readonly _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 readonly _clearValidation = (): void => {\r\n this.validationError = {};\r\n };\r\n\r\n private readonly 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 readonly _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 readonly _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 readonly _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 readonly _onAddressAddUpdateSubmit = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\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 readonly _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 readonly _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 readonly _getStateProvinces = (): void => {\r\n if (!this.countryRegionId || !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)) {\r\n return;\r\n }\r\n\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\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 { request } = this.props.context;\r\n const market = 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 readonly _updateCurrentOperation = (operation: AddressOperation) => {\r\n this.currentOperation = operation;\r\n };\r\n\r\n private readonly _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 readonly _goToEditAddress = (address: Address): void => {\r\n this.addUpdateAddress = { ...address };\r\n this.countryRegionId = this.addUpdateAddress.ThreeLetterISORegionName || 'USA';\r\n this._updateCurrentOperation(AddressOperation.Update);\r\n };\r\n\r\n private readonly _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 readonly _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 readonly _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 readonly _onUpdatePrimaryAddressSuccess = (response: IAddressResponse): void => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n };\r\n\r\n private readonly _resetView = (): void => {\r\n this.selectedAddress = undefined;\r\n this._updateCurrentOperation(AddressOperation.List);\r\n };\r\n}\r\n\r\nexport default AccountManagementAddress;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '../../common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from './account-management-address';\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 addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\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}) => {\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 {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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, set } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { AddressCommon } from '../../common/address-common';\r\nimport { AddressFormat } from '../../common/address-format';\r\nimport { AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem } from '../../common/address-format.data';\r\nimport { AddressMetaData } from '../../common/address-meta-data';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IBusinessAccountAddressData } from './business-account-address.data';\r\nimport { IBusinessAccountAddressProps } from './business-account-address.props.autogenerated';\r\n\r\nexport interface IBusinessAccountAddressExtendedProps extends IBusinessAccountAddressProps {\r\n hasError: boolean;\r\n isRequired: boolean;\r\n resetAddress: boolean;\r\n updateForm(errors: boolean, currentAddress?: Address): void;\r\n}\r\n\r\nexport interface IBusinessAccountAddressState {\r\n countryId?: string;\r\n states?: StateProvinceInfo[];\r\n}\r\n\r\nexport interface IBusinessAccountAddressViewProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n BusinessAccountAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component, IBusinessAccountAddressState>}\r\n */\r\nclass BusinessAccountAddress extends React.Component {\r\n @observable private addUpdateAddress: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private readonly validationError: object;\r\n\r\n private readonly addressActionResponse?: IAddressResponse;\r\n\r\n private readonly isUpdating?: boolean;\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat: AddressFormat;\r\n\r\n private readonly countryRegions: CountryRegionInfo[];\r\n\r\n private readonly addressPurposes: AddressPurpose[];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 8; // Default to Business\r\n\r\n private readonly excludedList: AddressItemType[] = [AddressItemType.Name, AddressItemType.AddressTypeValue, AddressItemType.IsPrimary]; // Default to hiding Name and AddressType inputs\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n constructor(props: IBusinessAccountAddressExtendedProps) {\r\n super(props);\r\n\r\n const { context, data, resources, telemetry } = this.props;\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressFormat = new AddressFormat(this.countryRegions, new AddressMetaData({ ...resources }, this.excludedList, props.isRequired ? undefined : []), this.addressPurposes);\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.validationError = {};\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._setDefaultCountryRegionId();\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { renderView, config, hasError, resetAddress } = this.props;\r\n\r\n // Business-sign-up will pass this flag when cancel button is clicked\r\n if (resetAddress) {\r\n this._resetAddressFields();\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n hasError,\r\n className: config.className,\r\n BusinessAccountAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-business-account-address', config.className)\r\n },\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public _resetAddressFields = () => {\r\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\r\n\r\n addressFormat.map(addressFormatItem => {\r\n switch (addressFormatItem.displayType) {\r\n case AddressItemDisplayType.Input:\r\n this.addUpdateAddress[addressFormatItem.name] = '';\r\n break;\r\n case AddressItemDisplayType.Checkbox:\r\n this.addUpdateAddress[addressFormatItem.name] = false;\r\n break;\r\n default:\r\n switch (addressFormatItem.type) {\r\n case AddressItemType.ThreeLetterISORegionName:\r\n this.addUpdateAddress[addressFormatItem.name] = this.countryRegionId;\r\n break;\r\n case AddressItemType.AddressTypeValue:\r\n this.addUpdateAddress[addressFormatItem.name] = this.defaultAddressType;\r\n break;\r\n case AddressItemType.State:\r\n this.addUpdateAddress[addressFormatItem.name] = '';\r\n break;\r\n default:\r\n this.addUpdateAddress[addressFormatItem.name] = undefined;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Set validationError and hasError to hide error messages since in the B2B\r\n // request form, no errors would visually show since user wont be able to submit\r\n // until form is filled and correct\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Company,\r\n addressFormat: this.addressFormat.getAddressFormat(this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n hasError: this.props.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange\r\n });\r\n };\r\n\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n this._updateAddress(event.target.name, event.target.value);\r\n };\r\n\r\n private readonly _onAddressAddUpdateDropdownChange = async (event: React.ChangeEvent): Promise => {\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n await this._updateCountryRegionId(event.target.value);\r\n } else {\r\n this._updateAddress(event.target.name, event.target.value);\r\n }\r\n };\r\n\r\n private readonly _updateAddress = (name: string, value: string | number) => {\r\n const { updateForm, isRequired, resources } = this.props;\r\n let cleanValue = value;\r\n if (typeof (value) === 'string') {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n }\r\n set(this.addUpdateAddress, { [name]: cleanValue });\r\n\r\n if (this._isEmpty()) {\r\n if (isRequired) {\r\n updateForm(true, undefined);\r\n } else {\r\n // Reset addressFormat as if address was NOT a required field\r\n this.addressFormat = new AddressFormat(this.countryRegions, new AddressMetaData({ ...resources }, this.excludedList, []), this.addressPurposes);\r\n updateForm(false, this.addUpdateAddress);\r\n }\r\n } else {\r\n // Get new addressFormat as if address was a required field\r\n this.addressFormat = new AddressFormat(this.countryRegions, new AddressMetaData({ ...resources }, this.excludedList, undefined), this.addressPurposes);\r\n\r\n // Verify with new rules\r\n if (this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n updateForm(false, this.addUpdateAddress);\r\n } else {\r\n updateForm(true, undefined);\r\n }\r\n }\r\n };\r\n\r\n // Walk through array and check if valued is defined or value is not an empty string\r\n private readonly _isEmpty = () => {\r\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\r\n for (const addressFormatItem of addressFormat) {\r\n if (addressFormatItem.type !== AddressItemType.ThreeLetterISORegionName || this._isInputRequired(addressFormatItem)) {\r\n const addressItemValue = this.addUpdateAddress[addressFormatItem.name];\r\n\r\n // Check each input field, if value is defined and not an empty string --> address is not empty\r\n if (addressItemValue || (addressItemValue && addressItemValue !== '')) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private readonly _isInputRequired = (addressFormatItem: IAddressItem): boolean => {\r\n if (addressFormatItem === null || !addressFormatItem.validationRules || addressFormatItem.validationRules.length === 0) {\r\n return false;\r\n }\r\n\r\n for (const validationRule of addressFormatItem.validationRules) {\r\n if (validationRule.type === AddressValidationRuleType.Required) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request && request.channel && request.channel.ChannelCountryRegionISOCode;\r\n\r\n this._updateCountryRegionId(this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market));\r\n\r\n // Set default AddressType\r\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\r\n }\r\n\r\n private readonly _updateCountryRegionId = async (value: string) => {\r\n this.countryRegionId = value;\r\n\r\n await this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n this._updateAddress('State', '');\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n });\r\n\r\n this._updateAddress('ThreeLetterISORegionName', this.countryRegionId);\r\n };\r\n}\r\n\r\nexport default BusinessAccountAddress;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IBusinessAccountAddressViewProps } from './business-account-address';\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}) => {\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 \r\n {label}\r\n {hasError && alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError &&\r\n \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst BusinessAccountAddressView: React.FC = props => {\r\n const { BusinessAccountAddress, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinessAccountAddressView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Address, AddressPurpose, CartLine, CountryRegionInfo, SimpleProduct, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { getSimpleProducts, ObjectExtensions, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { action, computed, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { AutoSuggest } from '../../common/citta-address/common/address-autosuggest';\r\nimport { IAutoSuggestOptions } from '../../common/citta-address/common/address-autosuggest.data';\r\nimport { AddressCommon } from '../../common/citta-address';\r\nimport { AddressFormat } from '../../common/citta-address';\r\nimport { AddressItemType } from '../../common/citta-address';\r\nimport { AddressMetaData } from '../../common/citta-address' //'@msdyn365-commerce-modules/address';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/citta-address';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/citta-address';\r\nimport { AddressSelect, IAddressSelectProps } from '../../common/citta-address';\r\nimport { AddressShow, IAddressShowProps } from '../../common/citta-address';\r\nimport { ICittaCheckoutShippingAddressIntlData } from './citta-checkout-shipping-address-intl.data';\r\nimport { ICittaCheckoutShippingAddressIntlProps } from './citta-checkout-shipping-address-intl.props.autogenerated';\r\nimport { ICartLineWithProduct } from './components/checkout-shipping-cartlines-images';\r\n\r\n\r\nexport interface ICheckoutAddressProps extends ICittaCheckoutShippingAddressIntlProps, IModuleStateProps { }\r\n\r\n/**\r\n * The checkout shipping address view state.\r\n */\r\nexport interface ICheckoutShippingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddresList: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n}\r\n\r\n/**\r\n * The checkout shipping address state.\r\n */\r\nexport interface ICheckoutAddresState {\r\n shippingGroups: ICartLineWithProduct[];\r\n deliveryNotes: string;\r\n}\r\n\r\n/**\r\n * The checkout shipping address view props.\r\n */\r\nexport interface ICheckoutShippingAddressViewProps extends ICheckoutAddressProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutShippingAddressViewState;\r\n CheckoutShippingAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddress: IAddressShowProps;\r\n showAddressSelect: IAddressSelectProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n cartLineImages?: React.ReactNode;\r\n deliveryNotes?: JSX.Element;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutShippingAddress extends React.Component {\r\n @observable private currentOperation: AddressOperation;\r\n\r\n @observable private selectedAddress?: Address;\r\n\r\n @observable private addUpdateAddress: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private customerAddresses: Address[];\r\n\r\n @observable private validationError: object;\r\n\r\n @observable private addressActionResponse?: IAddressResponse;\r\n\r\n @observable private isUpdating?: boolean;\r\n\r\n @observable private hasError?: boolean;\r\n\r\n @observable private addressListSelectedAddress: Address = {};\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat: AddressFormat;\r\n\r\n private readonly countryRegions: CountryRegionInfo[];\r\n\r\n private readonly addressPurposes: AddressPurpose[];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 6; // Default to Home\r\n\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n private autoSuggest?: AutoSuggest;\r\n\r\n private readonly multiplePickupStoreSwitchName: string = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n\r\n private readonly retailMultiplePickUpOptionEnabled?: boolean = false;\r\n\r\n private deliveryNotesRef: React.RefObject;\r\n\r\n constructor(props: ICheckoutAddressProps) {\r\n super(props);\r\n this.state = { shippingGroups: [],\r\n deliveryNotes: this._getExtensionPropertyValue('DELIVERYNOTES') || ''\r\n };\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\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 // console.log('data.countryStates.result', data.countryStates.result)\r\n this.deliveryNotesRef = React.createRef();\r\n this.stateProvinceInfo = data.countryStates.result || [];\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.validationError = {};\r\n this.retailMultiplePickUpOptionEnabled = data.featureState.result\r\n ?.find(feature => feature.Name === this.multiplePickupStoreSwitchName)?.IsEnabled;\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n }\r\n\r\n @action\r\n\r\n private readonly _initPickupGroup = async (): Promise => {\r\n const pickupCartLines: CartLine[] = this._getCartLinesforDelivery();\r\n const cartLines: ICartLineWithProduct[] = [];\r\n\r\n try {\r\n const products = await this._getProductsByCartLines(this.props.data.checkout.result?.checkoutCart.cart.ChannelId || 0,\r\n pickupCartLines);\r\n for (const line of pickupCartLines) {\r\n const product: SimpleProduct | undefined = products.find(x => x.RecordId === line.ProductId);\r\n cartLines.push({ cartLine: line, product });\r\n }\r\n this.setState({ shippingGroups: cartLines });\r\n\r\n } catch (error) {\r\n // @ts-ignore\r\n this.props.telemetry.error(error);\r\n this.setState({ shippingGroups: [] });\r\n }\r\n };\r\n\r\n @action\r\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n this._clearAddressFields();\r\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\r\n const timeout = 0;\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\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 }, timeout);\r\n\r\n };\r\n\r\n /**\r\n * Method to clear address fields.\r\n */\r\n @action\r\n private readonly _clearAddressFields = (): void => {\r\n const addressFormatItem = this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId);\r\n for (const formatAddress of addressFormatItem) {\r\n if (this.addUpdateAddress[formatAddress.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(formatAddress.name)) {\r\n this.addressFormat[formatAddress.name] = '';\r\n }\r\n }\r\n this._clearValidation();\r\n };\r\n\r\n /**\r\n * Method to clear validation.\r\n */\r\n @action\r\n private readonly _clearValidation = (): void => {\r\n this.validationError = {};\r\n };\r\n\r\n public async componentDidMount(): Promise {\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.checkout.then(() => {\r\n this._setDefaultCountryRegionId();\r\n this._initModuleState();\r\n });\r\n\r\n reaction(\r\n () => this.countryRegionId,\r\n () => {\r\n this._getStateProvinces();\r\n }\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 const { defaultCounty } = this.props.config;\r\n this.autoSuggest = new AutoSuggest(telemetry, options, channel?.BingMapsApiKey, defaultCounty || channel?.ChannelCountryRegionISOCode, channel?.DefaultLanguageId);\r\n\r\n // Customer doesn't have any address. Then add view will be loaded directly. Code for the same to handle that\r\n if (this.props.data.storeSelectorStateManager.result && (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)) {\r\n await this.autoSuggest._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi && (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 () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\r\n async () => {\r\n await this._attachMapAutoSuggest();\r\n }\r\n );\r\n }\r\n await this._initPickupGroup();\r\n this._getStateProvinces();\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 | null {\r\n if (!this._canShip()) {\r\n return null;\r\n }\r\n\r\n const { config, renderView } = 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 addressListSelectedAddress: this.addressListSelectedAddress,\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 isShowAddress: this.currentOperation === AddressOperation.Show && this.selectedAddress,\r\n isShowAddresList: this.currentOperation === AddressOperation.List && this.customerAddresses.length > 0,\r\n isShowAddOrUpdateAddress:\r\n this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update\r\n },\r\n CheckoutShippingAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-shipping-address', config.className)\r\n },\r\n showAddress: this._renderShowAddress(),\r\n showAddressSelect: this._renderSelectAddress(),\r\n deliveryNotes: this._renderDeliveryNotes(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\r\n cartLineImages: undefined\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Method to get cartlines for delivery.\r\n * @returns The cartline collection.\r\n */\r\n private readonly _getCartLinesforDelivery = (): CartLine[] => {\r\n return this.props.data.checkout.result?.checkoutCart.cart.CartLines?.filter(line => this._isDelivery(line)) || [];\r\n };\r\n\r\n /**\r\n * Method to check cartline for delivery.\r\n * @param line -The cartline.\r\n * @returns True/false as per cartline delivery mode.\r\n */\r\n private readonly _isDelivery = (line: CartLine): boolean => {\r\n return this._isNotPickupMode(line.DeliveryMode) && (line.FulfillmentStoreId === undefined || line.FulfillmentStoreId === '');\r\n };\r\n\r\n /**\r\n * Method to check cartline for delivery.\r\n * @param deliveryMode -The delivery mode.\r\n * @returns True/false as per cartline delivery mode.\r\n */\r\n private readonly _isNotPickupMode = (deliveryMode: string | undefined): boolean => {\r\n const pickupDeliveryModeCode = this.props.context.request.channel?.PickupDeliveryModeCode;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const { channelDeliveryOptionConfig, featureState } = this.props.data;\r\n const retailMultiplePickUpOptionEnabled = featureState.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)?.IsEnabled;\r\n if (retailMultiplePickUpOptionEnabled && deliveryMode !== undefined) {\r\n const pickupDeliveryMode = channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.some(pickupMode => pickupMode !== deliveryMode);\r\n return pickupDeliveryMode !== undefined ? pickupDeliveryMode : false;\r\n }\r\n return deliveryMode !== undefined && pickupDeliveryModeCode !== undefined && (deliveryMode !== pickupDeliveryModeCode);\r\n };\r\n\r\n /**\r\n * Method to check cartline for delivery.\r\n * @param channelId -The channelid.\r\n * @param cartLines -Cartline collections.\r\n * @returns Collection of SimpleProduct.\r\n */\r\n private readonly _getProductsByCartLines = async (channelId: number, cartLines: CartLine[]): Promise => {\r\n const actionContext = this.props.context.actionContext;\r\n const productInputs = cartLines.filter(line => !ObjectExtensions.isNullOrUndefined(line.ProductId))\r\n .map(line => new ProductInput(line.ProductId || 0, actionContext.requestContext.apiSettings, channelId));\r\n return getSimpleProducts(productInputs, actionContext);\r\n };\r\n\r\n /**\r\n * Method to render add/update address.\r\n * @returns Address app/update props.\r\n */\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n const addressFormat = this.currentOperation === AddressOperation.Add && this.addressCommon.isAuthenticatedFlow() ? this.addressFormat : this.addressFormat;\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n hasError: this.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n onSave: this.onSubmit,\r\n\r\n onCancel: !this.selectedAddress && !this.addressCommon.isAuthenticatedFlow() ? () => {} : this._resetView\r\n });\r\n };\r\n\r\n private _renderDeliveryNotes =(): JSX.Element => {\r\n const {deliveryNotes} = this.state;\r\n return (\r\n
\r\n {/* {(selectedOption === deliveryType.delivery || selectedOption === deliveryType.express) && (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update || this.currentOperation === AddressOperation.List) && ( */}\r\n {(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update || this.currentOperation === AddressOperation.List) && (\r\n )}\r\n {/* {(selectedOption === deliveryType.delivery || selectedOption === deliveryType.express) && this.currentOperation === AddressOperation.Show && */}\r\n {this.currentOperation === AddressOperation.Show &&\r\n
\r\n {deliveryNotes}\r\n
\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _onEditDeliveryNotes = (event: React.ChangeEvent): void => {\r\n const textArea: HTMLTextAreaElement | null = this.deliveryNotesRef && this.deliveryNotesRef.current && this.deliveryNotesRef.current;\r\n const deliveryNotes = this.deliveryNotesRef && this.deliveryNotesRef.current && this.deliveryNotesRef.current.value || '';\r\n const text: string = deliveryNotes;\r\n textArea!.value = text;\r\n this.setState({ deliveryNotes: text });\r\n }\r\n\r\n /**\r\n * Method to render select address.\r\n * @returns Select address props.\r\n */\r\n private readonly _renderSelectAddress = (): IAddressSelectProps => {\r\n return AddressSelect({\r\n addressFormat: this.addressFormat,\r\n addresses: this.customerAddresses,\r\n resources: this.resources,\r\n addressPurposes: this.addressPurposes,\r\n selectedAddress: this.addressListSelectedAddress,\r\n onAddressOptionChange: this._onAddressOptionChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n telemetryContent: this.telemetryContent,\r\n onAddAddress: this._goToAddAddress,\r\n onSave: this._onSelectAddress,\r\n\r\n onCancel: !this.selectedAddress ? () => {} : this._resetView\r\n });\r\n };\r\n\r\n /**\r\n * Method to render show address.\r\n * @returns Show address props.\r\n */\r\n private _renderShowAddress(): IAddressShowProps | null {\r\n if (this.selectedAddress) {\r\n return AddressShow({\r\n address: this.selectedAddress,\r\n addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''),\r\n addressPurposes: this.addressPurposes\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to render map auto suggest.\r\n */\r\n private readonly _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 /**\r\n * Method gets called on address option change.\r\n * @param event - To get current option.\r\n */\r\n private readonly _onAddressOptionChange = (event: React.ChangeEvent) => {\r\n const addressRecordId = event.currentTarget.value;\r\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\r\n if (selectedAddress) {\r\n this.addressListSelectedAddress = selectedAddress;\r\n }\r\n };\r\n\r\n private _getExtensionPropertyValue = (fieldName: string) => {\r\n const value = this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties &&\r\n this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties?.filter(p=>p.Key === fieldName);\r\n if (value && value?.length > 0) {\r\n return value[0].Value?.StringValue || undefined;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Method to render map auto suggest.\r\n * @param name - Address name field.\r\n * @param value - Address name value field.\r\n */\r\n private readonly onAddressAddUpdate = (name: string, value: string | boolean) => {\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 /**\r\n * Method to get called on address update change.\r\n * @param event - Input element.\r\n */\r\n private readonly _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 /**\r\n * Method to get called on address update dropdown change.\r\n * @param event - Select element.\r\n */\r\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\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 /**\r\n * Method to get called on address update submit.\r\n */\r\n private readonly _onAddressAddUpdateSubmit = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n return;\r\n }\r\n\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n response =\r\n 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.isUpdating = true;\r\n this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n this._onAddOrUpdateSuccess(result);\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n this._updateModuleState();\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Method to get called on country change.\r\n * @param countryRegionId - Country region id.\r\n */\r\n private readonly _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 /**\r\n * Method to get all address format exclude list.\r\n * @returns Collection of address items.\r\n */\r\n private readonly _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 /**\r\n * Method to get all state/provinces.\r\n */\r\n private readonly _getStateProvinces = (): void => {\r\n if (\r\n !this.countryRegionId ||\r\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n return;\r\n }\r\n\r\n this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n set(this.addUpdateAddress, { State: '' });\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n });\r\n };\r\n\r\n /**\r\n * Method to set default country region id.\r\n */\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const { defaultCounty } = this.props.config;\r\n const market = request && request.channel && request.channel.ChannelCountryRegionISOCode;\r\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, defaultCounty || market);\r\n }\r\n\r\n /**\r\n * Method to get default address region id.\r\n * @returns - Address object from existing addresses.\r\n */\r\n private readonly _getDefaultAddress = (): Address | undefined => {\r\n if (this.customerAddresses) {\r\n const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\r\n return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\r\n }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Method to initialize all module state.\r\n */\r\n private readonly _initModuleState = (): void => {\r\n this.props.moduleState.init({\r\n status: this._canShip() ? 'updating' : 'disabled',\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit\r\n });\r\n\r\n if (this._canShip()) {\r\n const defaultAddress = this.props.data.checkout.result?.checkoutCart.cart.ShippingAddress ??\r\n this._getShippingAddressFromCartLines() ?? this._getDefaultAddress();\r\n if (defaultAddress && !this.addressCommon.isEmpty(defaultAddress)) {\r\n this._updateCurrentOperation(AddressOperation.Show, defaultAddress);\r\n this._setShippingAddress(defaultAddress, true);\r\n this._updateModuleState();\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on submit address.\r\n */\r\n private readonly onSubmit = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._onAddressAddUpdateSubmit();\r\n break;\r\n case AddressOperation.List:\r\n this._onSelectAddress();\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on cancel.\r\n */\r\n private readonly onCancel = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._clearAddressFields();\r\n if (!(!this.selectedAddress && !this.addressCommon.isAuthenticatedFlow())) {\r\n this.setState({\r\n deliveryNotes: this._getExtensionPropertyValue('DELIVERYNOTES') || ''\r\n });\r\n this._resetView();\r\n }\r\n\r\n break;\r\n case AddressOperation.List:\r\n if (this.selectedAddress) {\r\n this.setState({\r\n deliveryNotes: this._getExtensionPropertyValue('DELIVERYNOTES') || ''\r\n });\r\n this._resetView();\r\n }\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on edit address.\r\n */\r\n\r\n private readonly onEdit = (): void => {\r\n if (this.addressCommon.isAuthenticatedFlow() && this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.List, this.shippingAddress);\r\n } else if (this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.Update, this.shippingAddress);\r\n }\r\n\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * Method get all shipping address from cartlines.\r\n * @returns - Address of cartlines.\r\n */\r\n private readonly _getShippingAddressFromCartLines = (): Address | undefined => {\r\n const { request } = this.props.context;\r\n const { channelDeliveryOptionConfig } = this.props.data;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n\r\n const cartLines = this.retailMultiplePickUpOptionEnabled ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(deliveryMode => deliveryMode === cartLine.DeliveryMode) && cartLine.DeliveryMode !== emailDeliveryModeCode) : cartLine)\r\n ) : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode) : cartLine)\r\n );\r\n\r\n if (cartLines && cartLines.length > 0) {\r\n return cartLines[0].ShippingAddress;\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Method to check if checkout cartlines are available fro shipping.\r\n * @returns - True/fale as per the delivery mode.\r\n */\r\n private readonly _canShip = (): boolean => {\r\n const { checkout, channelDeliveryOptionConfig } = this.props.data;\r\n const { request } = this.props.context;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n if (!checkout.result || !request.channel || checkout.result.checkoutCart.isEmpty || checkout.result.checkoutCart.hasInvoiceLine) {\r\n return false;\r\n }\r\n\r\n // @ts-expect-error: Type-checker not realizing above request.channel check\r\n return this.retailMultiplePickUpOptionEnabled ? checkout.result.checkoutCart.cart.CartLines?.some(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(deliveryMode => deliveryMode === cartLine.DeliveryMode) &&\r\n cartLine.DeliveryMode !== emailDeliveryModeCode) : cartLine)\r\n ) : checkout.result.checkoutCart.cart.CartLines?.some(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== pickupDeliveryModeCode &&\r\n cartLine.DeliveryMode !== emailDeliveryModeCode) : cartLine)\r\n );\r\n };\r\n\r\n /**\r\n * Method get called on select address.\r\n */\r\n private readonly _onSelectAddress = () => {\r\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\r\n this._setShippingAddress(this.addressListSelectedAddress);\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * Method get called on goto add address.\r\n */\r\n private readonly _goToAddAddress = () => {\r\n this._setDefaultCountryRegionId();\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n };\r\n\r\n /**\r\n * Method get called on add/update success.\r\n * @param response - Retail api response.\r\n */\r\n private readonly _onAddOrUpdateSuccess = (response: IAddressResponse) => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n\r\n if (response.address) {\r\n this._updateCurrentOperation(AddressOperation.Show, response.address);\r\n this._setShippingAddress(response.address);\r\n this._updateModuleState();\r\n }\r\n };\r\n\r\n private _updateExtensionProps= async(isInitMode: boolean) => {\r\n if(!isInitMode) {\r\n const {deliveryNotes} = this.state;\r\n\r\n // FIX CAS-177772-Z7R0: Remove store data from non NZ order\r\n await this.props.data.checkout.result?.checkoutCart.updateExtensionProperties({\r\n newExtensionProperties: [\r\n {Key:'DELIVERYNOTES', Value: {StringValue: deliveryNotes }},\r\n // {Key:'DELIVERYTYPE', Value: {StringValue: selectedOption }},\r\n // {Key:'DeliveryOption', Value: {StringValue: selectedOption }},\r\n ]\r\n });\r\n \r\n }\r\n };\r\n\r\n\r\n /**\r\n * Method get called on set Shipping Address.\r\n * @param address - Retail Api address result.\r\n */\r\n private readonly _setShippingAddress = (address: Address, isInitMode: boolean = false): void => {\r\n if (this.props.data.checkout.result) {\r\n const newShippingAddress = { ...address };\r\n\r\n if (address.ThreeLetterISORegionName && !newShippingAddress.TwoLetterISORegionName) {\r\n newShippingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\r\n }\r\n\r\n this.props.data.checkout.result.updateShippingAddress({ newShippingAddress });\r\n this.props.data.checkout.result.checkoutCart.updateShippingAddress({ newShippingAddress })\r\n .catch(error => {\r\n this.props.telemetry.error(error);\r\n });\r\n \r\n this._updateExtensionProps(isInitMode)\r\n }\r\n };\r\n\r\n\r\n\r\n @computed get shippingAddress(): Address | undefined {\r\n return this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress;\r\n }\r\n\r\n /**\r\n * Method get called on reset view.\r\n */\r\n private readonly _resetView = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._updateCurrentOperation(\r\n this.addressCommon.isAuthenticatedFlow() ? AddressOperation.List : AddressOperation.Show,\r\n this.shippingAddress\r\n );\r\n break;\r\n default:\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n }\r\n this._updateModuleState();\r\n };\r\n\r\n private readonly _updateCurrentOperation = (operation: AddressOperation, selectedAddress?: Address) => {\r\n this.currentOperation = operation;\r\n this.selectedAddress = selectedAddress;\r\n\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n this.addUpdateAddress = { ...this.selectedAddress } || {};\r\n set(this.addUpdateAddress, {\r\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType\r\n });\r\n } else if (this.currentOperation === AddressOperation.List) {\r\n this.addressListSelectedAddress = { ...this.selectedAddress } || {};\r\n }\r\n };\r\n\r\n private readonly _updateModuleState = () => {\r\n if (this.currentOperation === AddressOperation.Show) {\r\n this.props.moduleState.onReady();\r\n } else if (this.isUpdating) {\r\n this.props.moduleState.onPending();\r\n } else {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutShippingAddress;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/citta-address/common';\r\nimport { IAddressSelectItem, IAddressSelectProps } from '../../common/citta-address/common';\r\nimport { IAddressShowItem, IAddressShowProps } from '../../common/citta-address/common';\r\nimport { ICheckoutShippingAddressViewProps } from './citta-checkout-shipping-address-intl';\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 AddressSelect: React.FC = ({\r\n SelectAddress,\r\n addButton,\r\n items,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n\r\n return (\r\n \r\n {addButton}\r\n {items && items.map((item: IAddressSelectItem) => {\r\n const SelectItem = item.SelectItem;\r\n return (\r\n {item.input}\r\n \r\n );\r\n })}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst sortArray = (arr1: any[], arr2: any[]) => {\r\n arr2.sort((a, b) => {\r\n const aKey = a.key;\r\n const bKey = b.key;\r\n return arr1.indexOf(aKey) - arr1.indexOf(bKey);\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 //@ts-ignore\r\n countriesList\r\n}) => {\r\n // re-order the address...\r\nconst order = [\"Name\", \"ThreeLetterISORegionName\", \"StreetNumber\", \"Street\", \"DistrictName\", \"City\", \"State\", \"ZipCode\", \"BuildingCompliment\", \"Phone\"]\r\nsortArray(order, items);\r\nlet country: any = items.find(item => item.key === 'ThreeLetterISORegionName');\r\n\r\nif (countriesList && countriesList.length && country && country.input && country.input.props.displayData) {\r\n let res = country.input.props.displayData.filter((countryData: any) => countriesList.indexOf(countryData.key) !== -1)\r\n country.input.props.displayData = res;\r\n}\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n if (item.key !== \"StreetNumber\") {\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 return null;\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutShippingAddressView: React.FC = props => {\r\n const { CheckoutShippingAddress, viewState, showAddress, showAddressSelect, showAddOrUpdateAddress, cartLineImages,deliveryNotes } = props;\r\n /* @ts-ignore */\r\n const { countriesList, fieldsToHide } = props.config;\r\n\r\n return (\r\n \r\n {cartLineImages}\r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddresList && }\r\n {/* @ts-ignore */}\r\n {viewState.isShowAddOrUpdateAddress && }\r\n {deliveryNotes}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutShippingAddressView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { AddressFormat } from '../address-format';\r\nimport { IAddressResource, IAddressResponse } 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 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 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 },\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, addressPurposes }),\r\n error: {\r\n Error: { className: `${className}-error` },\r\n isShowError: !!isShowError,\r\n title: ,\r\n message: \r\n },\r\n isShowPrimaryButton: showPrimaryButton,\r\n\r\n primaryButton: (\r\n {\r\n onUpdatePrimaryAddress(address);\r\n }\r\n }\r\n }\r\n />\r\n ),\r\n editButton: (\r\n {\r\n onEditAddress(address);\r\n },\r\n role: 'link'\r\n }\r\n }\r\n />\r\n ),\r\n removeButton: (\r\n {\r\n onRemoveAddress(address);\r\n },\r\n role: 'link'\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 } = 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 emptyListMessage:

\r\n {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"],"names":["AccountManagementAddress","React","constructor","props","super","countryRegionId","defaultAddressType","_renderAddOrUpdateAddress","AddressAddUpdate","isUpdating","this","resources","addressType","AddressType","Shipping","addressFormat","getAddressFormat","addUpdateAddress","ThreeLetterISORegionName","defaultCountryRegionId","selectedAddress","validationError","addressActionResponse","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","stateProvinceInfo","telemetryContent","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","onSave","_onAddressAddUpdateSubmit","onCancel","_resetView","_renderListAddress","config","AddressList","addresses","customerAddresses","addressPurposes","heading","primaryAddressSectionHeading","otherAddressSectionHeading","contextRequest","context","request","onEditAddress","_goToEditAddress","onRemoveAddress","_onRemoveAddress","onAddAddress","_goToAddAddress","onUpdatePrimaryAddress","_onSubmitUpdatePrimaryAddress","_attachMapAutoSuggest","async","data","storeSelectorStateManager","result","_this$autoSuggest","isMapApiLoaded","autoSuggest","attachAutoSuggest","_onSuggestionSelected","_clearAddressFields","address","getTranformedAddress","set","Street","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","forEach","format","_this$autoSuggest2","undefined","name","excludedAddressFields","includes","_clearValidation","onAddressAddUpdate","value","validateAddressFormat","event","target","type","checked","replace","RegExp","AddressItemType","AddressTypeValue","_onCountryChange","_onAddressUpdate","response","onSuccess","then","hasError","addressCommon","isAuthenticatedFlow","currentOperation","AddressOperation","Update","updateCustomerAddress","addCustomerAddress","Promise","resolve","_onAddOrUpdateSuccess","_this$autoSuggest3","twoLetterISORegionName","getTwoLetterISORegionName","TwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","addressFormatExcludeList","showAddressType","push","IsPrimary","_getStateProvinces","Add","getStateProvinces","some","state","StateId","_updateCurrentOperation","operation","updateCustomerPrimaryAddress","_onUpdatePrimaryAddressSuccess","_objectSpread","Deactivate","_setDefaultCountryRegionId","List","telemetry","countryRegions","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","telemetryPageName","friendlyName","actionContext","requestContext","channel","autoSuggestionEnabled","autoSuggestOptions","reaction","BingMapsApiKey","error","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","className","viewState","isShowAddresList","isShowAddOrUpdateAddress","AccountAddressManagement","moduleProps","classnames","showAddressList","showAddOrUpdateAddress","market","getDefaultCountryRegionId","__decorate","observable","action","observer","AddressShow","_ref","AddressDetail","items","Node","Object","assign","map","item","description","_ref2","isShowList","Item","key","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","_ref4","AddressForm","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","Module","BusinessAccountAddress","excludedList","Name","_resetAddressFields","addressFormatItem","displayType","AddressItemDisplayType","Input","Checkbox","Company","_updateAddress","_updateCountryRegionId","updateForm","isRequired","cleanValue","_isEmpty","_isInputRequired","addressItemValue","validationRules","length","validationRule","AddressValidationRuleType","Required","countryStates","componentDidMount","resetAddress","CheckoutShippingAddress","_this","_data$featureState$re","addressListSelectedAddress","multiplePickupStoreSwitchName","retailMultiplePickUpOptionEnabled","_initPickupGroup","pickupCartLines","_getCartLinesforDelivery","cartLines","_this$props$data$chec","products","_getProductsByCartLines","checkout","checkoutCart","cart","ChannelId","line","product","find","x","RecordId","ProductId","cartLine","setState","shippingGroups","formatAddress","_this$props$data$chec2","CartLines","filter","_isDelivery","_isNotPickupMode","DeliveryMode","FulfillmentStoreId","deliveryMode","_this$props$context$r","_featureState$result","pickupDeliveryModeCode","PickupDeliveryModeCode","channelDeliveryOptionConfig","featureState","feature","IsEnabled","_channelDeliveryOptio","pickupDeliveryMode","PickupDeliveryModeCodes","pickupMode","channelId","productInputs","ObjectExtensions","isNullOrUndefined","ProductInput","apiSettings","getSimpleProducts","hasExternalSubmitGroup","moduleState","onSubmit","_renderDeliveryNotes","deliveryNotes","ref","deliveryNotesRef","placeholder","deliveryNotesPlaceHolderText","onChange","_onEditDeliveryNotes","Show","textArea","current","text","_renderSelectAddress","AddressSelect","onAddressOptionChange","_onAddressOptionChange","_onSelectAddress","addressRecordId","currentTarget","toString","_getExtensionPropertyValue","fieldName","_this$props$data$chec3","_this$props$data$chec4","ExtensionProperties","p","Key","_value$0$Value","Value","StringValue","_updateModuleState","_getDefaultAddress","_initModuleState","init","status","_canShip","onEdit","_this$props$data$chec5","_this$props$data$chec6","defaultAddress","ShippingAddress","_getShippingAddressFromCartLines","isEmpty","_setShippingAddress","shippingAddress","emailDeliveryModeCode","EmailDeliveryModeCode","_channelDeliveryOptio2","_checkout$result$chec","_checkout$result$chec2","hasInvoiceLine","_channelDeliveryOptio3","_updateExtensionProps","isInitMode","_this$props$data$chec7","updateExtensionProperties","newExtensionProperties","arguments","newShippingAddress","updateShippingAddress","catch","onReady","onPending","onUpdating","defaultCounty","isShowAddress","showAddress","_renderShowAddress","showAddressSelect","cartLineImages","computed","withModuleState","SelectAddress","SelectItem","countriesList","sortArray","arr1","sort","a","b","aKey","bKey","indexOf","country","displayData","res","countryData","fieldsToHide","getButtonAriaLabel","ariaLabel","addressName","getAddressList","showPrimaryButton","errorTitle","errorMessage","Heading","isSelectedAddress","AddressErrorTitleComponent","AddressErrorMessageComponent","AddressButtonComponent","classname","disabled","addressPrimaryButtonText","addressPrimaryButtonAriaLabel","onClick","addressEditButtonText","addressEditButtonAriaLabel","role","addressRemoveButtonText","addressRemoveButtonAriaLabel","getPrimaryAddressList","primaryAddresses","getOtherAddressList","otherAddresses","Msdyn365","tag","headingTag","editProps","addressEmptyListAddressMessage","addressAddButtonText","addressAddButtonAriaLabel"],"sourceRoot":""}