import { DIALOG_DATA } from "@angular/cdk/dialog"; import { Component, Inject } from "@angular/core"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { DialogConfig, DialogRef, DialogService, ToastService } from "@bitwarden/components"; import { SubscriberBillingClient } from "@bitwarden/web-vault/app/billing/clients"; import { SharedModule } from "../../../shared"; import { BitwardenSubscriber } from "../../types"; import { EnterPaymentMethodComponent } from "./enter-payment-method.component"; import { SubmitPaymentMethodDialogComponent, SubmitPaymentMethodDialogResult, } from "./submit-payment-method-dialog.component"; type DialogParams = { subscriber: BitwardenSubscriber; }; @Component({ template: `
{{ "changePaymentMethod" | i18n }}
`, standalone: true, imports: [EnterPaymentMethodComponent, SharedModule], providers: [SubscriberBillingClient], }) export class ChangePaymentMethodDialogComponent extends SubmitPaymentMethodDialogComponent { protected override subscriber: BitwardenSubscriber; constructor( billingClient: SubscriberBillingClient, @Inject(DIALOG_DATA) protected dialogParams: DialogParams, dialogRef: DialogRef, i18nService: I18nService, toastService: ToastService, ) { super(billingClient, dialogRef, i18nService, toastService); this.subscriber = this.dialogParams.subscriber; } static open = (dialogService: DialogService, dialogConfig: DialogConfig) => dialogService.open( ChangePaymentMethodDialogComponent, dialogConfig, ); }