@ironcode/vas-lib 0.0.39 → 0.0.41

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.
Files changed (42) hide show
  1. package/cjs/lib/entity/vas-file.dto.d.ts +2 -1
  2. package/cjs/lib/entity/vas-file.dto.d.ts.map +1 -1
  3. package/cjs/lib/entity/vas-file.dto.js.map +1 -1
  4. package/cjs/lib/entity/vas-file.model.d.ts +3 -3
  5. package/cjs/lib/entity/vas-file.model.d.ts.map +1 -1
  6. package/cjs/lib/entity/vas-file.model.js +2 -2
  7. package/cjs/lib/entity/vas-file.model.js.map +1 -1
  8. package/cjs/lib/entity/vas-form.dto.d.ts +1 -0
  9. package/cjs/lib/entity/vas-form.dto.d.ts.map +1 -1
  10. package/cjs/lib/entity/vas-form.dto.js.map +1 -1
  11. package/cjs/lib/entity/vas-form.model.d.ts +2 -21
  12. package/cjs/lib/entity/vas-form.model.d.ts.map +1 -1
  13. package/cjs/lib/entity/vas-form.model.js +5 -23
  14. package/cjs/lib/entity/vas-form.model.js.map +1 -1
  15. package/cjs/lib/entity/vas-job.model.d.ts +11 -1
  16. package/cjs/lib/entity/vas-job.model.d.ts.map +1 -1
  17. package/cjs/lib/entity/vas-job.model.js +48 -1
  18. package/cjs/lib/entity/vas-job.model.js.map +1 -1
  19. package/cjs/lib/entity/vas-job.model.spec-data.d.ts.map +1 -1
  20. package/cjs/lib/entity/vas-job.model.spec-data.js +1 -0
  21. package/cjs/lib/entity/vas-job.model.spec-data.js.map +1 -1
  22. package/cjs/lib/utils/is-array-string.d.ts +2 -0
  23. package/cjs/lib/utils/is-array-string.d.ts.map +1 -0
  24. package/cjs/lib/utils/is-array-string.js +8 -0
  25. package/cjs/lib/utils/is-array-string.js.map +1 -0
  26. package/esm2020/lib/entity/vas-file.dto.mjs +1 -1
  27. package/esm2020/lib/entity/vas-file.model.mjs +3 -3
  28. package/esm2020/lib/entity/vas-form.dto.mjs +1 -1
  29. package/esm2020/lib/entity/vas-form.model.mjs +6 -24
  30. package/esm2020/lib/entity/vas-job.model.mjs +49 -2
  31. package/esm2020/lib/utils/is-array-string.mjs +4 -0
  32. package/fesm2015/ironcode-vas-lib.mjs +56 -26
  33. package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
  34. package/fesm2020/ironcode-vas-lib.mjs +56 -26
  35. package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
  36. package/lib/entity/vas-file.dto.d.ts +2 -1
  37. package/lib/entity/vas-file.model.d.ts +3 -3
  38. package/lib/entity/vas-form.dto.d.ts +1 -0
  39. package/lib/entity/vas-form.model.d.ts +2 -21
  40. package/lib/entity/vas-job.model.d.ts +11 -1
  41. package/lib/utils/is-array-string.d.ts +1 -0
  42. package/package.json +1 -1
@@ -7,6 +7,7 @@ export interface VasFileDtoConfigDto {
7
7
  displayedName?: string;
8
8
  rotation?: number;
9
9
  }
10
+ export declare type VasFileStatus = 'NEW' | 'COMPLETE' | 'AUTH_ERROR' | 'UPLOAD_ERROR' | 'UPDATE_FIREBASE_ERROR';
10
11
  export interface VasFileDto extends VasJobDataDto {
11
12
  name: string;
12
13
  fileSize: number;
@@ -16,7 +17,7 @@ export interface VasFileDto extends VasJobDataDto {
16
17
  url: string;
17
18
  uri: string;
18
19
  message: string;
19
- status: string;
20
+ status: VasFileStatus;
20
21
  controlPath: string;
21
22
  }
22
23
  export declare function isFileDto(object: any): object is VasFileDto;
@@ -1 +1 @@
1
- {"version":3,"file":"vas-file.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,UAAU,CAO3D"}
1
+ {"version":3,"file":"vas-file.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,MAAM,aAAa,GAAG,KAAK,GAAE,UAAU,GAAE,YAAY,GAAE,cAAc,GAAE,uBAAuB,CAAC;AAE7G,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,aAAa,CAAC;IAGtB,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,UAAU,CAO3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"vas-file.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.dto.ts"],"names":[],"mappings":";;;AA6BA,SAAgB,SAAS,CAAC,MAAW;IACnC,OAAO,MAAM,YAAY,MAAM;WAC1B,KAAK,IAAI,MAAM;WACf,KAAK,IAAI,MAAM;WACf,SAAS,IAAI,MAAM;WACnB,QAAQ,IAAI,MAAM;WAClB,aAAa,IAAI,MAAM,CAAA;AAC9B,CAAC;AAPD,8BAOC","sourcesContent":["import { VasJobDataDto } from './vas-job-data.dto';\n\nexport interface VasFileDtoConfigDto {\n displayAs?: string;\n embedLink?: boolean;\n group?: string;\n description?: string;\n displayedName?: string;\n rotation?: number;\n}\n\nexport interface VasFileDto extends VasJobDataDto {\n name: string;\n fileSize: number;\n mimeType: string;\n sequence: number;\n config: string;\n // pre-signed url\n url: string;\n // path to file on device\n uri: string;\n // messages from sync process\n message: string;\n // upload status\n status: string;\n // path to control in form; this will be empty if the file is added to the\n // files array of the job document\n controlPath: string\n}\nexport function isFileDto(object: any): object is VasFileDto {\n return object instanceof Object\n && 'url' in object\n && 'uri' in object\n && 'message' in object\n && 'status' in object\n && 'controlPath' in object\n}\n"]}
1
+ {"version":3,"file":"vas-file.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.dto.ts"],"names":[],"mappings":";;;AA+BA,SAAgB,SAAS,CAAC,MAAW;IACnC,OAAO,MAAM,YAAY,MAAM;WAC1B,KAAK,IAAI,MAAM;WACf,KAAK,IAAI,MAAM;WACf,SAAS,IAAI,MAAM;WACnB,QAAQ,IAAI,MAAM;WAClB,aAAa,IAAI,MAAM,CAAA;AAC9B,CAAC;AAPD,8BAOC","sourcesContent":["import { VasJobDataDto } from './vas-job-data.dto';\n\nexport interface VasFileDtoConfigDto {\n displayAs?: string;\n embedLink?: boolean;\n group?: string;\n description?: string;\n displayedName?: string;\n rotation?: number;\n}\n\nexport declare type VasFileStatus = 'NEW' |'COMPLETE' |'AUTH_ERROR' |'UPLOAD_ERROR' |'UPDATE_FIREBASE_ERROR';\n\nexport interface VasFileDto extends VasJobDataDto {\n name: string;\n fileSize: number;\n mimeType: string;\n sequence: number;\n config: string;\n // pre-signed url\n url: string;\n // path to file on device\n uri: string;\n // messages from sync process\n message: string;\n // upload status\n status: VasFileStatus;\n // path to control in form; this will be empty if the file is added to the\n // files array of the job document\n controlPath: string\n}\nexport function isFileDto(object: any): object is VasFileDto {\n return object instanceof Object\n && 'url' in object\n && 'uri' in object\n && 'message' in object\n && 'status' in object\n && 'controlPath' in object\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { VasFileDto, VasFileDtoConfigDto } from './vas-file.dto';
1
+ import { VasFileDto, VasFileDtoConfigDto, VasFileStatus } from './vas-file.dto';
2
2
  import { VasJobDataModel } from './vas-job-data.model';
3
3
  export interface VasFileModelToApiDtoOptions {
4
4
  contentUploaded: boolean;
@@ -24,9 +24,9 @@ export declare class VasFileModel extends VasJobDataModel {
24
24
  url: string;
25
25
  controlPath: string;
26
26
  message: string;
27
- status: string;
27
+ status: VasFileStatus;
28
28
  uri: string;
29
- constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, account: string, job: string, name: string, fileSize: number, mimeType: string, sequence: number, config: VasFileDtoConfigDto, url: string, controlPath: string, message: string, status: string, uri: string);
29
+ constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, account: string, job: string, name: string, fileSize: number, mimeType: string, sequence: number, config: VasFileDtoConfigDto, url: string, controlPath: string, message: string, status: VasFileStatus, uri: string);
30
30
  static empty(): VasFileModel;
31
31
  static fromDto(fileDto: Partial<VasFileDto>): VasFileModel;
32
32
  static parseConfig(config?: string): VasFileDtoConfigDto;
@@ -1 +1 @@
1
- {"version":3,"file":"vas-file.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,2BAA2B;IAG1C,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAE7B,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,MAAM;IACpB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,mBAAmB;IAC3B,GAAG,EAAE,MAAM;IACX,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;gBAlBF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM;WAeN,KAAK,IAAI,YAAY;WA+BrB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY;IAwBjE,MAAM,CAAC,WAAW,CAAC,MAAM,SAAK,GAAG,mBAAmB;IAepD;;OAEG;IACH,KAAK,IAAI,UAAU;IAwBnB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAoB3C,QAAQ,CACf,OAAO,GAAE,2BAAsD,GAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAgB5C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAM5C"}
1
+ {"version":3,"file":"vas-file.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,2BAA2B;IAG1C,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAE7B,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,MAAM;IACpB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,mBAAmB;IAC3B,GAAG,EAAE,MAAM;IACX,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,MAAM;gBAlBF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM;WAeN,KAAK,IAAI,YAAY;WA+BrB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY;IAwBjE,MAAM,CAAC,WAAW,CAAC,MAAM,SAAK,GAAG,mBAAmB;IAepD;;OAEG;IACH,KAAK,IAAI,UAAU;IAwBnB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAoB3C,QAAQ,CACf,OAAO,GAAE,2BAAsD,GAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAgB5C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAM5C"}
@@ -37,10 +37,10 @@ class VasFileModel extends vas_job_data_model_1.VasJobDataModel {
37
37
  description: '',
38
38
  displayedName: '',
39
39
  rotation: 0
40
- }, '', '', '', '', '');
40
+ }, '', '', '', 'NEW', '');
41
41
  }
