@ironcode/vas-lib 3.0.0-alpha.8 → 3.0.0-alpha.9
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/cjs/lib/entity/vas-job.dto.d.ts +3 -0
- package/cjs/lib/entity/vas-job.dto.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.dto.js.map +1 -1
- package/cjs/lib/entity/vas-job.model.d.ts +4 -1
- package/cjs/lib/entity/vas-job.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.model.js +99 -14
- package/cjs/lib/entity/vas-job.model.js.map +1 -1
- package/fesm2022/ironcode-vas-lib.mjs +143 -54
- package/fesm2022/ironcode-vas-lib.mjs.map +1 -1
- package/lib/entity/vas-job.dto.d.ts +3 -0
- package/lib/entity/vas-job.model.d.ts +4 -1
- package/package.json +1 -1
|
@@ -19,6 +19,9 @@ export interface VasJobBaseDto extends VasRestrictedAccountObjectDto {
|
|
|
19
19
|
pendingFields: number;
|
|
20
20
|
childModified: string;
|
|
21
21
|
version: number;
|
|
22
|
+
followUpDate: string;
|
|
23
|
+
followUpStatus: string;
|
|
24
|
+
followUpNote: string;
|
|
22
25
|
geoLocation: GeoLocation;
|
|
23
26
|
files: Array<VasFileDto>;
|
|
24
27
|
jobEmails: Array<VasJobEmailDto>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vas-job.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,aAAc,SAAQ,6BAA6B;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,WAAW,EAAE,IAAI,GAAG,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC"}
|
|
1
|
+
{"version":3,"file":"vas-job.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,aAAc,SAAQ,6BAA6B;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,WAAW,EAAE,IAAI,GAAG,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vas-job.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"","sourcesContent":["import { VasFileDto } from './vas-file.dto';\nimport { VasRestrictedAccountObjectDto } from './vas-restricted-account-object.dto';\nimport { FieldValueType, VasFieldDto } from './vas-field.dto';\nimport { GeoLocation } from '../model';\nimport { VasReportDto } from './vas-report.dto';\nimport { VasTaskDto } from './vas-task.dto';\nimport { VasNoteDto } from './vas-note.dto';\nimport { VasJobEmailDto } from './vas-job-email.dto';\nimport { VasInstructionDto } from './vas-instruction.dto';\n\nexport interface VasJobBaseDto extends VasRestrictedAccountObjectDto {\n reference: string;\n jobDate: string;\n jobStatus: string;\n jobStatusLastUpdate: string;\n jobType: string;\n assigneeId: string;\n formId: string;\n timeZoneOffset: number;\n pendingFields: number;\n childModified: string;\n version: number;\n geoLocation: GeoLocation;\n files: Array<VasFileDto>;\n jobEmails: Array<VasJobEmailDto>;\n notes: Array<VasNoteDto>;\n reports: Array<VasReportDto>;\n tasks: Array<VasTaskDto>;\n instruction: null | VasInstructionDto;\n}\n\nexport interface VasJobRelationalDto extends VasJobBaseDto {\n fields: Array<VasFieldDto>;\n}\n\nexport interface VasJobDocumentDto extends VasJobBaseDto {\n fields: Record<string, FieldValueType>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"vas-job.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"","sourcesContent":["import { VasFileDto } from './vas-file.dto';\nimport { VasRestrictedAccountObjectDto } from './vas-restricted-account-object.dto';\nimport { FieldValueType, VasFieldDto } from './vas-field.dto';\nimport { GeoLocation } from '../model';\nimport { VasReportDto } from './vas-report.dto';\nimport { VasTaskDto } from './vas-task.dto';\nimport { VasNoteDto } from './vas-note.dto';\nimport { VasJobEmailDto } from './vas-job-email.dto';\nimport { VasInstructionDto } from './vas-instruction.dto';\n\nexport interface VasJobBaseDto extends VasRestrictedAccountObjectDto {\n reference: string;\n jobDate: string;\n jobStatus: string;\n jobStatusLastUpdate: string;\n jobType: string;\n assigneeId: string;\n formId: string;\n timeZoneOffset: number;\n pendingFields: number;\n childModified: string;\n version: number;\n followUpDate: string;\n followUpStatus: string;\n followUpNote: string;\n geoLocation: GeoLocation;\n files: Array<VasFileDto>;\n jobEmails: Array<VasJobEmailDto>;\n notes: Array<VasNoteDto>;\n reports: Array<VasReportDto>;\n tasks: Array<VasTaskDto>;\n instruction: null | VasInstructionDto;\n}\n\nexport interface VasJobRelationalDto extends VasJobBaseDto {\n fields: Array<VasFieldDto>;\n}\n\nexport interface VasJobDocumentDto extends VasJobBaseDto {\n fields: Record<string, FieldValueType>;\n}\n"]}
|
|
@@ -41,6 +41,9 @@ export declare abstract class VasJobBaseModel<FType extends Record<string, Field
|
|
|
41
41
|
pendingFields: number;
|
|
42
42
|
childModified: string;
|
|
43
43
|
version: number;
|
|
44
|
+
followUpDate: string;
|
|
45
|
+
followUpStatus: string;
|
|
46
|
+
followUpNote: string;
|
|
44
47
|
geoLocation: GeoLocation;
|
|
45
48
|
files: Array<VasFileDto>;
|
|
46
49
|
fields: FType;
|
|
@@ -49,7 +52,7 @@ export declare abstract class VasJobBaseModel<FType extends Record<string, Field
|
|
|
49
52
|
reports: Array<VasReportDto>;
|
|
50
53
|
tasks: Array<VasTaskDto>;
|
|
51
54
|
instruction: VasInstructionDto | null;
|
|
52
|
-
constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, createdByName: string, modifiedByName: string, account: string, accessGroup: string, reference: string, jobDate: string, jobStatus: string, jobStatusLastUpdate: string, jobType: string, assigneeId: string, formId: string, timeZoneOffset: number, pendingFields: number, childModified: string, version: number, geoLocation: GeoLocation, files: Array<VasFileDto>, fields: FType, jobEmails: Array<VasJobEmailDto>, notes: Array<VasNoteDto>, reports: Array<VasReportDto>, tasks: Array<VasTaskDto>, instruction: VasInstructionDto | null);
|
|
55
|
+
constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, createdByName: string, modifiedByName: string, account: string, accessGroup: string, reference: string, jobDate: string, jobStatus: string, jobStatusLastUpdate: string, jobType: string, assigneeId: string, formId: string, timeZoneOffset: number, pendingFields: number, childModified: string, version: number, followUpDate: string, followUpStatus: string, followUpNote: string, geoLocation: GeoLocation, files: Array<VasFileDto>, fields: FType, jobEmails: Array<VasJobEmailDto>, notes: Array<VasNoteDto>, reports: Array<VasReportDto>, tasks: Array<VasTaskDto>, instruction: VasInstructionDto | null);
|
|
53
56
|
get createdByDisplayName(): string;
|
|
54
57
|
get modifiedByDisplayName(): string;
|
|
55
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vas-job.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"vas-job.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,23 @@ const get_value_by_path_1 = require("../utils/get-value-by-path");
|
|
|
8
8
|
const vas_restricted_account_object_model_1 = require("./vas-restricted-account-object.model");
|
|
9
9
|
const model_1 = require("../model");
|
|
10
10
|
const control_value_1 = require("../control-value");
|
|
11
|
-
const
|
|
12
|
-
const is_plain_object_1 = require("../utils/is-plain-object");
|
|
11
|
+
const utils_1 = require("../utils");
|
|
13
12
|
const vas_field_model_1 = require("./vas-field.model");
|
|
13
|
+
const nullables = new Set([
|
|
14
|
+
'created',
|
|
15
|
+
'modified',
|
|
16
|
+
'reference',
|
|
17
|
+
'jobDate',
|
|
18
|
+
'followUpDate',
|
|
19
|
+
'followUpStatus',
|
|
20
|
+
'followUpNote',
|
|
21
|
+
]);
|
|
14
22
|
let jobStaticProps;
|
|
15
23
|
/**
|
|
16
24
|
* VasJobBaseModel
|
|
17
25
|
*/
|
|
18
26
|
class VasJobBaseModel extends vas_restricted_account_object_model_1.VasRestrictedAccountObjectModel {
|
|
19
|
-
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, accessGroup, reference, jobDate, jobStatus, jobStatusLastUpdate, jobType, assigneeId, formId, timeZoneOffset, pendingFields, childModified, version, geoLocation, files, fields, jobEmails, notes, reports, tasks, instruction) {
|
|
27
|
+
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, accessGroup, reference, jobDate, jobStatus, jobStatusLastUpdate, jobType, assigneeId, formId, timeZoneOffset, pendingFields, childModified, version, followUpDate, followUpStatus, followUpNote, geoLocation, files, fields, jobEmails, notes, reports, tasks, instruction) {
|
|
20
28
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, accessGroup);
|
|
21
29
|
this.id = id;
|
|
22
30
|
this.created = created;
|
|
@@ -40,6 +48,9 @@ class VasJobBaseModel extends vas_restricted_account_object_model_1.VasRestricte
|
|
|
40
48
|
this.pendingFields = pendingFields;
|
|
41
49
|
this.childModified = childModified;
|
|
42
50
|
this.version = version;
|
|
51
|
+
this.followUpDate = followUpDate;
|
|
52
|
+
this.followUpStatus = followUpStatus;
|
|
53
|
+
this.followUpNote = followUpNote;
|
|
43
54
|
this.geoLocation = geoLocation;
|
|
44
55
|
this.files = files;
|
|
45
56
|
this.fields = fields;
|
|
@@ -136,7 +147,6 @@ class VasJobBaseModel extends vas_restricted_account_object_model_1.VasRestricte
|
|
|
136
147
|
if (!value || typeof value !== 'string') {
|
|
137
148
|
return '';
|
|
138
149
|
}
|
|
139
|
-
const fields = this.fields;
|
|
140
150
|
return value.replace(/({[^}]*})/g, (match, token) => {
|
|
141
151
|
const syntax = token.substring(1, token.length - 1);
|
|
142
152
|
let [key, filter] = syntax.split('|');
|
|
@@ -199,7 +209,7 @@ class VasJobBaseModel extends vas_restricted_account_object_model_1.VasRestricte
|
|
|
199
209
|
return Object.assign(Object.assign({}, super.toApiDto()), { reference: this.reference || '~', jobDate: this.jobDate || '~', jobType: this.jobType || '~', accessGroup: this.accessGroup || '~', jobStatus: this.jobStatus || '~', assigneeId: this.assigneeId || '~', timeZoneOffset: this.timeZoneOffset || 0, pendingFields: this.pendingFields || 0, lastForm: this.formId || '~' });
|
|
200
210
|
}
|
|
201
211
|
static toApiPatchDto(item) {
|
|
202
|
-
return (0,
|
|
212
|
+
return (0, utils_1.only)(item, [
|
|
203
213
|
'created',
|
|
204
214
|
'modified',
|
|
205
215
|
'reference',
|
|
@@ -210,8 +220,11 @@ class VasJobBaseModel extends vas_restricted_account_object_model_1.VasRestricte
|
|
|
210
220
|
'assigneeId',
|
|
211
221
|
'timeZoneOffset',
|
|
212
222
|
'pendingFields',
|
|
213
|
-
'formId'
|
|
214
|
-
|
|
223
|
+
'formId',
|
|
224
|
+
'followUpDate',
|
|
225
|
+
'followUpStatus',
|
|
226
|
+
'followUpNote',
|
|
227
|
+
], (value, key) => value[key] === null && nullables.has(key) ? '~' : value[key]);
|
|
215
228
|
}
|
|
216
229
|
}
|
|
217
230
|
exports.VasJobBaseModel = VasJobBaseModel;
|
|
@@ -238,7 +251,7 @@ class VasJobRelationalModel extends VasJobBaseModel {
|
|
|
238
251
|
if (field.value === null) {
|
|
239
252
|
return path.length >= 1 ? undefined : null;
|
|
240
253
|
}
|
|
241
|
-
if ((0,
|
|
254
|
+
if ((0, utils_1.isPlainObject)(field.value)) {
|
|
242
255
|
return (0, get_value_by_path_1.getValueByPath)(path, field.value);
|
|
243
256
|
}
|
|
244
257
|
return undefined;
|
|
@@ -250,10 +263,43 @@ class VasJobRelationalModel extends VasJobBaseModel {
|
|
|
250
263
|
if (dto.fields !== undefined && !Array.isArray(dto.fields)) {
|
|
251
264
|
throw Error('fields must be an array');
|
|
252
265
|
}
|
|
253
|
-
return new VasJobRelationalModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobStatusLastUpdate || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || (0, moment_1.default)().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.geoLocation || (0, model_1.getEmptyGeoLocation)(), dto.files || [], (dto.fields || []).map(f => vas_field_model_1.VasFieldModel.fromDto(f)), dto.jobEmails || [], dto.notes || [], dto.reports || [], dto.tasks || [], dto.instruction || null);
|
|
266
|
+
return new VasJobRelationalModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobStatusLastUpdate || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || (0, moment_1.default)().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.followUpDate || '', dto.followUpStatus || '', dto.followUpNote || '', dto.geoLocation || (0, model_1.getEmptyGeoLocation)(), dto.files || [], (dto.fields || []).map(f => vas_field_model_1.VasFieldModel.fromDto(f)), dto.jobEmails || [], dto.notes || [], dto.reports || [], dto.tasks || [], dto.instruction || null);
|
|
254
267
|
}
|
|
255
268
|
static empty() {
|
|
256
|
-
return new VasJobRelationalModel('',
|
|
269
|
+
return new VasJobRelationalModel('', // id
|
|
270
|
+
'', // created
|
|
271
|
+
'', // serverCreated
|
|
272
|
+
'', // createdBy
|
|
273
|
+
'', // modified
|
|
274
|
+
'', // serverModified
|
|
275
|
+
'', // modifiedBy
|
|
276
|
+
'', // createdByName
|
|
277
|
+
'', // modifiedByName
|
|
278
|
+
'', // account
|
|
279
|
+
'', // accessGroup
|
|
280
|
+
'', // reference
|
|
281
|
+
'', // jobDate
|
|
282
|
+
'', // jobStatus
|
|
283
|
+
'', // jobStatusLastUpdate
|
|
284
|
+
'', // jobType
|
|
285
|
+
'', // assigneeId
|
|
286
|
+
'', // formId
|
|
287
|
+
(0, moment_1.default)().utcOffset(), // timeZoneOffset
|
|
288
|
+
0, // pendingFields: number,
|
|
289
|
+
'', // childModified: string,
|
|
290
|
+
0, // version: number,
|
|
291
|
+
'', // followUpDate: string,
|
|
292
|
+
'', // followUpStatus: string,
|
|
293
|
+
'', // followUpNote: string,
|
|
294
|
+
(0, model_1.getEmptyGeoLocation)(), // geoLocation: GeoLocation,
|
|
295
|
+
[], // files: Array<VasFileDto>,
|
|
296
|
+
[], // fields: FType,
|
|
297
|
+
[], // jobEmails: Array<VasJobEmailDto>,
|
|
298
|
+
[], // notes: Array<VasNoteDto>,
|
|
299
|
+
[], // reports: Array<VasReportDto>,
|
|
300
|
+
[], // tasks: Array<VasTaskDto>,
|
|
301
|
+
null // instruction: VasInstructionDto | null
|
|
302
|
+
);
|
|
257
303
|
}
|
|
258
304
|
toDto() {
|
|
259
305
|
return {
|
|
@@ -279,6 +325,9 @@ class VasJobRelationalModel extends VasJobBaseModel {
|
|
|
279
325
|
pendingFields: this.pendingFields,
|
|
280
326
|
childModified: this.childModified,
|
|
281
327
|
version: this.version,
|
|
328
|
+
followUpDate: this.followUpDate,
|
|
329
|
+
followUpStatus: this.followUpStatus,
|
|
330
|
+
followUpNote: this.followUpNote,
|
|
282
331
|
geoLocation: this.geoLocation,
|
|
283
332
|
files: this.files,
|
|
284
333
|
fields: this.fields.map(f => f.toDto()),
|
|
@@ -293,19 +342,52 @@ class VasJobRelationalModel extends VasJobBaseModel {
|
|
|
293
342
|
exports.VasJobRelationalModel = VasJobRelationalModel;
|
|
294
343
|
class VasJobDocumentModel extends VasJobBaseModel {
|
|
295
344
|
static fromRelationalDto(dto) {
|
|
296
|
-
return new VasJobDocumentModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobStatusLastUpdate || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || (0, moment_1.default)().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.geoLocation || (0, model_1.getEmptyGeoLocation)(), dto.files || [], (dto.fields || []).reduce((p, c) => {
|
|
345
|
+
return new VasJobDocumentModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobStatusLastUpdate || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || (0, moment_1.default)().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.followUpDate || '', dto.followUpStatus || '', dto.followUpNote || '', dto.geoLocation || (0, model_1.getEmptyGeoLocation)(), dto.files || [], (dto.fields || []).reduce((p, c) => {
|
|
297
346
|
p[c.controlName.replace('fields.', '')] = c.value;
|
|
298
347
|
return p;
|
|
299
348
|
}, {}), dto.jobEmails || [], dto.notes || [], dto.reports || [], dto.tasks || [], dto.instruction || null);
|
|
300
349
|
}
|
|
301
350
|
static fromDto(dto) {
|
|
302
|
-
if (dto.fields !== undefined && !(0,
|
|
351
|
+
if (dto.fields !== undefined && !(0, utils_1.isPlainObject)(dto.fields)) {
|
|
303
352
|
throw Error('fields must be an object');
|
|
304
353
|
}
|
|
305
|
-
return new VasJobDocumentModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobStatusLastUpdate || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || (0, moment_1.default)().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.geoLocation || (0, model_1.getEmptyGeoLocation)(), dto.files || [], dto.fields || {}, dto.jobEmails || [], dto.notes || [], dto.reports || [], dto.tasks || [], dto.instruction || null);
|
|
354
|
+
return new VasJobDocumentModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobStatusLastUpdate || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || (0, moment_1.default)().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.followUpDate || '', dto.followUpStatus || '', dto.followUpNote || '', dto.geoLocation || (0, model_1.getEmptyGeoLocation)(), dto.files || [], dto.fields || {}, dto.jobEmails || [], dto.notes || [], dto.reports || [], dto.tasks || [], dto.instruction || null);
|
|
306
355
|
}
|
|
307
356
|
static empty() {
|
|
308
|
-
return new VasJobDocumentModel('',
|
|
357
|
+
return new VasJobDocumentModel('', // id
|
|
358
|
+
'', // created
|
|
359
|
+
'', // serverCreated
|
|
360
|
+
'', // createdBy
|
|
361
|
+
'', // modified
|
|
362
|
+
'', // serverModified
|
|
363
|
+
'', // modifiedBy
|
|
364
|
+
'', // createdByName
|
|
365
|
+
'', // modifiedByName
|
|
366
|
+
'', // account
|
|
367
|
+
'', // accessGroup
|
|
368
|
+
'', // reference
|
|
369
|
+
'', // jobDate
|
|
370
|
+
'', // jobStatus
|
|
371
|
+
'', // jobStatusLastUpdate
|
|
372
|
+
'', // jobType
|
|
373
|
+
'', // assigneeId
|
|
374
|
+
'', // formId
|
|
375
|
+
(0, moment_1.default)().utcOffset(), // timeZoneOffset
|
|
376
|
+
0, // pendingFields: number,
|
|
377
|
+
'', // childModified: string,
|
|
378
|
+
0, // version: number,
|
|
379
|
+
'', // followUpDate: string,
|
|
380
|
+
'', // followUpStatus: string,
|
|
381
|
+
'', // followUpNote: string,
|
|
382
|
+
(0, model_1.getEmptyGeoLocation)(), // geoLocation: GeoLocation,
|
|
383
|
+
[], // files: Array<VasFileDto>,
|
|
384
|
+
{}, // fields: FType,
|
|
385
|
+
[], // jobEmails: Array<VasJobEmailDto>,
|
|
386
|
+
[], // notes: Array<VasNoteDto>,
|
|
387
|
+
[], // reports: Array<VasReportDto>,
|
|
388
|
+
[], // tasks: Array<VasTaskDto>,
|
|
389
|
+
null // instruction: VasInstructionDto | null
|
|
390
|
+
);
|
|
309
391
|
}
|
|
310
392
|
toDto() {
|
|
311
393
|
return {
|
|
@@ -331,6 +413,9 @@ class VasJobDocumentModel extends VasJobBaseModel {
|
|
|
331
413
|
pendingFields: this.pendingFields,
|
|
332
414
|
childModified: this.childModified,
|
|
333
415
|
version: this.version,
|
|
416
|
+
followUpDate: this.followUpDate,
|
|
417
|
+
followUpStatus: this.followUpStatus,
|
|
418
|
+
followUpNote: this.followUpNote,
|
|
334
419
|
geoLocation: this.geoLocation,
|
|
335
420
|
files: this.files,
|
|
336
421
|
fields: this.fields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vas-job.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { isFileDto, VasFileDto } from './vas-file.dto';\nimport moment from 'moment';\nimport { getValueByPath } from '../utils/get-value-by-path';\nimport { VasBaseDto } from './vas-base.dto';\nimport { FieldValueType, VasFieldDto } from './vas-field.dto';\nimport { VasFormModel } from './vas-form.model';\nimport { VasJobBaseDto, VasJobDocumentDto, VasJobRelationalDto } from './vas-job.dto';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { GeoLocation, getEmptyGeoLocation } from '../model';\nimport { isCameraControlValueV1, isCameraControlValueV2, VasCameraControlValueModel } from '../control-value';\nimport { only } from '../utils/only';\nimport { VasReportDto } from './vas-report.dto';\nimport { VasTaskDto } from './vas-task.dto';\nimport { VasNoteDto } from './vas-note.dto';\nimport { VasJobEmailDto } from './vas-job-email.dto';\nimport { VasInstructionDto } from './vas-instruction.dto';\nimport { isPlainObject } from \"../utils/is-plain-object\";\nimport { VasFieldModel } from './vas-field.model';\n\nexport interface ParseSyntaxOptions {\n // This value will be used to adjust any datetime values that are referenced\n // in the syntax string. See\n // https://momentjscom.readthedocs.io/en/latest/moment/03-manipulating/09-utc-offset/\n // for more information about how `moment` will handle the value.\n timeZoneOffset: number,\n // this dictionary can be passed in to contain other objects to be referenced\n // in the syntax. For example if we have {job.foo} this will reference the\n // job's `foo` property, however if we have \"reportLayout.title\" this will\n // expect to find a property of `objects` called `reportLayout` which will\n // have a property called `title`\n objects?: Record<string, Partial<VasBaseDto> | Record<string, FieldValueType>>;\n}\n\nlet jobStaticProps: Set<string> | undefined;\n\n\n/**\n * VasJobBaseModel\n */\nexport abstract class VasJobBaseModel<FType extends Record<string, FieldValueType> | Array<VasFieldModel>> extends VasRestrictedAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: string,\n public jobStatusLastUpdate: string,\n public jobType: string,\n public assigneeId: string,\n public formId: string,\n public timeZoneOffset: number,\n public pendingFields: number,\n public childModified: string,\n public version: number,\n public geoLocation: GeoLocation,\n public files: Array<VasFileDto>,\n public fields: FType,\n public jobEmails: Array<VasJobEmailDto>,\n public notes: Array<VasNoteDto>,\n public reports: Array<VasReportDto>,\n public tasks: Array<VasTaskDto>,\n public instruction: VasInstructionDto | null\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n get createdByDisplayName(): string {\n return this.createdByName;\n }\n\n get modifiedByDisplayName(): string {\n return this.modifiedByName;\n }\n\n /**\n * Return the list of Job properties\n */\n get staticProperties(): Set<string> {\n if (jobStaticProps) {\n return jobStaticProps;\n }\n return jobStaticProps =\n new Set(Object.getOwnPropertyNames(VasJobDocumentModel.empty()));\n }\n\n /**\n * Returns an object describing how many attachments were added to this job\n * (camera controls and files), and how many have not been uploaded yet.\n *\n * @param formModel instance of {@link VasFormModel} that was used when the\n * job was created\n */\n getFilesUploadStatus(\n formModel: VasFormModel\n ): { pending: number; total: number } {\n\n const cameraFieldValues = Object\n .values(this.fields)\n .filter(value => isCameraControlValueV2(value) || isCameraControlValueV1(value));\n\n\n let total = cameraFieldValues.length + this.files.length;\n\n // calculate the number of camera images still to upload\n let pending = cameraFieldValues\n .map((value: VasFileDto | VasCameraControlValueModel) => {\n if (isFileDto(value)) {\n return value.id && value.status !== 'COMPLETE';\n } else if (isCameraControlValueV1(value)) {\n // if url is not set, it hasn't been uploaded\n return value.id && !value.url;\n }\n return false;\n })\n .filter(hasUploaded => hasUploaded)\n .length;\n\n // add count of job.files that are complete\n pending += this.files.filter(value => value.status !== 'COMPLETE').length;\n\n return {\n pending,\n total\n };\n }\n\n /**\n * @param path path segments\n */\n getValueByPath<T>(\n path: string | string[] = []\n ): T | null | undefined {\n return getValueByPath<T>(\n Array.isArray(path) ? path : path.split('.'),\n this\n );\n }\n\n /**\n * This method will parse a syntax that allows us to build strings from the\n * values of from the job model. For example if the job model was:\n *\n * {\n * foo: 'bar'\n * }\n *\n * and we pass \"i am foo {foo}\", the result would be:\n *\n * \"i am foo bar\"\n *\n * we can also use moment to parse dates, for example if the job model was:\n *\n * {\n * created: \"2022-01-01T00:00:00+0000\"\n * }\n *\n * and we pass \"{created|date:YY-MM-DD}\", the result would be:\n *\n * \"2022-01-01\"\n *\n * @param {string} value a string with the syntax\n * @param {ParseSyntaxOptions} options\n * @return the results of parsing the syntax on this job\n */\n parseSyntax(\n value: string,\n options: ParseSyntaxOptions = {\n timeZoneOffset: 0\n }\n ): string {\n\n if (!value || typeof value !== 'string') {\n return '';\n }\n const fields = this.fields;\n return value.replace(/({[^}]*})/g, (match: string, token: string) => {\n const syntax = token.substring(1, token.length - 1);\n\n let [key, filter] = syntax.split('|');\n key = (key || '').trim();\n filter = (filter || '').trim();\n\n let filterName, filterArg: string = '';\n if (filter) {\n const splitIndex = filter.indexOf(':');\n if (splitIndex !== -1) {\n filterName = filter.substring(0, splitIndex);\n filterArg = filter.substring(splitIndex + 1);\n } else {\n filterName = filter;\n filterArg = '';\n }\n filterName = (filterName || '').trim();\n filterArg = (filterArg || '').trim();\n }\n const path = key.split('.');\n const objectKey = path.shift() || '';\n let result = '';\n if (objectKey === 'job') {\n result = (this.getValueByPath(path) || '').toString();\n } else if (objectKey === 'fields') {\n result = (this.getValueByPath(['fields', ...path]) || '').toString();\n } else if (objectKey.length && options.objects && options.objects[objectKey] !== undefined) {\n result = (getValueByPath(path, options.objects[objectKey]) || '').toString();\n } else {\n return '';\n }\n\n if (filterName && result) {\n switch (filterName) {\n case 'date': {\n if (!options.timeZoneOffset) {\n return moment(result).format(filterArg || '');\n } else {\n return moment(result)\n .utcOffset(options.timeZoneOffset)\n .format(filterArg || '');\n }\n }\n default: {\n console.warn('unknown filter %s', filterName);\n }\n }\n }\n\n return result;\n }).trim();\n };\n\n /**\n * @return {object}\n */\n override toApiDto(): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n reference: this.reference || '~',\n jobDate: this.jobDate || '~',\n jobType: this.jobType || '~',\n accessGroup: this.accessGroup || '~',\n jobStatus: this.jobStatus || '~',\n assigneeId: this.assigneeId || '~',\n timeZoneOffset: this.timeZoneOffset || 0,\n pendingFields: this.pendingFields || 0,\n lastForm: this.formId || '~'\n };\n }\n\n public static toApiPatchDto(\n item: Partial<VasJobBaseDto>\n ): Partial<VasJobBaseDto> {\n return only(\n item,\n [\n 'created',\n 'modified',\n 'reference',\n 'jobDate',\n 'jobType',\n 'accessGroup',\n 'jobStatus',\n 'assigneeId',\n 'timeZoneOffset',\n 'pendingFields',\n 'formId'\n ]\n );\n }\n}\n\nexport class VasJobRelationalModel extends VasJobBaseModel<Array<VasFieldModel>> {\n\n override getValueByPath<T>(\n path: string | string[] = []\n ): T | null | undefined {\n const parts = Array.isArray(path) ? path : path.split('.');\n if (parts[0] === 'fields') {\n return this.getFieldValueByPath(parts[1], parts.slice(2)) as T;\n }\n return getValueByPath<T>(parts, this);\n }\n\n getFieldsMap(): Record<string, FieldValueType> {\n return this.fields.reduce((p, c) => {\n p[c.controlName] = c.value;\n return p;\n }, {} as Record<string, FieldValueType>);\n }\n\n getFieldValueByPath<T extends FieldValueType>(\n controlName: string,\n path: string[]\n ): T | null | undefined {\n for (const field of this.fields) {\n if (field.controlName === controlName) {\n if (path.length === 0) {\n return field.value as T;\n }\n if (field.value === null) {\n return path.length >= 1 ? undefined : null;\n }\n if (isPlainObject<object>(field.value)) {\n return getValueByPath(path, field.value);\n }\n return undefined;\n }\n }\n return undefined;\n }\n\n static override fromDto(dto: Partial<VasJobRelationalDto>): VasJobRelationalModel {\n\n if (dto.fields !== undefined && !Array.isArray(dto.fields)) {\n throw Error('fields must be an array');\n }\n\n return new VasJobRelationalModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobStatusLastUpdate || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || (dto as any).lastForm || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.geoLocation || getEmptyGeoLocation(),\n dto.files || [],\n (dto.fields || []).map(f => VasFieldModel.fromDto(f)),\n dto.jobEmails || [],\n dto.notes || [],\n dto.reports || [],\n dto.tasks || [],\n dto.instruction || null\n );\n }\n\n static empty(): VasJobRelationalModel {\n return new VasJobRelationalModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n moment().utcOffset(),\n 0,\n '',\n 0,\n getEmptyGeoLocation(),\n [],\n [],\n [],\n [],\n [],\n [],\n null\n );\n }\n\n public toDto(): VasJobRelationalDto {\n return {\n id: this.id,\n created: this.created,\n createdBy: this.createdBy,\n modified: this.modified,\n modifiedBy: this.modifiedBy,\n serverCreated: this.serverCreated,\n serverModified: this.serverModified,\n createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\n jobStatusLastUpdate: this.jobStatusLastUpdate,\n jobType: this.jobType,\n assigneeId: this.assigneeId,\n formId: this.formId,\n timeZoneOffset: this.timeZoneOffset,\n pendingFields: this.pendingFields,\n childModified: this.childModified,\n version: this.version,\n geoLocation: this.geoLocation,\n files: this.files,\n fields: this.fields.map(f => f.toDto()),\n jobEmails: this.jobEmails,\n notes: this.notes,\n reports: this.reports,\n tasks: this.tasks,\n instruction: this.instruction\n };\n }\n}\n\nexport class VasJobDocumentModel extends VasJobBaseModel<Record<string, FieldValueType>> {\n\n static fromRelationalDto(dto: Partial<VasJobRelationalDto>): VasJobDocumentModel {\n return new VasJobDocumentModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobStatusLastUpdate || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || (dto as any).lastForm || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.geoLocation || getEmptyGeoLocation(),\n dto.files || [],\n (dto.fields || []).reduce((p, c) => {\n p[c.controlName.replace('fields.', '')] = c.value;\n return p;\n }, {} as Record<string, FieldValueType>),\n dto.jobEmails || [],\n dto.notes || [],\n dto.reports || [],\n dto.tasks || [],\n dto.instruction || null\n );\n }\n\n static override fromDto(dto: Partial<VasJobDocumentDto>): VasJobDocumentModel {\n\n if (dto.fields !== undefined && !isPlainObject(dto.fields)) {\n throw Error('fields must be an object');\n }\n\n return new VasJobDocumentModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobStatusLastUpdate || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || (dto as any).lastForm || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.geoLocation || getEmptyGeoLocation(),\n dto.files || [],\n dto.fields || {},\n dto.jobEmails || [],\n dto.notes || [],\n dto.reports || [],\n dto.tasks || [],\n dto.instruction || null\n );\n }\n\n static empty(): VasJobDocumentModel {\n return new VasJobDocumentModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n moment().utcOffset(),\n 0,\n '',\n 0,\n getEmptyGeoLocation(),\n [],\n {},\n [],\n [],\n [],\n [],\n null\n );\n }\n\n public toDto(): VasJobDocumentDto {\n return {\n id: this.id,\n created: this.created,\n createdBy: this.createdBy,\n modified: this.modified,\n modifiedBy: this.modifiedBy,\n serverCreated: this.serverCreated,\n serverModified: this.serverModified,\n createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\n jobStatusLastUpdate: this.jobStatusLastUpdate,\n jobType: this.jobType,\n assigneeId: this.assigneeId,\n formId: this.formId,\n timeZoneOffset: this.timeZoneOffset,\n pendingFields: this.pendingFields,\n childModified: this.childModified,\n version: this.version,\n geoLocation: this.geoLocation,\n files: this.files,\n fields: this.fields,\n jobEmails: this.jobEmails,\n notes: this.notes,\n reports: this.reports,\n tasks: this.tasks,\n instruction: this.instruction\n };\n }\n}\n\n/** @deprecated use either VasJobDocumentModel or VasJobRelationalModel **/\nexport type VasJobModel = VasJobDocumentModel | VasJobRelationalModel;\n"]}
|
|
1
|
+
{"version":3,"file":"vas-job.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { isFileDto, VasFileDto } from './vas-file.dto';\nimport moment from 'moment';\nimport { getValueByPath } from '../utils/get-value-by-path';\nimport { VasBaseDto } from './vas-base.dto';\nimport { FieldValueType } from './vas-field.dto';\nimport { VasFormModel } from './vas-form.model';\nimport { VasJobBaseDto, VasJobDocumentDto, VasJobRelationalDto } from './vas-job.dto';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { GeoLocation, getEmptyGeoLocation } from '../model';\nimport { isCameraControlValueV1, isCameraControlValueV2, VasCameraControlValueModel } from '../control-value';\nimport { isPlainObject, only } from '../utils';\nimport { VasReportDto } from './vas-report.dto';\nimport { VasTaskDto } from './vas-task.dto';\nimport { VasNoteDto } from './vas-note.dto';\nimport { VasJobEmailDto } from './vas-job-email.dto';\nimport { VasInstructionDto } from './vas-instruction.dto';\nimport { VasFieldModel } from './vas-field.model';\n\nconst nullables = new Set([\n 'created',\n 'modified',\n 'reference',\n 'jobDate',\n 'followUpDate',\n 'followUpStatus',\n 'followUpNote',\n]);\n\nexport interface ParseSyntaxOptions {\n // This value will be used to adjust any datetime values that are referenced\n // in the syntax string. See\n // https://momentjscom.readthedocs.io/en/latest/moment/03-manipulating/09-utc-offset/\n // for more information about how `moment` will handle the value.\n timeZoneOffset: number,\n // this dictionary can be passed in to contain other objects to be referenced\n // in the syntax. For example if we have {job.foo} this will reference the\n // job's `foo` property, however if we have \"reportLayout.title\" this will\n // expect to find a property of `objects` called `reportLayout` which will\n // have a property called `title`\n objects?: Record<string, Partial<VasBaseDto> | Record<string, FieldValueType>>;\n}\n\nlet jobStaticProps: Set<string> | undefined;\n\n\n/**\n * VasJobBaseModel\n */\nexport abstract class VasJobBaseModel<FType extends Record<string, FieldValueType> | Array<VasFieldModel>> extends VasRestrictedAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: string,\n public jobStatusLastUpdate: string,\n public jobType: string,\n public assigneeId: string,\n public formId: string,\n public timeZoneOffset: number,\n public pendingFields: number,\n public childModified: string,\n public version: number,\n public followUpDate: string,\n public followUpStatus: string,\n public followUpNote: string,\n public geoLocation: GeoLocation,\n public files: Array<VasFileDto>,\n public fields: FType,\n public jobEmails: Array<VasJobEmailDto>,\n public notes: Array<VasNoteDto>,\n public reports: Array<VasReportDto>,\n public tasks: Array<VasTaskDto>,\n public instruction: VasInstructionDto | null\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n get createdByDisplayName(): string {\n return this.createdByName;\n }\n\n get modifiedByDisplayName(): string {\n return this.modifiedByName;\n }\n\n /**\n * Return the list of Job properties\n */\n get staticProperties(): Set<string> {\n if (jobStaticProps) {\n return jobStaticProps;\n }\n return jobStaticProps =\n new Set(Object.getOwnPropertyNames(VasJobDocumentModel.empty()));\n }\n\n /**\n * Returns an object describing how many attachments were added to this job\n * (camera controls and files), and how many have not been uploaded yet.\n *\n * @param formModel instance of {@link VasFormModel} that was used when the\n * job was created\n */\n getFilesUploadStatus(\n formModel: VasFormModel\n ): { pending: number; total: number } {\n\n const cameraFieldValues = Object\n .values(this.fields)\n .filter(value => isCameraControlValueV2(value) || isCameraControlValueV1(value));\n\n\n let total = cameraFieldValues.length + this.files.length;\n\n // calculate the number of camera images still to upload\n let pending = cameraFieldValues\n .map((value: VasFileDto | VasCameraControlValueModel) => {\n if (isFileDto(value)) {\n return value.id && value.status !== 'COMPLETE';\n } else if (isCameraControlValueV1(value)) {\n // if url is not set, it hasn't been uploaded\n return value.id && !value.url;\n }\n return false;\n })\n .filter(hasUploaded => hasUploaded)\n .length;\n\n // add count of job.files that are complete\n pending += this.files.filter(value => value.status !== 'COMPLETE').length;\n\n return {\n pending,\n total\n };\n }\n\n /**\n * @param path path segments\n */\n getValueByPath<T>(\n path: string | string[] = []\n ): T | null | undefined {\n return getValueByPath<T>(\n Array.isArray(path) ? path : path.split('.'),\n this\n );\n }\n\n /**\n * This method will parse a syntax that allows us to build strings from the\n * values of from the job model. For example if the job model was:\n *\n * {\n * foo: 'bar'\n * }\n *\n * and we pass \"i am foo {foo}\", the result would be:\n *\n * \"i am foo bar\"\n *\n * we can also use moment to parse dates, for example if the job model was:\n *\n * {\n * created: \"2022-01-01T00:00:00+0000\"\n * }\n *\n * and we pass \"{created|date:YY-MM-DD}\", the result would be:\n *\n * \"2022-01-01\"\n *\n * @param {string} value a string with the syntax\n * @param {ParseSyntaxOptions} options\n * @return the results of parsing the syntax on this job\n */\n parseSyntax(\n value: string,\n options: ParseSyntaxOptions = {\n timeZoneOffset: 0\n }\n ): string {\n\n if (!value || typeof value !== 'string') {\n return '';\n }\n return value.replace(/({[^}]*})/g, (match: string, token: string) => {\n const syntax = token.substring(1, token.length - 1);\n\n let [key, filter] = syntax.split('|');\n key = (key || '').trim();\n filter = (filter || '').trim();\n\n let filterName, filterArg: string = '';\n if (filter) {\n const splitIndex = filter.indexOf(':');\n if (splitIndex !== -1) {\n filterName = filter.substring(0, splitIndex);\n filterArg = filter.substring(splitIndex + 1);\n } else {\n filterName = filter;\n filterArg = '';\n }\n filterName = (filterName || '').trim();\n filterArg = (filterArg || '').trim();\n }\n const path = key.split('.');\n const objectKey = path.shift() || '';\n let result = '';\n if (objectKey === 'job') {\n result = (this.getValueByPath(path) || '').toString();\n } else if (objectKey === 'fields') {\n result = (this.getValueByPath(['fields', ...path]) || '').toString();\n } else if (objectKey.length && options.objects && options.objects[objectKey] !== undefined) {\n result = (getValueByPath(path, options.objects[objectKey]) || '').toString();\n } else {\n return '';\n }\n\n if (filterName && result) {\n switch (filterName) {\n case 'date': {\n if (!options.timeZoneOffset) {\n return moment(result).format(filterArg || '');\n } else {\n return moment(result)\n .utcOffset(options.timeZoneOffset)\n .format(filterArg || '');\n }\n }\n default: {\n console.warn('unknown filter %s', filterName);\n }\n }\n }\n\n return result;\n }).trim();\n };\n\n /**\n * @return {object}\n */\n override toApiDto(): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n reference: this.reference || '~',\n jobDate: this.jobDate || '~',\n jobType: this.jobType || '~',\n accessGroup: this.accessGroup || '~',\n jobStatus: this.jobStatus || '~',\n assigneeId: this.assigneeId || '~',\n timeZoneOffset: this.timeZoneOffset || 0,\n pendingFields: this.pendingFields || 0,\n lastForm: this.formId || '~'\n };\n }\n\n public static toApiPatchDto(\n item: Partial<VasJobBaseDto>\n ): Partial<VasJobBaseDto> {\n return only(\n item,\n [\n 'created',\n 'modified',\n 'reference',\n 'jobDate',\n 'jobType',\n 'accessGroup',\n 'jobStatus',\n 'assigneeId',\n 'timeZoneOffset',\n 'pendingFields',\n 'formId',\n 'followUpDate',\n 'followUpStatus',\n 'followUpNote',\n ],\n (value: any, key: keyof VasJobRelationalDto) =>\n value[key] === null && nullables.has(key) ? '~' : value[key]\n );\n }\n}\n\nexport class VasJobRelationalModel extends VasJobBaseModel<Array<VasFieldModel>> {\n\n override getValueByPath<T>(\n path: string | string[] = []\n ): T | null | undefined {\n const parts = Array.isArray(path) ? path : path.split('.');\n if (parts[0] === 'fields') {\n return this.getFieldValueByPath(parts[1], parts.slice(2)) as T;\n }\n return getValueByPath<T>(parts, this);\n }\n\n getFieldsMap(): Record<string, FieldValueType> {\n return this.fields.reduce((p, c) => {\n p[c.controlName] = c.value;\n return p;\n }, {} as Record<string, FieldValueType>);\n }\n\n getFieldValueByPath<T extends FieldValueType>(\n controlName: string,\n path: string[]\n ): T | null | undefined {\n for (const field of this.fields) {\n if (field.controlName === controlName) {\n if (path.length === 0) {\n return field.value as T;\n }\n if (field.value === null) {\n return path.length >= 1 ? undefined : null;\n }\n if (isPlainObject<object>(field.value)) {\n return getValueByPath(path, field.value);\n }\n return undefined;\n }\n }\n return undefined;\n }\n\n static override fromDto(dto: Partial<VasJobRelationalDto>): VasJobRelationalModel {\n\n if (dto.fields !== undefined && !Array.isArray(dto.fields)) {\n throw Error('fields must be an array');\n }\n\n return new VasJobRelationalModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobStatusLastUpdate || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || (dto as any).lastForm || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.followUpDate || '',\n dto.followUpStatus || '',\n dto.followUpNote || '',\n dto.geoLocation || getEmptyGeoLocation(),\n dto.files || [],\n (dto.fields || []).map(f => VasFieldModel.fromDto(f)),\n dto.jobEmails || [],\n dto.notes || [],\n dto.reports || [],\n dto.tasks || [],\n dto.instruction || null\n );\n }\n\n static empty(): VasJobRelationalModel {\n return new VasJobRelationalModel(\n '', // id\n '', // created\n '', // serverCreated\n '', // createdBy\n '', // modified\n '', // serverModified\n '', // modifiedBy\n '', // createdByName\n '', // modifiedByName\n '', // account\n '', // accessGroup\n '', // reference\n '', // jobDate\n '', // jobStatus\n '', // jobStatusLastUpdate\n '', // jobType\n '', // assigneeId\n '', // formId\n moment().utcOffset(), // timeZoneOffset\n 0, // pendingFields: number,\n '', // childModified: string,\n 0, // version: number,\n '', // followUpDate: string,\n '', // followUpStatus: string,\n '', // followUpNote: string,\n getEmptyGeoLocation(), // geoLocation: GeoLocation,\n [], // files: Array<VasFileDto>,\n [], // fields: FType,\n [], // jobEmails: Array<VasJobEmailDto>,\n [], // notes: Array<VasNoteDto>,\n [], // reports: Array<VasReportDto>,\n [], // tasks: Array<VasTaskDto>,\n null // instruction: VasInstructionDto | null\n );\n }\n\n public toDto(): VasJobRelationalDto {\n return {\n id: this.id,\n created: this.created,\n createdBy: this.createdBy,\n modified: this.modified,\n modifiedBy: this.modifiedBy,\n serverCreated: this.serverCreated,\n serverModified: this.serverModified,\n createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\n jobStatusLastUpdate: this.jobStatusLastUpdate,\n jobType: this.jobType,\n assigneeId: this.assigneeId,\n formId: this.formId,\n timeZoneOffset: this.timeZoneOffset,\n pendingFields: this.pendingFields,\n childModified: this.childModified,\n version: this.version,\n followUpDate: this.followUpDate,\n followUpStatus: this.followUpStatus,\n followUpNote: this.followUpNote,\n geoLocation: this.geoLocation,\n files: this.files,\n fields: this.fields.map(f => f.toDto()),\n jobEmails: this.jobEmails,\n notes: this.notes,\n reports: this.reports,\n tasks: this.tasks,\n instruction: this.instruction\n };\n }\n}\n\nexport class VasJobDocumentModel extends VasJobBaseModel<Record<string, FieldValueType>> {\n\n static fromRelationalDto(dto: Partial<VasJobRelationalDto>): VasJobDocumentModel {\n return new VasJobDocumentModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobStatusLastUpdate || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || (dto as any).lastForm || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.followUpDate || '',\n dto.followUpStatus || '',\n dto.followUpNote || '',\n dto.geoLocation || getEmptyGeoLocation(),\n dto.files || [],\n (dto.fields || []).reduce((p, c) => {\n p[c.controlName.replace('fields.', '')] = c.value;\n return p;\n }, {} as Record<string, FieldValueType>),\n dto.jobEmails || [],\n dto.notes || [],\n dto.reports || [],\n dto.tasks || [],\n dto.instruction || null\n );\n }\n\n static override fromDto(dto: Partial<VasJobDocumentDto>): VasJobDocumentModel {\n\n if (dto.fields !== undefined && !isPlainObject(dto.fields)) {\n throw Error('fields must be an object');\n }\n\n return new VasJobDocumentModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobStatusLastUpdate || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || (dto as any).lastForm || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.followUpDate || '',\n dto.followUpStatus || '',\n dto.followUpNote || '',\n dto.geoLocation || getEmptyGeoLocation(),\n dto.files || [],\n dto.fields || {},\n dto.jobEmails || [],\n dto.notes || [],\n dto.reports || [],\n dto.tasks || [],\n dto.instruction || null\n );\n }\n\n static empty(): VasJobDocumentModel {\n return new VasJobDocumentModel(\n '', // id\n '', // created\n '', // serverCreated\n '', // createdBy\n '', // modified\n '', // serverModified\n '', // modifiedBy\n '', // createdByName\n '', // modifiedByName\n '', // account\n '', // accessGroup\n '', // reference\n '', // jobDate\n '', // jobStatus\n '', // jobStatusLastUpdate\n '', // jobType\n '', // assigneeId\n '', // formId\n moment().utcOffset(), // timeZoneOffset\n 0, // pendingFields: number,\n '', // childModified: string,\n 0, // version: number,\n '', // followUpDate: string,\n '', // followUpStatus: string,\n '', // followUpNote: string,\n getEmptyGeoLocation(), // geoLocation: GeoLocation,\n [], // files: Array<VasFileDto>,\n {}, // fields: FType,\n [], // jobEmails: Array<VasJobEmailDto>,\n [], // notes: Array<VasNoteDto>,\n [], // reports: Array<VasReportDto>,\n [], // tasks: Array<VasTaskDto>,\n null // instruction: VasInstructionDto | null\n );\n }\n\n public toDto(): VasJobDocumentDto {\n return {\n id: this.id,\n created: this.created,\n createdBy: this.createdBy,\n modified: this.modified,\n modifiedBy: this.modifiedBy,\n serverCreated: this.serverCreated,\n serverModified: this.serverModified,\n createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\n jobStatusLastUpdate: this.jobStatusLastUpdate,\n jobType: this.jobType,\n assigneeId: this.assigneeId,\n formId: this.formId,\n timeZoneOffset: this.timeZoneOffset,\n pendingFields: this.pendingFields,\n childModified: this.childModified,\n version: this.version,\n followUpDate: this.followUpDate,\n followUpStatus: this.followUpStatus,\n followUpNote: this.followUpNote,\n geoLocation: this.geoLocation,\n files: this.files,\n fields: this.fields,\n jobEmails: this.jobEmails,\n notes: this.notes,\n reports: this.reports,\n tasks: this.tasks,\n instruction: this.instruction\n };\n }\n}\n\n/** @deprecated use either VasJobDocumentModel or VasJobRelationalModel **/\nexport type VasJobModel = VasJobDocumentModel | VasJobRelationalModel;\n"]}
|