{"version":3,"file":"static/js/46.791ba8b490a618cdde72.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/common/citta-address/modules/checkout-billing-address/checkout-billing-address.tsx?cf0e","webpack://Citta2.0/./src/common/citta-address/modules/checkout-billing-address/checkout-billing-address.view.tsx?0afd","webpack://Citta2.0/./src/common/citta-address/common/components/address-billing-checkbox.tsx?7f0b","webpack://Citta2.0/./src/common/citta-address/common/components/address-billing-heading.tsx?83f7"],"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 { 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 '../../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 { AddressBillingCheckbox } from '../../common/components/address-billing-checkbox';\r\nimport { AddressBillingHeading } from '../../common/components/address-billing-heading';\r\nimport { AddressShow, IAddressShowProps } from '../../common/components/address-show';\r\nimport { ICheckoutBillingAddressData } from './checkout-billing-address.data';\r\nimport { ICheckoutBillingAddressProps } from './checkout-billing-address.props.autogenerated';\r\n\r\nexport interface IProps extends ICheckoutBillingAddressProps, IModuleStateProps { }\r\n\r\nexport interface ICheckoutBillingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n isShowSameAsShippingCheckbox: boolean;\r\n}\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\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 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 addRenderRef: React.RefObject;\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n private autoSuggest?: AutoSuggest;\r\n\r\n 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(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 // This.addRenderRef = React.createRef();\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.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\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 // 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 }\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.isBillingAddressRequried)) {\r\n return null;\r\n }\r\n\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 private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n return AddressAddUpdate(\r\n {\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(this.resources.addressStateDefaultSelectionText, this.stateProvinceInfo),\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\r\n private _renderShowAddress(): IAddressShowProps | null {\r\n if (this.selectedAddress) {\r\n return AddressShow({ address: this.selectedAddress, addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''), addressPurposes: this.addressPurposes });\r\n }\r\n\r\n return null;\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 _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 @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) => {\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 const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n };\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 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 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 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 _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 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\r\n ?.find(feature => feature.Name === multiplePickupStoreSwitchName)?.IsEnabled;\r\n\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && 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 ? false : (retailMultiplePickUpOptionEnabled ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).some(\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) || []).some(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode) : cartLine)\r\n ));\r\n }\r\n\r\n @computed get billingAddress(): Address | undefined {\r\n return this.props.data.checkout.result && this.props.data.checkout.result.billingAddress;\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 @computed get getLoyaltyAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n return checkoutState && checkoutState.loyaltyAmount ? checkoutState.loyaltyAmount : 0;\r\n }\r\n\r\n @computed 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(\r\n (count: number, giftCard: IGiftCardExtend) => {\r\n return count + (giftCard.Balance || 0);\r\n },\r\n 0);\r\n }\r\n\r\n @computed get shouldPaidByCard(): boolean {\r\n const {\r\n data: {\r\n checkout\r\n },\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;\r\n\r\n return amountDue > 0 && !isPaidByOtherPaymentSource;\r\n }\r\n\r\n @computed get isBillingAddressRequried(): boolean {\r\n return this.shouldPaidByCard;\r\n }\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 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 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 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 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({ newBillingAddress, additionalProperties: { isBillingAddressSameAsShippingAddress: this.isBillingAddressSameAsShipping } });\r\n }\r\n };\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 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, { ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId });\r\n set(this.addUpdateAddress, { AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType });\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 {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutBillingAddress;\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 { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\r\nimport { ICheckoutBillingAddressViewProps } from './checkout-billing-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 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 CheckoutBillingAddressView: React.FC = props => {\r\n const { CheckoutBillingAddress, viewState, heading, sameAsShippingCheckbox, showAddress, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {viewState.isShowSameAsShippingCheckbox && sameAsShippingCheckbox}\r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutBillingAddressView;\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 { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport AddressInputComponent from './address-input';\r\n\r\nexport interface IAddressBillingCheckbox {\r\n isChecked: boolean;\r\n value: string;\r\n ariaLabel: string;\r\n text: string;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport const AddressBillingCheckbox: React.FC = ({\r\n isChecked,\r\n value,\r\n ariaLabel,\r\n text,\r\n telemetryContent,\r\n onChange\r\n}) => {\r\n\r\n const additionalAttributes = {\r\n checked: isChecked,\r\n 'aria-checked': isChecked\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\nexport default AddressBillingCheckbox;\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 React from 'react';\r\n\r\nexport interface IAddressBillingHeading {\r\n text: string;\r\n}\r\n\r\nexport const AddressBillingHeading: React.FC = ({\r\n text\r\n}) => (\r\n

