{"version":3,"file":"static/js/12.77c11476ce14bd54ca9b.chunk.js","mappings":"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","sources":["webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-shipping-cartlines-images.tsx?ab7c","webpack://lds-commerce/./src/modules/checkout-delivery-options/checkout-delivery-options.tsx?6764","webpack://lds-commerce/./src/modules/checkout/checkout.tsx?6737","webpack://lds-commerce/./src/modules/checkout-gift-card/checkout-gift-card.tsx?8fc3","webpack://lds-commerce/./src/modules/checkout/checkout.view.tsx?e4cc","webpack://lds-commerce/./src/modules/checkout-loyalty/checkout-loyalty.tsx?8b4b","webpack://lds-commerce/./src/modules/gift-card-balance-check/components/get-form.tsx?e249","webpack://lds-commerce/./src/modules/gift-card-balance-check/components/get-item.tsx?4862","webpack://lds-commerce/./src/modules/gift-card-balance-check/gift-card-balance-check.tsx?d1f8","webpack://lds-commerce/./src/modules/lds-checkout-4/components/alert.tsx?350b","webpack://lds-commerce/./src/modules/lds-checkout-4/components/get-invoice-payment-summary.tsx?da42","webpack://lds-commerce/./src/modules/lds-checkout-4/components/get-line-items.tsx?edff","webpack://lds-commerce/./src/modules/lds-checkout-4/components/get-order-summary.tsx?7c8d","webpack://lds-commerce/./src/components/section-header/index.tsx?5324","webpack://lds-commerce/./src/modules/lds-checkout-4/components/guided-card.tsx?4ee5","webpack://lds-commerce/./src/modules/lds-checkout-4/components/guided-form.tsx?6db6","webpack://lds-commerce/./src/modules/lds-checkout-4/components/place-order-button.tsx?1a29","webpack://lds-commerce/./src/modules/lds-checkout-4/lds-checkout-4.tsx?d6e5","webpack://lds-commerce/./src/modules/lds-checkout-4/methods/place-order.ts?1545","webpack://lds-commerce/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?1e75","webpack://lds-commerce/./src/modules/checkout-gift-card/checkout-gift-card.view.tsx?d99f","webpack://lds-commerce/./src/modules/checkout-loyalty/checkout-loyalty.view.tsx?b79f","webpack://lds-commerce/./src/modules/lds-checkout-contact-4/components/get-add-contact-info.tsx?5255","webpack://lds-commerce/./src/modules/lds-checkout-contact-4/components/get-show-contact-info.tsx?45fb","webpack://lds-commerce/./src/modules/lds-checkout-contact-4/lds-checkout-contact-4.tsx?d228","webpack://lds-commerce/./src/modules/lds-checkout-customer-account-payment-4/components/get-account-payment-form-edit-mode.tsx?f112","webpack://lds-commerce/./src/modules/lds-checkout-customer-account-payment-4/components/get-account-payment-form-summary-mode.tsx?be33","webpack://lds-commerce/./src/modules/lds-checkout-customer-account-payment-4/lds-checkout-customer-account-payment-4.tsx?93b1","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/lds-checkout-delivery-options-4.props.autogenerated.ts?b469","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/components/lds-checkout-delivery-options-4.description.tsx?c5e7","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/components/lds-checkout-delivery-options-4.error-message.tsx?401d","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/components/lds-checkout-delivery-options-4.error-title.tsx?c275","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/components/lds-checkout-delivery-options-4.radio-button.tsx?f1aa","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/lds-checkout-delivery-options-4.tsx?8570","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/common/common/iframe.tsx?d0f7","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/common/common/payment-instrument.dropin.style.ts?17ae","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/common/common/add-payment-form.tsx?aa5b","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/common/common/payment-instrument-message.ts?5567","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/common/common/index.ts?611c","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/components/payment-information.tsx?9b41","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/lds-checkout-payment-instrument.tsx?575b","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument-2/components/payment-information.tsx?243b","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument-2/lds-checkout-payment-instrument-2.tsx?70b3","webpack://lds-commerce/./src/modules/lds-checkout-pickup-4/lds-checkout-pickup-4.tsx?a6a1","webpack://lds-commerce/./src/modules/lds-checkout-terms-and-conditions-4/components/lds-checkout-terms-and-conditions-4.check-box.tsx?0095","webpack://lds-commerce/./src/modules/lds-checkout-terms-and-conditions-4/components/lds-checkout-terms-and-conditions-4.error-message.tsx?d45b","webpack://lds-commerce/./src/modules/lds-checkout-terms-and-conditions-4/components/lds-checkout-terms-and-conditions-4.error-title.tsx?a334","webpack://lds-commerce/./src/modules/lds-checkout-terms-and-conditions-4/lds-checkout-terms-and-conditions-4.tsx?9c73","webpack://lds-commerce/./src/modules/lds-checkout-4/lds-checkout-4.view.tsx?dc15","webpack://lds-commerce/./src/modules/lds-checkout-contact-4/lds-checkout-contact-4.view.tsx?305f","webpack://lds-commerce/./src/modules/lds-checkout-customer-account-payment-4/lds-checkout-customer-account-payment-4.view.tsx?6383","webpack://lds-commerce/./src/modules/lds-checkout-delivery-options-4/lds-checkout-delivery-options-4.view.tsx?a384","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument-2/lds-checkout-payment-instrument-2.view.tsx?7cc5","webpack://lds-commerce/./src/modules/lds-checkout-payment-instrument/lds-checkout-payment-instrument.view.tsx?fc1e","webpack://lds-commerce/./src/modules/lds-checkout-pickup-4/lds-checkout-pickup-4.view.tsx?2ffb","webpack://lds-commerce/./src/modules/lds-checkout-terms-and-conditions-4/lds-checkout-terms-and-conditions-4.view.tsx?1766","webpack://lds-commerce/./src/modules/gift-card-balance-check/gift-card-balance-check.view.tsx?a0c9","webpack://lds-commerce/./src/invoice-summary-lineitem.tsx?5f61","webpack://lds-commerce/./src/order-summary-lineitem.tsx?8a98","webpack://lds-commerce/./src/modules/lds-checkout-pickup-4/components/lds-checkout-pickup-4-group.tsx?2ab2","webpack://lds-commerce/./src/modules/checkout/components/get-line-items.tsx?92f8","webpack://lds-commerce/./src/modules/checkout/components/get-order-summary.tsx?4a81","webpack://lds-commerce/./src/modules/checkout-gift-card/components/get-form.tsx?4540","webpack://lds-commerce/./src/modules/checkout-gift-card/components/get-list.tsx?a3f3","webpack://lds-commerce/./src/modules/checkout-gift-card/components/get-item.tsx?d186","webpack://lds-commerce/./src/modules/checkout/components/guided-form.tsx?f018","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.description.tsx?840c","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/address-detail-item.tsx?d9a2","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-radio.tsx?045f","webpack://lds-commerce/./src/modules/checkout/methods/checkout.ts?7b6b","webpack://lds-commerce/./src/modules/checkout/components/alert.tsx?cb1e","webpack://lds-commerce/./src/modules/checkout/components/get-invoice-payment-summary.tsx?9549","webpack://lds-commerce/./src/modules/checkout/components/guided-card.tsx?58e0","webpack://lds-commerce/./src/modules/checkout/components/place-order-button.tsx?9b41","webpack://lds-commerce/./src/modules/checkout/methods/place-order.ts?5aa0","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-message.tsx?8ca3","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-title.tsx?f7e7","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.radio-button.tsx?9df9","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-date.tsx?bd12","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-grp.tsx?3a15","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/get-line-items.tsx?e389","webpack://lds-commerce/./src/modules/checkout-gift-card/components/title.tsx?3b2f","webpack://lds-commerce/./src/modules/checkout-loyalty/components/checkout-loyalty-input.tsx?cadb","webpack://lds-commerce/./src/modules/checkout-loyalty/components/checkout-loyalty-label.tsx?e02b","webpack://lds-commerce/./src/modules/checkout-loyalty/components/checkout-loyalty-text.tsx?895a","webpack://lds-commerce/./src/modules/lds-checkout-pickup-4/components/lds-checkout-pickup-4-utility.ts?daca","webpack://lds-commerce/./src/modules/lds-checkout-pickup-4/components/lds-checkout-pickup-4-date-dropdown.tsx?2c33","webpack://lds-commerce/./src/modules/lds-checkout-pickup-4/components/lds-checkout-pickup-4-timeslot-dropdown.tsx?c059","webpack://lds-commerce/./src/modules/checkout-delivery-options/components/address-format.data.ts?3c40"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageProps, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\n/**\n * The cartLine product interface.\n */\nexport interface ICartLineWithProduct {\n cartLine: CartLine;\n product?: SimpleProduct;\n}\n\n/**\n * The checkout shipping cartLine interface.\n */\nexport interface ICheckoutShippingCartLineInfo {\n lineId?: string;\n imageProps: IImageProps;\n deliveryMethodDesc?: string;\n requestDeliveryDate?: string;\n}\n\n/**\n * The checkout shipping cartLine props.\n */\nexport interface ICheckoutShippingCartLinesProps {\n moduleClassName: string;\n cartLines: ICheckoutShippingCartLineInfo[];\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Following as per module\nexport const CheckoutShippingCartLines: React.FC = ({ moduleClassName, cartLines }) => {\n if (!ArrayExtensions.hasElements(cartLines)) {\n return null;\n }\n\n return (\n
\n
\n {cartLines.map((cartLine: ICheckoutShippingCartLineInfo) => {\n const className = `${moduleClassName}__group-images-lines-product`;\n return (\n
\n \n
{cartLine.deliveryMethodDesc}
\n
\n
{cartLine.requestDeliveryDate}
\n
\n );\n })}\n
\n
\n );\n};\n\n/**\n * The checkout shipping cartLine image settings.\n */\nexport const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\n lg: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\n xl: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 }\n },\n lazyload: true,\n quality: 80\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { CheckoutModule, ErrorLocation, ICheckoutState } from '@msdyn365-commerce/global-state';\nimport { Cart, ChannelDeliveryOptionConfiguration, FilterDeliveryModeOption } from '@msdyn365-commerce/retail-proxy';\nimport { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport {\n Address,\n CartLine,\n DeliveryOption,\n DeliveryPreferenceType,\n LineDeliverySpecification,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport {\n GetDeliveryOptionsForCartLineAddressInput,\n getDeliveryOptionsForCartLineAddress,\n getFallbackImageUrl,\n QueryResultSettingsProxy,\n StringExtensions,\n DeliveryOptionsCartLineAddress,\n ArrayExtensions,\n ObjectExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Waiting } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport get from 'lodash/get';\nimport { action, computed, observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport groupBy from 'lodash/groupBy';\n\nimport { IImageProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { ErrorComponent } from '../../common/error';\nimport { ICheckoutDeliveryOptionsData } from './checkout-delivery-options.data';\nimport {\n filterDeliveryModeOption,\n ICheckoutDeliveryOptionsProps,\n useDefaultDeliveryOption\n} from './checkout-delivery-options.props.autogenerated';\nimport DescriptionComponent from './components/checkout-delivery-options.description';\nimport ErrorMessageComponent from './components/checkout-delivery-options.error-message';\nimport ErrorTitleComponent from './components/checkout-delivery-options.error-title';\nimport RadioButtonComponent from './components/checkout-delivery-options.radio-button';\nimport { focusOnCheckoutError } from '../../checkout-errors';\nimport { AddressDetailItemFunctionComponent } from './components/address-detail-item';\nimport CheckoutCartLineDeliveryDate from './components/checkout-cartLine-delivery-date';\nimport CheckoutCartLineDeliveryOptionsRadio from './components/checkout-cartLine-delivery-options-radio';\nimport { GetLineItems } from './components/get-line-items';\nimport {\n CheckoutShippingCartLines,\n ICheckoutShippingCartLineInfo,\n ICheckoutShippingCartLinesProps,\n defaultImageSettings\n} from './components/checkout-shipping-cartlines-images';\n\nexport interface ICheckoutDeliveryOptionsModuleProps\n extends ICheckoutDeliveryOptionsProps,\n IModuleStateProps {}\n\nexport interface ICheckoutDeliveryOption {\n DeliveryOption: INodeProps;\n description?: React.ReactNode;\n price?: React.ReactNode;\n}\n\nexport interface ICartLineSelectedDeliveryOption {\n cartLineId: string;\n selectedDeliveryOption: string;\n requestDeliveryDate?: string;\n}\n\nexport interface ICheckoutDeliveryOptionEdit extends ICheckoutDeliveryOption {\n code: string;\n radioButton?: React.ReactNode;\n}\n\nexport interface ICheckoutDeliveryOptionsList {\n DeliveryOptionsList: INodeProps;\n list: ICheckoutDeliveryOptionEdit[];\n}\n\nexport interface ICheckoutDeliveryOptionsError {\n Error: INodeProps;\n title: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ICheckoutDeliveryOptionsViewState {\n isLoading: boolean;\n isError: boolean;\n isShowList: boolean;\n isShowSelected: boolean;\n isShowSaveButton: boolean;\n isShowEditButton: boolean;\n isShowCancelButton: boolean;\n}\n\nexport interface ICheckoutDeliveryOptionsViewProps extends ICheckoutDeliveryOptionsProps<{}> {\n CheckoutDeliveryOptions: IModuleProps;\n selectedItemId: string;\n deliveryOptionsData: DeliveryOption[];\n isLoading: boolean;\n errorMessageData: string;\n viewState: ICheckoutDeliveryOptionsViewState;\n deliveryOptions?: ICheckoutDeliveryOptionsList;\n deliveryOptionSelected?: ICheckoutDeliveryOption;\n errorMessage?: ICheckoutDeliveryOptionsError;\n waiting?: React.ReactNode;\n saveButton?: React.ReactNode;\n editButton?: React.ReactNode;\n cancelButton?: React.ReactNode;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n checkoutCartLineGroupDeliveryOptions?: React.ReactNode;\n enableCheckoutCartLineDeliveryOptions?: boolean;\n cartLineImages?: React.ReactNode;\n onDeliveryOptionChange(event: React.ChangeEvent): void;\n onSave(): void;\n onEdit(): void;\n onCancel(): void;\n}\n\n/**\n *\n * CheckoutDeliveryOptions component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass CheckoutDeliveryOptions extends React.Component {\n @observable private selectedItemId: string = '';\n\n @observable private deliveryOptions: DeliveryOption[] = [];\n\n @observable private isLoading: boolean = false;\n\n @observable private errorMessage?: string;\n\n @observable private groupDeliveryOptions: DeliveryOptionsCartLineAddress[] = [];\n\n @observable private cartLineSelectedDeliveryOptions: ICartLineSelectedDeliveryOption[] = [];\n\n @computed private get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\n }\n\n @computed get currencyCode(): string | undefined {\n return get(this.props, 'context.request.channel.Currency');\n }\n\n public get expressPaymentDetailsFromCartPage() {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const properties =\n this.props.data.cart?.result?.cart?.ExtensionProperties?.find(property => property.Key === 'expressPaymentDetails')?.Value\n ?.StringValue ?? '';\n\n return properties ? JSON.parse(properties) : null;\n }\n\n public get isExpressPaymentAppliedInCartPage(): boolean {\n return this.expressPaymentDetailsFromCartPage?.isExpressCheckoutAppliedInCartPage ?? false;\n }\n\n private cartDeliveryMode?: string;\n\n private retailMultiplePickUpOptionEnabled?: boolean = false;\n\n private channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly isSelectDefaultOptionEnabled?: boolean;\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n private readonly isMultipleAddressShippingEnabled?: boolean;\n\n private readonly timeoutRetailCall: number;\n\n private cartLinesDeliveryOptions: ICartLineSelectedDeliveryOption[] = [];\n\n public constructor(props: ICheckoutDeliveryOptionsModuleProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.isSelectDefaultOptionEnabled =\n this.props.config.useDefaultDeliveryOption && this.props.config.useDefaultDeliveryOption !== useDefaultDeliveryOption.none;\n this.isMultipleAddressShippingEnabled = this.props.config.multipleAddressShippingEnabled;\n this.timeoutRetailCall = this.props.config.timeoutToCallRetail !== undefined ? this.props.config.timeoutToCallRetail : 0;\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n if (\n (this.props.data.checkout.result?.isExpressCheckoutApplied && this.canShip()) ||\n this.isExpressPaymentAppliedInCartPage\n ) {\n await this.init();\n } else {\n // Wait for a specific time (e.g., 2000 milliseconds = 2 seconds)\n await new Promise(resolve => setTimeout(resolve, this.timeoutRetailCall));\n // Then call the init function\n await this.init();\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.shippingAddress,\n async () => {\n await this.loadDeliveryOptions();\n this.props.moduleState.setIsCancellable(false);\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.cartLinesWithShippingAddress,\n async () => {\n await this.loadDeliveryOptions();\n this.props.moduleState.setIsCancellable(false);\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n async isExpressCheckoutApplied => {\n if (isExpressCheckoutApplied && this.canShip() && !this.isExpressPaymentAppliedInCartPage) {\n await this.loadDeliveryOptions();\n this.props.moduleState.setIsCancellable(false);\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n }\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (\n checkoutError &&\n checkoutError.errorLocation === ErrorLocation.CheckoutDeliveryOptions &&\n checkoutError.errorMessage\n ) {\n this.setError(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutDeliveryOptions) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutDeliveryOptionsModuleProps, nextState: ICheckoutDeliveryOptionsViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n this.channelDeliveryOptionConfig = this.props.data.channelDeliveryOptionConfig?.result;\n this.retailMultiplePickUpOptionEnabled = this.props.data.featureState?.result?.find(\n feature => feature.Name === multiplePickupStoreSwitchName\n )?.IsEnabled;\n\n if (!this.canShip()) {\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\n return null;\n }\n\n const {\n moduleState: { isReady, isUpdating, hasError }\n } = this.props;\n const isError = !this.isLoading && hasError;\n const isShowList = !this.isLoading && !hasError && isUpdating && !this.isSelectDefaultOptionEnabled;\n const isShowSelected = !this.isLoading && !hasError && isReady;\n const { errorMessageTitle, deliveryOptionAriaLabel } = this.props.resources;\n const cartLinesDisplay = this.getMultipleDeliveryOptionSelected();\n const lineImageProps: ICheckoutShippingCartLinesProps = {\n moduleClassName: 'ms-checkout-shipping-address',\n cartLines: cartLinesDisplay.filter(x => !ObjectExtensions.isNullOrUndefined(x))\n };\n\n const cartLineImages: React.ReactNode = ;\n\n const viewProps = {\n ...this.props,\n onDeliveryOptionChange: this.onDeliveryOptionChange,\n selectedItemId: this.selectedItemId,\n deliveryOptionsData: this.deliveryOptions,\n isLoading: this.isLoading,\n alert: this.errorMessage && ,\n errorMessageData: this.errorMessage,\n viewState: {\n isLoading: this.isLoading,\n isError,\n isShowList,\n isShowSelected,\n isShowSaveButton: isShowList && !this.props.moduleState.hasExternalSubmitGroup,\n isShowEditButton: isShowSelected && !this.props.moduleState.hasExternalSubmitGroup,\n isShowCancelButton: isShowList && !this.props.moduleState.hasExternalSubmitGroup && !!this.getSavedDeliveryOption()\n },\n CheckoutDeliveryOptions: {\n moduleProps: this.props,\n className: classname('ms-checkout-delivery-options', this.props.config.className)\n },\n deliveryOptions: {\n DeliveryOptionsList: {\n className: 'ms-checkout-delivery-options__list',\n role: 'list',\n 'aria-label': deliveryOptionAriaLabel\n },\n list: this.getDeliveryOptionList()\n },\n deliveryOptionSelected: this.getDeliveryOptionSelected(),\n errorMessage: this.getErrorMessage(),\n waiting: ,\n checkoutErrorRef: this.checkoutErrorRef,\n checkoutCartLineGroupDeliveryOptions: this.getCheckoutCartLineGroupDeliveryOptions(),\n enableCheckoutCartLineDeliveryOptions: this.isMultipleAddressShippingEnabled,\n cartLineImages,\n saveButton: this.getSaveButton(),\n editButton: this.getEditButton(),\n cancelButton: this.getCancelButton(),\n onSave: this.onSave,\n onEdit: this.onEdit,\n onCancel: this.onCancel\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n @action\n private readonly init = async (): Promise => {\n this.props.moduleState.init({\n onEdit: this.isSelectDefaultOptionEnabled ? undefined : this.onEdit,\n onCancel: this.isSelectDefaultOptionEnabled ? undefined : this.onCancel,\n onSubmit: this.isSelectDefaultOptionEnabled ? undefined : this.onSubmit,\n status:\n !(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption) &&\n this.canShip()\n ? 'updating'\n : 'disabled'\n });\n\n this.cartDeliveryMode = this.getSavedDeliveryOption();\n if (this.isMultipleAddressShippingEnabled) {\n this.getCartLinesSavedDeliveryOption();\n }\n await this.loadDeliveryOptions();\n };\n\n private readonly canShip = (): boolean => {\n const hasInvoice = this.props.data.checkout.result?.checkoutCart.hasInvoiceLine;\n return !hasInvoice && this.getCartLinesForShipping().length > 0;\n };\n\n private readonly isDeliveryModeExists = (deliveryMode: string | undefined): boolean => {\n if (deliveryMode) {\n if (this.deliveryOptions.find(deliveryOption => deliveryOption.Code === deliveryMode)) {\n return true;\n }\n }\n return false;\n };\n\n private readonly getDeliveryOptionSelected = (): ICheckoutDeliveryOption | null => {\n const selectedItem = this.deliveryOptions.find(deliveryOption => deliveryOption.Code === this.selectedItemId);\n if (!selectedItem) {\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\n return null;\n }\n\n const { id, typeName, context } = this.props;\n const { priceFree } = this.props.resources;\n const price = get(selectedItem, 'ShippingChargeAmount', 0);\n const channelConfig = this.props.context.request.channel;\n return {\n DeliveryOption: { className: 'ms-checkout-delivery-options__option-selected' },\n description: ,\n price: (\n \n )\n };\n };\n\n private readonly getErrorMessage = (): ICheckoutDeliveryOptionsError => {\n const { errorMessageTitle } = this.props.resources;\n return {\n // @ts-expect-error\n CheckoutDeliveryOptionsError: { tag: 'span', className: 'ms-address-form__error', role: 'alert', 'aria-live': 'assertive' },\n title: ,\n message: \n };\n };\n\n private readonly getDeliveryOptionList = (): ICheckoutDeliveryOptionEdit[] => {\n const count = this.deliveryOptions.length;\n const { priceFree } = this.props.resources;\n const { id, typeName, context } = this.props;\n const channelConfig = this.props.context.request.channel;\n\n return this.deliveryOptions.map((deliveryOption: DeliveryOption, index: number) => {\n const getAriaLabelWithPrice = get(deliveryOption, 'ShippingChargeAmount', 0);\n return {\n DeliveryOption: { className: 'ms-checkout-delivery-options__option', role: 'listitem' },\n code: deliveryOption.Code || '',\n radioButton: (\n \n ),\n description: (\n \n ),\n price: (\n \n )\n };\n });\n };\n\n private readonly getSaveButton = (): React.ReactNode => {\n const { saveBtnLabel = 'Save' } = this.props.resources;\n return (\n \n {saveBtnLabel}\n \n );\n };\n\n private readonly getEditButton = (): React.ReactNode => {\n const { editBtnLabel = 'Change' } = this.props.resources;\n return (\n \n );\n };\n\n private readonly getCancelButton = (): React.ReactNode => {\n const { cancelBtnLabel = 'Cancel' } = this.props.resources;\n return (\n \n );\n };\n\n private readonly setError = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.errorMessage = errorMessage;\n };\n\n private readonly clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.errorMessage = undefined;\n };\n\n private readonly onSave = async (): Promise => {\n await this.onSubmit();\n };\n\n private readonly onEdit = async (): Promise => {\n this.props.telemetry.information('Delivery options onEdit is called.');\n\n this.clearError();\n this.onUpdating();\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n };\n\n private readonly onSubmit = async (): Promise => {\n this.props.telemetry.information('Delivery options onSubmit is called.');\n if (this.isMultipleAddressShippingEnabled) {\n this.updateCartLinesDeliverySpecification();\n } else {\n await this.updateCartDeliverySpecification(this.selectedItemId);\n }\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\n };\n\n private readonly onCancel = async (): Promise => {\n this.props.telemetry.information('Delivery options onCancel is called.');\n\n // Reset to the saved value\n const savedDeliveryOption = this.getSavedDeliveryOption();\n if (savedDeliveryOption) {\n this.selectedItemId = savedDeliveryOption;\n this.onReady();\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\n } else {\n this.onUpdating();\n }\n };\n\n private readonly getSavedDeliveryOption = (): string | undefined => {\n const cartLinesForShipping = this.getCartLinesForShipping();\n return cartLinesForShipping[0] && cartLinesForShipping[0].DeliveryMode;\n };\n\n private readonly getCartLinesSavedDeliveryOption = (): void => {\n const cartLinesForShipping = this.getCartLinesForShipping();\n cartLinesForShipping.forEach(cartLine => {\n const deliveryMode = cartLine.DeliveryMode !== undefined ? cartLine.DeliveryMode : '';\n if (!cartLine.LineId || StringExtensions.isNullOrEmpty(deliveryMode)) {\n return;\n }\n const cartLineId = cartLine?.LineId;\n const existingCartLineSelectedDeliveryOption = this.cartLinesDeliveryOptions.find(\n cartLineDeliveryOption => cartLineDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = deliveryMode;\n } else {\n if (cartLineId !== undefined) {\n this.cartLinesDeliveryOptions.push({ cartLineId, selectedDeliveryOption: deliveryMode });\n }\n }\n });\n };\n\n private readonly updateCartDeliverySpecification = async (deliveryModeId: string): Promise => {\n if (deliveryModeId.trim() === '') {\n return;\n }\n\n const { resources } = this.props;\n const checkoutState = this.props.data.checkout.result as ICheckoutState;\n const updateCartDeliverySpecificationInput = {\n deliveryModeId,\n shippingAddress: checkoutState.shippingAddress,\n channelDeliveryOptionConfig: this.retailMultiplePickUpOptionEnabled ? this.channelDeliveryOptionConfig : undefined\n };\n\n this.clearError();\n this.onPending();\n\n await checkoutState.checkoutCart\n .updateCartDeliverySpecification(updateCartDeliverySpecificationInput)\n .then(response => {\n if (response.status === 'FAILED') {\n const errorMessage = `${response.errorDetails?.LocalizedMessage}`;\n this.setError(StringExtensions.isNullOrEmpty(errorMessage) ? resources.genericErrorMessage : errorMessage);\n }\n\n this.onReady();\n this.props.moduleState.setIsCancellable(true);\n })\n .catch(() => {\n this.setError(resources.genericErrorMessage);\n });\n };\n\n @action\n private readonly updateCartLinesDeliverySpecification = async (): Promise => {\n if (!this.cartLineSelectedDeliveryOptions || !this.cartLineSelectedDeliveryOptions.length) {\n return;\n }\n const { resources } = this.props;\n let lineSpecs: LineDeliverySpecification[] = [];\n const checkoutCartLines = this.props.data.checkout.result?.checkoutCart.cart.CartLines;\n\n this.cartLineSelectedDeliveryOptions.forEach(group => {\n const address = checkoutCartLines?.find(cartLine => cartLine.LineId === group.cartLineId)?.ShippingAddress;\n const lineSpec = {\n LineId: group.cartLineId,\n DeliverySpecification: {\n DeliveryModeId: group.selectedDeliveryOption,\n DeliveryPreferenceTypeValue: DeliveryPreferenceType.ShipToAddress,\n DeliveryAddress: address\n }\n };\n lineSpecs.push(lineSpec);\n });\n\n try {\n const checkoutState = this.props.data.checkout.result as ICheckoutState;\n const response = await checkoutState.checkoutCart.updateCartLinesDeliverySpecification({\n lineDeliverySpecifications: lineSpecs\n });\n\n if (response.status === 'FAILED') {\n this.setError(resources.genericErrorMessage);\n } else {\n const cartLines = this.props.data.checkout.result?.checkoutCart.cart.CartLines;\n if (cartLines !== undefined && cartLines.length > 0) {\n cartLines?.forEach(cartLine => {\n const cartLineId = cartLine.LineId?.toString();\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n cartLine.RequestedDeliveryDate = existingCartLineSelectedDeliveryOption.requestDeliveryDate\n ? new Date(existingCartLineSelectedDeliveryOption.requestDeliveryDate)\n : undefined;\n }\n });\n await checkoutState.checkoutCart.updateCartLines({ updatedCartLinesObject: cartLines });\n }\n this.onReady();\n this.props.moduleState.setIsCancellable(true);\n }\n } catch {\n this.setError(resources.genericErrorMessage);\n }\n };\n\n private readonly getCartLinesForShipping = (): CartLine[] => {\n const { request } = this.props.context;\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\n\n return this.retailMultiplePickUpOptionEnabled\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\n ? cartLine.DeliveryMode !==\n this.channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.find(\n deliveryMode => deliveryMode === cartLine.DeliveryMode\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\n : cartLine\n )\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\n : cartLine\n );\n };\n\n private readonly getDeliveryOptions = async (shippingAddress: Address): Promise => {\n if (!this.props.data.checkout.result) {\n return;\n }\n\n const { context, resources, config } = this.props;\n const cartState = this.props.data.checkout.result?.checkoutCart;\n const cartId = (cartState.cart as Cart).Id;\n\n if (context) {\n this.isLoading = true;\n this.deliveryOptions = [];\n this.selectedItemId = '';\n this.clearError();\n\n try {\n let originalDeliveryMode: string = '';\n const shippingCartLines = this.getCartLinesForShipping();\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\n if (hasShippingDeliveryLines) {\n // First store the delivery mode, so that we can restore the shipping information.\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\n\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\n const cart = cartState.cart;\n await cartState.clearCartLinesDeliveryInformation({\n cart,\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\n });\n }\n\n // TODO: Check if we can move this getDeliveryOptions to checkout state\n let deliveryOptionFilter: FilterDeliveryModeOption;\n switch (config.filterDeliveryModeOption) {\n case filterDeliveryModeOption.none:\n deliveryOptionFilter = FilterDeliveryModeOption.None;\n break;\n case filterDeliveryModeOption.filterOutNonCarrierDeliveryMode:\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\n break;\n default:\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\n }\n const response = await getDeliveryOptionsAsync(\n {\n callerContext: context.actionContext,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context.actionContext)\n },\n cartId,\n shippingAddress,\n [],\n deliveryOptionFilter,\n true\n );\n\n if (hasShippingDeliveryLines) {\n await this.updateCartDeliverySpecification(originalDeliveryMode);\n }\n\n if (response && response.length > 0) {\n this.deliveryOptions = response;\n }\n } catch {\n this.setError(resources.genericErrorMessage);\n }\n\n if (this.deliveryOptions.length === 0) {\n this.setError(resources.deliveryOptionsNotFound);\n } else if (this.cartDeliveryMode && this.isDeliveryModeExists(this.cartDeliveryMode)) {\n this.selectedItemId = this.cartDeliveryMode;\n this.cartDeliveryMode = undefined;\n this.onReady();\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: true });\n\n if (!this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\n }\n } else {\n this.onUpdating();\n this.selectedItemId = this.deliveryOptions.length > 0 ? this.deliveryOptions[0].Code || '' : ''; // By default, select first delivery\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: !!this.isSelectDefaultOptionEnabled });\n }\n\n this.isLoading = false;\n }\n };\n\n private readonly getStoredDeliveryOptions = async (): Promise => {\n if (!this.props.data.checkout.result) {\n return;\n }\n\n const { context } = this.props;\n const cartState = this.props.data.checkout.result.checkoutCart;\n\n if (context) {\n this.isLoading = true;\n this.deliveryOptions = [];\n this.selectedItemId = '';\n this.clearError();\n\n let originalDeliveryMode: string = '';\n const shippingCartLines = this.getCartLinesForShipping();\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\n if (hasShippingDeliveryLines) {\n // First store the delivery mode, so that we can restore the shipping information.\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\n\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\n const cart = cartState.cart;\n await cartState.clearCartLinesDeliveryInformation({\n cart,\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\n });\n if (hasShippingDeliveryLines) {\n await this.updateCartDeliverySpecification(originalDeliveryMode);\n }\n }\n\n if (this.cartDeliveryMode) {\n this.selectedItemId = this.cartDeliveryMode;\n this.cartDeliveryMode = undefined;\n this.onReady();\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: true });\n\n if (!this.props.data.checkout.result.isPaymentVerificationRedirection) {\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\n }\n }\n\n this.isLoading = false;\n }\n };\n\n private readonly loadDeliveryOptions = async (): Promise => {\n const { checkout } = this.props.data;\n const { result } = checkout || {};\n const { shippingAddress, cartLinesWithShippingAddress, isPaymentVerificationRedirection, isExpressCheckoutApplied } = result || {};\n const { features } = this.props.context.actionContext.requestContext || {};\n\n if (!this.canShip() || !(shippingAddress || cartLinesWithShippingAddress)) {\n return;\n }\n\n const shouldSubmit = this.isSelectDefaultOptionEnabled || isExpressCheckoutApplied || this.isExpressPaymentAppliedInCartPage;\n\n if (features?.enable_checkout_race_condition_hot_fix) {\n if (isPaymentVerificationRedirection) {\n await this.getStoredDeliveryOptions();\n } else {\n if (!isPaymentVerificationRedirection || shouldSubmit) {\n await this.loadDeliveryOptionsBasedOnAddress(shippingAddress);\n }\n }\n } else {\n if (!isPaymentVerificationRedirection || shouldSubmit) {\n await this.loadDeliveryOptionsBasedOnAddress(shippingAddress);\n }\n\n if (isPaymentVerificationRedirection) {\n await this.getStoredDeliveryOptions();\n }\n }\n\n if (shouldSubmit) {\n await this.onSubmit();\n }\n };\n\n private readonly loadDeliveryOptionsBasedOnAddress = async (shippingAddress?: Address): Promise => {\n if (this.isMultipleAddressShippingEnabled) {\n if (shippingAddress) {\n await this.getGroupDeliveryOptions(shippingAddress);\n } else {\n await this.getGroupDeliveryOptions();\n }\n } else if (shippingAddress) {\n await this.getDeliveryOptions(shippingAddress);\n }\n };\n\n private readonly onDeliveryOptionChange = (event: React.ChangeEvent) => {\n const deliveryModeId = event.currentTarget.value;\n this.selectedItemId = deliveryModeId;\n };\n\n private readonly onCartLineDeliveryOptionChange = (\n event: React.ChangeEvent,\n cartLines: CartLine[],\n cartLineId?: string\n ) => {\n const deliveryModeId = event.currentTarget.value;\n if (cartLineId !== undefined) {\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = deliveryModeId;\n } else {\n this.cartLineSelectedDeliveryOptions.push({ cartLineId, selectedDeliveryOption: deliveryModeId });\n }\n return;\n }\n\n cartLines.forEach(cartLine => {\n if (!cartLine.LineId) {\n return;\n }\n const cartLineId = cartLine?.LineId.toString();\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = deliveryModeId;\n } else {\n this.cartLineSelectedDeliveryOptions.push({ cartLineId, selectedDeliveryOption: deliveryModeId });\n }\n });\n };\n\n private readonly onCartLineRequestDeliveryDateChange = (event: React.ChangeEvent, cartLines: CartLine[]) => {\n const deliveryDate = event.currentTarget.value;\n cartLines.forEach(cartLine => {\n if (!cartLine.LineId) {\n return;\n }\n const cartLineId = cartLine?.LineId.toString();\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.requestDeliveryDate = deliveryDate;\n } else {\n const deliveryModeId = cartLine.DeliveryMode !== undefined ? cartLine.DeliveryMode : '';\n this.cartLineSelectedDeliveryOptions.push({\n cartLineId,\n selectedDeliveryOption: deliveryModeId,\n requestDeliveryDate: deliveryDate\n });\n }\n });\n };\n\n private readonly onReady = () => {\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\n this.props.moduleState.onReady();\n }\n };\n\n private readonly onUpdating = () => {\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\n this.props.moduleState.onUpdating();\n }\n };\n\n private readonly onPending = () => {\n if (!this.isSelectDefaultOptionEnabled) {\n this.props.moduleState.onPending();\n }\n };\n\n private readonly getCheckoutCartLineGroupDeliveryOptions = (): React.ReactNode => {\n const { resources, config } = this.props;\n const shippingCartLines = this.getCartLinesForShipping();\n if (!ArrayExtensions.hasElements(shippingCartLines) || !ArrayExtensions.hasElements(this.groupDeliveryOptions)) {\n return null;\n }\n const imageSettings = this.getImageSettings(config.imageSettings);\n const requestDeliveryDateEnabled = config.enableRequestDeliveryDate === true && this.isMultipleAddressShippingEnabled === true;\n return (\n
\n {this.groupDeliveryOptions.map((groupDeliveryOption: DeliveryOptionsCartLineAddress, index) => {\n const cartLineId = groupDeliveryOption.cartLineIds !== undefined ? groupDeliveryOption.cartLineIds[0] : '';\n const cartLine1 = shippingCartLines.find(cartLine => cartLineId === cartLine?.LineId?.toString() ?? '');\n const cartLine = shippingCartLines.filter(\n cartLine => groupDeliveryOption && (cartLineId === cartLine?.LineId?.toString() ?? '')\n );\n if (groupDeliveryOption !== undefined) {\n const selectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLine[0].LineId\n )?.selectedDeliveryOption;\n return (\n
\n
\n \n
\n
\n
\n \n {resources.cartLineGroupDeliveryOptionsLabel}\n \n \n {resources.cartLineGroupDeliveryOptionsText}\n \n {requestDeliveryDateEnabled ? (\n \n ) : null}\n \n
\n {groupDeliveryOption.cartLineIds?.map(cartLineId => {\n const cartLine1 = shippingCartLines.find(\n cartLine => cartLineId === cartLine?.LineId?.toString() ?? ''\n );\n const selectedDeliveryOption1 = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption =>\n cartLineSelectedDeliveryOption.cartLineId === cartLine1?.LineId\n )?.selectedDeliveryOption;\n return (\n \n );\n })}\n
\n
\n );\n } else {\n return null;\n }\n })}\n
\n );\n };\n\n private readonly getGroupDeliveryOptions = async (shippingAddress?: Address): Promise => {\n if (!this.props.data.checkout.result) {\n return;\n }\n\n const { context, resources, config } = this.props;\n const cartState = this.props.data.checkout.result?.checkoutCart;\n\n if (context) {\n this.isLoading = true;\n this.deliveryOptions = [];\n this.selectedItemId = '';\n this.clearError();\n\n try {\n let originalDeliveryMode: string = '';\n const shippingCartLines = this.getCartLinesForShipping();\n const cartLinesForShipping: CartLine[] = [];\n if (ArrayExtensions.hasElements(shippingCartLines)) {\n const getGroupByDelivery = (items: CartLine[]) => groupBy(items, item => item.ShippingAddress?.RecordId);\n cartLinesForShipping.push(getGroupByDelivery(shippingCartLines));\n console.log('running delivery option for all lines');\n }\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\n const cart = cartState.cart;\n if (hasShippingDeliveryLines) {\n // First store the delivery mode, so that we can restore the shipping information.\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\n\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\n await cartState.clearCartLinesDeliveryInformation({\n cart,\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\n });\n }\n\n // TODO: Check if we can move this getDeliveryOptions to checkout state\n let deliveryOptionFilter: FilterDeliveryModeOption;\n switch (config.filterDeliveryModeOption) {\n case filterDeliveryModeOption.none:\n deliveryOptionFilter = FilterDeliveryModeOption.None;\n break;\n case filterDeliveryModeOption.filterOutNonCarrierDeliveryMode:\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\n break;\n default:\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\n }\n let response: DeliveryOptionsCartLineAddress[] = [];\n if (shippingAddress !== undefined && shippingAddress.RecordId !== undefined) {\n const checkoutState = this.props.data.checkout.result;\n const cartLineIds = shippingCartLines.map(cartLine => (cartLine.LineId !== undefined ? cartLine.LineId : ''));\n await getDeliveryOptionsAsync(\n {\n callerContext: context.actionContext,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context.actionContext)\n },\n cart.Id,\n shippingAddress,\n [],\n deliveryOptionFilter,\n true\n ).then(async result => {\n if (result && result.length > 0) {\n response.push({ deliveryOptions: result, hasError: false, error: undefined, cartLineIds: cartLineIds });\n shippingCartLines?.forEach(cartLine => {\n cartLine.ShippingAddress = shippingAddress;\n });\n await checkoutState.checkoutCart.updateCartLines({ updatedCartLinesObject: shippingCartLines });\n // console.log(updateLineDeliverySpecifications());\n } else {\n response.push({\n deliveryOptions: [],\n hasError: true,\n error: 'No delivery options available',\n cartLineIds: cartLineIds\n });\n }\n });\n } else {\n const inputData = new GetDeliveryOptionsForCartLineAddressInput(deliveryOptionFilter, shippingCartLines);\n response = await getDeliveryOptionsForCartLineAddress(inputData, context.actionContext);\n }\n if (response && response.length > 0) {\n this.groupDeliveryOptions = response;\n console.log('groupDeliveryOptions');\n }\n if (this.groupDeliveryOptions.length === 0) {\n this.setError(resources.deliveryOptionsNotFound);\n } else if (this.cartLinesDeliveryOptions.length !== 0) {\n this.cartLineSelectedDeliveryOptions = this.cartLinesDeliveryOptions;\n this.cartLinesDeliveryOptions = [];\n this.onReady();\n } else {\n this.onUpdating();\n this.groupDeliveryOptions.forEach(group => {\n const selectedDeliveryOption =\n group.deliveryOptions.length > 0 && group.deliveryOptions[0].Code !== undefined\n ? group.deliveryOptions[0].Code\n : '';\n group.cartLineIds?.forEach(cartLineId => {\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineDeliveryOption => cartLineDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = selectedDeliveryOption;\n } else {\n this.cartLineSelectedDeliveryOptions.push({\n cartLineId,\n selectedDeliveryOption\n });\n }\n });\n });\n }\n\n if (hasShippingDeliveryLines) {\n await this.updateCartDeliverySpecification(originalDeliveryMode);\n }\n } catch {\n this.setError(resources.genericErrorMessage);\n }\n }\n this.isLoading = false;\n };\n\n /**\n * Gets the image settings.\n * @param imageSettings - Image settings.\n * @returns IImageSettings.\n */\n private readonly getImageSettings = (imageSettings: IImageSettings | undefined): IImageSettings => {\n return (\n imageSettings || {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n sm: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true\n }\n );\n };\n\n private readonly getMultipleDeliveryOptionSelected = (): ICheckoutShippingCartLineInfo[] => {\n const products = this.props.data.products?.result;\n const cartLineImages: ICheckoutShippingCartLineInfo[] = [];\n\n this.cartLineSelectedDeliveryOptions.map(cartLineDeliveryOption => {\n const cartLine = this.props.data.checkout.result?.checkoutCart.cart.CartLines?.find(\n (cartLine: CartLine) => cartLine.LineId === cartLineDeliveryOption.cartLineId\n );\n if (cartLine) {\n const product = products?.find((product: SimpleProduct) => product.RecordId === cartLine.ProductId);\n const imageProps: IImageProps = {\n requestContext: this.props.context.actionContext.requestContext,\n className: 'ms-checkout-shipping-address__group-images-lines-line-image',\n altText: product?.Name,\n src: product?.PrimaryImageUrl ?? '',\n fallBackSrc: getFallbackImageUrl(\n product?.ItemId,\n this.props.context.actionContext.requestContext.apiSettings,\n this.props.context.request.app?.config?.OmniChannelMedia\n ),\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: this.props.config.imageSettings ?? defaultImageSettings,\n loadFailureBehavior: 'empty'\n };\n let deliveryModeDesc = this.deliveryOptions.find(\n deliveryOption => deliveryOption.Code === cartLineDeliveryOption.selectedDeliveryOption\n )?.Description;\n if (StringExtensions.isNullOrEmpty(deliveryModeDesc)) {\n const group = this.groupDeliveryOptions.find(group => group.cartLineIds?.includes(cartLineDeliveryOption.cartLineId));\n const deliveryOption = group?.deliveryOptions.find(\n option => option.Code === cartLineDeliveryOption.selectedDeliveryOption\n );\n deliveryModeDesc = deliveryOption?.Description;\n }\n const cartLineDisplay = {\n lineId: cartLine.LineId,\n imageProps: imageProps,\n deliveryMethodDesc: deliveryModeDesc,\n requestDeliveryDate: cartLineDeliveryOption.requestDeliveryDate\n };\n cartLineImages.push(cartLineDisplay);\n }\n });\n\n return cartLineImages;\n };\n}\n\nexport default CheckoutDeliveryOptions;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { AsyncResultStatus, Cart, CartLineValidationResults } from '@msdyn365-commerce/retail-proxy';\nimport {\n updateLineDeliverySpecificationsAsync,\n validateForCheckoutAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport {\n Address,\n DeliveryPreferenceType,\n LineDeliverySpecification,\n SimpleProduct,\n TokenizedPaymentCard\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateManager, IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport {\n ArrayExtensions,\n getAvailabilitiesForCartLineItems,\n IProductInventoryInformation,\n ProductAvailabilitiesForCartLineItems,\n validateCartLinesInventory\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n TelemetryConstant,\n Waiting\n} from '@msdyn365-commerce-modules/utilities';\nimport { ErrorCode, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classnames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\nimport { action, computed, get, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutData } from './checkout.data';\nimport { ICheckoutHeadingData, ICheckoutProps } from './checkout.props.autogenerated';\nimport AlertComponent from './components/alert';\nimport { getInvoicePaymentSummary, IInvoicePaymentSummary } from './components/get-invoice-payment-summary';\nimport { getLineItems, ILineItems } from './components/get-line-items';\nimport { getOrderSummary, IOrderSummary } from './components/get-order-summary';\nimport GuidedFormComponent from './components/guided-form';\nimport PlaceOrderButtonComponent from './components/place-order-button';\nimport placeOrder from './methods/place-order';\nimport { focusOnCheckoutError, setCheckoutErrors } from '../../checkout-errors';\nimport { AsyncResultStatusCode, IExpressPaymentDetails } from '../../common';\n\nexport * from './components/get-line-items';\nexport * from './components/get-order-summary';\n\n/**\n * Device type.\n */\ntype DeviceType = 'Mobile';\n\n/**\n * The Checkout state.\n */\ninterface ICheckoutState {\n errorMessage: string;\n isValidationPassed: boolean;\n isPlaceOrderLoading?: boolean;\n isPlaceOrderClicked?: boolean;\n}\n\n/**\n * Known action error failure states\n */\nexport const enum ActionErrorStatus {\n Timeout = 'Timeout',\n HookTimeout = 'Hook Timeout',\n ServiceUnavailable = 'Service Unavailable'\n}\n\n/**\n * The Checkout view props.\n * @extends ICheckoutProps\n */\nexport interface ICheckoutViewProps extends ICheckoutProps {\n className: string;\n canShow?: boolean;\n isEmptyCart?: boolean;\n isConsentGiven?: boolean;\n hasError?: boolean;\n isPaymentVerificationRedirection?: boolean;\n shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\n cartStatus?: string;\n isMobile?: boolean;\n isEditorialMode?: boolean;\n backToShoppingUrl?: string;\n editCartLink?: string;\n hasSalesOrder: boolean;\n hasInvoiceLine?: boolean;\n\n moduleState?: IModuleStateManager;\n telemetryContent?: ITelemetryContent;\n checkoutGuidedFormHasError?: boolean;\n\n checkoutProps: IModuleProps;\n headerProps: INodeProps;\n bodyProps: INodeProps;\n mainProps: INodeProps;\n mainControlProps: INodeProps;\n sideProps: INodeProps;\n sideControlFirstProps: INodeProps;\n sideControlSecondProps: INodeProps;\n termsAndConditionsProps: INodeProps;\n\n guidedForm?: React.ReactNode;\n title?: React.ReactNode;\n loading?: React.ReactNode;\n alert?: React.ReactNode;\n orderSummary?: IOrderSummary;\n invoicePaymentSummary?: IInvoicePaymentSummary;\n lineItems?: ILineItems;\n placeOrderButton?: React.ReactNode;\n termsAndConditions?: React.ReactNode;\n keepShoppingButton?: React.ReactNode;\n orderConfirmation?: React.ReactNode;\n\n checkoutExpressPaymentContainer?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n}\n\n/**\n * The checkout module props interface.\n */\nexport interface ICheckoutModuleProps extends ICheckoutProps, IModuleStateProps {}\n\nconst expressPaymentSectionClassName = 'msc-express-payment-container';\n\n/**\n *\n * CheckoutContainer component.\n * @extends {React.Component}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass Checkout extends React.PureComponent {\n @computed get cartStatus(): Msdyn365.AsyncResultStatus {\n return this.props.data.checkout?.status;\n }\n\n @computed get isEmptyCart(): boolean {\n if (this.isEditorialMode) {\n // Editorial mode: Ignore empty cart\n return false;\n }\n const cart = this.props.data.checkout?.result?.checkoutCart?.cart;\n return this.cartStatus === 'SUCCESS' && !!cart && !isEmpty(cart) && (!cart.CartLines || cart.CartLines.length === 0);\n }\n\n @computed get hasError(): boolean {\n const cart = this.props.data.checkout?.result?.checkoutCart?.cart;\n return this.cartStatus === 'FAILED' || (this.cartStatus === 'SUCCESS' && (!cart || isEmpty(cart)));\n }\n\n @computed get isEditorialMode(): boolean {\n return this.props.context.request.params.isEditor;\n }\n\n @computed get canPlaceOrder(): boolean {\n const isTermsAndConditionAccepted = this.props.data.checkout.result && this.props.data.checkout.result?.isTermsAndConditionAccepted;\n\n const shouldEnableSinglePaymentAuthorizationCheckout =\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout ?? false;\n\n const disableForOBO = Msdyn365.isOboRequest(this.props.context.request) && !this.isPaidOffByCustomerAccount;\n\n // If isTermsAndConditionAccepted is undefined means TermsAndCondition module is not added to page and we should able to place order.\n return (\n this.props.moduleState.isReady &&\n (isTermsAndConditionAccepted === undefined || isTermsAndConditionAccepted || shouldEnableSinglePaymentAuthorizationCheckout) &&\n (this.state.errorMessage === '' ||\n shouldEnableSinglePaymentAuthorizationCheckout ||\n (this.props.data.checkout.result?.isPaymentVerificationRedirection ?? false)) &&\n !(shouldEnableSinglePaymentAuthorizationCheckout && disableForOBO)\n );\n }\n\n @computed get isPaidOffByCustomerAccount(): boolean {\n const amountDue = this.props.data.checkout.result?.checkoutCart.cart.TotalAmount ?? 0;\n const customerAccountAmount = this.props.data.checkout.result?.customerAccountAmount ?? 0;\n\n return customerAccountAmount === amountDue;\n }\n\n @computed get isCartReady(): boolean {\n return (\n !!this.props.data.checkout.result?.checkoutCart?.cart &&\n this.props.data.customerInformation.status !== 'LOADING' &&\n this.props.data.featureState.status !== 'LOADING'\n );\n }\n\n public get expressPaymentDetailsFromCartPage(): IExpressPaymentDetails | null {\n const properties =\n this.props.data.checkout?.result?.checkoutCart?.cart?.ExtensionProperties?.find(\n property => property.Key === 'expressPaymentDetails'\n )?.Value?.StringValue ?? '';\n return properties ? (JSON.parse(properties) as IExpressPaymentDetails) : null;\n }\n\n public state: ICheckoutState = {\n errorMessage: '',\n isValidationPassed: false,\n isPlaceOrderLoading: false,\n isPlaceOrderClicked: false\n };\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n public componentDidMount(): void {\n const {\n resources: { genericErrorMessage }\n } = this.props;\n\n when(\n () => this.asyncResultStatus !== AsyncResultStatusCode.LOADING,\n async () => {\n if (this.expressPaymentDetailsFromCartPage) {\n const {\n email,\n tenderLine,\n tokenizedPaymentCard,\n paymentTenderType: paymentTenderTypeFromCartPage,\n isExpressCheckoutAppliedInCartPage,\n isExpressAddressAppliedInCartPage,\n cardPaymentAcceptResult,\n address\n } = this.expressPaymentDetailsFromCartPage;\n\n this.props.data.checkout.result?.updateExpressCheckoutDetails({\n newEmailAddressFromExpressCheckout: email ?? '',\n newTenderLine: tenderLine,\n newTokenizedPaymentCard: tokenizedPaymentCard,\n newPaymentTenderType: paymentTenderTypeFromCartPage,\n newIsExpressCheckoutApplied: isExpressCheckoutAppliedInCartPage,\n newIsExpressAddressApplied: isExpressAddressAppliedInCartPage,\n newCardPaymentAcceptResult: cardPaymentAcceptResult\n });\n\n if (isExpressAddressAppliedInCartPage && address) {\n this.props.data.checkout.result?.updateBillingAddressFromExpressCheckout({\n newBillingAddressFromExpressCheckout: address\n });\n this.props.data.checkout.result?.updateShippingAddressFromExpressCheckout({\n newShippingAddressFromExpressCheckout: address\n });\n } else {\n void this._saveShippingAndBillingAddress(tokenizedPaymentCard);\n }\n\n this.props.data.checkout.result?.checkoutCart.updateExtensionProperties({\n newExtensionProperties: [\n {\n Key: 'expressPaymentDetails',\n Value: { StringValue: '' }\n }\n ]\n });\n }\n }\n );\n\n when(\n () => this.hasError,\n () => {\n this.setState({\n errorMessage: genericErrorMessage\n });\n this.props.context.telemetry.error('Failed to get cart');\n }\n );\n\n when(\n () => {\n return this.isEmptyCart;\n },\n () => {\n this.redirectToCartPage('Cart is empty, but no editCartLink found');\n }\n );\n\n when(\n () => this.isCartReady,\n () => {\n this.validateForCheckout();\n }\n );\n\n reaction(\n () => this.props.moduleState.isReady,\n () => {\n this.onContainerReady();\n }\n );\n\n // Reaction to call place order when isPaymentSectionContainerReady is true for new checkout flow.\n reaction(\n () => this.props.data.checkout.result?.isPaymentSectionContainerReady,\n async isReady => {\n if (\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout &&\n isReady &&\n !this.props.data.checkout.result?.redirectAdditionalContext &&\n (!this.props.data.checkout.result?.isExpressCheckoutApplied ||\n this.props.data.checkout.result?.isPaymentVerificationRedirection)\n ) {\n if (!this.state.isPlaceOrderLoading) {\n this.setState({ isPlaceOrderLoading: true });\n }\n\n this.props.telemetry.information(\n 'Call onPlaceOrder as reaction when isPaymentSectionContainerReady is updated for single auth payment.'\n );\n\n await this.onPlaceOrder();\n\n // If 3D authentication redirection, don't update isPlaceOrderLoading\n if (!this.props.data.checkout.result.isPaymentVerificationRequired) {\n this.setState({ isPlaceOrderLoading: false });\n }\n }\n }\n );\n\n // Reaction to enable place order button when isPaymentSectionContainerHasError is true for new checkout flow.\n reaction(\n () => this.props.data.checkout.result?.isPaymentSectionContainerHasError,\n hasError => {\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout && hasError) {\n this.setState({ isPlaceOrderLoading: false });\n\n this.props.telemetry.information(\n 'Enable place order button as reaction when isPaymentSectionContainerHasError is updated to true for single auth payment.'\n );\n } else {\n this.props.telemetry.information(\n 'No reaction when isPaymentSectionContainerHasError is updated to false or not single auth payment.'\n );\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isBillingAddressHasError,\n hasError => {\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout && hasError) {\n this.setState({ isPlaceOrderLoading: false });\n\n this.props.data.checkout.result?.updateIsBillingAddressHasError({ newIsBillingAddressHasError: false });\n\n this.props.telemetry.information(\n 'Enable place order button as reaction when isBillingAddressHasError is updated to true for single auth payment.'\n );\n } else {\n this.props.telemetry.information(\n 'No reaction when isBillingAddressHasError is updated to false or not single auth payment.'\n );\n }\n }\n );\n\n // Reaction to enable place order button when redirection is true for new checkout flow.\n reaction(\n () => this.canPlaceOrder,\n async () => {\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout && this.canPlaceOrder) {\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n await this.props.data.checkout.result.updateIsPlaceOrderEnabledInRedirection({\n newIsPlaceOrderEnabledInRedirection: true\n });\n\n this.props.telemetry.information(\n 'Set isPaymentVerificationRedirection to true as reaction when canPlaceOrder is updated to true for single auth payment.'\n );\n } else {\n this.props.telemetry.information(\n 'No reaction when canPlaceOrder is updated to true but isPaymentVerificationRedirection is false for single auth payment.'\n );\n this.props.telemetry.information(\n `isOBORequest is ${Msdyn365.isOboRequest(this.props.context.request)} and canPlaceOrder is ${\n this.canPlaceOrder\n }.`\n );\n }\n } else {\n this.props.telemetry.information('No reaction when canPlaceOrder is updated to false or not single auth payment.');\n }\n }\n );\n\n // Reaction to update the error message when there is a checkout error.\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n const checkoutErrorLocation: boolean = checkoutError?.errorLocation === ErrorLocation.Checkout;\n // If there is an Error in CheckoutPaymentInstrument module, checkout error location will be updated.\n const checkoutPaymentErrorLocation: boolean =\n checkoutError?.errorCode === ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment\n ? checkoutError.errorLocation === ErrorLocation.CheckoutPaymentInstrument\n : checkoutErrorLocation;\n if (\n this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging &&\n checkoutError &&\n checkoutError.errorMessage &&\n (checkoutErrorLocation ? checkoutErrorLocation : checkoutPaymentErrorLocation)\n ) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n }\n\n public componentDidUpdate(): void {\n if (\n this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging &&\n this.props.data.checkout.result?.shouldFocusOnCheckoutError &&\n this.state.errorMessage\n ) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n\n // eslint-disable-next-line complexity -- ignore the complexity.\n public render(): JSX.Element {\n const {\n moduleState,\n config: { className, checkoutHeading, disableGuidedCheckoutFlow },\n resources,\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const { errorMessage } = this.state;\n const { backToShopping, placeOrderText, confirmPaymentText, cookieConsentRequiredMessage, genericErrorMessage } = resources;\n const checkoutClass = classnames('ms-checkout', className);\n const allCheckoutInformation = this.getSlotItems('checkoutInformation');\n\n // @ts-expect-error - check the key of slot\n const checkoutInformation = allCheckoutInformation?.filter(info => !info?.key.includes('express-payment'));\n\n // @ts-expect-error - check the key of slot\n const checkoutExpressPaymentContainer = allCheckoutInformation?.find(info => info?.key.includes('express-payment'));\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n const isMobile =\n this.props.context.request &&\n this.props.context.request.device &&\n (this.props.context.request.device.Type as DeviceType) === 'Mobile';\n\n const backToShoppingUrl = Msdyn365.getUrlSync('home', this.props.context.actionContext) || '';\n const editCartLink = Msdyn365.getUrlSync('cart', this.props.context.actionContext) || '';\n\n const termsAndConditions =\n this.props.slots.termsAndConditions && this.props.slots.termsAndConditions.length > 0 && this.props.slots.termsAndConditions[0];\n\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.BackToShopping);\n const backToShoppingAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n\n const hasInvoiceLine = this.props.data.checkout && this.props.data.checkout.result?.checkoutCart.hasInvoiceLine;\n const checkoutBtnText = hasInvoiceLine ? confirmPaymentText : placeOrderText;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\n const shouldEnableSinglePaymentAuthorizationCheckout =\n this.props.data.checkout?.result?.shouldEnableSinglePaymentAuthorizationCheckout ?? false;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const isExpressCheckoutApplied = this.props.data.checkout?.result?.isExpressCheckoutApplied ?? false;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const hasShippingAddress = this.props.data.checkout?.result?.hasShippingAddress;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const hasCartDeliveryMode = this.props.data.checkout?.result?.hasCartDeliveryMode;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const hasGuestCheckoutEmail = this.props.data.checkout?.result?.hasGuestCheckoutEmail;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const isTermsAndConditionAccepted = this.props.data.checkout?.result?.isTermsAndConditionAccepted;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const isPaymentVerificationRedirection = this.props.data.checkout?.result?.isPaymentVerificationRedirection ?? false;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const shouldEnableCheckoutErrorDisplayMessaging =\n this.props.data.checkout?.result?.shouldEnableCheckoutErrorDisplayMessaging ?? false;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\n const shouldFocusOnCheckoutError = this.props.data.checkout?.result?.shouldFocusOnCheckoutError;\n\n let hasExpressPaymentContainer = false;\n\n if (\n typeof window !== 'undefined' &&\n (document?.getElementsByClassName(expressPaymentSectionClassName) as HTMLCollectionOf)[0]?.style.display === ''\n ) {\n hasExpressPaymentContainer = true;\n }\n\n let viewProps: ICheckoutViewProps = {\n ...this.props,\n className: checkoutClass,\n checkoutErrorRef: this.checkoutErrorRef,\n isEmptyCart: this.isEmptyCart,\n isConsentGiven,\n hasError: this.hasError,\n isPaymentVerificationRedirection: this.props.data.checkout?.result?.isPaymentVerificationRedirection,\n shouldEnableSinglePaymentAuthorizationCheckout,\n hasSalesOrder:\n this.props.data.checkout &&\n this.props.data.checkout.result !== undefined &&\n this.props.data.checkout.result.salesOrder !== undefined,\n hasInvoiceLine,\n cartStatus: this.cartStatus,\n isMobile,\n backToShoppingUrl,\n editCartLink,\n isEditorialMode: this.isEditorialMode,\n orderConfirmation:\n this.props.slots.orderConfirmation && this.props.slots.orderConfirmation.length > 0\n ? this.props.slots.orderConfirmation[0]\n : undefined,\n checkoutProps: { moduleProps: this.props, className: checkoutClass },\n headerProps: { className: 'ms-checkout__head' },\n bodyProps: { className: 'ms-checkout__body' },\n mainProps: { className: 'ms-checkout__main' },\n mainControlProps: { className: 'ms-checkout__main-control' },\n sideProps: { className: hasExpressPaymentContainer ? 'ms-checkout__has-express-side' : 'ms-checkout__side' },\n sideControlFirstProps: { className: 'ms-checkout__side-control-first' },\n sideControlSecondProps: { className: 'ms-checkout__side-control-second' },\n termsAndConditionsProps: { className: 'ms-checkout__terms-and-conditions' },\n title: checkoutHeading && this.renderMsdyn365Text(checkoutHeading),\n checkoutExpressPaymentContainer\n };\n\n if (!isConsentGiven && isAuthenticated) {\n viewProps = {\n ...viewProps,\n alert: \n };\n } else if (this.isLoading()) {\n viewProps = {\n ...viewProps,\n loading: \n };\n } else if (this.hasError) {\n viewProps = {\n ...viewProps,\n alert: \n };\n } else {\n viewProps = {\n ...viewProps,\n alert: errorMessage && ,\n canShow: true,\n guidedForm: checkoutInformation ? (\n \n ) : (\n undefined\n ),\n orderSummary: getOrderSummary(this.props),\n invoicePaymentSummary: getInvoicePaymentSummary(this.props),\n lineItems: hasInvoiceLine ? undefined : getLineItems(this.props, this.telemetryContent),\n placeOrderButton: (\n \n ),\n termsAndConditions,\n keepShoppingButton: backToShoppingUrl && (\n \n {backToShopping}\n \n ),\n moduleState,\n telemetryContent: this.telemetryContent,\n checkoutGuidedFormHasError: !!errorMessage\n };\n }\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n @computed public get asyncResultStatus(): AsyncResultStatus | undefined {\n const isLoading = Object.values(this.props.data).some(data => get(data, 'status') === AsyncResultStatusCode.LOADING);\n if (isLoading) {\n return AsyncResultStatusCode.LOADING;\n }\n\n const isSuccess = Object.values(this.props.data).every(data => get(data, 'status') === AsyncResultStatusCode.SUCCESS);\n if (isSuccess) {\n return AsyncResultStatusCode.SUCCESS;\n }\n\n const isFailed = Object.values(this.props.data).some(data => get(data, 'status') === AsyncResultStatusCode.FAILED);\n if (isFailed) {\n return AsyncResultStatusCode.FAILED;\n }\n\n return undefined;\n }\n\n /**\n * Renders heading.\n * @param checkoutHeading - The checkout heading.\n * @returns React node.\n */\n public renderMsdyn365Text(checkoutHeading: ICheckoutHeadingData): React.ReactNode {\n return (\n \n );\n }\n\n /**\n * Event handler for heading change event.\n * @param event - The content change event in heading element.\n * @returns The new heading value.\n */\n public handleCheckoutHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.checkoutHeading!.text = event.target.value);\n\n /**\n * Checks if cart is loading.\n * @returns True if is loading, false otherwise.\n */\n private readonly isLoading = (): boolean => {\n return !this.cartStatus || this.cartStatus === 'LOADING' || this.isEmptyCart || !this.state.isValidationPassed;\n };\n\n /**\n * Get slot items.\n * @param key - The slot key.\n * @returns React node or undefined.\n */\n private readonly getSlotItems = (key: string): React.ReactNode[] | undefined => {\n const { slots } = this.props;\n return slots && slots[key] && slots[key].length > 0 ? slots[key] : undefined;\n };\n\n /**\n * Trigger the payment section container submit when placing order.\n */\n private readonly triggerPaymentWithPlaceOrder = async (): Promise => {\n this.setState({ isPlaceOrderLoading: true });\n\n await this.props.data.checkout.result?.updateShouldTriggerPaymentWithPlaceOrder({\n newShouldTriggerPaymentWithPlaceOrder: !this.props.data.checkout.result.shouldTriggerPaymentWithPlaceOrder\n });\n };\n\n /**\n * On place order.\n * @returns Void promise.\n */\n private readonly onPlaceOrder = async (): Promise => {\n const {\n resources: { checkoutOutOfStockErrorMessage },\n context: {\n actionContext,\n app: {\n config: { enableStockCheck = false }\n }\n },\n slots: { orderConfirmation },\n data: { checkout, products }\n } = this.props;\n\n this.props.telemetry.information('Checkout onPlaceOrder is called.');\n this.setState({ isPlaceOrderClicked: true });\n\n // If hasInvoiceLine is true, no inventory check\n if (\n !this.props.data.checkout.result?.checkoutCart.hasInvoiceLine &&\n enableStockCheck &&\n (await this.isOverMaxQuantity((await checkout).checkoutCart.cart, await products))\n ) {\n this.setState({\n errorMessage: checkoutOutOfStockErrorMessage\n });\n this.props.context.telemetry.error(checkoutOutOfStockErrorMessage);\n } else {\n const hasOrderConfirmation = orderConfirmation && orderConfirmation.length > 0;\n\n const updatedCartVersion = await this.updateCartLineEmailAddress(this.props.data.checkout.result?.guestCheckoutEmail || '');\n\n await placeOrder(\n actionContext,\n this.props.data.checkout.result,\n this.props.data.products.result,\n !hasOrderConfirmation,\n updatedCartVersion,\n this.props.data.checkout.result?.isPaymentVerificationRedirection\n ).catch(error => {\n this.handleCheckoutError(error);\n });\n\n await checkout.result?.updateIsPaymentSectionContainerReady({ newIsPaymentSectionContainerReady: false });\n }\n };\n\n /**\n * Update receipt email address for electronic cart line.\n * @param newGuestCheckoutEmail - The guest checkout email.\n * @returns The updated cart version.\n */\n private readonly updateCartLineEmailAddress = async (newGuestCheckoutEmail: string): Promise => {\n const emailDeliveryModeCode = this.props.context.request.channel?.EmailDeliveryModeCode;\n\n let electronicDeliveryInvoiceAddress: Address;\n\n const hasShippingAddress = this.props.data.checkout?.result?.hasShippingAddress;\n\n if (hasShippingAddress && this.props.config.useShippingAddressAsElectronicDeliveryInvoiceAddress) {\n electronicDeliveryInvoiceAddress = this.props.data.checkout?.result?.shippingAddress as Address;\n }\n\n const emailDeliveryCartLines = this.props.data.checkout.result?.checkoutCart.cart.CartLines?.filter(\n cartLine => cartLine.DeliveryMode && cartLine.DeliveryMode !== '' && cartLine.DeliveryMode === emailDeliveryModeCode\n );\n\n let updatedCartVersion: number | undefined;\n if (emailDeliveryCartLines && emailDeliveryCartLines.length > 0) {\n const lineDeliverySpecifications: LineDeliverySpecification[] = emailDeliveryCartLines.map(line => {\n return {\n LineId: line.LineId,\n DeliverySpecification: {\n DeliveryModeId: emailDeliveryModeCode,\n DeliveryPreferenceTypeValue: DeliveryPreferenceType.ElectronicDelivery,\n ElectronicDeliveryEmailAddress: newGuestCheckoutEmail,\n DeliveryAddress: hasShippingAddress ? electronicDeliveryInvoiceAddress : undefined\n }\n };\n });\n\n await updateLineDeliverySpecificationsAsync(\n { callerContext: this.props.context.actionContext },\n (await this.props.data.checkout).checkoutCart.cart.Id,\n lineDeliverySpecifications\n )\n .then(updatedCart => {\n updatedCartVersion = updatedCart.Version;\n })\n .catch(error => {\n this.props.context.actionContext.telemetry.exception(error);\n throw new Error('[updateLineDeliverySpecificationsAsync] Unable to update electronic delivery email address in cart');\n });\n }\n\n return updatedCartVersion;\n };\n\n /**\n * Return true if any product in the cart is over its max quantity.\n * @param cart -- The checkout cart.\n * @param products -- The checkout products.\n * @returns - Is any product in the cart is over max quantity.\n */\n private readonly isOverMaxQuantity = async (cart: Cart, products: SimpleProduct[]): Promise => {\n let isOverMaxQuantity = false;\n const emailDeliveryModeCode = this.props.context.request.channel?.EmailDeliveryModeCode;\n\n await getAvailabilitiesForCartLineItems(\n new ProductAvailabilitiesForCartLineItems(this.props.context.actionContext.requestContext.apiSettings),\n this.props.context.actionContext\n )\n .then(productInventoryInformation => {\n const productsThatShouldValidateInventory: IProductInventoryInformation[] = [];\n\n cart.CartLines?.map(cartline => {\n const cartlineProduct = products.find(product => product.RecordId === cartline.ProductId);\n\n // If product is non-stocked or cartline is electronic delivery, then no inventory check\n const isStockedItem = cartlineProduct?.Behavior?.IsStockedProduct;\n const isEmailDelivery =\n cartline.DeliveryMode && cartline.DeliveryMode !== '' ? cartline.DeliveryMode === emailDeliveryModeCode : false;\n const shouldSkipInventoryCheck = !isStockedItem || isEmailDelivery;\n if (!shouldSkipInventoryCheck && ArrayExtensions.hasElements(productInventoryInformation)) {\n const foundProductAvailability = productInventoryInformation.find(productInventory => {\n return productInventory.ProductAvailableQuantity?.ProductId! === cartline.ProductId;\n });\n if (foundProductAvailability) {\n productsThatShouldValidateInventory.push(foundProductAvailability);\n }\n }\n });\n\n const cartLinesInventoryValidation = validateCartLinesInventory(\n cart.CartLines ?? [],\n productsThatShouldValidateInventory,\n this.props.context.actionContext,\n products,\n emailDeliveryModeCode\n );\n\n // If is invalid then exceeds the available quantity\n isOverMaxQuantity = !cartLinesInventoryValidation.isValid;\n return isOverMaxQuantity;\n })\n .catch(error => {\n this.props.context.actionContext.telemetry.exception(error);\n throw new Error('[getAvailabilitiesForCartLineItems] Unable to get availabilities for products in checkout cart');\n });\n\n return isOverMaxQuantity;\n };\n\n /**\n * Gets active child in module state.\n * @returns - The module state manager collection.\n */\n private readonly getActiveChildModuleStates = (): IModuleStateManager[] => {\n const { childIds, getModule } = this.props.moduleState;\n return childIds\n .map(getModule)\n .filter((state): state is IModuleStateManager => !!state && !state.isDisabled && state.hasModuleState);\n };\n\n /**\n * On container ready.\n */\n private readonly onContainerReady = (): void => {\n this.props.telemetry.information('Checkout onContainerReady is called.');\n\n this.getActiveChildModuleStates().forEach(state => {\n state.isReady && state.onContainerReady && state.onContainerReady();\n });\n };\n\n /**\n * Redirects to cart page.\n * @param notFoundEditCartLinkMessage - Not found edit cart link message.\n */\n private readonly redirectToCartPage = (notFoundEditCartLinkMessage: string): void => {\n const editCartLink = Msdyn365.getUrlSync('cart', this.props.context.actionContext) || '';\n if (window && editCartLink) {\n window.location.assign(editCartLink);\n } else {\n this.setState({\n errorMessage: this.props.resources.genericErrorMessage\n });\n this.props.context.telemetry.error(notFoundEditCartLinkMessage);\n }\n };\n\n /**\n * Validates for checkout.\n * @param retry - Retry flag.\n */\n private readonly validateForCheckout = (retry: boolean = true): void => {\n const notFoundEditCartLinkMessage = \"Cart doesn't pass validation, but no editCartLink found\";\n const cart = this.props.data.checkout.result!.checkoutCart.cart;\n const { Id, Version } = cart;\n if (this._shouldValidateQuantityLimits()) {\n if (Version && Id) {\n validateForCheckoutAsync({ callerContext: this.props.context.actionContext, bypassCache: 'none' }, Id, Version)\n .then((result: CartLineValidationResults) => {\n if (result.ValidationFailuresByCartLines?.length !== 0) {\n this.redirectToCartPage(notFoundEditCartLinkMessage);\n } else {\n this.setState({ isValidationPassed: true });\n }\n })\n .catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to validate Cart');\n if (retry && error.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\n const cartState = this.props.data.checkout.result?.checkoutCart;\n cartState\n ?.refreshCart({})\n .then(() => {\n this.validateForCheckout(false);\n })\n .catch((refreshError: Error) => {\n this.props.telemetry.warning(refreshError.message);\n this.props.telemetry.debug('Unable to refresh Cart');\n });\n } else {\n this.redirectToCartPage(notFoundEditCartLinkMessage);\n }\n });\n } else {\n this.redirectToCartPage(notFoundEditCartLinkMessage);\n }\n } else {\n this.setState({ isValidationPassed: true });\n }\n };\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n errorMessage\n });\n };\n\n private readonly _shouldValidateQuantityLimits = (): boolean => {\n const featureStatuses = this.props.data.featureState.result;\n const isECommerceQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature'\n )?.IsEnabled || false;\n\n if (isECommerceQuantityLimitsFeatureEnabledInHq) {\n return true;\n }\n\n const isOrderQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature')\n ?.IsEnabled || false;\n\n if (!isOrderQuantityLimitsFeatureEnabledInHq) {\n return false;\n }\n\n const useSiteBuilderSettings = featureStatuses?.find(\n featureState => featureState.Name === 'RevertToSiteBuilderOrderQuantityLimitsSettings'\n )?.IsEnabled;\n\n if (useSiteBuilderSettings) {\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\n const customerInfo = this.props.data.customerInformation.result;\n const isB2BSite = isChannelTypeB2B(this.props.context.actionContext.requestContext);\n\n const isOrderQuantityLimitsFeatureEnabledInSiteSettings =\n defaultOrderQuantityLimitsFeatureConfig === 'all' ||\n (customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && isB2BSite) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !isB2BSite)));\n\n return isOrderQuantityLimitsFeatureEnabledInSiteSettings ?? false;\n } else {\n const cartConfiguration = this.props.data.cartConfiguration?.result;\n return !(cartConfiguration?.IgnoreOrderSettings ?? false);\n }\n };\n\n /**\n * Save the address as Shipping and Billing address.\n * @param tokenizedPaymentCard - Tokenized payment card.\n */\n private readonly _saveShippingAndBillingAddress = async (tokenizedPaymentCard?: TokenizedPaymentCard): Promise => {\n const checkoutState = this.props.data.checkout.result;\n\n // For Paypal, the address returned in TokenizedPaymentCard will be used as both shipping and billing address.\n if (checkoutState && tokenizedPaymentCard && tokenizedPaymentCard.Zip) {\n const address: Address = this._getAddressFromTokenizedPaymentCard(tokenizedPaymentCard);\n\n await checkoutState.updateBillingAddressFromExpressCheckout({ newBillingAddressFromExpressCheckout: address });\n await checkoutState.updateShippingAddressFromExpressCheckout({ newShippingAddressFromExpressCheckout: address });\n }\n };\n\n /**\n * Get address from tokenizedPaymentCard.\n * @param tokenizedPaymentCard -- The tokenizedPaymentCard from the payment.\n * @returns The address.\n */\n private readonly _getAddressFromTokenizedPaymentCard = (tokenizedPaymentCard: TokenizedPaymentCard): Address => {\n const address: Address = {\n TwoLetterISORegionName: tokenizedPaymentCard.Country,\n Name: tokenizedPaymentCard.NameOnCard,\n Street: tokenizedPaymentCard.Address1,\n StreetNumber: tokenizedPaymentCard.Address2,\n City: tokenizedPaymentCard.City,\n State: tokenizedPaymentCard.State,\n ZipCode: tokenizedPaymentCard.Zip,\n Phone: tokenizedPaymentCard.Phone\n };\n\n return address;\n };\n\n /**\n * Handle checkout errors.\n * @param error -- The error on checkout api failure.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly handleCheckoutError = (error: any) => {\n // Here checkout failure message will be shown if there is any error in checkout api except data validation.\n const {\n resources: {\n genericErrorMessage,\n invalidCartVersionErrorMessage,\n missingRequiredCartTenderLinesErrorMessage,\n checkoutApiFailureErrorMessage,\n invoiceCheckoutApiFailureErrorMessage\n },\n context: { actionContext }\n } = this.props;\n const checkoutResult = this.props.data.checkout.result;\n const apiError = error && error.message;\n if (error?.statusCode === 500) {\n const errorMessage = checkoutApiFailureErrorMessage;\n this.setState({\n errorMessage\n });\n this.props.telemetry.exception(error);\n this.setState({ isPlaceOrderLoading: false });\n return;\n }\n if (checkoutResult && checkoutResult.shouldEnableCheckoutErrorDisplayMessaging) {\n const errorCode = error && error.name ? error.name : '';\n // apiError message will be used if errorcode resource/enums is unavailable\n setCheckoutErrors(errorCode, this.props.resources, !!checkoutResult.isExpressCheckoutApplied, actionContext, apiError);\n } else {\n let errorMessage = genericErrorMessage;\n this.setState({ isPlaceOrderClicked: false });\n\n if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\n errorMessage = invalidCartVersionErrorMessage;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- unknown error type.\n } else if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines') {\n errorMessage = missingRequiredCartTenderLinesErrorMessage;\n } else if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons') {\n // If api error is not available show generic message\n errorMessage = apiError || genericErrorMessage;\n } else {\n if (error.status === ActionErrorStatus.Timeout || error.status === ActionErrorStatus.ServiceUnavailable) {\n errorMessage = checkoutResult?.checkoutCart.hasInvoiceLine\n ? invoiceCheckoutApiFailureErrorMessage\n : checkoutApiFailureErrorMessage;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- unknown error type.\n if (\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout &&\n error.data?.AdditionalContext &&\n !this.props.data.checkout.result?.isPaymentVerificationRedirection\n ) {\n return;\n }\n\n this.setState({\n errorMessage\n });\n this.props.telemetry.exception(error);\n }\n };\n}\n\nexport default Checkout;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CheckoutModule, ErrorLocation, IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport {\n getGiftCardAsync,\n getTenderTypesAsync,\n resolveCardTypesAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n CardType,\n CardTypeInfo,\n GiftCard,\n RetailOperation,\n TenderType\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { OPERATIONS } from '../checkout';\nimport { ICheckoutGiftCardData } from './checkout-gift-card.data';\nimport { ICheckoutGiftCardProps } from './checkout-gift-card.props.autogenerated';\nimport { getForm, IForm } from './components/get-form';\nimport { getList, IList } from './components/get-list';\nimport TitleCompoent from './components/title';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport * from './components/get-form';\nexport * from './components/get-item';\nexport * from './components/get-list';\n\ninterface ICheckoutGiftCardState {\n isFetchingGiftCard: boolean;\n errorMessage: string;\n giftCardNumber: string;\n giftCardPin: string;\n giftCardExp: string;\n}\n\nenum SupportedGiftCardType {\n Internal = 'internal',\n External = 'external',\n Both = 'both'\n}\n\nexport interface ICheckoutGiftCardModuleProps extends ICheckoutGiftCardProps, IModuleStateProps {}\n\nexport interface IShowResource {\n title: React.ReactNode;\n list?: IList;\n}\n\nexport interface IAddResource {\n form: IForm;\n list?: IList;\n}\n\nexport interface ICheckoutGiftCardViewProps extends ICheckoutGiftCardProps<{}>, ICheckoutGiftCardState {\n className?: string;\n\n showGiftCard?: IShowResource;\n addGiftCard?: IAddResource;\n\n checkoutGiftCardProps: IModuleProps;\n couldPaidByGiftCard?: boolean;\n isEnabled?: boolean;\n checkoutErrorRef?: React.RefObject;\n onEdit?(): void;\n onCancel?(): void;\n onSubmit?(): void;\n enterGiftCardNumber?(giftCardNumber: string): void;\n enterGiftCardPin?(giftCardNumber: string): void;\n enterGiftCardExp?(giftCardNumber: string): void;\n removeGiftCard?(giftCardNumber: string): void;\n applyGiftCard?(): void;\n}\n\n/**\n *\n * CheckoutGiftCard component.\n * @extends {React.Component, ICheckoutGiftCardState>}\n */\n@observer\nexport class CheckoutGiftCard extends React.Component {\n public state: ICheckoutGiftCardState = {\n isFetchingGiftCard: false,\n errorMessage: '',\n giftCardNumber: '',\n giftCardPin: '',\n giftCardExp: ''\n };\n\n private readonly inputRef: React.RefObject = React.createRef();\n\n private readonly inputPinRef: React.RefObject = React.createRef();\n\n private readonly inputExpRef: React.RefObject = React.createRef();\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n @computed get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\n }\n\n @computed get getLoyaltyAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n if (!checkoutState || !checkoutState.loyaltyAmount) {\n return 0;\n }\n return checkoutState.loyaltyAmount;\n }\n\n @computed get getCustomerAccountAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n return checkoutState && checkoutState.customerAccountAmount ? checkoutState.customerAccountAmount : 0;\n }\n\n @computed get getGiftCardTotalAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n if (!checkoutState || !checkoutState.giftCardExtends) {\n return 0;\n }\n return checkoutState.giftCardExtends.reduce((count: number, giftCard: IGiftCardExtend) => {\n const balance: number = giftCard.Balance || 0;\n return count + balance;\n }, 0);\n }\n\n @computed get disableAddGiftCard(): boolean {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n if (!cart) {\n return true;\n }\n return (cart.TotalAmount || 0) - this.getLoyaltyAmount - this.getGiftCardTotalAmount <= 0;\n }\n\n @computed get shouldPayGiftCard(): boolean {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n if (!cart) {\n return false;\n }\n\n // Use gift card card when loyalty points do not cover the total amount\n const amountDue = (cart.TotalAmount || 0) - this.getLoyaltyAmount - this.getCustomerAccountAmount;\n return amountDue > 0;\n }\n\n @computed get hasSelectedItem(): boolean {\n const {\n data: { checkout }\n } = this.props;\n const giftCards = checkout.result && checkout.result.giftCardExtends;\n return !!giftCards && giftCards.length > 0;\n }\n\n public componentDidMount(): void {\n when(\n () => this.isDataReady,\n () => {\n this.init();\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (checkoutError && checkoutError.errorLocation === ErrorLocation.CheckoutGiftCard && checkoutError.errorMessage) {\n this.setError(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutGiftCard) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutGiftCardModuleProps, nextState: ICheckoutGiftCardState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n moduleState: { isReady },\n data: { checkout },\n config: { className, showAdditionalFields },\n resources\n } = this.props;\n const { errorMessage, giftCardNumber, giftCardPin, giftCardExp } = this.state;\n const giftCards = checkout.result && checkout.result.giftCardExtends;\n const additionalFields = showAdditionalFields;\n const supportedGiftCardType = this.props.context.app.config.giftCardSupported;\n\n if (!this.isEnabled() || (!this.shouldPayGiftCard && !isReady)) {\n this.props.context.telemetry.error('Checkout giftcard content is empty, module wont render');\n return null;\n }\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.GiftCard === 0) {\n this.props.context.telemetry.information('isOBORequest is enabled, Checkout gift card module wont render');\n return null;\n }\n\n const supportExternalGiftCard = supportedGiftCardType !== SupportedGiftCardType.Internal;\n\n const moduleClassName = classname('ms-checkout-gift-card', className, isReady ? 'show' : 'add');\n\n const viewProps: ICheckoutGiftCardViewProps = {\n ...this.props,\n ...this.state,\n className: moduleClassName,\n checkoutErrorRef: this.checkoutErrorRef,\n\n checkoutGiftCardProps: { moduleProps: this.props, className: moduleClassName },\n couldPaidByGiftCard: this.couldPaidByGiftCard(),\n isEnabled: this.isEnabled(),\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n enterGiftCardNumber: this.enterGiftCardNumber,\n enterGiftCardPin: this.enterGiftCardPin,\n enterGiftCardExp: this.enterGiftCardExp,\n removeGiftCard: this.removeGiftCard,\n applyGiftCard: this.applyGiftCard,\n showGiftCard: isReady\n ? {\n title: ,\n list: getList({\n canRemove: false,\n getFormattedPrice: this.getFormattedPrice,\n giftCards: giftCards && [...giftCards], // Note: ReadOnly Checkout State GiftCard[] is not assignable to GiftCard[] type\n onRemoveGiftCard: this.removeGiftCard,\n resources\n })\n }\n : undefined,\n addGiftCard: !isReady\n ? {\n form: getForm({\n errorMessage,\n giftCardNumber,\n giftCardPin,\n giftCardExp,\n inputRef: this.inputRef,\n inputPinRef: this.inputPinRef,\n inputExpRef: this.inputExpRef,\n resources,\n onEnterGiftCardNumber: this.enterGiftCardNumber,\n onEnterGiftCardPin: this.enterGiftCardPin,\n onEnterGiftCardExp: this.enterGiftCardExp,\n onApplyGiftCard: this.applyGiftCard,\n supportExternalGiftCard,\n additionalFields,\n disableAddGiftCard: this.disableAddGiftCard\n }),\n list: getList({\n canRemove: true,\n getFormattedPrice: this.getFormattedPrice,\n giftCards: giftCards && [...giftCards], // Note: ReadOnly Checkout State GiftCard[] is not assignable to GiftCard[] type\n onRemoveGiftCard: this.removeGiftCard,\n resources\n })\n }\n : undefined\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly init = (): void => {\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n isRequired: false,\n ...(!this.isEnabled() && { status: 'disabled' })\n });\n\n const giftCards = this.props.data.checkout.result?.giftCardExtends;\n if (giftCards && giftCards.length > 0) {\n this.props.moduleState.onReady();\n } else if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n this.props.moduleState.onSkip();\n }\n };\n\n private readonly couldPaidByGiftCard = (): boolean => {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart?.cart : undefined;\n if (!cart) {\n return false;\n }\n\n // Use gift card when it is not free\n return (cart.TotalAmount || 0) > 0;\n };\n\n private readonly isEnabled = (): boolean => {\n if (\n !this.props.context.request.user.isAuthenticated &&\n this.props.context.app.config.giftCardSupported !== SupportedGiftCardType.External &&\n !this.props.config.shouldBeEnabledForGuest\n ) {\n return false;\n }\n return this.couldPaidByGiftCard();\n };\n\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Payment section gift card onEdit is called.');\n\n // Show add gift card form\n this.props.moduleState.onUpdating();\n };\n\n private readonly onCancel = (): void => {\n this.props.telemetry.information('Payment section gift card onCancel is called.');\n\n this.handleCancelOrSubmit();\n };\n\n private readonly onSubmit = (): void => {\n this.props.telemetry.information('Payment section gift card onSubmit is called.');\n\n this.handleCancelOrSubmit();\n };\n\n private readonly handleCancelOrSubmit = () => {\n if (this.hasSelectedItem) {\n // Show summary screen\n this.props.moduleState.onReady();\n } else {\n // Skip the module\n this.props.moduleState.onSkip();\n }\n };\n\n private readonly getFormattedPrice = (price: number = 0, currencyCode: string = 'USD'): string => {\n return this.props.context.cultureFormatter.formatCurrency(price, currencyCode);\n };\n\n private readonly enterGiftCardNumber = (giftCardNumber: string): void => {\n this.setState({\n giftCardNumber\n });\n this.clearError();\n };\n\n private readonly enterGiftCardPin = (giftCardPin: string): void => {\n this.setState({\n giftCardPin\n });\n this.clearError();\n };\n\n private readonly enterGiftCardExp = (giftCardExp: string): void => {\n this.setState({\n giftCardExp\n });\n this.clearError();\n };\n\n private readonly setError = (errorMessage: string): void => {\n this.props.telemetry.error('Error', errorMessage);\n this.props.telemetry.debug('Error', errorMessage);\n this.props.moduleState.setHasError(true);\n this.setState({\n errorMessage\n });\n };\n\n private readonly clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.setState({\n errorMessage: ''\n });\n };\n\n private readonly removeGiftCard = async (giftCardNumber: string): Promise => {\n this.props.telemetry.information('Payment section gift card remove is called.');\n\n const checkoutState = this.props.data.checkout.result;\n if (!checkoutState) {\n return;\n }\n\n await checkoutState.removeGiftCard({ giftCardNumber });\n };\n\n private readonly applyGiftCard = async (): Promise => {\n this.props.telemetry.information('Payment section gift card apply is called.');\n\n if (this.state.isFetchingGiftCard) {\n return;\n }\n this.setState({\n isFetchingGiftCard: true\n });\n\n const checkoutState = this.props.data.checkout.result;\n const giftCardNumber = this.state.giftCardNumber.trim();\n const giftCardPin = this.state.giftCardPin.trim();\n const giftCardExp = this.state.giftCardExp.trim();\n\n const giftCardTypes = await this.getGiftCardTypes(giftCardNumber);\n const giftCardType = giftCardTypes && giftCardTypes[0];\n const isPinRequired = giftCardType && giftCardType.IsPinRequired;\n const isExpRequired = giftCardType && giftCardType.IsExpirationDateRequired;\n const tenderTypeId = giftCardType && giftCardType.PaymentMethodId;\n const giftCard = await this.getGiftCard(giftCardNumber, giftCardPin, giftCardExp, isPinRequired, isExpRequired, tenderTypeId);\n\n if (checkoutState && giftCard) {\n await checkoutState.addGiftCard({\n giftCard,\n additionalProperties: { Pin: giftCardPin, ExpirationDate: giftCardExp, TenderTypeId: tenderTypeId }\n });\n this.clearError();\n this.setState({\n giftCardNumber: '',\n giftCardPin: '',\n giftCardExp: '',\n isFetchingGiftCard: false\n });\n return Promise.resolve();\n }\n const input = this.inputRef && this.inputRef.current && this.inputRef.current.focus && (this.inputRef.current as HTMLElement);\n input && input.focus();\n this.setState({\n isFetchingGiftCard: false\n });\n this.props.telemetry.information('Payment section fetching gift card is failed.');\n };\n\n private readonly findGiftcardTenderTypes = (\n tenderTypes: TenderType[],\n operationId: RetailOperation,\n giftcardType: string\n ): string[] | undefined => {\n let matchedTenderTypes: TenderType[] | undefined;\n\n switch (giftcardType) {\n case SupportedGiftCardType.Internal:\n matchedTenderTypes = tenderTypes.filter(\n tenderType => tenderType.OperationId === operationId && tenderType.ConnectorId === ''\n );\n break;\n case SupportedGiftCardType.External:\n matchedTenderTypes = tenderTypes.filter(\n tenderType => tenderType.OperationId === operationId && tenderType.ConnectorId !== ''\n );\n break;\n default:\n throw new Error('Invalid gift card type');\n }\n\n if (matchedTenderTypes) {\n return matchedTenderTypes.map(tenderType => tenderType.TenderTypeId || '');\n }\n return;\n };\n\n private readonly getGiftCard = async (\n giftCardNumber: string,\n giftCardPin: string,\n giftCardExp: string,\n isPinRequired: boolean | undefined,\n isExpRequired: boolean | undefined,\n tenderTypeId: string | undefined\n ): Promise => {\n const {\n resources: { noBalanceError, invalidCardInfoError, invalidCardTypeError, noCardPinError, noCardExpError }\n } = this.props;\n\n const supportedGiftCardType = this.props.context.app.config.giftCardSupported;\n\n if (!tenderTypeId) {\n return undefined;\n }\n\n const tenderTypes = await getTenderTypesAsync({ callerContext: this.props.context.actionContext, queryResultSettings: {} }).catch(\n error => {\n throw error;\n }\n );\n\n if (!tenderTypes) {\n throw new Error('Fail to get gift card tender line');\n }\n const internalGiftcardTenderTypes = this.findGiftcardTenderTypes(\n tenderTypes,\n OPERATIONS.PayGiftCertificate,\n SupportedGiftCardType.Internal\n );\n const externalGiftcardTenderTypes = this.findGiftcardTenderTypes(\n tenderTypes,\n OPERATIONS.PayGiftCertificate,\n SupportedGiftCardType.External\n );\n\n switch (supportedGiftCardType) {\n case undefined:\n case SupportedGiftCardType.Internal:\n if (!internalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this.setError(invalidCardTypeError);\n return undefined;\n }\n break;\n case SupportedGiftCardType.External:\n if (!externalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this.setError(invalidCardTypeError);\n return undefined;\n }\n break;\n case SupportedGiftCardType.Both:\n if (!internalGiftcardTenderTypes?.includes(tenderTypeId) && !externalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this.setError(invalidCardTypeError);\n return undefined;\n }\n break;\n default:\n throw new Error('Unsupported gift card type');\n }\n\n if (isPinRequired && giftCardPin === '') {\n this.setError(noCardPinError);\n return undefined;\n }\n\n if (isExpRequired && giftCardExp === '') {\n this.setError(noCardExpError);\n return undefined;\n }\n\n const month = Number.parseInt(giftCardExp.split('/')[0], 10);\n const year = Number.parseInt(giftCardExp.split('/')[1], 10);\n\n return getGiftCardAsync({ callerContext: this.props.context.actionContext }, giftCardNumber, tenderTypeId, giftCardPin, month, year)\n .then(activeGiftCard => {\n if (!activeGiftCard.Balance || activeGiftCard.Balance === 0) {\n this.setError(noBalanceError);\n return;\n }\n return activeGiftCard;\n })\n .catch(error => {\n this.setError(invalidCardInfoError);\n return undefined;\n });\n };\n\n private readonly getGiftCardTypes = async (giftCardNumber: string): Promise => {\n const {\n resources: { emptyInputError, duplicatedCodeError, invalidCodeError },\n data: { checkout }\n } = this.props;\n\n if (!giftCardNumber) {\n this.setError(emptyInputError);\n return undefined;\n }\n\n const isDuplicated = checkout.result && checkout.result.giftCardExtends.some((card: GiftCard) => card.Id === giftCardNumber);\n if (isDuplicated) {\n this.setError(duplicatedCodeError);\n return undefined;\n }\n\n return resolveCardTypesAsync({ callerContext: this.props.context.actionContext }, giftCardNumber, CardType.GiftCard)\n .then(giftCardTypes => {\n if (!giftCardTypes || giftCardTypes.length === 0 || giftCardTypes[0] === undefined) {\n this.setError(invalidCodeError);\n return;\n }\n return giftCardTypes;\n })\n .catch(error => {\n this.setError(invalidCodeError);\n return undefined;\n });\n };\n}\n\nexport default withModuleState(CheckoutGiftCard);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node, Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ICheckoutViewProps,\n ILineItem,\n ILineItemDeliveryGroup,\n ILineItems,\n IOrderSummary,\n IPickUpAtStore,\n IEmailDelivery,\n IInvoicePaymentSummary\n} from './index';\n\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\n \n {label}\n {location}\n \n);\n\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\n\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\n \n {item}\n {pickUpAtStore && }\n {emailDelivery && }\n \n);\n\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\n \n {heading}\n \n {lineItems.map(lineItem => (\n \n ))}\n \n \n);\n\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\n LineItemDeliveryGroup,\n LineItemList,\n heading,\n lineItems,\n lineItemWraper,\n lineItemWraperIcon\n}) => (\n \n {lineItemWraperIcon}\n {lineItemWraper}\n {heading}\n \n {lineItems.map(lineItem => (\n \n ))}\n \n \n);\n\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\n \n {item}\n {emailDelivery && }\n \n);\n\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\n \n {label}\n {location}\n \n);\n\nexport const LineItemsComponent: React.FC = ({\n LineItems,\n Header,\n heading,\n editLink,\n itemsForPickup,\n itemsForShip,\n itemsForEmail,\n itemsGroupWithMulitplePickupMode\n}) => (\n \n \n {heading}\n {editLink}\n \n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\n {itemsGroupWithMulitplePickupMode !== undefined\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\n return ;\n })\n : null}\n \n);\n\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\n
\n {heading}\n
\n {lines && (\n <>\n {lines.subtotal}\n {lines.shipping}\n {lines.otherCharge}\n {lines.tax}\n {lines.totalDiscounts}\n {lines.loyalty}\n {lines.customerAccount}\n {lines.giftCard}\n {lines.orderTotal}\n \n )}\n
\n
\n);\n\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\n
\n {heading}\n
\n {lines && (\n <>\n {lines.invoices}\n {lines.giftCard}\n {lines.loyalty}\n {lines.orderTotal}\n \n )}\n
\n
\n);\n\nconst CheckoutView: React.FC = props => {\n const {\n isPaymentVerificationRedirection,\n shouldEnableSinglePaymentAuthorizationCheckout,\n canShow,\n checkoutProps,\n headerProps,\n hasSalesOrder,\n hasInvoiceLine,\n bodyProps,\n mainProps,\n mainControlProps,\n sideProps,\n sideControlFirstProps,\n sideControlSecondProps,\n termsAndConditionsProps,\n orderConfirmation,\n loading,\n alert,\n title,\n guidedForm,\n orderSummary,\n invoicePaymentSummary,\n lineItems,\n placeOrderButton,\n termsAndConditions,\n keepShoppingButton,\n checkoutExpressPaymentContainer,\n checkoutErrorRef\n } = props;\n\n return (\n \n {!hasSalesOrder && !checkoutExpressPaymentContainer && {title}}\n {!hasSalesOrder && isPaymentVerificationRedirection && shouldEnableSinglePaymentAuthorizationCheckout && !alert && !loading && (\n \n )}\n {!hasSalesOrder && (\n \n {loading}\n {alert}\n {canShow && (\n <>\n \n {checkoutExpressPaymentContainer}\n {checkoutExpressPaymentContainer && {title}}\n {guidedForm}\n {termsAndConditions}\n \n {placeOrderButton}\n {keepShoppingButton}\n \n \n \n {!hasInvoiceLine\n ? orderSummary && \n : invoicePaymentSummary && }\n \n {termsAndConditions}\n {placeOrderButton}\n {keepShoppingButton}\n \n {lineItems && }\n \n {termsAndConditions}\n {placeOrderButton}\n {keepShoppingButton}\n \n \n \n )}\n \n )}\n {hasSalesOrder && orderConfirmation}\n \n );\n};\n\nexport default CheckoutView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\nimport { createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { LoyaltyPointRedemptionEstimate, LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { GetLoyaltyTransactionEstimationInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Drawer, Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classnames from 'classnames';\nimport { action, computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutLoyaltyData } from './checkout-loyalty.data';\nimport { ICheckoutLoyaltyProps } from './checkout-loyalty.props.autogenerated';\nimport InputComponent from './components/checkout-loyalty-input';\nimport LabelComponent from './components/checkout-loyalty-label';\nimport TextComponent from './components/checkout-loyalty-text';\nimport { ErrorComponent } from '../../common/error';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport interface ICheckoutLoyaltyState {\n dollarsApplied: number;\n isFetchingLoyaltyCard: boolean;\n errorMessage?: string;\n}\n\nexport interface ICheckoutLoyaltyModuleProps extends ICheckoutLoyaltyProps, IModuleStateProps {}\n\nexport interface ICheckoutLoyaltyViewState {\n isShowLoyalty: boolean;\n isShowAddLoyalty: boolean;\n}\n\nexport interface ICheckoutLoyaltyShow {\n heading: React.ReactNode;\n coveredAmountText: React.ReactNode;\n amount: React.ReactNode;\n}\n\nexport interface ICheckoutLoyaltyRewardPoint {\n checkoutLoyaltyRewardPoint: INodeProps;\n key: string;\n title: React.ReactNode;\n availablePointsText: React.ReactNode;\n activePoints: React.ReactNode;\n expiringPointsText: React.ReactNode;\n expiringPoints: React.ReactNode;\n}\n\nexport interface ICheckoutLoyaltyAdd {\n heading: React.ReactNode;\n cardNumber: React.ReactNode;\n drawer: INodeProps;\n rewardPoints: ICheckoutLoyaltyRewardPoint[];\n loyaltyAmountContainer: INodeProps;\n appliedLoyaltyAmountContainer: INodeProps;\n loyaltyAmountLabel: React.ReactNode;\n loyaltyAmountInput: React.ReactNode;\n loyaltyAmountApplyButton: React.ReactNode;\n showAppliedAmount: boolean;\n loyaltyAmountAppliedText: React.ReactNode;\n loyaltyAmountAppliedPrice: React.ReactNode;\n loyaltyAmountRemoveButton: React.ReactNode;\n}\n\nexport interface ICheckoutLoyaltyViewProps extends ICheckoutLoyaltyModuleProps {\n checkoutLoyalty: IModuleProps;\n viewState: ICheckoutLoyaltyViewState;\n showLoyalty: ICheckoutLoyaltyShow;\n addLoyalty: ICheckoutLoyaltyAdd;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n}\n\n/**\n *\n * CheckoutLoyalty component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n\n@withModuleState\n@observer\nclass CheckoutLoyalty extends React.Component {\n private readonly _dialogToggleRef: React.RefObject | undefined;\n\n private readonly moduleClassName: string = 'ms-checkout-loyalty';\n\n private readonly _defaultLoyaltyPoints: number = 0;\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n constructor(props: ICheckoutLoyaltyModuleProps) {\n super(props);\n this._dialogToggleRef = React.createRef();\n this._applyLoyaltyPoints = this._applyLoyaltyPoints.bind(this);\n this._removeLoyaltyPoints = this._removeLoyaltyPoints.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this.state = { dollarsApplied: this.maxDollars, isFetchingLoyaltyCard: false };\n }\n\n @computed get shouldPayLoyalty(): boolean {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n if (!cart) {\n return false;\n }\n\n // Use loyalty when cart is not full of free items\n const amountDue = cart.TotalAmount || 0;\n return amountDue > 0;\n }\n\n @computed get isDataReady(): boolean {\n return (\n (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS' &&\n (this.props.data.loyaltyCard && this.props.data.loyaltyCard.status) !== 'LOADING' &&\n (this.props.data.loyaltyTransactionEstimation && this.props.data.loyaltyTransactionEstimation.status) !== 'LOADING'\n );\n }\n\n @computed get maxDollars(): number {\n return this.props.data.loyaltyTransactionEstimation.result &&\n this.props.data.loyaltyTransactionEstimation.result.MaxCurrencyValueOfLoyaltyPoints\n ? this.props.data.loyaltyTransactionEstimation.result.MaxCurrencyValueOfLoyaltyPoints\n : 0;\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n await this.init();\n }\n );\n\n reaction(\n () => this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart,\n async () => {\n this._updateEstimate();\n }\n );\n\n reaction(\n () => this.props.data.loyaltyCard.result,\n async () => {\n this._updateLoyalty();\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (checkoutError && checkoutError.errorLocation === ErrorLocation.CheckoutLoyalty && checkoutError.errorMessage) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutLoyalty) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutLoyaltyModuleProps, nextState: ICheckoutLoyaltyState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n renderView,\n moduleState: { hasError, isReady }\n } = this.props;\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.Loyalty === 0) {\n this.props.context.telemetry.information('isOBORequest is enabled, Checkout loyalty module wont render');\n return null;\n }\n\n if (\n this.props.data.loyaltyCard &&\n this.props.data.loyaltyCard.result &&\n this.props.data.loyaltyCard.result.CardNumber &&\n this.shouldPayLoyalty\n ) {\n const loyaltyCard = this.props.data.loyaltyCard.result;\n const checkoutState = this.props.data.checkout.result;\n let isShowLoyalty = false;\n const errorMessage = this.state.errorMessage;\n\n if (isReady) {\n if (!checkoutState || checkoutState.loyaltyAmount === 0) {\n return null;\n }\n isShowLoyalty = true;\n }\n const channelConfig = this.props.context.request.channel;\n const viewProps = {\n ...this.props,\n checkoutErrorRef: this.checkoutErrorRef,\n viewState: {\n isShowLoyalty,\n isShowAddLoyalty: !isReady && !config.disableAddLoyaltyComponent\n },\n alert: hasError && errorMessage && ,\n checkoutLoyalty: {\n moduleProps: this.props,\n className: classnames(\n this.moduleClassName,\n { [`${this.moduleClassName}__applied`]: isShowLoyalty },\n this.props.config.className\n )\n },\n showLoyalty: {\n heading: ,\n coveredAmountText: (\n \n ),\n amount: (\n \n )\n },\n addLoyalty: {\n heading: ,\n drawer: {\n tag: Drawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: this._drawerHeader(),\n openGlyph: `${this.moduleClassName}__drawer-open`,\n closeGlyph: `${this.moduleClassName}__drawer-close`,\n glyphPlacement: 'end'\n },\n cardNumber: ,\n rewardPoints:\n loyaltyCard.RewardPoints &&\n loyaltyCard.RewardPoints.map((points, index) => {\n return this._renderPointSection(points, resources.availablePointsLabel, resources.expiringLoyaltyPointsLabel);\n }),\n loyaltyAmountContainer: {\n className: `${this.moduleClassName}__amount`\n },\n appliedLoyaltyAmountContainer: {\n className: `${this.moduleClassName}__applied-amount`\n },\n loyaltyAmountLabel: (\n \n ),\n loyaltyAmountInput: (\n \n ),\n loyaltyAmountApplyButton: (\n this.maxDollars ||\n this.state.dollarsApplied <= 0 ||\n isNaN(this.state.dollarsApplied) ||\n this.state.isFetchingLoyaltyCard\n }\n >\n {this.props.resources.applyCheckoutLoyaltyPaymentText}\n \n ),\n showAppliedAmount: checkoutState && checkoutState.loyaltyAmount > 0,\n loyaltyAmountAppliedText: (\n \n ),\n loyaltyAmountAppliedPrice: (\n \n ),\n loyaltyAmountRemoveButton: (\n \n {this.props.resources.removeCheckoutLoyaltyPaymentText}\n \n )\n }\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n this.props.context.telemetry.error('Checkout loyalty content is empty, module wont render');\n return null;\n }\n\n private _drawerHeader(): JSX.Element {\n const channelConfig = this.props.context.request.channel;\n return (\n <>\n

{this.props.resources.loyaltyCoveredAmountText}

\n \n \n );\n }\n\n private _renderPointSection(\n point: LoyaltyRewardPoint,\n loyaltyCoveredAmountText: string,\n expiringLoyaltyPointsLabel: string\n ): ICheckoutLoyaltyRewardPoint {\n return {\n key: point.RewardPointId || '',\n checkoutLoyaltyRewardPoint: {\n className: `${this.moduleClassName}__program`\n },\n title: ,\n availablePointsText: ,\n activePoints: (\n \n ),\n expiringPointsText: ,\n expiringPoints: (\n \n )\n };\n }\n\n private readonly init = async (): Promise => {\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n isRequired: false,\n ...(!this.isEnabled() && { status: 'disabled' })\n });\n\n const savedLoyaltyAmount = this.props.data.checkout.result?.loyaltyAmount;\n if (savedLoyaltyAmount) {\n this.props.moduleState.onReady();\n } else if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n this.props.moduleState.onSkip();\n } else if (\n this.props.data.loyaltyCard.result &&\n this.props.data.checkout.result &&\n this.props.data.loyaltyCard.result.CardNumber !== this.props.data.checkout.result.checkoutCart.cart.LoyaltyCardId\n ) {\n this.props.data.checkout.result.checkoutCart\n .updateLoyaltyCardId({ loyaltyCardNumber: this.props.data.loyaltyCard.result.CardNumber })\n .catch(error => {\n if (this.context.telemetry) {\n this.context.telemetry.warning(error);\n this.context.telemetry.debug('Unable to update the loyalty card');\n }\n });\n }\n };\n\n private readonly onEdit = () => {\n this.props.telemetry.information('Payment section loyalty onEdit is called.');\n\n this.props.moduleState.onUpdating();\n };\n\n private readonly onCancel = () => {\n this.props.telemetry.information('Payment section loyalty onCancel is called.');\n\n this.handleCancelOrSubmit();\n };\n\n private readonly onSubmit = () => {\n this.props.telemetry.information('Payment section loyalty onSubmit is called.');\n\n this.handleCancelOrSubmit();\n };\n\n private readonly handleCancelOrSubmit = () => {\n const checkoutState = this.props.data.checkout.result;\n if (checkoutState && checkoutState.loyaltyAmount > 0) {\n // Show summary screen\n this.props.moduleState.onReady();\n } else {\n // Skip the module\n this.props.moduleState.onSkip();\n }\n };\n\n private readonly isEnabled = () => {\n return (\n this.props.context.request.user.isAuthenticated &&\n this.props.data.loyaltyCard.result &&\n this.props.data.loyaltyCard.result.CardNumber &&\n this.shouldPayLoyalty\n );\n };\n\n private async _applyLoyaltyPoints(): Promise {\n this.props.telemetry.information('Payment section loyalty apply button onClick is called.');\n\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n return;\n }\n\n this._clearError();\n await checkoutState.updateLoyaltyAmount({ newAmount: Number.parseFloat(this.state.dollarsApplied.toString()) });\n this.setState({\n isFetchingLoyaltyCard: true\n });\n }\n\n private async _removeLoyaltyPoints(): Promise {\n this.props.telemetry.information('Payment section loyalty remove button onClick is called.');\n\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n return;\n }\n\n this._clearError();\n await checkoutState.updateLoyaltyAmount({ newAmount: 0 });\n this.setState({\n dollarsApplied: 0\n });\n }\n\n private _onInputChange(event: React.ChangeEvent): void {\n const value = event.currentTarget.value;\n this.setState({ dollarsApplied: value.length > 0 ? Number(value) : Number.parseFloat(value), isFetchingLoyaltyCard: false });\n }\n\n private _onBlur(event: React.FocusEvent): void {\n const num = Number.parseFloat(event.currentTarget.value).toFixed(2);\n const element = document.getElementById(`${this.props.id}-label`) as HTMLInputElement;\n if (element && num) {\n element.value = num;\n this.setState({ dollarsApplied: Number.parseFloat(num) });\n }\n }\n\n private _updateLoyalty(): void {\n if (this.props.moduleState.isDisabled && this.isEnabled()) {\n this._updateEstimate();\n this.props.moduleState.onUpdating();\n }\n }\n\n private _updateEstimate(): void {\n const card = this.props.data.loyaltyCard.result;\n const checkout = this.props.data.checkout.result;\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n const channelConfig = this.props.context.request.channel;\n if (card && card.CardNumber && cart && channelConfig) {\n const currencyCode = channelConfig.Currency || '';\n const loyalPointsRequest = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(cart.Id, card.CardNumber, currencyCode);\n\n // @ts-expect-error\n // Due to bug 23214358, this is getting improperly cached. Need to turn on cache bypass for now to work around issue\n loyalPointsRequest._query.options.bypassCache = 'get';\n\n callActionOrExecute(loyalPointsRequest, this.props.context.actionContext)\n .then(async points => {\n this.props.context.actionContext.update(\n new GetLoyaltyTransactionEstimationInput(this.props.context.request.apiSettings),\n points\n );\n const newMaxPoints = points.MaxCurrencyValueOfLoyaltyPoints ?? this._defaultLoyaltyPoints;\n\n // If points are already applied, ensure you don't apply more points than max\n if (checkout && checkout.loyaltyAmount > newMaxPoints) {\n await checkout.updateLoyaltyAmount({ newAmount: newMaxPoints });\n }\n\n this.setState({ dollarsApplied: newMaxPoints, isFetchingLoyaltyCard: false });\n })\n .catch(error => {\n this.props.context.actionContext.telemetry.exception(error);\n this.props.context.actionContext.telemetry.debug('Error getting Loyalty Point Redemption Estimate');\n });\n }\n }\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n errorMessage\n });\n };\n\n private readonly _clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.setState({\n errorMessage: ''\n });\n };\n}\n\nexport default CheckoutLoyalty;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Button, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { showAdditionalFields } from '../gift-card-balance-check.props.autogenerated';\n\nexport interface IGetFormInput {\n errorMessage: string;\n giftCardNumber: string;\n giftCardPin: string;\n giftCardExp: string;\n inputRef?: React.RefObject;\n inputPinRef?: React.RefObject;\n inputExpRef?: React.RefObject;\n supportExternalGiftCard?: boolean;\n additionalFields?: showAdditionalFields;\n resources: {\n balanceCheckButton: string;\n giftCardFormLabel: string;\n giftCardNumberLabel: string;\n giftCardPinLabel: string;\n giftCardExpLabel: string;\n giftCardAlertLabel: string;\n giftCardPinPlaceholderText: string;\n giftCardExpPlaceholderText: string;\n };\n onEnterGiftCardNumber(giftCardNumber: string): void;\n onEnterGiftCardPin(giftCardPin: string): void;\n onEnterGiftCardExp(giftCardExp: string): void;\n onApplyGiftCard(): Promise;\n}\n\nexport interface IForm {\n formProps: INodeProps;\n label: React.ReactNode;\n inputPinLabel: React.ReactNode;\n inputExpLabel: React.ReactNode;\n alert: React.ReactNode;\n inputProps: INodeProps;\n inputNumProps: INodeProps;\n inputPinProps: INodeProps;\n inputExpProps: INodeProps;\n inputNumber: React.ReactNode;\n inputPin: React.ReactNode;\n inputExp: React.ReactNode;\n applyButton: React.ReactNode;\n supportExternalGiftCard: boolean | undefined;\n showGiftCardPinInput: boolean | undefined;\n showGiftCardExpInput: boolean | undefined;\n alertFieldLabel: React.ReactNode;\n}\n\n/**\n * On apply function.\n * @param onApplyGiftCard -On apply gift card.\n * @returns Apply gift card.\n */\nconst onApplyHandler = (onApplyGiftCard: () => Promise) => async (event: React.SyntheticEvent): Promise => {\n event.preventDefault();\n await onApplyGiftCard();\n};\n\n/**\n * On change number function.\n * @param onEnterGiftCardNumber -On enter gift card number.\n * @returns On gift card enter pin function result.\n */\nconst onChangeNumberHandler = (onEnterGiftCardNumber: (giftCardNumber: string) => void) => (event: React.ChangeEvent) => {\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\n onEnterGiftCardNumber(value);\n};\n\n/**\n * On change pin function.\n * @param onEnterGiftCardPin -On enter gift card pin.\n * @returns On enter gift card pin function result.\n */\nconst onChangePinHandler = (onEnterGiftCardPin: (giftCardPin: string) => void) => (event: React.ChangeEvent) => {\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\n onEnterGiftCardPin(value);\n};\n\n/**\n * On change exp function.\n * @param onEnterGiftCardExp -On enter gift card.\n * @returns On enter gift card function result.\n */\nconst onChangeExpHandler = (onEnterGiftCardExp: (giftCardExp: string) => void) => (event: React.ChangeEvent) => {\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\n onEnterGiftCardExp(value);\n};\n\nexport const getForm = (options: IGetFormInput): IForm => {\n const {\n errorMessage,\n inputRef,\n inputPinRef,\n inputExpRef,\n giftCardNumber,\n giftCardPin,\n giftCardExp,\n onEnterGiftCardNumber,\n onEnterGiftCardPin,\n onEnterGiftCardExp,\n onApplyGiftCard,\n supportExternalGiftCard,\n additionalFields,\n resources: {\n balanceCheckButton,\n giftCardFormLabel,\n giftCardNumberLabel,\n giftCardPinLabel,\n giftCardExpLabel,\n giftCardAlertLabel,\n giftCardPinPlaceholderText,\n giftCardExpPlaceholderText\n }\n } = options;\n\n const formProps = {\n className: classnames('ms-gift-card-balance-check__form', { 'is-invalid': !!errorMessage }),\n onSubmit: onApplyHandler(onApplyGiftCard),\n tag: 'form' as NodeTag\n };\n\n const label = (\n \n );\n\n const inputPinLabel = (\n \n );\n\n const inputExpLabel = (\n \n );\n\n const alertFieldLabel = (\n \n );\n\n const alert = (\n \n {errorMessage}\n \n );\n\n const inputProps = {\n className: 'ms-gift-card-balance-check__input-fields'\n };\n\n const inputNumProps = {\n className: 'ms-gift-card-balance-check__input-num-fields'\n };\n\n const inputPinProps = {\n className: 'ms-gift-card-balance-check__input-pin-fields'\n };\n\n const inputExpProps = {\n className: 'ms-gift-card-balance-check__input-exp-fields'\n };\n\n const inputNumber = (\n \n );\n\n const inputPin = (\n \n );\n\n const inputExp = (\n \n );\n\n const applyButton = (\n \n {balanceCheckButton}\n \n );\n\n let showGiftCardPinInput = false;\n let showGiftCardExpInput = false;\n\n switch (additionalFields) {\n case showAdditionalFields.pin:\n showGiftCardPinInput = true;\n break;\n case showAdditionalFields.expirationDate:\n showGiftCardExpInput = true;\n break;\n case showAdditionalFields.pinAndExpirationDate:\n showGiftCardPinInput = true;\n showGiftCardExpInput = true;\n break;\n default:\n }\n\n return {\n formProps,\n label,\n inputPinLabel,\n inputExpLabel,\n alert,\n inputProps,\n inputNumProps,\n inputPinProps,\n inputExpProps,\n inputNumber,\n inputPin,\n inputExp,\n applyButton,\n supportExternalGiftCard,\n showGiftCardPinInput,\n showGiftCardExpInput,\n alertFieldLabel\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { GiftCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IGetItemInput {\n giftCard: GiftCard;\n resources: {\n enteredGiftCardLabel: string;\n giftCardAvailableBalanceLabel: string;\n };\n getFormattedPrice(price?: number, currencyCode?: string): string;\n}\n\nexport interface IItem {\n itemProps: INodeProps;\n id?: string;\n selectedGiftCard: React.ReactNode;\n removeButton?: React.ReactNode;\n}\n\n/**\n * GiftCardItem component.\n * @param root0\n * @param root0.giftCard\n * @param root0.getFormattedPrice\n * @param root0.resources\n * @param root0.resources.enteredGiftCardLabel\n * @param root0.resources.giftCardAvailableBalanceLabel\n * @extends {React.PureComponent}\n */\nexport const getItem = ({\n giftCard,\n getFormattedPrice,\n resources: { enteredGiftCardLabel, giftCardAvailableBalanceLabel }\n}: IGetItemInput): IItem => {\n const balance = getFormattedPrice(giftCard.Balance, giftCard.CardCurrencyCode);\n const giftCardLast4Digit = (giftCard.Id || '').substr(-4);\n\n const itemProps = {\n className: 'ms-gift-card-balance-check__item'\n };\n\n const selectedGiftCard = (\n \n {enteredGiftCardLabel}\n {` `}\n {giftCardLast4Digit}\n {` `}({giftCardAvailableBalanceLabel}\n {` `}\n {balance})\n \n );\n\n return {\n itemProps,\n id: giftCard && giftCard.Id,\n selectedGiftCard\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getGiftCardAsync,\n getTenderTypesAsync,\n resolveCardTypesAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n CardType,\n CardTypeInfo,\n GiftCard,\n RetailOperation,\n TenderType\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { OPERATIONS } from '../checkout';\nimport { getForm, IForm } from './components/get-form';\nimport { getItem, IItem } from './components/get-item';\nimport { IGiftCardBalanceCheckProps } from './gift-card-balance-check.props.autogenerated';\n\ninterface IGiftCardBalanceCheckState {\n isFetchingGiftCard: boolean;\n errorMessage: string;\n giftCardNumber: string;\n giftCardPin: string;\n giftCardExp: string;\n giftCard?: GiftCard;\n}\n\nenum SupportedGiftCardType {\n Internal = 'internal',\n External = 'external',\n Both = 'both'\n}\n\nexport interface IGiftCardBalanceCheckModuleProps extends IGiftCardBalanceCheckProps<{}> {}\n\nexport interface IGiftCardBalanceCheckViewProps extends IGiftCardBalanceCheckProps<{}>, IGiftCardBalanceCheckState {\n className?: string;\n\n form: IForm;\n item?: IItem;\n\n giftCardBalanceCheckProps: IModuleProps;\n\n enterGiftCardNumber?(giftCardNumber: string): void;\n enterGiftCardPin?(giftCardPin: string): void;\n enterGiftCardExp?(giftCardExp: string): void;\n applyGiftCard?(): void;\n}\n\n/**\n *\n * GiftCardBalanceCheck component.\n * @extends {React.Component}\n */\nexport class GiftCardBalanceCheck extends React.Component {\n public state: IGiftCardBalanceCheckState = {\n isFetchingGiftCard: false,\n errorMessage: '',\n giftCardNumber: '',\n giftCardPin: '',\n giftCardExp: ''\n };\n\n private readonly inputRef: React.RefObject = React.createRef();\n\n private readonly inputPinRef: React.RefObject = React.createRef();\n\n private readonly inputExpRef: React.RefObject = React.createRef();\n\n public shouldComponentUpdate(nextProps: IGiftCardBalanceCheckModuleProps, nextState: IGiftCardBalanceCheckState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, showAdditionalFields },\n resources\n } = this.props;\n const { errorMessage, giftCardNumber, giftCardPin, giftCardExp } = this.state;\n\n const supportedGiftCardType = this.props.context.app.config.giftCardSupported;\n\n if (!this._isEnabled()) {\n this.props.context.telemetry.error('Gift card balance check is not supported, module wont render');\n return null;\n }\n\n const supportExternalGiftCard = supportedGiftCardType !== SupportedGiftCardType.Internal;\n\n const moduleClassName = classname('ms-gift-card-balance-check', className);\n\n const viewProps: IGiftCardBalanceCheckViewProps = {\n ...this.props,\n ...this.state,\n className: moduleClassName,\n giftCardBalanceCheckProps: { moduleProps: this.props, className: moduleClassName },\n\n enterGiftCardNumber: this._enterGiftCardNumber,\n enterGiftCardPin: this._enterGiftCardPin,\n enterGiftCardExp: this._enterGiftCardExp,\n applyGiftCard: this._applyGiftCard,\n\n form: getForm({\n errorMessage,\n giftCardNumber,\n giftCardPin,\n giftCardExp,\n inputRef: this.inputRef,\n inputPinRef: this.inputPinRef,\n inputExpRef: this.inputExpRef,\n resources,\n supportExternalGiftCard,\n additionalFields: showAdditionalFields,\n onEnterGiftCardNumber: this._enterGiftCardNumber,\n onEnterGiftCardPin: this._enterGiftCardPin,\n onEnterGiftCardExp: this._enterGiftCardExp,\n onApplyGiftCard: this._applyGiftCard\n }),\n item:\n this.state.giftCard &&\n getItem({\n giftCard: this.state.giftCard,\n getFormattedPrice: this._getFormattedPrice,\n resources\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly _isEnabled = (): boolean => {\n if (\n !this.props.context.request.user.isAuthenticated &&\n this.props.context.app.config.giftCardSupported !== SupportedGiftCardType.External &&\n !this.props.config.shouldBeEnabledForGuest\n ) {\n return false;\n }\n return true;\n };\n\n private readonly _getFormattedPrice = (price: number = 0, currencyCode: string = 'USD'): string => {\n return this.props.context.cultureFormatter.formatCurrency(price, currencyCode);\n };\n\n private readonly _enterGiftCardNumber = (giftCardNumber: string): void => {\n this.setState({\n giftCardNumber\n });\n this._clearError();\n };\n\n private readonly _enterGiftCardPin = (giftCardPin: string): void => {\n this.setState({\n giftCardPin\n });\n this._clearError();\n };\n\n private readonly _enterGiftCardExp = (giftCardExp: string): void => {\n this.setState({\n giftCardExp\n });\n this._clearError();\n };\n\n private readonly _clearError = (): void => {\n this.setState({\n errorMessage: ''\n });\n };\n\n private readonly _setError = (errorMessage: string): void => {\n this.props.telemetry.error('Error', errorMessage);\n this.props.telemetry.debug('Error', errorMessage);\n this.setState({\n errorMessage\n });\n };\n\n private readonly _applyGiftCard = async (): Promise => {\n if (this.state.isFetchingGiftCard) {\n return;\n }\n this.setState({\n isFetchingGiftCard: true\n });\n\n const giftCardNumber = this.state.giftCardNumber.trim();\n const giftCardPin = this.state.giftCardPin.trim();\n const giftCardExp = this.state.giftCardExp.trim();\n\n const giftCardTypes = await this._getGiftCardTypes(giftCardNumber);\n const giftCardType = giftCardTypes && giftCardTypes[0];\n const isPinRequired = giftCardType && giftCardType.IsPinRequired;\n const isExpRequired = giftCardType && giftCardType.IsExpirationDateRequired;\n const tenderTypeId = giftCardType && giftCardType.PaymentMethodId;\n const giftCard = await this._getGiftCard(giftCardNumber, giftCardPin, giftCardExp, isPinRequired, isExpRequired, tenderTypeId);\n\n if (giftCard) {\n this._clearError();\n this.setState({\n giftCardNumber: '',\n giftCardPin: '',\n giftCardExp: '',\n isFetchingGiftCard: false,\n giftCard\n });\n return Promise.resolve();\n }\n const input = this.inputRef && this.inputRef.current && this.inputRef.current.focus && (this.inputRef.current as HTMLElement);\n input && input.focus();\n this.setState({\n isFetchingGiftCard: false,\n giftCard: undefined\n });\n };\n\n private readonly _findGiftcardTenderTypes = (\n tenderTypes: TenderType[],\n operationId: RetailOperation,\n giftcardType: string\n ): string[] | undefined => {\n let matchedTenderTypes: TenderType[] | undefined;\n\n switch (giftcardType) {\n case SupportedGiftCardType.Internal:\n matchedTenderTypes = tenderTypes.filter(\n tenderType => tenderType.OperationId === operationId && tenderType.ConnectorId === ''\n );\n break;\n case SupportedGiftCardType.External:\n matchedTenderTypes = tenderTypes.filter(\n tenderType => tenderType.OperationId === operationId && tenderType.ConnectorId !== ''\n );\n break;\n default:\n throw new Error('Invalid gift card type');\n }\n\n if (matchedTenderTypes) {\n return matchedTenderTypes.map(tenderType => tenderType.TenderTypeId || '');\n }\n return;\n };\n\n private readonly _getGiftCard = async (\n giftCardNumber: string,\n giftCardPin: string,\n giftCardExp: string,\n isPinRequired: boolean | undefined,\n isExpRequired: boolean | undefined,\n tenderTypeId: string | undefined\n ): Promise => {\n const {\n resources: { invalidCardTypeError, noBalanceError, invalidCardInfoError, noCardPinError, noCardExpError }\n } = this.props;\n\n const supportedGiftCardType = this.props.context.app.config.giftCardSupported;\n\n if (!tenderTypeId) {\n return undefined;\n }\n\n const tenderTypes = await getTenderTypesAsync({ callerContext: this.props.context.actionContext, queryResultSettings: {} }).catch(\n error => {\n throw error;\n }\n );\n\n if (!tenderTypes) {\n throw new Error('Fail to get gift card tender line');\n }\n\n const internalGiftcardTenderTypes = this._findGiftcardTenderTypes(\n tenderTypes,\n OPERATIONS.PayGiftCertificate,\n SupportedGiftCardType.Internal\n );\n const externalGiftcardTenderTypes = this._findGiftcardTenderTypes(\n tenderTypes,\n OPERATIONS.PayGiftCertificate,\n SupportedGiftCardType.External\n );\n\n switch (supportedGiftCardType) {\n case undefined:\n case SupportedGiftCardType.Internal:\n if (!internalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this._setError(invalidCardTypeError);\n return undefined;\n }\n break;\n case SupportedGiftCardType.External:\n if (!externalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this._setError(invalidCardTypeError);\n return undefined;\n }\n break;\n case SupportedGiftCardType.Both:\n if (!internalGiftcardTenderTypes?.includes(tenderTypeId) && !externalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this._setError(invalidCardTypeError);\n return undefined;\n }\n break;\n default:\n throw new Error('Unsupported gift card type');\n }\n\n if (!this.props.context.request.user.isAuthenticated && internalGiftcardTenderTypes?.includes(tenderTypeId)) {\n this._setError(invalidCardTypeError);\n return undefined;\n }\n\n if (isPinRequired && giftCardPin === '') {\n this._setError(noCardPinError);\n return undefined;\n }\n\n if (isExpRequired && giftCardExp === '') {\n this._setError(noCardExpError);\n return undefined;\n }\n\n const month = Number.parseInt(giftCardExp.split('/')[0], 10);\n const year = Number.parseInt(giftCardExp.split('/')[1], 10);\n\n return getGiftCardAsync({ callerContext: this.props.context.actionContext }, giftCardNumber, tenderTypeId, giftCardPin, month, year)\n .then(activeGiftCard => {\n if (!activeGiftCard.Balance || activeGiftCard.Balance === 0) {\n this._setError(noBalanceError);\n return;\n }\n return activeGiftCard;\n })\n .catch(error => {\n this._setError(invalidCardInfoError);\n return undefined;\n });\n };\n\n private readonly _getGiftCardTypes = async (giftCardNumber: string): Promise => {\n const {\n resources: { emptyInputError, invalidCodeError }\n } = this.props;\n\n if (!giftCardNumber) {\n this._setError(emptyInputError);\n return undefined;\n }\n\n return resolveCardTypesAsync({ callerContext: this.props.context.actionContext }, giftCardNumber, CardType.GiftCard)\n .then(giftCardTypes => {\n if (!giftCardTypes || giftCardTypes.length === 0 || giftCardTypes[0] === undefined) {\n this._setError(invalidCodeError);\n return;\n }\n return giftCardTypes;\n })\n .catch(error => {\n this._setError(invalidCodeError);\n return undefined;\n });\n };\n}\n\nexport default GiftCardBalanceCheck;\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 * as React from 'react';\r\n\r\ninterface IAlertProps {\r\n message: string;\r\n}\r\n\r\nconst CheckoutAlert: React.FC = ({ message }) => (\r\n

\r\n {message}\r\n

\r\n);\r\n\r\nexport default CheckoutAlert;\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 { IInvoiceSummaryLines, InvoiceSummary } from '@msdyn365-commerce-modules/invoice-payment-summary';\r\nimport get from 'lodash/get';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckout4Data } from '../lds-checkout-4.data';\r\nimport { ILdsCheckout4Props } from '../lds-checkout-4.props.autogenerated';\r\n\r\nexport interface IInvoicePaymentSummary {\r\n heading?: React.ReactNode;\r\n lines?: IInvoiceSummaryLines;\r\n}\r\nexport const getInvoicePaymentSummary = (input: ILdsCheckout4Props): IInvoicePaymentSummary => {\r\n const {\r\n data: { checkout },\r\n resources: { totalAmountLabel, invoiceLabel, invoiceSummaryTitle },\r\n context,\r\n typeName,\r\n id,\r\n telemetry\r\n } = input;\r\n\r\n const checkoutCart = get(checkout, 'result.checkoutCart');\r\n const cart = get(checkout, 'result.checkoutCart.cart');\r\n\r\n return {\r\n heading:

{invoiceSummaryTitle}

,\r\n lines: checkoutCart?.hasInvoiceLine\r\n ? InvoiceSummary({\r\n orderTotalLabel: totalAmountLabel,\r\n invoiceLabel,\r\n cart,\r\n context,\r\n typeName,\r\n telemetry,\r\n id,\r\n checkoutState: checkout.result\r\n })\r\n : undefined\r\n };\r\n};\r\n","/* eslint-disable security/detect-object-injection */\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 { CartLineItemComponent } from '@msdyn365-commerce/components';\r\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\r\nimport { CartLine, OrgUnitLocation, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { getProductUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n ITelemetryContent,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport get from 'lodash/get';\r\nimport groupBy from 'lodash/groupBy';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckout4Data } from '../lds-checkout-4.data';\r\nimport { ILdsCheckout4Props } from '../lds-checkout-4.props.autogenerated';\r\n\r\ntype deliveryType = 'pickup' | 'ship' | 'email';\r\n\r\nexport interface IPickUpAtStore {\r\n PickUpAtStore: INodeProps;\r\n label: React.ReactNode;\r\n location: React.ReactNode;\r\n}\r\n\r\nexport interface IEmailDelivery {\r\n EmailDelivery: INodeProps;\r\n label: React.ReactNode;\r\n}\r\n\r\nexport interface ILineItem {\r\n LineId: string;\r\n LineItem: INodeProps;\r\n item?: React.ReactNode;\r\n pickUpAtStore?: IPickUpAtStore;\r\n emailDelivery?: IEmailDelivery;\r\n}\r\n\r\nexport interface ILineItemDeliveryGroup {\r\n LineItemDeliveryGroup: INodeProps;\r\n LineItemList: INodeProps;\r\n heading: React.ReactNode;\r\n lineItemWraper?: React.ReactNode;\r\n lineItemWraperIcon?: React.ReactNode;\r\n lineItems: ILineItem[];\r\n}\r\n\r\nexport interface ILineItems {\r\n LineItems: INodeProps;\r\n Header: INodeProps;\r\n heading: React.ReactNode;\r\n editLink: React.ReactNode;\r\n itemsForPickup?: ILineItemDeliveryGroup;\r\n itemsForShip?: ILineItemDeliveryGroup;\r\n itemsForEmail?: ILineItemDeliveryGroup;\r\n itemsGroupWithMulitplePickupMode?: ILineItemDeliveryGroup[];\r\n}\r\n\r\nexport const getLineItems = (\r\n input: ILdsCheckout4Props,\r\n telemetryContent?: ITelemetryContent\r\n): ILineItems | undefined => {\r\n const pickupDeliveryModeCode = get(input, 'context.request.channel.PickupDeliveryModeCode');\r\n const emailDeliveryModeCode = get(input, 'context.request.channel.EmailDeliveryModeCode');\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const { channelDeliveryOptionConfig, featureState } = input.data;\r\n const retailMultiplePickUpOptionEnabled = featureState?.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\r\n ?.IsEnabled;\r\n\r\n const _getDeliveryLocation = (cartLine: CartLine): string => {\r\n const orgUnitLocations = get(input, 'data.orgUnitLocations.result');\r\n if (!cartLine.FulfillmentStoreId || !orgUnitLocations) {\r\n return '';\r\n }\r\n\r\n const locationMatch = (orgUnitLocations || []).find((location: OrgUnitLocation): boolean => {\r\n return location.OrgUnitNumber === cartLine.FulfillmentStoreId;\r\n });\r\n\r\n return locationMatch && locationMatch.OrgUnitName;\r\n };\r\n\r\n const _getProduct = (productId: number): SimpleProduct | undefined => {\r\n const products = get(input, 'data.products.result') || [];\r\n return products.find((_product: SimpleProduct) => {\r\n return productId === _product.RecordId;\r\n });\r\n };\r\n\r\n const _getLineItemComponent = (cartLine: CartLine): JSX.Element | undefined => {\r\n const product = cartLine.ProductId && _getProduct(cartLine.ProductId);\r\n const {\r\n id,\r\n typeName,\r\n context,\r\n config: { imageSettings, showShippingChargesForLineItems },\r\n resources: {\r\n quantityDisplayString,\r\n productDimensionTypeColor,\r\n productDimensionTypeSize,\r\n productDimensionTypeStyle,\r\n productDimensionTypeAmount,\r\n configString,\r\n inputQuantityAriaLabel,\r\n discountStringText,\r\n shippingCharges\r\n },\r\n context: {\r\n request: { gridSettings }\r\n }\r\n } = input;\r\n const catalogs = input.data.catalogs?.result;\r\n if (!product) {\r\n return;\r\n }\r\n\r\n let productUrl = getProductUrlSync(product, context.actionContext, undefined);\r\n if (MsDyn365.isBrowser && isChannelTypeB2B(context.actionContext.requestContext)) {\r\n const fullUrl = new URL(productUrl, window.location.href);\r\n fullUrl.searchParams.set('catalogid', `${cartLine.CatalogId ?? 0}`);\r\n productUrl = fullUrl.href;\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n const _getPickUpAtStoreComponents = (pickupDeliveryLocation: string): IPickUpAtStore => {\r\n const {\r\n resources: { pickUpAtStoreWithLocationText }\r\n } = input;\r\n\r\n return {\r\n PickUpAtStore: { className: 'ms-checkout__pick-up-at-store' },\r\n label: {pickUpAtStoreWithLocationText},\r\n location:
{pickupDeliveryLocation}
\r\n };\r\n };\r\n\r\n const _getEmailDeliveryComponents = (): IEmailDelivery => {\r\n const {\r\n resources: { emailDeliveryText }\r\n } = input;\r\n\r\n return {\r\n EmailDelivery: { className: 'ms-checkout__email-delivery' },\r\n label: {emailDeliveryText}\r\n };\r\n };\r\n\r\n const _getLineItemsComponents = (items: CartLine[]): ILineItem[] => {\r\n return items.map(cartLine => {\r\n const pickupDeliveryLocation = _getDeliveryLocation(cartLine);\r\n const isPickUp = _getCartPickDeliveryMode(cartLine);\r\n const isEmailDelivery =\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== '' ? cartLine.DeliveryMode === emailDeliveryModeCode : false;\r\n return {\r\n LineId: cartLine.LineId || '',\r\n LineItem: { className: 'ms-checkout__line-item' },\r\n item: _getLineItemComponent(cartLine),\r\n pickUpAtStore: isPickUp ? _getPickUpAtStoreComponents(pickupDeliveryLocation) : undefined,\r\n emailDelivery: isEmailDelivery ? _getEmailDeliveryComponents() : undefined\r\n };\r\n });\r\n };\r\n\r\n const _getCartPickDeliveryMode = (cartLineItem: CartLine): boolean => {\r\n return !StringExtensions.isNullOrWhitespace(cartLineItem.DeliveryMode)\r\n ? retailMultiplePickUpOptionEnabled\r\n ? cartLineItem.DeliveryMode ===\r\n channelDeliveryOptionConfig?.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLineItem.DeliveryMode\r\n )\r\n : cartLineItem.DeliveryMode === pickupDeliveryModeCode\r\n : false;\r\n };\r\n\r\n const _getCartShipDeliveryMode = (cartLineItem: CartLine): boolean => {\r\n return !StringExtensions.isNullOrWhitespace(cartLineItem.DeliveryMode)\r\n ? retailMultiplePickUpOptionEnabled\r\n ? cartLineItem.DeliveryMode !==\r\n channelDeliveryOptionConfig?.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLineItem.DeliveryMode\r\n )\r\n : cartLineItem.DeliveryMode !== pickupDeliveryModeCode\r\n : false;\r\n };\r\n\r\n const _getGroupTitleComponent = (count: number, type: deliveryType): string => {\r\n const {\r\n resources: { itemLabel, itemsLabel, inStorePickUpLabel, shippingCountCheckoutLineItem }\r\n } = input;\r\n\r\n let emailDeliveryModeDesc: string = '';\r\n\r\n input.data.deliveryOptions.result?.find(productDeliveryOptions => {\r\n emailDeliveryModeDesc = emailDeliveryModeDesc\r\n ? emailDeliveryModeDesc\r\n : productDeliveryOptions.DeliveryOptions?.find(deliveryOption => deliveryOption.Code === emailDeliveryModeCode)\r\n ?.Description!;\r\n });\r\n\r\n const suffix = count > 1 ? itemsLabel : itemLabel;\r\n const title =\r\n type === 'ship'\r\n ? shippingCountCheckoutLineItem\r\n : type === 'pickup'\r\n ? inStorePickUpLabel\r\n : `${emailDeliveryModeDesc} (${count} ${suffix})`;\r\n return title.replace('{count}', count.toString()).replace('{suffix}', suffix);\r\n };\r\n\r\n const _countItems = (items: CartLine[]): number => {\r\n return items.reduce((count, item) => {\r\n return count + (item.Quantity || 0);\r\n }, 0);\r\n };\r\n\r\n const _filterItemsByDiliveryType = (type: deliveryType): CartLine[] => {\r\n const cart = get(input, 'data.checkout.result.checkoutCart.cart');\r\n if (type === 'ship') {\r\n return cart.CartLines.filter((cartLine: CartLine) =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? _getCartShipDeliveryMode(cartLine) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n } else if (type === 'pickup') {\r\n return cart.CartLines.filter((cartLine: CartLine) =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== '' ? _getCartPickDeliveryMode(cartLine) : null\r\n );\r\n }\r\n return cart.CartLines.filter((cartLine: CartLine) => cartLine.DeliveryMode === emailDeliveryModeCode);\r\n };\r\n\r\n const _getLineItemsByDeliveryType = (type: deliveryType): ILineItemDeliveryGroup | undefined => {\r\n if ((pickupDeliveryModeCode === '' || pickupDeliveryModeCode === undefined) && (type === 'pickup' || type === 'email')) {\r\n return;\r\n }\r\n\r\n const items = _filterItemsByDiliveryType(type);\r\n\r\n if (items.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const count = _countItems(items);\r\n const title = _getGroupTitleComponent(count, type);\r\n\r\n return {\r\n LineItemDeliveryGroup: { className: classnames('ms-checkout__line-items-delivery-group', type) },\r\n LineItemList: { className: 'ms-checkout__line-items-list' },\r\n heading:
{title}
,\r\n lineItems: _getLineItemsComponents(items)\r\n };\r\n };\r\n\r\n const _getLineItems = (): ILineItems | undefined => {\r\n const {\r\n context,\r\n config: { lineItemsHeading },\r\n data: { products },\r\n resources: { editCartText }\r\n } = input;\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.EditCart);\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const cart = get(input, 'data.checkout.result.checkoutCart.cart');\r\n const groupClass = retailMultiplePickUpOptionEnabled ? ' multiple-pickup-enabled' : '';\r\n if (!cart || !cart.CartLines || cart.CartLines.length === 0 || !products) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n LineItems: { className: `ms-checkout__line-items${groupClass}` },\r\n Header: { className: 'ms-checkout__line-items-header' },\r\n heading: lineItemsHeading && lineItemsHeading.text && (\r\n \r\n ),\r\n editLink: (\r\n \r\n {editCartText}\r\n \r\n ),\r\n itemsForPickup: _getLineItemsByDeliveryType('pickup'),\r\n itemsForShip: _getLineItemsByDeliveryType('ship'),\r\n itemsForEmail: _getLineItemsByDeliveryType('email'),\r\n itemsGroupWithMulitplePickupMode: retailMultiplePickUpOptionEnabled\r\n ? _getLineItemsByDeliveryTypeWithMulitplePickupMode()\r\n : undefined\r\n };\r\n };\r\n\r\n const handleLineItemHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\r\n const {\r\n config: { lineItemsHeading }\r\n } = input;\r\n if (lineItemsHeading) {\r\n lineItemsHeading.text = event.target.value;\r\n }\r\n };\r\n\r\n const _getGroupTitleComponentWithMultiplePickUp = (\r\n count: number,\r\n type: deliveryType,\r\n deliveryMode?: string,\r\n fulFillmentStoreId?: string\r\n ): string => {\r\n const {\r\n resources: { itemLabel, itemsLabel }\r\n } = input;\r\n\r\n let emailDeliveryModeDesc: string = '';\r\n let pickupDeliveryModeDesc: string = '';\r\n\r\n input.data.deliveryOptions.result?.find(productDeliveryOptions => {\r\n emailDeliveryModeDesc = emailDeliveryModeDesc\r\n ? emailDeliveryModeDesc\r\n : productDeliveryOptions.DeliveryOptions?.find(deliveryOption => deliveryOption.Code === emailDeliveryModeCode)\r\n ?.Description!;\r\n });\r\n\r\n input.data.deliveryOptions.result?.find(productDeliveryOptions => {\r\n pickupDeliveryModeDesc = pickupDeliveryModeDesc\r\n ? pickupDeliveryModeDesc\r\n : productDeliveryOptions.DeliveryOptions?.find(deliveryOption => deliveryOption.Code === deliveryMode)?.Description!;\r\n });\r\n\r\n const pickupTitle: string = `${pickupDeliveryModeDesc}, ${fulFillmentStoreId}`;\r\n const suffix = count > 1 ? itemsLabel : itemLabel;\r\n const title =\r\n type === 'ship'\r\n ? `(${count} ${suffix})`\r\n : type === 'pickup'\r\n ? `${pickupTitle} (${count} ${suffix})`\r\n : `${emailDeliveryModeDesc} (${count} ${suffix})`;\r\n return title.replace('{count}', count.toString()).replace('{suffix}', suffix);\r\n };\r\n\r\n const _filterItemsByMultiplePickupMode = (): CartLine[][] => {\r\n const cart = get(input, 'data.checkout.result.checkoutCart.cart');\r\n const getGroupByStorePickup = (items: CartLine[]) => groupBy(items, item => item.FulfillmentStoreId);\r\n const getGroupByDelivery = (items: CartLine[]) => groupBy(items, item => item.DeliveryMode);\r\n const groupDelivery = getGroupByDelivery(cart.CartLines);\r\n const cartLinesGroup: CartLine[] = [];\r\n const cartLinesGrp: CartLine[][] = [];\r\n\r\n // 1) Group by store and pick up mode\r\n Object.entries(groupDelivery).forEach(([deliveryMode, groupByDeliveryType]) => {\r\n // @ts-expect-error\r\n groupDelivery[deliveryMode] = getGroupByStorePickup(groupByDeliveryType);\r\n cartLinesGroup.push(getGroupByStorePickup(groupByDeliveryType));\r\n });\r\n\r\n Object.keys(cartLinesGroup).forEach((key: any) => {\r\n const cartLines: any = cartLinesGroup[key];\r\n Object.keys(cartLines).forEach((index: any) => {\r\n const cartLine = cartLines[index];\r\n cartLinesGrp.push(cartLine);\r\n });\r\n });\r\n\r\n return cartLinesGrp;\r\n };\r\n\r\n const _getLineItemsByDeliveryTypeWithMulitplePickupMode = (): ILineItemDeliveryGroup[] | undefined => {\r\n if (pickupDeliveryModeCode === '' || pickupDeliveryModeCode === undefined) {\r\n return;\r\n }\r\n\r\n const {\r\n resources: { multiplePickUpLabel, shippingLable }\r\n } = input;\r\n\r\n const items = _filterItemsByMultiplePickupMode();\r\n\r\n if (items.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const lineItemDeliveryGroup: ILineItemDeliveryGroup[] = [];\r\n items.map(item => {\r\n const count = _countItems(item);\r\n const cartLine = item[0];\r\n const pickupDeliveryLocation = _getDeliveryLocation(cartLine);\r\n const type: deliveryType =\r\n cartLine.FulfillmentStoreId && cartLine.DeliveryMode\r\n ? 'pickup'\r\n : cartLine.FulfillmentStoreId === '' &&\r\n cartLine.DeliveryMode === emailDeliveryModeCode &&\r\n !StringExtensions.isNullOrEmpty(emailDeliveryModeCode)\r\n ? 'email'\r\n : 'ship';\r\n const title = _getGroupTitleComponentWithMultiplePickUp(count, type, cartLine.DeliveryMode, pickupDeliveryLocation);\r\n const groupTitle = type === 'pickup' ? multiplePickUpLabel : type === 'ship' ? shippingLable : 'email';\r\n const iconClass = `ms-checkout__line-items-group-title-multiple-pickup-${type}icon`;\r\n lineItemDeliveryGroup.push({\r\n LineItemDeliveryGroup: { className: classnames('ms-checkout__line-items-delivery-group multiple-pickup', type) },\r\n LineItemList: { className: 'ms-checkout__line-items-list' },\r\n lineItemWraperIcon:
,\r\n lineItemWraper:
{groupTitle}
,\r\n heading:
{title}
,\r\n lineItems: _getLineItemsComponents(item)\r\n });\r\n });\r\n\r\n return lineItemDeliveryGroup;\r\n };\r\n\r\n return _getLineItems();\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IOrderSummaryLines, OrderSummary } from '@msdyn365-commerce-modules/order-summary-utilities';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport get from 'lodash/get';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckout4Data } from '../lds-checkout-4.data';\r\nimport { ILdsCheckout4Props } from '../lds-checkout-4.props.autogenerated';\r\n\r\nexport interface IOrderSummary {\r\n orderSummaryProps: INodeProps;\r\n heading?: React.ReactNode;\r\n lines?: IOrderSummaryLines;\r\n}\r\nexport const getOrderSummary = (input: ILdsCheckout4Props): IOrderSummary => {\r\n const {\r\n config: { orderSummaryHeading },\r\n data: { checkout },\r\n resources: {\r\n subTotalLabel,\r\n shippingLabel,\r\n taxLabel,\r\n orderTotalLabel,\r\n loyaltyLabel,\r\n giftcardLabel,\r\n totalDiscountsLabel,\r\n freeText,\r\n toBeCalculatedText,\r\n otherCharges,\r\n customerAccountLabel\r\n },\r\n context,\r\n typeName,\r\n id,\r\n telemetry\r\n } = input;\r\n\r\n const checkoutState = get(checkout, 'result');\r\n const cart = get(checkout, 'result.checkoutCart.cart');\r\n const showLineItems = cart.CartLines && cart.CartLines.length > 0;\r\n const channelConfiguration = context.request.channel!;\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n const { channelDeliveryOptionConfig, featureState } = input.data;\r\n const retailMultiplePickUpOptionEnabled = featureState?.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\r\n ?.IsEnabled;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\r\n // const isShowOrHideTaxEnabled = context.request.app.config.isEnableShowOrHideSalesTaxECommerceEnabled === true;\r\n\r\n const handleOrderSummaryHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\r\n const {\r\n config: { orderSummaryHeading }\r\n } = input;\r\n if (orderSummaryHeading) {\r\n orderSummaryHeading.text = event.target.value;\r\n }\r\n };\r\n\r\n return {\r\n orderSummaryProps: { className: 'ms-checkout-guest-profile__selected-item' },\r\n heading: orderSummaryHeading && orderSummaryHeading.text && (\r\n \r\n ),\r\n lines: showLineItems\r\n ? OrderSummary({\r\n checkoutState,\r\n cart,\r\n subTotalLabel,\r\n shippingLabel,\r\n taxLabel,\r\n orderTotalLabel,\r\n loyaltyLabel,\r\n giftcardLabel,\r\n totalDiscountsLabel,\r\n freeText,\r\n toBeCalculatedText,\r\n context,\r\n typeName,\r\n id,\r\n channelConfiguration,\r\n telemetry,\r\n otherChargeLabel: otherCharges,\r\n retailMultiplePickUpOptionEnabled,\r\n channelDeliveryOptionConfig: channelDeliveryOptionConfig?.result,\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- existing property.\r\n isTaxIncludedInPrice: cart.IsTaxIncludedInPrice,\r\n isShowTaxBreakup: true,\r\n customerAccountLabel\r\n })\r\n : undefined\r\n };\r\n};\r\n","import React from 'react';\r\n\r\nexport const SectionHeader: React.FC = ({ sectionNumber, headingText, canEdit, editButton }) => {\r\n const sectionContainerStyle: React.CSSProperties = {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n backgroundColor: '#EFF0F0',\r\n height: '60px',\r\n borderTop: '1px solid #878A8C',\r\n borderBottom: '1px solid #D0D3D3'\r\n };\r\n\r\n const sectionHeaderStyle: React.CSSProperties = {\r\n lineHeight: '60px',\r\n paddingRight: '16px',\r\n paddingLeft: '18px',\r\n fontFamily: `\"Ensign:Sans\", Arial,\"noto sans\" ,sans-serif`,\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '20px',\r\n color: '#000000'\r\n };\r\n return (\r\n
\r\n
{`${sectionNumber}. ${headingText}`}
\r\n
{canEdit && editButton}
\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IModuleStateManager } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { Heading as HeadingType } from '@msdyn365-commerce-modules/data-types';\r\nimport {\r\n // Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport classname from 'classnames';\r\nimport get from 'lodash/get';\r\nimport * as React from 'react';\r\nimport { focusOnCheckoutError, setCheckoutErrorFocus } from '@msdyn365-commerce-modules/checkout';\r\n\r\nimport { SectionHeader } from '../../../components/section-header';\r\n// @ts-ignore\r\nimport { Secondary, Ghost, A11y } from '@churchofjesuschrist/eden-buttons';\r\n\r\nexport interface ICheckoutGuidedCardProps {\r\n id?: string;\r\n step: number;\r\n title?: HeadingType;\r\n disabled?: boolean; // Module is not available\r\n isActive?: boolean; // Step === currentStep\r\n isVisted?: boolean; // Step < currentStep\r\n isExpanded?: boolean;\r\n isReady?: boolean;\r\n isPending?: boolean;\r\n isUpdating?: boolean;\r\n isSubmitting?: boolean;\r\n isCancelAllowed?: boolean;\r\n isMobile?: boolean;\r\n hasInitialized?: boolean;\r\n hasControlGroup?: boolean;\r\n shouldFocus?: boolean;\r\n children: React.ReactNode;\r\n moduleState?: IModuleStateManager;\r\n actionContext?: IActionContext;\r\n resource: {\r\n checkoutStepTitleFormat: string;\r\n saveBtnLabel: string;\r\n changeBtnLabel: string;\r\n cancelBtnLabel: string;\r\n saveAndContinueBtnLabel: string;\r\n };\r\n telemetryContent?: ITelemetryContent;\r\n onEdit?(): void;\r\n onCancel?(): void;\r\n onSubmit?(): void;\r\n onNext(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutGuidedCard component.\r\n * @extends {React.Component}\r\n */\r\nclass CheckoutGuidedCard extends React.PureComponent {\r\n private readonly editButtonRef: React.RefObject = React.createRef();\r\n\r\n private readonly formCardRef: React.RefObject = React.createRef();\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n constructor(props: ICheckoutGuidedCardProps) {\r\n super(props);\r\n this.payLoad = getPayloadObject('click', props.telemetryContent!, '');\r\n }\r\n\r\n public componentDidUpdate(prevProps: ICheckoutGuidedCardProps): void {\r\n /**\r\n * Move to next step when current step is ready.\r\n */\r\n const { isActive, isReady, onNext, isVisted, onEdit, shouldFocus, children, moduleState, actionContext } = this.props;\r\n\r\n // Move to next step after completing the current step\r\n if (isActive && isReady) {\r\n onNext();\r\n }\r\n\r\n // Set the focus to Edit button once edit button appear\r\n // (It happens when current step switch to isReady status)\r\n const prevCanEdit = prevProps.isReady && prevProps.isVisted && !!prevProps.onEdit;\r\n const canEdit = isReady && isVisted && !!onEdit;\r\n if (!prevCanEdit && canEdit) {\r\n this.focusOnEditButton();\r\n this.scrollToTitle();\r\n }\r\n\r\n // Set the focus to the first focusable element\r\n // (It happens when current step switch to isUpdating status)\r\n if (prevProps.isReady && !isReady) {\r\n this.focusOnFirstFocusableElement();\r\n }\r\n\r\n // Set the focus for the checkout error\r\n if (shouldFocus && actionContext) {\r\n const childrenModules = this._getModules(children);\r\n\r\n // Set the focus for the module within the checkout section container\r\n if (childrenModules.length > 0) {\r\n for (const childModule of childrenModules) {\r\n const childId = this._getId(childModule);\r\n const childState = moduleState?.getModule(childId);\r\n\r\n if (childState?.hasError) {\r\n void setCheckoutErrorFocus(childId, actionContext);\r\n return;\r\n }\r\n }\r\n } else {\r\n void focusOnCheckoutError(this.formCardRef, actionContext);\r\n }\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n title,\r\n disabled,\r\n isExpanded,\r\n isActive,\r\n isVisted,\r\n children,\r\n isReady,\r\n isPending,\r\n isUpdating,\r\n hasInitialized,\r\n hasControlGroup,\r\n onEdit,\r\n resource,\r\n step\r\n } = this.props;\r\n\r\n this.payLoad.contentAction.etext = TelemetryConstant.CheckoutChange;\r\n const changeBtnAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n const canEdit = hasControlGroup && isReady && isVisted && onEdit;\r\n\r\n // const onEditCustom = (num: number) => {\r\n // setCurrentStep(num);\r\n // if (onEdit) {\r\n // onEdit();\r\n // }\r\n // };\r\n\r\n const editButton = (\r\n (onEdit ? onEdit() : null)}\r\n role='button'\r\n aria-label={title && title.text ? `${resource.changeBtnLabel} ${title.text}` : ''}\r\n {...changeBtnAttributes}\r\n >\r\n {resource.changeBtnLabel}\r\n \r\n );\r\n\r\n const isAddressSection =\r\n // @ts-ignore\r\n this.props.children && this.props.children.props && this.props.children.props.typeName.includes('checkout-shipping-address');\r\n\r\n return (\r\n \r\n {this.getTitle(step === 0 && isAddressSection ? true : canEdit, editButton)}\r\n\r\n \r\n
{children}
\r\n\r\n {this.renderFooder()}\r\n
\r\n \r\n );\r\n }\r\n\r\n private readonly renderFooder = (): JSX.Element | null => {\r\n const { isVisted, isReady, isSubmitting, isCancelAllowed, hasControlGroup, onCancel, onSubmit, resource } = this.props;\r\n // const { saveBtnLabel, cancelBtnLabel, saveAndContinueBtnLabel } = resource;\r\n const { saveBtnLabel, saveAndContinueBtnLabel } = resource;\r\n\r\n const canSubmit = !isReady && onSubmit;\r\n const canCancel = !isReady && isVisted && isCancelAllowed && onCancel;\r\n\r\n if (!hasControlGroup || (!canSubmit && !canCancel)) {\r\n return null;\r\n }\r\n\r\n this.payLoad.contentAction.etext = isVisted ? TelemetryConstant.Save : TelemetryConstant.SaveContinue;\r\n // const saveBtnAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n this.payLoad.contentAction.etext = TelemetryConstant.Cancel;\r\n // const cancelBtnAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n\r\n if (this.props && this.props.id && this.props.id.includes('checkout-shipping-address')) {\r\n return null;\r\n } else if (this.props && this.props.id && this.props.id.includes('checkout-contact')) {\r\n return null;\r\n } else {\r\n return (\r\n
\r\n
\r\n {canCancel && (\r\n
\r\n \r\n {resource.cancelBtnLabel}\r\n \r\n
\r\n )}\r\n \r\n {canSubmit && (\r\n (onSubmit ? onSubmit() : null)}\r\n // {...saveBtnAttributes}\r\n style={{ width: '100%', marginRight: canCancel ? '0px' : '78px' }}\r\n >\r\n {/* @ts-ignore */}\r\n {isVisted && isCancelAllowed ? saveBtnLabel : resource.continueButtonText}\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n }\r\n };\r\n\r\n private readonly focusOnFirstFocusableElement = (): void => {\r\n const node = this.formCardRef.current as HTMLElement;\r\n const focussableElements = `\r\n a:not([disabled]),\r\n button:not([disabled]),\r\n input[type=submit]:not([disabled]),\r\n input[type=checkbox]:not([disabled]),\r\n input[type=text]:not([disabled]),\r\n input[type=radio]:not([disabled]),\r\n input[type=password]:not([disabled]),\r\n select:not([disabled]),\r\n textarea:not([disabled]),\r\n [tabindex]:not([disabled]):not([tabindex=\"-1\"])\r\n `;\r\n\r\n const child = node && node.querySelector && (node.querySelector(focussableElements) as HTMLElement);\r\n child && child.focus && child.focus();\r\n };\r\n\r\n private readonly focusOnEditButton = (): void => {\r\n // Focus on edit button\r\n const editButton =\r\n this.editButtonRef &&\r\n this.editButtonRef.current &&\r\n // @ts-ignore\r\n this.editButtonRef.current.focus &&\r\n (this.editButtonRef.current as HTMLElement);\r\n editButton && editButton.focus();\r\n };\r\n\r\n private readonly scrollToTitle = (): void => {\r\n // Scroll window to the title of the step that was just completed only in mobile viewport\r\n const formCard = this.props.isMobile && this.formCardRef && this.formCardRef.current && (this.formCardRef.current as HTMLElement);\r\n formCard && formCard.scrollIntoView();\r\n };\r\n\r\n private readonly getTitle = (canEdit?: any, button?: any): JSX.Element => {\r\n const { step, title } = this.props;\r\n const { text = '' } = title || {};\r\n return ;\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private readonly _getModules = (item: React.ReactNode): any[] => {\r\n return get(item, 'props.modules.primary') || [];\r\n };\r\n\r\n private readonly _getId = (item: React.ReactNode): string => {\r\n return get(item, 'id') || '';\r\n };\r\n}\r\n\r\nexport default CheckoutGuidedCard;\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 { IModuleStateManager } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { Heading } from '@msdyn365-commerce-modules/data-types';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\nimport get from 'lodash/get';\r\nimport { computed } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport GuidedCard from './guided-card';\r\n\r\nexport interface ICheckoutGuidedFormProps {\r\n items: React.ReactNode[];\r\n moduleState: IModuleStateManager;\r\n disableGuidedCheckoutFlow?: boolean;\r\n isMobile?: boolean;\r\n isEditor?: boolean;\r\n resource: {\r\n checkoutStepTitleFormat: string;\r\n saveBtnLabel: string;\r\n changeBtnLabel: string;\r\n cancelBtnLabel: string;\r\n saveAndContinueBtnLabel: string;\r\n };\r\n requestContext?: ICoreContext;\r\n telemetryContent?: ITelemetryContent;\r\n isPaymentVerificationRedirection?: boolean;\r\n shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\r\n hasError?: boolean;\r\n hasShippingAddress?: boolean | undefined;\r\n hasCartDeliveryMode?: boolean | undefined;\r\n hasGuestCheckoutEmail?: boolean | undefined;\r\n isTermsAndConditionAccepted?: boolean | undefined;\r\n shouldEnableCheckoutErrorDisplayMessaging?: boolean;\r\n shouldFocusOnCheckoutError?: boolean | undefined;\r\n}\r\n\r\ninterface ICheckoutGuidedFormState {\r\n currentStep: number;\r\n}\r\n\r\nconst paymentInstrumentModuleId = 'payment-instrument';\r\n\r\n/**\r\n *\r\n * CheckoutGuidedForm component.\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nclass CheckoutGuidedForm extends React.PureComponent {\r\n @computed public get hasMissingInfo(): boolean {\r\n if (\r\n this.props.hasShippingAddress === false ||\r\n this.props.hasCartDeliveryMode === false ||\r\n this.props.hasGuestCheckoutEmail === false ||\r\n this.props.isTermsAndConditionAccepted === false\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed public get hasOrderError(): boolean {\r\n for (const item of this.props.items) {\r\n const childId = this.getId(item);\r\n const state = this.props.moduleState.getModule(childId);\r\n\r\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n state.childIds?.filter(currentId => currentId?.includes(paymentInstrumentModuleId))\r\n );\r\n\r\n if (!isPaymentSectionContainer && !state.isDisabled && state.hasError) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public state: ICheckoutGuidedFormState = {\r\n currentStep: 0\r\n };\r\n\r\n public componentDidMount(): void {\r\n /**\r\n * Append child modules.\r\n */\r\n const childIds = this.props.items.map((item: React.ReactNode) => get(item, 'props.id'));\r\n this.props.moduleState.init({ childIds });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { moduleState, items, resource } = this.props;\r\n if (!items || !moduleState) {\r\n return null;\r\n }\r\n\r\n const shouldCollapseAfterRedirect =\r\n this.props.isPaymentVerificationRedirection &&\r\n this.props.shouldEnableSinglePaymentAuthorizationCheckout &&\r\n !this.props.hasError &&\r\n !this.hasMissingInfo &&\r\n !this.hasOrderError;\r\n\r\n let previousModuleHasError = false;\r\n\r\n return (\r\n
\r\n {items.map((item: React.ReactNode) => {\r\n const childId = this.getId(item);\r\n const step = this.getStep(childId);\r\n const title = this.getHeading(item);\r\n const state = this.props.moduleState.getModule(childId);\r\n const {\r\n isReady,\r\n isPending,\r\n isUpdating,\r\n isDisabled,\r\n isCancelAllowed,\r\n onEdit,\r\n onCancel,\r\n onSubmit,\r\n hasModuleState,\r\n hasInitialized,\r\n hasError\r\n } = state || ({} as IModuleStateManager);\r\n\r\n const shouldFocus =\r\n !!this.props.shouldEnableCheckoutErrorDisplayMessaging &&\r\n !!this.props.shouldFocusOnCheckoutError &&\r\n !previousModuleHasError &&\r\n hasError;\r\n previousModuleHasError = previousModuleHasError || shouldFocus;\r\n\r\n return (\r\n \r\n {React.cloneElement(item as React.ReactElement, { enableControl: true })}\r\n \r\n );\r\n })}\r\n
\r\n );\r\n }\r\n\r\n private readonly getEnabledModules = (): string[] => {\r\n const {\r\n moduleState: { childIds, getModule }\r\n } = this.props;\r\n return childIds.filter((childId: string) => {\r\n const state = getModule(childId);\r\n return !!state && !state.isDisabled;\r\n });\r\n };\r\n\r\n private readonly getStep = (id: string): number => {\r\n return this.getEnabledModules().indexOf(id);\r\n };\r\n\r\n private readonly getId = (item: React.ReactNode): string => {\r\n return get(item, 'props.id') || '';\r\n };\r\n\r\n private readonly getHeading = (item: React.ReactNode): Heading => {\r\n return get(item, 'props.config.heading') || '';\r\n };\r\n\r\n private readonly isExpanded = (step: number): boolean => {\r\n if (this.props.isEditor) {\r\n // Editorial mode: Expand all the drawers\r\n return true;\r\n }\r\n return step > -1 && step <= this.state.currentStep;\r\n };\r\n\r\n private readonly isActive = (step: number): boolean => {\r\n return step === this.state.currentStep;\r\n };\r\n\r\n private readonly isVisted = (step: number): boolean => {\r\n return step > -1 && step < this.state.currentStep;\r\n };\r\n\r\n private readonly onNext = (): void => {\r\n this.setState({\r\n currentStep: this.state.currentStep + 1\r\n });\r\n };\r\n}\r\n\r\nexport default CheckoutGuidedForm;\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 { TelemetryEvent } from '@msdyn365-commerce/core';\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React, { useState } from 'react';\r\n\r\ninterface ICheckoutPlaceOrderButtonProps {\r\n canPlaceOrder: boolean;\r\n checkoutBtnText: string;\r\n telemetryContent?: ITelemetryContent;\r\n shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\r\n isPlaceOrderLoading?: boolean;\r\n isExpressCheckoutApplied?: boolean;\r\n isPaymentVerificationRedirection?: boolean;\r\n placeOrder(): Promise;\r\n}\r\n\r\nconst buttonsStates: React.Dispatch>[] = [];\r\n\r\n/**\r\n * On place order function.\r\n * @param isBusy -Check is busy.\r\n * @param canPlaceOrder -Check can place order.\r\n * @param placeOrder -Place order function.\r\n * @returns Set state of button.\r\n */\r\nconst onPlaceOrderHandler = (isBusy: boolean, canPlaceOrder: boolean, placeOrder: () => Promise) => async () => {\r\n if (isBusy || !canPlaceOrder) {\r\n return;\r\n }\r\n buttonsStates.map(buttonSetState => {\r\n buttonSetState(true);\r\n return true;\r\n });\r\n await placeOrder();\r\n};\r\n\r\nconst CheckoutPlaceOrderButton: React.FC = ({\r\n checkoutBtnText,\r\n canPlaceOrder,\r\n placeOrder,\r\n telemetryContent,\r\n shouldEnableSinglePaymentAuthorizationCheckout,\r\n isPlaceOrderLoading,\r\n isExpressCheckoutApplied,\r\n isPaymentVerificationRedirection\r\n}) => {\r\n const [isBusy, setIsBusy] = useState(false);\r\n buttonsStates.push(setIsBusy);\r\n const payload = getPayloadObject(TelemetryEvent.Purchase, telemetryContent!, checkoutBtnText, '');\r\n const attributes = getTelemetryAttributes(telemetryContent!, payload);\r\n\r\n if (shouldEnableSinglePaymentAuthorizationCheckout && (!isExpressCheckoutApplied || isPaymentVerificationRedirection)) {\r\n return (\r\n \r\n {checkoutBtnText}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {checkoutBtnText}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutPlaceOrderButton;\r\n","/* eslint-disable security/detect-object-injection */\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { AsyncResultStatus, Cart, CartLineValidationResults } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n updateLineDeliverySpecificationsAsync,\r\n validateForCheckoutAsync\r\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport {\r\n Address,\r\n DeliveryPreferenceType,\r\n LineDeliverySpecification,\r\n SimpleProduct,\r\n TokenizedPaymentCard\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IModuleStateManager, IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport {\r\n ArrayExtensions,\r\n getAvailabilitiesForCartLineItems,\r\n IProductInventoryInformation,\r\n ProductAvailabilitiesForCartLineItems,\r\n validateCartLinesInventory\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IModuleProps,\r\n INodeProps,\r\n ITelemetryContent,\r\n TelemetryConstant,\r\n Waiting\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ErrorCode, ErrorLocation } from '@msdyn365-commerce/global-state';\r\nimport classnames from 'classnames';\r\nimport isEmpty from 'lodash/isEmpty';\r\nimport { action, computed, get, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckout4Data } from './lds-checkout-4.data';\r\nimport { ICheckoutHeadingData, ILdsCheckout4Props } from './lds-checkout-4.props.autogenerated';\r\nimport AlertComponent from './components/alert';\r\nimport { getInvoicePaymentSummary, IInvoicePaymentSummary } from './components/get-invoice-payment-summary';\r\nimport { getLineItems, ILineItems } from './components/get-line-items';\r\nimport { getOrderSummary, IOrderSummary } from './components/get-order-summary';\r\nimport GuidedFormComponent from './components/guided-form';\r\nimport PlaceOrderButtonComponent from './components/place-order-button';\r\nimport placeOrder from './methods/place-order';\r\nimport { focusOnCheckoutError, setCheckoutErrors } from '@msdyn365-commerce-modules/checkout';\r\nimport { AsyncResultStatusCode, IExpressPaymentDetails } from '@msdyn365-commerce-modules/checkout';\r\n\r\nexport * from './components/get-line-items';\r\nexport * from './components/get-order-summary';\r\n\r\n/**\r\n * Device type.\r\n */\r\ntype DeviceType = 'Mobile';\r\n\r\n/**\r\n * The Checkout state.\r\n */\r\ninterface ICheckoutState {\r\n errorMessage: string;\r\n isValidationPassed: boolean;\r\n isPlaceOrderLoading?: boolean;\r\n isPlaceOrderClicked?: boolean;\r\n}\r\n\r\n/**\r\n * Known action error failure states\r\n */\r\nexport const enum ActionErrorStatus {\r\n Timeout = 'Timeout',\r\n HookTimeout = 'Hook Timeout',\r\n ServiceUnavailable = 'Service Unavailable'\r\n}\r\n\r\n/**\r\n * The Checkout view props.\r\n * @extends ILdsCheckout4Props\r\n */\r\nexport interface ICheckoutViewProps extends ILdsCheckout4Props {\r\n className: string;\r\n isPlaceOrderClicked?: boolean;\r\n canShow?: boolean;\r\n isEmptyCart?: boolean;\r\n isConsentGiven?: boolean;\r\n hasError?: boolean;\r\n isPaymentVerificationRedirection?: boolean;\r\n shouldEnableSinglePaymentAuthorizationCheckout?: boolean;\r\n cartStatus?: string;\r\n isMobile?: boolean;\r\n isEditorialMode?: boolean;\r\n backToShoppingUrl?: string;\r\n editCartLink?: string;\r\n hasSalesOrder: boolean;\r\n hasInvoiceLine?: boolean;\r\n\r\n checkoutProps: IModuleProps;\r\n headerProps: INodeProps;\r\n bodyProps: INodeProps;\r\n mainProps: INodeProps;\r\n mainControlProps: INodeProps;\r\n sideProps: INodeProps;\r\n sideControlFirstProps: INodeProps;\r\n sideControlSecondProps: INodeProps;\r\n termsAndConditionsProps: INodeProps;\r\n\r\n guidedForm?: React.ReactNode;\r\n title?: React.ReactNode;\r\n loading?: React.ReactNode;\r\n alert?: React.ReactNode;\r\n orderSummary?: IOrderSummary;\r\n invoicePaymentSummary?: IInvoicePaymentSummary;\r\n lineItems?: ILineItems;\r\n placeOrderButton?: React.ReactNode;\r\n termsAndConditions?: React.ReactNode;\r\n keepShoppingButton?: React.ReactNode;\r\n orderConfirmation?: React.ReactNode;\r\n\r\n checkoutExpressPaymentContainer?: React.ReactNode;\r\n checkoutErrorRef?: React.RefObject;\r\n}\r\n\r\n/**\r\n * The checkout module props interface.\r\n */\r\nexport interface ICheckoutModuleProps extends ILdsCheckout4Props, IModuleStateProps {}\r\n\r\nconst expressPaymentSectionClassName = 'msc-express-payment-container';\r\n\r\n/**\r\n *\r\n * CheckoutContainer component.\r\n * @extends {React.Component}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass Checkout extends React.PureComponent {\r\n @computed get cartStatus(): Msdyn365.AsyncResultStatus {\r\n return this.props.data.checkout?.status;\r\n }\r\n\r\n @computed get isEmptyCart(): boolean {\r\n if (this.isEditorialMode) {\r\n // Editorial mode: Ignore empty cart\r\n return false;\r\n }\r\n const cart = this.props.data.checkout?.result?.checkoutCart?.cart;\r\n return this.cartStatus === 'SUCCESS' && !!cart && !isEmpty(cart) && (!cart.CartLines || cart.CartLines.length === 0);\r\n }\r\n\r\n @computed get hasError(): boolean {\r\n const cart = this.props.data.checkout?.result?.checkoutCart?.cart;\r\n return this.cartStatus === 'FAILED' || (this.cartStatus === 'SUCCESS' && (!cart || isEmpty(cart)));\r\n }\r\n\r\n @computed get isEditorialMode(): boolean {\r\n return this.props.context.request.params.isEditor;\r\n }\r\n\r\n @computed get canPlaceOrder(): boolean {\r\n const isTermsAndConditionAccepted = this.props.data.checkout.result && this.props.data.checkout.result?.isTermsAndConditionAccepted;\r\n\r\n const shouldEnableSinglePaymentAuthorizationCheckout =\r\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout ?? false;\r\n\r\n const disableForOBO = Msdyn365.isOboRequest(this.props.context.request) && !this.isPaidOffByCustomerAccount;\r\n\r\n // If isTermsAndConditionAccepted is undefined means TermsAndCondition module is not added to page and we should able to place order.\r\n return (\r\n this.props.moduleState.isReady &&\r\n (isTermsAndConditionAccepted === undefined || isTermsAndConditionAccepted || shouldEnableSinglePaymentAuthorizationCheckout) &&\r\n (this.state.errorMessage === '' ||\r\n shouldEnableSinglePaymentAuthorizationCheckout ||\r\n (this.props.data.checkout.result?.isPaymentVerificationRedirection ?? false)) &&\r\n !(shouldEnableSinglePaymentAuthorizationCheckout && disableForOBO)\r\n );\r\n }\r\n\r\n @computed get isPaidOffByCustomerAccount(): boolean {\r\n const amountDue = this.props.data.checkout.result?.checkoutCart.cart.TotalAmount ?? 0;\r\n const customerAccountAmount = this.props.data.checkout.result?.customerAccountAmount ?? 0;\r\n\r\n return customerAccountAmount === amountDue;\r\n }\r\n\r\n @computed get isCartReady(): boolean {\r\n return (\r\n !!this.props.data.checkout.result?.checkoutCart?.cart &&\r\n this.props.data.customerInformation.status !== 'LOADING' &&\r\n this.props.data.featureState.status !== 'LOADING'\r\n );\r\n }\r\n\r\n public get expressPaymentDetailsFromCartPage(): IExpressPaymentDetails | null {\r\n const properties =\r\n this.props.data.checkout?.result?.checkoutCart?.cart?.ExtensionProperties?.find(\r\n property => property.Key === 'expressPaymentDetails'\r\n )?.Value?.StringValue ?? '';\r\n return properties ? (JSON.parse(properties) as IExpressPaymentDetails) : null;\r\n }\r\n\r\n public state: ICheckoutState = {\r\n errorMessage: '',\r\n isValidationPassed: false,\r\n isPlaceOrderLoading: false,\r\n isPlaceOrderClicked: false\r\n };\r\n\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\r\n\r\n public componentDidMount(): void {\r\n const {\r\n resources: { genericErrorMessage }\r\n } = this.props;\r\n\r\n when(\r\n () => this.asyncResultStatus !== AsyncResultStatusCode.LOADING,\r\n async () => {\r\n if (this.expressPaymentDetailsFromCartPage) {\r\n const {\r\n email,\r\n tenderLine,\r\n tokenizedPaymentCard,\r\n paymentTenderType: paymentTenderTypeFromCartPage,\r\n isExpressCheckoutAppliedInCartPage,\r\n isExpressAddressAppliedInCartPage,\r\n cardPaymentAcceptResult,\r\n address\r\n } = this.expressPaymentDetailsFromCartPage;\r\n\r\n this.props.data.checkout.result?.updateExpressCheckoutDetails({\r\n newEmailAddressFromExpressCheckout: email ?? '',\r\n newTenderLine: tenderLine,\r\n newTokenizedPaymentCard: tokenizedPaymentCard,\r\n newPaymentTenderType: paymentTenderTypeFromCartPage,\r\n newIsExpressCheckoutApplied: isExpressCheckoutAppliedInCartPage,\r\n newIsExpressAddressApplied: isExpressAddressAppliedInCartPage,\r\n newCardPaymentAcceptResult: cardPaymentAcceptResult\r\n });\r\n\r\n if (isExpressAddressAppliedInCartPage && address) {\r\n this.props.data.checkout.result?.updateBillingAddressFromExpressCheckout({\r\n newBillingAddressFromExpressCheckout: address\r\n });\r\n this.props.data.checkout.result?.updateShippingAddressFromExpressCheckout({\r\n newShippingAddressFromExpressCheckout: address\r\n });\r\n } else {\r\n void this._saveShippingAndBillingAddress(tokenizedPaymentCard);\r\n }\r\n\r\n this.props.data.checkout.result?.checkoutCart.updateExtensionProperties({\r\n newExtensionProperties: [\r\n {\r\n Key: 'expressPaymentDetails',\r\n Value: { StringValue: '' }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n );\r\n\r\n when(\r\n () => this.hasError,\r\n () => {\r\n this.setState({\r\n errorMessage: genericErrorMessage\r\n });\r\n this.props.context.telemetry.error('Failed to get cart');\r\n }\r\n );\r\n\r\n when(\r\n () => {\r\n return this.isEmptyCart;\r\n },\r\n () => {\r\n this.redirectToCartPage('Cart is empty, but no editCartLink found');\r\n }\r\n );\r\n\r\n when(\r\n () => this.isCartReady,\r\n () => {\r\n this.validateForCheckout();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.moduleState.isReady,\r\n () => {\r\n this.onContainerReady();\r\n }\r\n );\r\n\r\n // Reaction to call place order when isPaymentSectionContainerReady is true for new checkout flow.\r\n reaction(\r\n () => this.props.data.checkout.result?.isPaymentSectionContainerReady,\r\n async isReady => {\r\n if (\r\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout &&\r\n isReady &&\r\n !this.props.data.checkout.result?.redirectAdditionalContext &&\r\n (!this.props.data.checkout.result?.isExpressCheckoutApplied ||\r\n this.props.data.checkout.result?.isPaymentVerificationRedirection)\r\n ) {\r\n if (!this.state.isPlaceOrderLoading) {\r\n this.setState({ isPlaceOrderLoading: true });\r\n }\r\n\r\n this.props.telemetry.information(\r\n 'Call onPlaceOrder as reaction when isPaymentSectionContainerReady is updated for single auth payment.'\r\n );\r\n\r\n await this.onPlaceOrder();\r\n\r\n // If 3D authentication redirection, don't update isPlaceOrderLoading\r\n if (!this.props.data.checkout.result.isPaymentVerificationRequired) {\r\n this.setState({ isPlaceOrderLoading: false });\r\n }\r\n }\r\n }\r\n );\r\n\r\n // Reaction to enable place order button when isPaymentSectionContainerHasError is true for new checkout flow.\r\n reaction(\r\n () => this.props.data.checkout.result?.isPaymentSectionContainerHasError,\r\n hasError => {\r\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout && hasError) {\r\n this.setState({ isPlaceOrderLoading: false });\r\n\r\n this.props.telemetry.information(\r\n 'Enable place order button as reaction when isPaymentSectionContainerHasError is updated to true for single auth payment.'\r\n );\r\n } else {\r\n this.props.telemetry.information(\r\n 'No reaction when isPaymentSectionContainerHasError is updated to false or not single auth payment.'\r\n );\r\n }\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.isBillingAddressHasError,\r\n hasError => {\r\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout && hasError) {\r\n this.setState({ isPlaceOrderLoading: false });\r\n\r\n this.props.data.checkout.result?.updateIsBillingAddressHasError({ newIsBillingAddressHasError: false });\r\n\r\n this.props.telemetry.information(\r\n 'Enable place order button as reaction when isBillingAddressHasError is updated to true for single auth payment.'\r\n );\r\n } else {\r\n this.props.telemetry.information(\r\n 'No reaction when isBillingAddressHasError is updated to false or not single auth payment.'\r\n );\r\n }\r\n }\r\n );\r\n\r\n // Reaction to enable place order button when redirection is true for new checkout flow.\r\n reaction(\r\n () => this.canPlaceOrder,\r\n async () => {\r\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout && this.canPlaceOrder) {\r\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\r\n await this.props.data.checkout.result.updateIsPlaceOrderEnabledInRedirection({\r\n newIsPlaceOrderEnabledInRedirection: true\r\n });\r\n\r\n this.props.telemetry.information(\r\n 'Set isPaymentVerificationRedirection to true as reaction when canPlaceOrder is updated to true for single auth payment.'\r\n );\r\n } else {\r\n this.props.telemetry.information(\r\n 'No reaction when canPlaceOrder is updated to true but isPaymentVerificationRedirection is false for single auth payment.'\r\n );\r\n this.props.telemetry.information(\r\n `isOBORequest is ${Msdyn365.isOboRequest(this.props.context.request)} and canPlaceOrder is ${\r\n this.canPlaceOrder\r\n }.`\r\n );\r\n }\r\n } else {\r\n this.props.telemetry.information('No reaction when canPlaceOrder is updated to false or not single auth payment.');\r\n }\r\n }\r\n );\r\n\r\n // Reaction to update the error message when there is a checkout error.\r\n reaction(\r\n () => this.props.data.checkout.result?.checkoutError,\r\n checkoutError => {\r\n const checkoutErrorLocation: boolean = checkoutError?.errorLocation === ErrorLocation.Checkout;\r\n // If there is an Error in CheckoutPaymentInstrument module, checkout error location will be updated.\r\n const checkoutPaymentErrorLocation: boolean =\r\n checkoutError?.errorCode === ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment\r\n ? checkoutError.errorLocation === ErrorLocation.CheckoutPaymentInstrument\r\n : checkoutErrorLocation;\r\n if (\r\n this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging &&\r\n checkoutError &&\r\n checkoutError.errorMessage &&\r\n (checkoutErrorLocation ? checkoutErrorLocation : checkoutPaymentErrorLocation)\r\n ) {\r\n this._setErrorMessage(checkoutError.errorMessage);\r\n }\r\n }\r\n );\r\n }\r\n\r\n public componentDidUpdate(): void {\r\n if (\r\n this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging &&\r\n this.props.data.checkout.result?.shouldFocusOnCheckoutError &&\r\n this.state.errorMessage\r\n ) {\r\n void focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line complexity -- ignore the complexity.\r\n public render(): JSX.Element {\r\n const {\r\n moduleState,\r\n config: { className, checkoutHeading, disableGuidedCheckoutFlow },\r\n resources,\r\n context: {\r\n request: {\r\n user: { isAuthenticated }\r\n }\r\n }\r\n } = this.props;\r\n const { errorMessage } = this.state;\r\n const { backToShopping, placeOrderText, confirmPaymentText, cookieConsentRequiredMessage, genericErrorMessage } = resources;\r\n const checkoutClass = classnames('ms-checkout', className);\r\n // const allCheckoutInformation = this.getSlotItems('checkoutInformation');\r\n const allCheckoutInformation = this.getSlotItems();\r\n\r\n // @ts-expect-error - check the key of slot\r\n const checkoutInformation = allCheckoutInformation?.filter(info => !info?.key.includes('express-payment'));\r\n\r\n // @ts-expect-error - check the key of slot\r\n const checkoutExpressPaymentContainer = allCheckoutInformation?.find(info => info?.key.includes('express-payment'));\r\n\r\n const isConsentGiven =\r\n this.props.context.request &&\r\n this.props.context.request.cookies &&\r\n this.props.context.request.cookies.isConsentGiven &&\r\n this.props.context.request.cookies.isConsentGiven();\r\n\r\n const isMobile =\r\n this.props.context.request &&\r\n this.props.context.request.device &&\r\n (this.props.context.request.device.Type as DeviceType) === 'Mobile';\r\n\r\n const backToShoppingUrl = Msdyn365.getUrlSync('home', this.props.context.actionContext) || '';\r\n const editCartLink = Msdyn365.getUrlSync('cart', this.props.context.actionContext) || '';\r\n\r\n const termsAndConditions =\r\n this.props.slots.termsAndConditions && this.props.slots.termsAndConditions.length > 0 && this.props.slots.termsAndConditions[0];\r\n\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.BackToShopping);\r\n const backToShoppingAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n\r\n const hasInvoiceLine = this.props.data.checkout && this.props.data.checkout.result?.checkoutCart.hasInvoiceLine;\r\n const checkoutBtnText = hasInvoiceLine ? confirmPaymentText : placeOrderText;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const shouldEnableSinglePaymentAuthorizationCheckout =\r\n this.props.data.checkout?.result?.shouldEnableSinglePaymentAuthorizationCheckout ?? false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const isExpressCheckoutApplied = this.props.data.checkout?.result?.isExpressCheckoutApplied ?? false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const hasShippingAddress = this.props.data.checkout?.result?.hasShippingAddress;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const hasCartDeliveryMode = this.props.data.checkout?.result?.hasCartDeliveryMode;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const hasGuestCheckoutEmail = this.props.data.checkout?.result?.hasGuestCheckoutEmail;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const isTermsAndConditionAccepted = this.props.data.checkout?.result?.isTermsAndConditionAccepted;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const isPaymentVerificationRedirection = this.props.data.checkout?.result?.isPaymentVerificationRedirection ?? false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const shouldEnableCheckoutErrorDisplayMessaging =\r\n this.props.data.checkout?.result?.shouldEnableCheckoutErrorDisplayMessaging ?? false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check null/undefined.\r\n const shouldFocusOnCheckoutError = this.props.data.checkout?.result?.shouldFocusOnCheckoutError;\r\n\r\n let hasExpressPaymentContainer = false;\r\n\r\n if (\r\n typeof window !== 'undefined' &&\r\n (document?.getElementsByClassName(expressPaymentSectionClassName) as HTMLCollectionOf)[0]?.style.display === ''\r\n ) {\r\n hasExpressPaymentContainer = true;\r\n }\r\n\r\n let viewProps: ICheckoutViewProps = {\r\n ...this.props,\r\n isPlaceOrderClicked: this.state.isPlaceOrderClicked,\r\n className: checkoutClass,\r\n checkoutErrorRef: this.checkoutErrorRef,\r\n isEmptyCart: this.isEmptyCart,\r\n isConsentGiven,\r\n hasError: this.hasError,\r\n isPaymentVerificationRedirection: this.props.data.checkout?.result?.isPaymentVerificationRedirection,\r\n shouldEnableSinglePaymentAuthorizationCheckout,\r\n hasSalesOrder:\r\n this.props.data.checkout &&\r\n this.props.data.checkout.result !== undefined &&\r\n this.props.data.checkout.result.salesOrder !== undefined,\r\n hasInvoiceLine,\r\n cartStatus: this.cartStatus,\r\n isMobile,\r\n backToShoppingUrl,\r\n editCartLink,\r\n isEditorialMode: this.isEditorialMode,\r\n orderConfirmation:\r\n this.props.slots.orderConfirmation && this.props.slots.orderConfirmation.length > 0\r\n ? this.props.slots.orderConfirmation[0]\r\n : undefined,\r\n checkoutProps: { moduleProps: this.props, className: checkoutClass },\r\n headerProps: { className: 'ms-checkout__head' },\r\n bodyProps: { className: 'ms-checkout__body' },\r\n mainProps: { className: 'ms-checkout__main' },\r\n mainControlProps: { className: 'ms-checkout__main-control' },\r\n sideProps: { className: hasExpressPaymentContainer ? 'ms-checkout__has-express-side' : 'ms-checkout__side' },\r\n sideControlFirstProps: { className: 'ms-checkout__side-control-first' },\r\n sideControlSecondProps: { className: 'ms-checkout__side-control-second' },\r\n termsAndConditionsProps: { className: 'ms-checkout__terms-and-conditions' },\r\n title: checkoutHeading && this.renderMsdyn365Text(checkoutHeading),\r\n checkoutExpressPaymentContainer\r\n };\r\n\r\n if (!isConsentGiven && isAuthenticated) {\r\n viewProps = {\r\n ...viewProps,\r\n alert: \r\n };\r\n } else if (this.isLoading()) {\r\n viewProps = {\r\n ...viewProps,\r\n loading: \r\n };\r\n } else if (this.hasError) {\r\n viewProps = {\r\n ...viewProps,\r\n alert: \r\n };\r\n } else {\r\n viewProps = {\r\n ...viewProps,\r\n alert: errorMessage && ,\r\n canShow: true,\r\n guidedForm: checkoutInformation ? (\r\n \r\n ) : (\r\n undefined\r\n ),\r\n orderSummary: getOrderSummary(this.props),\r\n invoicePaymentSummary: getInvoicePaymentSummary(this.props),\r\n lineItems: hasInvoiceLine ? undefined : getLineItems(this.props, this.telemetryContent),\r\n placeOrderButton: (\r\n \r\n ),\r\n termsAndConditions,\r\n keepShoppingButton: backToShoppingUrl && (\r\n \r\n {backToShopping}\r\n \r\n )\r\n };\r\n }\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n @computed public get asyncResultStatus(): AsyncResultStatus | undefined {\r\n const isLoading = Object.values(this.props.data).some(data => get(data, 'status') === AsyncResultStatusCode.LOADING);\r\n if (isLoading) {\r\n return AsyncResultStatusCode.LOADING;\r\n }\r\n\r\n const isSuccess = Object.values(this.props.data).every(data => get(data, 'status') === AsyncResultStatusCode.SUCCESS);\r\n if (isSuccess) {\r\n return AsyncResultStatusCode.SUCCESS;\r\n }\r\n\r\n const isFailed = Object.values(this.props.data).some(data => get(data, 'status') === AsyncResultStatusCode.FAILED);\r\n if (isFailed) {\r\n return AsyncResultStatusCode.FAILED;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Renders heading.\r\n * @param checkoutHeading - The checkout heading.\r\n * @returns React node.\r\n */\r\n public renderMsdyn365Text(checkoutHeading: ICheckoutHeadingData): React.ReactNode {\r\n return (\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Event handler for heading change event.\r\n * @param event - The content change event in heading element.\r\n * @returns The new heading value.\r\n */\r\n public handleCheckoutHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\r\n (this.props.config.checkoutHeading!.text = event.target.value);\r\n\r\n /**\r\n * Checks if cart is loading.\r\n * @returns True if is loading, false otherwise.\r\n */\r\n private readonly isLoading = (): boolean => {\r\n return !this.cartStatus || this.cartStatus === 'LOADING' || this.isEmptyCart || !this.state.isValidationPassed;\r\n };\r\n\r\n /**\r\n * Get slot items.\r\n * @param key - The slot key.\r\n * @returns React node or undefined.\r\n */\r\n private readonly getSlotItems = (): React.ReactNode[] | undefined => {\r\n const { slots } = this.props;\r\n const key = 'checkoutInformation' as keyof typeof slots;\r\n return slots && slots[key] && slots[key].length > 0 ? slots[key] : undefined;\r\n };\r\n\r\n /**\r\n * Trigger the payment section container submit when placing order.\r\n */\r\n private readonly triggerPaymentWithPlaceOrder = async (): Promise => {\r\n this.setState({ isPlaceOrderLoading: true });\r\n\r\n await this.props.data.checkout.result?.updateShouldTriggerPaymentWithPlaceOrder({\r\n newShouldTriggerPaymentWithPlaceOrder: !this.props.data.checkout.result.shouldTriggerPaymentWithPlaceOrder\r\n });\r\n };\r\n\r\n /**\r\n * On place order.\r\n * @returns Void promise.\r\n */\r\n private readonly onPlaceOrder = async (): Promise => {\r\n const {\r\n resources: {\r\n checkoutOutOfStockErrorMessage\r\n // genericErrorMessage,\r\n // invalidCartVersionErrorMessage,\r\n // missingRequiredCartTenderLinesErrorMessage\r\n },\r\n context: {\r\n actionContext,\r\n app: {\r\n config: { enableStockCheck = false }\r\n }\r\n },\r\n slots: { orderConfirmation },\r\n data: { checkout, products }\r\n } = this.props;\r\n\r\n this.props.telemetry.information('Checkout onPlaceOrder is called.');\r\n this.setState({ isPlaceOrderClicked: true });\r\n\r\n // If hasInvoiceLine is true, no inventory check\r\n if (\r\n !this.props.data.checkout.result?.checkoutCart.hasInvoiceLine &&\r\n enableStockCheck &&\r\n (await this.isOverMaxQuantity((await checkout).checkoutCart.cart, await products))\r\n ) {\r\n this.setState({\r\n errorMessage: checkoutOutOfStockErrorMessage\r\n });\r\n this.props.context.telemetry.error(checkoutOutOfStockErrorMessage);\r\n } else {\r\n if (this.canPlaceOrder === false) {\r\n this.props.context.telemetry.error('Order cannot be placed');\r\n this.setState({\r\n errorMessage: this.props.resources.incompleteAddressValue,\r\n isPlaceOrderClicked: false\r\n });\r\n } else if (this.canPlaceOrder) {\r\n const hasOrderConfirmation = orderConfirmation && orderConfirmation.length > 0;\r\n\r\n const updatedCartVersion = await this.updateCartLineEmailAddress(this.props.data.checkout.result?.guestCheckoutEmail || '');\r\n\r\n await placeOrder(\r\n actionContext,\r\n this.props.data.checkout.result,\r\n this.props.data.products.result,\r\n !hasOrderConfirmation,\r\n updatedCartVersion,\r\n this.props.data.checkout.result?.isPaymentVerificationRedirection\r\n ).catch(error => {\r\n this.handleCheckoutError(error);\r\n });\r\n\r\n await checkout.result?.updateIsPaymentSectionContainerReady({ newIsPaymentSectionContainerReady: false });\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Update receipt email address for electronic cart line.\r\n * @param newGuestCheckoutEmail - The guest checkout email.\r\n * @returns The updated cart version.\r\n */\r\n private readonly updateCartLineEmailAddress = async (newGuestCheckoutEmail: string): Promise => {\r\n const emailDeliveryModeCode = this.props.context.request.channel?.EmailDeliveryModeCode;\r\n\r\n const emailDeliveryCartLines = this.props.data.checkout.result?.checkoutCart.cart.CartLines?.filter(\r\n cartLine => cartLine.DeliveryMode && cartLine.DeliveryMode !== '' && cartLine.DeliveryMode === emailDeliveryModeCode\r\n );\r\n\r\n let updatedCartVersion: number | undefined;\r\n if (emailDeliveryCartLines && emailDeliveryCartLines.length > 0) {\r\n const lineDeliverySpecifications: LineDeliverySpecification[] = emailDeliveryCartLines.map(line => {\r\n return {\r\n LineId: line.LineId,\r\n DeliverySpecification: {\r\n DeliveryModeId: emailDeliveryModeCode,\r\n DeliveryPreferenceTypeValue: DeliveryPreferenceType.ElectronicDelivery,\r\n ElectronicDeliveryEmailAddress: newGuestCheckoutEmail\r\n }\r\n };\r\n });\r\n\r\n await updateLineDeliverySpecificationsAsync(\r\n { callerContext: this.props.context.actionContext },\r\n (await this.props.data.checkout).checkoutCart.cart.Id,\r\n lineDeliverySpecifications\r\n )\r\n .then(updatedCart => {\r\n updatedCartVersion = updatedCart.Version;\r\n })\r\n .catch(error => {\r\n this.props.context.actionContext.telemetry.exception(error);\r\n throw new Error('[updateLineDeliverySpecificationsAsync] Unable to update electronic delivery email address in cart');\r\n });\r\n }\r\n\r\n return updatedCartVersion;\r\n };\r\n\r\n /**\r\n * Return true if any product in the cart is over its max quantity.\r\n * @param cart -- The checkout cart.\r\n * @param products -- The checkout products.\r\n * @returns - Is any product in the cart is over max quantity.\r\n */\r\n private readonly isOverMaxQuantity = async (cart: Cart, products: SimpleProduct[]): Promise => {\r\n let isOverMaxQuantity = false;\r\n const emailDeliveryModeCode = this.props.context.request.channel?.EmailDeliveryModeCode;\r\n\r\n await getAvailabilitiesForCartLineItems(\r\n new ProductAvailabilitiesForCartLineItems(this.props.context.actionContext.requestContext.apiSettings),\r\n this.props.context.actionContext\r\n )\r\n .then(productInventoryInformation => {\r\n const productsThatShouldValidateInventory: IProductInventoryInformation[] = [];\r\n\r\n cart.CartLines?.map(cartline => {\r\n const cartlineProduct = products.find(product => product.RecordId === cartline.ProductId);\r\n\r\n // If product is non-stocked or cartline is electronic delivery, then no inventory check\r\n const isStockedItem = cartlineProduct?.Behavior?.IsStockedProduct;\r\n const isEmailDelivery =\r\n cartline.DeliveryMode && cartline.DeliveryMode !== '' ? cartline.DeliveryMode === emailDeliveryModeCode : false;\r\n const shouldSkipInventoryCheck = !isStockedItem || isEmailDelivery;\r\n if (!shouldSkipInventoryCheck && ArrayExtensions.hasElements(productInventoryInformation)) {\r\n const foundProductAvailability = productInventoryInformation.find(productInventory => {\r\n return productInventory.ProductAvailableQuantity?.ProductId! === cartline.ProductId;\r\n });\r\n if (foundProductAvailability) {\r\n productsThatShouldValidateInventory.push(foundProductAvailability);\r\n }\r\n }\r\n });\r\n\r\n const cartLinesInventoryValidation = validateCartLinesInventory(\r\n cart.CartLines ?? [],\r\n productsThatShouldValidateInventory,\r\n this.props.context.actionContext,\r\n products,\r\n emailDeliveryModeCode\r\n );\r\n\r\n // If is invalid then exceeds the available quantity\r\n isOverMaxQuantity = !cartLinesInventoryValidation.isValid;\r\n return isOverMaxQuantity;\r\n })\r\n .catch(error => {\r\n this.props.context.actionContext.telemetry.exception(error);\r\n throw new Error('[getAvailabilitiesForCartLineItems] Unable to get availabilities for products in checkout cart');\r\n });\r\n\r\n return isOverMaxQuantity;\r\n };\r\n\r\n /**\r\n * Gets active child in module state.\r\n * @returns - The module state manager collection.\r\n */\r\n private readonly getActiveChildModuleStates = (): IModuleStateManager[] => {\r\n const { childIds, getModule } = this.props.moduleState;\r\n return childIds\r\n .map(getModule)\r\n .filter((state): state is IModuleStateManager => !!state && !state.isDisabled && state.hasModuleState);\r\n };\r\n\r\n /**\r\n * On container ready.\r\n */\r\n private readonly onContainerReady = (): void => {\r\n this.props.telemetry.information('Checkout onContainerReady is called.');\r\n\r\n this.getActiveChildModuleStates().forEach(state => {\r\n state.isReady && state.onContainerReady && state.onContainerReady();\r\n });\r\n };\r\n\r\n /**\r\n * Redirects to cart page.\r\n * @param notFoundEditCartLinkMessage - Not found edit cart link message.\r\n */\r\n private readonly redirectToCartPage = (notFoundEditCartLinkMessage: string): void => {\r\n const editCartLink = Msdyn365.getUrlSync('cart', this.props.context.actionContext) || '';\r\n if (window && editCartLink) {\r\n window.location.assign(editCartLink);\r\n } else {\r\n this.setState({\r\n errorMessage: this.props.resources.genericErrorMessage\r\n });\r\n this.props.context.telemetry.error(notFoundEditCartLinkMessage);\r\n }\r\n };\r\n\r\n /**\r\n * Validates for checkout.\r\n * @param retry - Retry flag.\r\n */\r\n private readonly validateForCheckout = (retry: boolean = true): void => {\r\n const notFoundEditCartLinkMessage = \"Cart doesn't pass validation, but no editCartLink found\";\r\n const cart = this.props.data.checkout.result!.checkoutCart.cart;\r\n const { Id, Version } = cart;\r\n const isOrderQuantityLimitsFeatureEnabledInHq =\r\n this.props.data.featureState.result?.find(\r\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature'\r\n )?.IsEnabled || false;\r\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\r\n const customerInfo = this.props.data.customerInformation.result;\r\n\r\n const isOrderQuantityLimitsFeatureEnabledInSiteSettings =\r\n defaultOrderQuantityLimitsFeatureConfig === 'all' ||\r\n (customerInfo &&\r\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\r\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b)));\r\n if (isOrderQuantityLimitsFeatureEnabledInHq && isOrderQuantityLimitsFeatureEnabledInSiteSettings) {\r\n if (Version && Id) {\r\n validateForCheckoutAsync({ callerContext: this.props.context.actionContext, bypassCache: 'none' }, Id, Version)\r\n .then((result: CartLineValidationResults) => {\r\n if (result.ValidationFailuresByCartLines?.length !== 0) {\r\n this.redirectToCartPage(notFoundEditCartLinkMessage);\r\n } else {\r\n this.setState({ isValidationPassed: true });\r\n }\r\n })\r\n .catch(error => {\r\n this.props.telemetry.warning(error);\r\n this.props.telemetry.debug('Unable to validate Cart');\r\n if (retry && error.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\r\n const cartState = this.props.data.checkout.result?.checkoutCart;\r\n cartState\r\n ?.refreshCart({})\r\n .then(() => {\r\n this.validateForCheckout(false);\r\n })\r\n .catch((refreshError: Error) => {\r\n this.props.telemetry.warning(refreshError.message);\r\n this.props.telemetry.debug('Unable to refresh Cart');\r\n });\r\n } else {\r\n this.redirectToCartPage(notFoundEditCartLinkMessage);\r\n }\r\n });\r\n } else {\r\n this.redirectToCartPage(notFoundEditCartLinkMessage);\r\n }\r\n } else {\r\n this.setState({ isValidationPassed: true });\r\n }\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 /**\r\n * Save the address as Shipping and Billing address.\r\n * @param tokenizedPaymentCard - Tokenized payment card.\r\n */\r\n private readonly _saveShippingAndBillingAddress = async (tokenizedPaymentCard?: TokenizedPaymentCard): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n\r\n // For Paypal, the address returned in TokenizedPaymentCard will be used as both shipping and billing address.\r\n if (checkoutState && tokenizedPaymentCard && tokenizedPaymentCard.Zip) {\r\n const address: Address = this._getAddressFromTokenizedPaymentCard(tokenizedPaymentCard);\r\n\r\n await checkoutState.updateBillingAddressFromExpressCheckout({ newBillingAddressFromExpressCheckout: address });\r\n await checkoutState.updateShippingAddressFromExpressCheckout({ newShippingAddressFromExpressCheckout: address });\r\n }\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 address: Address = {\r\n TwoLetterISORegionName: tokenizedPaymentCard.Country,\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 };\r\n\r\n return address;\r\n };\r\n\r\n /**\r\n * Handle checkout errors.\r\n * @param error -- The error on checkout api failure.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private readonly handleCheckoutError = (error: any) => {\r\n // Here checkout failure message will be shown if there is any error in checkout api except data validation.\r\n const {\r\n resources: {\r\n genericErrorMessage,\r\n invalidCartVersionErrorMessage,\r\n missingRequiredCartTenderLinesErrorMessage,\r\n checkoutApiFailureErrorMessage,\r\n invoiceCheckoutApiFailureErrorMessage\r\n },\r\n context: { actionContext }\r\n } = this.props;\r\n const checkoutResult = this.props.data.checkout.result;\r\n const apiError = error && error.message;\r\n if (error?.statusCode === 500) {\r\n const errorMessage = checkoutApiFailureErrorMessage;\r\n this.setState({\r\n errorMessage\r\n });\r\n this.props.telemetry.exception(error);\r\n this.setState({ isPlaceOrderLoading: false });\r\n return;\r\n }\r\n if (checkoutResult && checkoutResult.shouldEnableCheckoutErrorDisplayMessaging) {\r\n const errorCode = error && error.name ? error.name : '';\r\n // apiError message will be used if errorcode resource/enums is unavailable\r\n void setCheckoutErrors(errorCode, this.props.resources, !!checkoutResult.isExpressCheckoutApplied, actionContext, apiError);\r\n } else {\r\n let errorMessage = genericErrorMessage;\r\n this.setState({ isPlaceOrderClicked: false });\r\n\r\n if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\r\n errorMessage = invalidCartVersionErrorMessage;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- unknown error type.\r\n } else if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines') {\r\n errorMessage = missingRequiredCartTenderLinesErrorMessage;\r\n } else if (error && error.name === 'Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons') {\r\n // If api error is not available show generic message\r\n errorMessage = apiError || genericErrorMessage;\r\n } else {\r\n if (error.status === ActionErrorStatus.Timeout || error.status === ActionErrorStatus.ServiceUnavailable) {\r\n errorMessage = checkoutResult?.checkoutCart.hasInvoiceLine\r\n ? invoiceCheckoutApiFailureErrorMessage\r\n : checkoutApiFailureErrorMessage;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- unknown error type.\r\n if (\r\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout &&\r\n error.data?.AdditionalContext &&\r\n !this.props.data.checkout.result?.isPaymentVerificationRedirection\r\n ) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n errorMessage\r\n });\r\n this.props.telemetry.exception(error);\r\n }\r\n };\r\n}\r\n\r\nexport default Checkout;\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 { IActionContext } from '@msdyn365-commerce/core';\r\nimport { ICheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { PlaceOrder } from '@msdyn365-commerce-modules/checkout';\r\n\r\nexport default async (\r\n ctx: IActionContext,\r\n checkoutState: ICheckoutState | undefined,\r\n orderedProducts: SimpleProduct[] | undefined,\r\n redirect: boolean,\r\n updatedCartVersion?: number,\r\n isPaymentVerificationRedirection?: boolean\r\n) => {\r\n return PlaceOrder(ctx, checkoutState, orderedProducts, redirect, updatedCartVersion, isPaymentVerificationRedirection);\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ICheckoutDeliveryOption,\n ICheckoutDeliveryOptionEdit,\n ICheckoutDeliveryOptionsList,\n ICheckoutDeliveryOptionsViewProps\n} from './checkout-delivery-options';\n\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list }) => {\n if (!list || list.length === 0) {\n return null;\n }\n\n return (\n \n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\n return (\n \n {deliveryOption.radioButton}\n {deliveryOption.description}\n {deliveryOption.price}\n \n );\n })}\n \n );\n};\n\nconst DeliveryOptionSelected: React.FC = ({ DeliveryOption, description, price }) => {\n return (\n \n {description}\n {price}\n \n );\n};\n\nconst CheckoutDeliveryOptionsView: React.FC = props => {\n const {\n CheckoutDeliveryOptions,\n enableCheckoutCartLineDeliveryOptions,\n checkoutErrorRef,\n viewState,\n deliveryOptions,\n deliveryOptionSelected,\n alert,\n waiting,\n saveButton,\n editButton,\n cancelButton,\n checkoutCartLineGroupDeliveryOptions,\n cartLineImages\n } = props;\n\n return (\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\n \n {viewState.isLoading && waiting}\n {viewState.isError && alert}\n {viewState.isShowList && deliveryOptions && !enableCheckoutCartLineDeliveryOptions && (\n \n )}\n {viewState.isShowList && enableCheckoutCartLineDeliveryOptions && checkoutCartLineGroupDeliveryOptions}\n {viewState.isShowSelected && enableCheckoutCartLineDeliveryOptions && cartLineImages}\n {viewState.isShowSelected && deliveryOptionSelected && }\n {viewState.isShowSaveButton && saveButton}\n {viewState.isShowEditButton && editButton}\n {viewState.isShowCancelButton && cancelButton}\n \n );\n};\n\nexport default CheckoutDeliveryOptionsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddResource, ICheckoutGiftCardViewProps, IForm, IItem, IList, IShowResource } from './checkout-gift-card';\n\nexport const From: React.FC = ({\n formProps,\n label,\n inputPinLabel,\n inputExpLabel,\n alert,\n inputProps,\n inputNumProps,\n inputPinProps,\n inputExpProps,\n inputNumber,\n inputPin,\n inputExp,\n applyButton,\n supportExternalGiftCard,\n showGiftCardPinInput,\n showGiftCardExpInput,\n alertFieldLabel\n}) => (\n \n {alert}\n {supportExternalGiftCard ? (\n \n \n {label}\n {inputNumber}\n \n {showGiftCardPinInput && (\n \n {inputPinLabel}\n {inputPin}\n \n )}\n {showGiftCardExpInput && (\n \n {inputExpLabel}\n {inputExp}\n \n )}\n {(showGiftCardPinInput || showGiftCardExpInput) && alertFieldLabel}\n \n ) : (\n <>\n {label}\n {inputNumber}\n \n )}\n {applyButton}\n \n);\n\nexport const SelectedGiftCard: React.FC = ({ itemProps, selectedGiftCard, removeButton }) => (\n \n {selectedGiftCard}\n {removeButton}\n \n);\n\nexport const GiftCardList: React.FC = ({ listProps, list }) => (\n \n {list.map(({ id, ...item }) => (\n \n ))}\n \n);\n\nexport const AddResource: React.FC = ({ form, list }) => (\n <>\n {form && }\n {list && }\n \n);\n\nexport const ShowResource: React.FC = ({ title, list }) => (\n <>\n {title}\n {list && }\n \n);\n\nconst CheckoutGiftCardView: React.FC = props => {\n const { checkoutGiftCardProps, checkoutErrorRef, showGiftCard, addGiftCard } = props;\n return (\n \n {showGiftCard && }\n {addGiftCard && }\n \n );\n};\n\nexport default CheckoutGiftCardView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutLoyaltyAdd, ICheckoutLoyaltyRewardPoint, ICheckoutLoyaltyShow, ICheckoutLoyaltyViewProps } from './checkout-loyalty';\n\nconst AddCheckoutLoyalty: React.FC = ({\n heading,\n cardNumber,\n drawer,\n rewardPoints,\n loyaltyAmountContainer,\n appliedLoyaltyAmountContainer,\n loyaltyAmountLabel,\n loyaltyAmountInput,\n loyaltyAmountApplyButton,\n showAppliedAmount,\n loyaltyAmountAppliedText,\n loyaltyAmountAppliedPrice,\n loyaltyAmountRemoveButton\n}) => {\n return (\n <>\n {heading}\n {cardNumber}\n \n {rewardPoints.map((rewardPoint: ICheckoutLoyaltyRewardPoint) => {\n return (\n \n {rewardPoint.title}\n {rewardPoint.availablePointsText}\n {rewardPoint.activePoints}\n {rewardPoint.expiringPointsText}\n {rewardPoint.expiringPoints}\n \n );\n })}\n \n \n {loyaltyAmountLabel}\n {loyaltyAmountInput}\n {loyaltyAmountApplyButton}\n {showAppliedAmount && (\n \n {loyaltyAmountAppliedText}\n {loyaltyAmountAppliedPrice}\n {loyaltyAmountRemoveButton}\n \n )}\n \n \n );\n};\n\nconst ShowCheckoutLoyalty: React.FC = ({ heading, coveredAmountText, amount }) => {\n return (\n <>\n {heading}\n {coveredAmountText}\n {amount}\n \n );\n};\n\nconst CheckoutLoyaltyView: React.FC = props => {\n const { checkoutLoyalty, checkoutErrorRef, alert, viewState, showLoyalty, addLoyalty } = props;\n\n return (\n \n {alert}\n {viewState.isShowLoyalty && }\n {viewState.isShowAddLoyalty && }\n \n );\n};\n\nexport default CheckoutLoyaltyView;\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 { Button, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddContactInfoInput {\r\n inputRef?: React.RefObject;\r\n hasError: boolean;\r\n email: string;\r\n phone: string;\r\n resources: {\r\n emailLabel: string;\r\n emailErrortext: string;\r\n saveBtnLabel: string;\r\n cancelBtnLabel: string;\r\n };\r\n canSubmit: boolean;\r\n canCancel: boolean;\r\n onChange(email: string): void;\r\n onChangePhone(phone: string): void;\r\n onSubmit(): void;\r\n onCancel(): void;\r\n}\r\n\r\nexport interface IAddContactInfo {\r\n addFormProps: INodeProps;\r\n submitButton: React.ReactNode;\r\n cancelButton: React.ReactNode;\r\n inputGroupProps: INodeProps;\r\n label: React.ReactNode;\r\n error: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\n/**\r\n * On Input change handler function.\r\n * @param onChange -On change input function.\r\n * @returns Call of onChange function.\r\n */\r\nconst onInputChangeHandler = (onChange: (email: string) => void) => (event: React.ChangeEvent): void => {\r\n onChange(event.target.value || '');\r\n};\r\n\r\nconst getAddContactInfo = ({\r\n hasError,\r\n inputRef,\r\n email,\r\n canSubmit,\r\n canCancel,\r\n onChange,\r\n onSubmit,\r\n onCancel,\r\n resources: { emailLabel, emailErrortext, saveBtnLabel, cancelBtnLabel },\r\n phone\r\n}: IAddContactInfoInput): IAddContactInfo => {\r\n const onInputChange = onInputChangeHandler(onChange);\r\n\r\n return {\r\n addFormProps: { className: 'ms-checkout-guest-profile__add-contact-info' },\r\n // submitButton: canSubmit && (\r\n // \r\n // ),\r\n submitButton: (\r\n \r\n ),\r\n // cancelButton: canCancel && (\r\n // \r\n // ),\r\n cancelButton: (\r\n \r\n ),\r\n inputGroupProps: { className: classnames('ms-checkout-guest-profile__input', { 'is-invalid': hasError }) },\r\n label: (\r\n \r\n ),\r\n error: hasError && (\r\n \r\n {emailErrortext}\r\n \r\n ),\r\n input: (\r\n \r\n )\r\n };\r\n};\r\n\r\nexport default getAddContactInfo;\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 { Button, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IShowContactInfoInput {\r\n canEdit: boolean;\r\n email: string;\r\n resources: {\r\n editBtnLabel: string;\r\n };\r\n onEdit(): void;\r\n}\r\n\r\nexport interface IShowContactInfo {\r\n showInfoProps: INodeProps;\r\n email: React.ReactNode;\r\n editButton?: React.ReactNode;\r\n}\r\n\r\nconst getContactInfo = ({ canEdit, email, resources: { editBtnLabel }, onEdit }: IShowContactInfoInput): IShowContactInfo => ({\r\n showInfoProps: { className: 'ms-checkout-guest-profile__selected-item' },\r\n email: {email},\r\n editButton: canEdit && (\r\n \r\n )\r\n});\r\n\r\nexport default getContactInfo;\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\n// import { AttributeValueBase } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { EmailRegex, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\r\nimport classnames from 'classnames';\r\nimport { action, computed, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { focusOnCheckoutError } from '@msdyn365-commerce-modules/checkout';\r\nimport { ErrorComponent } from '@msdyn365-commerce-modules/checkout';\r\n\r\nimport { ILdsCheckoutContact4Data } from './lds-checkout-contact-4.data';\r\nimport { ILdsCheckoutContact4Props } from './lds-checkout-contact-4.props.autogenerated';\r\nimport getAddContactInfo, { IAddContactInfo } from './components/get-add-contact-info';\r\nimport getShowContactInfo, { IShowContactInfo } from './components/get-show-contact-info';\r\n\r\nexport * from './components/get-add-contact-info';\r\nexport * from './components/get-show-contact-info';\r\n\r\ninterface ICheckoutGuestProfileState {\r\n email: string;\r\n phone: string;\r\n phoneError: boolean;\r\n loading: boolean;\r\n hasCheckoutError?: boolean;\r\n errorMessage?: string;\r\n}\r\n\r\nexport interface ICheckoutGuestProfileModuleProps extends ILdsCheckoutContact4Props, IModuleStateProps {}\r\n\r\nexport interface ICheckoutGuestProfileViewProps extends ILdsCheckoutContact4Props, ICheckoutGuestProfileState {\r\n moduleProps: IModuleProps;\r\n showContactInfo?: IShowContactInfo;\r\n addContactInfo?: IAddContactInfo;\r\n alert?: React.ReactNode;\r\n checkoutErrorRef?: React.RefObject;\r\n phone: any;\r\n phoneError: any;\r\n loading: boolean;\r\n\r\n onChange?(email: string): void;\r\n onChangePhone(phone: string, country?: string): void;\r\n onEdit?(): void;\r\n onSubmit?(): void;\r\n onCancel?(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutGuestProfile component.\r\n * @extends {React.PureComponent, ICheckoutGuestProfileState>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutGuestProfile extends React.Component {\r\n public state: ICheckoutGuestProfileState = {\r\n email:\r\n (this.props.context &&\r\n this.props.context.request &&\r\n this.props.context.request.user &&\r\n this.props.context.request.user.isAuthenticated &&\r\n this.props.context.request.user.emailAddress) ||\r\n '',\r\n phone: '',\r\n phoneError: false,\r\n loading: false\r\n };\r\n\r\n private readonly inputRef: React.RefObject = React.createRef();\r\n\r\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\r\n\r\n @computed get isDataReady(): boolean {\r\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\r\n }\r\n\r\n @computed get hasEmailError(): boolean {\r\n return this.props.moduleState.hasError && !this.state.hasCheckoutError;\r\n }\r\n\r\n public componentDidMount(): void {\r\n when(\r\n () => this.isDataReady,\r\n async () => {\r\n await this.init();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\r\n async isExpressCheckoutApplied => {\r\n const emailAddressFromExpressCheckout = this.props.data.checkout.result?.emailAddressFromExpressCheckout ?? '';\r\n const isEmailFromExpressCheckoutDifferent =\r\n !StringExtensions.isNullOrEmpty(emailAddressFromExpressCheckout) &&\r\n emailAddressFromExpressCheckout !== this.state.email;\r\n\r\n if (\r\n isExpressCheckoutApplied &&\r\n (!this.props.data.checkout.result?.isExpressAddressApplied || isEmailFromExpressCheckoutDifferent)\r\n ) {\r\n await this.submitEmail(emailAddressFromExpressCheckout);\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 (checkoutError && checkoutError.errorLocation === ErrorLocation.CheckoutGuestProfile && checkoutError.errorMessage) {\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.CheckoutGuestProfile) {\r\n void focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: ICheckoutGuestProfileModuleProps, nextState: ICheckoutGuestProfileState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n config: { className },\r\n resources,\r\n moduleState: { isReady, hasExternalSubmitGroup }\r\n } = this.props;\r\n const { hasCheckoutError, errorMessage } = this.state;\r\n const email = this.props.data.checkout.result?.guestCheckoutEmail ?? '';\r\n\r\n const viewProps: ICheckoutGuestProfileViewProps = {\r\n ...this.props,\r\n ...this.state,\r\n phone: this.state.phone,\r\n phoneError: this.state.phoneError,\r\n checkoutErrorRef: this.checkoutErrorRef,\r\n onChange: this.onChange,\r\n onChangePhone: this.onChangePhone,\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit,\r\n loading: this.state.loading,\r\n\r\n moduleProps: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-guest-profile', className, isReady ? 'show' : 'add')\r\n // className: classnames('ms-checkout-guest-profile', className, 'add')\r\n },\r\n alert: hasCheckoutError && errorMessage && (\r\n \r\n ),\r\n showContactInfo: isReady\r\n ? getShowContactInfo({\r\n canEdit: !hasExternalSubmitGroup,\r\n email,\r\n resources,\r\n onEdit: this.onEdit\r\n })\r\n : undefined,\r\n addContactInfo: !isReady\r\n ? getAddContactInfo({\r\n email: this.state.email,\r\n phone: this.state.phone,\r\n hasError: this.hasEmailError,\r\n resources,\r\n inputRef: this.inputRef,\r\n onChange: this.onChange,\r\n onChangePhone: this.onChangePhone,\r\n canSubmit: !hasExternalSubmitGroup,\r\n onSubmit: this.onSubmit,\r\n canCancel: !hasExternalSubmitGroup && !!email,\r\n onCancel: this.onCancel\r\n })\r\n : undefined\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private readonly init = async (): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n const customerAccountInformation = this.props.data.accountInformation?.result;\r\n\r\n const hasInvoiceLine = checkoutState?.checkoutCart.hasInvoiceLine;\r\n let updateEmail: string = '';\r\n\r\n // if obo enabled and profile selected, we need to send the order status to obo user not store manager.\r\n if (Msdyn365.isOboRequest(this.props.context.request)) {\r\n updateEmail =\r\n customerAccountInformation && customerAccountInformation.Email !== undefined\r\n ? customerAccountInformation.Email\r\n : this.setErrorMsgOboUserEmailEmpty();\r\n } else {\r\n updateEmail = this.state.email;\r\n }\r\n\r\n const emailOnCart = checkoutState?.checkoutCart.cart.ReceiptEmail;\r\n const email = hasInvoiceLine\r\n ? this.props.context.request.user.emailAddress ?? ''\r\n : emailOnCart ??\r\n (checkoutState?.isExpressCheckoutApplied && !StringExtensions.isNullOrEmpty(checkoutState.emailAddressFromExpressCheckout)\r\n ? checkoutState.emailAddressFromExpressCheckout\r\n : undefined) ??\r\n updateEmail;\r\n const phoneOnCart = checkoutState?.checkoutCart.cart.AttributeValues?.filter((attribute: any) => {\r\n return attribute.Name === 'PHONE';\r\n });\r\n const savedPhone = sessionStorage.getItem('phone');\r\n //@ts-ignore\r\n if (phoneOnCart && phoneOnCart[0] && phoneOnCart[0].TextValue) {\r\n //@ts-ignore\r\n this.setState({ phone: phoneOnCart[0].TextValue });\r\n } else if (savedPhone) {\r\n this.setState({ phone: savedPhone });\r\n }\r\n const isPhoneValid = this.isPhoneRequiredAndValid(\r\n // @ts-ignore\r\n phoneOnCart && phoneOnCart[0] && phoneOnCart[0].TextValue ? phoneOnCart[0].TextValue : this.state.phone\r\n );\r\n let status: any;\r\n const isEmailValid = this.isEmailValid(email);\r\n if (phoneOnCart && phoneOnCart.length === 0) {\r\n status = 'updating';\r\n } else if (isPhoneValid && isEmailValid) {\r\n status = 'ready';\r\n } else if (!isPhoneValid && isEmailValid) {\r\n status = 'updating';\r\n } else if (isPhoneValid && !isEmailValid) {\r\n status = 'updating';\r\n } else {\r\n status = 'updating';\r\n }\r\n\r\n this.props.moduleState.init({\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit,\r\n //Original status line\r\n // status: hasInvoiceLine ? 'disabled' : email && isEmailValid ? 'ready' : 'updating',\r\n //Current status line but getting caught in refresh\r\n // status: 'updating',\r\n //Testing status line to allow pass through after refresh\r\n status: status,\r\n hasError: !!email && !isEmailValid\r\n });\r\n\r\n if (email) {\r\n await this.updateGuestProfile(email);\r\n checkoutState?.updateHasGuestCheckoutEmail({ newHasGuestCheckoutEmail: true });\r\n } else {\r\n checkoutState?.updateHasGuestCheckoutEmail({ newHasGuestCheckoutEmail: false });\r\n }\r\n };\r\n\r\n private readonly onChange = (rowEmail: string): void => {\r\n const email = (rowEmail || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.setState({ email });\r\n if (this.props.moduleState.hasError) {\r\n // Clear error during user updating the email\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n hasCheckoutError: false\r\n });\r\n }\r\n };\r\n\r\n private readonly onChangePhone = (rowPhone: string, country?: string): void => {\r\n if (this.state.phoneError === true) {\r\n this.setState({ phoneError: false });\r\n }\r\n let phoneNum: string = rowPhone;\r\n const cleanedInput = rowPhone.replace(/\\D/g, '');\r\n\r\n const formattedNumber = cleanedInput.replace(/(\\d{3})(\\d{3})(\\d{4})/, '$1-$2-$3');\r\n if (country === 'KOR' || country === 'USA') {\r\n phoneNum = formattedNumber;\r\n }\r\n this.setState({ phone: phoneNum });\r\n if (this.props.moduleState.hasError) {\r\n // Clear error during user updating the email\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n hasCheckoutError: false\r\n });\r\n }\r\n };\r\n\r\n private readonly setErrorMsgOboUserEmailEmpty = (): string => {\r\n // Clear prior error\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n hasCheckoutError: false\r\n });\r\n return '';\r\n };\r\n\r\n private readonly isEmailValid = (email: string): boolean => {\r\n return EmailRegex.defaultRegex.test(email);\r\n };\r\n\r\n private readonly isPhoneRequiredAndValid = (phone?: string): boolean => {\r\n let isPhoneRequired = false;\r\n if (\r\n this.props.data.churchRetailChannelCountry &&\r\n this.props.data.churchRetailChannelCountry.result &&\r\n this.props.data.churchRetailChannelCountry.result[0] &&\r\n this.props.data.churchRetailChannelCountry.result[0].PHONENUMBERREQ &&\r\n this.props.data.churchRetailChannelCountry.result[0].PHONENUMBERREQ > 0\r\n ) {\r\n const phoneNumberReq = this.props.data.churchRetailChannelCountry.result[0].PHONENUMBERREQ;\r\n isPhoneRequired = phoneNumberReq === 1;\r\n }\r\n\r\n const phoneCheck = /^[\\+]?[(]?[0-9]{0,3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im;\r\n const doesPhonePass = this.state.phone ? phoneCheck.test(this.state.phone) : phone ? phoneCheck.test(phone) : '';\r\n if (isPhoneRequired) {\r\n return doesPhonePass ? true : false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n private readonly updateGuestProfile = async (newGuestCheckoutEmail: string): Promise => {\r\n if (this.props.data.checkout.result) {\r\n await this.props.data.checkout.result.updateGuestCheckoutEmail({ newGuestCheckoutEmail });\r\n this.setState({ email: newGuestCheckoutEmail });\r\n }\r\n };\r\n\r\n private readonly onEdit = (): void => {\r\n this.props.telemetry.information('Guest profile onEdit is called.');\r\n\r\n this.props.moduleState.onUpdating();\r\n };\r\n\r\n private setContactOnShippingCartLines = async (email: string | undefined, phone: string | undefined) => {\r\n const checkout = await this.props.data.checkout;\r\n let address: any;\r\n if (checkout && checkout.checkoutCart && checkout.checkoutCart.cart && checkout.checkoutCart.cart.CartLines) {\r\n address = checkout.checkoutCart.cart.CartLines[0].ShippingAddress;\r\n }\r\n if (address && address.Email !== email) {\r\n address.Phone = phone;\r\n address.Email = email;\r\n // const updatesEmail = await checkout?.checkoutCart.updateShippingAddress({ newShippingAddress: address });\r\n // await checkout.updateBillingAddress({ newBillingAddress: address });\r\n await checkout.updateShippingAddress({ newShippingAddress: address });\r\n }\r\n };\r\n\r\n private readonly updateContactAttributes = async (email?: string, phone?: string): Promise => {\r\n const { addEmailForIframe } = this.props.config;\r\n\r\n if (addEmailForIframe && addEmailForIframe === true) {\r\n await this.setContactOnShippingCartLines(email, phone);\r\n }\r\n };\r\n\r\n private readonly onSubmit = async (): Promise => {\r\n this.props.telemetry.information('Guest profile onSubmit is called.');\r\n\r\n const { email, phone } = this.state;\r\n this.setState({ loading: true });\r\n sessionStorage.setItem('phone', phone);\r\n sessionStorage.setItem('email', email);\r\n await this.submitEmail(email, phone);\r\n // await this.updateContactAttributes(email, phone);\r\n this.setState({ loading: false });\r\n };\r\n\r\n /**\r\n * Submit the email address.\r\n * @param email - The email to be submitted.\r\n *\r\n */\r\n private readonly submitEmail = async (email: string, phone?: string): Promise => {\r\n const isValid = this.isEmailValid(email);\r\n const isPhoneValid = this.isPhoneRequiredAndValid();\r\n if (!isValid || !isPhoneValid) {\r\n if (!isValid) {\r\n this.props.moduleState.setHasError(true);\r\n }\r\n if (!isPhoneValid) {\r\n this.setState({ phoneError: true });\r\n }\r\n\r\n const input = this.inputRef.current?.focus && (this.inputRef.current as HTMLElement);\r\n input?.focus();\r\n } else {\r\n await this.updateContactAttributes(email, phone);\r\n await this.updateGuestProfile(email);\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private readonly onCancel = (): void => {\r\n this.props.telemetry.information('Guest profile onCancel is called.');\r\n\r\n // Reset to the saved value\r\n if (!this.props.data.checkout.result) {\r\n return;\r\n }\r\n\r\n const email = this.props.data.checkout.result.guestCheckoutEmail;\r\n if (!email) {\r\n // It has no saved email, set to status updating and request user to fill the email form\r\n this.props.moduleState.onUpdating();\r\n } else {\r\n // It has saved email, set to status ready\r\n this.setState({\r\n email\r\n });\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n hasCheckoutError: false\r\n });\r\n this.props.moduleState.onReady();\r\n }\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 hasCheckoutError: true,\r\n errorMessage\r\n });\r\n };\r\n}\r\n\r\nexport default CheckoutGuestProfile;\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 { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { Alert, Button, INodeProps, NodeTag, getLocaleBasedCustomizedPrice, ILocalizedPrice } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckoutCustomerAccountPayment4Resources } from '../lds-checkout-customer-account-payment-4.props.autogenerated';\r\n\r\nexport interface IGetAccountPaymentEditViewFormInput {\r\n resources: ILdsCheckoutCustomerAccountPayment4Resources;\r\n customizedAmt: string;\r\n amount: number;\r\n amountVariable: string;\r\n maxAmount: number;\r\n customer: Customer | undefined;\r\n customerCreatedDate: string;\r\n availableCredit: string;\r\n showCreditLimit: boolean;\r\n errorMessage: string | undefined;\r\n creditSectionIsExpanded: boolean;\r\n orderTotal: string;\r\n excessCredit: string | undefined;\r\n appliedAmount: string | undefined;\r\n locale: string;\r\n onAddPayment(): Promise;\r\n onChangePaymentAmount(customizedAmt: string, paymentAmount: number, amountVariable: string): void;\r\n onToggleCreditSection(): void;\r\n onRemovePayment(): Promise;\r\n}\r\n\r\nexport interface IAccountPaymentEditViewForm {\r\n formProps: INodeProps;\r\n inputLabel: React.ReactNode;\r\n inputAmount: React.ReactNode;\r\n addPaymentButton: React.ReactNode;\r\n customerName: React.ReactNode;\r\n customerAccountNumber: React.ReactNode;\r\n customerSince: React.ReactNode;\r\n accountCredit: React.ReactNode;\r\n alert: React.ReactNode;\r\n accountDetails: React.ReactNode;\r\n appliedLine: React.ReactNode;\r\n bottomBorder: React.ReactNode;\r\n}\r\n\r\n/**\r\n * On Add Account Payment Function.\r\n * @param onAddPayment -On Add Payment Function.\r\n * @returns Call of Add payment function.\r\n */\r\nconst onAddAccountPayment = (onAddPayment: () => Promise) => async (event: React.SyntheticEvent): Promise => {\r\n event.preventDefault();\r\n await onAddPayment();\r\n};\r\n\r\n/**\r\n * On Change Amount Function.\r\n * @param onChangePaymentAmount -On Change Payment Amount Function.\r\n * @returns Call of Change payment Amount function.\r\n */\r\nconst onChangeAmountHandler = (\r\n customizedAmt: string,\r\n paymentAmount: number,\r\n amountVariable: string,\r\n locale: string,\r\n onChangePaymentAmount: (customizedAmt: string, paymentAmount: number, amountVariable: string) => void\r\n) => (event: React.ChangeEvent) => {\r\n const value = event.target.value;\r\n const customState: ILocalizedPrice = {\r\n customizedAmount: customizedAmt,\r\n amountVariable: amountVariable,\r\n paymentAmount: paymentAmount\r\n };\r\n const returnModifiedState = getLocaleBasedCustomizedPrice(value, customState, locale, keyCode);\r\n customizedAmt = returnModifiedState.customizedAmount as string;\r\n paymentAmount = returnModifiedState.paymentAmount as number;\r\n amountVariable = returnModifiedState.amountVariable as string;\r\n onChangePaymentAmount(customizedAmt, paymentAmount, amountVariable);\r\n keyCode = 0;\r\n};\r\n\r\nlet keyCode: number = 0;\r\nexport const getAccountPaymentFormEditMode = (options: IGetAccountPaymentEditViewFormInput): IAccountPaymentEditViewForm => {\r\n const {\r\n resources,\r\n onAddPayment,\r\n amount,\r\n customizedAmt,\r\n amountVariable,\r\n onChangePaymentAmount,\r\n maxAmount,\r\n customer,\r\n customerCreatedDate,\r\n availableCredit,\r\n showCreditLimit,\r\n errorMessage,\r\n onToggleCreditSection,\r\n creditSectionIsExpanded,\r\n orderTotal,\r\n excessCredit,\r\n onRemovePayment,\r\n appliedAmount,\r\n locale\r\n } = options;\r\n\r\n const {\r\n addPaymentButtonLabel,\r\n inputAmountLabel,\r\n inputAmountAriaLabel,\r\n customerSinceLabel,\r\n accountCreditLabel,\r\n creditDetailsSectionLabel,\r\n orderTotalLabel,\r\n availableCreditLabel,\r\n creditExcessLabel,\r\n appliedCustomerAccountPaymentLabel,\r\n removeCustomerAccountPaymentLabel,\r\n accountCreditDetails\r\n } = resources;\r\n\r\n const inputLabel = (\r\n \r\n {inputAmountLabel}\r\n \r\n );\r\n\r\n const formProps = {\r\n className: 'ms-checkout-customer-account__form-edit',\r\n onSubmit: onAddAccountPayment(onAddPayment),\r\n tag: 'form' as NodeTag\r\n };\r\n\r\n const addPaymentButton = (\r\n maxAmount || amount <= 0 || Number.isNaN(amount)}\r\n >\r\n {addPaymentButtonLabel}\r\n \r\n );\r\n\r\n const inputAmount = (\r\n (keyCode = event.which)}\r\n aria-label={inputAmountAriaLabel}\r\n aria-valuemin={0}\r\n aria-valuemax={maxAmount}\r\n aria-valuenow={amount}\r\n min={0}\r\n max={maxAmount}\r\n />\r\n );\r\n\r\n const customerName =
{customer?.Name}
;\r\n\r\n const customerAccountNumber =
#{customer?.AccountNumber}
;\r\n\r\n const customerSince = (\r\n
\r\n {customerSinceLabel}\r\n {customerCreatedDate}\r\n
\r\n );\r\n\r\n const accountCredit = (\r\n <>\r\n {accountCreditLabel}\r\n {showCreditLimit && {availableCredit}}\r\n \r\n \r\n );\r\n\r\n const accountDetails = creditSectionIsExpanded ? (\r\n
\r\n <>\r\n
\r\n \r\n \r\n {creditDetailsSectionLabel}\r\n \r\n
\r\n \r\n
\r\n {availableCreditLabel}\r\n {availableCredit}\r\n
\r\n
\r\n {orderTotalLabel}\r\n {orderTotal}\r\n
\r\n
\r\n {creditExcessLabel}\r\n {excessCredit ?? '0'}\r\n
\r\n
\r\n ) : (\r\n undefined\r\n );\r\n\r\n const alert = (\r\n \r\n {errorMessage}\r\n \r\n );\r\n\r\n const appliedLine = appliedAmount ? (\r\n
\r\n {appliedCustomerAccountPaymentLabel}\r\n {appliedAmount}\r\n \r\n {removeCustomerAccountPaymentLabel}\r\n \r\n
\r\n ) : (\r\n undefined\r\n );\r\n\r\n const bottomBorder =
;\r\n\r\n return {\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n addPaymentButton,\r\n customerName,\r\n customerAccountNumber,\r\n customerSince,\r\n accountCredit,\r\n alert,\r\n accountDetails,\r\n appliedLine,\r\n bottomBorder\r\n };\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILdsCheckoutCustomerAccountPayment4Resources } from '../lds-checkout-customer-account-payment-4.props.autogenerated';\r\n\r\nexport interface IGetAccountPaymentSummaryViewFormInput {\r\n resources: ILdsCheckoutCustomerAccountPayment4Resources;\r\n amount: number;\r\n appliedAmount: string | undefined;\r\n}\r\n\r\nexport interface IAccountPaymentSummaryViewForm {\r\n formProps: INodeProps;\r\n label: React.ReactNode;\r\n paymentAmount: React.ReactNode;\r\n addPaymentButton: React.ReactNode;\r\n appliedLine: React.ReactNode;\r\n bottomBorder: React.ReactNode;\r\n alert?: React.ReactNode;\r\n paymentAmountInput?: React.ReactNode;\r\n}\r\n\r\nexport const getAccountPaymentFormSummaryMode = (options: IGetAccountPaymentSummaryViewFormInput): IAccountPaymentSummaryViewForm => {\r\n const { resources, amount, appliedAmount } = options;\r\n\r\n const { addPaymentButtonLabel, inputAmountSummaryLabel, appliedCustomerAccountPaymentLabel, inputAmountAriaLabel } = resources;\r\n\r\n const label = (\r\n \r\n );\r\n\r\n const formProps = {\r\n className: 'ms-checkout-customer-account__form-summary',\r\n tag: 'form' as NodeTag\r\n };\r\n\r\n const paymentAmount = ;\r\n\r\n const paymentAmountInput = (\r\n \r\n );\r\n\r\n const addPaymentButton = (\r\n \r\n );\r\n\r\n const appliedLine = appliedAmount ? (\r\n
\r\n {appliedCustomerAccountPaymentLabel}\r\n {appliedAmount}\r\n
\r\n ) : (\r\n undefined\r\n );\r\n\r\n const bottomBorder =
;\r\n\r\n return {\r\n formProps,\r\n label,\r\n paymentAmount,\r\n addPaymentButton,\r\n appliedLine,\r\n bottomBorder,\r\n paymentAmountInput\r\n };\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\r\nimport { IModuleStateManager, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\r\nimport classnames from 'classnames';\r\nimport get from 'lodash/get';\r\nimport { action, computed, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { AttributeValueBase } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { ILdsCheckoutCustomerAccountPayment4Data } from './lds-checkout-customer-account-payment-4.data';\r\nimport { ILdsCheckoutCustomerAccountPayment4Props } from './lds-checkout-customer-account-payment-4.props.autogenerated';\r\nimport { getAccountPaymentFormEditMode, IAccountPaymentEditViewForm } from './components/get-account-payment-form-edit-mode';\r\nimport { getAccountPaymentFormSummaryMode, IAccountPaymentSummaryViewForm } from './components/get-account-payment-form-summary-mode';\r\nimport { ErrorComponent } from '@msdyn365-commerce-modules/checkout';\r\nimport { focusOnCheckoutError } from '@msdyn365-commerce-modules/checkout';\r\n\r\nexport interface ICheckoutCustomerAccountPaymentViewProps\r\n extends ILdsCheckoutCustomerAccountPayment4Props {\r\n checkoutCustomerAccount: IModuleProps;\r\n summaryView: IAccountPaymentSummaryViewForm;\r\n editView: IAccountPaymentEditViewForm;\r\n moduleState: IModuleStateManager;\r\n alert?: React.ReactNode;\r\n checkoutErrorRef?: React.RefObject;\r\n updatePaymentAttributes?: any;\r\n}\r\n\r\nexport interface ICheckoutCustomerAccountPaymentState {\r\n paymentAmount: number;\r\n isCreditSectionExpanded: boolean;\r\n customizedAmt: string;\r\n amountVariable: string;\r\n errorMessage?: string;\r\n handleSaveAndContinue?: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutCustomerAccount component.\r\n * @extends {React.Component>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nexport class CheckoutCustomerAccountPayment extends React.Component<\r\n ICheckoutCustomerAccountPaymentViewProps,\r\n ICheckoutCustomerAccountPaymentState\r\n> {\r\n private readonly defaultLocale: string = 'en-us';\r\n @computed get isCustomerAccountPaymentEnabled(): boolean {\r\n const customerInfo = get(this.props, 'data.customerInformation.result');\r\n const platform = get(this.props, 'context.request.app.platform');\r\n\r\n return (\r\n customerInfo &&\r\n customerInfo.AllowOnAccountPayment === true &&\r\n platform &&\r\n (platform.enableCustomerAccountPayment === 'all' ||\r\n (platform.enableCustomerAccountPayment === 'b2b' && customerInfo.IsB2b === true) ||\r\n (platform.enableCustomerAccountPayment === 'b2c' && customerInfo.IsB2b === false))\r\n );\r\n }\r\n\r\n @computed get getLoyaltyAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (!checkoutState || !checkoutState.loyaltyAmount) {\r\n return 0;\r\n }\r\n return checkoutState.loyaltyAmount;\r\n }\r\n\r\n @computed get maxPaymentAmount(): number {\r\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\r\n if (!cart) {\r\n return 0;\r\n }\r\n\r\n // Use customer account after loyalty.\r\n const amountDue = Math.max(0, (cart.TotalAmount || 0) - this.getLoyaltyAmount);\r\n\r\n // If the user has a mandatory credit limit, then the max amount must not be more than that\r\n if (this.props.data.customerInformation?.result?.MandatoryCreditLimit) {\r\n return Math.min(this.getAvailableCredit(this.props.data.creditBalances?.result), amountDue);\r\n }\r\n return amountDue;\r\n }\r\n\r\n @computed get errorMessage(): string | undefined {\r\n if (this.state.paymentAmount > this.maxPaymentAmount) {\r\n return this.props.resources.invalidAmountExceedAmountDueMessage;\r\n }\r\n\r\n if (this.state.paymentAmount < 0) {\r\n return this.props.resources.invalidAmountNegativeMessage;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n @computed get currencyCode(): string | undefined {\r\n return get(this.props, 'context.request.channel.Currency');\r\n }\r\n\r\n @computed get availableCredit(): number {\r\n const creditBalances = get(this.props, 'data.creditBalances.result');\r\n\r\n return creditBalances ? this.getAvailableCredit(creditBalances) : 0;\r\n }\r\n\r\n @computed get orderTotal(): number {\r\n const orderTotal = get(this.props, 'data.checkout.result.checkoutCart.cart.TotalAmount');\r\n\r\n return orderTotal ? orderTotal : 0;\r\n }\r\n\r\n @computed get formattedExcessCredit(): string | undefined {\r\n const excessCredit = this.availableCredit - this.orderTotal;\r\n return excessCredit < 0 ? this.props.context.cultureFormatter.formatCurrency(excessCredit, this.currencyCode) : undefined;\r\n }\r\n\r\n @computed get isDataReady(): boolean {\r\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\r\n }\r\n\r\n private readonly baseClassName: string = 'ms-checkout-customer-account';\r\n\r\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\r\n\r\n public constructor(props: ICheckoutCustomerAccountPaymentViewProps) {\r\n super(props);\r\n const locale = get(this.props, 'context.request.locale') || this.defaultLocale;\r\n this.state = {\r\n paymentAmount: this.maxPaymentAmount,\r\n isCreditSectionExpanded: false,\r\n customizedAmt: new Intl.NumberFormat(locale).format(this.maxPaymentAmount),\r\n amountVariable: this.maxPaymentAmount.toString(),\r\n handleSaveAndContinue: false\r\n };\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n when(\r\n () => this.isDataReady,\r\n async () => {\r\n await this.init();\r\n }\r\n );\r\n\r\n // When the cart.TotalAmount gets updated (like if selecting the delivery option adds a charge) we need to update the amount based on the new total amount.\r\n reaction(\r\n () =>\r\n this.props.data.checkout.result &&\r\n this.props.data.checkout.result.checkoutCart.cart &&\r\n this.props.data.checkout.result.checkoutCart.cart.TotalAmount,\r\n totalAmount => {\r\n this.updateMaxAmount(this.maxPaymentAmount);\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.CheckoutCustomerAccountPayment &&\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.CheckoutCustomerAccountPayment) {\r\n void focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(\r\n nextProps: ILdsCheckoutCustomerAccountPayment4Props,\r\n nextState: ICheckoutCustomerAccountPaymentState\r\n ): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const customerInfo = this.props.data.customerInformation?.result;\r\n\r\n if (!this.isCustomerAccountPaymentEnabled) {\r\n this.props.context.telemetry.information(\r\n 'customer account payments will not display, because the feature is disabled or not enabled for this type of customer'\r\n );\r\n return null;\r\n }\r\n\r\n const checkoutState = this.props.data.checkout.result;\r\n const cart = checkoutState ? checkoutState.checkoutCart.cart : undefined;\r\n const hasInvoiceLine = checkoutState?.checkoutCart.hasInvoiceLine;\r\n const creditBalances = this.props.data.creditBalances.result;\r\n\r\n if (!cart || hasInvoiceLine) {\r\n return null;\r\n }\r\n const resources = this.props.resources;\r\n const locale = get(this.props, 'context.request.locale') || this.defaultLocale;\r\n\r\n const customerSinceDate = new Date(customerInfo?.CreatedDateTime || 0).toLocaleDateString(locale);\r\n\r\n const hasError = this.props.moduleState.hasError;\r\n const errorMessage = this.state.errorMessage;\r\n\r\n const props = {\r\n ...this.props,\r\n updatePaymentAttributes: this.updatePaymentAttributes,\r\n checkoutErrorRef: this.checkoutErrorRef,\r\n checkoutCustomerAccount: {\r\n moduleProps: this.props,\r\n className: classnames(this.baseClassName)\r\n },\r\n alert: hasError && errorMessage && (\r\n \r\n ),\r\n editView: getAccountPaymentFormEditMode({\r\n onAddPayment: this.addPayment,\r\n resources,\r\n customizedAmt: this.state.customizedAmt,\r\n amountVariable: this.state.amountVariable,\r\n amount: this.state.paymentAmount,\r\n onChangePaymentAmount: this.onChangePaymentAmount,\r\n maxAmount: this.maxPaymentAmount,\r\n customer: customerInfo,\r\n customerCreatedDate: customerSinceDate,\r\n availableCredit: this.props.context.cultureFormatter.formatCurrency(\r\n this.getAvailableCredit(creditBalances),\r\n this.currencyCode\r\n ),\r\n showCreditLimit: customerInfo?.MandatoryCreditLimit || false,\r\n errorMessage: this.errorMessage,\r\n onToggleCreditSection: this.toggleCreditSection,\r\n creditSectionIsExpanded: this.state.isCreditSectionExpanded,\r\n orderTotal: this.props.context.cultureFormatter.formatCurrency(this.orderTotal, this.currencyCode),\r\n excessCredit: this.formattedExcessCredit,\r\n onRemovePayment: this.removePayment,\r\n appliedAmount:\r\n checkoutState && checkoutState.customerAccountAmount > 0\r\n ? this.props.context.cultureFormatter.formatCurrency(checkoutState.customerAccountAmount, this.currencyCode)\r\n : undefined,\r\n locale:\r\n this.props.context && this.props.context.request && this.props.context.request.locale\r\n ? this.props.context.request.locale\r\n : this.defaultLocale\r\n }),\r\n summaryView: getAccountPaymentFormSummaryMode({\r\n resources,\r\n amount: this.state.paymentAmount,\r\n appliedAmount:\r\n checkoutState && checkoutState.customerAccountAmount > 0\r\n ? this.props.context.cultureFormatter.formatCurrency(checkoutState.customerAccountAmount, this.currencyCode)\r\n : undefined\r\n })\r\n };\r\n\r\n return this.props.renderView(props) as React.ReactElement;\r\n }\r\n\r\n private readonly getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\r\n let availableCredit = 0;\r\n\r\n if (!creditBalances) {\r\n return 0;\r\n }\r\n\r\n if (creditBalances.InvoiceAccountCreditLimit === 0) {\r\n availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\r\n } else {\r\n availableCredit =\r\n creditBalances.InvoiceAccountCreditLimit -\r\n creditBalances.InvoiceAccountBalance -\r\n creditBalances.InvoiceAccountPendingBalance;\r\n }\r\n\r\n return availableCredit;\r\n };\r\n\r\n private readonly addPayment = async (): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n\r\n if (!checkoutState) {\r\n this.props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\r\n\r\n this.setState({ handleSaveAndContinue: true });\r\n this._clearError();\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: this.state.paymentAmount });\r\n this.props.context.telemetry.information('customer account payment amount updated');\r\n };\r\n\r\n private updateCartAttributes = async (attributes: AttributeValueBase[]) => {\r\n const checkout = await this.props.data.checkout;\r\n const currentAttributeValues = checkout?.checkoutCart.attributeValues || [];\r\n const newAttributeValues = [...currentAttributeValues];\r\n const addedAttributes = newAttributeValues.concat(attributes);\r\n\r\n // attributes.forEach(x => {\r\n // const matchIndex = newAttributeValues.findIndex(attr => attr.Name === x.Name);\r\n // if (matchIndex > -1) {\r\n // // eslint-disable-next-line security/detect-object-injection\r\n // newAttributeValues[matchIndex] = x;\r\n // } else {\r\n // newAttributeValues.push(x);\r\n // }\r\n // });\r\n\r\n return checkout?.checkoutCart.updateAttributeValues({\r\n newAttributeValues: addedAttributes\r\n });\r\n };\r\n\r\n private updatePaymentAttributes = async (idType: string, taxId: string) => {\r\n const taxIdAttribute: AttributeValueBase = {\r\n // @ts-expect-error -- Need to provide data type.\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n Name: 'IDENTIFICATIONTYPE',\r\n TextValue: idType,\r\n TextValueTranslations: [],\r\n ExtensionProperties: []\r\n };\r\n const taxNumAttribute: AttributeValueBase = {\r\n // @ts-expect-error -- Need to provide data type.\r\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue',\r\n Name: 'IDENTIFICATIONNUMBER',\r\n TextValue: taxId,\r\n TextValueTranslations: [],\r\n ExtensionProperties: []\r\n };\r\n const newAttributeValues: any = [taxIdAttribute, taxNumAttribute];\r\n\r\n return this.updateCartAttributes(newAttributeValues);\r\n };\r\n\r\n private readonly toggleCreditSection = (): void => {\r\n this.setState({\r\n isCreditSectionExpanded: !this.state.isCreditSectionExpanded\r\n });\r\n };\r\n\r\n private readonly init = async (): Promise => {\r\n this.props.moduleState.init({\r\n onCancel: this.handleCancelOrSubmit,\r\n onSubmit: this.handleCancelOrSubmit,\r\n onEdit: this.onEdit\r\n });\r\n\r\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount !== 0) {\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private readonly onChangePaymentAmount = (customizedAmt: string, paymentAmount: number, amountVariable: string): void => {\r\n this.setState({\r\n customizedAmt: customizedAmt,\r\n paymentAmount: paymentAmount,\r\n amountVariable: amountVariable\r\n });\r\n };\r\n\r\n private readonly updateMaxAmount = (newAmount: number): void => {\r\n // If the user has already set an amount, we should not override that in the UI because it will be confusing.\r\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount === 0) {\r\n this.setState({\r\n // We should never allow a negative amount.\r\n paymentAmount: Math.max(0, newAmount),\r\n customizedAmt: Math.max(0, newAmount).toString()\r\n });\r\n }\r\n };\r\n\r\n private readonly onEdit = (): void => {\r\n this.props.telemetry.information('Payment section customer account payment onEdit is called.');\r\n\r\n this.props.moduleState.onUpdating();\r\n };\r\n\r\n private readonly handleCancelOrSubmit = () => {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (checkoutState && checkoutState.customerAccountAmount > 0) {\r\n this.setState({ handleSaveAndContinue: false });\r\n this.props.telemetry.information('Payment section customer account payment onSubmit is called.');\r\n\r\n if (\r\n Msdyn365.isOboRequest(this.props.context.request) &&\r\n checkoutState?.customerAccountAmount !== checkoutState?.checkoutCart.cart.TotalAmount\r\n ) {\r\n this._setErrorMessage(this.props.resources.invalidAmountForOBOMessage);\r\n } else {\r\n this.props.moduleState.onReady();\r\n }\r\n } else if (\r\n checkoutState?.customerAccountAmount === 0 &&\r\n !this.state.handleSaveAndContinue &&\r\n this.props.config.isCheckoutCustomerAccountPaymentRequired\r\n ) {\r\n this._setErrorMessage(this.props.resources.customerAccountCreditErrorMessage);\r\n } else {\r\n this.props.telemetry.information('Payment section customer account payment onCancel is called.');\r\n\r\n // Skip the module\r\n this.props.moduleState.onSkip();\r\n }\r\n };\r\n\r\n private readonly removePayment = async (): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n\r\n if (!checkoutState) {\r\n this.props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\r\n\r\n this.setState({\r\n paymentAmount: 0\r\n });\r\n\r\n this.onChangePaymentAmount('', NaN, '0');\r\n\r\n this._clearError();\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: 0 });\r\n this.props.context.telemetry.information('customer account payment removed');\r\n };\r\n\r\n @action\r\n private readonly _setErrorMessage = (errorMessage: string): void => {\r\n this.props.telemetry.error(errorMessage);\r\n this.props.moduleState.setHasError(true);\r\n this.props.moduleState.onUpdating();\r\n this.setState({\r\n errorMessage\r\n });\r\n };\r\n\r\n private readonly _clearError = (): void => {\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n errorMessage: ''\r\n });\r\n };\r\n}\r\n\r\nexport default CheckoutCustomerAccountPayment;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * ILdsCheckoutDeliveryOptions4 contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum filterDeliveryModeOption {\r\n none = 'none',\r\n filterOutNonCarrierDeliveryMode = 'filterOutNonCarrierDeliveryMode'\r\n}\r\n\r\nexport const enum useDefaultDeliveryOption {\r\n none = 'none',\r\n displaySelectedDeliveryOption = 'displaySelectedDeliveryOption',\r\n notDisplaySelectedDeliveryOption = 'notDisplaySelectedDeliveryOption'\r\n}\r\n\r\nexport interface ILdsCheckoutDeliveryOptions4Config extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n filterDeliveryModeOption?: filterDeliveryModeOption;\r\n useDefaultDeliveryOption?: useDefaultDeliveryOption;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport interface ILdsCheckoutDeliveryOptions4Resources {\r\n deliveryOptionsNotFound: string;\r\n genericErrorMessage: string;\r\n errorMessageTitle: string;\r\n ariaLabelText: string;\r\n priceFree: string;\r\n saveBtnLabel: string;\r\n editBtnLabel: string;\r\n cancelBtnLabel: string;\r\n deliveryOptionAriaLabel: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILdsCheckoutDeliveryOptions4Props extends Msdyn365.IModule {\r\n resources: ILdsCheckoutDeliveryOptions4Resources;\r\n config: ILdsCheckoutDeliveryOptions4Config;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsDescriptionProps {\r\n description?: string;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.description\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsDescription: React.FC = ({ description }) => {\r\n if (!description) {\r\n return null;\r\n }\r\n\r\n return {description};\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsDescription;\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 * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsErrorMessageProps {\r\n message?: string;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.message\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsErrorMessage: React.FC = ({ message }) => {\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return

{message}

;\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsErrorMessage;\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 * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsErrorTitleProps {\r\n title?: string;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.title\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsErrorTitle: React.FC = ({ title }) => {\r\n if (!title) {\r\n return null;\r\n }\r\n\r\n return

{title}

;\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsErrorTitle;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsRadioButtonProps {\r\n isChecked: boolean;\r\n value?: string;\r\n ariaSetSize: number;\r\n ariaPosInSet: number;\r\n ariaLabel?: string;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.isChecked\r\n * @param root0.value\r\n * @param root0.ariaSetSize\r\n * @param root0.ariaPosInSet\r\n * @param root0.ariaLabel\r\n * @param root0.telemetryContent\r\n * @param root0.onChange\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsRadioButton: React.FC = ({\r\n isChecked,\r\n value,\r\n ariaSetSize,\r\n ariaPosInSet,\r\n ariaLabel,\r\n telemetryContent,\r\n onChange\r\n}) => {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.DeliveryOptions);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsRadioButton;\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 { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { CheckoutModule, ErrorLocation, ICheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { Cart, ChannelDeliveryOptionConfiguration, FilterDeliveryModeOption } from '@msdyn365-commerce/retail-proxy';\r\nimport { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { Address, CartLine, DeliveryOption } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { QueryResultSettingsProxy, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport get from 'lodash/get';\r\nimport { action, computed, observable, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { ErrorComponent } from '@msdyn365-commerce-modules/checkout';\r\nimport { ILdsCheckoutDeliveryOptions4Data } from './lds-checkout-delivery-options-4.data';\r\nimport {\r\n filterDeliveryModeOption,\r\n ILdsCheckoutDeliveryOptions4Props,\r\n useDefaultDeliveryOption\r\n} from './lds-checkout-delivery-options-4.props.autogenerated';\r\nimport DescriptionComponent from './components/lds-checkout-delivery-options-4.description';\r\nimport ErrorMessageComponent from './components/lds-checkout-delivery-options-4.error-message';\r\nimport ErrorTitleComponent from './components/lds-checkout-delivery-options-4.error-title';\r\nimport RadioButtonComponent from './components/lds-checkout-delivery-options-4.radio-button';\r\nimport { focusOnCheckoutError } from '@msdyn365-commerce-modules/checkout';\r\n\r\nexport interface ICheckoutDeliveryOptionsModuleProps\r\n extends ILdsCheckoutDeliveryOptions4Props,\r\n IModuleStateProps {}\r\n\r\nexport interface ICheckoutDeliveryOption {\r\n DeliveryOption: INodeProps;\r\n description?: React.ReactNode;\r\n price?: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionEdit extends ICheckoutDeliveryOption {\r\n code: string;\r\n radioButton?: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsList {\r\n DeliveryOptionsList: INodeProps;\r\n list: ICheckoutDeliveryOptionEdit[];\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsError {\r\n Error: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsViewState {\r\n isLoading: boolean;\r\n isError: boolean;\r\n isShowList: boolean;\r\n isShowSelected: boolean;\r\n isShowSaveButton: boolean;\r\n isShowEditButton: boolean;\r\n isShowCancelButton: boolean;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsViewProps extends ILdsCheckoutDeliveryOptions4Props<{}> {\r\n CheckoutDeliveryOptions: IModuleProps;\r\n selectedItemId: string;\r\n deliveryOptionsData: DeliveryOption[];\r\n isLoading: boolean;\r\n errorMessageData: string;\r\n viewState: ICheckoutDeliveryOptionsViewState;\r\n deliveryOptions?: ICheckoutDeliveryOptionsList;\r\n deliveryOptionSelected?: ICheckoutDeliveryOption;\r\n errorMessage?: ICheckoutDeliveryOptionsError;\r\n waiting?: React.ReactNode;\r\n saveButton?: React.ReactNode;\r\n editButton?: React.ReactNode;\r\n cancelButton?: React.ReactNode;\r\n alert?: React.ReactNode;\r\n checkoutErrorRef?: React.RefObject;\r\n onDeliveryOptionChange(event: React.ChangeEvent): void;\r\n onSave(): void;\r\n onEdit(): void;\r\n onCancel(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutDeliveryOptions component.\r\n * @extends {React.Component>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutDeliveryOptions extends React.Component {\r\n @observable private selectedItemId: string = '';\r\n\r\n @observable private deliveryOptions: DeliveryOption[] = [];\r\n\r\n @observable private isLoading: boolean = false;\r\n\r\n @observable private errorMessage?: string;\r\n\r\n @computed private get isDataReady(): boolean {\r\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\r\n }\r\n\r\n public get expressPaymentDetailsFromCartPage() {\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) : null;\r\n }\r\n\r\n public get isExpressPaymentAppliedInCartPage(): boolean {\r\n return this.expressPaymentDetailsFromCartPage?.isExpressCheckoutAppliedInCartPage ?? false;\r\n }\r\n\r\n private cartDeliveryMode?: string;\r\n\r\n private retailMultiplePickUpOptionEnabled?: boolean = false;\r\n\r\n private channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n private readonly isSelectDefaultOptionEnabled?: boolean;\r\n\r\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\r\n\r\n public constructor(props: ICheckoutDeliveryOptionsModuleProps) {\r\n super(props);\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.isSelectDefaultOptionEnabled =\r\n this.props.config.useDefaultDeliveryOption && this.props.config.useDefaultDeliveryOption !== useDefaultDeliveryOption.none;\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n when(\r\n () => this.isDataReady,\r\n async () => {\r\n await this.init();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.shippingAddress,\r\n async () => {\r\n await this.loadDeliveryOptions();\r\n this.props.moduleState.setIsCancellable(false);\r\n\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\r\n async isExpressCheckoutApplied => {\r\n if (isExpressCheckoutApplied && this.canShip() && !this.isExpressPaymentAppliedInCartPage) {\r\n await this.loadDeliveryOptions();\r\n this.props.moduleState.setIsCancellable(false);\r\n\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\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.CheckoutDeliveryOptions &&\r\n checkoutError.errorMessage\r\n ) {\r\n this.setError(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.CheckoutDeliveryOptions) {\r\n void focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: ICheckoutDeliveryOptionsModuleProps, nextState: ICheckoutDeliveryOptionsViewState): 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 const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n this.channelDeliveryOptionConfig = this.props.data.channelDeliveryOptionConfig?.result;\r\n this.retailMultiplePickUpOptionEnabled = this.props.data.featureState?.result?.find(\r\n feature => feature.Name === multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n\r\n if (!this.canShip()) {\r\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const {\r\n moduleState: { isReady, isUpdating, hasError }\r\n } = this.props;\r\n const isError = !this.isLoading && hasError;\r\n const isShowList = !this.isLoading && !hasError && isUpdating && !this.isSelectDefaultOptionEnabled;\r\n const isShowSelected = !this.isLoading && !hasError && isReady;\r\n const { errorMessageTitle, deliveryOptionAriaLabel } = this.props.resources;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n onDeliveryOptionChange: this.onDeliveryOptionChange,\r\n selectedItemId: this.selectedItemId,\r\n deliveryOptionsData: this.deliveryOptions,\r\n isLoading: this.isLoading,\r\n alert: this.errorMessage && ,\r\n errorMessageData: this.errorMessage,\r\n viewState: {\r\n isLoading: this.isLoading,\r\n isError,\r\n isShowList,\r\n isShowSelected,\r\n isShowSaveButton: isShowList && !this.props.moduleState.hasExternalSubmitGroup,\r\n isShowEditButton: isShowSelected && !this.props.moduleState.hasExternalSubmitGroup,\r\n isShowCancelButton: isShowList && !this.props.moduleState.hasExternalSubmitGroup && !!this.getSavedDeliveryOption()\r\n },\r\n CheckoutDeliveryOptions: {\r\n moduleProps: this.props,\r\n className: classname('ms-checkout-delivery-options', this.props.config.className)\r\n },\r\n deliveryOptions: {\r\n DeliveryOptionsList: {\r\n className: 'ms-checkout-delivery-options__list',\r\n role: 'list',\r\n 'aria-label': deliveryOptionAriaLabel\r\n },\r\n list: this.getDeliveryOptionList()\r\n },\r\n deliveryOptionSelected: this.getDeliveryOptionSelected(),\r\n errorMessage: this.getErrorMessage(),\r\n waiting: ,\r\n checkoutErrorRef: this.checkoutErrorRef,\r\n saveButton: this.getSaveButton(),\r\n editButton: this.getEditButton(),\r\n cancelButton: this.getCancelButton(),\r\n onSave: this.onSave,\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n @action\r\n private readonly init = async (): Promise => {\r\n this.props.moduleState.init({\r\n onEdit: this.isSelectDefaultOptionEnabled ? undefined : this.onEdit,\r\n onCancel: this.isSelectDefaultOptionEnabled ? undefined : this.onCancel,\r\n onSubmit: this.isSelectDefaultOptionEnabled ? undefined : this.onSubmit,\r\n status:\r\n !(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption) &&\r\n this.canShip()\r\n ? 'updating'\r\n : 'disabled'\r\n });\r\n\r\n this.cartDeliveryMode = this.getSavedDeliveryOption();\r\n await this.loadDeliveryOptions();\r\n };\r\n\r\n private readonly canShip = (): boolean => {\r\n const hasInvoice = this.props.data.checkout.result?.checkoutCart.hasInvoiceLine;\r\n return !hasInvoice && this.getCartLinesForShipping().length > 0;\r\n };\r\n\r\n private readonly isDeliveryModeExists = (deliveryMode: string | undefined): boolean => {\r\n if (deliveryMode) {\r\n if (this.deliveryOptions.find(deliveryOption => deliveryOption.Code === deliveryMode)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private readonly getDeliveryOptionSelected = (): ICheckoutDeliveryOption | null => {\r\n const selectedItem = this.deliveryOptions.find(deliveryOption => deliveryOption.Code === this.selectedItemId);\r\n if (!selectedItem) {\r\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const { id, typeName, context } = this.props;\r\n const { priceFree } = this.props.resources;\r\n const price = get(selectedItem, 'ShippingChargeAmount', 0);\r\n\r\n return {\r\n DeliveryOption: { className: 'ms-checkout-delivery-options__option-selected' },\r\n description: ,\r\n price: (\r\n \r\n )\r\n };\r\n };\r\n\r\n private readonly getErrorMessage = (): ICheckoutDeliveryOptionsError => {\r\n const { errorMessageTitle } = this.props.resources;\r\n return {\r\n // @ts-expect-error\r\n CheckoutDeliveryOptionsError: { tag: 'span', className: 'ms-address-form__error', role: 'alert', 'aria-live': 'assertive' },\r\n title: ,\r\n message: \r\n };\r\n };\r\n\r\n private readonly getDeliveryOptionList = (): ICheckoutDeliveryOptionEdit[] => {\r\n const count = this.deliveryOptions.length;\r\n const { priceFree } = this.props.resources;\r\n const { id, typeName, context } = this.props;\r\n\r\n return this.deliveryOptions.map((deliveryOption: DeliveryOption, index: number) => {\r\n return {\r\n DeliveryOption: { className: 'ms-checkout-delivery-options__option', role: 'listitem' },\r\n code: deliveryOption.Code || '',\r\n radioButton: (\r\n \r\n ),\r\n description: (\r\n \r\n ),\r\n price: (\r\n \r\n )\r\n };\r\n });\r\n };\r\n\r\n private readonly getSaveButton = (): React.ReactNode => {\r\n const { saveBtnLabel = 'Save' } = this.props.resources;\r\n return (\r\n \r\n {saveBtnLabel}\r\n \r\n );\r\n };\r\n\r\n private readonly getEditButton = (): React.ReactNode => {\r\n const { editBtnLabel = 'Change' } = this.props.resources;\r\n return (\r\n \r\n );\r\n };\r\n\r\n private readonly getCancelButton = (): React.ReactNode => {\r\n const { cancelBtnLabel = 'Cancel' } = this.props.resources;\r\n return (\r\n \r\n );\r\n };\r\n\r\n private readonly setError = (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.errorMessage = errorMessage;\r\n };\r\n\r\n private readonly clearError = (): void => {\r\n this.props.moduleState.setHasError(false);\r\n this.errorMessage = undefined;\r\n };\r\n\r\n private readonly onSave = async (): Promise => {\r\n await this.onSubmit();\r\n };\r\n\r\n private readonly onEdit = async (): Promise => {\r\n this.props.telemetry.information('Delivery options onEdit is called.');\r\n\r\n this.clearError();\r\n this.onUpdating();\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n };\r\n\r\n private readonly onSubmit = async (): Promise => {\r\n this.props.telemetry.information('Delivery options onSubmit is called.');\r\n\r\n await this.updateCartDeliverySpecification(this.selectedItemId);\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n };\r\n\r\n private readonly onCancel = async (): Promise => {\r\n this.props.telemetry.information('Delivery options onCancel is called.');\r\n\r\n // Reset to the saved value\r\n const savedDeliveryOption = this.getSavedDeliveryOption();\r\n if (savedDeliveryOption) {\r\n this.selectedItemId = savedDeliveryOption;\r\n this.onReady();\r\n\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n } else {\r\n this.onUpdating();\r\n }\r\n };\r\n\r\n private readonly getSavedDeliveryOption = (): string | undefined => {\r\n const cartLinesForShipping = this.getCartLinesForShipping();\r\n return cartLinesForShipping[0] && cartLinesForShipping[0].DeliveryMode;\r\n };\r\n\r\n private readonly updateCartDeliverySpecification = async (deliveryModeId: string): Promise => {\r\n if (deliveryModeId.trim() === '') {\r\n return;\r\n }\r\n\r\n const { resources } = this.props;\r\n const checkoutState = this.props.data.checkout.result as ICheckoutState;\r\n const updateCartDeliverySpecificationInput = {\r\n deliveryModeId,\r\n shippingAddress: checkoutState.shippingAddress,\r\n channelDeliveryOptionConfig: this.retailMultiplePickUpOptionEnabled ? this.channelDeliveryOptionConfig : undefined\r\n };\r\n\r\n this.clearError();\r\n this.onPending();\r\n\r\n await checkoutState.checkoutCart\r\n .updateCartDeliverySpecification(updateCartDeliverySpecificationInput)\r\n .then(response => {\r\n if (response.status === 'FAILED') {\r\n const errorMessage = `${response.errorDetails?.LocalizedMessage}`;\r\n this.setError(StringExtensions.isNullOrEmpty(errorMessage) ? resources.genericErrorMessage : errorMessage);\r\n }\r\n\r\n this.onReady();\r\n this.props.moduleState.setIsCancellable(true);\r\n })\r\n .catch(() => {\r\n this.setError(resources.genericErrorMessage);\r\n });\r\n };\r\n\r\n private readonly getCartLinesForShipping = (): CartLine[] => {\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\r\n return this.retailMultiplePickUpOptionEnabled\r\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n this.channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(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 private readonly getDeliveryOptions = async (shippingAddress: Address): Promise => {\r\n if (!this.props.data.checkout.result) {\r\n return;\r\n }\r\n\r\n const { context, resources, config } = this.props;\r\n const cartState = this.props.data.checkout.result?.checkoutCart;\r\n const cartId = (cartState.cart as Cart).Id;\r\n\r\n if (context) {\r\n this.isLoading = true;\r\n this.deliveryOptions = [];\r\n this.selectedItemId = '';\r\n this.clearError();\r\n\r\n try {\r\n let originalDeliveryMode: string = '';\r\n const shippingCartLines = this.getCartLinesForShipping();\r\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\r\n if (hasShippingDeliveryLines) {\r\n // First store the delivery mode, so that we can restore the shipping information.\r\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\r\n\r\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\r\n const cart = cartState.cart;\r\n await cartState.clearCartLinesDeliveryInformation({\r\n cart,\r\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\r\n });\r\n }\r\n\r\n // TODO: Check if we can move this getDeliveryOptions to checkout state\r\n let deliveryOptionFilter: FilterDeliveryModeOption;\r\n switch (config.filterDeliveryModeOption) {\r\n case filterDeliveryModeOption.none:\r\n deliveryOptionFilter = FilterDeliveryModeOption.None;\r\n break;\r\n case filterDeliveryModeOption.filterOutNonCarrierDeliveryMode:\r\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\r\n break;\r\n default:\r\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\r\n }\r\n const response = await getDeliveryOptionsAsync(\r\n {\r\n callerContext: context.actionContext,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context.actionContext)\r\n },\r\n cartId,\r\n shippingAddress,\r\n [],\r\n deliveryOptionFilter,\r\n true\r\n );\r\n\r\n if (hasShippingDeliveryLines) {\r\n await this.updateCartDeliverySpecification(originalDeliveryMode);\r\n }\r\n\r\n if (response && response.length > 0) {\r\n this.deliveryOptions = response;\r\n }\r\n } catch {\r\n this.setError(resources.genericErrorMessage);\r\n }\r\n\r\n if (this.deliveryOptions.length === 0) {\r\n this.setError(resources.deliveryOptionsNotFound);\r\n } else if (this.cartDeliveryMode && this.isDeliveryModeExists(this.cartDeliveryMode)) {\r\n this.selectedItemId = this.cartDeliveryMode;\r\n this.cartDeliveryMode = undefined;\r\n this.onReady();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: true });\r\n\r\n if (!this.props.data.checkout.result?.isPaymentVerificationRedirection) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n }\r\n } else {\r\n this.onUpdating();\r\n this.selectedItemId = this.deliveryOptions.length > 0 ? this.deliveryOptions[0].Code || '' : ''; // By default, select first delivery\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: !!this.isSelectDefaultOptionEnabled });\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n };\r\n\r\n private readonly getStoredDeliveryOptions = async (): Promise => {\r\n if (!this.props.data.checkout.result) {\r\n return;\r\n }\r\n\r\n const { context } = this.props;\r\n const cartState = this.props.data.checkout.result.checkoutCart;\r\n\r\n if (context) {\r\n this.isLoading = true;\r\n this.deliveryOptions = [];\r\n this.selectedItemId = '';\r\n this.clearError();\r\n\r\n let originalDeliveryMode: string = '';\r\n const shippingCartLines = this.getCartLinesForShipping();\r\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\r\n if (hasShippingDeliveryLines) {\r\n // First store the delivery mode, so that we can restore the shipping information.\r\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\r\n\r\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\r\n const cart = cartState.cart;\r\n await cartState.clearCartLinesDeliveryInformation({\r\n cart,\r\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\r\n });\r\n if (hasShippingDeliveryLines) {\r\n await this.updateCartDeliverySpecification(originalDeliveryMode);\r\n }\r\n }\r\n\r\n if (this.cartDeliveryMode) {\r\n this.selectedItemId = this.cartDeliveryMode;\r\n this.cartDeliveryMode = undefined;\r\n this.onReady();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: true });\r\n\r\n if (!this.props.data.checkout.result.isPaymentVerificationRedirection) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n };\r\n\r\n private readonly loadDeliveryOptions = async (): Promise => {\r\n const shippingAddress = this.props.data.checkout.result?.shippingAddress;\r\n\r\n if (this.canShip() && shippingAddress) {\r\n if (\r\n !this.props.data.checkout.result?.isPaymentVerificationRedirection ||\r\n this.isSelectDefaultOptionEnabled ||\r\n this.props.data.checkout.result?.isExpressCheckoutApplied\r\n ) {\r\n await this.getDeliveryOptions(shippingAddress);\r\n }\r\n\r\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\r\n await this.getStoredDeliveryOptions();\r\n }\r\n\r\n if (\r\n this.isSelectDefaultOptionEnabled ||\r\n this.props.data.checkout.result?.isExpressCheckoutApplied ||\r\n this.isExpressPaymentAppliedInCartPage\r\n ) {\r\n void this.onSubmit();\r\n }\r\n }\r\n };\r\n\r\n private readonly onDeliveryOptionChange = (event: React.ChangeEvent) => {\r\n const deliveryModeId = event.currentTarget.value;\r\n this.selectedItemId = deliveryModeId;\r\n };\r\n\r\n private readonly onReady = () => {\r\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private readonly onUpdating = () => {\r\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n\r\n private readonly onPending = () => {\r\n if (!this.isSelectDefaultOptionEnabled) {\r\n this.props.moduleState.onPending();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutDeliveryOptions;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IPaymentConnectorPostMessage } from './payment-instrument-message';\r\n\r\n/**\r\n * Payment iFrame interface.\r\n */\r\nexport interface IPaymentFrameElementProps {\r\n className?: string;\r\n moduleName?: string;\r\n iframeAriaLabel: string;\r\n displayContent?: string;\r\n sourceUrl?: string;\r\n requestUrlOrigin?: string;\r\n messageOrigin?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- public props.\r\n css?: string;\r\n height?: number;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- public event.\r\n onIFrameMessage?(event: MessageEvent): void;\r\n}\r\n\r\n/**\r\n * Default post message name.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Existing name.\r\nexport const POST_MESSAGE_NAME = 'message';\r\n\r\n/**\r\n * Get host name.\r\n * @param url - The url.\r\n * @returns The host name.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Public props.\r\nconst getHostName = (url: string = ''): string => {\r\n return (url.includes('//') ? url.split('/')[2] : url.split('/')[0]).toLowerCase();\r\n};\r\n\r\n/**\r\n *\r\n * IFrameElement component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Iframe extends React.PureComponent {\r\n private readonly iframeRef: React.RefObject;\r\n\r\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility -- Existing code.\r\n constructor(props: IPaymentFrameElementProps) {\r\n super(props);\r\n this.iframeRef = React.createRef();\r\n }\r\n\r\n public componentDidMount(): void {\r\n window.addEventListener(POST_MESSAGE_NAME, this.onEvent);\r\n\r\n this.updateContentDocument();\r\n }\r\n\r\n public componentDidUpdate(previousProps: IPaymentFrameElementProps): void {\r\n if (previousProps.displayContent !== this.props.displayContent) {\r\n this.updateContentDocument();\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window.removeEventListener(POST_MESSAGE_NAME, this.onEvent);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { sourceUrl, className, iframeAriaLabel, height, moduleName = 'checkout-payment-instrument' } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Post message.\r\n * @param parameters - Payment connector post message.\r\n */\r\n public postMessage = (parameters: IPaymentConnectorPostMessage): void => {\r\n if (this.iframeRef.current?.contentWindow?.postMessage) {\r\n this.iframeRef.current.contentWindow.postMessage(parameters.message, parameters.targetOrigin);\r\n }\r\n };\r\n\r\n /**\r\n * On event.\r\n * @param event - The message event.\r\n */\r\n private readonly onEvent = (event: MessageEvent) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- IFrame.\r\n const { sourceUrl, onIFrameMessage, requestUrlOrigin, messageOrigin } = this.props;\r\n const sourceHost = getHostName(sourceUrl);\r\n const eventHost = getHostName(event.origin);\r\n const requestHost = getHostName(requestUrlOrigin);\r\n const messageHost = getHostName(messageOrigin);\r\n\r\n // Important: security check\r\n // check actual origin matches with expected origin\r\n if (\r\n !onIFrameMessage ||\r\n (sourceUrl && !(sourceHost === eventHost || requestHost === eventHost || messageHost === eventHost)) ||\r\n (!sourceUrl && !(requestHost === eventHost || messageHost === eventHost))\r\n ) {\r\n return;\r\n }\r\n\r\n onIFrameMessage(event);\r\n };\r\n\r\n /**\r\n * Update content document.\r\n */\r\n private readonly updateContentDocument = (): void => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Existing props.\r\n const { displayContent, sourceUrl, css } = this.props;\r\n if (!sourceUrl && displayContent && this.iframeRef.current) {\r\n const innerDocument = this.iframeRef.current.contentDocument;\r\n\r\n if (innerDocument) {\r\n innerDocument.open();\r\n innerDocument.write(displayContent);\r\n if (css) {\r\n // Append custom style\r\n const style = document.createElement('style');\r\n const cssNote = document.createTextNode(css);\r\n style.appendChild(cssNote);\r\n innerDocument.head.appendChild(style);\r\n }\r\n\r\n innerDocument.close();\r\n }\r\n }\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n// eslint-disable-next-line import/no-anonymous-default-export -- Existing code.\r\nexport default `\r\n .adyen-dropin {\r\n font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\r\n font-weight: normal;\r\n font-size: 16px;\r\n line-height: 21px;\r\n margin-left: -7px;\r\n text-transform: none;\r\n }\r\n\r\n /* Card pannel */\r\n\r\n .adyen-checkout__payment-method--next-selected,\r\n .adyen-checkout__payment-method:last-child {\r\n background-color: #FFFFFF;\r\n }\r\n\r\n .adyen-checkout__payment-method__name {\r\n color: #1D1D1D;\r\n font-weight: normal;\r\n }\r\n\r\n .adyen-checkout__label__text--error,\r\n .adyen-checkout__helper-text,\r\n .adyen-checkout__label__text {\r\n color: #1D1D1D;\r\n font-size: 18px;\r\n line-height: 24px;\r\n padding-bottom: 4px;\r\n }\r\n\r\n .adyen-checkout__error-text {\r\n color: #A80000;\r\n font-size: 16px;\r\n line-height: 21px;\r\n }\r\n\r\n .adyen-checkout__input {\r\n background: white;\r\n box-shadow: none;\r\n border: none;\r\n border-radius: 0;\r\n box-shadow: none;\r\n color: #1D1D1D;\r\n height: 42px;\r\n padding: 5px 8px;\r\n }\r\n\r\n .adyen-checkout__input--focus,\r\n .adyen-checkout__input--focus:hover,\r\n .adyen-checkout__input:active,\r\n .adyen-checkout__input:active:hover,\r\n .adyen-checkout__input:focus,\r\n .adyen-checkout__input:focus:hover {\r\n border: 1px dashed #fff;\r\n outline: 1px dashed #000;\r\n box-shadow: none;\r\n }\r\n\r\n .adyen-checkout__input:hover {\r\n border: none;\r\n }\r\n\r\n .adyen-checkout__input--error,\r\n .adyen-checkout__input--error:hover,\r\n .adyen-checkout__input--invalid,\r\n .adyen-checkout__input--invalid:hover {\r\n border: none;\r\n border-left: 2px solid #A80000;\r\n color: #A80000;\r\n }\r\n\r\n .adyen-checkout__label--focused .adyen-checkout__label__text {\r\n color: inherit;\r\n }\r\n`;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { Iframe } from './iframe';\r\nimport defaultPaymentConnectorDropinStyle from './payment-instrument.dropin.style';\r\nimport defaultPaymentConnectorPaypalStyle from './payment-instrument.paypal.style';\r\nimport defaultPaymentConnectorStyle from './payment-instrument.style';\r\n\r\n/**\r\n * Interface for add payment form.\r\n */\r\nexport interface IAddPaymentFormProps {\r\n acceptPageUrl?: string;\r\n acceptPageContent?: string;\r\n iframeRef?: React.RefObject