2021-11-02 23:03:37 +01:00
|
|
|
import { ItemView } from './itemView';
|
2018-01-24 17:33:15 +01:00
|
|
|
|
2018-02-19 19:07:19 +01:00
|
|
|
import { Identity } from '../domain/identity';
|
2018-01-24 17:33:15 +01:00
|
|
|
|
2019-01-16 19:51:14 +01:00
|
|
|
import { Utils } from '../../misc/utils';
|
|
|
|
|
2021-11-02 23:03:37 +01:00
|
|
|
import { IdentityLinkedId as LinkedId } from '../../enums/linkedIdType';
|
|
|
|
|
|
|
|
import { linkedFieldOption } from '../../misc/linkedFieldOption.decorator';
|
|
|
|
|
|
|
|
export class IdentityView extends ItemView {
|
|
|
|
@linkedFieldOption(LinkedId.Title)
|
2018-01-25 22:16:02 +01:00
|
|
|
title: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.MiddleName)
|
2019-01-25 15:30:21 +01:00
|
|
|
middleName: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Address1)
|
2019-01-25 15:30:21 +01:00
|
|
|
address1: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Address2)
|
2019-01-25 15:30:21 +01:00
|
|
|
address2: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Address3)
|
2019-01-25 15:30:21 +01:00
|
|
|
address3: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.City, 'cityTown')
|
2019-01-25 15:30:21 +01:00
|
|
|
city: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.State, 'stateProvince')
|
2019-01-25 15:30:21 +01:00
|
|
|
state: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.PostalCode, 'zipPostalCode')
|
2019-01-25 15:30:21 +01:00
|
|
|
postalCode: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Country)
|
2019-01-25 15:30:21 +01:00
|
|
|
country: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Company)
|
2019-01-25 15:30:21 +01:00
|
|
|
company: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Email)
|
2019-01-25 15:30:21 +01:00
|
|
|
email: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Phone)
|
2019-01-25 15:30:21 +01:00
|
|
|
phone: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Ssn)
|
2019-01-25 15:30:21 +01:00
|
|
|
ssn: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.Username)
|
2019-01-25 15:30:21 +01:00
|
|
|
username: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.PassportNumber)
|
2019-01-25 15:30:21 +01:00
|
|
|
passportNumber: string = null;
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.LicenseNumber)
|
2019-01-25 15:30:21 +01:00
|
|
|
licenseNumber: string = null;
|
2018-01-24 17:33:15 +01:00
|
|
|
|
2018-01-24 22:58:34 +01:00
|
|
|
// tslint:disable
|
2019-01-25 15:30:21 +01:00
|
|
|
private _firstName: string = null;
|
|
|
|
private _lastName: string = null;
|
|
|
|
private _subTitle: string = null;
|
2018-01-24 22:58:34 +01:00
|
|
|
// tslint:enable
|
|
|
|
|
2018-01-24 17:33:15 +01:00
|
|
|
constructor(i?: Identity) {
|
2021-11-02 23:03:37 +01:00
|
|
|
super();
|
2018-01-24 17:33:15 +01:00
|
|
|
}
|
2018-01-24 22:58:34 +01:00
|
|
|
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.FirstName)
|
2018-01-24 22:58:34 +01:00
|
|
|
get firstName(): string {
|
|
|
|
return this._firstName;
|
|
|
|
}
|
|
|
|
set firstName(value: string) {
|
|
|
|
this._firstName = value;
|
|
|
|
this._subTitle = null;
|
|
|
|
}
|
|
|
|
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.LastName)
|
2018-01-24 22:58:34 +01:00
|
|
|
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;
|
|
|
|
}
|
2018-01-25 20:26:09 +01:00
|
|
|
|
2021-11-02 23:03:37 +01:00
|
|
|
@linkedFieldOption(LinkedId.FullName)
|
2018-01-25 20:26:09 +01:00
|
|
|
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;
|
|
|
|
}
|
2019-01-16 19:51:14 +01:00
|
|
|
|
|
|
|
get fullAddress(): string {
|
|
|
|
let address = this.address1;
|
2019-04-29 15:30:00 +02:00
|
|
|
if (!Utils.isNullOrWhitespace(this.address2)) {
|
|
|
|
if (!Utils.isNullOrWhitespace(address)) {
|
2019-01-16 19:51:14 +01:00
|
|
|
address += ', ';
|
|
|
|
}
|
|
|
|
address += this.address2;
|
|
|
|
}
|
2019-04-29 15:30:00 +02:00
|
|
|
if (!Utils.isNullOrWhitespace(this.address3)) {
|
|
|
|
if (!Utils.isNullOrWhitespace(address)) {
|
2019-01-16 19:51:14 +01:00
|
|
|
address += ', ';
|
|
|
|
}
|
|
|
|
address += this.address3;
|
|
|
|
}
|
|
|
|
return address;
|
|
|
|
}
|
2019-04-29 16:13:32 +02:00
|
|
|
|
|
|
|
get fullAddressPart2(): string {
|
|
|
|
if (this.city == null && this.state == null && this.postalCode == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
const city = this.city || '-';
|
2020-02-01 22:15:27 +01:00
|
|
|
const state = this.state;
|
2019-04-29 16:13:32 +02:00
|
|
|
const postalCode = this.postalCode || '-';
|
2020-02-01 22:15:27 +01:00
|
|
|
let addressPart2 = city;
|
|
|
|
if (!Utils.isNullOrWhitespace(state)) {
|
|
|
|
addressPart2 += ', ' + state;
|
|
|
|
}
|
|
|
|
addressPart2 += ', ' + postalCode;
|
|
|
|
return addressPart2;
|
2019-04-29 16:13:32 +02:00
|
|
|
}
|
2018-01-24 17:33:15 +01:00
|
|
|
}
|