{"version":3,"file":"static/js/d47510e73286d0c12450.bundle.js","mappings":"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","sources":["webpack://morland-ecommerce/./src/modules/c-shipping-address/components/checkout-shipping-cartlines-images.tsx?77d1","webpack://morland-ecommerce/./src/modules/c-shipping-address/c-shipping-address.tsx?3df7","webpack://morland-ecommerce/./src/modules/c-shipping-address/c-shipping-address.view.tsx?f850","webpack://morland-ecommerce/./lib/c-shipping-address/module-registration.js?4f4f","webpack://morland-ecommerce/external var \"React\"?0d3b","webpack://morland-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\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 { ICShippingAddressResources } from '../c-shipping-address.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: ICShippingAddressResources;\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","/* eslint-disable @typescript-eslint/no-floating-promises */\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 IContext,\r\n IQueryResultSettings,\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\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 { ICShippingAddressData } from './c-shipping-address.data';\r\nimport { ICShippingAddressProps } from './c-shipping-address.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 { getStateProvincesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\n\r\n/**\r\n * The checkout address props interface.\r\n */\r\nexport interface ICheckoutAddressProps extends ICShippingAddressProps, 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 orderNotes: string;\r\n}\r\n\r\n/**\r\n * This setting defines DELIVERYNOTES Key.\r\n */\r\nexport const orderNotKey = 'ORDERNOTES';\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: Address;\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 deliveryNotes?: JSX.Element;\r\n orderNotes?: React.ReactNode;\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 _onAddressOptionChange: (event: React.ChangeEvent) => void;\r\n _onCountryChange: (countryRegionId: string) => void;\r\n _onAddressAddUpdateDropdownChange: (event: React.ChangeEvent) => void;\r\n _onAddressAddUpdateInputChange: (event: React.ChangeEvent) => void;\r\n validationCError: Address;\r\n _onEdit: () => void;\r\n _goToUpdateAddress: (event: React.MouseEvent) => void;\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: Address;\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 private orderNotesRef: React.RefObject;\r\n\r\n public constructor(props: ICheckoutAddressProps) {\r\n super(props);\r\n this.state = {\r\n shippingGroups: [],\r\n orderNotes: this._getAttributeValue(orderNotKey) || ''\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 this.orderNotesRef = React.createRef();\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 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 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 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 // 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:\r\n (line.cartLine?.ExtensionProperties?.find(prop => prop.Key === 'INSCONFIGURATIONIIMAGE')?.Value\r\n ?.StringValue as string) || 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 orderNotes: this._renderOrderNotes(),\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 * Method to render delivery notes.\r\n */\r\n\r\n private _renderOrderNotes = (): React.ReactNode => {\r\n const { orderNotes } = this.state;\r\n return (\r\n <>\r\n
\r\n {(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n {this.currentOperation === AddressOperation.Show &&

{orderNotes}

}\r\n
\r\n \r\n );\r\n };\r\n /**\r\n * Method _getExtensionPropertyValue.\r\n * @param fieldName -The checkout address properties.\r\n */\r\n private _getAttributeValue = (fieldName: string) => {\r\n const deliveryNotes =\r\n this.props.data.checkout.result &&\r\n this.props.data.checkout.result.checkoutCart &&\r\n this.props.data.checkout.result.checkoutCart.cart &&\r\n this.props.data.checkout.result.checkoutCart.cart?.AttributeValues?.find(attribute => attribute.Name === fieldName);\r\n\r\n if (deliveryNotes) {\r\n // @ts-expect-error -- Need to provide data type.\r\n return deliveryNotes?.TextValue;\r\n }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Method _getExtensionPropertyValue.\r\n * @param event -The checkout address properties.\r\n */\r\n\r\n /**\r\n * Method _getExtensionPropertyValue.\r\n * @param event -The checkout address properties.\r\n */\r\n private _onEditOrderNotes = (event: React.ChangeEvent): void => {\r\n const textArea: HTMLInputElement | null = this.orderNotesRef && this.orderNotesRef.current && this.orderNotesRef.current;\r\n const orderNotes = (this.orderNotesRef && this.orderNotesRef.current && this.orderNotesRef.current.value) || '';\r\n const text: string = orderNotes;\r\n textArea!.value = text;\r\n this.setState({ orderNotes: text });\r\n };\r\n\r\n // @action\r\n // private _updateValidationError(newError: Address) {\r\n // this.validationError = newError;\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 as string);\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 // @ts-ignore\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 // @ts-ignore\r\n this.addUpdateAddress[formatAddress.name] !== undefined &&\r\n !this.autoSuggest?.excludedAddressFields.includes(formatAddress.name)\r\n ) {\r\n // @ts-ignore\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 const newAddressFormat = addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId);\r\n newAddressFormat.map(format => {\r\n if (this.props.config.phoneRequired && format.name === 'Phone') {\r\n format.label = 'Phone *';\r\n }\r\n });\r\n const queryResultSettings: IQueryResultSettings = {\r\n Paging: {\r\n Top: 1000\r\n }\r\n };\r\n const iContext: IContext = {\r\n callerContext: this.props.context.actionContext,\r\n queryResultSettings: queryResultSettings\r\n };\r\n getStateProvincesAsync(iContext, 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 return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: newAddressFormat,\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 (event.currentTarget.dataset.value === 'UPDATE') {\r\n this._updateCurrentOperation(AddressOperation.Update, selectedAddress);\r\n }\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\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n if (this.props.config.phoneRequired && this.addUpdateAddress.Phone === '') {\r\n set(this.validationError, { Phone: this.props.config.phoneNumberRequiredMessage });\r\n }\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 if ((this.props.config.phoneRequired && this.addUpdateAddress.Phone === undefined) || this.addUpdateAddress.Phone === '') {\r\n set(this.validationError, { Phone: this.props.config.phoneNumberRequiredMessage });\r\n }\r\n return;\r\n }\r\n if ((this.props.config.phoneRequired && this.addUpdateAddress.Phone === undefined) || this.addUpdateAddress.Phone === '') {\r\n set(this.validationError, { Phone: this.props.config.phoneNumberRequiredMessage });\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 // 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 const queryResultSettings: IQueryResultSettings = {\r\n Paging: {\r\n Top: 1000\r\n }\r\n };\r\n const iContext: IContext = {\r\n callerContext: this.props.context.actionContext,\r\n queryResultSettings: queryResultSettings\r\n };\r\n getStateProvincesAsync(iContext, 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._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 * 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.setState({\r\n orderNotes: this._getAttributeValue(orderNotKey) || ''\r\n });\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.setState({\r\n orderNotes: this._getAttributeValue(orderNotKey) || ''\r\n });\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 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 const { orderNotes } = this.state;\r\n this._updateAttributeValues(orderNotKey, orderNotes).catch(error => {\r\n this.props.telemetry.error(`error in _updateExtensionProps ${error}`);\r\n });\r\n }\r\n };\r\n private readonly _updateAttributeValues = async (attributekey: string, value: string) => {\r\n const updateAttributeValues: CartLine[] | undefined = (await this.props.data.cart).cart.CartLines?.map(cartLine => {\r\n return {\r\n LineId: cartLine.LineId,\r\n Quantity: cartLine.Quantity,\r\n AttributeValues: [\r\n {\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n Name: 'INSSELECTEDREADABLECONFIGURATION',\r\n TextValue: cartLine.ExtensionProperties?.find(property => property.Key === 'INSSELECTEDREADABLECONFIGURATION')\r\n ?.Value?.StringValue,\r\n ExtensionProperties: [],\r\n TextValueTranslations: []\r\n },\r\n {\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n Name: 'INSCONFIGURATIONIIMAGE',\r\n TextValue: cartLine.ExtensionProperties?.find(property => property.Key === 'INSCONFIGURATIONIIMAGE')?.Value\r\n ?.StringValue,\r\n ExtensionProperties: [],\r\n TextValueTranslations: []\r\n }\r\n ],\r\n ExtensionProperties: cartLine.ExtensionProperties\r\n };\r\n });\r\n\r\n if (updateAttributeValues) {\r\n await this.props.data.checkout.result?.checkoutCart.updateCartLines({\r\n updatedCartLinesObject: updateAttributeValues\r\n });\r\n }\r\n\r\n // await this.props.data.checkout.result?.updateCartLines()\r\n await this.props.data.checkout.result?.checkoutCart.updateAttributeValues({\r\n newAttributeValues: [\r\n {\r\n // @ts-expect-error -- Need to provide data type.\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n Name: attributekey,\r\n TextValue: value,\r\n ExtensionProperties: [],\r\n TextValueTranslations: []\r\n }\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 _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 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\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 './c-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 // @ts-ignore\r\n const onChange = item.input.props.onChange;\r\n return (\r\n \r\n
\r\n {item.input}\r\n \r\n
\r\n\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\r\n return (\r\n \r\n {label}\r\n {input}\r\n {alert}\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 orderNotes\r\n } = props;\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 {orderNotes}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutShippingAddressView;\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['c-shipping-address'] = {\n c: () => require('partner/modules/c-shipping-address/c-shipping-address.tsx'),\n $type: 'contentModule',\n da: [{name:'address', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-address', 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:'countryRegions', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-regions', runOn: 0},{name:'countryStates', path:'@msdyn365-commerce-modules/address/dist/lib/actions/get-country-state', runOn: 0},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'c-shipping-address',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/c-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-address';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-address');\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 window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|c-shipping-address|c-shipping-address'] = {\n c: () => require('partner/modules/c-shipping-address/c-shipping-address.view.tsx'),\n cn: '__local__-__local__-c-shipping-address'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["CheckoutPickupCartLines","_ref","moduleClassName","cartLines","title","itemTitle","resources","isMobileCheck","isMobile","variant","VariantType","Browser","context","gridSettings","xs","w","sm","md","lg","xl","isMobileView","ArrayExtensions","hasElements","React","className","map","cartLine","isShowQty","quantity","classnames","key","lineId","Image","Object","assign","imageProps","role","format","productQuantityInfo","altText","id","defaultImageSettings","viewports","q","h","lazyload","quality","orderNotKey","CheckoutShippingAddress","constructor","props","_data$featureState$re2","super","countryRegionId","customerAddresses","addressListSelectedAddress","countryRegions","addressPurposes","defaultAddressType","multiplePickupStoreSwitchName","retailMultiplePickUpOptionEnabled","checkoutErrorRef","_renderOrderNotes","orderNotes","this","state","currentOperation","AddressOperation","Add","Update","htmlFor","name","type","ref","orderNotesRef","value","onChange","_onEditOrderNotes","Show","_getAttributeValue","fieldName","_this$props$data$chec","deliveryNotes","data","checkout","result","checkoutCart","cart","AttributeValues","find","attribute","Name","TextValue","event","textArea","current","text","setState","_initPickupGroup","async","pickupCartLines","_getCartLinesforDelivery","_this$props$data$chec2","products","_getProductsByCartLines","ChannelId","line","product","x","RecordId","ProductId","push","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","autoSuggest","excludedAddressFields","includes","_clearValidation","validationError","_dataInitialize","reaction","_data$countryRegions$","_data$addressPurposes","_data$address$result","countryStates","_data$countryStates$r","featureState","_data$featureState$re","feature","IsEnabled","_this$props$data$chec3","_this$props$data$chec4","CartLines","filter","_isDelivery","_isNotPickupMode","DeliveryMode","FulfillmentStoreId","deliveryMode","_this$props$context$r","_featureState$result","pickupDeliveryModeCode","request","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","_channelDeliveryOptio","pickupDeliveryMode","PickupDeliveryModeCodes","some","pickupMode","channelId","actionContext","productInputs","ObjectExtensions","isNullOrUndefined","ProductInput","requestContext","apiSettings","CatalogId","getSimpleProducts","_renderAddOrUpdateAddress","onSaveHandler","onCancelHandler","addressCommon","isAuthenticatedFlow","newAddressFormat","config","phoneRequired","label","iContext","callerContext","queryResultSettings","Paging","Top","getStateProvincesAsync","then","StateId","AddressAddUpdate","isUpdating","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","addressRecordId","currentTarget","toString","dataset","_updateCurrentOperation","onAddressAddUpdate","validateAddressFormat","Phone","phoneNumberRequiredMessage","target","checked","replace","RegExp","AddressItemType","_onCountryChange","_onAddressAddUpdateSubmit","response","_isNewAddress","updateCustomerAddress","addCustomerAddress","Promise","resolve","_updateModuleState","_clearError","_onAddOrUpdateSuccess","_this$autoSuggest3","twoLetterIsoRegionName","getTwoLetterISORegionName","TwoLetterISORegionName","changeAutoSuggestionCountryCode","_getAddressFormatExcludeList","addressFormatExcludeList","showAddressType","AddressTypeValue","IsPrimary","_getStateProvinces","_getDefaultAddress","length","_getAddressFromCartExpressPaymentDetails","expressPaymentDetailsFromCartPage","tokenizedPaymentCard","isExpressAddressAppliedInCartPage","addressFromCartExpress","getExpressAddress","getAddressFromTokenizedPaymentCard","Country","threeLetterIsoRegionName","getThreeLetterIsoRegionName","NameOnCard","Address1","StreetNumber","Address2","Zip","expressAddress","_objectSpread","countryRegion","country","_country$ISOCode","ISOCode","toLowerCase","CountryRegionId","_initModuleState","init","status","_canShip","onEdit","checkoutState","defaultAddress","shippingCartLines","ShippingAddress","isExpressCheckoutApplied","shippingAddressFromExpressCheckout","isEmpty","_setShippingAddress","updateHasShippingAddress","newHasShippingAddress","information","List","shippingAddress","_checkout$result$chec","_checkout$result$chec2","emailDeliveryModeCode","EmailDeliveryModeCode","hasInvoiceLine","_channelDeliveryOptio2","_setDefaultCountryRegionId","newShippingAddress","updateShippingAddress","catch","_updateAttributeValues","attributekey","_await$this$props$dat","_this$props$data$chec6","updateAttributeValues","_cartLine$ExtensionPr","_cartLine$ExtensionPr2","LineId","Quantity","ExtensionProperties","property","Key","Value","StringValue","TextValueTranslations","_this$props$data$chec5","updateCartLines","updatedCartLinesObject","newAttributeValues","operation","onReady","onPending","onUpdating","existingAddress","_address$Name","_address$Street","_address$StreetNumber","_address$City","_address$State","_address$ZipCode","_address$Phone","_address$ThreeLetterI","_address$AddressTypeV","_setErrorMessage","errorMessage","setHasError","_countItems","cartlines","reduce","count","AddressCommon","AddressFormat","AddressMetaData","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$chec9","autoSuggestionEnabled","autoSuggestOptions","_this$props$data$chec7","_this$props$data$chec8","_address","BingMapsApiKey","BingMapsEnabled","options","AutoSuggest","ChannelCountryRegionISOCode","DefaultLanguageId","_loadMapAPI","_this$props$data$stor","loadMapApi","_this$autoSuggest4","_this$props$data$stor2","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec10","checkoutError","errorLocation","ErrorLocation","_this$props$data$chec11","checkoutErrorFocus","CheckoutModule","focusOnCheckoutError","_this$props$data$stor3","_this$autoSuggest5","disposeAutoSuggest","shouldComponentUpdate","nextProps","nextState","render","_featureState$result2","renderView","headingImages","itemsText","singleItemText","errorMessageTitle","imageSettings","_line$cartLine$LineId","_line$product","_line$cartLine","_line$product2","_line$product3","_context$request$app","_line$cartLine$Quanti","src","prop","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","ItemId","app","OmniChannelMedia","loadFailureBehavior","numberOfCartLines","itemText","lineImageProps","cartLineImages","isRetailMultiplePickUpOptionEnabled","viewState","isShowAddress","isShowAddresList","isShowAddOrUpdateAddress","moduleProps","showAddress","_renderShowAddress","alert","ErrorComponent","message","showAddressSelectHandler","showAddOrUpdateAddressHandler","showAddOrUpdateAddress","showAddressSelect","_this$props$data$cart","_this$props$data$cart2","properties","JSON","parse","AddressShow","_request$channel","market","getDefaultCountryRegionId","_this$props$data$chec12","__decorate","observable","action","computed","withModuleState","observer","AddressDetail","items","Node","item","description","_ref2","SelectAddress","addButton","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","SelectItem","input","showItems","onClick","_ref3","AddressForm","heading","AddressItem","AddressError","Module","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","window","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}