{"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/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/express-checkout.component.ts","../../../projects/ngx-stripe/src/lib/components/iban.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/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  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  ConfirmMultibancoPaymentOptions,\n  ConfirmMultibancoPaymentData,\n  ConfirmTwintPaymentOptions,\n  ConfirmTwintPaymentData,\n  ConfirmBilliePaymentOptions,\n  ConfirmBilliePaymentData\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  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  confirmBilliePayment(\n    clientSecret: string,\n    data?: ConfirmBilliePaymentData,\n    options?: ConfirmBilliePaymentOptions\n  ): Observable<PaymentIntentResult> {\n    return this.stripe.pipe(\n      switchMap((stripe) => from(stripe.confirmBilliePayment(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  confirmMultibancoPayment(\n    clientSecret: string,\n    data?: ConfirmMultibancoPaymentData,\n    options?: ConfirmMultibancoPaymentOptions\n  ): Observable<PaymentIntentResult> {\n    return this.stripe.pipe(\n      switchMap((stripe) => from(stripe.confirmMultibancoPayment(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  confirmTwintPayment(\n    clientSecret: string,\n    data?: ConfirmTwintPaymentData,\n    options?: ConfirmTwintPaymentOptions\n  ): Observable<PaymentIntentResult> {\n    return this.stripe.pipe(\n      switchMap((stripe) => from(stripe.confirmTwintPayment(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      map((stripe) => 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, NgZone } 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(\n    @Inject(PLATFORM_ID) public platformId: any,\n    public window: WindowRef, \n    public document: DocumentRef,\n    private zone: NgZone\n  ) {}\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\n    const win = this.window.getNativeWindow() as any;\n    const { loaded, loading, error } = this.status.getValue();\n\n    if (win.hasOwnProperty('Stripe')) {\n      this.status.next({ loaded: true, loading: false, error: false });\n      return;\n    }\n    \n    if (!loaded && !loading) {\n      this.status.next({ loaded: false, loading: true, error });\n\n      this.zone.runOutsideAngular(() => this.injectScript());\n    }\n  }\n\n  private injectScript() {\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/clover/stripe.js';\n\n    script.onload = () => {\n      this.zone.run(() => {\n        this.status.next({ loaded: true, loading: false, error: false });\n      });\n    };\n\n    script.onerror = () => {\n      this.zone.run(() => {\n        this.status.next({ loaded: false, loading: false, error: true });\n      });\n    };\n\n    this.document.getNativeDocument().body.appendChild(script);\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  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  ConfirmMultibancoPaymentOptions,\n  ConfirmTwintPaymentData,\n  ConfirmMultibancoPaymentData,\n  ConfirmTwintPaymentOptions,\n  ConfirmBilliePaymentOptions,\n  ConfirmBilliePaymentData\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  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  confirmBilliePayment(\n    clientSecret: string,\n    data?: ConfirmBilliePaymentData,\n    options?: ConfirmBilliePaymentOptions\n  ): Observable<PaymentIntentResult> {\n    return this.stripe.confirmBilliePayment(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  confirmMultibancoPayment(\n    clientSecret: string,\n    data?: ConfirmMultibancoPaymentData,\n    options?: ConfirmMultibancoPaymentOptions\n  ): Observable<PaymentIntentResult> {\n    return this.stripe.confirmMultibancoPayment(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  confirmTwintPayment(\n    clientSecret: string,\n    data?: ConfirmTwintPaymentData,\n    options?: ConfirmTwintPaymentOptions\n  ): Observable<PaymentIntentResult> {\n    return this.stripe.confirmTwintPayment(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  StripeIbanElementOptions,\n  StripePaymentRequestButtonElementOptions,\n  StripePaymentElementOptions,\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: StripeIbanElementOptions, containerClass: string): StripeIbanElementOptions;\n  mergeOptions(options: StripeAuBankAccountElementOptions, containerClass: string): StripeAuBankAccountElementOptions;\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  StripeAuBankAccountElement,\n  StripeCardCvcElement,\n  StripeCardElement,\n  StripeCardExpiryElement,\n  StripeCardNumberElement,\n  StripeElements,\n  StripeElementsOptions,\n  StripeElementsUpdateOptions,\n  StripeExpressCheckoutElement,\n  StripeIbanElement,\n  StripeLinkAuthenticationElement,\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: 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: '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: 'iban'): StripeIbanElement | 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 '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 'iban':\n        return this._elements.getElement('iban');\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: 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  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: 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: 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  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: 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  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: 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  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: 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: 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: 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: 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: 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  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: 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","\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: []\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: 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","\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: []\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: 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 { 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 { StripeExpressCheckoutComponent } from './components/express-checkout.component';\nimport { StripeIbanComponent } from './components/iban.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 { 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  StripeCardComponent,\n  StripeCardNumberComponent,\n  StripeCardExpiryComponent,\n  StripeCardCvcComponent,\n  StripeExpressCheckoutComponent,\n  StripeIbanComponent,\n  StripeIssuingCardCvcDisplayComponent,\n  StripeIssuingCardExpiryDisplayComponent,\n  StripeIssuingCardNumberDisplayComponent,\n  StripeIssuingCardPinDisplayComponent,\n  StripeLinkAuthenticationComponent,\n  StripeAuBankAccountComponent,\n  StripePaymentElementComponent,\n  StripePaymentMethodMessagingComponent,\n  StripePaymentRequestButtonComponent\n];\n\nconst directives = [StripeCardGroupDirective, StripeElementsDirective, NgxStripeElementLoadingTemplateDirective];\n\nconst currentVersion = '21.8.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 { 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 { StripeExpressCheckoutComponent } from './lib/components/express-checkout.component';\nexport { StripeIbanComponent } from './lib/components/iban.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 { 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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"}