42
42
  static fromDto(fileDto) {
43
- return new VasFileModel(fileDto.id || angular2_uuid_1.UUID.UUID(), fileDto.created || '', fileDto.serverCreated || '', fileDto.createdBy || '', fileDto.modified || '', fileDto.serverModified || '', fileDto.modifiedBy || '', fileDto.account || '', fileDto.job || '', fileDto.name || '', fileDto.fileSize || 0, fileDto.mimeType || '', fileDto.sequence || 0, VasFileModel.parseConfig(fileDto.config), fileDto.url || '', fileDto.controlPath || '', fileDto.message || '', fileDto.status || '', fileDto.uri || '');
43
+ return new VasFileModel(fileDto.id || angular2_uuid_1.UUID.UUID(), fileDto.created || '', fileDto.serverCreated || '', fileDto.createdBy || '', fileDto.modified || '', fileDto.serverModified || '', fileDto.modifiedBy || '', fileDto.account || '', fileDto.job || '', fileDto.name || '', fileDto.fileSize || 0, fileDto.mimeType || '', fileDto.sequence || 0, VasFileModel.parseConfig(fileDto.config), fileDto.url || '', fileDto.controlPath || '', fileDto.message || '', fileDto.status || 'NEW', fileDto.uri || '');
44
44
  }
45
45
  static parseConfig(config = '') {
46
46
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"vas-file.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { UUID } from 'angular2-uuid';\nimport { VasFieldDto } from './vas-field.dto';\nimport { VasFileDto, VasFileDtoConfigDto } from './vas-file.dto';\nimport { VasJobDataModel } from './vas-job-data.model';\n\nexport interface VasFileModelToApiDtoOptions {\n // set this to true if the content has already been uploaded to the backend\n // storage\n contentUploaded: boolean;\n}\n\n/**\n * VasFileDto\n */\nexport class VasFileModel extends VasJobDataModel {\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 account: string,\n public override job: string,\n public name: string,\n public fileSize: number,\n public mimeType: string,\n public sequence: number,\n public config: VasFileDtoConfigDto,\n public url: string,\n public controlPath: string,\n public message: string,\n public status: string,\n public uri: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n account,\n job\n );\n }\n\n public static empty(): VasFileModel {\n return new VasFileModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 0,\n '',\n 0,\n {\n displayAs: 'grid',\n embedLink: false,\n group: 'photo',\n description: '',\n displayedName: '',\n rotation: 0\n },\n '',\n '',\n '',\n '',\n ''\n );\n }\n\n public static fromDto(fileDto: Partial<VasFileDto>): VasFileModel {\n return new VasFileModel(\n fileDto.id || UUID.UUID(),\n fileDto.created || '',\n fileDto.serverCreated || '',\n fileDto.createdBy || '',\n fileDto.modified || '',\n fileDto.serverModified || '',\n fileDto.modifiedBy || '',\n fileDto.account || '',\n fileDto.job || '',\n fileDto.name || '',\n fileDto.fileSize || 0,\n fileDto.mimeType || '',\n fileDto.sequence || 0,\n VasFileModel.parseConfig(fileDto.config),\n fileDto.url || '',\n fileDto.controlPath || '',\n fileDto.message || '',\n fileDto.status || '',\n fileDto.uri || '',\n );\n }\n\n static parseConfig(config = ''): VasFileDtoConfigDto {\n try {\n return JSON.parse(config);\n } catch (e) {\n return {\n displayAs: 'grid',\n embedLink: false,\n group: 'photo',\n description: '',\n displayedName: '',\n rotation: 0\n } as VasFileDtoConfigDto;\n }\n }\n\n /**\n * @return {VasFileDto}\n */\n toDto(): VasFileDto {\n return {\n id: this.id,\n created: this.created,\n serverCreated: this.serverCreated,\n createdBy: this.createdBy,\n modified: this.modified,\n serverModified: this.serverModified,\n modifiedBy: this.modifiedBy,\n account: this.account,\n job: this.job,\n name: this.name,\n fileSize: this.fileSize,\n mimeType: this.mimeType,\n sequence: this.sequence,\n config: this.stringifyConfig(this.config),\n url: this.url,\n controlPath: this.controlPath,\n message: this.message,\n status: this.status,\n uri: this.uri,\n };\n }\n\n stringifyConfig(config: VasFileDtoConfigDto): string {\n if (!config) {\n return JSON.stringify({\n displayAs: 'grid',\n embedLink: false,\n group: 'photo',\n description: '',\n displayedName: '',\n rotation: 0\n } as VasFileDtoConfigDto);\n }\n\n try {\n return JSON.stringify(config);\n } catch (e) {\n console.warn(e);\n return '';\n }\n }\n\n override toApiDto(\n options: VasFileModelToApiDtoOptions = {contentUploaded: false}\n ): Record<string, string | number | boolean> {\n const apiDto: Record<string, any> = {\n ...super.toApiDto(),\n name: this.name || '~',\n mimeType: this.mimeType || '~',\n sequence: this.safeNumber(this.sequence),\n config: JSON.stringify(this.config)\n };\n\n if (options.contentUploaded) {\n apiDto['original'] = this.id;\n }\n\n return apiDto;\n }\n\n protected safeNumber(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n return value;\n }\n}\n"]}
1
+ {"version":3,"file":"vas-file.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-file.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { UUID } from 'angular2-uuid';\nimport { VasFieldDto } from './vas-field.dto';\nimport { VasFileDto, VasFileDtoConfigDto, VasFileStatus } from './vas-file.dto';\nimport { VasJobDataModel } from './vas-job-data.model';\n\nexport interface VasFileModelToApiDtoOptions {\n // set this to true if the content has already been uploaded to the backend\n // storage\n contentUploaded: boolean;\n}\n\n/**\n * VasFileDto\n */\nexport class VasFileModel extends VasJobDataModel {\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 account: string,\n public override job: string,\n public name: string,\n public fileSize: number,\n public mimeType: string,\n public sequence: number,\n public config: VasFileDtoConfigDto,\n public url: string,\n public controlPath: string,\n public message: string,\n public status: VasFileStatus,\n public uri: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n account,\n job\n );\n }\n\n public static empty(): VasFileModel {\n return new VasFileModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 0,\n '',\n 0,\n {\n displayAs: 'grid',\n embedLink: false,\n group: 'photo',\n description: '',\n displayedName: '',\n rotation: 0\n },\n '',\n '',\n '',\n 'NEW',\n ''\n );\n }\n\n public static fromDto(fileDto: Partial<VasFileDto>): VasFileModel {\n return new VasFileModel(\n fileDto.id || UUID.UUID(),\n fileDto.created || '',\n fileDto.serverCreated || '',\n fileDto.createdBy || '',\n fileDto.modified || '',\n fileDto.serverModified || '',\n fileDto.modifiedBy || '',\n fileDto.account || '',\n fileDto.job || '',\n fileDto.name || '',\n fileDto.fileSize || 0,\n fileDto.mimeType || '',\n fileDto.sequence || 0,\n VasFileModel.parseConfig(fileDto.config),\n fileDto.url || '',\n fileDto.controlPath || '',\n fileDto.message || '',\n fileDto.status || 'NEW',\n fileDto.uri || '',\n );\n }\n\n static parseConfig(config = ''): VasFileDtoConfigDto {\n try {\n return JSON.parse(config);\n } catch (e) {\n return {\n displayAs: 'grid',\n embedLink: false,\n group: 'photo',\n description: '',\n displayedName: '',\n rotation: 0\n } as VasFileDtoConfigDto;\n }\n }\n\n /**\n * @return {VasFileDto}\n */\n toDto(): VasFileDto {\n return {\n id: this.id,\n created: this.created,\n serverCreated: this.serverCreated,\n createdBy: this.createdBy,\n modified: this.modified,\n serverModified: this.serverModified,\n modifiedBy: this.modifiedBy,\n account: this.account,\n job: this.job,\n name: this.name,\n fileSize: this.fileSize,\n mimeType: this.mimeType,\n sequence: this.sequence,\n config: this.stringifyConfig(this.config),\n url: this.url,\n controlPath: this.controlPath,\n message: this.message,\n status: this.status,\n uri: this.uri,\n };\n }\n\n stringifyConfig(config: VasFileDtoConfigDto): string {\n if (!config) {\n return JSON.stringify({\n displayAs: 'grid',\n embedLink: false,\n group: 'photo',\n description: '',\n displayedName: '',\n rotation: 0\n } as VasFileDtoConfigDto);\n }\n\n try {\n return JSON.stringify(config);\n } catch (e) {\n console.warn(e);\n return '';\n }\n }\n\n override toApiDto(\n options: VasFileModelToApiDtoOptions = {contentUploaded: false}\n ): Record<string, string | number | boolean> {\n const apiDto: Record<string, any> = {\n ...super.toApiDto(),\n name: this.name || '~',\n mimeType: this.mimeType || '~',\n sequence: this.safeNumber(this.sequence),\n config: JSON.stringify(this.config)\n };\n\n if (options.contentUploaded) {\n apiDto['original'] = this.id;\n }\n\n return apiDto;\n }\n\n protected safeNumber(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n return value;\n }\n}\n"]}
@@ -10,5 +10,6 @@ export interface VasFormDto extends VasRestrictedAccountObjectDto {
10
10
  indexName: string;
11
11
  config: string;
12
12
  geoLocationEnabled: boolean;
13
+ filesEnabled: boolean;
13
14
  }
