{"version":3,"file":"static/js/5467349fa11aab0478d1.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-organization-address.action.ts?ada4","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-checkout-v2-shipping-address/dlvry-checkout-v2-shipping-address.tsx?ac6e","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-checkout-v2-shipping-address/dlvry-checkout-v2-shipping-address.view.tsx?c2a1","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-checkout-v2/actions/checkout-applied-state.ts?8f07","webpack://Msdyn365.Commerce.Online/./lib/dlvry-checkout-v2-shipping-address/module-registration.js?62a2","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["import { createObservableDataAction, IActionContext, IAction, ICreateActionContext, IGeneric, IAny, ICommerceApiSettings } from '@msdyn365-commerce/core';\r\nimport { CacheType, callActionOrExecute, Customer, Address, DataServiceQuery, IActionInput, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetOrganizationCustomerAddressInput implements IActionInput {\r\n private readonly user: string | undefined;\r\n private readonly query: DataServiceQuery;\r\n\r\n constructor(apiSettings: ICommerceApiSettings, user: string) {\r\n this.user = user;\r\n\r\n this.query = new DataServiceQuery();\r\n }\r\n\r\n public getDataServiceRequest = (): IDataServiceRequest => {\r\n return this.query.createDataServiceRequestForOperation(\r\n 'GetOrganizationCustomer',\r\n false,\r\n Entities.CustomerClass,\r\n 'false',\r\n {\r\n bypassCache: 'get',\r\n returnEntity: 'Entities.CustomerClass'\r\n },\r\n {}\r\n );\r\n };\r\n\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => `OrganizationCustomerAddress-${this.user}`;\r\n public getCacheObjectType = () => 'OrganizationCustomer';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createGetAddressInput = (inputData: ICreateActionContext>): GetOrganizationCustomerAddressInput => {\r\n const { user } = inputData.requestContext;\r\n return new GetOrganizationCustomerAddressInput(inputData.requestContext.apiSettings, user.customerAccountNumber ?? \"\");\r\n};\r\n\r\nexport const getOrganizationCustomerAddressAction = async (input: GetOrganizationCustomerAddressInput, ctx: IActionContext): Promise => {\r\n if (!ctx.requestContext.user.isAuthenticated) {\r\n return [];\r\n }\r\n var customer = await callActionOrExecute(input.getDataServiceRequest(), ctx);\r\n return customer.Addresses || [];\r\n};\r\n\r\nexport const getOrganizationCustomerAddress = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-address',\r\n action: >getOrganizationCustomerAddressAction,\r\n input: <(args: ICreateActionContext) => IActionInput>createGetAddressInput\r\n});\r\n\r\nexport default getOrganizationCustomerAddress;\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 getSimpleProducts,\r\n ObjectExtensions,\r\n ProductInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { action, computed, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { AutoSuggest } from '@msdyn365-commerce-modules/address';\r\nimport { IAutoSuggestOptions } from '@msdyn365-commerce-modules/address';\r\nimport { AddressCommon } from '@msdyn365-commerce-modules/address';\r\nimport { AddressFormat } from '@msdyn365-commerce-modules/address';\r\nimport { AddressItemType } from '@msdyn365-commerce-modules/address';\r\nimport { AddressMetaData } from '@msdyn365-commerce-modules/address';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '@msdyn365-commerce-modules/address';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { AddressSelect, IAddressSelectProps } from '@msdyn365-commerce-modules/address';\r\nimport { AddressShow, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { IDlvryCheckoutV2ShippingAddressData } from './dlvry-checkout-v2-shipping-address.data';\r\nimport { IDlvryCheckoutV2ShippingAddressProps } from './dlvry-checkout-v2-shipping-address.props.autogenerated';\r\nimport {\r\n ICartLineWithProduct,\r\n ICheckoutShippingCartLineInfo} 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 { CheckoutAppliedStateInput } from '../dlvry-checkout-v2/actions/checkout-applied-state';\r\n\r\n/**\r\n * The checkout address props interface.\r\n */\r\nexport interface ICheckoutAddressProps extends IDlvryCheckoutV2ShippingAddressProps, 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}\r\n\r\n/**\r\n * The checkout shipping address view props.\r\n */\r\nexport interface ICheckoutShippingAddressViewProps extends ICheckoutAddressProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutShippingAddressViewState;\r\n CheckoutShippingAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddress: IAddressShowProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n cartLineImages?: React.ReactNode;\r\n showAddressSelect: IAddressSelectProps;\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 ): IAddressSelectProps;\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: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private customerAddresses: Address[] = [];\r\n\r\n @observable private validationError: object;\r\n\r\n @observable private addressActionResponse?: IAddressResponse;\r\n\r\n @observable private isUpdating?: boolean;\r\n\r\n @observable private hasError?: boolean;\r\n\r\n @observable private addressListSelectedAddress: Address = {};\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat!: AddressFormat;\r\n\r\n private 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 = { shippingGroups: [] };\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 = this._sortAddresses(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 /* void when(\r\n () => this.props.data.checkoutAppliedState.result?.applied.customerInformation === true,\r\n async () => {\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 (\r\n ArrayExtensions.hasElements(shippingCartLines) &&\r\n shippingCartLines[0].ShippingAddress !== undefined &&\r\n shippingCartLines[0].ShippingAddress.FullAddress !== ''\r\n ) {\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.Add);\r\n checkoutState?.updateHasShippingAddress({ newHasShippingAddress: false });\r\n }\r\n }\r\n }\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 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 => {\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 => {\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 // @ts-ignore\r\n context,\r\n renderView,\r\n resources,\r\n moduleState: { hasError }\r\n } = this.props;\r\n // @ts-ignore\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(\r\n line.product?.ItemId,\r\n context.actionContext.requestContext.apiSettings,\r\n context.request.app?.config?.OmniChannelMedia\r\n ),\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 numberOfCartLines = this._countItems(cartlines);\r\n const itemText = numberOfCartLines > 1 ? itemsText : singleItemText;\r\n const itemTitle = `(${format(itemText, numberOfCartLines)})`;\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: itemTitle,\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 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: 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 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 = this._sortAddresses(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\r\n /**\r\n * On Save Function.\r\n */\r\n onSave: () => {\r\n this.onSubmit();\r\n onSaveHandler?.();\r\n },\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 ): IAddressSelectProps => {\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 AddressSelect({\r\n addressFormat: this.addressFormat,\r\n addresses: this.customerAddresses,\r\n resources: this.resources,\r\n addressPurposes: this.addressPurposes,\r\n selectedAddress: this.addressListSelectedAddress,\r\n onAddressOptionChange: this._onAddressOptionChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n telemetryContent: this.telemetryContent,\r\n\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 }\r\n };\r\n\r\n /**\r\n * Method to render map auto suggest.\r\n * @param name - Address name field.\r\n * @param value - Address name value field.\r\n */\r\n private readonly onAddressAddUpdate = (name: string, value: string | boolean) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n };\r\n\r\n /**\r\n * Method to get called on address update change.\r\n * @param event - Input element.\r\n */\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n this.onAddressAddUpdate(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n };\r\n\r\n /**\r\n * Method to get called on address update dropdown change.\r\n * @param event - Select element.\r\n */\r\n private readonly _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n };\r\n\r\n /**\r\n * Method to get called on address update submit.\r\n */\r\n private readonly _onAddressAddUpdateSubmit = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n return;\r\n }\r\n\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow() && this._isNewAddress(this.addUpdateAddress)) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(this.addUpdateAddress)\r\n : this.addressCommon.addCustomerAddress(this.addUpdateAddress);\r\n } else {\r\n response = Promise.resolve({ address: this.addUpdateAddress });\r\n }\r\n\r\n this.isUpdating = true;\r\n this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n this._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 * 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 this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\r\n }\r\n\r\n /**\r\n * Method to get default address region id.\r\n * @returns - Address object from existing addresses.\r\n */\r\n private readonly _getDefaultAddress = (): Address | undefined => {\r\n if (this.customerAddresses) {\r\n const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\r\n return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\r\n }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Method to 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 (\r\n ArrayExtensions.hasElements(shippingCartLines) &&\r\n shippingCartLines[0].ShippingAddress !== undefined &&\r\n shippingCartLines[0].ShippingAddress.FullAddress !== ''\r\n ) {\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.selectedAddress = defaultAddress;\r\n this.addressListSelectedAddress = { ...defaultAddress } || {};\r\n this.onSubmit();\r\n // this._updateCurrentOperation(AddressOperation.Show, defaultAddress);\r\n } else {\r\n // this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n\r\n if (this.customerAddresses.length <= 0) {\r\n this._setErrorMessage(this.props.resources.addressNoneErrorMessage);\r\n }\r\n };\r\n\r\n /**\r\n * Method get called on submit address.\r\n */\r\n private readonly onSubmit = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this.props.telemetry.information('Shipping address submit for Add or Update operation.');\r\n this._onAddressAddUpdateSubmit();\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 = this._sortAddresses(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\r\n if (!this.isSameAddress(this.props.data.checkout.result.checkoutCart.cart.ShippingAddress, 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 const newApplied = { ...this.props.data.checkoutAppliedState.result! };\r\n newApplied.applied.shippingInformation = true;\r\n newApplied.newCartObject = {\r\n ...newApplied.newCartObject,\r\n ShippingAddress: newShippingAddress\r\n };\r\n this.props.context.actionContext.update(new CheckoutAppliedStateInput(), newApplied);\r\n }\r\n };\r\n\r\n private readonly isSameAddress = (address1: Address | undefined, address2: Address | undefined): boolean => {\r\n // If both are undefined\r\n if (address1 === address2) {\r\n return true;\r\n }\r\n // If only one is undefined\r\n if (!address1 || !address2) {\r\n return false;\r\n }\r\n return JSON.stringify(address1, Object.keys(address1).sort()) === JSON.stringify(address2, Object.keys(address2).sort());\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 this.addUpdateAddress = { ...this.selectedAddress } || {};\r\n set(this.addUpdateAddress, {\r\n ThreeLetterISORegionName: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n AddressTypeValue: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType\r\n });\r\n } else if (this.currentOperation === AddressOperation.List) {\r\n this.addressListSelectedAddress = { ...this.selectedAddress } || {};\r\n }\r\n };\r\n\r\n /**\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 _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\n * Returns count of products.\r\n * @param cartLine - The checkout shipping cart line info props.\r\n * @returns Number of products.\r\n */\r\n // @ts-ignore\r\n private readonly _countItems = (cartlines: ICheckoutShippingCartLineInfo[]): number => {\r\n return cartlines.reduce((count, line) => {\r\n return count + (line.quantity || 0);\r\n }, 0);\r\n };\r\n\r\n private readonly _sortAddresses = (addresses: Address[]): Address[] => {\r\n const addressFilter = this.props.config.onlyShowDeliveryAddresses\r\n ? (x: Address) => x.AddressTypeValue === 2\r\n : () => true;\r\n\r\n return addresses.filter(addressFilter).sort((a, b) => {\r\n const aPriority = (a.IsPrimary ? 1 : 0) + (a.AddressTypeValue === 2 ? 1 : 0);\r\n const bPriority = (b.IsPrimary ? 1 : 0) + (b.AddressTypeValue === 2 ? 1 : 0);\r\n\r\n if (aPriority !== bPriority) {\r\n return bPriority - aPriority;\r\n }\r\n\r\n if (a.AddressTypeValue === 2 && b.AddressTypeValue !== 2) {\r\n return -1;\r\n } else if (a.AddressTypeValue !== 2 && b.AddressTypeValue === 2) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n });\r\n };\r\n}\r\n\r\nexport default CheckoutShippingAddress;\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, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressSelectItem, IAddressSelectProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { ICheckoutShippingAddressViewProps } from './dlvry-checkout-v2-shipping-address';\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 }) => {\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\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 = ({\r\n SelectAddress,\r\n addButton,\r\n items,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {addButton}\r\n {items.map((item: IAddressSelectItem) => {\r\n const SelectItem = item.SelectItem;\r\n return (\r\n \r\n {item.input}\r\n \r\n \r\n );\r\n })}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\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 * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\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 cartLineImages\r\n } = props;\r\n\r\n if (!props.config.allowToAddNewAddress) {\r\n delete showAddressSelect.addButton;\r\n }\r\n\r\n return (\r\n \r\n {alert}\r\n {cartLineImages}\r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutShippingAddressView;\r\n","import {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICreateActionContext,\r\n IGeneric\r\n} from '@msdyn365-commerce/core';\r\nimport { Cart, CartLine } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport interface ICheckoutAppliedState {\r\n applied: {\r\n customerInformation: boolean;\r\n shippingInformation: boolean;\r\n deliveryOptions: boolean;\r\n },\r\n newCartObject: Partial;\r\n newCartLinesObject: CartLine[];\r\n}\r\n\r\nexport class CheckoutAppliedStateInput implements IActionInput {\r\n public getCacheKey = () => `CheckoutAppliedState`;\r\n public getCacheObjectType = () => 'CheckoutAppliedState';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nexport async function checkoutAppliedStateAction(input: CheckoutAppliedStateInput, ctx: IActionContext): Promise {\r\n return {\r\n applied: {\r\n customerInformation: false,\r\n shippingInformation: false,\r\n deliveryOptions: false\r\n },\r\n newCartObject: {},\r\n newCartLinesObject: []\r\n };\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\r\n return new CheckoutAppliedStateInput();\r\n};\r\n\r\nexport default createObservableDataAction({\r\n action: >checkoutAppliedStateAction,\r\n input: createInput\r\n});\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['dlvry-checkout-v2-shipping-address'] = {\n c: () => require('partner/modules/dlvry-checkout-v2-shipping-address/dlvry-checkout-v2-shipping-address.tsx'),\n $type: 'contentModule',\n da: [{name:'address', path:'actions/get-organization-address.action', runOn: 0},{name:'addressPurposes', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'checkoutAppliedState', path:'modules/dlvry-checkout-v2/actions/checkout-applied-state', runOn: 0},{name:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'countryStates', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'dlvry-checkout-v2-shipping-address',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/dlvry-checkout-v2-shipping-address'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-address-purposes');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state';\n let dataAction = require('@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/get-organization-address.action';\n let dataAction = require('partner/actions/get-organization-address.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'modules/dlvry-checkout-v2/actions/checkout-applied-state';\n let dataAction = require('partner/modules/dlvry-checkout-v2/actions/checkout-applied-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|dlvry-checkout-v2-shipping-address|dlvry-checkout-v2-shipping-address'] = {\n c: () => require('partner/modules/dlvry-checkout-v2-shipping-address/dlvry-checkout-v2-shipping-address.view.tsx'),\n cn: '__local__-__local__-dlvry-checkout-v2-shipping-address'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["GetOrganizationCustomerAddressInput","constructor","apiSettings","user","getDataServiceRequest","this","query","createDataServiceRequestForOperation","Entities","bypassCache","returnEntity","shouldCacheOutput","getCacheKey","getCacheObjectType","dataCacheType","DataServiceQuery","getOrganizationCustomerAddressAction","async","input","ctx","requestContext","isAuthenticated","callActionOrExecute","Addresses","getOrganizationCustomerAddress","createObservableDataAction","id","action","inputData","_user$customerAccount","customerAccountNumber","CheckoutShippingAddress","React","props","_data$featureState$re2","super","countryRegionId","customerAddresses","addressListSelectedAddress","countryRegions","addressPurposes","defaultAddressType","multiplePickupStoreSwitchName","retailMultiplePickUpOptionEnabled","checkoutErrorRef","_initPickupGroup","pickupCartLines","_getCartLinesforDelivery","cartLines","_this$props$data$chec","products","_getProductsByCartLines","data","checkout","result","checkoutCart","cart","ChannelId","line","product","find","x","RecordId","ProductId","push","cartLine","setState","shippingGroups","error","telemetry","_onSuggestionSelected","_clearAddressFields","address","addressFormat","getTranformedAddress","stateProvinceInfo","set","addUpdateAddress","Street","ZipCode","CountyName","City","State","DistrictName","FullAddress","setTimeout","addressFormatItem","getAddressFormat","ThreeLetterISORegionName","formatAddress","_this$autoSuggest","undefined","name","autoSuggest","excludedAddressFields","includes","_clearValidation","validationError","_dataInitialize","reaction","_data$countryRegions$","_data$addressPurposes","_data$address$result","_sortAddresses","countryStates","_data$countryStates$r","featureState","_data$featureState$re","feature","Name","IsEnabled","_this$props$data$chec2","_this$props$data$chec3","CartLines","filter","_isDelivery","_isNotPickupMode","DeliveryMode","FulfillmentStoreId","deliveryMode","_this$props$context$r","_featureState$result","pickupDeliveryModeCode","context","request","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","_channelDeliveryOptio","pickupDeliveryMode","PickupDeliveryModeCodes","some","pickupMode","channelId","actionContext","productInputs","ObjectExtensions","isNullOrUndefined","map","ProductInput","CatalogId","getSimpleProducts","_renderAddOrUpdateAddress","onSaveHandler","onCancelHandler","currentOperation","AddressOperation","Add","addressCommon","isAuthenticatedFlow","AddressAddUpdate","isUpdating","resources","addressType","AddressType","Shipping","defaultCountryRegionId","selectedAddress","hasError","addressActionResponse","telemetryContent","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","hasExternalSubmitGroup","moduleState","onSave","onSubmit","onCancel","onCancelButtonHandler","_resetView","_renderSelectAddress","onAddAddressHandler","AddressSelect","addresses","onAddressOptionChange","_onAddressOptionChange","onAddAddress","_goToAddAddress","_onSelectAddress","_attachMapAutoSuggest","storeSelectorStateManager","_this$autoSuggest2","isMapApiLoaded","attachAutoSuggest","event","addressRecordId","currentTarget","value","toString","onAddressAddUpdate","validateAddressFormat","target","type","checked","replace","RegExp","AddressItemType","_onCountryChange","_onAddressAddUpdateSubmit","response","_isNewAddress","Update","updateCustomerAddress","addCustomerAddress","Promise","resolve","_updateModuleState","then","_clearError","_onAddOrUpdateSuccess","_this$autoSuggest3","twoLetterIsoRegionName","getTwoLetterISORegionName","TwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","config","addressFormatExcludeList","showAddressType","AddressTypeValue","IsPrimary","_getStateProvinces","getStateProvinces","state","StateId","_getDefaultAddress","length","_getAddressFromCartExpressPaymentDetails","expressPaymentDetailsFromCartPage","tokenizedPaymentCard","isExpressAddressAppliedInCartPage","addressFromCartExpress","getExpressAddress","getAddressFromTokenizedPaymentCard","Country","threeLetterIsoRegionName","getThreeLetterIsoRegionName","NameOnCard","Address1","StreetNumber","Address2","Zip","Phone","expressAddress","_objectSpread","countryRegion","country","_country$ISOCode","ISOCode","toLowerCase","CountryRegionId","_initModuleState","init","status","_canShip","onEdit","checkoutState","defaultAddress","shippingCartLines","ShippingAddress","ArrayExtensions","hasElements","isExpressCheckoutApplied","shippingAddressFromExpressCheckout","isEmpty","_setErrorMessage","addressNoneErrorMessage","information","List","shippingAddress","_updateCurrentOperation","_checkout$result$chec","_checkout$result$chec2","emailDeliveryModeCode","EmailDeliveryModeCode","hasInvoiceLine","_channelDeliveryOptio2","Show","_setShippingAddress","_setDefaultCountryRegionId","newShippingAddress","updateShippingAddress","isSameAddress","newApplied","checkoutAppliedState","applied","shippingInformation","newCartObject","update","CheckoutAppliedStateInput","address1","address2","JSON","stringify","Object","keys","sort","operation","onReady","onPending","onUpdating","existingAddress","_address$Name","_address$Street","_address$StreetNumber","_address$City","_address$State","_address$ZipCode","_address$Phone","_address$ThreeLetterI","_address$AddressTypeV","errorMessage","setHasError","_countItems","cartlines","reduce","count","quantity","addressFilter","onlyShowDeliveryAddresses","a","b","aPriority","bPriority","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$chec6","autoSuggestionEnabled","autoSuggestOptions","_this$props$data$chec4","_this$props$data$chec5","_address","BingMapsApiKey","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_loadMapAPI","_this$props$data$stor","loadMapApi","_this$autoSuggest4","_this$props$data$stor2","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec7","checkoutError","errorLocation","ErrorLocation","_this$props$data$chec8","checkoutErrorFocus","CheckoutModule","focusOnCheckoutError","_this$props$data$stor3","_this$autoSuggest5","disposeAutoSuggest","shouldComponentUpdate","nextProps","nextState","render","renderView","headingImages","itemsText","singleItemText","errorMessageTitle","className","viewState","isShowAddress","isShowAddresList","isShowAddOrUpdateAddress","moduleProps","classnames","showAddress","_renderShowAddress","alert","ErrorComponent","assign","title","message","showAddressSelectHandler","showAddOrUpdateAddressHandler","showAddOrUpdateAddress","cartLineImages","showAddressSelect","_this$props$data$cart","_this$props$data$cart2","properties","ExtensionProperties","property","Key","Value","StringValue","parse","AddressShow","_request$channel","market","getDefaultCountryRegionId","_this$props$data$chec9","__decorate","observable","computed","withModuleState","observer","_ref","AddressDetail","items","Node","item","description","_ref2","SelectAddress","addButton","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","SelectItem","key","showItems","_ref3","AddressForm","heading","AddressItem","label","AddressError","allowToAddNewAddress","Module","ref","checkoutAppliedStateAction","customerInformation","deliveryOptions","newCartLinesObject","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}