ngx-stripe
Version:
Collect Payments with Stripe: The Angular Way
1 lines • 330 kB
Source Map (JSON)
{"version":3,"file":"ngx-stripe.mjs","sources":["../../../projects/ngx-stripe/src/lib/directives/stripe-element-loading-template.directive.ts","../../../projects/ngx-stripe/src/lib/interfaces/ngx-stripe.interface.ts","../../../projects/ngx-stripe/src/lib/services/stripe-instance.class.ts","../../../projects/ngx-stripe/src/lib/services/window-ref.service.ts","../../../projects/ngx-stripe/src/lib/services/document-ref.service.ts","../../../projects/ngx-stripe/src/lib/services/api-loader.service.ts","../../../projects/ngx-stripe/src/lib/services/stripe.service.ts","../../../projects/ngx-stripe/src/lib/services/stripe-elements.service.ts","../../../projects/ngx-stripe/src/lib/directives/elements.directive.ts","../../../projects/ngx-stripe/src/lib/components/address.component.ts","../../../projects/ngx-stripe/src/lib/components/affirm-message.component.ts","../../../projects/ngx-stripe/src/lib/components/afterpay-clearpay-message.component.ts","../../../projects/ngx-stripe/src/lib/components/card.component.ts","../../../projects/ngx-stripe/src/lib/directives/card-group.directive.ts","../../../projects/ngx-stripe/src/lib/components/card-number.component.ts","../../../projects/ngx-stripe/src/lib/components/card-expiry.component.ts","../../../projects/ngx-stripe/src/lib/components/card-cvc.component.ts","../../../projects/ngx-stripe/src/lib/components/eps-bank.component.ts","../../../projects/ngx-stripe/src/lib/components/express-checkout.component.ts","../../../projects/ngx-stripe/src/lib/components/fpx-bank.component.ts","../../../projects/ngx-stripe/src/lib/components/iban.component.ts","../../../projects/ngx-stripe/src/lib/components/ideal-bank.component.ts","../../../projects/ngx-stripe/src/lib/components/issuing-card-cvc.component.ts","../../../projects/ngx-stripe/src/lib/components/issuing-card-expiry.component.ts","../../../projects/ngx-stripe/src/lib/components/issuing-card-number.component.ts","../../../projects/ngx-stripe/src/lib/components/issuing-card-pin.component.ts","../../../projects/ngx-stripe/src/lib/components/link-authentication.component.ts","../../../projects/ngx-stripe/src/lib/components/p24-bank.component.ts","../../../projects/ngx-stripe/src/lib/components/au-bank-account.component.ts","../../../projects/ngx-stripe/src/lib/components/payment-element.component.ts","../../../projects/ngx-stripe/src/lib/components/payment-method-messaging.component.ts","../../../projects/ngx-stripe/src/lib/components/payment-request-button.component.ts","../../../projects/ngx-stripe/src/lib/services/stripe-factory.service.ts","../../../projects/ngx-stripe/src/lib/ngx-stripe.module.ts","../../../projects/ngx-stripe/src/lib/utils/inject-stripe.ts","../../../projects/ngx-stripe/src/public_api.ts","../../../projects/ngx-stripe/src/ngx-stripe.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngxStripeLoadingTemplate]',\n standalone: true\n})\nexport class NgxStripeElementLoadingTemplateDirective {\n constructor(public templateRef: TemplateRef<NgxStripeElementLoadingTemplateDirective>) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { StripeConstructorOptions } from '@stripe/stripe-js';\n\nexport const STRIPE_PUBLISHABLE_KEY = new InjectionToken<string>('Stripe Publishable Key');\nexport const STRIPE_OPTIONS = new InjectionToken<StripeConstructorOptions>('Stripe Options');\n\nexport const NGX_STRIPE_VERSION = new InjectionToken<string>('NGX_STRIPE_VERSION');\n","import { BehaviorSubject, from, Observable } from 'rxjs';\nimport { filter, first, map, switchMap } from 'rxjs/operators';\n\nimport {\n ConfirmAcssDebitPaymentData,\n ConfirmAcssDebitPaymentOptions,\n ConfirmAfterpayClearpayPaymentData,\n ConfirmAfterpayClearpayPaymentOptions,\n ConfirmAlipayPaymentData,\n ConfirmAlipayPaymentOptions,\n ConfirmAuBecsDebitPaymentData,\n ConfirmAuBecsDebitSetupData,\n ConfirmBancontactPaymentData,\n ConfirmBancontactPaymentOptions,\n ConfirmBoletoPaymentData,\n ConfirmBoletoPaymentOptions,\n ConfirmCardPaymentData,\n ConfirmCardPaymentOptions,\n ConfirmEpsPaymentData,\n ConfirmEpsPaymentOptions,\n ConfirmFpxPaymentData,\n ConfirmFpxPaymentOptions,\n ConfirmGiropayPaymentData,\n ConfirmGiropayPaymentOptions,\n ConfirmGrabPayPaymentData,\n ConfirmGrabPayPaymentOptions,\n ConfirmIdealPaymentData,\n ConfirmIdealPaymentOptions,\n ConfirmKlarnaPaymentData,\n ConfirmKlarnaPaymentOptions,\n ConfirmOxxoPaymentData,\n ConfirmOxxoPaymentOptions,\n ConfirmP24PaymentData,\n ConfirmP24PaymentOptions,\n ConfirmCardSetupData,\n ConfirmCardSetupOptions,\n ConfirmSepaDebitPaymentData,\n ConfirmSofortPaymentData,\n ConfirmWechatPayPaymentData,\n ConfirmWechatPayPaymentOptions,\n ConfirmSepaDebitSetupData,\n CreatePaymentMethodData,\n VerifyMicrodepositsForPaymentData,\n ConfirmAcssDebitSetupData,\n ConfirmAcssDebitSetupOptions,\n CreateSourceData,\n CreateTokenIbanData,\n CreateTokenCardData,\n CreateTokenPiiData,\n CreateTokenBankAccountData,\n PaymentRequest,\n PaymentRequestOptions,\n RedirectToCheckoutOptions,\n RetrieveSourceParam,\n Stripe,\n StripeCardElement,\n StripeCardNumberElement,\n StripeCardCvcElement,\n StripeConstructorOptions,\n StripeElements,\n StripeElement,\n StripeError,\n StripeIbanElement,\n TokenCreateParams,\n ConfirmBacsDebitSetupData,\n ConfirmBancontactSetupData,\n ConfirmIdealSetupData,\n ConfirmSofortSetupData,\n VerifyMicrodepositsForSetupData,\n WrapperLibrary,\n VerificationSessionResult,\n ConfirmPayPalPaymentData,\n ConfirmPayPalSetupData,\n ConfirmPaymentData,\n ConfirmCustomerBalancePaymentData,\n ConfirmCustomerBalancePaymentOptions,\n ConfirmPayNowPaymentData,\n ConfirmPayNowPaymentOptions,\n ConfirmPromptPayPaymentData,\n ConfirmPromptPayPaymentOptions,\n ConfirmAffirmPaymentData,\n ConfirmAffirmPaymentOptions,\n ConfirmSofortPaymentOptions,\n ConfirmSofortSetupOptions,\n ConfirmKonbiniPaymentData,\n ConfirmKonbiniPaymentOptions,\n ConfirmUsBankAccountPaymentData,\n CollectBankAccountForPaymentOptions,\n ConfirmUsBankAccountSetupData,\n CollectBankAccountForSetupOptions,\n PaymentIntentResult,\n PaymentMethodResult,\n SetupIntentResult,\n TokenResult,\n SourceResult,\n ConfirmPixPaymentData,\n ConfirmPixPaymentOptions,\n RadarSessionPayload,\n ProcessOrderResult,\n RetrieveOrderResult,\n FinancialConnectionsSessionResult,\n CollectBankAccountTokenResult,\n EphemeralKeyNonceResult,\n ProcessOrderParams,\n CollectFinancialConnectionsAccountsOptions,\n CollectBankAccountTokenOptions,\n EphemeralKeyNonceOptions,\n StripeElementsOptionsClientSecret,\n StripeElementsOptionsMode,\n StripeElementsOptions,\n ConfirmBlikPaymentData,\n ConfirmBlikPaymentOptions,\n ConfirmCashappPaymentData,\n ConfirmCashappPaymentOptions,\n PaymentIntentOrSetupIntentResult,\n CreatePaymentMethodFromElements,\n CreatePaymentMethodFromElement,\n ConfirmCashappSetupData,\n ConfirmCashappSetupOptions,\n StripeCheckoutOptions,\n StripeCheckout,\n StripeEmbeddedCheckoutOptions,\n StripeEmbeddedCheckout,\n ConfirmMobilepayPaymentData,\n ConfirmMobilepayPaymentOptions,\n CreateConfirmationToken,\n ConfirmationTokenResult,\n ConfirmSetupData\n} from '@stripe/stripe-js';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { WindowRef } from './window-ref.service';\nimport { LazyStripeAPILoader, LazyStripeAPILoaderStatus } from './api-loader.service';\n\nexport class StripeInstance implements StripeServiceInterface {\n private stripe$ = new BehaviorSubject<Stripe | undefined>(undefined);\n stripe = this.stripe$.asObservable().pipe(filter((stripe) => Boolean(stripe))) as Observable<Stripe>;\n\n constructor(\n private version: string,\n private loader: LazyStripeAPILoader,\n private window: WindowRef,\n private key: string,\n private options?: StripeConstructorOptions\n ) {\n this.loader\n .asStream()\n .pipe(\n filter((status: LazyStripeAPILoaderStatus) => status.loaded === true),\n first(),\n map(() => (this.window.getNativeWindow() as any).Stripe)\n )\n .subscribe((stripeInstance: any) => {\n const stripe = this.options\n ? (stripeInstance(this.key, this.options) as Stripe)\n : (stripeInstance(this.key) as Stripe);\n\n stripe.registerAppInfo(this.getNgxStripeAppInfo(this.version));\n this.stripe$.next(stripe);\n });\n }\n\n getInstance(): Stripe {\n return this.stripe$.getValue() as Stripe;\n }\n\n elements(options?: StripeElementsOptionsClientSecret): Observable<StripeElements>;\n elements(options?: StripeElementsOptionsMode): Observable<StripeElements>;\n elements(options?: StripeElementsOptions): Observable<StripeElements>;\n elements(options?): Observable<StripeElements> {\n return this.stripe.pipe(\n map((stripe: Stripe) => stripe.elements(options)),\n first()\n );\n }\n\n redirectToCheckout(options: RedirectToCheckoutOptions): Observable<never | { error: StripeError }> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.redirectToCheckout(options))),\n first()\n );\n }\n\n confirmPayment(options: {\n elements: StripeElements;\n confirmParams?: Partial<ConfirmPaymentData>;\n redirect: 'if_required';\n }): Observable<PaymentIntentResult>;\n confirmPayment(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams?: Partial<ConfirmPaymentData>;\n redirect: 'if_required';\n }): Observable<PaymentIntentResult>;\n confirmPayment(options: {\n elements: StripeElements;\n confirmParams: ConfirmPaymentData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmPayment(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams: ConfirmPaymentData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmPayment(options) {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmPayment(options))),\n first()\n );\n }\n\n confirmAcssDebitPayment(\n clientSecret: string,\n data?: ConfirmAcssDebitPaymentData,\n options?: ConfirmAcssDebitPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAcssDebitPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmUsBankAccountPayment(\n clientSecret: string,\n data?: ConfirmUsBankAccountPaymentData\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmUsBankAccountPayment(clientSecret, data))),\n first()\n );\n }\n\n confirmAlipayPayment(\n clientSecret: string,\n data?: ConfirmAlipayPaymentData,\n options?: ConfirmAlipayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAlipayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmAuBecsDebitPayment(\n clientSecret: string,\n data?: ConfirmAuBecsDebitPaymentData\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAuBecsDebitPayment(clientSecret, data))),\n first()\n );\n }\n\n confirmBancontactPayment(\n clientSecret: string,\n data?: ConfirmBancontactPaymentData,\n options?: ConfirmBancontactPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmBancontactPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmBlikPayment(\n clientSecret: string,\n data?: ConfirmBlikPaymentData,\n options?: ConfirmBlikPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmBlikPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmBoletoPayment(\n clientSecret: string,\n data?: ConfirmBoletoPaymentData,\n options?: ConfirmBoletoPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmBoletoPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmCardPayment(\n clientSecret: string,\n data?: ConfirmCardPaymentData,\n options?: ConfirmCardPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmCardPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmCashappPayment(\n clientSecret: string,\n data?: ConfirmCashappPaymentData,\n options?: ConfirmCashappPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmCashappPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmCustomerBalancePayment(\n clientSecret: string,\n data: ConfirmCustomerBalancePaymentData,\n options: ConfirmCustomerBalancePaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmCustomerBalancePayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmEpsPayment(\n clientSecret: string,\n data?: ConfirmEpsPaymentData,\n options?: ConfirmEpsPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmEpsPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmFpxPayment(\n clientSecret: string,\n data?: ConfirmFpxPaymentData,\n options?: ConfirmFpxPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmFpxPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmGiropayPayment(\n clientSecret: string,\n data?: ConfirmGiropayPaymentData,\n options?: ConfirmGiropayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmGiropayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmGrabPayPayment(\n clientSecret: string,\n data?: ConfirmGrabPayPaymentData,\n options?: ConfirmGrabPayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmGrabPayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmIdealPayment(\n clientSecret: string,\n data?: ConfirmIdealPaymentData,\n options?: ConfirmIdealPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmIdealPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmKlarnaPayment(\n clientSecret: string,\n data?: ConfirmKlarnaPaymentData,\n options?: ConfirmKlarnaPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmKlarnaPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmKonbiniPayment(\n clientSecret: string,\n data?: ConfirmKonbiniPaymentData,\n options?: ConfirmKonbiniPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmKonbiniPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmMobilepayPayment(\n clientSecret: string,\n data?: ConfirmMobilepayPaymentData,\n options?: ConfirmMobilepayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmMobilepayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmOxxoPayment(\n clientSecret: string,\n data?: ConfirmOxxoPaymentData,\n options?: ConfirmOxxoPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmOxxoPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmP24Payment(\n clientSecret: string,\n data?: ConfirmP24PaymentData,\n options?: ConfirmP24PaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmP24Payment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmPayNowPayment(\n clientSecret: string,\n data?: ConfirmPayNowPaymentData,\n options?: ConfirmPayNowPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmPayNowPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmPayPalPayment(clientSecret: string, data?: ConfirmPayPalPaymentData): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmPayPalPayment(clientSecret, data))),\n first()\n );\n }\n\n confirmPixPayment(\n clientSecret: string,\n data?: ConfirmPixPaymentData,\n options?: ConfirmPixPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmPixPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmPromptPayPayment(\n clientSecret: string,\n data?: ConfirmPromptPayPaymentData,\n options?: ConfirmPromptPayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmPromptPayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmSepaDebitPayment(clientSecret: string, data?: ConfirmSepaDebitPaymentData): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmSepaDebitPayment(clientSecret, data))),\n first()\n );\n }\n\n confirmSofortPayment(\n clientSecret: string,\n data?: ConfirmSofortPaymentData,\n options?: ConfirmSofortPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmSofortPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmWechatPayPayment(\n clientSecret: string,\n data?: ConfirmWechatPayPaymentData,\n options?: ConfirmWechatPayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmWechatPayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n handleCardAction(clientSecret: string): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.handleCardAction(clientSecret))),\n first()\n );\n }\n\n handleNextAction(options: { clientSecret: string }): Observable<PaymentIntentOrSetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.handleNextAction(options))),\n first()\n );\n }\n\n verifyMicrodepositsForPayment(\n clientSecret: string,\n data?: VerifyMicrodepositsForPaymentData\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.verifyMicrodepositsForPayment(clientSecret, data))),\n first()\n );\n }\n\n createRadarSession(): Observable<RadarSessionPayload> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.createRadarSession())),\n first()\n );\n }\n\n collectBankAccountForPayment(options: CollectBankAccountForPaymentOptions): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.collectBankAccountForPayment(options))),\n first()\n );\n }\n\n createPaymentMethod(paymentMethodData: CreatePaymentMethodData): Observable<PaymentMethodResult>;\n createPaymentMethod(options: CreatePaymentMethodFromElements): Observable<PaymentMethodResult>;\n createPaymentMethod(options: CreatePaymentMethodFromElement): Observable<PaymentMethodResult>;\n createPaymentMethod(options) {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.createPaymentMethod(options))),\n first()\n );\n }\n\n createConfirmationToken(options: CreateConfirmationToken): Observable<ConfirmationTokenResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.createConfirmationToken(options))),\n first()\n );\n }\n\n retrievePaymentIntent(clientSecret: string): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.retrievePaymentIntent(clientSecret))),\n first()\n );\n }\n\n confirmSetup(options: {\n elements: StripeElements;\n confirmParams?: Partial<ConfirmSetupData>;\n redirect: 'if_required';\n }): Observable<SetupIntentResult>;\n confirmSetup(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams?: Partial<ConfirmSetupData>;\n redirect: 'if_required';\n }): Observable<SetupIntentResult>;\n confirmSetup(options: {\n elements: StripeElements;\n confirmParams: ConfirmSetupData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmSetup(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams: ConfirmSetupData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmSetup(options) {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmSetup(options))),\n first()\n );\n }\n\n confirmAcssDebitSetup(\n clientSecret: string,\n data?: ConfirmAcssDebitSetupData,\n options?: ConfirmAcssDebitSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAcssDebitSetup(clientSecret, data, options))),\n first()\n );\n }\n\n confirmUsBankAccountSetup(clientSecret: string, data?: ConfirmUsBankAccountSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmUsBankAccountSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmAuBecsDebitSetup(clientSecret: string, data?: ConfirmAuBecsDebitSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAuBecsDebitSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmBacsDebitSetup(clientSecret: string, data?: ConfirmBacsDebitSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmBacsDebitSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmBancontactSetup(clientSecret: string, data?: ConfirmBancontactSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmBancontactSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmCardSetup(\n clientSecret: string,\n data?: ConfirmCardSetupData,\n options?: ConfirmCardSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmCardSetup(clientSecret, data, options))),\n first()\n );\n }\n\n confirmCashappSetup(\n clientSecret: string,\n data?: ConfirmCashappSetupData,\n options?: ConfirmCashappSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmCashappSetup(clientSecret, data, options))),\n first()\n );\n }\n\n confirmIdealSetup(clientSecret: string, data?: ConfirmIdealSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmIdealSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmPayPalSetup(clientSecret: string, data?: ConfirmPayPalSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmPayPalSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmSepaDebitSetup(clientSecret: string, data?: ConfirmSepaDebitSetupData): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmSepaDebitSetup(clientSecret, data))),\n first()\n );\n }\n\n confirmSofortSetup(\n clientSecret: string,\n data?: ConfirmSofortSetupData,\n options?: ConfirmSofortSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmSofortSetup(clientSecret, data, options))),\n first()\n );\n }\n\n confirmAffirmPayment(\n clientSecret: string,\n data?: ConfirmAffirmPaymentData,\n options?: ConfirmAffirmPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAffirmPayment(clientSecret, data, options))),\n first()\n );\n }\n\n confirmAfterpayClearpayPayment(\n clientSecret: string,\n data?: ConfirmAfterpayClearpayPaymentData,\n options?: ConfirmAfterpayClearpayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.confirmAfterpayClearpayPayment(clientSecret, data, options))),\n first()\n );\n }\n\n verifyMicrodepositsForSetup(\n clientSecret: string,\n data?: VerifyMicrodepositsForSetupData\n ): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.verifyMicrodepositsForSetup(clientSecret, data))),\n first()\n );\n }\n\n collectBankAccountForSetup(options: CollectBankAccountForSetupOptions): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.collectBankAccountForSetup(options))),\n first()\n );\n }\n\n retrieveSetupIntent(clientSecret: string): Observable<SetupIntentResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.retrieveSetupIntent(clientSecret))),\n first()\n );\n }\n\n processOrder(options: {\n elements: StripeElements;\n confirmParams?: Partial<ProcessOrderParams>;\n redirect: 'if_required';\n }): Observable<ProcessOrderResult>;\n processOrder(options: {\n elements: StripeElements;\n confirmParams: ProcessOrderParams;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n processOrder(options) {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.processOrder(options))),\n first()\n );\n }\n\n retrieveOrder(clientSecret: string): Observable<RetrieveOrderResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.retrieveOrder(clientSecret))),\n first()\n );\n }\n\n paymentRequest(options: PaymentRequestOptions): PaymentRequest {\n const stripe = this.getInstance();\n return stripe.paymentRequest(options);\n }\n\n createToken(tokenType: StripeIbanElement, data: CreateTokenIbanData): Observable<TokenResult>;\n createToken(\n tokenType: StripeCardElement | StripeCardNumberElement,\n data?: CreateTokenCardData\n ): Observable<TokenResult>;\n createToken(tokenType: 'pii', data: CreateTokenPiiData): Observable<TokenResult>;\n createToken(tokenType: 'bank_account', data: CreateTokenBankAccountData): Observable<TokenResult>;\n createToken(tokenType: 'cvc_update', element?: StripeCardCvcElement): Observable<TokenResult>;\n createToken(tokenType: 'account', data: TokenCreateParams.Account): Observable<TokenResult>;\n createToken(tokenType: 'person', data: TokenCreateParams.Person): Observable<TokenResult>;\n createToken(tokenType, data) {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.createToken(tokenType, data))),\n first()\n );\n }\n\n createSource(element: StripeElement, sourceData: CreateSourceData): Observable<SourceResult>;\n createSource(sourceData: CreateSourceData): Observable<SourceResult>;\n createSource(a, b?): Observable<SourceResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.createSource(a, b))),\n first()\n );\n }\n\n retrieveSource(source: RetrieveSourceParam): Observable<SourceResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.retrieveSource(source))),\n first()\n );\n }\n\n verifyIdentity(clientSecret: string): Observable<VerificationSessionResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.verifyIdentity(clientSecret))),\n first()\n );\n }\n\n collectFinancialConnectionsAccounts(\n options: CollectFinancialConnectionsAccountsOptions\n ): Observable<FinancialConnectionsSessionResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.collectFinancialConnectionsAccounts(options))),\n first()\n );\n }\n\n collectBankAccountToken(options: CollectBankAccountTokenOptions): Observable<CollectBankAccountTokenResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.collectBankAccountToken(options))),\n first()\n );\n }\n\n createEphemeralKeyNonce(options: EphemeralKeyNonceOptions): Observable<EphemeralKeyNonceResult> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.createEphemeralKeyNonce(options))),\n first()\n );\n }\n\n initCheckout(options: StripeCheckoutOptions): Observable<StripeCheckout> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.initCheckout(options))),\n first()\n );\n }\n\n initEmbeddedCheckout(options: StripeEmbeddedCheckoutOptions): Observable<StripeEmbeddedCheckout> {\n return this.stripe.pipe(\n switchMap((stripe) => from(stripe.initEmbeddedCheckout(options))),\n first()\n );\n }\n\n /**\n * @deprecated\n */\n handleCardPayment(clientSecret: string, element?, data?) {\n return this.stripe.pipe(\n switchMap((stripe) => from((stripe as any).handleCardPayment(clientSecret, element, data))),\n first()\n ) as Observable<PaymentIntentResult>;\n }\n\n /**\n * @deprecated\n */\n confirmPaymentIntent(clientSecret: string, element?, data?) {\n return this.stripe.pipe(\n switchMap((stripe) => from((stripe as any).confirmPaymentIntent(clientSecret, element, data))),\n first()\n ) as Observable<PaymentIntentResult>;\n }\n\n /**\n * @deprecated\n */\n handleCardSetup(clientSecret: string, element?, data?) {\n return this.stripe.pipe(\n switchMap((stripe) => from((stripe as any).handleCardSetup(clientSecret, element, data))),\n first()\n ) as Observable<SetupIntentResult>;\n }\n\n /**\n * @deprecated\n */\n confirmSetupIntent(clientSecret: string, element?, data?) {\n return this.stripe.pipe(\n switchMap((stripe) => from((stripe as any).confirmSetupIntent(clientSecret, element, data))),\n first()\n ) as Observable<SetupIntentResult>;\n }\n\n /**\n * @deprecated\n */\n handleFpxPayment(clientSecret: string, element?, data?) {\n return this.stripe.pipe(\n switchMap((stripe) => from((stripe as any).handleFpxPayment(clientSecret, element, data))),\n first()\n ) as Observable<SetupIntentResult>;\n }\n\n private getNgxStripeAppInfo(version: string): WrapperLibrary {\n return {\n name: 'ngx-stripe',\n url: 'https://ngx-stripe.dev',\n partner_id: 'pp_partner_JR4l1rmvUoPP4V',\n version\n };\n }\n}\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\nexport class WindowRef {\n constructor(@Inject(PLATFORM_ID) public platformId: any) {}\n\n public getNativeWindow(): Window {\n if (isPlatformBrowser(this.platformId)) {\n return window;\n }\n return {} as Window;\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\nexport class DocumentRef {\n constructor(@Inject(PLATFORM_ID) public platformId: any) {}\n\n public getNativeDocument(): Document {\n if (isPlatformBrowser(this.platformId)) {\n return document;\n }\n return {} as Document;\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\n\nimport { Observable, BehaviorSubject } from 'rxjs';\n\nimport { WindowRef } from './window-ref.service';\nimport { DocumentRef } from './document-ref.service';\n\nexport interface LazyStripeAPILoaderStatus {\n loaded: boolean;\n loading: boolean;\n error: boolean;\n}\n\n@Injectable()\nexport class LazyStripeAPILoader {\n public status = new BehaviorSubject<LazyStripeAPILoaderStatus>({\n error: false,\n loaded: false,\n loading: false\n });\n\n constructor(@Inject(PLATFORM_ID) public platformId: any, public window: WindowRef, public document: DocumentRef) {}\n\n public asStream(): Observable<LazyStripeAPILoaderStatus> {\n this.load();\n return this.status.asObservable();\n }\n\n public isReady(): boolean {\n return this.status.getValue().loaded;\n }\n\n public load() {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n const status: LazyStripeAPILoaderStatus = this.status.getValue();\n if (this.window.getNativeWindow().hasOwnProperty('Stripe')) {\n this.status.next({\n error: false,\n loaded: true,\n loading: false\n });\n } else if (!status.loaded && !status.loading) {\n this.status.next({\n ...status,\n loading: true\n });\n\n const script = this.document.getNativeDocument().createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = 'https://js.stripe.com/v3/';\n\n script.onload = () => {\n this.status.next({\n error: false,\n loaded: true,\n loading: false\n });\n };\n\n script.onerror = () => {\n this.status.next({\n error: true,\n loaded: false,\n loading: false\n });\n };\n\n this.document.getNativeDocument().body.appendChild(script);\n }\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport {\n ConfirmAcssDebitPaymentData,\n ConfirmAcssDebitPaymentOptions,\n ConfirmAfterpayClearpayPaymentData,\n ConfirmAfterpayClearpayPaymentOptions,\n ConfirmAlipayPaymentData,\n ConfirmAlipayPaymentOptions,\n ConfirmAuBecsDebitPaymentData,\n ConfirmAuBecsDebitSetupData,\n ConfirmBancontactPaymentData,\n ConfirmBancontactPaymentOptions,\n ConfirmBoletoPaymentData,\n ConfirmBoletoPaymentOptions,\n ConfirmCardPaymentData,\n ConfirmCardPaymentOptions,\n ConfirmEpsPaymentData,\n ConfirmEpsPaymentOptions,\n ConfirmFpxPaymentData,\n ConfirmFpxPaymentOptions,\n ConfirmGiropayPaymentData,\n ConfirmGiropayPaymentOptions,\n ConfirmGrabPayPaymentData,\n ConfirmGrabPayPaymentOptions,\n ConfirmIdealPaymentData,\n ConfirmIdealPaymentOptions,\n ConfirmKlarnaPaymentData,\n ConfirmKlarnaPaymentOptions,\n ConfirmOxxoPaymentData,\n ConfirmOxxoPaymentOptions,\n ConfirmP24PaymentData,\n ConfirmP24PaymentOptions,\n ConfirmCardSetupData,\n ConfirmCardSetupOptions,\n ConfirmSepaDebitPaymentData,\n ConfirmSofortPaymentData,\n ConfirmWechatPayPaymentData,\n ConfirmWechatPayPaymentOptions,\n ConfirmSepaDebitSetupData,\n CreatePaymentMethodData,\n VerifyMicrodepositsForPaymentData,\n ConfirmAcssDebitSetupData,\n ConfirmAcssDebitSetupOptions,\n CreateSourceData,\n CreateTokenIbanData,\n CreateTokenCardData,\n CreateTokenPiiData,\n CreateTokenBankAccountData,\n PaymentRequest,\n PaymentRequestOptions,\n RedirectToCheckoutOptions,\n RetrieveSourceParam,\n Stripe,\n StripeCardElement,\n StripeCardNumberElement,\n StripeCardCvcElement,\n StripeConstructorOptions,\n StripeElements,\n StripeElementsOptions,\n StripeElement,\n StripeError,\n StripeIbanElement,\n TokenCreateParams,\n ConfirmBacsDebitSetupData,\n ConfirmBancontactSetupData,\n ConfirmIdealSetupData,\n ConfirmSofortSetupData,\n VerifyMicrodepositsForSetupData,\n VerificationSessionResult,\n ConfirmPayPalPaymentData,\n ConfirmPayPalSetupData,\n ConfirmPaymentData,\n ConfirmCustomerBalancePaymentData,\n ConfirmCustomerBalancePaymentOptions,\n ConfirmPayNowPaymentData,\n ConfirmPayNowPaymentOptions,\n ConfirmPromptPayPaymentData,\n ConfirmPromptPayPaymentOptions,\n ConfirmAffirmPaymentData,\n ConfirmAffirmPaymentOptions,\n ConfirmSofortPaymentOptions,\n ConfirmSofortSetupOptions,\n ConfirmKonbiniPaymentData,\n ConfirmKonbiniPaymentOptions,\n ConfirmUsBankAccountPaymentData,\n CollectBankAccountForPaymentOptions,\n ConfirmUsBankAccountSetupData,\n CollectBankAccountForSetupOptions,\n ConfirmPixPaymentData,\n ConfirmPixPaymentOptions,\n PaymentIntentResult,\n PaymentMethodResult,\n SetupIntentResult,\n ProcessOrderResult,\n RetrieveOrderResult,\n TokenResult,\n SourceResult,\n FinancialConnectionsSessionResult,\n CollectBankAccountTokenResult,\n EphemeralKeyNonceResult,\n RadarSessionPayload,\n ProcessOrderParams,\n CollectFinancialConnectionsAccountsOptions,\n CollectBankAccountTokenOptions,\n EphemeralKeyNonceOptions,\n StripeElementsOptionsClientSecret,\n StripeElementsOptionsMode,\n ConfirmBlikPaymentData,\n ConfirmBlikPaymentOptions,\n ConfirmCashappPaymentData,\n ConfirmCashappPaymentOptions,\n PaymentIntentOrSetupIntentResult,\n CreatePaymentMethodFromElements,\n CreatePaymentMethodFromElement,\n ConfirmCashappSetupData,\n ConfirmCashappSetupOptions,\n StripeCheckoutOptions,\n StripeCheckout,\n StripeEmbeddedCheckoutOptions,\n StripeEmbeddedCheckout,\n ConfirmMobilepayPaymentData,\n ConfirmMobilepayPaymentOptions,\n CreateConfirmationToken,\n ConfirmationTokenResult,\n ConfirmSetupData\n} from '@stripe/stripe-js';\n\nimport { STRIPE_PUBLISHABLE_KEY, STRIPE_OPTIONS, NGX_STRIPE_VERSION } from '../interfaces/ngx-stripe.interface';\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { WindowRef } from './window-ref.service';\nimport { LazyStripeAPILoader, LazyStripeAPILoaderStatus } from './api-loader.service';\n\nimport { StripeInstance } from './stripe-instance.class';\n\n@Injectable()\nexport class StripeService implements StripeServiceInterface {\n stripe!: StripeInstance;\n\n constructor(\n @Inject(NGX_STRIPE_VERSION) public version: string,\n @Inject(STRIPE_PUBLISHABLE_KEY) public key: string,\n @Inject(STRIPE_OPTIONS) public options: StripeConstructorOptions,\n public loader: LazyStripeAPILoader,\n public window: WindowRef\n ) {\n if (key) {\n this.stripe = new StripeInstance(this.version, this.loader, this.window, key, options);\n }\n }\n\n getStripeReference(): Observable<any> {\n return this.loader.asStream().pipe(\n filter((status: LazyStripeAPILoaderStatus) => status.loaded === true),\n map(() => (this.window.getNativeWindow() as any).Stripe)\n );\n }\n\n getInstance(): Stripe | undefined {\n return this.stripe.getInstance();\n }\n\n setKey(key: string, options?: StripeConstructorOptions) {\n return this.changeKey(key, options);\n }\n\n changeKey(key: string, options?: StripeConstructorOptions) {\n this.stripe = new StripeInstance(this.version, this.loader, this.window, key, options);\n\n return this.stripe;\n }\n\n elements(options?: StripeElementsOptionsClientSecret): Observable<StripeElements>;\n elements(options?: StripeElementsOptionsMode): Observable<StripeElements>;\n elements(options?: StripeElementsOptions): Observable<StripeElements>;\n elements(options?): Observable<StripeElements> {\n return this.stripe.elements(options);\n }\n\n redirectToCheckout(options: RedirectToCheckoutOptions): Observable<never | { error: StripeError }> {\n return this.stripe.redirectToCheckout(options);\n }\n\n confirmPayment(options: {\n elements: StripeElements;\n confirmParams?: Partial<ConfirmPaymentData>;\n redirect: 'if_required';\n }): Observable<PaymentIntentResult>;\n confirmPayment(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams?: Partial<ConfirmPaymentData>;\n redirect: 'if_required';\n }): Observable<PaymentIntentResult>;\n confirmPayment(options: {\n elements: StripeElements;\n confirmParams: ConfirmPaymentData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmPayment(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams: ConfirmPaymentData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmPayment(options) {\n return this.stripe.confirmPayment(options);\n }\n\n confirmAcssDebitPayment(\n clientSecret: string,\n data?: ConfirmAcssDebitPaymentData,\n options?: ConfirmAcssDebitPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmAcssDebitPayment(clientSecret, data, options);\n }\n\n confirmUsBankAccountPayment(\n clientSecret: string,\n data?: ConfirmUsBankAccountPaymentData\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmUsBankAccountPayment(clientSecret, data);\n }\n\n confirmAlipayPayment(\n clientSecret: string,\n data?: ConfirmAlipayPaymentData,\n options?: ConfirmAlipayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmAlipayPayment(clientSecret, data, options);\n }\n\n confirmAuBecsDebitPayment(\n clientSecret: string,\n data?: ConfirmAuBecsDebitPaymentData\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmAuBecsDebitPayment(clientSecret, data);\n }\n\n confirmBancontactPayment(\n clientSecret: string,\n data?: ConfirmBancontactPaymentData,\n options?: ConfirmBancontactPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmBancontactPayment(clientSecret, data, options);\n }\n\n confirmBlikPayment(\n clientSecret: string,\n data?: ConfirmBlikPaymentData,\n options?: ConfirmBlikPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmBlikPayment(clientSecret, data, options);\n }\n\n confirmBoletoPayment(\n clientSecret: string,\n data?: ConfirmBoletoPaymentData,\n options?: ConfirmBoletoPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmBoletoPayment(clientSecret, data, options);\n }\n\n confirmCardPayment(\n clientSecret: string,\n data?: ConfirmCardPaymentData,\n options?: ConfirmCardPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmCardPayment(clientSecret, data, options);\n }\n\n confirmCashappPayment(\n clientSecret: string,\n data?: ConfirmCashappPaymentData,\n options?: ConfirmCashappPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmCashappPayment(clientSecret, data, options);\n }\n\n confirmCustomerBalancePayment(\n clientSecret: string,\n data: ConfirmCustomerBalancePaymentData,\n options: ConfirmCustomerBalancePaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmCustomerBalancePayment(clientSecret, data, options);\n }\n\n confirmEpsPayment(\n clientSecret: string,\n data?: ConfirmEpsPaymentData,\n options?: ConfirmEpsPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmEpsPayment(clientSecret, data, options);\n }\n\n confirmFpxPayment(\n clientSecret: string,\n data?: ConfirmFpxPaymentData,\n options?: ConfirmFpxPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmFpxPayment(clientSecret, data, options);\n }\n\n confirmGiropayPayment(\n clientSecret: string,\n data?: ConfirmGiropayPaymentData,\n options?: ConfirmGiropayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmGiropayPayment(clientSecret, data, options);\n }\n\n confirmGrabPayPayment(\n clientSecret: string,\n data?: ConfirmGrabPayPaymentData,\n options?: ConfirmGrabPayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmGrabPayPayment(clientSecret, data, options);\n }\n\n confirmIdealPayment(\n clientSecret: string,\n data?: ConfirmIdealPaymentData,\n options?: ConfirmIdealPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmIdealPayment(clientSecret, data, options);\n }\n\n confirmKlarnaPayment(\n clientSecret: string,\n data?: ConfirmKlarnaPaymentData,\n options?: ConfirmKlarnaPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmKlarnaPayment(clientSecret, data, options);\n }\n\n confirmKonbiniPayment(\n clientSecret: string,\n data?: ConfirmKonbiniPaymentData,\n options?: ConfirmKonbiniPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmKonbiniPayment(clientSecret, data, options);\n }\n\n confirmMobilepayPayment(\n clientSecret: string,\n data?: ConfirmMobilepayPaymentData,\n options?: ConfirmMobilepayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmMobilepayPayment(clientSecret, data, options);\n }\n\n confirmOxxoPayment(\n clientSecret: string,\n data?: ConfirmOxxoPaymentData,\n options?: ConfirmOxxoPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmOxxoPayment(clientSecret, data, options);\n }\n\n confirmP24Payment(\n clientSecret: string,\n data?: ConfirmP24PaymentData,\n options?: ConfirmP24PaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmP24Payment(clientSecret, data, options);\n }\n\n confirmPayNowPayment(\n clientSecret: string,\n data?: ConfirmPayNowPaymentData,\n options?: ConfirmPayNowPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmPayNowPayment(clientSecret, data, options);\n }\n\n confirmPayPalPayment(clientSecret: string, data?: ConfirmPayPalPaymentData): Observable<PaymentIntentResult> {\n return this.stripe.confirmPayPalPayment(clientSecret, data);\n }\n\n confirmPixPayment(\n clientSecret: string,\n data?: ConfirmPixPaymentData,\n options?: ConfirmPixPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmPixPayment(clientSecret, data, options);\n }\n\n confirmPromptPayPayment(\n clientSecret: string,\n data?: ConfirmPromptPayPaymentData,\n options?: ConfirmPromptPayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmPromptPayPayment(clientSecret, data, options);\n }\n\n confirmSepaDebitPayment(clientSecret: string, data?: ConfirmSepaDebitPaymentData): Observable<PaymentIntentResult> {\n return this.stripe.confirmSepaDebitPayment(clientSecret, data);\n }\n\n confirmSofortPayment(\n clientSecret: string,\n data?: ConfirmSofortPaymentData,\n options?: ConfirmSofortPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmSofortPayment(clientSecret, data, options);\n }\n\n confirmWechatPayPayment(\n clientSecret: string,\n data?: ConfirmWechatPayPaymentData,\n options?: ConfirmWechatPayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmWechatPayPayment(clientSecret, data, options);\n }\n\n handleCardAction(clientSecret: string): Observable<PaymentIntentResult> {\n return this.stripe.handleCardAction(clientSecret);\n }\n\n handleNextAction(options: { clientSecret: string }): Observable<PaymentIntentOrSetupIntentResult> {\n return this.stripe.handleNextAction(options);\n }\n\n verifyMicrodepositsForPayment(\n clientSecret: string,\n data?: VerifyMicrodepositsForPaymentData\n ): Observable<PaymentIntentResult> {\n return this.stripe.verifyMicrodepositsForPayment(clientSecret, data);\n }\n\n createRadarSession(): Observable<RadarSessionPayload> {\n return this.stripe.createRadarSession();\n }\n\n collectBankAccountForPayment(options: CollectBankAccountForPaymentOptions): Observable<PaymentIntentResult> {\n return this.stripe.collectBankAccountForPayment(options);\n }\n\n createPaymentMethod(paymentMethodData: CreatePaymentMethodData): Observable<PaymentMethodResult>;\n createPaymentMethod(options: CreatePaymentMethodFromElements): Observable<PaymentMethodResult>;\n createPaymentMethod(options: CreatePaymentMethodFromElement): Observable<PaymentMethodResult>;\n createPaymentMethod(options) {\n return this.stripe.createPaymentMethod(options);\n }\n\n createConfirmationToken(options: CreateConfirmationToken): Observable<ConfirmationTokenResult> {\n return this.stripe.createConfirmationToken(options);\n }\n\n retrievePaymentIntent(clientSecret: string): Observable<PaymentIntentResult> {\n return this.stripe.retrievePaymentIntent(clientSecret);\n }\n\n confirmSetup(options: {\n elements: StripeElements;\n confirmParams?: Partial<ConfirmSetupData>;\n redirect: 'if_required';\n }): Observable<SetupIntentResult>;\n confirmSetup(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams?: Partial<ConfirmSetupData>;\n redirect: 'if_required';\n }): Observable<SetupIntentResult>;\n confirmSetup(options: {\n elements: StripeElements;\n confirmParams: ConfirmSetupData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmSetup(options: {\n elements?: StripeElements;\n clientSecret: string;\n confirmParams: ConfirmSetupData;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n confirmSetup(options) {\n return this.stripe.confirmSetup(options);\n }\n\n confirmAcssDebitSetup(\n clientSecret: string,\n data?: ConfirmAcssDebitSetupData,\n options?: ConfirmAcssDebitSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.confirmAcssDebitSetup(clientSecret, data, options);\n }\n\n confirmUsBankAccountSetup(clientSecret: string, data?: ConfirmUsBankAccountSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmUsBankAccountSetup(clientSecret, data);\n }\n\n confirmAuBecsDebitSetup(clientSecret: string, data?: ConfirmAuBecsDebitSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmAuBecsDebitSetup(clientSecret, data);\n }\n\n confirmBacsDebitSetup(clientSecret: string, data?: ConfirmBacsDebitSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmBacsDebitSetup(clientSecret, data);\n }\n\n confirmBancontactSetup(clientSecret: string, data?: ConfirmBancontactSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmBancontactSetup(clientSecret, data);\n }\n\n confirmCardSetup(\n clientSecret: string,\n data?: ConfirmCardSetupData,\n options?: ConfirmCardSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.confirmCardSetup(clientSecret, data, options);\n }\n\n confirmCashappSetup(\n clientSecret: string,\n data?: ConfirmCashappSetupData,\n options?: ConfirmCashappSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.confirmCashappSetup(clientSecret, data, options);\n }\n\n confirmIdealSetup(clientSecret: string, data?: ConfirmIdealSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmIdealSetup(clientSecret, data);\n }\n\n confirmPayPalSetup(clientSecret: string, data?: ConfirmPayPalSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmPayPalSetup(clientSecret, data);\n }\n\n confirmSepaDebitSetup(clientSecret: string, data?: ConfirmSepaDebitSetupData): Observable<SetupIntentResult> {\n return this.stripe.confirmSepaDebitSetup(clientSecret, data);\n }\n\n confirmSofortSetup(\n clientSecret: string,\n data?: ConfirmSofortSetupData,\n options?: ConfirmSofortSetupOptions\n ): Observable<SetupIntentResult> {\n return this.stripe.confirmSofortSetup(clientSecret, data, options);\n }\n\n confirmAffirmPayment(\n clientSecret: string,\n data?: ConfirmAffirmPaymentData,\n options?: ConfirmAffirmPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmAffirmPayment(clientSecret, data, options);\n }\n\n confirmAfterpayClearpayPayment(\n clientSecret: string,\n data?: ConfirmAfterpayClearpayPaymentData,\n options?: ConfirmAfterpayClearpayPaymentOptions\n ): Observable<PaymentIntentResult> {\n return this.stripe.confirmAfterpayClearpayPayment(clientSecret, data, options);\n }\n\n verifyMicrodepositsForSetup(\n clientSecret: string,\n data?: VerifyMicrodepositsForSetupData\n ): Observable<SetupIntentResult> {\n return this.stripe.verifyMicrodepositsForSetup(clientSecret, data);\n }\n\n collectBankAccountForSetup(options: CollectBankAccountForSetupOptions): Observable<SetupIntentResult> {\n return this.stripe.collectBankAccountForSetup(options);\n }\n\n retrieveSetupIntent(clientSecret: string): Observable<SetupIntentResult> {\n return this.stripe.retrieveSetupIntent(clientSecret);\n }\n\n processOrder(options: {\n elements: StripeElements;\n confirmParams?: Partial<ProcessOrderParams>;\n redirect: 'if_required';\n }): Observable<ProcessOrderResult>;\n processOrder(options: {\n elements: StripeElements;\n confirmParams: ProcessOrderParams;\n redirect?: 'always';\n }): Observable<never | { error: StripeError }>;\n processOrder(options) {\n return this.stripe.processOrder(options);\n }\n\n retrieveOrder(clientSecret: string): Observable<RetrieveOrderResult> {\n return this.stripe.retrieveOrder(clientSecret);\n }\n\n paymentRequest(options: PaymentRequestOptions): PaymentRequest {\n return this.stripe.paymentRequest(options);\n }\n\n createToken(tokenType: StripeIbanElement, data: CreateTokenIbanData): Observable<TokenResult>;\n createToken(\n tokenType: StripeCardElement | StripeCardNumberElement,\n data?: CreateTokenCardData\n ): Observable<TokenResult>;\n createToken(tokenType: 'pii', data: CreateTokenPiiData): Observable<TokenResult>;\n createToken(tokenType: 'bank_account', data: CreateTokenBankAccountData): Observable<TokenResult>;\n createToken(tokenType: 'cvc_update', element?: StripeCardCvcElement): Observable<TokenResult>;\n createToken(tokenType: 'account', data: TokenCreateParams.Account): Observable<TokenResult>;\n createToken(tokenType: 'person', data: TokenCreateParams.Person): Observable<TokenResult>;\n createToken(tokenType, data) {\n return this.stripe.createToken(tokenType, data);\n }\n\n createSource(element: StripeElement, sourceData: CreateSourceData): Observable<SourceResult>;\n createSource(sourceData: CreateSourceData): Observable<SourceResult>;\n createSource(a, b?): Observable<SourceResult> {\n return this.stripe.createSource(a, b);\n }\n\n retrieveSource(source: RetrieveSourceParam): Observable<SourceResult> {\n return this.stripe.retrieveSource(source);\n }\n\n verifyIdentity(clientSecret: string): Observable<VerificationSessionResult> {\n return this.stripe.verifyIdentity(clientSecret);\n }\n\n collectFinancialConnectionsAccounts(\n options: CollectFinancialConnectionsAccountsOptions\n ): Observable<FinancialConnectionsSessionResult> {\n return this.stripe.collectFinancialConnectionsAccounts(options);\n }\n\n collectBankAccountToken(options: CollectBankAccountTokenOptions): Observable<CollectBankAccountTokenResult> {\n return this.stripe.collectBankAccountToken(options);\n }\n\n createEphemeralKeyNonce(options: EphemeralKeyNonceOptions): Observable<EphemeralKeyNonceResult> {\n return this.stripe.createEphemeralKeyNonce(options);\n }\n\n initCheckout(options: StripeCheckoutOptions): Observable<StripeCheckout> {\n return this.stripe.initCheckout(options);\n }\n\n initEmbeddedCheckout(options: StripeEmbeddedCheckoutOptions): Observable<StripeEmbeddedCheckout> {\n return this.stripe.initEmbeddedCheckout(options);\n }\n\n /**\n * @deprecated\n */\n handleCardPayment(clientSecret: string, element?, data?): Observable<PaymentIntentResult> {\n return this.stripe.handleCardPayment(clientSecret, element, data);\n }\n\n /**\n * @deprecated\n */\n confirmPaymentIntent(clientSecret: string, element?, data?): Observable<PaymentIntentResult> {\n return this.stripe.confirmPaymentIntent(clientSecret, element, data);\n }\n\n /**\n * @deprecated\n */\n handleCardSetup(clientSecret: string, element?, data?): Observable<SetupIntentResult> {\n return this.stripe.handleCardSetup(clientSecret, element, data);\n }\n\n /**\n * @deprecated\n */\n confirmSetupIntent(clientSecret: string, element?, data?): Observable<SetupIntentResult> {\n return this.stripe.confirmSetupIntent(clientSecret, element, data);\n }\n\n /**\n * @deprecated\n */\n handleFpxPayment(clientSecret: string, element?, data?): Observable<SetupIntentResult> {\n return this.stripe.handleFpxPayment(clientSecret, element, data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport {\n PaymentRequest,\n PaymentRequestOptions,\n StripeCardElementOptions,\n StripeAuBankAccountElementOptions,\n StripeCardNumberElementOptions,\n StripeCardExpiryElementOptions,\n StripeElements,\n StripeFpxBankElementOptions,\n StripeIbanElementOptions,\n StripeIdealBankElementOptions,\n StripePaymentRequestButtonElementOptions,\n StripePaymentElementOptions,\n StripeAffirmMessageElementOptions,\n StripeAfterpayClearpayMessageElementOptions,\n StripeEpsBankElementOptions,\n StripeP24BankElementOptions,\n StripeAddressElementOptions,\n StripeLinkAuthenticationElementOptions,\n StripeIssuingCardNumberDisplayElementOptions,\n StripeIssuingCardCvcDisplayElementOptions,\n StripeIssuingCardExpiryDisplayElementOptions,\n StripeIssuingCardPinDisplayElementOptions,\n StripeElementsOptionsClientSecret,\n StripeElementsOptionsMode,\n StripeElementsOptions,\n StripePaymentMethodMessagingElementOptions,\n StripeExpressCheckoutElementOptions\n} from '@stripe/stripe-js';\n\nimport { StripeService } from './stripe.service';\n\n@Injectable()\nexport class StripeElementsService {\n constructor(private stripeService: StripeService) {}\n\n elements(stripe, options?: StripeElementsOptionsClientSecret): Observable<StripeElements>;\n elements(stripe, options?: StripeElementsOptionsMode): Observable<StripeElements>;\n elements(stripe, options?: StripeElementsOptions): Observable<StripeElements>;\n elements(stripe, options = {}): Observable<StripeElements> {\n if (stripe) {\n if (Object.keys(options).length > 0) {\n return stripe.elements(options);\n }\n return stripe.elements();\n } else {\n if (Object.keys(options).length > 0) {\n return this.stripeService.elements(options);\n }\n return this.stripeService.elements();\n }\n }\n\n paymentRequest(stripe, options: PaymentRequestOptions): PaymentRequest {\n return stripe ? stripe.paymentRequest(options) : this.stripeService.paymentRequest(options);\n }\n\n mergeOptions(options: StripeCardElementOptions, containerClass: string): StripeCardElementOptions;\n mergeOptions(options: StripeCardNumberElementOptions, containerClass: string): StripeCardNumberElementOptions;\n mergeOptions(options: StripeCardExpiryElementOptions, containerClass: string): StripeCardExpiryElementOptions;\n mergeOptions(options: StripeFpxBankElementOptions, containerClass: string): StripeFpxBankElementOptions;\n mergeOptions(options: StripeIbanElementOptions, containerClass: string): StripeIbanElementOptions;\n mergeOptions(options: StripeIdealBankElementOptions, containerClass: string): StripeIdealBankElementOptions;\n mergeOptions(options: StripeAuBankAccountElementOptions, containerClass: string): StripeAuBankAccountElementOptions;\n mergeOptions(options: StripeAffirmMessageElementOptions, containerClass: string): StripeAffirmMessageElementOptions;\n mergeOptions(\n options: StripeAfterpayClearpayMessageElementOptions,\n containerClass: string\n ): StripeAfterpayClearpayMessageElementOptions;\n mergeOptions(options: StripeEpsBankElementOptions, containerClass: string): StripeEpsBankElementOptions;\n mergeOptions(options: StripeP24BankElementOptions, containerClass: string): StripeP24BankElementOptions;\n mergeOptions(options: StripeAddressElementOptions, containerClass: string): StripeAddressElementOptions;\n mergeOptions(\n options: StripeLinkAuthenticationElementOptions,\n containerClass: string\n ): StripeLinkAuthenticationElementOptions;\n mergeOptions(\n options: StripeIssuingCardNumberDisplayElementOptions,\n containerClass: string\n ): StripeIssuingCardNumberDisplayElementOptions;\n mergeOptions(\n options: StripeIssuingCardCvcDisplayElementOptions,\n containerClass: string\n ): StripeIssuingCardCvcDisplayElementOptions;\n mergeOptions(\n options: StripeIssuingCardExpiryDisplayElementOptions,\n containerClass: string\n ): StripeIssuingCardExpiryDisplayElementOptions;\n mergeOptions(\n options: StripeIssuingCardPinDisplayElementOptions,\n containerClass: string\n ): StripeIssuingCardPinDisplayElementOptions;\n mergeOptions(\n options: StripePaymentMethodMessagingElementOptions,\n containerClass: string\n ): StripePaymentMethodMessagingElementOptions;\n mergeOptions(\n options: StripePaymentRequestButtonElementOptions,\n containerClass: string\n ): StripePaymentRequestButtonElementOptions;\n mergeOptions(options: StripePaymentElementOptions, containerClass: string): StripePaymentElementOptions;\n mergeOptions(\n options: StripeExpressCheckoutElementOptions,\n containerClass: string\n ): StripeExpressCheckoutElementOptions;\n mergeOptions(options, containerClass: string) {\n if (!containerClass || (options && options.classes)) {\n return options || {};\n }\n\n if (!options || !options.classes) {\n return {\n ...(options || {}),\n classes: {\n base: containerClass,\n complete: `${containerClass}--complete`,\n empty: `${containerClass}--empty`,\n focus: `${containerClass}--focus`,\n invalid: `${containerClass}--invalid`,\n webkitAutoFill: `${containerClass}--webkit-autoFill`\n }\n };\n }\n\n return options || {};\n }\n}\n","import { Directive, Input, OnInit, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { from } from 'rxjs';\n\nimport {\n StripeAddressElement,\n StripeAffirmMessageElement,\n StripeAfterpayClearpayMessageElement,\n StripeAuBankAccountElement,\n StripeCardCvcElement,\n StripeCardElement,\n StripeCardExpiryElement,\n StripeCardNumberElement,\n StripeElements,\n StripeElementsOptions,\n StripeElementsUpdateOptions,\n StripeEpsBankElement,\n StripeExpressCheckoutElement,\n StripeFpxBankElement,\n StripeIbanElement,\n StripeIdealBankElement,\n StripeLinkAuthenticationElement,\n StripeP24BankElement,\n StripePaymentElement,\n StripePaymentMethodMessagingElement,\n StripePaymentRequestButtonElement,\n StripeShippingAddressElement\n} from '@stripe/stripe-js';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Directive({\n selector: 'ngx-stripe-elements,[ngxStripeElements]',\n standalone: true\n})\nexport class StripeElementsDirective implements OnInit, OnChanges {\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() elements = new EventEmitter<StripeElements>();\n\n _elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n\n constructor(public stripeElementsService: StripeElementsService) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n\n const elementsOptions = this.elementsOptions;\n const stripe = this.stripe;\n\n if (!stripe) {\n this.state = 'notready';\n return;\n }\n\n if (changes.elementsOptions) {\n if (this._elements) {\n const payload = Object.keys(elementsOptions).reduce((acc, key) => {\n if (\n elementsOptions[key] !== changes.elementsOptions.previousValue[key] &&\n !['fonts', 'loader', 'clientSecret'].includes(key)\n ) {\n acc[key] = elementsOptions[key];\n }\n return acc;\n }, {});\n\n this._elements.update(payload);\n } else {\n this._elements = await this.stripeElementsService.elements(stripe, elementsOptions).toPromise();\n this.elements.emit(this._elements);\n\n this.state = 'ready';\n }\n }\n }\n\n async ngOnInit() {\n if (this.state === 'notready') {\n this.state = 'starting';\n\n this._elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.elements.emit(this._elements);\n\n this.state = 'ready';\n }\n }\n\n fetchUpdates() {\n if (!this._elements) return null;\n return from(this._elements.fetchUpdates());\n }\n\n update(options: StripeElementsUpdateOptions) {\n if (!this._elements) return null;\n return this._elements.update(options);\n }\n\n submit() {\n if (!this._elements) return null;\n return from(this._elements.submit());\n }\n\n getElement(elementType: 'address'): StripeAddressElement | null;\n getElement(elementType: 'paymentMethodMessaging'): StripePaymentMethodMessagingElement | null;\n getElement(elementType: 'affirmMessage'): StripeAffirmMessageElement | null;\n getElement(elementType: 'afterpayClearpayMessage'): StripeAfterpayClearpayMessageElement | null;\n getElement(elementType: 'auBankAccount'): StripeAuBankAccountElement | null;\n getElement(elementType: 'card'): StripeCardElement | null;\n getElement(elementType: 'cardNumber'): StripeCardNumberElement | null;\n getElement(elementType: 'cardExpiry'): StripeCardExpiryElement | null;\n getElement(elementType: 'cardCvc'): StripeCardCvcElement | null;\n getElement(elementType: 'fpxBank'): StripeFpxBankElement | null;\n getElement(elementType: 'epsBank'): StripeEpsBankElement | null;\n getElement(elementType: 'p24Bank'): StripeP24BankElement | null;\n getElement(elementType: 'iban'): StripeIbanElement | null;\n getElement(elementType: 'idealBank'): StripeIdealBankElement | null;\n getElement(elementType: 'linkAuthentication'): StripeLinkAuthenticationElement | null;\n getElement(elementType: 'expressCheckout'): StripeExpressCheckoutElement | null;\n getElement(elementType: 'payment'): StripePaymentElement | null;\n getElement(elementType: 'paymentRequestButton'): StripePaymentRequestButtonElement | null;\n getElement(elementType: 'shippingAddress'): StripeShippingAddressElement | null;\n getElement(elementType) {\n if (!this._elements) return null;\n\n switch (elementType) {\n case 'address':\n return this._elements.getElement('address');\n case 'paymentMethodMessaging':\n return this._elements.getElement('paymentMethodMessaging');\n case 'affirmMessage':\n return this._elements.getElement('affirmMessage');\n case 'afterpayClearpayMessage':\n return this._elements.getElement('afterpayClearpayMessage');\n case 'auBankAccount':\n return this._elements.getElement('auBankAccount');\n case 'card':\n return this._elements.getElement('card');\n case 'cardNumber':\n return this._elements.getElement('cardNumber');\n case 'cardExpiry':\n return this._elements.getElement('cardExpiry');\n case 'cardCvc':\n return this._elements.getElement('cardCvc');\n case 'fpxBank':\n return this._elements.getElement('fpxBank');\n case 'epsBank':\n return this._elements.getElement('epsBank');\n case 'p24Bank':\n return this._elements.getElement('p24Bank');\n case 'iban':\n return this._elements.getElement('iban');\n case 'idealBank':\n return this._elements.getElement('idealBank');\n case 'linkAuthentication':\n return this._elements.getElement('linkAuthentication');\n case 'expressCheckout':\n return this._elements.getElement('expressCheckout');\n case 'payment':\n return this._elements.getElement('payment');\n case 'paymentRequestButton':\n return this._elements.getElement('paymentRequestButton');\n case 'shippingAddress':\n return this._elements.getElement('shippingAddress');\n default:\n return this._elements.getElement(elementType);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeAddressElement,\n StripeAddressElementOptions,\n StripeAddressElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-address',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeAddressComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeAddressElement;\n\n @Input() containerClass: string;\n @Input() options: StripeAddressElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeAddressElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeAddressElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n @Output() loaderror = new EventEmitter<void>();\n @Output() loaderstart = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeAddressElementOptions>): StripeAddressElement {\n return this.element.update(options);\n }\n\n getValue(): Promise<Pick<StripeAddressElementChangeEvent, 'complete' | 'isNewAddress' | 'value'>> {\n const address = this.elements.getElement('address');\n return address.getValue();\n }\n\n /**\n * @deprecated\n */\n getAddressElement() {\n return this.element;\n }\n\n private createElement(options: StripeAddressElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('address', options);\n this.element.on('change', (ev: StripeAddressElementChangeEvent) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n this.element.on('loaderror', () => this.loaderror.emit());\n this.element.on('loaderstart', () => this.loaderstart.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeAffirmMessageElement,\n StripeAffirmMessageElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-affirm-message',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeAffirmMessageComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeAffirmMessageElement;\n\n @Input() containerClass: string;\n @Input() options: StripeAffirmMessageElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeAffirmMessageElement>();\n @Output() ready = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeAffirmMessageElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getAffirmMessage() {\n return this.element;\n }\n\n private createElement(options: StripeAffirmMessageElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('affirmMessage', options);\n this.element.on('ready', () => this.ready.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeAfterpayClearpayMessageElementOptions,\n StripeAfterpayClearpayMessageElement\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-afterpay-clearpay-message',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeAfterpayClearpayMessageComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeAfterpayClearpayMessageElement;\n\n @Input() containerClass: string;\n @Input() options: StripeAfterpayClearpayMessageElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeAfterpayClearpayMessageElement>();\n @Output() ready = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeAfterpayClearpayMessageElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getAfterpayClearpayMessage() {\n return this.element;\n }\n\n private createElement(options: StripeAfterpayClearpayMessageElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('afterpayClearpayMessage', options);\n this.element.on('ready', () => this.ready.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeCardElementOptions,\n StripeCardElement,\n StripeElements,\n StripeCardElementChangeEvent,\n StripeCardElementUpdateOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-card',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeCardComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeCardElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeCardElementOptions>;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeCardElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeCardElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n private cdr: ChangeDetectorRef,\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: StripeCardElementUpdateOptions) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getCard() {\n return this.element;\n }\n\n private createElement(options: Partial<StripeCardElementOptions> = {}) {\n this.state = 'ready';\n this.cdr.detectChanges();\n\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('card', options);\n this.element.on('change', (ev) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { Directive, Input, OnInit, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\n\nimport {\n StripeCardCvcElement,\n StripeCardCvcElementChangeEvent,\n StripeCardExpiryElement,\n StripeCardExpiryElementChangeEvent,\n StripeCardNumberElement,\n StripeCardNumberElementChangeEvent,\n StripeElements,\n StripeElementsOptions\n} from '@stripe/stripe-js';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\ntype NgxStripeCardGroupChangeEvent =\n | StripeCardNumberElementChangeEvent\n | StripeCardExpiryElementChangeEvent\n | StripeCardCvcElementChangeEvent;\n\ntype NgxStripeCardGroupElements = StripeCardNumberElement | StripeCardExpiryElement | StripeCardCvcElement;\n\n@Directive({\n selector: 'ngx-stripe-card-group,[ngxStripeCardGroup]',\n standalone: true\n})\nexport class StripeCardGroupDirective implements OnInit, OnChanges {\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() elements = new EventEmitter<StripeElements>();\n\n @Output() load = new EventEmitter<NgxStripeCardGroupElements>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<NgxStripeCardGroupChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n _elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n\n constructor(public stripeElementsService: StripeElementsService) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n\n const elementsOptions = this.elementsOptions;\n const stripe = this.stripe;\n\n if (changes.elementsOptions || changes.stripe || !this._elements) {\n this._elements = await this.stripeElementsService.elements(stripe, elementsOptions).toPromise();\n this.elements.emit(this._elements);\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n if (this.state === 'notready') {\n this.state = 'starting';\n\n this._elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.elements.emit(this._elements);\n\n this.state = 'ready';\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n Optional,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElements,\n StripeCardNumberElement,\n StripeCardNumberElementOptions,\n StripeCardNumberElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\n\nimport { StripeCardGroupDirective } from '../directives/card-group.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-card-number',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (cardGroup && cardGroup.state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeCardNumberComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeCardNumberElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeCardNumberElementOptions>;\n\n @Output() load = new EventEmitter<StripeCardNumberElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeCardNumberElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() public cardGroup: StripeCardGroupDirective,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.options || changes.containerClass) {\n this.setupElement('options');\n }\n }\n\n ngOnInit() {\n if (this.cardGroup) {\n this.elementsSubscription = this.cardGroup.elements.subscribe((elements: StripeElements) => {\n this.elements = elements;\n this.setupElement('elements');\n });\n } else if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.setupElement('elements');\n });\n } else {\n throw new Error('StripeCardNumberComponent must have StripeCardGroupDirective or StripeElementsDirective parent');\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeCardNumberElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getCardNumber() {\n return this.element;\n }\n\n private setupElement(source: 'elements' | 'options') {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.element && source === 'options') {\n this.update(options);\n } else if (this.elements && source === 'elements') {\n this.element = this.elements.create('cardNumber', options);\n this.element.on('change', (ev) => {\n this.change.emit(ev);\n this.cardGroup?.change.emit(ev);\n });\n this.element.on('blur', () => {\n this.blur.emit();\n this.cardGroup?.blur.emit();\n });\n this.element.on('focus', () => {\n this.focus.emit();\n this.cardGroup?.focus.emit();\n });\n this.element.on('ready', () => {\n this.ready.emit();\n this.cardGroup?.ready.emit();\n });\n this.element.on('escape', () => {\n this.escape.emit();\n this.cardGroup?.escape.emit();\n });\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n this.cardGroup?.load.emit(this.element);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n Optional,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElements,\n StripeCardExpiryElement,\n StripeCardExpiryElementOptions,\n StripeCardExpiryElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\n\nimport { StripeCardGroupDirective } from '../directives/card-group.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-card-expiry',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (cardGroup && cardGroup.state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeCardExpiryComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeCardExpiryElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeCardExpiryElementOptions>;\n\n @Output() load = new EventEmitter<StripeCardExpiryElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeCardExpiryElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() public cardGroup: StripeCardGroupDirective,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.options || changes.containerClass) {\n this.setupElement('options');\n }\n }\n\n ngOnInit() {\n if (this.cardGroup) {\n this.elementsSubscription = this.cardGroup.elements.subscribe((elements: StripeElements) => {\n this.elements = elements;\n this.setupElement('elements');\n });\n } else if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.setupElement('elements');\n });\n } else {\n throw new Error('StripeCardExpiryComponent must have StripeCardGroupDirective or StripeElementsDirective parent');\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeCardExpiryElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getCardExpiry() {\n return this.element;\n }\n\n private setupElement(source: 'elements' | 'options') {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.element && source === 'options') {\n this.update(options);\n } else if (this.elements && source === 'elements') {\n this.element = this.elements.create('cardExpiry', options);\n this.element.on('change', (ev) => {\n this.change.emit(ev);\n this.cardGroup?.change.emit(ev);\n });\n this.element.on('blur', () => {\n this.blur.emit();\n this.cardGroup?.blur.emit();\n });\n this.element.on('focus', () => {\n this.focus.emit();\n this.cardGroup?.focus.emit();\n });\n this.element.on('ready', () => {\n this.ready.emit();\n this.cardGroup?.ready.emit();\n });\n this.element.on('escape', () => {\n this.escape.emit();\n this.cardGroup?.escape.emit();\n });\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n this.cardGroup?.load.emit(this.element);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n Optional,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElements,\n StripeCardCvcElement,\n StripeCardCvcElementChangeEvent,\n StripeCardCvcElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\n\nimport { StripeCardGroupDirective } from '../directives/card-group.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-card-cvc',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (cardGroup && cardGroup.state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeCardCvcComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeCardCvcElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeCardCvcElementOptions>;\n\n @Output() load = new EventEmitter<StripeCardCvcElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeCardCvcElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() public cardGroup: StripeCardGroupDirective,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.options || changes.containerClass) {\n this.setupElement('options');\n }\n }\n\n ngOnInit() {\n if (this.cardGroup) {\n this.elementsSubscription = this.cardGroup.elements.subscribe((elements: StripeElements) => {\n this.elements = elements;\n this.setupElement('elements');\n });\n } else if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.setupElement('elements');\n });\n } else {\n throw new Error('StripeCardCvcComponent must have StripeCardGroupDirective or StripeElementsDirective parent');\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeCardCvcElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getCardCvc() {\n return this.element;\n }\n\n private setupElement(source: 'elements' | 'options') {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.element && source === 'options') {\n this.update(options);\n } else if (this.elements && source === 'elements') {\n this.element = this.elements.create('cardCvc', options);\n this.element.on('change', (ev) => {\n this.change.emit(ev);\n this.cardGroup?.change.emit(ev);\n });\n this.element.on('blur', () => {\n this.blur.emit();\n this.cardGroup?.blur.emit();\n });\n this.element.on('focus', () => {\n this.focus.emit();\n this.cardGroup?.focus.emit();\n });\n this.element.on('ready', () => {\n this.ready.emit();\n this.cardGroup?.ready.emit();\n });\n this.element.on('escape', () => {\n this.escape.emit();\n this.cardGroup?.escape.emit();\n });\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n this.cardGroup?.load.emit(this.element);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeEpsBankElementOptions,\n StripeEpsBankElement,\n StripeEpsBankElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-eps-bank',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeEpsBankComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeEpsBankElement;\n\n @Input() containerClass: string;\n @Input() options: StripeEpsBankElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeEpsBankElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeEpsBankElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeEpsBankElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getEpsBankelement() {\n return this.element;\n }\n\n private createElement(options: StripeEpsBankElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('epsBank', options);\n this.element.on('change', (ev: StripeEpsBankElementChangeEvent) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeExpressCheckoutElement,\n StripeExpressCheckoutElementOptions,\n StripeExpressCheckoutElementReadyEvent,\n StripeError,\n StripeExpressCheckoutElementUpdateOptions,\n StripeExpressCheckoutElementClickEvent,\n StripeExpressCheckoutElementConfirmEvent,\n StripeExpressCheckoutElementShippingAddressChangeEvent,\n StripeExpressCheckoutElementShippingRateChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\nexport type NgxStripeExpressCheckoutElementLoadErrorEvent = {\n elementType: 'expressCheckout';\n error: StripeError;\n};\n\n@Component({\n selector: 'ngx-stripe-express-checkout',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeExpressCheckoutComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeExpressCheckoutElement;\n\n @Input() containerClass: string;\n @Input() options: StripeExpressCheckoutElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeExpressCheckoutElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() cancel = new EventEmitter<void>();\n @Output() clicked = new EventEmitter<StripeExpressCheckoutElementClickEvent>();\n @Output() confirm = new EventEmitter<StripeExpressCheckoutElementConfirmEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<StripeExpressCheckoutElementReadyEvent>();\n @Output() escape = new EventEmitter<void>();\n @Output() loaderror = new EventEmitter<NgxStripeExpressCheckoutElementLoadErrorEvent>();\n @Output() shippingaddresschange = new EventEmitter<StripeExpressCheckoutElementShippingAddressChangeEvent>();\n @Output() shippingratechange = new EventEmitter<StripeExpressCheckoutElementShippingRateChangeEvent>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: StripeExpressCheckoutElementUpdateOptions): StripeExpressCheckoutElement {\n return this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getLinkAuthenticationElement() {\n return this.element;\n }\n\n private createElement(options: StripeExpressCheckoutElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('expressCheckout', options);\n this.element.on('blur', () => this.blur.emit());\n this.element.on('cancel', () => this.cancel.emit());\n this.element.on('click', (ev: StripeExpressCheckoutElementClickEvent) => this.clicked.emit(ev));\n this.element.on('confirm', (ev: StripeExpressCheckoutElementConfirmEvent) => this.confirm.emit(ev));\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', (ev: StripeExpressCheckoutElementReadyEvent) => this.ready.emit(ev));\n this.element.on('escape', () => this.escape.emit());\n this.element.on('loaderror', (err: NgxStripeExpressCheckoutElementLoadErrorEvent) => this.loaderror.emit(err));\n this.element.on('shippingaddresschange', (ev: StripeExpressCheckoutElementShippingAddressChangeEvent) =>\n this.shippingaddresschange.emit(ev)\n );\n this.element.on('shippingratechange', (ev: StripeExpressCheckoutElementShippingRateChangeEvent) =>\n this.shippingratechange.emit(ev)\n );\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeFpxBankElement,\n StripeFpxBankElementChangeEvent,\n StripeFpxBankElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-fpx-bank',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeFpxBankComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeFpxBankElement;\n\n @Input() containerClass: string;\n @Input() options: StripeFpxBankElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeFpxBankElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeFpxBankElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeFpxBankElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getFpxBank() {\n return this.element;\n }\n\n private createElement(options: StripeFpxBankElementOptions = { accountHolderType: 'individual' }) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('fpxBank', options);\n this.element.on('change', (ev) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeIbanElement,\n StripeIbanElementOptions,\n StripeIbanElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-iban',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeIbanComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeIbanElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeIbanElementOptions>;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeIbanElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeIbanElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeIbanElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getIban() {\n return this.element;\n }\n\n private createElement(options: Partial<StripeIbanElementOptions> = {}) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('iban', options);\n this.element.on('change', (ev) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeIdealBankElement,\n StripeIdealBankElementOptions,\n StripeIdealBankElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-ideal-bank',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeIdealBankComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeIdealBankElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeIdealBankElementOptions>;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeIdealBankElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeIdealBankElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeIdealBankElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getIdealBank() {\n return this.element;\n }\n\n private createElement(options: Partial<StripeIdealBankElementOptions> = {}) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('idealBank', options);\n this.element.on('change', (ev) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeIssuingCardCvcDisplayElement,\n StripeIssuingCardCvcDisplayElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-issuing-card-cvc-display',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeIssuingCardCvcDisplayComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeIssuingCardCvcDisplayElement;\n\n @Input() containerClass: string;\n @Input() options: StripeIssuingCardCvcDisplayElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeIssuingCardCvcDisplayElement>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n private cdr: ChangeDetectorRef,\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeIssuingCardCvcDisplayElementOptions>) {\n this.element.update(options);\n }\n\n private createElement(options: StripeIssuingCardCvcDisplayElementOptions) {\n this.state = 'ready';\n this.cdr.detectChanges();\n\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('issuingCardCvcDisplay', options);\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeIssuingCardExpiryDisplayElement,\n StripeIssuingCardExpiryDisplayElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-issuing-card-expiry-display',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeIssuingCardExpiryDisplayComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeIssuingCardExpiryDisplayElement;\n\n @Input() containerClass: string;\n @Input() options: StripeIssuingCardExpiryDisplayElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeIssuingCardExpiryDisplayElement>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n private cdr: ChangeDetectorRef,\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeIssuingCardExpiryDisplayElementOptions>) {\n this.element.update(options);\n }\n\n private createElement(options: StripeIssuingCardExpiryDisplayElementOptions) {\n this.state = 'ready';\n this.cdr.detectChanges();\n\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('issuingCardExpiryDisplay', options);\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeIssuingCardNumberDisplayElementOptions,\n StripeIssuingCardNumberDisplayElement\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-issuing-card-number-display',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeIssuingCardNumberDisplayComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeIssuingCardNumberDisplayElement;\n\n @Input() containerClass: string;\n @Input() options: StripeIssuingCardNumberDisplayElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeIssuingCardNumberDisplayElement>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n private cdr: ChangeDetectorRef,\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeIssuingCardNumberDisplayElementOptions>) {\n this.element.update(options);\n }\n\n private createElement(options: StripeIssuingCardNumberDisplayElementOptions) {\n this.state = 'ready';\n this.cdr.detectChanges();\n\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('issuingCardNumberDisplay', options);\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeIssuingCardPinDisplayElement,\n StripeIssuingCardPinDisplayElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-issuing-card-pin-display',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeIssuingCardPinDisplayComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeIssuingCardPinDisplayElement;\n\n @Input() containerClass: string;\n @Input() options: StripeIssuingCardPinDisplayElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeIssuingCardPinDisplayElement>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n private cdr: ChangeDetectorRef,\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeIssuingCardPinDisplayElementOptions>) {\n this.element.update(options);\n }\n\n private createElement(options: StripeIssuingCardPinDisplayElementOptions) {\n this.state = 'ready';\n this.cdr.detectChanges();\n\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('issuingCardPinDisplay', options);\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeLinkAuthenticationElementOptions,\n StripeLinkAuthenticationElement,\n StripeLinkAuthenticationElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-link-authentication',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeLinkAuthenticationComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeLinkAuthenticationElement;\n\n @Input() containerClass: string;\n @Input() options: StripeLinkAuthenticationElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeLinkAuthenticationElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeLinkAuthenticationElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n @Output() loaderror = new EventEmitter<void>();\n @Output() loaderstart = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n /**\n * @deprecated\n */\n getLinkAuthenticationElement() {\n return this.element;\n }\n\n private createElement(options: StripeLinkAuthenticationElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('linkAuthentication', options);\n this.element.on('change', (ev: StripeLinkAuthenticationElementChangeEvent) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n this.element.on('loaderror', () => this.loaderror.emit());\n this.element.on('loaderstart', () => this.loaderstart.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeP24BankElementOptions,\n StripeP24BankElementChangeEvent,\n StripeP24BankElement\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-p24-bank',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeP24BankComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeP24BankElement;\n\n @Input() containerClass: string;\n @Input() options: StripeP24BankElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeP24BankElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeP24BankElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeP24BankElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getP24Bankelement() {\n return this.element;\n }\n\n private createElement(options: StripeP24BankElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('p24Bank', options);\n this.element.on('change', (ev: StripeP24BankElementChangeEvent) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripeAuBankAccountElement,\n StripeAuBankAccountElementOptions,\n StripeAuBankAccountElementChangeEvent\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-au-bank-account',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripeAuBankAccountComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripeAuBankAccountElement;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripeAuBankAccountElementOptions>;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripeAuBankAccountElement>();\n\n @Output() blur = new EventEmitter<void>();\n @Output() change = new EventEmitter<StripeAuBankAccountElementChangeEvent>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n @Output() escape = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripeAuBankAccountElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getAuBankAccount() {\n return this.element;\n }\n\n private createElement(options: Partial<StripeAuBankAccountElementOptions> = {}) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('auBankAccount', options);\n this.element.on('change', (ev) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n this.element.on('escape', () => this.escape.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n OnChanges,\n OnDestroy,\n Input,\n ViewChild,\n ElementRef,\n Output,\n EventEmitter,\n SimpleChanges,\n Optional,\n OnInit\n} from '@angular/core';\nimport { Subscription, from } from 'rxjs';\n\nimport {\n Appearance,\n StripeElements,\n StripeElementsOptions,\n StripeError,\n StripePaymentElement,\n StripePaymentElementChangeEvent,\n StripePaymentElementOptions\n} from '@stripe/stripe-js';\n\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-payment',\n standalone: true,\n template: `<div class=\"field\" #stripeElementRef></div>`,\n imports: [CommonModule]\n})\nexport class StripePaymentElementComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripePaymentElement;\n elements: StripeElements;\n\n @Input() containerClass: string;\n @Input() options: Partial<StripePaymentElementOptions>;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Input() appearance: Appearance;\n @Input() clientSecret: string;\n @Input() doNotCreateUntilClientSecretIsSet = false;\n\n @Output() load = new EventEmitter<StripePaymentElement>();\n\n @Output() blur = new EventEmitter<{ elementType: 'payment' }>();\n @Output() change = new EventEmitter<StripePaymentElementChangeEvent>();\n @Output() focus = new EventEmitter<{ elementType: 'payment' }>();\n @Output() ready = new EventEmitter<{ elementType: 'payment' }>();\n @Output() escape = new EventEmitter<{ elementType: 'payment' }>();\n @Output() loaderror = new EventEmitter<{\n elementType: 'payment';\n error: StripeError;\n }>();\n\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (\n !this.elementsProvider &&\n (changes.elementsOptions || changes.stripe || changes.clientSecret || changes.appearance || !this.elements)\n ) {\n this.elements = await this.stripeElementsService\n .elements(this.stripe, {\n ...(this.elementsOptions || {}),\n ...(this.appearance ? { appearance: this.appearance } : {}),\n ...(this.clientSecret ? { clientSecret: this.clientSecret } : {})\n } as StripeElementsOptions)\n .toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService\n .elements(this.stripe, {\n ...(this.elementsOptions || {}),\n ...(this.appearance ? { appearance: this.appearance } : {}),\n ...(this.clientSecret ? { clientSecret: this.clientSecret } : {})\n } as StripeElementsOptions)\n .toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripePaymentElementOptions>): StripePaymentElement {\n return this.element.update(options);\n }\n\n collapse(): StripePaymentElement {\n return this.element.collapse();\n }\n\n fetchUpdates() {\n return from(this.elements.fetchUpdates());\n }\n\n private createElement(options: Partial<StripePaymentElementOptions> = {}) {\n if (this.element) {\n this.element.unmount();\n }\n\n try {\n this.element = this.elements.create('payment', options);\n } catch (err) {\n this.elements = null;\n throw err;\n }\n\n this.element.on('change', (ev) => this.change.emit(ev));\n this.element.on('blur', (ev) => this.blur.emit(ev));\n this.element.on('focus', (ev) => this.focus.emit(ev));\n this.element.on('ready', (ev) => this.ready.emit(ev));\n this.element.on('escape', (ev) => this.escape.emit(ev));\n this.element.on('loaderror', (ev) => this.loaderror.emit(ev));\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ContentChild,\n TemplateRef,\n Optional\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n StripePaymentMethodMessagingElement,\n StripePaymentMethodMessagingElementOptions\n} from '@stripe/stripe-js';\n\nimport { NgxStripeElementLoadingTemplateDirective } from '../directives/stripe-element-loading-template.directive';\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-payment-method-messaging',\n standalone: true,\n template: `\n <div class=\"field\" #stripeElementRef>\n @if (state !== 'ready' && loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\" />\n }\n </div>\n `,\n imports: [CommonModule]\n})\nexport class StripePaymentMethodMessagingComponent implements OnInit, OnChanges, OnDestroy {\n @ContentChild(NgxStripeElementLoadingTemplateDirective, { read: TemplateRef })\n loadingTemplate?: TemplateRef<NgxStripeElementLoadingTemplateDirective>;\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripePaymentMethodMessagingElement;\n\n @Input() containerClass: string;\n @Input() options: StripePaymentMethodMessagingElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<StripePaymentMethodMessagingElement>();\n @Output() ready = new EventEmitter<void>();\n\n elements: StripeElements;\n state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n this.elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n updateElements = true;\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n\n this.state = 'ready';\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n update(options: Partial<StripePaymentMethodMessagingElementOptions>) {\n this.element.update(options);\n }\n\n /**\n * @deprecated\n */\n getPaymentMethodMessaging() {\n return this.element;\n }\n\n private createElement(options: StripePaymentMethodMessagingElementOptions) {\n if (this.element) {\n this.element.unmount();\n }\n\n this.element = this.elements.create('paymentMethodMessaging', options);\n this.element.on('ready', () => this.ready.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit(this.element);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ViewChild,\n ElementRef,\n EventEmitter,\n Output,\n OnChanges,\n SimpleChanges,\n Optional,\n OnInit,\n OnDestroy\n} from '@angular/core';\nimport { Observable, from, Subscription } from 'rxjs';\n\nimport {\n StripeElementsOptions,\n StripeElements,\n PaymentRequestOptions,\n PaymentRequest,\n CanMakePaymentResult,\n PaymentRequestUpdateOptions,\n StripePaymentRequestButtonElement,\n StripePaymentRequestButtonElementOptions,\n StripePaymentRequestButtonElementClickEvent,\n PaymentRequestTokenEvent,\n PaymentRequestPaymentMethodEvent,\n PaymentRequestSourceEvent,\n PaymentRequestShippingAddressEvent,\n PaymentRequestShippingOptionEvent\n} from '@stripe/stripe-js';\n\nimport { StripeElementsDirective } from '../directives/elements.directive';\n\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeElementsService } from '../services/stripe-elements.service';\n\n@Component({\n selector: 'ngx-stripe-payment-request-button',\n standalone: true,\n template: `<div class=\"field\" #stripeElementRef></div>`,\n imports: [CommonModule]\n})\nexport class StripePaymentRequestButtonComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('stripeElementRef') public stripeElementRef!: ElementRef;\n element!: StripePaymentRequestButtonElement;\n paymentRequest!: PaymentRequest;\n\n @Input() containerClass: string;\n @Input() paymentOptions: PaymentRequestOptions;\n @Input() options: StripePaymentRequestButtonElementOptions;\n @Input() elementsOptions: Partial<StripeElementsOptions>;\n @Input() stripe: StripeServiceInterface;\n\n @Output() load = new EventEmitter<{\n paymentRequestButton: StripePaymentRequestButtonElement;\n paymentRequest: PaymentRequest;\n }>();\n\n @Output() change = new EventEmitter<StripePaymentRequestButtonElementClickEvent>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n @Output() ready = new EventEmitter<void>();\n\n @Output() token = new EventEmitter<PaymentRequestTokenEvent>();\n @Output() paymentMethod = new EventEmitter<PaymentRequestPaymentMethodEvent>();\n @Output() source = new EventEmitter<PaymentRequestSourceEvent>();\n @Output() cancel = new EventEmitter<void>();\n @Output() shippingaddresschange = new EventEmitter<PaymentRequestShippingAddressEvent>();\n @Output() shippingoptionchange = new EventEmitter<PaymentRequestShippingOptionEvent>();\n @Output() notavailable = new EventEmitter<void>();\n\n elements: StripeElements;\n private state: 'notready' | 'starting' | 'ready' = 'notready';\n private elementsSubscription: Subscription;\n\n constructor(\n public stripeElementsService: StripeElementsService,\n @Optional() private elementsProvider: StripeElementsDirective\n ) {}\n\n async ngOnChanges(changes: SimpleChanges) {\n this.state = 'starting';\n let updateElements = false;\n\n if (!this.elementsProvider && (changes.elementsOptions || changes.stripe || !this.elements)) {\n const elements = await this.stripeElementsService.elements(this.stripe, this.elementsOptions).toPromise();\n this.elements = elements;\n updateElements = true;\n }\n\n if (changes.paymentOptions && this.paymentRequest) {\n this.updateRequest(this.paymentOptions);\n }\n\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n if (changes.options || changes.containerClass || !this.element || updateElements) {\n if (this.element && !updateElements) {\n this.update(options);\n } else if (this.elements && updateElements) {\n this.createElement(options);\n }\n }\n }\n\n async ngOnInit() {\n const options = this.stripeElementsService.mergeOptions(this.options, this.containerClass);\n\n if (this.elementsProvider) {\n this.elementsSubscription = this.elementsProvider.elements.subscribe((elements) => {\n this.elements = elements;\n this.createElement(options);\n this.state = 'ready';\n });\n } else if (this.state === 'notready') {\n this.state = 'starting';\n\n this.elements = await this.stripeElementsService.elements(this.stripe).toPromise();\n this.createElement(options);\n\n this.state = 'ready';\n }\n }\n\n ngOnDestroy() {\n if (this.element) {\n this.element.destroy();\n }\n if (this.elementsSubscription) {\n this.elementsSubscription.unsubscribe();\n }\n }\n\n canMakePayment(): Observable<CanMakePaymentResult | null> {\n return from(this.paymentRequest.canMakePayment());\n }\n\n update(options: Partial<StripePaymentRequestButtonElementOptions>) {\n this.element.update(options);\n }\n\n updateRequest(options: PaymentRequestUpdateOptions) {\n const { currency, total, displayItems, shippingOptions } = options;\n\n this.paymentRequest.update({\n currency,\n total,\n displayItems,\n shippingOptions\n });\n }\n\n show(): void {\n this.paymentRequest.show();\n }\n\n abort(): void {\n this.paymentRequest.abort();\n }\n\n isShowing(): boolean {\n return this.paymentRequest.isShowing();\n }\n\n /**\n * @deprecated\n */\n getButton() {\n return this.element;\n }\n\n private async createElement(options: Partial<StripePaymentRequestButtonElementOptions> = {}) {\n this.paymentRequest = this.stripeElementsService.paymentRequest(this.stripe, this.paymentOptions);\n this.paymentRequest.on('token', (ev) => this.token.emit(ev));\n if (this.paymentMethod.observed) this.paymentRequest.on('paymentmethod', (ev) => this.paymentMethod.emit(ev));\n if (this.source.observed && !this.paymentMethod.observed)\n this.paymentRequest.on('source', (ev) => this.source.emit(ev));\n this.paymentRequest.on('cancel', () => this.cancel.emit());\n this.paymentRequest.on('shippingaddresschange', (ev) => this.shippingaddresschange.emit(ev));\n this.paymentRequest.on('shippingoptionchange', (ev) => this.shippingoptionchange.emit(ev));\n\n if (this.element) {\n this.element.unmount();\n }\n this.element = this.elements.create('paymentRequestButton', {\n paymentRequest: this.paymentRequest,\n ...options\n });\n\n const result = await this.paymentRequest.canMakePayment();\n if (result) {\n this.element.on('click', (ev) => this.change.emit(ev));\n this.element.on('blur', () => this.blur.emit());\n this.element.on('focus', () => this.focus.emit());\n this.element.on('ready', () => this.ready.emit());\n\n this.element.mount(this.stripeElementRef.nativeElement);\n\n this.load.emit({\n paymentRequestButton: this.element,\n paymentRequest: this.paymentRequest\n });\n } else {\n this.notavailable.emit();\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { StripeConstructorOptions } from '@stripe/stripe-js';\n\nimport { NGX_STRIPE_VERSION, STRIPE_OPTIONS, STRIPE_PUBLISHABLE_KEY } from '../interfaces/ngx-stripe.interface';\n\nimport { LazyStripeAPILoader } from './api-loader.service';\nimport { WindowRef } from './window-ref.service';\n\nimport { StripeInstance } from './stripe-instance.class';\n\n@Injectable()\nexport class StripeFactoryService {\n constructor(\n @Inject(NGX_STRIPE_VERSION) public version: string,\n @Inject(STRIPE_PUBLISHABLE_KEY) public baseKey: string,\n @Inject(STRIPE_OPTIONS) public baseOptions: StripeConstructorOptions,\n public loader: LazyStripeAPILoader,\n public window: WindowRef\n ) {}\n\n public create(key?: string, options?: StripeConstructorOptions): StripeInstance {\n if (!key && !this.baseKey) {\n throw new Error(\n 'No key defined! Either you need to pass it as a parameter or define it when you call NgxStripeModule.forRoot()'\n );\n }\n\n return new StripeInstance(this.version, this.loader, this.window, key || this.baseKey, options || this.baseOptions);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { EnvironmentProviders, makeEnvironmentProviders, ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { StripeConstructorOptions } from '@stripe/stripe-js';\n\nimport { StripeAddressComponent } from './components/address.component';\nimport { StripeAffirmMessageComponent } from './components/affirm-message.component';\nimport { StripeAfterpayClearpayMessageComponent } from './components/afterpay-clearpay-message.component';\nimport { StripeCardComponent } from './components/card.component';\nimport { StripeCardNumberComponent } from './components/card-number.component';\nimport { StripeCardExpiryComponent } from './components/card-expiry.component';\nimport { StripeCardCvcComponent } from './components/card-cvc.component';\nimport { StripeEpsBankComponent } from './components/eps-bank.component';\nimport { StripeExpressCheckoutComponent } from './components/express-checkout.component';\nimport { StripeFpxBankComponent } from './components/fpx-bank.component';\nimport { StripeIbanComponent } from './components/iban.component';\nimport { StripeIdealBankComponent } from './components/ideal-bank.component';\nimport { StripeIssuingCardCvcDisplayComponent } from './components/issuing-card-cvc.component';\nimport { StripeIssuingCardExpiryDisplayComponent } from './components/issuing-card-expiry.component';\nimport { StripeIssuingCardNumberDisplayComponent } from './components/issuing-card-number.component';\nimport { StripeIssuingCardPinDisplayComponent } from './components/issuing-card-pin.component';\nimport { StripeLinkAuthenticationComponent } from './components/link-authentication.component';\nimport { StripeP24BankComponent } from './components/p24-bank.component';\nimport { StripeAuBankAccountComponent } from './components/au-bank-account.component';\nimport { StripePaymentElementComponent } from './components/payment-element.component';\nimport { StripePaymentMethodMessagingComponent } from './components/payment-method-messaging.component';\nimport { StripePaymentRequestButtonComponent } from './components/payment-request-button.component';\n\nimport { StripeCardGroupDirective } from './directives/card-group.directive';\nimport { StripeElementsDirective } from './directives/elements.directive';\nimport { NgxStripeElementLoadingTemplateDirective } from './directives/stripe-element-loading-template.directive';\n\nimport { NGX_STRIPE_VERSION, STRIPE_OPTIONS, STRIPE_PUBLISHABLE_KEY } from './interfaces/ngx-stripe.interface';\n\nimport { LazyStripeAPILoader } from './services/api-loader.service';\nimport { WindowRef } from './services/window-ref.service';\nimport { DocumentRef } from './services/document-ref.service';\nimport { StripeService } from './services/stripe.service';\nimport { StripeFactoryService } from './services/stripe-factory.service';\nimport { StripeElementsService } from './services/stripe-elements.service';\n\nconst components = [\n StripeAddressComponent,\n StripeAffirmMessageComponent,\n StripeAfterpayClearpayMessageComponent,\n StripeCardComponent,\n StripeCardNumberComponent,\n StripeCardExpiryComponent,\n StripeCardCvcComponent,\n StripeEpsBankComponent,\n StripeExpressCheckoutComponent,\n StripeFpxBankComponent,\n StripeIbanComponent,\n StripeIdealBankComponent,\n StripeIssuingCardCvcDisplayComponent,\n StripeIssuingCardExpiryDisplayComponent,\n StripeIssuingCardNumberDisplayComponent,\n StripeIssuingCardPinDisplayComponent,\n StripeLinkAuthenticationComponent,\n StripeP24BankComponent,\n StripeAuBankAccountComponent,\n StripePaymentElementComponent,\n StripePaymentMethodMessagingComponent,\n StripePaymentRequestButtonComponent\n];\n\nconst directives = [StripeCardGroupDirective, StripeElementsDirective, NgxStripeElementLoadingTemplateDirective];\n\nconst currentVersion = '19.0.0';\n\nfunction _provideNgxStripe(publishableKey?: string, options?: StripeConstructorOptions) {\n return [\n LazyStripeAPILoader,\n StripeService,\n StripeFactoryService,\n StripeElementsService,\n WindowRef,\n DocumentRef,\n {\n provide: STRIPE_PUBLISHABLE_KEY,\n useValue: publishableKey\n },\n {\n provide: STRIPE_OPTIONS,\n useValue: options\n },\n {\n provide: NGX_STRIPE_VERSION,\n useValue: currentVersion\n }\n ];\n}\n\n/**\n * Provides the global NgxStripe providers and initializes.\n *\n * @usageNotes\n *\n * ### Providing the Global NgxStripe\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideNgxStripe(STRIPE_KEY)],\n * });\n * ```\n */\nexport function provideNgxStripe(publishableKey?: string, options?: StripeConstructorOptions): EnvironmentProviders {\n return makeEnvironmentProviders([..._provideNgxStripe(publishableKey, options)]);\n}\n\n@NgModule({\n exports: [...components, ...directives],\n imports: [CommonModule, ...components, ...directives]\n})\nexport class NgxStripeModule {\n public static forRoot(\n publishableKey?: string,\n options?: StripeConstructorOptions\n ): ModuleWithProviders<NgxStripeModule> {\n return {\n ngModule: NgxStripeModule,\n providers: [..._provideNgxStripe(publishableKey, options)]\n };\n }\n\n /**\n * @deprecated\n */\n public static forChild(\n publishableKey?: string,\n options?: StripeConstructorOptions\n ): ModuleWithProviders<NgxStripeModule> {\n return {\n ngModule: NgxStripeModule,\n providers: [..._provideNgxStripe(publishableKey, options)]\n };\n }\n}\n","import { inject } from '@angular/core';\n\nimport { StripeConstructorOptions } from '@stripe/stripe-js';\n\nimport { STRIPE_PUBLISHABLE_KEY } from '../interfaces/ngx-stripe.interface';\nimport { StripeServiceInterface } from '../interfaces/stripe-instance.interface';\n\nimport { StripeFactoryService } from '../services/stripe-factory.service';\nimport { StripeService } from '../services/stripe.service';\n\nexport function injectStripe(publishableKey?: string, options?: StripeConstructorOptions): StripeServiceInterface {\n if (publishableKey) {\n const factory = inject(StripeFactoryService);\n return factory.create(publishableKey, options);\n } else if (inject(STRIPE_PUBLISHABLE_KEY)) {\n return inject(StripeService);\n }\n\n throw new Error('Publishable Key is required either global or pass as parameter');\n}\n","/*\n * Public API Surface of ngx-stripe\n */\nexport { NgxStripeModule, provideNgxStripe } from './lib/ngx-stripe.module';\n\nexport { StripeAddressComponent } from './lib/components/address.component';\nexport { StripeAffirmMessageComponent } from './lib/components/affirm-message.component';\nexport { StripeAfterpayClearpayMessageComponent } from './lib/components/afterpay-clearpay-message.component';\nexport { StripeCardComponent } from './lib/components/card.component';\nexport { StripeCardNumberComponent } from './lib/components/card-number.component';\nexport { StripeCardExpiryComponent } from './lib/components/card-expiry.component';\nexport { StripeCardCvcComponent } from './lib/components/card-cvc.component';\nexport { StripeEpsBankComponent } from './lib/components/eps-bank.component';\nexport { StripeExpressCheckoutComponent } from './lib/components/express-checkout.component';\nexport { StripeFpxBankComponent } from './lib/components/fpx-bank.component';\nexport { StripeIbanComponent } from './lib/components/iban.component';\nexport { StripeIdealBankComponent } from './lib/components/ideal-bank.component';\nexport { StripeIssuingCardCvcDisplayComponent } from './lib/components/issuing-card-cvc.component';\nexport { StripeIssuingCardExpiryDisplayComponent } from './lib/components/issuing-card-expiry.component';\nexport { StripeIssuingCardNumberDisplayComponent } from './lib/components/issuing-card-number.component';\nexport { StripeIssuingCardPinDisplayComponent } from './lib/components/issuing-card-pin.component';\nexport { StripeLinkAuthenticationComponent } from './lib/components/link-authentication.component';\nexport { StripeP24BankComponent } from './lib/components/p24-bank.component';\nexport { StripeAuBankAccountComponent } from './lib/components/au-bank-account.component';\nexport { StripePaymentElementComponent } from './lib/components/payment-element.component';\nexport { StripePaymentMethodMessagingComponent } from './lib/components/payment-method-messaging.component';\nexport { StripePaymentRequestButtonComponent } from './lib/components/payment-request-button.component';\n\nexport { StripeCardGroupDirective } from './lib/directives/card-group.directive';\nexport { StripeElementsDirective } from './lib/directives/elements.directive';\nexport { NgxStripeElementLoadingTemplateDirective } from './lib/directives/stripe-element-loading-template.directive';\n\nexport { StripeService } from './lib/services/stripe.service';\nexport { StripeFactoryService } from './lib/services/stripe-factory.service';\nexport { StripeInstance } from './lib/services/stripe-instance.class';\nexport { LazyStripeAPILoader, LazyStripeAPILoaderStatus } from './lib/services/api-loader.service';\nexport { StripeElementsService } from './lib/services/stripe-elements.service';\n\nexport { WindowRef } from './lib/services/window-ref.service';\nexport { DocumentRef } from './lib/services/document-ref.service';\n\nexport { STRIPE_PUBLISHABLE_KEY, STRIPE_OPTIONS, NGX_STRIPE_VERSION } from './lib/interfaces/ngx-stripe.interface';\nexport { StripeServiceInterface } from './lib/interfaces/stripe-instance.interface';\n\nexport { injectStripe } from './lib/utils/inject-stripe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.WindowRef","i2.DocumentRef","i1.LazyStripeAPILoader","i2.WindowRef","i1.StripeService","i1.StripeElementsService","i2.StripeElementsDirective","i2.StripeCardGroupDirective","i3.StripeElementsDirective","i4"],"mappings":"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"}