\r\n {text}\r\n

\r\n);\r\n\r\nexport default IAddressBillingHeading;\r\n"],"names":["CheckoutBillingAddress","React","constructor","props","super","countryRegionId","defaultAddressType","_renderAddOrUpdateAddress","AddressAddUpdate","resources","this","addressType","AddressType","Billing","addressFormat","getAddressFormat","addUpdateAddress","ThreeLetterISORegionName","defaultCountryRegionId","selectedAddress","validationError","addressActionResponse","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","stateProvinceInfo","telemetryContent","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","hasExternalSubmitGroup","moduleState","onSave","_onSubmitAddress","onCancel","_resetView","_onCountryChange","_this$autoSuggest","twoLetterISORegionName","getTwoLetterISORegionName","set","TwoLetterISORegionName","autoSuggest","changeAutoSuggestionCountryCode","_clearAddressFields","_getAddressFormatExcludeList","config","addressFormatExcludeList","showAddressType","push","AddressItemType","AddressTypeValue","IsPrimary","_attachMapAutoSuggest","async","data","storeSelectorStateManager","result","_this$autoSuggest2","isMapApiLoaded","attachAutoSuggest","_onSuggestionSelected","address","getTranformedAddress","Street","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","forEach","format","_this$autoSuggest3","undefined","name","excludedAddressFields","includes","_clearValidation","onAddressAddUpdate","value","validateAddressFormat","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","_objectSpread","updateBillingAddress","additionalProperties","operation","onReady","context","List","addressPurposes","countryRegions","countryStates","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","request","telemetryPageName","friendlyName","actionContext","requestContext","channel","autoSuggestionEnabled","autoSuggestOptions","_setDefaultCountryRegionId","reaction","isUpdating","_this$props$data$chec","isDisabled","removeBillingAddress","onDisable","BingMapsApiKey","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_loadMapAPI","_this$props$data$stor","loadMapApi","_this$autoSuggest4","_this$props$data$stor2","_this$props$data$stor3","_this$autoSuggest5","disposeAutoSuggest","render","renderView","className","viewState","isShowAddress","isShowAddOrUpdateAddress","isShowSameAsShippingCheckbox","moduleProps","classnames","heading","AddressBillingHeading","Object","assign","text","addressBillingAddressHeading","sameAsShippingCheckbox","AddressBillingCheckbox","isChecked","type","ariaLabel","addressSameAsShippingAddressAriaLabel","addressSameAsShippingAddressText","onChange","showAddress","_renderShowAddress","showAddOrUpdateAddress","AddressShow","market","getDefaultCountryRegionId","_featureState$result","_this$props$data$chec2","channelDeliveryOptionConfig","featureState","retailMultiplePickUpOptionEnabled","find","feature","Name","IsEnabled","pickupDeliveryModeCode","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","checkoutCart","hasInvoiceLine","cart","CartLines","cartLine","_channelDeliveryOptio","DeliveryMode","PickupDeliveryModeCodes","deliveryMode","getLoyaltyAmount","checkoutState","loyaltyAmount","getGiftCardTotalAmount","giftCardExtends","reduce","count","giftCard","Balance","shouldPaidByCard","checkoutResult","length","paymentTenderType","tokenizedPaymentCard","isPaidByOtherPaymentSource","paymenTenderType","TotalAmount","__decorate","observable","action","computed","withModuleState","observer","_ref","AddressDetail","items","Node","map","item","description","_ref2","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","key","label","alert","input","AddressError","title","message","Module","additionalAttributes","AddressInputComponent","additionalAddributes"],"sourceRoot":""}