14
15
  //# sourceMappingURL=vas-form.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vas-form.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,MAAM,WAAW,UAAW,SAAQ,6BAA6B;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,OAAO,CAAC;CAC7B"}
1
+ {"version":3,"file":"vas-form.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,MAAM,WAAW,UAAW,SAAQ,6BAA6B;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"vas-form.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.dto.ts"],"names":[],"mappings":"","sourcesContent":["import { VasGroupDto } from './vas-group.dto';\nimport { VasRestrictedAccountObjectDto } from './vas-restricted-account-object.dto';\n\nexport interface VasFormDto extends VasRestrictedAccountObjectDto {\n jobType: string;\n title: string;\n description: string;\n groups: VasGroupDto[];\n dynamicDescriptor: string;\n pipelineName: string;\n indexName: string;\n config: string;\n geoLocationEnabled: boolean;\n}\n"]}
1
+ {"version":3,"file":"vas-form.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.dto.ts"],"names":[],"mappings":"","sourcesContent":["import { VasGroupDto } from './vas-group.dto';\nimport { VasRestrictedAccountObjectDto } from './vas-restricted-account-object.dto';\n\nexport interface VasFormDto extends VasRestrictedAccountObjectDto {\n jobType: string;\n title: string;\n description: string;\n groups: VasGroupDto[];\n dynamicDescriptor: string;\n pipelineName: string;\n indexName: string;\n config: string;\n geoLocationEnabled: boolean;\n filesEnabled: boolean;\n}\n"]}
@@ -27,27 +27,8 @@ export declare class VasFormModel extends VasRestrictedAccountObjectModel {
27
27
  pipelineName: string;
28
28
  config: string;
29
29
  geoLocationEnabled: boolean;
30
- /**
31
- * @param {string} id
32
- * @param {string} created
33
- * @param {string} serverCreated
34
- * @param {string} createdBy
35
- * @param {string} modified
36
- * @param {string} serverModified
37
- * @param {string} modifiedBy
38
- * @param {string} account
39
- * @param {string} accessGroup
40
- * @param {string} jobType
41
- * @param {string} title
42
- * @param {string} description
43
- * @param {VasGroupModel[]} groups
44
- * @param {string} dynamicDescriptor
45
- * @param {string} indexName
46
- * @param {string} pipelineName
47
- * @param {string} config
48
- * @param {boolean} geoLocationEnabled
49
- */
50
- constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, account: string, accessGroup: string, jobType: string, title: string, description: string, groups: VasGroupModel[], dynamicDescriptor: string, indexName: string, pipelineName: string, config: string, geoLocationEnabled: boolean);
30
+ filesEnabled: boolean;
31
+ constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, account: string, accessGroup: string, jobType: string, title: string, description: string, groups: VasGroupModel[], dynamicDescriptor: string, indexName: string, pipelineName: string, config: string, geoLocationEnabled: boolean, filesEnabled: boolean);
51
32
  /**
52
33
  * Returns the name of this form in a "safe" way, i.e. no spaces, special
53
34
  * characters
@@ -1 +1 @@
1
- {"version":3,"file":"vas-form.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,YAAa,SAAQ,+BAA+B;IAsB7C,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IAC5B,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,aAAa,EAAE;IACvB,iBAAiB,EAAE,MAAM;IACzB,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,MAAM;IACd,kBAAkB,EAAE,OAAO;IAtCpC;;;;;;;;;;;;;;;;;;;OAmBG;gBAEe,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EAAE,EACvB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,OAAO;IAepC;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAKtB;IAGD;;;;;;;;OAQG;WACW,eAAe,CAC3B,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,GACxC,YAAY;IAef;;;OAGG;WACW,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY;IAyB7D,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAatE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAc7D;;;;OAIG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAcjE;;;OAGG;IACH,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAa7C;;;OAGG;IACH,oBAAoB,CAClB,QAAQ,EAAE,WAAW,GACpB,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAA;KAAC,CAAC;IAe3D;;OAEG;IACH,KAAK,IAAI,UAAU;CAsBpB"}
1
+ {"version":3,"file":"vas-form.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,YAAa,SAAQ,+BAA+B;IAG7C,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IAC5B,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,aAAa,EAAE;IACvB,iBAAiB,EAAE,MAAM;IACzB,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,MAAM;IACd,kBAAkB,EAAE,OAAO;IAC3B,YAAY,EAAE,OAAO;gBAlBZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EAAE,EACvB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,OAAO,EAC3B,YAAY,EAAE,OAAO;IAe9B;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAKtB;IAGD;;;;;;;;OAQG;WACW,eAAe,CAC3B,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,GACxC,YAAY;IAef;;;OAGG;WACW,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY;IA0B7D,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAatE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAc7D;;;;OAIG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAcjE;;;OAGG;IACH,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAa7C;;;OAGG;IACH,oBAAoB,CAClB,QAAQ,EAAE,WAAW,GACpB,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAA;KAAC,CAAC;IAe3D;;OAEG;IACH,KAAK,IAAI,UAAU;CAuBpB"}
@@ -8,27 +8,7 @@ const vas_group_model_1 = require("./vas-group.model");
8
8
  * VasFormModel
9
9
  */
10
10
  class VasFormModel extends vas_restricted_account_object_model_1.VasRestrictedAccountObjectModel {
11
- /**
12
- * @param {string} id
13
- * @param {string} created
14
- * @param {string} serverCreated
15
- * @param {string} createdBy
16
- * @param {string} modified
17
- * @param {string} serverModified
18
- * @param {string} modifiedBy
19
- * @param {string} account
20
- * @param {string} accessGroup
21
- * @param {string} jobType
22
- * @param {string} title
23
- * @param {string} description
24
- * @param {VasGroupModel[]} groups
25
- * @param {string} dynamicDescriptor
26
- * @param {string} indexName
27
- * @param {string} pipelineName
28
- * @param {string} config
29
- * @param {boolean} geoLocationEnabled
30
- */
31
- constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, jobType, title, description, groups, dynamicDescriptor, indexName, pipelineName, config, geoLocationEnabled) {
11
+ constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, jobType, title, description, groups, dynamicDescriptor, indexName, pipelineName, config, geoLocationEnabled, filesEnabled) {
32
12
  super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup);
33
13
  this.id = id;
34
14
  this.created = created;
@@ -48,6 +28,7 @@ class VasFormModel extends vas_restricted_account_object_model_1.VasRestrictedAc
48
28
  this.pipelineName = pipelineName;
49
29
  this.config = config;
50
30
  this.geoLocationEnabled = geoLocationEnabled;
31
+ this.filesEnabled = filesEnabled;
51
32
  }
