@quandis/qbo4.ui 4.0.1-CI-20240430-215338 → 4.0.1-CI-20240507-200005

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Quandis, Inc.",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "version": "4.0.1-CI-20240430-215338",
6
+ "version": "4.0.1-CI-20240507-200005",
7
7
  "workspaces": [
8
8
  "code"
9
9
  ],
@@ -22,6 +22,7 @@ export * from './qbo-popup.js';
22
22
  export * from './qbo-popup-listener.js';
23
23
  export * from './qbo-select.js';
24
24
  export * from './qbo-sidebar.js';
25
+ export * from './qbo-ssn.js';
25
26
  export * from './qbo-table.js';
26
27
  export * from './qbo-validate.js';
27
28
  export declare function elementOptions(element: any, prefix: any, options?: string): {};
@@ -31,3 +32,5 @@ export declare function elementClearValue(element: Element): void;
31
32
  export declare function matches(source: any, match: any, wildCard?: string, ignoreCase?: boolean): boolean;
32
33
  export declare function elementData(element: HTMLElement): Record<string, string>;
33
34
  export declare function getApiService(url: string): IApiService;
35
+ export declare function elementDate(date: string): string;
36
+ export declare function elementDateTime(date: string): string;
@@ -23,6 +23,7 @@ export * from './qbo-popup.js';
23
23
  export * from './qbo-popup-listener.js';
24
24
  export * from './qbo-select.js';
25
25
  export * from './qbo-sidebar.js';
26
+ export * from './qbo-ssn.js';
26
27
  export * from './qbo-table.js';
27
28
  export * from './qbo-validate.js';
28
29
  // Return JSON object from element attributes.
@@ -118,3 +119,13 @@ export function getApiService(url) {
118
119
  : new RestApiService(url);
119
120
  return (relativePath) ? service.clone(relativePath) : service;
120
121
  }
122
+ export function elementDate(date) {
123
+ if (!date || date.trim() == '')
124
+ return '';
125
+ return new Date(date).toISOString().slice(0, 10);
126
+ }
127
+ export function elementDateTime(date) {
128
+ if (!date || date.trim() == '')
129
+ return '';
130
+ return new Date(date).toLocaleString().replace(',', '');
131
+ }
@@ -25,6 +25,7 @@ export * from './qbo-popup.js';
25
25
  export * from './qbo-popup-listener.js';
26
26
  export * from './qbo-select.js';
27
27
  export * from './qbo-sidebar.js'
28
+ export * from './qbo-ssn.js';
28
29
  export * from './qbo-table.js';
29
30
  export * from './qbo-validate.js';
30
31
 
@@ -116,7 +117,6 @@ export function elementData(element: HTMLElement) {
116
117
  return record;
117
118
  }
118
119
 
