{"version":3,"file":"static/js/5946c09e5a9d5e89ead0.bundle.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/modules/c-checkout-billing-address/c-checkout-billing-address.tsx?d8e7","webpack://msdyn365.commerce.online/./src/modules/c-checkout-billing-address/c-checkout-billing-address.view.tsx?6da1","webpack://msdyn365.commerce.online/./lib/c-checkout-billing-address/module-registration.js?277b","webpack://msdyn365.commerce.online/./src/modules/account-management-address/account-management-address.tsx?27e7","webpack://msdyn365.commerce.online/./src/modules/account-management-address/account-management-address.view.tsx?8c9f","webpack://msdyn365.commerce.online/./src/modules/business-account-address/business-account-address.tsx?299e","webpack://msdyn365.commerce.online/./src/modules/business-account-address/business-account-address.view.tsx?5078","webpack://msdyn365.commerce.online/external var \"React\"?0d3b","webpack://msdyn365.commerce.online/external var \"ReactDOM\"?853b"],"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\n/* eslint-disable no-duplicate-imports */\r\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\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 '@msdyn365-commerce-modules/address';\r\nimport { IAutoSuggestOptions } from '@msdyn365-commerce-modules/address';\r\nimport { AddressCommon } from '@msdyn365-commerce-modules/address';\r\nimport { AddressFormat } from '@msdyn365-commerce-modules/address';\r\nimport { AddressItemType } from '@msdyn365-commerce-modules/address';\r\nimport { AddressMetaData } from '@msdyn365-commerce-modules/address';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '@msdyn365-commerce-modules/address';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { AddressBillingCheckbox } from '@msdyn365-commerce-modules/address';\r\nimport { AddressBillingHeading } from '@msdyn365-commerce-modules/address';\r\nimport { AddressShow, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { ICCheckoutBillingAddressData } from './c-checkout-billing-address.data';\r\nimport { ICCheckoutBillingAddressProps } from './c-checkout-billing-address.props.autogenerated';\r\n\r\n/**\r\n * Props interface.\r\n */\r\nexport interface IProps extends ICCheckoutBillingAddressProps, IModuleStateProps {}\r\n\r\n/**\r\n * Checkout billing address view state interface.\r\n */\r\nexport interface ICheckoutBillingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n isShowSameAsShippingCheckbox: boolean;\r\n}\r\n\r\n/**\r\n * Checkout billing address view props interface.\r\n */\r\nexport interface ICheckoutBillingAddressViewProps extends IProps {\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 validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutBillingAddressViewState;\r\n CheckoutBillingAddress: IModuleProps;\r\n sameAsShippingCheckbox: React.ReactNode;\r\n heading: React.ReactNode;\r\n showAddress: IAddressShowProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutBillingAddress component.\r\n * @extends {React.PureComponent>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutBillingAddress extends React.Component {\r\n @observable private currentOperation: AddressOperation;\r\n\r\n @observable private isBillingAddressSameAsShipping: boolean;\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 validationError: object;\r\n\r\n @observable private readonly addressActionResponse?: IAddressResponse;\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat: AddressFormat;\r\n\r\n private countryRegions: CountryRegionInfo[] = [];\r\n\r\n private addressPurposes: AddressPurpose[] = [];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 6; // Default to Home\r\n\r\n // private addRenderRef: React.RefObject;\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n private autoSuggest?: AutoSuggest;\r\n\r\n public constructor(props: IProps) {\r\n super(props);\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.addUpdateAddress = {};\r\n this.validationError = {};\r\n this.isBillingAddressSameAsShipping = false;\r\n this.resources = resources;\r\n this.currentOperation = AddressOperation.List;\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\r\n this.addressPurposes\r\n );\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n // This.addRenderRef = React.createRef();\r\n }\r\n\r\n /**\r\n * On suggestion selected.\r\n * @param result - The suggestion result.\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 * Clear address fields.\r\n */\r\n @action\r\n private readonly _clearAddressFields = (): void => {\r\n const addressFormatItem = this.addressFormat.getAddressFormat(\r\n this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n );\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 /**\r\n * 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: { channel }\r\n }\r\n },\r\n config: { autoSuggestionEnabled, autoSuggestOptions }\r\n } = this.props;\r\n\r\n // Initializing data props\r\n this._dataInitialize(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 reaction(\r\n () => this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress,\r\n shippingAddress => {\r\n if (this.props.moduleState.isUpdating) {\r\n if (shippingAddress && this.isBillingAddressSameAsShipping) {\r\n this.isBillingAddressSameAsShipping = true;\r\n this._updateCurrentOperation(AddressOperation.Show, shippingAddress);\r\n } else if (shippingAddress && this.isBillingAddressSameAsShipping) {\r\n this._updateCurrentOperation(AddressOperation.Show, shippingAddress);\r\n }\r\n }\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.isBillingAddressRequried,\r\n isBillingAddressRequried => {\r\n if (isBillingAddressRequried) {\r\n if (this.props.moduleState.isDisabled) {\r\n this.onEdit();\r\n }\r\n } else {\r\n this.props.data.checkout.result?.removeBillingAddress({});\r\n this.props.moduleState.onDisable();\r\n }\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\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(\r\n telemetry,\r\n options,\r\n channel?.BingMapsApiKey,\r\n channel?.ChannelCountryRegionISOCode,\r\n channel?.DefaultLanguageId\r\n );\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 (\r\n this.props.data.storeSelectorStateManager.result &&\r\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n await this.autoSuggest._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n\r\n reaction(\r\n () =>\r\n this.props.data.storeSelectorStateManager.result?.loadMapApi &&\r\n (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 }\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 shouldComponentUpdate(\r\n nextProps: ICCheckoutBillingAddressProps,\r\n nextState: ICheckoutBillingAddressViewState\r\n ): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n // VSI Customization start\r\n // To show billing address in any condition\r\n\r\n // if (!(this.isBillingAddressRequried)) {\r\n // return null;\r\n // }\r\n // VSI Customization start\r\n const { resources } = this.props;\r\n\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 validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n className: config.className,\r\n viewState: {\r\n isShowAddress: this.selectedAddress && this.currentOperation === AddressOperation.Show,\r\n isShowAddOrUpdateAddress: this.currentOperation !== AddressOperation.Show,\r\n isShowSameAsShippingCheckbox: this.isCartContainsItemsForShipping && this.props.moduleState.isUpdating\r\n },\r\n CheckoutBillingAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-billing-address', config.className)\r\n },\r\n heading: ,\r\n\r\n sameAsShippingCheckbox: (\r\n \r\n ),\r\n showAddress: this._renderShowAddress(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * On address update.\r\n * @param name - Name.\r\n * @param value - Value.\r\n */\r\n private readonly onAddressAddUpdate = (name: string, value: string) => {\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 data initialization.\r\n * @param props -The checkout address properties.\r\n */\r\n private readonly _dataInitialize = (props: IProps): void => {\r\n const { data } = props;\r\n\r\n reaction(\r\n () => data.countryRegions.result,\r\n () => {\r\n this.countryRegions = data.countryRegions.result ?? [];\r\n }\r\n );\r\n\r\n reaction(\r\n () => data.addressPurposes.result,\r\n () => {\r\n this.addressPurposes = data.addressPurposes.result ?? [];\r\n }\r\n );\r\n\r\n reaction(\r\n () => data.countryStates.result,\r\n () => {\r\n this.stateProvinceInfo = data.countryStates.result ?? [];\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Render add or update address function.\r\n * @returns - Address add update props.\r\n */\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n return AddressAddUpdate({\r\n resources: this.resources,\r\n addressType: AddressType.Billing,\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(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n telemetryContent: this.telemetryContent,\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n onSave: this._onSubmitAddress,\r\n onCancel: this._resetView\r\n });\r\n };\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 * On country region change function.\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 * Gets address format for exclude list.\r\n * @returns - Address item type.\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 * Attach 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('#billing_addressstreet', '#billing_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n };\r\n\r\n /**\r\n * On address add update input change.\r\n * @param event - The event.\r\n */\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\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 * On address add update dropdown change.\r\n * @param event - The event.\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 * Gets 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 this.stateProvinceInfo = result;\r\n });\r\n };\r\n\r\n /**\r\n * Initialize module state.\r\n */\r\n private readonly _initModuleState = (): void => {\r\n this.props.moduleState.init({\r\n status: this.isBillingAddressRequried ? 'updating' : 'disabled',\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit\r\n });\r\n\r\n const { billingAddress, isBillingAddressSameAsShippingAddress } = this.props.data.checkout.result ?? {};\r\n\r\n if (this.isBillingAddressRequried) {\r\n if (billingAddress) {\r\n this.isBillingAddressSameAsShipping = isBillingAddressSameAsShippingAddress ?? false;\r\n this._updateCurrentOperation(AddressOperation.Show, billingAddress);\r\n this._updateModuleState();\r\n } else if (this.isCartContainsItemsForShipping) {\r\n this.isBillingAddressSameAsShipping = true;\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n } else {\r\n this.isBillingAddressSameAsShipping = false;\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Sets default country region Id.\r\n */\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request.channel?.ChannelCountryRegionISOCode;\r\n\r\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\r\n }\r\n\r\n /**\r\n * On change - Billing address same as shipping.\r\n * @param event - The event.\r\n */\r\n private readonly _onBillingAddressSameAsShippingChange = (event: React.ChangeEvent) => {\r\n this.isBillingAddressSameAsShipping = event.currentTarget.checked;\r\n\r\n if (this.isBillingAddressSameAsShipping && this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add, this.billingAddress);\r\n }\r\n };\r\n\r\n @computed private get isCartContainsItemsForShipping(): boolean {\r\n const { request } = this.props.context;\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)\r\n ?.IsEnabled;\r\n\r\n const pickupDeliveryModeCode = request.channel?.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request.channel?.EmailDeliveryModeCode;\r\n\r\n // If hasInvoiceLine is true, there are only invoices no items in cart and return false here\r\n return this.props.data.checkout.result?.checkoutCart.hasInvoiceLine\r\n ? false\r\n : retailMultiplePickUpOptionEnabled\r\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n }\r\n\r\n @computed private get billingAddress(): Address | undefined {\r\n return this.props.data.checkout.result?.billingAddress;\r\n }\r\n\r\n @computed private get shippingAddress(): Address | undefined {\r\n return this.props.data.checkout.result?.shippingAddress;\r\n }\r\n\r\n @computed private get getLoyaltyAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n return checkoutState?.loyaltyAmount ? checkoutState.loyaltyAmount : 0;\r\n }\r\n\r\n @computed private get getGiftCardTotalAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (!checkoutState || !checkoutState.giftCardExtends) {\r\n return 0;\r\n }\r\n return checkoutState.giftCardExtends.reduce((count: number, giftCard: IGiftCardExtend) => {\r\n return count + (giftCard.Balance || 0);\r\n }, 0);\r\n }\r\n\r\n @computed private get getCustomerAccountAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n const defaultAmount = 0;\r\n\r\n return checkoutState?.customerAccountAmount ?? defaultAmount;\r\n }\r\n\r\n @computed private get shouldPaidByCard(): boolean {\r\n const {\r\n data: { checkout },\r\n config\r\n } = this.props;\r\n if (!checkout.result) {\r\n return false;\r\n }\r\n\r\n const checkoutResult = checkout.result;\r\n const cart = checkoutResult.checkoutCart.cart;\r\n if (!cart || !cart.CartLines || cart.CartLines.length === 0) {\r\n return false;\r\n }\r\n\r\n const { paymentTenderType, tokenizedPaymentCard } = checkoutResult;\r\n const isPaidByOtherPaymentSource = config.paymenTenderType !== paymentTenderType && tokenizedPaymentCard;\r\n\r\n // Use payment card when it is not free or gift card balance + Loyalty amount can not cover the total amount\r\n const amountDue = (cart.TotalAmount || 0) - this.getGiftCardTotalAmount - this.getLoyaltyAmount - this.getCustomerAccountAmount;\r\n\r\n return amountDue > 0 && !isPaidByOtherPaymentSource;\r\n }\r\n\r\n @computed private get isBillingAddressRequried(): boolean {\r\n return this.shouldPaidByCard;\r\n }\r\n\r\n /**\r\n * On submit address.\r\n */\r\n private readonly _onSubmitAddress = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n this.props.moduleState.setHasError(true);\r\n return;\r\n }\r\n\r\n this._setBillingAddress(this.addUpdateAddress);\r\n this._updateCurrentOperation(AddressOperation.Show, this.addUpdateAddress);\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * On submit.\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._onSubmitAddress();\r\n break;\r\n case AddressOperation.Show:\r\n if (this.selectedAddress) {\r\n this._setBillingAddress(this.selectedAddress);\r\n this._updateCurrentOperation(AddressOperation.Show, this.selectedAddress);\r\n this._updateModuleState();\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 * 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._resetView();\r\n this._clearAddressFields();\r\n break;\r\n case AddressOperation.Show:\r\n this._resetView();\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n /**\r\n * On edit.\r\n */\r\n private readonly onEdit = (): void => {\r\n if (this.isBillingAddressSameAsShipping && this.shippingAddress && this.isCartContainsItemsForShipping) {\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add, this.billingAddress);\r\n }\r\n this.props.moduleState.onUpdating();\r\n };\r\n\r\n /**\r\n * Sets billing address.\r\n * @param address - The address.\r\n */\r\n private readonly _setBillingAddress = (address: Address): void => {\r\n if (this.props.data.checkout.result) {\r\n const newBillingAddress = { ...address };\r\n\r\n if (address.ThreeLetterISORegionName && !newBillingAddress.TwoLetterISORegionName) {\r\n newBillingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\r\n }\r\n\r\n this.props.data.checkout.result.updateBillingAddress({\r\n newBillingAddress,\r\n additionalProperties: {\r\n isBillingAddressSameAsShippingAddress: this.isBillingAddressSameAsShipping\r\n }\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Reset view.\r\n */\r\n private readonly _resetView = () => {\r\n this._updateCurrentOperation(AddressOperation.Show, this.billingAddress);\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * Update current operation.\r\n * @param operation - Address operation\r\n * @param selectedAddress - The selected address.\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, { AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType });\r\n }\r\n };\r\n\r\n /**\r\n * Updates the module state.\r\n */\r\n private readonly _updateModuleState = () => {\r\n if (this.currentOperation === AddressOperation.Show) {\r\n this.props.moduleState.onReady();\r\n } else {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutBillingAddress;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/* eslint-disable no-duplicate-imports */\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\nimport { ICheckoutBillingAddressViewProps } from './c-checkout-billing-address';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({\n AddressDetail,\n items\n}) => {\n\n return (\n \n {items.map((item: IAddressShowItem) => {\n return (\n <>\n {item.description}\n \n );\n })}\n \n );\n};\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address Heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - IAddressError.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - AddressForm Node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n {label}\n {alert}\n {input}\n );\n })}\n {hasError && \n {error.title}\n {error.message}\n }\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Checkout Billing Address View Component.\n * @param props - Props.\n * @returns - CheckoutBillingAddress Module.\n */\nconst CheckoutBillingAddressView: React.FC = props => {\n const { CheckoutBillingAddress, viewState, heading, sameAsShippingCheckbox, showAddress, showAddOrUpdateAddress } = props;\n\n return (\n \n {heading}\n {viewState.isShowSameAsShippingCheckbox && sameAsShippingCheckbox}\n {viewState.isShowAddress && }\n {viewState.isShowAddOrUpdateAddress && }\n \n );\n};\n\nexport default CheckoutBillingAddressView;\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['c-checkout-billing-address'] = {\n c: () => require('partner/modules/c-checkout-billing-address/c-checkout-billing-address.tsx'),\n $type: 'contentModule',\n da: [{name:'addressPurposes', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'countryStates', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'c-checkout-billing-address',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/c-checkout-billing-address'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|c-checkout-billing-address|c-checkout-billing-address'] = {\n c: () => require('partner/modules/c-checkout-billing-address/c-checkout-billing-address.view.tsx'),\n cn: '__local__-__local__-c-checkout-billing-address'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\nimport { format as formatNotification, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { action, observable, reaction, set } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AutoSuggest } from '../../common/address-autosuggest';\nimport { IAutoSuggestOptions } from '../../common/address-autosuggest.data';\nimport { AddressCommon } from '../../common/address-common';\nimport { AddressFormat } from '../../common/address-format';\nimport { AddressItemType } from '../../common/address-format.data';\nimport { AddressMetaData } from '../../common/address-meta-data';\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { AddressList, IAddressListProps } from '../../common/components/address-list';\nimport { IAccountManagementAddressData } from './account-management-address.data';\nimport { IAccountManagementAddressProps } from './account-management-address.props.autogenerated';\n\n/**\n * Account management address view state interface.\n */\nexport interface IAccountManagementAddressViewState {\n isShowAddresList: boolean;\n isShowAddOrUpdateAddress: boolean;\n}\n\n/**\n * Account management address view state interface.\n */\nexport interface IAccountManagementAddressViewProps extends React.Component> {\n className: string;\n currentOperation: AddressOperation;\n selectedAddress?: Address;\n addUpdateAddress: Address;\n countryRegionId: string;\n stateProvinceInfo?: StateProvinceInfo[];\n customerAddresses: Address[];\n validationError: object;\n addressActionResponse?: IAddressResponse;\n viewState: IAccountManagementAddressViewState;\n AccountAddressManagement: IModuleProps;\n isUpdating: boolean;\n showAddressList: IAddressListProps;\n showAddOrUpdateAddress: IAddressAddUpdateProps;\n screenReaderNotification: React.ReactNode;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * Address component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountManagementAddress extends React.Component> {\n @observable private currentOperation: AddressOperation;\n @observable private selectedAddress?: Address;\n @observable private countryRegionId: string = 'USA';\n @observable private stateProvinceInfo?: StateProvinceInfo[];\n @observable private customerAddresses: Address[];\n @observable private addUpdateAddress: Address;\n @observable private validationError: object;\n @observable private addressActionResponse?: IAddressResponse;\n @observable private isUpdating?: boolean;\n @observable private hasError?: boolean;\n @observable private removeAddressData?: Address;\n\n private readonly addressCommon: AddressCommon;\n private addressFormat: AddressFormat;\n private countryRegions: CountryRegionInfo[] = [];\n private addressPurposes: AddressPurpose[] = [];\n private readonly resources: IAddressResource;\n private readonly defaultAddressType: number = 6; // Default to Home\n private readonly telemetryContent: ITelemetryContent;\n private autoSuggest?: AutoSuggest;\n\n private readonly asyncCustAddressCreationFeatureName: string = 'Dynamics.AX.Application.RetailAsyncAddressCreationFeature';\n private asyncCustomerAddressCreationFeatureIsEnabled?: boolean = false;\n\n public constructor(props: IAccountManagementAddressProps) {\n super(props);\n const { context, data, resources, telemetry } = this.props;\n\n this.resources = resources;\n this.currentOperation = AddressOperation.List;\n this.countryRegions = data.countryRegions.result || [];\n this.addressPurposes = data.addressPurposes.result || [];\n this.customerAddresses = data.address.result || [];\n this.addUpdateAddress = {};\n this.validationError = {};\n this.addressCommon = new AddressCommon(context, resources, telemetry);\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\n this.addressPurposes\n );\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n },\n config: { autoSuggestionEnabled, autoSuggestOptions }\n } = this.props;\n\n // Initializing data props\n this._dataInitialize(this.props);\n\n if (this.props.data.countryRegions.result !== undefined) {\n this._setDefaultCountryRegionId();\n }\n\n reaction(\n () => this.countryRegionId,\n () => {\n this._getStateProvinces();\n }\n );\n\n reaction(\n () => this.currentOperation,\n () => {\n this._getStateProvinces();\n }\n );\n\n if (autoSuggestionEnabled) {\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\n this.autoSuggest = new AutoSuggest(\n telemetry,\n options,\n channel?.BingMapsApiKey,\n channel?.ChannelCountryRegionISOCode,\n channel?.DefaultLanguageId\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager.result?.loadMapApi !== undefined &&\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\n async () => {\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\n }\n );\n\n reaction(\n () => {\n this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\n },\n async () => {\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\n await this._attachMapAutoSuggest();\n }\n }\n );\n }\n }\n\n /**\n * Component did mount function.\n */\n public async componentDidUpdate(): Promise {\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n await this._attachMapAutoSuggest();\n }\n } else {\n this.autoSuggest?.disposeAutoSuggest();\n }\n }\n\n /**\n * Should component update function.\n * @param nextProps - Account management address props.\n * @param nextState - Next state.\n * @returns - True if component should update, false otherwise.\n */\n public shouldComponentUpdate(\n nextProps: IAccountManagementAddressProps,\n nextState: IAccountManagementAddressViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { renderView, config, resources, data } = this.props;\n const customerInformation = data.customerInformation.result;\n\n // Set the feature state value for 'Async Customer Address Creation'.\n this.asyncCustomerAddressCreationFeatureIsEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.asyncCustAddressCreationFeatureName)?.IsEnabled || false;\n\n const viewProps = {\n ...this.props,\n infoMessageBar: (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) && (\n \n ),\n currentOperation: this.currentOperation,\n selectedAddress: this.selectedAddress,\n addUpdateAddress: this.addUpdateAddress,\n countryRegionId: this.countryRegionId,\n stateProvinceInfo: this.stateProvinceInfo,\n customerAddresses: this.customerAddresses,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n isUpdating: this.isUpdating,\n hasError: this.hasError,\n className: config.className,\n viewState: {\n isShowAddresList: this.currentOperation === AddressOperation.List,\n isShowAddOrUpdateAddress: this.currentOperation !== AddressOperation.List\n },\n AccountAddressManagement: {\n moduleProps: this.props,\n className: classnames('ms-account-management-address', config.className)\n },\n showAddressList: this._renderListAddress(),\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\n screenReaderNotification: this.removeAddressData ? this._renderScreenReaderRemoveText(this.removeAddressData) : null\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * On Suggestion Selected Function.\n * @param result - Microsoft.Maps.ISuggestionResult.\n */\n @action\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\n this._clearAddressFields();\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\n set(this.addUpdateAddress, { Street: '' });\n set(this.addUpdateAddress, { ZipCode: address.ZipCode });\n set(this.addUpdateAddress, { CountyName: address.CountyName });\n set(this.addUpdateAddress, { City: address.City });\n set(this.addUpdateAddress, { State: address.State });\n set(this.addUpdateAddress, { DistrictName: address.DistrictName });\n set(this.addUpdateAddress, { FullAddress: address.FullAddress });\n\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\n setTimeout(() => {\n set(this.addUpdateAddress, { Street: address.Street });\n }, 0);\n };\n\n /**\n * Clear Address Fields.\n */\n @action\n private readonly _clearAddressFields = (): void => {\n const addressFormatItem = this.addressFormat.getAddressFormat(\n this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\n );\n addressFormatItem.forEach(format => {\n if (this.addUpdateAddress[format.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(format.name)) {\n this.addressFormat[format.name] = '';\n }\n });\n this._clearValidation();\n };\n\n /**\n * Clear Validation Function.\n */\n @action\n private readonly _clearValidation = (): void => {\n this.validationError = {};\n };\n\n /**\n * Method data initialization.\n * @param props -The account management props.\n */\n private readonly _dataInitialize = (props: IAccountManagementAddressProps): void => {\n const { data } = props;\n\n reaction(\n () => data.countryRegions.result,\n () => {\n this.countryRegions = data.countryRegions.result ?? [];\n }\n );\n\n reaction(\n () => data.addressPurposes.result,\n () => {\n this.addressPurposes = data.addressPurposes.result ?? [];\n }\n );\n\n reaction(\n () => data.address.result,\n () => {\n this.customerAddresses = data.address.result ?? [];\n }\n );\n };\n\n /**\n * Render Add Or Update Address Function.\n * @returns - AddressAddUpdate.\n */\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\n return AddressAddUpdate({\n isUpdating: this.isUpdating,\n resources: this.resources,\n addressType: AddressType.Shipping,\n addressFormat: this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\n defaultCountryRegionId: this.countryRegionId,\n defaultAddressType: this.defaultAddressType,\n selectedAddress: this.addUpdateAddress,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\n this.resources.addressStateDefaultSelectionText,\n this.stateProvinceInfo\n ),\n telemetryContent: this.telemetryContent,\n onInputChange: this._onAddressAddUpdateInputChange,\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\n onSave: this._onAddressAddUpdateSubmit,\n onCancel: this._resetView\n });\n };\n\n /**\n * Render List Address Function.\n * @returns - AddressList.\n */\n private readonly _renderListAddress = (): IAddressListProps => {\n const { config } = this.props;\n\n /**\n * Render Address title.\n * @param event - Msdyn365.ContentEditableEvent.\n */\n const handleLineItemHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n config.heading!.text = event.target.value;\n };\n const heading = config.heading && {\n text: config.heading.text,\n headingTag: config.heading.tag\n };\n\n return AddressList({\n isUpdating: this.isUpdating,\n selectedAddress: this.selectedAddress,\n addressFormat: this.addressFormat,\n addresses: this.customerAddresses,\n addressPurposes: this.addressPurposes,\n resources: this.resources,\n heading,\n primaryAddressSectionHeading: config.primaryAddressSectionHeading,\n otherAddressSectionHeading: config.otherAddressSectionHeading,\n contextRequest: this.props.context.request,\n telemetryContent: this.telemetryContent,\n handleLineItemHeadingChange,\n onEditAddress: this._goToEditAddress,\n onRemoveAddress: this._onRemoveAddress,\n onAddAddress: this._goToAddAddress,\n onUpdatePrimaryAddress: this._onSubmitUpdatePrimaryAddress,\n isAsyncCustomerAddressCreationFeatureEnabled: this.asyncCustomerAddressCreationFeatureIsEnabled || false,\n isAsyncCustomer: this.props.data.customerInformation.result?.IsAsyncCustomer || false,\n canRenderAsyncCustomerDataAsUnmodifiable: this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false\n });\n };\n\n /**\n * Attach Map Auto Suggest Function.\n */\n private readonly _attachMapAutoSuggest = async (): Promise => {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\n }\n };\n\n /**\n * On Address Add Update Function.\n * @param name - String.\n * @param value - String | Boolean | Number.\n */\n private readonly onAddressAddUpdate = (name: string, value: string | boolean | number) => {\n set(this.addUpdateAddress, { [name]: value });\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\n };\n\n /**\n * On Address Add Update Input Change.\n * @param event - Input Change Event.\n */\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\n if (event.target.type === 'checkbox') {\n this.onAddressAddUpdate(event.target.name, event.target.checked);\n } else {\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\n this.onAddressAddUpdate(event.target.name, value);\n }\n };\n\n /**\n * On Address Add Update Dropdown Change.\n * @param event - Dropdown Change Event.\n */\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\n if (event.target.name === AddressItemType[AddressItemType.AddressTypeValue]) {\n this.onAddressAddUpdate(event.target.name, +event.target.value);\n } else {\n this.onAddressAddUpdate(event.target.name, event.target.value);\n }\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\n this._onCountryChange(event.target.value);\n }\n };\n\n /**\n * On Address Update Function.\n * @param response - Promise.\n * @param onSuccess - IAddressResponse.\n */\n private readonly _onAddressUpdate = (response: Promise, onSuccess: (response: IAddressResponse) => void): void => {\n this.isUpdating = true;\n response.then(\n (result: IAddressResponse) => {\n if (result.address) {\n this.hasError = false;\n onSuccess(result);\n } else {\n this.hasError = true;\n this.addressActionResponse = result;\n }\n this.isUpdating = false;\n },\n () => {\n this.hasError = true;\n this.isUpdating = false;\n }\n );\n };\n\n /**\n * On Address Add Update Submit Function.\n */\n private readonly _onAddressAddUpdateSubmit = (): void => {\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\n return;\n }\n let response: Promise;\n if (this.addressCommon.isAuthenticatedFlow()) {\n response =\n this.currentOperation === AddressOperation.Update\n ? this.addressCommon.updateCustomerAddress(this.addUpdateAddress)\n : this.addressCommon.addCustomerAddress(this.addUpdateAddress);\n } else {\n response = Promise.resolve({ address: this.addUpdateAddress });\n }\n\n this._onAddressUpdate(response, this._onAddOrUpdateSuccess);\n };\n\n /**\n * On Country Change Function.\n * @param countryRegionId - String.\n */\n private readonly _onCountryChange = (countryRegionId: string) => {\n this.countryRegionId = countryRegionId;\n const twoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\n set(this.addUpdateAddress, { ThreeLetterISORegionName: countryRegionId });\n set(this.addUpdateAddress, { TwoLetterISORegionName: twoLetterISORegionName });\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterISORegionName);\n this._clearAddressFields();\n };\n\n /**\n * Get Address Format Exclude List Function.\n * @returns - Address Format Exclude List.\n */\n private readonly _getAddressFormatExcludeList = (): AddressItemType[] => {\n const { config } = this.props;\n const addressFormatExcludeList: AddressItemType[] = [];\n\n if (!config.showAddressType) {\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\n }\n\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\n\n return addressFormatExcludeList;\n };\n\n /**\n * Get State Provinces Function.\n */\n private readonly _getStateProvinces = (): void => {\n if (\n !this.countryRegionId ||\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\n ) {\n return;\n }\n\n this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\n\n // Reset state if selected state not found in the list.\n if (!stateInfo) {\n set(this.addUpdateAddress, { State: '' });\n }\n this.stateProvinceInfo = result;\n });\n };\n\n private _setDefaultCountryRegionId(): void {\n const { request } = this.props.context;\n const market = request && request.channel && request.channel.ChannelCountryRegionISOCode;\n\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\n }\n\n /**\n * Update CurrentOperation Function.\n * @param operation - AddressOperation.\n */\n private readonly _updateCurrentOperation = (operation: AddressOperation) => {\n this.currentOperation = operation;\n this._clearAddressFields();\n };\n\n /**\n * On Submit Update Primary Address Function.\n * @param address - Address.\n */\n private readonly _onSubmitUpdatePrimaryAddress = (address: Address): void => {\n this.selectedAddress = address;\n const response = this.addressCommon.updateCustomerPrimaryAddress(address);\n this._onAddressUpdate(response, this._onUpdatePrimaryAddressSuccess);\n };\n\n /**\n * Go To Edit Address Function.\n * @param address - Address.\n */\n private readonly _goToEditAddress = (address: Address): void => {\n this.addUpdateAddress = { ...address };\n this.countryRegionId = this.addUpdateAddress.ThreeLetterISORegionName || 'USA';\n this._updateCurrentOperation(AddressOperation.Update);\n };\n\n /**\n * On Remove Address Function.\n * @param address - Address.\n */\n private readonly _onRemoveAddress = (address: Address): void => {\n address.Deactivate = true;\n this.removeAddressData = address;\n const response = this.addressCommon.updateCustomerAddress(address);\n this._onAddressUpdate(response, this._onAddOrUpdateSuccess);\n };\n\n /**\n * Renders Notification screen reader text for removed address.\n * @param address - Address input.\n * @returns Notification for removed address.\n */\n private readonly _renderScreenReaderRemoveText = (address: Address): React.ReactNode => {\n const notification = formatNotification(this.resources.removeAddressNotification!, `${address.Name!}`);\n return (\n
\n {notification}\n
\n );\n };\n\n /**\n * Go To Add Address Function.\n */\n private readonly _goToAddAddress = (): void => {\n this.addUpdateAddress = {};\n this._setDefaultCountryRegionId();\n set(this.addUpdateAddress, { ThreeLetterISORegionName: this.countryRegionId });\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\n this._setDefaultCountryRegionId();\n this._updateCurrentOperation(AddressOperation.Add);\n };\n\n /**\n * On Add Or Update Success Function.\n * @param response - IAddressResponse.\n */\n private readonly _onAddOrUpdateSuccess = (response: IAddressResponse): void => {\n if (response.customerAddresses) {\n this.customerAddresses = response.customerAddresses;\n }\n this._resetView();\n };\n\n /**\n * On Update Primary Address Success Function.\n * @param response - IAddressResponse.\n */\n private readonly _onUpdatePrimaryAddressSuccess = (response: IAddressResponse): void => {\n if (response.customerAddresses) {\n this.customerAddresses = response.customerAddresses;\n }\n };\n\n /**\n * Reset view function.\n */\n private readonly _resetView = (): void => {\n this.selectedAddress = undefined;\n this._updateCurrentOperation(AddressOperation.List);\n };\n}\n\nexport default AccountManagementAddress;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressList, IAddressListItem, IAddressListProps } from '../../common/components/address-list';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { IAccountManagementAddressViewProps } from './account-management-address';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\n return (\n \n {items.map((item: IAddressShowItem) => {\n return <>{item.description};\n })}\n \n );\n};\n\n/**\n * Address List Component.\n * @param param0 - Root param.\n * @param param0.List - Address list.\n * @param param0.isShowList - Boolean.\n * @param param0.heading - Address heading.\n * @param param0.items - IAddressListItem[].\n * @returns - AddressListComponent Node.\n */\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\n if (!isShowList) {\n return null;\n }\n\n return (\n \n {heading}\n {items.map((item: IAddressListItem) => {\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\n const { Error, isShowError, title, message } = error;\n return (\n \n \n {isShowError && (\n \n {title}\n {message}\n \n )}\n {isShowPrimaryButton && primaryButton}\n {editButton}\n {removeButton}\n \n );\n })}\n \n );\n};\n\n/**\n * Address Lists Component.\n * @param param0 - Root param.\n * @param param0.ListAddress - List address.\n * @param param0.heading - List heading.\n * @param param0.isShowEmptyListMessage - Boolean.\n * @param param0.emptyListMessage - Empty list message.\n * @param param0.addButton - Add button.\n * @param param0.primaryAddressList - Primary address.\n * @param param0.otherAddressList - Other address.\n * @returns Address Lists Component Node.\n */\nconst AddressLists: React.FC = ({\n ListAddress,\n heading,\n isShowEmptyListMessage,\n emptyListMessage,\n addButton,\n primaryAddressList,\n otherAddressList\n}) => {\n return (\n \n {heading}\n {isShowEmptyListMessage && emptyListMessage}\n {addButton}\n \n \n \n );\n};\n\n/**\n * AddressAddUpdateComponent.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - Error message.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns Address add update component node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Account Management Address View Component.\n * @param props - Props.\n * @returns - AccountAddressManagement Module.\n */\nconst AccountManagementAddressView: React.FC = props => {\n const {\n AccountAddressManagement,\n infoMessageBar,\n viewState,\n showAddressList,\n showAddOrUpdateAddress,\n screenReaderNotification\n } = props;\n\n return (\n \n {infoMessageBar}\n {viewState.isShowAddresList && }\n {viewState.isShowAddOrUpdateAddress && }\n {screenReaderNotification}\n \n );\n};\n\nexport default AccountManagementAddressView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction, set } from 'mobx';\nimport * as React from 'react';\n\nimport { AddressCommon } from '../../common/address-common';\nimport { AddressFormat } from '../../common/address-format';\nimport { AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem } from '../../common/address-format.data';\nimport { AddressMetaData } from '../../common/address-meta-data';\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IBusinessAccountAddressData } from './business-account-address.data';\nimport { IBusinessAccountAddressProps } from './business-account-address.props.autogenerated';\n\n/**\n * Interface for IBusinessAccountAddressExtendedProps.\n */\nexport interface IBusinessAccountAddressExtendedProps extends IBusinessAccountAddressProps {\n hasError: boolean;\n isRequired: boolean;\n resetAddress: boolean;\n updateForm(errors: boolean, currentAddress?: Address): void;\n}\n\n/**\n * Interface for IBusinessAccountAddressState.\n */\nexport interface IBusinessAccountAddressState {\n countryId?: string;\n states?: StateProvinceInfo[];\n}\n\n/**\n * Interface for IBusinessAccountAddressViewProps.\n */\nexport interface IBusinessAccountAddressViewProps {\n className: string;\n currentOperation: AddressOperation;\n selectedAddress?: Address;\n addUpdateAddress: Address;\n addressListSelectedAddress: Address;\n countryRegionId: string;\n stateProvinceInfo?: StateProvinceInfo[];\n customerAddresses: Address[];\n validationError: object;\n addressActionResponse?: IAddressResponse;\n BusinessAccountAddress: IModuleProps;\n isUpdating: boolean;\n hasError: boolean;\n showAddOrUpdateAddress: IAddressAddUpdateProps;\n}\n\n/**\n *\n * Address component.\n * @extends {React.Component, IBusinessAccountAddressState>}\n */\nclass BusinessAccountAddress extends React.Component {\n @observable private addUpdateAddress: Address;\n\n @observable private countryRegionId: string = 'USA';\n\n @observable private stateProvinceInfo?: StateProvinceInfo[];\n\n @observable private readonly validationError: object;\n\n private readonly addressActionResponse?: IAddressResponse;\n\n private readonly isUpdating?: boolean;\n\n private readonly addressCommon: AddressCommon;\n\n private addressFormat: AddressFormat;\n\n private countryRegions: CountryRegionInfo[] = [];\n\n private addressPurposes: AddressPurpose[] = [];\n\n private readonly resources: IAddressResource;\n\n private readonly defaultAddressType: number = 0; // Default to None (This value set in HQ as Business)\n\n private readonly shouldAutoFocus?: boolean = false;\n\n private readonly excludedList: AddressItemType[] = [AddressItemType.Name, AddressItemType.AddressTypeValue, AddressItemType.IsPrimary]; // Default to hiding Name and AddressType inputs\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: IBusinessAccountAddressExtendedProps) {\n super(props);\n\n const { context, data, resources, telemetry } = this.props;\n this.addUpdateAddress = {};\n this.resources = resources;\n this.countryRegions = data.countryRegions.result || [];\n this.addressPurposes = data.addressPurposes.result || [];\n this.stateProvinceInfo = data.countryStates.result || [];\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this.excludedList, props.isRequired ? undefined : []),\n this.addressPurposes\n );\n this.addressCommon = new AddressCommon(context, resources, telemetry);\n this.validationError = {};\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n // Initializing data props\n this._dataInitialize(this.props);\n\n this._setDefaultCountryRegionId();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessAccountAddressExtendedProps, nextState: IBusinessAccountAddressState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { renderView, config, hasError, resetAddress } = this.props;\n\n // Business-sign-up will pass this flag when cancel button is clicked\n if (resetAddress) {\n this._resetAddressFields();\n }\n\n const viewProps = {\n ...this.props,\n countryRegionId: this.countryRegionId,\n stateProvinceInfo: this.stateProvinceInfo,\n validationError: this.validationError,\n addressActionResponse: this.addressActionResponse,\n hasError,\n className: config.className,\n BusinessAccountAddress: {\n moduleProps: this.props,\n className: classnames('ms-business-account-address', config.className)\n },\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Reset Address.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _resetAddressFields = () => {\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\n\n addressFormat.map(addressFormatItem => {\n switch (addressFormatItem.displayType) {\n case AddressItemDisplayType.Input:\n this.addUpdateAddress[addressFormatItem.name] = '';\n break;\n case AddressItemDisplayType.Checkbox:\n this.addUpdateAddress[addressFormatItem.name] = false;\n break;\n default:\n switch (addressFormatItem.type) {\n case AddressItemType.ThreeLetterISORegionName:\n this.addUpdateAddress[addressFormatItem.name] = this.countryRegionId;\n break;\n case AddressItemType.AddressTypeValue:\n this.addUpdateAddress[addressFormatItem.name] = this.defaultAddressType;\n break;\n case AddressItemType.State:\n this.addUpdateAddress[addressFormatItem.name] = '';\n break;\n default:\n this.addUpdateAddress[addressFormatItem.name] = undefined;\n }\n }\n });\n };\n\n /**\n * Method data initialization.\n * @param props -The account management props.\n */\n private readonly _dataInitialize = (props: IBusinessAccountAddressExtendedProps): void => {\n const { data } = props;\n\n reaction(\n () => data.countryRegions.result,\n () => {\n this.countryRegions = data.countryRegions.result ?? [];\n }\n );\n\n reaction(\n () => data.addressPurposes.result,\n () => {\n this.addressPurposes = data.addressPurposes.result ?? [];\n }\n );\n\n reaction(\n () => data.countryStates.result,\n () => {\n this.stateProvinceInfo = data.countryStates.result ?? [];\n }\n );\n };\n\n // Set validationError and hasError to hide error messages since in the B2B\n // request form, no errors would visually show since user wont be able to submit\n // until form is filled and correct\n /**\n * Render Add Or Update Address Function.\n * @returns - AddressAddUpdate.\n */\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\n return AddressAddUpdate({\n isUpdating: this.isUpdating,\n resources: this.resources,\n addressType: AddressType.Company,\n addressFormat: this.addressFormat.getAddressFormat(this.countryRegionId),\n defaultCountryRegionId: this.countryRegionId,\n defaultAddressType: this.defaultAddressType,\n selectedAddress: this.addUpdateAddress,\n shouldAutoFocus: this.shouldAutoFocus,\n validationError: this.validationError,\n hasError: this.props.hasError,\n addressActionResponse: this.addressActionResponse,\n telemetryContent: this.telemetryContent,\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\n this.resources.addressStateDefaultSelectionText,\n this.stateProvinceInfo\n ),\n onInputChange: this._onAddressAddUpdateInputChange,\n onDropdownChange: this._onAddressAddUpdateDropdownChange\n });\n };\n\n /**\n * On Address Add Update Input Change Function.\n * @param event - Input event change function.\n */\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\n this._updateAddress(event.target.name, event.target.value);\n };\n\n /**\n * On Address Add Update Dropdown Change Function.\n * @param event - Change dropdown event.\n */\n private readonly _onAddressAddUpdateDropdownChange = async (event: React.ChangeEvent): Promise => {\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\n await this._updateCountryRegionId(event.target.value);\n } else {\n this._updateAddress(event.target.name, event.target.value);\n }\n };\n\n /**\n * Update Address Function.\n * @param name - String.\n * @param value - String.\n */\n private readonly _updateAddress = (name: string, value: string | number) => {\n const { updateForm, isRequired, resources } = this.props;\n let cleanValue = value;\n if (typeof value === 'string') {\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\n }\n set(this.addUpdateAddress, { [name]: cleanValue });\n\n if (this._isEmpty()) {\n if (isRequired) {\n updateForm(true, undefined);\n } else {\n // Reset addressFormat as if address was NOT a required field\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this.excludedList, []),\n this.addressPurposes\n );\n updateForm(false, this.addUpdateAddress);\n }\n } else {\n // Get new addressFormat if address was a required field\n this.addressFormat = new AddressFormat(\n this.countryRegions,\n new AddressMetaData({ ...resources }, this.excludedList, this.props.isRequired ? undefined : []),\n this.addressPurposes\n );\n\n // Verify with new rules\n if (this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\n updateForm(false, this.addUpdateAddress);\n } else {\n updateForm(true, undefined);\n }\n }\n };\n\n /**\n * Is empty Function.\n * @returns - Boolean.\n */\n // Walk through array and check if valued is defined or value is not an empty string\n private readonly _isEmpty = () => {\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\n for (const addressFormatItem of addressFormat) {\n if (addressFormatItem.type !== AddressItemType.ThreeLetterISORegionName || this._isInputRequired(addressFormatItem)) {\n const addressItemValue = this.addUpdateAddress[addressFormatItem.name];\n\n // Check each input field, if value is defined and not an empty string --> address is not empty\n if (addressItemValue || (addressItemValue && addressItemValue !== '')) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n /**\n * Is Input Required Function.\n * @param addressFormatItem - IAddressItem.\n * @returns - Boolean.\n */\n private readonly _isInputRequired = (addressFormatItem: IAddressItem): boolean => {\n if (\n ObjectExtensions.isNullOrUndefined(addressFormatItem) ||\n !addressFormatItem.validationRules ||\n addressFormatItem.validationRules.length === 0\n ) {\n return false;\n }\n\n for (const validationRule of addressFormatItem.validationRules) {\n if (validationRule.type === AddressValidationRuleType.Required) {\n return false;\n }\n }\n\n return true;\n };\n\n private _setDefaultCountryRegionId(): void {\n const { request } = this.props.context;\n const market = request.channel?.ChannelCountryRegionISOCode;\n\n this._updateCountryRegionId(this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market));\n\n // Set default AddressType\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\n }\n\n /**\n * Update Country Region Id Function.\n * @param value - String.\n */\n private readonly _updateCountryRegionId = async (value: string) => {\n this.countryRegionId = value;\n\n await this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\n\n // Reset state if selected state not found in the list.\n if (!stateInfo) {\n this._updateAddress('State', '');\n }\n\n this.stateProvinceInfo = result;\n });\n\n this._updateAddress('ThreeLetterISORegionName', this.countryRegionId);\n };\n}\n\nexport default BusinessAccountAddress;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IBusinessAccountAddressViewProps } from './business-account-address';\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address Heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - IAddressError.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - AddressForm Node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {hasError && alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Business Account Address View Component.\n * @param props - Props.\n * @returns - BusinessAccountAddress Module.\n */\nconst BusinessAccountAddressView: React.FC = props => {\n const { BusinessAccountAddress, showAddOrUpdateAddress } = props;\n\n return (\n \n \n \n );\n};\n\nexport default BusinessAccountAddressView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["CheckoutBillingAddress","React","constructor","props","super","countryRegionId","countryRegions","addressPurposes","defaultAddressType","_onSuggestionSelected","async","this","_clearAddressFields","address","addressFormat","getTranformedAddress","result","stateProvinceInfo","set","addUpdateAddress","Street","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","getAddressFormat","ThreeLetterISORegionName","forEach","format","undefined","name","autoSuggest","excludedAddressFields","includes","_clearValidation","validationError","onAddressAddUpdate","value","validateAddressFormat","_dataInitialize","data","reaction","countryStates","_renderAddOrUpdateAddress","AddressAddUpdate","resources","addressType","AddressType","Billing","defaultCountryRegionId","selectedAddress","addressActionResponse","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","telemetryContent","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","hasExternalSubmitGroup","moduleState","onSave","_onSubmitAddress","onCancel","_resetView","_onCountryChange","twoLetterIsoRegionName","getTwoLetterISORegionName","TwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","config","addressFormatExcludeList","showAddressType","push","AddressItemType","AddressTypeValue","IsPrimary","_attachMapAutoSuggest","storeSelectorStateManager","isMapApiLoaded","attachAutoSuggest","event","target","replace","RegExp","_getStateProvinces","currentOperation","AddressOperation","Add","Update","addressCommon","getStateProvinces","then","some","state","StateId","_initModuleState","init","status","isBillingAddressRequried","onEdit","onSubmit","billingAddress","isBillingAddressSameAsShippingAddress","checkout","isBillingAddressSameAsShipping","_updateCurrentOperation","Show","_updateModuleState","isCartContainsItemsForShipping","shippingAddress","_onBillingAddressSameAsShippingChange","currentTarget","checked","_setBillingAddress","setHasError","telemetry","error","onUpdating","newBillingAddress","updateBillingAddress","additionalProperties","operation","onReady","context","List","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","request","telemetryPageName","friendlyName","actionContext","requestContext","channel","autoSuggestionEnabled","autoSuggestOptions","_setDefaultCountryRegionId","isUpdating","isDisabled","removeBillingAddress","onDisable","BingMapsApiKey","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_loadMapAPI","loadMapApi","disposeAutoSuggest","shouldComponentUpdate","nextProps","nextState","render","renderView","className","viewState","isShowAddress","isShowAddOrUpdateAddress","isShowSameAsShippingCheckbox","moduleProps","classnames","heading","AddressBillingHeading","text","addressBillingAddressHeading","sameAsShippingCheckbox","AddressBillingCheckbox","isChecked","type","ariaLabel","addressSameAsShippingAddressAriaLabel","addressSameAsShippingAddressText","onChange","showAddress","_renderShowAddress","showAddOrUpdateAddress","AddressShow","market","getDefaultCountryRegionId","channelDeliveryOptionConfig","featureState","retailMultiplePickUpOptionEnabled","find","feature","Name","IsEnabled","pickupDeliveryModeCode","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","checkoutCart","hasInvoiceLine","cart","CartLines","cartLine","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","checkoutState","loyaltyAmount","giftCardExtends","reduce","count","giftCard","Balance","customerAccountAmount","checkoutResult","length","paymentTenderType","tokenizedPaymentCard","isPaidByOtherPaymentSource","paymenTenderType","TotalAmount","getGiftCardTotalAmount","getLoyaltyAmount","getCustomerAccountAmount","shouldPaidByCard","__decorate","observable","action","computed","withModuleState","observer","AddressDetail","items","Node","map","item","description","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","key","label","alert","input","AddressError","title","message","Module","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","AccountManagementAddress","asyncCustAddressCreationFeatureName","asyncCustomerAddressCreationFeatureIsEnabled","customerAddresses","Shipping","_onAddressAddUpdateSubmit","_renderListAddress","headingTag","tag","AddressList","addresses","primaryAddressSectionHeading","otherAddressSectionHeading","contextRequest","handleLineItemHeadingChange","onEditAddress","_goToEditAddress","onRemoveAddress","_onRemoveAddress","onAddAddress","_goToAddAddress","onUpdatePrimaryAddress","_onSubmitUpdatePrimaryAddress","isAsyncCustomerAddressCreationFeatureEnabled","isAsyncCustomer","customerInformation","IsAsyncCustomer","canRenderAsyncCustomerDataAsUnmodifiable","app","_onAddressUpdate","response","onSuccess","isAuthenticatedFlow","updateCustomerAddress","addCustomerAddress","Promise","resolve","_onAddOrUpdateSuccess","twoLetterISORegionName","updateCustomerPrimaryAddress","_onUpdatePrimaryAddressSuccess","Deactivate","removeAddressData","_renderScreenReaderRemoveText","notification","formatNotification","removeAddressNotification","infoMessageBar","Msdyn365","accountProcessingPendingInfoMessageCanAddAddress","accountProcessingPendingInfoMessage","isShowAddresList","AccountAddressManagement","showAddressList","screenReaderNotification","isShowList","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","isShowError","AddressLists","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","BusinessAccountAddress","shouldAutoFocus","excludedList","_resetAddressFields","addressFormatItem","displayType","AddressItemDisplayType","Input","Checkbox","Company","_updateAddress","_updateCountryRegionId","updateForm","isRequired","cleanValue","_isEmpty","_isInputRequired","addressItemValue","ObjectExtensions","isNullOrUndefined","validationRules","validationRule","AddressValidationRuleType","Required","componentDidMount","resetAddress","module","exports","ReactDOM"],"sourceRoot":""}