{"version":3,"file":"static/js/3.f47e75854c1f2c0e8d01.chunk.js","mappings":"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","sources":["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-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"],"sourcesContent":["/*!\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 const requestContext = this.props.context.actionContext.requestContext;\n if (requestContext.features && requestContext.features.enable_checkout_race_condition_hot_fix) {\n if (this.canShip() && (shippingAddress || cartLinesForShipping)) {\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n await this.getStoredDeliveryOptions();\n } else {\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 (\n this.isSelectDefaultOptionEnabled ||\n this.props.data.checkout.result?.isExpressCheckoutApplied ||\n this.isExpressPaymentAppliedInCartPage\n ) {\n this.onSubmit();\n }\n }\n }\n } else {\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\n private readonly onDeliveryOptionChange = (event: React.ChangeEvent) => {\n const deliveryModeId = event.currentTarget.value;\n this.selectedItemId = deliveryModeId;\n };\n\n private readonly onCartLineDeliveryOptionChange = (\n event: React.ChangeEvent,\n cartLines: CartLine[],\n cartLineId?: string\n ) => {\n const deliveryModeId = event.currentTarget.value;\n if (cartLineId !== undefined) {\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = deliveryModeId;\n } else {\n this.cartLineSelectedDeliveryOptions.push({ cartLineId, selectedDeliveryOption: deliveryModeId });\n }\n return;\n }\n\n cartLines.forEach(cartLine => {\n if (!cartLine.LineId) {\n return;\n }\n const cartLineId = cartLine?.LineId.toString();\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.selectedDeliveryOption = deliveryModeId;\n } else {\n this.cartLineSelectedDeliveryOptions.push({ cartLineId, selectedDeliveryOption: deliveryModeId });\n }\n });\n };\n\n private readonly onCartLineRequestDeliveryDateChange = (event: React.ChangeEvent, cartLines: CartLine[]) => {\n const deliveryDate = event.currentTarget.value;\n cartLines.forEach(cartLine => {\n if (!cartLine.LineId) {\n return;\n }\n const cartLineId = cartLine?.LineId.toString();\n const existingCartLineSelectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLineId\n );\n if (existingCartLineSelectedDeliveryOption) {\n existingCartLineSelectedDeliveryOption.requestDeliveryDate = deliveryDate;\n } else {\n const deliveryModeId = cartLine.DeliveryMode !== undefined ? cartLine.DeliveryMode : '';\n this.cartLineSelectedDeliveryOptions.push({\n cartLineId,\n selectedDeliveryOption: deliveryModeId,\n requestDeliveryDate: deliveryDate\n });\n }\n });\n };\n\n private readonly onReady = () => {\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\n this.props.moduleState.onReady();\n }\n };\n\n private readonly onUpdating = () => {\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\n this.props.moduleState.onUpdating();\n }\n };\n\n private readonly onPending = () => {\n if (!this.isSelectDefaultOptionEnabled) {\n this.props.moduleState.onPending();\n }\n };\n\n private readonly getCheckoutCartLineGroupDeliveryOptions = (): React.ReactNode => {\n const { resources, config } = this.props;\n const shippingCartLines = this.getCartLinesForShipping();\n if (!ArrayExtensions.hasElements(shippingCartLines) || !ArrayExtensions.hasElements(this.groupDeliveryOptions)) {\n return null;\n }\n const imageSettings = this.getImageSettings(config.imageSettings);\n const requestDeliveryDateEnabled = config.enableRequestDeliveryDate === true && this.isMultipleAddressShippingEnabled === true;\n return (\n
\n {this.groupDeliveryOptions.map((groupDeliveryOption: DeliveryOptionsCartLineAddress, index) => {\n const cartLineId = groupDeliveryOption.cartLineIds !== undefined ? groupDeliveryOption.cartLineIds[0] : '';\n const cartLine1 = shippingCartLines.find(cartLine => cartLineId === cartLine?.LineId?.toString() ?? '');\n const cartLine = shippingCartLines.filter(\n cartLine => groupDeliveryOption && (cartLineId === cartLine?.LineId?.toString() ?? '')\n );\n if (groupDeliveryOption !== undefined) {\n const selectedDeliveryOption = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption => cartLineSelectedDeliveryOption.cartLineId === cartLine[0].LineId\n )?.selectedDeliveryOption;\n return (\n
\n
\n \n
\n
\n
\n \n {resources.cartLineGroupDeliveryOptionsLabel}\n \n \n {resources.cartLineGroupDeliveryOptionsText}\n \n {requestDeliveryDateEnabled ? (\n \n ) : null}\n \n
\n {groupDeliveryOption.cartLineIds?.map(cartLineId => {\n const cartLine1 = shippingCartLines.find(\n cartLine => cartLineId === cartLine?.LineId?.toString() ?? ''\n );\n const selectedDeliveryOption1 = this.cartLineSelectedDeliveryOptions.find(\n cartLineSelectedDeliveryOption =>\n cartLineSelectedDeliveryOption.cartLineId === cartLine1?.LineId\n )?.selectedDeliveryOption;\n return (\n \n );\n })}\n
\n
\n );\n } else {\n return null;\n }\n })}\n
\n );\n };\n\n private readonly getGroupDeliveryOptions = async (): 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 groupName: string;\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 groupName,\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 groupName: string; // Add groupName prop\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 groupName, // Destructure groupName prop\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\nimport { createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport { LoyaltyPointRedemptionEstimate, LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { GetLoyaltyTransactionEstimationInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Drawer, Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classnames from 'classnames';\nimport { action, computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutLoyaltyData } from './checkout-loyalty.data';\nimport { ICheckoutLoyaltyProps } from './checkout-loyalty.props.autogenerated';\nimport InputComponent from './components/checkout-loyalty-input';\nimport LabelComponent from './components/checkout-loyalty-label';\nimport TextComponent from './components/checkout-loyalty-text';\nimport { ErrorComponent } from '../../common/error';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport interface ICheckoutLoyaltyState {\n dollarsApplied: number;\n isFetchingLoyaltyCard: boolean;\n errorMessage?: string;\n}\n\nexport interface ICheckoutLoyaltyModuleProps extends ICheckoutLoyaltyProps, IModuleStateProps {}\n\nexport interface ICheckoutLoyaltyViewState {\n isShowLoyalty: boolean;\n isShowAddLoyalty: boolean;\n}\n\nexport interface ICheckoutLoyaltyShow {\n heading: React.ReactNode;\n coveredAmountText: React.ReactNode;\n amount: React.ReactNode;\n}\n\nexport interface ICheckoutLoyaltyRewardPoint {\n checkoutLoyaltyRewardPoint: INodeProps;\n key: string;\n title: React.ReactNode;\n availablePointsText: React.ReactNode;\n activePoints: React.ReactNode;\n expiringPointsText: React.ReactNode;\n expiringPoints: React.ReactNode;\n}\n\nexport interface ICheckoutLoyaltyAdd {\n heading: React.ReactNode;\n cardNumber: React.ReactNode;\n drawer: INodeProps;\n rewardPoints: ICheckoutLoyaltyRewardPoint[];\n loyaltyAmountContainer: INodeProps;\n appliedLoyaltyAmountContainer: INodeProps;\n loyaltyAmountLabel: React.ReactNode;\n loyaltyAmountInput: React.ReactNode;\n loyaltyAmountApplyButton: React.ReactNode;\n showAppliedAmount: boolean;\n loyaltyAmountAppliedText: React.ReactNode;\n loyaltyAmountAppliedPrice: React.ReactNode;\n loyaltyAmountRemoveButton: React.ReactNode;\n}\n\nexport interface ICheckoutLoyaltyViewProps extends ICheckoutLoyaltyModuleProps {\n checkoutLoyalty: IModuleProps;\n viewState: ICheckoutLoyaltyViewState;\n showLoyalty: ICheckoutLoyaltyShow;\n addLoyalty: ICheckoutLoyaltyAdd;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n}\n\n/**\n *\n * CheckoutLoyalty component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n\n@withModuleState\n@observer\nclass CheckoutLoyalty extends React.Component {\n private readonly _dialogToggleRef: React.RefObject | undefined;\n\n private readonly moduleClassName: string = 'ms-checkout-loyalty';\n\n private readonly _defaultLoyaltyPoints: number = 0;\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n constructor(props: ICheckoutLoyaltyModuleProps) {\n super(props);\n this._dialogToggleRef = React.createRef();\n this._applyLoyaltyPoints = this._applyLoyaltyPoints.bind(this);\n this._removeLoyaltyPoints = this._removeLoyaltyPoints.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this.state = { dollarsApplied: this.maxDollars, isFetchingLoyaltyCard: false };\n }\n\n @computed get shouldPayLoyalty(): boolean {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n if (!cart) {\n return false;\n }\n\n // Use loyalty when cart is not full of free items\n const amountDue = cart.TotalAmount || 0;\n return amountDue > 0;\n }\n\n @computed get isDataReady(): boolean {\n return (\n (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS' &&\n (this.props.data.loyaltyCard && this.props.data.loyaltyCard.status) !== 'LOADING' &&\n (this.props.data.loyaltyTransactionEstimation && this.props.data.loyaltyTransactionEstimation.status) !== 'LOADING'\n );\n }\n\n @computed get maxDollars(): number {\n return this.props.data.loyaltyTransactionEstimation.result &&\n this.props.data.loyaltyTransactionEstimation.result.MaxCurrencyValueOfLoyaltyPoints\n ? this.props.data.loyaltyTransactionEstimation.result.MaxCurrencyValueOfLoyaltyPoints\n : 0;\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n await this.init();\n }\n );\n\n reaction(\n () => this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart,\n async () => {\n this._updateEstimate();\n }\n );\n\n reaction(\n () => this.props.data.loyaltyCard.result,\n async () => {\n this._updateLoyalty();\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (checkoutError && checkoutError.errorLocation === ErrorLocation.CheckoutLoyalty && checkoutError.errorMessage) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutLoyalty) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutLoyaltyModuleProps, nextState: ICheckoutLoyaltyState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n renderView,\n moduleState: { hasError, isReady }\n } = this.props;\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.Loyalty === 0) {\n this.props.context.telemetry.information('isOBORequest is enabled, Checkout loyalty module wont render');\n return null;\n }\n\n if (\n this.props.data.loyaltyCard &&\n this.props.data.loyaltyCard.result &&\n this.props.data.loyaltyCard.result.CardNumber &&\n this.shouldPayLoyalty\n ) {\n const loyaltyCard = this.props.data.loyaltyCard.result;\n const checkoutState = this.props.data.checkout.result;\n let isShowLoyalty = false;\n const errorMessage = this.state.errorMessage;\n\n if (isReady) {\n if (!checkoutState || checkoutState.loyaltyAmount === 0) {\n return null;\n }\n isShowLoyalty = true;\n }\n const channelConfig = this.props.context.request.channel;\n const viewProps = {\n ...this.props,\n checkoutErrorRef: this.checkoutErrorRef,\n viewState: {\n isShowLoyalty,\n isShowAddLoyalty: !isReady && !config.disableAddLoyaltyComponent\n },\n alert: hasError && errorMessage && ,\n checkoutLoyalty: {\n moduleProps: this.props,\n className: classnames(\n this.moduleClassName,\n { [`${this.moduleClassName}__applied`]: isShowLoyalty },\n this.props.config.className\n )\n },\n showLoyalty: {\n heading: ,\n coveredAmountText: (\n \n ),\n amount: (\n \n )\n },\n addLoyalty: {\n heading: ,\n drawer: {\n tag: Drawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: this._drawerHeader(),\n openGlyph: `${this.moduleClassName}__drawer-open`,\n closeGlyph: `${this.moduleClassName}__drawer-close`,\n glyphPlacement: 'end'\n },\n cardNumber: ,\n rewardPoints:\n loyaltyCard.RewardPoints &&\n loyaltyCard.RewardPoints.map((points, index) => {\n return this._renderPointSection(points, resources.availablePointsLabel, resources.expiringLoyaltyPointsLabel);\n }),\n loyaltyAmountContainer: {\n className: `${this.moduleClassName}__amount`\n },\n appliedLoyaltyAmountContainer: {\n className: `${this.moduleClassName}__applied-amount`\n },\n loyaltyAmountLabel: (\n \n ),\n loyaltyAmountInput: (\n \n ),\n loyaltyAmountApplyButton: (\n this.maxDollars ||\n this.state.dollarsApplied <= 0 ||\n isNaN(this.state.dollarsApplied) ||\n this.state.isFetchingLoyaltyCard\n }\n >\n {this.props.resources.applyCheckoutLoyaltyPaymentText}\n \n ),\n showAppliedAmount: checkoutState && checkoutState.loyaltyAmount > 0,\n loyaltyAmountAppliedText: (\n \n ),\n loyaltyAmountAppliedPrice: (\n \n ),\n loyaltyAmountRemoveButton: (\n \n {this.props.resources.removeCheckoutLoyaltyPaymentText}\n \n )\n }\n };\n\n return renderView(viewProps) as React.ReactElement;\n }\n this.props.context.telemetry.error('Checkout loyalty content is empty, module wont render');\n return null;\n }\n\n private _drawerHeader(): JSX.Element {\n const channelConfig = this.props.context.request.channel;\n return (\n <>\n