119
-
120
120
  export function getApiService(url: string) {
121
121
  const parts = url.match(/api:\/\/([^/]+)/);
122
122
  const name = parts ? parts[1] : url;
@@ -126,4 +126,14 @@ export function getApiService(url: string) {
126
126
  : new RestApiService(url);
127
127
 
128
128
  return (relativePath) ? service.clone(relativePath) : service;
129
+ }
130
+
131
+ export function elementDate(date: string) {
132
+ if (!date || date.trim() == '') return '';
133
+ return new Date(date).toISOString().slice(0, 10);
134
+ }
135
+
136
+ export function elementDateTime(date: string) {
137
+ if (!date || date.trim() == '') return '';
138
+ return new Date(date).toLocaleString().replace(',', '');
129
139
  }
@@ -11,6 +11,7 @@ import { html, LitElement } from 'lit';
11
11
  import { customElement, property } from 'lit/decorators.js';
12
12
  import { services } from '@quandis/qbo4.configuration';
13
13
  import { RestApiService } from './RestApiService.js';
14
+ import { elementDate } from './Program.js';
14
15
  let QboContact = class QboContact extends LitElement {
15
16
  constructor() {
16
17
  super(...arguments);
@@ -44,150 +45,142 @@ let QboContact = class QboContact extends LitElement {
44
45
  return html `<slot>
45
46
  <div class="${this.colSixClass}">
46
47
  <label for="${this.contactName}" class="${this.formLabelSmallClass}">${this.contactLabel}</label>
47
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="${this.contactName}" value="${this.jsonData?.Root?.ContactItem?.Contact}"/>
48
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="${this.contactName}" value="${this.jsonData.Root.ContactItem?.Contact}"/>
48
49
  </div>
49
50
  <div class="${this.colSixClass}">
50
51
  <label for="ContactTemplateID" class="${this.formLabelSmallClass}">Template</label>
51
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactTemplateID" apiEndpoint="api://qbo/contacttemplate/listwhere?appliesto=${this.jsonData?.Root?.ContactItem?.Object}" defaultValue="${this.jsonData?.Root?.ContactItem?.ContactTemplateID}"></qbo-select>
52
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactTemplateID" apiEndpoint="api://qbo/contacttemplate/listwhere?appliesto=${this.jsonData.Root.ContactItem?.Object}" defaultValue="${this.jsonData.Root.ContactItem?.ContactTemplateID}"></qbo-select>
52
53
  </div>
53
54
  <div class="${this.colSixClass}">
54
55
  <label for="Status" class="${this.formLabelSmallClass}">Status</label>
55
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Status" apiEndpoint="api://qbo/objectstatus/customlist?object=Contact&objectid=${this.jsonData?.Root?.ContactItem?.ContactTemplateID}" optionValue="ObjectStatus" defaultValue="${this.jsonData?.Root?.ContactItem?.Status}"></qbo-select>
56
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Status" apiEndpoint="api://qbo/objectstatus/customlist?object=Contact&objectid=${this.jsonData.Root.ContactItem?.ContactTemplateID}" optionValue="ObjectStatus" defaultValue="${this.jsonData.Root.ContactItem?.Status}"></qbo-select>
56
57
  </div>
57
58
  <div class="${this.colSixClass}">
58
59
  <label for="ContactType" class="${this.formLabelSmallClass}">Type</label>
59
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactType" apiEndpoint="api://qbo/objecttype/customlist?object=Contact&objectid=${this.jsonData?.Root?.ContactItem?.ContactTemplateID}" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.ContactType}"></qbo-select>
60
- </div>
61
- <div class="${this.colFourClass}">
62
- <label for="Phone" class="${this.formLabelSmallClass}">Phone</label>
63
- <input type="tel" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Phone" value="${this.jsonData?.Root?.ContactItem?.Phone}"/>
64
- </div>
65
- <div class="${this.colFourClass}">
66
- <label for="Email" class="${this.formLabelSmallClass}">Email</label>
67
- <input type="email" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Email" value="${this.jsonData?.Root?.ContactItem?.Email}"/>
68
- </div>
69
- <div class="${this.colFourClass}">
70
- <label for="Title" class="${this.formLabelSmallClass}">Title</label>
71
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Title" value="${this.jsonData?.Root?.ContactItem?.Title}"/>
60
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactType" apiEndpoint="api://qbo/objecttype/customlist?object=Contact&objectid=${this.jsonData.Root.ContactItem?.ContactTemplateID}" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.ContactType}"></qbo-select>
72
61
  </div>
73
62
  <div class="${this.divSectionHeaderClass}">
74
63
  <h5>Location</h5>
75
64
  </div>
76
- <div class="${this.colTwelveClass}">
65
+ <div class="${this.colSixClass}">
77
66
  <label for="Company" class="${this.formLabelSmallClass}">Company</label>
78
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Company" value="${this.jsonData?.Root?.ContactItem?.Company}"/>
67
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Company" value="${this.jsonData.Root.ContactItem?.Company}"/>
68
+ </div>
69
+ <div class="${this.colSixClass}">
70
+ <label for="Title" class="${this.formLabelSmallClass}">Title</label>
71
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Title" value="${this.jsonData.Root.ContactItem?.Title}"/>
79
72
  </div>
80
73
  <div class="${this.colTwelveClass}">
81
74
  <label for="Address" class="${this.formLabelSmallClass}">Address</label>
82
- <textarea ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Address">${this.jsonData?.Root?.ContactItem?.Address}</textarea>
75
+ <textarea ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Address">${this.jsonData.Root.ContactItem?.Address}</textarea>
83
76
  </div>
84
77
  <div class="${this.colSixClass}">
85
78
  <label for="City" class="${this.formLabelSmallClass}">City</label>
86
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="City" value="${this.jsonData?.Root?.ContactItem?.City}"/>
79
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="City" value="${this.jsonData.Root.ContactItem?.City}"/>
87
80
  </div>
88
81
  <div class="${this.colThreeClass}">
89
82
  <label for="State" class="${this.formLabelSmallClass}">State</label>
90
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="State" apiEndpoint="api://qbo/state/list" optionValue="State" defaultValue="${this.jsonData?.Root?.ContactItem?.State}"></qbo-select>
83
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="State" apiEndpoint="api://qbo/state/list" optionValue="State" defaultValue="${this.jsonData.Root.ContactItem?.State}"></qbo-select>
91
84
  </div>
92
85
  <div class="${this.colThreeClass}">
93
86
  <label for="PostalCode" class="${this.formLabelSmallClass}">Postal Code</label>
94
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="PostalCode" pattern="\d{5}-?(\d{4})?" value="${this.jsonData?.Root?.ContactItem?.PostalCode}"/>
87
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="PostalCode" pattern="\d{5}-?(\d{4})?" value="${this.jsonData.Root.ContactItem?.PostalCode}"/>
95
88
  </div>
96
89
  <div class="${this.colSixClass}">
97
90
  <label for="Country" class="${this.formLabelSmallClass}">Country</label>
98
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Country" value="${this.jsonData?.Root?.ContactItem?.Country}"/>
91
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Country" value="${this.jsonData.Root.ContactItem?.Country}"/>
99
92
  </div>
100
93
  <div class="${this.colThreeClass}">
101
94
  <label for="Latitude" class="${this.formLabelSmallClass}">Latitude</label>
102
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Latitude" value="${this.jsonData?.Root?.ContactItem?.Latitude}"/>
95
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Latitude" value="${this.jsonData.Root.ContactItem?.Latitude}"/>
103
96
  </div>
104
97
  <div class="${this.colThreeClass}">
105
98
  <label for="Longitude" class="${this.formLabelSmallClass}">Longitude</label>
106
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Longitude" value="${this.jsonData?.Root?.ContactItem?.Longitude}"/>
99
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Longitude" value="${this.jsonData.Root.ContactItem?.Longitude}"/>
107
100
  </div>
108
101
  <div class="${this.divSectionHeaderClass}">
109
102
  <h5>Identity</h5>
110
103
  </div>
111
104
  <div class="${this.colThreeClass}">
112
105
  <label for="USSSN" class="${this.formLabelSmallClass}">SSN</label>
113
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="USSSN" value="${this.jsonData?.Root?.ContactItem?.USSSN}"/>
106
+ <qbo-ssn ssn="${this.jsonData.Root.ContactItem?.USSSN}" contactId="${this.contactId}"></qbo-ssn>
114
107
  </div>
115
108
  <div class="${this.colThreeClass}">
116
109
  <label for="TIN" class="${this.formLabelSmallClass}">TIN</label>
117
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="TIN" value="${this.jsonData?.Root?.ContactItem?.TIN}"/>
110
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="TIN" value="${this.jsonData.Root.ContactItem?.TIN}"/>
118
111
  </div>
119
112
  <div class="${this.colThreeClass}">
120
113
  <label for="Nationality" class="${this.formLabelSmallClass}">Nationality</label>
121
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Nationality" apiEndpoint="api://qbo/objecttype/list?object=Contact.Nationality" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.Nationality}"></qbo-select>
114
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Nationality" apiEndpoint="api://qbo/objecttype/list?object=Contact.Nationality" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.Nationality}"></qbo-select>
122
115
  </div>
123
116
  <div class="${this.colThreeClass}">
124
117
  <label for="SpokenLanguage" class="${this.formLabelSmallClass}">Spoken Language</label>
125
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SpokenLanguage" apiEndpoint="api://qbo/objecttype/list?object=Contact.SpokenLanguage" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.SpokenLanguage}"></qbo-select>
118
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SpokenLanguage" apiEndpoint="api://qbo/objecttype/list?object=Contact.SpokenLanguage" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.SpokenLanguage}"></qbo-select>
126
119
  </div>
127
120
  <div class="${this.colThreeClass}">
128
121
  <label for="BirthDate" class="${this.formLabelSmallClass}">Birth Date</label>
129
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="BirthDate" value="${this.jsonData?.Root?.ContactItem?.BirthDate}"/>
122
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="BirthDate" value="${elementDate(this.jsonData.Root.ContactItem?.BirthDate)}"/>
130
123
  </div>
131
124
  <div class="${this.colThreeClass}">
132
125
  <label for="DeathDate" class="${this.formLabelSmallClass}">Death Date</label>
133
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="DeathDate" value="${this.jsonData?.Root?.ContactItem?.DeathDate}"/>
126
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="DeathDate" value="${elementDate(this.jsonData.Root.ContactItem?.DeathDate)}"/>
134
127
  </div>
135
128
  <div class="${this.colThreeClass}">
136
129
  <label for="ValidStart" class="${this.formLabelSmallClass}">Valid Start</label>
137
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidStart" value="${this.jsonData?.Root?.ContactItem?.ValidStart}"/>
130
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidStart" value="${elementDate(this.jsonData.Root.ContactItem?.ValidStart)}"/>
138
131
  </div>
139
132
  <div class="${this.colThreeClass}">
140
133
  <label for="ValidEnd" class="${this.formLabelSmallClass}">Valid End</label>
141
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidEnd" value="${this.jsonData?.Root?.ContactItem?.ValidEnd}"/>
134
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidEnd" value="${elementDate(this.jsonData.Root.ContactItem?.ValidEnd)}"/>
142
135
  </div>
143
136
  <div class="${this.colSixClass}">
144
137
  <label for="VerifiedSource" class="${this.formLabelSmallClass}">Verified Source</label>
145
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedSource" value="${this.jsonData?.Root?.ContactItem?.VerifiedSource}"/>
138
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedSource" value="${this.jsonData.Root.ContactItem?.VerifiedSource}"/>
146
139
  </div>
147
140
  <div class="${this.colThreeClass}">
148
141
  <label for="VerifiedDate" class="${this.formLabelSmallClass}">Verified Date</label>
149
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedDate" value="${this.jsonData?.Root?.ContactItem?.VerifiedDate}"/>
142
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedDate" value="${elementDate(this.jsonData.Root.ContactItem?.VerifiedDate)}"/>
150
143
  </div>
151
144
  <div class="${this.colThreeClass}">
152
145
  <label for="VerifiedConfidence" class="${this.formLabelSmallClass}">Verified Confidence</label>
153
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedConfidence" value="${this.jsonData?.Root?.ContactItem?.VerifiedConfidence}"/>
146
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedConfidence" value="${this.jsonData.Root.ContactItem?.VerifiedConfidence}"/>
154
147
  </div>
155
148
  <div class="${this.divSectionHeaderClass}">
156
149
  <h5>SCRA</h5>
157
150
  </div>
158
151
  <div class="${this.colThreeClass}">
159
152
  <label for="SCRAStatus" class="${this.formLabelSmallClass}">SCRA Status</label>
160
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SCRAStatus" apiEndpoint="api://qbo/objecttype/list?object=Contact.SCRAStatus" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.SCRAStatus}"></qbo-select>
153
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SCRAStatus" apiEndpoint="api://qbo/objecttype/list?object=Contact.SCRAStatus" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.SCRAStatus}"></qbo-select>
161
154
  </div>
162
155
  <div class="${this.colThreeClass}">
163
156
  <label for="SCRAStatusAsOf" class="${this.formLabelSmallClass}">SCRA Status As Of</label>
164
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStatusAsOf" value="${this.jsonData?.Root?.ContactItem?.SCRAStatusAsOf}"/>
157
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStatusAsOf" value="${elementDate(this.jsonData.Root.ContactItem?.SCRAStatusAsOf)}"/>
165
158
  </div>
166
159
  <div class="${this.colThreeClass}">
167
160
  <label for="SCRAStartDate" class="${this.formLabelSmallClass}">SCRA Start Date</label>
168
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStartDate" value="${this.jsonData?.Root?.ContactItem?.SCRAStartDate}"/>
161
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStartDate" value="${elementDate(this.jsonData.Root.ContactItem?.SCRAStartDate)}"/>
169
162
  </div>
170
163
  <div class="${this.colThreeClass}">
171
164
  <label for="SCRADischargeDate" class="${this.formLabelSmallClass}">SCRA Discharge Date</label>
172
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRADischargeDate" value="${this.jsonData?.Root?.ContactItem?.SCRADischargeDate}"/>
165
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRADischargeDate" value="${elementDate(this.jsonData.Root.ContactItem?.SCRADischargeDate)}"/>
173
166
  </div>
174
167
  <div class="${this.colThreeClass}">
175
168
  <label for="SCRAVerified" class="${this.formLabelSmallClass}">SCRA Verified</label>
176
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerified" value="${this.jsonData?.Root?.ContactItem?.SCRAVerified}"/>
169
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerified" value="${this.jsonData.Root.ContactItem?.SCRAVerified}"/>
177
170
  </div>
178
171
  <div class="${this.colThreeClass}">
179
172
  <label for="SCRAVerifiedDate" class="${this.formLabelSmallClass}">SCRA Verified Date</label>
180
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerifiedDate" value="${this.jsonData?.Root?.ContactItem?.SCRAVerifiedDate}"/>
173
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerifiedDate" value="${elementDate(this.jsonData.Root.ContactItem?.SCRAVerifiedDate)}"/>
181
174
  </div>
182
175
  <div class="${this.colThreeClass}">
183
176
  <label for="SCRASource" class="${this.formLabelSmallClass}">SCRA Source</label>
184
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRASource" value="${this.jsonData?.Root?.ContactItem?.SCRASource}"/>
177
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRASource" value="${this.jsonData.Root.ContactItem?.SCRASource}"/>
185
178
  </div>
186
179
  <div class="${this.colThreeClass}">
187
180
  <label for="SCRAID" class="${this.formLabelSmallClass}">SCRA ID</label>
188
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAID" value="${this.jsonData?.Root?.ContactItem?.SCRAID}"/>
181
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAID" value="${this.jsonData.Root.ContactItem?.SCRAID}"/>
189
182
  </div>
190
- <qbo-form-edit createdDate="${this.jsonData?.Root?.ContactItem?.CreatedDate}" createdPerson="${this.jsonData?.Root?.ContactItem?.CreatedPerson}" updatedDate="${this.jsonData?.Root?.ContactItem?.UpdatedDate}" updatedPerson="${this.jsonData?.Root?.ContactItem?.UpdatedPerson}"></qbo-select>
183
+ <qbo-form-edit .data="${this.jsonData.Root.ContactItem}"></qbo-form-edit>
191
184
  </slot>`;
192
185
  }
193
186
  };
@@ -3,6 +3,7 @@ import { customElement, property } from 'lit/decorators.js';
3
3
  import { IApiService } from './IApiService.js';
4
4
  import { services } from '@quandis/qbo4.configuration';
5
5
  import { RestApiService } from './RestApiService.js';
6
+ import { elementDate } from './Program.js';
6
7
 
7
8
  @customElement('qbo-contact')
8
9
  export class QboContact extends LitElement {
@@ -69,150 +70,142 @@ export class QboContact extends LitElement {
69
70
  return html`<slot>
70
71
  <div class="${this.colSixClass}">
71
72
  <label for="${this.contactName}" class="${this.formLabelSmallClass}">${this.contactLabel}</label>
72
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="${this.contactName}" value="${this.jsonData?.Root?.ContactItem?.Contact}"/>
73
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="${this.contactName}" value="${this.jsonData.Root.ContactItem?.Contact}"/>
73
74
  </div>
74
75
  <div class="${this.colSixClass}">
75
76
  <label for="ContactTemplateID" class="${this.formLabelSmallClass}">Template</label>
76
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactTemplateID" apiEndpoint="api://qbo/contacttemplate/listwhere?appliesto=${this.jsonData?.Root?.ContactItem?.Object}" defaultValue="${this.jsonData?.Root?.ContactItem?.ContactTemplateID}"></qbo-select>
77
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactTemplateID" apiEndpoint="api://qbo/contacttemplate/listwhere?appliesto=${this.jsonData.Root.ContactItem?.Object}" defaultValue="${this.jsonData.Root.ContactItem?.ContactTemplateID}"></qbo-select>
77
78
  </div>
78
79
  <div class="${this.colSixClass}">
79
80
  <label for="Status" class="${this.formLabelSmallClass}">Status</label>
80
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Status" apiEndpoint="api://qbo/objectstatus/customlist?object=Contact&objectid=${this.jsonData?.Root?.ContactItem?.ContactTemplateID}" optionValue="ObjectStatus" defaultValue="${this.jsonData?.Root?.ContactItem?.Status}"></qbo-select>
81
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Status" apiEndpoint="api://qbo/objectstatus/customlist?object=Contact&objectid=${this.jsonData.Root.ContactItem?.ContactTemplateID}" optionValue="ObjectStatus" defaultValue="${this.jsonData.Root.ContactItem?.Status}"></qbo-select>
81
82
  </div>
82
83
  <div class="${this.colSixClass}">
83
84
  <label for="ContactType" class="${this.formLabelSmallClass}">Type</label>
84
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactType" apiEndpoint="api://qbo/objecttype/customlist?object=Contact&objectid=${this.jsonData?.Root?.ContactItem?.ContactTemplateID}" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.ContactType}"></qbo-select>
85
- </div>
86
- <div class="${this.colFourClass}">
87
- <label for="Phone" class="${this.formLabelSmallClass}">Phone</label>
88
- <input type="tel" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Phone" value="${this.jsonData?.Root?.ContactItem?.Phone}"/>
89
- </div>
90
- <div class="${this.colFourClass}">
91
- <label for="Email" class="${this.formLabelSmallClass}">Email</label>
92
- <input type="email" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Email" value="${this.jsonData?.Root?.ContactItem?.Email}"/>
93
- </div>
94
- <div class="${this.colFourClass}">
95
- <label for="Title" class="${this.formLabelSmallClass}">Title</label>
96
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Title" value="${this.jsonData?.Root?.ContactItem?.Title}"/>
85
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="ContactType" apiEndpoint="api://qbo/objecttype/customlist?object=Contact&objectid=${this.jsonData.Root.ContactItem?.ContactTemplateID}" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.ContactType}"></qbo-select>
97
86
  </div>
98
87
  <div class="${this.divSectionHeaderClass}">
99
88
  <h5>Location</h5>
100
89
  </div>
101
- <div class="${this.colTwelveClass}">
90
+ <div class="${this.colSixClass}">
102
91
  <label for="Company" class="${this.formLabelSmallClass}">Company</label>
103
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Company" value="${this.jsonData?.Root?.ContactItem?.Company}"/>
92
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Company" value="${this.jsonData.Root.ContactItem?.Company}"/>
93
+ </div>
94
+ <div class="${this.colSixClass}">
95
+ <label for="Title" class="${this.formLabelSmallClass}">Title</label>
96
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Title" value="${this.jsonData.Root.ContactItem?.Title}"/>
104
97
  </div>
105
98
  <div class="${this.colTwelveClass}">
106
99
  <label for="Address" class="${this.formLabelSmallClass}">Address</label>
107
- <textarea ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Address">${this.jsonData?.Root?.ContactItem?.Address}</textarea>
100
+ <textarea ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Address">${this.jsonData.Root.ContactItem?.Address}</textarea>
108
101
  </div>
109
102
  <div class="${this.colSixClass}">
110
103
  <label for="City" class="${this.formLabelSmallClass}">City</label>
111
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="City" value="${this.jsonData?.Root?.ContactItem?.City}"/>
104
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="City" value="${this.jsonData.Root.ContactItem?.City}"/>
112
105
  </div>
113
106
  <div class="${this.colThreeClass}">
114
107
  <label for="State" class="${this.formLabelSmallClass}">State</label>
115
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="State" apiEndpoint="api://qbo/state/list" optionValue="State" defaultValue="${this.jsonData?.Root?.ContactItem?.State}"></qbo-select>
108
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="State" apiEndpoint="api://qbo/state/list" optionValue="State" defaultValue="${this.jsonData.Root.ContactItem?.State}"></qbo-select>
116
109
  </div>
117
110
  <div class="${this.colThreeClass}">
118
111
  <label for="PostalCode" class="${this.formLabelSmallClass}">Postal Code</label>
119
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="PostalCode" pattern="\d{5}-?(\d{4})?" value="${this.jsonData?.Root?.ContactItem?.PostalCode}"/>
112
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="PostalCode" pattern="\d{5}-?(\d{4})?" value="${this.jsonData.Root.ContactItem?.PostalCode}"/>
120
113
  </div>
121
114
  <div class="${this.colSixClass}">
122
115
  <label for="Country" class="${this.formLabelSmallClass}">Country</label>
123
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Country" value="${this.jsonData?.Root?.ContactItem?.Country}"/>
116
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Country" value="${this.jsonData.Root.ContactItem?.Country}"/>
124
117
  </div>
125
118
  <div class="${this.colThreeClass}">
126
119
  <label for="Latitude" class="${this.formLabelSmallClass}">Latitude</label>
127
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Latitude" value="${this.jsonData?.Root?.ContactItem?.Latitude}"/>
120
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Latitude" value="${this.jsonData.Root.ContactItem?.Latitude}"/>
128
121
  </div>
129
122
  <div class="${this.colThreeClass}">
130
123
  <label for="Longitude" class="${this.formLabelSmallClass}">Longitude</label>
131
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Longitude" value="${this.jsonData?.Root?.ContactItem?.Longitude}"/>
124
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="Longitude" value="${this.jsonData.Root.ContactItem?.Longitude}"/>
132
125
  </div>
133
126
  <div class="${this.divSectionHeaderClass}">
134
127
  <h5>Identity</h5>
135
128
  </div>
136
129
  <div class="${this.colThreeClass}">
137
130
  <label for="USSSN" class="${this.formLabelSmallClass}">SSN</label>
138
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="USSSN" value="${this.jsonData?.Root?.ContactItem?.USSSN}"/>
131
+ <qbo-ssn ssn="${this.jsonData.Root.ContactItem?.USSSN}" contactId="${this.contactId}"></qbo-ssn>
139
132
  </div>
140
133
  <div class="${this.colThreeClass}">
141
134
  <label for="TIN" class="${this.formLabelSmallClass}">TIN</label>
142
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="TIN" value="${this.jsonData?.Root?.ContactItem?.TIN}"/>
135
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="TIN" value="${this.jsonData.Root.ContactItem?.TIN}"/>
143
136
  </div>
144
137
  <div class="${this.colThreeClass}">
145
138
  <label for="Nationality" class="${this.formLabelSmallClass}">Nationality</label>
146
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Nationality" apiEndpoint="api://qbo/objecttype/list?object=Contact.Nationality" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.Nationality}"></qbo-select>
139
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="Nationality" apiEndpoint="api://qbo/objecttype/list?object=Contact.Nationality" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.Nationality}"></qbo-select>
147
140
  </div>
148
141
  <div class="${this.colThreeClass}">
149
142
  <label for="SpokenLanguage" class="${this.formLabelSmallClass}">Spoken Language</label>
150
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SpokenLanguage" apiEndpoint="api://qbo/objecttype/list?object=Contact.SpokenLanguage" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.SpokenLanguage}"></qbo-select>
143
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SpokenLanguage" apiEndpoint="api://qbo/objecttype/list?object=Contact.SpokenLanguage" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.SpokenLanguage}"></qbo-select>
151
144
  </div>
152
145
  <div class="${this.colThreeClass}">
153
146
  <label for="BirthDate" class="${this.formLabelSmallClass}">Birth Date</label>
154
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="BirthDate" value="${this.jsonData?.Root?.ContactItem?.BirthDate}"/>
147
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="BirthDate" value="${elementDate(this.jsonData.Root.ContactItem?.BirthDate)}"/>
155
148
  </div>
156
149
  <div class="${this.colThreeClass}">
157
150
  <label for="DeathDate" class="${this.formLabelSmallClass}">Death Date</label>
158
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="DeathDate" value="${this.jsonData?.Root?.ContactItem?.DeathDate}"/>
151
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="DeathDate" value="${elementDate(this.jsonData.Root.ContactItem?.DeathDate)}"/>
159
152
  </div>
160
153
  <div class="${this.colThreeClass}">
161
154
  <label for="ValidStart" class="${this.formLabelSmallClass}">Valid Start</label>
162
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidStart" value="${this.jsonData?.Root?.ContactItem?.ValidStart}"/>
155
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidStart" value="${elementDate(this.jsonData.Root.ContactItem?.ValidStart)}"/>
163
156
  </div>
164
157
  <div class="${this.colThreeClass}">
165
158
  <label for="ValidEnd" class="${this.formLabelSmallClass}">Valid End</label>
166
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidEnd" value="${this.jsonData?.Root?.ContactItem?.ValidEnd}"/>
159
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="ValidEnd" value="${elementDate(this.jsonData.Root.ContactItem?.ValidEnd)}"/>
167
160
  </div>
168
161
  <div class="${this.colSixClass}">
169
162
  <label for="VerifiedSource" class="${this.formLabelSmallClass}">Verified Source</label>
170
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedSource" value="${this.jsonData?.Root?.ContactItem?.VerifiedSource}"/>
163
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedSource" value="${this.jsonData.Root.ContactItem?.VerifiedSource}"/>
171
164
  </div>
172
165
  <div class="${this.colThreeClass}">
173
166
  <label for="VerifiedDate" class="${this.formLabelSmallClass}">Verified Date</label>
174
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedDate" value="${this.jsonData?.Root?.ContactItem?.VerifiedDate}"/>
167
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedDate" value="${elementDate(this.jsonData.Root.ContactItem?.VerifiedDate)}"/>
175
168
  </div>
176
169
  <div class="${this.colThreeClass}">
177
170
  <label for="VerifiedConfidence" class="${this.formLabelSmallClass}">Verified Confidence</label>
178
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedConfidence" value="${this.jsonData?.Root?.ContactItem?.VerifiedConfidence}"/>
171
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="VerifiedConfidence" value="${this.jsonData.Root.ContactItem?.VerifiedConfidence}"/>
179
172
  </div>
180
173
  <div class="${this.divSectionHeaderClass}">
181
174
  <h5>SCRA</h5>
182
175
  </div>
183
176
  <div class="${this.colThreeClass}">
184
177
  <label for="SCRAStatus" class="${this.formLabelSmallClass}">SCRA Status</label>
185
- <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SCRAStatus" apiEndpoint="api://qbo/objecttype/list?object=Contact.SCRAStatus" optionValue="ObjectType" defaultValue="${this.jsonData?.Root?.ContactItem?.SCRAStatus}"></qbo-select>
178
+ <qbo-select ?disabled=${this.disabled} class="${this.formSelectSmallClass}" name="SCRAStatus" apiEndpoint="api://qbo/objecttype/list?object=Contact.SCRAStatus" optionValue="ObjectType" defaultValue="${this.jsonData.Root.ContactItem?.SCRAStatus}"></qbo-select>
186
179
  </div>
187
180
  <div class="${this.colThreeClass}">
188
181
  <label for="SCRAStatusAsOf" class="${this.formLabelSmallClass}">SCRA Status As Of</label>
189
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStatusAsOf" value="${this.jsonData?.Root?.ContactItem?.SCRAStatusAsOf}"/>
182
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStatusAsOf" value="${elementDate(this.jsonData.Root.ContactItem?.SCRAStatusAsOf)}"/>
190
183
  </div>
191
184
  <div class="${this.colThreeClass}">
192
185
  <label for="SCRAStartDate" class="${this.formLabelSmallClass}">SCRA Start Date</label>
193
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStartDate" value="${this.jsonData?.Root?.ContactItem?.SCRAStartDate}"/>
186
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAStartDate" value="${elementDate(this.jsonData.Root.ContactItem?.SCRAStartDate)}"/>
194
187
  </div>
195
188
  <div class="${this.colThreeClass}">
196
189
  <label for="SCRADischargeDate" class="${this.formLabelSmallClass}">SCRA Discharge Date</label>
197
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRADischargeDate" value="${this.jsonData?.Root?.ContactItem?.SCRADischargeDate}"/>
190
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRADischargeDate" value="${elementDate(this.jsonData.Root.ContactItem?.SCRADischargeDate)}"/>
198
191
  </div>
199
192
  <div class="${this.colThreeClass}">
200
193
  <label for="SCRAVerified" class="${this.formLabelSmallClass}">SCRA Verified</label>
201
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerified" value="${this.jsonData?.Root?.ContactItem?.SCRAVerified}"/>
194
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerified" value="${this.jsonData.Root.ContactItem?.SCRAVerified}"/>
202
195
  </div>
203
196
  <div class="${this.colThreeClass}">
204
197
  <label for="SCRAVerifiedDate" class="${this.formLabelSmallClass}">SCRA Verified Date</label>
205
- <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerifiedDate" value="${this.jsonData?.Root?.ContactItem?.SCRAVerifiedDate}"/>
198
+ <input type="date" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAVerifiedDate" value="${elementDate(this.jsonData.Root.ContactItem?.SCRAVerifiedDate)}"/>
206
199
  </div>
207
200
  <div class="${this.colThreeClass}">
208
201
  <label for="SCRASource" class="${this.formLabelSmallClass}">SCRA Source</label>
209
- <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRASource" value="${this.jsonData?.Root?.ContactItem?.SCRASource}"/>
202
+ <input type="text" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRASource" value="${this.jsonData.Root.ContactItem?.SCRASource}"/>
210
203
  </div>
211
204
  <div class="${this.colThreeClass}">
212
205
  <label for="SCRAID" class="${this.formLabelSmallClass}">SCRA ID</label>
213
- <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAID" value="${this.jsonData?.Root?.ContactItem?.SCRAID}"/>
206
+ <input type="number" ?disabled=${this.disabled} class="${this.formControlSmallClass}" name="SCRAID" value="${this.jsonData.Root.ContactItem?.SCRAID}"/>
214
207
  </div>
215
- <qbo-form-edit createdDate="${this.jsonData?.Root?.ContactItem?.CreatedDate}" createdPerson="${this.jsonData?.Root?.ContactItem?.CreatedPerson}" updatedDate="${this.jsonData?.Root?.ContactItem?.UpdatedDate}" updatedPerson="${this.jsonData?.Root?.ContactItem?.UpdatedPerson}"></qbo-select>
208
+ <qbo-form-edit .data="${this.jsonData.Root.ContactItem}"></qbo-form-edit>
216
209
  </slot>`;
217
210
  }
218
211
  }
@@ -1,15 +1,18 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, TemplateResult } from 'lit';
2
2
  export declare class QboFormEdit extends LitElement {
3
3
  buttonPrimaryClass: String | null;
4
- createdDate: null;
5
- createdPerson: null;
4
+ data: Object;
6
5
  divButtonGroupClass: String | null;
7
6
  divFormActionClass: String | null;
8
7
  divSectionHeaderClass: String | null;
9
8
  editLabel: String | null;
10
- updatedDate: null;
11
- updatedPerson: null;
9
+ infoButtonClass: String | null;
10
+ infoIconClass: String | null;
11
+ infoTitle: String | null;
12
+ popoverClass: String | null;
13
+ spanEditClass: String | null;
14
+ type: string | null;
12
15
  renderInHost: boolean;
13
16
  createRenderRoot(): HTMLElement | DocumentFragment;
14
- render(): import("lit-html").TemplateResult<1>;
17
+ render(): TemplateResult<1>;
15
18
  }