[AC-1266] Enums filename conventions (#5140)
* refactor: update clientType enum
* refactor: update deviceType filename
* refactor: update encryptedExportType filename
* refactor: update encryptionType filename
* refactor: update eventType filename
* refactor: update fieldType filename
* refactor: update fileUploadType filename
* refactor: update hashPurpose filename
* refactor: update htmlStorageLocation filename
* refactor: update kdfType filename
* refactor: update keySuffixOptions filename
* refactor: update linkedIdType filename
* refactor: update logLevelType filename
* refactor: update nativeMessagingVersion filename
* refactor: update notificationType filename
* refactor: update productType filename
* refactor: update secureNoteType filename
* refactor: update stateVersion filename
* refactor: update storageLocation filename
* refactor: update themeType filename
* refactor: update uriMatchType filename
* fix: update kdfType classes missed in initial pass, refs AC-1266
* fix: missing import update for device-type
* refactor: add barrel file for enums and update pathed import statements, refs AC-1266
* fix: incorrect import statements for web, refs AC-1266
* fix: missed import statement updates (browser), refs AC-1266
* fix: missed import statement changes (cli), refs AC-1266
* fix: missed import statement changes (desktop), refs AC-1266
* fix: prettier, refs AC-1266
* refactor: (libs) update relative paths to use barrel file, refs AC-1266
* fix: missed find/replace import statements for SecureNoteType, refs AC-1266
* refactor: apply .enum suffix to enums folder and modify leftover relative paths, refs AC-1266
* fix: find/replace errors for native-messaging-version, refs AC-1266
2023-04-05 05:42:21 +02:00
|
|
|
import { LinkedIdType } from "../enums";
|
2023-01-31 22:08:37 +01:00
|
|
|
import { ItemView } from "../vault/models/view/item.view";
|
2021-11-02 23:03:37 +01:00
|
|
|
|
|
|
|
export class LinkedMetadata {
|
|
|
|
constructor(readonly propertyKey: string, private readonly _i18nKey?: string) {}
|
|
|
|
|
|
|
|
get i18nKey() {
|
|
|
|
return this._i18nKey ?? this.propertyKey;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A decorator used to set metadata used by Linked custom fields. Apply it to a class property or getter to make it
|
|
|
|
* available as a Linked custom field option.
|
|
|
|
* @param id - A unique value that is saved in the Field model. It is used to look up the decorated class property.
|
|
|
|
* @param i18nKey - The i18n key used to describe the decorated class property in the UI. If it is null, then the name
|
|
|
|
* of the class property will be used as the i18n key.
|
|
|
|
*/
|
|
|
|
export function linkedFieldOption(id: LinkedIdType, i18nKey?: string) {
|
|
|
|
return (prototype: ItemView, propertyKey: string) => {
|
|
|
|
if (prototype.linkedFieldOptions == null) {
|
|
|
|
prototype.linkedFieldOptions = new Map<LinkedIdType, LinkedMetadata>();
|
|
|
|
}
|
|
|
|
|
|
|
|
prototype.linkedFieldOptions.set(id, new LinkedMetadata(propertyKey, i18nKey));
|
|
|
|
};
|
|
|
|
}
|