{"version":3,"file":"static/js/5.112b5dae52cc54f8572b.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/quick-order-grid/components/add-to-list/add-to-cart-selected-items.tsx?de21","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-actions.tsx?ca97","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-drawer.tsx?8701","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-form.tsx?5cbb","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-product.ts?187e","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-table/components/quick-order-grid-table-header-component.tsx?69b3","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-table/components/quick-order-grid-table-row-component.tsx?cd92","webpack://Citta2.0/./src/modules/quick-order-grid/components/quick-order-grid-table/quick-order-grid-table-component.tsx?7cbc","webpack://Citta2.0/./src/modules/quick-order-grid/quick-order-grid.tsx?fddf","webpack://Citta2.0/./src/modules/quick-order-grid/components/utilities.ts?1806","webpack://Citta2.0/./src/modules/quick-order-grid/quick-order-grid.view.tsx?f941","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 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 customerName =
{customer?.Name}
;\r\n\r\n const customerAccountNumber =
#{customer?.AccountNumber}
;\r\n\r\n const customerSince = (\r\n
\r\n {customerSinceLabel}\r\n {customerCreatedDate}\r\n
\r\n );\r\n\r\n const accountCredit = (\r\n <>\r\n {accountCreditLabel}\r\n {showCreditLimit && {availableCredit}}\r\n \r\n \r\n );\r\n\r\n const accountDetails = creditSectionIsExpanded ? (\r\n
\r\n <>\r\n
\r\n \r\n \r\n {creditDetailsSectionLabel}\r\n \r\n
\r\n \r\n
\r\n {availableCreditLabel}\r\n {availableCredit}\r\n
\r\n
\r\n {orderTotalLabel}\r\n {orderTotal}\r\n
\r\n
\r\n {creditExcessLabel}\r\n {excessCredit ?? '0'}\r\n
\r\n
\r\n ) : (\r\n undefined\r\n );\r\n\r\n const alert = (\r\n \r\n {errorMessage}\r\n \r\n );\r\n\r\n const appliedLine = appliedAmount ? (\r\n
\r\n {appliedCustomerAccountPaymentLabel}\r\n {appliedAmount}\r\n \r\n {removeCustomerAccountPaymentLabel}\r\n \r\n
\r\n ) : (\r\n undefined\r\n );\r\n\r\n const bottomBorder =
;\r\n\r\n return {\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n addPaymentButton,\r\n customerName,\r\n customerAccountNumber,\r\n customerSince,\r\n accountCredit,\r\n alert,\r\n accountDetails,\r\n appliedLine,\r\n 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 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\r\n if (!checkoutState) {\r\n this.props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\r\n\r\n this._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\r\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount !== 0) {\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private readonly onChangePaymentAmount = (customizedAmt: string, paymentAmount: number, amountVariable: string): void => {\r\n this.setState({\r\n customizedAmt: customizedAmt,\r\n paymentAmount: paymentAmount,\r\n amountVariable: amountVariable\r\n });\r\n };\r\n\r\n private readonly updateMaxAmount = (newAmount: number): void => {\r\n // If the user has already set an amount, we should not override that in the UI because it will be confusing.\r\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount === 0) {\r\n this.setState({\r\n // We should never allow a negative amount.\r\n paymentAmount: Math.max(0, newAmount),\r\n customizedAmt: Math.max(0, newAmount).toString()\r\n });\r\n }\r\n };\r\n\r\n private readonly onEdit = (): void => {\r\n this.props.telemetry.information('Payment section customer account payment onEdit is called.');\r\n\r\n this.props.moduleState.onUpdating();\r\n };\r\n\r\n private readonly handleCancelOrSubmit = () => {\r\n const checkoutState = this.props.data.checkout.result;\r\n if (checkoutState && checkoutState.customerAccountAmount > 0) {\r\n this.props.telemetry.information('Payment section customer account payment onSubmit is called.');\r\n\r\n if (\r\n Msdyn365.isOboRequest(this.props.context.request) &&\r\n checkoutState?.customerAccountAmount !== checkoutState?.checkoutCart.cart.TotalAmount\r\n ) {\r\n this._setErrorMessage(this.props.resources.invalidAmountForOBOMessage);\r\n } else {\r\n this.props.moduleState.onReady();\r\n }\r\n } else {\r\n this.props.telemetry.information('Payment section customer account payment onCancel is called.');\r\n\r\n // Skip the module\r\n this.props.moduleState.onSkip();\r\n }\r\n };\r\n\r\n private readonly removePayment = async (): Promise => {\r\n const checkoutState = this.props.data.checkout.result;\r\n\r\n if (!checkoutState) {\r\n this.props.context.telemetry.error('checkout state not found');\r\n return;\r\n }\r\n\r\n // this.setState({\r\n // paymentAmount: 0\r\n // });\r\n\r\n // this.onChangePaymentAmount('', NaN, '0');\r\n\r\n this._clearError();\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: 0 });\r\n this.props.context.telemetry.information('customer account payment removed');\r\n };\r\n\r\n @action\r\n private readonly _setErrorMessage = (errorMessage: string): void => {\r\n this.props.telemetry.error(errorMessage);\r\n this.props.moduleState.setHasError(true);\r\n this.props.moduleState.onUpdating();\r\n this.setState({\r\n errorMessage\r\n });\r\n };\r\n\r\n private readonly _clearError = (): void => {\r\n this.props.moduleState.setHasError(false);\r\n this.setState({\r\n errorMessage: ''\r\n });\r\n };\r\n}\r\n\r\nexport default CheckoutCustomerAccountPayment;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE 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 {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\nexport const EditForm: React.FC = ({\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n addPaymentButton,\r\n customerName,\r\n customerAccountNumber,\r\n customerSince,\r\n accountCredit,\r\n alert,\r\n accountDetails,\r\n appliedLine,\r\n 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 {/* {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 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\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 },\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