{"version":3,"file":"static/js/9b34af68a539925f7473.bundle.js","mappings":"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","sources":["webpack://morland-ecommerce/./src/modules/checkout-delivery-options/actions/get-products-details-in-active-checkout-cart.ts?f6c5","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/checkout-delivery-options.tsx?6764","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?1e75","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/address-detail-item.tsx?d9a2","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-date.tsx?bd12","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-grp.tsx?3a15","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-radio.tsx?045f","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.description.tsx?840c","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-message.tsx?8ca3","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-title.tsx?f7e7","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.radio-button.tsx?9df9","webpack://morland-ecommerce/./src/modules/checkout-delivery-options/components/get-line-items.tsx?e389"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\nimport { getCheckoutState } from '@msdyn365-commerce/global-state';\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getSimpleProducts, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Input class for ActiveCheckoutCartWithProductsDetails data action.\n */\nexport class ActiveCheckoutCartProductsDetailsInput implements IActionInput {\n public getCacheKey = () => 'ActiveCheckoutCartProducts';\n\n public getCacheObjectType = () => 'ActiveCheckoutCartProducts';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport const createCartInput = () => {\n return new ActiveCheckoutCartProductsDetailsInput();\n};\n\n/**\n * Calls the Retail API and returns a cart object based on the passed GetCartInput.\n * @param input\n * @param ctx\n */\nexport async function getActiveCheckoutCartProductsDetailsAction(\n input: ActiveCheckoutCartProductsDetailsInput,\n ctx: IActionContext\n): Promise {\n // Check if the input is valid\n if (!input) {\n ctx.telemetry.exception(new Error('[getActiveCheckoutCartWithProductsDetails]No valid Input was provided, failing'));\n throw new Error('[getActiveCheckoutCartWithProductsDetails]No valid Input was provided, failing');\n }\n\n const checkoutState = await getCheckoutState(ctx);\n const cart = checkoutState.checkoutCart.cart;\n\n // If there are cart lines, make call to get products\n if (!checkoutState.checkoutCart.hasInvoiceLine && cart && cart.CartLines && cart.CartLines.length > 0) {\n return getSimpleProducts(\n cart.CartLines.map(cartLine => {\n if (cartLine.ProductId) {\n return new ProductInput(\n cartLine.ProductId,\n ctx.requestContext.apiSettings,\n undefined,\n undefined,\n ctx.requestContext,\n cartLine.CatalogId\n );\n }\n return undefined;\n }).filter(Boolean),\n ctx\n )\n .then(products => {\n if (products) {\n return products;\n }\n return [];\n })\n .catch(error => {\n ctx.telemetry.exception(error);\n throw new Error('[getActiveCheckoutCartWithProductsDetails]Unable to hydrate cart with product information');\n });\n }\n\n return [];\n}\n\nexport const getActiveCheckoutCartProductsDetailsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/checkout/get-products-details-in-active-checkout-cart',\n action: >getActiveCheckoutCartProductsDetailsAction,\n input: createCartInput\n});\n\nexport default getActiveCheckoutCartProductsDetailsActionDataAction;\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 readonly timeoutRetailCall: number;\n\n private cartLinesDeliveryOptions: ICartLineSelectedDeliveryOption[] = [];\n\n public constructor(props: ICheckoutDeliveryOptionsModuleProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.isSelectDefaultOptionEnabled =\n this.props.config.useDefaultDeliveryOption && this.props.config.useDefaultDeliveryOption !== useDefaultDeliveryOption.none;\n this.isMultipleAddressShippingEnabled = this.props.config.multipleAddressShippingEnabled;\n this.timeoutRetailCall = this.props.config.timeoutToCallRetail !== undefined ? this.props.config.timeoutToCallRetail : 0;\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n if (\n (this.props.data.checkout.result?.isExpressCheckoutApplied && this.canShip()) ||\n this.isExpressPaymentAppliedInCartPage\n ) {\n await this.init();\n } else {\n // Wait for a specific time (e.g., 2000 milliseconds = 2 seconds)\n await new Promise(resolve => setTimeout(resolve, this.timeoutRetailCall));\n // Then call the init function\n await this.init();\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.shippingAddress,\n async () => {\n await this.loadDeliveryOptions();\n this.props.moduleState.setIsCancellable(false);\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.cartLinesWithShippingAddress,\n async () => {\n await this.loadDeliveryOptions();\n this.props.moduleState.setIsCancellable(false);\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n async isExpressCheckoutApplied => {\n if (isExpressCheckoutApplied && this.canShip() && !this.isExpressPaymentAppliedInCartPage) {\n await this.loadDeliveryOptions();\n this.props.moduleState.setIsCancellable(false);\n\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\n }\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (\n checkoutError &&\n checkoutError.errorLocation === ErrorLocation.CheckoutDeliveryOptions &&\n checkoutError.errorMessage\n ) {\n this.setError(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutDeliveryOptions) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutDeliveryOptionsModuleProps, nextState: ICheckoutDeliveryOptionsViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n this.channelDeliveryOptionConfig = this.props.data.channelDeliveryOptionConfig?.result;\n this.retailMultiplePickUpOptionEnabled = this.props.data.featureState?.result?.find(\n feature => feature.Name === multiplePickupStoreSwitchName\n )?.IsEnabled;\n\n if (!this.canShip()) {\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\n return null;\n }\n\n const {\n moduleState: { isReady, isUpdating, hasError }\n } = this.props;\n const isError = !this.isLoading && hasError;\n const isShowList = !this.isLoading && !hasError && isUpdating && !this.isSelectDefaultOptionEnabled;\n const isShowSelected = !this.isLoading && !hasError && isReady;\n const { errorMessageTitle, deliveryOptionAriaLabel } = this.props.resources;\n\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 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 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 && 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"],"names":["ActiveCheckoutCartProductsDetailsInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","createCartInput","async","getActiveCheckoutCartProductsDetailsAction","input","ctx","telemetry","exception","Error","checkoutState","getCheckoutState","cart","checkoutCart","hasInvoiceLine","CartLines","length","getSimpleProducts","map","cartLine","ProductId","ProductInput","requestContext","apiSettings","undefined","CatalogId","filter","Boolean","then","products","catch","error","getActiveCheckoutCartProductsDetailsActionDataAction","createObservableDataAction","id","action","CheckoutDeliveryOptions","React","props","super","selectedItemId","deliveryOptions","isLoading","groupDeliveryOptions","cartLineSelectedDeliveryOptions","retailMultiplePickUpOptionEnabled","checkoutErrorRef","cartLinesDeliveryOptions","init","this","moduleState","onEdit","isSelectDefaultOptionEnabled","onCancel","onSubmit","status","config","useDefaultDeliveryOption","canShip","cartDeliveryMode","getSavedDeliveryOption","isMultipleAddressShippingEnabled","getCartLinesSavedDeliveryOption","loadDeliveryOptions","_this$props$data$chec","data","checkout","result","getCartLinesForShipping","isDeliveryModeExists","deliveryMode","find","deliveryOption","Code","getDeliveryOptionSelected","selectedItem","context","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","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","LineId","StringExtensions","isNullOrEmpty","cartLineId","existingCartLineSelectedDeliveryOption","cartLineDeliveryOption","selectedDeliveryOption","push","deliveryModeId","trim","updateCartDeliverySpecificationInput","shippingAddress","channelDeliveryOptionConfig","onPending","response","_response$errorDetail","errorDetails","LocalizedMessage","genericErrorMessage","setIsCancellable","_this$props$data$chec5","lineSpecs","checkoutCartLines","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","_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","_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","console","log","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","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","inputData","GetDeliveryOptionsForCartLineAddressInput","getDeliveryOptionsForCartLineAddress","_group$cartLineIds","_unused3","viewports","xs","q","w","h","sm","lg","lazyload","getTelemetryObject","telemetryPageName","friendlyName","multipleAddressShippingEnabled","timeoutRetailCall","timeoutToCallRetail","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$chec30","when","_this$props$data$chec23","Promise","resolve","setTimeout","reaction","_this$props$data$chec24","_this$props$data$chec25","_this$props$data$chec26","_this$props$data$chec27","_this$props$data$chec28","_this$props$data$chec29","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec31","checkoutError","errorLocation","ErrorLocation","_this$props$data$chec32","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","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","_getProduct","productId","_product","_getLineItemComponent","productUrl","getProductUrlSync","MsDyn365","isBrowser","isChannelTypeB2B","_cartLine$CatalogId","fullUrl","URL","window","location","href","searchParams","set","CartLineItemComponent","sizeString","colorString","styleString","amountString","inputQuantityAriaLabel","originalPriceText","currentPriceText","salesAgreementPricePrompt","isQuantityEditable","primaryImageUrl","PrimaryImageUrl","priceCurrency"],"sourceRoot":""}