diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index 8a8e4a41cc8..587f50fb007 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -269,6 +269,10 @@ import { } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; import { TotpService as TotpServiceAbstraction } from "@bitwarden/common/vault/abstractions/totp.service"; import { VaultSettingsService as VaultSettingsServiceAbstraction } from "@bitwarden/common/vault/abstractions/vault-settings/vault-settings.service"; +import { + DefaultVaultFilterMetadataService, + VaultFilterMetadataService, +} from "@bitwarden/common/vault/filtering/vault-filter-metadata.service"; import { DefaultFilterService, FilterService } from "@bitwarden/common/vault/search/filter.service"; import { SavedFiltersService, @@ -1494,6 +1498,11 @@ const safeProviders: SafeProvider[] = [ useClass: DefaultSavedFiltersService, deps: [SingleUserStateProvider, EncryptService, KeyService], }), + safeProvider({ + provide: VaultFilterMetadataService, + useClass: DefaultVaultFilterMetadataService, + deps: [], + }), ]; @NgModule({ diff --git a/libs/common/src/vault/filtering/vault-filter-metadata.service.ts b/libs/common/src/vault/filtering/vault-filter-metadata.service.ts index c8eb723e7b6..c071ef998f9 100644 --- a/libs/common/src/vault/filtering/vault-filter-metadata.service.ts +++ b/libs/common/src/vault/filtering/vault-filter-metadata.service.ts @@ -1,4 +1,4 @@ -import { map } from "rxjs"; +import { OperatorFunction, map } from "rxjs"; import { CipherType, FieldType, LinkedIdType } from "../enums"; import { CipherView } from "../models/view/cipher.view"; @@ -30,7 +30,11 @@ function metaDataKeyEqual(a: T, b: T) { } } -export class VaultFilterMetadataService { +export abstract class VaultFilterMetadataService { + abstract collectMetadata(): OperatorFunction; +} + +export class DefaultVaultFilterMetadataService implements VaultFilterMetadataService { collectMetadata() { const setOrIncrement = (map: Map, key: T) => { const entry = Array.from(map.entries()).find(([k]) => metaDataKeyEqual(key, k)); diff --git a/libs/vault/src/cipher-form/components/custom-fields/add-edit-custom-field-dialog/add-edit-custom-field-dialog.component.html b/libs/vault/src/cipher-form/components/custom-fields/add-edit-custom-field-dialog/add-edit-custom-field-dialog.component.html index 1ad42f95ec2..936e8a29e0a 100644 --- a/libs/vault/src/cipher-form/components/custom-fields/add-edit-custom-field-dialog/add-edit-custom-field-dialog.component.html +++ b/libs/vault/src/cipher-form/components/custom-fields/add-edit-custom-field-dialog/add-edit-custom-field-dialog.component.html @@ -1,10 +1,39 @@
- + - {{ (variant === "add" ? "addField" : "editField") | i18n }} + {{ "addField" | i18n }}
- +
+ + New + Existing + +
+ + + + + {{ field.name }}:{{ field.type }}({{ field.count }}) + + + + + {{ "fieldType" | i18n }} + + {{ "fieldLabel" | i18n }} + + + {{ "linkedLabelHelpText" | i18n }} + + +
+
+ + +
+
+ + + {{ "editField" | i18n }} + +
{{ "fieldLabel" | i18n }} @@ -28,14 +79,13 @@