{"version":3,"file":"static/js/c8a45dcb91b8b3d22047.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./lib/checkout-delivery-options/module-registration.js?e78e","webpack://Msdyn365.Commerce.Online/../../src/checkout-state-data-action.ts?8344","webpack://Msdyn365.Commerce.Online/../../src/checkout-state.ts?acd8","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/module-state.ts?7579","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://Msdyn365.Commerce.Online/./src/common/error.tsx?096f","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/components/checkout-delivery-options.description.tsx?840c","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-message.tsx?8ca3","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/components/checkout-delivery-options.error-title.tsx?f7e7","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/components/checkout-delivery-options.radio-button.tsx?9df9","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/checkout-delivery-options.tsx?6764","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?1e75","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["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('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-delivery-options/checkout-delivery-options'),\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: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-delivery-options',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/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['@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 };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { CheckoutState } from './checkout-state';\n\n/**\n * CheckoutState - action input.\n */\nexport class CheckoutStateInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('CheckoutState', this.apiSettings);\n\n public getCacheObjectType = () => 'CheckoutState';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CheckoutState - action.\n * @param input\n * @param ctx\n */\nexport async function checkoutStateAction(input: CheckoutStateInput, ctx: IActionContext): Promise {\n return new CheckoutState();\n}\n\n/**\n * CheckoutState - create new input for create action.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\n return new CheckoutStateInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * CheckoutState - create action.\n */\nexport const checkoutStateActionDataAction = createObservableDataAction({\n action: >checkoutStateAction,\n input: createInput\n});\n\nexport default checkoutStateActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { Address, GiftCard, TenderLine, TokenizedPaymentCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { action, computed, observable } from 'mobx';\n\n/**\n * State information related to what is needed to succesfully perform a checkout.\n */\nexport class CheckoutState {\n @observable private _tokenizedPaymentCard: TokenizedPaymentCard | undefined;\n\n @computed public get tokenizedPaymentCard(): Readonly | undefined {\n return this._tokenizedPaymentCard;\n }\n\n @observable private _tenderLine: TenderLine | undefined;\n\n @computed public get tenderLine(): Readonly | undefined {\n return this._tenderLine;\n }\n\n @observable private _billingAddress: Address | undefined;\n\n @computed public get billingAddress(): Readonly
| undefined {\n return this._billingAddress;\n }\n\n @observable private _shippingAddress: Address | undefined;\n\n @computed public get shippingAddress(): Readonly
| undefined {\n return this._shippingAddress;\n }\n\n @observable private _cardPrefix: string | undefined;\n\n @computed public get cardPrefix(): Readonly | undefined {\n return this._cardPrefix;\n }\n\n @observable private _giftCards: GiftCard[] = [];\n\n @computed public get giftCards(): readonly GiftCard[] {\n return this._giftCards;\n }\n\n @observable private _giftCardExtends: IGiftCardExtend[] = [];\n\n @computed public get giftCardExtends(): readonly IGiftCardExtend[] {\n return this._giftCardExtends;\n }\n\n @observable private _loyaltyCardNumber?: string;\n\n @computed public get loyaltyCardNumber(): Readonly | undefined {\n return this._loyaltyCardNumber;\n }\n\n @observable private _loyaltyAmount: number = 0;\n\n @computed public get loyaltyAmount(): Readonly | number {\n return this._loyaltyAmount;\n }\n\n @observable private _guestCheckoutEmail: string = '';\n\n @computed public get guestCheckoutEmail(): Readonly | string {\n return this._guestCheckoutEmail;\n }\n\n @observable private _isTermsAndConditionAccepted: boolean = false;\n\n @computed public get isTermsAndConditionAccepted(): Readonly | boolean {\n return this._isTermsAndConditionAccepted;\n }\n\n @observable private _customerAccountAmount: number = 0;\n\n @computed public get customerAccountAmount(): Readonly | number {\n return this._customerAccountAmount;\n }\n\n @action\n public updateTokenizedPaymentCard(newTokenizedPaymentCard: TokenizedPaymentCard): void {\n this._tokenizedPaymentCard = newTokenizedPaymentCard;\n }\n\n @action\n public updateTenderLine(newTenderLine: TenderLine | undefined): void {\n this._tenderLine = newTenderLine;\n }\n\n @action\n public updateShippingAddress(newShippingAddress: Address): void {\n this._shippingAddress = newShippingAddress;\n }\n\n @action\n public updateBillingAddress(newBillingAddress: Address): void {\n this._billingAddress = newBillingAddress;\n }\n\n @action\n public updateCardPrefix(newCardPrefix: string): void {\n this._cardPrefix = newCardPrefix;\n }\n\n @action\n public removeGiftCard(giftCardNumber: string): void {\n this._giftCards = this._giftCards.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public removeGiftCardExtend(giftCardNumber: string): void {\n this._giftCardExtends = this._giftCardExtends.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public addGiftCard(giftCard: GiftCard): void {\n this._giftCards = [giftCard, ...this._giftCards];\n }\n\n @action\n public addGiftCardExtend(giftCard: IGiftCardExtend): void {\n this._giftCardExtends = [giftCard, ...this._giftCards];\n }\n\n @action\n public updateLoyaltyCardNumber(newLoyaltyCardNumber: string): void {\n this._loyaltyCardNumber = newLoyaltyCardNumber;\n }\n\n @action\n public updateLoyaltyAmount(newAmount: number): void {\n this._loyaltyAmount = newAmount;\n }\n\n @action\n public updateGuestCheckoutEmail(newGuestCheckoutEmail: string): void {\n this._guestCheckoutEmail = newGuestCheckoutEmail;\n }\n\n @action\n public updateTermsAndConditionsAcceptance(newIsTermsAndConditionAccepted: boolean): void {\n this._isTermsAndConditionAccepted = newIsTermsAndConditionAccepted;\n }\n\n @action\n public updateCustomerAccountAmount(newAmount: number): void {\n this._customerAccountAmount = newAmount;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, IActionContext, IActionInput } from '@msdyn365-commerce/core';\n\nimport { IModuleStates } from './module-state.data';\n\n/**\n * GetModulesInput.\n */\nexport class ModuleStatesCacheKey implements IActionInput {\n public getCacheKey = () => 'ModuleState';\n\n public getCacheObjectType = () => 'ModuleState';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport function getModuleStates(ctx: IActionContext): IModuleStates {\n const cacheKey = new ModuleStatesCacheKey();\n\n let moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n if (moduleStates) {\n return moduleStates;\n }\n ctx.update(cacheKey, {});\n moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n return moduleStates;\n}\n\nexport function updateModuleStates(value: IModuleStates, ctx: IActionContext): void {\n const cacheKey = new ModuleStatesCacheKey();\n ctx.update(cacheKey, value);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModule } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport isMatch from 'lodash/isMatch';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { getModuleStates, updateModuleStates } from './module-state';\nimport { IModuleState, IModuleStateManager, IModuleStateProps, IModuleStates } from './module-state.data';\n\nexport interface IProps extends IModule, IModuleStateProps {\n enableControl?: boolean;\n}\n\nconst sectionContainerModuleId = 'section-container';\nconst paymentInstrumentModuleId = 'payment-instrument';\n\nconst withModuleState =

(WrappedComponent: React.ComponentType

): React.ComponentType

=> {\n /**\n *\n * ModuleState component.\n * @extends {React.Component

}\n */\n @observer\n class ModuleState extends React.Component

{\n constructor(props: P) {\n super(props);\n this.initializeState();\n }\n\n public shouldComponentUpdate(nextProps: IModuleStateProps): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { id } = this.props;\n return ;\n }\n\n private readonly initializeState = (): void => {\n const { id, typeName, context } = this.props;\n const states = getModuleStates(context.actionContext);\n if (!states) {\n this.props.telemetry.error('withModuleState initializeState() - states not found');\n return;\n }\n\n if (states[id]) {\n // State has been initialized\n return;\n }\n\n updateModuleStates(\n {\n ...states,\n [id]: {\n id,\n typeName,\n hasInitialized: false,\n hasError: false,\n isRequired: true,\n isCancellable: true,\n isSubmitContainer: false,\n status: undefined,\n childIds: []\n }\n },\n context.actionContext\n );\n };\n\n /**\n * GetModuleStateManager\n * Get module state manager by id.\n * @param id\n */\n private readonly getModuleStateManager = (id: string): IModuleStateManager => {\n const moduleState = this.get()[id];\n return {\n ...moduleState!,\n hasInitialized: this.validate(id, { hasInitialized: true }, true), // All has initialized is initialized\n hasError: this.validate(id, { hasError: true }), // Partial has error is error\n isReady: this.validate(id, { status: 'ready' }, true, true), // All ready is ready (exclued disabled and skipped)\n isUpdating: this.validate(id, { status: 'updating' }), // Partial updating is updating\n isPending: this.validate(id, { status: 'pending' }), // Partial pending is pending\n isSkipped: this.validate(id, { status: 'skipped' }, true, true), // All skipped is skipped (exclued disabled)\n isDisabled: this.validate(id, { status: 'disabled' }, true), // All disabled is disabled\n isCancelAllowed: this.validate(id, { isCancellable: true }, true, true), // Partial not allowed is not allowed\n shouldSubmitContainer: this.validate(id, { isSubmitContainer: true }), // Partial submit is submit.\n hasExternalSubmitGroup: this.hasExternalSubmitGroup(),\n hasModuleState: this.hasModuleState(id),\n setIsRequired: (value: boolean): void => {\n this.update(id, { isRequired: value });\n },\n setIsCancellable: (value: boolean): void => {\n this.update(id, { isCancellable: value });\n },\n setIsSubmitContainer: (value: boolean): void => {\n this.update(id, { isSubmitContainer: value });\n },\n setHasError: (value: boolean): void => {\n this.update(id, { hasError: value });\n },\n onReady: (): void => {\n this.update(id, { status: 'ready' });\n },\n onUpdating: (): void => {\n this.update(id, { status: 'updating' });\n },\n onPending: (): void => {\n this.update(id, { status: 'pending' });\n },\n onSkip: (): void => {\n this.update(id, { status: 'skipped' });\n },\n onDisable: (): void => {\n this.update(id, { status: 'disabled' });\n },\n getModule: (moduleId: string): IModuleStateManager => this.getModuleStateManager(moduleId),\n getModuleByTypeName: (typeName: string): IModuleStateManager => this.getModuleStateManagerByTypeName(typeName),\n init: (options?: Partial): void => {\n if (moduleState?.hasInitialized) {\n // State has been initialized\n return;\n }\n this.update(id, {\n hasInitialized: true,\n ...options\n });\n }\n };\n };\n\n /**\n * GetModuleStateManagerByTypeName\n * Get module state manager by type name.\n * @param typeName\n */\n private readonly getModuleStateManagerByTypeName = (typeName: string): IModuleStateManager => {\n const moduleStates = getModuleStates(this.props.context.actionContext);\n const moduleState = Object.values(moduleStates).find(_moduleState => _moduleState?.typeName === typeName);\n return this.getModuleStateManager((moduleState && moduleState.id) || '');\n };\n\n /**\n * Get\n * Get all module states.\n */\n private readonly get = (): IModuleStates => {\n return getModuleStates(this.props.context.actionContext);\n };\n\n /**\n * Update\n * Update module state.\n * @param id\n * @param value\n */\n private readonly update = (id: string, value: Partial): void => {\n // Console.log('withModuleState - update', id, value);\n const modules = this.get();\n if (!modules[id]) {\n this.props.telemetry.error(`withModuleState update() - Module state with id ${id} is not found.`);\n return;\n }\n modules[id] = {\n ...modules[id]!,\n ...value\n };\n };\n\n private readonly _validateLeaf = (id: string, source: Partial): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n return isMatch(module, source);\n };\n\n private readonly _validateContainer = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n // Module doesn't has module state\n return !!allMatched;\n }\n\n if (skipSkippableItem && (module.status === 'disabled' || module.status === 'skipped')) {\n // Skip disabled or skipped modules\n return !!allMatched;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n let childIds = module.childIds;\n\n if (this.props.context.app.config.shouldEnableSinglePaymentAuthorizationCheckout) {\n // For new checkout flow, we bypass the isReady check for payment section container to enable the place order button.\n childIds = childIds.filter(childId => !this._isPaymentSectionContainer(childId));\n }\n\n // It is container module\n const method = allMatched ? 'every' : 'some';\n return childIds[method](childId => this._validateContainer(childId, source, allMatched, skipSkippableItem));\n };\n\n /**\n * Check if it is a section container with payment module.\n * @param moduleId -- The id of the module.\n * @returns If it is a section container with payment module.\n */\n private readonly _isPaymentSectionContainer = (moduleId: string): boolean => {\n if (!moduleId.includes(sectionContainerModuleId)) {\n return false;\n }\n\n const modules = this.get();\n const module = modules[moduleId];\n\n if (module && ArrayExtensions.hasElements(module.childIds.filter(childId => childId.includes(paymentInstrumentModuleId)))) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Validate\n * Validate current module and all its child module match the provided condition.\n * @param id\n * @param source\n * @param allMatched\n * @param skipSkippableItem\n */\n private readonly validate = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n // It is container module\n return this._validateContainer(id, source, allMatched, skipSkippableItem);\n };\n\n /**\n * HasExternalSubmitGroup\n * Module will use external submit group.\n */\n private readonly hasExternalSubmitGroup = (): boolean => {\n return !!this.props.enableControl;\n };\n\n /**\n * HasModuleState\n * Module is using module state manager.\n * @param id\n */\n private readonly hasModuleState = (id: string): boolean => {\n const modules = this.get();\n const module = modules[id];\n return !!module;\n };\n }\n\n return ModuleState;\n};\n\nexport default withModuleState;\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\n/**\n * The payment error.\n */\nexport interface IPaymentError {\n title: string;\n message: string;\n className?: string;\n}\n\n/**\n * The payment error.\n * @param param0 - First param.\n * @param param0.title - Title.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const ErrorComponent: React.FC = ({ title, message, className = 'ms-checkout-payment-instrument' }) => (\n

\n

{title}

\n

{message}

\n
\n);\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 ICheckoutDeliveryOptionsDescriptionProps {\n description?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.description\n * @extends {React.FC}\n */\nconst CheckoutDeliveryOptionsDescription: React.FC = ({ description }) => {\n if (!description) {\n return null;\n }\n\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 { PriceComponent } from '@msdyn365-commerce/components';\nimport { 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 { Address, CartLine, DeliveryOption } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { QueryResultSettingsProxy } 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';\n\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';\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 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 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 @computed private get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\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 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 }\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?.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 }\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 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 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\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\n return this.deliveryOptions.map((deliveryOption: DeliveryOption, index: number) => {\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.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\n await this.updateCartDeliverySpecification(this.selectedItemId);\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 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 this.setError(resources.genericErrorMessage);\n } else {\n this.onReady();\n this.props.moduleState.setIsCancellable(true);\n }\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\n if (this.canShip() && shippingAddress) {\n if (\n !this.props.data.checkout.result?.isPaymentVerificationRedirection ||\n this.isSelectDefaultOptionEnabled ||\n this.props.data.checkout.result?.isExpressCheckoutApplied\n ) {\n await this.getDeliveryOptions(shippingAddress);\n }\n\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n await this.getStoredDeliveryOptions();\n }\n\n if (\n this.isSelectDefaultOptionEnabled ||\n this.props.data.checkout.result?.isExpressCheckoutApplied ||\n this.isExpressPaymentAppliedInCartPage\n ) {\n this.onSubmit();\n }\n }\n };\n\n private readonly onDeliveryOptionChange = (event: React.ChangeEvent) => {\n const deliveryModeId = event.currentTarget.value;\n this.selectedItemId = deliveryModeId;\n };\n\n private readonly 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\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 viewState,\n deliveryOptions,\n deliveryOptionSelected,\n alert,\n waiting,\n saveButton,\n editButton,\n cancelButton\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 && }\n {viewState.isShowSelected && deliveryOptionSelected && }\n {viewState.isShowSaveButton && saveButton}\n {viewState.isShowEditButton && editButton}\n {viewState.isShowCancelButton && cancelButton}\n \n );\n};\n\nexport default CheckoutDeliveryOptionsView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","CheckoutStateInput","apiSettings","_this","getCacheKey","buildCacheKey","getCacheObjectType","dataCacheType","this","createObservableDataAction","action","input","ctx","CheckoutState","inputData","requestContext","_giftCards","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_isTermsAndConditionAccepted","_customerAccountAmount","Object","defineProperty","_tokenizedPaymentCard","_tenderLine","_billingAddress","_shippingAddress","_cardPrefix","_loyaltyCardNumber","updateTokenizedPaymentCard","newTokenizedPaymentCard","updateTenderLine","newTenderLine","updateShippingAddress","newShippingAddress","updateBillingAddress","newBillingAddress","updateCardPrefix","newCardPrefix","removeGiftCard","giftCardNumber","filter","giftCard","Id","removeGiftCardExtend","addGiftCard","__spreadArrays","addGiftCardExtend","updateLoyaltyCardNumber","newLoyaltyCardNumber","updateLoyaltyAmount","newAmount","updateGuestCheckoutEmail","newGuestCheckoutEmail","updateTermsAndConditionsAcceptance","newIsTermsAndConditionAccepted","updateCustomerAccountAmount","__decorate","observable","computed","ModuleStatesCacheKey","getModuleStates","cacheKey","moduleStates","get","update","WrappedComponent","_super","ModuleState","props","call","initializeState","value","_b","typeName","context","states","actionContext","__assign","_a","hasInitialized","hasError","isRequired","isCancellable","isSubmitContainer","status","undefined","childIds","telemetry","error","getModuleStateManager","moduleState","validate","isReady","isUpdating","isPending","isSkipped","isDisabled","isCancelAllowed","shouldSubmitContainer","hasExternalSubmitGroup","hasModuleState","setIsRequired","setIsCancellable","setIsSubmitContainer","setHasError","onReady","onUpdating","onPending","onSkip","onDisable","getModule","moduleId","getModuleByTypeName","getModuleStateManagerByTypeName","init","options","values","find","_moduleState","_validateLeaf","source","module","isMatch","_validateContainer","allMatched","skipSkippableItem","length","app","config","shouldEnableSinglePaymentAuthorizationCheckout","childId","_isPaymentSectionContainer","includes","ArrayExtensions","hasElements","enableControl","__extends","shouldComponentUpdate","nextProps","render","React","observer","ErrorComponent","_ref","title","message","className","role","description","isChecked","ariaSetSize","ariaPosInSet","ariaLabel","telemetryContent","onChange","payLoad","getPayloadObject","TelemetryConstant","DeliveryOptions","attributes","getTelemetryAttributes","assign","checked","type","contentAction","etext","CheckoutDeliveryOptions","constructor","super","selectedItemId","deliveryOptions","isLoading","retailMultiplePickUpOptionEnabled","async","onEdit","isSelectDefaultOptionEnabled","onCancel","onSubmit","useDefaultDeliveryOption","canShip","cartDeliveryMode","getSavedDeliveryOption","loadDeliveryOptions","_this$props$data$chec","data","checkout","result","checkoutCart","hasInvoiceLine","getCartLinesForShipping","isDeliveryModeExists","deliveryMode","deliveryOption","Code","getDeliveryOptionSelected","selectedItem","priceFree","resources","price","DeliveryOption","DescriptionComponent","Description","PriceComponent","CustomerContextualPrice","freePriceText","getErrorMessage","errorMessageTitle","CheckoutDeliveryOptionsError","tag","ErrorTitleComponent","ErrorMessageComponent","errorMessage","getDeliveryOptionList","count","map","index","code","radioButton","RadioButtonComponent","onDeliveryOptionChange","getSaveButton","saveBtnLabel","Button","color","disabled","onClick","onSave","getEditButton","editBtnLabel","getCancelButton","cancelBtnLabel","setError","clearError","_this$props$data$chec2","information","updateShouldCollapsePaymentSection","newShouldCollapsePaymentSection","_this$props$data$chec3","updateCartDeliverySpecification","savedDeliveryOption","_this$props$data$chec4","cartLinesForShipping","DeliveryMode","deliveryModeId","trim","checkoutState","updateCartDeliverySpecificationInput","shippingAddress","channelDeliveryOptionConfig","then","response","genericErrorMessage","catch","request","pickupDeliveryModeCode","channel","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","cart","CartLines","cartLine","_this$channelDelivery","PickupDeliveryModeCodes","getDeliveryOptions","_this$props$data$chec5","cartState","cartId","originalDeliveryMode","shippingCartLines","hasShippingDeliveryLines","clearCartLinesDeliveryInformation","channelDeliveryOptionConfiguration","deliveryOptionFilter","filterDeliveryModeOption","FilterDeliveryModeOption","None","FilterOutNonCarrierDeliveryMode","getDeliveryOptionsAsync","callerContext","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","event","currentTarget","getTelemetryObject","telemetryPageName","friendlyName","_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$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","nextState","state","_this$props$data$chan","_this$props$data$feat","featureState","feature","Name","IsEnabled","isError","isShowList","isShowSelected","deliveryOptionAriaLabel","viewProps","deliveryOptionsData","alert","errorMessageData","viewState","isShowSaveButton","isShowEditButton","isShowCancelButton","moduleProps","classname","DeliveryOptionsList","list","deliveryOptionSelected","waiting","Waiting","saveButton","editButton","cancelButton","renderView","withModuleState","DeliveryOptionList","Node","key","DeliveryOptionSelected","_ref2","Module","exports","ReactDOM"],"sourceRoot":""}