{"version":3,"file":"static/js/ba86cc0423be7fc01a6f.bundle.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/actions/savesubmit-enabledisable.action.ts?d0df","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/c-checkout-delivery-options.props.autogenerated.ts?e27e","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/components/c-checkout-delivery-options.description.tsx?124b","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/components/c-checkout-delivery-options.error-message.tsx?0cac","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/components/c-checkout-delivery-options.error-title.tsx?4337","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/components/c-checkout-delivery-options.radio-button.tsx?34fc","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/c-checkout-delivery-options.tsx?f1be","webpack://msdyn365.commerce.online/./src/modules/c-checkout-delivery-options/c-checkout-delivery-options.view.tsx?d0c5","webpack://msdyn365.commerce.online/./lib/c-checkout-delivery-options/module-registration.js?9b92","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/external var \"React\"?0d3b","webpack://msdyn365.commerce.online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\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\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * SavesubmitEnabledisable Input Action\r\n */\r\nexport class SavesubmitEnabledisableInput implements Msdyn365.IActionInput {\r\n // TODO: Construct the input needed to run the action\r\n constructor() {}\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `SavesubmitEnabledisable`;\r\n public getCacheObjectType = () => 'SavesubmitEnabledisable';\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\nexport interface ISavesubmitEnabledisableData {\r\n disableButton: boolean;\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new SavesubmitEnabledisableInput();\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: SavesubmitEnabledisableInput, ctx: Msdyn365.IActionContext): Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // TODO: Uncomment the below line to get the value from a service\r\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\r\n return { disableButton: false };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // TODO: Give your data action a unique id\r\n id: 'SavesubmitEnabledisable',\r\n input: createInput\r\n // TODO: Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\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 * ICCheckoutDeliveryOptions 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 ICCheckoutDeliveryOptionsConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n filterDeliveryModeOption?: filterDeliveryModeOption;\r\n useDefaultDeliveryOption?: useDefaultDeliveryOption;\r\n className?: string;\r\n deliveryOptionText?: Msdyn365.RichText;\r\n}\r\n\r\nexport interface ICCheckoutDeliveryOptionsResources {\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 ICCheckoutDeliveryOptionsProps extends Msdyn365.IModule {\r\n resources: ICCheckoutDeliveryOptionsResources;\r\n config: ICCheckoutDeliveryOptionsConfig;\r\n}\r\n","/*--------------------------------------------------------------\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\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 = ({\r\n description\r\n}) => {\r\n if (!description) {\r\n return null;\r\n }\r\n\r\n return (\r\n {description}\r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsDescription;\r\n","/*--------------------------------------------------------------\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\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 = ({\r\n message\r\n}) => {\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return (\r\n

\r\n {message}\r\n

\r\n );\r\n\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsErrorMessage;\r\n","/*--------------------------------------------------------------\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\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 = ({\r\n title\r\n}) => {\r\n if (!title) {\r\n return null;\r\n }\r\n\r\n return (\r\n

\r\n {title}\r\n

\r\n );\r\n\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsErrorTitle;\r\n","/*--------------------------------------------------------------\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\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. All rights reserved.\r\n * See License.txt 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 { ICheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { Cart, ChannelDeliveryOptionConfiguration, FilterDeliveryModeOption } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n getDeliveryOptionsAsync\r\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport {\r\n Address, CartLine, DeliveryOption\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\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 { ICCheckoutDeliveryOptionsData } from './c-checkout-delivery-options.data';\r\nimport { filterDeliveryModeOption, ICCheckoutDeliveryOptionsProps, useDefaultDeliveryOption } from './c-checkout-delivery-options.props.autogenerated';\r\nimport DescriptionComponent from './components/c-checkout-delivery-options.description';\r\nimport ErrorMessageComponent from './components/c-checkout-delivery-options.error-message';\r\nimport ErrorTitleComponent from './components/c-checkout-delivery-options.error-title';\r\nimport RadioButtonComponent from './components/c-checkout-delivery-options.radio-button';\r\nimport { SavesubmitEnabledisableInput } from '../../actions/savesubmit-enabledisable.action';\r\n\r\nexport interface ICheckoutDeliveryOptionsModuleProps extends ICCheckoutDeliveryOptionsProps, 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 ICCheckoutDeliveryOptionsProps<{}> {\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 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 @computed private get isPaymentVerificationRedirection(): boolean {\r\n const { requestFormData, query } = this.props.context.request;\r\n return !!((requestFormData && query && query.pv === '1'));\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(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\r\n this.isSelectDefaultOptionEnabled = this.props.config.useDefaultDeliveryOption &&\r\n 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 && 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 if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n }\r\n }\r\n );\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: ICheckoutDeliveryOptionsModuleProps,\r\n 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 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 multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n this.channelDeliveryOptionConfig = this.props.data.channelDeliveryOptionConfig?.result;\r\n this.retailMultiplePickUpOptionEnabled = this.props.data.featureState?.result\r\n ?.find(feature => feature.Name === multiplePickupStoreSwitchName)?.IsEnabled;\r\n\r\n const { 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 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 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: (!(this.props.config.useDefaultDeliveryOption === useDefaultDeliveryOption.notDisplaySelectedDeliveryOption) &&\r\n this.canShip()) ? 'updating' : 'disabled'\r\n });\r\n\r\n this.cartDeliveryMode = this.getSavedDeliveryOption();\r\n\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 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 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 {editBtnLabel}\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 {cancelBtnLabel}\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.onUpdating();\r\n this.props.context.actionContext.update(new SavesubmitEnabledisableInput(), { disableButton: true});\r\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: true });\r\n }\r\n };\r\n\r\n private readonly onSubmit = async (): Promise => {\r\n await this.updateCartDeliverySpecification(this.selectedItemId);\r\n this.props.context.actionContext.update(new SavesubmitEnabledisableInput(), { disableButton: false});\r\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n }\r\n };\r\n\r\n private readonly onCancel = async (): Promise => {\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 if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout) {\r\n await this.props.data.checkout.result.updateShouldCollapsePaymentSection({ newShouldCollapsePaymentSection: false });\r\n }\r\n\r\n } else {\r\n this.onUpdating();\r\n }\r\n this.props.context.actionContext.update(new SavesubmitEnabledisableInput(), { disableButton: false});\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.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 () => {\r\n this.setError(resources.genericErrorMessage);\r\n }\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 ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== this.channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.find(deliveryMode => deliveryMode === cartLine.DeliveryMode) && cartLine.DeliveryMode !== emailDeliveryModeCode) : cartLine)\r\n ) : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(\r\n cartLine => ((cartLine.DeliveryMode && cartLine.DeliveryMode !== '') ? (cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode) : 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\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\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({ cart, channelDeliveryOptionConfiguration: this.channelDeliveryOptionConfig });\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({ callerContext: context.actionContext, queryResultSettings: {} }, cartId, shippingAddress, [], deliveryOptionFilter, true);\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 // For new checkout flow, when this module is ready, update the flag to call GetCardPaymentAcceptPoint with amountDue.\r\n if (this.props.data.checkout.result.shouldEnableSinglePaymentAuthorizationCheckout &&\r\n !this.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\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 && this.props.data.checkout.result.shippingAddress;\r\n\r\n if (this.canShip() && shippingAddress) {\r\n await this.getDeliveryOptions(shippingAddress);\r\n\r\n if (this.isSelectDefaultOptionEnabled || this.props.data.checkout.result?.isExpressCheckoutApplied) {\r\n 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. All rights reserved.\r\n * See License.txt 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 ICheckoutDeliveryOptionsError,\r\n ICheckoutDeliveryOptionsList,\r\n ICheckoutDeliveryOptionsViewProps\r\n} from './c-checkout-delivery-options';\r\nimport ReactHtmlParser from 'react-html-parser';\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 ErrorMessage: React.FC = ({ Error, title, message }) => {\r\n return (\r\n \r\n {title}\r\n {message}\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 errorMessage,\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 && errorMessage && }\r\n

{ReactHtmlParser(`${props.config.deliveryOptionText}`)}

\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['c-checkout-delivery-options'] = {\n c: () => require('partner/modules/c-checkout-delivery-options/c-checkout-delivery-options.tsx'),\n $type: 'contentModule',\n da: [{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: 'c-checkout-delivery-options',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/c-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/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|c-checkout-delivery-options|c-checkout-delivery-options'] = {\n c: () => require('partner/modules/c-checkout-delivery-options/c-checkout-delivery-options.view.tsx'),\n cn: '__local__-__local__-c-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","module.exports = React;","module.exports = ReactDOM;"],"names":["SavesubmitEnabledisableInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","Msdyn365","action","async","input","ctx","disableButton","id","args","filterDeliveryModeOption","useDefaultDeliveryOption","HeadingTag","description","React","className","message","title","isChecked","value","ariaSetSize","ariaPosInSet","ariaLabel","telemetryContent","onChange","payLoad","getPayloadObject","TelemetryConstant","DeliveryOptions","attributes","getTelemetryAttributes","checked","type","contentAction","etext","name","CheckoutDeliveryOptions","props","super","selectedItemId","deliveryOptions","isLoading","retailMultiplePickUpOptionEnabled","init","this","moduleState","onEdit","isSelectDefaultOptionEnabled","undefined","onCancel","onSubmit","status","config","notDisplaySelectedDeliveryOption","canShip","cartDeliveryMode","getSavedDeliveryOption","loadDeliveryOptions","data","checkout","result","checkoutCart","hasInvoiceLine","getCartLinesForShipping","length","isDeliveryModeExists","deliveryMode","find","deliveryOption","Code","getDeliveryOptionSelected","selectedItem","context","telemetry","error","typeName","priceFree","resources","price","get","DeliveryOption","DescriptionComponent","Description","PriceComponent","CustomerContextualPrice","freePriceText","getErrorMessage","errorMessageTitle","CheckoutDeliveryOptionsError","tag","role","ErrorTitleComponent","ErrorMessageComponent","errorMessage","getDeliveryOptionList","count","map","index","code","radioButton","RadioButtonComponent","onDeliveryOptionChange","getSaveButton","saveBtnLabel","Button","color","disabled","onClick","onSave","getEditButton","editBtnLabel","getCancelButton","cancelBtnLabel","setError","setHasError","onUpdating","clearError","actionContext","update","shouldEnableSinglePaymentAuthorizationCheckout","updateShouldCollapsePaymentSection","newShouldCollapsePaymentSection","updateCartDeliverySpecification","savedDeliveryOption","onReady","cartLinesForShipping","DeliveryMode","deliveryModeId","trim","checkoutState","updateCartDeliverySpecificationInput","shippingAddress","channelDeliveryOptionConfig","onPending","then","response","genericErrorMessage","setIsCancellable","catch","request","pickupDeliveryModeCode","channel","PickupDeliveryModeCode","emailDeliveryModeCode","EmailDeliveryModeCode","cart","CartLines","filter","cartLine","PickupDeliveryModeCodes","getDeliveryOptions","cartState","cartId","Id","originalDeliveryMode","shippingCartLines","hasShippingDeliveryLines","clearCartLinesDeliveryInformation","channelDeliveryOptionConfiguration","deliveryOptionFilter","none","FilterDeliveryModeOption","None","filterOutNonCarrierDeliveryMode","FilterOutNonCarrierDeliveryMode","getDeliveryOptionsAsync","callerContext","queryResultSettings","deliveryOptionsNotFound","isPaymentVerificationRedirection","isExpressCheckoutApplied","event","currentTarget","getTelemetryObject","telemetryPageName","friendlyName","requestFormData","query","pv","when","isDataReady","reaction","shouldComponentUpdate","nextProps","nextState","state","render","isReady","isUpdating","hasError","isError","isShowList","isShowSelected","featureState","feature","Name","IsEnabled","deliveryOptionAriaLabel","viewProps","deliveryOptionsData","errorMessageData","viewState","isShowSaveButton","hasExternalSubmitGroup","isShowEditButton","isShowCancelButton","moduleProps","classname","DeliveryOptionsList","list","deliveryOptionSelected","waiting","Waiting","saveButton","editButton","cancelButton","renderView","__decorate","observable","computed","withModuleState","observer","DeliveryOptionList","Node","key","DeliveryOptionSelected","ErrorMessage","Error","Module","ReactHtmlParser","deliveryOptionText","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","apiSettings","buildCacheKey","_this","createObservableDataAction","CheckoutState","inputData","CheckoutStateInput","requestContext","_giftCards","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_isTermsAndConditionAccepted","_customerAccountAmount","Object","_tokenizedPaymentCard","_tenderLine","_billingAddress","_shippingAddress","_cardPrefix","_loyaltyCardNumber","newTokenizedPaymentCard","newTenderLine","newShippingAddress","newBillingAddress","newCardPrefix","giftCardNumber","giftCard","newLoyaltyCardNumber","newAmount","newGuestCheckoutEmail","newIsTermsAndConditionAccepted","getModuleStates","cacheKey","ModuleStatesCacheKey","moduleStates","WrappedComponent","_super","states","hasInitialized","isRequired","isCancellable","isSubmitContainer","childIds","validate","isPending","isSkipped","isDisabled","isCancelAllowed","shouldSubmitContainer","hasModuleState","setIsRequired","setIsSubmitContainer","onSkip","onDisable","getModule","moduleId","getModuleStateManager","getModuleByTypeName","getModuleStateManagerByTypeName","options","values","_moduleState","source","module","isMatch","allMatched","skipSkippableItem","_validateLeaf","app","childId","_isPaymentSectionContainer","_validateContainer","includes","ArrayExtensions","hasElements","enableControl","initializeState","__extends","ModuleState","exports","ReactDOM"],"sourceRoot":""}