@adyen/adyen-web 6.12.0 → 6.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/cjs/adyen.css +10 -5
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +759 -407
  6. package/dist/es/adyen.css +10 -5
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ApplePay/utils/payment-request.js +1 -1
  9. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
  10. package/dist/es/components/Card/Card.js +1 -1
  11. package/dist/es/components/Card/Card.js.map +1 -1
  12. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  13. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  14. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  15. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +2 -0
  16. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -0
  17. package/dist/es/components/Card/components/Fastlane/InfoButton.js +2 -0
  18. package/dist/es/components/Card/components/Fastlane/InfoButton.js.map +1 -0
  19. package/dist/es/components/Card/components/Fastlane/InfoModal.js +2 -0
  20. package/dist/es/components/Card/components/Fastlane/InfoModal.js.map +1 -0
  21. package/dist/es/components/Card/components/Fastlane/USOnlyPhoneInput.js +2 -0
  22. package/dist/es/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -0
  23. package/dist/es/components/Card/components/Fastlane/utils/mobile-number-formatter.js +2 -0
  24. package/dist/es/components/Card/components/Fastlane/utils/mobile-number-formatter.js.map +1 -0
  25. package/dist/es/components/Card/components/Fastlane/utils/validate-configuration.js +2 -0
  26. package/dist/es/components/Card/components/Fastlane/utils/validate-configuration.js.map +1 -0
  27. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  28. package/dist/es/components/Dropin/Dropin.js +1 -1
  29. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  30. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  31. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  32. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  33. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  34. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  35. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  36. package/dist/es/components/Dropin/elements/splitPaymentMethods.js +1 -1
  37. package/dist/es/components/Dropin/elements/splitPaymentMethods.js.map +1 -1
  38. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  39. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  40. package/dist/es/components/PayPalFastlane/Fastlane.js +2 -0
  41. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -0
  42. package/dist/es/components/PayPalFastlane/FastlaneSDK.js +2 -0
  43. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -0
  44. package/dist/es/components/PayPalFastlane/components/FaslaneCardBrandIcon.js +2 -0
  45. package/dist/es/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -0
  46. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js +2 -0
  47. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -0
  48. package/dist/es/components/PayPalFastlane/initializeFastlane.js +2 -0
  49. package/dist/es/components/PayPalFastlane/initializeFastlane.js.map +1 -0
  50. package/dist/es/components/PayPalFastlane/services/request-fastlane-token.js +2 -0
  51. package/dist/es/components/PayPalFastlane/services/request-fastlane-token.js.map +1 -0
  52. package/dist/es/components/PayPalFastlane/utils/convert-locale.js +2 -0
  53. package/dist/es/components/PayPalFastlane/utils/convert-locale.js.map +1 -0
  54. package/dist/es/components/components-name-map.js +1 -1
  55. package/dist/es/components/components-name-map.js.map +1 -1
  56. package/dist/es/components/index.js +1 -1
  57. package/dist/es/components/internal/Button/Button.js +1 -1
  58. package/dist/es/components/internal/Button/Button.js.map +1 -1
  59. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  60. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  61. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  62. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  63. package/dist/es/components/internal/Link/Link.js +2 -0
  64. package/dist/es/components/internal/Link/Link.js.map +1 -0
  65. package/dist/es/components/internal/Modal/Modal.js +1 -1
  66. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  67. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  68. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  69. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  70. package/dist/es/components/internal/Toggle/Toggle.js +2 -0
  71. package/dist/es/components/internal/Toggle/Toggle.js.map +1 -0
  72. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  73. package/dist/es/components/tx-variants.js +1 -1
  74. package/dist/es/components/tx-variants.js.map +1 -1
  75. package/dist/es/core/Analytics/analyticsPreProcessor.js +1 -1
  76. package/dist/es/core/Analytics/analyticsPreProcessor.js.map +1 -1
  77. package/dist/es/core/Analytics/constants.js +1 -1
  78. package/dist/es/core/Analytics/constants.js.map +1 -1
  79. package/dist/es/core/Analytics/utils.js +1 -1
  80. package/dist/es/core/Analytics/utils.js.map +1 -1
  81. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  82. package/dist/es/core/core.js +1 -1
  83. package/dist/es/index.d.ts +759 -407
  84. package/dist/es/index.js +1 -1
  85. package/dist/es-legacy/adyen.css +10 -5
  86. package/dist/es-legacy/adyen.css.map +1 -1
  87. package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
  88. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
  89. package/dist/es-legacy/components/Card/Card.js +1 -1
  90. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  91. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  92. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  93. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  94. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js +2 -0
  95. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -0
  96. package/dist/es-legacy/components/Card/components/Fastlane/InfoButton.js +2 -0
  97. package/dist/es-legacy/components/Card/components/Fastlane/InfoButton.js.map +1 -0
  98. package/dist/es-legacy/components/Card/components/Fastlane/InfoModal.js +2 -0
  99. package/dist/es-legacy/components/Card/components/Fastlane/InfoModal.js.map +1 -0
  100. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js +2 -0
  101. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -0
  102. package/dist/es-legacy/components/Card/components/Fastlane/utils/mobile-number-formatter.js +2 -0
  103. package/dist/es-legacy/components/Card/components/Fastlane/utils/mobile-number-formatter.js.map +1 -0
  104. package/dist/es-legacy/components/Card/components/Fastlane/utils/validate-configuration.js +2 -0
  105. package/dist/es-legacy/components/Card/components/Fastlane/utils/validate-configuration.js.map +1 -0
  106. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  107. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  108. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  109. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  110. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  111. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  112. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  113. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  114. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  115. package/dist/es-legacy/components/Dropin/elements/splitPaymentMethods.js +1 -1
  116. package/dist/es-legacy/components/Dropin/elements/splitPaymentMethods.js.map +1 -1
  117. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  118. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  119. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js +2 -0
  120. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -0
  121. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js +2 -0
  122. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -0
  123. package/dist/es-legacy/components/PayPalFastlane/components/FaslaneCardBrandIcon.js +2 -0
  124. package/dist/es-legacy/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -0
  125. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js +2 -0
  126. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -0
  127. package/dist/es-legacy/components/PayPalFastlane/initializeFastlane.js +2 -0
  128. package/dist/es-legacy/components/PayPalFastlane/initializeFastlane.js.map +1 -0
  129. package/dist/es-legacy/components/PayPalFastlane/services/request-fastlane-token.js +2 -0
  130. package/dist/es-legacy/components/PayPalFastlane/services/request-fastlane-token.js.map +1 -0
  131. package/dist/es-legacy/components/PayPalFastlane/utils/convert-locale.js +2 -0
  132. package/dist/es-legacy/components/PayPalFastlane/utils/convert-locale.js.map +1 -0
  133. package/dist/es-legacy/components/components-name-map.js +1 -1
  134. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  135. package/dist/es-legacy/components/index.js +1 -1
  136. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  137. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  138. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  139. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  140. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  141. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  142. package/dist/es-legacy/components/internal/Link/Link.js +2 -0
  143. package/dist/es-legacy/components/internal/Link/Link.js.map +1 -0
  144. package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
  145. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  146. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  147. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  148. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  149. package/dist/es-legacy/components/internal/Toggle/Toggle.js +2 -0
  150. package/dist/es-legacy/components/internal/Toggle/Toggle.js.map +1 -0
  151. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  152. package/dist/es-legacy/components/tx-variants.js +1 -1
  153. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  154. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js +1 -1
  155. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js.map +1 -1
  156. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  157. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  158. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  159. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  160. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  161. package/dist/es-legacy/core/core.js +1 -1
  162. package/dist/es-legacy/index.js +1 -1
  163. package/package.json +14 -14
  164. package/styles/adyen.css +10 -5