52
33
  /**
53
34
  * Returns the name of this form in a "safe" way, i.e. no spaces, special
@@ -90,7 +71,7 @@ class VasFormModel extends vas_restricted_account_object_model_1.VasRestrictedAc
90
71
  static fromDto(dto) {
91
72
  return new VasFormModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.account || '', dto.accessGroup || '', dto.jobType || '', dto.title || '', dto.description || '', (dto.groups || [])
92
73
  .sort((a, b) => a.sequence - b.sequence)
93
- .map(g => vas_group_model_1.VasGroupModel.fromDto(g)), dto.dynamicDescriptor || '', dto.indexName || '', dto.pipelineName || '', dto.config || '', dto.geoLocationEnabled || false);
74
+ .map(g => vas_group_model_1.VasGroupModel.fromDto(g)), dto.dynamicDescriptor || '', dto.indexName || '', dto.pipelineName || '', dto.config || '', dto.geoLocationEnabled || false, dto.filesEnabled || false);
94
75
  }
95
76
  addControlTypesToControl(controlTypes) {
96
77
  const controlTypeModels = controlTypes
@@ -196,7 +177,8 @@ class VasFormModel extends vas_restricted_account_object_model_1.VasRestrictedAc
196
177
  indexName: this.indexName,
197
178
  pipelineName: this.pipelineName,
198
179
  config: this.config,
199
- geoLocationEnabled: this.geoLocationEnabled
180
+ geoLocationEnabled: this.geoLocationEnabled,
181
+ filesEnabled: this.filesEnabled
200
182
  };
201
183
  }
202
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vas-form.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\nimport { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlModel } from './vas-control.model';\nimport { VasFieldDtoValue } from './vas-field.dto';\nimport { VasFormDto } from './vas-form.dto';\nimport { VasGroupModel } from './vas-group.model';\nimport { VasJobModel } from './vas-job.model';\n\n/**\n * VasFormModel\n */\nexport class VasFormModel extends VasRestrictedAccountObjectModel {\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} jobType\n * @param {string} title\n * @param {string} description\n * @param {VasGroupModel[]} groups\n * @param {string} dynamicDescriptor\n * @param {string} indexName\n * @param {string} pipelineName\n * @param {string} config\n * @param {boolean} geoLocationEnabled\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 account: string,\n public override accessGroup: string,\n public jobType: string,\n public title: string,\n public description: string,\n public groups: VasGroupModel[],\n public dynamicDescriptor: string,\n public indexName: string,\n public pipelineName: string,\n public config: string,\n public geoLocationEnabled: boolean\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n account,\n accessGroup\n );\n }\n\n /**\n * Returns the name of this form in a \"safe\" way, i.e. no spaces, special\n * characters\n * @return {string}\n */\n get safeTitle(): string {\n return this.title\n .replace(/[^a-z0-9]/gi, '-')\n .replace(/-+/g, '-')\n .toLowerCase();\n }\n\n\n /**\n * The VAS API response for Form will inline Group and Control but not\n * ControlType. This method is a help which will allows us to construct an\n * instance of VasFormModel with the ControlType model set appropriately into\n * each VasControlModel\n * @param {VasFormDto} formDto\n * @param {Array<VasControlTypeDto>} controlTypeDtos\n * @return {VasFormModel}\n */\n public static fromApiResponse(\n formDto: VasFormDto,\n controlTypeDtos: Array<VasControlTypeDto>\n ): VasFormModel {\n const controlTypeModels = controlTypeDtos\n .map(ctDto => VasControlTypeModel.fromDto(ctDto));\n const formModel = VasFormModel.fromDto(formDto);\n formModel.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n control.controlTypeModel = controlTypeModels\n .find(ct => ct.id === control.controlType);\n });\n });\n return formModel;\n }\n\n /**\n * @param {VasFormDto} dto\n * @return {VasFormModel}\n */\n public static fromDto(dto: Partial<VasFormDto>): VasFormModel {\n return new VasFormModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.jobType || '',\n dto.title || '',\n dto.description || '',\n (dto.groups || [])\n .sort((a, b) => a.sequence - b.sequence)\n .map(g => VasGroupModel.fromDto(g)),\n dto.dynamicDescriptor || '',\n dto.indexName || '',\n dto.pipelineName || '',\n dto.config || '',\n dto.geoLocationEnabled || false\n );\n }\n\n addControlTypesToControl(controlTypes: Array<VasControlTypeDto>): void {\n const controlTypeModels = controlTypes\n .map(ct => VasControlTypeModel.fromDto(ct))\n this.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n control.controlTypeModel = controlTypeModels\n .find(ctm => ctm.id === control.controlType)\n });\n });\n }\n\n /**\n * @param {string} id\n * @return {VasControlModel | undefined}\n */\n findControlModelById(id: string): VasControlModel | undefined {\n let result;\n this.groups\n .find(group => group.controls\n .find(control => {\n if (control.id !== id) {\n return;\n }\n result = control;\n return true;\n }));\n return result;\n }\n\n /**\n *\n * @param {string} name\n * @return {VasControlModel | undefined}\n */\n findControlModelByName(name: string): VasControlModel | undefined {\n let result;\n this.groups\n .find(group => group.controls\n .find(control => {\n if (control.name !== name) {\n return;\n }\n result = control;\n return true;\n }));\n return result;\n }\n\n /**\n *\n * @return {Array<Array<string>>}\n */\n getCameraControlPaths(): Array<Array<string>> {\n const paths: string[][] = [];\n this.groups.forEach(group => {\n group.controls.forEach(control => {\n if (control.controlTypeModel?.name !== 'camera') {\n return;\n }\n paths.push([group.name, control.safeName]);\n });\n });\n return paths;\n }\n\n /**\n * @param {VasJobModel} jobModel\n * @return {Array<{id: string, value: VasFieldDtoValue}>}\n */\n getValuesByControlId(\n jobModel: VasJobModel\n ): Array<{id: string, value: VasFieldDtoValue | undefined}> {\n const items: Array<{id: string, value: VasFieldDtoValue | undefined}> = [];\n this.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n items.push({\n id: control.id,\n value: jobModel.getValueByPath([group.name, control.safeName])\n });\n });\n });\n return items;\n }\n\n /**\n * @return {VasFormDto}\n */\n toDto(): VasFormDto {\n return {\n id: this.id,\n created: this.created,\n serverCreated: this.serverCreated,\n createdBy: this.createdBy,\n modified: this.modified,\n serverModified: this.serverModified,\n modifiedBy: this.modifiedBy,\n account: this.account,\n accessGroup: this.accessGroup,\n jobType: this.jobType,\n title: this.title,\n description: this.description,\n groups: this.groups.map(group => group.toDto()),\n dynamicDescriptor: this.dynamicDescriptor,\n indexName: this.indexName,\n pipelineName: this.pipelineName,\n config: this.config,\n geoLocationEnabled: this.geoLocationEnabled\n };\n }\n}\n\n"]}
1
+ {"version":3,"file":"vas-form.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\nimport { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlModel } from './vas-control.model';\nimport { VasFieldDtoValue } from './vas-field.dto';\nimport { VasFormDto } from './vas-form.dto';\nimport { VasGroupModel } from './vas-group.model';\nimport { VasJobModel } from './vas-job.model';\n\n/**\n * VasFormModel\n */\nexport class VasFormModel 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 account: string,\n public override accessGroup: string,\n public jobType: string,\n public title: string,\n public description: string,\n public groups: VasGroupModel[],\n public dynamicDescriptor: string,\n public indexName: string,\n public pipelineName: string,\n public config: string,\n public geoLocationEnabled: boolean,\n public filesEnabled: boolean\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n account,\n accessGroup\n );\n }\n\n /**\n * Returns the name of this form in a \"safe\" way, i.e. no spaces, special\n * characters\n * @return {string}\n */\n get safeTitle(): string {\n return this.title\n .replace(/[^a-z0-9]/gi, '-')\n .replace(/-+/g, '-')\n .toLowerCase();\n }\n\n\n /**\n * The VAS API response for Form will inline Group and Control but not\n * ControlType. This method is a help which will allows us to construct an\n * instance of VasFormModel with the ControlType model set appropriately into\n * each VasControlModel\n * @param {VasFormDto} formDto\n * @param {Array<VasControlTypeDto>} controlTypeDtos\n * @return {VasFormModel}\n */\n public static fromApiResponse(\n formDto: VasFormDto,\n controlTypeDtos: Array<VasControlTypeDto>\n ): VasFormModel {\n const controlTypeModels = controlTypeDtos\n .map(ctDto => VasControlTypeModel.fromDto(ctDto));\n const formModel = VasFormModel.fromDto(formDto);\n formModel.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n control.controlTypeModel = controlTypeModels\n .find(ct => ct.id === control.controlType);\n });\n });\n return formModel;\n }\n\n /**\n * @param {VasFormDto} dto\n * @return {VasFormModel}\n */\n public static fromDto(dto: Partial<VasFormDto>): VasFormModel {\n return new VasFormModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.jobType || '',\n dto.title || '',\n dto.description || '',\n (dto.groups || [])\n .sort((a, b) => a.sequence - b.sequence)\n .map(g => VasGroupModel.fromDto(g)),\n dto.dynamicDescriptor || '',\n dto.indexName || '',\n dto.pipelineName || '',\n dto.config || '',\n dto.geoLocationEnabled || false,\n dto.filesEnabled || false\n );\n }\n\n addControlTypesToControl(controlTypes: Array<VasControlTypeDto>): void {\n const controlTypeModels = controlTypes\n .map(ct => VasControlTypeModel.fromDto(ct))\n this.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n control.controlTypeModel = controlTypeModels\n .find(ctm => ctm.id === control.controlType)\n });\n });\n }\n\n /**\n * @param {string} id\n * @return {VasControlModel | undefined}\n */\n findControlModelById(id: string): VasControlModel | undefined {\n let result;\n this.groups\n .find(group => group.controls\n .find(control => {\n if (control.id !== id) {\n return;\n }\n result = control;\n return true;\n }));\n return result;\n }\n\n /**\n *\n * @param {string} name\n * @return {VasControlModel | undefined}\n */\n findControlModelByName(name: string): VasControlModel | undefined {\n let result;\n this.groups\n .find(group => group.controls\n .find(control => {\n if (control.name !== name) {\n return;\n }\n result = control;\n return true;\n }));\n return result;\n }\n\n /**\n *\n * @return {Array<Array<string>>}\n */\n getCameraControlPaths(): Array<Array<string>> {\n const paths: string[][] = [];\n this.groups.forEach(group => {\n group.controls.forEach(control => {\n if (control.controlTypeModel?.name !== 'camera') {\n return;\n }\n paths.push([group.name, control.safeName]);\n });\n });\n return paths;\n }\n\n /**\n * @param {VasJobModel} jobModel\n * @return {Array<{id: string, value: VasFieldDtoValue}>}\n */\n getValuesByControlId(\n jobModel: VasJobModel\n ): Array<{id: string, value: VasFieldDtoValue | undefined}> {\n const items: Array<{id: string, value: VasFieldDtoValue | undefined}> = [];\n this.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n items.push({\n id: control.id,\n value: jobModel.getValueByPath([group.name, control.safeName])\n });\n });\n });\n return items;\n }\n\n /**\n * @return {VasFormDto}\n */\n toDto(): VasFormDto {\n return {\n id: this.id,\n created: this.created,\n serverCreated: this.serverCreated,\n createdBy: this.createdBy,\n modified: this.modified,\n serverModified: this.serverModified,\n modifiedBy: this.modifiedBy,\n account: this.account,\n accessGroup: this.accessGroup,\n jobType: this.jobType,\n title: this.title,\n description: this.description,\n groups: this.groups.map(group => group.toDto()),\n dynamicDescriptor: this.dynamicDescriptor,\n indexName: this.indexName,\n pipelineName: this.pipelineName,\n config: this.config,\n geoLocationEnabled: this.geoLocationEnabled,\n filesEnabled: this.filesEnabled\n };\n }\n}\n\n"]}
@@ -105,6 +105,17 @@ export declare class VasJobModel extends VasRestrictedAccountObjectModel {
105
105
  * @return {Record<string, VasFieldDtoValue>}
106
106
  */
107
107
  getFields2(): Record<string, VasFieldDtoValue>;
108
+ /**
109
+ * Returns an object describing how many attachments were added to this job
110
+ * (camera controls and files), and how many have not been uploaded yet.
111
+ *
112
+ * @param formModel instance of {@link VasFormModel} that was used when the
113
+ * job was created
114
+ */
115
+ getFilesUploadStatus(formModel: VasFormModel): {
116
+ pending: number;
117
+ total: number;
118
+ };
108
119
  /**
109
120
  * This method will hydrate the `fields` property of the model. The reason for
110
121
  * this is that we have different ways to store the field data. One way, is
@@ -187,7 +198,6 @@ export declare class VasJobModel extends VasRestrictedAccountObjectModel {
187
198
  */
188
199
  hydrateFields(formModel: VasFormModel, controlFieldIdMap?: Map<string, string>, controlNames?: Array<string>): void;
189
200
  /**
190
-
191
201
  * @param {string[]} path path segments
192
202
  * @return {void}
193
203
  */
@@ -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":"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"}
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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"}
@@ -2,12 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VasJobModel = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const vas_file_dto_1 = require("./vas-file.dto");
5
6
  const angular2_uuid_1 = require("angular2-uuid");
6
7
  const moment_1 = tslib_1.__importDefault(require("moment"));
7
8
  const get_value_by_path_1 = require("../utils/get-value-by-path");
8
9
  const vas_field_model_1 = require("./vas-field.model");
9
10
  const vas_restricted_account_object_model_1 = require("./vas-restricted-account-object.model");
10
11
  const geo_location_1 = require("../model/geo-location");
12
+ const vas_camera_control_value_model_1 = require("../control-value/vas-camera-control-value.model");
13
+ const is_array_string_1 = require("../utils/is-array-string");
11
14
  /**
12
15
  * JobModel
13
16
  */
@@ -148,6 +151,51 @@ class VasJobModel extends vas_restricted_account_object_model_1.VasRestrictedAcc
148
151
  }, {});
