{"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<ICheckoutBillingAddressData>, 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<ICheckoutBillingAddressProps<ICheckoutBillingAddressData>>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutBillingAddress extends React.Component<IProps> {\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<AddressAdd>;\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<void> {\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<void> {\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: <AddressBillingHeading {...{ text: resources.addressBillingAddressHeading }} />,\r\n\r\n            sameAsShippingCheckbox: (\r\n                <AddressBillingCheckbox\r\n                    {\r\n                        ...{\r\n                            isChecked: this.isBillingAddressSameAsShipping,\r\n                            type: 'checkbox',\r\n                            value: 'true',\r\n                            ariaLabel: resources.addressSameAsShippingAddressAriaLabel,\r\n                            text: resources.addressSameAsShippingAddressText,\r\n                            telemetryContent: this.telemetryContent,\r\n                            onChange:\r\n                            this._onBillingAddressSameAsShippingChange\r\n                        }\r\n                    }\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<void> => {\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<void> => {\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<HTMLInputElement>): 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<HTMLSelectElement>): 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<HTMLInputElement>) => {\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<IAddressShowProps> = ({\r\n    AddressDetail,\r\n    items\r\n}) => {\r\n\r\n    return (\r\n        <Node {...AddressDetail}>\r\n            {items && items.map((item: IAddressShowItem) => {\r\n                return (\r\n                    <>\r\n                        {item.description}\r\n                    </>\r\n                );\r\n            })}\r\n        </Node>\r\n    );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC<IAddressAddUpdateProps> = ({\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        <Node {...AddressForm}>\r\n            {heading}\r\n            {items && items.map((item: IAddressAddItem) => {\r\n                const { AddressItem, key, label, alert, input } = item;\r\n                return (<Node {...AddressItem} key={key}>\r\n                    {label}\r\n                    {alert}\r\n                    {input}\r\n                </Node>);\r\n            })}\r\n            {hasError && <Node {...error.AddressError}>\r\n                {error.title}\r\n                {error.message}\r\n            </Node>}\r\n            {isShowSaveButton && saveButton}\r\n            {isShowCancelButton && cancelButton}\r\n        </Node>\r\n    );\r\n};\r\n\r\nconst CheckoutBillingAddressView: React.FC<ICheckoutBillingAddressViewProps> = props => {\r\n    const { CheckoutBillingAddress, viewState, heading, sameAsShippingCheckbox, showAddress, showAddOrUpdateAddress } = props;\r\n\r\n    return (\r\n        <Module {...CheckoutBillingAddress}>\r\n            {heading}\r\n            {viewState.isShowSameAsShippingCheckbox && sameAsShippingCheckbox}\r\n            {viewState.isShowAddress && <AddressShow {...showAddress} />}\r\n            {viewState.isShowAddOrUpdateAddress && <AddressAddUpdate {...showAddOrUpdateAddress} />}\r\n        </Module>\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<HTMLInputElement>): void;\r\n}\r\n\r\nexport const AddressBillingCheckbox: React.FC<IAddressBillingCheckbox> = ({\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        <label className='ms-checkout-billing-address__shipping-address-label'>\r\n            <AddressInputComponent {...{ type: 'checkbox', className: 'ms-checkout-billing-address', value, onChange, additionalAddributes: additionalAttributes, telemetryContent }} />\r\n            <span className='ms-checkout-billing-address__shipping-address-checkbox-text'>\r\n                {text}\r\n            </span>\r\n        </label>\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<IAddressBillingHeading> = ({\r\n    text\r\n}) => (\r\n    <p className='ms-checkout-billing-address__heading'>\r\n        {text}\r\n    </p>\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":""}