@@ -1 +1 @@
1
- {"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n /**\n * Validation\n */\n get isValid(): boolean {\n return !!this.state.googlePayToken;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","_object_spread_props","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","_object_spread","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","_this_props_icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","_object_spread_props","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","_object_spread","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","_this_props_icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import{TxVariants as s}from"../tx-variants.js";import o from"./components/FastlaneComponent.js";function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class a extends e{formatData(){return{paymentMethod:{type:a.type,fastlaneData:btoa(JSON.stringify({fastlaneSessionId:this.props.fastlaneSessionId,tokenId:this.props.tokenId}))}}}async isAvailable(){const{tokenId:t,lastFour:e,brand:r,email:s}=this.props;return t&&e&&r&&s?Promise.resolve():Promise.reject()}get isValid(){return!0}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()("card")}get brands(){const{brands:t}=this.props;return t.map((t=>({icon:this.props.modules.resources.getImage()(t),name:t})))}render(){return t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(o,{lastFour:this.props.lastFour,brand:this.props.brand,payButton:this.payButton,setComponentRef:this.setComponentRef,showPayButton:this.props.showPayButton}))}}n(a,"type",s.fastlane),n(a,"defaultProps",{keepBrandsVisible:!0});export{a as default};
2
+ //# sourceMappingURL=Fastlane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fastlane.js","sources":["../../../../src/components/PayPalFastlane/Fastlane.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { TxVariants } from '../tx-variants';\nimport FastlaneComponent from './components/FastlaneComponent';\nimport type { FastlaneConfiguration } from './types';\n\nclass Fastlane extends UIElement<FastlaneConfiguration> {\n public static readonly type = TxVariants.fastlane;\n\n protected static defaultProps = {\n keepBrandsVisible: true\n };\n\n protected override formatData() {\n return {\n paymentMethod: {\n type: Fastlane.type,\n fastlaneData: btoa(\n JSON.stringify({\n fastlaneSessionId: this.props.fastlaneSessionId,\n tokenId: this.props.tokenId\n })\n )\n }\n };\n }\n\n public override async isAvailable(): Promise<void> {\n const { tokenId, lastFour, brand, email } = this.props;\n if (tokenId && lastFour && brand && email) {\n return Promise.resolve();\n }\n return Promise.reject();\n }\n\n public override get isValid(): boolean {\n return true;\n }\n\n /**\n * Used to display payment method logo within Drop-in\n */\n public override get icon(): string {\n return this.props.icon ?? this.resources.getImage()('card');\n }\n\n /**\n * Used to display the payment method supported brands within Drop-in\n */\n public get brands(): { icon: string; name: string }[] {\n const { brands } = this.props;\n return brands.map(brand => ({ icon: this.props.modules.resources.getImage()(brand), name: brand }));\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <FastlaneComponent\n lastFour={this.props.lastFour}\n brand={this.props.brand}\n payButton={this.payButton}\n setComponentRef={this.setComponentRef}\n showPayButton={this.props.showPayButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default Fastlane;\n"],"names":["Fastlane","UIElement","formatData","paymentMethod","type","fastlaneData","btoa","JSON","stringify","fastlaneSessionId","this","props","tokenId","isAvailable","lastFour","brand","email","Promise","resolve","reject","isValid","icon","_this_props_icon","resources","getImage","brands","map","modules","name","render","h","CoreProvider","i18n","loadingContext","FastlaneComponent","payButton","setComponentRef","showPayButton","_define_property","TxVariants","fastlane","defaultProps","keepBrandsVisible"],"mappings":"8ZAOA,MAAMA,UAAiBC,EAOAC,UAAAA,GACf,MAAO,CACHC,cAAe,CACXC,KAAMJ,EAASI,KACfC,aAAcC,KACVC,KAAKC,UAAU,CACXC,kBAAmBC,KAAKC,MAAMF,kBAC9BG,QAASF,KAAKC,MAAMC,YAKxC,CAEA,iBAAsBC,GAClB,MAAMD,QAAEA,EAAOE,SAAEA,EAAQC,MAAEA,EAAKC,MAAEA,GAAUN,KAAKC,MACjD,OAAIC,GAAWE,GAAYC,GAASC,EACzBC,QAAQC,UAEZD,QAAQE,QACnB,CAEA,WAAoBC,GAChB,OAAO,CACX,CAKA,QAAoBC,GACT,IAAAC,EAAP,OAAO,QAAAA,EAAAZ,KAAKC,MAAMU,YAAX,IAAAC,EAAAA,EAAmBZ,KAAKa,UAAUC,UAAfd,CAA0B,OACxD,CAKA,UAAWe,GACP,MAAMA,OAAEA,GAAWf,KAAKC,MACxB,OAAOc,EAAOC,KAAIX,IAAU,CAAEM,KAAMX,KAAKC,MAAMgB,QAAQJ,UAAUC,UAA7Bd,CAAwCK,GAAQa,KAAMb,KAC9F,CAEAc,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMtB,KAAKC,MAAMqB,KAAMC,eAAgBvB,KAAKC,MAAMsB,eAAgBV,UAAWb,KAAKa,WAC5FO,EAACI,EAAAA,CACGpB,SAAUJ,KAAKC,MAAMG,SACrBC,MAAOL,KAAKC,MAAMI,MAClBoB,UAAWzB,KAAKyB,UAChBC,gBAAiB1B,KAAK0B,gBACtBC,cAAe3B,KAAKC,MAAM0B,gBAI1C,EA3DAC,EADEtC,EACqBI,OAAOmC,EAAWC,UAEzCF,EAHEtC,EAGeyC,eAAe,CAC5BC,mBAAmB"}
@@ -0,0 +1,2 @@
1
+ import{resolveEnvironments as t}from"../../core/Environment/Environment.js";import e from"./services/request-fastlane-token.js";import{convertAdyenLocaleToFastlaneLocale as n}from"./utils/convert-locale.js";import a from"../../utils/Script.js";import i from"../../core/Errors/AdyenCheckoutError.js";function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),a.forEach((function(e){o(t,e,n[e])}))}return t}class r{async initialize(){const t=await this.requestClientToken();return await this.fetchSdk(t.value,t.clientId),await this.initializeFastlaneInstance(),this}async authenticate(t){if(!this.fastlaneSdk)throw new i("IMPLEMENTATION_ERROR","authenticate(): Fastlane SDK is not initialized");const{customerContextId:e}=await this.fastlaneSdk.identity.lookupCustomerByEmail(t);return e?(this.latestShopperDetails={email:t,customerId:e},this.fastlaneSdk.identity.triggerAuthenticationFlow(e)):{authenticationState:"not_found",profileData:void 0}}async getComponentConfiguration(t){if(!t)throw new i("IMPLEMENTATION_ERROR","FastlaneSDK: you must pass the authentication result to get the component configuration");if("succeeded"===t.authenticationState){var e;if(!!!(null===(e=t.profileData)||void 0===e?void 0:e.card))throw new i("ERROR","getComponentConfiguration(): There is no card associated with the authenticated profile");return{paymentType:"fastlane",configuration:{fastlaneSessionId:this.fastlaneSessionId,email:this.latestShopperDetails.email,tokenId:t.profileData.card.id,lastFour:t.profileData.card.paymentSource.card.lastDigits,brand:t.profileData.card.paymentSource.card.brand.toLowerCase()}}}{const t=await this.fetchConsentDetails();return{paymentType:"card",configuration:s({},t&&{fastlaneConfiguration:s({fastlaneSessionId:this.fastlaneSessionId},t)})}}}showShippingAddressSelector(){return this.fastlaneSdk.profile.showShippingAddressSelector()}async mountWatermark(t,e={includeAdditionalInfo:!0}){(await this.fastlaneSdk.FastlaneWatermarkComponent(e)).render(t)}requestClientToken(){return e(this.checkoutShopperURL,this.clientKey)}async fetchSdk(t,e){const n=new a(`https://www.paypal.com/sdk/js?client-id=${e}&components=buttons,fastlane`,"body",{},{sdkClientToken:t});await n.load()}async fetchSessionIdAsync(){try{const{sessionId:t}=await this.fastlaneSdk.identity.getSession();this.fastlaneSessionId=t}catch(t){console.warn("Fastlane SDK: Failed to fetch session ID",t)}}async fetchConsentDetails(){try{const t=await this.fastlaneSdk.ConsentComponent();return await t.getRenderState()}catch(t){throw new i("ERROR","fetchConsentDetails(): failed to fetch consent details",{cause:t})}}async initializeFastlaneInstance(){try{this.fastlaneSdk=await window.paypal.Fastlane(s({intendedExperience:"externalProcessorCustomConsent"},this.forceConsentDetails&&{metadata:{geoLocOverride:"US"}})),this.fastlaneSdk.setLocale(this.locale),this.fetchSessionIdAsync()}catch(t){throw new i("ERROR","Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor",{cause:t})}}constructor(e){if(o(this,"clientKey",void 0),o(this,"checkoutShopperURL",void 0),o(this,"locale",void 0),o(this,"forceConsentDetails",void 0),o(this,"fastlaneSdk",void 0),o(this,"latestShopperDetails",void 0),o(this,"fastlaneSessionId",void 0),!(null==e?void 0:e.environment))throw new i("IMPLEMENTATION_ERROR","FastlaneSDK: 'environment' property is required");if(!(null==e?void 0:e.clientKey))throw new i("IMPLEMENTATION_ERROR","FastlaneSDK: 'clientKey' property is required");e.forceConsentDetails&&e.environment.includes("live")&&console.warn("Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment");const{apiUrl:a}=t(e.environment);this.checkoutShopperURL=a,this.clientKey=e.clientKey,this.forceConsentDetails=e.forceConsentDetails||!1,this.locale=n(e.locale||"en-US")}}export{r as default};
2
+ //# sourceMappingURL=FastlaneSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport type {\n FastlanePaymentMethodConfiguration,\n FastlaneWindowInstance,\n FastlaneAuthenticatedCustomerResult,\n FastlaneShippingAddressSelectorResult,\n FastlaneSDKConfiguration,\n FastlaneConsentRenderState\n} from './types';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly locale: string;\n private readonly forceConsentDetails: boolean;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.locale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n return this;\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n return this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n } else {\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n }\n }\n\n /**\n * Creates the Adyen Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n if (authResult.authenticationState === 'succeeded') {\n const hasCard = !!authResult.profileData?.card;\n\n if (!hasCard) {\n throw new AdyenCheckoutError('ERROR', 'getComponentConfiguration(): There is no card associated with the authenticated profile');\n }\n\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId,\n email: this.latestShopperDetails.email,\n tokenId: authResult.profileData.card.id,\n lastFour: authResult.profileData.card.paymentSource.card.lastDigits,\n brand: authResult.profileData.card.paymentSource.card.brand.toLowerCase()\n }\n };\n } else {\n const consentDetails = await this.fetchConsentDetails();\n return {\n paymentType: 'card',\n configuration: {\n ...(consentDetails && {\n fastlaneConfiguration: {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n }\n })\n }\n };\n }\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n return this.fastlaneSdk.profile.showShippingAddressSelector();\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const url = `https://www.paypal.com/sdk/js?client-id=${clientId}&components=buttons,fastlane`;\n const script = new Script(url, 'body', {}, { sdkClientToken: clientToken });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n this.fastlaneSdk = await window.paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.locale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","tokenData","this","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","authenticate","email","fastlaneSdk","AdyenCheckoutError","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","triggerAuthenticationFlow","authenticationState","profileData","undefined","getComponentConfiguration","authResult","card","paymentType","configuration","fastlaneSessionId","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fetchConsentDetails","_object_spread","fastlaneConfiguration","showShippingAddressSelector","profile","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","script","Script","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","error","console","warn","consentComponent","ConsentComponent","getRenderState","cause","window","paypal","Fastlane","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","locale","constructor","_define_property","environment","includes","apiUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createElement as r}from"../../../external/preact/dist/preact.js";import t from"../../../core/Context/useImage.js";import a from"../../internal/Img/Img.js";import{getFullBrandName as e}from"../../Card/components/CardInput/utils.js";const n=({brand:n})=>{const s=t(),o=function(r){return"mastercard"===r?"mc":r}(n);return r("span",{className:"adyen-checkout-fastlane__card-brand--wrapper"},r(a,{src:s()(o),alt:e(o)}))};export{n as default};
2
+ //# sourceMappingURL=FaslaneCardBrandIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FaslaneCardBrandIcon.js","sources":["../../../../../src/components/PayPalFastlane/components/FaslaneCardBrandIcon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport useImage from '../../../core/Context/useImage';\nimport Img from '../../internal/Img';\nimport { getFullBrandName } from '../../Card/components/CardInput/utils';\n\ninterface FastlaneCardBrandIconProps {\n brand: string;\n}\n\nfunction mapFastlaneCardBrandToAdyenBrand(brand: string) {\n return brand === 'mastercard' ? 'mc' : brand;\n}\n\nconst FastlaneCardBrandIcon = ({ brand }: FastlaneCardBrandIconProps) => {\n const getImage = useImage();\n const mappedBrand = mapFastlaneCardBrandToAdyenBrand(brand);\n\n return (\n <span className=\"adyen-checkout-fastlane__card-brand--wrapper\">\n <Img src={getImage()(mappedBrand)} alt={getFullBrandName(mappedBrand)} />\n </span>\n );\n};\n\nexport default FastlaneCardBrandIcon;\n"],"names":["FastlaneCardBrandIcon","brand","getImage","useImage","mappedBrand","mapFastlaneCardBrandToAdyenBrand","h","span","className","Img","src","alt","getFullBrandName"],"mappings":"8OAaA,MAAMA,EAAwB,EAAGC,YAC7B,MAAMC,EAAWC,IACXC,EANV,SAA0CH,GACtC,MAAiB,eAAVA,EAAyB,KAAOA,CAC3C,CAIwBI,CAAiCJ,GAErD,OACIK,EAACC,OAAAA,CAAKC,UAAU,gDACZF,EAACG,EAAAA,CAAIC,IAAKR,IAAWE,GAAcO,IAAKC,EAAiBR"}
@@ -0,0 +1,2 @@
1
+ import{createElement as a}from"../../../external/preact/dist/preact.js";import{useState as e,useRef as t,useEffect as s}from"../../../external/preact/hooks/dist/hooks.js";import o from"./FaslaneCardBrandIcon.js";import{PREFIX as n}from"../../internal/Icon/constants.js";import r from"../../../core/Context/useImage.js";import c from"../../internal/Img/Img.js";const m=({lastFour:m,brand:l,payButton:d,setComponentRef:i,showPayButton:p})=>{const f=r(),[u,y]=e("ready"),h=t({setStatus:a=>y(a)});return s((()=>{i(h.current)}),[]),a("div",{className:"adyen-checkout-fastlane","data-testid":"payment-method-fastlane"},a("div",{className:"adyen-checkout-fastlane__card-section"},a(o,{brand:l}),a("span",{className:"adyen-checkout-fastlane__card-number"},"•••• ",m)),p&&d({status:u,icon:f({imageFolder:"components/"})(`${n}lock`)}),a("div",{className:"adyen-checkout-fastlane__brand"},a(c,{src:f({imageFolder:"components/"})("paypal_fastlane_gray"),alt:"Fastlane logo"})))};export{m as default};
2
+ //# sourceMappingURL=FastlaneComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FastlaneComponent.js","sources":["../../../../../src/components/PayPalFastlane/components/FastlaneComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport FastlaneCardBrandIcon from './FaslaneCardBrandIcon';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport useImage from '../../../core/Context/useImage';\nimport Img from '../../internal/Img';\nimport type { ComponentMethodsRef, PayButtonFunctionProps, UIElementStatus } from '../../internal/UIElement/types';\n\nimport './Fastlane.scss';\n\ninterface FastlaneComponentProps {\n lastFour: string;\n brand: string;\n showPayButton: boolean;\n setComponentRef(ref: ComponentMethodsRef): void;\n payButton(props?: PayButtonFunctionProps): h.JSX.Element;\n}\n\nconst FastlaneComponent = ({ lastFour, brand, payButton, setComponentRef, showPayButton }: FastlaneComponentProps) => {\n const getImage = useImage();\n const [status, setStatus] = useState<UIElementStatus>('ready');\n const fastlaneRef = useRef({\n setStatus: (status: UIElementStatus) => setStatus(status)\n });\n\n useEffect(() => {\n setComponentRef(fastlaneRef.current);\n }, []);\n\n return (\n <div className=\"adyen-checkout-fastlane\" data-testid=\"payment-method-fastlane\">\n <div className=\"adyen-checkout-fastlane__card-section\">\n <FastlaneCardBrandIcon brand={brand} />\n <span className=\"adyen-checkout-fastlane__card-number\">•••• {lastFour}</span>\n </div>\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`) })}\n\n <div className=\"adyen-checkout-fastlane__brand\">\n <Img src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_gray`)} alt=\"Fastlane logo\" />\n </div>\n </div>\n );\n};\n\nexport default FastlaneComponent;\n"],"names":["FastlaneComponent","lastFour","brand","payButton","setComponentRef","showPayButton","getImage","useImage","status","setStatus","useState","fastlaneRef","useRef","useEffect","current","h","div","className","data-testid","FastlaneCardBrandIcon","span","icon","imageFolder","PREFIX","Img","src","alt"],"mappings":"wWAkBA,MAAMA,EAAoB,EAAGC,WAAUC,QAAOC,YAAWC,kBAAiBC,oBACtE,MAAMC,EAAWC,KACVC,EAAQC,GAAaC,EAA0B,SAChDC,EAAcC,EAAO,CACvBH,UAAYD,GAA4BC,EAAUD,KAOtD,OAJAK,GAAU,KACNT,EAAgBO,EAAYG,QAAO,GACpC,IAGCC,EAACC,MAAAA,CAAIC,UAAU,0BAA0BC,cAAY,2BACjDH,EAACC,MAAAA,CAAIC,UAAU,yCACXF,EAACI,EAAAA,CAAsBjB,MAAOA,IAC9Ba,EAACK,OAAAA,CAAKH,UAAU,wCAAuC,QAAMhB,IAGhEI,GAAiBF,EAAU,CAAEK,SAAQa,KAAMf,EAAS,CAAEgB,YAAa,eAAxBhB,CAAyC,GAAGiB,WAExFR,EAACC,MAAAA,CAAIC,UAAU,kCACXF,EAACS,EAAAA,CAAIC,IAAKnB,EAAS,CAAEgB,YAAa,eAAxBhB,CAAyC,wBAAyBoB,IAAI"}
@@ -0,0 +1,2 @@
1
+ import t from"./FastlaneSDK.js";async function a(a){const n=new t(a);return await n.initialize()}export{a as default};
2
+ //# sourceMappingURL=initializeFastlane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeFastlane.js","sources":["../../../../src/components/PayPalFastlane/initializeFastlane.ts"],"sourcesContent":["import FastlaneSDK from './FastlaneSDK';\nimport type { FastlaneSDKConfiguration } from './types';\n\nasync function initializeFastlane(configuration: FastlaneSDKConfiguration): Promise<FastlaneSDK> {\n const fastlane = new FastlaneSDK(configuration);\n return await fastlane.initialize();\n}\n\nexport default initializeFastlane;\n"],"names":["async","initializeFastlane","configuration","fastlane","FastlaneSDK","initialize"],"mappings":"gCAGAA,eAAeC,EAAmBC,GAC9B,MAAMC,EAAW,IAAIC,EAAYF,GACjC,aAAaC,EAASE,YAC1B"}
@@ -0,0 +1,2 @@
1
+ import{httpPost as t}from"../../../core/Services/http.js";function e(e,a){return t({loadingContext:e,path:`utility/v1/payPalFastlane/tokens?clientKey=${a}`,errorLevel:"fatal"})}export{e as default};
2
+ //# sourceMappingURL=request-fastlane-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-fastlane-token.js","sources":["../../../../../src/components/PayPalFastlane/services/request-fastlane-token.ts"],"sourcesContent":["import { httpPost } from '../../../core/Services/http';\n\nexport interface FastlaneTokenData {\n id: string;\n clientId: string;\n value: string;\n expiresAt: string;\n merchantId: string;\n}\n\nfunction requestFastlaneToken(url: string, clientKey: string): Promise<FastlaneTokenData> {\n const path = `utility/v1/payPalFastlane/tokens?clientKey=${clientKey}`;\n return httpPost<FastlaneTokenData>({ loadingContext: url, path, errorLevel: 'fatal' });\n}\n\nexport default requestFastlaneToken;\n"],"names":["requestFastlaneToken","url","clientKey","httpPost","loadingContext","path","errorLevel"],"mappings":"0DAUA,SAASA,EAAqBC,EAAaC,GAEvC,OAAOC,EAA4B,CAAEC,eAAgBH,EAAKI,KAD7C,8CAA8CH,IACKI,WAAY,SAChF"}
@@ -0,0 +1,2 @@
1
+ function e(e){return e.replace("-","_").toLowerCase()}export{e as convertAdyenLocaleToFastlaneLocale};
2
+ //# sourceMappingURL=convert-locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-locale.js","sources":["../../../../../src/components/PayPalFastlane/utils/convert-locale.ts"],"sourcesContent":["export function convertAdyenLocaleToFastlaneLocale(locale: string) {\n return locale.replace('-', '_').toLowerCase();\n}\n"],"names":["convertAdyenLocaleToFastlaneLocale","locale","replace","toLowerCase"],"mappings":"AAAO,SAASA,EAAmCC,GAC/C,OAAOA,EAAOC,QAAQ,IAAK,KAAKC,aACpC"}
@@ -1,2 +1,2 @@
1
- import{TxVariants as a}from"./tx-variants.js";const o={[a.address]:"Address",[a.bankTransfer_IBAN]:"BankTransfer",[a.donation]:"Donation",[a.personal_details]:"PersonalDetails",[a.bcmc]:"Bancontact",[a.card]:"Card",[a.scheme]:"Card",[a.storedCard]:"Card",[a.customCard]:"CustomCard",[a.ach]:"Ach",[a.directdebit_GB]:"BacsDirectDebit",[a.sepadirectdebit]:"SepaDirectDebit",[a.affirm]:"Affirm",[a.afterpay]:"AfterPay",[a.afterpay_default]:"AfterPay",[a.afterpay_b2b]:"AfterPayB2B",[a.atome]:"Atome",[a.facilypay_3x]:"FacilyPay3x",[a.facilypay_4x]:"FacilyPay4x",[a.facilypay_6x]:"FacilyPay6x",[a.facilypay_10x]:"FacilyPay10x",[a.facilypay_12x]:"FacilyPay12x",[a.ratepay]:"RatePay",[a.ratepay_directdebit]:"RatePayDirectDebit",[a.riverty]:"Riverty",[a.amazonpay]:"AmazonPay",[a.applepay]:"ApplePay",[a.cashapp]:"CashAppPay",[a.clicktopay]:"ClickToPay",[a.googlepay]:"GooglePay",[a.paypal]:"PayPal",[a.paywithgoogle]:"GooglePay",[a.boletobancario]:"Boleto",[a.boletobancario_itau]:"Boleto",[a.boletobancario_santander]:"Boleto",[a.doku]:"Doku",[a.doku_alfamart]:"Doku",[a.doku_permata_lite_atm]:"Doku",[a.doku_indomaret]:"Doku",[a.doku_atm_mandiri_va]:"Doku",[a.doku_sinarmas_va]:"Doku",[a.doku_mandiri_va]:"Doku",[a.doku_cimb_va]:"Doku",[a.doku_danamon_va]:"Doku",[a.doku_bri_va]:"Doku",[a.doku_bni_va]:"Doku",[a.doku_bca_va]:"Doku",[a.doku_wallet]:"Doku",[a.oxxo]:"Oxxo",[a.primeiropay_boleto]:"Boleto",[a.billdesk_online]:"BillDeskOnline",[a.billdesk_wallet]:"BillDeskWallet",[a.dotpay]:"Dotpay",[a.eps]:"Eps",[a.molpay_ebanking_fpx_MY]:"MolPayEBankingMY",[a.molpay_ebanking_TH]:"MolPayEBankingTH",[a.molpay_ebanking_VN]:"MolPayEBankingVN",[a.onlineBanking_CZ]:"OnlineBankingCZ",[a.onlinebanking_IN]:"OnlineBankingIN",[a.onlineBanking_PL]:"OnlineBankingPL",[a.onlineBanking_SK]:"OnlineBankingSK",[a.paybybank]:"PayByBank",[a.payu_IN_cashcard]:"PayuCashcard",[a.payu_IN_nb]:"PayuNetBanking",[a.wallet_IN]:"WalletINElement",[a.dragonpay_ebanking]:"Dragonpay",[a.dragonpay_otc_banking]:"Dragonpay",[a.dragonpay_otc_non_banking]:"Dragonpay",[a.dragonpay_otc_philippines]:"Dragonpay",[a.econtext_atm]:"Econtext",[a.econtext_online]:"Econtext",[a.econtext_seven_eleven]:"Econtext",[a.econtext_stores]:"Econtext",[a.giropay]:"Giropay",[a.multibanco]:"Multibanco",[a.redirect]:"Redirect",[a.twint]:"Twint",[a.vipps]:"Vipps",[a.trustly]:"Trustly",[a.paybybank_AIS_DD]:"PayByBankUS",[a.klarna]:"Klarna",[a.klarna_account]:"Klarna",[a.klarna_paynow]:"Klarna",[a.klarna_b2b]:"Klarna",[a.bcmc_mobile]:"BcmcMobile",[a.bcmc_mobile_QR]:"BcmcMobile",[a.pix]:"Pix",[a.swish]:"Swish",[a.wechatpay]:"WeChat",[a.wechatpayQR]:"WeChat",[a.promptpay]:"PromptPay",[a.paynow]:"PayNow",[a.duitnow]:"DuitNow",[a.blik]:"Blik",[a.mbway]:"MBWay",[a.ancv]:"ANCV",[a.payto]:"PayTo",[a.upi]:"UPI",[a.upi_qr]:"UPI",[a.upi_collect]:"UPI",[a.upi_intent]:"UPI",[a.giftcard]:"Giftcard",[a.mealVoucher_FR_natixis]:"MealVoucherFR",[a.mealVoucher_FR_sodexo]:"MealVoucherFR",[a.mealVoucher_FR_groupeup]:"MealVoucherFR"};function e(a){return o[a]}export{e as default};
1
+ import{TxVariants as a}from"./tx-variants.js";const o={[a.address]:"Address",[a.bankTransfer_IBAN]:"BankTransfer",[a.donation]:"Donation",[a.personal_details]:"PersonalDetails",[a.bcmc]:"Bancontact",[a.card]:"Card",[a.scheme]:"Card",[a.storedCard]:"Card",[a.customCard]:"CustomCard",[a.ach]:"Ach",[a.directdebit_GB]:"BacsDirectDebit",[a.sepadirectdebit]:"SepaDirectDebit",[a.affirm]:"Affirm",[a.afterpay]:"AfterPay",[a.afterpay_default]:"AfterPay",[a.afterpay_b2b]:"AfterPayB2B",[a.atome]:"Atome",[a.facilypay_3x]:"FacilyPay3x",[a.facilypay_4x]:"FacilyPay4x",[a.facilypay_6x]:"FacilyPay6x",[a.facilypay_10x]:"FacilyPay10x",[a.facilypay_12x]:"FacilyPay12x",[a.ratepay]:"RatePay",[a.ratepay_directdebit]:"RatePayDirectDebit",[a.riverty]:"Riverty",[a.amazonpay]:"AmazonPay",[a.applepay]:"ApplePay",[a.cashapp]:"CashAppPay",[a.clicktopay]:"ClickToPay",[a.googlepay]:"GooglePay",[a.paypal]:"PayPal",[a.fastlane]:"Fastlane",[a.paywithgoogle]:"GooglePay",[a.boletobancario]:"Boleto",[a.boletobancario_itau]:"Boleto",[a.boletobancario_santander]:"Boleto",[a.doku]:"Doku",[a.doku_alfamart]:"Doku",[a.doku_permata_lite_atm]:"Doku",[a.doku_indomaret]:"Doku",[a.doku_atm_mandiri_va]:"Doku",[a.doku_sinarmas_va]:"Doku",[a.doku_mandiri_va]:"Doku",[a.doku_cimb_va]:"Doku",[a.doku_danamon_va]:"Doku",[a.doku_bri_va]:"Doku",[a.doku_bni_va]:"Doku",[a.doku_bca_va]:"Doku",[a.doku_wallet]:"Doku",[a.oxxo]:"Oxxo",[a.primeiropay_boleto]:"Boleto",[a.billdesk_online]:"BillDeskOnline",[a.billdesk_wallet]:"BillDeskWallet",[a.dotpay]:"Dotpay",[a.eps]:"Eps",[a.molpay_ebanking_fpx_MY]:"MolPayEBankingMY",[a.molpay_ebanking_TH]:"MolPayEBankingTH",[a.molpay_ebanking_VN]:"MolPayEBankingVN",[a.onlineBanking_CZ]:"OnlineBankingCZ",[a.onlinebanking_IN]:"OnlineBankingIN",[a.onlineBanking_PL]:"OnlineBankingPL",[a.onlineBanking_SK]:"OnlineBankingSK",[a.paybybank]:"PayByBank",[a.payu_IN_cashcard]:"PayuCashcard",[a.payu_IN_nb]:"PayuNetBanking",[a.wallet_IN]:"WalletINElement",[a.dragonpay_ebanking]:"Dragonpay",[a.dragonpay_otc_banking]:"Dragonpay",[a.dragonpay_otc_non_banking]:"Dragonpay",[a.dragonpay_otc_philippines]:"Dragonpay",[a.econtext_atm]:"Econtext",[a.econtext_online]:"Econtext",[a.econtext_seven_eleven]:"Econtext",[a.econtext_stores]:"Econtext",[a.giropay]:"Giropay",[a.multibanco]:"Multibanco",[a.redirect]:"Redirect",[a.twint]:"Twint",[a.vipps]:"Vipps",[a.trustly]:"Trustly",[a.paybybank_AIS_DD]:"PayByBankUS",[a.klarna]:"Klarna",[a.klarna_account]:"Klarna",[a.klarna_paynow]:"Klarna",[a.klarna_b2b]:"Klarna",[a.bcmc_mobile]:"BcmcMobile",[a.bcmc_mobile_QR]:"BcmcMobile",[a.pix]:"Pix",[a.swish]:"Swish",[a.wechatpay]:"WeChat",[a.wechatpayQR]:"WeChat",[a.promptpay]:"PromptPay",[a.paynow]:"PayNow",[a.duitnow]:"DuitNow",[a.blik]:"Blik",[a.mbway]:"MBWay",[a.ancv]:"ANCV",[a.payto]:"PayTo",[a.upi]:"UPI",[a.upi_qr]:"UPI",[a.upi_collect]:"UPI",[a.upi_intent]:"UPI",[a.giftcard]:"Giftcard",[a.mealVoucher_FR_natixis]:"MealVoucherFR",[a.mealVoucher_FR_sodexo]:"MealVoucherFR",[a.mealVoucher_FR_groupeup]:"MealVoucherFR"};function e(a){return o[a]}export{e as default};
2
2
  //# sourceMappingURL=components-name-map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components-name-map.js","sources":["../../../src/components/components-name-map.ts"],"sourcesContent":["import { TxVariants } from './tx-variants';\n\n/**\n * Maps each payment type with the string name of its Component element.\n *\n * It is used to give nicer error messages when creating components using Drop-in.\n * Example: paymentMethods response contains blik, but Blik component is not configured. So it warns that 'Blik' must be imported and added to the Drop-in configuration.\n */\nconst ComponentsNameMap = {\n /** internal */\n [TxVariants.address]: 'Address',\n [TxVariants.bankTransfer_IBAN]: 'BankTransfer',\n [TxVariants.donation]: 'Donation',\n [TxVariants.personal_details]: 'PersonalDetails',\n /** internal */\n\n /** Card */\n [TxVariants.bcmc]: 'Bancontact',\n [TxVariants.card]: 'Card',\n [TxVariants.scheme]: 'Card',\n [TxVariants.storedCard]: 'Card',\n [TxVariants.customCard]: 'CustomCard',\n /** Card */\n\n /** Direct debit */\n [TxVariants.ach]: 'Ach',\n [TxVariants.directdebit_GB]: 'BacsDirectDebit',\n [TxVariants.sepadirectdebit]: 'SepaDirectDebit',\n /** Direct debit */\n\n /** Open Invoice */\n [TxVariants.affirm]: 'Affirm',\n [TxVariants.afterpay]: 'AfterPay',\n [TxVariants.afterpay_default]: 'AfterPay',\n [TxVariants.afterpay_b2b]: 'AfterPayB2B',\n [TxVariants.atome]: 'Atome',\n [TxVariants.facilypay_3x]: 'FacilyPay3x',\n [TxVariants.facilypay_4x]: 'FacilyPay4x',\n [TxVariants.facilypay_6x]: 'FacilyPay6x',\n [TxVariants.facilypay_10x]: 'FacilyPay10x',\n [TxVariants.facilypay_12x]: 'FacilyPay12x',\n [TxVariants.ratepay]: 'RatePay',\n [TxVariants.ratepay_directdebit]: 'RatePayDirectDebit',\n [TxVariants.riverty]: 'Riverty',\n /** Open Invoice */\n\n /** Wallets */\n [TxVariants.amazonpay]: 'AmazonPay',\n [TxVariants.applepay]: 'ApplePay',\n [TxVariants.cashapp]: 'CashAppPay',\n [TxVariants.clicktopay]: 'ClickToPay',\n [TxVariants.googlepay]: 'GooglePay',\n [TxVariants.paypal]: 'PayPal',\n [TxVariants.paywithgoogle]: 'GooglePay',\n /** Wallets */\n\n /** Voucher */\n [TxVariants.boletobancario]: 'Boleto',\n [TxVariants.boletobancario_itau]: 'Boleto',\n [TxVariants.boletobancario_santander]: 'Boleto',\n [TxVariants.doku]: 'Doku',\n [TxVariants.doku_alfamart]: 'Doku',\n [TxVariants.doku_permata_lite_atm]: 'Doku',\n [TxVariants.doku_indomaret]: 'Doku',\n [TxVariants.doku_atm_mandiri_va]: 'Doku',\n [TxVariants.doku_sinarmas_va]: 'Doku',\n [TxVariants.doku_mandiri_va]: 'Doku',\n [TxVariants.doku_cimb_va]: 'Doku',\n [TxVariants.doku_danamon_va]: 'Doku',\n [TxVariants.doku_bri_va]: 'Doku',\n [TxVariants.doku_bni_va]: 'Doku',\n [TxVariants.doku_bca_va]: 'Doku',\n [TxVariants.doku_wallet]: 'Doku',\n [TxVariants.oxxo]: 'Oxxo',\n [TxVariants.primeiropay_boleto]: 'Boleto',\n /** Voucher */\n\n /** issuerList */\n [TxVariants.billdesk_online]: 'BillDeskOnline',\n [TxVariants.billdesk_wallet]: 'BillDeskWallet',\n [TxVariants.dotpay]: 'Dotpay',\n [TxVariants.eps]: 'Eps',\n [TxVariants.molpay_ebanking_fpx_MY]: 'MolPayEBankingMY',\n [TxVariants.molpay_ebanking_TH]: 'MolPayEBankingTH',\n [TxVariants.molpay_ebanking_VN]: 'MolPayEBankingVN',\n [TxVariants.onlineBanking_CZ]: 'OnlineBankingCZ',\n [TxVariants.onlinebanking_IN]: 'OnlineBankingIN', // NOTE: the txVariant does have a lowercase \"b\"\n [TxVariants.onlineBanking_PL]: 'OnlineBankingPL',\n [TxVariants.onlineBanking_SK]: 'OnlineBankingSK',\n [TxVariants.paybybank]: 'PayByBank',\n [TxVariants.payu_IN_cashcard]: 'PayuCashcard',\n [TxVariants.payu_IN_nb]: 'PayuNetBanking',\n [TxVariants.wallet_IN]: 'WalletINElement',\n /** issuerList */\n\n /** Dragonpay */\n [TxVariants.dragonpay_ebanking]: 'Dragonpay',\n [TxVariants.dragonpay_otc_banking]: 'Dragonpay',\n [TxVariants.dragonpay_otc_non_banking]: 'Dragonpay',\n [TxVariants.dragonpay_otc_philippines]: 'Dragonpay',\n /** Dragonpay */\n\n /** Econtext */\n [TxVariants.econtext_atm]: 'Econtext',\n [TxVariants.econtext_online]: 'Econtext',\n [TxVariants.econtext_seven_eleven]: 'Econtext',\n [TxVariants.econtext_stores]: 'Econtext',\n /** Econtext */\n\n /** Redirect */\n [TxVariants.giropay]: 'Giropay',\n [TxVariants.multibanco]: 'Multibanco',\n [TxVariants.redirect]: 'Redirect',\n [TxVariants.twint]: 'Twint',\n [TxVariants.vipps]: 'Vipps',\n [TxVariants.trustly]: 'Trustly',\n [TxVariants.paybybank_AIS_DD]: 'PayByBankUS',\n /** Redirect */\n\n /** Klarna */\n [TxVariants.klarna]: 'Klarna',\n [TxVariants.klarna_account]: 'Klarna',\n [TxVariants.klarna_paynow]: 'Klarna',\n [TxVariants.klarna_b2b]: 'Klarna',\n /** Klarna */\n\n /** QRLoader */\n [TxVariants.bcmc_mobile]: 'BcmcMobile',\n [TxVariants.bcmc_mobile_QR]: 'BcmcMobile',\n [TxVariants.pix]: 'Pix',\n [TxVariants.swish]: 'Swish',\n [TxVariants.wechatpay]: 'WeChat',\n [TxVariants.wechatpayQR]: 'WeChat',\n [TxVariants.promptpay]: 'PromptPay',\n [TxVariants.paynow]: 'PayNow',\n [TxVariants.duitnow]: 'DuitNow',\n /** QRLoader */\n\n /** Await */\n [TxVariants.blik]: 'Blik',\n [TxVariants.mbway]: 'MBWay',\n [TxVariants.ancv]: 'ANCV',\n [TxVariants.payto]: 'PayTo',\n [TxVariants.upi]: 'UPI', // also QR\n [TxVariants.upi_qr]: 'UPI', // also QR\n [TxVariants.upi_collect]: 'UPI', // also QR\n [TxVariants.upi_intent]: 'UPI',\n /** Await */\n\n /** Giftcard */\n [TxVariants.giftcard]: 'Giftcard',\n [TxVariants.mealVoucher_FR_natixis]: 'MealVoucherFR',\n [TxVariants.mealVoucher_FR_sodexo]: 'MealVoucherFR',\n [TxVariants.mealVoucher_FR_groupeup]: 'MealVoucherFR'\n /** Giftcard */\n};\n\n/**\n * Returns the Component name based on the payment type\n * @param paymentType\n */\nfunction getComponentNameOfPaymentType(paymentType: string): string {\n return ComponentsNameMap[paymentType];\n}\n\nexport default getComponentNameOfPaymentType;\n"],"names":["ComponentsNameMap","TxVariants","address","bankTransfer_IBAN","donation","personal_details","bcmc","card","scheme","storedCard","customCard","ach","directdebit_GB","sepadirectdebit","affirm","afterpay","afterpay_default","afterpay_b2b","atome","facilypay_3x","facilypay_4x","facilypay_6x","facilypay_10x","facilypay_12x","ratepay","ratepay_directdebit","riverty","amazonpay","applepay","cashapp","clicktopay","googlepay","paypal","paywithgoogle","boletobancario","boletobancario_itau","boletobancario_santander","doku","doku_alfamart","doku_permata_lite_atm","doku_indomaret","doku_atm_mandiri_va","doku_sinarmas_va","doku_mandiri_va","doku_cimb_va","doku_danamon_va","doku_bri_va","doku_bni_va","doku_bca_va","doku_wallet","oxxo","primeiropay_boleto","billdesk_online","billdesk_wallet","dotpay","eps","molpay_ebanking_fpx_MY","molpay_ebanking_TH","molpay_ebanking_VN","onlineBanking_CZ","onlinebanking_IN","onlineBanking_PL","onlineBanking_SK","paybybank","payu_IN_cashcard","payu_IN_nb","wallet_IN","dragonpay_ebanking","dragonpay_otc_banking","dragonpay_otc_non_banking","dragonpay_otc_philippines","econtext_atm","econtext_online","econtext_seven_eleven","econtext_stores","giropay","multibanco","redirect","twint","vipps","trustly","paybybank_AIS_DD","klarna","klarna_account","klarna_paynow","klarna_b2b","bcmc_mobile","bcmc_mobile_QR","pix","swish","wechatpay","wechatpayQR","promptpay","paynow","duitnow","blik","mbway","ancv","payto","upi","upi_qr","upi_collect","upi_intent","giftcard","mealVoucher_FR_natixis","mealVoucher_FR_sodexo","mealVoucher_FR_groupeup","getComponentNameOfPaymentType","paymentType"],"mappings":"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"}
