{"version":3,"file":"static/js/23.035df593a7a3bd3c35b1.chunk.js","mappings":"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","sources":["webpack://lds-commerce/./src/modules/account-management-address/account-management-address.tsx?27e7","webpack://lds-commerce/./src/modules/business-account-address/business-account-address.tsx?299e","webpack://lds-commerce/./src/modules/account-management-address/account-management-address.view.tsx?8c9f","webpack://lds-commerce/./src/modules/business-account-address/business-account-address.view.tsx?5078","webpack://lds-commerce/./src/modules/lds-account-management-address/lds-account-management-address.tsx?0007","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/checkout-shipping-cartlines-images.tsx?e516","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/lds-checkout-shipping-address-4.tsx?22c2","webpack://lds-commerce/./src/modules/lds-account-management-address/lds-account-management-address.view.tsx?a4ec","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/lds-checkout-shipping-address-4.view.tsx?b858","webpack://lds-commerce/../../src/checkout-state-data-action.ts?8344","webpack://lds-commerce/../../src/checkout-state.ts?acd8","webpack://lds-commerce/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://lds-commerce/../../../src/module-state-manager/module-state.ts?7579","webpack://lds-commerce/../../src/checkout-utilities.data.ts?b2cc","webpack://lds-commerce/./src/helpers/utilities/cart-line-utilities.tsx?1a14","webpack://lds-commerce/./src/helpers/utilities/state-address-utilities.tsx?8c81","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/countryFilterLists.tsx/Chile.tsx?79b9","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-format.data.ts?ef02","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-alert.tsx?30dc","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-button.tsx?2d73","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-checkbox.tsx?fd14","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-dropdown.tsx?343b","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-error-message.tsx?4b54","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-error-title.tsx?a13a","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-input.tsx?13f3","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-label.tsx?2071","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address/address-add.tsx?60af","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/customShippingSections/AfricaShipping.tsx?ad91","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/customShippingSections/BrazilShipping.tsx?d1e4","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/customShippingSections/PeruShipping.tsx?dcbc","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/customShippingSections/ChileShipping.tsx?a4f3","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/customShippingSections/UruguayShipping.tsx?37d5","webpack://lds-commerce/./src/helpers/utilities/address-utilities.tsx?7a41","webpack://lds-commerce/./src/modules/lds-checkout-shipping-address-4/components/address-format.ts?1cc8"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\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 readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private asyncCustomerAddressCreationFeatureIsEnabled?: boolean = false;\n private isEditAsyncCustomerFeatureEnabled: 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 this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const viewProps = {\n ...this.props,\n infoMessageBar: (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n !this.isEditAsyncCustomerFeatureEnabled &&\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 isEditAsyncCustomerFeatureEnabled: this.isEditAsyncCustomerFeatureEnabled\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 const formattedValue = name === 'Phone' ? value.toString().trim() : value;\n set(this.addUpdateAddress, { [name]: formattedValue });\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 { 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 { 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 { 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","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { format as formatNotification, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { action, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { getSmartyStreetAddress } from '../../helpers/utilities/address-utilities';\r\n\r\nimport {\r\n IAutoSuggestOptions,\r\n AutoSuggest,\r\n AddressCommon,\r\n // AddressFormat,\r\n AddressItemType,\r\n AddressMetaData,\r\n IAddressResponse,\r\n IAddressResource,\r\n AddressType,\r\n AddressOperation,\r\n // AddressAddUpdate,\r\n IAddressAddUpdateProps,\r\n AddressList,\r\n IAddressListProps\r\n // IAccountManagementAddressData,\r\n // IAccountManagementAddressProps\r\n} from '@msdyn365-commerce-modules/address';\r\nimport { AddressFormat } from '../lds-checkout-shipping-address-4/components/address-format';\r\nimport { ILdsAccountManagementAddressData } from './lds-account-management-address.data';\r\nimport { ILdsAccountManagementAddressProps } from './lds-account-management-address.props.autogenerated';\r\nimport { AddressAddUpdate } from '../lds-checkout-shipping-address-4/components/address/address-add';\r\n\r\n/**\r\n * Account management address view state interface.\r\n */\r\nexport interface IAccountManagementAddressViewState {\r\n isShowAddresList: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n}\r\n\r\n/**\r\n * Account management address view state interface.\r\n */\r\nexport interface IAccountManagementAddressViewProps\r\n extends React.Component> {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: IAccountManagementAddressViewState;\r\n AccountAddressManagement: IModuleProps;\r\n isUpdating: boolean;\r\n showAddressList: IAddressListProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n screenReaderNotification: React.ReactNode;\r\n finalSubmit: boolean;\r\n smartyAddress?: any;\r\n submitAddress?: any;\r\n saveAddress?: any;\r\n saveAddressCustom?: any;\r\n onCancel?: any;\r\n resources: any;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass AccountManagementAddress extends React.Component> {\r\n @observable private currentOperation: AddressOperation;\r\n\r\n @observable private selectedAddress?: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private customerAddresses: Address[];\r\n\r\n @observable private addUpdateAddress: any;\r\n\r\n @observable private isFinalSubmit: boolean;\r\n\r\n @observable private loading: boolean;\r\n\r\n @observable private showSmarty: boolean;\r\n\r\n @observable private smartyFailed: boolean;\r\n\r\n @observable private validationError: object;\r\n\r\n @observable private addressActionResponse?: IAddressResponse;\r\n\r\n @observable private isUpdating?: boolean;\r\n\r\n @observable private hasError?: boolean;\r\n\r\n @observable private removeAddressData?: Address;\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n // private addressFormat: AddressFormat;\r\n private addressFormat: any;\r\n\r\n private countryRegions: CountryRegionInfo[] = [];\r\n\r\n private addressPurposes: AddressPurpose[] = [];\r\n\r\n @observable private smartyAddress: any;\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 6; // Default to Home\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n private autoSuggest?: AutoSuggest;\r\n\r\n public constructor(props: ILdsAccountManagementAddressProps) {\r\n super(props);\r\n this.state = {\r\n customerAddress: {}\r\n };\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.isFinalSubmit = false;\r\n this.resources = resources;\r\n this.currentOperation = AddressOperation.List;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.customerAddresses = data.address.result || [];\r\n this.addUpdateAddress = {};\r\n this.smartyAddress = {};\r\n this.validationError = {};\r\n this.loading = false;\r\n this.showSmarty = false;\r\n this.smartyFailed = false;\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\r\n /**\r\n * On Suggestion Selected Function.\r\n * @param result - Microsoft.Maps.ISuggestionResult.\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 for (const formatAddress of addressFormatItem) {\r\n if (\r\n this.addUpdateAddress[formatAddress.name] !== undefined &&\r\n !this.autoSuggest?.excludedAddressFields.includes(formatAddress.name)\r\n ) {\r\n this.addressFormat[formatAddress.name] = '';\r\n }\r\n }\r\n this._clearValidation();\r\n };\r\n\r\n /**\r\n * Clear Validation Function.\r\n */\r\n @action\r\n private readonly _clearValidation = (): void => {\r\n this.validationError = {};\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 void this.props.data.countryRegions.then(() => {\r\n this._setDefaultCountryRegionId();\r\n });\r\n\r\n reaction(\r\n () => this.countryRegionId,\r\n () => {\r\n this._getStateProvinces();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.currentOperation,\r\n () => {\r\n this._getStateProvinces();\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\r\n 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 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 !== undefined &&\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 () => {\r\n this.props.data.storeSelectorStateManager.result?.isMapApiLoaded;\r\n },\r\n async () => {\r\n await this._attachMapAutoSuggest();\r\n }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Component did mount function.\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 /**\r\n * Should component update function.\r\n * @param nextProps - Account management address props.\r\n * @param nextState - Next state.\r\n * @returns - True if component should update, false otherwise.\r\n */\r\n public shouldComponentUpdate(\r\n nextProps: ILdsAccountManagementAddressProps,\r\n nextState: IAccountManagementAddressViewState\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 {\r\n const { renderView, config } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n showSmarty: this.showSmarty,\r\n smartyFailed: this.smartyFailed,\r\n smartyAddress: this.smartyAddress,\r\n loading: this.loading,\r\n currentOperation: this.currentOperation,\r\n selectedAddress: this.selectedAddress,\r\n addUpdateAddress: this.addUpdateAddress,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n customerAddresses: this.customerAddresses,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n isUpdating: this.isUpdating,\r\n hasError: this.hasError,\r\n className: config.className,\r\n viewState: {\r\n isShowAddresList: this.currentOperation === AddressOperation.List,\r\n isShowAddOrUpdateAddress: this.currentOperation !== AddressOperation.List\r\n },\r\n AccountAddressManagement: {\r\n moduleProps: this.props,\r\n className: classnames('ms-account-management-address', config.className)\r\n },\r\n showAddressList: this._renderListAddress(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\r\n screenReaderNotification: this.removeAddressData ? this._renderScreenReaderRemoveText(this.removeAddressData) : null,\r\n finalSubmit: this.isFinalSubmit,\r\n // smartyAddress: this.smartyAddress,\r\n // submitAddress: this.getSmartyAddress,\r\n saveAddress: this._onAddressAddUpdateSubmit,\r\n saveAddressCustom: this._onAddressAddUpdateSubmitCustom,\r\n onCancel: this._resetView\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Method data initialization.\r\n * @param props -The account management props.\r\n */\r\n private readonly _dataInitialize = (props: ILdsAccountManagementAddressProps): 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.address.result,\r\n () => {\r\n this.customerAddresses = data.address.result ?? [];\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Render Add Or Update Address Function.\r\n * @returns - AddressAddUpdate.\r\n */\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: this.addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\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 onSave: this._onAddressAddUpdateSubmit,\r\n onSaveCustom: this._onAddressAddUpdateSubmitCustom,\r\n onCancel: this._resetView\r\n });\r\n };\r\n\r\n /**\r\n * Render List Address Function.\r\n * @returns - AddressList.\r\n */\r\n private readonly _renderListAddress = (): IAddressListProps => {\r\n const { config } = this.props;\r\n\r\n /**\r\n * Render Address ttitle.\r\n * @param event - Msdyn365.ContentEditableEvent.\r\n */\r\n const handleLineItemHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\r\n config.heading!.text = event.target.value;\r\n };\r\n const heading = config.heading && {\r\n text: config.heading.text,\r\n headingTag: config.heading.tag\r\n };\r\n\r\n return AddressList({\r\n isUpdating: this.isUpdating,\r\n selectedAddress: this.selectedAddress,\r\n addressFormat: this.addressFormat,\r\n addresses: this.customerAddresses,\r\n addressPurposes: this.addressPurposes,\r\n resources: this.resources,\r\n heading,\r\n primaryAddressSectionHeading: config.primaryAddressSectionHeading,\r\n otherAddressSectionHeading: config.otherAddressSectionHeading,\r\n contextRequest: this.props.context.request,\r\n telemetryContent: this.telemetryContent,\r\n handleLineItemHeadingChange,\r\n onEditAddress: this._goToEditAddress,\r\n onRemoveAddress: this._onRemoveAddress,\r\n onAddAddress: this._goToAddAddress,\r\n onUpdatePrimaryAddress: this._onSubmitUpdatePrimaryAddress\r\n });\r\n };\r\n\r\n /**\r\n * Attach Map Auto Suggest Function.\r\n */\r\n private readonly _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded) {\r\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n };\r\n\r\n /**\r\n * On Address Add Update Function.\r\n * @param name - String.\r\n * @param value - String | Boolean | Number.\r\n */\r\n private readonly onAddressAddUpdate = (name: string, value: string | boolean | number) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n if (name === 'Street_2') {\r\n sessionStorage.setItem('Street_2', JSON.stringify(value));\r\n }\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n };\r\n\r\n /**\r\n * On Address Add Update Input Change.\r\n * @param event - Input Change Event.\r\n */\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n this.onAddressAddUpdate(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n };\r\n\r\n /**\r\n * On Address Add Update Dropdown Change.\r\n * @param event - Dropdown Change Event.\r\n */\r\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n if (event.target.name === AddressItemType[AddressItemType.AddressTypeValue]) {\r\n this.onAddressAddUpdate(event.target.name, +event.target.value);\r\n } else {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n }\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n };\r\n\r\n /**\r\n * On Address Update Function.\r\n * @param response - Promise.\r\n * @param onSuccess - IAddressResponse.\r\n */\r\n private readonly _onAddressUpdate = (response: Promise, onSuccess: (response: IAddressResponse) => void): void => {\r\n this.isUpdating = true;\r\n response.then(\r\n (result: IAddressResponse) => {\r\n if (result.address) {\r\n this.hasError = false;\r\n onSuccess(result);\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n }\r\n this.isUpdating = false;\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Method to get called on address update submit.\r\n */\r\n private readonly _onAddressAddUpdateSubmitCustom = (\r\n address: any,\r\n countryRegion?: string,\r\n unitName?: string,\r\n stakeName?: string\r\n ): void => {\r\n // this.setState({ loading: true });\r\n this.loading = true;\r\n address.ThreeLetterISORegionName = countryRegion\r\n ? countryRegion\r\n : address.ThreeLetterISORegionName\r\n ? address.ThreeLetterISORegionName\r\n : 'BRA';\r\n if (address && address.Email && address.Email === '') {\r\n address.Email = this.props.context.request.user.emailAddress;\r\n }\r\n if (unitName && stakeName && address && address.Street) {\r\n address.Street = `${unitName}\\n${stakeName}\\n${address.Street}`;\r\n }\r\n const newOrUpdatedAddress = this.addUpdateAddress ? this.addUpdateAddress : address;\r\n\r\n if (newOrUpdatedAddress && address && address.Name && newOrUpdatedAddress.Name && newOrUpdatedAddress.Name !== address.Name) {\r\n newOrUpdatedAddress.Name = address.Name;\r\n }\r\n if (\r\n newOrUpdatedAddress &&\r\n address &&\r\n address.Street &&\r\n newOrUpdatedAddress.Street &&\r\n newOrUpdatedAddress.Street !== address.Street\r\n ) {\r\n newOrUpdatedAddress.Street = address.Street;\r\n }\r\n if (newOrUpdatedAddress && address && address.City && newOrUpdatedAddress.City && newOrUpdatedAddress.City !== address.City) {\r\n newOrUpdatedAddress.City = address.City;\r\n }\r\n if (\r\n newOrUpdatedAddress &&\r\n address &&\r\n address.DistrictName &&\r\n newOrUpdatedAddress.DistrictName &&\r\n newOrUpdatedAddress.DistrictName !== address.DistrictName\r\n ) {\r\n newOrUpdatedAddress.DistrictName = address.DistrictName;\r\n }\r\n if (newOrUpdatedAddress && address && address.State && newOrUpdatedAddress.State && newOrUpdatedAddress.State !== address.State) {\r\n newOrUpdatedAddress.State = address.State;\r\n }\r\n if (\r\n newOrUpdatedAddress &&\r\n address &&\r\n address.ZipCode &&\r\n newOrUpdatedAddress.ZipCode &&\r\n newOrUpdatedAddress.ZipCode !== address.ZipCode\r\n ) {\r\n newOrUpdatedAddress.ZipCode = address.ZipCode;\r\n }\r\n if (\r\n newOrUpdatedAddress &&\r\n address &&\r\n address.StreetNumber &&\r\n newOrUpdatedAddress.StreetNumber &&\r\n newOrUpdatedAddress.StreetNumber !== address.StreetNumber\r\n ) {\r\n newOrUpdatedAddress.StreetNumber = address.StreetNumber;\r\n }\r\n\r\n if (newOrUpdatedAddress && newOrUpdatedAddress.Street_2) {\r\n delete newOrUpdatedAddress.Street_2;\r\n }\r\n\r\n let response: Promise;\r\n if (this._isNewAddressCustom(address)) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(newOrUpdatedAddress)\r\n : this.addressCommon.addCustomerAddress(address);\r\n } else {\r\n response = Promise.resolve({ address: address });\r\n }\r\n\r\n // this.setState({ loading: false });\r\n\r\n this.isUpdating = true;\r\n // this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n // this._clearError();\r\n // this.setState({ loading: false });\r\n this.loading = false;\r\n if (result.customerAddresses) {\r\n this._onAddOrUpdateSuccess({ customerAddresses: result.customerAddresses, address: result.address });\r\n } else {\r\n this._onAddOrUpdateSuccess({ address: result.address });\r\n }\r\n } else {\r\n // this.setState({ loading: false });\r\n this.loading = false;\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n // this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n // this._updateModuleState();\r\n }\r\n );\r\n };\r\n\r\n private readonly _onAddressAddUpdateSubmit = async (address?: any, skipSmarty?: boolean): Promise => {\r\n const UserAddress: any = address && Object.keys(address).length !== 0 ? address : this.addUpdateAddress;\r\n const userStreet2 = sessionStorage.getItem('Street_2');\r\n\r\n if (skipSmarty === false) {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n return;\r\n }\r\n const smartyResult = await this._getSmartyAddress(UserAddress);\r\n\r\n if (smartyResult === false) {\r\n void this._onAddressAddUpdateSubmit(UserAddress, true);\r\n }\r\n } else {\r\n // this.setState({ loading: true });\r\n this.loading = true;\r\n // @ts-ignore\r\n // const street =\r\n // UserAddress.Street_2 && UserAddress.Street\r\n // ? `${UserAddress.Street.replace(/\\n/g, '')} ${UserAddress.Street_2}`\r\n // : `${UserAddress.Street.replace(/\\n/g, '')}`;\r\n let customAddress: Address;\r\n if (address && address.isdeliverable) {\r\n customAddress = {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue,\r\n City: address.city,\r\n Name: this.addUpdateAddress.Name,\r\n State: address.state,\r\n Street: address.street2 && address.street2 !== '' ? `${address.street}\\n${address.street2}` : `${address.street}`,\r\n ThreeLetterISORegionName: address.country,\r\n ZipCode: address.plusfour ? `${address.zipcode}-${address.plusfour}` : address.zipcode,\r\n Email:\r\n UserAddress.Email && UserAddress.Email !== ''\r\n ? UserAddress.Email\r\n : this.props.context.request.user.emailAddress\r\n ? this.props.context.request.user.emailAddress\r\n : '',\r\n TaxGroup: UserAddress.TaxGroup ? UserAddress.TaxGroup : '',\r\n RecordId: this.addUpdateAddress.RecordId || undefined\r\n };\r\n } else {\r\n customAddress = {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue,\r\n City: UserAddress.City,\r\n Name: this.addUpdateAddress.Name,\r\n State: UserAddress.State,\r\n Street: UserAddress.Street,\r\n TaxGroup: UserAddress.TaxGroup,\r\n ThreeLetterISORegionName: UserAddress.ThreeLetterISORegionName,\r\n ZipCode: UserAddress.ZipCode,\r\n Email:\r\n UserAddress.Email && UserAddress.Email !== ''\r\n ? UserAddress.Email\r\n : this.props.context.request.user.emailAddress\r\n ? this.props.context.request.user.emailAddress\r\n : '',\r\n StreetNumber: UserAddress.StreetNumber || '',\r\n DistrictName: UserAddress.District || UserAddress.DistrictName || '',\r\n RecordId: UserAddress.RecordId || undefined\r\n };\r\n let street: any;\r\n if (UserAddress.Street_2 && UserAddress.Street) {\r\n // street = `${UserAddress.Street.replace(/\\n/g, '')} ${UserAddress.Street_2}`;\r\n street = `${UserAddress.Street}\\n${UserAddress.Street_2}`;\r\n customAddress.Street = street;\r\n } else if (userStreet2 && UserAddress.Street) {\r\n // street = `${UserAddress.Street.replace(/\\n/g, '')} ${userStreet2}`;\r\n street = `${UserAddress.Street}\\n${JSON.parse(userStreet2)}`;\r\n customAddress.Street = street;\r\n } else if (UserAddress.Street) {\r\n street = `${UserAddress.Street.replace(/\\n/g, '')}`;\r\n customAddress.Street = street;\r\n }\r\n if (UserAddress && UserAddress.Street_2) {\r\n delete UserAddress.Street_2;\r\n }\r\n }\r\n\r\n if (UserAddress.ThreeLetterISORegionName === 'USA' || UserAddress.ThreeLetterISORegionName === 'CAN') {\r\n customAddress.TaxGroup = 'Vertex';\r\n }\r\n if (UserAddress.ThreeLetterISORegionName === 'KOR' && this.addUpdateAddress.State) {\r\n if (\r\n this.addUpdateAddress.City !== '' &&\r\n !this.addUpdateAddress.Street &&\r\n !this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)\r\n ) {\r\n this.loading = false;\r\n return;\r\n } else {\r\n // @ts-ignore\r\n if (this.validationError && this.validationError.City) {\r\n // @ts-ignore\r\n this.validationError.City = null;\r\n }\r\n }\r\n } else if (UserAddress.ThreeLetterISORegionName === 'VNM' && this.addUpdateAddress.State) {\r\n if (\r\n this.addUpdateAddress.City !== '' &&\r\n !this.addUpdateAddress.Street &&\r\n !this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)\r\n ) {\r\n this.setState({ loading: false });\r\n return;\r\n } else {\r\n // @ts-ignore\r\n if (this.validationError && this.validationError.City) {\r\n // @ts-ignore\r\n this.validationError.City = null;\r\n }\r\n }\r\n } else {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n this.loading = false;\r\n return;\r\n }\r\n }\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n // if (this.addressCommon.isAuthenticatedFlow()) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(customAddress)\r\n : this.addressCommon.addCustomerAddress(customAddress);\r\n } else {\r\n response = Promise.resolve({ address: customAddress });\r\n }\r\n\r\n this.isUpdating = true;\r\n // this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n // this.setState({ showSmarty: false, loading: false });\r\n this.loading = false;\r\n this.showSmarty = false;\r\n\r\n this.isUpdating = false;\r\n sessionStorage.setItem('Street_2', '');\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n // this._clearError();\r\n if (result.customerAddresses) {\r\n this._onAddOrUpdateSuccess({ customerAddresses: result.customerAddresses, address: result.address });\r\n } else {\r\n this._onAddOrUpdateSuccess({ address: result.address });\r\n }\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n // this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n // this._updateModuleState();\r\n }\r\n );\r\n }\r\n };\r\n\r\n private readonly _getSmartyAddress = async (address: Address): Promise => {\r\n const smartyStreets = await getSmartyStreetAddress(this.props.context, address).catch((err: any) => {\r\n console.log(err);\r\n });\r\n if (smartyStreets && smartyStreets.isdeliverable && smartyStreets.isdeliverable === true) {\r\n // this.setState({ showSmarty: true, smartyAddress: smartyStreets });\r\n this.showSmarty = true;\r\n this.smartyAddress = smartyStreets;\r\n return true;\r\n } else {\r\n // this.setState({ smartyFailed: true, smartyAddress: address });\r\n this.smartyFailed = true;\r\n this.smartyAddress = address;\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * On Country Change Function.\r\n * @param countryRegionId - String.\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 * Get Address Format Exclude List Function.\r\n * @returns - Address Format Exclude List.\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 * Get State Provinces Function.\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 void 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 private _setDefaultCountryRegionId(): void {\r\n // const { request } = this.props.context;\r\n // const market = request.channel?.ChannelCountryRegionISOCode;\r\n\r\n let countryExtension: any;\r\n let country;\r\n\r\n if (this.props.data.cart.result && this.props.data.cart.result.cart && this.props.data.cart.result.cart.ExtensionProperties) {\r\n countryExtension = this.props.data.cart.result.cart.ExtensionProperties.filter((property: any) => {\r\n return property.Key === 'Country';\r\n });\r\n\r\n if (countryExtension) {\r\n country = countryExtension[0].Value.StringValue;\r\n }\r\n }\r\n // this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(country, this.countryRegions, market);\r\n\r\n this.countryRegionId = country;\r\n }\r\n\r\n /**\r\n * Update CurrentOperation Function.\r\n * @param operation - AddressOperation.\r\n */\r\n private readonly _updateCurrentOperation = (operation: AddressOperation) => {\r\n this.currentOperation = operation;\r\n // this._clearAddressFields();\r\n };\r\n\r\n /**\r\n * On Submit Update Primary Address Function.\r\n * @param address - Address.\r\n */\r\n private readonly _onSubmitUpdatePrimaryAddress = (address: Address): void => {\r\n this.selectedAddress = address;\r\n const response = this.addressCommon.updateCustomerPrimaryAddress(address);\r\n this._onAddressUpdate(response, this._onUpdatePrimaryAddressSuccess);\r\n };\r\n\r\n /**\r\n * Go To Edit Address Function.\r\n * @param address - Address.\r\n */\r\n private readonly _goToEditAddress = (address: Address): void => {\r\n this.isFinalSubmit = false;\r\n if (address && address.Street) {\r\n if (\r\n address.ThreeLetterISORegionName !== 'GHA' &&\r\n address.ThreeLetterISORegionName !== 'CIV' &&\r\n address.ThreeLetterISORegionName !== 'NGA' &&\r\n address.ThreeLetterISORegionName !== 'CHL' &&\r\n address.ThreeLetterISORegionName !== 'PER' &&\r\n address.ThreeLetterISORegionName !== 'BRA'\r\n ) {\r\n const streetSplit = address.Street.split('\\n');\r\n\r\n if (streetSplit && streetSplit[0]) {\r\n address.Street = streetSplit[0];\r\n }\r\n if (streetSplit && streetSplit[1]) {\r\n // @ts-ignore\r\n address.Street_2 = streetSplit[1];\r\n }\r\n }\r\n }\r\n this.addUpdateAddress = { ...address };\r\n // this.smartyAddress = { ...address };\r\n this.countryRegionId = this.addUpdateAddress.ThreeLetterISORegionName || 'USA';\r\n this._updateCurrentOperation(AddressOperation.Update);\r\n };\r\n\r\n /**\r\n * On Remove Address Function.\r\n * @param address - Address.\r\n */\r\n private readonly _onRemoveAddress = (address: Address): void => {\r\n address.Deactivate = true;\r\n this.removeAddressData = address;\r\n const response = this.addressCommon.updateCustomerAddress(address);\r\n this._onAddressUpdate(response, this._onAddOrUpdateSuccess);\r\n };\r\n\r\n /**\r\n * Renders Notification screen reader text for removed address.\r\n * @param address - Address input.\r\n * @returns Notification for removed address.\r\n */\r\n private readonly _renderScreenReaderRemoveText = (address: Address): React.ReactNode => {\r\n const notification = formatNotification(this.resources.removeAddressNotification!, `${address.Name!}`);\r\n return (\r\n
\r\n {notification}\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * Go To Add Address Function.\r\n */\r\n private readonly _goToAddAddress = (): void => {\r\n this.isFinalSubmit = false;\r\n this.addUpdateAddress = {};\r\n this._setDefaultCountryRegionId();\r\n set(this.addUpdateAddress, { ThreeLetterISORegionName: this.countryRegionId });\r\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\r\n this._setDefaultCountryRegionId();\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n };\r\n\r\n /**\r\n * On Add Or Update Success Function.\r\n * @param response - IAddressResponse.\r\n */\r\n private readonly _onAddOrUpdateSuccess = (response: IAddressResponse): void => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n this._resetView();\r\n };\r\n\r\n /**\r\n * On Update Primary Address Success Function.\r\n * @param response - IAddressResponse.\r\n */\r\n private readonly _onUpdatePrimaryAddressSuccess = (response: IAddressResponse): void => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n };\r\n\r\n /**\r\n * Reset view function.\r\n */\r\n private readonly _resetView = (): void => {\r\n this.selectedAddress = undefined;\r\n this._updateCurrentOperation(AddressOperation.List);\r\n };\r\n\r\n // /**\r\n // * Method to check if the customer already has the address.\r\n // * @param address - The address.\r\n // */\r\n // private readonly _isNewAddress = (address: Address): boolean => {\r\n // for (const existingAddress of this.customerAddresses) {\r\n // if (\r\n // (address.Name ?? '') === existingAddress.Name &&\r\n // (address.Street ?? '') === existingAddress.Street &&\r\n // (address.StreetNumber ?? '') === existingAddress.StreetNumber &&\r\n // (address.City ?? '') === existingAddress.City &&\r\n // (address.State ?? '') === existingAddress.State &&\r\n // (address.ZipCode ?? '') === existingAddress.ZipCode &&\r\n // (address.Phone ?? '') === existingAddress.Phone &&\r\n // (address.ThreeLetterISORegionName ?? '') === existingAddress.ThreeLetterISORegionName &&\r\n // (address.AddressTypeValue ?? '') === existingAddress.AddressTypeValue\r\n // ) {\r\n // return false;\r\n // }\r\n // }\r\n\r\n // return true;\r\n // };\r\n\r\n /**\r\n * Method to check if the customer already has the address.\r\n * @param address - The address.\r\n */\r\n private readonly _isNewAddressCustom = (address: Address): boolean => {\r\n for (const existingAddress of this.customerAddresses) {\r\n if (\r\n (address.Name ?? '') === existingAddress.Name &&\r\n (address.Street ?? '') === existingAddress.Street &&\r\n (address.StreetNumber ?? '') === existingAddress.StreetNumber &&\r\n (address.City ?? '') === existingAddress.City &&\r\n (address.State ?? '') === existingAddress.State &&\r\n (address.ZipCode ?? '') === existingAddress.ZipCode &&\r\n (address.Phone ?? '') === existingAddress.Phone &&\r\n (address.ThreeLetterISORegionName ?? '') === existingAddress.ThreeLetterISORegionName &&\r\n (address.AddressTypeValue ?? '') === existingAddress.AddressTypeValue &&\r\n (address.DistrictName ?? '') === existingAddress.DistrictName &&\r\n (address.StreetNumber ?? '') === existingAddress.StreetNumber\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n}\r\n\r\nexport default AccountManagementAddress;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IImageProps, IImageSettings, Image, IRequestContext } from '@msdyn365-commerce/core';\r\nimport { CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckoutShippingAddress4Resources } from '../lds-checkout-shipping-address-4.props.autogenerated';\r\n\r\n/**\r\n * The cartline product interface.\r\n */\r\nexport interface ICartLineWithProduct {\r\n cartLine: CartLine;\r\n product?: SimpleProduct;\r\n}\r\n\r\n/**\r\n * The checkout shipping cartline interface.\r\n */\r\nexport interface ICheckoutShippingCartLineInfo {\r\n lineId: string;\r\n imageProps: IImageProps;\r\n quantity: number;\r\n}\r\n\r\n/**\r\n * The checkout shipping cartline props.\r\n */\r\nexport interface ICheckoutShippingCartLinesProps {\r\n moduleClassName: string;\r\n cartLines: ICheckoutShippingCartLineInfo[];\r\n title: string;\r\n itemTitle: string;\r\n resources: ILdsCheckoutShippingAddress4Resources;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Following as per module\r\nexport const CheckoutPickupCartLines: React.FC = ({\r\n moduleClassName,\r\n cartLines,\r\n title,\r\n itemTitle,\r\n resources\r\n}) => {\r\n const context = ({\r\n gridSettings: {\r\n xs: { w: 767 },\r\n sm: { w: 991 },\r\n md: { w: 1199 },\r\n lg: { w: 1599 },\r\n xl: { w: 1600 }\r\n }\r\n } as unknown) as IRequestContext;\r\n const isMobileCheck = isMobile({ variant: VariantType.Browser, context });\r\n const isMobileView = isMobileCheck === 'xs' || isMobileCheck === 'sm';\r\n\r\n if (!ArrayExtensions.hasElements(cartLines)) {\r\n return null;\r\n }\r\n const quantity = 1;\r\n return (\r\n
\r\n
\r\n
{title}
\r\n
{itemTitle}
\r\n
\r\n
\r\n {cartLines.map((cartLine: ICheckoutShippingCartLineInfo) => {\r\n const isShowQty = cartLine.quantity > quantity;\r\n let className = `${moduleClassName}__group-images-lines-product`;\r\n const role = 'text';\r\n if (isShowQty) {\r\n className = classnames(className, ' product-image-wide');\r\n }\r\n return (\r\n
\r\n \r\n {isMobileView\r\n ? isShowQty && (\r\n \r\n {cartLine.quantity}\r\n
\r\n )\r\n : isShowQty && (\r\n
\r\n )}\r\n {!isMobileView && isShowQty && (\r\n \r\n {format(resources.productQuantityInfo, cartLine.quantity, cartLine.imageProps.altText)}\r\n \r\n )}\r\n
\r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * The checkout shipping cartline image settings.\r\n */\r\nexport const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\r\n lg: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\r\n xl: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 }\r\n },\r\n lazyload: true,\r\n quality: 80\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n CartLine,\r\n CountryRegionInfo,\r\n SimpleProduct,\r\n StateProvinceInfo,\r\n TenderLine,\r\n TokenizedPaymentCard\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport {\r\n ArrayExtensions,\r\n getFallbackImageUrl,\r\n getSimpleProducts,\r\n ObjectExtensions,\r\n ProductInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format, 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\n// import { AddressFormat } from '@msdyn365-commerce-modules/address';\r\nimport { AddressFormat } from './components/address-format';\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\n// import { AddressAddUpdate, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { AddressAddUpdate } from '../lds-checkout-shipping-address-4/components/address/address-add';\r\nimport { AddressSelect, IAddressSelectProps } from '@msdyn365-commerce-modules/address';\r\nimport { AddressShow, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { ILdsCheckoutShippingAddress4Data } from './lds-checkout-shipping-address-4.data';\r\nimport { ILdsCheckoutShippingAddress4Props } from './lds-checkout-shipping-address-4.props.autogenerated';\r\nimport {\r\n CheckoutPickupCartLines,\r\n defaultImageSettings,\r\n ICartLineWithProduct,\r\n ICheckoutShippingCartLineInfo,\r\n ICheckoutShippingCartLinesProps\r\n} from './components/checkout-shipping-cartlines-images';\r\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\r\nimport { ErrorComponent } from '@msdyn365-commerce-modules/address';\r\nimport { focusOnCheckoutError } from '@msdyn365-commerce-modules/address';\r\nimport { getSmartyStreetAddress } from '../../helpers/utilities/address-utilities';\r\n\r\nimport { stateCheckList, stateCheckListKo, cityCheck } from '../../helpers/utilities/state-address-utilities';\r\n\r\n/**\r\n * The checkout address props interface.\r\n */\r\nexport interface ICheckoutAddressProps extends ILdsCheckoutShippingAddress4Props, IModuleStateProps {}\r\n\r\n/**\r\n * The checkout shipping address view state.\r\n */\r\nexport interface ICheckoutShippingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddresList: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n}\r\n\r\n/**\r\n * The checkout shipping address state.\r\n */\r\nexport interface ICheckoutAddresState {\r\n shippingGroups: ICartLineWithProduct[];\r\n errorMessage?: string;\r\n showSmarty?: boolean;\r\n smartyFailed?: boolean;\r\n smartyAddress?: any;\r\n loading?: boolean;\r\n addressListValidated?: boolean;\r\n}\r\n\r\nexport interface ILdsAddressSelectProps extends IAddressSelectProps {\r\n resources?: any;\r\n context?: any;\r\n defaultCountryRegionId?: any;\r\n}\r\n\r\nexport interface ILdsAddressAddUpdateProps extends IAddressAddUpdateProps {\r\n resources?: any;\r\n defaultCountryRegionId?: any;\r\n context?: any;\r\n showSmarty?: boolean;\r\n smartyFailed?: boolean;\r\n smartyAddress?: any;\r\n userAddress?: any;\r\n loading?: boolean;\r\n}\r\n\r\n/**\r\n * The checkout shipping address view props.\r\n */\r\nexport interface ICheckoutShippingAddressViewProps extends ICheckoutAddressProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n showSmarty?: boolean;\r\n smartyFailed?: boolean;\r\n smartyAddress?: any;\r\n loading?: boolean;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutShippingAddressViewState;\r\n CheckoutShippingAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddress: IAddressShowProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n cartLineImages?: React.ReactNode;\r\n showAddressSelect: ILdsAddressSelectProps;\r\n alert?: React.ReactNode;\r\n checkoutErrorRef?: React.RefObject;\r\n showAddOrUpdateAddressHandler?(onSaveHandler?: () => void, onCancelHandler?: () => void): IAddressAddUpdateProps;\r\n showAddressSelectHandler?(\r\n onAddAddressHandler?: () => void,\r\n onSaveHandler?: () => void,\r\n onCancelHandler?: () => void\r\n ): ILdsAddressSelectProps;\r\n}\r\n\r\n/**\r\n * IExpressPaymentDetail interface.\r\n */\r\ninterface IExpressPaymentDetails {\r\n email?: string;\r\n tenderLine?: TenderLine;\r\n tokenizedPaymentCard?: TokenizedPaymentCard;\r\n paymentTenderType?: string;\r\n address?: Address;\r\n isExpressCheckoutAppliedInCartPage: boolean;\r\n isExpressAddressAppliedInCartPage?: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutShippingAddress extends React.Component {\r\n @observable private currentOperation: AddressOperation;\r\n\r\n @observable private selectedAddress?: Address;\r\n\r\n @observable private addUpdateAddress: any;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private customerAddresses: Address[] = [];\r\n\r\n @observable private validationError: object;\r\n\r\n @observable private addressActionResponse?: IAddressResponse;\r\n\r\n @observable private isUpdating?: boolean;\r\n\r\n @observable private hasError?: boolean;\r\n\r\n @observable private addressListSelectedAddress: Address = {};\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n // private addressFormat!: AddressFormat;\r\n private addressFormat!: any;\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 readonly telemetryContent?: ITelemetryContent;\r\n\r\n private autoSuggest?: AutoSuggest;\r\n\r\n private readonly multiplePickupStoreSwitchName: string = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n\r\n private retailMultiplePickUpOptionEnabled?: boolean = false;\r\n\r\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\r\n\r\n public constructor(props: ICheckoutAddressProps) {\r\n super(props);\r\n this.state = {\r\n shippingGroups: [],\r\n showSmarty: false,\r\n smartyFailed: false,\r\n smartyAddress: [],\r\n loading: false,\r\n addressListValidated: false\r\n };\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\r\n this.currentOperation = AddressOperation.List;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.customerAddresses = data.address.result || [];\r\n 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.validationError = {};\r\n this.retailMultiplePickUpOptionEnabled = data.featureState.result?.find(\r\n feature => feature.Name === this.multiplePickupStoreSwitchName\r\n )?.IsEnabled;\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\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 resources\r\n } = this.props;\r\n\r\n // Initializing data props\r\n this._dataInitialize(this.props);\r\n\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\r\n void 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?.shippingAddressFromExpressCheckout,\r\n () => {\r\n if (!this.expressPaymentDetailsFromCartPage && this._canShip()) {\r\n let address = this.props.data.checkout.result?.shippingAddressFromExpressCheckout;\r\n\r\n if (address?.TwoLetterISORegionName) {\r\n const threeLetterIsoRegionName = this.getThreeLetterIsoRegionName(address.TwoLetterISORegionName);\r\n\r\n address = { ...address, ThreeLetterISORegionName: threeLetterIsoRegionName };\r\n\r\n if (threeLetterIsoRegionName && threeLetterIsoRegionName !== this.countryRegionId) {\r\n this._onCountryChange(threeLetterIsoRegionName);\r\n }\r\n }\r\n\r\n this._updateCurrentOperation(AddressOperation.Add, address);\r\n void this._onAddressAddUpdateSubmit();\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 if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\r\n reaction(\r\n () => this.props.data.checkout.result?.checkoutError,\r\n (checkoutError: any) => {\r\n if (\r\n checkoutError &&\r\n checkoutError.errorLocation === ErrorLocation.CheckoutShippingAddress &&\r\n checkoutError.errorMessage\r\n ) {\r\n this._setErrorMessage(checkoutError.errorMessage);\r\n }\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.checkoutErrorFocus,\r\n (checkoutErrorFocus: any) => {\r\n if (checkoutErrorFocus === CheckoutModule.CheckoutShippingAddress) {\r\n void focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\r\n }\r\n }\r\n );\r\n }\r\n\r\n await this._initPickupGroup();\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(nextProps: ICheckoutAddressProps, nextState: ICheckoutAddresState): 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 if (!this._canShip()) {\r\n return null;\r\n }\r\n\r\n const {\r\n config,\r\n context,\r\n renderView,\r\n resources,\r\n moduleState: { hasError }\r\n } = this.props;\r\n const { headingImages, itemsText, singleItemText, errorMessageTitle } = resources;\r\n const { imageSettings } = config;\r\n\r\n // Line images\r\n const cartlines: ICheckoutShippingCartLineInfo[] = this.state.shippingGroups\r\n .filter(x => !ObjectExtensions.isNullOrUndefined(x.product))\r\n .map(line => ({\r\n lineId: line.cartLine.LineId ?? '',\r\n imageProps: {\r\n requestContext: context.actionContext.requestContext,\r\n className: 'ms-checkout-shipping-address__group-images-lines-line-image',\r\n altText: line.product?.Name,\r\n src: line.product?.PrimaryImageUrl ?? '',\r\n fallBackSrc: getFallbackImageUrl(line.product?.ItemId, context.actionContext.requestContext.apiSettings),\r\n gridSettings: context.request.gridSettings!,\r\n imageSettings: imageSettings ?? defaultImageSettings,\r\n loadFailureBehavior: 'empty'\r\n },\r\n quantity: line.cartLine.Quantity ?? 0\r\n }));\r\n\r\n const quantity = 1;\r\n const itemText = cartlines.length > quantity ? itemsText : singleItemText;\r\n\r\n const lineImageProps: ICheckoutShippingCartLinesProps = {\r\n moduleClassName: 'ms-checkout-shipping-address',\r\n cartLines: cartlines.filter(x => !ObjectExtensions.isNullOrUndefined(x)),\r\n itemTitle: `(${format(itemText, cartlines.length)})`,\r\n title: headingImages,\r\n resources: this.props.resources\r\n };\r\n\r\n const cartLineImages: React.ReactNode = ;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const { featureState } = this.props.data;\r\n const isRetailMultiplePickUpOptionEnabled = featureState.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\r\n ?.IsEnabled;\r\n\r\n const errorMessage = this.state.errorMessage;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n showSmarty: this.state.showSmarty,\r\n smartyFailed: this.state.smartyFailed,\r\n smartyAddress: this.state.smartyAddress,\r\n loading: this.state.loading,\r\n currentOperation: this.currentOperation,\r\n selectedAddress: this.selectedAddress,\r\n addUpdateAddress: this.addUpdateAddress,\r\n addressListSelectedAddress: this.addressListSelectedAddress,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n customerAddresses: this.customerAddresses,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n isUpdating: this.isUpdating,\r\n hasError: this.hasError,\r\n className: config.className,\r\n viewState: {\r\n isShowAddress: this.currentOperation === AddressOperation.Show && this.selectedAddress,\r\n isShowAddresList: this.currentOperation === AddressOperation.List && this.customerAddresses.length > 0,\r\n isShowAddOrUpdateAddress:\r\n this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update\r\n },\r\n CheckoutShippingAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-shipping-address', config.className)\r\n },\r\n showAddress: this._renderShowAddress(),\r\n alert: hasError && errorMessage && ,\r\n checkoutErrorRef: this.checkoutErrorRef,\r\n\r\n /**\r\n * Show address select.\r\n * @param onAddAddressHandler - On add address click function.\r\n * @param onSaveHandler - On save click function.\r\n * @param onCancelHandler - On cancel click function.\r\n * @returns - Renders select address.\r\n */\r\n showAddressSelectHandler: (onAddAddressHandler?: () => void, onSaveHandler?: () => void, onCancelHandler?: () => void) =>\r\n this._renderSelectAddress(onAddAddressHandler, onSaveHandler, onCancelHandler),\r\n\r\n /**\r\n * Show add/update address.\r\n * @param onSaveHandler - On save click function.\r\n * @param onCancelHandler - On cancel click function.\r\n * @returns - Renders select address.\r\n */\r\n showAddOrUpdateAddressHandler: (onSaveHandler?: () => void, onCancelHandler?: () => void) =>\r\n this._renderAddOrUpdateAddress(onSaveHandler, onCancelHandler),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\r\n cartLineImages: isRetailMultiplePickUpOptionEnabled ? cartLineImages : undefined,\r\n showAddressSelect: this._renderSelectAddress()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Initialize pickup group.\r\n */\r\n @action\r\n private readonly _initPickupGroup = async (): Promise => {\r\n const pickupCartLines: CartLine[] = this._getCartLinesforDelivery();\r\n const cartLines: ICartLineWithProduct[] = [];\r\n\r\n try {\r\n const products = await this._getProductsByCartLines(\r\n this.props.data.checkout.result?.checkoutCart.cart.ChannelId || 0,\r\n pickupCartLines\r\n );\r\n for (const line of pickupCartLines) {\r\n const product: SimpleProduct | undefined = products.find(x => x.RecordId === line.ProductId);\r\n cartLines.push({ cartLine: line, product });\r\n }\r\n this.setState({ shippingGroups: cartLines });\r\n } catch (error) {\r\n // @ts-ignore\r\n this.props.telemetry.error(error);\r\n this.setState({ shippingGroups: [] });\r\n }\r\n };\r\n\r\n /**\r\n * On suggestion selected.\r\n * @param result - Suggestion result interface.\r\n */\r\n @action\r\n private readonly _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n this._clearAddressFields();\r\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\r\n const timeout = 0;\r\n set(this.addUpdateAddress, { Street: '' });\r\n set(this.addUpdateAddress, { ZipCode: address.ZipCode });\r\n set(this.addUpdateAddress, { CountyName: address.CountyName });\r\n set(this.addUpdateAddress, { City: address.City });\r\n set(this.addUpdateAddress, { State: address.State });\r\n set(this.addUpdateAddress, { DistrictName: address.DistrictName });\r\n set(this.addUpdateAddress, { FullAddress: address.FullAddress });\r\n\r\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\r\n setTimeout(() => {\r\n set(this.addUpdateAddress, { Street: address.Street });\r\n }, timeout);\r\n };\r\n\r\n /**\r\n * Method to 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 for (const formatAddress of addressFormatItem) {\r\n if (\r\n this.addUpdateAddress[formatAddress.name] !== undefined &&\r\n !this.autoSuggest?.excludedAddressFields.includes(formatAddress.name)\r\n ) {\r\n this.addressFormat[formatAddress.name] = '';\r\n }\r\n }\r\n this._clearValidation();\r\n };\r\n\r\n /**\r\n * Method to clear validation.\r\n */\r\n @action\r\n private readonly _clearValidation = (): void => {\r\n this.validationError = {};\r\n };\r\n\r\n public get expressPaymentDetailsFromCartPage(): IExpressPaymentDetails | null {\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const properties =\r\n this.props.data.cart?.result?.cart?.ExtensionProperties?.find(property => property.Key === 'expressPaymentDetails')?.Value\r\n ?.StringValue ?? '';\r\n\r\n return properties ? (JSON.parse(properties) as IExpressPaymentDetails) : null;\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: ICheckoutAddressProps): 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.address.result,\r\n () => {\r\n this.customerAddresses = data.address.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 reaction(\r\n () => data.featureState.result,\r\n () => {\r\n this.retailMultiplePickUpOptionEnabled = data.featureState.result?.find(\r\n feature => feature.Name === this.multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Method to get cart lines for delivery.\r\n * @returns The cart line collection.\r\n */\r\n private readonly _getCartLinesforDelivery = (): CartLine[] => {\r\n return this.props.data.checkout.result?.checkoutCart.cart.CartLines?.filter(line => this._isDelivery(line)) ?? [];\r\n };\r\n\r\n /**\r\n * Method to check cart line for delivery.\r\n * @param line -The cart line.\r\n * @returns True/false as per cart line delivery mode.\r\n */\r\n private readonly _isDelivery = (line: CartLine): boolean => {\r\n return this._isNotPickupMode(line.DeliveryMode) && (line.FulfillmentStoreId === undefined || line.FulfillmentStoreId === '');\r\n };\r\n\r\n /**\r\n * Method to check cart line for delivery.\r\n * @param deliveryMode -The delivery mode.\r\n * @returns True/false as per cart line delivery mode.\r\n */\r\n private readonly _isNotPickupMode = (deliveryMode: string | undefined): boolean => {\r\n const pickupDeliveryModeCode = this.props.context.request.channel?.PickupDeliveryModeCode;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const { channelDeliveryOptionConfig, featureState } = this.props.data;\r\n const retailMultiplePickUpOptionEnabled = featureState.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\r\n ?.IsEnabled;\r\n if (retailMultiplePickUpOptionEnabled && deliveryMode !== undefined) {\r\n const pickupDeliveryMode = channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.some(\r\n pickupMode => pickupMode !== deliveryMode\r\n );\r\n return pickupDeliveryMode !== undefined ? pickupDeliveryMode : false;\r\n }\r\n return deliveryMode !== undefined && pickupDeliveryModeCode !== undefined && deliveryMode !== pickupDeliveryModeCode;\r\n };\r\n\r\n /**\r\n * Method to check cart line for delivery.\r\n * @param channelId - The channelId.\r\n * @param cartLines - Cart line collections.\r\n * @returns Collection of SimpleProduct.\r\n */\r\n private readonly _getProductsByCartLines = async (channelId: number, cartLines: CartLine[]): Promise => {\r\n const actionContext = this.props.context.actionContext;\r\n const productInputs = cartLines\r\n .filter(line => !ObjectExtensions.isNullOrUndefined(line.ProductId))\r\n .map(\r\n line =>\r\n new ProductInput(\r\n line.ProductId || 0,\r\n actionContext.requestContext.apiSettings,\r\n channelId,\r\n undefined,\r\n actionContext.requestContext,\r\n line.CatalogId || 0\r\n )\r\n );\r\n return getSimpleProducts(productInputs, actionContext);\r\n };\r\n\r\n /**\r\n * Method to render add/update address.\r\n * @param onSaveHandler -- Handles onsave functionality.\r\n * @param onCancelHandler -- Handles oncancel functionality.\r\n * @returns Address app/update props.\r\n */\r\n private readonly _renderAddOrUpdateAddress = (onSaveHandler?: () => void, onCancelHandler?: () => void): IAddressAddUpdateProps => {\r\n const addressFormat =\r\n this.currentOperation === AddressOperation.Add && this.addressCommon.isAuthenticatedFlow()\r\n ? this.addressFormat\r\n : this.addressFormat;\r\n\r\n /**\r\n * On Cancel Button Function.\r\n */\r\n const onCancelButtonHandler = () => {\r\n this._resetView();\r\n onCancelHandler?.();\r\n };\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n hasError: this.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n loading: this.state.loading,\r\n\r\n /**\r\n * On Save Function.\r\n */\r\n onSave: () => {\r\n this.onSubmit();\r\n onSaveHandler?.();\r\n },\r\n onCustomSave: this._onAddressAddUpdateSubmitCustom,\r\n onSaveSmarty: this._onAddressAddUpdateSubmit,\r\n\r\n onCancel: !this.selectedAddress && !this.addressCommon.isAuthenticatedFlow() ? () => {} : onCancelButtonHandler\r\n });\r\n };\r\n\r\n /**\r\n * Method to render select address.\r\n * @param onAddAddressHandler - To handle add address button click.\r\n * @param onSaveHandler - To handle save button click.\r\n * @param onCancelHandler - To handle cancel button click.\r\n * @returns Select address props.\r\n */\r\n private readonly _renderSelectAddress = (\r\n onAddAddressHandler?: () => void,\r\n onSaveHandler?: () => void,\r\n onCancelHandler?: () => void\r\n ): ILdsAddressSelectProps => {\r\n let country: any;\r\n if (this.props.data.cart && this.props.data.cart.result && this.props.data.cart.result.cart.ExtensionProperties) {\r\n country = this.props.data.cart.result.cart.ExtensionProperties.filter((value: any) => {\r\n return value.Key === 'Country';\r\n });\r\n }\r\n /**\r\n * On Cancel Button Function.\r\n */\r\n const onCancelButtonHandler = () => {\r\n this._resetView();\r\n onCancelHandler?.();\r\n };\r\n let filteredAddresses: Address[] | null;\r\n\r\n //Custom code added to remove any addresses that do not align with current country.\r\n\r\n if (country) {\r\n filteredAddresses = this.customerAddresses.filter((address: Address) => {\r\n return address.ThreeLetterISORegionName === country[0].Value.StringValue && address.Name !== '';\r\n });\r\n } else {\r\n filteredAddresses = null;\r\n }\r\n let addressesForList: any;\r\n if (country && country[0].Value.StringValue === 'BRA' && filteredAddresses) {\r\n addressesForList = filteredAddresses.filter((address: any) => {\r\n return address.DistrictName !== '' && address.City !== '' && address.Street !== '';\r\n });\r\n }\r\n if (country && country[0].Value.StringValue === 'MEX' && filteredAddresses) {\r\n addressesForList = filteredAddresses.filter((address: any) => {\r\n return address.DistrictName !== '' && address.City !== '' && address.Street !== '';\r\n });\r\n }\r\n if (country && country[0].Value.StringValue === 'PER' && filteredAddresses) {\r\n addressesForList = filteredAddresses.filter((address: any) => {\r\n return (\r\n address.Name !== '' && address.City !== '' && address.Street !== '' && address.State !== '' && address.ZipCode !== ''\r\n );\r\n });\r\n }\r\n if (country && country[0].Value.StringValue === 'GHA' && filteredAddresses) {\r\n addressesForList = filteredAddresses.filter((address: any) => {\r\n return address.Street.toLowerCase().includes('stake');\r\n });\r\n }\r\n if (country && country[0].Value.StringValue === 'CIV' && filteredAddresses) {\r\n addressesForList = filteredAddresses.filter((address: any) => {\r\n return address.Street.toLowerCase().includes('stake');\r\n });\r\n }\r\n if (country && country[0].Value.StringValue === 'NGA' && filteredAddresses) {\r\n addressesForList = filteredAddresses.filter((address: any) => {\r\n return address.Street.toLowerCase().includes('stake');\r\n });\r\n }\r\n\r\n return AddressSelect({\r\n addressFormat: this.addressFormat,\r\n addresses: addressesForList ? addressesForList : filteredAddresses ? filteredAddresses : this.customerAddresses,\r\n resources: this.resources,\r\n addressPurposes: this.addressPurposes,\r\n selectedAddress: this.addressListSelectedAddress,\r\n onAddressOptionChange: this._onAddressOptionChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n telemetryContent: this.telemetryContent,\r\n\r\n /**\r\n * On Add Address Function.\r\n */\r\n onAddAddress: () => {\r\n this._goToAddAddress();\r\n onAddAddressHandler?.();\r\n },\r\n\r\n /**\r\n * On Save Function.\r\n */\r\n onSave: () => {\r\n this._onSelectAddress();\r\n onSaveHandler?.();\r\n },\r\n\r\n onCancel: !this.selectedAddress ? () => {} : onCancelButtonHandler\r\n });\r\n };\r\n\r\n /**\r\n * Method to render show address.\r\n * @returns Show address props.\r\n */\r\n private _renderShowAddress(): IAddressShowProps | null {\r\n if (this.selectedAddress) {\r\n return AddressShow({\r\n address: this.selectedAddress,\r\n addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''),\r\n addressPurposes: this.addressPurposes\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to render map auto suggest.\r\n */\r\n private readonly _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded) {\r\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n };\r\n\r\n /**\r\n * Method gets called on address option change.\r\n * @param event - To get current option.\r\n */\r\n private readonly _onAddressOptionChange = (event: React.ChangeEvent) => {\r\n const addressRecordId = event.currentTarget.value;\r\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\r\n if (selectedAddress) {\r\n this.addressListSelectedAddress = selectedAddress;\r\n if (selectedAddress.Email === '') {\r\n selectedAddress.Email = this.props.context.request.user.emailAddress;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Method to render map auto suggest.\r\n * @param name - Address name field.\r\n * @param value - Address name value field.\r\n */\r\n private readonly onAddressAddUpdate = (name: string, value: string | boolean) => {\r\n let filteredStateList: any;\r\n if (this.props.context.request.locale === 'en-US' && name === 'State' && this.addUpdateAddress.ThreeLetterISORegionName === 'KOR') {\r\n // @ts-ignore\r\n filteredStateList = stateCheckList.some(item => item.label === value);\r\n } else if (name === 'State' && this.addUpdateAddress.ThreeLetterISORegionName === 'KOR') {\r\n // @ts-ignore\r\n filteredStateList = stateCheckListKo.some(item => item.label === value);\r\n } else if (name === 'State' && this.addUpdateAddress.ThreeLetterISORegionName === 'VNM') {\r\n // @ts-ignore\r\n filteredStateList = cityCheck.includes(value);\r\n }\r\n\r\n if (filteredStateList === true && name === 'State') {\r\n set(this.addUpdateAddress, { [name]: value, City: value });\r\n } else if (filteredStateList === false && name === 'State') {\r\n set(this.addUpdateAddress, { [name]: value, City: '' });\r\n } else {\r\n set(this.addUpdateAddress, { [name]: value });\r\n }\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n };\r\n\r\n /**\r\n * Method to get called on address update change.\r\n * @param event - Input element.\r\n */\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n this.onAddressAddUpdate(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n };\r\n\r\n /**\r\n * Method to get called on address update dropdown change.\r\n * @param event - Select element.\r\n */\r\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n };\r\n\r\n /**\r\n * Method to get called on address update submit.\r\n */\r\n // LDS DEV NOTE: Custom submit for customShippingSections needed as this allows the custom forms created for specific countries to continue and add new\r\n //Addresses to the customers address book.\r\n private readonly _onAddressAddUpdateSubmitCustom = (\r\n address: any,\r\n countryRegion?: string,\r\n unitName?: string,\r\n stakeName?: string\r\n ): void => {\r\n this.setState({ loading: true });\r\n address.ThreeLetterISORegionName = countryRegion\r\n ? countryRegion\r\n : address.ThreeLetterISORegionName\r\n ? address.ThreeLetterISORegionName\r\n : 'BRA';\r\n if (address && address.Email && address.Email === '') {\r\n address.Email = this.props.context.request.user.emailAddress;\r\n }\r\n if (unitName && stakeName && address && address.Street) {\r\n address.Street = `${unitName}\\n${stakeName}\\n${address.Street}`;\r\n }\r\n\r\n let response: Promise;\r\n if (this._isNewAddressCustom(address)) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(address)\r\n : this.addressCommon.addCustomerAddress(address);\r\n } else {\r\n response = Promise.resolve({ address: address });\r\n }\r\n // this.setState({ loading: false });\r\n\r\n this.isUpdating = true;\r\n this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n this._clearError();\r\n this.setState({ loading: false });\r\n if (result.customerAddresses) {\r\n this._onAddOrUpdateSuccess({ customerAddresses: result.customerAddresses, address: result.address });\r\n } else {\r\n this._onAddOrUpdateSuccess({ address: result.address });\r\n }\r\n } else {\r\n this.setState({ loading: false });\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n this._updateModuleState();\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Method to get called on address update submit.\r\n */\r\n private readonly _onAddressAddUpdateSubmit = async (address?: any, skipSmarty?: boolean): Promise => {\r\n const UserAddress: any = address || this.addUpdateAddress;\r\n\r\n if (skipSmarty === false) {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n return;\r\n }\r\n await this._getSmartyAddress(UserAddress);\r\n } else {\r\n this.setState({ loading: true });\r\n let customAddress: Address;\r\n if (address && address.isdeliverable) {\r\n customAddress = {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue,\r\n City: address.city,\r\n Name: this.addUpdateAddress.Name,\r\n State: address.state,\r\n Street: address.street2 ? `${address.street} ${address.street2}` : `${address.street}`,\r\n ThreeLetterISORegionName: address.country,\r\n ZipCode: address.plusfour ? `${address.zipcode}-${address.plusfour}` : address.zipcode,\r\n Email:\r\n UserAddress.Email && UserAddress.Email !== ''\r\n ? UserAddress.Email\r\n : this.props.context.request.user.emailAddress\r\n ? this.props.context.request.user.emailAddress\r\n : '',\r\n TaxGroup: UserAddress.TaxGroup ? UserAddress.TaxGroup : ''\r\n };\r\n } else {\r\n customAddress = {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue,\r\n City: UserAddress.City,\r\n Name: this.addUpdateAddress.Name,\r\n State: UserAddress.State,\r\n Street: UserAddress.Street,\r\n TaxGroup: UserAddress.TaxGroup,\r\n ThreeLetterISORegionName: UserAddress.ThreeLetterISORegionName,\r\n ZipCode: UserAddress.ZipCode,\r\n Email:\r\n UserAddress.Email && UserAddress.Email !== ''\r\n ? UserAddress.Email\r\n : this.props.context.request.user.emailAddress\r\n ? this.props.context.request.user.emailAddress\r\n : '',\r\n StreetNumber: UserAddress.StreetNumber || '',\r\n DistrictName: UserAddress.District || UserAddress.DistrictName || ''\r\n };\r\n let street: any;\r\n if (UserAddress.Street_2 && UserAddress.Street) {\r\n street = `${UserAddress.Street.replace(/\\n/g, '')} ${UserAddress.Street_2}`;\r\n customAddress.Street = street;\r\n } else if (UserAddress.Street) {\r\n street = `${UserAddress.Street.replace(/\\n/g, '')}`;\r\n customAddress.Street = street;\r\n }\r\n if (UserAddress && UserAddress.Street_2) {\r\n delete UserAddress.Street_2;\r\n }\r\n }\r\n\r\n if (UserAddress.ThreeLetterISORegionName === 'USA' || UserAddress.ThreeLetterISORegionName === 'CAN') {\r\n customAddress.TaxGroup = 'Vertex';\r\n }\r\n if (UserAddress.ThreeLetterISORegionName === 'KOR' && this.addUpdateAddress.State) {\r\n if (\r\n this.addUpdateAddress.City !== '' &&\r\n !this.addUpdateAddress.Street &&\r\n !this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)\r\n ) {\r\n this.setState({ loading: false });\r\n return;\r\n } else {\r\n // @ts-ignore\r\n if (this.validationError && this.validationError.City) {\r\n // @ts-ignore\r\n this.validationError.City = null;\r\n }\r\n }\r\n } else if (UserAddress.ThreeLetterISORegionName === 'VNM' && this.addUpdateAddress.State) {\r\n if (\r\n this.addUpdateAddress.City !== '' &&\r\n !this.addUpdateAddress.Street &&\r\n !this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)\r\n ) {\r\n this.setState({ loading: false });\r\n return;\r\n } else {\r\n // @ts-ignore\r\n if (this.validationError && this.validationError.City) {\r\n // @ts-ignore\r\n this.validationError.City = null;\r\n }\r\n }\r\n } else {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n this.setState({ loading: false });\r\n return;\r\n }\r\n }\r\n\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow() && this._isNewAddress(customAddress)) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(customAddress)\r\n : this.addressCommon.addCustomerAddress(customAddress);\r\n } else {\r\n response = Promise.resolve({ address: customAddress });\r\n }\r\n\r\n this.isUpdating = true;\r\n this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n this.setState({ showSmarty: false, loading: false });\r\n\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n this._clearError();\r\n if (result.customerAddresses) {\r\n const newAddress = result.customerAddresses.filter((address: Address) => {\r\n return (\r\n address.Street === customAddress.Street &&\r\n address.Name === customAddress.Name &&\r\n address.ThreeLetterISORegionName === customAddress.ThreeLetterISORegionName\r\n );\r\n });\r\n\r\n if (newAddress && newAddress[0]) {\r\n this._onAddOrUpdateSuccess({ customerAddresses: result.customerAddresses, address: newAddress[0] });\r\n } else {\r\n this._onAddOrUpdateSuccess({ customerAddresses: result.customerAddresses, address: result.address });\r\n }\r\n } else {\r\n this._onAddOrUpdateSuccess({ address: result.address });\r\n }\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n this._updateModuleState();\r\n }\r\n );\r\n }\r\n };\r\n /**\r\n * Method to get called on address update submit.\r\n */\r\n private readonly _getSmartyAddress = async (address: any): Promise => {\r\n // address.street2 = address.Street_2;\r\n const smartyStreets = await getSmartyStreetAddress(this.props.context, address);\r\n if (smartyStreets && smartyStreets.isdeliverable && smartyStreets.isdeliverable === true) {\r\n this.setState({ showSmarty: true, smartyAddress: smartyStreets });\r\n return true;\r\n } else {\r\n this.setState({ smartyFailed: true, smartyAddress: address });\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * Method to get called on country change.\r\n * @param countryRegionId - Country region id.\r\n */\r\n private readonly _onCountryChange = (countryRegionId: string) => {\r\n this.countryRegionId = countryRegionId;\r\n const twoLetterIsoRegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\r\n set(this.addUpdateAddress, { ThreeLetterISORegionName: countryRegionId });\r\n set(this.addUpdateAddress, { TwoLetterISORegionName: twoLetterIsoRegionName });\r\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterIsoRegionName);\r\n this._clearAddressFields();\r\n };\r\n\r\n /**\r\n * Method to get all address format exclude list.\r\n * @returns Collection of address items.\r\n */\r\n private readonly _getAddressFormatExcludeList = (): AddressItemType[] => {\r\n const { config } = this.props;\r\n const addressFormatExcludeList: AddressItemType[] = [];\r\n\r\n if (!config.showAddressType) {\r\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\r\n }\r\n\r\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\r\n\r\n return addressFormatExcludeList;\r\n };\r\n\r\n /**\r\n * Method to get all state/provinces.\r\n */\r\n private readonly _getStateProvinces = (): void => {\r\n if (\r\n !this.countryRegionId ||\r\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n return;\r\n }\r\n\r\n void this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n set(this.addUpdateAddress, { State: '' });\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n });\r\n };\r\n\r\n /**\r\n * Method to set default country region id.\r\n */\r\n private _setDefaultCountryRegionId(): void {\r\n // const { request } = this.props.context;\r\n // const market = request.channel?.ChannelCountryRegionISOCode;\r\n\r\n let countryExtension: any;\r\n let country;\r\n if (this.props.data.cart.result && this.props.data.cart.result.cart && this.props.data.cart.result.cart.ExtensionProperties) {\r\n countryExtension = this.props.data.cart.result.cart.ExtensionProperties.filter((property: any) => {\r\n return property.Key === 'Country';\r\n });\r\n\r\n if (countryExtension) {\r\n country = countryExtension[0].Value.StringValue;\r\n }\r\n }\r\n // this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(country, this.countryRegions, market);\r\n\r\n this.countryRegionId = country;\r\n }\r\n\r\n /**\r\n * Method to get default address region id.\r\n * @returns - Address object from existing addresses.\r\n */\r\n private readonly _getDefaultAddress = (): Address | undefined => {\r\n // if (this.customerAddresses) {\r\n // const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\r\n // return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\r\n // }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Method to get address from express payment details from cart page.\r\n * @returns - Address.\r\n */\r\n private readonly _getAddressFromCartExpressPaymentDetails = (): Address | undefined => {\r\n if (this.expressPaymentDetailsFromCartPage) {\r\n const { tokenizedPaymentCard, address, isExpressAddressAppliedInCartPage } = this.expressPaymentDetailsFromCartPage;\r\n\r\n let addressFromCartExpress: Address | undefined;\r\n\r\n if (isExpressAddressAppliedInCartPage) {\r\n addressFromCartExpress = address ? this.getExpressAddress(address) : undefined;\r\n } else {\r\n addressFromCartExpress = tokenizedPaymentCard ? this.getAddressFromTokenizedPaymentCard(tokenizedPaymentCard) : undefined;\r\n }\r\n\r\n return addressFromCartExpress;\r\n }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Get address from tokenizedPaymentCard.\r\n * @param tokenizedPaymentCard -- The tokenizedPaymentCard from the payment.\r\n * @returns The address.\r\n */\r\n private readonly getAddressFromTokenizedPaymentCard = (tokenizedPaymentCard: TokenizedPaymentCard): Address => {\r\n const twoLetterIsoRegionName = tokenizedPaymentCard.Country;\r\n\r\n const threeLetterIsoRegionName = twoLetterIsoRegionName ? this.getThreeLetterIsoRegionName(twoLetterIsoRegionName) : undefined;\r\n\r\n if (threeLetterIsoRegionName && threeLetterIsoRegionName !== this.countryRegionId) {\r\n this._onCountryChange(threeLetterIsoRegionName);\r\n }\r\n\r\n const address: Address = {\r\n TwoLetterISORegionName: twoLetterIsoRegionName,\r\n Name: tokenizedPaymentCard.NameOnCard,\r\n Street: tokenizedPaymentCard.Address1,\r\n StreetNumber: tokenizedPaymentCard.Address2,\r\n City: tokenizedPaymentCard.City,\r\n State: tokenizedPaymentCard.State,\r\n ZipCode: tokenizedPaymentCard.Zip,\r\n Phone: tokenizedPaymentCard.Phone,\r\n ThreeLetterISORegionName: threeLetterIsoRegionName,\r\n AddressTypeValue: this.defaultAddressType\r\n };\r\n\r\n return address;\r\n };\r\n\r\n /**\r\n * Get address from expressAddress.\r\n * @param expressAddress -- The expressAddress.\r\n * @returns The address.\r\n */\r\n private readonly getExpressAddress = (expressAddress: Address): Address => {\r\n const twoLetterIsoRegionName = expressAddress.TwoLetterISORegionName;\r\n\r\n const threeLetterIsoRegionName = twoLetterIsoRegionName ? this.getThreeLetterIsoRegionName(twoLetterIsoRegionName) : undefined;\r\n\r\n if (threeLetterIsoRegionName && threeLetterIsoRegionName !== this.countryRegionId) {\r\n this._onCountryChange(threeLetterIsoRegionName);\r\n }\r\n\r\n const address: Address = {\r\n ...expressAddress,\r\n ThreeLetterISORegionName: threeLetterIsoRegionName,\r\n AddressTypeValue: this.defaultAddressType\r\n };\r\n\r\n return address;\r\n };\r\n\r\n /**\r\n * Get three letter ISO region name from two letter ISO region name.\r\n * @param twoLetterIsoRegionName -- The three letter ISO region name.\r\n * @returns The three letter ISO region name.\r\n */\r\n private readonly getThreeLetterIsoRegionName = (twoLetterIsoRegionName: string): string | undefined => {\r\n const countryRegion = this.countryRegions.find(country => {\r\n return country.ISOCode?.toLowerCase() === twoLetterIsoRegionName.toLowerCase();\r\n });\r\n\r\n return countryRegion?.CountryRegionId;\r\n };\r\n\r\n /**\r\n * Method to initialize all module state.\r\n */\r\n private readonly _initModuleState = (): void => {\r\n this.props.moduleState.init({\r\n status: this._canShip() ? 'updating' : 'disabled',\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit\r\n });\r\n\r\n const checkoutState = this.props.data.checkout.result;\r\n\r\n if (this._canShip()) {\r\n let defaultAddress;\r\n const shippingCartLines: CartLine[] = this._getCartLinesforDelivery();\r\n\r\n if (checkoutState?.checkoutCart.cart.ShippingAddress) {\r\n defaultAddress = checkoutState.checkoutCart.cart.ShippingAddress;\r\n } else if (ArrayExtensions.hasElements(shippingCartLines) && shippingCartLines[0].ShippingAddress !== undefined) {\r\n defaultAddress = shippingCartLines[0].ShippingAddress;\r\n } else if (this._getAddressFromCartExpressPaymentDetails()) {\r\n defaultAddress = this._getAddressFromCartExpressPaymentDetails();\r\n } else if (this._getDefaultAddress()) {\r\n defaultAddress = this._getDefaultAddress();\r\n } else {\r\n defaultAddress = checkoutState?.isExpressCheckoutApplied ? checkoutState.shippingAddressFromExpressCheckout : undefined;\r\n }\r\n\r\n if (defaultAddress && !this.addressCommon.isEmpty(defaultAddress)) {\r\n this._updateCurrentOperation(AddressOperation.Show, defaultAddress);\r\n this._setShippingAddress(defaultAddress);\r\n this._updateModuleState();\r\n checkoutState?.updateHasShippingAddress({ newHasShippingAddress: true });\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.List);\r\n checkoutState?.updateHasShippingAddress({ newHasShippingAddress: false });\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on submit address.\r\n */\r\n private readonly onSubmit = (address?: any, skipSmarty?: boolean): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this.props.telemetry.information('Shipping address submit for Add or Update operation.');\r\n void this._onAddressAddUpdateSubmit(address, skipSmarty);\r\n break;\r\n case AddressOperation.List:\r\n this.props.telemetry.information('Shipping address submit for List operation.');\r\n this._onSelectAddress();\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on cancel.\r\n */\r\n private readonly onCancel = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this.props.telemetry.information('Shipping address cancel for Add or Update operation.');\r\n this._clearAddressFields();\r\n if (!(!this.selectedAddress && !this.addressCommon.isAuthenticatedFlow())) {\r\n this._resetView();\r\n }\r\n\r\n break;\r\n case AddressOperation.List:\r\n this.props.telemetry.information('Shipping address cancel for List operation.');\r\n if (this.selectedAddress) {\r\n this._resetView();\r\n }\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on edit address.\r\n */\r\n private readonly onEdit = (): void => {\r\n this.props.telemetry.information('Shipping address onEdit is called.');\r\n\r\n if (this.addressCommon.isAuthenticatedFlow() && this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.List, this.shippingAddress);\r\n } else if (this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.Update, this.shippingAddress);\r\n }\r\n\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * Method to check if checkout cartlines are available fro shipping.\r\n * @returns - True/false as per the delivery mode.\r\n */\r\n private readonly _canShip = (): boolean => {\r\n const { checkout, channelDeliveryOptionConfig } = this.props.data;\r\n const { request } = this.props.context;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n if (!checkout.result || !request.channel || checkout.result.checkoutCart.isEmpty || checkout.result.checkoutCart.hasInvoiceLine) {\r\n return false;\r\n }\r\n\r\n // @ts-expect-error: Type-checker not realizing above request.channel check\r\n return this.retailMultiplePickUpOptionEnabled\r\n ? 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 : 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 /**\r\n * Method get called on select address.\r\n */\r\n private readonly _onSelectAddress = () => {\r\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\r\n this._setShippingAddress(this.addressListSelectedAddress);\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * Method get called on goto add address.\r\n */\r\n private readonly _goToAddAddress = () => {\r\n this._setDefaultCountryRegionId();\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n };\r\n\r\n /**\r\n * Method get called on add/update success.\r\n * @param response - Retail api response.\r\n */\r\n private readonly _onAddOrUpdateSuccess = (response: IAddressResponse) => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n\r\n if (response.address) {\r\n this._updateCurrentOperation(AddressOperation.Show, response.address);\r\n this._setShippingAddress(response.address);\r\n this._updateModuleState();\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on set Shipping Address.\r\n * @param address - Retail Api address result.\r\n */\r\n private readonly _setShippingAddress = (address: Address): void => {\r\n if (this.props.data.checkout.result) {\r\n const newShippingAddress = { ...address };\r\n\r\n if (address.ThreeLetterISORegionName && !newShippingAddress.TwoLetterISORegionName) {\r\n newShippingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\r\n }\r\n\r\n void this.props.data.checkout.result.updateShippingAddress({ newShippingAddress });\r\n this.props.data.checkout.result.checkoutCart.updateShippingAddress({ newShippingAddress }).catch(error => {\r\n this.props.telemetry.error(error);\r\n });\r\n }\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 /**\r\n * Method get called on reset view.\r\n */\r\n private readonly _resetView = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._updateCurrentOperation(\r\n this.addressCommon.isAuthenticatedFlow() ? AddressOperation.List : AddressOperation.Show,\r\n this.shippingAddress\r\n );\r\n break;\r\n default:\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n }\r\n this._updateModuleState();\r\n };\r\n\r\n /**\r\n * Update current operation.\r\n * @param operation - The 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 // @ts-ignore\r\n this.addUpdateAddress = { ...this.selectedAddress } || {};\r\n set(this.addUpdateAddress, {\r\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType\r\n });\r\n } else if (this.currentOperation === AddressOperation.List) {\r\n // @ts-ignore\r\n this.addressListSelectedAddress = { ...this.selectedAddress } || {};\r\n }\r\n };\r\n\r\n /**\r\n * Update 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 if (this.isUpdating) {\r\n this.props.moduleState.onPending();\r\n } else {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n\r\n /**\r\n * Method to check if the customer already has the address.\r\n * @param address - The address.\r\n */\r\n private readonly _isNewAddressCustom = (address: Address): boolean => {\r\n for (const existingAddress of this.customerAddresses) {\r\n if (\r\n (address.Name ?? '') === existingAddress.Name &&\r\n (address.Street ?? '') === existingAddress.Street &&\r\n (address.StreetNumber ?? '') === existingAddress.StreetNumber &&\r\n (address.City ?? '') === existingAddress.City &&\r\n (address.State ?? '') === existingAddress.State &&\r\n (address.ZipCode ?? '') === existingAddress.ZipCode &&\r\n (address.Phone ?? '') === existingAddress.Phone &&\r\n (address.ThreeLetterISORegionName ?? '') === existingAddress.ThreeLetterISORegionName &&\r\n (address.AddressTypeValue ?? '') === existingAddress.AddressTypeValue &&\r\n (address.DistrictName ?? '') === existingAddress.DistrictName &&\r\n (address.StreetNumber ?? '') === existingAddress.StreetNumber\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * Method to check if the customer already has the address.\r\n * @param address - The address.\r\n */\r\n private readonly _isNewAddress = (address: Address): boolean => {\r\n for (const existingAddress of this.customerAddresses) {\r\n if (\r\n (address.Name ?? '') === existingAddress.Name &&\r\n (address.Street ?? '') === existingAddress.Street &&\r\n (address.StreetNumber ?? '') === existingAddress.StreetNumber &&\r\n (address.City ?? '') === existingAddress.City &&\r\n (address.State ?? '') === existingAddress.State &&\r\n (address.ZipCode ?? '') === existingAddress.ZipCode &&\r\n (address.Phone ?? '') === existingAddress.Phone &&\r\n (address.ThreeLetterISORegionName ?? '') === existingAddress.ThreeLetterISORegionName &&\r\n (address.AddressTypeValue ?? '') === existingAddress.AddressTypeValue\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n @action\r\n private readonly _setErrorMessage = (errorMessage: string): void => {\r\n this.props.telemetry.error(errorMessage);\r\n this.props.moduleState.setHasError(true);\r\n this.props.moduleState.onUpdating();\r\n this.setState({\r\n errorMessage\r\n });\r\n };\r\n\r\n private readonly _clearError = (): void => {\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n errorMessage: ''\r\n });\r\n };\r\n}\r\n\r\nexport default CheckoutShippingAddress;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node, INodeProps, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { AfricaCheckout } from '../lds-checkout-shipping-address-4/components/customShippingSections/AfricaShipping';\r\nimport { BrazilCheckout } from '../lds-checkout-shipping-address-4/components/customShippingSections/BrazilShipping';\r\nimport { PeruCheckout } from '../lds-checkout-shipping-address-4/components/customShippingSections/PeruShipping';\r\nimport { ChileCheckout } from '../lds-checkout-shipping-address-4/components/customShippingSections/ChileShipping';\r\nimport { UruguayCheckout } from '../lds-checkout-shipping-address-4/components/customShippingSections/UruguayShipping';\r\nimport { stateCheckListChl } from '../lds-checkout-shipping-address-4/components/countryFilterLists.tsx/Chile';\r\n\r\nimport {\r\n IAddressAddItem,\r\n IAddressAddUpdateProps\r\n} from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-add';\r\nimport {\r\n IAddressList,\r\n IAddressListItem,\r\n IAddressListProps\r\n} from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-list';\r\nimport {\r\n IAddressShowItem,\r\n IAddressShowProps\r\n} from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from './lds-account-management-address';\r\nimport { IAddressError } from '../../modules/lds-checkout-shipping-address-4/components/address/address-add';\r\n//@ts-ignore\r\nimport { Primary, Secondary, Ghost } from '@churchofjesuschrist/eden-buttons';\r\n//@ts-ignore\r\nimport { Error, Info } from '@churchofjesuschrist/eden-alert';\r\n//@ts-ignore\r\nimport { Edit, Add, Delete } from '@churchofjesuschrist/eden-icons';\r\n\r\nimport { stateNameTranslationAsync, countryStateTranslationAsync } from '../../actions/DataActionExtension.g';\r\n\r\nimport {\r\n stateCheckListMixed,\r\n stateCheckList,\r\n stateCheckListKo,\r\n cityCheck,\r\n ArgState\r\n} from '../../helpers/utilities/state-address-utilities';\r\n\r\nexport interface AddressFormProps extends React.Component {\r\n AddressForm: INodeProps;\r\n heading: React.ReactNode;\r\n items: IAddressAddItem[];\r\n hasError: boolean;\r\n error: IAddressError;\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n isFinalSubmit: boolean;\r\n // getSmarty: any;\r\n smartyAddress: any;\r\n final: any;\r\n inputAddress: any;\r\n saveAddress: any;\r\n}\r\nexport interface ILDSAddressListProps extends IAddressListProps {\r\n resources: any;\r\n setIsVisible: any;\r\n isDuplicate: any;\r\n context?: any;\r\n}\r\nexport interface ILDSAddressList extends IAddressList {\r\n setIsVisible: any;\r\n isDuplicate: any;\r\n context?: any;\r\n}\r\n\r\nexport interface ILDSAddressShowProps extends IAddressShowProps {\r\n context?: any;\r\n}\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({ AddressDetail, items, context }) => {\r\n const [stateName, setStateName] = React.useState('');\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n let filteredItems: any;\r\n\r\n const getStateTranslation = async (stateName: any, countryId: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n let translation;\r\n if (stateName && stateName[0] && countryId && countryId[0]) {\r\n translation = await stateNameTranslationAsync(\r\n ctx,\r\n countryId[0].description.props.value,\r\n stateName[0].description.props.value,\r\n context.request.locale\r\n );\r\n }\r\n\r\n if (translation && translation.DisplayName) {\r\n setStateName(translation.DisplayName);\r\n }\r\n };\r\n React.useEffect(() => {\r\n let filteredStateList: any;\r\n const findState = items.filter((item: any) => {\r\n return item.key === 'State';\r\n });\r\n const findCountry = items.filter((item: any) => {\r\n return item.key === 'ThreeLetterISORegionName';\r\n });\r\n void getStateTranslation(findState, findCountry);\r\n if (findState && findState[0] && findCountry && findCountry[0]) {\r\n // @ts-ignore\r\n if (findCountry[0].description.props.value === 'KOR') {\r\n // @ts-ignore\r\n filteredStateList = stateCheckListMixed.some(item => item.value === findState[0].description.props.value);\r\n if (filteredStateList === true) {\r\n filteredItems = items.filter((item: any) => {\r\n return item.key !== 'City';\r\n });\r\n setFilteredList(filteredItems);\r\n }\r\n // @ts-ignore\r\n } else if (findCountry[0].description.props.value === 'VNM') {\r\n // @ts-ignore\r\n filteredStateList = filteredStateList = cityCheck.includes(findState[0].description.props.value);\r\n\r\n if (filteredStateList === true) {\r\n filteredItems = items.filter((item: any) => {\r\n return item.key !== 'City';\r\n });\r\n setFilteredList(filteredItems);\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {filteredList && filteredList.length > 0\r\n ? filteredList.map((item: IAddressShowItem) => {\r\n if (item.key === 'State' && stateName) {\r\n return (\r\n \r\n {stateName}\r\n \r\n );\r\n } else {\r\n return <>{item.description};\r\n }\r\n })\r\n : items.map((item: IAddressShowItem) => {\r\n if (item.key === 'State' && stateName) {\r\n return (\r\n \r\n {stateName}\r\n \r\n );\r\n } else {\r\n return <>{item.description};\r\n }\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address List Component.\r\n * @param param0 - Root param.\r\n * @param param0.List - Address list.\r\n * @param param0.isShowList - Boolean.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressListItem[].\r\n * @returns - AddressListComponent Node.\r\n */\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items, isDuplicate, setIsVisible, context }) => {\r\n const onClickFunction = (functionToExecute: any) => {\r\n functionToExecute();\r\n isDuplicate(false);\r\n };\r\n\r\n const onClickFunctionEdit = (functionToExecute: any) => {\r\n functionToExecute();\r\n setIsVisible(false);\r\n };\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {/* {heading} */}\r\n {items.map((item: IAddressListItem) => {\r\n // const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Item, key, error, showItems, editButton, removeButton } = item;\r\n // const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n
\r\n {editButton && (\r\n <>\r\n onClickFunctionEdit(editButton.props.onClick)}\r\n >\r\n \r\n
\r\n \r\n )}\r\n {/* {removeButton} */}\r\n {removeButton && (\r\n <>\r\n onClickFunction(removeButton.props.onClick)}\r\n style={{\r\n color: '#006484',\r\n cursor: 'pointer',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n width: '100%',\r\n height: '100%'\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n {/* */}\r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Address Lists Component.\r\n * @param param0 - Root param.\r\n * @param param0.ListAddress - List address.\r\n * @param param0.heading - List heading.\r\n * @param param0.isShowEmptyListMessage - Boolean.\r\n * @param param0.emptyListMessage - Empty list message.\r\n * @param param0.addButton - Add button.\r\n * @param param0.primaryAddressList - Primary address.\r\n * @param param0.otherAddressList - Other address.\r\n * @returns Address Lists Component Node.\r\n */\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList,\r\n resources,\r\n setIsVisible,\r\n isDuplicate,\r\n context\r\n}) => {\r\n const onClickFunction = (functionToExecute: any) => {\r\n functionToExecute();\r\n setIsVisible(false);\r\n };\r\n return (\r\n \r\n {/* {heading} */}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {/* {addButton} */}\r\n {addButton && (\r\n \r\n

{resources.addNewAddressText}

\r\n onClickFunction(addButton.props.onClick)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * AddressAddUpdateComponent.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = props => {\r\n const {\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 resources,\r\n defaultCountryRegionId,\r\n context,\r\n showSmarty,\r\n smartyFailed,\r\n smartyAddress,\r\n userAddress,\r\n loading,\r\n userAddressCustom\r\n } = props;\r\n\r\n const [inputAddress, setInputAddress] = React.useState({});\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [isDisabled, setIsDisabled] = React.useState(true);\r\n const [customDisabled, setCustomDisabled] = React.useState(true);\r\n const [unitName, setUnitName] = React.useState('');\r\n const [stakeNameAddress, setStakeNameAddress] = React.useState('');\r\n const [disabled, setDisabled] = React.useState(true);\r\n const [hideCity, setHideCity] = React.useState(false);\r\n const [updatedStateList, setUpdatedStateList] = React.useState([]);\r\n\r\n const updateNames = (array1: any, array2: any) => {\r\n return array1.map((item1: any) => {\r\n const match = array2.find((item2: any) => {\r\n return item2.StateId === item1.key;\r\n });\r\n if (match && match.LongName !== '') {\r\n return { ...item1, value: match.LongName };\r\n }\r\n return item1;\r\n });\r\n };\r\n\r\n const stateListTranslation = async (stateList: any) => {\r\n let translatedStateList;\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n const response = await countryStateTranslationAsync(ctx, defaultCountryRegionId, props.context.request.locale).catch((err: any) => {\r\n return console.log(err);\r\n });\r\n\r\n if (stateList && stateList.length !== 0) {\r\n translatedStateList = updateNames(stateList, response);\r\n }\r\n\r\n if (translatedStateList && translatedStateList.length > 0) {\r\n translatedStateList.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n setUpdatedStateList(translatedStateList);\r\n } else if (updatedStateList.length !== 0) {\r\n setUpdatedStateList([]);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n let stateList: any;\r\n let response: any;\r\n if (props && props.items && props.items.length > 0) {\r\n response = props.items.filter((item: any) => {\r\n return item.key === 'State';\r\n });\r\n }\r\n if (response && response[0] && response[0].input && response[0].input.props && response[0].input.props.displayData) {\r\n stateList = response[0].input.props.displayData.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n }\r\n if (updatedStateList.length <= 0) {\r\n void stateListTranslation(stateList);\r\n } else if (updatedStateList.length <= 2) {\r\n setUpdatedStateList([]);\r\n }\r\n }, [props.items]);\r\n\r\n React.useEffect(() => {\r\n let cityCheckKOR = false;\r\n let isNullOrUndefined;\r\n if (props.items) {\r\n isNullOrUndefined = items.filter((item: any) => {\r\n if (defaultCountryRegionId === 'KOR') {\r\n cityCheckKOR = true;\r\n }\r\n let shouldHideCity;\r\n if (defaultCountryRegionId === 'KOR' && item.key === 'State') {\r\n shouldHideCity = cityCheck.includes(item.input.props.value);\r\n if (hideCity !== shouldHideCity) {\r\n setHideCity(shouldHideCity);\r\n }\r\n }\r\n\r\n if (cityCheckKOR) {\r\n if (\r\n item.input.props.additionalAddributes &&\r\n item.input.props.additionalAddributes['aria-required'] === true &&\r\n item.key !== 'City'\r\n ) {\r\n if (item.input.props.value === null || item.input.props.value === '') {\r\n return item;\r\n }\r\n }\r\n } else {\r\n if (item.input.props.additionalAddributes && item.input.props.additionalAddributes['aria-required'] === true) {\r\n if (item.input.props.value === null || item.input.props.value === '') {\r\n return item;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (isNullOrUndefined && isNullOrUndefined.length > 0) {\r\n setCustomDisabled(true);\r\n } else {\r\n setCustomDisabled(false);\r\n }\r\n }, [props]);\r\n\r\n React.useEffect(() => {\r\n if (smartyFailed) {\r\n // @ts-ignore\r\n saveButton.props.onClick(userAddress);\r\n }\r\n }, [smartyFailed]);\r\n\r\n const filteredItems = items.filter((item: any) => {\r\n if (hideCity) {\r\n return item.key !== 'Phone' && item.key !== 'City';\r\n } else {\r\n return item.key !== 'Phone';\r\n }\r\n });\r\n\r\n const customKoreaStateOnChange = (functionToExecute: any, data: any) => {\r\n if (cityCheck.includes(data.target.value)) {\r\n setHideCity(true);\r\n } else {\r\n setHideCity(false);\r\n }\r\n functionToExecute(data);\r\n };\r\n\r\n if (defaultCountryRegionId === 'MEX') {\r\n const districtIndex = filteredItems.findIndex((item: any) => item.key === 'DistrictName');\r\n\r\n const street2Index = filteredItems.findIndex((item: any) => item.key === 'Street_2');\r\n\r\n if (districtIndex !== -1 && street2Index !== -1) {\r\n const [removedDistrict] = filteredItems.splice(districtIndex, 1);\r\n\r\n filteredItems.splice(street2Index, 0, removedDistrict);\r\n }\r\n }\r\n\r\n const customSetAddress = (address: any) => {\r\n setInputAddress(address);\r\n };\r\n\r\n React.useEffect(() => {\r\n const canSubmit: any = [];\r\n if (defaultCountryRegionId === 'MEX') {\r\n filteredItems.map((item: any) => {\r\n if (\r\n item.key === 'Name' ||\r\n item.key === 'DistrictName' ||\r\n item.key === 'Street' ||\r\n item.key === 'ZipCode' ||\r\n item.key === 'City'\r\n ) {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n } else if (defaultCountryRegionId === 'PAN') {\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'Name' || item.key === 'Street' || item.key === 'ZipCode' || item.key === 'City') {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n } else if (defaultCountryRegionId === 'PER') {\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'Name' || item.key === 'Street' || item.key === 'ZipCode') {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n }\r\n }, [props]);\r\n\r\n if (loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else if (showSmarty) {\r\n if (smartyAddress.country === '') {\r\n smartyAddress.country = userAddress.ThreeLetterISORegionName ? userAddress.ThreeLetterISORegionName : '';\r\n }\r\n return (\r\n
\r\n {smartyAddress && smartyAddress.street && (\r\n
\r\n

{resources.smartyStreetAddressHeader}

\r\n
{`${userAddress && userAddress.Name ? userAddress.Name : ''}`}
\r\n
{`${smartyAddress.street} ${smartyAddress.street2}`}
\r\n
{`${smartyAddress.city}, ${smartyAddress.state} ${smartyAddress.zipcode}${smartyAddress.plusfour ? '-' : ''}${\r\n smartyAddress.plusfour\r\n }`}
\r\n
{`${smartyAddress.country}`}
\r\n {/* @ts-ignore */}\r\n {/* saveButton.props.onClick(smartyAddress)}> */}\r\n props.saveAddress(smartyAddress)}>{resources.smartyStreetsAddressButton}\r\n
\r\n )}\r\n
\r\n

{resources.userShippingAddressHeader}

\r\n
{`${userAddress && userAddress.Name ? userAddress.Name : ''}`}
\r\n
{`${userAddress.Street} ${userAddress.Street_2 || ''}`}
\r\n
{`${userAddress.City}, ${userAddress.State} ${userAddress.ZipCode}`}
\r\n
{`${userAddress.ThreeLetterISORegionName}`}
\r\n {/* @ts-ignore */}\r\n props.saveAddress(userAddress)}>{resources.userAddressButton}\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'BRA') {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n props.saveAddressCustom(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'GHA' || defaultCountryRegionId === 'CIV' || defaultCountryRegionId === 'NGA') {\r\n return (\r\n
\r\n \r\n {isVisible && (\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n \r\n // @ts-ignore\r\n props.saveAddressCustom(inputAddress, defaultCountryRegionId, unitName, stakeNameAddress)\r\n }\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'PER') {\r\n let filteredStateList;\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'State') {\r\n const { input } = item;\r\n\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData;\r\n }\r\n });\r\n return (\r\n
\r\n 0 ? updatedStateList : filteredStateList}\r\n defaultCountryRegionId={defaultCountryRegionId}\r\n currentAddress={userAddressCustom}\r\n />\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n props.saveAddressCustom(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'URY') {\r\n let filteredStateList;\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'State') {\r\n const { input } = item;\r\n\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData;\r\n }\r\n });\r\n return (\r\n
\r\n 0 ? updatedStateList : filteredStateList}\r\n defaultCountryRegionId={defaultCountryRegionId}\r\n currentAddress={userAddressCustom}\r\n />\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n props.saveAddressCustom(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'CHL') {\r\n // let filteredStateList;\r\n // filteredItems.map(item => {\r\n // if (item.key === 'State') {\r\n // const { input } = item;\r\n\r\n // // @ts-ignore\r\n // filteredStateList = input.props.displayData;\r\n // }\r\n // });\r\n let filteredStateList: any;\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'State') {\r\n // @ts-ignore\r\n filteredStateList = item.input.props.displayData.filter((option: any) => {\r\n return stateCheckListChl.some((item: any) => item.value === option.key && item.label === option.value);\r\n });\r\n }\r\n });\r\n\r\n return (\r\n
\r\n 0 ? updatedStateList : filteredStateList}\r\n defaultCountryRegionId={defaultCountryRegionId}\r\n currentAddress={userAddressCustom}\r\n />\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n props.saveAddressCustom(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n {heading}\r\n {filteredItems.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n // @ts-ignore\r\n if (input.props.id === 'shipping_addressthreeletterisoregionname') {\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n \r\n {/* @ts-ignore */}\r\n {input.props.displayData.map((data: any) => {\r\n return (\r\n // @ts-ignore\r\n \r\n );\r\n })}\r\n \r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'KOR') {\r\n let filteredStateList: any;\r\n if (context.request.locale === 'en-US') {\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData.filter((option: any) => {\r\n return stateCheckList.some(item => item.value === option.key && item.label === option.value);\r\n });\r\n } else {\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData.filter((option: any) => {\r\n return stateCheckListKo.some(item => item.value === option.key && item.label === option.value);\r\n });\r\n }\r\n // input.props.displayData;\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length > 0 ? (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'VNM') {\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length > 0 ? (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'ARG') {\r\n // @ts-ignore\r\n const filteredStateList = input.props.displayData.filter((option: any) => {\r\n return ArgState.some(item => item.key === option.key && item.value === option.value);\r\n });\r\n // input.props.displayData;\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length > 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n );\r\n })}\r\n \r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'GTM') {\r\n // @ts-ignore\r\n if (input && input.props && input.props.displayData) {\r\n // @ts-ignore\r\n input.props.displayData.map((item: any) => {\r\n if (item.key === '') {\r\n const value = item.value.split(' ');\r\n value.pop();\r\n const popValue = value.join(' ');\r\n item.value = `${popValue} ${resources.addressDepartmentLabel}`;\r\n }\r\n });\r\n }\r\n // @ts-ignore\r\n if (label && label.props && label.props.text) {\r\n // @ts-ignore\r\n label.props.text = `${resources.addressDepartmentLabel} *`;\r\n }\r\n // @ts-ignore\r\n if (alert && alert.props && alert.props.message) {\r\n // @ts-ignore\r\n alert.props.message = resources.addressDepartmentRequiredErrorMessage;\r\n }\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {input}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'MEX') {\r\n // @ts-ignore\r\n if (label && label.props && label.props.text) {\r\n // @ts-ignore\r\n label.props.text = resources.addressStateProvinceLabel;\r\n }\r\n // @ts-ignore\r\n if (alert && alert.props && alert.props.message) {\r\n // @ts-ignore\r\n alert.props.message = resources.addressStateProvinceRequiredErrorMessage;\r\n }\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length > 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n input\r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'DistrictName' && defaultCountryRegionId === 'MEX') {\r\n // @ts-ignore\r\n if (label && label.props && label.props.text) {\r\n // @ts-ignore\r\n label.props.text = resources.addressColoniaLabel;\r\n }\r\n // @ts-ignore\r\n if (alert && alert.props && alert.props.message) {\r\n // @ts-ignore\r\n alert.props.message = resources.addressColoniaRequiredErrorMessage;\r\n }\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {input}\r\n \r\n );\r\n } else if (item.key === 'State') {\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {updatedStateList && updatedStateList.length > 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n input\r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {input}\r\n \r\n );\r\n }\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {defaultCountryRegionId === 'MEX' || defaultCountryRegionId === 'PAN' ? (\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (defaultCountryRegionId === 'USA' || defaultCountryRegionId === 'CAN') ? (\r\n // @ts-ignore\r\n props.saveAddress('', false)}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : saveButton ? (\r\n // @ts-ignore\r\n props.saveAddress()} disabled={disabled}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : null}\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (defaultCountryRegionId === 'USA' || defaultCountryRegionId === 'CAN') ? (\r\n // @ts-ignore\r\n props.saveAddress(userAddressCustom, false)}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : saveButton ? (\r\n // @ts-ignore\r\n props.saveAddress(userAddressCustom)}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : null}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Account Management Address View Component.\r\n * @param props - Props.\r\n * @returns - AccountAddressManagement Module.\r\n */\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [isListVisible, setIsListVisible] = React.useState(false);\r\n const [isDuplicate, setIsDuplicate] = React.useState(false);\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress, screenReaderNotification } = props;\r\n\r\n React.useEffect(() => {\r\n if (\r\n screenReaderNotification &&\r\n // @ts-ignore\r\n screenReaderNotification.props &&\r\n // @ts-ignore\r\n screenReaderNotification.props.children &&\r\n isDuplicate === false\r\n ) {\r\n setIsVisible(true);\r\n setIsDuplicate(true);\r\n }\r\n }, [props]);\r\n\r\n React.useEffect(() => {\r\n if (viewState.isShowAddresList) {\r\n setIsListVisible(true);\r\n } else {\r\n setIsListVisible(false);\r\n }\r\n }, [viewState]);\r\n\r\n return (\r\n <>\r\n {/* @ts-ignore */}\r\n {isVisible && (\r\n \r\n {/* @ts-ignore */}\r\n
{screenReaderNotification.props.children}
\r\n
\r\n )}\r\n \r\n {/* {isListVisible && (\r\n \r\n )} */}\r\n
\r\n \r\n
\r\n {viewState.isShowAddOrUpdateAddress && (\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressSelectItem } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { ICheckoutShippingAddressViewProps } from './lds-checkout-shipping-address-4';\r\nimport { ILdsAddressSelectProps, ILdsAddressAddUpdateProps } from './lds-checkout-shipping-address-4';\r\nimport { AfricaCheckout } from './components/customShippingSections/AfricaShipping';\r\nimport { BrazilCheckout } from './components/customShippingSections/BrazilShipping';\r\nimport { PeruCheckout } from './components/customShippingSections/PeruShipping';\r\nimport { UruguayCheckout } from './components/customShippingSections/UruguayShipping';\r\nimport { ChileCheckout } from './components/customShippingSections/ChileShipping';\r\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport { stateCheckListChl } from './components/countryFilterLists.tsx/Chile';\r\nimport { validateAddressFormatAsync, stateNameTranslationAsync, countryStateTranslationAsync } from '../../actions/DataActionExtension.g';\r\n\r\nimport {\r\n stateCheckList,\r\n stateCheckListKo,\r\n stateCheckListMixed,\r\n // ArgState,\r\n cityCheck\r\n} from '../../helpers/utilities/state-address-utilities';\r\n\r\n//@ts-ignore\r\nimport { Primary, Secondary, Ghost } from '@churchofjesuschrist/eden-buttons';\r\n\r\nexport interface ILdsAddressShowProps extends IAddressShowProps {\r\n defaultCountryRegionId?: any;\r\n context?: any;\r\n}\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = props => {\r\n const [stateName, setStateName] = React.useState('');\r\n const [filteredList, setFilteredList] = React.useState([]);\r\n const translationCache = React.useRef(new Map());\r\n\r\n const { AddressDetail, items, defaultCountryRegionId, context } = props;\r\n let filteredItems: any;\r\n\r\n const getStateTranslation = async (stateName: any, countryId: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n // Check if translation is already cached\r\n const cacheKey = `${countryId[0].description.props.value}-${stateName[0].description.props.value}`;\r\n if (translationCache.current.has(cacheKey)) {\r\n setStateName(translationCache.current.get(cacheKey));\r\n return;\r\n }\r\n\r\n let translation;\r\n if (stateName && stateName[0] && countryId && countryId[0]) {\r\n translation = await stateNameTranslationAsync(\r\n ctx,\r\n countryId[0].description.props.value,\r\n stateName[0].description.props.value,\r\n context.request.locale\r\n );\r\n }\r\n\r\n if (translation && translation.DisplayName) {\r\n setStateName(translation.DisplayName);\r\n // Cache the translation\r\n translationCache.current.set(cacheKey, translation.DisplayName);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n let filteredStateList: any;\r\n const findState = items.filter((item: any) => {\r\n return item.key === 'State';\r\n });\r\n const findCountry = items.filter((item: any) => {\r\n return item.key === 'ThreeLetterISORegionName';\r\n });\r\n\r\n void getStateTranslation(findState, findCountry);\r\n if (findState && findState[0] && findCountry && findCountry[0]) {\r\n // @ts-ignore\r\n if (defaultCountryRegionId === 'KOR' || findCountry[0].description.props.value === 'KOR') {\r\n // @ts-ignore\r\n filteredStateList = stateCheckListMixed.some(item => item.value === findState[0].description.props.value);\r\n if (filteredStateList === true) {\r\n filteredItems = items.filter((item: any) => {\r\n return item.key !== 'City';\r\n });\r\n setFilteredList(filteredItems);\r\n }\r\n // @ts-ignore\r\n } else if (defaultCountryRegionId === 'VNM' || findCountry[0].description.props.value === 'VNM') {\r\n // @ts-ignore\r\n filteredStateList = filteredStateList = cityCheck.includes(findState[0].description.props.value);\r\n\r\n if (filteredStateList === true) {\r\n filteredItems = items.filter((item: any) => {\r\n return item.key !== 'City';\r\n });\r\n setFilteredList(filteredItems);\r\n }\r\n }\r\n }\r\n }, [props.items]);\r\n\r\n return (\r\n \r\n {filteredList && filteredList.length > 0\r\n ? filteredList.map((item: IAddressShowItem) => {\r\n if (defaultCountryRegionId === 'GHA' || defaultCountryRegionId === 'CIV' || defaultCountryRegionId === 'NGA') {\r\n return (\r\n
\r\n {item.description}\r\n
\r\n );\r\n } else {\r\n if (item.key === 'State' && stateName) {\r\n return (\r\n \r\n {stateName}\r\n \r\n );\r\n } else {\r\n return <>{item.description};\r\n }\r\n }\r\n })\r\n : items.map((item: IAddressShowItem) => {\r\n if (defaultCountryRegionId === 'GHA' || defaultCountryRegionId === 'CIV' || defaultCountryRegionId === 'NGA') {\r\n return (\r\n
\r\n {item.description}\r\n
\r\n );\r\n } else {\r\n if (item.key === 'State' && stateName) {\r\n return (\r\n \r\n {stateName}\r\n \r\n );\r\n } else {\r\n return <>{item.description};\r\n }\r\n }\r\n })}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Address Select Component.\r\n * @param param0 - Root param.\r\n * @param param0.SelectAddress - Select address.\r\n * @param param0.addButton - Add button.\r\n * @param param0.items - IAddressSelectItem[].\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns - SelectAddress Node.\r\n */\r\nconst AddressSelect: React.FC = props => {\r\n const [isDisabled, setIsDisabled] = React.useState(true);\r\n const [recordId, setRecordId] = React.useState();\r\n const [validResults, setValidResults] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n const isItemSelected = items.filter((item: IAddressSelectItem) => {\r\n // @ts-ignore\r\n return item.input.props.additionalAddributes.checked;\r\n });\r\n if (isItemSelected.length !== 0) {\r\n setRecordId(isItemSelected[0].key);\r\n setIsDisabled(false);\r\n }\r\n }, []);\r\n\r\n // const { SelectAddress, addButton, items, isShowSaveButton, saveButton, isShowCancelButton, cancelButton, resources } = props;\r\n const { SelectAddress, addButton, items, saveButton, cancelButton, context } = props;\r\n\r\n React.useEffect(() => {\r\n const ctx = { callerContext: props.context.actionContext };\r\n const filterAsyncResults = async (array: any) => {\r\n const results: any = [];\r\n\r\n for (const obj of array) {\r\n const result = await validateAddressFormatAsync(ctx, obj.key);\r\n const addressCountry = obj.showItems.items.filter((item: any) => {\r\n return item.key === 'ThreeLetterISORegionName';\r\n });\r\n\r\n if (\r\n result &&\r\n addressCountry &&\r\n addressCountry[0] &&\r\n addressCountry[0].description &&\r\n addressCountry[0].description.props &&\r\n addressCountry[0].description.props.value === 'URY' &&\r\n result.StateValid === true &&\r\n result.CityValid === true &&\r\n result.StreetNumberValid === true &&\r\n result.CountryRegionValid === true\r\n ) {\r\n results.push(obj);\r\n }\r\n if (\r\n result &&\r\n addressCountry &&\r\n addressCountry[0] &&\r\n addressCountry[0].description &&\r\n addressCountry[0].description.props &&\r\n addressCountry[0].description.props.value === 'KOR' &&\r\n result.StateValid === true &&\r\n result.StreetNumberValid === true &&\r\n result.CountryRegionValid === true\r\n ) {\r\n results.push(obj);\r\n } else if (result && result.AddressValid === true) {\r\n results.push(obj);\r\n }\r\n }\r\n\r\n setValidResults(results);\r\n };\r\n\r\n void filterAsyncResults(items);\r\n }, []);\r\n\r\n const onSaveFunction = async (functionOnClick: any) => {\r\n const ctx = { callerContext: props.context.actionContext };\r\n\r\n await validateAddressFormatAsync(ctx, Number(recordId)).catch(err => {\r\n console.log(err);\r\n });\r\n functionOnClick();\r\n };\r\n\r\n return (\r\n \r\n {/* {addButton} */}\r\n addButton.props.children.props.onClick()}\r\n >\r\n {/* @ts-ignore */}\r\n {addButton.props.children.props.text || addButton.props.text || 'Add address'}\r\n \r\n {validResults\r\n ? validResults.map((item: IAddressSelectItem) => {\r\n const SelectItem = item.SelectItem;\r\n const customOnChange = (e: any) => {\r\n if (isDisabled === true) {\r\n setIsDisabled(false);\r\n }\r\n if (e.target.value) {\r\n setRecordId(e.target.value);\r\n }\r\n // @ts-ignore\r\n item.input.props.onChange(e);\r\n };\r\n return (\r\n \r\n customOnChange(e)}\r\n checked={\r\n // @ts-ignore\r\n item.input.props.value === JSON.stringify(recordId)\r\n ? true\r\n : // @ts-ignore\r\n item.input.props.value === recordId\r\n ? true\r\n : false\r\n }\r\n // @ts-ignore\r\n value={item.input.props.value}\r\n // @ts-ignore\r\n className='msc-address-select__input-radio'\r\n style={{\r\n height: '18px',\r\n width: '18px'\r\n }}\r\n key={item.key}\r\n // @ts-ignore\r\n aria-setsize={item.input.props.additionalAddributes['aria-setsize']}\r\n />\r\n \r\n \r\n );\r\n })\r\n : items.map((item: IAddressSelectItem) => {\r\n const SelectItem = item.SelectItem;\r\n const customOnChange = (e: any) => {\r\n if (isDisabled === true) {\r\n setIsDisabled(false);\r\n }\r\n if (e.target.value) {\r\n setRecordId(e.target.value);\r\n }\r\n // @ts-ignore\r\n item.input.props.onChange(e);\r\n };\r\n return (\r\n \r\n customOnChange(e)}\r\n // @ts-ignore\r\n checked={item.input.props.additionalAddributes.checked || false}\r\n // @ts-ignore\r\n value={item.input.props.value}\r\n // @ts-ignore\r\n className='msc-address-select__input-radio'\r\n style={{\r\n height: '18px',\r\n width: '18px'\r\n }}\r\n key={item.key}\r\n // @ts-ignore\r\n aria-setsize={item.input.props.additionalAddributes['aria-setsize']}\r\n />\r\n \r\n \r\n );\r\n })}\r\n\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n // @ts-ignore\r\n onSaveFunction(saveButton.props.onClick)} disabled={isDisabled}>\r\n {/* saveButton.props.onClick()} disabled={isDisabled}> */}\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Address Add Update Component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @param param0.loading - isLoading.\r\n * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = props => {\r\n const {\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n saveButton,\r\n cancelButton,\r\n resources,\r\n defaultCountryRegionId,\r\n context,\r\n showSmarty,\r\n smartyFailed,\r\n smartyAddress,\r\n userAddress,\r\n loading\r\n } = props;\r\n const [inputAddress, setInputAddress] = React.useState({});\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [isDisabled, setIsDisabled] = React.useState(true);\r\n const [unitName, setUnitName] = React.useState('');\r\n const [stakeNameAddress, setStakeNameAddress] = React.useState('');\r\n const [disabled, setDisabled] = React.useState(true);\r\n const [hideCity, setHideCity] = React.useState(false);\r\n const [updatedStateList, setUpdatedStateList] = React.useState([]);\r\n\r\n const updateNames = (array1: any, array2: any) => {\r\n return array1.map((item1: any) => {\r\n const match = array2.find((item2: any) => {\r\n return item2.StateId === item1.key;\r\n });\r\n if (match && match.LongName !== '') {\r\n // return { ...item1, value: match.DisplayName };\r\n return { ...item1, value: match.LongName };\r\n }\r\n return item1;\r\n });\r\n };\r\n\r\n const stateListTranslation = async (stateList: any) => {\r\n let translatedStateList;\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n // const response = await countryStateTranslationAsync(ctx, defaultCountryRegionId, props.context.request.locale);\r\n const response = await countryStateTranslationAsync(ctx, defaultCountryRegionId, props.context.request.locale).catch((err: any) => {\r\n return console.log(err);\r\n });\r\n\r\n if (stateList && stateList.length !== 0) {\r\n translatedStateList = updateNames(stateList, response);\r\n }\r\n\r\n if (translatedStateList && translatedStateList.length > 0) {\r\n translatedStateList.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n setUpdatedStateList(translatedStateList);\r\n } else if (updatedStateList.length !== 0) {\r\n setUpdatedStateList(stateList);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n let stateList: any;\r\n let response: any;\r\n let countryId: any;\r\n if (props && props.items && props.items.length > 0) {\r\n response = props.items.filter((item: any) => {\r\n return item.key === 'State';\r\n });\r\n countryId = props.items.filter((item: any) => {\r\n return item.key === 'ThreeLetterISORegionName';\r\n });\r\n }\r\n if (response && response[0] && response[0].input && response[0].input.props && response[0].input.props.displayData) {\r\n stateList = response[0].input.props.displayData.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n }\r\n if (updatedStateList.length === 0 && countryId[0].input.props.value !== 'URY') {\r\n void stateListTranslation(stateList);\r\n }\r\n }, [props]);\r\n\r\n React.useEffect(() => {\r\n if (smartyFailed) {\r\n // @ts-ignore\r\n saveButton.props.onClick(userAddress);\r\n }\r\n }, [smartyFailed]);\r\n\r\n const filteredItems = items.filter((item: any) => {\r\n if (hideCity) {\r\n return item.key !== 'Phone' && item.key !== 'City';\r\n } else {\r\n return item.key !== 'Phone';\r\n }\r\n });\r\n\r\n if (defaultCountryRegionId === 'MEX') {\r\n const districtIndex = filteredItems.findIndex(item => item.key === 'DistrictName');\r\n\r\n const street2Index = filteredItems.findIndex(item => item.key === 'Street_2');\r\n\r\n if (districtIndex !== -1 && street2Index !== -1) {\r\n const [removedDistrict] = filteredItems.splice(districtIndex, 1);\r\n\r\n filteredItems.splice(street2Index, 0, removedDistrict);\r\n }\r\n }\r\n\r\n const customSetAddress = (address: any) => {\r\n setInputAddress(address);\r\n };\r\n\r\n React.useEffect(() => {\r\n //LDS DEV NOTE: Here we are adding a form of validation to not allow users to continue in address setup as OOTB code does not have all the correct requirements the\r\n //Church needs to have a valid address.\r\n const canSubmit: any = [];\r\n if (defaultCountryRegionId === 'MEX') {\r\n filteredItems.map((item: any) => {\r\n if (\r\n item.key === 'Name' ||\r\n item.key === 'DistrictName' ||\r\n item.key === 'Street' ||\r\n item.key === 'ZipCode' ||\r\n item.key === 'City'\r\n ) {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n } else if (defaultCountryRegionId === 'AUS') {\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'Name' || item.key === 'Street' || item.key === 'ZipCode' || item.key === 'City') {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n } else if (defaultCountryRegionId === 'PAN') {\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'Name' || item.key === 'Street' || item.key === 'ZipCode' || item.key === 'City') {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n } else if (defaultCountryRegionId === 'PER') {\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'Name' || item.key === 'Street' || item.key === 'ZipCode') {\r\n return canSubmit.push(item.input.props.value !== undefined && item.input.props.value !== '' ? true : false);\r\n } else if (item.key === 'State') {\r\n return canSubmit.push(item.input.props.value !== '' ? true : false);\r\n }\r\n });\r\n if (canSubmit.includes(false)) {\r\n setDisabled(true);\r\n } else if (!canSubmit.includes(false) && disabled === true) {\r\n setDisabled(false);\r\n }\r\n }\r\n }, [props]);\r\n\r\n const customKoreaStateOnChange = (functionToExecute: any, data: any) => {\r\n if (cityCheck.includes(data.target.value)) {\r\n setHideCity(true);\r\n } else {\r\n setHideCity(false);\r\n }\r\n functionToExecute(data);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else if (showSmarty) {\r\n return (\r\n
\r\n {smartyAddress && smartyAddress.street && (\r\n
\r\n

{resources.smartyStreetAddressHeader}

\r\n
{`${smartyAddress.street} ${smartyAddress.street2}`}
\r\n
{`${smartyAddress.city}, ${smartyAddress.state} ${smartyAddress.zipcode}${smartyAddress.plusfour ? '-' : ''}${\r\n smartyAddress.plusfour\r\n }`}
\r\n
{`${smartyAddress.country}`}
\r\n {/* @ts-ignore */}\r\n saveButton.props.onClick(smartyAddress)}>\r\n {resources.smartyStreetsAddressButton}\r\n \r\n
\r\n )}\r\n
\r\n

{resources.userShippingAddressHeader}

\r\n
{`${userAddress.Street} ${userAddress.Street_2 || ''}`}
\r\n
{`${userAddress.City}, ${userAddress.State} ${userAddress.ZipCode}`}
\r\n
{`${userAddress.ThreeLetterISORegionName}`}
\r\n {/* @ts-ignore */}\r\n saveButton.props.onClick(userAddress)}>{resources.userAddressButton}\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'BRA') {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n saveButton.props.onClick(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'GHA' || defaultCountryRegionId === 'CIV' || defaultCountryRegionId === 'NGA') {\r\n return (\r\n
\r\n \r\n {isVisible && (\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n \r\n // @ts-ignore\r\n saveButton.props.onClick(inputAddress, defaultCountryRegionId, unitName, stakeNameAddress)\r\n }\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'PER') {\r\n let filteredStateList;\r\n filteredItems.map(item => {\r\n if (item.key === 'State') {\r\n const { input } = item;\r\n\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData;\r\n }\r\n });\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n saveButton.props.onClick(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'URY') {\r\n let filteredStateList;\r\n filteredItems.map(item => {\r\n if (item.key === 'State') {\r\n const { input } = item;\r\n\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n }\r\n });\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n saveButton.props.onClick(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else if (defaultCountryRegionId === 'CHL') {\r\n let filteredStateList: any;\r\n filteredItems.map((item: any) => {\r\n if (item.key === 'State') {\r\n // @ts-ignore\r\n filteredStateList = item.input.props.displayData.filter((option: any) => {\r\n return stateCheckListChl.some(item => item.value === option.key && item.label === option.value);\r\n });\r\n }\r\n });\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (\r\n saveButton.props.onClick(inputAddress, defaultCountryRegionId)}\r\n disabled={isDisabled}\r\n >\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n {heading}\r\n {filteredItems.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n // @ts-ignore\r\n if (input.props.id === 'shipping_addressthreeletterisoregionname') {\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n \r\n {/* @ts-ignore */}\r\n {input.props.displayData.map((data: any) => {\r\n return (\r\n // @ts-ignore\r\n \r\n );\r\n })}\r\n \r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'KOR') {\r\n let filteredStateList: any;\r\n if (context.request.locale === 'en-US') {\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData.filter((option: any) => {\r\n return stateCheckList.some(item => item.value === option.key && item.label === option.value);\r\n });\r\n } else {\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData.filter((option: any) => {\r\n return stateCheckListKo.some(item => item.value === option.key && item.label === option.value);\r\n });\r\n }\r\n // input.props.displayData;\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length !== 0 ? (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'VNM') {\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length !== 0 ? (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n customKoreaStateOnChange(input.props.onChange, e)}\r\n style={{\r\n display: 'block',\r\n width: '100%',\r\n border: '1px solid black',\r\n boxSizing: 'border-box !important',\r\n borderRadius: '2px',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n fontWeight: 'normal',\r\n height: '48px'\r\n }}\r\n >\r\n \r\n );\r\n })}\r\n \r\n )}\r\n {/* {input} */}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'GTM') {\r\n let filteredStateList: any;\r\n // @ts-ignore\r\n if (input && input.props && input.props.displayData) {\r\n // @ts-ignore\r\n filteredStateList = input.props.displayData.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n }\r\n // @ts-ignore\r\n if (input && input.props && input.props.displayData) {\r\n // @ts-ignore\r\n input.props.displayData.map((item: any) => {\r\n if (item.key === '') {\r\n const value = item.value.split(' ');\r\n value.pop();\r\n const popValue = value.join(' ');\r\n item.value = `${popValue} ${resources.addressDepartmentLabel}`;\r\n }\r\n });\r\n }\r\n // @ts-ignore\r\n if (label && label.props && label.props.text) {\r\n // @ts-ignore\r\n label.props.text = `${resources.addressDepartmentLabel} *`;\r\n }\r\n // @ts-ignore\r\n if (alert && alert.props && alert.props.message) {\r\n // @ts-ignore\r\n alert.props.message = resources.addressDepartmentRequiredErrorMessage;\r\n }\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length !== 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : filteredStateList && filteredStateList.length > 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n { input }\r\n )}\r\n \r\n );\r\n } else if (item.key === 'State' && defaultCountryRegionId === 'MEX') {\r\n // @ts-ignore\r\n if (label && label.props && label.props.text) {\r\n // @ts-ignore\r\n label.props.text = resources.addressStateProvinceLabel;\r\n }\r\n // @ts-ignore\r\n if (alert && alert.props && alert.props.message) {\r\n // @ts-ignore\r\n alert.props.message = resources.addressStateProvinceRequiredErrorMessage;\r\n }\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length !== 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n );\r\n } else if (item.key === 'DistrictName' && defaultCountryRegionId === 'MEX') {\r\n // @ts-ignore\r\n if (label && label.props && label.props.text) {\r\n // @ts-ignore\r\n label.props.text = resources.addressColoniaLabel;\r\n }\r\n // @ts-ignore\r\n if (alert && alert.props && alert.props.message) {\r\n // @ts-ignore\r\n alert.props.message = resources.addressColoniaRequiredErrorMessage;\r\n }\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {input}\r\n \r\n );\r\n } else if (item.key === 'State') {\r\n // @ts-ignore\r\n const filteredStateList = input.props.displayData.filter((option: any) => {\r\n return option.value !== '';\r\n });\r\n return (\r\n \r\n {label}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {updatedStateList && updatedStateList.length !== 0 ? (\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {label}\r\n {/* {alert} */}\r\n {/* @ts-ignore */}\r\n {alert && alert.props.message && }\r\n {input}\r\n \r\n );\r\n }\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {/* {defaultCountryRegionId === 'MEX' || defaultCountryRegionId === 'PAN' || defaultCountryRegionId === 'AUS' ? ( */}\r\n {defaultCountryRegionId === 'MEX' || defaultCountryRegionId === 'PAN' ? (\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (defaultCountryRegionId === 'USA' || defaultCountryRegionId === 'CAN') ? (\r\n // @ts-ignore\r\n saveButton.props.onClick('', false)}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : saveButton ? (\r\n // @ts-ignore\r\n saveButton.props.onClick()} disabled={disabled}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : null}\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n {cancelButton && (\r\n // @ts-ignore\r\n cancelButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {cancelButton.props.text}\r\n \r\n )}\r\n
\r\n
\r\n {saveButton && (defaultCountryRegionId === 'USA' || defaultCountryRegionId === 'CAN') ? (\r\n // @ts-ignore\r\n saveButton.props.onClick('', false)}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : saveButton ? (\r\n // @ts-ignore\r\n saveButton.props.onClick()}>\r\n {/* @ts-ignore */}\r\n {saveButton.props.text}\r\n \r\n ) : null}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Checkout Shipping Address View Component.\r\n * @param props - Props.\r\n * @returns - CheckoutShippingAddress Module.\r\n */\r\nconst CheckoutShippingAddressView: React.FC = props => {\r\n const {\r\n CheckoutShippingAddress,\r\n checkoutErrorRef,\r\n alert,\r\n viewState,\r\n showAddress,\r\n showAddressSelect,\r\n showAddOrUpdateAddress,\r\n resources,\r\n showSmarty,\r\n smartyAddress,\r\n addUpdateAddress,\r\n loading,\r\n smartyFailed,\r\n countryRegionId\r\n } = props;\r\n\r\n return (\r\n \r\n {alert}\r\n {!viewState.isShowAddOrUpdateAddress && !viewState.isShowAddresList && !viewState.isShowAddress && !loading && (\r\n <>\r\n {/* @ts-ignore */}\r\n \r\n showAddressSelect &&\r\n showAddressSelect.addButton &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props.onClick\r\n ? // @ts-ignore\r\n showAddressSelect.addButton.props.onClick()\r\n : showAddressSelect &&\r\n showAddressSelect.addButton &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props.children &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props.children.props &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props.children.props.onClick\r\n ? // @ts-ignore\r\n showAddressSelect.addButton.props.children.props.onClick()\r\n : ''\r\n }\r\n >\r\n {/* @ts-ignore */}\r\n {showAddressSelect.addButton.props.text\r\n ? // @ts-ignore\r\n showAddressSelect.addButton.props.text\r\n : // @ts-ignore\r\n showAddressSelect.addButton.props.children &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props.children.props &&\r\n // @ts-ignore\r\n showAddressSelect.addButton.props.children.props.text\r\n ? // @ts-ignore\r\n showAddressSelect.addButton.props.children.props.text\r\n : 'Add Address'}\r\n \r\n \r\n )}\r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddresList && (\r\n \r\n )}\r\n {viewState.isShowAddOrUpdateAddress && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutShippingAddressView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { CheckoutState } from './checkout-state';\n\n/**\n * CheckoutState - action input.\n */\nexport class CheckoutStateInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('CheckoutState', this.apiSettings);\n\n public getCacheObjectType = () => 'CheckoutState';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CheckoutState - action.\n * @param input\n * @param ctx\n */\nexport async function checkoutStateAction(input: CheckoutStateInput, ctx: IActionContext): Promise {\n return new CheckoutState();\n}\n\n/**\n * CheckoutState - create new input for create action.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\n return new CheckoutStateInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * CheckoutState - create action.\n */\nexport const checkoutStateActionDataAction = createObservableDataAction({\n action: >checkoutStateAction,\n input: createInput\n});\n\nexport default checkoutStateActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { Address, GiftCard, Note, TenderLine, TokenizedPaymentCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { action, computed, observable } from 'mobx';\n\n/**\n * State information related to what is needed to succesfully perform a checkout.\n */\nexport class CheckoutState {\n @observable private _tokenizedPaymentCard: TokenizedPaymentCard | undefined;\n\n @computed public get tokenizedPaymentCard(): Readonly | undefined {\n return this._tokenizedPaymentCard;\n }\n\n @observable private _tenderLine: TenderLine | undefined;\n\n @computed public get tenderLine(): Readonly | undefined {\n return this._tenderLine;\n }\n\n @observable private _billingAddress: Address | undefined;\n\n @computed public get billingAddress(): Readonly
| undefined {\n return this._billingAddress;\n }\n\n @observable private _shippingAddress: Address | undefined;\n\n @computed public get shippingAddress(): Readonly
| undefined {\n return this._shippingAddress;\n }\n\n @observable private _cardPrefix: string | undefined;\n\n @computed public get cardPrefix(): Readonly | undefined {\n return this._cardPrefix;\n }\n\n @observable private _giftCards: GiftCard[] = [];\n\n @computed public get giftCards(): readonly GiftCard[] {\n return this._giftCards;\n }\n\n @observable private _giftCardExtends: IGiftCardExtend[] = [];\n\n @computed public get giftCardExtends(): readonly IGiftCardExtend[] {\n return this._giftCardExtends;\n }\n\n @observable private _loyaltyCardNumber?: string;\n\n @computed public get loyaltyCardNumber(): Readonly | undefined {\n return this._loyaltyCardNumber;\n }\n\n @observable private _loyaltyAmount: number = 0;\n\n @computed public get loyaltyAmount(): Readonly | number {\n return this._loyaltyAmount;\n }\n\n @observable private _guestCheckoutEmail: string = '';\n @observable private _customerReference: string = '';\n @observable private _customerRequisition: string = '';\n @observable private _note: Note = {};\n\n @computed public get guestCheckoutEmail(): Readonly | string {\n return this._guestCheckoutEmail;\n }\n\n @computed public get customerReference(): Readonly | string {\n return this._customerReference;\n }\n\n @computed public get customerRequisition(): Readonly | string {\n return this._customerRequisition;\n }\n\n @computed public get note(): Readonly | Note[] {\n return this._note;\n }\n\n @observable private _isTermsAndConditionAccepted: boolean = false;\n\n @computed public get isTermsAndConditionAccepted(): Readonly | boolean {\n return this._isTermsAndConditionAccepted;\n }\n\n @observable private _customerAccountAmount: number = 0;\n\n @computed public get customerAccountAmount(): Readonly | number {\n return this._customerAccountAmount;\n }\n\n @action\n public updateTokenizedPaymentCard(newTokenizedPaymentCard: TokenizedPaymentCard): void {\n this._tokenizedPaymentCard = newTokenizedPaymentCard;\n }\n\n @action\n public updateTenderLine(newTenderLine: TenderLine | undefined): void {\n this._tenderLine = newTenderLine;\n }\n\n @action\n public updateShippingAddress(newShippingAddress: Address): void {\n this._shippingAddress = newShippingAddress;\n }\n\n @action\n public updateBillingAddress(newBillingAddress: Address): void {\n this._billingAddress = newBillingAddress;\n }\n\n @action\n public updateCardPrefix(newCardPrefix: string): void {\n this._cardPrefix = newCardPrefix;\n }\n\n @action\n public removeGiftCard(giftCardNumber: string): void {\n this._giftCards = this._giftCards.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public removeGiftCardExtend(giftCardNumber: string): void {\n this._giftCardExtends = this._giftCardExtends.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public addGiftCard(giftCard: GiftCard): void {\n this._giftCards = [giftCard, ...this._giftCards];\n }\n\n @action\n public addGiftCardExtend(giftCard: IGiftCardExtend): void {\n this._giftCardExtends = [giftCard, ...this._giftCards];\n }\n\n @action\n public updateLoyaltyCardNumber(newLoyaltyCardNumber: string): void {\n this._loyaltyCardNumber = newLoyaltyCardNumber;\n }\n\n @action\n public updateLoyaltyAmount(newAmount: number): void {\n this._loyaltyAmount = newAmount;\n }\n\n @action\n public updateGuestCheckoutEmail(\n newGuestCheckoutEmail: string,\n customerReference: string,\n customerRequisition: string,\n note: Note\n ): void {\n this._guestCheckoutEmail = newGuestCheckoutEmail;\n this._customerReference = customerReference;\n this._customerRequisition = customerRequisition;\n this._note = note;\n }\n\n @action\n public updateTermsAndConditionsAcceptance(newIsTermsAndConditionAccepted: boolean): void {\n this._isTermsAndConditionAccepted = newIsTermsAndConditionAccepted;\n }\n\n @action\n public updateCustomerAccountAmount(newAmount: number): void {\n this._customerAccountAmount = newAmount;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModule } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport isMatch from 'lodash/isMatch';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { getModuleStates, updateModuleStates } from './module-state';\nimport { IModuleState, IModuleStateManager, IModuleStateProps, IModuleStates } from './module-state.data';\n\nexport interface IProps extends IModule, IModuleStateProps {\n enableControl?: boolean;\n}\n\nconst sectionContainerModuleId = 'section-container';\nconst paymentInstrumentModuleId = 'payment-instrument';\n\nconst withModuleState =

(WrappedComponent: React.ComponentType

): React.ComponentType

=> {\n /**\n *\n * ModuleState component.\n * @extends {React.Component

}\n */\n @observer\n class ModuleState extends React.Component

{\n constructor(props: P) {\n super(props);\n this.initializeState();\n }\n\n public shouldComponentUpdate(nextProps: IModuleStateProps): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { id } = this.props;\n return ;\n }\n\n private readonly initializeState = (): void => {\n const { id, typeName, context } = this.props;\n const states = getModuleStates(context.actionContext);\n if (!states) {\n this.props.telemetry.error('withModuleState initializeState() - states not found');\n return;\n }\n\n if (states[id]) {\n // State has been initialized\n return;\n }\n\n updateModuleStates(\n {\n ...states,\n [id]: {\n id,\n typeName,\n hasInitialized: false,\n hasError: false,\n isRequired: true,\n isCancellable: true,\n isSubmitContainer: false,\n status: undefined,\n childIds: []\n }\n },\n context.actionContext\n );\n };\n\n /**\n * GetModuleStateManager\n * Get module state manager by id.\n * @param id\n */\n private readonly getModuleStateManager = (id: string): IModuleStateManager => {\n const moduleState = this.get()[id];\n return {\n ...moduleState!,\n hasInitialized: this.validate(id, { hasInitialized: true }, true), // All has initialized is initialized\n hasError: this.validate(id, { hasError: true }), // Partial has error is error\n isReady: this.validate(id, { status: 'ready' }, true, true), // All ready is ready (exclued disabled and skipped)\n isUpdating: this.validate(id, { status: 'updating' }), // Partial updating is updating\n isPending: this.validate(id, { status: 'pending' }), // Partial pending is pending\n isSkipped: this.validate(id, { status: 'skipped' }, true, true), // All skipped is skipped (exclued disabled)\n isDisabled: this.validate(id, { status: 'disabled' }, true), // All disabled is disabled\n isCancelAllowed: this.validate(id, { isCancellable: true }, true, true), // Partial not allowed is not allowed\n shouldSubmitContainer: this.validate(id, { isSubmitContainer: true }), // Partial submit is submit.\n hasExternalSubmitGroup: this.hasExternalSubmitGroup(),\n hasModuleState: this.hasModuleState(id),\n setIsRequired: (value: boolean): void => {\n this.update(id, { isRequired: value });\n },\n setIsCancellable: (value: boolean): void => {\n this.update(id, { isCancellable: value });\n },\n setIsSubmitContainer: (value: boolean): void => {\n this.update(id, { isSubmitContainer: value });\n },\n setHasError: (value: boolean): void => {\n this.update(id, { hasError: value });\n },\n onReady: (): void => {\n this.update(id, { status: 'ready' });\n },\n onUpdating: (): void => {\n this.update(id, { status: 'updating' });\n },\n onPending: (): void => {\n this.update(id, { status: 'pending' });\n },\n onSkip: (): void => {\n this.update(id, { status: 'skipped' });\n },\n onDisable: (): void => {\n this.update(id, { status: 'disabled' });\n },\n getModule: (moduleId: string): IModuleStateManager => this.getModuleStateManager(moduleId),\n getModuleByTypeName: (typeName: string): IModuleStateManager => this.getModuleStateManagerByTypeName(typeName),\n init: (options?: Partial): void => {\n if (moduleState?.hasInitialized) {\n // State has been initialized\n return;\n }\n this.update(id, {\n hasInitialized: true,\n ...options\n });\n }\n };\n };\n\n /**\n * GetModuleStateManagerByTypeName\n * Get module state manager by type name.\n * @param typeName\n */\n private readonly getModuleStateManagerByTypeName = (typeName: string): IModuleStateManager => {\n const moduleStates = getModuleStates(this.props.context.actionContext);\n const moduleState = Object.values(moduleStates).find(_moduleState => _moduleState?.typeName === typeName);\n return this.getModuleStateManager((moduleState && moduleState.id) || '');\n };\n\n /**\n * Get\n * Get all module states.\n */\n private readonly get = (): IModuleStates => {\n return getModuleStates(this.props.context.actionContext);\n };\n\n /**\n * Update\n * Update module state.\n * @param id\n * @param value\n */\n private readonly update = (id: string, value: Partial): void => {\n // Console.log('withModuleState - update', id, value);\n const modules = this.get();\n if (!modules[id]) {\n this.props.telemetry.error(`withModuleState update() - Module state with id ${id} is not found.`);\n return;\n }\n modules[id] = {\n ...modules[id]!,\n ...value\n };\n };\n\n private readonly _validateLeaf = (id: string, source: Partial): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n return isMatch(module, source);\n };\n\n private readonly _validateContainer = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n // Module doesn't has module state\n return !!allMatched;\n }\n\n if (skipSkippableItem && (module.status === 'disabled' || module.status === 'skipped')) {\n // Skip disabled or skipped modules\n return !!allMatched;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n let childIds = module.childIds;\n\n if (this.props.context.app.config.shouldEnableSinglePaymentAuthorizationCheckout) {\n // For new checkout flow, we bypass the isReady check for payment section container to enable the place order button.\n childIds = childIds.filter(childId => !this._isPaymentSectionContainer(childId));\n }\n\n // It is container module\n const method = allMatched ? 'every' : 'some';\n return childIds[method](childId => this._validateContainer(childId, source, allMatched, skipSkippableItem));\n };\n\n /**\n * Check if it is a section container with payment module.\n * @param moduleId -- The id of the module.\n * @returns If it is a section container with payment module.\n */\n private readonly _isPaymentSectionContainer = (moduleId: string): boolean => {\n if (!moduleId.includes(sectionContainerModuleId)) {\n return false;\n }\n\n const modules = this.get();\n const module = modules[moduleId];\n\n if (module && ArrayExtensions.hasElements(module.childIds.filter(childId => childId.includes(paymentInstrumentModuleId)))) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Validate\n * Validate current module and all its child module match the provided condition.\n * @param id\n * @param source\n * @param allMatched\n * @param skipSkippableItem\n */\n private readonly validate = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n // It is container module\n return this._validateContainer(id, source, allMatched, skipSkippableItem);\n };\n\n /**\n * HasExternalSubmitGroup\n * Module will use external submit group.\n */\n private readonly hasExternalSubmitGroup = (): boolean => {\n return !!this.props.enableControl;\n };\n\n /**\n * HasModuleState\n * Module is using module state manager.\n * @param id\n */\n private readonly hasModuleState = (id: string): boolean => {\n const modules = this.get();\n const module = modules[id];\n return !!module;\n };\n }\n\n return ModuleState;\n};\n\nexport default withModuleState;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, IActionContext, IActionInput } from '@msdyn365-commerce/core';\n\nimport { IModuleStates } from './module-state.data';\n\n/**\n * GetModulesInput.\n */\nexport class ModuleStatesCacheKey implements IActionInput {\n public getCacheKey = () => 'ModuleState';\n\n public getCacheObjectType = () => 'ModuleState';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport function getModuleStates(ctx: IActionContext): IModuleStates {\n const cacheKey = new ModuleStatesCacheKey();\n\n let moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n if (moduleStates) {\n return moduleStates;\n }\n ctx.update(cacheKey, {});\n moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n return moduleStates;\n}\n\nexport function updateModuleStates(value: IModuleStates, ctx: IActionContext): void {\n const cacheKey = new ModuleStatesCacheKey();\n ctx.update(cacheKey, value);\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * EnabledPaymentsForOBO enum.\n */\n export enum EnabledPaymentsForOBO {\n OnCustomerAccount = 1,\n ExpressPayment = 0,\n Loyalty = 0,\n GiftCard = 0,\n PaymentInstrument = 0,\n ApplePay = 0\n}\n","import { Cart, CartLine, IContext, LineDeliverySpecification } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n updateAsync,\r\n updateCartLinesAsync,\r\n updateLineDeliverySpecificationsAsync\r\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\n\r\nexport const updateLineDeliverySpecifications = async (\r\n context: IContext,\r\n cartId: string,\r\n lineDeliverySpecifications: LineDeliverySpecification[]\r\n): Promise => {\r\n return updateLineDeliverySpecificationsAsync(context, cartId, lineDeliverySpecifications).catch(err => {\r\n console.log(err);\r\n return err;\r\n });\r\n};\r\n\r\nexport const getCartLinesforSubscription = (cartLine: CartLine[]): CartLine[] => {\r\n return cartLine?.filter(line => isSubscriptionLine(line)) || [];\r\n};\r\n\r\nexport const getCartLinesforDelivery = (cartLine: CartLine[]): CartLine[] => {\r\n return cartLine?.filter(line => isDeliveryLine(line)) ?? [];\r\n};\r\n\r\nexport const getCartLinesforPickup = (cartLine: CartLine[]): CartLine[] => {\r\n return cartLine?.filter(line => isPickupLine(line)) ?? [];\r\n};\r\n\r\nexport const updateCartLines = (context: IContext, id: string, cartLines: CartLine[] | null | undefined) => {\r\n return updateCartLinesAsync(context, id, cartLines);\r\n};\r\n\r\nexport const updateCartLineAttributeValues = async (\r\n lineId: string,\r\n attributeKey: string,\r\n attributeValue: string,\r\n actionContext: IActionContext,\r\n cart: Cart\r\n) => {\r\n const cartLines = cart.CartLines;\r\n\r\n cartLines?.map((cartLine, index) => {\r\n if (cartLine.LineId === lineId) {\r\n const newAttribute = {\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n ExtensionProperties: [],\r\n Name: attributeKey,\r\n TextValue: attributeValue,\r\n TextValueTranslations: []\r\n };\r\n\r\n if (cartLine.AttributeValues) {\r\n const attrIndex = cartLine.AttributeValues.findIndex(attr => attr.Name === attributeKey);\r\n\r\n if (attrIndex > -1) {\r\n // eslint-disable-next-line security/detect-object-injection\r\n cartLine.AttributeValues[attrIndex] = newAttribute;\r\n } else {\r\n cartLine.AttributeValues.push(newAttribute);\r\n }\r\n } else {\r\n cartLine.AttributeValues = [];\r\n cartLine.AttributeValues.push(newAttribute);\r\n }\r\n }\r\n });\r\n\r\n const newCart = await updateCartLinesAsync({ callerContext: actionContext }, cart.Id, cartLines);\r\n await updateAsync({ callerContext: actionContext }, newCart);\r\n};\r\n\r\nconst isSubscriptionLine = (line: CartLine): boolean => {\r\n const isSubscription = line?.ExtensionProperties?.find(x => x.Key === 'isSubscription')?.Value?.BooleanValue || false;\r\n\r\n //commeted out because all subscriptions need subscription addresses regardless of serv country or not\r\n // const isManualSubscription = line?.ExtensionProperties?.find(x => x.Key === 'isManualSubscription')?.Value?.BooleanValue || false;\r\n\r\n // return isSubscription && !isManualSubscription;\r\n return isSubscription;\r\n};\r\n\r\nconst isDeliveryLine = (line: CartLine): boolean => {\r\n return !isPickupLine(line) && (line.FulfillmentStoreId === undefined || line.FulfillmentStoreId === '') && !isSubscriptionLine(line);\r\n};\r\n\r\nconst isPickupLine = (line: CartLine): boolean => {\r\n return line.DeliveryMode === 'PICKUP' || line.DeliveryMode === 'CURBSIDE';\r\n};\r\n","export const stateCheckListKo = [\r\n { value: '강원', label: '강원도' },\r\n { value: '경기', label: '경기도' },\r\n { value: '경남', label: '경남' },\r\n { value: '경북', label: '경북' },\r\n { value: '광주', label: '광주시' },\r\n { value: '대구', label: '대구시' },\r\n { value: '대전', label: '대전시' },\r\n { value: '부산', label: '부산시' },\r\n { value: '서울', label: '서울시' },\r\n { value: '세종', label: '세종시' },\r\n { value: '울산', label: '울산시' },\r\n { value: '인천', label: '인천시' },\r\n { value: '전남', label: '전남' },\r\n { value: '전북', label: '전북' },\r\n { value: '제주', label: '제주시' },\r\n { value: '충남', label: '충남' },\r\n { value: '충북', label: '충북' }\r\n];\r\n\r\nexport const stateCheckList = [\r\n { value: 'Seoul', label: 'Seoul' },\r\n { value: 'Busan', label: 'Busan' },\r\n { value: 'Daegu', label: 'Daegu' },\r\n { value: 'Incheon', label: 'Incheon' },\r\n { value: 'Gwangju', label: 'Gwangju' },\r\n { value: 'Daejeon', label: 'Daejeon' },\r\n { value: 'Ulsan', label: 'Ulsan' },\r\n { value: 'Gyeonggi', label: 'Gyeonggi' },\r\n { value: 'Gangwon', label: 'Gangwon' },\r\n { value: 'ChungBuk', label: 'North Chungcheong' },\r\n { value: 'ChungNam', label: 'South Chungcheong' },\r\n { value: 'JunBuk', label: 'North Jeolla' },\r\n { value: 'JunNam', label: 'South Jeolla' },\r\n { value: 'GyeongBuk', label: 'North Gyeongsang' },\r\n { value: 'GyeongNam', label: 'South Gyeongsang' },\r\n { value: 'Jeju', label: 'Jeju' },\r\n { value: 'Sejong', label: 'Sejong' }\r\n];\r\n\r\nexport const cityCheck = [\r\n 'CT',\r\n 'DN',\r\n 'HN',\r\n 'HP',\r\n 'SG',\r\n 'HCM',\r\n 'KR-11',\r\n 'KR-26',\r\n 'KR-27',\r\n 'KR-28',\r\n 'KR-29',\r\n 'KR-30',\r\n 'KR-31',\r\n 'KR-41',\r\n 'KR-42',\r\n 'KR-43',\r\n 'KR-49',\r\n '11',\r\n '26',\r\n '27',\r\n '28',\r\n '29',\r\n '30',\r\n '31',\r\n '41',\r\n '42',\r\n '43',\r\n '49',\r\n 'Seoul',\r\n 'Busan',\r\n 'Daegu',\r\n 'Incheon',\r\n 'Gwangju',\r\n 'Daejeon',\r\n 'Ulsan',\r\n 'Gyeonggi',\r\n 'Gangwon',\r\n 'North Chungcheong',\r\n 'Sejong',\r\n 'Jeju',\r\n '서울',\r\n '부산',\r\n '대구',\r\n '인천',\r\n '광주',\r\n '대전',\r\n '울산',\r\n '경기',\r\n '강원',\r\n '충정북도',\r\n '제주',\r\n '세종'\r\n];\r\n\r\nexport const stateCheckListMixed = [\r\n { value: '강원', label: '강원도' },\r\n { value: '경기', label: '경기도' },\r\n { value: '경남', label: '경남' },\r\n { value: '경북', label: '경북' },\r\n { value: '광주', label: '광주시' },\r\n { value: '대구', label: '대구시' },\r\n { value: '대전', label: '대전시' },\r\n { value: '부산', label: '부산시' },\r\n { value: '서울', label: '서울시' },\r\n { value: '세종', label: '세종시' },\r\n { value: '울산', label: '울산시' },\r\n { value: '인천', label: '인천시' },\r\n { value: '전남', label: '전남' },\r\n { value: '전북', label: '전북' },\r\n { value: '제주', label: '제주시' },\r\n { value: '충남', label: '충남' },\r\n { value: '충북', label: '충북' },\r\n { value: 'Seoul', label: 'Seoul' },\r\n { value: 'Busan', label: 'Busan' },\r\n { value: 'Daegu', label: 'Daegu' },\r\n { value: 'Incheon', label: 'Incheon' },\r\n { value: 'Gwangju', label: 'Gwangju' },\r\n { value: 'Daejeon', label: 'Daejeon' },\r\n { value: 'Ulsan', label: 'Ulsan' },\r\n { value: 'Gyeonggi', label: 'Gyeonggi' },\r\n { value: 'Gangwon', label: 'Gangwon' },\r\n { value: 'ChungBuk', label: 'North Chungcheong' },\r\n { value: 'ChungNam', label: 'South Chungcheong' },\r\n { value: 'JunBuk', label: 'North Jeolla' },\r\n { value: 'JunNam', label: 'South Jeolla' },\r\n { value: 'GyeongBuk', label: 'North Gyeongsang' },\r\n { value: 'GyeongNam', label: 'South Gyeongsang' },\r\n { value: 'Jeju', label: 'Jeju' },\r\n { value: 'Sejong', label: 'Sejong' }\r\n];\r\n\r\nexport const ArgState = [\r\n { key: 'CT', value: 'Catamarca' },\r\n { key: 'CC', value: 'Chaco' },\r\n { key: 'CH', value: 'Chubut' },\r\n { key: 'C', value: 'Ciudad Autónoma de Buenos Aires' },\r\n { key: 'CB', value: 'Córdoba' },\r\n { key: 'CN', value: 'Corrientes' },\r\n { key: 'ER', value: 'Entre Ríos' },\r\n { key: 'FM', value: 'Formosa' },\r\n { key: 'JY', value: 'Jujuy' },\r\n { key: 'LP', value: 'La Pampa' },\r\n { key: 'LR', value: 'La Rioja' },\r\n { key: 'MZ', value: 'Mendoza' },\r\n { key: 'MN', value: 'Misiones' },\r\n { key: 'NQ', value: 'Neuquén' },\r\n { key: 'BA', value: 'Provincia de Buenos Aires' },\r\n { key: 'RN', value: 'Río Negro' },\r\n { key: 'SA', value: 'Salta' },\r\n { key: 'SJ', value: 'San Juan' },\r\n { key: 'SL', value: 'San Luis' },\r\n { key: 'SC', value: 'Santa Cruz' },\r\n { key: 'SF', value: 'Santa Fe' },\r\n { key: 'SE', value: 'Santiago del Estero' },\r\n { key: 'TF', value: 'Tierra del Fuego' },\r\n { key: 'TM', value: 'Tucumán' }\r\n];\r\n","export const districtListCHL = [\r\n { value: 'COYHAIQUE', label: 'COYHAIQUE' },\r\n { value: 'LAGO VERDE', label: 'LAGO VERDE' },\r\n { value: 'AYSEN', label: 'AYSEN' },\r\n { value: 'CISNES', label: 'CISNES' },\r\n { value: 'GUAITECAS', label: 'GUAITECAS' },\r\n { value: 'COCHRANE', label: 'COCHRANE' },\r\n { value: 'O HIGGINS', label: 'O HIGGINS' },\r\n { value: 'TORTEL', label: 'TORTEL' },\r\n { value: 'CHILE CHICO', label: 'CHILE CHICO' },\r\n { value: 'RIO IBANEZ', label: 'RIO IBANEZ' },\r\n { value: 'ANTOFAGASTA', label: 'ANTOFAGASTA' },\r\n { value: 'MEJILLONES', label: 'MEJILLONES' },\r\n { value: 'SIERRA GORDA', label: 'SIERRA GORDA' },\r\n { value: 'TALTAL', label: 'TALTAL' },\r\n { value: 'CALAMA', label: 'CALAMA' },\r\n { value: 'OLLAGUE', label: 'OLLAGUE' },\r\n { value: 'SAN PEDRO DE ATACAMA', label: 'SAN PEDRO DE ATACAMA' },\r\n { value: 'TOCOPILLA', label: 'TOCOPILLA' },\r\n { value: 'MARIA ELENA', label: 'MARIA ELENA' },\r\n { value: 'ARICA', label: 'ARICA' },\r\n { value: 'CAMARONES', label: 'CAMARONES' },\r\n { value: 'PUTRE', label: 'PUTRE' },\r\n { value: 'GENERAL LAGOS', label: 'GENERAL LAGOS' },\r\n { value: 'TEMUCO', label: 'TEMUCO' },\r\n { value: 'CARAHUE', label: 'CARAHUE' },\r\n { value: 'CHOLCHOL', label: 'CHOLCHOL' },\r\n { value: 'CUARARREHUE', label: 'CUARARREHUE' },\r\n { value: 'FREIRE', label: 'FREIRE' },\r\n { value: 'GALVARINO', label: 'GALVARINO' },\r\n { value: 'GORBEA', label: 'GORBEA' },\r\n { value: 'LAUTARO', label: 'LAUTARO' },\r\n { value: 'LONCOCHE', label: 'LONCOCHE' },\r\n { value: 'MELIPEUCO', label: 'MELIPEUCO' },\r\n { value: 'NUEVA IMPERIAL', label: 'NUEVA IMPERIAL' },\r\n { value: 'PADRE LAS CASAS', label: 'PADRE LAS CASAS' },\r\n { value: 'PERQUENCO', label: 'PERQUENCO' },\r\n { value: 'PITRUFQUEN', label: 'PITRUFQUEN' },\r\n { value: 'PUCON', label: 'PUCON' },\r\n { value: 'SAAVEDRA', label: 'SAAVEDRA' },\r\n { value: 'TEODORO SCHMIDT', label: 'TEODORO SCHMIDT' },\r\n { value: 'VILLARRICA', label: 'VILLARRICA' },\r\n { value: 'VILCUN', label: 'VILCUN' },\r\n { value: 'TOLTEN', label: 'TOLTEN' },\r\n { value: 'CUNCO', label: 'CUNCO' },\r\n { value: 'ANGOL', label: 'ANGOL' },\r\n { value: 'COLLIPULLI', label: 'COLLIPULLI' },\r\n { value: 'CURACAUTIN', label: 'CURACAUTIN' },\r\n { value: 'ERCILLA', label: 'ERCILLA' },\r\n { value: 'LONQUIMAY', label: 'LONQUIMAY' },\r\n { value: 'LOS SAUCES', label: 'LOS SAUCES' },\r\n { value: 'LUMACO', label: 'LUMACO' },\r\n { value: 'PUREN', label: 'PUREN' },\r\n { value: 'RENAICO', label: 'RENAICO' },\r\n { value: 'TRAIGUEN', label: 'TRAIGUEN' },\r\n { value: 'VICTORIA', label: 'VICTORIA' },\r\n { value: 'COPIAPO', label: 'COPIAPO' },\r\n { value: 'CALDERA', label: 'CALDERA' },\r\n { value: 'TIERRA AMARILLA', label: 'TIERRA AMARILLA' },\r\n { value: 'CHANARAL', label: 'CHANARAL' },\r\n { value: 'DIEGO DE ALMAGRO', label: 'DIEGO DE ALMAGRO' },\r\n { value: 'VALLENAR', label: 'VALLENAR' },\r\n { value: 'ALTO DEL CARMEN', label: 'ALTO DEL CARMEN' },\r\n { value: 'FREIRINA', label: 'FREIRINA' },\r\n { value: 'HUASCO', label: 'HUASCO' },\r\n { value: 'TOME', label: 'TOME' },\r\n { value: 'TALCAHUANO', label: 'TALCAHUANO' },\r\n { value: 'SANTA JUANA', label: 'SANTA JUANA' },\r\n { value: 'SAN PEDRO DE LA PAZ', label: 'SAN PEDRO DE LA PAZ' },\r\n { value: 'PENCO', label: 'PENCO' },\r\n { value: 'LOTA', label: 'LOTA' },\r\n { value: 'HUALQUI', label: 'HUALQUI' },\r\n { value: 'HUALPEN', label: 'HUALPEN' },\r\n { value: 'FLORIDA', label: 'FLORIDA' },\r\n { value: 'CORONEL', label: 'CORONEL' },\r\n { value: 'CONCEPCION', label: 'CONCEPCION' },\r\n { value: 'CHIGUAYANTE', label: 'CHIGUAYANTE' },\r\n { value: 'TIRUA', label: 'TIRUA' },\r\n { value: 'LOS ALAMOS', label: 'LOS ALAMOS' },\r\n { value: 'LEBU', label: 'LEBU' },\r\n { value: 'CURANILAHUE', label: 'CURANILAHUE' },\r\n { value: 'CONTULMO', label: 'CONTULMO' },\r\n { value: 'CANETE', label: 'CANETE' },\r\n { value: 'ARAUCO', label: 'ARAUCO' },\r\n { value: 'YUMBEL', label: 'YUMBEL' },\r\n { value: 'TUCAPEL', label: 'TUCAPEL' },\r\n { value: 'SANTA BARBARA', label: 'SANTA BARBARA' },\r\n { value: 'SAN ROSENDO', label: 'SAN ROSENDO' },\r\n { value: 'QUILLECO', label: 'QUILLECO' },\r\n { value: 'QUILACO', label: 'QUILACO' },\r\n { value: 'NEGRETE', label: 'NEGRETE' },\r\n { value: 'NACIMIENTO', label: 'NACIMIENTO' },\r\n { value: 'MAULCHEN', label: 'MAULCHEN' },\r\n { value: 'LOS ANGELES', label: 'LOS ANGELES' },\r\n { value: 'LAJA', label: 'LAJA' },\r\n { value: 'CABRERO', label: 'CABRERO' },\r\n { value: 'ANTUCO', label: 'ANTUCO' },\r\n { value: 'ALTO BIOBIO', label: 'ALTO BIOBIO' },\r\n { value: 'CHILLAN', label: 'CHILLAN' },\r\n { value: 'BULNES', label: 'BULNES' },\r\n { value: 'COBQUECURA', label: 'COBQUECURA' },\r\n { value: 'COELEMU', label: 'COELEMU' },\r\n { value: 'COIHUECO', label: 'COIHUECO' },\r\n { value: 'CHILLAN VIEJO', label: 'CHILLAN VIEJO' },\r\n { value: 'EL CARMEN', label: 'EL CARMEN' },\r\n { value: 'NINHUE', label: 'NINHUE' },\r\n { value: 'NIQUEN', label: 'NIQUEN' },\r\n { value: 'PEMUCO', label: 'PEMUCO' },\r\n { value: 'PINTO', label: 'PINTO' },\r\n { value: 'PORTEZUELO', label: 'PORTEZUELO' },\r\n { value: 'QUILLON', label: 'QUILLON' },\r\n { value: 'QUIRIHUE', label: 'QUIRIHUE' },\r\n { value: 'RANQUIL', label: 'RANQUIL' },\r\n { value: 'SAN CARLOS', label: 'SAN CARLOS' },\r\n { value: 'SAN FABIAN DE ALICO', label: 'SAN FABIAN DE ALICO' },\r\n { value: 'SAN IGNACIO', label: 'SAN IGNACIO' },\r\n { value: 'SAN NICOLAS', label: 'SAN NICOLAS' },\r\n { value: 'TREHUACO', label: 'TREHUACO' },\r\n { value: 'YUNGAY', label: 'YUNGAY' },\r\n { value: 'LA SERENA', label: 'LA SERENA' },\r\n { value: 'COQUIMBO', label: 'COQUIMBO' },\r\n { value: 'ANDACOLLO', label: 'ANDACOLLO' },\r\n { value: 'LA HIGUERA', label: 'LA HIGUERA' },\r\n { value: 'PAIHUANO', label: 'PAIHUANO' },\r\n { value: 'VICUNA', label: 'VICUNA' },\r\n { value: 'ILLAPEL', label: 'ILLAPEL' },\r\n { value: 'CANELA', label: 'CANELA' },\r\n { value: 'LOS VILOS', label: 'LOS VILOS' },\r\n { value: 'SALAMANCA', label: 'SALAMANCA' },\r\n { value: 'OVALLE', label: 'OVALLE' },\r\n { value: 'COMBARBALA', label: 'COMBARBALA' },\r\n { value: 'MONTE PATRIA', label: 'MONTE PATRIA' },\r\n { value: 'PUNITAQUI', label: 'PUNITAQUI' },\r\n { value: 'RIO HURTADO', label: 'RIO HURTADO' },\r\n { value: 'RANCAGUA', label: 'RANCAGUA' },\r\n { value: 'CODEGUA', label: 'CODEGUA' },\r\n { value: 'COINCO', label: 'COINCO' },\r\n { value: 'COLTAUCO', label: 'COLTAUCO' },\r\n { value: 'CONIHUE', label: 'CONIHUE' },\r\n { value: 'GRANEROS', label: 'GRANEROS' },\r\n { value: 'LAS CABRAS', label: 'LAS CABRAS' },\r\n { value: 'MACHALI', label: 'MACHALI' },\r\n { value: 'MALLOA', label: 'MALLOA' },\r\n { value: 'MOSTAZAL', label: 'MOSTAZAL' },\r\n { value: 'OLIVAR', label: 'OLIVAR' },\r\n { value: 'PEUMO', label: 'PEUMO' },\r\n { value: 'PICHIDEGUA', label: 'PICHIDEGUA' },\r\n { value: 'QUINTA DE TILCOCO', label: 'QUINTA DE TILCOCO' },\r\n { value: 'RENGO', label: 'RENGO' },\r\n { value: 'REQUINOA', label: 'REQUINOA' },\r\n { value: 'SAN VICENTE', label: 'SAN VICENTE' },\r\n { value: 'PICHILEMU', label: 'PICHILEMU' },\r\n { value: 'LA ESTRELLA', label: 'LA ESTRELLA' },\r\n { value: 'LITUECHE', label: 'LITUECHE' },\r\n { value: 'MARCHIHUE', label: 'MARCHIHUE' },\r\n { value: 'NAVIDAD', label: 'NAVIDAD' },\r\n { value: 'PAREDONES', label: 'PAREDONES' },\r\n { value: 'SAN FERNANDO', label: 'SAN FERNANDO' },\r\n { value: 'CHEPICA', label: 'CHEPICA' },\r\n { value: 'CHIMBARONGO', label: 'CHIMBARONGO' },\r\n { value: 'LOLOL', label: 'LOLOL' },\r\n { value: 'NANCAGUA', label: 'NANCAGUA' },\r\n { value: 'PALMILLA', label: 'PALMILLA' },\r\n { value: 'PERALILLO', label: 'PERALILLO' },\r\n { value: 'PLACILLA', label: 'PLACILLA' },\r\n { value: 'PUMANQUE', label: 'PUMANQUE' },\r\n { value: 'SANTA CRUZ', label: 'SANTA CRUZ' },\r\n { value: 'PUERTO MONTT', label: 'PUERTO MONTT' },\r\n { value: 'CALBUCO', label: 'CALBUCO' },\r\n { value: 'COCHAMO', label: 'COCHAMO' },\r\n { value: 'FRESIA', label: 'FRESIA' },\r\n { value: 'FRUTILLAR', label: 'FRUTILLAR' },\r\n { value: 'LOS MUERMOS', label: 'LOS MUERMOS' },\r\n { value: 'LLANQUIHUE', label: 'LLANQUIHUE' },\r\n { value: 'MAULLIN', label: 'MAULLIN' },\r\n { value: 'PUERTO VARAS', label: 'PUERTO VARAS' },\r\n { value: 'CASTRO', label: 'CASTRO' },\r\n { value: 'ANCUD', label: 'ANCUD' },\r\n { value: 'CHONCHI', label: 'CHONCHI' },\r\n { value: 'CURACO DE VELEZ', label: 'CURACO DE VELEZ' },\r\n { value: 'DALCAHUE', label: 'DALCAHUE' },\r\n { value: 'PUQUELDON', label: 'PUQUELDON' },\r\n { value: 'QUEILEN', label: 'QUEILEN' },\r\n { value: 'QUELLON', label: 'QUELLON' },\r\n { value: 'QUEMCHI', label: 'QUEMCHI' },\r\n { value: 'QUINCHAO', label: 'QUINCHAO' },\r\n { value: 'OSORNO', label: 'OSORNO' },\r\n { value: 'PUERTO OCTAY', label: 'PUERTO OCTAY' },\r\n { value: 'PURRANQUE', label: 'PURRANQUE' },\r\n { value: 'PUYEHUE', label: 'PUYEHUE' },\r\n { value: 'RIO NEGRO', label: 'RIO NEGRO' },\r\n { value: 'SAN JUAN DE LA COSTA', label: 'SAN JUAN DE LA COSTA' },\r\n { value: 'SAN PABLO', label: 'SAN PABLO' },\r\n { value: 'CHAITEN', label: 'CHAITEN' },\r\n { value: 'FUTALEUFU', label: 'FUTALEUFU' },\r\n { value: 'HUALAIHUE', label: 'HUALAIHUE' },\r\n { value: 'PALENA', label: 'PALENA' },\r\n { value: 'VALDIVIA', label: 'VALDIVIA' },\r\n { value: 'CORRAL', label: 'CORRAL' },\r\n { value: 'LANCO', label: 'LANCO' },\r\n { value: 'LOS LAGOS', label: 'LOS LAGOS' },\r\n { value: 'MAFIL', label: 'MAFIL' },\r\n { value: 'SAN JOSE DE MARIQUINA', label: 'SAN JOSE DE MARIQUINA' },\r\n { value: 'PAILLACO', label: 'PAILLACO' },\r\n { value: 'PANGUIPULLI', label: 'PANGUIPULLI' },\r\n { value: 'LA UNION', label: 'LA UNION' },\r\n { value: 'FUTRONO', label: 'FUTRONO' },\r\n { value: 'LAGO RANCO', label: 'LAGO RANCO' },\r\n { value: 'RIO BUENO', label: 'RIO BUENO' },\r\n { value: 'PUNTA ARENAS', label: 'PUNTA ARENAS' },\r\n { value: 'LAGUNA BLANCA', label: 'LAGUNA BLANCA' },\r\n { value: 'RIO VERDE', label: 'RIO VERDE' },\r\n { value: 'SAN GREGORIO', label: 'SAN GREGORIO' },\r\n { value: 'CABO DE HORNOS', label: 'CABO DE HORNOS' },\r\n { value: 'ANTARTICA', label: 'ANTARTICA' },\r\n { value: 'PORVENIR', label: 'PORVENIR' },\r\n { value: 'PRIMAVERA', label: 'PRIMAVERA' },\r\n { value: 'TIMAUKEL', label: 'TIMAUKEL' },\r\n { value: 'PUERTO NATALES', label: 'PUERTO NATALES' },\r\n { value: 'TORRES DEL PAINE', label: 'TORRES DEL PAINE' },\r\n { value: 'TALCAHUANO', label: 'TALCAHUANO' },\r\n { value: 'CONSTITUCION', label: 'CONSTITUCION' },\r\n { value: 'CUREPTO', label: 'CUREPTO' },\r\n { value: 'EMPEDRADO', label: 'EMPEDRADO' },\r\n { value: 'MAULE', label: 'MAULE' },\r\n { value: 'PELARCO', label: 'PELARCO' },\r\n { value: 'PENCAHUE', label: 'PENCAHUE' },\r\n { value: 'RIO CLARO', label: 'RIO CLARO' },\r\n { value: 'SAN CLEMENTE', label: 'SAN CLEMENTE' },\r\n { value: 'SAN RAFAEL', label: 'SAN RAFAEL' },\r\n { value: 'CAUQUENES', label: 'CAUQUENES' },\r\n { value: 'CHANCO', label: 'CHANCO' },\r\n { value: 'PELLUHUE', label: 'PELLUHUE' },\r\n { value: 'CURICO', label: 'CURICO' },\r\n { value: 'HUALANE', label: 'HUALANE' },\r\n { value: 'LICANTEN', label: 'LICANTEN' },\r\n { value: 'MOLINA', label: 'MOLINA' },\r\n { value: 'RAUCO', label: 'RAUCO' },\r\n { value: 'ROMERAL', label: 'ROMERAL' },\r\n { value: 'SAGRADA FAMILIA', label: 'SAGRADA FAMILIA' },\r\n { value: 'TENO', label: 'TENO' },\r\n { value: 'VICHUQUEN', label: 'VICHUQUEN' },\r\n { value: 'LINARES', label: 'LINARES' },\r\n { value: 'COLBUN', label: 'COLBUN' },\r\n { value: 'LONGAVI', label: 'LONGAVI' },\r\n { value: 'PARRAL', label: 'PARRAL' },\r\n { value: 'RETIRO', label: 'RETIRO' },\r\n { value: 'SAN JAVIER', label: 'SAN JAVIER' },\r\n { value: 'VILLA ALEGRE', label: 'VILLA ALEGRE' },\r\n { value: 'YERBAS BUENAS', label: 'YERBAS BUENAS' },\r\n { value: 'SANTIAGO', label: 'SANTIAGO' },\r\n { value: 'CERRILLOS', label: 'CERRILLOS' },\r\n { value: 'CERRO NAVIA', label: 'CERRO NAVIA' },\r\n { value: 'CONCHALI', label: 'CONCHALI' },\r\n { value: 'EL BOSQUE', label: 'EL BOSQUE' },\r\n { value: 'ESTACION CENTRAL', label: 'ESTACION CENTRAL' },\r\n { value: 'HUECHURABA', label: 'HUECHURABA' },\r\n { value: 'INDEPENDENCIA', label: 'INDEPENDENCIA' },\r\n { value: 'LA CISTERNA', label: 'LA CISTERNA' },\r\n { value: 'LA FLORIDA', label: 'LA FLORIDA' },\r\n { value: 'LA GRANJA', label: 'LA GRANJA' },\r\n { value: 'LA PENTANA', label: 'LA PENTANA' },\r\n { value: 'LA REINA', label: 'LA REINA' },\r\n { value: 'LAS CONDES', label: 'LAS CONDES' },\r\n { value: 'LO BARNECHEA', label: 'LO BARNECHEA' },\r\n { value: 'LO ESPEJO', label: 'LO ESPEJO' },\r\n { value: 'LO PRADO', label: 'LO PRADO' },\r\n { value: 'MACUL', label: 'MACUL' },\r\n { value: 'MAIPU', label: 'MAIPU' },\r\n { value: 'PUENTE ALTO', label: 'PUENTE ALTO' },\r\n { value: 'PIRQUE', label: 'PIRQUE' },\r\n { value: 'SAN JOSE DE MAIPO', label: 'SAN JOSE DE MAIPO' },\r\n { value: 'COLINA', label: 'COLINA' },\r\n { value: 'LAMPA', label: 'LAMPA' },\r\n { value: 'TILTIL', label: 'TILTIL' },\r\n { value: 'SAN BERNARDO', label: 'SAN BERNARDO' },\r\n { value: 'BUIN', label: 'BUIN' },\r\n { value: 'CALERA DE TANGO', label: 'CALERA DE TANGO' },\r\n { value: 'PAINE', label: 'PAINE' },\r\n { value: 'MELIPILLA', label: 'MELIPILLA' },\r\n { value: 'ALHUE', label: 'ALHUE' },\r\n { value: 'CURACAVI', label: 'CURACAVI' },\r\n { value: 'MARIA PINTO', label: 'MARIA PINTO' },\r\n { value: 'SAN PEDRO', label: 'SAN PEDRO' },\r\n { value: 'TALAGANTE', label: 'TALAGANTE' },\r\n { value: 'EL MONTE', label: 'EL MONTE' },\r\n { value: 'ISLA DE MAIPO', label: 'ISLA DE MAIPO' },\r\n { value: 'PADRE HURTADO', label: 'PADRE HURTADO' },\r\n { value: 'PENAFLOR', label: 'PENAFLOR' },\r\n { value: 'IQUIQUE', label: 'IQUIQUE' },\r\n { value: 'ALTO HOSPICIO', label: 'ALTO HOSPICIO' },\r\n { value: 'POZO ALMONTE', label: 'POZO ALMONTE' },\r\n { value: 'CAMINA', label: 'CAMINA' },\r\n { value: 'COLCHANE', label: 'COLCHANE' },\r\n { value: 'HUARA', label: 'HUARA' },\r\n { value: 'PICA', label: 'PICA' },\r\n { value: 'VALPARAISO', label: 'VALPARAISO' },\r\n { value: 'CASABLANCA', label: 'CASABLANCA' },\r\n { value: 'CON CON', label: 'CON CON' },\r\n { value: 'ISLA JUAN FERNANDEZ', label: 'ISLA JUAN FERNANDEZ' },\r\n { value: 'PUCHUNCAVI', label: 'PUCHUNCAVI' },\r\n { value: 'QUINTERO', label: 'QUINTERO' },\r\n { value: 'VINA DEL MAR', label: 'VINA DEL MAR' },\r\n { value: 'ISLA DE PASCUA', label: 'ISLA DE PASCUA' },\r\n { value: 'LOS ANDES', label: 'LOS ANDES' },\r\n { value: 'CALLE LARGA', label: 'CALLE LARGA' },\r\n { value: 'RINCONADA', label: 'RINCONADA' },\r\n { value: 'SAN ESTEB', label: 'SAN ESTEB' }\r\n];\r\n\r\nexport const cityCheckListChl = [\r\n { value: 'COIHAIQUE', label: 'COIHAIQUE' },\r\n { value: 'AISEN', label: 'AISEN' },\r\n { value: 'CAPITAN PRAT', label: 'CAPITAN PRAT' },\r\n { value: 'GENERAL CARRERA', label: 'GENERAL CARRERA' },\r\n { value: 'ANTOFGASA', label: 'ANTOFGASA' },\r\n { value: 'EL LOA', label: 'EL LOA' },\r\n { value: 'TOCOPILLA', label: 'TOCOPILLA' },\r\n { value: 'ARICA', label: 'ARICA' },\r\n { value: 'PARINACOTA', label: 'PARINACOTA' },\r\n { value: 'CAUTIN', label: 'CAUTIN' },\r\n { value: 'MALLECO', label: 'MALLECO' },\r\n { value: 'COPIAPO', label: 'COPIAPO' },\r\n { value: 'CHANARAL', label: 'CHANARAL' },\r\n { value: 'HUASCO', label: 'HUASCO' },\r\n { value: 'CONCEPCION', label: 'CONCEPCION' },\r\n { value: 'ARAUCO', label: 'ARAUCO' },\r\n { value: 'BIOBIO', label: 'BIOBIO' },\r\n { value: 'NUBLE', label: 'NUBLE' },\r\n { value: 'ELQUI', label: 'ELQUI' },\r\n { value: 'CHOAPA', label: 'CHOAPA' },\r\n { value: 'LIMARI', label: 'LIMARI' },\r\n { value: 'CACHAPOAL', label: 'CACHAPOAL' },\r\n { value: 'CARDENAL CARO', label: 'CARDENAL CARO' },\r\n { value: 'COLCHAGUA', label: 'COLCHAGUA' },\r\n { value: 'LLANQUIHUE', label: 'LLANQUIHUE' },\r\n { value: 'CHILOE', label: 'CHILOE' },\r\n { value: 'OSORNO', label: 'OSORNO' },\r\n { value: 'PALENA', label: 'PALENA' },\r\n { value: 'VALDIVIA', label: 'VALDIVIA' },\r\n { value: 'RANCO', label: 'RANCO' },\r\n { value: 'MAGALLANES', label: 'MAGALLANES' },\r\n { value: 'ANTARTICA CHILENA', label: 'ANTARTICA CHILENA' },\r\n { value: 'TIERRA DEL FUEGO', label: 'TIERRA DEL FUEGO' },\r\n { value: 'ULTIMA ESPERANZA', label: 'ULTIMA ESPERANZA' },\r\n { value: 'TALCA', label: 'TALCA' },\r\n { value: 'CAUQUENES', label: 'CAUQUENES' },\r\n { value: 'CURICO', label: 'CURICO' },\r\n { value: 'LINARES', label: 'LINARES' },\r\n { value: 'SANTIAGO', label: 'SANTIAGO' },\r\n { value: 'CORDILLERA', label: 'CORDILLERA' },\r\n { value: 'CHACABUCO', label: 'CHACABUCO' },\r\n { value: 'MAIPO', label: 'MAIPO' },\r\n { value: 'MELIPLLA', label: 'MELIPLLA' },\r\n { value: 'TALAGANTE', label: 'TALAGANTE' },\r\n { value: 'IQUIQUE', label: 'IQUIQUE' },\r\n { value: 'TAMARUGAL', label: 'TAMARUGAL' },\r\n { value: 'VALPARAISO', label: 'VALPARAISO' },\r\n { value: 'ISLA DE PASCUA', label: 'ISLA DE PASCUA' },\r\n { value: 'LOS ANDES', label: 'LOS ANDES' },\r\n { value: 'PETORCA', label: 'PETORCA' },\r\n { value: 'QUILLOTA', label: 'QUILLOTA' },\r\n { value: 'SAN ANTONIO', label: 'SAN ANTONIO' },\r\n { value: 'SAN FELIPE', label: 'SAN FELIPE' },\r\n { value: 'MARGA MARGA', label: 'MARGA MARGA' }\r\n];\r\n\r\nexport const stateCheckListChl = [\r\n { value: 'AI', label: 'Aisén del General Carlos Ibañez del Campo' },\r\n { value: 'AN', label: 'Antofagasta' },\r\n { value: 'AP', label: 'Arica y Parinacota' },\r\n { value: 'AR', label: 'Araucanía' },\r\n { value: 'AT', label: 'Atacama' },\r\n { value: 'BI', label: 'Bío-Bío' },\r\n { value: 'CO', label: 'Coquimbo' },\r\n { value: 'LI', label: `Libertador General Bernardo O'Higgins` },\r\n { value: 'LL', label: 'Los Lagos' },\r\n { value: 'LR', label: 'Los Ríos' },\r\n { value: 'MA', label: 'Magallanes' },\r\n { value: 'ML', label: 'Maule' },\r\n { value: 'RM', label: 'Región Metropolitana de Santiago' },\r\n { value: 'TA', label: 'Tarapacá' },\r\n { value: 'VS', label: 'Valparaíso' }\r\n];\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\nexport enum AddressItemDisplayType {\r\n Input = 'Input',\r\n Dropdown = 'Dropdown',\r\n Checkbox = 'Checkbox'\r\n}\r\n\r\nexport enum AddressValidationRuleType {\r\n Required = 'Required',\r\n Format = 'Format'\r\n}\r\n\r\nexport enum AddressItemType {\r\n Name = 1001,\r\n Phone = 1002,\r\n IsPrimary = 1003,\r\n AddressTypeValue = 1004,\r\n ZipCode = 1,\r\n City = 2,\r\n County = 3,\r\n State = 4,\r\n ThreeLetterISORegionName = 5,\r\n Street = 6,\r\n DistrictName = 7,\r\n StreetNumber = 8,\r\n BuildingCompliment = 9,\r\n Postbox = 10,\r\n House_RU = 21,\r\n Flat_RU = 22,\r\n CountryOKSMCode_RU = 23\r\n}\r\n\r\nexport interface IAddressItem {\r\n name: string;\r\n type: AddressItemType;\r\n label: string;\r\n maxLength: number;\r\n displayType: AddressItemDisplayType;\r\n validationRules?: IAddressValidationRule[];\r\n isNewLine: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface IAddressValidationRule {\r\n type: AddressValidationRuleType;\r\n regEx: string;\r\n message: string;\r\n}\r\n\r\nexport interface IAddressDropdownsData {\r\n [index: string]: { key?: string | number; value?: string }[];\r\n}\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 IAdressAlert {\r\n message?: string;\r\n}\r\n\r\n/**\r\n * Address alert.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressAlertFunctionComponent: React.FC = (props: IAdressAlert) => {\r\n const message = props.message;\r\n return (\r\n \r\n {message && <>{message}}\r\n \r\n );\r\n};\r\n\r\nexport default AddressAlertFunctionComponent;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressButton {\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n role?: string;\r\n onClick(event: React.MouseEvent): void;\r\n}\r\n\r\n/**\r\n * Address button.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressButtonFunctionComponent: React.FC = (props: IAddressButton) => {\r\n const { className, text, ariaLabel, disabled: isDisabled, telemetryContent, onClick, role } = props;\r\n const payLoad = getPayloadObject('click', telemetryContent!, text);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressButtonFunctionComponent;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressCheckbox {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n isChecked: boolean;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\n/**\r\n * Address checkbox.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressCheckboxFunctionComponent: React.FC = (props: IAdressCheckbox) => {\r\n const {\r\n id: itemId,\r\n name,\r\n className,\r\n type,\r\n isChecked,\r\n additionalAddributes,\r\n telemetryContent,\r\n autoFocus: shouldBeAutoFocused,\r\n onChange\r\n } = props;\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressCheckboxFunctionComponent;\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 IAdressDropdown {\r\n id: string;\r\n name: string;\r\n className: string;\r\n value: string | number;\r\n additionalAddributes?: object;\r\n displayData: { key?: string | number; value?: string }[];\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst getDropdownItem = (key?: string | number, value?: string, selectedValue?: string | number): React.ReactNode => {\r\n let isSelected: boolean;\r\n if (typeof key === 'number') {\r\n isSelected = key === selectedValue;\r\n } else {\r\n isSelected = typeof selectedValue === 'string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address dropdown.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressDropdownFunctionComponent: React.FC = (props: IAdressDropdown) => {\r\n const { id: itemId, name, className, value, additionalAddributes, displayData, onChange } = props;\r\n\r\n return (\r\n \r\n {displayData && displayData.map(item => getDropdownItem(item.key, item.value, value))}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDropdownFunctionComponent;\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 IAdressErrorMessage {\r\n message: string;\r\n}\r\n\r\n/**\r\n * Address error message.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressErrorMessageFunctionComponent: React.FC = (props: IAdressErrorMessage) => {\r\n const { message } = props;\r\n\r\n return

{message}

;\r\n};\r\n\r\nexport default AddressErrorMessageFunctionComponent;\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 IAdressErrorTitle {\r\n title: string;\r\n}\r\n\r\n/**\r\n * Address error title.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressErrorTitleFunctionComponent: React.FC = (props: IAdressErrorTitle) => {\r\n const { title } = props;\r\n\r\n return

{title}

;\r\n};\r\n\r\nexport default AddressErrorTitleFunctionComponent;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressInput {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n value: string;\r\n maxLength?: number;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\n/**\r\n * Address input.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressInputFunctionComponent: React.FC = (props: IAdressInput) => {\r\n const {\r\n id: itemId,\r\n name,\r\n className,\r\n type,\r\n value,\r\n maxLength,\r\n additionalAddributes,\r\n autoFocus: shouldUseAutoFocus,\r\n telemetryContent,\r\n onChange\r\n } = props;\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressInputFunctionComponent;\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 IAdressLabel {\r\n id: string;\r\n text: string;\r\n}\r\n\r\n/**\r\n * Address label.\r\n * @param props - Configuration of the functional component.\r\n * @returns React functional component.\r\n */\r\nexport const AddressLabelFunctionComponent: React.FC = (props: IAdressLabel) => {\r\n const { id: itemId, text } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressLabelFunctionComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressDropdownsData,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from './address-format.data';\r\nimport { AddressType, IAddressResponse } from './address-module.data';\r\nimport AddressAlertComponent from './address-alert';\r\nimport AddressButtonComponent from './address-button';\r\nimport AdressCheckboxComponent from './address-checkbox';\r\nimport AdressDropdownComponent from './address-dropdown';\r\nimport AddressErrorMessageComponent from './address-error-message';\r\nimport AddressErrorTitleComponent from './address-error-title';\r\nimport AddressInputComponent from './address-input';\r\nimport AddressLabelComponent from './address-label';\r\n\r\nexport interface IAddressAddInputProps {\r\n isUpdating?: boolean;\r\n hasError?: boolean;\r\n hasExternalSubmitGroup?: boolean;\r\n addressType: AddressType;\r\n addressFormat: IAddressItem[];\r\n defaultCountryRegionId: string;\r\n defaultAddressType: number;\r\n selectedAddress?: Address;\r\n dropdownDisplayData: IAddressDropdownsData;\r\n resources: any;\r\n addressActionResponse?: IAddressResponse;\r\n addAddressHeading?: HeadingData;\r\n editAddressHeading?: HeadingData;\r\n validationError?: object;\r\n telemetryContent?: ITelemetryContent;\r\n shouldAutoFocus?: boolean;\r\n onInputChange(event: React.ChangeEvent): void;\r\n onDropdownChange(event: React.ChangeEvent): void;\r\n onSave?: any;\r\n onSaveCustom?: any;\r\n onCustomSave?: any;\r\n onSaveSmarty?: any;\r\n onCancel?(): void;\r\n loading?: any;\r\n}\r\n\r\nexport interface IAddressError {\r\n AddressError: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddItem {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: any;\r\n}\r\n\r\nexport interface IAddressAddUpdateProps {\r\n AddressForm: INodeProps;\r\n heading: React.ReactNode;\r\n items: IAddressAddItem[];\r\n hasError: boolean;\r\n error: IAddressError;\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n resources?: any;\r\n defaultCountryRegionId?: any;\r\n}\r\n\r\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\r\n const requriedRule = (validationRules || []).find(validationRule => {\r\n return validationRule.type === AddressValidationRuleType.Required;\r\n });\r\n\r\n return requriedRule ? { 'aria-required': true } : {};\r\n};\r\n\r\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps): IAddressAddItem[] => {\r\n const {\r\n addressFormat,\r\n addressType,\r\n dropdownDisplayData,\r\n defaultCountryRegionId,\r\n defaultAddressType,\r\n validationError = {},\r\n onInputChange,\r\n onDropdownChange,\r\n shouldAutoFocus,\r\n resources\r\n } = props;\r\n const twoStreetsAddressFormat: IAddressItem[] = [];\r\n\r\n // addressFormat.map((addressFormatItem, index) => {\r\n // if (addressFormatItem.name === 'Street') {\r\n // let validationRules1: IAddressValidationRule[] = [];\r\n // let validationRules2: IAddressValidationRule[] = [];\r\n // if (addressFormatItem.validationRules) {\r\n // validationRules1 = [...addressFormatItem.validationRules];\r\n // validationRules2 = [...addressFormatItem.validationRules];\r\n\r\n // validationRules1[0].message = 'Street 1 is required';\r\n // validationRules2.shift();\r\n // }\r\n\r\n // const street1 = {\r\n // ...addressFormatItem,\r\n // name: 'Street',\r\n // label: 'Street 1 *',\r\n // maxLength: 30,\r\n // validationRules: validationRules1\r\n // };\r\n // const street2 = { ...addressFormatItem, name: 'Street_2', label: 'Street 2', maxLength: 30, validationRules: validationRules2 };\r\n // twoStreetsAddressFormat.push(street1);\r\n // twoStreetsAddressFormat.push(street2);\r\n // } else {\r\n // twoStreetsAddressFormat.push(addressFormatItem);\r\n // }\r\n // });\r\n addressFormat.map((addressFormatItem, index) => {\r\n if (addressFormatItem.name === 'State' && defaultCountryRegionId === 'KOR') {\r\n addressFormatItem.label = resources.addressMunicipalityLabel;\r\n }\r\n if (addressFormatItem.name === 'City' && defaultCountryRegionId === 'AUS') {\r\n addressFormatItem.label = resources.addressSuburbLabel;\r\n }\r\n\r\n if (addressFormatItem.name === 'ThreeLetterISORegionName') {\r\n addressFormatItem.disabled = true;\r\n }\r\n if (addressFormatItem.name === 'Street') {\r\n let validationRules1: IAddressValidationRule[] = [];\r\n let validationRules2: IAddressValidationRule[] = [];\r\n if (addressFormatItem.validationRules) {\r\n validationRules1 = [...addressFormatItem.validationRules];\r\n validationRules2 = [...addressFormatItem.validationRules];\r\n\r\n validationRules1[0].message = 'Street 1 is required';\r\n validationRules2.shift();\r\n }\r\n\r\n const street1 = {\r\n ...addressFormatItem,\r\n name: 'Street',\r\n label: resources.addressStreetLabel1,\r\n maxLength: 30,\r\n validationRules: validationRules1\r\n };\r\n const street2 = {\r\n ...addressFormatItem,\r\n name: 'Street_2',\r\n label: resources.addressStreetLabel2,\r\n maxLength: 30,\r\n validationRules: validationRules2\r\n };\r\n twoStreetsAddressFormat.push(street1);\r\n twoStreetsAddressFormat.push(street2);\r\n } else {\r\n twoStreetsAddressFormat.push(addressFormatItem);\r\n }\r\n });\r\n\r\n return twoStreetsAddressFormat.map((addressFormatItem, index) => {\r\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\r\n let errorMessage = get(validationError, addressFormatItem.name);\r\n if (addressFormatItem.name === 'State' && defaultCountryRegionId === 'KOR' && errorMessage) {\r\n const splitErrorMessage = errorMessage.split(' ');\r\n splitErrorMessage[0] = resources.addressMunicipalityLabel.replace('*', '');\r\n const joinedMessage = splitErrorMessage.join(' ');\r\n errorMessage = joinedMessage;\r\n } else if (addressFormatItem.name === 'City' && defaultCountryRegionId === 'AUS' && errorMessage) {\r\n const splitErrorMessage = errorMessage.split(' ');\r\n splitErrorMessage[0] = resources.addressSuburbLabel.replace('*', '');\r\n const joinedMessage = splitErrorMessage.join(' ');\r\n errorMessage = joinedMessage;\r\n }\r\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, {\r\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\r\n 'address-form__item-invalid': errorMessage\r\n });\r\n let input;\r\n\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\r\n \r\n );\r\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\r\n input = (\r\n \r\n );\r\n } else {\r\n const displayData = dropdownDisplayData[addressFormatItem.name];\r\n // @ts-ignore\r\n let selectedValue = selectedAddress[addressFormatItem.name];\r\n\r\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\r\n selectedValue = selectedValue || defaultCountryRegionId;\r\n }\r\n\r\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\r\n selectedValue = selectedValue || defaultAddressType;\r\n }\r\n let filteredData: any;\r\n\r\n if (displayData) {\r\n filteredData = displayData.filter((data: any) => {\r\n return data.key !== null && data.key !== 'NULL';\r\n });\r\n }\r\n\r\n input = (\r\n \r\n );\r\n }\r\n\r\n if (addressFormatItem.name === 'State') {\r\n if (input && input.props && input.props.displayData && input.props.displayData.length > 1) {\r\n const filteredData = input.props.displayData.filter((item: any) => {\r\n return item.key !== '' && item.key !== 'NULL';\r\n });\r\n input.props.displayData = filteredData;\r\n }\r\n }\r\n\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className, id: `${elementId}_container` },\r\n label: ,\r\n alert: ,\r\n input\r\n };\r\n });\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\r\n const {\r\n editAddressHeading,\r\n addAddressHeading,\r\n selectedAddress = {},\r\n resources,\r\n hasError,\r\n onCancel,\r\n onSave,\r\n hasExternalSubmitGroup,\r\n isUpdating,\r\n addressActionResponse,\r\n telemetryContent,\r\n defaultCountryRegionId,\r\n onCustomSave,\r\n onSaveSmarty\r\n } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n\r\n return {\r\n AddressForm: { className: 'msc-address-form' },\r\n defaultCountryRegionId: defaultCountryRegionId,\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton:\r\n onSave &&\r\n (defaultCountryRegionId === 'BRA' ||\r\n defaultCountryRegionId === 'GHA' ||\r\n defaultCountryRegionId === 'CIV' ||\r\n defaultCountryRegionId === 'NGA' ||\r\n defaultCountryRegionId === 'PER' ||\r\n defaultCountryRegionId === 'CHL' ||\r\n defaultCountryRegionId === 'URY') ? (\r\n \r\n ) : defaultCountryRegionId === 'USA' || defaultCountryRegionId === 'CAN' ? (\r\n \r\n ) : (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: onCancel && (\r\n \r\n ),\r\n hasError: hasError || false,\r\n error: {\r\n AddressError: { className: 'msc-address-form__error' },\r\n title: addressActionResponse && addressActionResponse.errorTitle && (\r\n \r\n ),\r\n message: addressActionResponse && addressActionResponse.errorMessage && (\r\n \r\n )\r\n }\r\n };\r\n};\r\n","import * as React from 'react';\r\n\r\nimport { getUnitAddressesAsync } from '../../../../actions/DataActionExtension.g';\r\nimport Select from 'react-select';\r\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport const AfricaCheckout: React.FC = ({\r\n resources,\r\n customSetAddress,\r\n context,\r\n setIsVisible,\r\n setIsDisabled,\r\n filteredItems,\r\n setUnitName,\r\n setStakeNameAddress,\r\n defaultCountryRegionId,\r\n currentAddress\r\n}) => {\r\n const [name, setName] = React.useState('');\r\n const [stakeName, setStakeName] = React.useState('');\r\n const [address, setAddress] = React.useState([]);\r\n const [unit, setUnit] = React.useState();\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [isDone, setIsDone] = React.useState(false);\r\n const [showCity, setShowCity] = React.useState(false);\r\n const [showState, setShowState] = React.useState(false);\r\n const [options, setOptions] = React.useState([]);\r\n const [wards, setWards] = React.useState([]);\r\n const [stakes, setStakes] = React.useState([]);\r\n const [currentOptionWard, setCurrentOptionWard] = React.useState();\r\n const [currentOptionStake, setCurrentOptionStake] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n setName(currentAddress.Name);\r\n }\r\n\r\n if (currentAddress && currentAddress.Street && currentAddress.Street !== '') {\r\n const streetSplit = currentAddress.Street.split('\\n');\r\n const address = {\r\n Name: currentAddress.Name,\r\n Street: streetSplit[2] || '',\r\n City: currentAddress.City || '',\r\n StreetNumber: currentAddress.StreetNumber || '',\r\n State: currentAddress.State || '',\r\n ThreeLetterISORegionName: currentAddress.ThreeLetterISORegionName || defaultCountryRegionId || '',\r\n ZipCode: currentAddress.Zipcode || ''\r\n };\r\n setCurrentOptionWard({ label: streetSplit[0], value: streetSplit[0] });\r\n setUnitName(streetSplit[0]);\r\n setCurrentOptionStake({ label: streetSplit[1], value: streetSplit[1] });\r\n setStakeName(streetSplit[1]);\r\n setStakeNameAddress(streetSplit[1]);\r\n setUnit(address);\r\n }\r\n }, []);\r\n\r\n const getUnitAddress = async () => {\r\n const ctx = { callerContext: context.actionContext };\r\n setIsLoading(true);\r\n setIsDisabled(true);\r\n\r\n const unitAddress = await getUnitAddressesAsync(ctx, false, '', '')\r\n .then((res: any) => {\r\n setIsLoading(false);\r\n // setShowUnitSearch(false);\r\n const options = res.map((unit: any) => {\r\n return { label: unit.UnitName, value: unit.UnitName };\r\n });\r\n const stakeOptions = options.filter((option: any) => {\r\n return option.label.includes('Stake') || option.label.includes('stake');\r\n });\r\n const wardOptions = options.filter((option: any) => {\r\n return option.label.toLowerCase().includes('ward') || option.label.toLowerCase().includes('branch');\r\n });\r\n setWards(wardOptions);\r\n setStakes(stakeOptions);\r\n setOptions(options);\r\n\r\n if (res && res[0] !== undefined && res[1] === undefined) {\r\n if (options && options.length === 1) {\r\n setCurrentOptionWard(options[0]);\r\n }\r\n const address = {\r\n Name: name,\r\n Street: res[0].Street || '',\r\n City: res[0].City || '',\r\n StreetNumber: res[0].StreetNumber || '',\r\n State: res[0].State || '',\r\n ThreeLetterISORegionName: res[0].CountryRegionId || defaultCountryRegionId || '',\r\n ZipCode: res[0].Zipcode || ''\r\n };\r\n setUnitName(res[0].UnitName);\r\n customSetAddress(address);\r\n setAddress(res);\r\n setUnit(address);\r\n } else if (res && res[0] !== undefined) {\r\n // setCurrentOptionWard(null);\r\n setAddress(res);\r\n // setUnit({});\r\n } else if (res && res[0] === undefined) {\r\n setIsVisible(false);\r\n }\r\n })\r\n .catch((err: any) => {\r\n setIsLoading(false);\r\n return console.log(err);\r\n });\r\n setIsDone(true);\r\n\r\n return unitAddress;\r\n };\r\n\r\n React.useEffect(() => {\r\n void getUnitAddress();\r\n if (filteredItems) {\r\n const hasCity = filteredItems.some((obj: any) => obj.hasOwnProperty('key') && obj.key === 'City');\r\n const hasState = filteredItems.some((obj: any) => obj.hasOwnProperty('key') && obj.key === 'State');\r\n setShowCity(hasCity);\r\n setShowState(hasState);\r\n }\r\n }, []);\r\n\r\n if (isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else if (options && isDone) {\r\n if (options) {\r\n options.sort((a: any, b: any) => {\r\n const labelA = a.label.toUpperCase();\r\n const labelB = b.label.toUpperCase();\r\n\r\n if (labelA < labelB) {\r\n return -1;\r\n }\r\n if (labelA > labelB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n if (wards) {\r\n wards.sort((a: any, b: any) => {\r\n const labelA = a.label.toUpperCase();\r\n const labelB = b.label.toUpperCase();\r\n\r\n if (labelA < labelB) {\r\n return -1;\r\n }\r\n if (labelA > labelB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n if (stakes) {\r\n stakes.sort((a: any, b: any) => {\r\n const labelA = a.label.toUpperCase();\r\n const labelB = b.label.toUpperCase();\r\n\r\n if (labelA < labelB) {\r\n return -1;\r\n }\r\n if (labelA > labelB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n setIsVisible(true);\r\n const onChangeWard = (e: any) => {\r\n const selectedAddress = address.filter((unit: any) => {\r\n return unit.UnitName === e.value;\r\n });\r\n const newAddress: any = {};\r\n if (selectedAddress && selectedAddress[0]) {\r\n if (name && name !== '' && stakeName !== '') {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n setUnitName(selectedAddress[0].UnitName);\r\n setUnit(selectedAddress[0]);\r\n newAddress.Name = name ? name : '';\r\n newAddress.Street = selectedAddress[0] ? (selectedAddress[0].Street ? selectedAddress[0].Street : '') : '';\r\n newAddress.City = selectedAddress[0] ? (selectedAddress[0].City ? selectedAddress[0].City : '') : '';\r\n newAddress.StreetNumber = selectedAddress[0]\r\n ? selectedAddress[0].StreetNumber\r\n ? selectedAddress[0].StreetNumber\r\n : ''\r\n : '';\r\n newAddress.State = selectedAddress[0] ? (selectedAddress[0].State ? selectedAddress[0].State : '') : '';\r\n newAddress.ThreeLetterISORegionName = selectedAddress[0]\r\n ? selectedAddress[0].ThreeLetterISORegionName\r\n ? selectedAddress[0].ThreeLetterISORegionName\r\n : selectedAddress[0].CountryRegionId\r\n ? selectedAddress[0].CountryRegionId\r\n : ''\r\n : '';\r\n newAddress.ZipCode = selectedAddress[0] ? (selectedAddress[0].Zipcode ? selectedAddress[0].Zipcode : '') : '';\r\n }\r\n customSetAddress(newAddress);\r\n };\r\n const onChangeStake = (e: any) => {\r\n if (e && e.value !== '' && unit && unit.Street && name !== '') {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n const newAddress: any = {};\r\n setStakeName(e.value);\r\n setStakeNameAddress(e.value);\r\n newAddress.Name = name;\r\n newAddress.Street = unit ? (unit.Street ? unit.Street : '') : '';\r\n newAddress.City = unit ? (unit.City ? unit.City : '') : '';\r\n newAddress.StreetNumber = unit ? (unit.StreetNumber ? unit.StreetNumber : '') : '';\r\n newAddress.State = unit ? (unit.State ? unit.State : '') : '';\r\n newAddress.ThreeLetterISORegionName = unit\r\n ? unit.ThreeLetterISORegionName\r\n ? unit.ThreeLetterISORegionName\r\n : unit.CountryRegionId\r\n ? unit.CountryRegionId\r\n : ''\r\n : '';\r\n newAddress.ZipCode = unit ? (unit.Zipcode ? unit.Zipcode : '') : '';\r\n\r\n customSetAddress(newAddress);\r\n setUnit(newAddress);\r\n };\r\n\r\n // const setUnitSearch = async () => {\r\n // // setShowUnitSearch(true);\r\n // await getUnitAddress(false);\r\n // setIsVisible(false);\r\n // };\r\n\r\n const nameChange = (value: string) => {\r\n if (value !== '' && unit && unit.Street && stakeName !== '') {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n const newAddress: any = {\r\n Name: value\r\n };\r\n setName(value);\r\n // setShowDefault(true);\r\n newAddress.Street = unit ? (unit.Street ? unit.Street : '') : '';\r\n newAddress.City = unit ? (unit.City ? unit.City : '') : '';\r\n newAddress.StreetNumber = unit ? (unit.StreetNumber ? unit.StreetNumber : '') : '';\r\n newAddress.State = unit ? (unit.State ? unit.State : '') : '';\r\n newAddress.ThreeLetterISORegionName = unit\r\n ? unit.ThreeLetterISORegionName\r\n ? unit.ThreeLetterISORegionName\r\n : unit.CountryRegionId\r\n ? unit.CountryRegionId\r\n : ''\r\n : '';\r\n newAddress.ZipCode = unit ? (unit.Zipcode ? unit.Zipcode : '') : '';\r\n\r\n customSetAddress(newAddress);\r\n setUnit(newAddress);\r\n };\r\n return (\r\n
\r\n \r\n {resources.addressNameLabel}\r\n \r\n nameChange(e.target.value)}\r\n />\r\n \r\n
{resources.africaUnitLabel}
\r\n {/* setUnitSearch()} style={{ marginLeft: '20px' }}>\r\n {resources.africaChangeUnitLabel}\r\n */}\r\n \r\n onChangeWard(e)}\r\n // defaultValue={options.length === 1 ? options[0] : undefined}\r\n defaultValue={currentOptionWard}\r\n />\r\n \r\n
{resources.africaStakeLabel}
\r\n {/* setUnitSearch()} style={{ marginLeft: '20px' }}>\r\n {resources.africaChangeUnitLabel}\r\n */}\r\n \r\n onChangeStake(e)}\r\n // defaultValue={options.length === 1 ? options[0] : undefined}\r\n defaultValue={currentOptionStake}\r\n />\r\n \r\n {resources.addressStreetLabel}\r\n \r\n \r\n {showCity && (\r\n <>\r\n \r\n {resources.addressCityLabel}\r\n \r\n \r\n \r\n )}\r\n {showState && (\r\n <>\r\n \r\n {resources.addressStateLabel}\r\n \r\n \r\n \r\n )}\r\n \r\n {resources.addressThreeLetterISORegionNameLabel}\r\n \r\n \r\n \r\n {unit\r\n ? unit.ThreeLetterISORegionName\r\n ? unit.ThreeLetterISORegionName\r\n : unit.CountryRegionId\r\n ? unit.CountryRegionId\r\n : defaultCountryRegionId\r\n ? defaultCountryRegionId\r\n : ''\r\n : defaultCountryRegionId\r\n ? defaultCountryRegionId\r\n : ''}\r\n \r\n \r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n","import * as React from 'react';\r\nimport axios from 'axios';\r\n\r\nexport const BrazilCheckout: React.FC = ({ resources, customSetAddress, setIsDisabled, currentAddress }) => {\r\n const [zipcode, setZipcode] = React.useState('');\r\n const [name, setName] = React.useState('');\r\n const [street, setStreet] = React.useState('');\r\n const [streetTwo, setStreetTwo] = React.useState('');\r\n const [neighborhood, setNeighborhood] = React.useState('');\r\n const [city, setCity] = React.useState('');\r\n const [houseNum, setHouseNum] = React.useState('');\r\n const [state, setState] = React.useState('');\r\n const [address, setAddress] = React.useState([]);\r\n const [disabled, setDisabled] = React.useState(false);\r\n const findAddress = async () => {\r\n await axios({\r\n method: 'get',\r\n // url: `https://viacep.com.br/ws/01137-010/json`\r\n url: `https://viacep.com.br/ws/${zipcode}/json`\r\n }).then(response => {\r\n const address = {\r\n Name: name,\r\n Street: response.data.logradouro,\r\n City: response.data.localidade,\r\n DistrictName: response.data.bairro,\r\n State: response.data.uf,\r\n StreetNumber: houseNum,\r\n ZipCode: zipcode\r\n };\r\n if (response.data.logradouro) {\r\n customSetAddress(address);\r\n setAddress(address);\r\n setStreet(response.data.logradouro || '');\r\n setDisabled(true);\r\n }\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (zipcode.length >= 8) {\r\n void findAddress();\r\n } else if (zipcode.length === 0) {\r\n setAddress(null);\r\n setDisabled(false);\r\n setStreet('');\r\n }\r\n }, [zipcode]);\r\n\r\n React.useEffect(() => {\r\n if (\r\n address &&\r\n address.City &&\r\n address.Name &&\r\n address.State &&\r\n address.ZipCode &&\r\n address.Street &&\r\n address.DistrictName &&\r\n address.StreetNumber\r\n ) {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n }, [address]);\r\n React.useEffect(() => {\r\n const address: any = {\r\n // Name: name,\r\n // Street: response.data.logradouro,\r\n // City: response.data.localidade,\r\n // DistrictName: response.data.bairro,\r\n // State: response.data.uf,\r\n // StreetNumber: houseNum,\r\n // ZipCode: zipcode\r\n };\r\n if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n setName(currentAddress.Name);\r\n address.Name = currentAddress.Name;\r\n }\r\n if (currentAddress && currentAddress.City && currentAddress.City !== '') {\r\n setCity(currentAddress.City);\r\n address.City = currentAddress.City;\r\n }\r\n if (currentAddress && currentAddress.State && currentAddress.State !== '') {\r\n setState(currentAddress.State);\r\n address.State = currentAddress.State;\r\n }\r\n if (currentAddress && currentAddress.ZipCode && currentAddress.ZipCode !== '') {\r\n setZipcode(currentAddress.ZipCode);\r\n address.ZipCode = currentAddress.ZipCode;\r\n }\r\n if (currentAddress && currentAddress.Street && currentAddress.Street !== '') {\r\n const streetSplit = currentAddress.Street.split('\\n');\r\n address.Street = currentAddress.Street;\r\n\r\n if (streetSplit && streetSplit[0]) {\r\n setStreet(streetSplit[0]);\r\n }\r\n if (streetSplit && streetSplit[1]) {\r\n setStreetTwo(streetSplit[1]);\r\n }\r\n }\r\n if (currentAddress && currentAddress.DistrictName && currentAddress.DistrictName !== '') {\r\n setNeighborhood(currentAddress.DistrictName);\r\n address.DistrictName = currentAddress.DistrictName;\r\n }\r\n if (currentAddress && currentAddress.StreetNumber && currentAddress.StreetNumber !== '') {\r\n setHouseNum(currentAddress.StreetNumber);\r\n address.StreetNumber = currentAddress.StreetNumber;\r\n }\r\n customSetAddress(address);\r\n // if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n // setName(currentAddress.Name);\r\n // }\r\n }, []);\r\n\r\n const nameChange = (value: string) => {\r\n const newAddress: any = {\r\n Name: value\r\n };\r\n setName(value);\r\n newAddress.Street = address && address.Street ? address.Street : streetTwo ? `${address.Street || street}\\n${streetTwo}` : street;\r\n newAddress.City = address && address.City ? address.City : city;\r\n newAddress.DistrictName = address && address.DistrictName ? address.DistrictName : neighborhood;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.StreetNumber = address && address.StreetNumber ? address.StreetNumber : houseNum;\r\n newAddress.State = address && address.State ? address.State : state;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n const houseNumChange = (value: string) => {\r\n const newAddress: any = {\r\n StreetNumber: value\r\n };\r\n setHouseNum(value);\r\n newAddress.Name = name;\r\n newAddress.Street = address && address.Street ? address.Street : streetTwo ? `${address.Street || street}\\n${streetTwo}` : street;\r\n newAddress.City = address && address.City ? address.City : city;\r\n newAddress.DistrictName = address && address.DistrictName ? address.DistrictName : neighborhood;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.State = address && address.State ? address.State : state;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n const cityChange = (value: string) => {\r\n const newAddress: any = {\r\n City: value\r\n };\r\n setCity(value);\r\n newAddress.Name = name;\r\n newAddress.Street = address && address.Street ? address.Street : streetTwo ? `${address.Street || street}\\n${streetTwo}` : street;\r\n newAddress.DistrictName = address && address.DistrictName ? address.DistrictName : neighborhood;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.StreetNumber = address && address.StreetNumber ? address.StreetNumber : houseNum;\r\n newAddress.State = address && address.State ? address.State : state;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n const neighborChange = (value: string) => {\r\n const newAddress: any = {\r\n District: value\r\n };\r\n setNeighborhood(value);\r\n newAddress.Name = name;\r\n newAddress.Street = address && address.Street ? address.Street : streetTwo ? `${address.Street || street}\\n${streetTwo}` : street;\r\n newAddress.City = address && address.City ? address.City : city;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.StreetNumber = address && address.StreetNumber ? address.StreetNumber : houseNum;\r\n newAddress.State = address && address.State ? address.State : state;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n const streetChange = (value: string) => {\r\n const newAddress: any = {\r\n Street: streetTwo ? `${value}\\n${streetTwo}` : value\r\n };\r\n setStreet(value);\r\n newAddress.Name = name;\r\n newAddress.City = address && address.City ? address.City : city;\r\n newAddress.DistrictName = address && address.DistrictName ? address.DistrictName : neighborhood;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.StreetNumber = address && address.StreetNumber ? address.StreetNumber : houseNum;\r\n newAddress.State = address && address.State ? address.State : state;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n const streetTwoChange = (value: string) => {\r\n const streetOne = address.Street ? address.Street.split('\\n') : street ? street.split('\\n') : '';\r\n const newAddress: any = {\r\n Street: `${streetOne && streetOne[0] ? streetOne[0] : ''}\\n${value}`\r\n };\r\n setStreetTwo(value);\r\n newAddress.Name = name;\r\n newAddress.City = address && address.City ? address.City : city;\r\n newAddress.DistrictName = address && address.DistrictName ? address.DistrictName : neighborhood;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.StreetNumber = address && address.StreetNumber ? address.StreetNumber : houseNum;\r\n newAddress.State = address && address.State ? address.State : state;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n const stateChange = (value: string) => {\r\n const newAddress: any = {\r\n State: value\r\n };\r\n setState(value);\r\n newAddress.Name = name;\r\n newAddress.City = address && address.City ? address.City : city;\r\n newAddress.Street = address && address.Street ? address.Street : streetTwo ? `${address.Street || street}\\n${streetTwo}` : street;\r\n newAddress.DistrictName = address && address.DistrictName ? address.DistrictName : neighborhood;\r\n newAddress.ZipCode = address && address.ZipCode ? address.ZipCode : zipcode;\r\n newAddress.StreetNumber = address && address.StreetNumber ? address.StreetNumber : houseNum;\r\n\r\n customSetAddress(newAddress);\r\n setAddress(newAddress);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {resources.addressNameLabel}\r\n \r\n nameChange(e.target.value)}\r\n />\r\n \r\n {resources.addressZipCodeLabel}\r\n \r\n setZipcode(e.target.value)}\r\n />\r\n \r\n {`${resources.addressHouseRULabel} *`}\r\n \r\n houseNumChange(e.target.value)}\r\n />\r\n \r\n {resources.addressStreetLabel1}\r\n \r\n streetChange(e.target.value)}\r\n disabled={disabled}\r\n />\r\n \r\n {resources.addressMoreInformationLabel}\r\n \r\n streetTwoChange(e.target.value)}\r\n // disabled={address ? true : false}\r\n />\r\n \r\n {`${resources.addressDistrictLabel} *`}\r\n \r\n neighborChange(e.target.value)}\r\n disabled={disabled}\r\n />\r\n \r\n {`${resources.addressStateLabel}`}\r\n \r\n stateChange(e.target.value)}\r\n disabled={disabled}\r\n />\r\n \r\n {resources.addressCityLabel}\r\n \r\n cityChange(e.target.value)}\r\n disabled={disabled}\r\n />\r\n
\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { getCitiesAsync, getCountiesAsync, getZipcodesAsync } from '../../../../actions/DataActionExtension.g';\r\n// @ts-ignore\r\nimport { Secondary } from '@churchofjesuschrist/eden-buttons';\r\n// @ts-ignore\r\nimport { Error } from '@churchofjesuschrist/eden-alert';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport const PeruCheckout: React.FC = ({\r\n resources,\r\n customSetAddress,\r\n context,\r\n setIsVisible,\r\n setIsDisabled,\r\n filteredItems,\r\n defaultCountryRegionId,\r\n currentAddress\r\n}) => {\r\n const [name, setName] = React.useState('');\r\n const [streetNum, setStreetNum] = React.useState('');\r\n const [street, setStreet] = React.useState('');\r\n const [counties, setCounties] = React.useState();\r\n const [cities, setCities] = React.useState();\r\n const [stateId, setStateId] = React.useState('');\r\n // const [state, setState] = React.useState('');\r\n const [city, setCity] = React.useState('');\r\n const [county, setCounty] = React.useState('');\r\n const [address, setAddress] = React.useState([]);\r\n const [citySelected, setCitySelected] = React.useState(false);\r\n const [zipcode, setZipcode] = React.useState('');\r\n // const [, setZipcode] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (name !== '' && street !== '' && citySelected && streetNum !== '' && zipcode !== '') {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n }, [address, citySelected]);\r\n const getData = async (state: string, county: string) => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n const countiesList = await getCountiesAsync(ctx, 'PER', state);\r\n\r\n const citiesList = await getCitiesAsync(ctx, 'PER', state, county);\r\n\r\n setCounties(countiesList);\r\n setCities(citiesList);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n setName(currentAddress.Name);\r\n }\r\n if (currentAddress && currentAddress.City && currentAddress.City !== '') {\r\n setCity(currentAddress.City);\r\n }\r\n if (currentAddress && currentAddress.State && currentAddress.State !== '') {\r\n setStateId(currentAddress.State);\r\n }\r\n if (currentAddress && currentAddress.ZipCode && currentAddress.ZipCode !== '') {\r\n setZipcode(currentAddress.ZipCode);\r\n }\r\n if (currentAddress && currentAddress.Street && currentAddress.Street !== '') {\r\n const streetSplit = currentAddress.Street.split('\\n');\r\n if (streetSplit && streetSplit[0]) {\r\n setStreet(streetSplit[0]);\r\n }\r\n if (streetSplit && streetSplit[1]) {\r\n setStreetNum(streetSplit[1]);\r\n }\r\n if (streetSplit && streetSplit[2]) {\r\n setCounty(streetSplit[2]);\r\n }\r\n }\r\n // if (currentAddress && currentAddress.DistrictName && currentAddress.DistrictName !== '') {\r\n // setNeighborhood(currentAddress.DistrictName);\r\n // }\r\n if (currentAddress && currentAddress.StreetNumber && currentAddress.StreetNumber !== '') {\r\n setStreetNum(currentAddress.StreetNumber);\r\n }\r\n\r\n if (currentAddress && currentAddress.Street && currentAddress.State) {\r\n const streetSplit = currentAddress.Street.split('\\n');\r\n if (streetSplit && streetSplit[2]) {\r\n void getData(currentAddress.State, streetSplit[2]);\r\n }\r\n }\r\n // if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n // setName(currentAddress.Name);\r\n // }\r\n }, []);\r\n\r\n let countiesList;\r\n const findCounties = async (state: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n // countiesList = await getCountiesAsync(ctx, 'PER', state);\r\n countiesList = await getCountiesAsync(ctx, 'PER', state);\r\n const selectedState = filteredItems.filter((county: any) => {\r\n return county.key === state;\r\n });\r\n\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}\\n${streetNum}\\n${county}`,\r\n StreetNumber: streetNum,\r\n City: city,\r\n State: selectedState[0].key,\r\n ZipCode: zipcode\r\n };\r\n setCitySelected(false);\r\n\r\n customSetAddress(customAddress);\r\n setCounties(countiesList);\r\n setCities([]);\r\n setStateId(state);\r\n setAddress(customAddress);\r\n\r\n return countiesList;\r\n };\r\n let citiesList: any;\r\n const findCities = async (county: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n citiesList = await getCitiesAsync(ctx, 'PER', stateId, county);\r\n\r\n setCounty(county);\r\n setCities(citiesList);\r\n\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}\\n${streetNum}\\n${county}`,\r\n StreetNumber: streetNum,\r\n City: city,\r\n State: stateId,\r\n ZipCode: zipcode\r\n };\r\n setCitySelected(false);\r\n customSetAddress(customAddress);\r\n setCity('');\r\n setAddress(customAddress);\r\n\r\n return citiesList;\r\n };\r\n let zipcodeAsync: any;\r\n const selectCity = async (city: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n zipcodeAsync = await getZipcodesAsync(ctx, 'PER', stateId, county, city).catch((err: any) => {\r\n console.log(err);\r\n });\r\n if (zipcodeAsync && zipcodeAsync[0]) {\r\n setZipcode(zipcodeAsync[0].ZipPostalCode);\r\n }\r\n\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}\\n${streetNum}\\n${county}`,\r\n StreetNumber: streetNum,\r\n City: city,\r\n State: stateId,\r\n ZipCode: zipcodeAsync && zipcodeAsync[0] ? zipcodeAsync[0].ZipPostalCode : ''\r\n };\r\n\r\n customSetAddress(customAddress);\r\n if (city && city !== '') {\r\n setCitySelected(true);\r\n } else {\r\n setCitySelected(false);\r\n }\r\n setAddress(customAddress);\r\n setCity(city);\r\n };\r\n\r\n const customSetName = (name: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}\\n${streetNum}\\n${county}`,\r\n StreetNumber: streetNum,\r\n City: city,\r\n State: stateId,\r\n ZipCode: zipcode\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setName(name);\r\n };\r\n const customSetStreetNum = (streetNum: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}\\n${streetNum}\\n${county}`,\r\n StreetNumber: streetNum,\r\n City: city,\r\n State: stateId,\r\n ZipCode: zipcode\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setStreetNum(streetNum);\r\n };\r\n const customSetStreet = (street: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}\\n${streetNum}\\n${county}`,\r\n StreetNumber: streetNum,\r\n City: city,\r\n State: stateId,\r\n ZipCode: zipcode\r\n };\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setStreet(street);\r\n };\r\n return (\r\n
\r\n \r\n {resources.addressNameLabel}\r\n \r\n customSetName(e.target.value)}\r\n />\r\n \r\n {`${resources.addressSectorLabel} *`}\r\n \r\n customSetStreetNum(e.target.value)}\r\n />\r\n \r\n {resources.addressStreetLabel1}\r\n \r\n customSetStreet(e.target.value)}\r\n />\r\n \r\n {' '}\r\n {resources.addressRegionNameLabel}\r\n \r\n findCounties(e.target.value)}\r\n >\r\n {filteredItems\r\n ? filteredItems.map((state: any, index: any) => {\r\n if (state.key === '') {\r\n return null;\r\n } else {\r\n return (\r\n \r\n {state.value}\r\n \r\n );\r\n }\r\n })\r\n : null}\r\n \r\n \r\n {' '}\r\n {resources.addressMunicipalityNameLabel}\r\n \r\n findCities(e.target.value)}\r\n disabled={counties && counties.length > 0 ? false : true}\r\n >\r\n \r\n {counties ? (\r\n counties.map((state: any, index: any) => {\r\n return (\r\n \r\n );\r\n })\r\n ) : county !== '' ? (\r\n \r\n ) : null}\r\n \r\n \r\n {' '}\r\n {resources.addressDistrictLabel}\r\n \r\n selectCity(e.target.value)}\r\n disabled={cities && cities.length > 0 ? false : true}\r\n >\r\n \r\n {cities ? (\r\n cities.map((cityItem: any, index: any) => {\r\n return (\r\n \r\n );\r\n })\r\n ) : city !== '' ? (\r\n \r\n ) : null}\r\n \r\n \r\n {' '}\r\n {resources.addressThreeLetterISORegionNameLabel}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { getCitiesAsync, getDistrictsAsync } from '../../../../actions/DataActionExtension.g';\r\n// @ts-ignore\r\nimport { Secondary } from '@churchofjesuschrist/eden-buttons';\r\n// @ts-ignore\r\nimport { Error } from '@churchofjesuschrist/eden-alert';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\nimport { cityCheckListChl, districtListCHL } from '../countryFilterLists.tsx/Chile';\r\n\r\nexport const ChileCheckout: React.FC = ({\r\n resources,\r\n customSetAddress,\r\n context,\r\n setIsVisible,\r\n setIsDisabled,\r\n filteredItems,\r\n defaultCountryRegionId,\r\n currentAddress\r\n}) => {\r\n const [name, setName] = React.useState('');\r\n const [street, setStreet] = React.useState('');\r\n const [districts, setDistricts] = React.useState();\r\n const [cities, setCities] = React.useState();\r\n const [state, setState] = React.useState('');\r\n const [city, setCity] = React.useState('');\r\n const [district, setDistrict] = React.useState('');\r\n const [address, setAddress] = React.useState([]);\r\n const [citySelected, setCitySelected] = React.useState(false);\r\n const [districtSelected, setDistrictSelected] = React.useState(false);\r\n\r\n const getData = async (state: string, county: string) => {\r\n const ctx = { callerContext: context.actionContext };\r\n const citiesList = await getCitiesAsync(ctx, 'CHL', state, '');\r\n\r\n const districtList = await getDistrictsAsync(ctx, 'CHL', state, '', city);\r\n\r\n setCities(citiesList);\r\n setDistricts(districtList);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n setName(currentAddress.Name);\r\n }\r\n if (currentAddress && currentAddress.City && currentAddress.City !== '') {\r\n setCity(currentAddress.City);\r\n }\r\n if (currentAddress && currentAddress.State && currentAddress.State !== '') {\r\n setState(currentAddress.State);\r\n }\r\n if (currentAddress && currentAddress.DistrictName && currentAddress.DistrictName !== '') {\r\n setDistrict(currentAddress.DistrictName);\r\n }\r\n if (currentAddress && currentAddress.Street && currentAddress.Street !== '') {\r\n const streetSplit = currentAddress.Street.split('\\n');\r\n if (streetSplit && streetSplit[0]) {\r\n setStreet(streetSplit[0]);\r\n }\r\n }\r\n\r\n if (currentAddress && currentAddress.City && currentAddress.State) {\r\n void getData(currentAddress.State, currentAddress.City);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (name !== '' && street !== '' && citySelected && districts.length === 0) {\r\n setIsDisabled(false);\r\n } else if (name !== '' && street !== '' && citySelected && districts && districtSelected) {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n }, [address, citySelected, districts]);\r\n\r\n let citiesList: any;\r\n const findCities = async (state: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n citiesList = await getCitiesAsync(ctx, 'CHL', state, '');\r\n let filteredCities: any;\r\n if (citiesList) {\r\n filteredCities = citiesList.filter((option: any) => {\r\n return cityCheckListChl.some(item => item.value === option.Name && item.label === option.Description);\r\n });\r\n }\r\n\r\n setCities(filteredCities ? filteredCities : citiesList);\r\n // setCities(citiesList);\r\n\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}`,\r\n State: state,\r\n City: city,\r\n DistrictName: district\r\n };\r\n setDistricts([]);\r\n setDistrict('');\r\n setCity('');\r\n setState(state);\r\n setCitySelected(false);\r\n setDistrictSelected(false);\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n\r\n return citiesList;\r\n };\r\n let districtList: any;\r\n const selectCity = async (city: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n districtList = await getDistrictsAsync(ctx, 'CHL', state, '', city);\r\n\r\n let filteredDistricts: any;\r\n if (districtList) {\r\n filteredDistricts = districtList.filter((option: any) => {\r\n return districtListCHL.some(item => item.value === option.Name && item.label === option.Description);\r\n });\r\n }\r\n\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}`,\r\n State: state,\r\n City: city,\r\n DistrictName: districtList.length === 0 ? '' : district\r\n };\r\n const isSelected = district ? true : false;\r\n\r\n setDistricts(filteredDistricts ? filteredDistricts : districtList);\r\n // setDistricts(districtList);\r\n\r\n customSetAddress(customAddress);\r\n setCitySelected(true);\r\n setDistrictSelected(isSelected);\r\n setAddress(customAddress);\r\n setCity(city);\r\n setDistrict('');\r\n };\r\n\r\n const selectDistrict = async (district: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}`,\r\n State: state,\r\n City: city,\r\n DistrictName: district\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setDistrictSelected(true);\r\n setAddress(customAddress);\r\n setDistrict(district);\r\n };\r\n\r\n const customSetName = (name: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}`,\r\n State: state,\r\n City: city,\r\n DistrictName: district\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setName(name);\r\n };\r\n const customSetStreet = (street: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: `${street}`,\r\n State: state,\r\n City: city,\r\n DistrictName: district\r\n };\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setStreet(street);\r\n };\r\n return (\r\n
\r\n \r\n {resources.addressNameLabel}\r\n \r\n customSetName(e.target.value)}\r\n />\r\n \r\n {resources.addressStreetLabel1}\r\n \r\n customSetStreet(e.target.value)}\r\n />\r\n \r\n {' '}\r\n {resources.addressRegionNameLabel}\r\n \r\n findCities(e.target.value)}\r\n >\r\n \r\n {filteredItems\r\n ? filteredItems.map((stateItem: any, index: any) => {\r\n if (stateItem.key === '') {\r\n return ;\r\n } else {\r\n return (\r\n \r\n {stateItem.value}\r\n \r\n );\r\n }\r\n })\r\n : null}\r\n \r\n \r\n {' '}\r\n {resources.addressMunicipalityNameLabel}\r\n \r\n selectCity(e.target.value)}\r\n disabled={cities && cities.length > 0 ? false : true}\r\n >\r\n \r\n {cities\r\n ? cities.map((cityItem: any, index: any) => {\r\n return (\r\n \r\n );\r\n })\r\n : null}\r\n \r\n \r\n {' '}\r\n {resources.addressDistrictNameLabel}\r\n \r\n selectDistrict(e.target.value)}\r\n disabled={districts && districts.length > 0 ? false : true}\r\n >\r\n \r\n {districts\r\n ? districts.map((districtItem: any, index: any) => {\r\n return (\r\n \r\n );\r\n })\r\n : null}\r\n \r\n \r\n {' '}\r\n {resources.addressThreeLetterISORegionNameLabel}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import * as React from 'react';\r\n// @ts-ignore\r\nimport { Secondary } from '@churchofjesuschrist/eden-buttons';\r\n// @ts-ignore\r\nimport { Error } from '@churchofjesuschrist/eden-alert';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport const UruguayCheckout: React.FC = ({\r\n resources,\r\n customSetAddress,\r\n setIsDisabled,\r\n filteredItems,\r\n defaultCountryRegionId,\r\n currentAddress,\r\n addressItems\r\n}) => {\r\n const [name, setName] = React.useState('');\r\n const [betweenStreet, setBetweenStreet] = React.useState('');\r\n const [street, setStreet] = React.useState('');\r\n const [postalCode, setPostalCode] = React.useState('');\r\n const [stateId, setStateId] = React.useState('');\r\n const [address, setAddress] = React.useState([]);\r\n const [zipcode, setZipcode] = React.useState('');\r\n const [countryRegionName, SetCountryRegionName] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (name !== '' && street !== '' && stateId !== '') {\r\n setIsDisabled(false);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n }, [address]);\r\n\r\n React.useEffect(() => {\r\n let countryList;\r\n let countryValue;\r\n if (addressItems) {\r\n countryList = addressItems.filter((item: any) => {\r\n return item.key === 'ThreeLetterISORegionName';\r\n });\r\n }\r\n\r\n if (\r\n countryList &&\r\n countryList[0] &&\r\n countryList[0].input &&\r\n countryList[0].input.props &&\r\n countryList[0].input.props.displayData &&\r\n defaultCountryRegionId\r\n ) {\r\n countryValue = countryList[0].input.props.displayData.filter((country: any) => {\r\n return country.key === defaultCountryRegionId;\r\n });\r\n }\r\n\r\n if (countryValue && countryValue[0]) {\r\n SetCountryRegionName(countryValue[0].value);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (currentAddress && currentAddress.Name && currentAddress.Name !== '') {\r\n setName(currentAddress.Name);\r\n }\r\n if (currentAddress && currentAddress.State && currentAddress.State !== '') {\r\n setStateId(currentAddress.State);\r\n }\r\n if (currentAddress && currentAddress.ZipCode && currentAddress.ZipCode !== '') {\r\n setZipcode(currentAddress.ZipCode);\r\n setPostalCode(currentAddress.ZipCode);\r\n }\r\n if (currentAddress && currentAddress.Street && currentAddress.Street !== '') {\r\n const streetSplit = currentAddress.Street.split('\\n');\r\n if (streetSplit && streetSplit[0]) {\r\n setStreet(streetSplit[0]);\r\n }\r\n if (streetSplit && streetSplit[1]) {\r\n setBetweenStreet(streetSplit[1]);\r\n } else if (currentAddress.Street_2 && currentAddress.Street_2 !== '') {\r\n setBetweenStreet(currentAddress.Street_2);\r\n }\r\n }\r\n if (currentAddress) {\r\n setAddress(currentAddress);\r\n }\r\n }, []);\r\n\r\n const selectState = async (state: any) => {\r\n const selectedState = filteredItems.filter((county: any) => {\r\n return county.key === state;\r\n });\r\n\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: betweenStreet && betweenStreet !== '' ? `${street}\\n${betweenStreet}` : `${street}`,\r\n State: selectedState[0].key,\r\n ZipCode: zipcode\r\n };\r\n customSetAddress(customAddress);\r\n setStateId(state);\r\n setAddress(customAddress);\r\n };\r\n\r\n const customSetName = (name: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: betweenStreet && betweenStreet !== '' ? `${street}\\n${betweenStreet}` : `${street}`,\r\n State: stateId,\r\n ZipCode: postalCode\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setName(name);\r\n };\r\n const customSetPostalCode = (zipcode: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: betweenStreet && betweenStreet !== '' ? `${street}\\n${betweenStreet}` : `${street}`,\r\n State: stateId,\r\n ZipCode: zipcode\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setPostalCode(zipcode);\r\n };\r\n const customSetBetweenStreet = (betweenStreet: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: betweenStreet && betweenStreet !== '' ? `${street}\\n${betweenStreet}` : `${street}`,\r\n State: stateId,\r\n ZipCode: postalCode\r\n };\r\n\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setBetweenStreet(betweenStreet);\r\n };\r\n const customSetStreet = (street: any) => {\r\n const customAddress: Address = {\r\n Name: name,\r\n Street: betweenStreet && betweenStreet !== '' ? `${street}\\n${betweenStreet}` : `${street}`,\r\n State: stateId,\r\n ZipCode: postalCode\r\n };\r\n customSetAddress(customAddress);\r\n setAddress(customAddress);\r\n setStreet(street);\r\n };\r\n return (\r\n
\r\n \r\n {resources.addressNameLabel}\r\n \r\n customSetName(e.target.value)}\r\n />\r\n \r\n {resources.addressStreetLabel1}\r\n \r\n customSetStreet(e.target.value)}\r\n />\r\n \r\n {resources.addressBetweenStreetsLabel}\r\n \r\n customSetBetweenStreet(e.target.value)}\r\n />\r\n \r\n {`${resources.addressDepartmentLabel} *`}\r\n \r\n selectState(e.target.value)}\r\n >\r\n \r\n );\r\n }\r\n })\r\n : null}\r\n \r\n \r\n {resources.addressPostalCodeLabel}\r\n \r\n customSetPostalCode(e.target.value)}\r\n />\r\n \r\n {' '}\r\n {resources.addressThreeLetterISORegionNameLabel}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n Cart,\r\n AsyncResult,\r\n ChannelDeliveryOptionConfiguration,\r\n FeatureState,\r\n OrgUnitLocation,\r\n StateProvinceInfo,\r\n CountryRegionInfo\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { IAddressAddItem } from '../../modules/lds-checkout-shipping-address-4/components/address/address-add';\r\n// import { AddressFormat } from '../../modules/lds-delivery/components/address-format';\r\n// import { AddressFormat } from '@msdyn365-commerce-modules/address';\r\n// import {\r\n// IAddressDropdownsData,\r\n// IAddressItem,\r\n// IAddressValidationRule,\r\n// AddressItemDisplayType,\r\n// AddressItemType,\r\n// AddressValidationRuleType\r\n// } from '../../modules/lds-delivery/components/address-format.data';\r\nimport {\r\n IAddressDropdownsData,\r\n IAddressItem,\r\n IAddressValidationRule,\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n AddressMetaData,\r\n AddressCommon,\r\n AddressFormat,\r\n AddressType\r\n} from '@msdyn365-commerce-modules/address';\r\n// import { AddressMetaData } from '../../modules/lds-delivery/components/address-meta.data';\r\n// import { AddressMetaData } from '@msdyn365-commerce-modules/address';\r\n// import { AddressCommon } from '@msdyn365-commerce-modules/address';\r\n// import { ILdsDeliveryResources } from '../../modules/lds-delivery/lds-delivery.props.autogenerated';\r\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\r\nimport { ITelemetry } from '@msdyn365-commerce/core';\r\nimport classname from 'classnames';\r\n// import { AddressType } from '../../modules/lds-delivery/components/address-module.data';\r\n// import { AddressType } from '@msdyn365-commerce-modules/address';\r\n// import { ICartLineWithProduct } from '../../modules/lds-delivery/lds-delivery';\r\nimport { ICartLineWithProduct } from '@msdyn365-commerce-modules/address/src/modules/checkout-shipping-address/components/checkout-shipping-cartlines-images';\r\nimport { updateLineDeliverySpecifications } from './cart-line-utilities';\r\n\r\nimport { validateSuggestAddressAsync } from '../../actions/DataActionExtension.g';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { stateCheckList, stateCheckListKo } from './state-address-utilities';\r\n\r\n// import {\r\n// AsyncResult,\r\n// ChannelDeliveryOptionConfiguration,\r\n// FeatureState,\r\n// OrgUnitLocation,\r\n// StateProvinceInfo,\r\n// CountryRegionInfo\r\n// } from '@msdyn365-commerce/retail-proxy';\r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nexport interface ILdsDeliveryData {\r\n orgUnitLocations: AsyncResult;\r\n channelDeliveryOptionConfig: AsyncResult;\r\n featureState: AsyncResult;\r\n storeSelectorStateManager: AsyncResult;\r\n cart: AsyncResult;\r\n countryStates: AsyncResult;\r\n countryRegions: AsyncResult;\r\n}\r\n\r\ninterface Option {\r\n value: string;\r\n label: string;\r\n key: string;\r\n}\r\n\r\nexport const getAddressItems = (\r\n inputAddress: Address,\r\n dropdownDisplayData: IAddressDropdownsData,\r\n setInputAddress: (address: Address) => void,\r\n addressPurposes: AddressPurpose[],\r\n // resources: ILdsDeliveryResources,\r\n resources: any,\r\n context: ICoreContext,\r\n telemetry: ITelemetry,\r\n cart: any,\r\n setCountryStates?: any,\r\n countryRegions?: any,\r\n setRequiredInputs?: any,\r\n requiredInputs?: any,\r\n setError?: any\r\n): IAddressAddItem[] => {\r\n const addressType = AddressType.Shipping;\r\n const _getAddressFormatExcludeList = (): AddressItemType[] => {\r\n const addressFormatExcludeList: AddressItemType[] = [];\r\n\r\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\r\n\r\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\r\n\r\n return addressFormatExcludeList;\r\n };\r\n\r\n const getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\r\n const requriedRule = (validationRules || []).find(validationRule => {\r\n return validationRule.type === AddressValidationRuleType.Required;\r\n });\r\n\r\n return requriedRule ? { 'aria-required': true } : {};\r\n };\r\n const addressFormat = new AddressFormat(\r\n countryRegions || [],\r\n new AddressMetaData({ ...resources }, _getAddressFormatExcludeList()),\r\n addressPurposes || []\r\n );\r\n const countryExtension = cart.result.cart.ExtensionProperties.filter((property: any) => {\r\n return property.Key === 'Country';\r\n });\r\n const userCountry = countryExtension[0].Value.StringValue;\r\n\r\n const addressCommon = new AddressCommon(context, resources, telemetry);\r\n const market = context.request.channel?.ChannelCountryRegionISOCode;\r\n const countryRegionId = addressCommon.getDefaultCountryRegionId(userCountry || market, countryRegions || [], userCountry || market);\r\n const addressItem = addressFormat.getAddressFormat(\r\n inputAddress.ThreeLetterISORegionName ? inputAddress.ThreeLetterISORegionName : countryRegionId\r\n );\r\n\r\n const onSetAddress = (name: string, value: string | boolean) => {\r\n setInputAddress({ ...inputAddress, [name]: value });\r\n };\r\n\r\n const onInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n onSetAddress(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n onSetAddress(event.target.name, value);\r\n }\r\n };\r\n\r\n const onDropdownChange = (inputValue: any): void => {\r\n const values = inputValue.target.value.split(',');\r\n const key = values[1] || 'key';\r\n const value = values[0] || 'value';\r\n if (key === 'ThreeLetterISORegionName') {\r\n setCountryStates(value);\r\n }\r\n setInputAddress({ ...inputAddress, [key]: value });\r\n };\r\n\r\n const twoStreetsAddressFormat: IAddressItem[] = [];\r\n\r\n addressItem.map((addressFormatItem, index) => {\r\n if (addressFormatItem.name === 'State' && countryRegionId === 'KOR') {\r\n addressFormatItem.label = resources.addressMunicipalityLabel;\r\n }\r\n if (addressFormatItem.name === 'City' && countryRegionId === 'AUS') {\r\n addressFormatItem.label = resources.addressSuburbLabel;\r\n }\r\n if (addressFormatItem.name === 'Street') {\r\n let validationRules1: IAddressValidationRule[] = [];\r\n let validationRules2: IAddressValidationRule[] = [];\r\n if (addressFormatItem.validationRules) {\r\n validationRules1 = [...addressFormatItem.validationRules];\r\n validationRules2 = [...addressFormatItem.validationRules];\r\n\r\n validationRules1[0].message = 'Street 1 is required';\r\n validationRules2.shift();\r\n }\r\n\r\n const street1 = {\r\n ...addressFormatItem,\r\n name: 'Street',\r\n label: resources.addressStreetLabel1,\r\n maxLength: 30,\r\n validationRules: validationRules1\r\n };\r\n const street2 = {\r\n ...addressFormatItem,\r\n name: 'Street_2',\r\n label: resources.addressStreetLabel2,\r\n maxLength: 30,\r\n validationRules: validationRules2\r\n };\r\n twoStreetsAddressFormat.push(street1);\r\n twoStreetsAddressFormat.push(street2);\r\n } else {\r\n twoStreetsAddressFormat.push(addressFormatItem);\r\n }\r\n });\r\n\r\n const requiredFormInputs = twoStreetsAddressFormat.filter(x => {\r\n return x.validationRules && x.validationRules[0].type === 'Required' && x.name !== 'ThreeLetterISORegionName';\r\n });\r\n\r\n if (requiredInputs === undefined && setRequiredInputs) {\r\n setRequiredInputs(requiredFormInputs);\r\n }\r\n\r\n return twoStreetsAddressFormat.map((addressFormatItem, index) => {\r\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\r\n const errorMessage = '';\r\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, {\r\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\r\n 'address-form__item-invalid': errorMessage\r\n });\r\n const addressItemStyle: React.CSSProperties = {\r\n margin: '16px 18px'\r\n };\r\n\r\n let input;\r\n\r\n const textInputStyle: React.CSSProperties = {\r\n width: '100%',\r\n border: '1px solid #878A8C',\r\n boxSizing: 'border-box',\r\n borderRadius: '2px',\r\n margin: '8px 0px',\r\n lineHeight: '22px',\r\n padding: '8px',\r\n fontSize: '16px',\r\n fontFamily: `\"Ensign:Sans\",Arial,\"noto sans\" ,sans-serif`,\r\n fontStyle: 'normal'\r\n };\r\n const textInputStyleInvalid: React.CSSProperties = {\r\n width: '100%',\r\n border: '1px solid red',\r\n boxSizing: 'border-box',\r\n borderRadius: '2px',\r\n margin: '8px 0px',\r\n lineHeight: '22px',\r\n padding: '8px',\r\n fontSize: '16px',\r\n fontFamily: `\"Ensign:Sans\",Arial,\"noto sans\" ,sans-serif`,\r\n fontStyle: 'normal'\r\n };\r\n\r\n const labelStyle: React.CSSProperties = {\r\n fontFamily: `\"Ensign:Sans\",Arial,\"noto sans\" ,sans-serif`,\r\n fontStyle: 'normal',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n marginLeft: '8px'\r\n };\r\n const [invalidError, setInavlidError] = useState('');\r\n // const [firstBlur, setFirstBlur] = useState(true);\r\n\r\n const inputRequired = getRequriedAttribute(addressFormatItem.validationRules);\r\n const inputRequiredValues = Object.values(inputRequired);\r\n const isInputRequired = inputRequiredValues[0] === true ? true : false;\r\n const inputChanged = (e: any) => {\r\n const phoneCheck = /^[\\+]?[(]?[0-9]{0,3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im;\r\n const nameCheck = /[`~!@#$%^&*()_|+\\-=?;:'\",.<>\\{\\}\\[\\]\\\\\\/]/gi;\r\n const emojiNameCheck = /(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\u0023-\\u0039]\\ufe0f?\\u20e3|\\u3299|\\u3297|\\u303d|\\u3030|\\u24c2|\\ud83c[\\udd70-\\udd71]|\\ud83c[\\udd7e-\\udd7f]|\\ud83c\\udd8e|\\ud83c[\\udd91-\\udd9a]|\\ud83c[\\udde6-\\uddff]|\\ud83c[\\ude01-\\ude02]|\\ud83c\\ude1a|\\ud83c\\ude2f|\\ud83c[\\ude32-\\ude3a]|\\ud83c[\\ude50-\\ude51]|\\u203c|\\u2049|[\\u25aa-\\u25ab]|\\u25b6|\\u25c0|[\\u25fb-\\u25fe]|\\u00a9|\\u00ae|\\u2122|\\u2139|\\ud83c\\udc04|[\\u2600-\\u26FF]|\\u2b05|\\u2b06|\\u2b07|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u231a|\\u231b|\\u2328|\\u23cf|[\\u23e9-\\u23f3]|[\\u23f8-\\u23fa]|\\ud83c\\udccf|\\u2934|\\u2935|[\\u2190-\\u21ff])/g;\r\n\r\n if (!e.target.value && isInputRequired) {\r\n const label = addressFormatItem.label.split('*');\r\n const inputText =\r\n addressFormatItem.type === 1 && resources.addressZipCodeRequiredErrorMessage\r\n ? resources.addressZipCodeRequiredErrorMessage\r\n : label[0];\r\n const errorText = format(resources.addressDefaultRequiredErrorMessage, inputText);\r\n setInavlidError(errorText);\r\n setError(true);\r\n } else if (addressFormatItem.type === 1002 && e.target.value) {\r\n if (!phoneCheck.test(e.target.value)) {\r\n setError(true);\r\n setInavlidError(resources.addressPhoneFormatErrorMessage ? resources.addressPhoneFormatErrorMessage : '');\r\n } else {\r\n // setError(false);\r\n setInavlidError('');\r\n }\r\n } else if (addressFormatItem.type === 1001 && e.target.value) {\r\n if (nameCheck.test(e.target.value) || emojiNameCheck.test(e.target.value)) {\r\n const errorText = format(resources.addressDefaultInvalidErrorMessage, addressFormatItem.name);\r\n setError(true);\r\n setInavlidError(errorText);\r\n } else {\r\n // setError(false);\r\n setInavlidError('');\r\n }\r\n } else {\r\n setInavlidError('');\r\n }\r\n };\r\n\r\n const dropdownValueCheck = (inputValue: any): void => {\r\n const values = inputValue.target.value.split(',');\r\n const key = values[1] || 'key';\r\n const value = values[0] || 'value';\r\n const dropdownValue = { ...inputAddress, [key]: value };\r\n if (!dropdownValue.State) {\r\n setInavlidError(`${addressFormatItem.name} is required`);\r\n } else {\r\n setInavlidError('');\r\n }\r\n };\r\n\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\r\n <>\r\n \r\n \r\n );\r\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\r\n input = (\r\n \r\n );\r\n } else {\r\n const displayData = dropdownDisplayData[addressFormatItem.name];\r\n // const prefilledAddressDropdownData = addressFormat.getPrefilledAddressDropdownData(\r\n // resources.addressStateDefaultSelectionText,\r\n // newStates || []\r\n // );\r\n\r\n const options: Option[] = displayData\r\n .filter(x => x.key !== '')\r\n .map(data => {\r\n return {\r\n key: addressFormatItem.name,\r\n value: (data.key as string) || '',\r\n label: (data.value as string) || ''\r\n };\r\n });\r\n const selectedValue = {\r\n key: addressFormatItem.name,\r\n // @ts-ignore\r\n label: inputAddress[addressFormatItem.name],\r\n // @ts-ignore\r\n value: inputAddress[addressFormatItem.name]\r\n };\r\n\r\n let disableDropdown = false;\r\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\r\n selectedValue.key = addressFormatItem.name;\r\n selectedValue.label = displayData.find(x => x.key === countryRegionId)?.value; // selectedValue.value || countryRegionId;\r\n selectedValue.value = countryRegionId;\r\n\r\n if (inputAddress.ThreeLetterISORegionName !== countryRegionId) {\r\n setInputAddress({ ...inputAddress, [selectedValue.key]: selectedValue.value });\r\n }\r\n\r\n disableDropdown = true;\r\n }\r\n\r\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\r\n selectedValue.key = addressFormatItem.name;\r\n selectedValue.label = selectedValue.value || 6;\r\n selectedValue.value = selectedValue.value || 6;\r\n }\r\n let filteredOptions;\r\n\r\n if (countryRegionId && countryRegionId === 'KOR' && addressFormatItem.name === 'State' && context.request.locale !== 'en-US') {\r\n filteredOptions = options.filter(option => {\r\n return stateCheckListKo.some(item => item.label === option.label && item.value === option.value);\r\n });\r\n } else if (\r\n countryRegionId &&\r\n countryRegionId === 'KOR' &&\r\n addressFormatItem.name === 'State' &&\r\n context.request.locale === 'en-US'\r\n ) {\r\n filteredOptions = options.filter(option => {\r\n return stateCheckList.some(item => item.label === option.label && item.value === option.value);\r\n });\r\n }\r\n\r\n input = (\r\n <>\r\n {\r\n onDropdownChange(chosenOption);\r\n dropdownValueCheck(chosenOption);\r\n }}\r\n disabled={disableDropdown}\r\n >\r\n \r\n {countryRegionId === 'KOR' && filteredOptions && addressFormatItem.name === 'State'\r\n ? filteredOptions.map(opt => {\r\n return (\r\n \r\n {opt.label}\r\n \r\n );\r\n })\r\n : options.map(opt => {\r\n return (\r\n \r\n {opt.label}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className, id: `${elementId}_container`, style: addressItemStyle },\r\n label:
{addressFormatItem.label}
,\r\n alert: {invalidError},\r\n input\r\n };\r\n });\r\n};\r\n\r\nexport const getSmartyStreetAddress = async (context: ICoreContext, inputAddress: any) => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n inputAddress.AddressTypeValue = 2;\r\n // Call SmartyStreets here.\r\n const smartyStreetValidation = await validateSuggestAddressAsync(\r\n ctx,\r\n inputAddress.Street || '',\r\n inputAddress.City || '',\r\n inputAddress.State || '',\r\n inputAddress.ZipCode || '',\r\n inputAddress.ThreeLetterISORegionName || '',\r\n inputAddress.DistrictName || '',\r\n inputAddress.Street_2 || ''\r\n ).catch((err: any) => {\r\n console.log(err);\r\n });\r\n\r\n return smartyStreetValidation;\r\n};\r\n\r\nexport const submitAddress = async (\r\n context: ICoreContext,\r\n // resources: ILdsDeliveryResources,\r\n resources: any,\r\n telemetry: ITelemetry,\r\n inputAddress: Address,\r\n customerAddresses: Address[],\r\n cartId: string,\r\n deliveryGroup: ICartLineWithProduct[],\r\n addAddressToAccount: boolean,\r\n countryRegionId: string,\r\n config: any,\r\n cart?: ICartState\r\n): Promise => {\r\n const ctx = { callerContext: context.actionContext };\r\n\r\n inputAddress.AddressTypeValue = 2;\r\n inputAddress.ThreeLetterISORegionName ? null : (inputAddress.ThreeLetterISORegionName = countryRegionId);\r\n\r\n const addressCommon = new AddressCommon(context, resources, telemetry);\r\n if (addressCommon.isAuthenticatedFlow() && !customerAddresses.includes(inputAddress) && addAddressToAccount) {\r\n await addressCommon.addCustomerAddress(inputAddress || {});\r\n }\r\n const lineDeliverySpecifications = deliveryGroup.map(item => {\r\n // const isSubscription = item.cartLine.ExtensionProperties?.find(x => x.Key === 'isSubscription')?.Value?.BooleanValue || false;\r\n if (countryRegionId === 'USA' || countryRegionId === 'CAN') {\r\n inputAddress.TaxGroup = 'Vertex';\r\n } else if (inputAddress.TaxGroup === 'Vertex' && countryRegionId !== 'USA' && countryRegionId !== 'CAN') {\r\n delete inputAddress.TaxGroup;\r\n }\r\n\r\n return {\r\n LineId: item.cartLine.LineId,\r\n DeliverySpecification: {\r\n DeliveryAddress: inputAddress,\r\n DeliveryModeId: config.deliveryMode,\r\n DeliveryPreferenceTypeValue: 1\r\n }\r\n };\r\n });\r\n\r\n return updateLineDeliverySpecifications(ctx, cartId, lineDeliverySpecifications);\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n CountryRegionInfo,\r\n StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { get, set } from 'mobx';\r\n\r\nimport {\r\n AddressItemType,\r\n IAddressDropdownsData,\r\n IAddressItem,\r\n IAddressValidationRule,\r\n AddressMetaData\r\n} from '@msdyn365-commerce-modules/address';\r\n// import { AddressMetaData } from '@msdyn365-commerce-modules/address';\r\n\r\n/**\r\n *\r\n * Retail Service Address format parser.\r\n */\r\nexport class AddressFormat {\r\n private readonly countryRegionsInfo?: CountryRegionInfo[];\r\n\r\n private readonly addressPurposes?: AddressPurpose[];\r\n\r\n private readonly addressMetaData: AddressMetaData;\r\n\r\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\r\n this.countryRegionsInfo = countryRegionsInfo;\r\n this.addressMetaData = addressMetaData;\r\n this.addressPurposes = addressPurposes;\r\n }\r\n\r\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n if (countryRegionInfo) {\r\n return this._getAddressDisplayFormat(countryRegionInfo);\r\n }\r\n return [];\r\n }\r\n\r\n public getCountryFormat(): { key?: string; value?: string }[] {\r\n return (this.countryRegionsInfo || []).map(countryRegion => {\r\n return {\r\n key: countryRegion.CountryRegionId,\r\n value: countryRegion.LongName\r\n };\r\n });\r\n }\r\n\r\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\r\n return (stateProvinceInfo || []).map(state => {\r\n return {\r\n key: state.StateId,\r\n value: state.StateName\r\n };\r\n });\r\n }\r\n\r\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\r\n return (this.addressPurposes || []).map(addressPurpose => {\r\n return {\r\n key: addressPurpose.AddressType,\r\n value: addressPurpose.Description\r\n };\r\n });\r\n }\r\n\r\n public getPrefilledAddressDropdownData = (\r\n stateDefaultSelectionText: string,\r\n stateProvinceInfo?: StateProvinceInfo[]\r\n ): IAddressDropdownsData => {\r\n const defaultStateText = {\r\n key: '',\r\n value: stateDefaultSelectionText\r\n };\r\n const dropdownData: IAddressDropdownsData = {};\r\n\r\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\r\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\r\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\r\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\r\n\r\n return dropdownData;\r\n };\r\n\r\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n\r\n return countryRegionInfo!.ISOCode;\r\n };\r\n\r\n public validateAddressFormat = (\r\n address: Address,\r\n validationError: Address,\r\n countryRegionId: string,\r\n propertyName?: string\r\n ): boolean => {\r\n let isValid: boolean = true;\r\n let validationtor;\r\n const addressFormat = this.getAddressFormat(address.ThreeLetterISORegionName || countryRegionId);\r\n\r\n addressFormat.forEach(addressFormatItem => {\r\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\r\n validationtor = this._inputValidation(addressFormatItem, validationError, address);\r\n if (validationtor !== undefined) {\r\n isValid = validationtor;\r\n }\r\n }\r\n });\r\n\r\n return isValid;\r\n };\r\n\r\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\r\n const address: Address = {};\r\n\r\n // Zip Code\r\n if (result.address.postalCode !== undefined) {\r\n address.ZipCode = result.address.postalCode;\r\n } else {\r\n address.ZipCode = '';\r\n }\r\n\r\n // State\r\n if (stateProvinceInfo) {\r\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\r\n if (!selectedState) {\r\n address.State = '';\r\n address.StateName = result.address.adminDistrict;\r\n } else {\r\n address.State = selectedState.StateId;\r\n address.StateName = selectedState.StateName;\r\n }\r\n }\r\n\r\n // Street\r\n if (result.address.addressLine !== undefined) {\r\n address.Street = result.address.addressLine;\r\n } else {\r\n address.Street = ' ';\r\n }\r\n\r\n // City\r\n if (result.address.locality !== undefined) {\r\n address.City = result.address.locality;\r\n } else {\r\n address.City = '';\r\n }\r\n\r\n // District\r\n if (result.address.district !== undefined) {\r\n address.DistrictName = result.address.district;\r\n address.CountyName = result.address.district;\r\n } else {\r\n address.DistrictName = '';\r\n }\r\n\r\n // Formatted Address\r\n address.FullAddress = result.address.formattedAddress;\r\n\r\n return address;\r\n };\r\n\r\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address): boolean | undefined {\r\n set(validationError, { [addressFormatItem.name]: null });\r\n for (const validationRule of addressFormatItem.validationRules || []) {\r\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\r\n set(validationError, { [addressFormatItem.name]: validationRule.message });\r\n return false;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private readonly _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\r\n if (validationRule.regEx && validationRule.regEx.length > 0) {\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n const regex = new RegExp(validationRule.regEx);\r\n return regex.test((get(address, propertyName) as string) || '');\r\n }\r\n return true;\r\n };\r\n\r\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\r\n return (this.countryRegionsInfo || []).find(countryRegion => {\r\n return (countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase();\r\n });\r\n }\r\n\r\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\r\n const addressDisplayItem: IAddressItem[] = [];\r\n\r\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\r\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\r\n if (AddressTypeItem) {\r\n addressDisplayItem.push(AddressTypeItem);\r\n }\r\n\r\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\r\n if (nameDisplayItem) {\r\n addressDisplayItem.push(nameDisplayItem);\r\n }\r\n\r\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\r\n if (formatLine.AddressComponentNameValue) {\r\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\r\n if (addressItem) {\r\n addressItem.isNewLine = formatLine.NewLine || false;\r\n addressDisplayItem.push(addressItem);\r\n }\r\n }\r\n });\r\n\r\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\r\n if (phoneDisplayItem) {\r\n addressDisplayItem.push(phoneDisplayItem);\r\n }\r\n\r\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\r\n if (isPrimaryDisplayItem) {\r\n addressDisplayItem.push(isPrimaryDisplayItem);\r\n }\r\n }\r\n\r\n return addressDisplayItem;\r\n }\r\n\r\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\r\n const addressItem = this.addressMetaData.getItemFormat(type);\r\n if (addressItem) {\r\n addressItem.isNewLine = isNewLine;\r\n }\r\n return addressItem;\r\n }\r\n}\r\n"],"names":["AccountManagementAddress","React","constructor","props","super","countryRegionId","countryRegions","addressPurposes","defaultAddressType","asyncCustAddressCreationFeatureName","editAsyncCustomerFeatureName","asyncCustomerAddressCreationFeatureIsEnabled","isEditAsyncCustomerFeatureEnabled","_onSuggestionSelected","async","this","_clearAddressFields","address","addressFormat","getTranformedAddress","result","stateProvinceInfo","set","addUpdateAddress","Street","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","getAddressFormat","ThreeLetterISORegionName","forEach","format","_this$autoSuggest","undefined","name","autoSuggest","excludedAddressFields","includes","_clearValidation","validationError","_dataInitialize","data","reaction","_data$countryRegions$","_data$addressPurposes","_data$address$result","customerAddresses","_renderAddOrUpdateAddress","AddressAddUpdate","isUpdating","resources","addressType","AddressType","Shipping","defaultCountryRegionId","selectedAddress","addressActionResponse","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","telemetryContent","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","onSave","_onAddressAddUpdateSubmit","onCancel","_resetView","_renderListAddress","_this$props$data$cust","_this$props$context$a","config","heading","text","headingTag","tag","AddressList","addresses","primaryAddressSectionHeading","otherAddressSectionHeading","contextRequest","context","request","handleLineItemHeadingChange","event","target","value","onEditAddress","_goToEditAddress","onRemoveAddress","_onRemoveAddress","onAddAddress","_goToAddAddress","onUpdatePrimaryAddress","_onSubmitUpdatePrimaryAddress","isAsyncCustomerAddressCreationFeatureEnabled","isAsyncCustomer","customerInformation","IsAsyncCustomer","canRenderAsyncCustomerDataAsUnmodifiable","app","_attachMapAutoSuggest","storeSelectorStateManager","_this$autoSuggest2","isMapApiLoaded","attachAutoSuggest","onAddressAddUpdate","formattedValue","toString","trim","validateAddressFormat","type","checked","replace","RegExp","AddressItemType","AddressTypeValue","_onCountryChange","_onAddressUpdate","response","onSuccess","then","hasError","addressCommon","isAuthenticatedFlow","currentOperation","AddressOperation","Update","updateCustomerAddress","addCustomerAddress","Promise","resolve","_onAddOrUpdateSuccess","_this$autoSuggest3","twoLetterISORegionName","getTwoLetterISORegionName","TwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","addressFormatExcludeList","showAddressType","push","IsPrimary","_getStateProvinces","Add","getStateProvinces","some","state","StateId","_updateCurrentOperation","operation","updateCustomerPrimaryAddress","_onUpdatePrimaryAddressSuccess","_objectSpread","Deactivate","removeAddressData","_renderScreenReaderRemoveText","notification","formatNotification","removeAddressNotification","Name","className","_setDefaultCountryRegionId","List","telemetry","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","telemetryPageName","friendlyName","actionContext","requestContext","channel","autoSuggestionEnabled","autoSuggestOptions","BingMapsApiKey","error","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_this$props$data$stor","loadMapApi","_this$autoSuggest4","_loadMapAPI","_this$props$data$stor2","_this$props$data$stor3","_this$autoSuggest5","disposeAutoSuggest","shouldComponentUpdate","nextProps","nextState","render","_data$featureState","_data$featureState2","_this$props$context$a2","renderView","featureState","find","feature","IsEnabled","infoMessageBar","Msdyn365","accountProcessingPendingInfoMessageCanAddAddress","accountProcessingPendingInfoMessage","viewState","isShowAddresList","isShowAddOrUpdateAddress","AccountAddressManagement","moduleProps","classnames","showAddressList","showAddOrUpdateAddress","screenReaderNotification","market","getDefaultCountryRegionId","__decorate","observable","action","observer","BusinessAccountAddress","shouldAutoFocus","excludedList","_resetAddressFields","map","addressFormatItem","displayType","AddressItemDisplayType","Input","Checkbox","countryStates","_data$countryStates$r","Company","_updateAddress","_updateCountryRegionId","updateForm","isRequired","cleanValue","_isEmpty","_isInputRequired","addressItemValue","ObjectExtensions","isNullOrUndefined","validationRules","length","validationRule","AddressValidationRuleType","Required","componentDidMount","resetAddress","_request$channel","AddressShow","_ref","AddressDetail","items","Node","Object","assign","item","description","_ref2","isShowList","Item","key","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","_ref4","AddressForm","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","Module","formatAddress","onSaveCustom","_onAddressAddUpdateSubmitCustom","sessionStorage","setItem","JSON","stringify","countryRegion","unitName","stakeName","loading","Email","user","emailAddress","newOrUpdatedAddress","StreetNumber","Street_2","_isNewAddressCustom","skipSmarty","UserAddress","keys","userStreet2","getItem","_getSmartyAddress","customAddress","isdeliverable","city","street2","street","country","plusfour","zipcode","TaxGroup","RecordId","District","parse","setState","showSmarty","smartyStreets","getSmartyStreetAddress","catch","err","console","log","smartyAddress","smartyFailed","isFinalSubmit","streetSplit","split","existingAddress","_address$Name","_address$Street","_address$StreetNumber","_address$City","_address$State","_address$ZipCode","_address$Phone","_address$ThreeLetterI","_address$AddressTypeV","_address$DistrictName","_address$StreetNumber2","Phone","customerAddress","finalSubmit","saveAddress","saveAddressCustom","countryExtension","cart","ExtensionProperties","filter","property","Key","Value","StringValue","CheckoutPickupCartLines","moduleClassName","cartLines","itemTitle","isMobileCheck","isMobile","variant","VariantType","Browser","gridSettings","xs","w","sm","md","lg","xl","isMobileView","ArrayExtensions","hasElements","cartLine","isShowQty","quantity","lineId","Image","imageProps","role","productQuantityInfo","altText","id","defaultImageSettings","viewports","q","h","lazyload","quality","CheckoutShippingAddress","_data$featureState$re2","addressListSelectedAddress","multiplePickupStoreSwitchName","retailMultiplePickUpOptionEnabled","checkoutErrorRef","_initPickupGroup","pickupCartLines","_getCartLinesforDelivery","_this$props$data$chec","products","_getProductsByCartLines","checkout","checkoutCart","ChannelId","line","product","x","ProductId","shippingGroups","_data$featureState$re","_this$props$data$chec2","_this$props$data$chec3","CartLines","_isDelivery","_isNotPickupMode","DeliveryMode","FulfillmentStoreId","deliveryMode","_this$props$context$r","_featureState$result","pickupDeliveryModeCode","PickupDeliveryModeCode","channelDeliveryOptionConfig","_channelDeliveryOptio","pickupDeliveryMode","PickupDeliveryModeCodes","pickupMode","channelId","productInputs","ProductInput","apiSettings","CatalogId","getSimpleProducts","onSaveHandler","onCancelHandler","hasExternalSubmitGroup","moduleState","onSubmit","onCustomSave","onSaveSmarty","onCancelButtonHandler","_renderSelectAddress","onAddAddressHandler","filteredAddresses","addressesForList","toLowerCase","AddressSelect","onAddressOptionChange","_onAddressOptionChange","_onSelectAddress","addressRecordId","currentTarget","filteredStateList","locale","stateCheckList","stateCheckListKo","cityCheck","_updateModuleState","_clearError","_isNewAddress","newAddress","twoLetterIsoRegionName","_getDefaultAddress","_getAddressFromCartExpressPaymentDetails","expressPaymentDetailsFromCartPage","tokenizedPaymentCard","isExpressAddressAppliedInCartPage","addressFromCartExpress","getExpressAddress","getAddressFromTokenizedPaymentCard","Country","threeLetterIsoRegionName","getThreeLetterIsoRegionName","NameOnCard","Address1","Address2","Zip","expressAddress","_country$ISOCode","ISOCode","CountryRegionId","_initModuleState","init","status","_canShip","onEdit","checkoutState","defaultAddress","shippingCartLines","ShippingAddress","isExpressCheckoutApplied","shippingAddressFromExpressCheckout","isEmpty","Show","_setShippingAddress","updateHasShippingAddress","newHasShippingAddress","information","shippingAddress","_checkout$result$chec","_checkout$result$chec2","emailDeliveryModeCode","EmailDeliveryModeCode","hasInvoiceLine","_channelDeliveryOptio2","newShippingAddress","updateShippingAddress","onReady","onPending","onUpdating","_address$Name2","_address$Street2","_address$StreetNumber3","_address$City2","_address$State2","_address$ZipCode2","_address$Phone2","_address$ThreeLetterI2","_address$AddressTypeV2","_setErrorMessage","errorMessage","setHasError","addressListValidated","_this$props$data$chec6","_this$props$data$chec4","_this$props$data$chec5","_address","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec7","checkoutError","errorLocation","ErrorLocation","_this$props$data$chec8","checkoutErrorFocus","CheckoutModule","focusOnCheckoutError","_featureState$result2","headingImages","itemsText","singleItemText","errorMessageTitle","imageSettings","cartlines","_line$cartLine$LineId","_line$product","_line$product$Primary","_line$product2","_line$product3","_line$cartLine$Quanti","LineId","src","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","ItemId","loadFailureBehavior","Quantity","itemText","lineImageProps","cartLineImages","isRetailMultiplePickUpOptionEnabled","isShowAddress","showAddress","_renderShowAddress","ErrorComponent","showAddressSelectHandler","showAddOrUpdateAddressHandler","showAddressSelect","_this$props$data$cart","_this$props$data$cart2","properties","_this$props$data$chec9","computed","withModuleState","stateName","setStateName","filteredList","setFilteredList","filteredItems","findState","findCountry","countryId","ctx","callerContext","translation","stateNameTranslationAsync","DisplayName","getStateTranslation","stateCheckListMixed","isDuplicate","setIsVisible","style","display","flexDirection","justifyContent","width","height","paddingLeft","paddingRight","color","cursor","onClick","onClickFunctionEdit","Edit","size","onClickFunction","Delete","borderTop","paddingTop","addNewAddressText","userAddress","userAddressCustom","inputAddress","setInputAddress","isVisible","isDisabled","setIsDisabled","customDisabled","setCustomDisabled","setUnitName","stakeNameAddress","setStakeNameAddress","disabled","setDisabled","hideCity","setHideCity","updatedStateList","setUpdatedStateList","stateListTranslation","translatedStateList","countryStateTranslationAsync","updateNames","array2","stateList","item1","match","item2","LongName","option","displayData","cityCheckKOR","shouldHideCity","additionalAddributes","customKoreaStateOnChange","functionToExecute","districtIndex","findIndex","street2Index","removedDistrict","splice","customSetAddress","canSubmit","Waiting","marginBottom","smartyStreetAddressHeader","Secondary","smartyStreetsAddressButton","userShippingAddressHeader","userAddressButton","BrazilCheckout","currentAddress","Ghost","AfricaCheckout","PeruCheckout","UruguayCheckout","stateCheckListChl","ChileCheckout","border","boxSizing","borderRadius","fontSize","lineHeight","fontWeight","selected","onChange","e","ArgState","pop","popValue","join","addressDepartmentLabel","addressDepartmentRequiredErrorMessage","addressStateProvinceLabel","addressStateProvinceRequiredErrorMessage","addressColoniaLabel","addressColoniaRequiredErrorMessage","isListVisible","setIsListVisible","setIsDuplicate","children","Info","marginTop","final","translationCache","Map","cacheKey","current","has","get","recordId","setRecordId","validResults","setValidResults","isItemSelected","SelectAddress","results","obj","array","validateAddressFormatAsync","addressCountry","StateValid","CityValid","StreetNumberValid","CountryRegionValid","AddressValid","filterAsyncResults","SelectItem","customOnChange","Number","functionOnClick","onSaveFunction","addressItems","ref","CheckoutStateInput","_this","getCacheKey","buildCacheKey","getCacheObjectType","dataCacheType","createObservableDataAction","CheckoutState","inputData","_giftCards","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_customerReference","_customerRequisition","_note","_isTermsAndConditionAccepted","_customerAccountAmount","defineProperty","prototype","_tokenizedPaymentCard","_tenderLine","_billingAddress","_shippingAddress","_cardPrefix","_loyaltyCardNumber","updateTokenizedPaymentCard","newTokenizedPaymentCard","updateTenderLine","newTenderLine","updateBillingAddress","newBillingAddress","updateCardPrefix","newCardPrefix","removeGiftCard","giftCardNumber","giftCard","Id","removeGiftCardExtend","addGiftCard","__spreadArrays","addGiftCardExtend","updateLoyaltyCardNumber","newLoyaltyCardNumber","updateLoyaltyAmount","newAmount","updateGuestCheckoutEmail","newGuestCheckoutEmail","customerReference","customerRequisition","note","updateTermsAndConditionsAcceptance","newIsTermsAndConditionAccepted","updateCustomerAccountAmount","WrappedComponent","_super","ModuleState","call","initializeState","_b","typeName","states","getModuleStates","updateModuleStates","__assign","_a","hasInitialized","isCancellable","isSubmitContainer","childIds","getModuleStateManager","validate","isReady","isPending","isSkipped","isCancelAllowed","shouldSubmitContainer","hasModuleState","setIsRequired","update","setIsCancellable","setIsSubmitContainer","onSkip","onDisable","getModule","moduleId","getModuleByTypeName","getModuleStateManagerByTypeName","moduleStates","values","_moduleState","modules","_validateLeaf","source","module","isMatch","_validateContainer","allMatched","skipSkippableItem","shouldEnableSinglePaymentAuthorizationCheckout","childId","_isPaymentSectionContainer","enableControl","__extends","ModuleStatesCacheKey","EnabledPaymentsForOBO","updateLineDeliverySpecifications","cartId","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","updateCartLineAttributeValues","attributeKey","attributeValue","index","newAttribute","TextValue","TextValueTranslations","AttributeValues","attrIndex","attr","newCart","updateCartLinesAsync","updateAsync","districtListCHL","cityCheckListChl","ariaLabel","payLoad","getPayloadObject","attributes","getTelemetryAttributes","itemId","isChecked","autoFocus","shouldBeAutoFocused","getDropdownItem","selectedValue","isSelected","maxLength","shouldUseAutoFocus","htmlFor","getRequriedAttribute","getAddessItems","twoStreetsAddressFormat","addressMunicipalityLabel","addressSuburbLabel","validationRules1","validationRules2","shift","street1","addressStreetLabel1","addressStreetLabel2","elementId","splitErrorMessage","classname","isNewLine","AddressInputComponent","AdressCheckboxComponent","filteredData","AdressDropdownComponent","AddressLabelComponent","AddressAlertComponent","editAddressHeading","addAddressHeading","Heading","AddressButtonComponent","addressSaveButtonText","addressSaveButtonAriaLabel","addressCancelButtonText","addressCancelButtonAriaLabel","errorTitle","AddressErrorTitleComponent","AddressErrorMessageComponent","setName","setStakeName","setAddress","unit","setUnit","isLoading","setIsLoading","isDone","setIsDone","showCity","setShowCity","showState","setShowState","setOptions","wards","setWards","stakes","setStakes","currentOptionWard","setCurrentOptionWard","currentOptionStake","setCurrentOptionStake","Zipcode","unitAddress","getUnitAddressesAsync","res","UnitName","stakeOptions","wardOptions","getUnitAddress","hasCity","hasOwnProperty","hasState","sort","a","b","labelA","toUpperCase","labelB","onChangeWard","onChangeStake","nameChange","fontFamily","fontStyle","marginLeft","addressNameLabel","margin","padding","africaUnitLabel","Select","placeholder","defaultValue","africaStakeLabel","addressStreetLabel","addressCityLabel","addressStateLabel","addressThreeLetterISORegionNameLabel","setZipcode","setStreet","streetTwo","setStreetTwo","neighborhood","setNeighborhood","setCity","houseNum","setHouseNum","axios","method","url","logradouro","localidade","bairro","uf","findAddress","addressZipCodeLabel","minLength","addressHouseRULabel","houseNumChange","streetChange","addressMoreInformationLabel","streetOne","streetTwoChange","addressDistrictLabel","neighborChange","stateChange","cityChange","streetNum","setStreetNum","counties","setCounties","cities","setCities","stateId","setStateId","county","setCounty","citySelected","setCitySelected","countiesList","getCountiesAsync","citiesList","getCitiesAsync","getData","zipcodeAsync","customSetName","addressSectorLabel","customSetStreetNum","customSetStreet","addressRegionNameLabel","selectedState","findCounties","addressMunicipalityNameLabel","findCities","CountyId","getZipcodesAsync","ZipPostalCode","selectCity","cityItem","districts","setDistricts","district","setDistrict","districtSelected","setDistrictSelected","districtList","getDistrictsAsync","filteredCities","Description","stateItem","filteredDistricts","addressDistrictNameLabel","selectDistrict","districtItem","betweenStreet","setBetweenStreet","postalCode","setPostalCode","countryRegionName","SetCountryRegionName","countryList","countryValue","addressBetweenStreetsLabel","customSetBetweenStreet","selectState","addressPostalCodeLabel","customSetPostalCode","validateSuggestAddressAsync","countryRegionsInfo","addressMetaData","stateDefaultSelectionText","defaultStateText","dropdownData","getCountryFormat","getStateFormat","unshift","getAddressTypeFormat","_getCountryRegionInfo","propertyName","validationtor","isValid","_inputValidation","StateName","adminDistrict","addressLine","locality","formattedAddress","_validateRegEx","regEx","test","countryRegionInfo","_getAddressDisplayFormat","addressPurpose","addressDisplayItem","AddressFormatLines","AddressTypeItem","_extendAddressDisplayFormat","nameDisplayItem","formatLine","AddressComponentNameValue","addressItem","getItemFormat","NewLine","phoneDisplayItem","isPrimaryDisplayItem"],"sourceRoot":""}