{"version":3,"file":"static/js/6.7f0d40d02ad433b6c11d.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-checkout-customer-account-payment/components/get-account-payment-form-edit-mode.tsx?c910","webpack://Citta2.0/./src/modules/citta-checkout-customer-account-payment/components/get-account-payment-form-summary-mode.tsx?7409","webpack://Citta2.0/./src/modules/citta-checkout-customer-account-payment/citta-checkout-customer-account-payment.tsx?1889","webpack://Citta2.0/./src/modules/citta-checkout-customer-account-payment/citta-checkout-customer-account-payment.view.tsx?7a9b","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/citta-checkout-delivery-options.props.autogenerated.ts?9bf0","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/components/citta-checkout-delivery-options.description.tsx?4f2e","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/components/citta-checkout-delivery-options.error-message.tsx?d32d","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/components/citta-checkout-delivery-options.error-title.tsx?1802","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/components/citta-checkout-delivery-options.radio-button.tsx?2ea8","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/citta-checkout-delivery-options.tsx?abdd","webpack://Citta2.0/./src/modules/citta-checkout-delivery-options/citta-checkout-delivery-options.view.tsx?d55e","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/alert.tsx?7c0b","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/get-invoice-payment-summary.tsx?0669","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/get-line-items.tsx?d170","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/get-order-summary.tsx?c4de","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/guided-card.tsx?caeb","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/guided-form.tsx?61ca","webpack://Citta2.0/./src/modules/citta-checkout-ogty/components/place-order-button.tsx?1f21","webpack://Citta2.0/./src/modules/citta-checkout-ogty/citta-checkout-ogty.tsx?5829","webpack://Citta2.0/./src/modules/citta-checkout-ogty/methods/place-order.ts?c2b7","webpack://Citta2.0/./src/modules/citta-checkout-ogty/citta-checkout-ogty.view.tsx?022f","webpack://Citta2.0/./src/modules/citta-checkout-shipping-address/hso-helpers.tsx?5f15","webpack://Citta2.0/./src/modules/citta-checkout/components/alert.tsx?bd0b","webpack://Citta2.0/./src/modules/citta-checkout/components/get-invoice-payment-summary.tsx?20bd","webpack://Citta2.0/./src/modules/citta-checkout/components/get-line-items.tsx?d46b","webpack://Citta2.0/./src/modules/citta-checkout/components/get-order-summary.tsx?399b","webpack://Citta2.0/./src/modules/citta-checkout/components/guided-card.tsx?158a","webpack://Citta2.0/./src/modules/citta-checkout/components/guided-form.tsx?0599","webpack://Citta2.0/./src/modules/citta-checkout/components/place-order-button.tsx?62f7","webpack://Citta2.0/./src/modules/citta-checkout/citta-checkout.tsx?c577","webpack://Citta2.0/./src/modules/citta-checkout/methods/place-order.ts?dcfd","webpack://Citta2.0/./src/modules/citta-checkout/citta-checkout.view.tsx?a0f5","webpack://Citta2.0/./src/modules/citta-header/components/logo.tsx?d610","webpack://Citta2.0/./src/modules/citta-header/components/nav-icon.tsx?2883","webpack://Citta2.0/./src/modules/citta-header/components/citta-header-preferred-store.tsx?31a1","webpack://Citta2.0/./src/modules/citta-header/citta-header.tsx?01c9","webpack://Citta2.0/./src/modules/citta-header/citta-header.view.tsx?4656","webpack://Citta2.0/./src/themes/citta/views/citta-checkout.view.tsx?a28f","webpack://Citta2.0/./src/themes/citta/views/components/cart-icon.component.tsx?a3df","webpack://Citta2.0/./src/themes/citta/views/header.view.tsx?b6f0","webpack://Citta2.0/./src/validate-cart.ts?cd50","webpack://Citta2.0/./src/Common/get-product.ts?0a21","webpack://Citta2.0/./src/modules/cart-icon/utils/get-products-in-mini-cart.ts?3c15","webpack://Citta2.0/./src/modules/cart-icon/cart-icon.tsx?4ae8","webpack://Citta2.0/./src/modules/cart-icon/cart-icon.view.tsx?f9dd","webpack://Citta2.0/./src/modules/cart-icon/components/flyout-cart-line-items.tsx?f2c4","webpack://Citta2.0/./src/common/waiting.tsx?8095","webpack://Citta2.0/./src/modules/checkout-apple-pay/checkout-apple-pay.data.ts?c986","webpack://Citta2.0/./src/modules/checkout-apple-pay/checkout-apple-pay.tsx?f243","webpack://Citta2.0/./src/modules/checkout-apple-pay/checkout-apple-pay.view.tsx?222d","webpack://Citta2.0/./src/modules/checkout-customer-account-payment/checkout-customer-account-payment.tsx?de67","webpack://Citta2.0/./src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode.tsx?83e6","webpack://Citta2.0/./src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode.tsx?5675","webpack://Citta2.0/./src/modules/checkout-delivery-options/checkout-delivery-options.tsx?6764","webpack://Citta2.0/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?1e75","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/address-detail-item.tsx?d9a2","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-date.tsx?bd12","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-grp.tsx?3a15","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-radio.tsx?045f","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-delivery-options.description.tsx?840c","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-message.tsx?8ca3","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-title.tsx?f7e7","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/checkout-delivery-options.radio-button.tsx?9df9","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/get-line-items.tsx?e389","webpack://Citta2.0/./src/modules/checkout-delivery-options/components/address-format.data.ts?3c40","webpack://Citta2.0/./src/modules/checkout-express-payment-container/checkout-express-payment-container.tsx?1d63","webpack://Citta2.0/./src/modules/checkout-express-payment-container/checkout-express-payment-container.view.tsx?4299","webpack://Citta2.0/./src/modules/checkout-express/checkout-express.tsx?cc8c","webpack://Citta2.0/./src/modules/checkout-gift-card/checkout-gift-card.tsx?8fc3","webpack://Citta2.0/./src/modules/checkout-gift-card/checkout-gift-card.view.tsx?d99f","webpack://Citta2.0/./src/modules/checkout-gift-card/components/get-form.tsx?4540","webpack://Citta2.0/./src/modules/checkout-gift-card/components/get-item.tsx?d186","webpack://Citta2.0/./src/modules/checkout-gift-card/components/get-list.tsx?a3f3","webpack://Citta2.0/./src/modules/checkout-gift-card/components/title.tsx?3b2f","webpack://Citta2.0/./src/modules/checkout-guest-profile/checkout-guest-profile.tsx?c2ce","webpack://Citta2.0/./src/modules/checkout-guest-profile/checkout-guest-profile.view.tsx?2e47","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-add-contact-info.tsx?c9f6","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-add-customer-reference-info.tsx?dda7","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-add-customer-requisition-info.tsx?b5a7","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-add-note-info.tsx?7024","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-show-contact-info.tsx?e9b5","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-show-customer-reference-info.tsx?025f","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-show-customer-requisition-info.tsx?85d3","webpack://Citta2.0/./src/modules/checkout-guest-profile/components/get-show-note-info.tsx?44a0","webpack://Citta2.0/./src/modules/checkout-loyalty/checkout-loyalty.tsx?8b4b","webpack://Citta2.0/./src/modules/checkout-loyalty/checkout-loyalty.view.tsx?b79f","webpack://Citta2.0/./src/modules/checkout-loyalty/components/checkout-loyalty-input.tsx?cadb","webpack://Citta2.0/./src/modules/checkout-loyalty/components/checkout-loyalty-label.tsx?e02b","webpack://Citta2.0/./src/modules/checkout-loyalty/components/checkout-loyalty-text.tsx?895a","webpack://Citta2.0/./src/modules/checkout-pickup/checkout-pickup.tsx?28aa","webpack://Citta2.0/./src/modules/checkout-pickup/checkout-pickup.view.tsx?d64e","webpack://Citta2.0/./src/modules/checkout-pickup/components/checkout-pickup-group.tsx?9de7","webpack://Citta2.0/./src/modules/checkout-pickup/components/checkout-pickup-utility.ts?b7eb","webpack://Citta2.0/./src/modules/checkout-pickup/components/checkout-pickup-date-dropdown.tsx?e5a3","webpack://Citta2.0/./src/modules/checkout-pickup/components/checkout-pickup-timeslot-dropdown.tsx?aef8","webpack://Citta2.0/./src/modules/checkout-section-container/checkout-section-container.tsx?c853","webpack://Citta2.0/./src/modules/checkout-section-container/checkout-section-container.view.tsx?b4ab","webpack://Citta2.0/./src/modules/checkout-section-container/components/loading.tsx?2e57","webpack://Citta2.0/./src/modules/checkout-terms-and-conditions/checkout-terms-and-conditions.tsx?9243","webpack://Citta2.0/./src/modules/checkout-terms-and-conditions/checkout-terms-and-conditions.view.tsx?26e8","webpack://Citta2.0/./src/modules/checkout-terms-and-conditions/components/checkout-terms-and-conditions.check-box.tsx?3b17","webpack://Citta2.0/./src/modules/checkout-terms-and-conditions/components/checkout-terms-and-conditions.error-message.tsx?c6a5","webpack://Citta2.0/./src/modules/checkout-terms-and-conditions/components/checkout-terms-and-conditions.error-title.tsx?f908","webpack://Citta2.0/./src/modules/checkout/checkout.tsx?6737","webpack://Citta2.0/./src/modules/checkout/checkout.view.tsx?e4cc","webpack://Citta2.0/./src/modules/checkout/components/alert.tsx?cb1e","webpack://Citta2.0/./src/modules/checkout/components/get-invoice-payment-summary.tsx?9549","webpack://Citta2.0/./src/modules/checkout/components/get-line-items.tsx?92f8","webpack://Citta2.0/./src/modules/checkout/components/get-order-summary.tsx?4a81","webpack://Citta2.0/./src/modules/checkout/components/guided-card.tsx?58e0","webpack://Citta2.0/./src/modules/checkout/components/guided-form.tsx?f018","webpack://Citta2.0/./src/modules/checkout/components/place-order-button.tsx?9b41","webpack://Citta2.0/./src/modules/checkout/methods/checkout.ts?7b6b","webpack://Citta2.0/./src/modules/checkout/methods/place-order.ts?5aa0","webpack://Citta2.0/./src/modules/gift-card-balance-check/components/get-form.tsx?e249","webpack://Citta2.0/./src/modules/gift-card-balance-check/components/get-item.tsx?4862","webpack://Citta2.0/./src/modules/gift-card-balance-check/gift-card-balance-check.tsx?d1f8","webpack://Citta2.0/./src/modules/gift-card-balance-check/gift-card-balance-check.view.tsx?a0c9","webpack://Citta2.0/./src/invoice-summary-lineitem.tsx?5f61","webpack://Citta2.0/./src/order-summary-lineitem.tsx?8a98","webpack://Citta2.0/./src/modules/product-comparison-preview/product-comparison-preview.tsx?39f6","webpack://Citta2.0/./src/modules/product-comparison-preview/product-comparison-preview.view.tsx?28cb","webpack://Citta2.0/./src/modules/product-comparison/base/product-specification.tsx?75ed","webpack://Citta2.0/./src/modules/product-comparison/base/remove-from-comparison-button.tsx?1d8c","webpack://Citta2.0/./src/modules/product-comparison/product-comparison.tsx?4f74","webpack://Citta2.0/./src/modules/product-comparison/product-comparison.view.tsx?a0a9","webpack://Citta2.0/./src/modules/wishlist-items/components/wishlist-items-dimensions.tsx?15c5","webpack://Citta2.0/./src/modules/wishlist-items/components/wishlist-item.tsx?d2da","webpack://Citta2.0/./src/modules/wishlist-items/components/wishlist-items-status-message.tsx?cdb3","webpack://Citta2.0/./src/modules/wishlist-items/wishlist-items.tsx?df8b","webpack://Citta2.0/./src/modules/wishlist-items/wishlist-items.view.tsx?4d80"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { 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 { ICittaCheckoutCustomerAccountPaymentResources } from '../citta-checkout-customer-account-payment.props.autogenerated';\r\n\r\nexport interface IGetAccountPaymentEditViewFormInput {\r\n resources: ICittaCheckoutCustomerAccountPaymentResources;\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 customerStatus: React.ReactNode;\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 confirmAmount: 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 customerStatus: 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 customerStatus,\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}\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 readOnly\r\n />\r\n );\r\n\r\n const confirmAmount = (\r\n
{`$${customizedAmt}`}
\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\r\n const bottomBorder =
;\r\n\r\n return {\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n confirmAmount,\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 customerStatus,\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 { ICittaCheckoutCustomerAccountPaymentResources } from '../citta-checkout-customer-account-payment.props.autogenerated';\r\n\r\nexport interface IGetAccountPaymentSummaryViewFormInput {\r\n resources: ICittaCheckoutCustomerAccountPaymentResources;\r\n amount: number;\r\n appliedAmount: string | undefined;\r\n customerStatus: React.ReactNode;\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 customerStatus: React.ReactNode;\r\n}\r\n\r\nexport const getAccountPaymentFormSummaryMode = (options: IGetAccountPaymentSummaryViewFormInput): IAccountPaymentSummaryViewForm => {\r\n const { resources, amount, appliedAmount, customerStatus} = 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 \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 customerStatus,\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\n\r\nimport { ICittaCheckoutCustomerAccountPaymentData } from './citta-checkout-customer-account-payment.data';\r\nimport { ICittaCheckoutCustomerAccountPaymentProps } from './citta-checkout-customer-account-payment.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 ICittaCheckoutCustomerAccountPaymentProps {\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}\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}\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 getGiftCardAmount(): number {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (!checkoutState || !checkoutState.giftCards || checkoutState.giftCards.length === 0) {\r\n return 0;\r\n }\r\n\r\n let giftCardAmount: number = 0;\r\n checkoutState.giftCards.forEach(giftCard => {\r\n giftCardAmount += giftCard.Balance || 0;\r\n });\r\n\r\n return giftCardAmount;\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 gift card and loyalty.\r\n const amountDue = Math.max(0, (cart.TotalAmount || 0) - this.getLoyaltyAmount - this.getGiftCardAmount);\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 };\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 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: ICittaCheckoutCustomerAccountPaymentProps,\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 const blockedStatusMessage = this.props.config.blockedStatusMessage;\r\n let custStatus = 0;\r\n if (customerInfo) {\r\n const customerExtensionProperties = customerInfo.ExtensionProperties;\r\n customerExtensionProperties?.forEach(element => {\r\n if (element.Key == 'HSOCustBlockedStatus'){\r\n custStatus = element.Value?.IntegerValue!;\r\n }\r\n })\r\n }\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\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 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 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 customerStatus: this.getBlockedStatusMessage(custStatus, blockedStatusMessage)\r\n \r\n }),\r\n summaryView: getAccountPaymentFormSummaryMode({\r\n resources,\r\n amount: this.state.paymentAmount,\r\n customerStatus: this.getBlockedStatusMessage(custStatus, blockedStatusMessage),\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 getBlockedStatusMessage = (custStatus: number, blockedStatusMessage: string | undefined): JSX.Element => {\r\n if ((custStatus === 2 || custStatus === 1) && blockedStatusMessage) {\r\n return

{blockedStatusMessage}

\r\n }\r\n return <>; \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 if (!checkoutState) {\r\n this.props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\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 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 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 = async (): Promise => {\r\n this.props.telemetry.information('Payment section customer account payment onEdit is called.');\r\n await this.removePayment();\r\n this.props.moduleState.onUpdating();\r\n };\r\n\r\n private readonly handleCancelOrSubmit = async (): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n if( this.props.moduleState && !this.props.moduleState.isSkipped){\r\n if(this.isCustomerAccountPaymentEnabled){\r\n await this.addPayment();\r\n }\r\n if (checkoutState && checkoutState.customerAccountAmount > 0) {\r\n this.props.telemetry.information('Payment section customer account payment onSubmit is called.');\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 {\r\n this.props.telemetry.information('Payment section customer account payment onCancel is called.');\r\n // Skip the module\r\n this.props.moduleState.onSkip();\r\n }\r\n } \r\n };\r\n\r\n private readonly removePayment = async (): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (!checkoutState) {\r\n this.props.context.telemetry.error('checkout state not found');\r\n return;\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 in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutCustomerAccountPaymentViewProps } from './citta-checkout-customer-account-payment';\r\nimport { IAccountPaymentEditViewForm } from './components/get-account-payment-form-edit-mode';\r\nimport { IAccountPaymentSummaryViewForm } from './components/get-account-payment-form-summary-mode';\r\n\r\nexport const SummaryForm: React.FC = ({\r\n formProps,\r\n label,\r\n paymentAmount,\r\n addPaymentButton,\r\n appliedLine,\r\n customerStatus,\r\n bottomBorder\r\n \r\n}) => (\r\n \r\n <>\r\n
\r\n {label} \r\n {paymentAmount}\r\n
\r\n {/* {addPaymentButton} */}\r\n {/* {appliedLine} */}\r\n {customerStatus}\r\n {bottomBorder}\r\n \r\n
\r\n);\r\n\r\nexport const EditForm: React.FC = ({\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n confirmAmount,\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 customerStatus,\r\n bottomBorder\r\n}) => (\r\n \r\n <>\r\n {/* {customerName} */}\r\n {/* {customerAccountNumber}\r\n {customerSince} */}\r\n {/* {accountCredit} */}\r\n {accountDetails}\r\n {/* {inputLabel} */}\r\n {alert}\r\n {/* {inputAmount} */}\r\n {confirmAmount}\r\n {/* {customerStatus} */}\r\n {/* {appliedLine? null :addPaymentButton} */}\r\n {customerStatus}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n);\r\n\r\nconst CheckoutCustomerAccountView: React.FC = props => {\r\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView,editView, moduleState, alert} = props;\r\n return (\r\n \r\n {alert}\r\n {moduleState.isReady && summaryView && }\r\n {!moduleState.isReady && editView && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutCustomerAccountView;\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 * ICittaCheckoutDeliveryOptions 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 ICittaCheckoutDeliveryOptionsConfig 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 deliveryText?: Msdyn365.RichText;\r\n}\r\n\r\nexport interface ICittaCheckoutDeliveryOptionsResources {\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 ICittaCheckoutDeliveryOptionsProps extends Msdyn365.IModule {\r\n resources: ICittaCheckoutDeliveryOptionsResources;\r\n config: ICittaCheckoutDeliveryOptionsConfig;\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\n// import { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { dXC_GetDeliveryOptionsAsync } from '../../data-actions/generated/DataActionExtension.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 { ICittaCheckoutDeliveryOptionsData } from './citta-checkout-delivery-options.data';\r\nimport {\r\n filterDeliveryModeOption,\r\n ICittaCheckoutDeliveryOptionsProps,\r\n useDefaultDeliveryOption\r\n} from './citta-checkout-delivery-options.props.autogenerated';\r\nimport DescriptionComponent from './components/citta-checkout-delivery-options.description';\r\nimport ErrorMessageComponent from './components/citta-checkout-delivery-options.error-message';\r\nimport ErrorTitleComponent from './components/citta-checkout-delivery-options.error-title';\r\nimport RadioButtonComponent from './components/citta-checkout-delivery-options.radio-button';\r\nimport { focusOnCheckoutError } from '@msdyn365-commerce-modules/checkout';\r\n\r\nimport { _getProductDetailsWithAttributes, _getProductInventory, IHSOProductDetails } from '../citta-checkout-shipping-address/hso-helpers';\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nexport interface ICheckoutDeliveryOptionsModuleProps\r\n extends ICittaCheckoutDeliveryOptionsProps,\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 isFurniture1: boolean;\r\n isClickAndCollect: boolean\r\n}\r\nexport interface ICheckoutDeliveryOptionsViewProps extends ICittaCheckoutDeliveryOptionsProps<{}> {\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 this.isDeliveryFurniture();\r\n // this._ClickAndCollectDelivery()\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.shippingAddress,\r\n async () => {\r\n this._ClickAndCollectDelivery();\r\n await this.loadDeliveryOptions();\r\n this.props.moduleState.setIsCancellable(false);\r\n\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 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 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 isFurniture1:this.state && this.state.isFurniture1,\r\n isClickAndCollect: false\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\r\n this.cartDeliveryMode = this.getSavedDeliveryOption();\r\n };\r\n\r\n private isDeliveryFurniture = async():Promise => {\r\n const currentCart = (this.props.data.cart.result?.cart as Cart);\r\n \r\n if(currentCart.CartLines)\r\n {\r\n const productDetailsPromise = this.getProductDetails(\r\n currentCart.CartLines,\r\n this.props.context.request.apiSettings.channelId,\r\n this.props.context.actionContext\r\n );\r\n const productDetails = await productDetailsPromise;\r\n let hasFreightItem = false;\r\n productDetails.forEach((productDetail, index, array) => {\r\n const freightItemAttr = productDetail.AttributeValues && productDetail.AttributeValues.find(attr => attr.Name === \"Freight Item\");\r\n if ((freightItemAttr && freightItemAttr.BooleanValue)){\r\n hasFreightItem = true;\r\n }\r\n const GLVItemAttr = productDetail.AttributeValues && productDetail.AttributeValues.find(attr => attr.Name === \"B2BA White Glove Service\");\r\n if ((GLVItemAttr && GLVItemAttr.BooleanValue)){\r\n hasFreightItem = true;\r\n }\r\n });\r\n \r\n this.setState({isFurniture1: !hasFreightItem});\r\n\r\n }\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, 'TotalChargeAmount', 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 const clickAndCollectDeliveryModeCode = 'CLICK&COLL';\r\n // let isClickAndCollectOrder = this._getExtensionPropertyValue('DELIVERYTYPE') === 'opt2';\r\n let filterdeliveryOptions = this.deliveryOptions.filter(deliveryOption => deliveryOption.Code !== clickAndCollectDeliveryModeCode)\r\n if(this.state && !this.state.isFurniture1) {\r\n filterdeliveryOptions = filterdeliveryOptions.filter(deliveryOption => deliveryOption.Code !== 'EXPRESS')\r\n }\r\n if(this.state && this.state.isFurniture1) {\r\n filterdeliveryOptions = filterdeliveryOptions.filter(deliveryOption => deliveryOption.Code == 'WS&TR-INTE')\r\n\r\n }\r\n if(this.state && this.state.isClickAndCollect) {\r\n filterdeliveryOptions = this.deliveryOptions.filter(deliveryOption => deliveryOption.Code === 'CLICK&COLL')\r\n }\r\n\r\n return filterdeliveryOptions.map((deliveryOption: DeliveryOption, index: number) => {\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 _ClickAndCollectDelivery = () => {\r\n const value = this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties &&\r\n this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties?.filter(p=>p.Key === 'DELIVERYTYPE');\r\n if(value && value?.length > 0) {\r\n if(this.state){\r\n if(value[0].Value?.StringValue === 'opt2'){\r\n this.setState({isClickAndCollect: true})\r\n } else {\r\n this.setState({isClickAndCollect: false})\r\n }\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 // const clickAndCollectDeliveryModeCode = this.props.context.app.config.clickAndCollectDeliveryModeCode || 'CLICK&COLL';\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 // @ts-ignore\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 const response = await dXC_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 0\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 \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 \r\n this.onUpdating();\r\n \r\n \r\n // this.selectedItemId = this.deliveryOptions.length > 0 ? this.deliveryOptions[1].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 if(this.state && this.state.isClickAndCollect) {\r\n this.selectedItemId = this.deliveryOptions.length > 0 ? this.deliveryOptions[0].Code || '' : '';\r\n this.onSave();\r\n } else{\r\n this.selectedItemId = this.deliveryOptions.length > 0 ? (this.deliveryOptions.length > 2 ? this.deliveryOptions[1].Code || '' : this.deliveryOptions[0].Code || '' ) : ''; \r\n if(this.state && !this.state.isFurniture1) {\r\n this.selectedItemId = this.deliveryOptions.length > 0 ? this.deliveryOptions[0].Code || '' : ''; \r\n }\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n };\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 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 public async getProductDetails(cartLines: CartLine[], channelId: number, context: IActionContext): Promise {\r\n let i = 0;\r\n let productsInventory: IHSOProductDetails[] = [];\r\n for (i = 0; i < cartLines.length; i++) {\r\n let element: IHSOProductDetails = { productDetails: null, AttributeValues: null };\r\n if (cartLines[i] !== undefined) {\r\n const responseHSOInterface = await _getProductDetailsWithAttributes(cartLines[i].ProductId!, channelId, context, context.requestContext);\r\n if (responseHSOInterface?.productDetails) {\r\n element.productDetails = responseHSOInterface?.productDetails;\r\n }\r\n if (responseHSOInterface?.AttributeValues) {\r\n element.AttributeValues = responseHSOInterface?.AttributeValues;\r\n }\r\n \r\n productsInventory.push(element);\r\n }\r\n }\r\n return productsInventory;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\n\r\nimport {\r\n ICheckoutDeliveryOption,\r\n ICheckoutDeliveryOptionEdit,\r\n ICheckoutDeliveryOptionsList,\r\n ICheckoutDeliveryOptionsViewProps\r\n} from './citta-checkout-delivery-options';\r\n\r\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list }) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n \r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {deliveryOption.price}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({ DeliveryOption, description, price }) => {\r\n return (\r\n \r\n {description}\r\n {price}\r\n \r\n );\r\n};\r\n\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const {\r\n CheckoutDeliveryOptions,\r\n checkoutErrorRef,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton,\r\n config\r\n } = props;\r\n \r\n return (\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isFurniture1 ? null : }\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\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\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 { ICittaCheckoutOgtyData } from '../citta-checkout-ogty.data';\r\nimport { ICittaCheckoutOgtyProps } from '../citta-checkout-ogty.props.autogenerated';\r\n\r\nexport interface IInvoicePaymentSummary {\r\n heading?: React.ReactNode;\r\n lines?: IInvoiceSummaryLines;\r\n}\r\nexport const getInvoicePaymentSummary = (input: ICittaCheckoutOgtyProps): 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","/*!\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 { 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 { ICittaCheckoutOgtyData } from '../citta-checkout-ogty.data';\r\nimport { ICittaCheckoutOgtyProps } from '../citta-checkout-ogty.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 = (input: ICittaCheckoutOgtyProps, telemetryContent?: ITelemetryContent): 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 && context.request.user.isB2b) {\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 => {\r\n const cartLines = cartLinesGroup[key];\r\n Object.keys(cartLines).forEach(index => {\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 === '' && cartLine.DeliveryMode === 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 { ICheckoutViewProps, } from '../citta-checkout-ogty';\r\n\r\n\r\nimport get from 'lodash/get';\r\nimport * as React from 'react';\r\n\r\nimport { ICittaCheckoutOgtyData } from '../citta-checkout-ogty.data';\r\nimport { ICittaCheckoutOgtyProps } from '../citta-checkout-ogty.props.autogenerated';\r\n\r\nexport interface IOrderSummary {\r\n orderSummaryProps: INodeProps;\r\n heading?: React.ReactNode;\r\n lines?: IOrderSummaryLines;\r\n freeShippingAmount?: number | undefined;\r\n orderSubTotal?: number | undefined;\r\n paragraph?: Msdyn365.RichText | undefined;\r\n hideTaxLine?: boolean;\r\n props?: ICheckoutViewProps;\r\n}\r\nexport const getOrderSummary = (input: ICittaCheckoutOgtyProps): 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 },\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: isShowOrHideTaxEnabled\r\n })\r\n : undefined\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\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 setCheckoutErrorFocus(childId, actionContext);\r\n return;\r\n }\r\n }\r\n } else {\r\n 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 } = this.props;\r\n const { changeBtnLabel } = resource;\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 return (\r\n \r\n
\r\n {this.getTitle()}\r\n\r\n {canEdit && (\r\n \r\n {changeBtnLabel}\r\n \r\n )}\r\n
\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\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 return (\r\n
\r\n {canSubmit && (\r\n \r\n {isVisted && isCancelAllowed ? saveBtnLabel : saveAndContinueBtnLabel}\r\n \r\n )}\r\n {canCancel && (\r\n \r\n {cancelBtnLabel}\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 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 = (): JSX.Element => {\r\n const { step, title } = this.props;\r\n const { headingTag: Tag = 'h2', text = '' } = title || {};\r\n return (\r\n \r\n \r\n {step + 1}. {` `}\r\n \r\n {text && {text}}\r\n \r\n );\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 let 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","/*!\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\n\r\nimport { 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 { ICittaCheckoutOgtyData } from './citta-checkout-ogty.data';\r\nimport { ICheckoutHeadingData, ICittaCheckoutOgtyProps } from './citta-checkout-ogty.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 * The Checkout view props.\r\n * @extends ICittaCheckoutOgtyProps\r\n */\r\nexport interface ICheckoutViewProps extends ICittaCheckoutOgtyProps {\r\n className: string;\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 ICittaCheckoutOgtyProps, 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 if (\r\n this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging &&\r\n checkoutError &&\r\n checkoutError.errorLocation === ErrorLocation.Checkout &&\r\n checkoutError.errorMessage\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 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\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 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 = (key: string): React.ReactNode[] | undefined => {\r\n const { slots } = this.props;\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 private _getExtensionPropertyValue = (fieldName: string) => {\r\n const value = this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties &&\r\n this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties?.filter(p=>p.Key === fieldName);\r\n if (value && value?.length > 0) {\r\n return value[0].Value?.StringValue || undefined;\r\n }\r\n return undefined;\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 customerCreditLimitExceededErrorMessage,\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 config: { ourGiftToYou }\r\n } = this.props;\r\n\r\n \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 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 let checkoutResult = this.props.data.checkout.result;\r\n if(checkoutResult?.checkoutCart.cart && ourGiftToYou) {\r\n // check if the cart contains a gift card then dont add the Our Gift to you amount\r\n if (!checkoutResult?.checkoutCart.cart.CartLines?.some(line => line.ItemId === \"GiftCard\")) {\r\n let cartTotal = checkoutResult.checkoutCart.cart.SubtotalAmount || 0;\r\n let amountOf50s = Math.floor(cartTotal/200)\r\n let additionalDeliveryMessage = `Our Gift To You: $${amountOf50s * 50} `;\r\n\r\n let deliveryMessage = this._getExtensionPropertyValue(\"DELIVERYNOTES\");\r\n if (deliveryMessage && deliveryMessage.indexOf('-->') != -1) {\r\n deliveryMessage = deliveryMessage.split('-->')[0];\r\n }\r\n \r\n await checkoutResult?.checkoutCart.updateExtensionProperties(\r\n {newExtensionProperties: [\r\n {Key:\"DELIVERYNOTES\", Value: {StringValue: `${deliveryMessage || ''} ${additionalDeliveryMessage}` }}\r\n ]}\r\n ); \r\n }\r\n }\r\n\r\n await placeOrder(\r\n actionContext,\r\n checkoutResult,\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 const checkoutResult = this.props.data.checkout.result;\r\n\r\n if (checkoutResult && checkoutResult.shouldEnableCheckoutErrorDisplayMessaging) {\r\n const errorCode = error && error.name ? error.name : '';\r\n setCheckoutErrors(errorCode, this.props.resources, !!checkoutResult.isExpressCheckoutApplied, actionContext);\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 (\r\n error &&\r\n error.name === 'Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit'\r\n ) {\r\n errorMessage = customerCreditLimitExceededErrorMessage;\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 await checkout.result?.updateIsPaymentSectionContainerReady({ newIsPaymentSectionContainerReady: false });\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\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","/*!\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 msdyn365Commerce from '@msdyn365-commerce/core';\r\nimport { Module, Node, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\n\r\nimport { ICheckoutViewProps, ILineItem, ILineItemDeliveryGroup, ILineItems, IPickUpAtStore } from './citta-checkout-ogty';\r\nimport { ICittaCheckoutOgtyProps } from './citta-checkout-ogty.props.autogenerated';\r\n\r\nimport { IEmailDelivery } from './components';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n}) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n Header,\r\n heading,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n);\r\n\r\nconst _renderOrderSummarylines = (props: ICheckoutViewProps & ICittaCheckoutOgtyProps<{}>): JSX.Element | null => {\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const {orderSummary } = props;\r\n if (!orderSummary) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {orderSummary.heading}\r\n
\r\n {orderSummary.lines && (\r\n <>\r\n {isB2B ? orderSummary.lines.subtotal : _renderSubTotal(props)}\r\n {isB2B ? null : orderSummary.lines.totalDiscounts}\r\n {_renderShippingInclTaxes(props)}\r\n {_renderOtherCharges(props)}\r\n {/*hide on us*/}\r\n {props.config.hideTaxLine ? null : orderSummary.lines.tax}\r\n {_renderTotalOrder(props)}\r\n {orderSummary.lines.loyalty}\r\n {orderSummary.lines.giftCard}\r\n {isB2B ? null : orderSummary.lines.orderTotal}\r\n {isB2B? null : _renderTotalSavings(props)}\r\n \r\n )}\r\n
\r\n {props.config.ourGiftToYou ? _renderOurGiftToYouMessage(props) : _renderFreeShippingMessage(props)}\r\n {_getCheckoutSummaryText(props)}\r\n
\r\n );\r\n};\r\n\r\nfunction _renderOtherCharges(props: ICheckoutViewProps & ICittaCheckoutOgtyProps<{}>): React.ReactNode | null{\r\n const chargeLines = props.data.checkout.result?.checkoutCart.cart.ChargeLines;\r\n let chargeAmountInclTax = 0;\r\n if(chargeLines) {\r\n chargeLines.forEach(chargeLine => {\r\n if (!chargeLine.IsShipping) {\r\n const chargeAmountInclTaxLocal = chargeLine.GrossAmount ? chargeLine.GrossAmount : 0;\r\n chargeAmountInclTax += chargeAmountInclTaxLocal;\r\n }\r\n });\r\n }\r\n if (chargeAmountInclTax == 0) {\r\n return props.orderSummary?.lines?.otherCharge;\r\n }\r\n\r\n return (\r\n

\r\n {chargeAmountInclTax && chargeAmountInclTax > 0 ? (\r\n <>\r\n {props.resources.otherCharges}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderShippingInclTaxes(props: ICheckoutViewProps & ICittaCheckoutOgtyProps<{}>): React.ReactNode | null{\r\n const chargeLines = props.data.checkout.result?.checkoutCart.cart.ChargeLines;\r\n let chargeAmountInclTax = 0;\r\n if(chargeLines) {\r\n chargeLines.forEach(chargeLine => {\r\n if (chargeLine.IsShipping) {\r\n const chargeAmountInclTaxLocal = chargeLine.GrossAmount ? chargeLine.GrossAmount : 0;\r\n chargeAmountInclTax += chargeAmountInclTaxLocal;\r\n }\r\n });\r\n }\r\n if (chargeAmountInclTax == 0) {\r\n return props.orderSummary?.lines?.shipping;\r\n }\r\n\r\n return (\r\n

\r\n {chargeAmountInclTax && chargeAmountInclTax > 0 ? (\r\n <>\r\n {props.resources.shippingLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\n\r\nfunction _renderTotalSavings(props: ICheckoutViewProps): JSX.Element | null {\r\n if (!props.data.checkout.result) {\r\n return null;\r\n }\r\n\r\n const DiscountAmount = props.data.checkout.result?.checkoutCart.cart.DiscountAmount;\r\n return (\r\n

\r\n {DiscountAmount && DiscountAmount > 0 ? (\r\n <>\r\n {props.resources.totalSavingsLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderSubTotal(props: ICheckoutViewProps): JSX.Element | null {\r\n if (!props.data.checkout.result) {\r\n return null;\r\n }\r\n\r\n var subtotal=0;\r\n props.data.checkout.result?.checkoutCart.cart.CartLines?.forEach((item)=>{\r\n subtotal += item.Price! * item.Quantity!;\r\n });\r\n const OrderTotal = subtotal;\r\n\r\n return (\r\n

\r\n {OrderTotal && OrderTotal > 0 ? (\r\n <>\r\n {props.resources.subTotalLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderTotalOrder(props: ICheckoutViewProps): JSX.Element | null {\r\n if (!props.data.checkout.result) {\r\n return null;\r\n }\r\n const OrderTotal = props.data.checkout.result?.checkoutCart.cart.TotalAmount;\r\n return (\r\n

\r\n {OrderTotal && OrderTotal > 0 ? (\r\n <>\r\n {\"Order total\"}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderProgressBar(percentFilled: number): JSX.Element | null {\r\n return <>\r\n
\r\n
\r\n
\r\n \r\n}\r\n\r\nfunction _renderOurGiftToYouMessage(props: ICheckoutViewProps & ICittaCheckoutOgtyProps<{}>): JSX.Element | null {\r\n\r\n const ogtyAmount = 50;\r\n const perSpend = 200;\r\n\r\n const shippingAmount = props.data.checkout.result?.checkoutCart.cart.DeliveryModeChargeAmount || 0;\r\n const OrderSubTotal = (props.data.checkout.result?.checkoutCart.cart.AmountDue || 0) - shippingAmount; \r\n \r\n if (!props.config.ourGiftToYou || !OrderSubTotal || props.data.checkout.result?.checkoutCart.cart.CartLines?.some(line => line.ItemId === \"GiftCard\")) {\r\n return _renderFreeShippingMessage(props);\r\n }\r\n let amountOf50s = Math.floor(OrderSubTotal/perSpend);\r\n if (amountOf50s > 0) {\r\n\r\n return <>\r\n {_renderProgressBar((OrderSubTotal%perSpend) / perSpend * 100)}\r\n
\r\n You have qualified for ${ogtyAmount * amountOf50s} in promotional vouchers. Spend another ${Math.ceil(perSpend - (OrderSubTotal%perSpend))} to receive an additional ${ogtyAmount} voucher\r\n
\r\n \r\n } else {\r\n return <> \r\n {_renderProgressBar(OrderSubTotal / perSpend * 100)}\r\n
\r\n Spend and additional ${Math.ceil(perSpend - (OrderSubTotal%perSpend))} to receive a ${ogtyAmount} promotional voucher\r\n
\r\n \r\n }\r\n}\r\n\r\nfunction _renderFreeShippingMessage(props: ICheckoutViewProps & ICittaCheckoutOgtyProps<{}>): JSX.Element | null {\r\n const shippingAmount = props.data.checkout.result?.checkoutCart.cart.DeliveryModeChargeAmount || 0;\r\n const OrderSubTotal = (props.data.checkout.result?.checkoutCart.cart.AmountDue || 0) - shippingAmount;\r\n \r\n const freeShippingAmount = props.config.freeShippingAmount;\r\n if (!freeShippingAmount || !OrderSubTotal || OrderSubTotal >= freeShippingAmount) {\r\n return null;\r\n }\r\n return
\r\n Spend an additional ${Math.ceil(freeShippingAmount - OrderSubTotal)} to get FREE SHIPPING\r\n
\r\n}\r\n\r\nconst _getCheckoutSummaryText = (props: ICheckoutViewProps & ICittaCheckoutOgtyProps<{}>): React.ReactNode | undefined => {\r\n const { paragraph } = props.config;\r\n\r\n return (\r\n paragraph && (\r\n \r\n )\r\n );\r\n};\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n isPaymentVerificationRedirection,\r\n shouldEnableSinglePaymentAuthorizationCheckout,\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton,\r\n checkoutExpressPaymentContainer,\r\n checkoutErrorRef\r\n } = props;\r\n\r\n\r\n if (!props.data.checkout || !props.data.checkout.result) {\r\n return null;\r\n }\r\n\r\n let isBusy = false;\r\n if(msdyn365Commerce.isBrowser) {\r\n const url: string = decodeURI(window.location.search);\r\n const urlParams: URLSearchParams = new URLSearchParams(url);\r\n if (urlParams.get('paymentMethod') === 'AP' && urlParams.has('orderToken')) {\r\n const orderToken = urlParams.get('orderToken');\r\n const afterpayStatus = urlParams.get('status') || 'FAILURE';\r\n\r\n if (afterpayStatus === 'SUCCESS' && orderToken) {\r\n isBusy = true;\r\n }\r\n }\r\n }\r\n \r\n return (\r\n \r\n {!hasSalesOrder && !checkoutExpressPaymentContainer && {title}}\r\n {!hasSalesOrder && isPaymentVerificationRedirection && shouldEnableSinglePaymentAuthorizationCheckout && !alert && !loading && (\r\n \r\n )}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {alert}\r\n {\r\n isBusy ? (\r\n
\r\n
\r\n
\r\n ) : null\r\n }\r\n {canShow && (\r\n <>\r\n \r\n {checkoutExpressPaymentContainer}\r\n {checkoutExpressPaymentContainer && {title}}\r\n {guidedForm}\r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {_renderOrderSummarylines(props)}\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","import { IActionContext, IRequestContext } from '@msdyn365-commerce/core';\r\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n getSelectedVariant,\r\n SelectedVariantInput,\r\n createInventoryAvailabilitySearchCriteria,\r\n AttributesForSelectedVariantInput,\r\n getAttributesForSelectedVariantAction\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getEstimatedAvailabilityAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { ProductWarehouseInventoryInformation, SimpleProduct, AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport async function _getProductInventory(\r\n product: FullProduct,\r\n ctx: IActionContext\r\n): Promise {\r\n const searchCriteria = createInventoryAvailabilitySearchCriteria(ctx, [product.ProductDetails.RecordId], true);\r\n const productAvailabilitiesResponse = await getEstimatedAvailabilityAsync({ callerContext: ctx }, searchCriteria);\r\n return productAvailabilitiesResponse;\r\n}\r\n\r\nexport async function getProductDetails(\r\n products: number[],\r\n channelId: number,\r\n context: IActionContext\r\n): Promise {\r\n let i = 0;\r\n let productsInventory: IHSOProductDetails[] = [];\r\n for (i = 0; i < products.length; i++) {\r\n let element: IHSOProductDetails = { productDetails: null, AttributeValues: null };\r\n if (products[i] !== undefined) {\r\n const simpleProduct = await _getProductDetails(products[i], channelId, context, context.requestContext);\r\n if (simpleProduct) {\r\n element.productDetails = simpleProduct;\r\n }\r\n productsInventory.push(element);\r\n }\r\n }\r\n return productsInventory;\r\n}\r\n\r\nexport async function _getProductDetails(\r\n product: number,\r\n channelId: number,\r\n actionContext: IActionContext,\r\n requestContext: IRequestContext\r\n): Promise {\r\n const selectedProductPromise = getSelectedVariant(\r\n new SelectedVariantInput(\r\n product,\r\n channelId,\r\n undefined,\r\n undefined,\r\n requestContext\r\n ),\r\n actionContext\r\n );\r\n\r\n const selectedProduct: SimpleProduct | null = await selectedProductPromise;\r\n const selectedProductVariantPromise = getAttributesForSelectedVariantAction(\r\n new AttributesForSelectedVariantInput(\r\n product,\r\n channelId,\r\n selectedProduct!,\r\n 0\r\n ),\r\n actionContext\r\n )\r\n const selectedVariantDetails = await selectedProductVariantPromise;\r\n selectedVariantDetails;\r\n return Promise.resolve(selectedProduct);\r\n}\r\n\r\nexport async function _getProductDetailsWithAttributes(\r\n product: number,\r\n channelId: number,\r\n actionContext: IActionContext,\r\n requestContext: IRequestContext\r\n): Promise {\r\n const selectedProductPromise = getSelectedVariant(\r\n new SelectedVariantInput(\r\n product,\r\n channelId,\r\n undefined,\r\n undefined,\r\n requestContext\r\n ),\r\n actionContext\r\n );\r\n\r\n const selectedProduct: SimpleProduct | null = await selectedProductPromise;\r\n const selectedVariantAttributesPromise = getAttributesForSelectedVariantAction(\r\n new AttributesForSelectedVariantInput(\r\n product,\r\n channelId,\r\n selectedProduct!,\r\n 0\r\n ),\r\n actionContext\r\n )\r\n const selectedVariantAttributes = await selectedVariantAttributesPromise;\r\n const productDetailsWithAtttributes : IHSOProductDetails = {productDetails: selectedProduct, AttributeValues: selectedVariantAttributes}\r\n return Promise.resolve(productDetailsWithAtttributes);\r\n}\r\n\r\nexport interface IHSOProductDetails {\r\n productDetails: SimpleProduct | null;\r\n AttributeValues: AttributeValue[] | null;\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\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 { ICittaCheckoutData } from '../citta-checkout.data';\r\nimport { ICittaCheckoutProps } from '../citta-checkout.props.autogenerated';\r\n\r\nexport interface IInvoicePaymentSummary {\r\n heading?: React.ReactNode;\r\n lines?: IInvoiceSummaryLines;\r\n}\r\nexport const getInvoicePaymentSummary = (input: ICittaCheckoutProps): 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","/*!\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 { 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 { ICittaCheckoutData } from '../citta-checkout.data';\r\nimport { ICittaCheckoutProps } from '../citta-checkout.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 = (input: ICittaCheckoutProps, telemetryContent?: ITelemetryContent): 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 && context.request.user.isB2b) {\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 => {\r\n const cartLines = cartLinesGroup[key];\r\n Object.keys(cartLines).forEach(index => {\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 === '' && cartLine.DeliveryMode === 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 { ICittaCheckoutData } from '../citta-checkout.data';\r\nimport { ICittaCheckoutProps } from '../citta-checkout.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: ICittaCheckoutProps): 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 },\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: isShowOrHideTaxEnabled\r\n })\r\n : undefined\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\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 setCheckoutErrorFocus(childId, actionContext);\r\n return;\r\n }\r\n }\r\n } else {\r\n 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 } = this.props;\r\n const { changeBtnLabel } = resource;\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 return (\r\n \r\n
\r\n {this.getTitle()}\r\n\r\n {canEdit && (\r\n \r\n {changeBtnLabel}\r\n \r\n )}\r\n
\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 \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 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 return (\r\n
\r\n {canSubmit && (\r\n \r\n {isVisted && isCancelAllowed ? saveBtnLabel : saveAndContinueBtnLabel}\r\n \r\n )}\r\n {canCancel && (\r\n \r\n {cancelBtnLabel}\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 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 = (): JSX.Element => {\r\n const { step, title } = this.props;\r\n const { headingTag: Tag = 'h2', text = '' } = title || {};\r\n return (\r\n \r\n \r\n {step + 1}. {` `}\r\n \r\n {text && {text}}\r\n \r\n );\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 let 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","/*!\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 { 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 { ICittaCheckoutData } from './citta-checkout.data';\r\nimport { ICheckoutHeadingData, ICittaCheckoutProps } from './citta-checkout.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 isBlockedUserError?: boolean;\r\n}\r\n\r\n/**\r\n * The Checkout view props.\r\n * @extends ICittaCheckoutProps\r\n */\r\nexport interface ICheckoutViewProps extends ICittaCheckoutProps {\r\n className: string;\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 ICittaCheckoutProps, 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 const isBlockedUserError = this.state.isBlockedUserError;\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 && isBlockedUserError)\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 isBlockedUserError: 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 if (\r\n this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging &&\r\n checkoutError &&\r\n checkoutError.errorLocation === ErrorLocation.Checkout &&\r\n checkoutError.errorMessage\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 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, saveAndContinueBtnText },\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\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 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 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.state.isBlockedUserError) {\r\n const errorBlockedUser = this.props.config.hsoCheckoutErrorMessageAllStatus ? this.props.config.hsoCheckoutErrorMessageAllStatus : \"Checkout cannot be processed when in All Status\";\r\n viewProps = {\r\n ...viewProps,\r\n alert: \r\n };\r\n } else if (this.hasError) {\r\n\r\n viewProps = {\r\n ...viewProps,\r\n alert: \r\n };\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 = (key: string): React.ReactNode[] | undefined => {\r\n const { slots } = this.props;\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 private _getExtensionPropertyValue = (fieldName: string) => {\r\n const value = this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties &&\r\n this.props.data.checkout.result?.checkoutCart?.cart.ExtensionProperties?.filter(p=>p.Key === fieldName);\r\n if (value && value?.length > 0) {\r\n return value[0].Value?.StringValue || undefined;\r\n }\r\n return undefined;\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 customerCreditLimitExceededErrorMessage,\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 config: { whiteGloveService }\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 const HSOConfigprop = this.props.data.channelConfiguration.result\r\n && this.props.data.channelConfiguration.result.ExtensionProperties\r\n && this.props.data.channelConfiguration.result!.ExtensionProperties.find((property => property.Key === 'HSOConfig'));\r\n\r\n let HSOConfig = HSOConfigprop && HSOConfigprop.Value && HSOConfigprop.Value.IntegerValue;\r\n if (HSOConfig == undefined) {\r\n HSOConfig = 0;\r\n }\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 HSOConfig === 0 &&\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 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 let checkoutResult = this.props.data.checkout.result;\r\n if(checkoutResult?.checkoutCart.cart && whiteGloveService) {\r\n // check if the cart contains a furniture then add the White Glove Service\r\n if (checkoutResult?.checkoutCart.cart.CartLines?.some(line => line.DeliveryMode === \"WHT-GLV\")) {\r\n \r\n let additionalDeliveryMessage = ' | WHITE GLOVE SERVICE';\r\n\r\n let deliveryMessage = this._getExtensionPropertyValue(\"DELIVERYNOTES\");\r\n if (deliveryMessage && deliveryMessage.indexOf('-->') != -1) {\r\n deliveryMessage = deliveryMessage.split('-->')[0];\r\n }\r\n \r\n await checkoutResult?.checkoutCart.updateExtensionProperties(\r\n {newExtensionProperties: [\r\n {Key:\"DELIVERYNOTES\", Value: {StringValue: `${deliveryMessage || ''} ${additionalDeliveryMessage}` }}\r\n ]}\r\n ); \r\n }\r\n }\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 const checkoutResult = this.props.data.checkout.result;\r\n\r\n if (checkoutResult && checkoutResult.shouldEnableCheckoutErrorDisplayMessaging) {\r\n const errorCode = error && error.name ? error.name : '';\r\n setCheckoutErrors(errorCode, this.props.resources, !!checkoutResult.isExpressCheckoutApplied, actionContext);\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 (\r\n error &&\r\n error.name === 'Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit'\r\n ) {\r\n errorMessage = customerCreditLimitExceededErrorMessage;\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 await checkout.result?.updateIsPaymentSectionContainerReady({ newIsPaymentSectionContainerReady: false });\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 const subtotal = this.props.data.checkout.result!.checkoutCart.cart.SubtotalAmount || 0;\r\n const { request } = this.props.context;\r\n const market = request && request.apiSettings && request.apiSettings.oun;\r\n const isB2BI = market && market === \"B2BI\";\r\n let minimumOrder = 200;\r\n const discountLevel = this.props.data.customerInformation.result!.LineDiscountGroup;\r\n if(isB2BI) {\r\n switch(discountLevel){\r\n case \"Level 1\":\r\n minimumOrder = 1500;\r\n break;\r\n case \"Level 4\":\r\n minimumOrder = 500;\r\n break;\r\n case \"Level 5\":\r\n minimumOrder = 500;\r\n break;\r\n default:\r\n minimumOrder = 200;\r\n }\r\n }\r\n let isGiftCardOnly = this.props.data.checkout.result!.checkoutCart.cart && this.props.data.checkout.result!.checkoutCart.cart.CartLines && this.props.data.checkout.result!.checkoutCart.cart.CartLines.length === 1 && this.props.data.checkout.result!.checkoutCart.cart.CartLines[0].ItemId === \"GiftCard\";\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 // Back to cart page if order subtotal under $200\r\n if (result.ValidationFailuresByCartLines?.length !== 0 || (!isGiftCardOnly && subtotal < minimumOrder) ) {\r\n this.redirectToCartPage(notFoundEditCartLinkMessage);\r\n } else {\r\n if (customerInfo) {\r\n let custStatus = 0;\r\n const customerExtensionProperties = customerInfo.ExtensionProperties;\r\n customerExtensionProperties?.forEach(element => {\r\n if (element.Key == 'HSOCustBlockedStatus'){\r\n custStatus = element.Value?.IntegerValue!;\r\n }\r\n })\r\n if (custStatus == 2) {\r\n this.setState({ isBlockedUserError: true });\r\n this.props.telemetry.warning(\"Blocked user\");\r\n this.props.telemetry.debug(\"Unable to checkout because of blocked user errors\");\r\n }\r\n this.setState({ isValidationPassed: true });\r\n }\r\n else {\r\n this.setState({ isValidationPassed: true });\r\n }\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 if (customerInfo) {\r\n let custStatus = 0;\r\n const customerExtensionProperties = customerInfo.ExtensionProperties;\r\n customerExtensionProperties?.forEach(element => {\r\n if (element.Key == 'HSOCustBlockedStatus'){\r\n custStatus = element.Value?.IntegerValue!;\r\n }\r\n })\r\n if (custStatus == 2) {\r\n this.setState({ isBlockedUserError: true });\r\n this.props.telemetry.warning(\"Blocked user\");\r\n this.props.telemetry.debug(\"Unable to checkout because of blocked user errors\");\r\n }\r\n this.setState({ isValidationPassed: true });\r\n } else {\r\n this.setState({ isValidationPassed: true });\r\n }\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\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","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutViewProps, ILineItem, ILineItemDeliveryGroup, ILineItems, IOrderSummary, IPickUpAtStore } from './citta-checkout';\r\nimport { IEmailDelivery } from './components';\r\nimport { IInvoicePaymentSummary } from './components/get-invoice-payment-summary';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n}) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n Header,\r\n heading,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.otherCharge}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.invoices}\r\n {lines.giftCard}\r\n {lines.loyalty}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n isPaymentVerificationRedirection,\r\n shouldEnableSinglePaymentAuthorizationCheckout,\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n hasInvoiceLine,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n invoicePaymentSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton,\r\n checkoutExpressPaymentContainer,\r\n checkoutErrorRef\r\n } = props;\r\n\r\n return (\r\n \r\n {!hasSalesOrder && !checkoutExpressPaymentContainer && {title}}\r\n {!hasSalesOrder && isPaymentVerificationRedirection && shouldEnableSinglePaymentAuthorizationCheckout && !alert && !loading && (\r\n \r\n )}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {checkoutExpressPaymentContainer}\r\n {checkoutExpressPaymentContainer && {title}}\r\n {guidedForm}\r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {!hasInvoiceLine\r\n ? orderSummary && \r\n : invoicePaymentSummary && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nexport interface ILogoProps {\r\n image: Msdyn365.IImageData;\r\n gridSettings?: Msdyn365.IGridSettings;\r\n link?: Msdyn365.ILinkData;\r\n className?: string;\r\n telemetryContent?: ITelemetryContent;\r\n requestContext: Msdyn365.IRequestContext;\r\n}\r\n\r\n// export interface ILinkData {\r\n// // linkUrl: Msdyn365.ILinkData;\r\n// destinationUrl?: string;\r\n// // openInNewTab?: boolean;\r\n// // linkText?: string;\r\n// }\r\n\r\n/**\r\n *\r\n * Logo component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Logo extends React.PureComponent {\r\n\r\n private attributes?: Msdyn365.IDictionary;\r\n\r\n constructor(props: ILogoProps) {\r\n super(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.Logo);\r\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n public render():JSX.Element {\r\n return(\r\n
\r\n {this._renderLogo(this.props)}\r\n
\r\n );\r\n }\r\n\r\n private _renderLogo(config: ILogoProps):JSX.Element {\r\n if(config.link && config.link.destinationUrl) {\r\n return(\r\n \r\n {this._renderImage(config)}\r\n \r\n );\r\n }\r\n return(\r\n this._renderImage(config)\r\n );\r\n }\r\n\r\n private _renderImage(config: ILogoProps): JSX.Element {\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=132&h=28&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=160&h=48&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Logo;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaHeaderResources } from '../citta-header.props.autogenerated';\r\n\r\nexport interface INavIconProps {\r\n resources: ICittaHeaderResources;\r\n isExpanded: boolean;\r\n targetId: string;\r\n telemetryContent?: ITelemetryContent;\r\n toggleNavBar(): void;\r\n}\r\n\r\n/**\r\n *\r\n * NavIcon component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\n@observer\r\nexport class NavIcon extends React.Component {\r\n\r\n private attributes?: Msdyn365.IDictionary;\r\n\r\n constructor(props: INavIconProps) {\r\n super(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.NavIcon);\r\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n\r\n public render():JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n}","// import { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaHeaderData } from '../citta-header.data';\r\nimport { ICittaHeaderProps } from '../citta-header.props.autogenerated';\r\n\r\n/**\r\n * The header preferred store component\r\n */\r\n// @observer\r\nexport class HeaderPreferredStore extends React.PureComponent> {\r\n\r\n // public handleClick = () => { return this._findPreferreStoreOnClick(this.props); };\r\n\r\n public render(): JSX.Element | undefined {\r\n // const {\r\n // data: {\r\n // storeSelectorStateManager: { result: storeSelectorStateManager }\r\n // },\r\n // slots,\r\n // resources\r\n // } = this.props;\r\n // if (slots && slots.storeSelector && slots.storeSelector.length) {\r\n // const storeName = storeSelectorStateManager!.preferredStore && storeSelectorStateManager!.preferredStore.StoreName ?\r\n // storeSelectorStateManager!.preferredStore.StoreName :\r\n // resources.headerPreferredStoreText;\r\n\r\n // return (\r\n //
\r\n // \r\n // {slots.storeSelector}\r\n //
\r\n // );\r\n // }\r\n\r\n return undefined;\r\n }\r\n\r\n // private async _findPreferreStoreOnClick(props: ICittaHeaderProps): Promise {\r\n // const { data: { storeSelectorStateManager: { result: storeSelectorStateManager } }, modules } = props;\r\n // if (!storeSelectorStateManager) {\r\n // return;\r\n // }\r\n // let storeSelectorId: string = '';\r\n // if (modules && Object.keys(modules).length > 0 && modules.storeSelector && modules.storeSelector.length > 0) {\r\n // storeSelectorId = modules.storeSelector[0].id;\r\n // }\r\n // storeSelectorStateManager.openDialog({\r\n // id: storeSelectorId,\r\n // showMapViewLink: false,\r\n // onLocationSelected: orgUnitLocation => {\r\n // return Promise.resolve();\r\n // }\r\n // }).catch((error: Error) => {\r\n // if (props.telemetry) {\r\n // props.telemetry.error(error.message);\r\n // props.telemetry.debug('Unable to set preferred store');\r\n // }\r\n // return;\r\n // });\r\n // }\r\n}\r\n\r\nexport default HeaderPreferredStore;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n Button, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, KeyCodes, Modal,\r\n ModalBody, ModalHeader, onTelemetryClick, TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { WishListIconComponent } from '@msdyn365-commerce/components';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICittaHeaderData } from './citta-header.data';\r\nimport { ICittaHeaderProps, ICittaHeaderResources, IMyAccountLinksData } from './citta-header.props.autogenerated';\r\nimport { HeaderPreferredStore, Logo, NavIcon } from './components';\r\nimport { CartIconComponent } from '../../themes/citta/views/components/cart-icon.component';\r\n\r\n\r\nexport interface IHeaderState {\r\n mobileMenuCollapsed: boolean;\r\n signinPopoverOpen: boolean;\r\n}\r\n\r\nexport interface IHeaderViewProps extends ICittaHeaderProps, IHeaderState {\r\n logo: React.ReactNode;\r\n wishListIconDesktop: React.ReactNode;\r\n wishListIconMobile: React.ReactNode;\r\n cartIcon: React.ReactNode;\r\n navIcon: React.ReactNode;\r\n className: string;\r\n menuBar: React.ReactNode[];\r\n search: React.ReactNode[];\r\n siteOptions: React.ReactNode[];\r\n categoryMenuBar: React.ReactNode[];\r\n customNavBar: React.ReactNode[];\r\n countryPicker: React.ReactNode[];\r\n HeaderTag: IModuleProps;\r\n HeaderContainer: INodeProps;\r\n MobileMenuContainer: INodeProps;\r\n MobileMenuHeader: React.ReactNode;\r\n MobileMenuBodyContainer: INodeProps;\r\n MobileMenuLinksContainer: INodeProps;\r\n HeaderTopBarContainer: INodeProps;\r\n HeaderTopBarRightContainer: INodeProps;\r\n Divider: INodeProps;\r\n\r\n AccountInfoDropdownParentContainer?: INodeProps;\r\n AccountInfoDropdownPopoverConentContainer?: INodeProps;\r\n accountInfoDropdownButton?: React.ReactNode;\r\n\r\n signOutLink?: React.ReactNode;\r\n signInLink?: React.ReactNode;\r\n accountLinks?: React.ReactNode[];\r\n preferredStore?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * Header component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass Header extends React.PureComponent, IHeaderState> {\r\n private popOverRef: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private cart: ICartState | undefined;\r\n @computed public get displayName(): Readonly {\r\n const customer = this.props.data.accountInformation?.result;\r\n const isB2B = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n if(isB2B){\r\n return customer ? customer.Name || customer.FirstName : undefined;\r\n }\r\n return customer ? customer.FirstName || customer.Name : undefined;\r\n }\r\n @computed public get accountEmailAddress(): Readonly {\r\n const customer = this.props.data.accountInformation?.result;\r\n return customer ? customer.Email || customer.Email : undefined;\r\n }\r\n\r\n constructor(props: ICittaHeaderProps) {\r\n super(props);\r\n this.popOverRef = React.createRef();\r\n this._toggleNavbar = this._toggleNavbar.bind(this);\r\n this._togglePopover = this._togglePopover.bind(this);\r\n this._keydown = this._keydown.bind(this);\r\n this.state = {\r\n mobileMenuCollapsed: true,\r\n signinPopoverOpen: false\r\n };\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser) {\r\n window.addEventListener('keydown', this._keydown);\r\n }\r\n reaction(\r\n () => this.props.data.cart.result,\r\n () => {\r\n this.cart = this.props.data.cart.result;\r\n }\r\n );\r\n\r\n this._stickyHeaderSetup();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser) {\r\n window.removeEventListener('keydown', this._keydown, false);\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity max-func-body-length\r\n public render(): JSX.Element | null {\r\n const {\r\n id,\r\n typeName,\r\n data: { accountInformation,\r\n storeSelectorStateManager: {result: storeSelectorStateManager}\r\n },\r\n context: {\r\n request: {\r\n user\r\n }\r\n },\r\n context,\r\n resources: {\r\n cartLabel\r\n }\r\n } = this.props; \r\n\r\n const headerClassName = classnames('ms-header', this.props.config.className);\r\n const navbarKey = 'header-nav-mobile';\r\n const customer = accountInformation && accountInformation.result;\r\n const cartIconSlot = this._getSlot('cartIcon');\r\n const menuBarSlot = this._getSlot('menuBar');\r\n const searchSlot = this._getSlot('search');\r\n const siteOptionsSlot = this._getSlot('siteOptions');\r\n const preferredStoreSlot = this._getSlot('storeSelector');\r\n\r\n const categoryMenuBarSlot = this._getSlot('categoryMenuBar');\r\n const customNavBarSlot = this._getSlot('customNavMenuBar');\r\n const countryPickerSlot = this._getSlot('countryPicker');\r\n\r\n const logoSlot = this._getSlot('logo');\r\n // @ts-ignore\r\n const logoImage = logoSlot && logoSlot.length && logoSlot[0].props.config.image || {};\r\n // @ts-ignore\r\n const logoLink = logoSlot && logoSlot.length && logoSlot[0]?.props.config.imageLink || '';\r\n\r\n const viewProps: IHeaderViewProps = {\r\n ...(this.props as ICittaHeaderProps),\r\n ...(this.state),\r\n logo: ,\r\n wishListIconDesktop: (\r\n \r\n ),\r\n wishListIconMobile: (\r\n \r\n ),\r\n cartIcon: (cartIconSlot && cartIconSlot.length > 0)\r\n ? cartIconSlot[0]\r\n : , \r\n navIcon: ,\r\n menuBar: menuBarSlot && menuBarSlot.length && menuBarSlot || [],\r\n search: searchSlot && searchSlot.length && searchSlot || [],\r\n siteOptions: siteOptionsSlot && siteOptionsSlot.length && siteOptionsSlot || [],\r\n categoryMenuBar: categoryMenuBarSlot && categoryMenuBarSlot.length && categoryMenuBarSlot || [],\r\n customNavBar: customNavBarSlot && customNavBarSlot.length && customNavBarSlot || [],\r\n className: headerClassName,\r\n countryPicker: countryPickerSlot && countryPickerSlot.length && countryPickerSlot || [],\r\n HeaderTag: {\r\n moduleProps: this.props,\r\n className: classnames(headerClassName),\r\n tag: 'header'\r\n },\r\n HeaderContainer: {\r\n className: classnames('ms-header__container')\r\n },\r\n HeaderTopBarContainer: {\r\n className: classnames('ms-header__topbar')\r\n },\r\n HeaderTopBarRightContainer: {\r\n className: classnames('ms-header__topbar-right')\r\n },\r\n Divider: {\r\n className: classnames('ms-header__divider')\r\n },\r\n MobileMenuContainer: {\r\n tag: Modal,\r\n id: navbarKey,\r\n className: 'ms-header__mobile-hamburger',\r\n isOpen: !this.state.mobileMenuCollapsed,\r\n wrapClassName: `ms-header__citta-modal citta-header-mobile ${!this.state.mobileMenuCollapsed ? 'modal-open' : ''}`,\r\n toggle: this._toggleNavbar\r\n },\r\n MobileMenuHeader: (\r\n \r\n ),\r\n MobileMenuBodyContainer: {\r\n tag: ModalBody,\r\n className: 'ms-header__mobile-hamburger-menu-body',\r\n },\r\n MobileMenuLinksContainer: {\r\n className: 'ms-header__mobile-hamburger-menu-links',\r\n },\r\n AccountInfoDropdownParentContainer: {\r\n className: `ms-header__account-info ${this.state.signinPopoverOpen ? 'account-open' : ''}`\r\n },\r\n AccountInfoDropdownPopoverConentContainer: customer && this.displayName && {\r\n // tag: Popover,\r\n id: 'myprofilePopover',\r\n className: 'ms-header__account-info-content',\r\n placement: 'bottom',\r\n isOpen: this.state.signinPopoverOpen,\r\n target: this.popOverRef,\r\n toggle: this._togglePopover,\r\n } || undefined,\r\n signInLink: this._getSigninButton(customer, user, this.props.resources),\r\n signOutLink: this._getSignOutButton(customer, user, this.props.resources),\r\n accountInfoDropdownButton: this._getAccountInfoDropdownButton(customer),\r\n accountLinks: this._getAccountLinks(customer),\r\n preferredStore: preferredStoreSlot\r\n && preferredStoreSlot.length\r\n && storeSelectorStateManager\r\n && ()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /* Handle link text change*/\r\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent) => {\r\n if (this.props.config.myAccountLinks && this.props.config.myAccountLinks[linkIndex]) {\r\n this.props.config.myAccountLinks[linkIndex].linkText = event.target.value;\r\n }\r\n }\r\n\r\n private _stickyHeaderSetup(): void {\r\n // Set header update methods to trigger on scroll\r\n window.onscroll = () => {\r\n this._updateHeader();\r\n };\r\n this._updateHeader();\r\n }\r\n\r\n private _getSlot(slotName: string): React.ReactNode[] | null {\r\n const { slots } = this.props;\r\n return (slots && slots[slotName] && slots[slotName].length && slots[slotName]) || null;\r\n }\r\n\r\n private _getSigninButton(customer: Customer | undefined, user: MsDyn365.IRequestContextUser | undefined, resources: ICittaHeaderResources): React.ReactNode | undefined {\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n return !customer && (\r\n \r\n {resources.signInLinkText}\r\n \r\n );\r\n }\r\n\r\n private _getSignOutButton(customer: Customer | undefined, user: MsDyn365.IRequestContextUser | undefined, resources: ICittaHeaderResources): React.ReactNode | undefined {\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignOut);\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n return customer && this.displayName && (\r\n \r\n {resources.signOutLinkText}\r\n \r\n );\r\n }\r\n\r\n private _getAccountInfoDropdownButton(customer: Customer | undefined): React.ReactNode | undefined {\r\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.MyProfile);\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n return customer && this.displayName && (\r\n \r\n {this.displayName}\r\n {this.accountEmailAddress}\r\n \r\n );\r\n }\r\n\r\n private _getAccountLinks(customer: Customer | undefined): React.ReactNode[] | undefined {\r\n const { myAccountLinks } = this.props.config;\r\n const payLoad = getPayloadObject('click', this.telemetryContent, '');\r\n if(!customer || ! this.displayName || !myAccountLinks || !myAccountLinks.length) {\r\n return undefined;\r\n }\r\n return myAccountLinks.map((cta: IMyAccountLinksData, index: number) => {\r\n payLoad.contentAction.etext = cta.linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n const editableLink: MsDyn365.ILinksData = {\r\n ariaLabel: cta.ariaLabel,\r\n className: 'ms-signin-info__account-link-button',\r\n linkText: cta.linkText,\r\n linkUrl: cta.linkUrl.destinationUrl,\r\n openInNewTab: cta.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes\r\n };\r\n\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n private _toggleNavbar(): void {\r\n this.setState({\r\n mobileMenuCollapsed: !this.state.mobileMenuCollapsed\r\n });\r\n this.state.mobileMenuCollapsed && this._setHeader(this.state.mobileMenuCollapsed);\r\n }\r\n\r\n private _togglePopover(): void {\r\n this.setState({\r\n signinPopoverOpen: !this.state.signinPopoverOpen\r\n });\r\n }\r\n\r\n private _keydown(e: KeyboardEvent): void {\r\n if (e.keyCode === KeyCodes.Escape) {\r\n this.setState({ mobileMenuCollapsed: true });\r\n this._setHeader(true);\r\n }\r\n }\r\n\r\n private _setHeader(lockHeader?: boolean): void {\r\n // Get heights of cookie and promotion banners\r\n const headerElem = document.querySelector('.ms-header');\r\n const headerAlertsContainer: HTMLElement | null = document.querySelector('.ms-promo-banner');\r\n const bannerHeights = headerAlertsContainer ? headerAlertsContainer.offsetHeight : 0;\r\n // triggers opacity change of header\r\n if (headerElem) {\r\n if (lockHeader || document.documentElement.scrollTop > bannerHeights) {\r\n headerElem.classList.add('lock-opaque');\r\n } else if (!window.document.body.classList.contains('search-open')) { \r\n headerElem.classList.remove('lock-opaque');\r\n }\r\n }\r\n }\r\n\r\n private _updateHeader(isInMobileMenu?: boolean): void {\r\n // triggers opacity change of header\r\n // Get heights of cookie and promotion banners\r\n const headerAlertsContainer: HTMLElement | null = document.querySelector('.ms-promo-banner');\r\n const bannerHeights = headerAlertsContainer ? headerAlertsContainer.offsetHeight : 0;\r\n if (this.state.mobileMenuCollapsed) {\r\n this._setHeader();\r\n }\r\n\r\n // Update sticky header position and opacity\r\n const stickyHeader: HTMLElement | null = document.querySelector('.ms-header__desktop-view');\r\n const headerLogo: HTMLElement | null = document.querySelector('.ms-header__topbar-center');\r\n const headerLeftActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-left');\r\n const headerRightActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-right');\r\n\r\n if (stickyHeader && headerLogo && headerLeftActionItem && headerRightActionItem) {\r\n // Fix center sticky header\r\n const navStickyPos = headerLogo.offsetHeight + bannerHeights;\r\n if (document.documentElement.scrollTop > navStickyPos) {\r\n stickyHeader.classList.add('fixed');\r\n } else {\r\n stickyHeader.classList.remove('fixed');\r\n }\r\n\r\n // Fix edge sticky headers\r\n if (document.documentElement.scrollTop > bannerHeights) {\r\n headerLeftActionItem.classList.add('fixed');\r\n headerRightActionItem.classList.add('fixed');\r\n } else {\r\n headerLeftActionItem.classList.remove('fixed');\r\n headerRightActionItem.classList.remove('fixed');\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Header;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderViewProps } from './citta-header';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n HeaderTopBarRightContainer,\r\n MobileMenuContainer,\r\n MobileMenuBodyContainer,\r\n MobileMenuLinksContainer\r\n } = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n {props.navIcon}\r\n {props.logo}\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {_renderReactFragment(props.siteOptions)}\r\n {_renderDesktopAccountBlock(props)}\r\n {props.cartIcon}\r\n \r\n \r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n { props.MobileMenuHeader }\r\n {_renderReactFragment(props.menuBar)}\r\n \r\n {/* {_renderReactFragment(props.search)} */}\r\n { props.accountLinks ? props.accountLinks.map(link => link) : false }\r\n {_renderMobileAccountBlock(props)}\r\n { props.siteOptions }\r\n {/* { props.signInLink } */}\r\n {/* { props.signOutLink } */}\r\n \r\n \r\n \r\n {_renderReactFragment(props.categoryMenuBar)}\r\n {_renderReactFragment(props.customNavBar)}\r\n {_renderReactFragment(props.countryPicker)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n}\r\n\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport msdyn365Commerce from '@msdyn365-commerce/core';\r\nimport { ICheckoutViewProps, IEmailDelivery, ILineItem, ILineItemDeliveryGroup, ILineItems, IPickUpAtStore } from '@msdyn365-commerce-modules/checkout';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ICheckoutProps } from '../definition-extensions/checkout.ext.props.autogenerated';\r\n\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => (\r\n \r\n {label}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip, itemsForEmail }) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsForPickup && }\r\n {itemsForEmail && }\r\n {itemsForShip && }\r\n \r\n);\r\n\r\nfunction _renderTotalSavings(props: ICheckoutViewProps): JSX.Element | null {\r\n\r\n const DiscountAmountWithoutTax = props.data.checkout.result?.checkoutCart.cart.DiscountAmountWithoutTax;\r\n return (\r\n

\r\n {DiscountAmountWithoutTax && DiscountAmountWithoutTax > 0 ? (\r\n <>\r\n {props.resources.totalSavingsLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\nfunction _renderOtherCharges(props: ICheckoutViewProps): React.ReactNode | null{\r\n const chargeAmountInclTax = props.data.checkout.result?.checkoutCart.cart.ChargeAmount && props.data.checkout.result?.checkoutCart.cart.ChargeAmount || 0;\r\n const shippingCharges = props.data.checkout.result?.checkoutCart.cart.ShippingChargeAmount && props.data.checkout.result?.checkoutCart.cart.ShippingChargeAmount || 0;\r\n const chargeLines = props.data.checkout.result?.checkoutCart.cart.ChargeLines;\r\n\r\n let otherChargesAmountFromLines = 0;\r\n let totalChargeAmountFromLines = 0;\r\n let chargesOverriden = false;\r\n let displayOtherChargesAmount = 0;\r\n let shippingChargesFromLines = 0;\r\n const freightChargeCode = props.context.app.config.freightChargeCode;\r\n\r\n if(chargeLines) {\r\n chargeLines.forEach(chargeLine => {\r\n const chargeAmountInclTaxLocal = chargeLine.CalculatedAmount ? chargeLine.CalculatedAmount : 0;\r\n if (chargeLine.ChargeCode != freightChargeCode) {\r\n otherChargesAmountFromLines += chargeAmountInclTaxLocal;\r\n }\r\n if (chargeLine.ChargeCode == freightChargeCode){\r\n shippingChargesFromLines += chargeAmountInclTaxLocal;\r\n }\r\n });\r\n }\r\n\r\n if(shippingChargesFromLines == 0 && shippingCharges != shippingChargesFromLines)\r\n {\r\n totalChargeAmountFromLines = shippingCharges + otherChargesAmountFromLines;\r\n }\r\n else{\r\n totalChargeAmountFromLines = shippingChargesFromLines + otherChargesAmountFromLines;\r\n }\r\n \r\n chargesOverriden = totalChargeAmountFromLines != chargeAmountInclTax;\r\n displayOtherChargesAmount = chargesOverriden ? 0 : otherChargesAmountFromLines;\r\n if (displayOtherChargesAmount == 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n

\r\n {displayOtherChargesAmount && displayOtherChargesAmount > 0 ? (\r\n <>\r\n Other charges\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\n\r\nfunction _renderShippingInclTaxes(props: ICheckoutViewProps): React.ReactNode | null{\r\n const chargeAmountInclTax = props.data.checkout.result?.checkoutCart.cart.ChargeAmount && props.data.checkout.result?.checkoutCart.cart.ChargeAmount || 0;\r\n const shippingCharges = props.data.checkout.result?.checkoutCart.cart.ShippingChargeAmount && props.data.checkout.result?.checkoutCart.cart.ShippingChargeAmount || 0;\r\n const chargeLines = props.data.checkout.result?.checkoutCart.cart.ChargeLines;\r\n\r\n let shippingChargesFromLines = 0;\r\n let otherChargesAmountFromLines = 0;\r\n let totalChargeAmountFromLines = 0;\r\n let chargesOverriden = false;\r\n let displayShippingAmount = 0;\r\n const freightChargeCode = props.context.app.config.freightChargeCode;\r\n\r\n if(chargeLines) {\r\n chargeLines.forEach(chargeLine => {\r\n const chargeAmountInclTaxLocal = chargeLine.CalculatedAmount ? chargeLine.CalculatedAmount : 0;\r\n if (chargeLine.ChargeCode != freightChargeCode) {\r\n otherChargesAmountFromLines += chargeAmountInclTaxLocal;\r\n }\r\n if (chargeLine.ChargeCode == freightChargeCode){\r\n shippingChargesFromLines += chargeAmountInclTaxLocal;\r\n }\r\n });\r\n }\r\n\r\n if(shippingChargesFromLines == 0 && shippingCharges != shippingChargesFromLines)\r\n {\r\n totalChargeAmountFromLines = shippingCharges + otherChargesAmountFromLines;\r\n }\r\n else{\r\n totalChargeAmountFromLines = shippingChargesFromLines + otherChargesAmountFromLines;\r\n }\r\n\r\n chargesOverriden = totalChargeAmountFromLines != chargeAmountInclTax;\r\n displayShippingAmount = chargesOverriden ? chargeAmountInclTax : shippingChargesFromLines;\r\n\r\n if(shippingChargesFromLines == 0 && shippingCharges != shippingChargesFromLines)\r\n {\r\n displayShippingAmount = shippingCharges;\r\n }\r\n\r\n if (displayShippingAmount == 0) {\r\n return props.orderSummary?.lines?.shipping;\r\n }\r\n\r\n return (\r\n

\r\n {displayShippingAmount && displayShippingAmount > 0 ? (\r\n <>\r\n {props.resources.shippingLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\n\r\n\r\nconst _renderOrderSummarylines = (props: ICheckoutViewProps & ICheckoutProps<{}>): JSX.Element | null => {\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n const {orderSummary } = props;\r\n if (!orderSummary) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {orderSummary.heading}\r\n
\r\n {orderSummary.lines && (\r\n <>\r\n {isB2B ? orderSummary.lines.subtotal : _renderSubTotal(props)}\r\n {isB2B ? null : orderSummary.lines.totalDiscounts}\r\n {_renderShippingInclTaxes(props)}\r\n {_renderOtherCharges(props)}\r\n {/*hide on us*/}\r\n {props.config.hideTaxLine ? null : orderSummary.lines.tax}\r\n {_renderTotalOrder(props)}\r\n {orderSummary.lines.loyalty}\r\n {orderSummary.lines.giftCard}\r\n {isB2B ? null : orderSummary.lines.orderTotal}\r\n {isB2B? null : _renderTotalSavings(props)}\r\n \r\n )}\r\n
\r\n {_renderFreeShippingMessage(props)}\r\n {_getCheckoutSummaryText(props)}\r\n
\r\n );\r\n};\r\n\r\nfunction _renderFreeShippingMessage(props: ICheckoutViewProps & ICheckoutProps<{}>): JSX.Element | null {\r\n const shippingAmount = props.data.checkout.result?.checkoutCart.cart.DeliveryModeChargeAmount || 0;\r\n const OrderSubTotal = (props.data.checkout.result?.checkoutCart.cart.AmountDue || 0) - shippingAmount;\r\n \r\n const freeShippingAmount = props.config.freeShippingAmount;\r\n\r\n if (!freeShippingAmount || !OrderSubTotal || OrderSubTotal >= freeShippingAmount) {\r\n return null;\r\n }\r\n return
\r\n Spend an additional ${Math.ceil(freeShippingAmount - OrderSubTotal)} to get FREE SHIPPING\r\n
\r\n}\r\n\r\nfunction _renderSubTotal(props: ICheckoutViewProps): JSX.Element | null {\r\n\r\n const OrderSubTotal = props.data.checkout.result?.checkoutCart.cart.NetPrice;\r\n return (\r\n

\r\n {OrderSubTotal && OrderSubTotal > 0 ? (\r\n <>\r\n {props.resources.subTotalLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\nfunction _renderTotalOrder(props: ICheckoutViewProps): JSX.Element | null {\r\n\r\n const OrderTotal = props.data.checkout.result?.checkoutCart.cart.TotalAmount;\r\n return (\r\n

\r\n {OrderTotal && OrderTotal > 0 ? (\r\n <>\r\n {props.resources.totalAmountLabel}\r\n \r\n \r\n ) : null}\r\n

\r\n );\r\n}\r\nconst _getCheckoutSummaryText = (props: ICheckoutViewProps & ICheckoutProps<{}>): React.ReactNode | undefined => {\r\n const { paragraph } = props.config;\r\n\r\n return (\r\n paragraph && (\r\n \r\n )\r\n );\r\n};\r\nconst CheckoutView: React.FC> = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton\r\n } = props;\r\n\r\n let isBusy = false;\r\n if(msdyn365Commerce.isBrowser) {\r\n const url: string = decodeURI(window.location.search);\r\n const urlParams: URLSearchParams = new URLSearchParams(url);\r\n if (urlParams.get('paymentMethod') === 'AP' && urlParams.has('orderToken')) {\r\n const orderToken = urlParams.get('orderToken');\r\n const afterpayStatus = urlParams.get('status') || 'FAILURE';\r\n\r\n if (afterpayStatus === 'SUCCESS' && orderToken) {\r\n isBusy = true;\r\n }\r\n }\r\n }\r\n\r\n const isB2B = props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits === 'b2b';\r\n function _renderPlaceOrderCopy(): JSX.Element | null {\r\n return (\r\n
\r\n By clicking Place order you agree to your signed terms of business, please contact your account manager for further information.\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder &&\r\n \r\n {loading}\r\n {\r\n isBusy ? (\r\n
\r\n
\r\n
\r\n ) : null\r\n }\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n \r\n {termsAndConditions}\r\n \r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {isB2B? _renderPlaceOrderCopy() : null}\r\n \r\n \r\n {_renderOrderSummarylines(props)}\r\n \r\n \r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n \r\n \r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { Cart } from '@msdyn365-commerce/retail-proxy';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {\r\n};\r\n\r\ninterface ICartIconState {\r\n countChanged: boolean;\r\n}\r\n\r\ninterface ICartLineData{\r\n quantity?: number;\r\n price?: number;\r\n item?: string;\r\n }\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\n@observer\r\nclass CartIcon extends React.Component {\r\n private cartItemCount: string | undefined;\r\n\r\n constructor(props: ICartIconComponentProps) {\r\n super(props);\r\n\r\n this.state = {\r\n countChanged: false\r\n };\r\n }\r\n public render(): JSX.Element {\r\n const { cartLabel, data: { cart } } = this.props;\r\n\r\n if (!cart) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n const cartLink = getUrlSync('cart', this.props.context.actionContext);\r\n\r\n const cartItem = `${this._getCartLineQuantities(cart.cart)}`;\r\n\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n\r\n if (!this.state.countChanged && this.cartItemCount && this.cartItemCount < cartItem) {\r\n this.setState({\r\n countChanged: true\r\n });\r\n // tslint:disable-next-line: no-floating-promises\r\n this._resetClass();\r\n }\r\n this.cartItemCount = cartItem;\r\n const hiddenCartLines = this._createHiddenCartLines(cart.cart);\r\n return (\r\n \r\n
\r\n ({cartItem})\r\n
\r\n {hiddenCartLines}\r\n
\r\n );\r\n }\r\n\r\n private _timeout(ms: number): Promise {\r\n // tslint:disable-next-line: no-string-based-set-timeout\r\n return new Promise(res => setTimeout(res, ms));\r\n }\r\n\r\n private async _resetClass(): Promise {\r\n await this._timeout(1500);\r\n this.setState({\r\n countChanged: false\r\n });\r\n return;\r\n }\r\n\r\n private _getCartLineQuantities = (cart: Cart | undefined): string => {\r\n if(!cart) {\r\n return '0';\r\n }\r\n\r\n let quantity = 0;\r\n\r\n if(cart.CartLines && cart.CartLines.length > 0) {\r\n cart.CartLines.forEach(cartLine => {\r\n quantity += cartLine.Quantity || 1;\r\n });\r\n }\r\n\r\n return quantity.toString();\r\n }\r\n\r\n private _createHiddenCartLines = (cart: Cart | undefined): any => {\r\n if (!cart || !cart.CartLines?.length) {\r\n return
;\r\n }\r\n\r\n let cartLines: ICartLineData[] = [];\r\n\r\n cart.CartLines?.forEach(line => {\r\n cartLines.push({\r\n quantity: line.Quantity,\r\n price: line.Price,\r\n item: line.ItemId\r\n });\r\n });\r\n\r\n return
;\r\n }\r\n}\r\n\r\n// @ts-ignore\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { format } from '@msdyn365-commerce/retail-proxy';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\nimport { CartIconComponent } from './components/cart-icon.component';\r\n// import { ContactInfoClass } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\n/**\r\n *\r\n * Header component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass HeaderView extends React.Component> {\r\n constructor(props: IHeaderViewProps & IHeaderProps<{}>) {\r\n super(props);\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._stickyHeaderSetup();\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer\r\n } = this.props;\r\n return (\r\n \r\n \r\n \r\n {this._renderTopBarLeft()}\r\n {this._renderTopBarCenter()}\r\n {this._renderTopBarRight()}\r\n \r\n {this._renderCollapseMenu()}\r\n \r\n {this._renderReactFragment(this.props.menuBar)}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private _renderTopBarLeft = (): JSX.Element | null => {\r\n return (\r\n
\r\n {this.props.navIcon}\r\n {this.props.logo}\r\n {this._renderReactFragment(this.props.search)}\r\n
\r\n );\r\n }\r\n\r\n private _renderTopBarRight = (): JSX.Element | null => {\r\n const {Divider} = this.props;\r\n return (\r\n
\r\n {this._renderReactFragment(this.props.slots.countryPicker)}\r\n {this._renderReactFragment(this.props.slots.siteOptions)}\r\n {this._renderAccountBlock(false)}\r\n {this.props.wishListIconDesktop}\r\n \r\n
{this._renderCartIcon()}
\r\n
\r\n );\r\n }\r\n\r\n private _renderTopBarCenter = (): JSX.Element | null => {\r\n return (\r\n
\r\n {this._renderReactFragment(this.props.slots.cittaLogo)}\r\n
\r\n );\r\n }\r\n\r\n private _renderCartIcon = (): JSX.Element | null => {\r\n\r\n if (this.props.data.cart.result) {\r\n const cartItem = `${this.props.data.cart.result.totalItemsInCart}`;\r\n const itemCount = cartItem && parseInt(cartItem, 10) || 0;\r\n let label = this.props.resources.cartLabelNoItems || 'Shopping bag, having no items';\r\n if (itemCount === 1) {\r\n label = this.props.resources.cartLabelWithOneItem || 'Shopping bag, having one item';\r\n } else if (itemCount > 1) {\r\n label = this.props.resources.cartLabel && format(this.props.resources.cartLabel, cartItem) || `Shopping bag, having ${itemCount} items`;\r\n }\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _renderCollapseMenu = (): JSX.Element | null => {\r\n const {Divider, MobileMenuLinksContainer, mobileMenuCollapsed} = this.props;\r\n return (\r\n \r\n \r\n {this._renderReactFragment(this.props.search)}\r\n {this._renderMobileAccountBlock(true)}\r\n { this.props.wishListIconMobile }\r\n \r\n \r\n {this._renderReactFragment(this.props.menuBar)}\r\n \r\n );\r\n }\r\n\r\n private renderCustomerName = (): React.ReactChild => {\r\n const { accountInformation } = this.props.data;\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>{customer ? customer.FirstName || customer.Name : ''}\r\n );\r\n };\r\n\r\n private _renderMobileAccountBlock = (renderForMobile: boolean): JSX.Element | null => {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n accountLinks} = this.props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n
\r\n
\r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _renderAccountBlock = (renderForMobile: boolean): JSX.Element | null => {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = this.props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n this.props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n private _renderReactFragment = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n }\r\n\r\n private _stickyHeaderSetup(): void {\r\n // Set header update methods to trigger on scroll\r\n window.onscroll = () => {\r\n this._updateHeader();\r\n };\r\n this._updateHeader();\r\n }\r\n\r\n private _updateHeader(): void {\r\n // Get heights of cookie and promotion banners\r\n const headerAlertsContainer: HTMLElement | null = document.querySelector('.ms-promo-banner');\r\n const bannerHeights = headerAlertsContainer ? headerAlertsContainer.offsetHeight : 0;\r\n\r\n // triggers opacity change of header\r\n const headerElem = document.querySelector('.ms-header');\r\n if (headerElem) {\r\n if (document.documentElement.scrollTop > bannerHeights) {\r\n headerElem.classList.add('lock-opaque');\r\n } else {\r\n headerElem.classList.remove('lock-opaque');\r\n }\r\n }\r\n\r\n // Update sticky header position and opacity\r\n const stickyHeader: HTMLElement | null = document.querySelector('.ms-header__desktop-view');\r\n const headerLogo: HTMLElement | null = document.querySelector('.ms-header__topbar-center');\r\n const headerLeftActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-left');\r\n const headerRightActionItem: HTMLElement | null = document.querySelector('.ms-header__topbar-right');\r\n\r\n if (stickyHeader && headerLogo && headerLeftActionItem && headerRightActionItem) {\r\n // Fix center sticky header\r\n const navStickyPos = headerLogo.offsetHeight + bannerHeights;\r\n if (document.documentElement.scrollTop > navStickyPos) {\r\n stickyHeader.classList.add('fixed');\r\n } else {\r\n stickyHeader.classList.remove('fixed');\r\n }\r\n\r\n // Fix edge sticky headers\r\n if (document.documentElement.scrollTop > bannerHeights) {\r\n headerLeftActionItem.classList.add('fixed');\r\n headerRightActionItem.classList.add('fixed');\r\n } else {\r\n headerLeftActionItem.classList.remove('fixed');\r\n headerRightActionItem.classList.remove('fixed');\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default HeaderView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core';\nimport { ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\nimport {\n AsyncResult,\n CartLine,\n CartLineValidationResults,\n CartLineValidationResultsByLineId,\n CartsDataActions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\n\nimport { ITelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Validate the cart.\n * @param isQuantityLimitsFeatureEnabled -- Is the quantity limits feature enabled.\n * @param cart -- The cart state to validate.\n * @param telemetry -- The telemetry.\n * @param propsContext -- The props context.\n * @param shouldRetry -- Should retry.\n * @returns A list of line data validation failures.\n */\nexport async function validateCartAsync(\n cart: AsyncResult,\n telemetry: ITelemetry,\n propsContext: ICoreContext,\n shouldRetry: boolean = true\n): Promise {\n let cartResult: ICartState;\n let cartVersion: number | undefined;\n try {\n cartResult = await cart;\n cartVersion = cartResult.cart.Version;\n } catch (error) {\n telemetry.warning(error);\n telemetry.debug('Unable to get cart or cart version.');\n return AsyncResult.resolve();\n }\n\n if (cartVersion) {\n try {\n const validationResult: CartLineValidationResults = await CartsDataActions.validateForCheckoutAsync(\n { callerContext: propsContext.actionContext, bypassCache: 'none' },\n cartResult.cart.Id,\n cartVersion\n );\n\n return await AsyncResult.resolve(validationResult.ValidationResultsByLineId ?? undefined);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- error type is not defined.\n if (shouldRetry && error.name === 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion') {\n try {\n await cartResult.refreshCart({});\n } catch (refreshError) {\n telemetry.warning(refreshError);\n telemetry.debug('Unable to refresh Cart');\n return AsyncResult.resolve();\n }\n try {\n await validateCartAsync(cart, telemetry, propsContext, false);\n return AsyncResult.resolve();\n } catch (validateError) {\n telemetry.warning(validateError);\n telemetry.debug('Unable to validate Cart');\n return AsyncResult.resolve();\n }\n }\n\n telemetry.warning(error);\n telemetry.debug('Unable to validate Cart');\n return AsyncResult.resolve();\n }\n } else {\n telemetry.warning('Cart version not found for Cart validation request.');\n return AsyncResult.resolve();\n }\n}\n\n/**\n * Check if cart line quantity update is success.\n * @param isQuantityLimitsFeatureEnabled -- Is quantity limits feature enabled.\n * @param cartResult -- The cart result.\n * @param telemetry -- The telemetry.\n * @param products -- The products.\n * @param cartLineToUpdate -- The cart line to update.\n * @param quantity -- The quantity.\n * @returns Boolean to indicate if the cart line quantity is updated.\n */\nexport async function isCartLineQuantityUpdatedAsync(\n isQuantityLimitsFeatureEnabled: boolean | undefined,\n cartResult: ICartState | undefined,\n telemetry: ITelemetry,\n products: SimpleProduct[] | undefined,\n cartLineToUpdate: CartLine,\n quantity: number\n): Promise {\n if (cartResult) {\n let isUsingDefaultOrderSettingsMax: boolean = false;\n if (ArrayExtensions.hasElements(products) && isQuantityLimitsFeatureEnabled) {\n const modifiedProduct: SimpleProduct | undefined = products.find(\n (product: SimpleProduct) => product.RecordId === cartLineToUpdate.ProductId\n );\n isUsingDefaultOrderSettingsMax = !!modifiedProduct && !!modifiedProduct.Behavior?.MaximumQuantity;\n } else {\n isUsingDefaultOrderSettingsMax = false;\n }\n\n const input = {\n cartLineId: cartLineToUpdate.LineId!.toString(),\n newQuantity: quantity,\n additionalProperties: { isUsingDefaultOrderSettingsMax }\n };\n\n try {\n const updateLineResult: ICartActionResult = await cartResult.updateCartLineQuantity(input);\n return await AsyncResult.resolve(updateLineResult.status === 'SUCCESS');\n } catch (error) {\n telemetry.warning((error as Error).message);\n telemetry.debug('Unable to update Cart Line quantity');\n }\n }\n\n return AsyncResult.resolve(false);\n}\n\n/**\n * Update cart line with cart action result.\n * @param isQuantityLimitsFeatureEnabled -- Is quantity limits feature enabled.\n * @param cartResult -- The cart result.\n * @param telemetry -- The telemetry.\n * @param products -- The products.\n * @param cartLineToUpdate -- The cart line to update.\n * @param quantity -- The quantity.\n * @returns Boolean to indicate if the cart line quantity is updated.\n */\nexport async function cartLineQuantityUpdatedAsync(\n isQuantityLimitsFeatureEnabled: boolean | undefined,\n cartResult: ICartState | undefined,\n telemetry: ITelemetry,\n products: SimpleProduct[] | undefined,\n cartLineToUpdate: CartLine,\n quantity: number\n): Promise {\n if (cartResult) {\n let isUsingDefaultOrderSettingsMax: boolean = false;\n if (ArrayExtensions.hasElements(products) && isQuantityLimitsFeatureEnabled) {\n const modifiedProduct: SimpleProduct | undefined = products.find(\n (product: SimpleProduct) => product.RecordId === cartLineToUpdate.ProductId\n );\n isUsingDefaultOrderSettingsMax = !!modifiedProduct && !!modifiedProduct.Behavior?.MaximumQuantity;\n } else {\n isUsingDefaultOrderSettingsMax = false;\n }\n\n const input = {\n cartLineId: cartLineToUpdate.LineId!.toString(),\n newQuantity: quantity,\n additionalProperties: { isUsingDefaultOrderSettingsMax }\n };\n\n try {\n const updateLineResult: ICartActionResult = await cartResult.updateCartLineQuantity(input);\n return await AsyncResult.resolve(updateLineResult);\n } catch (error) {\n telemetry.warning((error as Error).message);\n telemetry.debug('Unable to update Cart Line quantity');\n }\n }\n\n return AsyncResult.resolve();\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Find the product in array of products considering product id.\n * @param productId - The searched product id.\n * @param products - The array of products in which search is executed.\n * @returns - The found product.\n */\nexport function getProductByProductId(productId: number | undefined, products?: SimpleProduct[]): SimpleProduct | undefined {\n if (productId !== undefined && ArrayExtensions.hasElements(products)) {\n return products.find(product => {\n return productId === product.RecordId;\n });\n }\n\n return undefined;\n}\n\n/**\n * Find the product in array of products considering product id and product behavior's warehouse.\n * @param productId - The searched product id.\n * @param products - The array of products in which search is executed.\n * @param warehouseId - Warehouse id of cartLine.\n * @param cartState - The cart start in case cart line has no warehouse.\n * @returns - The found product.\n */\nexport function getProductByProductIdAndWarehouse(\n productId: number | undefined,\n products?: SimpleProduct[],\n warehouseId?: string,\n cartState?: ICartState\n): SimpleProduct | undefined {\n const targetWarehouseValue = warehouseId ?? cartState?.cart.WarehouseId;\n\n if (productId !== undefined && ArrayExtensions.hasElements(products)) {\n return products.find(product => {\n return productId === product.RecordId && product.Behavior?.InventoryLocationId === targetWarehouseValue;\n });\n }\n\n return undefined;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { ProductDeliveryOptions, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n ActiveCartProductsInput,\n getActiveCartProductsAction,\n getAvailabilitiesForCartLineItems,\n getDeliveryOptionsForCartLineItems,\n IProductInventoryInformation,\n ProductAvailabilitiesForCartLineItems,\n ProductDeliveryOptionsForCartLineItems\n} from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * IMiniCartData entity interface.\n */\nexport interface IMiniCartData {\n products?: SimpleProduct[];\n productAvailabilites?: IProductInventoryInformation[];\n deliveryOptions?: ProductDeliveryOptions[];\n}\n\nexport const createInput = () => {\n return new ActiveCartProductsInput();\n};\n\n/**\n * Calls the Retail API and returns a mini cart data.\n * @param ctx\n * @param cartState\n */\nexport async function getMiniCartData(ctx: IActionContext, cartState: ICartState): Promise {\n const miniCartData: IMiniCartData = {};\n\n const cart = cartState.cart;\n\n // If there are cart lines, make call to get products\n // If there are invocie linese, then there is no products, so don't make call to get products\n if (cart && cart.CartLines && cart.CartLines.length > 0 && !cartState.hasInvoiceLine) {\n await getActiveCartProductsAction(new ActiveCartProductsInput(), ctx)\n .then(products => {\n if (products) {\n miniCartData.products = products;\n }\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCartWithProdcuts]Unable to hydrate cart with product information');\n });\n\n await getAvailabilitiesForCartLineItems(new ProductAvailabilitiesForCartLineItems(ctx.requestContext.apiSettings), ctx)\n .then(availableQuantity => {\n if (availableQuantity) {\n miniCartData.productAvailabilites = availableQuantity;\n }\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCartWithProdcuts]Unable to hydrate cart with product information');\n });\n\n await getDeliveryOptionsForCartLineItems(new ProductDeliveryOptionsForCartLineItems(ctx.requestContext.apiSettings), ctx)\n .then(deliveryOptions => {\n if (deliveryOptions) {\n miniCartData.deliveryOptions = deliveryOptions;\n }\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCartWithProdcuts]Unable to hydrate cart with product information');\n });\n }\n\n return miniCartData;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToCartBehavior, CartIconComponent } from '@msdyn365-commerce/components';\nimport { getUrlSync, IDictionary, IImageSettings, msdyn365Commerce, TelemetryEvent } from '@msdyn365-commerce/core';\nimport {\n CartLine,\n ChannelDeliveryOptionConfiguration,\n CartLineValidationResultsByLineId,\n OrgUnitLocation\n} from '@msdyn365-commerce/retail-proxy';\nimport { validateCartAsync } from '@msdyn365-commerce-modules/cart-utilities';\nimport { ArrayExtensions, validateCartLinesInventory } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n INodeProps,\n ITelemetryContent,\n TelemetryConstant,\n UncontrolledTooltip,\n updateMaxQuantityForCartLineItem,\n urlCheck\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport React from 'react';\n\nimport { ICartIconData } from './cart-icon.data';\nimport { cartLinesSortOrder, ICartIconProps } from './cart-icon.props.autogenerated';\nimport { FlyoutCartLineItems, IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\nimport { getMiniCartData, IMiniCartData } from './utils/get-products-in-mini-cart';\n\nexport interface IMiniCartState {\n miniCartData: IMiniCartData;\n orgUnitLocations?: OrgUnitLocation[];\n isQuantityLimitsFeatureEnabled: boolean;\n isCartValid: boolean;\n}\n\nexport interface ICartIconViewProps extends ICartIconProps {\n className: string;\n cartIcon: React.ReactNode;\n FlyoutContainer?: INodeProps;\n CartlinesWrapper: INodeProps;\n miniCartWrapper: INodeProps;\n miniCartItemWrapper: INodeProps;\n cartlines?: IFlyoutCartLineItemViewProps[];\n flyoutTitle: React.ReactNode;\n totalPrice: React.ReactNode;\n checkoutAsGuestButton?: React.ReactNode;\n checkoutAsSignInUserButton?: React.ReactNode;\n goToCartButton?: React.ReactNode;\n waitingComponent?: React.ReactNode;\n isCartLoading: boolean;\n checkoutBlockedDueToUnavailableFunds?: React.ReactNode;\n\n removeItemClickHandler(cartlineToRemove: CartLine): void;\n}\n\n/**\n *\n * Cart component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass CartIcon extends React.Component, IMiniCartState> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly checkoutBySignInAttributes: IDictionary | undefined;\n\n private readonly checkoutByGuestAttributes: IDictionary | undefined;\n\n private readonly viewShoppingBagAttributes: IDictionary | undefined;\n\n private retailMultiplePickUpOptionEnabled?: boolean = false;\n\n private channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n\n private lastValidatedCartVersion: number | undefined;\n\n constructor(props: ICartIconProps) {\n super(props);\n this.state = {\n miniCartData: {},\n isCartValid: true,\n isQuantityLimitsFeatureEnabled: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payload = getPayloadObject(TelemetryEvent.CheckOut, this.telemetryContent, TelemetryConstant.Checkout);\n this.checkoutBySignInAttributes = getTelemetryAttributes(this.telemetryContent, payload);\n\n payload.contentAction.etext = TelemetryConstant.GuestCheckout;\n this.checkoutByGuestAttributes = getTelemetryAttributes(this.telemetryContent, payload);\n\n payload.contentAction.etext = TelemetryConstant.ViewShoppingBag;\n this.viewShoppingBagAttributes = getTelemetryAttributes(this.telemetryContent, payload);\n }\n\n public async componentDidMount(): Promise {\n const context = this.props.context.actionContext;\n\n reaction(\n () => this.props.data.cart.result?.cart.CartLines,\n async () => {\n this.setState({\n miniCartData: await getMiniCartData(context, this.props.data.cart.result!)\n });\n }\n );\n await this._setQuantityLimitsFeatureFlag();\n\n this.setState({\n orgUnitLocations: this.props.data.orgUnitLocations?.result\n });\n\n this._validateCart();\n }\n\n public componentDidUpdate(prevProps: ICartIconProps): void {\n this._validateCart();\n }\n\n public shouldComponentUpdate(nextProps: ICartIconProps, nextState: IMiniCartState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n // eslint-disable-next-line complexity -- disabling the complexity for this method for now as its causing lot of other warnings\n public render(): JSX.Element | null {\n const {\n id,\n typeName,\n config: { enableHoverCart, isAnonymousCheckout },\n context: {\n request: {\n user: { isAuthenticated, signInUrl }\n }\n },\n context,\n resources\n } = this.props;\n\n const cart = (this.props.data.cart && this.props.data.cart.result) || undefined;\n const guestCheckoutUrl = getUrlSync('checkout', this.props.context.actionContext) || '';\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n const checkoutURL = this._getCheckoutURL(isAuthenticated, guestCheckoutUrl, signInUrl || '');\n const isCartEmpty = cart && cart.cart.CartLines && cart.cart.CartLines.length === 0;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- check config.\n const shouldShowMiniCart =\n cart?.isProductAddedToCart && this.props.context.app.config.addToCartBehavior === AddToCartBehavior.showMiniCart;\n const hasInvoiceLine = cart?.hasInvoiceLine;\n const emailDeliveryModeCode = this.props.context.request.channel?.EmailDeliveryModeCode;\n const cartLines = this._getCartLines();\n const validInventoryAcrossCartLines = validateCartLinesInventory(\n cart?.cart.CartLines ?? [],\n this.state.miniCartData.productAvailabilites ?? [],\n this.props.context.actionContext,\n this.state.miniCartData.products ?? [],\n emailDeliveryModeCode\n );\n const hasError =\n !validInventoryAcrossCartLines?.isValid ||\n (!validInventoryAcrossCartLines && !this.state.isCartValid) ||\n (cartLines ? cartLines.some(cartline => cartline.hasError) : false);\n const includeFlyout = this.props.data.cart && this.props.data.cart.status === 'SUCCESS' && enableHoverCart;\n const totalItemsInCart = cart?.totalItemsInCart ? cart.totalItemsInCart : 0;\n const goToCartButtonText = resources.goToCartButtonTitle.replace('{count}', totalItemsInCart.toString());\n const flyoutTitle = resources.flyoutTitle;\n const flyoutTooltip = {\n tag: UncontrolledTooltip,\n shouldShowMiniCart,\n placement: 'bottom-end',\n hideArrow: true,\n className: 'ms-cart-icon__flyout-container',\n trigger: 'hover',\n displayMode: 'FLYOUT',\n target: id,\n shouldShowCloseButton: true,\n cartPageUrl: cartUrl,\n hideAriaHidden: true\n };\n\n // If there are invoice lines, don't update mini cart price\n const price = (cart && !cart.hasInvoiceLine && cart.cart.TotalAmount) || undefined;\n const priceString = price\n ? resources.totalPriceFormatString.replace('{price}', context.cultureFormatter.formatCurrency(price))\n : '';\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 const viewProps = {\n ...this.props,\n cartIcon: (\n \n ),\n cartlines: cartLines,\n FlyoutContainer: includeFlyout ? flyoutTooltip : undefined,\n CartlinesWrapper: {\n className: 'ms-cart-icon__cart-lines'\n },\n miniCartWrapper: {\n className: classnames('ms-cart-icon'),\n id: this.props.id\n },\n miniCartItemWrapper: {\n className: classnames('msc-cart-lines-item')\n },\n\n // If there are invoice lines, don't update mini cart checkout button\n // Checkout button will display by default to maintain backward compatibility. When Anonymous user checkout is enabled &&\n // user is authenticated then we will show the checkout button otherwise we will show the guest checkout button.\n checkoutAsSignInUserButton:\n !isCartEmpty && !hasInvoiceLine && (!isAnonymousCheckout || isAuthenticated) ? (\n \n {resources.checkoutButtonTitle}\n \n ) : null,\n checkoutAsGuestButton:\n isAnonymousCheckout && !isCartEmpty && !isAuthenticated ? (\n \n {resources.guestCheckoutButtonTitle}\n \n ) : null,\n goToCartButton: (\n \n {goToCartButtonText}\n \n ),\n checkoutBlockedDueToUnavailableFunds: null,\n flyoutTitle: {flyoutTitle},\n totalPrice:
{priceString}
\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _validateCart(): void {\n const {\n data: { cart }\n } = this.props;\n const cartVersion = cart.result?.cart?.Version ?? undefined;\n if (this.lastValidatedCartVersion === cartVersion) {\n return;\n }\n\n this.lastValidatedCartVersion = cartVersion; // This field is populated to block concurrent requests\n\n if (this.state.isQuantityLimitsFeatureEnabled) {\n validateCartAsync(cart, this.props.telemetry, this.props.context)\n .then((result: CartLineValidationResultsByLineId | undefined) => {\n this.setState({ isCartValid: !ArrayExtensions.hasElements(result?.ValidationResultsPairs) });\n })\n .catch(() => {\n this.setState({ isCartValid: false });\n });\n } else {\n this.setState({ isCartValid: true });\n }\n }\n\n private _getCheckoutURL(isAuthenticated: boolean, guestCheckoutUrl: string, signInUrl: string): string {\n if (isAuthenticated) {\n return guestCheckoutUrl;\n }\n\n const isAbsoluteUrl = urlCheck(guestCheckoutUrl);\n let returnURL = guestCheckoutUrl;\n if (msdyn365Commerce.isBrowser && !isAbsoluteUrl) {\n returnURL = `${window.location.origin}${guestCheckoutUrl}`;\n }\n\n return `${signInUrl}${!signInUrl.includes('?') ? '?' : '&'}ru=${returnURL}`;\n }\n\n /**\n * Sort cartline items.\n * @param cartlines - Cartlines to be sorted.\n * @param sortOrder - Ascending or descending.\n * @returns - Sorted cartlines.\n */\n private readonly getSortedCartLines = (cartlines: CartLine[], sortOrder?: cartLinesSortOrder): CartLine[] => {\n const lines: CartLine[] = [...cartlines];\n const zero: number = 0;\n\n if (sortOrder === cartLinesSortOrder.descending) {\n return lines.sort((item1, item2) => (item2.LineNumber ?? zero) - (item1.LineNumber ?? zero));\n }\n return lines.sort((item1, item2) => (item1.LineNumber ?? zero) - (item2.LineNumber ?? zero));\n };\n\n private _getCartLines(): IFlyoutCartLineItemViewProps[] | null {\n const {\n context: {\n request: { channel: { PickupDeliveryModeCode } = { PickupDeliveryModeCode: undefined } }\n },\n config,\n telemetry,\n resources\n } = this.props;\n\n const imageSettings = this._getImageSettings(config.imageSettings);\n const cart = this.props.data.cart && this.props.data.cart.result;\n\n // Cart-icon could be placed in each page\n // so we check cart content to reduce number of RS calls\n return this.state.miniCartData.products && cart && cart.cart.CartLines && cart.cart.CartLines.length > 0\n ? FlyoutCartLineItems({\n cartlines: this.getSortedCartLines(cart.cart.CartLines, config.cartLinesSortOrder),\n products: this.state.miniCartData.products,\n productAvailabilites: this.state.miniCartData.productAvailabilites,\n productDeliveryOptions: this.state.miniCartData.deliveryOptions,\n imageSettings,\n outOfStockThreshold: this.props.context.app.config.outOfStockThreshold || 0,\n isStockCheckEnabled: this.props.context.app.config.enableStockCheck || false,\n maxCartlineQuantity: updateMaxQuantityForCartLineItem(this.props.context.app.config.maxQuantityForCartLineItem),\n gridSettings: this.props.context.request.gridSettings!,\n context: this.props.context,\n typeName: this.props.typeName,\n id: this.props.id,\n resources: {\n sizeString: resources.productDimensionTypeSize,\n colorString: resources.productDimensionTypeColor,\n configString: resources.productDimensionTypeConfiguration,\n styleString: resources.productDimensionTypeStyle,\n quantityDisplayString: resources.quantityDisplayText,\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\n inputQuantityAriaLabel: '', // Not used\n discountStringText: '', // Not used\n originalPriceText: '',\n currentPriceText: '',\n shippingChargesText: '',\n shippingText: resources.shippingText\n },\n telemetry,\n removeButtonText: resources.removeCartButtonText,\n outOfStockText: '', // Not used\n outOfRangeOneText: '', // Not used\n outOfRangeFormatText: '', // Not used\n cartState: cart,\n orgUnitLocations: this.state.orgUnitLocations,\n removeItemClickHandler: this._removeItemFromCartHandler,\n pickupDeliveryModeCode: PickupDeliveryModeCode,\n telemetryContent: this.telemetryContent,\n channelDeliveryOptionConfig: this.retailMultiplePickUpOptionEnabled ? this.channelDeliveryOptionConfig : undefined,\n isQuantityLimitsFeatureEnabled: this.state.isQuantityLimitsFeatureEnabled,\n catalogs: this.props.data.catalogs?.result\n })\n : null;\n }\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 _removeItemFromCartHandler = (cartlineToRemove: CartLine) => {\n if (this.props.data.cart.result) {\n const input = {\n cartLineIds: [cartlineToRemove.LineId!.toString()]\n };\n this.props.data.cart.result.removeCartLines(input).catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to Remove Cart Line');\n });\n }\n };\n\n private async _setQuantityLimitsFeatureFlag(): Promise {\n const featureStatuses = await this.props.data.featureState;\n\n const isChannelQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature'\n )?.IsEnabled || false;\n if (isChannelQuantityLimitsFeatureEnabledInHq) {\n this.setState({ isQuantityLimitsFeatureEnabled: true });\n return;\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 if (!defaultOrderQuantityLimitsFeatureConfig || defaultOrderQuantityLimitsFeatureConfig === 'none') {\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n\n try {\n const featureStatuses = await this.props.data.featureState;\n const isQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature'\n )?.IsEnabled || false;\n if (!isQuantityLimitsFeatureEnabledInHq) {\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n } catch (error) {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to get feature states');\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\n this.setState({ isQuantityLimitsFeatureEnabled: true });\n } else {\n this.props.data.customerInformation\n .then(customerInfo => {\n const result =\n !!customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b));\n this.setState({ isQuantityLimitsFeatureEnabled: result });\n })\n .catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to get customer info');\n });\n }\n } else {\n const cartConfiguration = await this.props.data.cartConfiguration;\n this.setState({ isQuantityLimitsFeatureEnabled: !(cartConfiguration?.IgnoreOrderSettings ?? false) });\n return;\n }\n }\n}\n\nexport default CartIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartIconViewProps } from './cart-icon';\nimport { IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\n\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n return cartLines.map((cartLine, index) => {\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\nconst CartIconView: React.FC = (props: ICartIconViewProps) => (\n \n {props.cartIcon}\n {props.FlyoutContainer ? (\n \n {props.flyoutTitle}\n {props.checkoutBlockedDueToUnavailableFunds}\n {_renderCartlines(props.cartlines, props)}\n {props.totalPrice}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.goToCartButton}\n \n ) : (\n false\n )}\n \n);\n\nexport default CartIconView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartLineItemComponent, ICartlineResourceString } from '@msdyn365-commerce/components';\nimport MsDyn365, { ICoreContext, IGridSettings, IImageSettings, ITelemetry, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport {\n CartLine,\n ChannelDeliveryOptionConfiguration,\n OrgUnitLocation,\n ProductAvailableQuantity,\n ProductDeliveryOptions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ProductCatalog, ReleasedProductType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductUrlSync, IProductInventoryInformation } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { getProductByProductId, getProductByProductIdAndWarehouse } from '../../../Common/get-product';\n\nexport interface IFlyoutCartLineItemsProps {\n cartlines: CartLine[];\n cartState: ICartState | undefined;\n orgUnitLocations: OrgUnitLocation[] | undefined;\n resources: ICartlineResourceString;\n productAvailabilites: IProductInventoryInformation[] | undefined;\n products: SimpleProduct[] | undefined;\n productDeliveryOptions: ProductDeliveryOptions[] | undefined;\n pickupDeliveryModeCode?: string;\n catalogs?: ProductCatalog[];\n\n /**\n * GridSettings for the product image in cartline\n */\n gridSettings: IGridSettings;\n\n /**\n * ImageSettings for the product image in cartline\n */\n imageSettings: IImageSettings;\n id: string;\n typeName: string;\n context: ICoreContext;\n telemetry: ITelemetry;\n removeButtonText: string;\n outOfStockText: string;\n outOfRangeOneText: string;\n outOfRangeFormatText: string;\n maxCartlineQuantity: number;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n isQuantityLimitsFeatureEnabled: boolean;\n\n outOfStockThreshold: number;\n isStockCheckEnabled: boolean;\n telemetryContent?: ITelemetryContent;\n removeItemClickHandler(cartlineToRemove: CartLine): void;\n}\n\nexport interface IFlyoutCartLineItemViewProps {\n cartline: React.ReactNode;\n remove: React.ReactNode;\n storeLocation: React.ReactNode;\n hasError: boolean;\n\n data: {\n product: SimpleProduct;\n cartline: CartLine;\n };\n}\n\nconst _getCartItemAvailableQuantity = (\n isStockCheckEnabled: boolean,\n outOfStockThreshold: number,\n productAvailability?: ProductAvailableQuantity\n): number => {\n if (isStockCheckEnabled) {\n if (\n !productAvailability ||\n !productAvailability.AvailableQuantity ||\n productAvailability.AvailableQuantity <= 0 ||\n productAvailability.AvailableQuantity <= outOfStockThreshold\n ) {\n return 0;\n }\n return productAvailability.AvailableQuantity - outOfStockThreshold;\n }\n\n return 0;\n};\n\nconst _getCartItemMaxQuantity = (\n maxQuantityByConfig: number,\n isStockCheckEnabled: boolean,\n availableQuantityInStock: number,\n isQuantityLimitsFeatureEnabled: boolean,\n maxByQuantityLimitsFeature: number\n) => {\n if (isQuantityLimitsFeatureEnabled) {\n let maxByQuantityLimitsFeatureResult = maxByQuantityLimitsFeature;\n\n // If max by feature in not defined when feature is on then we suggest that there is no max by feature\n // and consider available qty if stock check enabled and max from config in site settings.\n if (!maxByQuantityLimitsFeature) {\n maxByQuantityLimitsFeatureResult = maxQuantityByConfig || 10;\n }\n\n return isStockCheckEnabled\n ? maxByQuantityLimitsFeatureResult < availableQuantityInStock\n ? maxByQuantityLimitsFeatureResult\n : availableQuantityInStock\n : maxByQuantityLimitsFeatureResult;\n }\n if (isStockCheckEnabled) {\n return availableQuantityInStock < maxQuantityByConfig ? availableQuantityInStock : maxQuantityByConfig;\n }\n return maxQuantityByConfig;\n};\n\n/**\n * On Remove Click functionality.\n * @param removeItemClickHandler -Remove item click function.\n * @param cartline -CartLine.\n * @returns Remove change value.\n */\nconst onRemoveClickFunction = (removeItemClickHandler: (cartlineToRemove: CartLine) => void, cartline: CartLine) => () => {\n removeItemClickHandler(cartline);\n};\nconst _assembleNode = (\n cartline: CartLine,\n product: SimpleProduct,\n props: IFlyoutCartLineItemsProps,\n index: number,\n foundProductAvailability?: ProductAvailableQuantity,\n foundProductDeliveryOptions?: ProductDeliveryOptions\n): IFlyoutCartLineItemViewProps => {\n const { imageSettings, gridSettings, id, typeName, context, resources, removeButtonText, removeItemClickHandler } = props;\n\n const availableQuantityInStock = _getCartItemAvailableQuantity(\n props.isStockCheckEnabled,\n props.outOfStockThreshold,\n foundProductAvailability\n );\n const maxQuantity =\n product &&\n _getCartItemMaxQuantity(\n props.maxCartlineQuantity,\n props.isStockCheckEnabled,\n availableQuantityInStock,\n props.isQuantityLimitsFeatureEnabled,\n product?.Behavior?.MaximumQuantity || 0\n );\n\n // Check if the product is service or not by product type\n const isServiceItem = product.ItemTypeValue === ReleasedProductType.Service;\n\n const onRemoveClickHandler = onRemoveClickFunction(removeItemClickHandler, cartline);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.RemoveCartItem);\n const removeCartItemAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\n\n let productUrl = getProductUrlSync(product, props.context.actionContext, undefined);\n if (MsDyn365.isBrowser && isChannelTypeB2B(props.context.actionContext.requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${cartline.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n\n return {\n data: {\n product,\n cartline\n },\n hasError: !isServiceItem && props.isStockCheckEnabled ? cartline.Quantity! > maxQuantity : false,\n cartline: (\n \n ),\n remove: (\n \n {removeButtonText}\n \n ),\n storeLocation: _renderStoreLocation(cartline, props)\n };\n};\n\nconst _renderDeliveryLocation = (cartLine: CartLine | null | undefined, props: IFlyoutCartLineItemsProps): string | undefined => {\n let deliverylocation;\n if (cartLine && cartLine.FulfillmentStoreId) {\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, props.orgUnitLocations);\n\n let foundProductDeliveryOption;\n if (props.productDeliveryOptions && props.productDeliveryOptions.length > 0) {\n foundProductDeliveryOption = props.productDeliveryOptions.find(deliveryOption => {\n return deliveryOption && deliveryOption.ProductId === cartLine.ProductId;\n });\n }\n const delivery = foundProductDeliveryOption?.DeliveryOptions?.find(option => option.Code === cartLine.DeliveryMode);\n const location = delivery?.Description;\n\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n if (location) {\n deliverylocation = `${location}, ${orgUnitName}`;\n } else {\n deliverylocation = `${orgUnitName}`;\n }\n } else {\n deliverylocation = props.resources.shippingText;\n }\n return deliverylocation;\n};\n\nconst _renderStoreLocation = (cartLine: CartLine | null | undefined, props: IFlyoutCartLineItemsProps): JSX.Element | null => {\n if (cartLine && cartLine.FulfillmentStoreId) {\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, props.orgUnitLocations);\n\n if (orgUnitName) {\n return (\n
\n {orgUnitName}\n
\n );\n }\n }\n\n return null;\n};\n\nconst _getOrgUnitName = (fulfillmentStoreId: string | undefined, orgUnitLocations: OrgUnitLocation[] | undefined) => {\n if (!orgUnitLocations || !fulfillmentStoreId || orgUnitLocations.length === 0) {\n return '';\n }\n\n const foundLocation = orgUnitLocations.find(orgUnitLocation => {\n return orgUnitLocation.OrgUnitNumber === fulfillmentStoreId;\n });\n\n if (foundLocation) {\n return foundLocation.OrgUnitName;\n }\n return fulfillmentStoreId;\n};\n\nconst _assembleCartlines = (\n cartlines: CartLine[],\n products: SimpleProduct[] | undefined,\n props: IFlyoutCartLineItemsProps\n): IFlyoutCartLineItemViewProps[] | null => {\n const reactNodes: IFlyoutCartLineItemViewProps[] = [];\n\n if (!products || products.length === 0) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n\n cartlines.map((cartline, index) => {\n let product;\n if (props.isQuantityLimitsFeatureEnabled) {\n // When feature is enabled the same products could have different quantity limits in Behavior so we need\n // to check productId and WarehouseId for identification.\n product = getProductByProductIdAndWarehouse(cartline.ProductId, products, cartline.WarehouseId, props.cartState);\n } else {\n product = getProductByProductId(cartline.ProductId, products);\n }\n let foundProductAvailability;\n if (props.productAvailabilites && props.productAvailabilites.length > 0) {\n foundProductAvailability = props.productAvailabilites.find(productAvailability => {\n return productAvailability.ProductAvailableQuantity?.ProductId! === cartline.ProductId;\n });\n }\n let foundProductDeliveryOption;\n if (props.productDeliveryOptions && props.productDeliveryOptions.length > 0) {\n foundProductDeliveryOption = props.productDeliveryOptions.find(deliveryOption => {\n return deliveryOption && deliveryOption.ProductId === cartline.ProductId;\n });\n }\n if (product) {\n reactNodes.push(\n _assembleNode(\n cartline,\n product,\n props,\n index,\n foundProductAvailability?.ProductAvailableQuantity,\n foundProductDeliveryOption\n )\n );\n }\n });\n\n return reactNodes;\n};\n\n/**\n * CartLineItems component.\n */\n\nexport const FlyoutCartLineItems = (props: IFlyoutCartLineItemsProps) => {\n const { products, cartlines } = props;\n return _assembleCartlines(cartlines, products, props);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Payment waiting props.\n */\nexport interface IPaymentWaitingProps {\n message: string;\n className?: string;\n}\n\n/**\n * Payment waiting.\n * @param param0 - First in param.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const WaitingComponent: React.FC = ({ message, className = 'ms-checkout-payment-instrument' }) => (\n
\n \n {message}\n
\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ICheckoutState } from '@msdyn365-commerce/global-state';\nimport {\n AsyncResult, CardPaymentAcceptPoint\n} from '@msdyn365-commerce/retail-proxy';\n\nexport enum ApplePayButtonState {\n Unknown,\n NotAvailable,\n Available\n};\n\n/**\n * Interface for checkout apple pay data.\n */\nexport interface ICheckoutApplePayData {\n checkout?: AsyncResult;\n cardPaymentAcceptPoint?: AsyncResult;\n}","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport { getCheckoutState, IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport {\n getDeliveryOptionsAsync,\n retrieveCardPaymentAcceptResultAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport {\n Address,\n CardPaymentAcceptResult,\n Cart,\n FilterDeliveryModeOption\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport classNames from 'classnames';\nimport * as React from 'react';\n\nimport { CardPaymentAcceptPoint } from '@msdyn365-commerce/retail-proxy';\nimport { EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { computed } from 'mobx';\nimport { ObjectExtensions, QueryResultSettingsProxy, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ApplePayButtonState, ICheckoutApplePayData } from './checkout-apple-pay.data';\nimport { ICheckoutApplePayProps } from './checkout-apple-pay.props.autogenerated';\nimport { PlaceOrder } from '../../common/place-order';\nimport { ErrorComponent } from '../../common';\nimport { getThreeLetterCountryCode } from '../../common/country-codes';\n\nenum ApplePayPaymentAuthorizationResult {\n STATUS_SUCCESS = 0,\n STATUS_FAILURE = 1\n}\n\ninterface IApplePayLine {\n label: string;\n type: string;\n amount: string;\n}\n\ninterface IValidationEvent {\n validationUrl: string;\n}\n\ninterface IResult {\n newTotal: IApplePayLine;\n}\n\ninterface IAuthorizeEvent {\n paymentToken: string;\n shippingContact?: IShippingContactSelectedEvent;\n}\n\ninterface IAuthorizeResult {\n resultCode: ApplePayPaymentAuthorizationResult;\n}\n\ninterface IPaymentMethodEvent {\n type?: string;\n}\n\n/**\n * An interface that describes the shipping method for delivering physical goods.\n * Link to Apple doc - https://developer.apple.com/documentation/apple_pay_on_the_web/applepayshippingmethod\n */\ninterface IApplePayShippingMethod {\n /**\n * A short description of the shipping method.\n */\n label?: string;\n\n /**\n * The nonnegative cost associated with this shipping method.\n */\n amount?: string;\n\n /**\n * Additional description of the shipping method.\n */\n detail?: string;\n\n /**\n * A client-defined value used to identify this shipping method.\n */\n identifier?: string;\n}\n\n/**\n * Contact information fields to use for billing and shipping contact information.\n * Link to Apple doc - https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentcontact\n */\ninterface IShippingContactSelectedEvent {\n /**\n * A phone number for the contact.\n */\n phoneNumber?: string;\n\n /**\n * An email address for the contact.\n */\n emailAddress?: string;\n\n /**\n * The contact’s given name.\n */\n givenName?: string;\n\n /**\n * The contact’s family name.\n */\n familyName?: string;\n\n /**\n * The street portion of the address for the contact.\n */\n addressLines?: string[];\n\n /**\n * Additional information associated with the location, typically defined at the city or town level (such as district or neighborhood), in a postal address.\n */\n subLocality?: string;\n\n /**\n * The city for the contact.\n */\n locality?: string;\n\n /**\n * The zip code or postal code, where applicable, for the contact.\n */\n postalCode?: string;\n\n /**\n * The subAdministrative area (such as a county or other region) in a postal address.\n */\n subAdministrativeArea?: string;\n\n /**\n * The state for the contact.\n */\n administrativeArea?: string;\n\n /**\n * The name of the country or region for the contact.\n */\n country?: string;\n\n /**\n * The contact’s two-letter ISO 3166 country code.\n */\n countryCode?: string;\n}\n\ninterface IShippingMethodSelectedEvent {\n /**\n * The identifier of selected shipping method.\n */\n id: string;\n}\n\ninterface IAppleSessionHandler {\n onAuthorize(authorizeEvent: IAuthorizeEvent): Promise;\n onCancel(): void;\n onPaymentMethodUpdate(paymentMethodEvent: IPaymentMethodEvent): Promise;\n onValidation(validationEvent: IValidationEvent): Promise;\n\n onShippingContactSelected?(shippingContactSelectedEvent: IShippingContactSelectedEvent): Promise;\n onShippingMethodSelected?(shippingMethodSelectedEvent: IShippingMethodSelectedEvent): Promise;\n}\n\nexport interface ICheckoutApplePayViewProps extends ICheckoutApplePayProps<{}> {\n className?: string;\n checkoutApplePay: IModuleProps;\n applePayButton?: React.ReactNode;\n alert?: React.ReactNode;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const window: any;\n\nexport interface ICheckoutApplePayModuleProps extends ICheckoutApplePayProps {}\n\ninterface ICheckoutApplePayState {\n applePayButtonState: ApplePayButtonState;\n paymentConnectorId?: string;\n lineDisplayName?: string;\n errorMessage?: string;\n shippingContact?: Address;\n shippingMethodId?: string;\n}\n/**\n *\n * CheckoutApplePay component\n * @extends {React.Component}\n */\nexport class CheckoutApplePay extends React.Component {\n private readonly moduleClassName: string = 'ms-checkout-apple-pay';\n private readonly applePaySdkId = 'd365-apple-pay-sdk';\n private readonly zeroAmount: number = 0;\n\n @computed private get getLoyaltyAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n return checkoutState?.loyaltyAmount ? checkoutState.loyaltyAmount : this.zeroAmount;\n }\n\n @computed private get getGiftCardTotalAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n if (!checkoutState || !checkoutState.giftCardExtends) {\n return this.zeroAmount;\n }\n return checkoutState.giftCardExtends.reduce((count: number, giftCard: IGiftCardExtend) => {\n return count + (giftCard.Balance || this.zeroAmount);\n }, 0);\n }\n\n @computed private get getCustomerAccountAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n\n return checkoutState?.customerAccountAmount ?? this.zeroAmount;\n }\n\n @computed private get amountDue(): number {\n const {\n data: { checkout }\n } = this.props;\n\n const cart = checkout?.result?.checkoutCart.cart;\n if (!cart || !cart.AmountDue) {\n return this.zeroAmount;\n }\n\n return Math.max(\n this.zeroAmount,\n cart.AmountDue - this.getGiftCardTotalAmount - this.getLoyaltyAmount - this.getCustomerAccountAmount\n );\n }\n\n @computed private get merchantName(): string {\n return this.state.lineDisplayName || '';\n }\n\n public constructor(props: ICheckoutApplePayProps) {\n super(props);\n this.state = {\n applePayButtonState: ApplePayButtonState.Unknown\n };\n }\n\n public async componentDidMount() {\n const {\n data: { cardPaymentAcceptPoint },\n telemetry\n } = this.props;\n\n // load JS portion of payment connector for ApplePay\n await cardPaymentAcceptPoint;\n\n if (cardPaymentAcceptPoint?.result !== undefined) {\n this.loadPaymentConnectorSdk(cardPaymentAcceptPoint.result);\n\n // load official ApplePay JS SDK.\n const script = document.createElement('script');\n script.onload = () => {\n let isApplePayAvailable = false;\n if (typeof window.isApplePayAvailable === 'function') {\n isApplePayAvailable = window.isApplePayAvailable();\n }\n\n telemetry.information(`is Apple Pay available: ${isApplePayAvailable}`);\n return this.setState({\n applePayButtonState: isApplePayAvailable ? ApplePayButtonState.Available : ApplePayButtonState.NotAvailable,\n paymentConnectorId: cardPaymentAcceptPoint.result?.PaymentConnectorId\n });\n };\n\n script.src = 'https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js';\n script.async = false;\n script.onerror = () => telemetry.error('unable to load Apple Pay SDK');\n document.body.appendChild(script);\n } else {\n telemetry.error('unable to get Apple Pay connector SDK');\n }\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className },\n resources,\n telemetry\n } = this.props;\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.ExpressPayment === 0) {\n telemetry.information('isOBORequest is enabled, apple pay module wont render');\n return null;\n }\n\n let applePayButton: React.ReactNode;\n switch (this.state.applePayButtonState) {\n case ApplePayButtonState.Available:\n applePayButton = (\n
\n );\n break;\n\n case ApplePayButtonState.Unknown:\n case ApplePayButtonState.NotAvailable:\n default:\n applePayButton =
;\n break;\n }\n\n const viewProps: ICheckoutApplePayViewProps = {\n ...this.props,\n ...this.state,\n className,\n checkoutApplePay: {\n moduleProps: this.props,\n className: classNames(this.moduleClassName, className)\n },\n alert: this.state.errorMessage && (\n \n ),\n applePayButton\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handler for Apple Pay button.\n */\n public handlePayButton = async () => {\n const { config, resources, telemetry } = this.props;\n\n const handler: IAppleSessionHandler = {\n onAuthorize: this.authorizePayment,\n onCancel: this.cancelPayment,\n onPaymentMethodUpdate: this.updatePaymentMethod,\n onValidation: this.validateMerchant\n };\n\n // Set shipping related callbacks if corresponding options enabled.\n if (config.shouldRequestShippingAddress) {\n handler.onShippingContactSelected = this.shippingContactSelected;\n handler.onShippingMethodSelected = this.shippingMethodSelected;\n }\n\n try {\n // calling connector JS to create payment session.\n const displayName = window.CreateApplePaySession(handler, this.amountDue.toString());\n this.setState({\n lineDisplayName: displayName\n });\n } catch (error) {\n this.showErrorMessage(resources.genericErrorMessage);\n telemetry.error(`unable to create Apple Pay session: ${error}`);\n }\n };\n\n /**\n * Call CSU checkout API with Apple Pay token.\n * @param paymentToken {string} The gateway payment token\n */\n private checkout = async (paymentToken: string) => {\n const {\n data: { checkout },\n context: { actionContext }\n } = this.props;\n const { paymentConnectorId } = this.state;\n\n const checkoutState = await getCheckoutState(actionContext);\n const cartState = checkoutState.checkoutCart;\n\n const channelConfiguration = actionContext.requestContext.channel;\n if (!channelConfiguration) {\n throw new Error('unable to get channel configuration');\n }\n\n if (checkout !== null) {\n const cardPaymentAcceptResult: CardPaymentAcceptResult = {\n AccessCode: paymentToken,\n Settings: {\n PaymentConnectorId: paymentConnectorId\n }\n };\n\n await checkout?.result?.updateCardPaymentAcceptResult({ newCardPaymentAcceptResult: cardPaymentAcceptResult });\n await PlaceOrder(\n actionContext,\n checkoutState,\n undefined, // orderedProducts\n true, // redirect,\n cartState.cart.Version,\n false // isPaymentVerificationRedirection\n );\n }\n };\n\n /**\n * Load JS SDK from payment connector.\n * @param cardPaymentAcceptPoint {CardPaymentAcceptPoint} The card payment accept point object from CSU.\n */\n private loadPaymentConnectorSdk = (cardPaymentAcceptPoint: CardPaymentAcceptPoint) => {\n if (!cardPaymentAcceptPoint.AcceptPageContent) {\n this.props.telemetry.error(`Card payment accept page content can't be null or empty`);\n return;\n }\n\n const connectorSdk: string = cardPaymentAcceptPoint.AcceptPageContent || '';\n const sdk = document.createElement('script');\n sdk.id = this.applePaySdkId;\n sdk.type = 'text/javascript';\n sdk.appendChild(document.createTextNode(connectorSdk));\n document.body.appendChild(sdk);\n };\n\n /**\n * Validate Apple Pay merchant account with gateway.\n * @param validationEvent {IValidationEvent} The object containing merchant validation data.\n * @returns The response from CSU with validated data.\n */\n private validateMerchant = async (validationEvent: IValidationEvent): Promise => {\n const {\n data: { checkout, cardPaymentAcceptPoint },\n resources,\n telemetry\n } = this.props;\n\n telemetry.information('starting merchant validation for Apple Pay');\n const validationUrl = validationEvent?.validationUrl || '';\n if (!validationUrl) {\n telemetry.error(`Apple Pay validation failed: url can't be null or empty`);\n return Promise.reject('Validation url can not be null or empty');\n }\n\n const cartId = checkout?.result?.checkoutCart.cart.Id || '';\n if (!cartId) {\n telemetry.error(`Apple Pay validation failed: cart can't be null or empty`);\n return Promise.reject('Cart identifier can not be null or empty');\n }\n\n const paymentConnectorId = cardPaymentAcceptPoint?.result?.PaymentConnectorId || '';\n if (!paymentConnectorId) {\n telemetry.error(`Apple Pay validation failed: payment connector identifier can't be null or empty`);\n return Promise.reject('Connector identifier can not be null or empty');\n }\n\n const validationObject = {\n domainName: window.location.hostname,\n validationUrl: validationUrl\n };\n const validationBody = JSON.stringify(validationObject);\n const validationData = await retrieveCardPaymentAcceptResultAsync(\n { callerContext: this.props.context.actionContext },\n btoa(validationBody),\n [],\n cartId,\n { PaymentConnectorId: paymentConnectorId }\n ).catch(error => {\n this.showErrorMessage(resources.genericErrorMessage);\n telemetry.error(`Apple Pay validation failed: ${error}`);\n return Promise.reject(error);\n });\n\n telemetry.information('merchant validation for Apple Pay completed');\n return Promise.resolve(JSON.stringify(validationData));\n };\n\n /**\n * Authorize Apple Pay token by calling checkout API.\n * @param authorizeEvent {IAuthorizeEvent} The object containing authorization information.\n * @returns The authorization result.\n */\n private authorizePayment = async (authorizeEvent: IAuthorizeEvent): Promise => {\n const { resources, telemetry } = this.props;\n\n telemetry.information('starting authorization for Apple Pay');\n try {\n await this.updateContactInfo(authorizeEvent.shippingContact);\n await this.checkout(btoa(JSON.stringify(authorizeEvent)));\n telemetry.information('Apple Pay authorization completed');\n return Promise.resolve({ resultCode: ApplePayPaymentAuthorizationResult.STATUS_SUCCESS });\n } catch (error) {\n this.showErrorMessage(resources.genericErrorMessage);\n telemetry.error(`Apple Pay authorization failed: ${error as string}`);\n return Promise.reject(error as string);\n }\n };\n\n /**\n * Callback to notify Apple Pay sheet was closed/canceled.\n */\n private cancelPayment = (): void => {\n this.props.telemetry.information('Apple Pay popup canceled');\n };\n\n /**\n * The callback for Apple Pay payment method confirmation.\n * @param paymentMethodEvent {IPaymentMethodEvent} The payment method event object.\n * @returns The transaction result object.\n */\n private updatePaymentMethod = async (paymentMethodEvent: IPaymentMethodEvent): Promise => {\n return Promise.resolve({\n newTotal: {\n label: this.merchantName,\n type: 'final',\n amount: `${this.amountDue}`\n }\n });\n };\n\n /**\n * The callback for Apple Pay shipping contact confirmation.\n * @param shippingContact {IShippingContactSelectedEvent} The shipping contact event object.\n * @returns The transaction result object.\n */\n private shippingContactSelected = async (shippingContact: IShippingContactSelectedEvent): Promise => {\n const { resources, telemetry } = this.props;\n\n // construct Address object from Apple Pay shipping contact.\n const shippingAddress: Address = this.getAddressFromShippingContact(shippingContact);\n const shippingMethods = await this.getShippingMethods(shippingAddress);\n if (ObjectExtensions.isNullOrUndefined(shippingMethods) || shippingMethods.length === 0) {\n return Promise.reject();\n }\n\n try {\n const shippingMethodId = shippingMethods.at(0)?.identifier || '';\n await this.updateShippingInfo(shippingMethodId, shippingAddress);\n\n // save shipping contact to update shipping method later.\n this.setState({\n shippingContact: shippingAddress,\n shippingMethodId: shippingMethodId\n });\n } catch (e) {\n telemetry.error(`unable to update shipping info after shipping method change: ${e}`);\n this.showErrorMessage(resources.genericErrorMessage);\n }\n\n return Promise.resolve({\n newShippingMethods: shippingMethods,\n newTotal: {\n label: this.merchantName,\n type: 'final',\n amount: `${this.amountDue}`\n }\n });\n };\n\n /**\n * The callback for Apple Pay shipping method confirmation.\n * @param shippingMethodSelectedEvent {IShippingMethodSelectedEvent} The shipping method event object.\n * @returns The transaction result object.\n */\n private shippingMethodSelected = async (shippingMethod: IShippingMethodSelectedEvent): Promise => {\n const { resources, telemetry } = this.props;\n\n try {\n await this.updateShippingInfo(shippingMethod.id, this.state.shippingContact);\n\n // save selected shipping method.\n this.setState({ shippingMethodId: shippingMethod.id });\n } catch (e) {\n telemetry.error(`unable to update address after shipping method change: ${e}`);\n this.showErrorMessage(resources.genericErrorMessage);\n }\n\n return Promise.resolve({\n newTotal: {\n label: this.merchantName,\n type: 'final',\n amount: `${this.amountDue}`\n }\n });\n };\n\n /**\n * Helper function to obtain shipping methods available for Apple contact address.\n * @param address {Address} The shipping address.\n * @returns The cart delivery options.\n */\n private getShippingMethods = async (address: Address): Promise => {\n const {\n context: { actionContext },\n data: { checkout },\n telemetry\n } = this.props;\n\n const cartId = (checkout?.result?.checkoutCart?.cart as Cart).Id;\n const deliveryOptionFilter: FilterDeliveryModeOption = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\n const appleDeliveryOptions: IApplePayShippingMethod[] = [];\n try {\n const deliveryOptions = await getDeliveryOptionsAsync(\n {\n callerContext: actionContext,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(actionContext)\n },\n cartId,\n address,\n [],\n deliveryOptionFilter,\n false\n );\n deliveryOptions.forEach(element =>\n appleDeliveryOptions.push({\n label: element.Description,\n amount: `${element.ShippingChargeAmount}`,\n detail: element.Description,\n identifier: element.Code\n })\n );\n } catch (e) {\n telemetry.error('unable to get delivery options for Apple Pay contact');\n }\n\n return appleDeliveryOptions;\n };\n\n /**\n * Helper function to convert Apple Pay shipping contact into Address object.\n * @param shippingContact {IShippingContactSelectedEvent} The shipping contact provided by Apple Pay SDK.\n * @returns The Address object.\n */\n private getAddressFromShippingContact = (shippingContact: IShippingContactSelectedEvent) => {\n const shippingAddress: Address = {\n ThreeLetterISORegionName: getThreeLetterCountryCode(shippingContact?.countryCode || ''),\n Name: this.getContactName(shippingContact),\n Street: shippingContact?.addressLines?.at(0),\n StreetNumber: shippingContact?.addressLines?.at(1),\n City: shippingContact?.locality,\n State: shippingContact?.administrativeArea,\n ZipCode: shippingContact?.postalCode\n };\n\n return shippingAddress;\n };\n\n /**\n * Helper function to return formatted contact name.\n * @param shippingContact {IShippingContactSelectedEvent} The shipping contact provided by Apple Pay SDK.\n * @returns The formatted contact name, i.e. 'Test User', 'Test', 'User' or empty string if both given and family names are missing.\n */\n private getContactName = (shippingContact: IShippingContactSelectedEvent) => {\n const givenName = shippingContact?.givenName || '';\n const familyName = shippingContact?.familyName || '';\n return `${givenName}${\n StringExtensions.isNullOrWhitespace(givenName) || StringExtensions.isNullOrWhitespace(familyName) ? '' : ' '\n }${familyName}`;\n };\n\n private updateContactInfo = async (shippingContact?: IShippingContactSelectedEvent) => {\n const {\n data: { checkout },\n telemetry\n } = this.props;\n\n if (shippingContact) {\n const shippingAddress: Address = this.getAddressFromShippingContact(shippingContact);\n const shippingMethodId = this.state.shippingMethodId || '';\n await this.updateShippingInfo(shippingMethodId, shippingAddress);\n const newGuestCheckoutEmail = shippingContact.emailAddress || '';\n if (!StringExtensions.isNullOrWhitespace(newGuestCheckoutEmail)) {\n await checkout?.result?.updateGuestCheckoutEmail({ newGuestCheckoutEmail });\n } else {\n telemetry.warning('email address missing in shipping contact from Apple');\n }\n } else {\n telemetry.information('no shipping information provided');\n }\n };\n\n /**\n * Update shipping information on cart.\n * @param shippingMethodId {string} The identifier for shipping method.\n * @param shippingAddress {Address} The shipping address.\n */\n private updateShippingInfo = async (shippingMethodId: string, shippingAddress?: Address) => {\n const {\n data: { checkout }\n } = this.props;\n\n const updateCartDeliverySpecificationInput = {\n deliveryModeId: shippingMethodId,\n shippingAddress: shippingAddress\n };\n\n const result = await checkout?.result?.checkoutCart.updateCartDeliverySpecification(updateCartDeliverySpecificationInput);\n if (result?.status !== 'SUCCESS') {\n throw new Error(result?.errorDetails?.LocalizedMessage);\n }\n };\n\n /**\n * Shows error message on screen next to Apple Pay button.\n * @param message {string} The error message to show.\n */\n private showErrorMessage = (message: string) => {\n this.setState({\n errorMessage: message\n });\n };\n}\n\nexport default CheckoutApplePay;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutApplePayViewProps } from './checkout-apple-pay';\n\nconst CheckoutApplePayView: React.FC = props => {\n const { checkoutApplePay, applePayButton, alert } = props;\n\n return (\n \n {alert}\n {applePayButton}\n \n );\n};\n\nexport default CheckoutApplePayView;\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 { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleStateManager, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { action, computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentData } from './checkout-customer-account-payment.data';\nimport { ICheckoutCustomerAccountPaymentProps } from './checkout-customer-account-payment.props.autogenerated';\nimport { getAccountPaymentFormEditMode, IAccountPaymentEditViewForm } from './components/get-account-payment-form-edit-mode';\nimport { getAccountPaymentFormSummaryMode, IAccountPaymentSummaryViewForm } from './components/get-account-payment-form-summary-mode';\nimport { ErrorComponent } from '../../common/error';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport interface ICheckoutCustomerAccountPaymentViewProps\n extends ICheckoutCustomerAccountPaymentProps {\n checkoutCustomerAccount: IModuleProps;\n summaryView: IAccountPaymentSummaryViewForm;\n editView: IAccountPaymentEditViewForm;\n moduleState: IModuleStateManager;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n}\n\nexport interface ICheckoutCustomerAccountPaymentState {\n paymentAmount: number;\n isCreditSectionExpanded: boolean;\n customizedAmt: string;\n amountVariable: string;\n errorMessage?: string;\n handleSaveAndContinue?: boolean;\n}\n\n/**\n *\n * CheckoutCustomerAccount component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nexport class CheckoutCustomerAccountPayment extends React.Component<\n ICheckoutCustomerAccountPaymentViewProps,\n ICheckoutCustomerAccountPaymentState\n> {\n private readonly defaultLocale: string = 'en-us';\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerInfo = get(this.props, 'data.customerInformation.result');\n const request = get(this.props, 'context.request');\n const b2bChannel = isChannelTypeB2B(request);\n const platform = get(this.props, 'context.request.app.platform');\n\n return (\n customerInfo &&\n customerInfo.AllowOnAccountPayment === true &&\n platform &&\n (platform.enableCustomerAccountPayment === 'all' ||\n (platform.enableCustomerAccountPayment === 'b2b' && b2bChannel) ||\n (platform.enableCustomerAccountPayment === 'b2c' && !b2bChannel))\n );\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 maxPaymentAmount(): number {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n if (!cart) {\n return 0;\n }\n\n // Use customer account after loyalty.\n const amountDue = Math.max(0, (cart.TotalAmount || 0) - this.getLoyaltyAmount);\n\n // If the user has a mandatory credit limit, then the max amount must not be more than that\n if (this.props.data.customerInformation?.result?.MandatoryCreditLimit) {\n return Math.min(this.getAvailableCredit(this.props.data.creditBalances?.result), amountDue);\n }\n return amountDue;\n }\n\n @computed get errorMessage(): string | undefined {\n if (this.state.paymentAmount > this.maxPaymentAmount) {\n return this.props.resources.invalidAmountExceedAmountDueMessage;\n }\n\n if (this.state.paymentAmount < 0) {\n return this.props.resources.invalidAmountNegativeMessage;\n }\n\n return undefined;\n }\n\n @computed get currencyCode(): string | undefined {\n return get(this.props, 'context.request.channel.Currency');\n }\n\n @computed get availableCredit(): number {\n const creditBalances = get(this.props, 'data.creditBalances.result');\n\n return creditBalances ? this.getAvailableCredit(creditBalances) : 0;\n }\n\n @computed get orderTotal(): number {\n const orderTotal = get(this.props, 'data.checkout.result.checkoutCart.cart.TotalAmount');\n\n return orderTotal ? orderTotal : 0;\n }\n\n @computed get formattedExcessCredit(): string | undefined {\n const excessCredit = this.availableCredit - this.orderTotal;\n return excessCredit < 0 ? this.props.context.cultureFormatter.formatCurrency(excessCredit, this.currencyCode) : undefined;\n }\n\n @computed get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\n }\n\n private readonly baseClassName: string = 'ms-checkout-customer-account';\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n public constructor(props: ICheckoutCustomerAccountPaymentViewProps) {\n super(props);\n const locale = get(this.props, 'context.request.locale') || this.defaultLocale;\n this.state = {\n paymentAmount: this.maxPaymentAmount,\n isCreditSectionExpanded: false,\n customizedAmt: new Intl.NumberFormat(locale).format(this.maxPaymentAmount),\n amountVariable: this.maxPaymentAmount.toString(),\n handleSaveAndContinue: false\n };\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n await this.init();\n }\n );\n\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.\n reaction(\n () =>\n this.props.data.checkout.result &&\n this.props.data.checkout.result.checkoutCart.cart &&\n this.props.data.checkout.result.checkoutCart.cart.TotalAmount,\n totalAmount => {\n this.updateMaxAmount(this.maxPaymentAmount);\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.CheckoutCustomerAccountPayment &&\n checkoutError.errorMessage\n ) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutCustomerAccountPayment) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(\n nextProps: ICheckoutCustomerAccountPaymentProps,\n nextState: ICheckoutCustomerAccountPaymentState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const customerInfo = this.props.data.customerInformation?.result;\n\n if (!this.isCustomerAccountPaymentEnabled) {\n this.props.context.telemetry.information(\n 'customer account payments will not display, because the feature is disabled or not enabled for this type of customer'\n );\n return null;\n }\n\n const checkoutState = this.props.data.checkout.result;\n const cart = checkoutState ? checkoutState.checkoutCart.cart : undefined;\n const hasInvoiceLine = checkoutState?.checkoutCart.hasInvoiceLine;\n const creditBalances = this.props.data.creditBalances.result;\n\n if (!cart || hasInvoiceLine) {\n return null;\n }\n const resources = this.props.resources;\n const locale = get(this.props, 'context.request.locale') || this.defaultLocale;\n\n const customerSinceDate = new Date(customerInfo?.CreatedDateTime || 0).toLocaleDateString(locale);\n\n const hasError = this.props.moduleState.hasError;\n const errorMessage = this.state.errorMessage;\n\n const props = {\n ...this.props,\n checkoutErrorRef: this.checkoutErrorRef,\n checkoutCustomerAccount: {\n moduleProps: this.props,\n className: classnames(this.baseClassName)\n },\n alert: hasError && errorMessage && (\n \n ),\n editView: getAccountPaymentFormEditMode({\n onAddPayment: this.addPayment,\n resources,\n customizedAmt: this.state.customizedAmt,\n amountVariable: this.state.amountVariable,\n amount: this.state.paymentAmount,\n onChangePaymentAmount: this.onChangePaymentAmount,\n maxAmount: this.maxPaymentAmount,\n customer: customerInfo,\n customerCreatedDate: customerSinceDate,\n availableCredit: this.props.context.cultureFormatter.formatCurrency(\n this.getAvailableCredit(creditBalances),\n this.currencyCode\n ),\n showCreditLimit: customerInfo?.MandatoryCreditLimit || false,\n errorMessage: this.errorMessage,\n onToggleCreditSection: this.toggleCreditSection,\n creditSectionIsExpanded: this.state.isCreditSectionExpanded,\n orderTotal: this.props.context.cultureFormatter.formatCurrency(this.orderTotal, this.currencyCode),\n excessCredit: this.formattedExcessCredit,\n onRemovePayment: this.removePayment,\n appliedAmount:\n checkoutState && checkoutState.customerAccountAmount > 0\n ? this.props.context.cultureFormatter.formatCurrency(checkoutState.customerAccountAmount, this.currencyCode)\n : undefined,\n locale:\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : this.defaultLocale,\n skipOnChangeLogic: this.props.context.request.features?.skipCheckoutOnChangeLogic\n }),\n summaryView: getAccountPaymentFormSummaryMode({\n resources,\n amount: this.state.paymentAmount,\n appliedAmount:\n checkoutState && checkoutState.customerAccountAmount > 0\n ? this.props.context.cultureFormatter.formatCurrency(checkoutState.customerAccountAmount, this.currencyCode)\n : undefined\n })\n };\n\n return this.props.renderView(props) as React.ReactElement;\n }\n\n private readonly getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\n let availableCredit = 0;\n\n if (!creditBalances) {\n return 0;\n }\n\n if (creditBalances.InvoiceAccountCreditLimit === 0) {\n availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\n } else {\n availableCredit =\n creditBalances.InvoiceAccountCreditLimit -\n creditBalances.InvoiceAccountBalance -\n creditBalances.InvoiceAccountPendingBalance;\n }\n\n return availableCredit;\n };\n\n private readonly addPayment = async (): Promise => {\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n this.props.context.telemetry.error('checkout state not found');\n return;\n }\n\n this.setState({ handleSaveAndContinue: true });\n this._clearError();\n await checkoutState.updateCustomerAccountAmount({ newAmount: this.state.paymentAmount });\n this.props.context.telemetry.information('customer account payment amount updated');\n };\n\n private readonly toggleCreditSection = (): void => {\n this.setState({\n isCreditSectionExpanded: !this.state.isCreditSectionExpanded\n });\n };\n\n private readonly init = async (): Promise => {\n this.props.moduleState.init({\n onCancel: this.handleCancelOrSubmit,\n onSubmit: this.handleCancelOrSubmit,\n onEdit: this.onEdit\n });\n\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount !== 0) {\n this.props.moduleState.onReady();\n }\n };\n\n private readonly onChangePaymentAmount = (customizedAmt: string, paymentAmount: number, amountVariable: string): void => {\n this.setState({\n customizedAmt: customizedAmt,\n paymentAmount: paymentAmount,\n amountVariable: amountVariable\n });\n };\n\n private readonly updateMaxAmount = (newAmount: number): void => {\n // If the user has already set an amount, we should not override that in the UI because it will be confusing.\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount === 0) {\n this.setState({\n // We should never allow a negative amount.\n paymentAmount: Math.max(0, newAmount),\n customizedAmt: Math.max(0, newAmount).toString()\n });\n }\n };\n\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Payment section customer account payment onEdit is called.');\n\n this.props.moduleState.onUpdating();\n };\n\n private readonly handleCancelOrSubmit = () => {\n const checkoutState = this.props.data.checkout.result;\n if (checkoutState && checkoutState.customerAccountAmount > 0) {\n this.setState({ handleSaveAndContinue: false });\n this.props.telemetry.information('Payment section customer account payment onSubmit is called.');\n\n if (\n Msdyn365.isOboRequest(this.props.context.request) &&\n checkoutState?.customerAccountAmount !== checkoutState?.checkoutCart.cart.TotalAmount\n ) {\n this._setErrorMessage(this.props.resources.invalidAmountForOBOMessage);\n } else {\n this.props.moduleState.onReady();\n }\n } else if (\n checkoutState?.customerAccountAmount === 0 &&\n !this.state.handleSaveAndContinue &&\n this.props.config.isCheckoutCustomerAccountPaymentRequired\n ) {\n this._setErrorMessage(this.props.resources.customerAccountCreditErrorMessage);\n } else {\n this.props.telemetry.information('Payment section customer account payment onCancel is called.');\n\n // Skip the module\n this.props.moduleState.onSkip();\n }\n };\n\n private readonly removePayment = async (): Promise => {\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n this.props.context.telemetry.error('checkout state not found');\n return;\n }\n\n this.setState({\n paymentAmount: 0\n });\n\n this.onChangePaymentAmount('', NaN, '0');\n\n this._clearError();\n await checkoutState.updateCustomerAccountAmount({ newAmount: 0 });\n this.props.context.telemetry.information('customer account payment removed');\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 CheckoutCustomerAccountPayment;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Alert, Button, INodeProps, NodeTag, getLocaleBasedCustomizedPrice, ILocalizedPrice } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentResources } from '../checkout-customer-account-payment.props.autogenerated';\n\nexport interface IGetAccountPaymentEditViewFormInput {\n resources: ICheckoutCustomerAccountPaymentResources;\n customizedAmt: string;\n amount: number;\n amountVariable: string;\n maxAmount: number;\n customer: Customer | undefined;\n customerCreatedDate: string;\n availableCredit: string;\n showCreditLimit: boolean;\n errorMessage: string | undefined;\n creditSectionIsExpanded: boolean;\n orderTotal: string;\n excessCredit: string | undefined;\n appliedAmount: string | undefined;\n locale: string;\n onAddPayment(): Promise;\n onChangePaymentAmount(customizedAmt: string, paymentAmount: number, amountVariable: string): void;\n onToggleCreditSection(): void;\n onRemovePayment(): Promise;\n skipOnChangeLogic?: boolean;\n}\n\nexport interface IAccountPaymentEditViewForm {\n formProps: INodeProps;\n inputLabel: React.ReactNode;\n inputAmount: React.ReactNode;\n addPaymentButton: React.ReactNode;\n customerName: React.ReactNode;\n customerAccountNumber: React.ReactNode;\n customerSince: React.ReactNode;\n accountCredit: React.ReactNode;\n alert: React.ReactNode;\n accountDetails: React.ReactNode;\n appliedLine: React.ReactNode;\n bottomBorder: React.ReactNode;\n}\n\n/**\n * On Add Account Payment Function.\n * @param onAddPayment -On Add Payment Function.\n * @returns Call of Add payment function.\n */\nconst onAddAccountPayment = (onAddPayment: () => Promise) => async (event: React.SyntheticEvent): Promise => {\n event.preventDefault();\n await onAddPayment();\n};\n\n/**\n * On Change Amount Function.\n * @param onChangePaymentAmount -On Change Payment Amount Function.\n * @returns Call of Change payment Amount function.\n */\nconst onChangeAmountHandler = (\n customizedAmt: string,\n paymentAmount: number,\n amountVariable: string,\n locale: string,\n onChangePaymentAmount: (customizedAmt: string, paymentAmount: number, amountVariable: string) => void\n) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const customState: ILocalizedPrice = {\n customizedAmount: customizedAmt,\n amountVariable: amountVariable,\n paymentAmount: paymentAmount\n };\n const returnModifiedState = getLocaleBasedCustomizedPrice(value, customState, locale, keyCode);\n customizedAmt = returnModifiedState.customizedAmount as string;\n paymentAmount = returnModifiedState.paymentAmount as number;\n amountVariable = returnModifiedState.amountVariable as string;\n onChangePaymentAmount(customizedAmt, paymentAmount, amountVariable);\n keyCode = 0;\n};\n\nlet keyCode: number = 0;\nexport const getAccountPaymentFormEditMode = (options: IGetAccountPaymentEditViewFormInput): IAccountPaymentEditViewForm => {\n const {\n resources,\n onAddPayment,\n amount,\n customizedAmt,\n amountVariable,\n onChangePaymentAmount,\n maxAmount,\n customer,\n customerCreatedDate,\n availableCredit,\n showCreditLimit,\n errorMessage,\n onToggleCreditSection,\n creditSectionIsExpanded,\n orderTotal,\n excessCredit,\n onRemovePayment,\n appliedAmount,\n locale,\n skipOnChangeLogic\n } = options;\n\n const {\n addPaymentButtonLabel,\n inputAmountLabel,\n inputAmountAriaLabel,\n customerSinceLabel,\n accountCreditLabel,\n creditDetailsSectionLabel,\n orderTotalLabel,\n availableCreditLabel,\n creditExcessLabel,\n appliedCustomerAccountPaymentLabel,\n removeCustomerAccountPaymentLabel,\n accountCreditDetails\n } = resources;\n\n const inputLabel = (\n \n {inputAmountLabel}\n \n );\n\n const formProps = {\n className: 'ms-checkout-customer-account__form-edit',\n onSubmit: onAddAccountPayment(onAddPayment),\n tag: 'form' as NodeTag\n };\n\n const addPaymentButton = (\n maxAmount || amount < 0 || Number.isNaN(amount)}\n >\n {addPaymentButtonLabel}\n \n );\n\n const inputAmount = (\n onChangePaymentAmount(value, Number(value), value)\n : onChangeAmountHandler(customizedAmt, amount, amountVariable, locale, onChangePaymentAmount)\n }\n onKeyDown={event => (keyCode = event.which)}\n aria-label={inputAmountAriaLabel}\n aria-valuemin={0}\n aria-valuemax={maxAmount}\n aria-valuenow={amount}\n min={0}\n max={maxAmount}\n />\n );\n\n const customerName =
{customer?.Name}
;\n\n const customerAccountNumber =
#{customer?.AccountNumber}
;\n\n const customerSince = (\n
\n {customerSinceLabel}\n {customerCreatedDate}\n
\n );\n\n const accountCredit = (\n <>\n {accountCreditLabel}\n {showCreditLimit && {availableCredit}}\n \n \n );\n\n const accountDetails = creditSectionIsExpanded ? (\n
\n <>\n
\n \n \n {creditDetailsSectionLabel}\n \n
\n \n
\n {availableCreditLabel}\n {availableCredit}\n
\n
\n {orderTotalLabel}\n {orderTotal}\n
\n
\n {creditExcessLabel}\n {excessCredit ?? '0'}\n
\n
\n ) : (\n undefined\n );\n\n const alert = (\n \n {errorMessage}\n \n );\n\n const appliedLine = appliedAmount ? (\n
\n {appliedCustomerAccountPaymentLabel}\n {appliedAmount}\n \n {removeCustomerAccountPaymentLabel}\n \n
\n ) : (\n undefined\n );\n\n const bottomBorder =
;\n\n return {\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentResources } from '../checkout-customer-account-payment.props.autogenerated';\n\nexport interface IGetAccountPaymentSummaryViewFormInput {\n resources: ICheckoutCustomerAccountPaymentResources;\n amount: number;\n appliedAmount: string | undefined;\n}\n\nexport interface IAccountPaymentSummaryViewForm {\n formProps: INodeProps;\n label: React.ReactNode;\n paymentAmount: React.ReactNode;\n addPaymentButton: React.ReactNode;\n appliedLine: React.ReactNode;\n bottomBorder: React.ReactNode;\n alert?: React.ReactNode;\n paymentAmountInput?: React.ReactNode;\n}\n\nexport const getAccountPaymentFormSummaryMode = (options: IGetAccountPaymentSummaryViewFormInput): IAccountPaymentSummaryViewForm => {\n const { resources, amount, appliedAmount } = options;\n\n const { addPaymentButtonLabel, inputAmountSummaryLabel, appliedCustomerAccountPaymentLabel, inputAmountAriaLabel } = resources;\n\n const label = (\n \n );\n\n const formProps = {\n className: 'ms-checkout-customer-account__form-summary',\n tag: 'form' as NodeTag\n };\n\n const paymentAmount = ;\n\n const paymentAmountInput = (\n \n );\n\n const addPaymentButton = (\n \n );\n\n const appliedLine = appliedAmount ? (\n
\n {appliedCustomerAccountPaymentLabel}\n {appliedAmount}\n
\n ) : (\n undefined\n );\n\n const bottomBorder =
;\n\n return {\n formProps,\n label,\n paymentAmount,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n };\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} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport {\n GetDeliveryOptionsForCartLineAddressInput,\n getDeliveryOptionsForCartLineAddress,\n QueryResultSettingsProxy,\n StringExtensions,\n DeliveryOptionsCartLineAddress,\n ArrayExtensions\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 { 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';\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 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 }\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?.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\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 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 shippingAddress = this.props.data.checkout.result?.shippingAddress;\n const cartLinesForShipping = this.props.data.checkout.result?.cartLinesWithShippingAddress;\n\n if (this.canShip() && (shippingAddress || cartLinesForShipping)) {\n if (\n !this.props.data.checkout.result?.isPaymentVerificationRedirection ||\n this.isSelectDefaultOptionEnabled ||\n this.props.data.checkout.result?.isExpressCheckoutApplied\n ) {\n this.isMultipleAddressShippingEnabled\n ? await this.getGroupDeliveryOptions()\n : shippingAddress !== undefined\n ? await this.getDeliveryOptions(shippingAddress)\n : null;\n }\n\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n await this.getStoredDeliveryOptions();\n }\n\n if (\n this.isSelectDefaultOptionEnabled ||\n this.props.data.checkout.result?.isExpressCheckoutApplied ||\n this.isExpressPaymentAppliedInCartPage\n ) {\n this.onSubmit();\n }\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 console.log('existingCartLineSelectedDeliveryOption');\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = deliveryModeId;\n console.log('cartLineSelectedDeliveryOptions object if existing');\n } else {\n this.cartLineSelectedDeliveryOptions.push({ cartLineId, selectedDeliveryOption: deliveryModeId });\n console.log('cartLineSelectedDeliveryOptions object new line id');\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;\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 return (\n \n );\n })}\n
\n
\n );\n } else {\n return null;\n }\n })}\n
\n );\n };\n\n private readonly getGroupDeliveryOptions = async (): 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 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 inputData = new GetDeliveryOptionsForCartLineAddressInput(deliveryOptionFilter, shippingCartLines);\n const response = await getDeliveryOptionsForCartLineAddress(inputData, context.actionContext);\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 this.cartLineSelectedDeliveryOptions.push({\n cartLineId,\n selectedDeliveryOption\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\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 { 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 } = 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 && 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 * as React from 'react';\n\nexport interface IAddressDetailItem {\n isNewLine: boolean;\n isShowLabel: boolean;\n labelText: string;\n name: string;\n value: string;\n}\n\n/**\n * Address details item.\n * @param props - Configuration of the functional component.\n * @returns React functional component.\n */\nexport const AddressDetailItemFunctionComponent: React.FC = (props: IAddressDetailItem) => {\n const { labelText, value } = props;\n\n const className = `ms-checkout-delivery-options__cart-line-grp__item__header__address`;\n return (\n \n {labelText}\n {value}\n \n );\n};\n\nexport default AddressDetailItemFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport { CartLine } from '@msdyn365-commerce/retail-proxy';\nimport React, { useState } from 'react';\n\nexport interface ICheckoutCartLineDeliveryDateProps {\n className?: string;\n isDisabled?: boolean;\n minRangeValue?: string;\n maxRangeValue?: string;\n validationErrorForRange?: string;\n fallbackPattern?: string;\n ariaLabel?: string;\n telemetryContent?: ITelemetryContent;\n disclaimerText?: string;\n heading?: string;\n checkBoxLabel?: string;\n onChangeMinValue?: void;\n id?: string;\n cartLines?: CartLine[];\n onChange(event: React.ChangeEvent, cartLines: CartLine[]): void;\n}\n\nconst CheckoutCartLineDeliveryDate: React.FC = ({\n className,\n isDisabled,\n fallbackPattern,\n ariaLabel,\n telemetryContent,\n onChangeMinValue,\n checkBoxLabel,\n disclaimerText,\n heading,\n cartLines,\n onChange\n}) => {\n const [selectedDate, setSelectedDate] = useState('');\n const [isDateEnabled, setIsDateEnabled] = useState(false);\n // State to store today's date\n const [minDate, setMinDate] = useState('');\n\n // Update minDate state with today's date on component mount\n useState(() => {\n const today = new Date().toISOString().split('T')[0];\n setMinDate(today);\n });\n\n const handleDateChange = (event: React.FocusEvent) => {\n const selectedValue = event.target.value;\n // Check if the selected date is allowed\n if (selectedValue >= minDate) {\n setSelectedDate(selectedValue);\n console.log('Selected date is allowed.', selectedValue);\n } else {\n console.log('Selected date is not allowed.');\n }\n\n if (cartLines !== undefined) {\n onChange(event, cartLines);\n }\n };\n\n const handleCheckboxChange = () => {\n setIsDateEnabled(!isDateEnabled);\n };\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.DeliveryOptions);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n
\n
\n \n {checkBoxLabel}\n
\n {disclaimerText}\n
\n {heading}\n \n
\n
\n );\n};\n\nexport default CheckoutCartLineDeliveryDate;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICheckoutDeliveryOptionsGrpRadioButtonProps {\n className: string;\n isChecked: boolean;\n value?: string;\n ariaSetSize: number;\n ariaPosInSet: number;\n ariaLabel?: string;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.isChecked\n * @param root0.value\n * @param root0.ariaSetSize\n * @param root0.ariaPosInSet\n * @param root0.ariaLabel\n * @param root0.telemetryContent\n * @param root0.onChange\n * @extends {React.FC}\n */\nconst CheckoutDeliveryOptionsGrpRadioButton: React.FC = ({\n className,\n isChecked,\n value,\n ariaSetSize,\n ariaPosInSet,\n ariaLabel,\n telemetryContent,\n onChange\n}) => {\n if (!value) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.DeliveryOptions);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const deliveryOptionRef: React.RefObject = React.createRef();\n\n return (\n \n );\n};\n\nexport default CheckoutDeliveryOptionsGrpRadioButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { CartLine, DeliveryOption } from '@msdyn365-commerce/retail-proxy';\nimport get from 'lodash/get';\nimport { IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core';\nimport DescriptionComponent from './checkout-delivery-options.description';\nimport RadioButtonComponent from './checkout-cartLine-delivery-options-grp';\n\nexport interface ICheckoutCartLineDeliveryOptionsRadioButtonProps {\n className: string;\n moduleId: string;\n ariaSetSize: number;\n priceFree: string;\n ariaPosInSet: number;\n selectedItemId: string;\n cartLines: CartLine[];\n deliveryOptions: DeliveryOption[];\n typeName: string;\n context: ICoreContext>;\n ariaLabel?: string;\n value?: string;\n cartLineId?: string;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent, cartLines: CartLine[], cartLineId?: string): void;\n}\n\n/**\n * Represents a radio button component for checkout cart line delivery options.\n * @param {Object} props - The component props.\n * @param {boolean} props.isChecked - Indicates whether the radio button is checked.\n * @param {string} props.value - The value of the radio button.\n * @param {number} props.ariaSetSize - The total number of radio buttons in the set.\n * @param {number} props.ariaPosInSet - The position of the radio button in the set.\n * @param {string} props.ariaLabel - The ARIA label for the radio button.\n * @param {string} props.telemetryContent - The telemetry content for the radio button.\n * @param {Function} props.onChange - The event handler for when the radio button is changed.\n * @returns {JSX.Element} The rendered radio button component.\n */\nconst CheckoutCartLineDeliveryOptionsRadio: React.FC = ({\n className,\n moduleId,\n ariaSetSize,\n ariaPosInSet,\n ariaLabel,\n telemetryContent,\n deliveryOptions,\n priceFree,\n selectedItemId,\n typeName,\n context,\n cartLines,\n cartLineId,\n onChange\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.DeliveryOptions);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n console.log(attributes);\n const channelConfig = context.actionContext.requestContext.channel;\n const count = deliveryOptions.length;\n if (count === 0) {\n return null;\n }\n\n const changeCurrentDeliveryOption = React.useCallback(\n (event: React.ChangeEvent) => {\n onChange(event, cartLines, cartLineId);\n },\n [onChange, cartLines, cartLineId]\n );\n // const selectedDeliveryOptionItem = deliveryOptions.length > 0 ? deliveryOptions[0].Code || '' : ''; // By default, select first delivery\n const deliveryClassName = `${className}__radio-btn-grp`;\n const optionClassName = `${deliveryClassName}-opt`;\n const response = deliveryOptions.map((deliveryOption: DeliveryOption, index: number) => (\n
\n \n \n \n
\n ));\n\n return
{response}
;\n};\n\nexport default CheckoutCartLineDeliveryOptionsRadio;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nexport interface ICheckoutDeliveryOptionsDescriptionProps {\n description?: string;\n className?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.description\n * @extends {React.FC}\n */\nconst CheckoutDeliveryOptionsDescription: React.FC = ({ description, className }) => {\n if (!description) {\n return null;\n }\n\n const descClassName = StringExtensions.isNullOrEmpty(className) ? 'ms-checkout-delivery-options__description' : className;\n return {description};\n};\n\nexport default CheckoutDeliveryOptionsDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ICheckoutDeliveryOptionsErrorMessageProps {\n message?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.message\n * @extends {React.FC}\n */\nconst CheckoutDeliveryOptionsErrorMessage: React.FC = ({ message }) => {\n if (!message) {\n return null;\n }\n\n return

{message}

;\n};\n\nexport default CheckoutDeliveryOptionsErrorMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ICheckoutDeliveryOptionsErrorTitleProps {\n title?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.title\n * @extends {React.FC}\n */\nconst CheckoutDeliveryOptionsErrorTitle: React.FC = ({ title }) => {\n if (!title) {\n return null;\n }\n\n return

{title}

;\n};\n\nexport default CheckoutDeliveryOptionsErrorTitle;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICheckoutDeliveryOptionsRadioButtonProps {\n isChecked: boolean;\n value?: string;\n ariaSetSize: number;\n ariaPosInSet: number;\n ariaLabel?: string;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.isChecked\n * @param root0.value\n * @param root0.ariaSetSize\n * @param root0.ariaPosInSet\n * @param root0.ariaLabel\n * @param root0.telemetryContent\n * @param root0.onChange\n * @extends {React.FC}\n */\nconst CheckoutDeliveryOptionsRadioButton: React.FC = ({\n isChecked,\n value,\n ariaSetSize,\n ariaPosInSet,\n ariaLabel,\n telemetryContent,\n onChange\n}) => {\n if (!value) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.DeliveryOptions);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default CheckoutDeliveryOptionsRadioButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartLineItemComponent } from '@msdyn365-commerce/components';\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B, TelemetryEvent } from '@msdyn365-commerce/core';\nimport { CartLine, DeliveryOption, ProductCatalog, SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductUrlSync } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\nimport CheckoutCartLineDeliveryOptionsRadio from './checkout-cartLine-delivery-options-radio';\n\nexport interface ICheckoutDeliveryOptionsLineItemsProps {\n className?: string;\n moduleId: string;\n selectedItemId: string;\n context: Msdyn365.ICoreContext;\n typeName: string;\n cartLines: CartLine[];\n imageSettings: Msdyn365.IImageSettings;\n showShippingChargesForLineItems: boolean;\n resources: ICheckoutDeliveryOptionsLineItemsResources;\n deliveryOptions: DeliveryOption[];\n ariaSetSize: number;\n ariaPosInSet: number;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent, cartLines: CartLine[]): void;\n currencyCode?: string;\n products?: SimpleProduct[];\n catalogs?: ProductCatalog[];\n gridSettings?: Msdyn365.IGridSettings;\n cartLineId?: string;\n key?: string;\n}\n\nexport interface ICheckoutDeliveryOptionsLineItemsResources {\n quantityDisplayStringLabel: string;\n productDimensionTypeColor: string;\n productDimensionTypeSize: string;\n productDimensionTypeStyle: string;\n productDimensionTypeAmount: string;\n configString: string;\n discountStringText: string;\n shippingChargesText: string;\n priceFree: string;\n ariaLabel: string;\n changeButtonText?: string;\n deliveryMethodLabel?: string;\n}\n\nconst _getLineItemComponent = (\n context: Msdyn365.ICoreContext,\n cartLine: CartLine,\n product: SimpleProduct,\n moduleId: string,\n typeName: string,\n showShippingChargesForLineItems: boolean,\n imageSettings: Msdyn365.IImageSettings,\n resources: ICheckoutDeliveryOptionsLineItemsResources,\n currencyCode: string,\n catalogs?: ProductCatalog[],\n gridSettings?: Msdyn365.IGridSettings,\n cartLineId?: string\n): JSX.Element | undefined => {\n let productUrl = getProductUrlSync(product, context.actionContext, undefined);\n if (MsDyn365.isBrowser && isChannelTypeB2B(context.actionContext.requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${cartLine.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n\n return (\n \n );\n};\n\nconst _getProduct = (productId: number, products: SimpleProduct[]): SimpleProduct | undefined => {\n return products.find((_product: SimpleProduct) => {\n return productId === _product.RecordId;\n });\n};\n\nexport const GetLineItems: React.FC = (props: ICheckoutDeliveryOptionsLineItemsProps) => {\n const products = props.products;\n const lineClassName = props.className;\n const lineItemClassName = `${lineClassName}-item`;\n const currencyCode = props.currencyCode;\n const changeText = props.resources.changeButtonText;\n const [showDeliveryOption, setShowDeliveryOption] = useState(false);\n\n const handleClick = () => {\n setShowDeliveryOption(!showDeliveryOption);\n };\n if (!props.cartLines || props.cartLines.length === 0 || !products || products.length === 0 || currencyCode === undefined) {\n return null;\n }\n const deliveryCode = props.deliveryOptions.find(option => option.Code === props.selectedItemId);\n const payload = getPayloadObject(TelemetryEvent.UpdateInCart, props.telemetryContent!, changeText !== undefined ? changeText : '', '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payload);\n const response = props.cartLines.map(cartLine => {\n const product = cartLine.ProductId && _getProduct(cartLine.ProductId, products);\n if (!product) {\n return null;\n }\n return (\n
\n {_getLineItemComponent(\n props.context,\n cartLine,\n product,\n props.moduleId,\n props.typeName,\n props.showShippingChargesForLineItems,\n props.imageSettings,\n props.resources,\n currencyCode,\n props.catalogs,\n props.gridSettings\n )}\n
{props.resources.deliveryMethodLabel}
\n
\n {deliveryCode?.Description}\n \n
\n {showDeliveryOption ? (\n \n ) : null}\n
\n );\n });\n\n return
{response}
;\n};\nexport default GetLineItems;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport enum AddressItemDisplayType {\n Input = 'Input',\n Dropdown = 'Dropdown',\n Checkbox = 'Checkbox'\n}\n\nexport enum AddressValidationRuleType {\n Required = 'Required',\n Format = 'Format'\n}\n\nexport enum AddressItemType {\n Name = 1001,\n Phone = 1002,\n IsPrimary = 1003,\n AddressTypeValue = 1004,\n ZipCode = 1,\n City = 2,\n County = 3,\n State = 4,\n ThreeLetterISORegionName = 5,\n Street = 6,\n DistrictName = 7,\n StreetNumber = 8,\n BuildingCompliment = 9,\n Postbox = 10,\n House_RU = 21,\n Flat_RU = 22,\n CountryOKSMCode_RU = 23\n}\n\nexport interface IAddressItem {\n name: string;\n type: AddressItemType;\n label: string;\n maxLength: number;\n displayType: AddressItemDisplayType;\n validationRules?: IAddressValidationRule[];\n isNewLine: boolean;\n}\n\nexport interface IAddressValidationRule {\n type: AddressValidationRuleType;\n regEx: string;\n message: string;\n}\n\nexport interface IAddressDropdownsData {\n [index: string]: { key?: string | number; value?: string }[];\n}\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 { IModuleStateProps, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport classname from 'classnames';\n\nimport { reaction } from 'mobx';\nimport { ICheckoutExpressPaymentContainerData } from './checkout-express-payment-container.data';\nimport {\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerHeadingData\n} from './checkout-express-payment-container.props.autogenerated';\nimport { WaitingComponent } from '../../common/waiting';\n\n/**\n * ICheckoutExpressPaymentContainerModuleProps interface.\n */\nexport interface ICheckoutExpressPaymentContainerModuleProps\n extends ICheckoutExpressPaymentContainerProps,\n IModuleStateProps {}\n\nexport interface ICheckoutExpressPaymentContainerViewProps\n extends ICheckoutExpressPaymentContainerProps<{}>,\n ICheckoutExpressPaymentContainerState {\n checkoutPlainContainerProps: IModuleProps;\n items: React.ReactNode[];\n isReady?: boolean;\n waiting?: React.ReactNode;\n title?: React.ReactNode;\n headerProps: INodeProps;\n}\n\n/**\n * Checkout Express Payment Container State.\n */\nexport interface ICheckoutExpressPaymentContainerState {\n isReady?: boolean;\n shouldHideExpressPaymentContainer?: boolean;\n}\n\n/**\n *\n * CheckoutExpressPaymentContainer component\n * @extends {React.PureComponent>}\n */\n@observer\nexport class CheckoutExpressPaymentContainer extends React.PureComponent<\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerState\n> {\n private readonly moduleClassName: string = 'ms-checkout-express-section-container';\n\n public constructor(props: ICheckoutExpressPaymentContainerModuleProps) {\n super(props);\n this.state = {\n isReady: false,\n shouldHideExpressPaymentContainer: this.props.data.checkout.result?.shippingAddressFromExpressCheckout ? true : false\n };\n }\n\n public componentDidMount(): void {\n reaction(\n () => this.props.data.checkout.result?.isExpressPaymentModulesReady,\n () => {\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n } else {\n let isReady = true;\n\n for (const item of items) {\n // @ts-ignore\n if (item.key.includes('checkout-express')) {\n // @ts-ignore\n const extensionPropertyKey = `is${item.props.config.paymentTenderType}ExpressModuleReady`;\n\n const isModuleReady =\n this.props.data.checkout.result?.isExpressPaymentModulesReady?.find(\n property => property.Key === extensionPropertyKey\n )?.Value?.BooleanValue ?? false;\n isReady = isReady && isModuleReady;\n }\n }\n this.setState({ isReady });\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n isExpressCheckoutApplied => {\n this.setState({ shouldHideExpressPaymentContainer: isExpressCheckoutApplied });\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { checkoutExpressPaymentContainerHeading },\n resources: { checkoutExpressPaymentSectionLoadingMessage },\n data: { checkout }\n } = this.props;\n\n if (!checkout.result || checkout.result?.isExpressCheckoutApplied || checkout.result?.isPaymentVerificationRedirection) {\n this.props.context.telemetry.information('Other payment is applied, checkout express payment container module wont render');\n return null;\n }\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.ExpressPayment === 0) {\n this.props.context.telemetry.information('isOBORequest is enabled, Checkout express payment container module wont render');\n return null;\n }\n\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n return null;\n }\n\n const shouldHideExpressPaymentContainerClassName: string = this.state.shouldHideExpressPaymentContainer ? 'hide' : '';\n\n const moduleClassName = classname(\n 'ms-checkout-express-payment-container',\n this.props.config.className,\n shouldHideExpressPaymentContainerClassName\n );\n\n const viewProps: ICheckoutExpressPaymentContainerViewProps = {\n ...this.props,\n\n checkoutPlainContainerProps: {\n moduleProps: this.props,\n className: moduleClassName\n },\n items: items,\n isReady: this.state.isReady,\n waiting: ,\n title: checkoutExpressPaymentContainerHeading && this._renderMsdyn365Text(checkoutExpressPaymentContainerHeading),\n headerProps: { className: 'ms-checkout-express-payment-container__head' }\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly _getItems = (): React.ReactNode[] => {\n const { slots } = this.props;\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\n };\n\n /**\n * Renders heading.\n * @param checkoutExpressPaymentContainerHeading - The checkout express container heading.\n * @returns React node.\n */\n private _renderMsdyn365Text(checkoutExpressPaymentContainerHeading: ICheckoutExpressPaymentContainerHeadingData): 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 private _handleCheckoutExpressContainerHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.checkoutExpressPaymentContainerHeading!.text = event.target.value);\n}\n\nexport default CheckoutExpressPaymentContainer;\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 { ICheckoutExpressPaymentContainerViewProps } from './checkout-express-payment-container';\n\ninterface IContainerItemsComponent {\n isLoadingClassName: string;\n items: React.ReactNode[];\n}\n\nconst ContainerItemsComponent: React.FC = ({ isLoadingClassName, items }) => (\n
{items}
\n);\n\nconst CheckoutExpressPaymentContainerView: React.FC = ({\n checkoutPlainContainerProps,\n items,\n isReady,\n waiting,\n title,\n headerProps\n}) => {\n const isLoadingClassName: string = isReady ? 'showContainer' : 'notShowContainer';\n return (\n \n {title}\n {!isReady && waiting}\n \n \n );\n};\n\nexport default CheckoutExpressPaymentContainerView;\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 MsDyn365, { AsyncResultStatus, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n Address,\n CardPaymentAcceptResult,\n CardType,\n CartsDataActions,\n StoreOperationsDataActions,\n TokenizedPaymentCard\n} from '@msdyn365-commerce/retail-proxy';\nimport { withModuleState, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { get, isEmpty } from 'lodash';\nimport { action, computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { AsyncResultStatusCode, GetCheckoutReturnUrl, IExpressPaymentDetails } from '../../common';\nimport { AddPaymentFormComponent } from '../../common/add-payment-form';\nimport { ErrorComponent } from '../../common/error';\nimport { Iframe } from '../../common/iframe';\nimport { PaymentConnectorPostMessageType } from '../../common/payment-instrument-message';\nimport { WaitingComponent } from '../../common/waiting';\nimport getCardPaymentAcceptPointAction, { GetCardPaymentAcceptPointInput } from './actions/get-card-payment-accept-point';\nimport { ICheckoutExpressData } from './checkout-express.data';\nimport { ICheckoutExpressProps, IHeadingData } from './checkout-express.props.autogenerated';\n\n/**\n * Interface for CheckOutExpress Module Props.\n */\nexport interface ICheckoutExpressModuleProps extends ICheckoutExpressProps {}\n\n/**\n * Checkout Express State.\n */\ninterface ICheckoutExpressState {\n errorMessage?: string;\n isFetchingPaymentConnector?: boolean;\n paymentConnectorHeight?: number;\n isPaymentVerificationRequired?: boolean;\n paymentVerificationPostData?: string;\n isPaymentProcessing?: boolean;\n isOverlayModal?: boolean;\n terminalError?: Error;\n paymentConnectorId?: string;\n shouldHideExpressCheckout?: boolean;\n}\n\n/**\n * Checkout Express Overlay Modal.\n */\nexport interface ICheckoutExpressOverlayModal {\n modal: INodeProps;\n}\n\n/**\n * Checkout Express View Props.\n */\nexport interface ICheckoutExpressViewProps extends ICheckoutExpressProps<{}>, ICheckoutExpressState {\n className?: string;\n checkoutExpress: IModuleProps;\n waiting?: React.ReactNode;\n alert?: React.ReactNode;\n addPaymentForm?: React.ReactNode;\n overlayModal?: ICheckoutExpressOverlayModal;\n title?: React.ReactNode;\n shouldHideExpressCheckout?: boolean;\n}\n\nconst zeroAmount = 0;\nconst expressPaymentSectionClassName = 'msc-express-payment-container';\nconst expressPaymentSectionInCartPageClassName = 'msc-express-payment-container-in-cart-page';\nconst expressPaymentSectionTextBlockClassName = 'msc-express-payment-textblock';\n\n/**\n *\n * CheckoutExpress component.\n * @extends {React.Component>}\n */\n// @ts-expect-error - existing code.\n@withModuleState\n@observer\nexport class CheckoutExpress extends React.PureComponent {\n private readonly moduleClassName: string = 'ms-checkout-express';\n\n private readonly iframeRef: React.RefObject