{this.props.resources.loyaltyCoveredAmountText}

\n \n \n );\n }\n\n private _renderPointSection(\n point: LoyaltyRewardPoint,\n loyaltyCoveredAmountText: string,\n expiringLoyaltyPointsLabel: string\n ): ICheckoutLoyaltyRewardPoint {\n return {\n key: point.RewardPointId || '',\n checkoutLoyaltyRewardPoint: {\n className: `${this.moduleClassName}__program`\n },\n title: ,\n availablePointsText: ,\n activePoints: (\n \n ),\n expiringPointsText: ,\n expiringPoints: (\n \n )\n };\n }\n\n private readonly init = async (): Promise => {\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n isRequired: false,\n ...(!this.isEnabled() && { status: 'disabled' })\n });\n\n const savedLoyaltyAmount = this.props.data.checkout.result?.loyaltyAmount;\n if (savedLoyaltyAmount) {\n this.props.moduleState.onReady();\n } else if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n this.props.moduleState.onSkip();\n } else if (\n this.props.data.loyaltyCard.result &&\n this.props.data.checkout.result &&\n this.props.data.loyaltyCard.result.CardNumber !== this.props.data.checkout.result.checkoutCart.cart.LoyaltyCardId\n ) {\n this.props.data.checkout.result.checkoutCart\n .updateLoyaltyCardId({ loyaltyCardNumber: this.props.data.loyaltyCard.result.CardNumber })\n .catch(error => {\n if (this.context.telemetry) {\n this.context.telemetry.warning(error);\n this.context.telemetry.debug('Unable to update the loyalty card');\n }\n });\n }\n };\n\n private readonly onEdit = () => {\n this.props.telemetry.information('Payment section loyalty onEdit is called.');\n\n this.props.moduleState.onUpdating();\n };\n\n private readonly onCancel = () => {\n this.props.telemetry.information('Payment section loyalty onCancel is called.');\n\n this.handleCancelOrSubmit();\n };\n\n private readonly onSubmit = () => {\n this.props.telemetry.information('Payment section loyalty onSubmit is called.');\n\n this.handleCancelOrSubmit();\n };\n\n private readonly handleCancelOrSubmit = () => {\n const checkoutState = this.props.data.checkout.result;\n if (checkoutState && checkoutState.loyaltyAmount > 0) {\n // Show summary screen\n this.props.moduleState.onReady();\n } else {\n // Skip the module\n this.props.moduleState.onSkip();\n }\n };\n\n private readonly isEnabled = () => {\n return (\n this.props.context.request.user.isAuthenticated &&\n this.props.data.loyaltyCard.result &&\n this.props.data.loyaltyCard.result.CardNumber &&\n this.shouldPayLoyalty\n );\n };\n\n private async _applyLoyaltyPoints(): Promise {\n this.props.telemetry.information('Payment section loyalty apply button onClick is called.');\n\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n return;\n }\n\n this._clearError();\n await checkoutState.updateLoyaltyAmount({ newAmount: Number.parseFloat(this.state.dollarsApplied.toString()) });\n this.setState({\n isFetchingLoyaltyCard: true\n });\n }\n\n private async _removeLoyaltyPoints(): Promise {\n this.props.telemetry.information('Payment section loyalty remove button onClick is called.');\n\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n return;\n }\n\n this._clearError();\n await checkoutState.updateLoyaltyAmount({ newAmount: 0 });\n this.setState({\n dollarsApplied: 0\n });\n }\n\n private _onInputChange(event: React.ChangeEvent): void {\n const value = event.currentTarget.value;\n this.setState({ dollarsApplied: value.length > 0 ? Number(value) : Number.parseFloat(value), isFetchingLoyaltyCard: false });\n }\n\n private _onBlur(event: React.FocusEvent): void {\n const num = Number.parseFloat(event.currentTarget.value).toFixed(2);\n const element = document.getElementById(`${this.props.id}-label`) as HTMLInputElement;\n if (element && num) {\n element.value = num;\n this.setState({ dollarsApplied: Number.parseFloat(num) });\n }\n }\n\n private _updateLoyalty(): void {\n if (this.props.moduleState.isDisabled && this.isEnabled()) {\n this._updateEstimate();\n this.props.moduleState.onUpdating();\n }\n }\n\n private _updateEstimate(): void {\n const card = this.props.data.loyaltyCard.result;\n const checkout = this.props.data.checkout.result;\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n const channelConfig = this.props.context.request.channel;\n if (card && card.CardNumber && cart && channelConfig) {\n const currencyCode = channelConfig.Currency || '';\n const loyalPointsRequest = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(cart.Id, card.CardNumber, currencyCode);\n\n // @ts-expect-error\n // Due to bug 23214358, this is getting improperly cached. Need to turn on cache bypass for now to work around issue\n loyalPointsRequest._query.options.bypassCache = 'get';\n\n callActionOrExecute(loyalPointsRequest, this.props.context.actionContext)\n .then(async points => {\n this.props.context.actionContext.update(\n new GetLoyaltyTransactionEstimationInput(this.props.context.request.apiSettings),\n points\n );\n const newMaxPoints = points.MaxCurrencyValueOfLoyaltyPoints ?? this._defaultLoyaltyPoints;\n\n // If points are already applied, ensure you don't apply more points than max\n if (checkout && checkout.loyaltyAmount > newMaxPoints) {\n await checkout.updateLoyaltyAmount({ newAmount: newMaxPoints });\n }\n\n this.setState({ dollarsApplied: newMaxPoints, isFetchingLoyaltyCard: false });\n })\n .catch(error => {\n this.props.context.actionContext.telemetry.exception(error);\n this.props.context.actionContext.telemetry.debug('Error getting Loyalty Point Redemption Estimate');\n });\n }\n }\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n errorMessage\n });\n };\n\n private readonly _clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.setState({\n errorMessage: ''\n });\n };\n}\n\nexport default CheckoutLoyalty;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutLoyaltyAdd, ICheckoutLoyaltyRewardPoint, ICheckoutLoyaltyShow, ICheckoutLoyaltyViewProps } from './checkout-loyalty';\n\nconst AddCheckoutLoyalty: React.FC = ({\n heading,\n cardNumber,\n drawer,\n rewardPoints,\n loyaltyAmountContainer,\n appliedLoyaltyAmountContainer,\n loyaltyAmountLabel,\n loyaltyAmountInput,\n loyaltyAmountApplyButton,\n showAppliedAmount,\n loyaltyAmountAppliedText,\n loyaltyAmountAppliedPrice,\n loyaltyAmountRemoveButton\n}) => {\n return (\n <>\n {heading}\n {cardNumber}\n \n {rewardPoints.map((rewardPoint: ICheckoutLoyaltyRewardPoint) => {\n return (\n \n {rewardPoint.title}\n {rewardPoint.availablePointsText}\n {rewardPoint.activePoints}\n {rewardPoint.expiringPointsText}\n {rewardPoint.expiringPoints}\n \n );\n })}\n \n \n {loyaltyAmountLabel}\n {loyaltyAmountInput}\n {loyaltyAmountApplyButton}\n {showAppliedAmount && (\n \n {loyaltyAmountAppliedText}\n {loyaltyAmountAppliedPrice}\n {loyaltyAmountRemoveButton}\n \n )}\n \n \n );\n};\n\nconst ShowCheckoutLoyalty: React.FC = ({ heading, coveredAmountText, amount }) => {\n return (\n <>\n {heading}\n {coveredAmountText}\n {amount}\n \n );\n};\n\nconst CheckoutLoyaltyView: React.FC = props => {\n const { checkoutLoyalty, checkoutErrorRef, alert, viewState, showLoyalty, addLoyalty } = props;\n\n return (\n \n {alert}\n {viewState.isShowLoyalty && }\n {viewState.isShowAddLoyalty && }\n \n );\n};\n\nexport default CheckoutLoyaltyView;\n","/*!\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 ICheckoutLoyaltyInput {\n className: string;\n type: string;\n value: string | number;\n min: number;\n max: number;\n ariaValueMax: number;\n ariaValueMin: number;\n ariaValueNow: number;\n id: string;\n step: string;\n onChange(event: React.ChangeEvent): void;\n onBlur(event: React.FocusEvent): void;\n}\n\nconst AdressInput: React.FC = ({\n className,\n type,\n value,\n min,\n max,\n step,\n ariaValueMax,\n ariaValueMin,\n ariaValueNow,\n onChange,\n onBlur,\n id\n}) => (\n \n);\n\nexport default AdressInput;\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 ICheckoutLoyaltyLabelProps {\n className: string;\n text: string;\n htmlFor: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.className\n * @param root0.text\n * @param root0.htmlFor\n * @extends {React.FC}\n */\nconst CheckoutLoyaltyLabel: React.FC = ({ className, text, htmlFor }) => {\n return (\n \n );\n};\n\nexport default CheckoutLoyaltyLabel;\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 ICheckoutLoyaltyTextProps {\n className: string;\n text?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.className\n * @param root0.text\n * @extends {React.FC}\n */\nconst CheckoutLoyaltyText: React.FC = ({ className, text }) => {\n if (!text) {\n return null;\n }\n\n return {text};\n};\n\nexport default CheckoutLoyaltyText;\n"],"names":["CheckoutDeliveryOptions","React","constructor","props","super","selectedItemId","deliveryOptions","isLoading","groupDeliveryOptions","cartLineSelectedDeliveryOptions","retailMultiplePickUpOptionEnabled","checkoutErrorRef","cartLinesDeliveryOptions","init","async","this","moduleState","onEdit","isSelectDefaultOptionEnabled","undefined","onCancel","onSubmit","status","config","useDefaultDeliveryOption","canShip","cartDeliveryMode","getSavedDeliveryOption","isMultipleAddressShippingEnabled","getCartLinesSavedDeliveryOption","loadDeliveryOptions","_this$props$data$chec","data","checkout","result","checkoutCart","hasInvoiceLine","getCartLinesForShipping","length","isDeliveryModeExists","deliveryMode","find","deliveryOption","Code","getDeliveryOptionSelected","selectedItem","context","telemetry","error","id","typeName","priceFree","resources","price","get","channelConfig","request","channel","DeliveryOption","className","description","DescriptionComponent","Object","assign","Description","PriceComponent","CustomerContextualPrice","freePriceText","currencyCode","Currency","getErrorMessage","errorMessageTitle","CheckoutDeliveryOptionsError","tag","role","title","ErrorTitleComponent","message","ErrorMessageComponent","errorMessage","getDeliveryOptionList","count","map","index","getAriaLabelWithPrice","code","radioButton","RadioButtonComponent","isChecked","value","ariaSetSize","ariaPosInSet","ariaLabel","onChange","onDeliveryOptionChange","telemetryContent","getSaveButton","saveBtnLabel","Button","color","disabled","onClick","onSave","getEditButton","editBtnLabel","getCancelButton","cancelBtnLabel","setError","setHasError","onUpdating","clearError","_this$props$data$chec2","information","updateShouldCollapsePaymentSection","newShouldCollapsePaymentSection","_this$props$data$chec3","updateCartLinesDeliverySpecification","updateCartDeliverySpecification","savedDeliveryOption","_this$props$data$chec4","onReady","cartLinesForShipping","DeliveryMode","forEach","cartLine","LineId","StringExtensions","isNullOrEmpty","cartLineId","existingCartLineSelectedDeliveryOption","cartLineDeliveryOption","selectedDeliveryOption","push","deliveryModeId","trim","checkoutState","updateCartDeliverySpecificationInput","shippingAddress","channelDeliveryOptionConfig","onPending","then","response","_response$errorDetail","errorDetails","LocalizedMessage","genericErrorMessage","setIsCancellable","catch","_this$props$data$chec5","lineSpecs","checkoutCartLines","cart","CartLines","group","_checkoutCartLines$fi","address","ShippingAddress","lineSpec","DeliverySpecification","DeliveryModeId","DeliveryPreferenceTypeValue","DeliveryPreferenceType","ShipToAddress","DeliveryAddress","lineDeliverySpecifications","_this$props$data$chec6","cartLines","_cartLine$LineId","toString","cartLineSelectedDeliveryOption","RequestedDeliveryDate","requestDeliveryDate","Date","updateCartLines","updatedCartLinesObject","_unused","pickupDeliveryModeCode","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","filter","_this$channelDelivery","PickupDeliveryModeCodes","getDeliveryOptions","_this$props$data$chec7","cartState","cartId","Id","originalDeliveryMode","shippingCartLines","hasShippingDeliveryLines","clearCartLinesDeliveryInformation","channelDeliveryOptionConfiguration","deliveryOptionFilter","filterDeliveryModeOption","FilterDeliveryModeOption","None","FilterOutNonCarrierDeliveryMode","getDeliveryOptionsAsync","callerContext","actionContext","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","_unused2","deliveryOptionsNotFound","_this$props$data$chec8","_this$props$data$chec9","updateHasCartDeliveryMode","newHasCartDeliveryMode","isPaymentVerificationRedirection","_this$props$data$chec10","getStoredDeliveryOptions","_this$props$data$chec11","_this$props$data$chec12","_this$props$data$chec13","cartLinesWithShippingAddress","requestContext","_this$props$data$chec14","_this$props$data$chec15","_this$props$data$chec16","_this$props$data$chec17","_this$props$data$chec18","_this$props$data$chec19","_this$props$data$chec20","_this$props$data$chec21","features","enable_checkout_race_condition_hot_fix","isExpressCheckoutApplied","getGroupDeliveryOptions","isExpressPaymentAppliedInCartPage","event","currentTarget","onCartLineDeliveryOptionChange","onCartLineRequestDeliveryDateChange","deliveryDate","getCheckoutCartLineGroupDeliveryOptions","ArrayExtensions","hasElements","imageSettings","getImageSettings","requestDeliveryDateEnabled","enableRequestDeliveryDate","groupDeliveryOption","cartLineIds","cartLine1","_ref","_cartLine$LineId2","_ref2","_cartLine$LineId3","_this$cartLineSelecte","_cartLine1$ShippingAd","_cartLine1$ShippingAd2","_groupDeliveryOption$","key","AddressDetailItemFunctionComponent","isNewLine","isShowLabel","labelText","cartLineGroupShippingAddressLabel","name","FullAddress","cartLineGroupDeliveryOptionsLabel","cartLineGroupDeliveryOptionsText","CheckoutCartLineDeliveryDate","heading","cartLineGroupDeliveryRequestDeliveryDateText","disclaimerText","cartLineGroupDeliveryRequestDeliveryDateDisclaimerText","checkBoxLabel","cartLineGroupDeliveryRequestDeliveryDate","CheckoutCartLineDeliveryOptionsRadio","moduleId","groupName","_this$cartLineSelecte2","_this$props$data$prod","_this$props$data$cata","_ref3","_cartLine$LineId4","selectedDeliveryOption1","GetLineItems","products","gridSettings","configString","discountStringText","shippingChargesText","shippingChargesString","productDimensionTypeColor","productDimensionTypeSize","productDimensionTypeStyle","productDimensionTypeAmount","quantityDisplayStringLabel","quantityDisplayString","changeButtonText","deliveryMethodLabel","catalogs","showShippingChargesForLineItems","_this$props$data$chec22","getGroupByDelivery","items","groupBy","item","_item$ShippingAddress","RecordId","console","log","inputData","GetDeliveryOptionsForCartLineAddressInput","getDeliveryOptionsForCartLineAddress","_group$cartLineIds","_unused3","viewports","xs","q","w","h","sm","lg","lazyload","getTelemetryObject","telemetryPageName","friendlyName","multipleAddressShippingEnabled","isDataReady","expressPaymentDetailsFromCartPage","_this$props$data$cart","_this$props$data$cart2","properties","ExtensionProperties","property","Key","Value","StringValue","JSON","parse","_this$expressPaymentD","_this$expressPaymentD2","isExpressCheckoutAppliedInCartPage","_this$props$data$chec29","when","reaction","_this$props$data$chec23","_this$props$data$chec24","_this$props$data$chec25","_this$props$data$chec26","_this$props$data$chec27","_this$props$data$chec28","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec30","checkoutError","errorLocation","ErrorLocation","_this$props$data$chec31","checkoutErrorFocus","CheckoutModule","focusOnCheckoutError","shouldComponentUpdate","nextProps","nextState","state","render","_this$props$data$chan","_this$props$data$feat","featureState","feature","Name","IsEnabled","isReady","isUpdating","hasError","isError","isShowList","isShowSelected","deliveryOptionAriaLabel","viewProps","_objectSpread","deliveryOptionsData","alert","ErrorComponent","errorMessageData","viewState","isShowSaveButton","hasExternalSubmitGroup","isShowEditButton","isShowCancelButton","moduleProps","classname","DeliveryOptionsList","list","deliveryOptionSelected","waiting","Waiting","checkoutCartLineGroupDeliveryOptions","enableCheckoutCartLineDeliveryOptions","saveButton","editButton","cancelButton","renderView","__decorate","observable","computed","action","withModuleState","observer","DeliveryOptionList","Node","DeliveryOptionSelected","Module","ref","isDisabled","fallbackPattern","onChangeMinValue","selectedDate","setSelectedDate","useState","isDateEnabled","setIsDateEnabled","minDate","setMinDate","today","toISOString","split","payLoad","getPayloadObject","TelemetryConstant","DeliveryOptions","attributes","getTelemetryAttributes","type","checked","handleCheckboxChange","selectedValue","target","min","pattern","deliveryOptionRef","contentAction","etext","changeCurrentDeliveryOption","deliveryClassName","optionClassName","descClassName","lineClassName","lineItemClassName","changeText","showDeliveryOption","setShowDeliveryOption","handleClick","deliveryCode","option","payload","TelemetryEvent","UpdateInCart","product","ProductId","_getProduct","productId","_product","_getLineItemComponent","productUrl","getProductUrlSync","MsDyn365","isBrowser","isChannelTypeB2B","_cartLine$CatalogId","fullUrl","URL","window","location","href","searchParams","set","CatalogId","CartLineItemComponent","sizeString","colorString","styleString","amountString","inputQuantityAriaLabel","originalPriceText","currentPriceText","salesAgreementPricePrompt","isQuantityEditable","primaryImageUrl","PrimaryImageUrl","priceCurrency","CheckoutLoyalty","moduleClassName","_defaultLoyaltyPoints","isRequired","isEnabled","loyaltyAmount","onSkip","loyaltyCard","CardNumber","LoyaltyCardId","updateLoyaltyCardId","loyaltyCardNumber","warning","debug","handleCancelOrSubmit","user","isAuthenticated","shouldPayLoyalty","_setErrorMessage","setState","_clearError","_dialogToggleRef","_applyLoyaltyPoints","bind","_removeLoyaltyPoints","_onInputChange","_onBlur","dollarsApplied","maxDollars","isFetchingLoyaltyCard","TotalAmount","loyaltyTransactionEstimation","MaxCurrencyValueOfLoyaltyPoints","_updateEstimate","_updateLoyalty","isOBORequest","EnabledPaymentsForOBO","Loyalty","isShowLoyalty","isShowAddLoyalty","disableAddLoyaltyComponent","checkoutLoyalty","classnames","showLoyalty","Heading","headingTag","text","loyaltyHeadingText","coveredAmountText","TextComponent","loyaltyCoveredAmountText","amount","addLoyalty","drawer","Drawer","toggleButtonText","_drawerHeader","openGlyph","closeGlyph","glyphPlacement","cardNumber","rewardPoints","RewardPoints","points","_renderPointSection","availablePointsLabel","expiringLoyaltyPointsLabel","loyaltyAmountContainer","appliedLoyaltyAmountContainer","loyaltyAmountLabel","LabelComponent","payWithLoyaltyAmountLabel","htmlFor","loyaltyAmountInput","InputComponent","onBlur","step","max","ariaValueMax","ariaValueMin","ariaValueNow","loyaltyAmountApplyButton","applyCheckoutLoyaltyPaymentText","isNaN","showAppliedAmount","loyaltyAmountAppliedText","loyaltyAmountAppliedPrice","loyaltyAmountRemoveButton","removeCheckoutLoyaltyPaymentText","innerRef","point","RewardPointId","checkoutLoyaltyRewardPoint","availablePointsText","activePoints","ActivePoints","expiringPointsText","expiringPoints","PointsExpiringSoon","updateLoyaltyAmount","newAmount","Number","parseFloat","num","toFixed","element","document","getElementById","card","loyalPointsRequest","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","_query","options","bypassCache","callActionOrExecute","_points$MaxCurrencyVa","update","GetLoyaltyTransactionEstimationInput","apiSettings","newMaxPoints","exception","AddCheckoutLoyalty","rewardPoint","ShowCheckoutLoyalty"],"sourceRoot":""}