mirror of
https://github.com/bitwarden/browser
synced 2025-12-21 02:33:46 +00:00
* 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
149 lines
3.9 KiB
TypeScript
149 lines
3.9 KiB
TypeScript
import { Jsonify } from "type-fest";
|
|
|
|
import { IdentityLinkedId as LinkedId } from "../../../enums";
|
|
import { linkedFieldOption } from "../../../misc/linkedFieldOption.decorator";
|
|
import { Utils } from "../../../misc/utils";
|
|
|
|
import { ItemView } from "./item.view";
|
|
|
|
export class IdentityView extends ItemView {
|
|
@linkedFieldOption(LinkedId.Title)
|
|
title: string = null;
|
|
@linkedFieldOption(LinkedId.MiddleName)
|
|
middleName: string = null;
|
|
@linkedFieldOption(LinkedId.Address1)
|
|
address1: string = null;
|
|
@linkedFieldOption(LinkedId.Address2)
|
|
address2: string = null;
|
|
@linkedFieldOption(LinkedId.Address3)
|
|
address3: string = null;
|
|
@linkedFieldOption(LinkedId.City, "cityTown")
|
|
city: string = null;
|
|
@linkedFieldOption(LinkedId.State, "stateProvince")
|
|
state: string = null;
|
|
@linkedFieldOption(LinkedId.PostalCode, "zipPostalCode")
|
|
postalCode: string = null;
|
|
@linkedFieldOption(LinkedId.Country)
|
|
country: string = null;
|
|
@linkedFieldOption(LinkedId.Company)
|
|
company: string = null;
|
|
@linkedFieldOption(LinkedId.Email)
|
|
email: string = null;
|
|
@linkedFieldOption(LinkedId.Phone)
|
|
phone: string = null;
|
|
@linkedFieldOption(LinkedId.Ssn)
|
|
ssn: string = null;
|
|
@linkedFieldOption(LinkedId.Username)
|
|
username: string = null;
|
|
@linkedFieldOption(LinkedId.PassportNumber)
|
|
passportNumber: string = null;
|
|
@linkedFieldOption(LinkedId.LicenseNumber)
|
|
licenseNumber: string = null;
|
|
|
|
private _firstName: string = null;
|
|
private _lastName: string = null;
|
|
private _subTitle: string = null;
|
|
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
@linkedFieldOption(LinkedId.FirstName)
|
|
get firstName(): string {
|
|
return this._firstName;
|
|
}
|
|
set firstName(value: string) {
|
|
this._firstName = value;
|
|
this._subTitle = null;
|
|
}
|
|
|
|
@linkedFieldOption(LinkedId.LastName)
|
|
get lastName(): string {
|
|
return this._lastName;
|
|
}
|
|
set lastName(value: string) {
|
|
this._lastName = value;
|
|
this._subTitle = null;
|
|
}
|
|
|
|
get subTitle(): string {
|
|
if (this._subTitle == null && (this.firstName != null || this.lastName != null)) {
|
|
this._subTitle = "";
|
|
if (this.firstName != null) {
|
|
this._subTitle = this.firstName;
|
|
}
|
|
if (this.lastName != null) {
|
|
if (this._subTitle !== "") {
|
|
this._subTitle += " ";
|
|
}
|
|
this._subTitle += this.lastName;
|
|
}
|
|
}
|
|
|
|
return this._subTitle;
|
|
}
|
|
|
|
@linkedFieldOption(LinkedId.FullName)
|
|
get fullName(): string {
|
|
if (
|
|
this.title != null ||
|
|
this.firstName != null ||
|
|
this.middleName != null ||
|
|
this.lastName != null
|
|
) {
|
|
let name = "";
|
|
if (this.title != null) {
|
|
name += this.title + " ";
|
|
}
|
|
if (this.firstName != null) {
|
|
name += this.firstName + " ";
|
|
}
|
|
if (this.middleName != null) {
|
|
name += this.middleName + " ";
|
|
}
|
|
if (this.lastName != null) {
|
|
name += this.lastName;
|
|
}
|
|
return name.trim();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
get fullAddress(): string {
|
|
let address = this.address1;
|
|
if (!Utils.isNullOrWhitespace(this.address2)) {
|
|
if (!Utils.isNullOrWhitespace(address)) {
|
|
address += ", ";
|
|
}
|
|
address += this.address2;
|
|
}
|
|
if (!Utils.isNullOrWhitespace(this.address3)) {
|
|
if (!Utils.isNullOrWhitespace(address)) {
|
|
address += ", ";
|
|
}
|
|
address += this.address3;
|
|
}
|
|
return address;
|
|
}
|
|
|
|
get fullAddressPart2(): string {
|
|
if (this.city == null && this.state == null && this.postalCode == null) {
|
|
return null;
|
|
}
|
|
const city = this.city || "-";
|
|
const state = this.state;
|
|
const postalCode = this.postalCode || "-";
|
|
let addressPart2 = city;
|
|
if (!Utils.isNullOrWhitespace(state)) {
|
|
addressPart2 += ", " + state;
|
|
}
|
|
addressPart2 += ", " + postalCode;
|
|
return addressPart2;
|
|
}
|
|
|
|
static fromJSON(obj: Partial<Jsonify<IdentityView>>): IdentityView {
|
|
return Object.assign(new IdentityView(), obj);
|
|
}
|
|
}
|