{"version":3,"file":"static/js/677d21e3c1570ad44e35.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/./lib/checkout-apple-pay/module-registration.js?81f7","webpack://Dobbies.Commerce/../../src/checkout-state-data-action.ts?8344","webpack://Dobbies.Commerce/../../src/checkout-state.ts?acd8","webpack://Dobbies.Commerce/../../src/checkout-utilities.data.ts?b2cc","webpack://Dobbies.Commerce/../../../src/module-state-manager/module-state.ts?7579","webpack://Dobbies.Commerce/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://Dobbies.Commerce/./src/modules/checkout-apple-pay/actions/get-card-payment-accept-point.ts?819f","webpack://Dobbies.Commerce/./src/modules/checkout-apple-pay/checkout-apple-pay.data.ts?c986","webpack://Dobbies.Commerce/./src/modules/checkout-apple-pay/checkout-apple-pay.tsx?f243","webpack://Dobbies.Commerce/./src/modules/checkout-apple-pay/checkout-apple-pay.view.tsx?222d","webpack://Dobbies.Commerce/external var \"React\"?0d3b","webpack://Dobbies.Commerce/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-apple-pay'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-apple-pay/checkout-apple-pay'),\n $type: 'contentModule',\n da: [{name:'cardPaymentAcceptPoint', path:'@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-apple-pay/actions/get-card-payment-accept-point', runOn: 1},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-apple-pay',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-apple-pay'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-apple-pay/actions/get-card-payment-accept-point';\n let dataAction = require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-apple-pay/actions/get-card-payment-accept-point');\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-apple-pay|checkout-apple-pay'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-apple-pay/checkout-apple-pay.view.js'),\n cn: '@msdyn365-commerce-modules-checkout-checkout-apple-pay'\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, Note, 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 @observable private _customerReference: string = '';\n @observable private _customerRequisition: string = '';\n @observable private _note: Note = {};\n\n @computed public get guestCheckoutEmail(): Readonly | string {\n return this._guestCheckoutEmail;\n }\n\n @computed public get customerReference(): Readonly | string {\n return this._customerReference;\n }\n\n @computed public get customerRequisition(): Readonly | string {\n return this._customerRequisition;\n }\n\n @computed public get note(): Readonly | Note[] {\n return this._note;\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(\n newGuestCheckoutEmail: string,\n customerReference: string,\n customerRequisition: string,\n note: Note\n ): void {\n this._guestCheckoutEmail = newGuestCheckoutEmail;\n this._customerReference = customerReference;\n this._customerRequisition = customerRequisition;\n this._note = note;\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * EnabledPaymentsForOBO enum.\n */\n export enum EnabledPaymentsForOBO {\n OnCustomerAccount = 1,\n ExpressPayment = 0,\n Loyalty = 0,\n GiftCard = 0,\n PaymentInstrument = 0,\n ApplePay = 0\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 {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext,\n isEmptyOrNullObject\n} from '@msdyn365-commerce/core';\nimport { getCheckoutState, ICheckoutState } from '@msdyn365-commerce/global-state';\nimport { CardPaymentAcceptPoint, CartsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\nimport { get } from 'lodash';\n\n/**\n * Get card payment accept point input.\n */\nexport interface IGetCardPaymentAcceptPointInput {\n shouldShowBillingAddress?: boolean;\n paymentTenderType?: string;\n apiSettings: ICommerceApiSettings;\n amountDue?: number;\n}\n\n/**\n * GetCardPaymentAcceptPointInput - Input for create GetCardPaymentAcceptPoint.\n */\nexport class GetCardPaymentAcceptPointInput implements IActionInput {\n public shouldShowBillingAddress?: boolean;\n\n public paymentTenderType?: string;\n\n public amountDue?: number;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility -- Existing code.\n constructor(input: IGetCardPaymentAcceptPointInput) {\n this.shouldShowBillingAddress = input.shouldShowBillingAddress;\n this.paymentTenderType = input.paymentTenderType;\n this.apiSettings = input.apiSettings;\n this.amountDue = input.amountDue;\n }\n\n /**\n * Get the cache key.\n * @returns Cache key.\n */\n public getCacheKey = (): string => buildCacheKey(`CardPaymentAcceptPoint-apple-pay`, this.apiSettings);\n\n /**\n * Get cache object type.\n * @returns Card payment accept point.\n */\n public getCacheObjectType = (): string => 'CardPaymentAcceptPoint';\n\n /**\n * Get data cache type.\n * @returns The cache type.\n */\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Create checkout apple pay input.\n * @param inputData - Get card payment accept point.\n * @returns CardPaymentAcceptInput.\n */\nexport const createCheckoutPaymentInstrumentInput = (\n inputData: ICreateActionContext\n): GetCardPaymentAcceptPointInput => {\n const { shouldShowBillingAddress, paymentTenderType, amountDue } = inputData.config ?? {};\n const getCardPaymentAcceptPointInput = {\n shouldShowBillingAddress,\n paymentTenderType,\n apiSettings: inputData.requestContext.apiSettings,\n amountDue\n };\n\n return new GetCardPaymentAcceptPointInput(getCardPaymentAcceptPointInput);\n};\n\n/**\n * Calls the Retail API and returns a cart object based on the passed GetCartInput.\n * @param input - The get card payment accept point.\n * @param ctx - The action context.\n * @returns CardPaymentAcceptPoint.\n */\nexport async function getCardPaymentAcceptPointAction(\n input: GetCardPaymentAcceptPointInput,\n ctx: IActionContext\n): Promise {\n // If no cart ID is provided in input, we need to create a cart object\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Double check.\n if (!input) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] No valid Input was provided, failing'));\n throw new Error('[getCardPaymentAcceptPointAction] No valid Input was provided, failing');\n }\n\n const { paymentTenderType = 'applepay', amountDue = 0 } = input;\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n if (\n isEmptyOrNullObject(checkoutState) ||\n isEmptyOrNullObject(checkoutState.checkoutCart) ||\n isEmptyOrNullObject(checkoutState.checkoutCart.cart)\n ) {\n ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] Unable to get cart'));\n throw new Error('[getCardPaymentAcceptPointAction] Unable to get cart');\n }\n\n // if (!checkoutState.checkoutCart.cart.CartLines || !ArrayExtensions.hasElements(checkoutState.checkoutCart.cart.CartLines)) {\n // ctx.telemetry.exception(new Error('[getCardPaymentAcceptPointAction] Cart is empty'));\n // throw new Error('[getCardPaymentAcceptPointAction] Cart is empty');\n // }\n\n const requestUrl =\n typeof ctx.requestContext.url.requestUrl === 'string'\n ? new URL(ctx.requestContext.url.requestUrl)\n : ctx.requestContext.url.requestUrl;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- Existing code.\n const origin = get(window, 'location.origin') || requestUrl.origin;\n\n const cardPaymentAcceptSettings = {\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CardPaymentAcceptSettings',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- Any type.\n HostPageOrigin: origin,\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-assignment -- Any type.\n AdaptorPath: `${origin}/Connectors/` || origin,\n CardPaymentEnabled: false,\n CardTokenizationEnabled: true,\n HideBillingAddress: true,\n ...(paymentTenderType && { TenderTypeId: paymentTenderType }),\n PaymentAmount: amountDue !== 0 ? amountDue : checkoutState.checkoutCart.cart.AmountDue ?? 0,\n RequireShippingAddress: true\n };\n\n return CartsDataActions.getCardPaymentAcceptPointAsync(\n { callerContext: ctx, bypassCache: 'get' },\n checkoutState.checkoutCart.cart.Id,\n cardPaymentAcceptSettings,\n []\n )\n .then(cardPaymentAcceptPoint => {\n if (!cardPaymentAcceptPoint.AcceptPageUrl && !cardPaymentAcceptPoint.AcceptPageContent) {\n throw new Error(\n '[getCardPaymentAcceptPointAction]Payment Accept Page has neither return AcceptPageUrl nor AcceptPageContent in updatePaymentAcceptPageData'\n );\n }\n return cardPaymentAcceptPoint;\n })\n .catch(error => {\n ctx.telemetry.exception(error as Error);\n ctx.telemetry.debug('Unable to get Card Payment Accept Point');\n throw error;\n });\n}\n\n/**\n * Get card payment accept point.\n */\nexport const getCardPaymentAcceptPointActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/checkout-apple-pay/get-card-payment-accept-point',\n action: getCardPaymentAcceptPointAction as IAction,\n input: createCheckoutPaymentInstrumentInput\n});\n\nexport default getCardPaymentAcceptPointActionDataAction;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ICheckoutState } from '@msdyn365-commerce/global-state';\nimport {\n AsyncResult, CardPaymentAcceptPoint\n} from '@msdyn365-commerce/retail-proxy';\n\nexport enum ApplePayButtonState {\n Unknown,\n NotAvailable,\n Available\n};\n\n/**\n * Interface for checkout apple pay data.\n */\nexport interface ICheckoutApplePayData {\n checkout?: AsyncResult;\n cardPaymentAcceptPoint?: AsyncResult;\n}","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport { getCheckoutState, IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport {\n getDeliveryOptionsAsync,\n retrieveCardPaymentAcceptResultAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\nimport {\n Address,\n CardPaymentAcceptResult,\n Cart,\n FilterDeliveryModeOption\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport classNames from 'classnames';\nimport * as React from 'react';\n\nimport { CardPaymentAcceptPoint } from '@msdyn365-commerce/retail-proxy';\nimport { EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { computed } from 'mobx';\nimport { ObjectExtensions, QueryResultSettingsProxy, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ApplePayButtonState, ICheckoutApplePayData } from './checkout-apple-pay.data';\nimport { ICheckoutApplePayProps } from './checkout-apple-pay.props.autogenerated';\nimport { PlaceOrder } from '../../common/place-order';\nimport { ErrorComponent } from '../../common';\nimport { getThreeLetterCountryCode } from '../../common/country-codes';\n\nenum ApplePayPaymentAuthorizationResult {\n STATUS_SUCCESS = 0,\n STATUS_FAILURE = 1\n}\n\ninterface IApplePayLine {\n label: string;\n type: string;\n amount: string;\n}\n\ninterface IValidationEvent {\n validationUrl: string;\n}\n\ninterface IResult {\n newTotal: IApplePayLine;\n}\n\ninterface IAuthorizeEvent {\n paymentToken: string;\n shippingContact?: IShippingContactSelectedEvent;\n}\n\ninterface IAuthorizeResult {\n resultCode: ApplePayPaymentAuthorizationResult;\n}\n\ninterface IPaymentMethodEvent {\n type?: string;\n}\n\n/**\n * An interface that describes the shipping method for delivering physical goods.\n * Link to Apple doc - https://developer.apple.com/documentation/apple_pay_on_the_web/applepayshippingmethod\n */\ninterface IApplePayShippingMethod {\n /**\n * A short description of the shipping method.\n */\n label?: string;\n\n /**\n * The nonnegative cost associated with this shipping method.\n */\n amount?: string;\n\n /**\n * Additional description of the shipping method.\n */\n detail?: string;\n\n /**\n * A client-defined value used to identify this shipping method.\n */\n identifier?: string;\n}\n\n/**\n * Contact information fields to use for billing and shipping contact information.\n * Link to Apple doc - https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentcontact\n */\ninterface IShippingContactSelectedEvent {\n /**\n * A phone number for the contact.\n */\n phoneNumber?: string;\n\n /**\n * An email address for the contact.\n */\n emailAddress?: string;\n\n /**\n * The contact’s given name.\n */\n givenName?: string;\n\n /**\n * The contact’s family name.\n */\n familyName?: string;\n\n /**\n * The street portion of the address for the contact.\n */\n addressLines?: string[];\n\n /**\n * Additional information associated with the location, typically defined at the city or town level (such as district or neighborhood), in a postal address.\n */\n subLocality?: string;\n\n /**\n * The city for the contact.\n */\n locality?: string;\n\n /**\n * The zip code or postal code, where applicable, for the contact.\n */\n postalCode?: string;\n\n /**\n * The subAdministrative area (such as a county or other region) in a postal address.\n */\n subAdministrativeArea?: string;\n\n /**\n * The state for the contact.\n */\n administrativeArea?: string;\n\n /**\n * The name of the country or region for the contact.\n */\n country?: string;\n\n /**\n * The contact’s two-letter ISO 3166 country code.\n */\n countryCode?: string;\n}\n\ninterface IShippingMethodSelectedEvent {\n /**\n * The identifier of selected shipping method.\n */\n id: string;\n}\n\ninterface IAppleSessionHandler {\n onAuthorize(authorizeEvent: IAuthorizeEvent): Promise;\n onCancel(): void;\n onPaymentMethodUpdate(paymentMethodEvent: IPaymentMethodEvent): Promise;\n onValidation(validationEvent: IValidationEvent): Promise;\n\n onShippingContactSelected?(shippingContactSelectedEvent: IShippingContactSelectedEvent): Promise;\n onShippingMethodSelected?(shippingMethodSelectedEvent: IShippingMethodSelectedEvent): Promise;\n}\n\nexport interface ICheckoutApplePayViewProps extends ICheckoutApplePayProps<{}> {\n className?: string;\n checkoutApplePay: IModuleProps;\n applePayButton?: React.ReactNode;\n alert?: React.ReactNode;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const window: any;\n\nexport interface ICheckoutApplePayModuleProps extends ICheckoutApplePayProps {}\n\ninterface ICheckoutApplePayState {\n applePayButtonState: ApplePayButtonState;\n paymentConnectorId?: string;\n lineDisplayName?: string;\n errorMessage?: string;\n shippingContact?: Address;\n shippingMethodId?: string;\n}\n/**\n *\n * CheckoutApplePay component\n * @extends {React.Component}\n */\nexport class CheckoutApplePay extends React.Component {\n private readonly moduleClassName: string = 'ms-checkout-apple-pay';\n private readonly applePaySdkId = 'd365-apple-pay-sdk';\n private readonly zeroAmount: number = 0;\n\n @computed private get getLoyaltyAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n return checkoutState?.loyaltyAmount ? checkoutState.loyaltyAmount : this.zeroAmount;\n }\n\n @computed private get getGiftCardTotalAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n if (!checkoutState || !checkoutState.giftCardExtends) {\n return this.zeroAmount;\n }\n return checkoutState.giftCardExtends.reduce((count: number, giftCard: IGiftCardExtend) => {\n return count + (giftCard.Balance || this.zeroAmount);\n }, 0);\n }\n\n @computed private get getCustomerAccountAmount(): number {\n const {\n data: { checkout }\n } = this.props;\n const checkoutState = checkout?.result;\n\n return checkoutState?.customerAccountAmount ?? this.zeroAmount;\n }\n\n @computed private get amountDue(): number {\n const {\n data: { checkout }\n } = this.props;\n\n const cart = checkout?.result?.checkoutCart.cart;\n if (!cart || !cart.AmountDue) {\n return this.zeroAmount;\n }\n\n return Math.max(\n this.zeroAmount,\n cart.AmountDue - this.getGiftCardTotalAmount - this.getLoyaltyAmount - this.getCustomerAccountAmount\n );\n }\n\n @computed private get merchantName(): string {\n return this.state.lineDisplayName || '';\n }\n\n public constructor(props: ICheckoutApplePayProps) {\n super(props);\n this.state = {\n applePayButtonState: ApplePayButtonState.Unknown\n };\n }\n\n public async componentDidMount() {\n const {\n data: { cardPaymentAcceptPoint },\n telemetry\n } = this.props;\n\n // load JS portion of payment connector for ApplePay\n await cardPaymentAcceptPoint;\n\n if (cardPaymentAcceptPoint?.result !== undefined) {\n this.loadPaymentConnectorSdk(cardPaymentAcceptPoint.result);\n\n // load official ApplePay JS SDK.\n const script = document.createElement('script');\n script.onload = () => {\n let isApplePayAvailable = false;\n if (typeof window.isApplePayAvailable === 'function') {\n isApplePayAvailable = window.isApplePayAvailable();\n }\n\n telemetry.information(`is Apple Pay available: ${isApplePayAvailable}`);\n return this.setState({\n applePayButtonState: isApplePayAvailable ? ApplePayButtonState.Available : ApplePayButtonState.NotAvailable,\n paymentConnectorId: cardPaymentAcceptPoint.result?.PaymentConnectorId\n });\n };\n\n script.src = 'https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js';\n script.async = false;\n script.onerror = () => telemetry.error('unable to load Apple Pay SDK');\n document.body.appendChild(script);\n } else {\n telemetry.error('unable to get Apple Pay connector SDK');\n }\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className },\n resources,\n telemetry\n } = this.props;\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.ExpressPayment === 0) {\n telemetry.information('isOBORequest is enabled, apple pay module wont render');\n return null;\n }\n\n let applePayButton: React.ReactNode;\n switch (this.state.applePayButtonState) {\n case ApplePayButtonState.Available:\n applePayButton = (\n

\n );\n break;\n\n case ApplePayButtonState.Unknown:\n case ApplePayButtonState.NotAvailable:\n default:\n applePayButton =
;\n break;\n }\n\n const viewProps: ICheckoutApplePayViewProps = {\n ...this.props,\n ...this.state,\n className,\n checkoutApplePay: {\n moduleProps: this.props,\n className: classNames(this.moduleClassName, className)\n },\n alert: this.state.errorMessage && (\n \n ),\n applePayButton\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handler for Apple Pay button.\n */\n public handlePayButton = async () => {\n const { config, resources, telemetry } = this.props;\n\n const handler: IAppleSessionHandler = {\n onAuthorize: this.authorizePayment,\n onCancel: this.cancelPayment,\n onPaymentMethodUpdate: this.updatePaymentMethod,\n onValidation: this.validateMerchant\n };\n\n // Set shipping related callbacks if corresponding options enabled.\n if (config.shouldRequestShippingAddress) {\n handler.onShippingContactSelected = this.shippingContactSelected;\n handler.onShippingMethodSelected = this.shippingMethodSelected;\n }\n\n try {\n // calling connector JS to create payment session.\n const displayName = window.CreateApplePaySession(handler, this.amountDue.toString());\n this.setState({\n lineDisplayName: displayName\n });\n } catch (error) {\n this.showErrorMessage(resources.genericErrorMessage);\n telemetry.error(`unable to create Apple Pay session: ${error}`);\n }\n };\n\n /**\n * Call CSU checkout API with Apple Pay token.\n * @param paymentToken {string} The gateway payment token\n */\n private checkout = async (paymentToken: string) => {\n const {\n data: { checkout },\n context: { actionContext }\n } = this.props;\n const { paymentConnectorId } = this.state;\n\n const checkoutState = await getCheckoutState(actionContext);\n const cartState = checkoutState.checkoutCart;\n\n const channelConfiguration = actionContext.requestContext.channel;\n if (!channelConfiguration) {\n throw new Error('unable to get channel configuration');\n }\n\n if (checkout !== null) {\n const cardPaymentAcceptResult: CardPaymentAcceptResult = {\n AccessCode: paymentToken,\n Settings: {\n PaymentConnectorId: paymentConnectorId\n }\n };\n\n await checkout?.result?.updateCardPaymentAcceptResult({ newCardPaymentAcceptResult: cardPaymentAcceptResult });\n await PlaceOrder(\n actionContext,\n checkoutState,\n undefined, // orderedProducts\n true, // redirect,\n cartState.cart.Version,\n false // isPaymentVerificationRedirection\n );\n }\n };\n\n /**\n * Load JS SDK from payment connector.\n * @param cardPaymentAcceptPoint {CardPaymentAcceptPoint} The card payment accept point object from CSU.\n */\n private loadPaymentConnectorSdk = (cardPaymentAcceptPoint: CardPaymentAcceptPoint) => {\n if (!cardPaymentAcceptPoint.AcceptPageContent) {\n this.props.telemetry.error(`Card payment accept page content can't be null or empty`);\n return;\n }\n\n const connectorSdk: string = cardPaymentAcceptPoint.AcceptPageContent || '';\n const sdk = document.createElement('script');\n sdk.id = this.applePaySdkId;\n sdk.type = 'text/javascript';\n sdk.appendChild(document.createTextNode(connectorSdk));\n document.body.appendChild(sdk);\n };\n\n /**\n * Validate Apple Pay merchant account with gateway.\n * @param validationEvent {IValidationEvent} The object containing merchant validation data.\n * @returns The response from CSU with validated data.\n */\n private validateMerchant = async (validationEvent: IValidationEvent): Promise => {\n const {\n data: { checkout, cardPaymentAcceptPoint },\n resources,\n telemetry\n } = this.props;\n\n telemetry.information('starting merchant validation for Apple Pay');\n const validationUrl = validationEvent?.validationUrl || '';\n if (!validationUrl) {\n telemetry.error(`Apple Pay validation failed: url can't be null or empty`);\n return Promise.reject('Validation url can not be null or empty');\n }\n\n const cartId = checkout?.result?.checkoutCart.cart.Id || '';\n if (!cartId) {\n telemetry.error(`Apple Pay validation failed: cart can't be null or empty`);\n return Promise.reject('Cart identifier can not be null or empty');\n }\n\n const paymentConnectorId = cardPaymentAcceptPoint?.result?.PaymentConnectorId || '';\n if (!paymentConnectorId) {\n telemetry.error(`Apple Pay validation failed: payment connector identifier can't be null or empty`);\n return Promise.reject('Connector identifier can not be null or empty');\n }\n\n const validationObject = {\n domainName: window.location.hostname,\n validationUrl: validationUrl\n };\n const validationBody = JSON.stringify(validationObject);\n const validationData = await retrieveCardPaymentAcceptResultAsync(\n { callerContext: this.props.context.actionContext },\n btoa(validationBody),\n [],\n cartId,\n { PaymentConnectorId: paymentConnectorId }\n ).catch(error => {\n this.showErrorMessage(resources.genericErrorMessage);\n telemetry.error(`Apple Pay validation failed: ${error}`);\n return Promise.reject(error);\n });\n\n telemetry.information('merchant validation for Apple Pay completed');\n return Promise.resolve(JSON.stringify(validationData));\n };\n\n /**\n * Authorize Apple Pay token by calling checkout API.\n * @param authorizeEvent {IAuthorizeEvent} The object containing authorization information.\n * @returns The authorization result.\n */\n private authorizePayment = async (authorizeEvent: IAuthorizeEvent): Promise => {\n const { resources, telemetry } = this.props;\n\n telemetry.information('starting authorization for Apple Pay');\n try {\n await this.updateContactInfo(authorizeEvent.shippingContact);\n await this.checkout(btoa(JSON.stringify(authorizeEvent)));\n telemetry.information('Apple Pay authorization completed');\n return Promise.resolve({ resultCode: ApplePayPaymentAuthorizationResult.STATUS_SUCCESS });\n } catch (error) {\n this.showErrorMessage(resources.genericErrorMessage);\n telemetry.error(`Apple Pay authorization failed: ${error as string}`);\n return Promise.reject(error as string);\n }\n };\n\n /**\n * Callback to notify Apple Pay sheet was closed/canceled.\n */\n private cancelPayment = (): void => {\n this.props.telemetry.information('Apple Pay popup canceled');\n };\n\n /**\n * The callback for Apple Pay payment method confirmation.\n * @param paymentMethodEvent {IPaymentMethodEvent} The payment method event object.\n * @returns The transaction result object.\n */\n private updatePaymentMethod = async (paymentMethodEvent: IPaymentMethodEvent): Promise => {\n return Promise.resolve({\n newTotal: {\n label: this.merchantName,\n type: 'final',\n amount: `${this.amountDue}`\n }\n });\n };\n\n /**\n * The callback for Apple Pay shipping contact confirmation.\n * @param shippingContact {IShippingContactSelectedEvent} The shipping contact event object.\n * @returns The transaction result object.\n */\n private shippingContactSelected = async (shippingContact: IShippingContactSelectedEvent): Promise => {\n const { resources, telemetry } = this.props;\n\n // construct Address object from Apple Pay shipping contact.\n const shippingAddress: Address = this.getAddressFromShippingContact(shippingContact);\n const shippingMethods = await this.getShippingMethods(shippingAddress);\n if (ObjectExtensions.isNullOrUndefined(shippingMethods) || shippingMethods.length === 0) {\n return Promise.reject();\n }\n\n try {\n const shippingMethodId = shippingMethods.at(0)?.identifier || '';\n await this.updateShippingInfo(shippingMethodId, shippingAddress);\n\n // save shipping contact to update shipping method later.\n this.setState({\n shippingContact: shippingAddress,\n shippingMethodId: shippingMethodId\n });\n } catch (e) {\n telemetry.error(`unable to update shipping info after shipping method change: ${e}`);\n this.showErrorMessage(resources.genericErrorMessage);\n }\n\n return Promise.resolve({\n newShippingMethods: shippingMethods,\n newTotal: {\n label: this.merchantName,\n type: 'final',\n amount: `${this.amountDue}`\n }\n });\n };\n\n /**\n * The callback for Apple Pay shipping method confirmation.\n * @param shippingMethodSelectedEvent {IShippingMethodSelectedEvent} The shipping method event object.\n * @returns The transaction result object.\n */\n private shippingMethodSelected = async (shippingMethod: IShippingMethodSelectedEvent): Promise => {\n const { resources, telemetry } = this.props;\n\n try {\n await this.updateShippingInfo(shippingMethod.id, this.state.shippingContact);\n\n // save selected shipping method.\n this.setState({ shippingMethodId: shippingMethod.id });\n } catch (e) {\n telemetry.error(`unable to update address after shipping method change: ${e}`);\n this.showErrorMessage(resources.genericErrorMessage);\n }\n\n return Promise.resolve({\n newTotal: {\n label: this.merchantName,\n type: 'final',\n amount: `${this.amountDue}`\n }\n });\n };\n\n /**\n * Helper function to obtain shipping methods available for Apple contact address.\n * @param address {Address} The shipping address.\n * @returns The cart delivery options.\n */\n private getShippingMethods = async (address: Address): Promise => {\n const {\n context: { actionContext },\n data: { checkout },\n telemetry\n } = this.props;\n\n const cartId = (checkout?.result?.checkoutCart?.cart as Cart).Id;\n const deliveryOptionFilter: FilterDeliveryModeOption = FilterDeliveryModeOption.FilterOutNonCarrierDeliveryMode;\n const appleDeliveryOptions: IApplePayShippingMethod[] = [];\n try {\n const deliveryOptions = await getDeliveryOptionsAsync(\n {\n callerContext: actionContext,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(actionContext)\n },\n cartId,\n address,\n [],\n deliveryOptionFilter,\n false\n );\n deliveryOptions.forEach(element =>\n appleDeliveryOptions.push({\n label: element.Description,\n amount: `${element.ShippingChargeAmount}`,\n detail: element.Description,\n identifier: element.Code\n })\n );\n } catch (e) {\n telemetry.error('unable to get delivery options for Apple Pay contact');\n }\n\n return appleDeliveryOptions;\n };\n\n /**\n * Helper function to convert Apple Pay shipping contact into Address object.\n * @param shippingContact {IShippingContactSelectedEvent} The shipping contact provided by Apple Pay SDK.\n * @returns The Address object.\n */\n private getAddressFromShippingContact = (shippingContact: IShippingContactSelectedEvent) => {\n const shippingAddress: Address = {\n ThreeLetterISORegionName: getThreeLetterCountryCode(shippingContact?.countryCode || ''),\n Name: this.getContactName(shippingContact),\n Street: shippingContact?.addressLines?.at(0),\n StreetNumber: shippingContact?.addressLines?.at(1),\n City: shippingContact?.locality,\n State: shippingContact?.administrativeArea,\n ZipCode: shippingContact?.postalCode\n };\n\n return shippingAddress;\n };\n\n /**\n * Helper function to return formatted contact name.\n * @param shippingContact {IShippingContactSelectedEvent} The shipping contact provided by Apple Pay SDK.\n * @returns The formatted contact name, i.e. 'Test User', 'Test', 'User' or empty string if both given and family names are missing.\n */\n private getContactName = (shippingContact: IShippingContactSelectedEvent) => {\n const givenName = shippingContact?.givenName || '';\n const familyName = shippingContact?.familyName || '';\n return `${givenName}${\n StringExtensions.isNullOrWhitespace(givenName) || StringExtensions.isNullOrWhitespace(familyName) ? '' : ' '\n }${familyName}`;\n };\n\n private updateContactInfo = async (shippingContact?: IShippingContactSelectedEvent) => {\n const {\n data: { checkout },\n telemetry\n } = this.props;\n\n if (shippingContact) {\n const shippingAddress: Address = this.getAddressFromShippingContact(shippingContact);\n const shippingMethodId = this.state.shippingMethodId || '';\n await this.updateShippingInfo(shippingMethodId, shippingAddress);\n const newGuestCheckoutEmail = shippingContact.emailAddress || '';\n if (!StringExtensions.isNullOrWhitespace(newGuestCheckoutEmail)) {\n await checkout?.result?.updateGuestCheckoutEmail({ newGuestCheckoutEmail });\n } else {\n telemetry.warning('email address missing in shipping contact from Apple');\n }\n } else {\n telemetry.information('no shipping information provided');\n }\n };\n\n /**\n * Update shipping information on cart.\n * @param shippingMethodId {string} The identifier for shipping method.\n * @param shippingAddress {Address} The shipping address.\n */\n private updateShippingInfo = async (shippingMethodId: string, shippingAddress?: Address) => {\n const {\n data: { checkout }\n } = this.props;\n\n const updateCartDeliverySpecificationInput = {\n deliveryModeId: shippingMethodId,\n shippingAddress: shippingAddress\n };\n\n const result = await checkout?.result?.checkoutCart.updateCartDeliverySpecification(updateCartDeliverySpecificationInput);\n if (result?.status !== 'SUCCESS') {\n throw new Error(result?.errorDetails?.LocalizedMessage);\n }\n };\n\n /**\n * Shows error message on screen next to Apple Pay button.\n * @param message {string} The error message to show.\n */\n private showErrorMessage = (message: string) => {\n this.setState({\n errorMessage: message\n });\n };\n}\n\nexport default CheckoutApplePay;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutApplePayViewProps } from './checkout-apple-pay';\n\nconst CheckoutApplePayView: React.FC = props => {\n const { checkoutApplePay, applePayButton, alert } = props;\n\n return (\n \n {alert}\n {applePayButton}\n \n );\n};\n\nexport default CheckoutApplePayView;\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","_customerReference","_customerRequisition","_note","_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","customerReference","customerRequisition","note","updateTermsAndConditionsAcceptance","newIsTermsAndConditionAccepted","updateCustomerAccountAmount","__decorate","observable","computed","EnabledPaymentsForOBO","ModuleStatesCacheKey","getModuleStates","cacheKey","moduleStates","get","update","updateModuleStates","value","WrappedComponent","_super","ModuleState","props","call","initializeState","_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","GetCardPaymentAcceptPointInput","constructor","shouldShowBillingAddress","paymentTenderType","amountDue","createCheckoutPaymentInstrumentInput","_inputData$config","getCardPaymentAcceptPointInput","async","getCardPaymentAcceptPointAction","_checkoutState$checko","exception","checkoutState","getCheckoutState","catch","isEmptyOrNullObject","checkoutCart","cart","requestUrl","url","URL","origin","_get","cardPaymentAcceptSettings","HostPageOrigin","AdaptorPath","CardPaymentEnabled","CardTokenizationEnabled","HideBillingAddress","TenderTypeId","PaymentAmount","AmountDue","RequireShippingAddress","CartsDataActions","callerContext","bypassCache","then","cardPaymentAcceptPoint","AcceptPageUrl","AcceptPageContent","debug","getCardPaymentAcceptPointActionDataAction","ApplePayButtonState","ApplePayPaymentAuthorizationResult","CheckoutApplePay","super","moduleClassName","applePaySdkId","zeroAmount","handlePayButton","resources","handler","onAuthorize","authorizePayment","onCancel","cancelPayment","onPaymentMethodUpdate","updatePaymentMethod","onValidation","validateMerchant","shouldRequestShippingAddress","onShippingContactSelected","shippingContactSelected","onShippingMethodSelected","shippingMethodSelected","displayName","CreateApplePaySession","toString","setState","lineDisplayName","showErrorMessage","genericErrorMessage","checkout","data","paymentConnectorId","state","cartState","channel","_checkout$result","cardPaymentAcceptResult","AccessCode","paymentToken","Settings","PaymentConnectorId","result","updateCardPaymentAcceptResult","newCardPaymentAcceptResult","PlaceOrder","Version","loadPaymentConnectorSdk","connectorSdk","sdk","document","createElement","type","appendChild","createTextNode","body","_checkout$result2","_cardPaymentAcceptPoi","information","validationUrl","validationEvent","Promise","reject","cartId","validationObject","domainName","location","hostname","validationBody","JSON","stringify","validationData","retrieveCardPaymentAcceptResultAsync","btoa","resolve","updateContactInfo","authorizeEvent","shippingContact","resultCode","STATUS_SUCCESS","newTotal","label","merchantName","amount","shippingAddress","getAddressFromShippingContact","shippingMethods","getShippingMethods","ObjectExtensions","isNullOrUndefined","_shippingMethods$at","shippingMethodId","at","identifier","updateShippingInfo","e","newShippingMethods","shippingMethod","_checkout$result3","deliveryOptionFilter","FilterDeliveryModeOption","FilterOutNonCarrierDeliveryMode","appleDeliveryOptions","getDeliveryOptionsAsync","queryResultSettings","QueryResultSettingsProxy","getPagingFromInputDataOrDefaultValue","address","forEach","element","push","Description","ShippingChargeAmount","detail","Code","_shippingContact$addr","_shippingContact$addr2","ThreeLetterISORegionName","getThreeLetterCountryCode","countryCode","Name","getContactName","Street","addressLines","StreetNumber","City","locality","State","administrativeArea","ZipCode","postalCode","givenName","familyName","StringExtensions","isNullOrWhitespace","emailAddress","_checkout$result4","warning","_checkout$result5","updateCartDeliverySpecificationInput","deliveryModeId","updateCartDeliverySpecification","_result$errorDetails","errorDetails","LocalizedMessage","message","errorMessage","applePayButtonState","Unknown","loyaltyAmount","giftCardExtends","reduce","count","Balance","_checkoutState$custom","customerAccountAmount","_checkout$result6","Math","max","getGiftCardTotalAmount","getLoyaltyAmount","getCustomerAccountAmount","script","onload","_cardPaymentAcceptPoi2","isApplePayAvailable","Available","NotAvailable","src","onerror","className","request","user","isOBORequest","ExpressPayment","applePayButton","onClick","viewProps","checkoutApplePay","moduleProps","classNames","alert","ErrorComponent","assign","title","errorMessageTitle","renderView","Module","exports","ReactDOM"],"sourceRoot":""}