149
152
  return fields;
150
153
  }
154
+ /**
155
+ * Returns an object describing how many attachments were added to this job
156
+ * (camera controls and files), and how many have not been uploaded yet.
157
+ *
158
+ * @param formModel instance of {@link VasFormModel} that was used when the
159
+ * job was created
160
+ */
161
+ getFilesUploadStatus(formModel) {
162
+ const pathsWithValue = formModel
163
+ .getCameraControlPaths()
164
+ .map(path => {
165
+ const value = this.getValueByPath(path);
166
+ if (value && !!value.id) {
167
+ return path;
168
+ }
169
+ return null;
170
+ })
171
+ .filter(path => path !== null ? path : null)
172
+ .filter(is_array_string_1.isArrayString);
173
+ let total = pathsWithValue.length;
174
+ total += this.files.length;
175
+ // calculate the number of camera images still to upload
176
+ let pending = pathsWithValue
177
+ .map(path => this.getValueByPath(path))
178
+ .map((value) => {
179
+ if ((0, vas_file_dto_1.isFileDto)(value)) {
180
+ return value.id && value.status !== 'COMPLETE';
181
+ }
182
+ else if ((0, vas_camera_control_value_model_1.isCameraControlValueV1)(value)) {
183
+ // if url is not set, it hasn't been uploaded
184
+ return value.id && !value.url;
185
+ }
186
+ return false;
187
+ })
188
+ .filter(hasUploaded => hasUploaded)
189
+ .length;
190
+ // add total from files that are pending
191
+ pending += this.files
192
+ .filter(value => value.status !== 'COMPLETE')
193
+ .length;
194
+ return {
195
+ pending,
196
+ total
197
+ };
198
+ }
151
199
  /**
152
200
  * This method will hydrate the `fields` property of the model. The reason for
153
201
  * this is that we have different ways to store the field data. One way, is
@@ -257,7 +305,6 @@ class VasJobModel extends vas_restricted_account_object_model_1.VasRestrictedAcc
257
305
  this.fields = fields;
258
306
  }
259
307
  /**
260
-
261
308
  * @param {string[]} path path segments
262
309
  * @return {void}
263
310
  */
