1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-10 05:13:29 +00:00

Tools - Prefer signal & change detection (#16941)

This commit is contained in:
Oscar Hinton
2025-10-21 15:49:22 +02:00
committed by GitHub
parent 6abaaa7b13
commit f23f3f87bd
66 changed files with 329 additions and 11 deletions

View File

@@ -7,6 +7,8 @@ import { CalloutModule } from "@bitwarden/components";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils"; import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { FilePopoutUtilsService } from "../services/file-popout-utils.service"; import { FilePopoutUtilsService } from "../services/file-popout-utils.service";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-file-popout-callout", selector: "tools-file-popout-callout",
templateUrl: "file-popout-callout.component.html", templateUrl: "file-popout-callout.component.html",

View File

@@ -25,6 +25,8 @@ import { PopupFooterComponent } from "../../../platform/popup/layout/popup-foote
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component"; import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-credential-generator-history", selector: "app-credential-generator-history",
templateUrl: "credential-generator-history.component.html", templateUrl: "credential-generator-history.component.html",
@@ -52,6 +54,8 @@ export class CredentialGeneratorHistoryComponent implements OnChanges, OnInit, O
private logService: LogService, private logService: LogService,
) {} ) {}
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
account: Account | null; account: Account | null;
@@ -60,6 +64,8 @@ export class CredentialGeneratorHistoryComponent implements OnChanges, OnInit, O
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;

View File

@@ -10,6 +10,8 @@ import { PopOutComponent } from "../../../platform/popup/components/pop-out.comp
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component"; import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "credential-generator", selector: "credential-generator",
templateUrl: "credential-generator.component.html", templateUrl: "credential-generator.component.html",

View File

