From 37248340bc1624380232d85c5a10bae4cb2ffdef Mon Sep 17 00:00:00 2001 From: John Harrington <84741727+harr1424@users.noreply.github.com> Date: Tue, 19 Aug 2025 08:39:46 -0700 Subject: [PATCH] Implemented autofill match logic for duplicate detection, UI controls & output, and test coverage --- ...e-duplicate-warnings-dialog.component.html | 28 ++++++ .../de-duplicate-warnings-dialog.component.ts | 37 ++++++++ .../de-duplicate/de-duplicate.component.html | 2 +- .../de-duplicate/de-duplicate.component.ts | 51 ++++++----- .../duplicate-review-dialog.component.html | 7 +- .../vault/services/de-duplicate.service.ts | 86 +++++++++---------- apps/web/src/locales/en/messages.json | 16 ++-- 7 files changed, 149 insertions(+), 78 deletions(-) create mode 100644 apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.html create mode 100644 apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.ts diff --git a/apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.html b/apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.html new file mode 100644 index 00000000000..db9546993f7 --- /dev/null +++ b/apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.html @@ -0,0 +1,28 @@ + + + + {{ data.title }} + +
+ +
{{ s.title }}
+
    +
  • {{ item }}
  • +
+
{{ s.help }}
+
+
+
+ + + + +
diff --git a/apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.ts b/apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.ts new file mode 100644 index 00000000000..90a218633e9 --- /dev/null +++ b/apps/web/src/app/tools/de-duplicate/de-duplicate-warnings-dialog.component.ts @@ -0,0 +1,37 @@ +import { CommonModule } from "@angular/common"; +import { Component, Inject } from "@angular/core"; + +import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; +import { + ButtonModule, + DialogModule, + DialogRef, + DIALOG_DATA, + DialogService, +} from "@bitwarden/components"; + +@Component({ + selector: "app-de-duplicate-warnings-dialog", + standalone: true, + imports: [CommonModule, DialogModule, ButtonModule], + templateUrl: "./de-duplicate-warnings-dialog.component.html", +}) +export class DeDuplicateWarningsDialogComponent { + okText: string; + + constructor( + public dialogRef: DialogRef, + @Inject(DIALOG_DATA) + public data: { title: string; sections: { title: string; items: string[]; help?: string }[] }, + private i18nService: I18nService, + ) { + this.okText = this.i18nService.t("ok"); + } + + static open( + dialogService: DialogService, + data: { title: string; sections: { title: string; items: string[]; help?: string }[] }, + ) { + return dialogService.open(DeDuplicateWarningsDialogComponent, { data }); + } +} diff --git a/apps/web/src/app/tools/de-duplicate/de-duplicate.component.html b/apps/web/src/app/tools/de-duplicate/de-duplicate.component.html index c3b38a65882..df9fcd24962 100644 --- a/apps/web/src/app/tools/de-duplicate/de-duplicate.component.html +++ b/apps/web/src/app/tools/de-duplicate/de-duplicate.component.html @@ -54,7 +54,7 @@