@@ -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 { VasFileDto } from './vas-file.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment';\nimport { getValueByPath } from '../utils/get-value-by-path';\nimport { VasBaseDto } from './vas-base.dto';\nimport { VasFieldDto, VasFieldDtoValue } from './vas-field.dto';\nimport { VasFieldModel } from './vas-field.model';\nimport { VasFormModel } from './vas-form.model';\nimport { VasJobDto } from './vas-job.dto';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { GeoLocation, getEmptyGeoLocation } from '../model/geo-location';\n\nexport declare interface VasJobModelDynamicInterface {\n [s: string]: string | number | Record<string, VasFieldDtoValue>;\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, VasFieldDtoValue>>;\n}\n\n/**\n * JobModel\n */\nexport class VasJobModel extends VasRestrictedAccountObjectModel {\n /**\n * @param id\n * @param created\n * @param serverCreated\n * @param createdBy\n * @param modified\n * @param serverModified\n * @param modifiedBy\n * @param account\n * @param accessGroup\n * @param reference\n * @param jobDate\n * @param jobStatus\n * @param jobType\n * @param assigneeId\n * @param formId\n * @param timeZoneOffset\n * @param pendingFields\n * @param childModified\n * @param version\n * @param fields\n * @param files,\n * @param createdByDisplayName\n * @param modifiedByDisplayName\n * @param geoLocation\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 account: string,\n public override accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: 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 fields: Array<VasFieldDto>,\n public files: Array<VasFileDto>,\n public createdByDisplayName: string,\n public modifiedByDisplayName: string,\n public geoLocation: GeoLocation\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n account,\n accessGroup\n );\n }\n\n /**\n * Returns this with the dynamic interface\n * @return {VasJobModelDynamicInterface}\n */\n get $this(): VasJobModelDynamicInterface {\n return this as any;\n }\n\n /**\n * Returns a list of Job dynamic properties i.e. those that are added by the\n * dynamic forms\n */\n get dynamicProperties(): Array<string> {\n const nativeProps = this.staticProperties;\n return Object\n .getOwnPropertyNames(this)\n .filter(prop => !nativeProps.includes(prop));\n }\n\n /**\n * Returns a list of Job static properties i.e. those that are declared by\n * the type\n */\n get staticProperties(): Array<string> {\n return Object.getOwnPropertyNames(VasJobModel.empty());\n }\n\n /**\n * @return {VasJobModel}\n */\n public static empty(): VasJobModel {\n return new VasJobModel(\n // eslint-disable-next-line new-cap\n UUID.UUID(),\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n moment().utcOffset(),\n 0,\n '',\n 0,\n [],\n [],\n '',\n '',\n getEmptyGeoLocation()\n );\n }\n\n /**\n * @param {VasJobDto} jobDto\n * @return {VasJobModel}\n */\n public static fromDto(jobDto: Partial<VasJobDto>): VasJobModel {\n const model = new VasJobModel(\n // eslint-disable-next-line new-cap\n jobDto.id || UUID.UUID(),\n jobDto.created || '',\n jobDto.serverCreated || '',\n jobDto.createdBy || '',\n jobDto.modified || '',\n jobDto.serverModified || '',\n jobDto.modifiedBy || '',\n jobDto.account || '',\n jobDto.accessGroup || '',\n jobDto.reference || '',\n jobDto.jobDate || '',\n jobDto.jobStatus || '',\n jobDto.jobType || '',\n jobDto.assigneeId || '',\n jobDto.formId || '',\n jobDto.timeZoneOffset || moment().utcOffset(),\n jobDto.pendingFields || 0,\n jobDto.childModified || '',\n jobDto.version || 0,\n jobDto.fields || [],\n jobDto.files || [],\n jobDto.createdByDisplayName || '',\n jobDto.modifiedByDisplayName || '',\n jobDto.geoLocation || getEmptyGeoLocation()\n );\n const emptyKeys = model.staticProperties;\n Object\n .keys(jobDto)\n .filter(key => emptyKeys.indexOf(key) === -1)\n .forEach((key: string) =>\n model.$this[key] = (jobDto as VasJobModelDynamicInterface)[key]\n );\n return model;\n }\n\n /**\n * @param {VasFormModel} formModel\n * @return {Record<string, VasFieldDtoValue>}\n */\n getFields(formModel: VasFormModel): Record<string, VasFieldDtoValue> {\n const fields: {[key: string]: VasFieldDtoValue} = {};\n formModel.groups\n .forEach(group => {\n group.controls.forEach(control => {\n (fields)[control.reportTemplateName] =\n this.getValueByPath([group.name, control.name]);\n });\n });\n return fields;\n }\n\n /**\n * Will return an object whose keys are the names of all fields in the job but\n * with the \"fields.\" part removed. This method is similar to `getFields`\n * except that this method will only return values that are set whereas\n * `getFields` will return a property regardless (because it uses the form to\n * drive the logic)\n * @return {Record<string, VasFieldDtoValue>}\n */\n getFields2(): Record<string, VasFieldDtoValue> {\n let fields: {[key: string]: VasFieldDtoValue} = {};\n this.dynamicProperties\n .forEach((groupName) => {\n Object\n .keys(this.$this[groupName])\n .forEach(controlName => {\n const controlNameShort = controlName.replace(/fields\\./, '');\n fields[controlNameShort] = this.getValueByPath(\n [groupName, controlName]\n )\n })\n }, {})\n return fields;\n }\n\n /**\n * This method will hydrate the `fields` property of the model. The reason for\n * this is that we have different ways to store the field data. One way, is\n * we store them as dynamic properties of the job. For example job.foo.bar,\n * where `foo` is the name of a Group, and `bar` is the name of a control.\n * Thus, when we create a job using a form in the client, the job object will\n * have its static properties (id, account, reference etc), and also a number\n * of dynamic properties determined by the Groups and Controls. This kind of\n * object is nice to work with in certain circumstances. However, the api\n * works differently. In the API a Job is a record, and references a number of\n * Field records. Each Field stores the value. Comparing these two models we\n * have:\n * A) job with dynamic properties, e.g.\n * {\n * id: <guid>,\n * reference: \"something\"\n * <other static job properties>...\n * foo: {\n * bar: \"value\"\n * }\n * }\n *\n * B) job with fields\n * {\n * id: <guid>,\n * reference: \"something\"\n * <other static job properties>...\n * <will not have dynamic properties>...\n * fields: [\n * {\n * id: <guid>,\n * <other field properties>,\n * value: \"value\"\n * }\n * ]\n * }\n *\n * So, what this method does is given a JobModel in the form of A, read all\n * of those dynamic properties and set them into `fields`. Doing this requires\n * knowledge of the Form that was used to create the job. Moreover, since the\n * dynamic properties do not contain the ids of the fields, we also allow to\n * pass in a `controlFieldIdMap`. This map stores the mapping between Control\n * and the Field that was created in the Job to store the value for that\n * Control. This is useful, if for example you want to compare a Job in form A\n * with a Job in form B, for example if you want to update the Job on the API\n * with a Job that was saved by a client in form A.\n *\n * E.g.\n * Client -> API: client requests form\n * User -> Client: user fills in the form and submits\n * Client -> Firestore: client saves the Job in form A i.e. dynamic props\n * Firestore -> Function: A function is triggered to sync the job to the API\n * Function -> API: Function checks if job already exists, it receives 404\n * Function -> Function: The function calls `hydrateFields(...)`\n * Function -> API: The function POST the Job to /jobs\n * Function -> API: The function POST each field to /fields\n *\n * Similarly, if the user updates the job\n * Client -> API: client requests form\n * User -> Client: user fills in the form and submits an update\n * Client -> Firestore: client saves the Job in form A i.e. dynamic props\n * Firestore -> Function: A function is triggered to sync the job to the API\n * Function -> API: Function checks if job already exists, it receives 200\n * Function -> Function: The function calls `hydrateFields(...)` passing in\n * the map is made by iterating over the fields it\n * received from the API and storing the mappings\n * between controlId and fieldId for each field\n * Function -> API: The function PATCH the Job to /jobs\n * Function -> API: The function POST/PATCH each field to /fields\n * treated as new\n *\n * @param {VasFormModel} formModel the VasFormModel that was used to create\n * the job\n * @param {Map<string, string>} controlFieldIdMap a mapping of control to\n * field ids. This is used to determine whether a new id for the field should\n * be generated, or to reuse an existing one from the map.\n * @param {Array<string>} controlNames if a value is provided, it will be used\n * to filter the fields that are returned.\n * @return {Array<VasFieldDto>}\n */\n hydrateFields(\n formModel: VasFormModel,\n controlFieldIdMap: Map<string, string> = new Map<string, string>(),\n controlNames?: Array<string>\n ): void {\n const fields: Array<VasFieldDto> = [];\n formModel.groups\n .forEach(group => {\n group.controls.forEach(control => {\n\n if (!control.name.startsWith('fields.')) {\n return;\n }\n\n if (controlNames && !controlNames.includes(control.name)) {\n return;\n }\n\n fields.push(VasFieldModel.fromDto({\n // if the controlId exists in the map, use the associated fieldId,\n // otherwise generate a new id for the field.\n id: controlFieldIdMap.get(control.id) || UUID.UUID(),\n account: this.account,\n job: this.id,\n createdBy: this.createdBy,\n created: this.created,\n modifiedBy: this.modifiedBy,\n modified: this.modified,\n control: control.id,\n value: this.getValueByPath(\n [group.name, control.name]\n )\n }));\n });\n });\n this.fields = fields;\n }\n\n /**\n\n * @param {string[]} path path segments\n * @return {void}\n */\n getValueByPath<T extends VasFieldDtoValue>(\n path: string[] = []\n ): T | undefined {\n return getValueByPath(path, this.$this);\n }\n\n /**\n * A very non sophisticated way to set values in the job via paths\n *\n * For example:\n *\n * setValueByPath('value', ['foo', 'bar']);\n *\n * will make results in job\n * {\n * foo: {\n * bar: 'value'\n * }\n * }\n *\n * @param {any} value the value to set\n * @param {string[]} path path segments\n */\n setValueByPath(value: VasFieldDtoValue, path: string[] = []): void {\n switch (path.length) {\n case 0: {\n return;\n }\n case 1: {\n (this as any)[path[0]] = value;\n return;\n }\n case 2: {\n // eslint-disable-next-line max-len\n (this.$this[path[0]] as Record<string, VasFieldDtoValue>)[path[1]] = value;\n return;\n }\n case 3: {\n // eslint-disable-next-line max-len\n ((this.$this[path[0]] as Record<string, VasFieldDtoValue>)[path[1]] as Record<string, VasFieldDtoValue>)[path[2]] = value;\n return;\n }\n default: {\n throw Error('path has too many segments');\n }\n }\n }\n\n /**\n * @param {boolean} staticOnly if true, will only output values for the static\n * properties in the dto\n * @return {VasJobDto}\n */\n public toDto(staticOnly = false): VasJobDto {\n\n if (staticOnly) {\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 account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\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 fields: this.fields,\n files: this.files,\n createdByDisplayName: this.createdByDisplayName,\n modifiedByDisplayName: this.modifiedByDisplayName,\n geoLocation: this.geoLocation\n };\n }\n\n const dto = {} as VasJobModelDynamicInterface;\n [...this.staticProperties, ...this.dynamicProperties]\n .forEach(prop =>\n (dto)[prop] = this.$this[prop]);\n\n return dto as any;\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 {string} 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 = (getValueByPath(path, this.getFields2()) || '').toString();\n } else if (objectKey.length) {\n if (options.objects) {\n if (options.objects[objectKey] === undefined) {\n console.debug(\n `objectKey ${objectKey} is not present in options.object`\n );\n result = '';\n } else {\n result = (getValueByPath(path, options.objects[objectKey]) || '')\n .toString();\n }\n } else {\n console.debug(\n `objectKey ${objectKey} was used but options.object is not set`\n );\n return '';\n }\n } else {\n return '';\n }\n\n\n if (filterName && result) {\n switch (filterName) {\n case 'date': {\n return moment(result)\n .utcOffset(options.timeZoneOffset)\n .format(filterArg || '');\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"]}
1
+ {"version":3,"file":"vas-job.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":";;;;AAAA,iDAAuD;AACvD,iDAAqC;AACrC,4DAA4B;AAC5B,kEAA4D;AAG5D,uDAAkD;AAGlD,+FAAwF;AACxF,wDAAyE;AACzE,oGAAqH;AACrH,8DAAyD;AAoBzD;;GAEG;AACH,MAAa,WAAY,SAAQ,qEAA+B;IAC9D;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YACkB,EAAU,EACV,OAAe,EACf,aAAqB,EACrB,SAAiB,EACjB,QAAgB,EAChB,cAAsB,EACtB,UAAkB,EAClB,OAAe,EACf,WAAmB,EAC5B,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,OAAe,EACf,UAAkB,EAClB,MAAc,EACd,cAAsB,EACtB,aAAqB,EACrB,aAAqB,EACrB,OAAe,EACf,MAA0B,EAC1B,KAAwB,EACxB,oBAA4B,EAC5B,qBAA6B,EAC7B,WAAwB;QAE/B,KAAK,CACH,EAAE,EACF,OAAO,EACP,aAAa,EACb,SAAS,EACT,QAAQ,EACR,cAAc,EACd,UAAU,EACV,OAAO,EACP,WAAW,CACZ,CAAC;QAnCc,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAQ;QACf,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAQ;QACjB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAQ;QAC5B,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAQ;QACtB,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAAQ;QACrB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAoB;QAC1B,UAAK,GAAL,KAAK,CAAmB;QACxB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,0BAAqB,GAArB,qBAAqB,CAAQ;QAC7B,gBAAW,GAAX,WAAW,CAAa;IAajC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,iBAAiB;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1C,OAAO,MAAM;aACV,mBAAmB,CAAC,IAAI,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,IAAI,gBAAgB;QAClB,OAAO,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,WAAW;QACpB,mCAAmC;QACnC,oBAAI,CAAC,IAAI,EAAE,EACX,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAA,gBAAM,GAAE,CAAC,SAAS,EAAE,EACpB,CAAC,EACD,EAAE,EACF,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAA,kCAAmB,GAAE,CACtB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAO,CAAC,MAA0B;QAC9C,MAAM,KAAK,GAAG,IAAI,WAAW;QAC3B,mCAAmC;QACnC,MAAM,CAAC,EAAE,IAAI,oBAAI,CAAC,IAAI,EAAE,EACxB,MAAM,CAAC,OAAO,IAAI,EAAE,EACpB,MAAM,CAAC,aAAa,IAAI,EAAE,EAC1B,MAAM,CAAC,SAAS,IAAI,EAAE,EACtB,MAAM,CAAC,QAAQ,IAAI,EAAE,EACrB,MAAM,CAAC,cAAc,IAAI,EAAE,EAC3B,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,MAAM,CAAC,OAAO,IAAI,EAAE,EACpB,MAAM,CAAC,WAAW,IAAI,EAAE,EACxB,MAAM,CAAC,SAAS,IAAI,EAAE,EACtB,MAAM,CAAC,OAAO,IAAI,EAAE,EACpB,MAAM,CAAC,SAAS,IAAI,EAAE,EACtB,MAAM,CAAC,OAAO,IAAI,EAAE,EACpB,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,MAAM,CAAC,MAAM,IAAI,EAAE,EACnB,MAAM,CAAC,cAAc,IAAI,IAAA,gBAAM,GAAE,CAAC,SAAS,EAAE,EAC7C,MAAM,CAAC,aAAa,IAAI,CAAC,EACzB,MAAM,CAAC,aAAa,IAAI,EAAE,EAC1B,MAAM,CAAC,OAAO,IAAI,CAAC,EACnB,MAAM,CAAC,MAAM,IAAI,EAAE,EACnB,MAAM,CAAC,KAAK,IAAI,EAAE,EAClB,MAAM,CAAC,oBAAoB,IAAI,EAAE,EACjC,MAAM,CAAC,qBAAqB,IAAI,EAAE,EAClC,MAAM,CAAC,WAAW,IAAI,IAAA,kCAAmB,GAAE,CAC5C,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACzC,MAAM;aACH,IAAI,CAAC,MAAM,CAAC;aACZ,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5C,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE,CACvB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,MAAsC,CAAC,GAAG,CAAC,CAChE,CAAC;QACJ,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,SAAuB;QAC/B,MAAM,MAAM,GAAsC,EAAE,CAAC;QACrD,SAAS,CAAC,MAAM;aACb,OAAO,CAAC,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC/B,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;oBAClC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU;QACR,IAAI,MAAM,GAAsC,EAAE,CAAC;QACnD,IAAI,CAAC,iBAAiB;aACnB,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,MAAM;iBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;iBAC3B,OAAO,CAAC,WAAW,CAAC,EAAE;gBACrB,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC7D,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,cAAc,CAC5C,CAAC,SAAS,EAAE,WAAW,CAAC,CACzB,CAAA;YACH,CAAC,CAAC,CAAA;QACN,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,SAAuB;QAGvB,MAAM,cAAc,GAAyB,SAAS;aACnD,qBAAqB,EAAE;aACvB,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,KAAK,GACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAQ,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;gBACvB,OAAO,IAAI,CAAC;aACb;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aAC3C,MAAM,CAAC,+BAAa,CAAC,CAAC;QAEzB,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QAElC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAE3B,wDAAwD;QACxD,IAAI,OAAO,GAAG,cAAc;aACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAQ,CAAC;aAC7C,GAAG,CAAC,CAAC,KAA8C,EAAE,EAAE;YACtD,IAAI,IAAA,wBAAS,EAAC,KAAK,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;aAChD;iBAAM,IAAI,IAAA,uDAAsB,EAAC,KAAK,CAAC,EAAE;gBACxC,6CAA6C;gBAC7C,OAAO,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aAC/B;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC;aAClC,MAAM,CAAC;QAEV,wCAAwC;QACxC,OAAO,IAAI,IAAI,CAAC,KAAK;aAClB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;aAC5C,MAAM,CAAC;QAEV,OAAO;YACL,OAAO;YACP,KAAK;SACN,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,aAAa,CACX,SAAuB,EACvB,oBAAyC,IAAI,GAAG,EAAkB,EAClE,YAA4B;QAE5B,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,SAAS,CAAC,MAAM;aACb,OAAO,CAAC,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAE/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;oBACvC,OAAO;iBACR;gBAED,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACxD,OAAO;iBACR;gBAED,MAAM,CAAC,IAAI,CAAC,+BAAa,CAAC,OAAO,CAAC;oBAChC,kEAAkE;oBAClE,6CAA6C;oBAC7C,EAAE,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,oBAAI,CAAC,IAAI,EAAE;oBACpD,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,GAAG,EAAE,IAAI,CAAC,EAAE;oBACZ,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,KAAK,EAAE,IAAI,CAAC,cAAc,CACxB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAC3B;iBACF,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,cAAc,CACZ,OAAiB,EAAE;QAEnB,OAAO,IAAA,kCAAc,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,KAAuB,EAAE,OAAiB,EAAE;QACzD,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,CAAC,CAAC,CAAC;gBACN,OAAO;aACR;YACD,KAAK,CAAC,CAAC,CAAC;gBACL,IAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC/B,OAAO;aACR;YACD,KAAK,CAAC,CAAC,CAAC;gBACN,mCAAmC;gBAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC3E,OAAO;aACR;YACD,KAAK,CAAC,CAAC,CAAC;gBACN,mCAAmC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC1H,OAAO;aACR;YACD,OAAO,CAAC,CAAC;gBACP,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;aAC3C;SACF;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,GAAG,KAAK;QAE7B,IAAI,UAAU,EAAE;YACd,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;gBACjD,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;SACH;QAED,MAAM,GAAG,GAAG,EAAiC,CAAC;QAC9C,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;aAClD,OAAO,CAAC,IAAI,CAAC,EAAE,CACd,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpC,OAAO,GAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,WAAW,CACT,KAAa,EACb,UAA8B;QAC5B,cAAc,EAAE,CAAC;KAClB;QAGD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACvC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEpD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAE9B,IAAI,UAAU,EAAE,SAAS,GAAW,EAAE,CAAC;YACvC,IAAI,MAAM,EAAE;gBACV,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;oBACrB,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBAC7C,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;iBAC9C;qBAAM;oBACL,UAAU,GAAG,MAAM,CAAC;oBACpB,SAAS,GAAG,EAAE,CAAC;iBAChB;gBACD,UAAU,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,SAAS,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACtC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACrC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,SAAS,KAAK,KAAK,EAAE;gBACvB,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;aACvD;iBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;gBACjC,MAAM,GAAG,CAAC,IAAA,kCAAc,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;aACrE;iBAAM,IAAI,SAAS,CAAC,MAAM,EAAE;gBAC3B,IAAI,OAAO,CAAC,OAAO,EAAE;oBACnB,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;wBAC5C,OAAO,CAAC,KAAK,CACX,aAAa,SAAS,mCAAmC,CAC1D,CAAC;wBACF,MAAM,GAAG,EAAE,CAAC;qBACb;yBAAM;wBACL,MAAM,GAAG,CAAC,IAAA,kCAAc,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;6BAC9D,QAAQ,EAAE,CAAC;qBACf;iBACF;qBAAM;oBACL,OAAO,CAAC,KAAK,CACX,aAAa,SAAS,yCAAyC,CAChE,CAAC;oBACF,OAAO,EAAE,CAAC;iBACX;aACF;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;YAGD,IAAI,UAAU,IAAI,MAAM,EAAE;gBACxB,QAAQ,UAAU,EAAE;oBAClB,KAAK,MAAM,CAAC,CAAC;wBACX,OAAO,IAAA,gBAAM,EAAC,MAAM,CAAC;6BAClB,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC;6BACjC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;qBAC5B;oBACD,OAAO,CAAC,CAAC;wBACP,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;qBAC/C;iBACF;aACF;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAA,CAAC;IAEF;;OAEG;IACM,QAAQ;QACf,uCACK,KAAK,CAAC,QAAQ,EAAE,KACnB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,EAChC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,EAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,EAC5B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG,EACpC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,EAChC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG,EAClC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,EACxC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,EACtC,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,IAC5B;IACJ,CAAC;CACF;AAnlBD,kCAmlBC","sourcesContent":["import { isFileDto, VasFileDto } from './vas-file.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment';\nimport { getValueByPath } from '../utils/get-value-by-path';\nimport { VasBaseDto } from './vas-base.dto';\nimport { VasFieldDto, VasFieldDtoValue } from './vas-field.dto';\nimport { VasFieldModel } from './vas-field.model';\nimport { VasFormModel } from './vas-form.model';\nimport { VasJobDto } from './vas-job.dto';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { GeoLocation, getEmptyGeoLocation } from '../model/geo-location';\nimport { isCameraControlValueV1, VasCameraControlValueModel } from '../control-value/vas-camera-control-value.model';\nimport { isArrayString } from '../utils/is-array-string';\n\nexport declare interface VasJobModelDynamicInterface {\n [s: string]: string | number | Record<string, VasFieldDtoValue>;\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, VasFieldDtoValue>>;\n}\n\n/**\n * JobModel\n */\nexport class VasJobModel extends VasRestrictedAccountObjectModel {\n /**\n * @param id\n * @param created\n * @param serverCreated\n * @param createdBy\n * @param modified\n * @param serverModified\n * @param modifiedBy\n * @param account\n * @param accessGroup\n * @param reference\n * @param jobDate\n * @param jobStatus\n * @param jobType\n * @param assigneeId\n * @param formId\n * @param timeZoneOffset\n * @param pendingFields\n * @param childModified\n * @param version\n * @param fields\n * @param files,\n * @param createdByDisplayName\n * @param modifiedByDisplayName\n * @param geoLocation\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 account: string,\n public override accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: 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 fields: Array<VasFieldDto>,\n public files: Array<VasFileDto>,\n public createdByDisplayName: string,\n public modifiedByDisplayName: string,\n public geoLocation: GeoLocation\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n account,\n accessGroup\n );\n }\n\n /**\n * Returns this with the dynamic interface\n * @return {VasJobModelDynamicInterface}\n */\n get $this(): VasJobModelDynamicInterface {\n return this as any;\n }\n\n /**\n * Returns a list of Job dynamic properties i.e. those that are added by the\n * dynamic forms\n */\n get dynamicProperties(): Array<string> {\n const nativeProps = this.staticProperties;\n return Object\n .getOwnPropertyNames(this)\n .filter(prop => !nativeProps.includes(prop));\n }\n\n /**\n * Returns a list of Job static properties i.e. those that are declared by\n * the type\n */\n get staticProperties(): Array<string> {\n return Object.getOwnPropertyNames(VasJobModel.empty());\n }\n\n /**\n * @return {VasJobModel}\n */\n public static empty(): VasJobModel {\n return new VasJobModel(\n // eslint-disable-next-line new-cap\n UUID.UUID(),\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n moment().utcOffset(),\n 0,\n '',\n 0,\n [],\n [],\n '',\n '',\n getEmptyGeoLocation()\n );\n }\n\n /**\n * @param {VasJobDto} jobDto\n * @return {VasJobModel}\n */\n public static fromDto(jobDto: Partial<VasJobDto>): VasJobModel {\n const model = new VasJobModel(\n // eslint-disable-next-line new-cap\n jobDto.id || UUID.UUID(),\n jobDto.created || '',\n jobDto.serverCreated || '',\n jobDto.createdBy || '',\n jobDto.modified || '',\n jobDto.serverModified || '',\n jobDto.modifiedBy || '',\n jobDto.account || '',\n jobDto.accessGroup || '',\n jobDto.reference || '',\n jobDto.jobDate || '',\n jobDto.jobStatus || '',\n jobDto.jobType || '',\n jobDto.assigneeId || '',\n jobDto.formId || '',\n jobDto.timeZoneOffset || moment().utcOffset(),\n jobDto.pendingFields || 0,\n jobDto.childModified || '',\n jobDto.version || 0,\n jobDto.fields || [],\n jobDto.files || [],\n jobDto.createdByDisplayName || '',\n jobDto.modifiedByDisplayName || '',\n jobDto.geoLocation || getEmptyGeoLocation()\n );\n const emptyKeys = model.staticProperties;\n Object\n .keys(jobDto)\n .filter(key => emptyKeys.indexOf(key) === -1)\n .forEach((key: string) =>\n model.$this[key] = (jobDto as VasJobModelDynamicInterface)[key]\n );\n return model;\n }\n\n /**\n * @param {VasFormModel} formModel\n * @return {Record<string, VasFieldDtoValue>}\n */\n getFields(formModel: VasFormModel): Record<string, VasFieldDtoValue> {\n const fields: {[key: string]: VasFieldDtoValue} = {};\n formModel.groups\n .forEach(group => {\n group.controls.forEach(control => {\n (fields)[control.reportTemplateName] =\n this.getValueByPath([group.name, control.name]);\n });\n });\n return fields;\n }\n\n /**\n * Will return an object whose keys are the names of all fields in the job but\n * with the \"fields.\" part removed. This method is similar to `getFields`\n * except that this method will only return values that are set whereas\n * `getFields` will return a property regardless (because it uses the form to\n * drive the logic)\n * @return {Record<string, VasFieldDtoValue>}\n */\n getFields2(): Record<string, VasFieldDtoValue> {\n let fields: {[key: string]: VasFieldDtoValue} = {};\n this.dynamicProperties\n .forEach((groupName) => {\n Object\n .keys(this.$this[groupName])\n .forEach(controlName => {\n const controlNameShort = controlName.replace(/fields\\./, '');\n fields[controlNameShort] = this.getValueByPath(\n [groupName, controlName]\n )\n })\n }, {})\n return fields;\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 pathsWithValue: Array<Array<string>> = formModel\n .getCameraControlPaths()\n .map(path => {\n const value: VasFileDto | VasCameraControlValueModel =\n this.getValueByPath(path) as any;\n if (value && !!value.id) {\n return path;\n }\n return null;\n })\n .filter(path => path !== null ? path : null)\n .filter(isArrayString);\n\n let total = pathsWithValue.length;\n\n total += this.files.length;\n\n // calculate the number of camera images still to upload\n let pending = pathsWithValue\n .map(path => this.getValueByPath(path) as any)\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 total from files that are pending\n pending += this.files\n .filter(value => value.status !== 'COMPLETE')\n .length;\n\n return {\n pending,\n total\n }\n }\n\n /**\n * This method will hydrate the `fields` property of the model. The reason for\n * this is that we have different ways to store the field data. One way, is\n * we store them as dynamic properties of the job. For example job.foo.bar,\n * where `foo` is the name of a Group, and `bar` is the name of a control.\n * Thus, when we create a job using a form in the client, the job object will\n * have its static properties (id, account, reference etc), and also a number\n * of dynamic properties determined by the Groups and Controls. This kind of\n * object is nice to work with in certain circumstances. However, the api\n * works differently. In the API a Job is a record, and references a number of\n * Field records. Each Field stores the value. Comparing these two models we\n * have:\n * A) job with dynamic properties, e.g.\n * {\n * id: <guid>,\n * reference: \"something\"\n * <other static job properties>...\n * foo: {\n * bar: \"value\"\n * }\n * }\n *\n * B) job with fields\n * {\n * id: <guid>,\n * reference: \"something\"\n * <other static job properties>...\n * <will not have dynamic properties>...\n * fields: [\n * {\n * id: <guid>,\n * <other field properties>,\n * value: \"value\"\n * }\n * ]\n * }\n *\n * So, what this method does is given a JobModel in the form of A, read all\n * of those dynamic properties and set them into `fields`. Doing this requires\n * knowledge of the Form that was used to create the job. Moreover, since the\n * dynamic properties do not contain the ids of the fields, we also allow to\n * pass in a `controlFieldIdMap`. This map stores the mapping between Control\n * and the Field that was created in the Job to store the value for that\n * Control. This is useful, if for example you want to compare a Job in form A\n * with a Job in form B, for example if you want to update the Job on the API\n * with a Job that was saved by a client in form A.\n *\n * E.g.\n * Client -> API: client requests form\n * User -> Client: user fills in the form and submits\n * Client -> Firestore: client saves the Job in form A i.e. dynamic props\n * Firestore -> Function: A function is triggered to sync the job to the API\n * Function -> API: Function checks if job already exists, it receives 404\n * Function -> Function: The function calls `hydrateFields(...)`\n * Function -> API: The function POST the Job to /jobs\n * Function -> API: The function POST each field to /fields\n *\n * Similarly, if the user updates the job\n * Client -> API: client requests form\n * User -> Client: user fills in the form and submits an update\n * Client -> Firestore: client saves the Job in form A i.e. dynamic props\n * Firestore -> Function: A function is triggered to sync the job to the API\n * Function -> API: Function checks if job already exists, it receives 200\n * Function -> Function: The function calls `hydrateFields(...)` passing in\n * the map is made by iterating over the fields it\n * received from the API and storing the mappings\n * between controlId and fieldId for each field\n * Function -> API: The function PATCH the Job to /jobs\n * Function -> API: The function POST/PATCH each field to /fields\n * treated as new\n *\n * @param {VasFormModel} formModel the VasFormModel that was used to create\n * the job\n * @param {Map<string, string>} controlFieldIdMap a mapping of control to\n * field ids. This is used to determine whether a new id for the field should\n * be generated, or to reuse an existing one from the map.\n * @param {Array<string>} controlNames if a value is provided, it will be used\n * to filter the fields that are returned.\n * @return {Array<VasFieldDto>}\n */\n hydrateFields(\n formModel: VasFormModel,\n controlFieldIdMap: Map<string, string> = new Map<string, string>(),\n controlNames?: Array<string>\n ): void {\n const fields: Array<VasFieldDto> = [];\n formModel.groups\n .forEach(group => {\n group.controls.forEach(control => {\n\n if (!control.name.startsWith('fields.')) {\n return;\n }\n\n if (controlNames && !controlNames.includes(control.name)) {\n return;\n }\n\n fields.push(VasFieldModel.fromDto({\n // if the controlId exists in the map, use the associated fieldId,\n // otherwise generate a new id for the field.\n id: controlFieldIdMap.get(control.id) || UUID.UUID(),\n account: this.account,\n job: this.id,\n createdBy: this.createdBy,\n created: this.created,\n modifiedBy: this.modifiedBy,\n modified: this.modified,\n control: control.id,\n value: this.getValueByPath(\n [group.name, control.name]\n )\n }));\n });\n });\n this.fields = fields;\n }\n\n /**\n * @param {string[]} path path segments\n * @return {void}\n */\n getValueByPath<T extends VasFieldDtoValue>(\n path: string[] = []\n ): T | undefined {\n return getValueByPath(path, this.$this);\n }\n\n /**\n * A very non sophisticated way to set values in the job via paths\n *\n * For example:\n *\n * setValueByPath('value', ['foo', 'bar']);\n *\n * will make results in job\n * {\n * foo: {\n * bar: 'value'\n * }\n * }\n *\n * @param {any} value the value to set\n * @param {string[]} path path segments\n */\n setValueByPath(value: VasFieldDtoValue, path: string[] = []): void {\n switch (path.length) {\n case 0: {\n return;\n }\n case 1: {\n (this as any)[path[0]] = value;\n return;\n }\n case 2: {\n // eslint-disable-next-line max-len\n (this.$this[path[0]] as Record<string, VasFieldDtoValue>)[path[1]] = value;\n return;\n }\n case 3: {\n // eslint-disable-next-line max-len\n ((this.$this[path[0]] as Record<string, VasFieldDtoValue>)[path[1]] as Record<string, VasFieldDtoValue>)[path[2]] = value;\n return;\n }\n default: {\n throw Error('path has too many segments');\n }\n }\n }\n\n /**\n * @param {boolean} staticOnly if true, will only output values for the static\n * properties in the dto\n * @return {VasJobDto}\n */\n public toDto(staticOnly = false): VasJobDto {\n\n if (staticOnly) {\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 account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\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 fields: this.fields,\n files: this.files,\n createdByDisplayName: this.createdByDisplayName,\n modifiedByDisplayName: this.modifiedByDisplayName,\n geoLocation: this.geoLocation\n };\n }\n\n const dto = {} as VasJobModelDynamicInterface;\n [...this.staticProperties, ...this.dynamicProperties]\n .forEach(prop =>\n (dto)[prop] = this.$this[prop]);\n\n return dto as any;\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 {string} 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 = (getValueByPath(path, this.getFields2()) || '').toString();\n } else if (objectKey.length) {\n if (options.objects) {\n if (options.objects[objectKey] === undefined) {\n console.debug(\n `objectKey ${objectKey} is not present in options.object`\n );\n result = '';\n } else {\n result = (getValueByPath(path, options.objects[objectKey]) || '')\n .toString();\n }\n } else {\n console.debug(\n `objectKey ${objectKey} was used but options.object is not set`\n );\n return '';\n }\n } else {\n return '';\n }\n\n\n if (filterName && result) {\n switch (filterName) {\n case 'date': {\n return moment(result)\n .utcOffset(options.timeZoneOffset)\n .format(filterArg || '');\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vas-job.model.spec-data.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.spec-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,eAAO,MAAM,qBAAqB,YAgEnB,CAAC"}
1
+ {"version":3,"file":"vas-job.model.spec-data.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.spec-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,eAAO,MAAM,qBAAqB,YAiEnB,CAAC"}
@@ -19,6 +19,7 @@ exports.formDto1Group1Control = {
19
19
  pipelineName: '',
20
20
  config: '',
21
21
  geoLocationEnabled: false,
22
+ filesEnabled: true,
22
23
  groups: [
23
24
  {
24
25
  id: 'group',