@@ -60,6 +60,8 @@ export type AddEditQueryParams = Partial<Record<keyof QueryParams, string>>;
/** /**
* Component for adding or editing a send item. * Component for adding or editing a send item.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-send-add-edit", selector: "tools-send-add-edit",
templateUrl: "send-add-edit.component.html", templateUrl: "send-add-edit.component.html",

View File

@@ -20,6 +20,8 @@ import { PopupFooterComponent } from "../../../../platform/popup/layout/popup-fo
import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component"; import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-created", selector: "app-send-created",
templateUrl: "./send-created.component.html", templateUrl: "./send-created.component.html",

View File

@@ -10,12 +10,16 @@ import { FilePopoutUtilsService } from "../../services/file-popout-utils.service
import { SendFilePopoutDialogComponent } from "./send-file-popout-dialog.component"; import { SendFilePopoutDialogComponent } from "./send-file-popout-dialog.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "send-file-popout-dialog-container", selector: "send-file-popout-dialog-container",
templateUrl: "./send-file-popout-dialog-container.component.html", templateUrl: "./send-file-popout-dialog-container.component.html",
imports: [JslibModule, CommonModule], imports: [JslibModule, CommonModule],
}) })
export class SendFilePopoutDialogContainerComponent implements OnInit { export class SendFilePopoutDialogContainerComponent implements OnInit {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
config = input.required<SendFormConfig>(); config = input.required<SendFormConfig>();
constructor( constructor(

View File

@@ -6,6 +6,8 @@ import { ButtonModule, DialogModule, DialogService, TypographyModule } from "@bi
import BrowserPopupUtils from "../../../../platform/browser/browser-popup-utils"; import BrowserPopupUtils from "../../../../platform/browser/browser-popup-utils";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "send-file-popout-dialog", selector: "send-file-popout-dialog",
templateUrl: "./send-file-popout-dialog.component.html", templateUrl: "./send-file-popout-dialog.component.html",

View File

@@ -39,6 +39,8 @@ export enum SendState {
NoResults, NoResults,
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "send-v2.component.html", templateUrl: "send-v2.component.html",
providers: [ providers: [

View File

@@ -16,11 +16,15 @@ import {
TypographyModule, TypographyModule,
} from "@bitwarden/components"; } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "about-dialog.component.html", templateUrl: "about-dialog.component.html",
imports: [CommonModule, JslibModule, DialogModule, ButtonModule, TypographyModule], imports: [CommonModule, JslibModule, DialogModule, ButtonModule, TypographyModule],
}) })
export class AboutDialogComponent { export class AboutDialogComponent {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@ViewChild("version") protected version!: ElementRef; @ViewChild("version") protected version!: ElementRef;
protected year = new Date().getFullYear(); protected year = new Date().getFullYear();

View File

@@ -29,6 +29,8 @@ const RateUrls = {
[DeviceType.SafariExtension]: "https://apps.apple.com/app/bitwarden/id1352778147", [DeviceType.SafariExtension]: "https://apps.apple.com/app/bitwarden/id1352778147",
}; };
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "about-page-v2.component.html", templateUrl: "about-page-v2.component.html",
imports: [ imports: [

View File

@@ -12,6 +12,8 @@ import { PopupFooterComponent } from "../../../../platform/popup/layout/popup-fo
import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component"; import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "export-browser-v2.component.html", templateUrl: "export-browser-v2.component.html",
imports: [ imports: [

View File

@@ -20,6 +20,8 @@ import { PopupFooterComponent } from "../../../../platform/popup/layout/popup-fo
import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component"; import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "import-browser-v2.component.html", templateUrl: "import-browser-v2.component.html",
imports: [ imports: [

View File

@@ -24,6 +24,8 @@ import { PopOutComponent } from "../../../platform/popup/components/pop-out.comp
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component"; import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component"; import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "settings-v2.component.html", templateUrl: "settings-v2.component.html",
imports: [ imports: [

View File

@@ -5,6 +5,8 @@ import { JslibModule } from "@bitwarden/angular/jslib.module";
import { DialogRef, AsyncActionsModule, ButtonModule, DialogModule } from "@bitwarden/components"; import { DialogRef, AsyncActionsModule, ButtonModule, DialogModule } from "@bitwarden/components";
import { ExportComponent } from "@bitwarden/vault-export-ui"; import { ExportComponent } from "@bitwarden/vault-export-ui";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "export-desktop.component.html", templateUrl: "export-desktop.component.html",
imports: [ imports: [

View File

@@ -13,6 +13,8 @@ import {
GeneratorModule, GeneratorModule,
} from "@bitwarden/generator-components"; } from "@bitwarden/generator-components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "credential-generator", selector: "credential-generator",
templateUrl: "credential-generator.component.html", templateUrl: "credential-generator.component.html",

View File

@@ -13,6 +13,8 @@ import { safeProvider } from "@bitwarden/ui-common";
import { DesktopImportMetadataService } from "./desktop-import-metadata.service"; import { DesktopImportMetadataService } from "./desktop-import-metadata.service";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "import-desktop.component.html", templateUrl: "import-desktop.component.html",
imports: [ imports: [

View File

@@ -21,6 +21,8 @@ import { SendApiService } from "@bitwarden/common/tools/send/services/send-api.s
import { SendService } from "@bitwarden/common/tools/send/services/send.service.abstraction"; import { SendService } from "@bitwarden/common/tools/send/services/send.service.abstraction";
import { CalloutModule, DialogService, ToastService } from "@bitwarden/components"; import { CalloutModule, DialogService, ToastService } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-add-edit", selector: "app-send-add-edit",
templateUrl: "add-edit.component.html", templateUrl: "add-edit.component.html",

View File

@@ -35,12 +35,16 @@ enum Action {
const BroadcasterSubscriptionId = "SendComponent"; const BroadcasterSubscriptionId = "SendComponent";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send", selector: "app-send",
templateUrl: "send.component.html", templateUrl: "send.component.html",
imports: [CommonModule, JslibModule, FormsModule, NavComponent, AddEditComponent], imports: [CommonModule, JslibModule, FormsModule, NavComponent, AddEditComponent],
}) })
export class SendComponent extends BaseSendComponent implements OnInit, OnDestroy { export class SendComponent extends BaseSendComponent implements OnInit, OnDestroy {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@ViewChild(AddEditComponent) addEditComponent: AddEditComponent; @ViewChild(AddEditComponent) addEditComponent: AddEditComponent;
sendId: string; sendId: string;

View File

@@ -9,6 +9,8 @@ import {
import { HeaderModule } from "../../layouts/header/header.module"; import { HeaderModule } from "../../layouts/header/header.module";
import { SharedModule } from "../../shared"; import { SharedModule } from "../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "credential-generator", selector: "credential-generator",
templateUrl: "credential-generator.component.html", templateUrl: "credential-generator.component.html",

View File

@@ -15,6 +15,8 @@ import { safeProvider } from "@bitwarden/ui-common";
import { HeaderModule } from "../../layouts/header/header.module"; import { HeaderModule } from "../../layouts/header/header.module";
import { SharedModule } from "../../shared"; import { SharedModule } from "../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "import-web.component.html", templateUrl: "import-web.component.html",
imports: [SharedModule, ImportComponent, HeaderModule], imports: [SharedModule, ImportComponent, HeaderModule],

View File

@@ -27,6 +27,8 @@ import { SharedModule } from "../../shared";
import { ImportCollectionAdminService } from "./import-collection-admin.service"; import { ImportCollectionAdminService } from "./import-collection-admin.service";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "org-import.component.html", templateUrl: "org-import.component.html",
imports: [SharedModule, ImportComponent, HeaderModule], imports: [SharedModule, ImportComponent, HeaderModule],

View File

@@ -10,6 +10,8 @@ import { SendType } from "@bitwarden/common/tools/send/enums/send-type";
import { ButtonModule, DialogService, MenuModule } from "@bitwarden/components"; import { ButtonModule, DialogService, MenuModule } from "@bitwarden/components";
import { DefaultSendFormConfigService, SendAddEditDialogComponent } from "@bitwarden/send-ui"; import { DefaultSendFormConfigService, SendAddEditDialogComponent } from "@bitwarden/send-ui";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-new-send-dropdown", selector: "tools-new-send-dropdown",
templateUrl: "new-send-dropdown.component.html", templateUrl: "new-send-dropdown.component.html",
@@ -21,6 +23,8 @@ import { DefaultSendFormConfigService, SendAddEditDialogComponent } from "@bitwa
*/ */
export class NewSendDropdownComponent { export class NewSendDropdownComponent {
/** If true, the plus icon will be hidden */ /** If true, the plus icon will be hidden */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() hideIcon: boolean = false; @Input() hideIcon: boolean = false;
/** SendType provided for the markup to pass back the selected type of Send */ /** SendType provided for the markup to pass back the selected type of Send */

View File

@@ -25,6 +25,8 @@ import { SendAccessFileComponent } from "./send-access-file.component";
import { SendAccessPasswordComponent } from "./send-access-password.component"; import { SendAccessPasswordComponent } from "./send-access-password.component";
import { SendAccessTextComponent } from "./send-access-text.component"; import { SendAccessTextComponent } from "./send-access-text.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-access", selector: "app-send-access",
templateUrl: "access.component.html", templateUrl: "access.component.html",

View File

@@ -2,6 +2,8 @@ import { Component } from "@angular/core";
import { SharedModule } from "../../../shared"; import { SharedModule } from "../../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-access-explainer", selector: "app-send-access-explainer",
templateUrl: "send-access-explainer.component.html", templateUrl: "send-access-explainer.component.html",

View File

@@ -15,14 +15,22 @@ import { ToastService } from "@bitwarden/components";
import { SharedModule } from "../../../shared"; import { SharedModule } from "../../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-access-file", selector: "app-send-access-file",
templateUrl: "send-access-file.component.html", templateUrl: "send-access-file.component.html",
imports: [SharedModule], imports: [SharedModule],
}) })
export class SendAccessFileComponent { export class SendAccessFileComponent {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() send: SendAccessView; @Input() send: SendAccessView;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() decKey: SymmetricCryptoKey; @Input() decKey: SymmetricCryptoKey;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() accessRequest: SendAccessRequest; @Input() accessRequest: SendAccessRequest;
constructor( constructor(
private i18nService: I18nService, private i18nService: I18nService,

View File

@@ -6,6 +6,8 @@ import { Subject, takeUntil } from "rxjs";
import { SharedModule } from "../../../shared"; import { SharedModule } from "../../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-access-password", selector: "app-send-access-password",
templateUrl: "send-access-password.component.html", templateUrl: "send-access-password.component.html",
@@ -17,7 +19,11 @@ export class SendAccessPasswordComponent implements OnInit, OnDestroy {
password: ["", [Validators.required]], password: ["", [Validators.required]],
}); });
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() loading: boolean; @Input() loading: boolean;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() setPasswordEvent = new EventEmitter<string>(); @Output() setPasswordEvent = new EventEmitter<string>();
constructor(private formBuilder: FormBuilder) {} constructor(private formBuilder: FormBuilder) {}

View File

@@ -10,6 +10,8 @@ import { ToastService } from "@bitwarden/components";
import { SharedModule } from "../../../shared"; import { SharedModule } from "../../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-access-text", selector: "app-send-access-text",
templateUrl: "send-access-text.component.html", templateUrl: "send-access-text.component.html",
@@ -34,6 +36,8 @@ export class SendAccessTextComponent {
return this._send; return this._send;
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() set send(value: SendAccessView) { @Input() set send(value: SendAccessView) {
this._send = value; this._send = value;
this.showText = this.send.text != null ? !this.send.text.hidden : true; this.showText = this.send.text != null ? !this.send.text.hidden : true;

View File

@@ -39,6 +39,8 @@ import { NewSendDropdownComponent } from "./new-send/new-send-dropdown.component
const BroadcasterSubscriptionId = "SendComponent"; const BroadcasterSubscriptionId = "SendComponent";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send", selector: "app-send",
imports: [SharedModule, SearchModule, NoItemsModule, HeaderModule, NewSendDropdownComponent], imports: [SharedModule, SearchModule, NoItemsModule, HeaderModule, NewSendDropdownComponent],

View File

@@ -6,6 +6,8 @@ import { ExportComponent } from "@bitwarden/vault-export-ui";
import { HeaderModule } from "../../layouts/header/header.module"; import { HeaderModule } from "../../layouts/header/header.module";
import { SharedModule } from "../../shared"; import { SharedModule } from "../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "export-web.component.html", templateUrl: "export-web.component.html",
imports: [SharedModule, ExportComponent, HeaderModule], imports: [SharedModule, ExportComponent, HeaderModule],

View File

@@ -7,6 +7,8 @@ import { ExportComponent } from "@bitwarden/vault-export-ui";
import { HeaderModule } from "../../layouts/header/header.module"; import { HeaderModule } from "../../layouts/header/header.module";
import { SharedModule } from "../../shared"; import { SharedModule } from "../../shared";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "org-vault-export.component.html", templateUrl: "org-vault-export.component.html",
imports: [SharedModule, ExportComponent, HeaderModule], imports: [SharedModule, ExportComponent, HeaderModule],

View File

@@ -17,6 +17,8 @@ export type PasswordStrengthScore = 0 | 1 | 2 | 3 | 4;
type SizeTypes = "small" | "default" | "large"; type SizeTypes = "small" | "default" | "large";
type BackgroundTypes = "danger" | "primary" | "success" | "warning"; type BackgroundTypes = "danger" | "primary" | "success" | "warning";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-password-strength", selector: "tools-password-strength",
templateUrl: "password-strength-v2.component.html", templateUrl: "password-strength-v2.component.html",
@@ -27,24 +29,34 @@ export class PasswordStrengthV2Component implements OnChanges {
* The size (height) of the password strength component. * The size (height) of the password strength component.
* Possible values are "default", "small" and "large". * Possible values are "default", "small" and "large".
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() size: SizeTypes = "default"; @Input() size: SizeTypes = "default";
/** /**
* Determines whether to show the password strength score text on the progress bar or not. * Determines whether to show the password strength score text on the progress bar or not.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() showText = false; @Input() showText = false;
/** /**
* Optional email address which can be used as input for the password strength calculation * Optional email address which can be used as input for the password strength calculation
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() email: string; @Input() email: string;
/** /**
* Optional name which can be used as input for the password strength calculation * Optional name which can be used as input for the password strength calculation
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() name: string; @Input() name: string;
/** /**
* Sets the password value and updates the password strength. * Sets the password value and updates the password strength.
* *
* @param value - password provided by the hosting component * @param value - password provided by the hosting component
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() set password(value: string) { @Input() set password(value: string) {
this.updatePasswordStrength(value); this.updatePasswordStrength(value);
} }
@@ -55,11 +67,15 @@ export class PasswordStrengthV2Component implements OnChanges {
* The password strength score represents the strength of a password. * The password strength score represents the strength of a password.
* It is emitted as an event when the password strength changes. * It is emitted as an event when the password strength changes.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() passwordStrengthScore = new EventEmitter<PasswordStrengthScore>(); @Output() passwordStrengthScore = new EventEmitter<PasswordStrengthScore>();
/** /**
* Emits an event with the password score text and color. * Emits an event with the password score text and color.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() passwordScoreTextWithColor = new EventEmitter<PasswordColorText>(); @Output() passwordScoreTextWithColor = new EventEmitter<PasswordColorText>();
passwordScore: PasswordStrengthScore; passwordScore: PasswordStrengthScore;

View File

@@ -56,11 +56,21 @@ interface DatePresetSelectOption {
@Directive() @Directive()
export class AddEditComponent implements OnInit, OnDestroy { export class AddEditComponent implements OnInit, OnDestroy {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() sendId: string; @Input() sendId: string;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() type: SendType; @Input() type: SendType;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() onSavedSend = new EventEmitter<SendView>(); @Output() onSavedSend = new EventEmitter<SendView>();
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() onDeletedSend = new EventEmitter<SendView>(); @Output() onDeletedSend = new EventEmitter<SendView>();
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() onCancelled = new EventEmitter<SendView>(); @Output() onCancelled = new EventEmitter<SendView>();
deletionDatePresets: DatePresetSelectOption[] = [ deletionDatePresets: DatePresetSelectOption[] = [

View File

@@ -38,6 +38,8 @@ import { ImportType } from "../../models";
type ProfileOption = { id: string; name: string }; type ProfileOption = { id: string; name: string };
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "import-chrome", selector: "import-chrome",
templateUrl: "import-chrome.component.html", templateUrl: "import-chrome.component.html",
@@ -70,14 +72,20 @@ export class ImportChromeComponent implements OnInit, OnDestroy {
profileList: ProfileOption[] = []; profileList: ProfileOption[] = [];
format = input.required<ImportType>(); readonly format = input.required<ImportType>();
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
onLoadProfilesFromBrowser: (browser: string) => Promise<ProfileOption[]>; onLoadProfilesFromBrowser: (browser: string) => Promise<ProfileOption[]>;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
onImportFromBrowser: (browser: string, profile: string) => Promise<any[]>; onImportFromBrowser: (browser: string, profile: string) => Promise<any[]>;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() csvDataLoaded = new EventEmitter<string>(); @Output() csvDataLoaded = new EventEmitter<string>();
constructor( constructor(

View File

@@ -12,6 +12,8 @@ import {
IconButtonModule, IconButtonModule,
} from "@bitwarden/components"; } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "file-password-prompt.component.html", templateUrl: "file-password-prompt.component.html",
imports: [ imports: [

View File

@@ -16,6 +16,8 @@ export interface ErrorListItem {
message: string; message: string;
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "./import-error-dialog.component.html", templateUrl: "./import-error-dialog.component.html",
imports: [CommonModule, JslibModule, DialogModule, TableModule, ButtonModule], imports: [CommonModule, JslibModule, DialogModule, TableModule, ButtonModule],

View File

@@ -20,6 +20,8 @@ export interface ResultList {
count: number; count: number;
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "./import-success-dialog.component.html", templateUrl: "./import-success-dialog.component.html",
imports: [CommonModule, JslibModule, DialogModule, TableModule, ButtonModule], imports: [CommonModule, JslibModule, DialogModule, TableModule, ButtonModule],

View File

@@ -12,6 +12,8 @@ import {
IconButtonModule, IconButtonModule,
} from "@bitwarden/components"; } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "sshkey-password-prompt.component.html", templateUrl: "sshkey-password-prompt.component.html",
imports: [ imports: [

View File

@@ -86,6 +86,8 @@ import {
import { ImporterProviders } from "./importer-providers"; import { ImporterProviders } from "./importer-providers";
import { ImportLastPassComponent } from "./lastpass"; import { ImportLastPassComponent } from "./lastpass";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-import", selector: "tools-import",
templateUrl: "import.component.html", templateUrl: "import.component.html",
@@ -131,6 +133,8 @@ export class ImportComponent implements OnInit, OnDestroy, AfterViewInit {
* Enables the hosting control to pass in an organizationId * Enables the hosting control to pass in an organizationId
* If a organizationId is provided, the organization selection is disabled. * If a organizationId is provided, the organization selection is disabled.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() set organizationId(value: OrganizationId | string | undefined) { @Input() set organizationId(value: OrganizationId | string | undefined) {
if (Utils.isNullOrEmpty(value)) { if (Utils.isNullOrEmpty(value)) {
this._organizationId = undefined; this._organizationId = undefined;
@@ -157,9 +161,13 @@ export class ImportComponent implements OnInit, OnDestroy, AfterViewInit {
}); });
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
onLoadProfilesFromBrowser: (browser: string) => Promise<any[]>; onLoadProfilesFromBrowser: (browser: string) => Promise<any[]>;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
onImportFromBrowser: (browser: string, profile: string) => Promise<any[]>; onImportFromBrowser: (browser: string, profile: string) => Promise<any[]>;
@@ -191,15 +199,23 @@ export class ImportComponent implements OnInit, OnDestroy, AfterViewInit {
chromiumLoader: [Loader.file as DataLoader], chromiumLoader: [Loader.file as DataLoader],
}); });
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@ViewChild(BitSubmitDirective) @ViewChild(BitSubmitDirective)
private bitSubmit: BitSubmitDirective; private bitSubmit: BitSubmitDirective;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
formLoading = new EventEmitter<boolean>(); formLoading = new EventEmitter<boolean>();
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
formDisabled = new EventEmitter<boolean>(); formDisabled = new EventEmitter<boolean>();
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
onSuccessfulImport = new EventEmitter<string>(); onSuccessfulImport = new EventEmitter<string>();

View File

@@ -21,6 +21,8 @@ type LastPassMultifactorPromptData = {
variant: LastPassMultifactorPromptVariant; variant: LastPassMultifactorPromptVariant;
}; };
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "lastpass-multifactor-prompt.component.html", templateUrl: "lastpass-multifactor-prompt.component.html",
imports: [ imports: [

View File

@@ -15,6 +15,8 @@ import {
TypographyModule, TypographyModule,
} from "@bitwarden/components"; } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "lastpass-password-prompt.component.html", templateUrl: "lastpass-password-prompt.component.html",
imports: [ imports: [

View File

@@ -25,6 +25,8 @@ import {
import { LastPassDirectImportService } from "./lastpass-direct-import.service"; import { LastPassDirectImportService } from "./lastpass-direct-import.service";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "import-lastpass", selector: "import-lastpass",
templateUrl: "import-lastpass.component.html", templateUrl: "import-lastpass.component.html",
@@ -60,6 +62,8 @@ export class ImportLastPassComponent implements OnInit, OnDestroy {
}), }),
); );
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() csvDataLoaded = new EventEmitter<string>(); @Output() csvDataLoaded = new EventEmitter<string>();
constructor( constructor(

View File

@@ -13,6 +13,8 @@ import { OrganizationId } from "@bitwarden/common/types/guid";
import { CalloutModule } from "@bitwarden/components"; import { CalloutModule } from "@bitwarden/components";
import { ExportFormat } from "@bitwarden/vault-export-core"; import { ExportFormat } from "@bitwarden/vault-export-core";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-export-scope-callout", selector: "tools-export-scope-callout",
templateUrl: "export-scope-callout.component.html", templateUrl: "export-scope-callout.component.html",

View File

@@ -73,6 +73,8 @@ import { EncryptedExportType } from "../enums/encrypted-export-type.enum";
import { ExportScopeCalloutComponent } from "./export-scope-callout.component"; import { ExportScopeCalloutComponent } from "./export-scope-callout.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-export", selector: "tools-export",
templateUrl: "export.component.html", templateUrl: "export.component.html",
@@ -101,6 +103,8 @@ export class ExportComponent implements OnInit, OnDestroy, AfterViewInit {
* Enables the hosting control to pass in an organizationId * Enables the hosting control to pass in an organizationId
* If a organizationId is provided, the organization selection is disabled. * If a organizationId is provided, the organization selection is disabled.
*/ */
// TODO: Fix this the next time the file is edited.
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() set organizationId(value: OrganizationId | string | undefined) { @Input() set organizationId(value: OrganizationId | string | undefined) {
if (Utils.isNullOrEmpty(value)) { if (Utils.isNullOrEmpty(value)) {
this._organizationId$.next(undefined); this._organizationId$.next(undefined);
@@ -158,6 +162,8 @@ export class ExportComponent implements OnInit, OnDestroy, AfterViewInit {
* The hosting control also needs a bitSubmitDirective (on the Submit button) which calls this components {@link submit}-method. * The hosting control also needs a bitSubmitDirective (on the Submit button) which calls this components {@link submit}-method.
* This components formState (loading/disabled) is emitted back up to the hosting component so for example the Submit button can be enabled/disabled and show loading state. * This components formState (loading/disabled) is emitted back up to the hosting component so for example the Submit button can be enabled/disabled and show loading state.
*/ */
// TODO: Fix this the next time the file is edited.
// eslint-disable-next-line @angular-eslint/prefer-signals
@ViewChild(BitSubmitDirective) @ViewChild(BitSubmitDirective)
private bitSubmit: BitSubmitDirective; private bitSubmit: BitSubmitDirective;
@@ -165,6 +171,8 @@ export class ExportComponent implements OnInit, OnDestroy, AfterViewInit {
* Emits true when the BitSubmitDirective({@link bitSubmit} is executing {@link submit} and false when execution has completed. * Emits true when the BitSubmitDirective({@link bitSubmit} is executing {@link submit} and false when execution has completed.
* Example: Used to show the loading state of the submit button present on the hosting component * Example: Used to show the loading state of the submit button present on the hosting component
* */ * */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
formLoading = new EventEmitter<boolean>(); formLoading = new EventEmitter<boolean>();
@@ -172,6 +180,8 @@ export class ExportComponent implements OnInit, OnDestroy, AfterViewInit {
* Emits true when this form gets disabled and false when enabled. * Emits true when this form gets disabled and false when enabled.
* Example: Used to disable the submit button, which is present on the hosting component * Example: Used to disable the submit button, which is present on the hosting component
* */ * */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
formDisabled = new EventEmitter<boolean>(); formDisabled = new EventEmitter<boolean>();
@@ -180,9 +190,13 @@ export class ExportComponent implements OnInit, OnDestroy, AfterViewInit {
* - Emits an undefined when exporting from an individual vault * - Emits an undefined when exporting from an individual vault
* - Emits the organizationId when exporting from an organizational vault * - Emits the organizationId when exporting from an organizational vault
* */ * */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
onSuccessfulExport = new EventEmitter<OrganizationId | undefined>(); onSuccessfulExport = new EventEmitter<OrganizationId | undefined>();
// TODO: Fix this the next time the file is edited.
// eslint-disable-next-line @angular-eslint/prefer-signals
@ViewChild(PasswordStrengthV2Component) passwordStrengthComponent: PasswordStrengthV2Component; @ViewChild(PasswordStrengthV2Component) passwordStrengthComponent: PasswordStrengthV2Component;
encryptedExportType = EncryptedExportType; encryptedExportType = EncryptedExportType;

View File

@@ -19,6 +19,8 @@ import {
} from "@bitwarden/generator-core"; } from "@bitwarden/generator-core";
/** Options group for catchall emails */ /** Options group for catchall emails */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-catchall-settings", selector: "tools-catchall-settings",
templateUrl: "catchall-settings.component.html", templateUrl: "catchall-settings.component.html",
@@ -38,6 +40,8 @@ export class CatchallSettingsComponent implements OnInit, OnDestroy, OnChanges {
* @remarks this is initialized to null but since it's a required input it'll * @remarks this is initialized to null but since it's a required input it'll
* never have that value in practice. * never have that value in practice.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account!: Account; account!: Account;
@@ -48,6 +52,8 @@ export class CatchallSettingsComponent implements OnInit, OnDestroy, OnChanges {
* to receive live settings updates including the initial update, * to receive live settings updates including the initial update,
* use `CredentialGeneratorService.settings(...)` instead. * use `CredentialGeneratorService.settings(...)` instead.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onUpdated = new EventEmitter<CatchallGenerationOptions>(); readonly onUpdated = new EventEmitter<CatchallGenerationOptions>();

View File

@@ -27,6 +27,8 @@ import { GeneratorHistoryService } from "@bitwarden/generator-history";
import { CredentialGeneratorHistoryComponent as CredentialGeneratorHistoryToolsComponent } from "./credential-generator-history.component"; import { CredentialGeneratorHistoryComponent as CredentialGeneratorHistoryToolsComponent } from "./credential-generator-history.component";
import { EmptyCredentialHistoryComponent } from "./empty-credential-history.component"; import { EmptyCredentialHistoryComponent } from "./empty-credential-history.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "credential-generator-history-dialog.component.html", templateUrl: "credential-generator-history-dialog.component.html",
imports: [ imports: [
@@ -49,6 +51,8 @@ export class CredentialGeneratorHistoryDialogComponent implements OnChanges, OnI
private logService: LogService, private logService: LogService,
) {} ) {}
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
account: Account | null; account: Account | null;
@@ -59,6 +63,8 @@ export class CredentialGeneratorHistoryDialogComponent implements OnChanges, OnI
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;

View File

@@ -26,6 +26,8 @@ import { GeneratedCredential, GeneratorHistoryService } from "@bitwarden/generat
import { GeneratorModule } from "./generator.module"; import { GeneratorModule } from "./generator.module";
import { translate } from "./util"; import { translate } from "./util";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "bit-credential-generator-history", selector: "bit-credential-generator-history",
templateUrl: "credential-generator-history.component.html", templateUrl: "credential-generator-history.component.html",
@@ -50,6 +52,8 @@ export class CredentialGeneratorHistoryComponent implements OnChanges, OnInit, O
private logService: LogService, private logService: LogService,
) {} ) {}
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account: Account; account: Account;
@@ -60,6 +64,8 @@ export class CredentialGeneratorHistoryComponent implements OnChanges, OnInit, O
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;

View File

@@ -64,6 +64,8 @@ const IDENTIFIER = "identifier";
const FORWARDER = "forwarder"; const FORWARDER = "forwarder";
const NONE_SELECTED = "none"; const NONE_SELECTED = "none";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-credential-generator", selector: "tools-credential-generator",
templateUrl: "credential-generator.component.html", templateUrl: "credential-generator.component.html",
@@ -90,6 +92,8 @@ export class CredentialGeneratorComponent implements OnInit, OnChanges, OnDestro
/** Binds the component to a specific user's settings. When this input is not provided, /** Binds the component to a specific user's settings. When this input is not provided,
* the form binds to the active user * the form binds to the active user
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
account: Account | null = null; account: Account | null = null;
@@ -98,6 +102,8 @@ export class CredentialGeneratorComponent implements OnInit, OnChanges, OnDestro
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;
@@ -123,10 +129,14 @@ export class CredentialGeneratorComponent implements OnInit, OnChanges, OnDestro
/** /**
* The website associated with the credential generation request. * The website associated with the credential generation request.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
website: string | null = null; website: string | null = null;
/** Emits credentials created from a generation request. */ /** Emits credentials created from a generation request. */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onGenerated = new EventEmitter<GeneratedCredential>(); readonly onGenerated = new EventEmitter<GeneratedCredential>();

View File

@@ -4,6 +4,8 @@ import { JslibModule } from "@bitwarden/angular/jslib.module";
import { NoCredentialsIcon } from "@bitwarden/assets/svg"; import { NoCredentialsIcon } from "@bitwarden/assets/svg";
import { NoItemsModule } from "@bitwarden/components"; import { NoItemsModule } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "bit-empty-credential-history", selector: "bit-empty-credential-history",
templateUrl: "empty-credential-history.component.html", templateUrl: "empty-credential-history.component.html",

View File

@@ -26,6 +26,8 @@ const Controls = Object.freeze({
}); });
/** Options group for forwarder integrations */ /** Options group for forwarder integrations */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-forwarder-settings", selector: "tools-forwarder-settings",
templateUrl: "forwarder-settings.component.html", templateUrl: "forwarder-settings.component.html",
@@ -45,11 +47,15 @@ export class ForwarderSettingsComponent implements OnInit, OnChanges, OnDestroy
* @remarks this is initialized to null but since it's a required input it'll * @remarks this is initialized to null but since it's a required input it'll
* never have that value in practice. * never have that value in practice.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account: Account = null!; account: Account = null!;
protected account$ = new ReplaySubject<Account>(1); protected account$ = new ReplaySubject<Account>(1);
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
forwarder: VendorId = null!; forwarder: VendorId = null!;
@@ -58,6 +64,8 @@ export class ForwarderSettingsComponent implements OnInit, OnChanges, OnDestroy
* to receive live settings updates including the initial update, * to receive live settings updates including the initial update,
* use `CredentialGeneratorService.settings$(...)` instead. * use `CredentialGeneratorService.settings$(...)` instead.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onUpdated = new EventEmitter<unknown>(); readonly onUpdated = new EventEmitter<unknown>();

View File

@@ -10,6 +10,8 @@ import { UserId } from "@bitwarden/common/types/guid";
import { TypographyModule } from "@bitwarden/components"; import { TypographyModule } from "@bitwarden/components";
import { I18nPipe } from "@bitwarden/ui-common"; import { I18nPipe } from "@bitwarden/ui-common";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "nudge-generator-spotlight", selector: "nudge-generator-spotlight",
templateUrl: "nudge-generator-spotlight.component.html", templateUrl: "nudge-generator-spotlight.component.html",

View File

@@ -34,6 +34,8 @@ const Controls = Object.freeze({
}); });
/** Options group for passphrases */ /** Options group for passphrases */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-passphrase-settings", selector: "tools-passphrase-settings",
templateUrl: "passphrase-settings.component.html", templateUrl: "passphrase-settings.component.html",
@@ -57,6 +59,8 @@ export class PassphraseSettingsComponent implements OnInit, OnChanges, OnDestroy
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;
@@ -67,6 +71,8 @@ export class PassphraseSettingsComponent implements OnInit, OnChanges, OnDestroy
* @remarks this is initialized to null but since it's a required input it'll * @remarks this is initialized to null but since it's a required input it'll
* never have that value in practice. * never have that value in practice.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account: Account = null!; account: Account = null!;
@@ -79,10 +85,14 @@ export class PassphraseSettingsComponent implements OnInit, OnChanges, OnDestroy
} }
/** When `true`, an options header is displayed by the component. Otherwise, the header is hidden. */ /** When `true`, an options header is displayed by the component. Otherwise, the header is hidden. */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
showHeader: boolean = true; showHeader: boolean = true;
/** Removes bottom margin from `bit-section` */ /** Removes bottom margin from `bit-section` */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ transform: coerceBooleanProperty }) disableMargin = false; @Input({ transform: coerceBooleanProperty }) disableMargin = false;
/** Emits settings updates and completes if the settings become unavailable. /** Emits settings updates and completes if the settings become unavailable.
@@ -90,6 +100,8 @@ export class PassphraseSettingsComponent implements OnInit, OnChanges, OnDestroy
* to receive live settings updates including the initial update, * to receive live settings updates including the initial update,
* use {@link CredentialGeneratorService.settings} instead. * use {@link CredentialGeneratorService.settings} instead.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onUpdated = new EventEmitter<PassphraseGenerationOptions>(); readonly onUpdated = new EventEmitter<PassphraseGenerationOptions>();

View File

@@ -53,6 +53,8 @@ import { GeneratorHistoryService } from "@bitwarden/generator-history";
import { toAlgorithmInfo, translate } from "./util"; import { toAlgorithmInfo, translate } from "./util";
/** Options group for passwords */ /** Options group for passwords */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-password-generator", selector: "tools-password-generator",
templateUrl: "password-generator.component.html", templateUrl: "password-generator.component.html",
@@ -76,6 +78,8 @@ export class PasswordGeneratorComponent implements OnInit, OnChanges, OnDestroy
/** Binds the component to a specific user's settings. When this input is not provided, /** Binds the component to a specific user's settings. When this input is not provided,
* the form binds to the active user * the form binds to the active user
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
account: Account | null = null; account: Account | null = null;
@@ -86,6 +90,8 @@ export class PasswordGeneratorComponent implements OnInit, OnChanges, OnDestroy
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;
@@ -110,10 +116,14 @@ export class PasswordGeneratorComponent implements OnInit, OnChanges, OnDestroy
} }
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
profile: GeneratorProfile = Profile.account; profile: GeneratorProfile = Profile.account;
/** Removes bottom margin, passed to downstream components */ /** Removes bottom margin, passed to downstream components */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ transform: coerceBooleanProperty }) @Input({ transform: coerceBooleanProperty })
disableMargin = false; disableMargin = false;
@@ -154,10 +164,14 @@ export class PasswordGeneratorComponent implements OnInit, OnChanges, OnDestroy
} }
/** Emits credentials created from a generation request. */ /** Emits credentials created from a generation request. */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onGenerated = new EventEmitter<GeneratedCredential>(); readonly onGenerated = new EventEmitter<GeneratedCredential>();
/** emits algorithm info when the selected algorithm changes */ /** emits algorithm info when the selected algorithm changes */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onAlgorithm = new EventEmitter<AlgorithmInfo>(); readonly onAlgorithm = new EventEmitter<AlgorithmInfo>();

View File

@@ -34,6 +34,8 @@ const Controls = Object.freeze({
}); });
/** Options group for passwords */ /** Options group for passwords */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-password-settings", selector: "tools-password-settings",
templateUrl: "password-settings.component.html", templateUrl: "password-settings.component.html",
@@ -55,6 +57,8 @@ export class PasswordSettingsComponent implements OnInit, OnChanges, OnDestroy {
* @remarks this is initialized to null but since it's a required input it'll * @remarks this is initialized to null but since it's a required input it'll
* never have that value in practice. * never have that value in practice.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account: Account = null!; account: Account = null!;
@@ -67,14 +71,20 @@ export class PasswordSettingsComponent implements OnInit, OnChanges, OnDestroy {
} }
/** When `true`, an options header is displayed by the component. Otherwise, the header is hidden. */ /** When `true`, an options header is displayed by the component. Otherwise, the header is hidden. */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
showHeader: boolean = true; showHeader: boolean = true;
/** Number of milliseconds to wait before accepting user input. */ /** Number of milliseconds to wait before accepting user input. */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
waitMs: number = 100; waitMs: number = 100;
/** Removes bottom margin from `bit-section` */ /** Removes bottom margin from `bit-section` */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ transform: coerceBooleanProperty }) disableMargin = false; @Input({ transform: coerceBooleanProperty }) disableMargin = false;
/** Emits settings updates and completes if the settings become unavailable. /** Emits settings updates and completes if the settings become unavailable.
@@ -82,6 +92,8 @@ export class PasswordSettingsComponent implements OnInit, OnChanges, OnDestroy {
* to receive live settings updates including the initial update, * to receive live settings updates including the initial update,
* use `CredentialGeneratorService.settings(...)` instead. * use `CredentialGeneratorService.settings(...)` instead.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onUpdated = new EventEmitter<PasswordGenerationOptions>(); readonly onUpdated = new EventEmitter<PasswordGenerationOptions>();

View File

@@ -19,6 +19,8 @@ import {
} from "@bitwarden/generator-core"; } from "@bitwarden/generator-core";
/** Options group for plus-addressed emails */ /** Options group for plus-addressed emails */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-subaddress-settings", selector: "tools-subaddress-settings",
templateUrl: "subaddress-settings.component.html", templateUrl: "subaddress-settings.component.html",
@@ -38,6 +40,8 @@ export class SubaddressSettingsComponent implements OnInit, OnChanges, OnDestroy
* @remarks this is initialized to null but since it's a required input it'll * @remarks this is initialized to null but since it's a required input it'll
* never have that value in practice. * never have that value in practice.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account: Account = null!; account: Account = null!;
@@ -54,6 +58,8 @@ export class SubaddressSettingsComponent implements OnInit, OnChanges, OnDestroy
* to receive live settings updates including the initial update, * to receive live settings updates including the initial update,
* use `CredentialGeneratorService.settings(...)` instead. * use `CredentialGeneratorService.settings(...)` instead.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onUpdated = new EventEmitter<SubaddressGenerationOptions>(); readonly onUpdated = new EventEmitter<SubaddressGenerationOptions>();

