{"version":3,"file":"static/js/a49210fe63f12f0dd0a6.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/actions/get-products-details-in-active-checkout-cart.ts?f6c5","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/checkout-delivery-options.tsx?6764","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?1e75","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/address-detail-item.tsx?d9a2","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-date.tsx?bd12","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-grp.tsx?3a15","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-cartLine-delivery-options-radio.tsx?045f","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.description.tsx?840c","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-message.tsx?8ca3","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-title.tsx?f7e7","webpack://Dobbies.Commerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.radio-button.tsx?9df9","webpack://Dobbies.Commerce/./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 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"],"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","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","console","log","inputData","GetDeliveryOptionsForCartLineAddressInput","getDeliveryOptionsForCartLineAddress","_group$cartLineIds","_unused3","viewports","xs","q","w","h","sm","lg","lazyload","getTelemetryObject","telemetryPageName","friendlyName","multipleAddressShippingEnabled","_this$props$data$cart","_this$props$data$cart2","properties","ExtensionProperties","property","Key","Value","StringValue","JSON","parse","_this$expressPaymentD","_this$expressPaymentD2","expressPaymentDetailsFromCartPage","isExpressCheckoutAppliedInCartPage","_this$props$data$chec29","when","isDataReady","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","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":""}