{"version":3,"file":"static/js/0908323c4225cc18c4c5.bundle.js","mappings":"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","sources":["webpack://henrys-ecommerce/./src/common/utilities/get-product-details.ts?0bb5","webpack://henrys-ecommerce/./src/common/createGoogleAnalyticsEvent.ts?b6fa","webpack://henrys-ecommerce/./src/common/pushGoogleAnalyticsEvent.tsx?9c4e","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/checkout-delivery-options.props.autogenerated.ts?a247","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.description.tsx?9865","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-message.tsx?2063","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-title.tsx?7508","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/components/checkout-delivery-options.radio-button.tsx?0fb4","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/checkout-delivery-options.tsx?19e5","webpack://henrys-ecommerce/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?c93c","webpack://henrys-ecommerce/./lib/checkout-delivery-options/module-registration.js?e78e","webpack://henrys-ecommerce/external var \"React\"?0d3b","webpack://henrys-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { getCartStateData, GetCartStateDataInput } from '@msdyn365-commerce/global-state';\r\nimport { ProductsDataActions } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n getDimensionsForSelectedVariant,\r\n GetDimensionsForSelectedVariantInput,\r\n getPriceForSelectedVariant,\r\n getProductAvailabilitiesForSelectedVariant,\r\n getRatingsSummary,\r\n GetRatingsSummaryInput,\r\n getRnrEndpointId,\r\n getRnrPartnerId,\r\n PriceForSelectedVariantInput,\r\n ProductAvailabilitiesForSelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { IProductDetails } from '@msdyn365-commerce-modules/buybox';\r\n\r\n/**\r\n * Calls the Retail API and returns the product details.\r\n * @param productId\r\n * @param channelId\r\n * @param ctx\r\n * @param selectedDimensions - Dimensions previously selected for the product variant.\r\n */\r\nexport async function getProductDetails(productId: number, channelId: number, ctx: IActionContext): Promise {\r\n const productDetails: IProductDetails = {};\r\n\r\n if (productId > 0 && channelId > 0) {\r\n const tenantId = getRnrPartnerId(ctx);\r\n const serviceEndPoint = getRnrEndpointId(ctx);\r\n\r\n // Get Product Details\r\n const productResult = await ProductsDataActions.getByIdAsync({ callerContext: ctx }, productId, channelId);\r\n if (productResult) {\r\n productDetails.product = productResult;\r\n }\r\n\r\n // Get Product Availability\r\n await getProductAvailabilitiesForSelectedVariant(new ProductAvailabilitiesForSelectedVariantInput(productId, channelId), ctx)\r\n .then(productAvailabilities => {\r\n if (productAvailabilities) {\r\n productDetails.productAvailableQuantity = productAvailabilities;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get Product Price\r\n await getPriceForSelectedVariant(new PriceForSelectedVariantInput(productId, channelId, undefined), ctx)\r\n .then(productPrice => {\r\n if (productPrice) {\r\n productDetails.productPrice = productPrice;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get product dimensions\r\n await getDimensionsForSelectedVariant(new GetDimensionsForSelectedVariantInput(productId, channelId), ctx)\r\n .then(productDimensions => {\r\n if (productDimensions) {\r\n productDetails.productDimensions = productDimensions;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get Cart State\r\n await getCartStateData(new GetCartStateDataInput(ctx.requestContext.apiSettings), ctx)\r\n .then(cartState => {\r\n productDetails.cart = cartState;\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get Product Ratings\r\n if (tenantId && serviceEndPoint) {\r\n await getRatingsSummary(new GetRatingsSummaryInput(productId.toString(), tenantId, serviceEndPoint), ctx)\r\n .then(ratingsSummaryData => {\r\n if (ratingsSummaryData) {\r\n productDetails.ratingsSummary = ratingsSummaryData;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n }\r\n }\r\n\r\n return productDetails;\r\n}\r\n","import { CacheType, getCatalogId, IActionContext, IActionInput, ICommerceApiSettings, IRequestContext } from '@msdyn365-commerce/core';\r\nimport { Cart, CategoryPathLookup } from '@msdyn365-commerce/retail-proxy';\r\nimport { GaEvent, GaItem, GaPayload } from './pushGoogleAnalyticsEvent';\r\nimport { getProductDetails } from './utilities/get-product-details';\r\n\r\nexport const buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\r\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\r\n};\r\n\r\n/**\r\n * Category path input.\r\n */\r\nexport class GetCategoryPathsInput implements IActionInput {\r\n public readonly ChannelId: number;\r\n\r\n public readonly CatalogId: number;\r\n\r\n public readonly categoryPathLooksups: CategoryPathLookup[];\r\n\r\n public readonly apiSettings: ICommerceApiSettings;\r\n\r\n private readonly locale: string;\r\n\r\n private constructedCacheKey: string;\r\n\r\n public constructor(context: IRequestContext, categoryPathLooksups: CategoryPathLookup[]) {\r\n this.ChannelId = context.apiSettings.channelId;\r\n this.CatalogId = getCatalogId(context);\r\n this.categoryPathLooksups = categoryPathLooksups;\r\n this.apiSettings = context.apiSettings;\r\n this.constructedCacheKey = '';\r\n categoryPathLooksups.forEach(categoryPath => {\r\n this.constructedCacheKey += `${categoryPath.ProductId && categoryPath.ProductId.toString()}|`;\r\n });\r\n this.constructedCacheKey += `${this.ChannelId.toString()}|`;\r\n this.constructedCacheKey += `${this.CatalogId.toString()}|`;\r\n this.locale = context.locale;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey(this.constructedCacheKey, this.apiSettings, this.locale);\r\n\r\n public getCacheObjectType = () => 'CategoryPath';\r\n\r\n public dataCacheType = (): CacheType => 'request';\r\n\r\n /**\r\n * Retrieves locale to use for the current API call.\r\n * @returns A string which represents locale.\r\n */\r\n public getLocale = (): string => this.locale;\r\n}\r\n\r\nconst createGoogleAnalyticsEvent = async (cart: Readonly, eventName: GaEvent, actionContext: IActionContext): Promise => {\r\n var channelId = actionContext.requestContext.channel?.RecordId;\r\n\r\n const items: GaItem[] = [];\r\n\r\n if (channelId && cart.CartLines) {\r\n let i = 0;\r\n for (const cartLine of cart.CartLines) {\r\n if (cartLine.ProductId) {\r\n const productDetails = await getProductDetails(cartLine.ProductId, channelId, actionContext);\r\n\r\n const product = productDetails.product;\r\n const variant = product?.Dimensions?.map(d => d.DimensionValue?.Value).join(',');\r\n\r\n process.env.NODE_ENV === 'development' &&\r\n console.log('createGoogleAnalyticsEvent', cartLine.ProductId, JSON.parse(JSON.stringify(product)));\r\n\r\n const discount = (cartLine.DiscountLines ?? []).reduce((a, b) => a + (b.Amount ?? 0), 0);\r\n\r\n var brand = product?.ExtensionProperties?.find(ep => ep.Key === 'Brand')?.Value?.StringValue;\r\n\r\n var item = {\r\n recId: cartLine.ProductId,\r\n item_id: product?.ProductNumber || product?.ItemId || cartLine.ItemId || '',\r\n item_name: product?.Name ?? '',\r\n index: i,\r\n item_variant: variant,\r\n price: (product?.Price ?? cartLine.Price ?? 0) - discount,\r\n discount: discount,\r\n pid: product?.ItemId || cartLine.ItemId || '',\r\n item_brand: brand,\r\n quantity: cartLine.Quantity ?? 0\r\n };\r\n\r\n items.push(item);\r\n }\r\n\r\n i++;\r\n }\r\n }\r\n\r\n const total = items.reduce((a, b) => a + (b.price ?? 0) * b.quantity, 0);\r\n\r\n return {\r\n event: eventName,\r\n ecommerce: {\r\n currency: 'CAD',\r\n value: total,\r\n items: items\r\n }\r\n };\r\n};\r\n\r\nexport { createGoogleAnalyticsEvent };\r\n","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport { GetCategoryPathsInput } from './createGoogleAnalyticsEvent';\r\nimport { getCategoryPaths } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nexport type GaDataLayer = {\r\n push: (payload: GaPayload) => void;\r\n};\r\n\r\nexport type GaItem = {\r\n item_id: string;\r\n item_name: string;\r\n affiliation?: string;\r\n coupon?: string;\r\n discount?: number;\r\n index: number;\r\n item_brand?: string;\r\n item_category?: string;\r\n item_category2?: string;\r\n item_category3?: string;\r\n item_category4?: string;\r\n item_category5?: string;\r\n item_list_id?: string;\r\n item_list_name?: string;\r\n item_variant?: string;\r\n location_id?: string;\r\n price: number;\r\n quantity: number;\r\n pid?: string;\r\n recId?: number;\r\n};\r\n\r\nexport type GaEvent =\r\n | 'view_item'\r\n | 'view_cart'\r\n | 'purchase'\r\n | 'begin_checkout'\r\n | 'add_to_cart'\r\n | 'add_to_wishlist'\r\n | 'remove_from_cart'\r\n | 'add_shipping_info'\r\n | 'add_payment_info';\r\n\r\nexport type GaPayload = {\r\n event?: GaEvent;\r\n ecommerce?: {\r\n transaction_id?: string;\r\n currency?: string;\r\n value: number;\r\n tax?: number;\r\n shipping?: number;\r\n shipping_tier?: string;\r\n payment_type?: string;\r\n coupon?: string;\r\n items?: GaItem[];\r\n } | null;\r\n};\r\n\r\nexport const pushGoogleAnalyticsEvent = async (payload?: GaPayload, actionContext?: IActionContext) => {\r\n const dataLayer = typeof window !== 'undefined' && (window['dataLayer'] as GaDataLayer);\r\n if (dataLayer) {\r\n process.env.NODE_ENV === 'development' && console.log('pushGoogleAnalyticsEvent', payload);\r\n dataLayer.push({ ecommerce: null });\r\n if (payload) {\r\n for (const gaItem of payload?.ecommerce?.items ?? []) {\r\n if (gaItem.recId) {\r\n if (actionContext) {\r\n const categoryPaths = await getCategoryPaths(\r\n new GetCategoryPathsInput(actionContext.requestContext, [{ ProductId: +gaItem.recId }]),\r\n actionContext\r\n );\r\n\r\n if (categoryPaths.length > 0) {\r\n gaItem.item_category = categoryPaths[0].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 1) {\r\n gaItem.item_category2 = categoryPaths[1].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 2) {\r\n gaItem.item_category3 = categoryPaths[2].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 3) {\r\n gaItem.item_category4 = categoryPaths[3].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 4) {\r\n gaItem.item_category5 = categoryPaths[4].Name ?? undefined;\r\n }\r\n }\r\n\r\n delete gaItem.recId;\r\n }\r\n }\r\n\r\n dataLayer.push(payload);\r\n }\r\n }\r\n};\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * ICheckoutDeliveryOptions contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum filterDeliveryModeOption {\r\n none = 'none',\r\n filterOutNonCarrierDeliveryMode = 'filterOutNonCarrierDeliveryMode'\r\n}\r\n\r\nexport const enum useDefaultDeliveryOption {\r\n none = 'none',\r\n displaySelectedDeliveryOption = 'displaySelectedDeliveryOption',\r\n notDisplaySelectedDeliveryOption = 'notDisplaySelectedDeliveryOption'\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n filterDeliveryModeOption?: filterDeliveryModeOption;\r\n useDefaultDeliveryOption?: useDefaultDeliveryOption;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsResources {\r\n deliveryOptionsNotFound: string;\r\n genericErrorMessage: string;\r\n errorMessageTitle: string;\r\n ariaLabelText: string;\r\n priceFree: string;\r\n saveBtnLabel: string;\r\n editBtnLabel: string;\r\n cancelBtnLabel: string;\r\n deliveryOptionAriaLabel: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsProps extends Msdyn365.IModule {\r\n resources: ICheckoutDeliveryOptionsResources;\r\n config: ICheckoutDeliveryOptionsConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsDescriptionProps {\r\n description?: string;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.description\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsDescription: React.FC = ({ description }) => {\r\n if (!description) {\r\n return null;\r\n }\r\n\r\n return {description};\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsDescription;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsErrorMessageProps {\r\n message?: string;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.message\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsErrorMessage: React.FC = ({ message }) => {\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return

{message}

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

{title}

;\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsErrorTitle;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ICheckoutDeliveryOptionsRadioButtonProps {\r\n isChecked: boolean;\r\n value?: string;\r\n ariaSetSize: number;\r\n ariaPosInSet: number;\r\n ariaLabel?: string;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\n/**\r\n * AddPaymentForm SFC.\r\n * @param root0\r\n * @param root0.isChecked\r\n * @param root0.value\r\n * @param root0.ariaSetSize\r\n * @param root0.ariaPosInSet\r\n * @param root0.ariaLabel\r\n * @param root0.telemetryContent\r\n * @param root0.onChange\r\n * @extends {React.FC}\r\n */\r\nconst CheckoutDeliveryOptionsRadioButton: React.FC = ({\r\n isChecked,\r\n value,\r\n ariaSetSize,\r\n ariaPosInSet,\r\n ariaLabel,\r\n telemetryContent,\r\n onChange\r\n}) => {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.DeliveryOptions);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsRadioButton;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { PriceComponent } from '@msdyn365-commerce/components';\r\nimport { ErrorLocation, ICheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { Cart, ChannelDeliveryOptionConfiguration, FilterDeliveryModeOption } from '@msdyn365-commerce/retail-proxy';\r\nimport { getDeliveryOptionsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { Address, CartLine, DeliveryOption } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport get from 'lodash/get';\r\nimport { action, computed, observable, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { ErrorComponent } from '@msdyn365-commerce-modules/checkout';\r\nimport { ICheckoutDeliveryOptionsData } from './checkout-delivery-options.data';\r\nimport {\r\n filterDeliveryModeOption,\r\n ICheckoutDeliveryOptionsProps,\r\n useDefaultDeliveryOption\r\n} from './checkout-delivery-options.props.autogenerated';\r\nimport DescriptionComponent from './components/checkout-delivery-options.description';\r\nimport ErrorMessageComponent from './components/checkout-delivery-options.error-message';\r\nimport ErrorTitleComponent from './components/checkout-delivery-options.error-title';\r\nimport RadioButtonComponent from './components/checkout-delivery-options.radio-button';\r\nimport { createGoogleAnalyticsEvent } from '../../common/createGoogleAnalyticsEvent';\r\nimport { pushGoogleAnalyticsEvent } from '../../common/pushGoogleAnalyticsEvent';\r\n\r\nexport interface ICheckoutDeliveryOptionsModuleProps\r\n extends ICheckoutDeliveryOptionsProps,\r\n IModuleStateProps {}\r\n\r\nexport interface ICheckoutDeliveryOption {\r\n DeliveryOption: INodeProps;\r\n description?: React.ReactNode;\r\n price?: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionEdit extends ICheckoutDeliveryOption {\r\n code: string;\r\n radioButton?: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsList {\r\n DeliveryOptionsList: INodeProps;\r\n list: ICheckoutDeliveryOptionEdit[];\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsError {\r\n Error: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsViewState {\r\n isLoading: boolean;\r\n isError: boolean;\r\n isShowList: boolean;\r\n isShowSelected: boolean;\r\n isShowSaveButton: boolean;\r\n isShowEditButton: boolean;\r\n isShowCancelButton: boolean;\r\n}\r\n\r\nexport interface ICheckoutDeliveryOptionsViewProps extends ICheckoutDeliveryOptionsProps<{}> {\r\n CheckoutDeliveryOptions: IModuleProps;\r\n selectedItemId: string;\r\n deliveryOptionsData: DeliveryOption[];\r\n isLoading: boolean;\r\n errorMessageData: string;\r\n viewState: ICheckoutDeliveryOptionsViewState;\r\n deliveryOptions?: ICheckoutDeliveryOptionsList;\r\n deliveryOptionSelected?: ICheckoutDeliveryOption;\r\n errorMessage?: ICheckoutDeliveryOptionsError;\r\n waiting?: React.ReactNode;\r\n saveButton?: React.ReactNode;\r\n editButton?: React.ReactNode;\r\n cancelButton?: React.ReactNode;\r\n alert?: React.ReactNode;\r\n onDeliveryOptionChange(event: React.ChangeEvent): void;\r\n onSave(): void;\r\n onEdit(): void;\r\n onCancel(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutDeliveryOptions component.\r\n * @extends {React.Component>}\r\n */\r\n// @ts-expect-error\r\n@withModuleState\r\n@observer\r\nclass CheckoutDeliveryOptions extends React.Component {\r\n @observable private selectedItemId: string = '';\r\n\r\n @observable private deliveryOptions: DeliveryOption[] = [];\r\n\r\n @observable private isLoading: boolean = false;\r\n\r\n @observable private errorMessage?: string;\r\n\r\n @computed private get isDataReady(): boolean {\r\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\r\n }\r\n\r\n public get expressPaymentDetailsFromCartPage() {\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n const properties =\r\n this.props.data.cart?.result?.cart?.ExtensionProperties?.find(property => property.Key === 'expressPaymentDetails')?.Value\r\n ?.StringValue ?? '';\r\n\r\n return properties ? JSON.parse(properties) : null;\r\n }\r\n\r\n public get isExpressPaymentAppliedInCartPage(): boolean {\r\n return this.expressPaymentDetailsFromCartPage?.isExpressCheckoutAppliedInCartPage ?? false;\r\n }\r\n\r\n private cartDeliveryMode?: string;\r\n\r\n private retailMultiplePickUpOptionEnabled?: boolean = false;\r\n\r\n private channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n private readonly isSelectDefaultOptionEnabled?: boolean;\r\n\r\n public constructor(props: ICheckoutDeliveryOptionsModuleProps) {\r\n super(props);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.isSelectDefaultOptionEnabled =\r\n this.props.config.useDefaultDeliveryOption && this.props.config.useDefaultDeliveryOption !== useDefaultDeliveryOption.none;\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n when(\r\n () => this.isDataReady,\r\n async () => {\r\n await this.init();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.shippingAddress,\r\n async () => {\r\n await this.loadDeliveryOptions();\r\n this.props.moduleState.setIsCancellable(false);\r\n\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\r\n async isExpressCheckoutApplied => {\r\n if (isExpressCheckoutApplied && this.canShip() && !this.isExpressPaymentAppliedInCartPage) {\r\n await this.loadDeliveryOptions();\r\n this.props.moduleState.setIsCancellable(false);\r\n\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n }\r\n }\r\n );\r\n\r\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\r\n reaction(\r\n () => this.props.data.checkout.result?.checkoutError,\r\n checkoutError => {\r\n if (\r\n checkoutError &&\r\n checkoutError.errorLocation === ErrorLocation.CheckoutDeliveryOptions &&\r\n checkoutError.errorMessage\r\n ) {\r\n this.setError(checkoutError.errorMessage);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: ICheckoutDeliveryOptionsModuleProps, nextState: ICheckoutDeliveryOptionsViewState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n this.channelDeliveryOptionConfig = this.props.data.channelDeliveryOptionConfig?.result;\r\n this.retailMultiplePickUpOptionEnabled = this.props.data.featureState?.result?.find(\r\n feature => feature.Name === multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n\r\n if (!this.canShip()) {\r\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const {\r\n moduleState: { isReady, isUpdating, hasError }\r\n } = this.props;\r\n const isError = !this.isLoading && hasError;\r\n const isShowList = !this.isLoading && !hasError && isUpdating && !this.isSelectDefaultOptionEnabled;\r\n const isShowSelected = !this.isLoading && !hasError && isReady;\r\n const { errorMessageTitle, deliveryOptionAriaLabel } = this.props.resources;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n onDeliveryOptionChange: this.onDeliveryOptionChange,\r\n selectedItemId: this.selectedItemId,\r\n deliveryOptionsData: this.deliveryOptions,\r\n isLoading: this.isLoading,\r\n alert: this.errorMessage && ,\r\n errorMessageData: this.errorMessage,\r\n viewState: {\r\n isLoading: this.isLoading,\r\n isError,\r\n isShowList,\r\n isShowSelected,\r\n isShowSaveButton: isShowList && !this.props.moduleState.hasExternalSubmitGroup,\r\n isShowEditButton: isShowSelected && !this.props.moduleState.hasExternalSubmitGroup,\r\n isShowCancelButton: isShowList && !this.props.moduleState.hasExternalSubmitGroup && !!this.getSavedDeliveryOption()\r\n },\r\n CheckoutDeliveryOptions: {\r\n moduleProps: this.props,\r\n className: classname('ms-checkout-delivery-options', this.props.config.className)\r\n },\r\n deliveryOptions: {\r\n DeliveryOptionsList: {\r\n className: 'ms-checkout-delivery-options__list',\r\n role: 'list',\r\n 'aria-label': deliveryOptionAriaLabel\r\n },\r\n list: this.getDeliveryOptionList()\r\n },\r\n deliveryOptionSelected: this.getDeliveryOptionSelected(),\r\n errorMessage: this.getErrorMessage(),\r\n waiting: ,\r\n saveButton: this.getSaveButton(),\r\n editButton: this.getEditButton(),\r\n cancelButton: this.getCancelButton(),\r\n onSave: this.onSave,\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n @action\r\n private readonly init = async (): Promise => {\r\n this.props.moduleState.init({\r\n onEdit: this.isSelectDefaultOptionEnabled ? undefined : this.onEdit,\r\n onCancel: this.isSelectDefaultOptionEnabled ? undefined : this.onCancel,\r\n onSubmit: this.isSelectDefaultOptionEnabled ? undefined : this.onSubmit,\r\n status:\r\n !(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption) &&\r\n this.canShip()\r\n ? 'updating'\r\n : 'disabled'\r\n });\r\n\r\n this.cartDeliveryMode = this.getSavedDeliveryOption();\r\n await this.loadDeliveryOptions();\r\n };\r\n\r\n private readonly canShip = (): boolean => {\r\n const hasInvoice = this.props.data.checkout.result?.checkoutCart.hasInvoiceLine;\r\n return !hasInvoice && this.getCartLinesForShipping().length > 0;\r\n };\r\n\r\n private readonly isDeliveryModeExists = (deliveryMode: string | undefined): boolean => {\r\n if (deliveryMode) {\r\n if (this.deliveryOptions.find(deliveryOption => deliveryOption.Code === deliveryMode)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private readonly getDeliveryOptionSelected = (): ICheckoutDeliveryOption | null => {\r\n const selectedItem = this.deliveryOptions.find(deliveryOption => deliveryOption.Code === this.selectedItemId);\r\n if (!selectedItem) {\r\n this.props.context.telemetry.error('Checkout delivery options content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const { id, typeName, context } = this.props;\r\n const { priceFree } = this.props.resources;\r\n const price = get(selectedItem, 'ShippingChargeAmount', 0);\r\n\r\n return {\r\n DeliveryOption: { className: 'ms-checkout-delivery-options__option-selected' },\r\n description: ,\r\n price: (\r\n \r\n )\r\n };\r\n };\r\n\r\n private readonly getErrorMessage = (): ICheckoutDeliveryOptionsError => {\r\n const { errorMessageTitle } = this.props.resources;\r\n return {\r\n // @ts-expect-error\r\n CheckoutDeliveryOptionsError: { tag: 'span', className: 'ms-address-form__error', role: 'alert', 'aria-live': 'assertive' },\r\n title: ,\r\n message: \r\n };\r\n };\r\n\r\n private readonly getDeliveryOptionList = (): ICheckoutDeliveryOptionEdit[] => {\r\n const count = this.deliveryOptions.length;\r\n const { priceFree } = this.props.resources;\r\n const { id, typeName, context } = this.props;\r\n\r\n return this.deliveryOptions.map((deliveryOption: DeliveryOption, index: number) => {\r\n return {\r\n DeliveryOption: { className: 'ms-checkout-delivery-options__option', role: 'listitem' },\r\n code: deliveryOption.Code || '',\r\n radioButton: (\r\n \r\n ),\r\n description: (\r\n \r\n ),\r\n price: (\r\n \r\n )\r\n };\r\n });\r\n };\r\n\r\n private readonly getSaveButton = (): React.ReactNode => {\r\n const { saveBtnLabel = 'Save' } = this.props.resources;\r\n return (\r\n \r\n {saveBtnLabel}\r\n \r\n );\r\n };\r\n\r\n private readonly getEditButton = (): React.ReactNode => {\r\n const { editBtnLabel = 'Change' } = this.props.resources;\r\n return (\r\n \r\n );\r\n };\r\n\r\n private readonly getCancelButton = (): React.ReactNode => {\r\n const { cancelBtnLabel = 'Cancel' } = this.props.resources;\r\n return (\r\n \r\n );\r\n };\r\n\r\n private readonly setError = (errorMessage: string): void => {\r\n this.props.telemetry.error(errorMessage);\r\n this.props.moduleState.setHasError(true);\r\n this.props.moduleState.onUpdating();\r\n this.errorMessage = errorMessage;\r\n };\r\n\r\n private readonly clearError = (): void => {\r\n this.props.moduleState.setHasError(false);\r\n this.errorMessage = undefined;\r\n };\r\n\r\n private readonly onSave = async (): Promise => {\r\n await this.onSubmit();\r\n };\r\n\r\n private readonly onEdit = async (): Promise => {\r\n this.props.telemetry.information('Delivery options onEdit is called.');\r\n\r\n this.onUpdating();\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n };\r\n\r\n private readonly onSubmit = async (): Promise => {\r\n this.props.telemetry.information('Delivery options onSubmit is called.');\r\n\r\n await this.updateCartDeliverySpecification(this.selectedItemId);\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n\r\n const cart = this.props.data.cart.result?.cart;\r\n if (cart) {\r\n const payload = await createGoogleAnalyticsEvent(cart, 'add_shipping_info', this.props.context.actionContext);\r\n payload.ecommerce!.shipping_tier = this.selectedItemId;\r\n await pushGoogleAnalyticsEvent(payload, this.props.context.actionContext);\r\n }\r\n };\r\n\r\n private readonly onCancel = async (): Promise => {\r\n this.props.telemetry.information('Delivery options onCancel is called.');\r\n\r\n // Reset to the saved value\r\n const savedDeliveryOption = this.getSavedDeliveryOption();\r\n if (savedDeliveryOption) {\r\n this.selectedItemId = savedDeliveryOption;\r\n this.onReady();\r\n\r\n await this.props.data.checkout.result?.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n } else {\r\n this.onUpdating();\r\n }\r\n };\r\n\r\n private readonly getSavedDeliveryOption = (): string | undefined => {\r\n const cartLinesForShipping = this.getCartLinesForShipping();\r\n return cartLinesForShipping[0] && cartLinesForShipping[0].DeliveryMode;\r\n };\r\n\r\n private readonly updateCartDeliverySpecification = async (deliveryModeId: string): Promise => {\r\n if (deliveryModeId.trim() === '') {\r\n return;\r\n }\r\n\r\n const { resources } = this.props;\r\n const checkoutState = this.props.data.checkout.result as ICheckoutState;\r\n const updateCartDeliverySpecificationInput = {\r\n deliveryModeId,\r\n shippingAddress: checkoutState.shippingAddress,\r\n channelDeliveryOptionConfig: this.retailMultiplePickUpOptionEnabled ? this.channelDeliveryOptionConfig : undefined\r\n };\r\n\r\n this.clearError();\r\n this.onPending();\r\n\r\n await checkoutState.checkoutCart\r\n .updateCartDeliverySpecification(updateCartDeliverySpecificationInput)\r\n .then(response => {\r\n if (response.status === 'FAILED') {\r\n this.setError(resources.genericErrorMessage);\r\n } else {\r\n this.onReady();\r\n this.props.moduleState.setIsCancellable(true);\r\n }\r\n })\r\n .catch(() => {\r\n this.setError(resources.genericErrorMessage);\r\n });\r\n };\r\n\r\n private readonly getCartLinesForShipping = (): CartLine[] => {\r\n const { request } = this.props.context;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n\r\n return this.retailMultiplePickUpOptionEnabled\r\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n this.channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n };\r\n\r\n private readonly getDeliveryOptions = async (shippingAddress: Address): Promise => {\r\n if (!this.props.data.checkout.result) {\r\n return;\r\n }\r\n\r\n const { context, resources, config } = this.props;\r\n const cartState = this.props.data.checkout.result?.checkoutCart;\r\n const cartId = (cartState.cart as Cart).Id;\r\n\r\n if (context) {\r\n this.isLoading = true;\r\n this.deliveryOptions = [];\r\n this.selectedItemId = '';\r\n this.clearError();\r\n\r\n try {\r\n let originalDeliveryMode: string = '';\r\n const shippingCartLines = this.getCartLinesForShipping();\r\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\r\n if (hasShippingDeliveryLines) {\r\n // First store the delivery mode, so that we can restore the shipping information.\r\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\r\n\r\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\r\n const cart = cartState.cart;\r\n await cartState.clearCartLinesDeliveryInformation({\r\n cart,\r\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\r\n });\r\n }\r\n\r\n // TODO: Check if we can move this getDeliveryOptions to checkout state\r\n let deliveryOptionFilter: FilterDeliveryModeOption;\r\n switch (config.filterDeliveryModeOption) {\r\n case filterDeliveryModeOption.none:\r\n deliveryOptionFilter = FilterDeliveryModeOption.None;\r\n break;\r\n case filterDeliveryModeOption.filterOutNonCarrierDeliveryMode:\r\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\r\n break;\r\n default:\r\n deliveryOptionFilter = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\r\n }\r\n const response = await getDeliveryOptionsAsync(\r\n {\r\n callerContext: context.actionContext,\r\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context.actionContext)\r\n },\r\n cartId,\r\n shippingAddress,\r\n [],\r\n deliveryOptionFilter,\r\n true\r\n );\r\n\r\n if (hasShippingDeliveryLines) {\r\n await this.updateCartDeliverySpecification(originalDeliveryMode);\r\n }\r\n\r\n if (response && response.length > 0) {\r\n this.deliveryOptions = response;\r\n }\r\n } catch {\r\n this.setError(resources.genericErrorMessage);\r\n }\r\n\r\n if (this.deliveryOptions.length === 0) {\r\n this.setError(resources.deliveryOptionsNotFound);\r\n } else if (this.cartDeliveryMode && this.isDeliveryModeExists(this.cartDeliveryMode)) {\r\n this.selectedItemId = this.cartDeliveryMode;\r\n this.cartDeliveryMode = undefined;\r\n this.onReady();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: true });\r\n\r\n if (!this.props.data.checkout.result?.isPaymentVerificationRedirection) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n }\r\n } else {\r\n this.onUpdating();\r\n this.selectedItemId = this.deliveryOptions.length > 0 ? this.deliveryOptions[0].Code || '' : ''; // By default, select first delivery\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: !!this.isSelectDefaultOptionEnabled });\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n };\r\n\r\n private readonly getStoredDeliveryOptions = async (): Promise => {\r\n if (!this.props.data.checkout.result) {\r\n return;\r\n }\r\n\r\n const { context } = this.props;\r\n const cartState = this.props.data.checkout.result.checkoutCart;\r\n\r\n if (context) {\r\n this.isLoading = true;\r\n this.deliveryOptions = [];\r\n this.selectedItemId = '';\r\n this.clearError();\r\n\r\n let originalDeliveryMode: string = '';\r\n const shippingCartLines = this.getCartLinesForShipping();\r\n const hasShippingDeliveryLines = shippingCartLines && shippingCartLines.length > 0 && shippingCartLines[0].DeliveryMode;\r\n if (hasShippingDeliveryLines) {\r\n // First store the delivery mode, so that we can restore the shipping information.\r\n originalDeliveryMode = shippingCartLines[0].DeliveryMode || '';\r\n\r\n // Clear the delivery information on retail server, so GetDeliveryOptions charge calculation works correctly\r\n const cart = cartState.cart;\r\n await cartState.clearCartLinesDeliveryInformation({\r\n cart,\r\n channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig\r\n });\r\n if (hasShippingDeliveryLines) {\r\n await this.updateCartDeliverySpecification(originalDeliveryMode);\r\n }\r\n }\r\n\r\n if (this.cartDeliveryMode) {\r\n this.selectedItemId = this.cartDeliveryMode;\r\n this.cartDeliveryMode = undefined;\r\n this.onReady();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Explicitly check for null/undefined.\r\n this.props.data.checkout.result?.updateHasCartDeliveryMode({ newHasCartDeliveryMode: true });\r\n\r\n if (!this.props.data.checkout.result.isPaymentVerificationRedirection) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n };\r\n\r\n private readonly loadDeliveryOptions = async (): Promise => {\r\n const shippingAddress = this.props.data.checkout.result?.shippingAddress;\r\n\r\n if (this.canShip() && shippingAddress) {\r\n if (\r\n !this.props.data.checkout.result?.isPaymentVerificationRedirection ||\r\n this.isSelectDefaultOptionEnabled ||\r\n this.props.data.checkout.result?.isExpressCheckoutApplied\r\n ) {\r\n await this.getDeliveryOptions(shippingAddress);\r\n }\r\n\r\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\r\n await this.getStoredDeliveryOptions();\r\n }\r\n\r\n if (\r\n this.isSelectDefaultOptionEnabled ||\r\n this.props.data.checkout.result?.isExpressCheckoutApplied ||\r\n this.isExpressPaymentAppliedInCartPage\r\n ) {\r\n await this.onSubmit();\r\n }\r\n }\r\n };\r\n\r\n private readonly onDeliveryOptionChange = (event: React.ChangeEvent) => {\r\n const deliveryModeId = event.currentTarget.value;\r\n this.selectedItemId = deliveryModeId;\r\n };\r\n\r\n private readonly onReady = () => {\r\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private readonly onUpdating = () => {\r\n if (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption)) {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n\r\n private readonly onPending = () => {\r\n if (!this.isSelectDefaultOptionEnabled) {\r\n this.props.moduleState.onPending();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutDeliveryOptions;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ICheckoutDeliveryOption,\r\n ICheckoutDeliveryOptionEdit,\r\n ICheckoutDeliveryOptionsList,\r\n ICheckoutDeliveryOptionsViewProps\r\n} from './checkout-delivery-options';\r\n\r\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list }) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n \r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {deliveryOption.price}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({ DeliveryOption, description, price }) => {\r\n return (\r\n \r\n {description}\r\n {price}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const {\r\n CheckoutDeliveryOptions,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton\r\n } = props;\r\n\r\n return (\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['checkout-delivery-options'] = {\n c: () => require('partner/modules/checkout-delivery-options/checkout-delivery-options.tsx'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'checkout-delivery-options',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/checkout-delivery-options'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|checkout-delivery-options|checkout-delivery-options'] = {\n c: () => require('partner/modules/checkout-delivery-options/checkout-delivery-options.view.tsx'),\n cn: '__local__-__local__-checkout-delivery-options'\n };\nviewDictionary['@msdyn365-commerce-modules|checkout|modules|checkout-delivery-options|checkout-delivery-options'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-delivery-options/checkout-delivery-options.view.js'),\n cn: '@msdyn365-commerce-modules-checkout-checkout-delivery-options'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["async","getProductDetails","productId","channelId","ctx","productDetails","tenantId","getRnrPartnerId","serviceEndPoint","getRnrEndpointId","productResult","ProductsDataActions","callerContext","product","getProductAvailabilitiesForSelectedVariant","ProductAvailabilitiesForSelectedVariantInput","then","productAvailabilities","productAvailableQuantity","catch","error","telemetry","exception","getPriceForSelectedVariant","PriceForSelectedVariantInput","undefined","productPrice","getDimensionsForSelectedVariant","GetDimensionsForSelectedVariantInput","productDimensions","getCartStateData","GetCartStateDataInput","requestContext","apiSettings","cartState","cart","getRatingsSummary","GetRatingsSummaryInput","toString","ratingsSummaryData","ratingsSummary","GetCategoryPathsInput","constructor","context","categoryPathLooksups","getCacheKey","buildCacheKey","base","this","constructedCacheKey","locale","catalogId","getCacheObjectType","dataCacheType","getLocale","ChannelId","CatalogId","getCatalogId","forEach","categoryPath","ProductId","createGoogleAnalyticsEvent","eventName","actionContext","_actionContext$reques","channel","RecordId","items","CartLines","i","cartLine","_product$Dimensions","_cartLine$DiscountLin","_product$ExtensionPro","_product$Name","_ref","_product$Price","_cartLine$Quantity","variant","Dimensions","map","d","_d$DimensionValue","DimensionValue","Value","join","discount","DiscountLines","reduce","a","b","_b$Amount","Amount","brand","ExtensionProperties","find","ep","Key","StringValue","item","recId","item_id","ProductNumber","ItemId","item_name","Name","index","item_variant","price","Price","pid","item_brand","quantity","Quantity","push","event","ecommerce","currency","value","_b$price","pushGoogleAnalyticsEvent","payload","dataLayer","window","gaItem","_payload$ecommerce$it","_payload$ecommerce","categoryPaths","getCategoryPaths","_categoryPaths$0$Name","_categoryPaths$1$Name","_categoryPaths$2$Name","_categoryPaths$3$Name","_categoryPaths$4$Name","length","item_category","item_category2","item_category3","item_category4","item_category5","filterDeliveryModeOption","useDefaultDeliveryOption","HeadingTag","description","React","className","message","title","isChecked","ariaSetSize","ariaPosInSet","ariaLabel","telemetryContent","onChange","payLoad","getPayloadObject","TelemetryConstant","DeliveryOptions","attributes","getTelemetryAttributes","Object","assign","checked","type","contentAction","etext","name","CheckoutDeliveryOptions","props","super","selectedItemId","deliveryOptions","isLoading","retailMultiplePickUpOptionEnabled","init","moduleState","onEdit","isSelectDefaultOptionEnabled","onCancel","onSubmit","status","config","notDisplaySelectedDeliveryOption","canShip","cartDeliveryMode","getSavedDeliveryOption","loadDeliveryOptions","_this$props$data$chec","data","checkout","result","checkoutCart","hasInvoiceLine","getCartLinesForShipping","isDeliveryModeExists","deliveryMode","deliveryOption","Code","getDeliveryOptionSelected","selectedItem","id","typeName","priceFree","resources","get","DeliveryOption","DescriptionComponent","Description","PriceComponent","CustomerContextualPrice","freePriceText","getErrorMessage","errorMessageTitle","CheckoutDeliveryOptionsError","tag","role","ErrorTitleComponent","ErrorMessageComponent","errorMessage","getDeliveryOptionList","count","code","radioButton","RadioButtonComponent","onDeliveryOptionChange","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","_this$props$data$cart","updateCartDeliverySpecification","shipping_tier","savedDeliveryOption","_this$props$data$chec4","onReady","cartLinesForShipping","DeliveryMode","deliveryModeId","trim","checkoutState","updateCartDeliverySpecificationInput","shippingAddress","channelDeliveryOptionConfig","onPending","response","genericErrorMessage","setIsCancellable","request","pickupDeliveryModeCode","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","filter","_this$channelDelivery","PickupDeliveryModeCodes","getDeliveryOptions","_this$props$data$chec5","cartId","Id","originalDeliveryMode","shippingCartLines","hasShippingDeliveryLines","clearCartLinesDeliveryInformation","channelDeliveryOptionConfiguration","deliveryOptionFilter","none","FilterDeliveryModeOption","None","filterOutNonCarrierDeliveryMode","FilterOutNonCarrierDeliveryMode","getDeliveryOptionsAsync","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","_unused","deliveryOptionsNotFound","_this$props$data$chec6","_this$props$data$chec7","updateHasCartDeliveryMode","newHasCartDeliveryMode","isPaymentVerificationRedirection","_this$props$data$chec8","getStoredDeliveryOptions","_this$props$data$chec9","_this$props$data$chec10","_this$props$data$chec11","_this$props$data$chec12","_this$props$data$chec13","_this$props$data$chec14","isExpressCheckoutApplied","isExpressPaymentAppliedInCartPage","currentTarget","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$cart2","_this$props$data$cart3","properties","property","JSON","parse","_this$expressPaymentD","_this$expressPaymentD2","expressPaymentDetailsFromCartPage","isExpressCheckoutAppliedInCartPage","_this$props$data$chec19","when","isDataReady","reaction","_this$props$data$chec15","_this$props$data$chec16","_this$props$data$chec17","_this$props$data$chec18","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec20","checkoutError","errorLocation","ErrorLocation","shouldComponentUpdate","nextProps","nextState","state","render","_this$props$data$chan","_this$props$data$feat","featureState","feature","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","saveButton","editButton","cancelButton","renderView","__decorate","observable","computed","action","withModuleState","observer","DeliveryOptionList","Node","key","DeliveryOptionSelected","_ref2","Module","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}