View File

@@ -64,6 +64,8 @@ const FORWARDER = "forwarder";
const NONE_SELECTED = "none"; const NONE_SELECTED = "none";
/** Component that generates usernames and emails */ /** Component that generates usernames and emails */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-username-generator", selector: "tools-username-generator",
templateUrl: "username-generator.component.html", templateUrl: "username-generator.component.html",
@@ -95,6 +97,8 @@ export class UsernameGeneratorComponent implements OnInit, OnChanges, OnDestroy
/** Binds the component to a specific user's settings. When this input is not provided, /** Binds the component to a specific user's settings. When this input is not provided,
* the form binds to the active user * the form binds to the active user
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
account: Account | null = null; account: Account | null = null;
@@ -105,6 +109,8 @@ export class UsernameGeneratorComponent implements OnInit, OnChanges, OnDestroy
* *
* @warning this may reveal sensitive information in plaintext. * @warning this may reveal sensitive information in plaintext.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
debug: boolean = false; debug: boolean = false;
@@ -132,18 +138,26 @@ export class UsernameGeneratorComponent implements OnInit, OnChanges, OnDestroy
/** /**
* The website associated with the credential generation request. * The website associated with the credential generation request.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
website: string | null = null; website: string | null = null;
/** Emits credentials created from a generation request. */ /** Emits credentials created from a generation request. */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onGenerated = new EventEmitter<GeneratedCredential>(); readonly onGenerated = new EventEmitter<GeneratedCredential>();
/** emits algorithm info when the selected algorithm changes */ /** emits algorithm info when the selected algorithm changes */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onAlgorithm = new EventEmitter<AlgorithmInfo | null>(); readonly onAlgorithm = new EventEmitter<AlgorithmInfo | null>();
/** Removes bottom margin from internal elements */ /** Removes bottom margin from internal elements */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ transform: coerceBooleanProperty }) disableMargin = false; @Input({ transform: coerceBooleanProperty }) disableMargin = false;
/** Tracks the selected generation algorithm */ /** Tracks the selected generation algorithm */