1
+ {"version":3,"file":"components-name-map.js","sources":["../../../src/components/components-name-map.ts"],"sourcesContent":["import { TxVariants } from './tx-variants';\n\n/**\n * Maps each payment type with the string name of its Component element.\n *\n * It is used to give nicer error messages when creating components using Drop-in.\n * Example: paymentMethods response contains blik, but Blik component is not configured. So it warns that 'Blik' must be imported and added to the Drop-in configuration.\n */\nconst ComponentsNameMap = {\n /** internal */\n [TxVariants.address]: 'Address',\n [TxVariants.bankTransfer_IBAN]: 'BankTransfer',\n [TxVariants.donation]: 'Donation',\n [TxVariants.personal_details]: 'PersonalDetails',\n /** internal */\n\n /** Card */\n [TxVariants.bcmc]: 'Bancontact',\n [TxVariants.card]: 'Card',\n [TxVariants.scheme]: 'Card',\n [TxVariants.storedCard]: 'Card',\n [TxVariants.customCard]: 'CustomCard',\n /** Card */\n\n /** Direct debit */\n [TxVariants.ach]: 'Ach',\n [TxVariants.directdebit_GB]: 'BacsDirectDebit',\n [TxVariants.sepadirectdebit]: 'SepaDirectDebit',\n /** Direct debit */\n\n /** Open Invoice */\n [TxVariants.affirm]: 'Affirm',\n [TxVariants.afterpay]: 'AfterPay',\n [TxVariants.afterpay_default]: 'AfterPay',\n [TxVariants.afterpay_b2b]: 'AfterPayB2B',\n [TxVariants.atome]: 'Atome',\n [TxVariants.facilypay_3x]: 'FacilyPay3x',\n [TxVariants.facilypay_4x]: 'FacilyPay4x',\n [TxVariants.facilypay_6x]: 'FacilyPay6x',\n [TxVariants.facilypay_10x]: 'FacilyPay10x',\n [TxVariants.facilypay_12x]: 'FacilyPay12x',\n [TxVariants.ratepay]: 'RatePay',\n [TxVariants.ratepay_directdebit]: 'RatePayDirectDebit',\n [TxVariants.riverty]: 'Riverty',\n /** Open Invoice */\n\n /** Wallets */\n [TxVariants.amazonpay]: 'AmazonPay',\n [TxVariants.applepay]: 'ApplePay',\n [TxVariants.cashapp]: 'CashAppPay',\n [TxVariants.clicktopay]: 'ClickToPay',\n [TxVariants.googlepay]: 'GooglePay',\n [TxVariants.paypal]: 'PayPal',\n [TxVariants.fastlane]: 'Fastlane',\n [TxVariants.paywithgoogle]: 'GooglePay',\n /** Wallets */\n\n /** Voucher */\n [TxVariants.boletobancario]: 'Boleto',\n [TxVariants.boletobancario_itau]: 'Boleto',\n [TxVariants.boletobancario_santander]: 'Boleto',\n [TxVariants.doku]: 'Doku',\n [TxVariants.doku_alfamart]: 'Doku',\n [TxVariants.doku_permata_lite_atm]: 'Doku',\n [TxVariants.doku_indomaret]: 'Doku',\n [TxVariants.doku_atm_mandiri_va]: 'Doku',\n [TxVariants.doku_sinarmas_va]: 'Doku',\n [TxVariants.doku_mandiri_va]: 'Doku',\n [TxVariants.doku_cimb_va]: 'Doku',\n [TxVariants.doku_danamon_va]: 'Doku',\n [TxVariants.doku_bri_va]: 'Doku',\n [TxVariants.doku_bni_va]: 'Doku',\n [TxVariants.doku_bca_va]: 'Doku',\n [TxVariants.doku_wallet]: 'Doku',\n [TxVariants.oxxo]: 'Oxxo',\n [TxVariants.primeiropay_boleto]: 'Boleto',\n /** Voucher */\n\n /** issuerList */\n [TxVariants.billdesk_online]: 'BillDeskOnline',\n [TxVariants.billdesk_wallet]: 'BillDeskWallet',\n [TxVariants.dotpay]: 'Dotpay',\n [TxVariants.eps]: 'Eps',\n [TxVariants.molpay_ebanking_fpx_MY]: 'MolPayEBankingMY',\n [TxVariants.molpay_ebanking_TH]: 'MolPayEBankingTH',\n [TxVariants.molpay_ebanking_VN]: 'MolPayEBankingVN',\n [TxVariants.onlineBanking_CZ]: 'OnlineBankingCZ',\n [TxVariants.onlinebanking_IN]: 'OnlineBankingIN', // NOTE: the txVariant does have a lowercase \"b\"\n [TxVariants.onlineBanking_PL]: 'OnlineBankingPL',\n [TxVariants.onlineBanking_SK]: 'OnlineBankingSK',\n [TxVariants.paybybank]: 'PayByBank',\n [TxVariants.payu_IN_cashcard]: 'PayuCashcard',\n [TxVariants.payu_IN_nb]: 'PayuNetBanking',\n [TxVariants.wallet_IN]: 'WalletINElement',\n /** issuerList */\n\n /** Dragonpay */\n [TxVariants.dragonpay_ebanking]: 'Dragonpay',\n [TxVariants.dragonpay_otc_banking]: 'Dragonpay',\n [TxVariants.dragonpay_otc_non_banking]: 'Dragonpay',\n [TxVariants.dragonpay_otc_philippines]: 'Dragonpay',\n /** Dragonpay */\n\n /** Econtext */\n [TxVariants.econtext_atm]: 'Econtext',\n [TxVariants.econtext_online]: 'Econtext',\n [TxVariants.econtext_seven_eleven]: 'Econtext',\n [TxVariants.econtext_stores]: 'Econtext',\n /** Econtext */\n\n /** Redirect */\n [TxVariants.giropay]: 'Giropay',\n [TxVariants.multibanco]: 'Multibanco',\n [TxVariants.redirect]: 'Redirect',\n [TxVariants.twint]: 'Twint',\n [TxVariants.vipps]: 'Vipps',\n [TxVariants.trustly]: 'Trustly',\n [TxVariants.paybybank_AIS_DD]: 'PayByBankUS',\n /** Redirect */\n\n /** Klarna */\n [TxVariants.klarna]: 'Klarna',\n [TxVariants.klarna_account]: 'Klarna',\n [TxVariants.klarna_paynow]: 'Klarna',\n [TxVariants.klarna_b2b]: 'Klarna',\n /** Klarna */\n\n /** QRLoader */\n [TxVariants.bcmc_mobile]: 'BcmcMobile',\n [TxVariants.bcmc_mobile_QR]: 'BcmcMobile',\n [TxVariants.pix]: 'Pix',\n [TxVariants.swish]: 'Swish',\n [TxVariants.wechatpay]: 'WeChat',\n [TxVariants.wechatpayQR]: 'WeChat',\n [TxVariants.promptpay]: 'PromptPay',\n [TxVariants.paynow]: 'PayNow',\n [TxVariants.duitnow]: 'DuitNow',\n /** QRLoader */\n\n /** Await */\n [TxVariants.blik]: 'Blik',\n [TxVariants.mbway]: 'MBWay',\n [TxVariants.ancv]: 'ANCV',\n [TxVariants.payto]: 'PayTo',\n [TxVariants.upi]: 'UPI', // also QR\n [TxVariants.upi_qr]: 'UPI', // also QR\n [TxVariants.upi_collect]: 'UPI', // also QR\n [TxVariants.upi_intent]: 'UPI',\n /** Await */\n\n /** Giftcard */\n [TxVariants.giftcard]: 'Giftcard',\n [TxVariants.mealVoucher_FR_natixis]: 'MealVoucherFR',\n [TxVariants.mealVoucher_FR_sodexo]: 'MealVoucherFR',\n [TxVariants.mealVoucher_FR_groupeup]: 'MealVoucherFR'\n /** Giftcard */\n};\n\n/**\n * Returns the Component name based on the payment type\n * @param paymentType\n */\nfunction getComponentNameOfPaymentType(paymentType: string): string {\n return ComponentsNameMap[paymentType];\n}\n\nexport default getComponentNameOfPaymentType;\n"],"names":["ComponentsNameMap","TxVariants","address","bankTransfer_IBAN","donation","personal_details","bcmc","card","scheme","storedCard","customCard","ach","directdebit_GB","sepadirectdebit","affirm","afterpay","afterpay_default","afterpay_b2b","atome","facilypay_3x","facilypay_4x","facilypay_6x","facilypay_10x","facilypay_12x","ratepay","ratepay_directdebit","riverty","amazonpay","applepay","cashapp","clicktopay","googlepay","paypal","fastlane","paywithgoogle","boletobancario","boletobancario_itau","boletobancario_santander","doku","doku_alfamart","doku_permata_lite_atm","doku_indomaret","doku_atm_mandiri_va","doku_sinarmas_va","doku_mandiri_va","doku_cimb_va","doku_danamon_va","doku_bri_va","doku_bni_va","doku_bca_va","doku_wallet","oxxo","primeiropay_boleto","billdesk_online","billdesk_wallet","dotpay","eps","molpay_ebanking_fpx_MY","molpay_ebanking_TH","molpay_ebanking_VN","onlineBanking_CZ","onlinebanking_IN","onlineBanking_PL","onlineBanking_SK","paybybank","payu_IN_cashcard","payu_IN_nb","wallet_IN","dragonpay_ebanking","dragonpay_otc_banking","dragonpay_otc_non_banking","dragonpay_otc_philippines","econtext_atm","econtext_online","econtext_seven_eleven","econtext_stores","giropay","multibanco","redirect","twint","vipps","trustly","paybybank_AIS_DD","klarna","klarna_account","klarna_paynow","klarna_b2b","bcmc_mobile","bcmc_mobile_QR","pix","swish","wechatpay","wechatpayQR","promptpay","paynow","duitnow","blik","mbway","ancv","payto","upi","upi_qr","upi_collect","upi_intent","giftcard","mealVoucher_FR_natixis","mealVoucher_FR_sodexo","mealVoucher_FR_groupeup","getComponentNameOfPaymentType","paymentType"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export{CardElement as Card}from"./Card/Card.js";export{default as Bancontact}from"./Card/Bancontact.js";export{CustomCard}from"./CustomCard/CustomCard.js";export{default as ThreeDS2Challenge}from"./ThreeDS2/ThreeDS2Challenge.js";export{default as ThreeDS2DeviceFingerprint}from"./ThreeDS2/ThreeDS2DeviceFingerprint.js";export{AchElement as Ach}from"./Ach/Ach.js";export{default as BacsDirectDebit}from"./BacsDD/BacsDD.js";export{default as SepaDirectDebit}from"./Sepa/Sepa.js";export{default as Affirm}from"./Affirm/Affirm.js";export{default as AfterPay}from"./AfterPay/AfterPay.js";export{default as AfterPayB2B}from"./AfterPay/AfterPayB2B.js";export{default as Atome}from"./Atome/Atome.js";export{default as FacilPay3x}from"./FacilyPay/FacilyPay3x.js";export{default as FacilPay4x}from"./FacilyPay/FacilyPay4x.js";export{default as FacilPay6x}from"./FacilyPay/FacilyPay6x.js";export{default as FacilPay10x}from"./FacilyPay/FacilyPay10x.js";export{default as FacilPay12x}from"./FacilyPay/FacilyPay12x.js";export{default as RatePay}from"./RatePay/RatePay.js";export{default as RatePayDirectDebit}from"./RatePay/RatePayDirectDebit.js";export{default as Riverty}from"./Riverty/Riverty.js";export{AmazonPayElement as AmazonPay}from"./AmazonPay/AmazonPay.js";export{default as ApplePay}from"./ApplePay/ApplePay.js";export{CashAppPay}from"./CashAppPay/CashAppPay.js";export{ClickToPayElement as ClickToPay}from"./ClickToPay/ClickToPay.js";export{default as GooglePay}from"./GooglePay/GooglePay.js";export{default as PayPal}from"./PayPal/Paypal.js";export{BoletoElement as Boleto}from"./Boleto/Boleto.js";export{DokuElement as Doku}from"./Doku/Doku.js";export{OxxoElement as Oxxo}from"./Oxxo/Oxxo.js";export{default as BillDeskOnline}from"./BillDesk/BillDeskOnline.js";export{default as BillDeskWallet}from"./BillDesk/BillDeskWallet.js";export{default as Dotpay}from"./Dotpay/index.js";export{default as EPS}from"./EPS/index.js";export{default as MolPayEBankingMY}from"./MolPayEBanking/MolPayEBankingMY.js";export{default as MolPayEBankingTH}from"./MolPayEBanking/MolPayEBankingTH.js";export{default as MolPayEBankingVN}from"./MolPayEBanking/MolPayEBankingVN.js";export{default as OnlineBankingCZ}from"./OnlineBankingCZ/index.js";export{default as OnlineBankingIN}from"./OnlineBankingIN/index.js";export{default as OnlineBankingPL}from"./OnlineBankingPL/OnlineBankingPL.js";export{default as OnlineBankingSK}from"./OnlineBankingSK/index.js";export{default as OnlineBankingFI}from"./OnlineBankingFI/OnlineBankingFI.js";export{default as PayByBank}from"./PayByBank/PayByBank.js";export{default as PayuCashcard}from"./PayU/PayuCashcard.js";export{default as PayuNetBanking}from"./PayU/PayuNetBanking.js";export{default as WalletIN}from"./WalletIN/index.js";export{DragonpayElement as Dragonpay}from"./Dragonpay/Dragonpay.js";export{EcontextElement as Econtext}from"./Econtext/Econtext.js";export{default as Giropay}from"./Giropay/Giropay.js";export{MultibancoElement as Multibanco}from"./Multibanco/Multibanco.js";export{default as Redirect}from"./Redirect/Redirect.js";export{default as Twint}from"./Twint/Twint.js";export{default as Vipps}from"./Vipps/Vipps.js";export{default as Trustly}from"./Trustly/Trustly.js";export{default as PayByBankUS}from"./PayByBankUS/PayByBankUS.js";export{default as Klarna}from"./Klarna/KlarnaPayments.js";export{default as BcmcMobile}from"./BcmcMobile/BcmcMobile.js";export{default as Pix}from"./Pix/Pix.js";export{default as Swish}from"./Swish/Swish.js";export{default as WeChat}from"./WeChat/WeChat.js";export{default as PromptPay}from"./PromptPay/PromptPay.js";export{default as PayNow}from"./PayNow/PayNow.js";export{default as DuitNow}from"./DuitNow/DuitNow.js";export{default as PayMe}from"./PayMe/PayMe.js";export{default as Blik}from"./Blik/Blik.js";export{MBWayElement as MBWay}from"./MBWay/MBWay.js";export{default as UPI}from"./UPI/UPI.js";export{ANCVElement as ANCV}from"./ANCV/ANCV.js";export{PayToElement as PayTo}from"./PayTo/PayTo.js";export{GiftcardElement as Giftcard}from"./Giftcard/Giftcard.js";export{MealVoucherFRElement as MealVoucherFR}from"./MealVoucherFR/MealVoucherFR.js";export{AddressElement as Address}from"./Address/Address.js";export{BankTransferElement as BankTransfer}from"./BankTransfer/BankTransfer.js";export{default as Donation}from"./Donation/Donation.js";export{default as Dropin}from"./Dropin/Dropin.js";export{PersonalDetailsElement as PersonalDetails}from"./PersonalDetails/PersonalDetails.js";
1
+ export{CardElement as Card}from"./Card/Card.js";export{default as Bancontact}from"./Card/Bancontact.js";export{CustomCard}from"./CustomCard/CustomCard.js";export{default as ThreeDS2Challenge}from"./ThreeDS2/ThreeDS2Challenge.js";export{default as ThreeDS2DeviceFingerprint}from"./ThreeDS2/ThreeDS2DeviceFingerprint.js";export{AchElement as Ach}from"./Ach/Ach.js";export{default as BacsDirectDebit}from"./BacsDD/BacsDD.js";export{default as SepaDirectDebit}from"./Sepa/Sepa.js";export{default as Affirm}from"./Affirm/Affirm.js";export{default as AfterPay}from"./AfterPay/AfterPay.js";export{default as AfterPayB2B}from"./AfterPay/AfterPayB2B.js";export{default as Atome}from"./Atome/Atome.js";export{default as FacilPay3x}from"./FacilyPay/FacilyPay3x.js";export{default as FacilPay4x}from"./FacilyPay/FacilyPay4x.js";export{default as FacilPay6x}from"./FacilyPay/FacilyPay6x.js";export{default as FacilPay10x}from"./FacilyPay/FacilyPay10x.js";export{default as FacilPay12x}from"./FacilyPay/FacilyPay12x.js";export{default as RatePay}from"./RatePay/RatePay.js";export{default as RatePayDirectDebit}from"./RatePay/RatePayDirectDebit.js";export{default as Riverty}from"./Riverty/Riverty.js";export{AmazonPayElement as AmazonPay}from"./AmazonPay/AmazonPay.js";export{default as ApplePay}from"./ApplePay/ApplePay.js";export{CashAppPay}from"./CashAppPay/CashAppPay.js";export{ClickToPayElement as ClickToPay}from"./ClickToPay/ClickToPay.js";export{default as GooglePay}from"./GooglePay/GooglePay.js";export{default as PayPal}from"./PayPal/Paypal.js";export{default as Fastlane}from"./PayPalFastlane/Fastlane.js";export{BoletoElement as Boleto}from"./Boleto/Boleto.js";export{DokuElement as Doku}from"./Doku/Doku.js";export{OxxoElement as Oxxo}from"./Oxxo/Oxxo.js";export{default as BillDeskOnline}from"./BillDesk/BillDeskOnline.js";export{default as BillDeskWallet}from"./BillDesk/BillDeskWallet.js";export{default as Dotpay}from"./Dotpay/index.js";export{default as EPS}from"./EPS/index.js";export{default as MolPayEBankingMY}from"./MolPayEBanking/MolPayEBankingMY.js";export{default as MolPayEBankingTH}from"./MolPayEBanking/MolPayEBankingTH.js";export{default as MolPayEBankingVN}from"./MolPayEBanking/MolPayEBankingVN.js";export{default as OnlineBankingCZ}from"./OnlineBankingCZ/index.js";export{default as OnlineBankingIN}from"./OnlineBankingIN/index.js";export{default as OnlineBankingPL}from"./OnlineBankingPL/OnlineBankingPL.js";export{default as OnlineBankingSK}from"./OnlineBankingSK/index.js";export{default as OnlineBankingFI}from"./OnlineBankingFI/OnlineBankingFI.js";export{default as PayByBank}from"./PayByBank/PayByBank.js";export{default as PayuCashcard}from"./PayU/PayuCashcard.js";export{default as PayuNetBanking}from"./PayU/PayuNetBanking.js";export{default as WalletIN}from"./WalletIN/index.js";export{DragonpayElement as Dragonpay}from"./Dragonpay/Dragonpay.js";export{EcontextElement as Econtext}from"./Econtext/Econtext.js";export{default as Giropay}from"./Giropay/Giropay.js";export{MultibancoElement as Multibanco}from"./Multibanco/Multibanco.js";export{default as Redirect}from"./Redirect/Redirect.js";export{default as Twint}from"./Twint/Twint.js";export{default as Vipps}from"./Vipps/Vipps.js";export{default as Trustly}from"./Trustly/Trustly.js";export{default as PayByBankUS}from"./PayByBankUS/PayByBankUS.js";export{default as Klarna}from"./Klarna/KlarnaPayments.js";export{default as BcmcMobile}from"./BcmcMobile/BcmcMobile.js";export{default as Pix}from"./Pix/Pix.js";export{default as Swish}from"./Swish/Swish.js";export{default as WeChat}from"./WeChat/WeChat.js";export{default as PromptPay}from"./PromptPay/PromptPay.js";export{default as PayNow}from"./PayNow/PayNow.js";export{default as DuitNow}from"./DuitNow/DuitNow.js";export{default as PayMe}from"./PayMe/PayMe.js";export{default as Blik}from"./Blik/Blik.js";export{MBWayElement as MBWay}from"./MBWay/MBWay.js";export{default as UPI}from"./UPI/UPI.js";export{ANCVElement as ANCV}from"./ANCV/ANCV.js";export{PayToElement as PayTo}from"./PayTo/PayTo.js";export{GiftcardElement as Giftcard}from"./Giftcard/Giftcard.js";export{MealVoucherFRElement as MealVoucherFR}from"./MealVoucherFR/MealVoucherFR.js";export{AddressElement as Address}from"./Address/Address.js";export{BankTransferElement as BankTransfer}from"./BankTransfer/BankTransfer.js";export{default as Donation}from"./Donation/Donation.js";export{default as Dropin}from"./Dropin/Dropin.js";export{PersonalDetailsElement as PersonalDetails}from"./PersonalDetails/PersonalDetails.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import a from"../Spinner/Spinner.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class s extends e{render({classNameModifiers:e=[],disabled:i,href:s,icon:r,inline:l,label:c,status:d,variant:p},{completed:u}){const{i18n:m}=o(),_=r?t("img",{className:"adyen-checkout__button__icon",src:r,alt:"","aria-hidden":"true"}):"",h=[...e,..."primary"!==p?[p]:[],...l?["inline"]:[],...u?["completed"]:[],..."loading"===d||"redirect"===d?["loading"]:[]],b=n(["adyen-checkout__button",...h.map((e=>`adyen-checkout__button--${e}`))]),y={loading:t("span",{className:"adyen-checkout__button__content"},t(a,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},m.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(a,{size:"medium",inline:!0}),m.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},_,t("span",{className:"adyen-checkout__button__text"},c))},f=y[d]||y.default;return s?t("a",{className:b,href:s,disabled:i,target:this.props.target,rel:this.props.rel},f):t("button",{className:b,type:"button",disabled:i,onClick:this.onClick,onKeyDown:this.onKeyDown},f,"loading"!==d&&"redirect"!==d&&this.props.children)}constructor(...e){super(...e),i(this,"onClick",(e=>{e.preventDefault(),this.props.disabled||this.props.onClick(e,{complete:this.complete})})),i(this,"complete",((e=1e3)=>{this.setState({completed:!0}),setTimeout((()=>{this.setState({completed:!1})}),e)})),i(this,"onKeyDown",(e=>{var t,n;null===(t=(n=this.props).onKeyDown)||void 0===t||t.call(n,e)}))}}i(s,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self",onClick:()=>{}});export{s as default};
1
+ import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import a from"../Spinner/Spinner.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class s extends e{render(){const{classNameModifiers:e=[],disabled:i,href:s,icon:r,inline:l,label:c,ariaLabel:d,status:p,variant:u,buttonRef:m}=this.props,{completed:_}=this.state,{i18n:h}=o(),b=r?t("img",{className:"adyen-checkout__button__icon",src:r,alt:"","aria-hidden":"true"}):"",f=[...e,..."primary"!==u?[u]:[],...l?["inline"]:[],..._?["completed"]:[],..."loading"===p||"redirect"===p?["loading"]:[]],y=n(["adyen-checkout__button",...f.map((e=>`adyen-checkout__button--${e}`))]),g={loading:t("span",{className:"adyen-checkout__button__content"},t(a,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},h.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(a,{size:"medium",inline:!0}),h.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},b,t("span",{className:"adyen-checkout__button__text"},c))},k=g[p]||g.default;return s?t("a",{className:y,href:s,disabled:i,target:this.props.target,rel:this.props.rel},k):t("button",{ref:m,className:y,type:"button",disabled:i,onClick:this.onClick,onKeyDown:this.onKeyDown,"aria-label":d},k,"loading"!==p&&"redirect"!==p&&this.props.children)}constructor(...e){super(...e),i(this,"onClick",(e=>{e.preventDefault(),this.props.disabled||this.props.onClick(e,{complete:this.complete})})),i(this,"complete",((e=1e3)=>{this.setState({completed:!0}),setTimeout((()=>{this.setState({completed:!1})}),e)})),i(this,"onKeyDown",(e=>{var t,n;null===(t=(n=this.props).onKeyDown)||void 0===t||t.call(n,e)}))}}i(s,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self",onClick:()=>{}});export{s as default};
2
2
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../src/components/internal/Button/Button.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Button.scss';\nimport { ButtonProps, ButtonState } from './types';\n\nclass Button extends Component<ButtonProps, ButtonState> {\n public static defaultProps = {\n status: 'default',\n variant: 'primary',\n disabled: false,\n label: '',\n inline: false,\n target: '_self',\n onClick: () => {}\n };\n\n public onClick = e => {\n e.preventDefault();\n\n if (!this.props.disabled) {\n this.props.onClick(e, { complete: this.complete });\n }\n };\n\n public complete = (delay = 1000) => {\n this.setState({ completed: true });\n setTimeout(() => {\n this.setState({ completed: false });\n }, delay);\n };\n\n public onKeyDown = (event: KeyboardEvent) => {\n this.props.onKeyDown?.(event);\n };\n\n render({ classNameModifiers = [], disabled, href, icon, inline, label, status, variant }, { completed }) {\n const { i18n } = useCoreContext();\n\n const buttonIcon = icon ? <img className=\"adyen-checkout__button__icon\" src={icon} alt=\"\" aria-hidden=\"true\" /> : '';\n\n const modifiers = [\n ...classNameModifiers,\n ...(variant !== 'primary' ? [variant] : []),\n ...(inline ? ['inline'] : []),\n ...(completed ? ['completed'] : []),\n ...(status === 'loading' || status === 'redirect' ? ['loading'] : [])\n ];\n\n const buttonClasses = classNames(['adyen-checkout__button', ...modifiers.map(m => `adyen-checkout__button--${m}`)]);\n\n const buttonStates = {\n loading: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n <span className={'adyen-checkout__button__text--sr-only'}>{i18n.get('loading')}</span>\n </span>\n ),\n redirect: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n {i18n.get('payButton.redirecting')}\n </span>\n ),\n default: (\n <span className=\"adyen-checkout__button__content\">\n {buttonIcon}\n <span className=\"adyen-checkout__button__text\">{label}</span>\n </span>\n )\n };\n\n const buttonText = buttonStates[status] || buttonStates.default;\n\n if (href) {\n return (\n <a className={buttonClasses} href={href} disabled={disabled} target={this.props.target} rel={this.props.rel}>\n {buttonText}\n </a>\n );\n }\n\n return (\n <button className={buttonClasses} type=\"button\" disabled={disabled} onClick={this.onClick} onKeyDown={this.onKeyDown}>\n {buttonText}\n {status !== 'loading' && status !== 'redirect' && this.props.children}\n </button>\n );\n }\n}\n\nexport default Button;\n"],"names":["Button","Component","render","classNameModifiers","disabled","href","icon","inline","label","status","variant","completed","i18n","useCoreContext","buttonIcon","h","img","className","src","alt","aria-hidden","modifiers","buttonClasses","classNames","map","m","buttonStates","loading","span","Spinner","size","get","redirect","default","buttonText","a","target","this","props","rel","button","type","onClick","onKeyDown","children","super","args","_define_property","e","preventDefault","complete","delay","setState","setTimeout","event","_this_props_onKeyDown","_this_props","call","defaultProps"],"mappings":"qWAOA,MAAMA,UAAeC,EA8BjBC,MAAAA,EAAOC,mBAAEA,EAAqB,GAAEC,SAAEA,EAAQC,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,IAAWC,UAAEA,IACxF,MAAMC,KAAEA,GAASC,IAEXC,EAAaR,EAAOS,EAACC,MAAAA,CAAIC,UAAU,+BAA+BC,IAAKZ,EAAMa,IAAI,GAAGC,cAAY,SAAY,GAE5GC,EAAY,IACXlB,KACa,YAAZO,EAAwB,CAACA,GAAW,MACpCH,EAAS,CAAC,UAAY,MACtBI,EAAY,CAAC,aAAe,MACjB,YAAXF,GAAmC,aAAXA,EAAwB,CAAC,WAAa,IAGhEa,EAAgBC,EAAW,CAAC,4BAA6BF,EAAUG,KAAIC,GAAK,2BAA2BA,QAEvGC,EAAe,CACjBC,QACIZ,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASvB,QAAAA,IACvBQ,EAACa,OAAAA,CAAKX,UAAW,yCAA0CL,EAAKmB,IAAI,aAG5EC,SACIjB,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASvB,QAAAA,IACtBK,EAAKmB,IAAI,0BAGlBE,QACIlB,EAACa,OAAAA,CAAKX,UAAU,mCACXH,EACDC,EAACa,OAAAA,CAAKX,UAAU,gCAAgCT,KAKtD0B,EAAaR,EAAajB,IAAWiB,EAAaO,QAExD,OAAI5B,EAEIU,EAACoB,IAAAA,CAAElB,UAAWK,EAAejB,KAAMA,EAAMD,SAAUA,EAAUgC,OAAQC,KAAKC,MAAMF,OAAQG,IAAKF,KAAKC,MAAMC,KACnGL,GAMTnB,EAACyB,SAAAA,CAAOvB,UAAWK,EAAemB,KAAK,SAASrC,SAAUA,EAAUsC,QAASL,KAAKK,QAASC,UAAWN,KAAKM,WACtGT,EACW,YAAXzB,GAAmC,aAAXA,GAAyB4B,KAAKC,MAAMM,SAGzE,mBAlFJC,SAWIC,GAAAC,EAAAV,KAAOK,WAAUM,IACbA,EAAEC,iBAEGZ,KAAKC,MAAMlC,UACZiC,KAAKC,MAAMI,QAAQM,EAAG,CAAEE,SAAUb,KAAKa,UAC3C,IAGJH,EAAOG,KAAAA,YAAW,CAACC,EAAQ,OACvBd,KAAKe,SAAS,CAAEzC,WAAW,IAC3B0C,YAAW,KACPhB,KAAKe,SAAS,CAAEzC,WAAW,GAAM,GAClCwC,EAAAA,IAGPJ,EAAAV,KAAOM,aAAaW,QAChBC,EAAAC,EAAoB,QAApBD,GAAAC,EAAAnB,KAAKC,OAAMK,iBAAX,IAAAY,GAAAA,EAAAE,KAAAD,EAAuBF,EAAAA,KA1B3BP,EADE/C,EACY0D,eAAe,CACzBjD,OAAQ,UACRC,QAAS,UACTN,UAAU,EACVI,MAAO,GACPD,QAAQ,EACR6B,OAAQ,QACRM,QAAS"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../src/components/internal/Button/Button.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Button.scss';\nimport { ButtonProps, ButtonState } from './types';\n\nclass Button extends Component<ButtonProps, ButtonState> {\n public static defaultProps = {\n status: 'default',\n variant: 'primary',\n disabled: false,\n label: '',\n inline: false,\n target: '_self',\n onClick: () => {}\n };\n\n public onClick = e => {\n e.preventDefault();\n\n if (!this.props.disabled) {\n this.props.onClick(e, { complete: this.complete });\n }\n };\n\n public complete = (delay = 1000) => {\n this.setState({ completed: true });\n setTimeout(() => {\n this.setState({ completed: false });\n }, delay);\n };\n\n public onKeyDown = (event: KeyboardEvent) => {\n this.props.onKeyDown?.(event);\n };\n\n render() {\n const { classNameModifiers = [], disabled, href, icon, inline, label, ariaLabel, status, variant, buttonRef }: ButtonProps = this.props;\n const { completed } = this.state;\n const { i18n } = useCoreContext();\n\n const buttonIcon = icon ? <img className=\"adyen-checkout__button__icon\" src={icon} alt=\"\" aria-hidden=\"true\" /> : '';\n\n const modifiers = [\n ...classNameModifiers,\n ...(variant !== 'primary' ? [variant] : []),\n ...(inline ? ['inline'] : []),\n ...(completed ? ['completed'] : []),\n ...(status === 'loading' || status === 'redirect' ? ['loading'] : [])\n ];\n\n const buttonClasses = classNames(['adyen-checkout__button', ...modifiers.map(m => `adyen-checkout__button--${m}`)]);\n\n const buttonStates = {\n loading: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n <span className={'adyen-checkout__button__text--sr-only'}>{i18n.get('loading')}</span>\n </span>\n ),\n redirect: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n {i18n.get('payButton.redirecting')}\n </span>\n ),\n default: (\n <span className=\"adyen-checkout__button__content\">\n {buttonIcon}\n <span className=\"adyen-checkout__button__text\">{label}</span>\n </span>\n )\n };\n\n const buttonText = buttonStates[status] || buttonStates.default;\n\n if (href) {\n return (\n <a className={buttonClasses} href={href} disabled={disabled} target={this.props.target} rel={this.props.rel}>\n {buttonText}\n </a>\n );\n }\n\n return (\n <button\n ref={buttonRef}\n className={buttonClasses}\n type=\"button\"\n disabled={disabled}\n onClick={this.onClick}\n onKeyDown={this.onKeyDown}\n aria-label={ariaLabel}\n >\n {buttonText}\n {status !== 'loading' && status !== 'redirect' && this.props.children}\n </button>\n );\n }\n}\n\nexport default Button;\n"],"names":["Button","Component","render","classNameModifiers","disabled","href","icon","inline","label","ariaLabel","status","variant","buttonRef","this","props","completed","state","i18n","useCoreContext","buttonIcon","h","img","className","src","alt","aria-hidden","modifiers","buttonClasses","classNames","map","m","buttonStates","loading","span","Spinner","size","get","redirect","default","buttonText","a","target","rel","button","ref","type","onClick","onKeyDown","aria-label","children","super","args","_define_property","e","preventDefault","complete","delay","setState","setTimeout","event","_this_props_onKeyDown","_this_props","call","defaultProps"],"mappings":"qWAOA,MAAMA,UAAeC,EA8BjBC,MAAAA,GACI,MAAMC,mBAAEA,EAAqB,GAAEC,SAAEA,EAAQC,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,UAAEA,EAASC,OAAEA,EAAMC,QAAEA,EAAOC,UAAEA,GAA2BC,KAAKC,OAC5HC,UAAEA,GAAcF,KAAKG,OACrBC,KAAEA,GAASC,IAEXC,EAAab,EAAOc,EAACC,MAAAA,CAAIC,UAAU,+BAA+BC,IAAKjB,EAAMkB,IAAI,GAAGC,cAAY,SAAY,GAE5GC,EAAY,IACXvB,KACa,YAAZQ,EAAwB,CAACA,GAAW,MACpCJ,EAAS,CAAC,UAAY,MACtBQ,EAAY,CAAC,aAAe,MACjB,YAAXL,GAAmC,aAAXA,EAAwB,CAAC,WAAa,IAGhEiB,EAAgBC,EAAW,CAAC,4BAA6BF,EAAUG,KAAIC,GAAK,2BAA2BA,QAEvGC,EAAe,CACjBC,QACIZ,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAAS5B,QAAAA,IACvBa,EAACa,OAAAA,CAAKX,UAAW,yCAA0CL,EAAKmB,IAAI,aAG5EC,SACIjB,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAAS5B,QAAAA,IACtBU,EAAKmB,IAAI,0BAGlBE,QACIlB,EAACa,OAAAA,CAAKX,UAAU,mCACXH,EACDC,EAACa,OAAAA,CAAKX,UAAU,gCAAgCd,KAKtD+B,EAAaR,EAAarB,IAAWqB,EAAaO,QAExD,OAAIjC,EAEIe,EAACoB,IAAAA,CAAElB,UAAWK,EAAetB,KAAMA,EAAMD,SAAUA,EAAUqC,OAAQ5B,KAAKC,MAAM2B,OAAQC,IAAK7B,KAAKC,MAAM4B,KACnGH,GAMTnB,EAACuB,SAAAA,CACGC,IAAKhC,EACLU,UAAWK,EACXkB,KAAK,SACLzC,SAAUA,EACV0C,QAASjC,KAAKiC,QACdC,UAAWlC,KAAKkC,UAChBC,aAAYvC,GAEX8B,EACW,YAAX7B,GAAmC,aAAXA,GAAyBG,KAAKC,MAAMmC,SAGzE,mBA5FJC,SAWIC,GAAAC,EAAAvC,KAAOiC,WAAUO,IACbA,EAAEC,iBAEGzC,KAAKC,MAAMV,UACZS,KAAKC,MAAMgC,QAAQO,EAAG,CAAEE,SAAU1C,KAAK0C,UAC3C,IAGJH,EAAOG,KAAAA,YAAW,CAACC,EAAQ,OACvB3C,KAAK4C,SAAS,CAAE1C,WAAW,IAC3B2C,YAAW,KACP7C,KAAK4C,SAAS,CAAE1C,WAAW,GAAM,GAClCyC,EAAAA,IAGPJ,EAAAvC,KAAOkC,aAAaY,QAChBC,EAAAC,EAAoB,QAApBD,GAAAC,EAAAhD,KAAKC,OAAMiC,iBAAX,IAAAa,GAAAA,EAAAE,KAAAD,EAAuBF,EAAAA,KA1B3BP,EADEpD,EACY+D,eAAe,CACzBrD,OAAQ,UACRC,QAAS,UACTP,UAAU,EACVI,MAAO,GACPD,QAAQ,EACRkC,OAAQ,QACRK,QAAS"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as r}from"../../../external/preact/dist/preact.js";import{isValidHttpUrl as t}from"../../../utils/isValidURL.js";import{interpolateElement as a}from"../../../language/utils.js";function s({message:r,urls:t}){return e("span",{className:"adyen-checkout-disclaimer__label"},e(n,{message:r,urls:t}))}function n({message:s,urls:n}){const l="string"==typeof s,o=n.every((e=>"string"==typeof e&&t(e)));return l&&o?e(r,null,a(s,n.map((r=>function(t){return e("a",{className:"adyen-checkout__link",href:r,target:"_blank",rel:"noopener noreferrer"},t)})))):null}export{n as LabelOnlyDisclaimerMessage,s as default};
1
+ import{createElement as e,Fragment as t}from"../../../external/preact/dist/preact.js";import{isValidHttpUrl as r}from"../../../utils/isValidURL.js";import{interpolateElement as s}from"../../../language/utils.js";import a from"../Link/Link.js";function n({message:t,urls:r}){return e("span",{className:"adyen-checkout-disclaimer__label"},e(i,{message:t,urls:r}))}function i({message:n,urls:i}){const l="string"==typeof n,o=i.every((e=>"string"==typeof e&&r(e)));return l&&o?e(t,null,s(n,i.map((t=>function(r){return e(a,{to:t},r)})))):null}export{i as LabelOnlyDisclaimerMessage,n as default};
2
2
  //# sourceMappingURL=DisclaimerMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisclaimerMessage.js","sources":["../../../../../src/components/internal/DisclaimerMessage/DisclaimerMessage.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { isValidHttpUrl } from '../../../utils/isValidURL';\nimport './DisclaimerMessage.scss';\nimport { interpolateElement } from '../../../language/utils';\n\nexport interface DisclaimerMsgObject {\n message: string;\n linkText: string;\n link: string;\n}\n\ninterface InternalDisclaimerMsgObject {\n message: string;\n urls: Array<string>;\n}\n\n/**\n * props: {\n * message: 'By continuing you agree with the %#terms and conditions%#',\n * urls: ['https://www.adyen.com']\n * }\n * String inside the '%#' token pair will be rendered as an anchor element.\n */\n\nexport default function DisclaimerMessage({ message, urls }: InternalDisclaimerMsgObject) {\n return (\n <span className=\"adyen-checkout-disclaimer__label\">\n <LabelOnlyDisclaimerMessage message={message} urls={urls} />\n </span>\n );\n}\n\nexport function LabelOnlyDisclaimerMessage({ message, urls }: InternalDisclaimerMsgObject) {\n const messageIsStr = typeof message === 'string';\n const validUrls = urls.every(url => typeof url === 'string' && isValidHttpUrl(url));\n if (!messageIsStr || !validUrls) return null;\n\n return (\n <Fragment>\n {interpolateElement(\n message,\n urls.map(\n // for each URL in the URLs array, return a createLink function\n url =>\n function createLink(translation) {\n return (\n <a className=\"adyen-checkout__link\" href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n {translation}\n </a>\n );\n }\n )\n )}\n </Fragment>\n );\n}\n"],"names":["DisclaimerMessage","message","urls","h","span","className","LabelOnlyDisclaimerMessage","messageIsStr","validUrls","every","url","isValidHttpUrl","Fragment","interpolateElement","map","translation","a","href","target","rel"],"mappings":"oNAwBe,SAASA,GAAkBC,QAAEA,EAAOC,KAAEA,IACjD,OACIC,EAACC,OAAAA,CAAKC,UAAU,oCACZF,EAACG,EAAAA,CAA2BL,QAASA,EAASC,KAAMA,IAGhE,CAEO,SAASI,GAA2BL,QAAEA,EAAOC,KAAEA,IAClD,MAAMK,EAAkC,iBAAZN,EACtBO,EAAYN,EAAKO,OAAMC,GAAsB,iBAARA,GAAoBC,EAAeD,KAC9E,OAAKH,GAAiBC,EAGlBL,EAACS,EACIC,KAAAA,EACGZ,EACAC,EAAKY,KAEDJ,GACI,SAAoBK,GAChB,OACIZ,EAACa,IAAAA,CAAEX,UAAU,uBAAuBY,KAAMP,EAAKQ,OAAO,SAASC,IAAI,uBAC9DJ,EAGb,MAfoB,IAoB5C"}