View File

@@ -19,6 +19,8 @@ import {
} from "@bitwarden/generator-core"; } from "@bitwarden/generator-core";
/** Options group for usernames */ /** Options group for usernames */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-username-settings", selector: "tools-username-settings",
templateUrl: "username-settings.component.html", templateUrl: "username-settings.component.html",
@@ -38,6 +40,8 @@ export class UsernameSettingsComponent implements OnInit, OnChanges, OnDestroy {
* @remarks this is initialized to null but since it's a required input it'll * @remarks this is initialized to null but since it's a required input it'll
* never have that value in practice. * never have that value in practice.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
account: Account = null!; account: Account = null!;
@@ -54,6 +58,8 @@ export class UsernameSettingsComponent implements OnInit, OnChanges, OnDestroy {
* to receive live settings updates including the initial update, * to receive live settings updates including the initial update,
* use `CredentialGeneratorService.settings(...)` instead. * use `CredentialGeneratorService.settings(...)` instead.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() @Output()
readonly onUpdated = new EventEmitter<EffUsernameGenerationOptions>(); readonly onUpdated = new EventEmitter<EffUsernameGenerationOptions>();

View File

@@ -52,6 +52,8 @@ export enum SendItemDialogResult {
/** /**
* Component for adding or editing a send item. * Component for adding or editing a send item.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
templateUrl: "send-add-edit-dialog.component.html", templateUrl: "send-add-edit-dialog.component.html",
imports: [ imports: [

View File

@@ -10,13 +10,19 @@ import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abs
import { SendType } from "@bitwarden/common/tools/send/enums/send-type"; import { SendType } from "@bitwarden/common/tools/send/enums/send-type";
import { ButtonModule, ButtonType, MenuModule } from "@bitwarden/components"; import { ButtonModule, ButtonType, MenuModule } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-new-send-dropdown", selector: "tools-new-send-dropdown",
templateUrl: "new-send-dropdown.component.html", templateUrl: "new-send-dropdown.component.html",
imports: [JslibModule, CommonModule, ButtonModule, RouterLink, MenuModule, PremiumBadgeComponent], imports: [JslibModule, CommonModule, ButtonModule, RouterLink, MenuModule, PremiumBadgeComponent],
}) })
export class NewSendDropdownComponent implements OnInit { export class NewSendDropdownComponent implements OnInit {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() hideIcon: boolean = false; @Input() hideIcon: boolean = false;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() buttonType: ButtonType = "primary"; @Input() buttonType: ButtonType = "primary";
sendType = SendType; sendType = SendType;

View File

@@ -33,6 +33,8 @@ import { CredentialGeneratorService, GenerateRequest, Type } from "@bitwarden/ge
import { SendFormConfig } from "../../abstractions/send-form-config.service"; import { SendFormConfig } from "../../abstractions/send-form-config.service";
import { SendFormContainer } from "../../send-form-container"; import { SendFormContainer } from "../../send-form-container";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-send-options", selector: "tools-send-options",
templateUrl: "./send-options.component.html", templateUrl: "./send-options.component.html",
@@ -52,8 +54,12 @@ import { SendFormContainer } from "../../send-form-container";
], ],
}) })
export class SendOptionsComponent implements OnInit { export class SendOptionsComponent implements OnInit {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) @Input({ required: true })
config: SendFormConfig; config: SendFormConfig;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
originalSendView: SendView; originalSendView: SendView;
disableHideEmail = false; disableHideEmail = false;

View File

@@ -47,6 +47,8 @@ export interface DatePresetSelectOption {
value: DatePreset | string; value: DatePreset | string;
} }
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-send-details", selector: "tools-send-details",
templateUrl: "./send-details.component.html", templateUrl: "./send-details.component.html",
@@ -68,7 +70,11 @@ export interface DatePresetSelectOption {
], ],
}) })
export class SendDetailsComponent implements OnInit { export class SendDetailsComponent implements OnInit {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() config: SendFormConfig; @Input() config: SendFormConfig;
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() originalSendView?: SendView; @Input() originalSendView?: SendView;
FileSendType = SendType.File; FileSendType = SendType.File;

View File

@@ -17,6 +17,8 @@ import {
import { SendFormConfig } from "../../abstractions/send-form-config.service"; import { SendFormConfig } from "../../abstractions/send-form-config.service";
import { SendFormContainer } from "../../send-form-container"; import { SendFormContainer } from "../../send-form-container";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-send-file-details", selector: "tools-send-file-details",
templateUrl: "./send-file-details.component.html", templateUrl: "./send-file-details.component.html",
@@ -32,8 +34,8 @@ import { SendFormContainer } from "../../send-form-container";
], ],
}) })
export class SendFileDetailsComponent implements OnInit { export class SendFileDetailsComponent implements OnInit {
config = input.required<SendFormConfig>(); readonly config = input.required<SendFormConfig>();
originalSendView = input<SendView>(); readonly originalSendView = input<SendView>();
sendFileDetailsForm = this.formBuilder.group({ sendFileDetailsForm = this.formBuilder.group({
file: this.formBuilder.control<SendFileView | null>(null, Validators.required), file: this.formBuilder.control<SendFileView | null>(null, Validators.required),

View File

@@ -10,6 +10,8 @@ import { CheckboxModule, FormFieldModule, SectionComponent } from "@bitwarden/co
import { SendFormConfig } from "../../abstractions/send-form-config.service"; import { SendFormConfig } from "../../abstractions/send-form-config.service";
import { SendFormContainer } from "../../send-form-container"; import { SendFormContainer } from "../../send-form-container";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-send-text-details", selector: "tools-send-text-details",
templateUrl: "./send-text-details.component.html", templateUrl: "./send-text-details.component.html",
@@ -23,8 +25,8 @@ import { SendFormContainer } from "../../send-form-container";
], ],
}) })
export class SendTextDetailsComponent implements OnInit { export class SendTextDetailsComponent implements OnInit {
config = input.required<SendFormConfig>(); readonly config = input.required<SendFormConfig>();
originalSendView = input<SendView>(); readonly originalSendView = input<SendView>();
sendTextDetailsForm = this.formBuilder.group({ sendTextDetailsForm = this.formBuilder.group({
text: new FormControl("", Validators.required), text: new FormControl("", Validators.required),

View File

@@ -38,6 +38,8 @@ import { SendForm, SendFormContainer } from "../send-form-container";
import { SendDetailsComponent } from "./send-details/send-details.component"; import { SendDetailsComponent } from "./send-details/send-details.component";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "tools-send-form", selector: "tools-send-form",
templateUrl: "./send-form.component.html", templateUrl: "./send-form.component.html",
@@ -59,6 +61,8 @@ import { SendDetailsComponent } from "./send-details/send-details.component";
], ],
}) })
export class SendFormComponent implements AfterViewInit, OnInit, OnChanges, SendFormContainer { export class SendFormComponent implements AfterViewInit, OnInit, OnChanges, SendFormContainer {
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@ViewChild(BitSubmitDirective) @ViewChild(BitSubmitDirective)
private bitSubmit: BitSubmitDirective; private bitSubmit: BitSubmitDirective;
private destroyRef = inject(DestroyRef); private destroyRef = inject(DestroyRef);
@@ -68,27 +72,37 @@ export class SendFormComponent implements AfterViewInit, OnInit, OnChanges, Send
/** /**
* The form ID to use for the form. Used to connect it to a submit button. * The form ID to use for the form. Used to connect it to a submit button.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) formId: string; @Input({ required: true }) formId: string;
/** /**
* The configuration for the add/edit form. Used to determine which controls are shown and what values are available. * The configuration for the add/edit form. Used to determine which controls are shown and what values are available.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input({ required: true }) config: SendFormConfig; @Input({ required: true }) config: SendFormConfig;
/** /**
* Optional submit button that will be disabled or marked as loading when the form is submitting. * Optional submit button that will be disabled or marked as loading when the form is submitting.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
submitBtn?: ButtonComponent; submitBtn?: ButtonComponent;
/** /**
* Event emitted when the send is created successfully. * Event emitted when the send is created successfully.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() onSendCreated = new EventEmitter<SendView>(); @Output() onSendCreated = new EventEmitter<SendView>();
/** /**
* Event emitted when the send is updated successfully. * Event emitted when the send is updated successfully.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-output-emitter-ref
@Output() onSendUpdated = new EventEmitter<SendView>(); @Output() onSendUpdated = new EventEmitter<SendView>();
/** /**

View File

@@ -10,6 +10,8 @@ import { ChipSelectComponent } from "@bitwarden/components";
import { SendListFiltersService } from "../services/send-list-filters.service"; import { SendListFiltersService } from "../services/send-list-filters.service";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
selector: "app-send-list-filters", selector: "app-send-list-filters",
templateUrl: "./send-list-filters.component.html", templateUrl: "./send-list-filters.component.html",

View File

@@ -25,6 +25,8 @@ import {
TypographyModule, TypographyModule,
} from "@bitwarden/components"; } from "@bitwarden/components";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
imports: [ imports: [
CommonModule, CommonModule,
@@ -46,9 +48,13 @@ export class SendListItemsContainerComponent {
/** /**
* The list of sends to display. * The list of sends to display.
*/ */
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
sends: SendView[] = []; sends: SendView[] = [];
// FIXME(https://bitwarden.atlassian.net/browse/CL-903): Migrate to Signals
// eslint-disable-next-line @angular-eslint/prefer-signals
@Input() @Input()
headerText: string; headerText: string;

View File

@@ -11,6 +11,8 @@ import { SendItemsService } from "../services/send-items.service";
const SearchTextDebounceInterval = 200; const SearchTextDebounceInterval = 200;
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({ @Component({
imports: [CommonModule, SearchModule, JslibModule, FormsModule], imports: [CommonModule, SearchModule, JslibModule, FormsModule],
selector: "tools-send-search", selector: "tools-send-search",