1
+ {"version":3,"file":"DisclaimerMessage.js","sources":["../../../../../src/components/internal/DisclaimerMessage/DisclaimerMessage.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { isValidHttpUrl } from '../../../utils/isValidURL';\nimport './DisclaimerMessage.scss';\nimport { interpolateElement } from '../../../language/utils';\nimport Link from '../Link';\n\nexport interface DisclaimerMsgObject {\n message: string;\n linkText: string;\n link: string;\n}\n\ninterface InternalDisclaimerMsgObject {\n message: string;\n urls: Array<string>;\n}\n\n/**\n * props: {\n * message: 'By continuing you agree with the %#terms and conditions%#',\n * urls: ['https://www.adyen.com']\n * }\n * String inside the '%#' token pair will be rendered as an anchor element.\n */\n\nexport default function DisclaimerMessage({ message, urls }: InternalDisclaimerMsgObject) {\n return (\n <span className=\"adyen-checkout-disclaimer__label\">\n <LabelOnlyDisclaimerMessage message={message} urls={urls} />\n </span>\n );\n}\n\nexport function LabelOnlyDisclaimerMessage({ message, urls }: InternalDisclaimerMsgObject) {\n const messageIsStr = typeof message === 'string';\n const validUrls = urls.every(url => typeof url === 'string' && isValidHttpUrl(url));\n if (!messageIsStr || !validUrls) return null;\n\n return (\n <Fragment>\n {interpolateElement(\n message,\n urls.map(\n // for each URL in the URLs array, return a createLink function\n url =>\n function createLink(translation) {\n return <Link to={url}>{translation}</Link>;\n }\n )\n )}\n </Fragment>\n );\n}\n"],"names":["DisclaimerMessage","message","urls","h","span","className","LabelOnlyDisclaimerMessage","messageIsStr","validUrls","every","url","isValidHttpUrl","Fragment","interpolateElement","map","translation","Link","to"],"mappings":"mPAyBe,SAASA,GAAkBC,QAAEA,EAAOC,KAAEA,IACjD,OACIC,EAACC,OAAAA,CAAKC,UAAU,oCACZF,EAACG,EAAAA,CAA2BL,QAASA,EAASC,KAAMA,IAGhE,CAEO,SAASI,GAA2BL,QAAEA,EAAOC,KAAEA,IAClD,MAAMK,EAAkC,iBAAZN,EACtBO,EAAYN,EAAKO,OAAMC,GAAsB,iBAARA,GAAoBC,EAAeD,KAC9E,OAAKH,GAAiBC,EAGlBL,EAACS,EACIC,KAAAA,EACGZ,EACAC,EAAKY,KAEDJ,GACI,SAAoBK,GAChB,OAAOZ,EAACa,EAAAA,CAAKC,GAAIP,GAAMK,EAC3B,MAXoB,IAgB5C"}
@@ -1,2 +1,2 @@
1
- import e from"../../../../_virtual/index.js";import{createElement as n,Fragment as t,toChildArray as l,cloneElement as a}from"../../../../external/preact/dist/preact.js";import r from"../../Spinner/Spinner.js";import o from"../../Icon/Icon.js";import{ARIA_ERROR_SUFFIX as i,ARIA_CONTEXT_SUFFIX as c}from"../../../../core/Errors/constants.js";import{useRef as s,useState as d,useCallback as u}from"../../../../external/preact/hooks/dist/hooks.js";import{getUniqueId as p}from"../../../../utils/idGenerator.js";import{PREFIX as m}from"../../Icon/constants.js";function f(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function h(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},l=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(l=l.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),l.forEach((function(n){f(e,n,t[n])}))}return e}function y(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n}(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})),e}const _=f=>{const{children:_,className:b,classNameModifiers:k,dir:v,disabled:O,readOnly:j,errorMessage:g,helper:x,inputWrapperModifiers:E,isLoading:w,isValid:N,label:F,labelEndAdornment:P,name:S,onBlur:L,onFieldBlur:$,onFocus:I,onFocusField:A,showValidIcon:T,useLabelElement:C,showErrorElement:M,showContextualElement:D,contextualText:V,filled:q,focused:B,i18n:H,contextVisibleToScreenReader:R,renderAlternativeToLabel:W}=f,z=null==R||R,G=M&&"string"==typeof g&&g.length>0,J=D&&!G&&(null==V?void 0:V.length)>0,K=s(p(`adyen-checkout-${S}`)),[Q,U]=d(!1),[X,Y]=d(!1);null!=B&&U(!!B),null!=q&&Y(!!q);const Z=u((e=>{U(!0),null==I||I(e)}),[I]),ee=u((e=>{U(!1),null==L||L(e),null==$||$(e)}),[L,$]),ne=u((()=>n(t,null,"string"==typeof F&&n("span",{className:e({"adyen-checkout__label__text":!0,"adyen-checkout__label__text--error":g}),"data-id":S},F),"function"==typeof F&&F(),P&&n("span",{className:"adyen-checkout__label-adornment--end"},P),x&&n("span",{className:"adyen-checkout__helper-text"},x))),[F,g,P,x]),te=u((()=>{const s=n("span",y(h({className:e({"adyen-checkout-contextual-text--error":!0,"adyen-checkout-contextual-text--hidden":!G})},z&&{id:`${K.current}${i}`}),{"aria-hidden":z?null:"true"}),g),d=n("span",y(h({className:e({"adyen-checkout-contextual-text":!0,"adyen-checkout-contextual-text--hidden":!J})},z&&{id:`${K.current}${c}`}),{"aria-hidden":z?null:"true"}),V);return n(t,null,n("div",{className:e(["adyen-checkout__input-wrapper",...E.map((e=>`adyen-checkout__input-wrapper--${e}`))]),dir:v},l(_).map((e=>{const n=y(h({isValid:N,onFocusHandler:Z,onBlurHandler:ee,isInvalid:!!g},S&&{uniqueId:K.current}),{showErrorElement:M});return a(e,n)})),w&&n("span",{className:"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--loading"},n(r,{size:"small"})),N&&!1!==T&&n("span",{className:"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--valid"},n(o,{type:`${m}checkmark`,alt:null==H?void 0:H.get("field.valid")})),g&&n("span",{className:"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--invalid"},n(o,{type:`${m}field_error`,alt:null==H?void 0:H.get("error.title")}))),s,d)}),[_,g,V,w,N,Z,ee]),le=u((({onFocusField:t,focused:l,filled:a,disabled:r,name:o,uniqueId:i,useLabelElement:c,isSecuredField:s,children:d,renderAlternativeToLabel:u})=>{const p={onClick:t,className:e({"adyen-checkout__label":!0,"adyen-checkout__label--focused":l,"adyen-checkout__label--filled":a,"adyen-checkout__label--disabled":r})};return c?n("label",h({},p,!s&&o&&{htmlFor:i}),d):u(p,d,i)}),[]);return n("div",{className:e("adyen-checkout__field",b,k.map((e=>`adyen-checkout__field--${e}`)),{"adyen-checkout__field--error":g,"adyen-checkout__field--valid":N,"adyen-checkout__field--inactive":j||O})},n(le,{onFocusField:A,name:S,disabled:O,filled:X,focused:Q,useLabelElement:C,uniqueId:K.current,isSecuredField:!z,renderAlternativeToLabel:W},ne()),te())};_.defaultProps={className:"",classNameModifiers:[],inputWrapperModifiers:[],useLabelElement:!0,showErrorElement:!0,showContextualElement:!0,renderAlternativeToLabel:()=>null};export{_ as default};
1
+ import e from"../../../../_virtual/index.js";import{createElement as n,Fragment as t,toChildArray as a,cloneElement as l}from"../../../../external/preact/dist/preact.js";import r from"../../Spinner/Spinner.js";import o from"../../Icon/Icon.js";import{ARIA_ERROR_SUFFIX as i,ARIA_CONTEXT_SUFFIX as c}from"../../../../core/Errors/constants.js";import{useRef as s,useMemo as u,useState as d,useCallback as p}from"../../../../external/preact/hooks/dist/hooks.js";import{getUniqueId as m}from"../../../../utils/idGenerator.js";import{PREFIX as f}from"../../Icon/constants.js";import h from"../../../../utils/uuid.js";function y(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function _(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){y(e,n,t[n])}))}return e}function b(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n}(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})),e}const k=y=>{const{children:k,className:v,classNameModifiers:j,dir:O,disabled:g,readOnly:x,errorMessage:w,helper:E,inputWrapperModifiers:N,isLoading:F,isValid:P,label:S,labelEndAdornment:$,name:I,onBlur:L,onFieldBlur:C,onFocus:A,onFocusField:M,showValidIcon:T,useLabelElement:V,showErrorElement:D,showContextualElement:q,staticValue:B,contextualText:H,filled:R,focused:W,i18n:z,contextVisibleToScreenReader:G,renderAlternativeToLabel:J,onInputContainerClick:K}=y,Q=null==G||G,U=D&&"string"==typeof w&&w.length>0,X=q&&!U&&(null==H?void 0:H.length)>0,Y=s(m(`adyen-checkout-${I}`)),Z=u((()=>B?`input-static-value-${h()}`:null),[B]),[ee,ne]=d(!1),[te,ae]=d(!1);null!=W&&ne(!!W),null!=R&&ae(!!R);const le=p((e=>{ne(!0),null==A||A(e)}),[A]),re=p((e=>{ne(!1),null==L||L(e),null==C||C(e)}),[L,C]),oe=p((()=>n(t,null,"string"==typeof S&&n("span",{className:e({"adyen-checkout__label__text":!0,"adyen-checkout__label__text--error":w}),"data-id":I},S),"function"==typeof S&&S(),$&&n("span",{className:"adyen-checkout__label-adornment--end"},$),E&&n("span",{className:"adyen-checkout__helper-text"},E))),[S,w,$,E]),ie=p((()=>{const s=n("span",b(_({className:e({"adyen-checkout-contextual-text--error":!0,"adyen-checkout-contextual-text--hidden":!U})},Q&&{id:`${Y.current}${i}`}),{"aria-hidden":Q?null:"true"}),w),u=n("span",b(_({className:e({"adyen-checkout-contextual-text":!0,"adyen-checkout-contextual-text--hidden":!X})},Q&&{id:`${Y.current}${c}`}),{"aria-hidden":Q?null:"true"}),H);return n(t,null,n("div",{className:e(["adyen-checkout__input-wrapper",...N.map((e=>`adyen-checkout__input-wrapper--${e}`))]),dir:O,onClick:K},B&&n("span",{id:Z,className:"adyen-checkout__field-static-value"},B),a(k).map((e=>{const n=b(_({isValid:P,onFocusHandler:le,onBlurHandler:re,isInvalid:!!w,"aria-owns":Z},I&&{uniqueId:Y.current}),{showErrorElement:D});return l(e,n)})),F&&n("span",{className:"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--loading"},n(r,{size:"small"})),P&&!1!==T&&n("span",{className:"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--valid"},n(o,{type:`${f}checkmark`,alt:null==z?void 0:z.get("field.valid")})),w&&n("span",{className:"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--invalid"},n(o,{type:`${f}field_error`,alt:null==z?void 0:z.get("error.title")}))),s,u)}),[k,w,H,F,P,le,re]),ce=p((({onFocusField:t,focused:a,filled:l,disabled:r,name:o,uniqueId:i,useLabelElement:c,isSecuredField:s,children:u,renderAlternativeToLabel:d})=>{const p={onClick:t,className:e({"adyen-checkout__label":!0,"adyen-checkout__label--focused":a,"adyen-checkout__label--filled":l,"adyen-checkout__label--disabled":r})};return c?n("label",_({},p,!s&&o&&{htmlFor:i}),u):d(p,u,i)}),[]);return n("div",{className:e("adyen-checkout__field",v,j.map((e=>`adyen-checkout__field--${e}`)),{"adyen-checkout__field--error":w,"adyen-checkout__field--valid":P,"adyen-checkout__field--inactive":x||g})},n(ce,{onFocusField:M,name:I,disabled:g,filled:te,focused:ee,useLabelElement:V,uniqueId:Y.current,isSecuredField:!Q,renderAlternativeToLabel:J},oe()),ie())};k.defaultProps={className:"",classNameModifiers:[],inputWrapperModifiers:[],useLabelElement:!0,showErrorElement:!0,showContextualElement:!0,renderAlternativeToLabel:()=>null};export{k as default};
2
2
  //# sourceMappingURL=Field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sources":["../../../../../../src/components/internal/FormFields/Field/Field.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { cloneElement, ComponentChild, Fragment, FunctionalComponent, h, toChildArray, VNode } from 'preact';\nimport Spinner from '../../Spinner';\nimport Icon from '../../Icon';\nimport { ARIA_CONTEXT_SUFFIX, ARIA_ERROR_SUFFIX } from '../../../../core/Errors/constants';\nimport { useCallback, useRef, useState } from 'preact/hooks';\nimport { getUniqueId } from '../../../../utils/idGenerator';\nimport { FieldProps } from './types';\nimport './Field.scss';\nimport { PREFIX } from '../../Icon/constants';\n\nconst Field: FunctionalComponent<FieldProps> = props => {\n //\n const {\n children,\n className,\n classNameModifiers,\n dir,\n disabled,\n readOnly,\n errorMessage,\n helper,\n inputWrapperModifiers,\n isLoading,\n isValid,\n label,\n labelEndAdornment,\n name,\n onBlur,\n onFieldBlur,\n onFocus,\n // onFocusField is a securedField related function that allows a label click to set focus on a securedField (equates to CardInput setFocusOn)\n // TODO should rename it to make its purpose clear => setFocusOnSecuredField\n onFocusField,\n showValidIcon,\n useLabelElement,\n showErrorElement,\n showContextualElement,\n contextualText,\n // Redeclare prop names to avoid internal clashes\n filled: propsFilled,\n focused: propsFocused,\n i18n,\n contextVisibleToScreenReader,\n renderAlternativeToLabel\n } = props;\n\n // Controls whether any error element has an aria-hidden=\"true\" attr (which means it is the error for a securedField)\n // or whether it has an id attr that can be pointed to by an aria-describedby attr on an input element\n const contextVisibleToSR = contextVisibleToScreenReader ?? true;\n const showError = showErrorElement && typeof errorMessage === 'string' && errorMessage.length > 0;\n const showContext = showContextualElement && !showError && contextualText?.length > 0;\n\n const uniqueId = useRef(getUniqueId(`adyen-checkout-${name}`));\n const [focused, setFocused] = useState(false);\n const [filled, setFilled] = useState(false);\n\n // The means by which focussed/filled is set for securedFields\n if (propsFocused != null) setFocused(!!propsFocused);\n if (propsFilled != null) setFilled(!!propsFilled);\n\n // The means by which focussed/filled is set for other fields - this function is passed down to them and triggered\n const onFocusHandler = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n setFocused(true);\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const onBlurHandler = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n setFocused(false);\n onBlur?.(event);\n // When we also need to fire a specific function when a field blurs // TODO - what is the use case?\n onFieldBlur?.(event);\n },\n [onBlur, onFieldBlur]\n );\n\n const renderLabelOrAlternativeContents = useCallback(() => {\n return (\n <Fragment>\n {typeof label === 'string' && (\n <span\n className={classNames({\n 'adyen-checkout__label__text': true,\n 'adyen-checkout__label__text--error': errorMessage\n })}\n data-id={name}\n >\n {label}\n </span>\n )}\n\n {/*TODO - in what scenario is label a function? */}\n {/*@ts-ignore - function is callable*/}\n {typeof label === 'function' && label()}\n\n {labelEndAdornment && <span className=\"adyen-checkout__label-adornment--end\">{labelEndAdornment}</span>}\n\n {helper && <span className={'adyen-checkout__helper-text'}>{helper}</span>}\n </Fragment>\n );\n }, [label, errorMessage, labelEndAdornment, helper]);\n\n const renderInputRelatedElements = useCallback(() => {\n const errorElem = (\n <span\n className={classNames({ 'adyen-checkout-contextual-text--error': true, 'adyen-checkout-contextual-text--hidden': !showError })}\n {...(contextVisibleToSR && { id: `${uniqueId.current}${ARIA_ERROR_SUFFIX}` })}\n aria-hidden={contextVisibleToSR ? null : 'true'}\n >\n {errorMessage}\n </span>\n );\n const contextualElem = (\n <span\n className={classNames({ 'adyen-checkout-contextual-text': true, 'adyen-checkout-contextual-text--hidden': !showContext })}\n {...(contextVisibleToSR && { id: `${uniqueId.current}${ARIA_CONTEXT_SUFFIX}` })}\n aria-hidden={contextVisibleToSR ? null : 'true'}\n >\n {contextualText}\n </span>\n );\n\n return (\n <Fragment>\n <div\n className={classNames([\n 'adyen-checkout__input-wrapper',\n ...inputWrapperModifiers.map(m => `adyen-checkout__input-wrapper--${m}`)\n ])}\n dir={dir}\n >\n {toChildArray(children).map((child: ComponentChild): ComponentChild => {\n const childProps = {\n isValid,\n onFocusHandler,\n onBlurHandler,\n isInvalid: !!errorMessage,\n ...(name && { uniqueId: uniqueId.current }),\n showErrorElement: showErrorElement\n };\n return cloneElement(child as VNode, childProps);\n })}\n\n {isLoading && (\n <span className=\"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--loading\">\n <Spinner size=\"small\" />\n </span>\n )}\n\n {isValid && showValidIcon !== false && (\n <span className=\"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--valid\">\n <Icon type={`${PREFIX}checkmark`} alt={i18n?.get('field.valid')} />\n </span>\n )}\n\n {errorMessage && (\n <span className=\"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--invalid\">\n <Icon type={`${PREFIX}field_error`} alt={i18n?.get('error.title')} />\n </span>\n )}\n </div>\n {errorElem}\n {contextualElem}\n </Fragment>\n );\n }, [children, errorMessage, contextualText, isLoading, isValid, onFocusHandler, onBlurHandler]);\n\n /**\n * Use cases:\n * - Not all form controls want/need a label e.g. many checkboxes describe what they are in their own markup and don't need the wrapping Field to also generate a labelling element\n * - securedFields *can't* have a label (screen-reader's can make the association, over different browser contexts, between the label and the input)\n */\n const LabelOrAlternative = useCallback(\n ({ onFocusField, focused, filled, disabled, name, uniqueId, useLabelElement, isSecuredField, children, renderAlternativeToLabel }) => {\n const defaultWrapperProps = {\n onClick: onFocusField,\n className: classNames({\n 'adyen-checkout__label': true,\n 'adyen-checkout__label--focused': focused,\n 'adyen-checkout__label--filled': filled,\n 'adyen-checkout__label--disabled': disabled\n })\n };\n\n return useLabelElement ? (\n // if we are NOT dealing with the label for a securedField... we can give it a `for` attribute\n <label {...defaultWrapperProps} {...(!isSecuredField && name && { htmlFor: uniqueId })}>\n {children}\n </label>\n ) : (\n renderAlternativeToLabel(defaultWrapperProps, children, uniqueId) // defaults to null\n\n // Example usage:\n // const alternativeLabelContent = (defaultWrapperProps, children, uniqueId) => {\n // return (\n // <div {...defaultWrapperProps} role={'label'} htmlFor={uniqueId}>\n // {children}\n // </div>\n // );\n // };\n // <Field name={'myField'} useLabelElement={false} renderAlternativeToLabel={alternativeLabelContent}>\n );\n },\n []\n );\n\n /**\n * RENDER\n */\n return (\n <div\n className={classNames(\n 'adyen-checkout__field',\n className,\n classNameModifiers.map(m => `adyen-checkout__field--${m}`),\n {\n 'adyen-checkout__field--error': errorMessage,\n 'adyen-checkout__field--valid': isValid,\n 'adyen-checkout__field--inactive': readOnly || disabled\n }\n )}\n >\n <LabelOrAlternative\n onFocusField={onFocusField}\n name={name}\n disabled={disabled}\n filled={filled}\n focused={focused}\n useLabelElement={useLabelElement}\n uniqueId={uniqueId.current}\n isSecuredField={!contextVisibleToSR}\n renderAlternativeToLabel={renderAlternativeToLabel}\n >\n {renderLabelOrAlternativeContents()}\n </LabelOrAlternative>\n {renderInputRelatedElements()}\n </div>\n );\n};\n\nField.defaultProps = {\n className: '',\n classNameModifiers: [],\n inputWrapperModifiers: [],\n useLabelElement: true,\n showErrorElement: true,\n showContextualElement: true,\n renderAlternativeToLabel: () => null\n};\n\nexport default Field;\n"],"names":["Field","props","children","className","classNameModifiers","dir","disabled","readOnly","errorMessage","helper","inputWrapperModifiers","isLoading","isValid","label","labelEndAdornment","name","onBlur","onFieldBlur","onFocus","onFocusField","showValidIcon","useLabelElement","showErrorElement","showContextualElement","contextualText","filled","propsFilled","focused","propsFocused","i18n","contextVisibleToScreenReader","renderAlternativeToLabel","contextVisibleToSR","showError","length","showContext","uniqueId","useRef","getUniqueId","setFocused","useState","setFilled","onFocusHandler","useCallback","event","onBlurHandler","renderLabelOrAlternativeContents","h","Fragment","span","classNames","data-id","renderInputRelatedElements","errorElem","id","current","ARIA_ERROR_SUFFIX","aria-hidden","contextualElem","ARIA_CONTEXT_SUFFIX","div","map","m","toChildArray","child","childProps","_object_spread_props","_object_spread","isInvalid","cloneElement","Spinner","size","Icon","type","PREFIX","alt","get","LabelOrAlternative","isSecuredField","defaultWrapperProps","onClick","htmlFor","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sources":["../../../../../../src/components/internal/FormFields/Field/Field.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { cloneElement, ComponentChild, Fragment, FunctionalComponent, h, toChildArray, VNode } from 'preact';\nimport Spinner from '../../Spinner';\nimport Icon from '../../Icon';\nimport { ARIA_CONTEXT_SUFFIX, ARIA_ERROR_SUFFIX } from '../../../../core/Errors/constants';\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport { getUniqueId } from '../../../../utils/idGenerator';\nimport { FieldProps } from './types';\nimport './Field.scss';\nimport { PREFIX } from '../../Icon/constants';\nimport uuid from '../../../../utils/uuid';\n\nconst Field: FunctionalComponent<FieldProps> = props => {\n const {\n children,\n className,\n classNameModifiers,\n dir,\n disabled,\n readOnly,\n errorMessage,\n helper,\n inputWrapperModifiers,\n isLoading,\n isValid,\n label,\n labelEndAdornment,\n name,\n onBlur,\n onFieldBlur,\n onFocus,\n // onFocusField is a securedField related function that allows a label click to set focus on a securedField (equates to CardInput setFocusOn)\n // TODO should rename it to make its purpose clear => setFocusOnSecuredField\n onFocusField,\n showValidIcon,\n useLabelElement,\n showErrorElement,\n showContextualElement,\n staticValue,\n contextualText,\n // Redeclare prop names to avoid internal clashes\n filled: propsFilled,\n focused: propsFocused,\n i18n,\n contextVisibleToScreenReader,\n renderAlternativeToLabel,\n onInputContainerClick\n } = props;\n\n // Controls whether any error element has an aria-hidden=\"true\" attr (which means it is the error for a securedField)\n // or whether it has an id attr that can be pointed to by an aria-describedby attr on an input element\n const contextVisibleToSR = contextVisibleToScreenReader ?? true;\n const showError = showErrorElement && typeof errorMessage === 'string' && errorMessage.length > 0;\n const showContext = showContextualElement && !showError && contextualText?.length > 0;\n\n const uniqueId = useRef(getUniqueId(`adyen-checkout-${name}`));\n const staticValueId = useMemo(() => (staticValue ? `input-static-value-${uuid()}` : null), [staticValue]);\n\n const [focused, setFocused] = useState(false);\n const [filled, setFilled] = useState(false);\n\n // The means by which focussed/filled is set for securedFields\n if (propsFocused != null) setFocused(!!propsFocused);\n if (propsFilled != null) setFilled(!!propsFilled);\n\n // The means by which focussed/filled is set for other fields - this function is passed down to them and triggered\n const onFocusHandler = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n setFocused(true);\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const onBlurHandler = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n setFocused(false);\n onBlur?.(event);\n // When we also need to fire a specific function when a field blurs // TODO - what is the use case?\n onFieldBlur?.(event);\n },\n [onBlur, onFieldBlur]\n );\n\n const renderLabelOrAlternativeContents = useCallback(() => {\n return (\n <Fragment>\n {typeof label === 'string' && (\n <span\n className={classNames({\n 'adyen-checkout__label__text': true,\n 'adyen-checkout__label__text--error': errorMessage\n })}\n data-id={name}\n >\n {label}\n </span>\n )}\n\n {/*TODO - in what scenario is label a function? */}\n {/*@ts-ignore - function is callable*/}\n {typeof label === 'function' && label()}\n\n {labelEndAdornment && <span className=\"adyen-checkout__label-adornment--end\">{labelEndAdornment}</span>}\n\n {helper && <span className={'adyen-checkout__helper-text'}>{helper}</span>}\n </Fragment>\n );\n }, [label, errorMessage, labelEndAdornment, helper]);\n\n const renderInputRelatedElements = useCallback(() => {\n const errorElem = (\n <span\n className={classNames({ 'adyen-checkout-contextual-text--error': true, 'adyen-checkout-contextual-text--hidden': !showError })}\n {...(contextVisibleToSR && { id: `${uniqueId.current}${ARIA_ERROR_SUFFIX}` })}\n aria-hidden={contextVisibleToSR ? null : 'true'}\n >\n {errorMessage}\n </span>\n );\n const contextualElem = (\n <span\n className={classNames({ 'adyen-checkout-contextual-text': true, 'adyen-checkout-contextual-text--hidden': !showContext })}\n {...(contextVisibleToSR && { id: `${uniqueId.current}${ARIA_CONTEXT_SUFFIX}` })}\n aria-hidden={contextVisibleToSR ? null : 'true'}\n >\n {contextualText}\n </span>\n );\n\n return (\n <Fragment>\n {/* The <div> element has a child <input> element that allows keyboard interaction */}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}\n <div\n className={classNames([\n 'adyen-checkout__input-wrapper',\n ...inputWrapperModifiers.map(m => `adyen-checkout__input-wrapper--${m}`)\n ])}\n dir={dir}\n onClick={onInputContainerClick}\n >\n {staticValue && (\n <span id={staticValueId} className=\"adyen-checkout__field-static-value\">\n {staticValue}\n </span>\n )}\n\n {toChildArray(children).map((child: ComponentChild): ComponentChild => {\n const propsFromFieldComponent = {\n isValid,\n onFocusHandler,\n onBlurHandler,\n isInvalid: !!errorMessage,\n 'aria-owns': staticValueId,\n ...(name && { uniqueId: uniqueId.current }),\n showErrorElement: showErrorElement\n };\n\n return cloneElement(child as VNode, propsFromFieldComponent);\n })}\n\n {isLoading && (\n <span className=\"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--loading\">\n <Spinner size=\"small\" />\n </span>\n )}\n\n {isValid && showValidIcon !== false && (\n <span className=\"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--valid\">\n <Icon type={`${PREFIX}checkmark`} alt={i18n?.get('field.valid')} />\n </span>\n )}\n\n {errorMessage && (\n <span className=\"adyen-checkout-input__inline-validation adyen-checkout-input__inline-validation--invalid\">\n <Icon type={`${PREFIX}field_error`} alt={i18n?.get('error.title')} />\n </span>\n )}\n </div>\n {errorElem}\n {contextualElem}\n </Fragment>\n );\n }, [children, errorMessage, contextualText, isLoading, isValid, onFocusHandler, onBlurHandler]);\n\n /**\n * Use cases:\n * - Not all form controls want/need a label e.g. many checkboxes describe what they are in their own markup and don't need the wrapping Field to also generate a labelling element\n * - securedFields *can't* have a label (screen-reader's can make the association, over different browser contexts, between the label and the input)\n */\n const LabelOrAlternative = useCallback(\n ({ onFocusField, focused, filled, disabled, name, uniqueId, useLabelElement, isSecuredField, children, renderAlternativeToLabel }) => {\n const defaultWrapperProps = {\n onClick: onFocusField,\n className: classNames({\n 'adyen-checkout__label': true,\n 'adyen-checkout__label--focused': focused,\n 'adyen-checkout__label--filled': filled,\n 'adyen-checkout__label--disabled': disabled\n })\n };\n\n return useLabelElement ? (\n // if we are NOT dealing with the label for a securedField... we can give it a `for` attribute\n <label {...defaultWrapperProps} {...(!isSecuredField && name && { htmlFor: uniqueId })}>\n {children}\n </label>\n ) : (\n renderAlternativeToLabel(defaultWrapperProps, children, uniqueId) // defaults to null\n\n // Example usage:\n // const alternativeLabelContent = (defaultWrapperProps, children, uniqueId) => {\n // return (\n // <div {...defaultWrapperProps} role={'label'} htmlFor={uniqueId}>\n // {children}\n // </div>\n // );\n // };\n // <Field name={'myField'} useLabelElement={false} renderAlternativeToLabel={alternativeLabelContent}>\n );\n },\n []\n );\n\n /**\n * RENDER\n */\n return (\n <div\n className={classNames(\n 'adyen-checkout__field',\n className,\n classNameModifiers.map(m => `adyen-checkout__field--${m}`),\n {\n 'adyen-checkout__field--error': errorMessage,\n 'adyen-checkout__field--valid': isValid,\n 'adyen-checkout__field--inactive': readOnly || disabled\n }\n )}\n >\n <LabelOrAlternative\n onFocusField={onFocusField}\n name={name}\n disabled={disabled}\n filled={filled}\n focused={focused}\n useLabelElement={useLabelElement}\n uniqueId={uniqueId.current}\n isSecuredField={!contextVisibleToSR}\n renderAlternativeToLabel={renderAlternativeToLabel}\n >\n {renderLabelOrAlternativeContents()}\n </LabelOrAlternative>\n {renderInputRelatedElements()}\n </div>\n );\n};\n\nField.defaultProps = {\n className: '',\n classNameModifiers: [],\n inputWrapperModifiers: [],\n useLabelElement: true,\n showErrorElement: true,\n showContextualElement: true,\n renderAlternativeToLabel: () => null\n};\n\nexport default Field;\n"],"names":["Field","props","children","className","classNameModifiers","dir","disabled","readOnly","errorMessage","helper","inputWrapperModifiers","isLoading","isValid","label","labelEndAdornment","name","onBlur","onFieldBlur","onFocus","onFocusField","showValidIcon","useLabelElement","showErrorElement","showContextualElement","staticValue","contextualText","filled","propsFilled","focused","propsFocused","i18n","contextVisibleToScreenReader","renderAlternativeToLabel","onInputContainerClick","contextVisibleToSR","showError","length","showContext","uniqueId","useRef","getUniqueId","staticValueId","useMemo","uuid","setFocused","useState","setFilled","onFocusHandler","useCallback","event","onBlurHandler","renderLabelOrAlternativeContents","h","Fragment","span","classNames","data-id","renderInputRelatedElements","errorElem","id","current","ARIA_ERROR_SUFFIX","aria-hidden","contextualElem","ARIA_CONTEXT_SUFFIX","div","map","m","onClick","toChildArray","child","propsFromFieldComponent","_object_spread_props","_object_spread","isInvalid","cloneElement","Spinner","size","Icon","type","PREFIX","alt","get","LabelOrAlternative","isSecuredField","defaultWrapperProps","htmlFor","defaultProps"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";const r=({to:r,children:t})=>e("a",{className:"adyen-checkout-link",href:r,target:"_blank",rel:"noopener noreferrer"},t);export{r as default};
2
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","sources":["../../../../../src/components/internal/Link/Link.tsx"],"sourcesContent":["import { h } from 'preact';\nimport type { ComponentChildren } from 'preact';\n\nimport './Link.scss';\n\n/**\n * Disclaimer: we don't follow Bento's design for Links. Checkout has its own colors\n */\n\ninterface LinkProps {\n to: string;\n children?: ComponentChildren;\n}\n\nconst Link = ({ to, children }: LinkProps) => {\n return (\n <a className=\"adyen-checkout-link\" href={to} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </a>\n );\n};\n\nexport default Link;\n"],"names":["Link","to","children","h","a","className","href","target","rel"],"mappings":"wEAcA,MAAMA,EAAO,EAAGC,KAAIC,cAEZC,EAACC,IAAAA,CAAEC,UAAU,sBAAsBC,KAAML,EAAIM,OAAO,SAASC,IAAI,uBAC5DN"}