@ironcode/vas-lib 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/lib/entity/vas-base.model.d.ts +8 -0
- package/cjs/lib/entity/vas-base.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-base.model.js +9 -0
- package/cjs/lib/entity/vas-base.model.js.map +1 -1
- package/cjs/lib/entity/vas-branch.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-branch.model.js.map +1 -1
- package/cjs/lib/entity/vas-contact.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-contact.model.js.map +1 -1
- package/cjs/lib/entity/vas-control-type.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-control-type.model.js +1 -2
- package/cjs/lib/entity/vas-control-type.model.js.map +1 -1
- package/cjs/lib/entity/vas-control.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-control.model.js +1 -1
- package/cjs/lib/entity/vas-control.model.js.map +1 -1
- package/cjs/lib/entity/vas-field.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-field.model.js +1 -2
- package/cjs/lib/entity/vas-field.model.js.map +1 -1
- package/cjs/lib/entity/vas-file.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-file.model.js +1 -2
- package/cjs/lib/entity/vas-file.model.js.map +1 -1
- package/cjs/lib/entity/vas-form.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-form.model.js.map +1 -1
- package/cjs/lib/entity/vas-group.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-group.model.js +1 -2
- package/cjs/lib/entity/vas-group.model.js.map +1 -1
- package/cjs/lib/entity/vas-instruction-job-field.dto.d.ts +3 -0
- package/cjs/lib/entity/vas-instruction-job-field.dto.d.ts.map +1 -1
- package/cjs/lib/entity/vas-instruction-job-field.dto.js.map +1 -1
- package/cjs/lib/entity/vas-instruction-job-field.model.d.ts +4 -1
- package/cjs/lib/entity/vas-instruction-job-field.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-instruction-job-field.model.js +9 -3
- package/cjs/lib/entity/vas-instruction-job-field.model.js.map +1 -1
- package/cjs/lib/entity/vas-instruction-job.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-instruction-job.model.js.map +1 -1
- package/cjs/lib/entity/vas-instruction-provider.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-instruction-provider.model.js.map +1 -1
- package/cjs/lib/entity/vas-instruction.dto.d.ts +2 -0
- package/cjs/lib/entity/vas-instruction.dto.d.ts.map +1 -1
- package/cjs/lib/entity/vas-instruction.dto.js.map +1 -1
- package/cjs/lib/entity/vas-instruction.model.d.ts +3 -1
- package/cjs/lib/entity/vas-instruction.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-instruction.model.js +6 -3
- package/cjs/lib/entity/vas-instruction.model.js.map +1 -1
- package/cjs/lib/entity/vas-invitation.d.ts.map +1 -1
- package/cjs/lib/entity/vas-invitation.js.map +1 -1
- package/cjs/lib/entity/vas-job.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.model.js.map +1 -1
- package/cjs/lib/entity/vas-membership.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-membership.model.js +1 -1
- package/cjs/lib/entity/vas-membership.model.js.map +1 -1
- package/cjs/lib/entity/vas-note.model.d.ts +1 -0
- package/cjs/lib/entity/vas-note.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-note.model.js +3 -0
- package/cjs/lib/entity/vas-note.model.js.map +1 -1
- package/cjs/lib/entity/vas-report-request.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-report-request.model.js +1 -4
- package/cjs/lib/entity/vas-report-request.model.js.map +1 -1
- package/cjs/lib/entity/vas-report.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-report.model.js.map +1 -1
- package/cjs/lib/entity/vas-user.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-user.model.js.map +1 -1
- package/esm2020/lib/entity/vas-base.model.mjs +18 -1
- package/esm2020/lib/entity/vas-branch.model.mjs +1 -1
- package/esm2020/lib/entity/vas-contact.model.mjs +1 -1
- package/esm2020/lib/entity/vas-control-type.model.mjs +2 -3
- package/esm2020/lib/entity/vas-control.model.mjs +2 -2
- package/esm2020/lib/entity/vas-field.model.mjs +2 -3
- package/esm2020/lib/entity/vas-file.model.mjs +2 -3
- package/esm2020/lib/entity/vas-form.model.mjs +1 -1
- package/esm2020/lib/entity/vas-group.model.mjs +2 -3
- package/esm2020/lib/entity/vas-instruction-job-field.dto.mjs +1 -1
- package/esm2020/lib/entity/vas-instruction-job-field.model.mjs +10 -4
- package/esm2020/lib/entity/vas-instruction-job.model.mjs +1 -1
- package/esm2020/lib/entity/vas-instruction-provider.model.mjs +1 -1
- package/esm2020/lib/entity/vas-instruction.dto.mjs +1 -1
- package/esm2020/lib/entity/vas-instruction.model.mjs +7 -4
- package/esm2020/lib/entity/vas-invitation.mjs +1 -1
- package/esm2020/lib/entity/vas-job.model.mjs +1 -1
- package/esm2020/lib/entity/vas-membership.model.mjs +2 -2
- package/esm2020/lib/entity/vas-note.model.mjs +10 -1
- package/esm2020/lib/entity/vas-report-request.model.mjs +2 -4
- package/esm2020/lib/entity/vas-report.model.mjs +1 -1
- package/esm2020/lib/entity/vas-user.model.mjs +1 -1
- package/fesm2015/ironcode-vas-lib.mjs +52 -35
- package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
- package/fesm2020/ironcode-vas-lib.mjs +72 -40
- package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
- package/lib/entity/vas-base.model.d.ts +8 -0
- package/lib/entity/vas-instruction-job-field.dto.d.ts +3 -0
- package/lib/entity/vas-instruction-job-field.model.d.ts +4 -1
- package/lib/entity/vas-instruction.dto.d.ts +2 -0
- package/lib/entity/vas-instruction.model.d.ts +3 -1
- package/lib/entity/vas-note.model.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ironcode-vas-lib.mjs","sources":["../../../projects/vas-lib/src/lib/control-value/vas-camera-control-value.model.ts","../../../projects/vas-lib/src/lib/controls-config/vas-control-config-direction.enum.ts","../../../projects/vas-lib/src/lib/entity/vas-base.model.ts","../../../projects/vas-lib/src/lib/entity/vas-user.model.ts","../../../projects/vas-lib/src/lib/entity/vas-fire-user.model.ts","../../../projects/vas-lib/src/lib/entity/vas-account.dto.ts","../../../projects/vas-lib/src/lib/entity/vas-account-object.model.ts","../../../projects/vas-lib/src/lib/entity/vas-restricted-account-object.model.ts","../../../projects/vas-lib/src/lib/entity/vas-branch.model.ts","../../../projects/vas-lib/src/lib/entity/vas-contact.model.ts","../../../projects/vas-lib/src/lib/entity/vas-control-type.model.ts","../../../projects/vas-lib/src/lib/entity/vas-control.model.ts","../../../projects/vas-lib/src/lib/entity/vas-job-data.model.ts","../../../projects/vas-lib/src/lib/entity/vas-field.model.ts","../../../projects/vas-lib/src/lib/entity/vas-file.dto.ts","../../../projects/vas-lib/src/lib/entity/vas-file.model.ts","../../../projects/vas-lib/src/lib/entity/vas-group.model.ts","../../../projects/vas-lib/src/lib/entity/vas-form.model.ts","../../../projects/vas-lib/src/lib/entity/vas-invitation.ts","../../../projects/vas-lib/src/lib/entity/vas-note.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction-job-field.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction-job.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction-provider.model.ts","../../../projects/vas-lib/src/lib/utils/get-value-by-path.ts","../../../projects/vas-lib/src/lib/model/geo-location.ts","../../../projects/vas-lib/src/lib/utils/is-array-string.ts","../../../projects/vas-lib/src/lib/entity/vas-job.model.ts","../../../projects/vas-lib/src/lib/entity/vas-membership.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report-layout.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report-request.model.ts","../../../projects/vas-lib/src/ironcode-vas-lib.ts"],"sourcesContent":["export interface VasCameraControlValueModel {\n // this is the object url which can be used as an img src.\n // **WARNING** only valid during the session when image was captured\n webPath: string;\n // path to the image on the device's storage.\n // **WARNING** only valid on the device that took the image\n path: string;\n // path to the image in cloud storage.\n // **WARNING** only valid once the image has been uploaded\n url?: string;\n // id we generated when uploading to Firebase Cloudstore\n // **WARNING** only valid once the image has been uploaded\n id?: string\n}\n\nexport function isCameraControlValueV1(\n object: any\n): object is VasCameraControlValueModel {\n return object instanceof Object\n && 'webPath' in object\n && 'path' in object\n && 'url' in object\n && 'id' in object\n}\n","export enum VasControlConfigDirection {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ROW = 0,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n COLUMN = 1\n}\n","import { VasBaseDto } from './vas-base.dto';\n\n/**\n * BaseEntityModel\n */\nexport class VasBaseModel implements VasBaseDto {\n\n constructor(\n public id: string,\n public created: string,\n public serverCreated: string,\n public createdBy: string,\n public modified: string,\n public serverModified: string,\n public modifiedBy: string,\n public createdByName: string,\n public modifiedByName: string,\n ) {\n\n }\n}\n\n","import { VasUserDto } from './vas-user.dto';\r\nimport { VasBaseModel } from './vas-base.model';\r\n\r\nexport class VasUserModel extends VasBaseModel implements VasUserDto {\r\n\r\n constructor(\r\n public override id: string,\r\n public override created: string = '',\r\n public override serverCreated: string = '',\r\n public override createdBy: string = '',\r\n public override modified: string = '',\r\n public override serverModified: string = '',\r\n public override modifiedBy: string = '',\r\n public override createdByName: string,\r\n public override modifiedByName: string,\r\n public email: string,\r\n public name: string,\r\n public username: string,\r\n public memberships: Array<string>,\r\n public instructionProviders: Array<string>,\r\n ) {\r\n super(\r\n id,\r\n created,\r\n serverCreated,\r\n createdBy,\r\n modified,\r\n serverModified,\r\n modifiedBy,\r\n createdByName,\r\n modifiedByName,\r\n );\r\n }\r\n\r\n public static fromDto(dto: VasUserDto): VasUserModel {\r\n return new VasUserModel(\r\n dto.id,\r\n dto.created,\r\n dto.serverCreated,\r\n dto.createdBy,\r\n dto.modified,\r\n dto.serverModified,\r\n dto.modifiedBy,\r\n dto.createdByName || '',\r\n dto.modifiedByName || '',\r\n dto.email,\r\n dto.name,\r\n dto.username,\r\n dto.memberships,\r\n dto.instructionProviders\r\n );\r\n }\r\n\r\n public toDto(): VasUserDto {\r\n return {\r\n id: this.id,\r\n created: this.created,\r\n serverCreated: this.serverCreated,\r\n createdBy: this.createdBy,\r\n modified: this.modified,\r\n serverModified: this.serverModified,\r\n modifiedBy: this.modifiedBy,\r\n createdByName: this.createdByName,\r\n modifiedByName: this.modifiedByName,\r\n email: this.email,\r\n name: this.name,\r\n username: this.username,\r\n memberships: this.memberships,\r\n instructionProviders: this.instructionProviders\r\n };\r\n }\r\n}\r\n","import { VasFireUserDto, VasFireUserDtoAccountType } from './vas-fire-user.dto';\nimport moment from 'moment/moment';\nimport { VasUserModel } from './vas-user.model';\n\nexport class VasFireUserModel extends VasUserModel implements VasFireUserDto {\n\n constructor(\n public override id: string,\n public override created: string = '',\n public override serverCreated: string = '',\n public override createdBy: string = '',\n public override modified: string = '',\n public override serverModified: string = '',\n public override modifiedBy: string = '',\n public override createdByName: string,\n public override modifiedByName: string,\n public override email: string,\n public override name: string,\n public override username: string,\n public override memberships: Array<string>,\n public override instructionProviders: Array<string>,\n public accounts: VasFireUserDtoAccountType,\n public tokens: Array<string>,\n public topics: Array<string>,\n public language: string,\n public displayName: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n email,\n name,\n username,\n memberships,\n instructionProviders\n );\n }\n\n public static override fromDto(dto: VasFireUserDto): VasFireUserModel {\n return new VasFireUserModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.email || '',\n dto.name || '',\n dto.username || '',\n dto.memberships || [],\n dto.instructionProviders || [],\n dto.accounts || {},\n dto.tokens || [],\n dto.topics || [],\n dto.language || '',\n dto.displayName || ''\n );\n }\n\n public static newUser(\n uid: string,\n displayName: string,\n email: string\n ): VasFireUserModel {\n return new VasFireUserModel(\n uid,\n moment().toISOString(),\n moment().toISOString(),\n uid,\n moment().toISOString(),\n moment().toISOString(),\n uid,\n '',\n '',\n email,\n displayName,\n email,\n [],\n [],\n {},\n [],\n [],\n '',\n displayName\n )\n }\n\n public override toDto(): VasFireUserDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n email: this.email,\n name: this.name,\n username: this.username,\n memberships: this.memberships,\n instructionProviders: this.instructionProviders,\n accounts: this.accounts,\n tokens: this.tokens,\n topics: this.topics,\n language: this.language,\n displayName: this.displayName\n };\n }\n\n /**\n * Adds token to tokens list if it is not already present\n * @param token the new token\n */\n addToken(token: string): void {\n if (this.tokens.includes(token)) {\n return;\n }\n this.tokens.push(token);\n }\n\n /**\n * Remove token from tokens list\n * @param token the token to remove\n */\n removeToken(token: string): void {\n this.tokens = this.tokens.filter(t => t !== token);\n }\n\n /**\n * Resets the tokens list\n */\n resetTokens(): void {\n this.tokens = [];\n }\n\n /**\n * Adds topic to topics list if it is not already present\n * @param topic the new token\n */\n addTopic(topic: string): void {\n if (this.topics.includes(topic)) {\n return;\n }\n this.topics.push(topic);\n }\n\n /**\n * Remove topic from topic list\n * @param topic the topic to remove\n */\n removeTopic(topic: string): void {\n this.topics = this.topics.filter(t => t !== topic);\n }\n\n /**\n * Resets the topic list\n */\n resetTopics(): void {\n this.topics = [];\n }\n}\n","import { VasBaseDto } from './vas-base.dto';\nimport { VasContactDto } from './vas-contact.dto';\nimport { VasLookupDto } from './vas-lookup.dto';\nimport { VasReportLayoutDto } from './vas-report-layout.dto';\nimport { VasAccessGroupDto } from './vas-access-group.dto';\nimport { VasContactTypeDto } from './vas-contact-type.dto';\nimport { VasJobStatusDto } from './vas-job-status.dto';\nimport { VasJobTypeDto } from './vas-job-type.dto';\nimport { VasLookupTypeDto } from './vas-lookup-type.dto';\nimport { VasTaskTypeDto } from './vas-task-type.dto';\nimport { VasMembershipDto } from './vas-membership.dto';\n\nexport enum VasAccountIndexingMode {\n DISABLED,\n ON_CHANGE,\n ON_REPORT\n}\n\nexport interface VasAccountDto extends VasBaseDto {\n business: string;\n title: string;\n email: string;\n emailFooter: string;\n phone: string;\n address: string;\n vatNumber: string;\n owner: string;\n workflowEnabled: boolean;\n contacts: Array<VasContactDto>;\n lookups: Array<VasLookupDto>;\n reportLayouts: Array<VasReportLayoutDto>,\n accessGroups: Array<VasAccessGroupDto>;\n contactTypes: Array<VasContactTypeDto>,\n jobStatuses: Array<VasJobStatusDto>;\n jobTypes: Array<VasJobTypeDto>;\n lookupTypes: Array<VasLookupTypeDto>;\n taskTypes: Array<VasTaskTypeDto>;\n memberships: Array<VasMembershipDto>;\n indexingMode: VasAccountIndexingMode;\n}\n\nexport declare type VasAccountStatisticsByDateByFormItem = {\n formTitle: string;\n formId: string;\n count: number;\n};\n\nexport interface VasAccountStatisticsDto {\n 'jobStatistics': {\n 'counts': {\n 'total': number;\n 'byAccessGroup': Record<string, number>;\n 'byJobType': Record<string, number>;\n 'byJobStatus': Record<string, number>;\n 'byDateByForm': Record<string, Array<VasAccountStatisticsByDateByFormItem>>;\n };\n };\n}\n","import { VasBaseModel } from './vas-base.model';\n\nexport class VasAccountObjectModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public account: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n id: this.id,\n created: this.created,\n modified: this.modified\n }\n }\n}\n","import { VasAccountObjectModel } from './vas-account-object.model';\n\nexport class VasRestrictedAccountObjectModel extends VasAccountObjectModel {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public accessGroup: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n}\n","import { VasBranchDto } from './vas-branch.dto';\nimport { VasContactDto } from './vas-contact.dto';\nimport { VasTimeRangeModel } from '../model/vas-time-range.model';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\n\nexport class VasBranchModel extends VasRestrictedAccountObjectModel implements VasBranchDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public branchType: string,\n public storeCode: string,\n public address: string,\n public city: string,\n public postcode: string,\n public email: string,\n public locationManager: VasContactDto | undefined,\n public areaManager: VasContactDto | undefined,\n public regionalDirector: VasContactDto | undefined,\n public salesManager: VasContactDto | undefined,\n public cluster: string,\n public hourWeekdays: Array<VasTimeRangeModel>,\n public hourSaturday: Array<VasTimeRangeModel>,\n public hourSunday: Array<VasTimeRangeModel>,\n public exceptions: string,\n public active: boolean\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n static fromDto(\n dto: Partial<VasBranchDto>\n ): VasBranchModel {\n return new VasBranchModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.branchType || '',\n dto.storeCode || '',\n dto.address || '',\n dto.city || '',\n dto.postcode || '',\n dto.email || '',\n dto.locationManager || undefined,\n dto.areaManager || undefined,\n dto.regionalDirector || undefined,\n dto.salesManager || undefined,\n dto.cluster || '',\n dto.hourWeekdays || [],\n dto.hourSaturday || [],\n dto.hourSunday || [],\n dto.exceptions || '',\n dto.active || true,\n );\n }\n\n toDto(): VasBranchDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n branchType: this.branchType,\n storeCode: this.storeCode,\n address: this.address,\n city: this.city,\n postcode: this.postcode,\n email: this.email,\n locationManager: this.locationManager,\n areaManager: this.areaManager,\n regionalDirector: this.regionalDirector,\n salesManager: this.salesManager,\n cluster: this.cluster,\n hourWeekdays: this.hourWeekdays,\n hourSaturday: this.hourSaturday,\n hourSunday: this.hourSunday,\n exceptions: this.exceptions,\n active: this.active\n };\n }\n}\n","import { VasContactDto } from './vas-contact.dto';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\n\nexport class VasContactModel extends VasRestrictedAccountObjectModel implements VasContactDto {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public contactType: string,\n public name: string,\n public email: string,\n public mobile: string,\n public phone: string,\n public address: string,\n public address2: string,\n public address3: string,\n public billingCode: string,\n public business: string,\n public fax: string,\n public vatNumber: string,\n public website: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n static fromDto(\n dto: Partial<VasContactDto>\n ): VasContactModel {\n return new VasContactModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.contactType || '',\n dto.name || '',\n dto.email || '',\n dto.mobile || '',\n dto.phone || '',\n dto.address || '',\n dto.address2 || '',\n dto.address3 || '',\n dto.billingCode || '',\n dto.business || '',\n dto.fax || '',\n dto.vatNumber || '',\n dto.website || '',\n );\n }\n\n toDto(): VasContactDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n contactType: this.contactType,\n name: this.name,\n email: this.email,\n mobile: this.mobile,\n phone: this.phone,\n address: this.address,\n address2: this.address2,\n address3: this.address3,\n billingCode: this.billingCode,\n business: this.business,\n fax: this.fax,\n vatNumber: this.vatNumber,\n website: this.website,\n }\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n id: this.id,\n created: this.created || '~',\n modified: this.modified || '~',\n accessGroup: this.accessGroup || '~',\n contactType: this.contactType || '~',\n name: this.name || '~',\n email: this.email || '~',\n mobile: this.mobile || '~',\n phone: this.phone || '~',\n address: this.address || '~',\n address2: this.address2 || '~',\n address3: this.address3 || '~',\n billingCode: this.billingCode || '~',\n business: this.business || '~',\n fax: this.fax || '~',\n vatNumber: this.vatNumber || '~',\n website: this.website || '~',\n }\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\nimport { UUID } from 'angular2-uuid';\n\n/**\n * VasControlTypeModel\n */\nexport class VasControlTypeModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public name: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName\n );\n }\n\n /**\n * @return VasControlTypeModel\n */\n public static empty(): VasControlTypeModel {\n return new VasControlTypeModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n );\n }\n\n /**\n * @param {VasControlTypeDto} dto\n * @return {VasControlTypeModel}\n */\n public static fromDto(\n dto: Partial<VasControlTypeDto>\n ): VasControlTypeModel {\n return new VasControlTypeModel(\n // eslint-disable-next-line new-cap\n dto.id || UUID.UUID(),\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.name || ''\n );\n }\n\n /**\n * @return {VasControlTypeDto}\n */\n toDto(): VasControlTypeDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n name: this.name\n };\n }\n}\n\n","import { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlDto } from './vas-control.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasAccountObjectModel } from './vas-account-object.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\n\nexport declare type VasControlModelDefaultValueType = string | number | object;\n\n/**\n * ControlModel\n */\nexport class VasControlModel extends VasAccountObjectModel {\n protected controlTypeId: string = '';\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public accessGroup: string,\n public controlType: VasControlTypeModel,\n public group: string,\n public validators: string[],\n public name: string,\n public title: string,\n public linkable: boolean,\n public sequence: number,\n public description: string,\n public defaultValue: string,\n public config: Record<string, any>,\n public descriptionImage: string,\n public portalEnabled: boolean\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n if (typeof controlType === 'string') {\n this.controlTypeId = controlType;\n } else {\n this.controlTypeId = controlType.id;\n }\n }\n\n get controlTypeName(): string {\n return this.controlType?.name || '';\n }\n\n /**\n * The defaultValue property is returned from the api as a string or number,\n * in the case of string, it maybe a json. This getter will return an\n * object if the value is a json string\n */\n get defaultValueDecoded(): VasControlModelDefaultValueType {\n if (this.defaultValue === '' && this.controlType) {\n switch (this.controlTypeName) {\n case 'branch':\n case 'camera':\n case 'contact': {\n return {};\n }\n case 'toggle': {\n return {\n checked: false, comment: ''\n };\n }\n }\n }\n\n return this.parseMaybeJson(this.defaultValue);\n }\n\n /**\n * Returns the name of this control to be used in the report templates\n * i.e. fields.foo -> foo\n * @return {string}\n */\n get reportTemplateName(): string {\n return this.name.replace(/^fields\\./, '');\n }\n\n /**\n * @return {string}\n */\n get safeName(): string {\n return this.name;\n }\n\n /**\n * @return {VasControlModel}\n */\n public static empty(): VasControlModel {\n return VasControlModel.fromDto({\n // eslint-disable-next-line new-cap\n id: UUID.UUID()\n });\n }\n\n /**\n * @param {VasControlDto} dto\n * @return {VasControlModel}\n */\n public static fromDto(\n dto: Partial<VasControlDto>\n ): VasControlModel {\n\n const handleControlType = (c: string | VasControlTypeDto | undefined) => {\n if (c === undefined) {\n return VasControlTypeModel.empty();\n } else if (typeof c === 'string') {\n return c;\n } else {\n return VasControlTypeModel.fromDto(c);\n }\n };\n\n return new VasControlModel(\n // eslint-disable-next-line new-cap\n dto.id || UUID.UUID(),\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n handleControlType(dto.controlType) as any,\n dto.group || '',\n dto.validators || [],\n dto.name || '',\n dto.title || '',\n dto.linkable || false,\n dto.sequence || 0,\n dto.description || '',\n dto.defaultValue || '',\n JSON.parse(dto.config || '{}'),\n dto.descriptionImage || '',\n dto.portalEnabled || false\n );\n }\n\n /**\n * @param {string} value\n * @return {VasControlModelDefaultValueType}\n */\n protected parseMaybeJson(\n value: string | number | object\n ): VasControlModelDefaultValueType {\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n\n /**\n * @return {VasControlDto}\n */\n toDto(): VasControlDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n controlType: this.controlType.toDto(),\n group: this.group,\n validators: this.validators,\n name: this.name,\n title: this.title,\n linkable: this.linkable,\n sequence: this.sequence,\n description: this.description,\n defaultValue: this.defaultValue,\n config: JSON.stringify(this.config),\n descriptionImage: this.descriptionImage,\n portalEnabled: this.portalEnabled\n };\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n title: this.title || '~',\n name: this.title || '~',\n portalEnabled: this.portalEnabled,\n };\n }\n}\n\n","import { VasAccountObjectModel } from './vas-account-object.model';\n\n/**\n * VasJobDataModel\n */\nexport abstract class VasJobDataModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public job: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n}\n","import { VasFieldDto, VasFieldDtoValue } from './vas-field.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasJobDataModel } from './vas-job-data.model';\n\n/**\n * VasFieldModel\n */\nexport class VasFieldModel extends VasJobDataModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override job: string,\n public control: string,\n public fieldJobPointers: Array<string>,\n public value: VasFieldDtoValue,\n public version: number\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n job\n );\n }\n\n /**\n * @param {VasFieldDto} fieldDto\n * @return {VasFieldModel}\n */\n public static fromDto(fieldDto: Partial<VasFieldDto>): VasFieldModel {\n return new VasFieldModel(\n fieldDto.id || UUID.UUID(),\n fieldDto.created || '',\n fieldDto.serverCreated || '',\n fieldDto.createdBy || '',\n fieldDto.modified || '',\n fieldDto.serverModified || '',\n fieldDto.modifiedBy || '',\n fieldDto.createdByName || '',\n fieldDto.modifiedByName || '',\n fieldDto.account || '',\n fieldDto.job || '',\n fieldDto.control || '',\n fieldDto.fieldJobPointers || [],\n fieldDto.value || '',\n fieldDto.version || 0,\n );\n }\n\n /**\n * @return {VasFieldDto}\n */\n toDto(): VasFieldDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job,\n control: this.control,\n fieldJobPointers: this.fieldJobPointers,\n value: this.value,\n version: this.version,\n };\n }\n\n /**\n * @return {object}\n */\n override toApiDto(): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n control: this.control,\n value: this.prepareApiValue(this.value)\n };\n }\n\n\n /**\n * Prepares the value to be sent to the API. The api will only accept strings,\n * numbers and booleans, thus if we have an array or object, we need to JSON\n * encode it\n * @param {VasFieldDto} value\n * @return {string | number | boolean}\n * @protected\n */\n protected prepareApiValue(\n value: VasFieldDtoValue\n ): string | number | boolean {\n switch (typeof value) {\n case 'object': {\n return JSON.stringify(value);\n }\n case 'boolean': {\n return value as boolean;\n }\n case 'string': {\n return value as string;\n }\n case 'number': {\n return value as number;\n }\n default: {\n return '';\n }\n }\n }\n}\n","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","import { UUID } from 'angular2-uuid';\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\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override 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 createdByName,\n modifiedByName,\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 '',\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(dto: Partial<VasFileDto>): VasFileModel {\n return new VasFileModel(\n dto.id || UUID.UUID(),\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job || '',\n dto.name || '',\n dto.fileSize || 0,\n dto.mimeType || '',\n dto.sequence || 0,\n VasFileModel.parseConfig(dto.config),\n dto.url || '',\n dto.controlPath || '',\n dto.message || '',\n dto.status || '',\n dto.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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\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","import { VasBaseModel } from './vas-base.model';\nimport { VasControlModel } from './vas-control.model';\nimport { VasGroupDto } from './vas-group.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasFieldDtoValue } from './vas-field.dto';\n\n/**\n * GroupModel\n */\nexport class VasGroupModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public account: string,\n public accessGroup: string,\n public name: string,\n public title: string,\n public description: string,\n public sequence: number,\n public includeInSummary: boolean,\n public forms: string[],\n public visibilityControl: string,\n public visibleIfEquals: string,\n public controls: VasControlModel[],\n public scoreWeight: number\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n /**\n * @param {VasGroupDto} dto\n * @return {VasGroupModel}\n */\n public static fromDto(dto: Partial<VasGroupDto>): VasGroupModel {\n return new VasGroupModel(\n // eslint-disable-next-line new-cap\n dto.id || UUID.UUID(),\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.name || '',\n dto.title || '',\n dto.description || '',\n dto.sequence || 0,\n dto.includeInSummary || false,\n dto.forms || [],\n dto.visibilityControl || '',\n dto.visibleIfEquals || '',\n (dto.controls || [])\n .filter(control => control.name.startsWith('fields.'))\n .sort((a, b) => a.sequence - b.sequence)\n .map(c => VasControlModel.fromDto(c)),\n dto.scoreWeight || 1\n );\n }\n\n /**\n * @param {Array<VasControlModel>} valuesByControlId\n * @return {boolean}\n */\n isVisible(\n valuesByControlId: Array<{id: string, value: VasFieldDtoValue | undefined}>\n ): boolean {\n if (!this.visibilityControl || !this.visibleIfEquals) {\n return true;\n }\n\n const control = valuesByControlId\n .find(c => c.id === this.visibilityControl);\n\n if (!control) {\n console.warn(`control with id ${this.visibilityControl} not found`);\n return true;\n }\n\n return (control.value || '').toString() === this.visibleIfEquals;\n }\n\n /**\n * @return {VasGroupDto}\n */\n toDto(): VasGroupDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n name: this.name,\n title: this.title,\n description: this.description,\n sequence: this.sequence,\n includeInSummary: this.includeInSummary,\n forms: this.forms,\n visibilityControl: this.visibilityControl,\n visibleIfEquals: this.visibleIfEquals,\n controls: this.controls.map(control => control.toDto()),\n scoreWeight: this.scoreWeight\n };\n }\n}\n\n","import { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\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';\nimport { VasControlTypeModel } from './vas-control-type.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 createdByName: string,\n public override modifiedByName: 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 createdByName,\n modifiedByName,\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 * @deprecated vas-rest has been updated to inline control types into the\n * control so this method is no longer required. use VasFormModel.fromDto()\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 // Note that we are forcing types here. This is because we have\n // updated the typings for ControlModel and ControlDto to reflect\n // the fact that VASREST is updating the response from certain\n // controllers to inline ControlType into the Control. Consumers of\n // the library will know what version of the API they are consuming\n // so can decide when to migrate away from fromApiResponse, and can\n // use fromDto instead\n (control.controlType as any) = controlTypeModels\n .find(ct => ct.id === ((control as any).controlTypeId));\n });\n });\n return formModel;\n }\n\n public static empty(): VasFormModel {\n return VasFormModel.fromDto({});\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.createdByName || '',\n dto.modifiedByName || '',\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 /**\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.controlTypeName !== '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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\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","import { VasAccountObjectDto } from './vas-account-object.dto';\nimport { VasAccessGroupDto } from './vas-access-group.dto';\nimport { VasContactTypeDto } from './vas-contact-type.dto';\nimport { VasInstructionProviderDto } from './vas-instruction-provider.dto';\nimport { VasJobStatusDto } from './vas-job-status.dto';\nimport { VasJobTypeDto } from './vas-job-type.dto';\nimport { VasLookupTypeDto } from './vas-lookup-type.dto';\nimport { VasTaskTypeDto } from './vas-task-type.dto';\nimport { VasAccountObjectModel } from './vas-account-object.model';\n\nexport enum VasInvitationTypeEnum {\n TYPE_VAS_DESKTOP = 'vas-desktop',\n TYPE_VAS_MOBILE = 'vas-mobile',\n TYPE_VAS_PORTAL = 'vas-portal',\n TYPE_P2C_DESKTOP = 'p2c-desktop',\n TYPE_P2C_MOBILE = 'p2c-mobile',\n}\n\nexport interface VasInvitationDto extends VasAccountObjectDto {\n secret: string;\n type: VasInvitationTypeEnum;\n accessGroups: Array<VasAccessGroupDto>;\n contactTypes: Array<VasContactTypeDto>;\n jobStatuses: Array<VasJobStatusDto>;\n jobTypes: Array<VasJobTypeDto>;\n lookupTypes: Array<VasLookupTypeDto>;\n taskTypes: Array<VasTaskTypeDto>;\n instructionProviders: Array<VasInstructionProviderDto>;\n}\n\nexport class VasInvitationModel extends VasAccountObjectModel implements VasAccountObjectDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public secret: string,\n public type: VasInvitationTypeEnum,\n public accessGroups: Array<VasAccessGroupDto>,\n public contactTypes: Array<VasContactTypeDto>,\n public jobStatuses: Array<VasJobStatusDto>,\n public jobTypes: Array<VasJobTypeDto>,\n public lookupTypes: Array<VasLookupTypeDto>,\n public taskTypes: Array<VasTaskTypeDto>,\n public instructionProviders: Array<VasInstructionProviderDto>,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n toDto(): VasInvitationDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n secret: this.secret,\n type: this.type,\n accessGroups: this.accessGroups,\n contactTypes: this.contactTypes,\n jobStatuses: this.jobStatuses,\n jobTypes: this.jobTypes,\n lookupTypes: this.lookupTypes,\n taskTypes: this.taskTypes,\n instructionProviders: this.instructionProviders,\n };\n }\n\n static fromDto(dto: Partial<VasInvitationDto>): VasInvitationModel {\n return new VasInvitationModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.secret || '',\n dto.type || VasInvitationTypeEnum.TYPE_VAS_PORTAL,\n dto.accessGroups || [],\n dto.contactTypes || [],\n dto.jobStatuses || [],\n dto.jobTypes || [],\n dto.lookupTypes || [],\n dto.taskTypes || [],\n dto.instructionProviders || [],\n );\n }\n\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n const dto: Record<string, any> = {\n ...super.toApiDto(),\n type: this.type\n };\n\n if (this.accessGroups.length) {\n dto['accessGroups'] = this.accessGroups.map(d => d.id);\n }\n if (this.contactTypes.length) {\n dto['contactTypes'] = this.contactTypes.map(d => d.id);\n }\n if (this.jobStatuses.length) {\n dto['jobStatuses'] = this.jobStatuses.map(d => d.id);\n }\n if (this.jobTypes.length) {\n dto['jobTypes'] = this.jobTypes.map(d => d.id);\n }\n if (this.lookupTypes.length) {\n dto['lookupTypes'] = this.lookupTypes.map(d => d.id);\n }\n if (this.taskTypes.length) {\n dto['taskTypes'] = this.taskTypes.map(d => d.id);\n }\n if (this.instructionProviders.length) {\n dto['instructionProviders'] = this.instructionProviders.map(d => d.id);\n }\n return dto;\n }\n}\n","import { VasJobDataModel } from './vas-job-data.model';\nimport { VasNoteDto } from './vas-note.dto';\n\n/**\n * VasNoteModel\n */\nexport class VasNoteModel extends VasJobDataModel implements VasNoteDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override job: string,\n public content: string,\n public sensitive: boolean,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n job\n );\n }\n\n /**\n * @param dto VasNoteDto\n * @return VasNoteModel\n */\n static fromDto(dto: Partial<VasNoteDto>): VasNoteModel {\n return new VasNoteModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job || '',\n dto.content || '',\n dto.sensitive || false\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasNoteDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job,\n content: this.content,\n sensitive: this.sensitive,\n };\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasInstructionJobFieldDto } from './vas-instruction-job-field.dto';\n\n/**\n * VasInstructionJobFieldModel\n */\nexport class VasInstructionJobFieldModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public value: string,\n public name: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n static empty(): VasInstructionJobFieldModel {\n return new VasInstructionJobFieldModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n ''\n );\n }\n\n static fromDto(\n dto: Partial<VasInstructionJobFieldDto>\n ): VasInstructionJobFieldModel {\n return new VasInstructionJobFieldModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.value || '',\n dto.name || ''\n );\n }\n\n toDto(): VasInstructionJobFieldDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n value: this.value,\n name: this.name,\n };\n }\n}\n","import { VasJobDataModel } from './vas-job-data.model';\nimport { VasReportDto } from './vas-report.dto';\n\nexport class VasReportModel extends VasJobDataModel implements VasReportDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override job: string,\n public reportLayoutId: string,\n public title: string,\n public sendEmail: string,\n public message: string,\n public attempted: string,\n public completed: string,\n public succeeded: string,\n public attempts: number,\n public notificationId: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n job,\n );\n }\n\n public static empty(): VasReportModel {\n return VasReportModel.fromDto({});\n }\n\n public static fromDto(\n dto: Partial<VasReportModel>\n ): VasReportModel {\n return new VasReportModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job || '',\n dto.reportLayoutId || '',\n dto.title || '',\n dto.sendEmail || '',\n dto.message || '',\n dto.attempted || '',\n dto.completed || '',\n dto.succeeded || '',\n dto.attempts || 0,\n dto.notificationId || '',\n );\n }\n\n toDto(): VasReportDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job,\n reportLayoutId: this.reportLayoutId,\n title: this.title,\n sendEmail: this.sendEmail,\n message: this.message,\n attempted: this.attempted,\n completed: this.completed,\n succeeded: this.succeeded,\n attempts: this.attempts,\n notificationId: this.notificationId,\n };\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasInstructionJobDto } from './vas-instruction-job.dto';\nimport { VasNoteModel } from './vas-note.model';\nimport { VasInstructionJobFieldModel } from './vas-instruction-job-field.model';\nimport { VasFileModel } from './vas-file.model';\nimport { VasReportModel } from './vas-report.model';\n\n/**\n * VasNoteModel\n */\nexport class VasInstructionJobModel extends VasBaseModel {\n /**\n * @param id id\n * @param created created\n * @param serverCreated serverCreated\n * @param createdBy createdBy\n * @param modified modified\n * @param serverModified serverModified\n * @param modifiedBy modifiedBy\n * @param reference reference\n * @param jobStatus jobStatus\n * @param createdByName createdByName\n * @param modifiedByName modifiedByName\n * @param notes notes\n * @param fields fields\n * @param files files\n * @param reports reports\n */\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public reference: string,\n public jobStatus: string,\n public notes: Array<VasNoteModel>,\n public fields: Array<VasInstructionJobFieldModel>,\n public files: Array<VasFileModel>,\n public reports: Array<VasReportModel>\n\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n /**\n * @return empty VasInstructionJobModel\n */\n static empty(): VasInstructionJobModel {\n return new VasInstructionJobModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n [],\n [],\n [],\n []\n );\n }\n\n /**\n * @param dto VasInstructionDto\n * @return VasInstructionModel\n */\n static fromDto(dto: Partial<VasInstructionJobDto>): VasInstructionJobModel {\n return new VasInstructionJobModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.reference || '',\n dto.jobStatus || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n (dto.notes || []).map(d => VasNoteModel.fromDto(d)),\n (dto.fields || []).map(d => VasInstructionJobFieldModel.fromDto(d)),\n (dto.files || []).map(d => VasFileModel.fromDto(d)),\n (dto.reports || []).map(d => VasReportModel.fromDto(d)),\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasInstructionJobDto {\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 reference: this.reference,\n jobStatus: this.jobStatus,\n createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n notes: this.notes.map(m => m.toDto()),\n fields: this.fields.map(m => m.toDto()),\n files: this.files.map(m => m.toDto()),\n reports: this.reports.map(m => m.toDto()),\n };\n }\n}\n","import { VasAccountObjectModel } from './vas-account-object.model';\nimport { VasInstructionDto } from './vas-instruction.dto';\nimport { VasInstructionJobModel } from './vas-instruction-job.model';\n\n/**\n * VasNoteModel\n */\nexport class VasInstructionModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public job: VasInstructionJobModel\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n /**\n * @param dto VasInstructionDto\n * @return VasInstructionModel\n */\n static fromDto(dto: Partial<VasInstructionDto>): VasInstructionModel {\n return new VasInstructionModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job ?\n VasInstructionJobModel.fromDto(dto.job) :\n VasInstructionJobModel.empty()\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasInstructionDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job.toDto()\n };\n }\n}\n","import { VasAccountObjectModel } from './vas-account-object.model';\nimport { VasInstructionProviderDto } from './vas-instruction-provider.dto';\nimport { VasFormModel } from './vas-form.model';\n\n/**\n * VasInstructionProviderModel\n */\nexport class VasInstructionProviderModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public form: VasFormModel,\n public title: string,\n public secret: string,\n public portalEnabled: boolean,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n\n /**\n * @param dto VasInstructionDto\n * @return VasInstructionModel\n */\n static fromDto(\n dto: Partial<VasInstructionProviderDto>\n ): VasInstructionProviderModel {\n return new VasInstructionProviderModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.form ?\n VasFormModel.fromDto(dto.form) :\n VasFormModel.empty(),\n dto.title || '',\n dto.secret || '',\n dto.portalEnabled || false\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasInstructionProviderDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n form: this.form.toDto(),\n title: this.title,\n secret: this.secret,\n portalEnabled: this.portalEnabled\n };\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(options),\n title: this.title,\n form: this.form.id,\n portalEnabled: this.portalEnabled\n };\n }\n}\n","import { VasFieldDtoValue } from '../entity/vas-field.dto';\n\n/**\n * A non sophisticated way to get values from the job via paths. For example:\n *\n * getValueByPath(\n * ['foo', 'bar'],\n * {\n * foo: {\n * bar: 'value'\n * }\n * }\n * );\n *\n * will return \"value\"\n * @param {string[]} path\n * @param {Record<string, VasFieldDtoValue>} object\n * @return {T | undefined}\n */\nexport const getValueByPath = <T extends VasFieldDtoValue>(\n path: string[],\n object: Record<string, VasFieldDtoValue | Record<string, VasFieldDtoValue>>\n): T | undefined => {\n switch (path.length) {\n case 0: {\n return;\n }\n case 1: {\n return (object)[path[0]] as T;\n }\n case 2: {\n const val0 = object[path[0]] as Record<string, object>;\n if (!val0) {\n return undefined;\n }\n return val0[path[1]] as T;\n }\n case 3: {\n const val0 = object[path[0]] as Record<string, object>;\n if (!val0) {\n return undefined;\n }\n const val1 = val0[path[1]] as Record<string, object>;\n if (!val1) {\n return undefined;\n }\n return val1[path[2]] as T;\n }\n case 4: {\n const val0 = object[path[0]] as Record<string, object>;\n if (!val0) {\n return undefined;\n }\n const val1 = val0[path[1]] as Record<string, object>;\n if (!val1) {\n return undefined;\n }\n const val2 = val1[path[2]] as Record<string, object>;\n if (!val2) {\n return undefined;\n }\n return val2[path[3]] as T;\n }\n default: {\n throw Error('path has too many segments');\n }\n }\n}\n","\nexport interface GeoLocation {\n accuracy: number;\n altitude: number;\n altitudeAccuracy: number;\n geoPoint: Array<number>;\n lonLat: {\n lon: number;\n lat: number;\n };\n timestamp: string;\n}\n\nexport const getEmptyGeoLocation = (): GeoLocation => ({\n accuracy: 0,\n altitude: 0,\n altitudeAccuracy: 0,\n geoPoint: [],\n lonLat: {\n lon: 0,\n lat: 0,\n },\n timestamp: ''\n})\n","export const isArrayString = (value: any): value is Array<string> => {\n return Array.isArray(value) && value.every(i => typeof i === 'string');\n};\n","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 constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: string,\n public 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 createdByName,\n modifiedByName,\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 '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n moment().utcOffset(),\n 0,\n '',\n 0,\n [],\n [],\n '',\n '',\n getEmptyGeoLocation()\n );\n }\n\n public static fromDto(dto: Partial<VasJobDto>): VasJobModel {\n const model = new VasJobModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.fields || [],\n dto.files || [],\n dto.createdByDisplayName || '',\n dto.modifiedByDisplayName || '',\n dto.geoLocation || getEmptyGeoLocation()\n );\n const emptyKeys = model.staticProperties;\n Object\n .keys(dto)\n .filter(key => emptyKeys.indexOf(key) === -1)\n .forEach((key: string) =>\n model.$this[key] = (dto 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.\n * This method is similar to `getFields` except that this method will only\n * return values where a value was set, as opposed to `getFields` which\n * return a property regardless (because it uses the form to 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 fields[controlName] = this.getValueByPath([groupName, controlName]);\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 !== 'COMPLETED')\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\n 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","import { VasMembershipDto } from './vas-membership.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasAccountObjectModel} from './vas-account-object.model';\n\n/**\n * VasMembershipModel\n */\nexport class VasMembershipModel extends VasAccountObjectModel {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public user: string,\n public admin: boolean,\n public lookupTypes: Array<string>,\n public contactTypes: Array<string>,\n public accessGroups: Array<string>,\n public jobStatuses: Array<string>,\n public jobTypes: Array<string>,\n public taskTypes: Array<string>,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n public static empty(): VasMembershipModel {\n return VasMembershipModel.fromDto({\n // eslint-disable-next-line new-cap\n id: UUID.UUID()\n });\n }\n\n public static fromDto(\n dto: Partial<VasMembershipDto>\n ): VasMembershipModel {\n return new VasMembershipModel(\n // eslint-disable-next-line new-cap\n dto.id || UUID.UUID(),\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.user || '',\n dto.admin || false,\n dto.lookupTypes || [],\n dto.contactTypes || [],\n dto.accessGroups || [],\n dto.jobStatuses || [],\n dto.jobTypes || [],\n dto.taskTypes || []\n );\n }\n\n toDto(): VasMembershipDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n user: this.user,\n admin: this.admin,\n lookupTypes: this.lookupTypes,\n contactTypes: this.contactTypes,\n accessGroups: this.accessGroups,\n jobStatuses: this.jobStatuses,\n jobTypes: this.jobTypes,\n taskTypes: this.taskTypes\n };\n }\n}\n\n","import { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\n\nexport class VasReportLayoutModel extends VasRestrictedAccountObjectModel {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public jobType: string,\n public title: string,\n public description: string,\n public entryPoint: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n}\n","import { VasReportRequestDto } from './vas-report-request.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment';\nimport { VasAccountObjectModel } from './vas-account-object.model';\n\nexport class VasReportRequestModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public error: string,\n public jobId: string,\n public title: string,\n public url: string,\n public reportId: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n static fromDto(\n dto: Partial<VasReportRequestDto>\n ): VasReportRequestModel {\n return new VasReportRequestModel(\n dto.id || UUID.UUID(),\n dto.created || moment().toISOString(),\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || moment().toISOString(),\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.error || '',\n dto.jobId || '',\n dto.title || '',\n dto.url || '',\n dto.reportId || ''\n )\n }\n\n toDto(): VasReportRequestDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n error: this.error,\n jobId: this.jobId,\n title: this.title,\n url: this.url,\n reportId: this.reportId\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["moment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ironcode-vas-lib.mjs","sources":["../../../projects/vas-lib/src/lib/control-value/vas-camera-control-value.model.ts","../../../projects/vas-lib/src/lib/controls-config/vas-control-config-direction.enum.ts","../../../projects/vas-lib/src/lib/entity/vas-base.model.ts","../../../projects/vas-lib/src/lib/entity/vas-user.model.ts","../../../projects/vas-lib/src/lib/entity/vas-fire-user.model.ts","../../../projects/vas-lib/src/lib/entity/vas-account.dto.ts","../../../projects/vas-lib/src/lib/entity/vas-account-object.model.ts","../../../projects/vas-lib/src/lib/entity/vas-restricted-account-object.model.ts","../../../projects/vas-lib/src/lib/entity/vas-branch.model.ts","../../../projects/vas-lib/src/lib/entity/vas-contact.model.ts","../../../projects/vas-lib/src/lib/entity/vas-control-type.model.ts","../../../projects/vas-lib/src/lib/entity/vas-control.model.ts","../../../projects/vas-lib/src/lib/entity/vas-job-data.model.ts","../../../projects/vas-lib/src/lib/entity/vas-field.model.ts","../../../projects/vas-lib/src/lib/entity/vas-file.dto.ts","../../../projects/vas-lib/src/lib/entity/vas-file.model.ts","../../../projects/vas-lib/src/lib/entity/vas-group.model.ts","../../../projects/vas-lib/src/lib/entity/vas-form.model.ts","../../../projects/vas-lib/src/lib/entity/vas-invitation.ts","../../../projects/vas-lib/src/lib/entity/vas-note.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction-job-field.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction-job.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction-provider.model.ts","../../../projects/vas-lib/src/lib/entity/vas-instruction.model.ts","../../../projects/vas-lib/src/lib/utils/get-value-by-path.ts","../../../projects/vas-lib/src/lib/model/geo-location.ts","../../../projects/vas-lib/src/lib/utils/is-array-string.ts","../../../projects/vas-lib/src/lib/entity/vas-job.model.ts","../../../projects/vas-lib/src/lib/entity/vas-membership.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report-layout.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report-request.model.ts","../../../projects/vas-lib/src/ironcode-vas-lib.ts"],"sourcesContent":["export interface VasCameraControlValueModel {\n // this is the object url which can be used as an img src.\n // **WARNING** only valid during the session when image was captured\n webPath: string;\n // path to the image on the device's storage.\n // **WARNING** only valid on the device that took the image\n path: string;\n // path to the image in cloud storage.\n // **WARNING** only valid once the image has been uploaded\n url?: string;\n // id we generated when uploading to Firebase Cloudstore\n // **WARNING** only valid once the image has been uploaded\n id?: string\n}\n\nexport function isCameraControlValueV1(\n object: any\n): object is VasCameraControlValueModel {\n return object instanceof Object\n && 'webPath' in object\n && 'path' in object\n && 'url' in object\n && 'id' in object\n}\n","export enum VasControlConfigDirection {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ROW = 0,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n COLUMN = 1\n}\n","import { VasBaseDto } from './vas-base.dto';\nimport { VasUserDto } from './vas-user.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment/moment';\n\ninterface VasModelStatic<T extends VasBaseModel> {\n new (...args: any[]): T;\n fromDto(dto: Partial<VasBaseDto>): T;\n}\n\n/**\n * BaseEntityModel\n */\nexport class VasBaseModel implements VasBaseDto {\n\n constructor(\n public id: string,\n public created: string,\n public serverCreated: string,\n public createdBy: string,\n public modified: string,\n public serverModified: string,\n public modifiedBy: string,\n public createdByName: string,\n public modifiedByName: string,\n ) {\n\n }\n\n static fromDto(dto: Partial<VasBaseDto>): VasBaseModel {\n return new VasBaseModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n );\n }\n\n static create<T extends VasBaseDto>(\n this: VasModelStatic<T>,\n user: VasUserDto,\n values: Partial<T> = {}\n ): T {\n return this.fromDto({\n ...values,\n id: UUID.UUID(),\n created: moment().toISOString(),\n modified: moment().toISOString(),\n createdBy: user.id,\n createdByName: user.name,\n modifiedBy: user.id,\n modifiedByName: user.name\n });\n }\n}\n\n","import { VasUserDto } from './vas-user.dto';\r\nimport { VasBaseModel } from './vas-base.model';\r\n\r\nexport class VasUserModel extends VasBaseModel implements VasUserDto {\r\n\r\n constructor(\r\n public override id: string,\r\n public override created: string = '',\r\n public override serverCreated: string = '',\r\n public override createdBy: string = '',\r\n public override modified: string = '',\r\n public override serverModified: string = '',\r\n public override modifiedBy: string = '',\r\n public override createdByName: string,\r\n public override modifiedByName: string,\r\n public email: string,\r\n public name: string,\r\n public username: string,\r\n public memberships: Array<string>,\r\n public instructionProviders: Array<string>,\r\n ) {\r\n super(\r\n id,\r\n created,\r\n serverCreated,\r\n createdBy,\r\n modified,\r\n serverModified,\r\n modifiedBy,\r\n createdByName,\r\n modifiedByName,\r\n );\r\n }\r\n\r\n static override fromDto(dto: VasUserDto): VasUserModel {\r\n return new VasUserModel(\r\n dto.id,\r\n dto.created,\r\n dto.serverCreated,\r\n dto.createdBy,\r\n dto.modified,\r\n dto.serverModified,\r\n dto.modifiedBy,\r\n dto.createdByName || '',\r\n dto.modifiedByName || '',\r\n dto.email,\r\n dto.name,\r\n dto.username,\r\n dto.memberships,\r\n dto.instructionProviders\r\n );\r\n }\r\n\r\n toDto(): VasUserDto {\r\n return {\r\n id: this.id,\r\n created: this.created,\r\n serverCreated: this.serverCreated,\r\n createdBy: this.createdBy,\r\n modified: this.modified,\r\n serverModified: this.serverModified,\r\n modifiedBy: this.modifiedBy,\r\n createdByName: this.createdByName,\r\n modifiedByName: this.modifiedByName,\r\n email: this.email,\r\n name: this.name,\r\n username: this.username,\r\n memberships: this.memberships,\r\n instructionProviders: this.instructionProviders\r\n };\r\n }\r\n}\r\n","import { VasFireUserDto, VasFireUserDtoAccountType } from './vas-fire-user.dto';\nimport moment from 'moment/moment';\nimport { VasUserModel } from './vas-user.model';\n\nexport class VasFireUserModel extends VasUserModel implements VasFireUserDto {\n\n constructor(\n public override id: string,\n public override created: string = '',\n public override serverCreated: string = '',\n public override createdBy: string = '',\n public override modified: string = '',\n public override serverModified: string = '',\n public override modifiedBy: string = '',\n public override createdByName: string,\n public override modifiedByName: string,\n public override email: string,\n public override name: string,\n public override username: string,\n public override memberships: Array<string>,\n public override instructionProviders: Array<string>,\n public accounts: VasFireUserDtoAccountType,\n public tokens: Array<string>,\n public topics: Array<string>,\n public language: string,\n public displayName: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n email,\n name,\n username,\n memberships,\n instructionProviders\n );\n }\n\n public static override fromDto(dto: VasFireUserDto): VasFireUserModel {\n return new VasFireUserModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.email || '',\n dto.name || '',\n dto.username || '',\n dto.memberships || [],\n dto.instructionProviders || [],\n dto.accounts || {},\n dto.tokens || [],\n dto.topics || [],\n dto.language || '',\n dto.displayName || ''\n );\n }\n\n public static newUser(\n uid: string,\n displayName: string,\n email: string\n ): VasFireUserModel {\n return new VasFireUserModel(\n uid,\n moment().toISOString(),\n moment().toISOString(),\n uid,\n moment().toISOString(),\n moment().toISOString(),\n uid,\n '',\n '',\n email,\n displayName,\n email,\n [],\n [],\n {},\n [],\n [],\n '',\n displayName\n )\n }\n\n public override toDto(): VasFireUserDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n email: this.email,\n name: this.name,\n username: this.username,\n memberships: this.memberships,\n instructionProviders: this.instructionProviders,\n accounts: this.accounts,\n tokens: this.tokens,\n topics: this.topics,\n language: this.language,\n displayName: this.displayName\n };\n }\n\n /**\n * Adds token to tokens list if it is not already present\n * @param token the new token\n */\n addToken(token: string): void {\n if (this.tokens.includes(token)) {\n return;\n }\n this.tokens.push(token);\n }\n\n /**\n * Remove token from tokens list\n * @param token the token to remove\n */\n removeToken(token: string): void {\n this.tokens = this.tokens.filter(t => t !== token);\n }\n\n /**\n * Resets the tokens list\n */\n resetTokens(): void {\n this.tokens = [];\n }\n\n /**\n * Adds topic to topics list if it is not already present\n * @param topic the new token\n */\n addTopic(topic: string): void {\n if (this.topics.includes(topic)) {\n return;\n }\n this.topics.push(topic);\n }\n\n /**\n * Remove topic from topic list\n * @param topic the topic to remove\n */\n removeTopic(topic: string): void {\n this.topics = this.topics.filter(t => t !== topic);\n }\n\n /**\n * Resets the topic list\n */\n resetTopics(): void {\n this.topics = [];\n }\n}\n","import { VasBaseDto } from './vas-base.dto';\nimport { VasContactDto } from './vas-contact.dto';\nimport { VasLookupDto } from './vas-lookup.dto';\nimport { VasReportLayoutDto } from './vas-report-layout.dto';\nimport { VasAccessGroupDto } from './vas-access-group.dto';\nimport { VasContactTypeDto } from './vas-contact-type.dto';\nimport { VasJobStatusDto } from './vas-job-status.dto';\nimport { VasJobTypeDto } from './vas-job-type.dto';\nimport { VasLookupTypeDto } from './vas-lookup-type.dto';\nimport { VasTaskTypeDto } from './vas-task-type.dto';\nimport { VasMembershipDto } from './vas-membership.dto';\n\nexport enum VasAccountIndexingMode {\n DISABLED,\n ON_CHANGE,\n ON_REPORT\n}\n\nexport interface VasAccountDto extends VasBaseDto {\n business: string;\n title: string;\n email: string;\n emailFooter: string;\n phone: string;\n address: string;\n vatNumber: string;\n owner: string;\n workflowEnabled: boolean;\n contacts: Array<VasContactDto>;\n lookups: Array<VasLookupDto>;\n reportLayouts: Array<VasReportLayoutDto>,\n accessGroups: Array<VasAccessGroupDto>;\n contactTypes: Array<VasContactTypeDto>,\n jobStatuses: Array<VasJobStatusDto>;\n jobTypes: Array<VasJobTypeDto>;\n lookupTypes: Array<VasLookupTypeDto>;\n taskTypes: Array<VasTaskTypeDto>;\n memberships: Array<VasMembershipDto>;\n indexingMode: VasAccountIndexingMode;\n}\n\nexport declare type VasAccountStatisticsByDateByFormItem = {\n formTitle: string;\n formId: string;\n count: number;\n};\n\nexport interface VasAccountStatisticsDto {\n 'jobStatistics': {\n 'counts': {\n 'total': number;\n 'byAccessGroup': Record<string, number>;\n 'byJobType': Record<string, number>;\n 'byJobStatus': Record<string, number>;\n 'byDateByForm': Record<string, Array<VasAccountStatisticsByDateByFormItem>>;\n };\n };\n}\n","import { VasBaseModel } from './vas-base.model';\n\nexport class VasAccountObjectModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public account: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n id: this.id,\n created: this.created,\n modified: this.modified\n }\n }\n}\n","import { VasAccountObjectModel } from './vas-account-object.model';\n\nexport class VasRestrictedAccountObjectModel extends VasAccountObjectModel {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public accessGroup: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n}\n","import { VasBranchDto } from './vas-branch.dto';\nimport { VasContactDto } from './vas-contact.dto';\nimport { VasTimeRangeModel } from '../model/vas-time-range.model';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\n\nexport class VasBranchModel extends VasRestrictedAccountObjectModel implements VasBranchDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public branchType: string,\n public storeCode: string,\n public address: string,\n public city: string,\n public postcode: string,\n public email: string,\n public locationManager: VasContactDto | undefined,\n public areaManager: VasContactDto | undefined,\n public regionalDirector: VasContactDto | undefined,\n public salesManager: VasContactDto | undefined,\n public cluster: string,\n public hourWeekdays: Array<VasTimeRangeModel>,\n public hourSaturday: Array<VasTimeRangeModel>,\n public hourSunday: Array<VasTimeRangeModel>,\n public exceptions: string,\n public active: boolean\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n static override fromDto(\n dto: Partial<VasBranchDto>\n ): VasBranchModel {\n return new VasBranchModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.branchType || '',\n dto.storeCode || '',\n dto.address || '',\n dto.city || '',\n dto.postcode || '',\n dto.email || '',\n dto.locationManager || undefined,\n dto.areaManager || undefined,\n dto.regionalDirector || undefined,\n dto.salesManager || undefined,\n dto.cluster || '',\n dto.hourWeekdays || [],\n dto.hourSaturday || [],\n dto.hourSunday || [],\n dto.exceptions || '',\n dto.active || true,\n );\n }\n\n toDto(): VasBranchDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n branchType: this.branchType,\n storeCode: this.storeCode,\n address: this.address,\n city: this.city,\n postcode: this.postcode,\n email: this.email,\n locationManager: this.locationManager,\n areaManager: this.areaManager,\n regionalDirector: this.regionalDirector,\n salesManager: this.salesManager,\n cluster: this.cluster,\n hourWeekdays: this.hourWeekdays,\n hourSaturday: this.hourSaturday,\n hourSunday: this.hourSunday,\n exceptions: this.exceptions,\n active: this.active\n };\n }\n}\n","import { VasContactDto } from './vas-contact.dto';\nimport { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\n\nexport class VasContactModel extends VasRestrictedAccountObjectModel implements VasContactDto {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public contactType: string,\n public name: string,\n public email: string,\n public mobile: string,\n public phone: string,\n public address: string,\n public address2: string,\n public address3: string,\n public billingCode: string,\n public business: string,\n public fax: string,\n public vatNumber: string,\n public website: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n static override fromDto(\n dto: Partial<VasContactDto>\n ): VasContactModel {\n return new VasContactModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.contactType || '',\n dto.name || '',\n dto.email || '',\n dto.mobile || '',\n dto.phone || '',\n dto.address || '',\n dto.address2 || '',\n dto.address3 || '',\n dto.billingCode || '',\n dto.business || '',\n dto.fax || '',\n dto.vatNumber || '',\n dto.website || '',\n );\n }\n\n toDto(): VasContactDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n contactType: this.contactType,\n name: this.name,\n email: this.email,\n mobile: this.mobile,\n phone: this.phone,\n address: this.address,\n address2: this.address2,\n address3: this.address3,\n billingCode: this.billingCode,\n business: this.business,\n fax: this.fax,\n vatNumber: this.vatNumber,\n website: this.website,\n }\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n id: this.id,\n created: this.created || '~',\n modified: this.modified || '~',\n accessGroup: this.accessGroup || '~',\n contactType: this.contactType || '~',\n name: this.name || '~',\n email: this.email || '~',\n mobile: this.mobile || '~',\n phone: this.phone || '~',\n address: this.address || '~',\n address2: this.address2 || '~',\n address3: this.address3 || '~',\n billingCode: this.billingCode || '~',\n business: this.business || '~',\n fax: this.fax || '~',\n vatNumber: this.vatNumber || '~',\n website: this.website || '~',\n }\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\nimport { UUID } from 'angular2-uuid';\n\n/**\n * VasControlTypeModel\n */\nexport class VasControlTypeModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public name: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName\n );\n }\n\n /**\n * @return VasControlTypeModel\n */\n static empty(): VasControlTypeModel {\n return new VasControlTypeModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n );\n }\n\n /**\n * @param {VasControlTypeDto} dto\n * @return {VasControlTypeModel}\n */\n static override fromDto(\n dto: Partial<VasControlTypeDto>\n ): VasControlTypeModel {\n return new VasControlTypeModel(\n // eslint-disable-next-line new-cap\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.name || ''\n );\n }\n\n /**\n * @return {VasControlTypeDto}\n */\n toDto(): VasControlTypeDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n name: this.name\n };\n }\n}\n\n","import { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlDto } from './vas-control.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasAccountObjectModel } from './vas-account-object.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\n\nexport declare type VasControlModelDefaultValueType = string | number | object;\n\n/**\n * ControlModel\n */\nexport class VasControlModel extends VasAccountObjectModel {\n protected controlTypeId: string = '';\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public accessGroup: string,\n public controlType: VasControlTypeModel,\n public group: string,\n public validators: string[],\n public name: string,\n public title: string,\n public linkable: boolean,\n public sequence: number,\n public description: string,\n public defaultValue: string,\n public config: Record<string, any>,\n public descriptionImage: string,\n public portalEnabled: boolean\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n if (typeof controlType === 'string') {\n this.controlTypeId = controlType;\n } else {\n this.controlTypeId = controlType.id;\n }\n }\n\n get controlTypeName(): string {\n return this.controlType?.name || '';\n }\n\n /**\n * The defaultValue property is returned from the api as a string or number,\n * in the case of string, it maybe a json. This getter will return an\n * object if the value is a json string\n */\n get defaultValueDecoded(): VasControlModelDefaultValueType {\n if (this.defaultValue === '' && this.controlType) {\n switch (this.controlTypeName) {\n case 'branch':\n case 'camera':\n case 'contact': {\n return {};\n }\n case 'toggle': {\n return {\n checked: false, comment: ''\n };\n }\n }\n }\n\n return this.parseMaybeJson(this.defaultValue);\n }\n\n /**\n * Returns the name of this control to be used in the report templates\n * i.e. fields.foo -> foo\n * @return {string}\n */\n get reportTemplateName(): string {\n return this.name.replace(/^fields\\./, '');\n }\n\n /**\n * @return {string}\n */\n get safeName(): string {\n return this.name;\n }\n\n /**\n * @return {VasControlModel}\n */\n static empty(): VasControlModel {\n return VasControlModel.fromDto({\n // eslint-disable-next-line new-cap\n id: UUID.UUID()\n });\n }\n\n /**\n * @param {VasControlDto} dto\n * @return {VasControlModel}\n */\n static override fromDto(\n dto: Partial<VasControlDto>\n ): VasControlModel {\n\n const handleControlType = (c: string | VasControlTypeDto | undefined) => {\n if (c === undefined) {\n return VasControlTypeModel.empty();\n } else if (typeof c === 'string') {\n return c;\n } else {\n return VasControlTypeModel.fromDto(c);\n }\n };\n\n return new VasControlModel(\n // eslint-disable-next-line new-cap\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n handleControlType(dto.controlType) as any,\n dto.group || '',\n dto.validators || [],\n dto.name || '',\n dto.title || '',\n dto.linkable || false,\n dto.sequence || 0,\n dto.description || '',\n dto.defaultValue || '',\n JSON.parse(dto.config || '{}'),\n dto.descriptionImage || '',\n dto.portalEnabled || false\n );\n }\n\n /**\n * @param {string} value\n * @return {VasControlModelDefaultValueType}\n */\n protected parseMaybeJson(\n value: string | number | object\n ): VasControlModelDefaultValueType {\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n\n /**\n * @return {VasControlDto}\n */\n toDto(): VasControlDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n controlType: this.controlType.toDto(),\n group: this.group,\n validators: this.validators,\n name: this.name,\n title: this.title,\n linkable: this.linkable,\n sequence: this.sequence,\n description: this.description,\n defaultValue: this.defaultValue,\n config: JSON.stringify(this.config),\n descriptionImage: this.descriptionImage,\n portalEnabled: this.portalEnabled\n };\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n title: this.title || '~',\n name: this.title || '~',\n portalEnabled: this.portalEnabled,\n };\n }\n}\n\n","import { VasAccountObjectModel } from './vas-account-object.model';\n\n/**\n * VasJobDataModel\n */\nexport abstract class VasJobDataModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public job: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n}\n","import { VasFieldDto, VasFieldDtoValue } from './vas-field.dto';\nimport { VasJobDataModel } from './vas-job-data.model';\n\n/**\n * VasFieldModel\n */\nexport class VasFieldModel extends VasJobDataModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override job: string,\n public control: string,\n public fieldJobPointers: Array<string>,\n public value: VasFieldDtoValue,\n public version: number\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n job\n );\n }\n\n /**\n * @param {VasFieldDto} fieldDto\n * @return {VasFieldModel}\n */\n static override fromDto(fieldDto: Partial<VasFieldDto>): VasFieldModel {\n return new VasFieldModel(\n fieldDto.id || '',\n fieldDto.created || '',\n fieldDto.serverCreated || '',\n fieldDto.createdBy || '',\n fieldDto.modified || '',\n fieldDto.serverModified || '',\n fieldDto.modifiedBy || '',\n fieldDto.createdByName || '',\n fieldDto.modifiedByName || '',\n fieldDto.account || '',\n fieldDto.job || '',\n fieldDto.control || '',\n fieldDto.fieldJobPointers || [],\n fieldDto.value || '',\n fieldDto.version || 0,\n );\n }\n\n /**\n * @return {VasFieldDto}\n */\n toDto(): VasFieldDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job,\n control: this.control,\n fieldJobPointers: this.fieldJobPointers,\n value: this.value,\n version: this.version,\n };\n }\n\n /**\n * @return {object}\n */\n override toApiDto(): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(),\n control: this.control,\n value: this.prepareApiValue(this.value)\n };\n }\n\n\n /**\n * Prepares the value to be sent to the API. The api will only accept strings,\n * numbers and booleans, thus if we have an array or object, we need to JSON\n * encode it\n * @param {VasFieldDto} value\n * @return {string | number | boolean}\n * @protected\n */\n protected prepareApiValue(\n value: VasFieldDtoValue\n ): string | number | boolean {\n switch (typeof value) {\n case 'object': {\n return JSON.stringify(value);\n }\n case 'boolean': {\n return value as boolean;\n }\n case 'string': {\n return value as string;\n }\n case 'number': {\n return value as number;\n }\n default: {\n return '';\n }\n }\n }\n}\n","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","import { UUID } from 'angular2-uuid';\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\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override 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 createdByName,\n modifiedByName,\n account,\n job\n );\n }\n\n static empty(): VasFileModel {\n return new VasFileModel(\n '',\n '',\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 static override fromDto(dto: Partial<VasFileDto>): VasFileModel {\n return new VasFileModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job || '',\n dto.name || '',\n dto.fileSize || 0,\n dto.mimeType || '',\n dto.sequence || 0,\n VasFileModel.parseConfig(dto.config),\n dto.url || '',\n dto.controlPath || '',\n dto.message || '',\n dto.status || '',\n dto.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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\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","import { VasBaseModel } from './vas-base.model';\nimport { VasControlModel } from './vas-control.model';\nimport { VasGroupDto } from './vas-group.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasFieldDtoValue } from './vas-field.dto';\n\n/**\n * GroupModel\n */\nexport class VasGroupModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public account: string,\n public accessGroup: string,\n public name: string,\n public title: string,\n public description: string,\n public sequence: number,\n public includeInSummary: boolean,\n public forms: string[],\n public visibilityControl: string,\n public visibleIfEquals: string,\n public controls: VasControlModel[],\n public scoreWeight: number\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n /**\n * @param {VasGroupDto} dto\n * @return {VasGroupModel}\n */\n static override fromDto(dto: Partial<VasGroupDto>): VasGroupModel {\n return new VasGroupModel(\n // eslint-disable-next-line new-cap\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.name || '',\n dto.title || '',\n dto.description || '',\n dto.sequence || 0,\n dto.includeInSummary || false,\n dto.forms || [],\n dto.visibilityControl || '',\n dto.visibleIfEquals || '',\n (dto.controls || [])\n .filter(control => control.name.startsWith('fields.'))\n .sort((a, b) => a.sequence - b.sequence)\n .map(c => VasControlModel.fromDto(c)),\n dto.scoreWeight || 1\n );\n }\n\n /**\n * @param {Array<VasControlModel>} valuesByControlId\n * @return {boolean}\n */\n isVisible(\n valuesByControlId: Array<{id: string, value: VasFieldDtoValue | undefined}>\n ): boolean {\n if (!this.visibilityControl || !this.visibleIfEquals) {\n return true;\n }\n\n const control = valuesByControlId\n .find(c => c.id === this.visibilityControl);\n\n if (!control) {\n console.warn(`control with id ${this.visibilityControl} not found`);\n return true;\n }\n\n return (control.value || '').toString() === this.visibleIfEquals;\n }\n\n /**\n * @return {VasGroupDto}\n */\n toDto(): VasGroupDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n name: this.name,\n title: this.title,\n description: this.description,\n sequence: this.sequence,\n includeInSummary: this.includeInSummary,\n forms: this.forms,\n visibilityControl: this.visibilityControl,\n visibleIfEquals: this.visibleIfEquals,\n controls: this.controls.map(control => control.toDto()),\n scoreWeight: this.scoreWeight\n };\n }\n}\n\n","import { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\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';\nimport { VasControlTypeModel } from './vas-control-type.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 createdByName: string,\n public override modifiedByName: 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 createdByName,\n modifiedByName,\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 * @deprecated vas-rest has been updated to inline control types into the\n * control so this method is no longer required. use VasFormModel.fromDto()\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 // Note that we are forcing types here. This is because we have\n // updated the typings for ControlModel and ControlDto to reflect\n // the fact that VASREST is updating the response from certain\n // controllers to inline ControlType into the Control. Consumers of\n // the library will know what version of the API they are consuming\n // so can decide when to migrate away from fromApiResponse, and can\n // use fromDto instead\n (control.controlType as any) = controlTypeModels\n .find(ct => ct.id === ((control as any).controlTypeId));\n });\n });\n return formModel;\n }\n\n static empty(): VasFormModel {\n return VasFormModel.fromDto({});\n }\n\n /**\n * @param {VasFormDto} dto\n * @return {VasFormModel}\n */\n static override 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.createdByName || '',\n dto.modifiedByName || '',\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 /**\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.controlTypeName !== '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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\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","import { VasAccountObjectDto } from './vas-account-object.dto';\nimport { VasAccessGroupDto } from './vas-access-group.dto';\nimport { VasContactTypeDto } from './vas-contact-type.dto';\nimport { VasInstructionProviderDto } from './vas-instruction-provider.dto';\nimport { VasJobStatusDto } from './vas-job-status.dto';\nimport { VasJobTypeDto } from './vas-job-type.dto';\nimport { VasLookupTypeDto } from './vas-lookup-type.dto';\nimport { VasTaskTypeDto } from './vas-task-type.dto';\nimport { VasAccountObjectModel } from './vas-account-object.model';\n\nexport enum VasInvitationTypeEnum {\n TYPE_VAS_DESKTOP = 'vas-desktop',\n TYPE_VAS_MOBILE = 'vas-mobile',\n TYPE_VAS_PORTAL = 'vas-portal',\n TYPE_P2C_DESKTOP = 'p2c-desktop',\n TYPE_P2C_MOBILE = 'p2c-mobile',\n}\n\nexport interface VasInvitationDto extends VasAccountObjectDto {\n secret: string;\n type: VasInvitationTypeEnum;\n accessGroups: Array<VasAccessGroupDto>;\n contactTypes: Array<VasContactTypeDto>;\n jobStatuses: Array<VasJobStatusDto>;\n jobTypes: Array<VasJobTypeDto>;\n lookupTypes: Array<VasLookupTypeDto>;\n taskTypes: Array<VasTaskTypeDto>;\n instructionProviders: Array<VasInstructionProviderDto>;\n}\n\nexport class VasInvitationModel extends VasAccountObjectModel implements VasAccountObjectDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public secret: string,\n public type: VasInvitationTypeEnum,\n public accessGroups: Array<VasAccessGroupDto>,\n public contactTypes: Array<VasContactTypeDto>,\n public jobStatuses: Array<VasJobStatusDto>,\n public jobTypes: Array<VasJobTypeDto>,\n public lookupTypes: Array<VasLookupTypeDto>,\n public taskTypes: Array<VasTaskTypeDto>,\n public instructionProviders: Array<VasInstructionProviderDto>,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n toDto(): VasInvitationDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n secret: this.secret,\n type: this.type,\n accessGroups: this.accessGroups,\n contactTypes: this.contactTypes,\n jobStatuses: this.jobStatuses,\n jobTypes: this.jobTypes,\n lookupTypes: this.lookupTypes,\n taskTypes: this.taskTypes,\n instructionProviders: this.instructionProviders,\n };\n }\n\n static override fromDto(dto: Partial<VasInvitationDto>): VasInvitationModel {\n return new VasInvitationModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.secret || '',\n dto.type || VasInvitationTypeEnum.TYPE_VAS_PORTAL,\n dto.accessGroups || [],\n dto.contactTypes || [],\n dto.jobStatuses || [],\n dto.jobTypes || [],\n dto.lookupTypes || [],\n dto.taskTypes || [],\n dto.instructionProviders || [],\n );\n }\n\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n const dto: Record<string, any> = {\n ...super.toApiDto(),\n type: this.type\n };\n\n if (this.accessGroups.length) {\n dto['accessGroups'] = this.accessGroups.map(d => d.id);\n }\n if (this.contactTypes.length) {\n dto['contactTypes'] = this.contactTypes.map(d => d.id);\n }\n if (this.jobStatuses.length) {\n dto['jobStatuses'] = this.jobStatuses.map(d => d.id);\n }\n if (this.jobTypes.length) {\n dto['jobTypes'] = this.jobTypes.map(d => d.id);\n }\n if (this.lookupTypes.length) {\n dto['lookupTypes'] = this.lookupTypes.map(d => d.id);\n }\n if (this.taskTypes.length) {\n dto['taskTypes'] = this.taskTypes.map(d => d.id);\n }\n if (this.instructionProviders.length) {\n dto['instructionProviders'] = this.instructionProviders.map(d => d.id);\n }\n return dto;\n }\n}\n","import { VasJobDataModel } from './vas-job-data.model';\nimport { VasNoteDto } from './vas-note.dto';\n\n/**\n * VasNoteModel\n */\nexport class VasNoteModel extends VasJobDataModel implements VasNoteDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override job: string,\n public content: string,\n public sensitive: boolean,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n job\n );\n }\n\n /**\n * @param dto VasNoteDto\n * @return VasNoteModel\n */\n static override fromDto(dto: Partial<VasNoteDto>): VasNoteModel {\n return new VasNoteModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job || '',\n dto.content || '',\n dto.sensitive || false\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasNoteDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job,\n content: this.content,\n sensitive: this.sensitive,\n };\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(options),\n content: this.content,\n sensitive: this.sensitive,\n created: this.created,\n modified: this.modified\n };\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasInstructionJobFieldDto } from './vas-instruction-job-field.dto';\n\n/**\n * VasInstructionJobFieldModel\n */\nexport class VasInstructionJobFieldModel extends VasBaseModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public value: string,\n public name: string,\n public title: string,\n public sequence: number,\n public controlType: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n static empty(): VasInstructionJobFieldModel {\n return new VasInstructionJobFieldModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 0,\n '',\n );\n }\n\n static override fromDto(\n dto: Partial<VasInstructionJobFieldDto>\n ): VasInstructionJobFieldModel {\n return new VasInstructionJobFieldModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.value || '',\n dto.name || '',\n dto.title || '',\n dto.sequence || 0,\n dto.controlType || ''\n );\n }\n\n toDto(): VasInstructionJobFieldDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n value: this.value,\n name: this.name,\n title: this.title,\n sequence: this.sequence,\n controlType: this.controlType\n };\n }\n}\n","import { VasJobDataModel } from './vas-job-data.model';\nimport { VasReportDto } from './vas-report.dto';\n\nexport class VasReportModel extends VasJobDataModel implements VasReportDto {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override job: string,\n public reportLayoutId: string,\n public title: string,\n public sendEmail: string,\n public message: string,\n public attempted: string,\n public completed: string,\n public succeeded: string,\n public attempts: number,\n public notificationId: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n job,\n );\n }\n\n static empty(): VasReportModel {\n return VasReportModel.fromDto({});\n }\n\n static override fromDto(\n dto: Partial<VasReportModel>\n ): VasReportModel {\n return new VasReportModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job || '',\n dto.reportLayoutId || '',\n dto.title || '',\n dto.sendEmail || '',\n dto.message || '',\n dto.attempted || '',\n dto.completed || '',\n dto.succeeded || '',\n dto.attempts || 0,\n dto.notificationId || '',\n );\n }\n\n toDto(): VasReportDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job,\n reportLayoutId: this.reportLayoutId,\n title: this.title,\n sendEmail: this.sendEmail,\n message: this.message,\n attempted: this.attempted,\n completed: this.completed,\n succeeded: this.succeeded,\n attempts: this.attempts,\n notificationId: this.notificationId,\n };\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasInstructionJobDto } from './vas-instruction-job.dto';\nimport { VasNoteModel } from './vas-note.model';\nimport { VasInstructionJobFieldModel } from './vas-instruction-job-field.model';\nimport { VasFileModel } from './vas-file.model';\nimport { VasReportModel } from './vas-report.model';\n\n/**\n * VasNoteModel\n */\nexport class VasInstructionJobModel extends VasBaseModel {\n /**\n * @param id id\n * @param created created\n * @param serverCreated serverCreated\n * @param createdBy createdBy\n * @param modified modified\n * @param serverModified serverModified\n * @param modifiedBy modifiedBy\n * @param reference reference\n * @param jobStatus jobStatus\n * @param createdByName createdByName\n * @param modifiedByName modifiedByName\n * @param notes notes\n * @param fields fields\n * @param files files\n * @param reports reports\n */\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public reference: string,\n public jobStatus: string,\n public notes: Array<VasNoteModel>,\n public fields: Array<VasInstructionJobFieldModel>,\n public files: Array<VasFileModel>,\n public reports: Array<VasReportModel>\n\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n );\n }\n\n /**\n * @return empty VasInstructionJobModel\n */\n static empty(): VasInstructionJobModel {\n return new VasInstructionJobModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n [],\n [],\n [],\n []\n );\n }\n\n /**\n * @param dto VasInstructionDto\n * @return VasInstructionModel\n */\n static override fromDto(dto: Partial<VasInstructionJobDto>): VasInstructionJobModel {\n return new VasInstructionJobModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.reference || '',\n dto.jobStatus || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n (dto.notes || []).map(d => VasNoteModel.fromDto(d)),\n (dto.fields || []).map(d => VasInstructionJobFieldModel.fromDto(d)),\n (dto.files || []).map(d => VasFileModel.fromDto(d)),\n (dto.reports || []).map(d => VasReportModel.fromDto(d)),\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasInstructionJobDto {\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 reference: this.reference,\n jobStatus: this.jobStatus,\n createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n notes: this.notes.map(m => m.toDto()),\n fields: this.fields.map(m => m.toDto()),\n files: this.files.map(m => m.toDto()),\n reports: this.reports.map(m => m.toDto()),\n };\n }\n}\n","import { VasAccountObjectModel } from './vas-account-object.model';\nimport { VasInstructionProviderDto } from './vas-instruction-provider.dto';\nimport { VasFormModel } from './vas-form.model';\n\n/**\n * VasInstructionProviderModel\n */\nexport class VasInstructionProviderModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public form: VasFormModel,\n public title: string,\n public secret: string,\n public portalEnabled: boolean,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n\n /**\n * @param dto VasInstructionDto\n * @return VasInstructionModel\n */\n static override fromDto(\n dto: Partial<VasInstructionProviderDto>\n ): VasInstructionProviderModel {\n return new VasInstructionProviderModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.form ?\n VasFormModel.fromDto(dto.form) :\n VasFormModel.empty(),\n dto.title || '',\n dto.secret || '',\n dto.portalEnabled || false\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasInstructionProviderDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n form: this.form.toDto(),\n title: this.title,\n secret: this.secret,\n portalEnabled: this.portalEnabled\n };\n }\n\n override toApiDto(options?: any): Record<string, string | number | boolean> {\n return {\n ...super.toApiDto(options),\n title: this.title,\n form: this.form.id,\n portalEnabled: this.portalEnabled\n };\n }\n}\n","import { VasAccountObjectModel } from './vas-account-object.model';\nimport { VasInstructionDto } from './vas-instruction.dto';\nimport { VasInstructionJobModel } from './vas-instruction-job.model';\nimport { VasInstructionProviderModel } from './vas-instruction-provider.model';\n\n/**\n * VasNoteModel\n */\nexport class VasInstructionModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public job: VasInstructionJobModel,\n public instructionProvider: VasInstructionProviderModel\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n /**\n * @param dto VasInstructionDto\n * @return VasInstructionModel\n */\n static override fromDto(dto: Partial<VasInstructionDto>): VasInstructionModel {\n return new VasInstructionModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.job ?\n VasInstructionJobModel.fromDto(dto.job) :\n VasInstructionJobModel.empty(),\n VasInstructionProviderModel.fromDto(dto.instructionProvider || {})\n );\n }\n\n /**\n * @returns VasNoteDto\n */\n toDto(): VasInstructionDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n job: this.job.toDto(),\n instructionProvider: this.instructionProvider.toDto()\n };\n }\n}\n","import { VasFieldDtoValue } from '../entity/vas-field.dto';\n\n/**\n * A non sophisticated way to get values from the job via paths. For example:\n *\n * getValueByPath(\n * ['foo', 'bar'],\n * {\n * foo: {\n * bar: 'value'\n * }\n * }\n * );\n *\n * will return \"value\"\n * @param {string[]} path\n * @param {Record<string, VasFieldDtoValue>} object\n * @return {T | undefined}\n */\nexport const getValueByPath = <T extends VasFieldDtoValue>(\n path: string[],\n object: Record<string, VasFieldDtoValue | Record<string, VasFieldDtoValue>>\n): T | undefined => {\n switch (path.length) {\n case 0: {\n return;\n }\n case 1: {\n return (object)[path[0]] as T;\n }\n case 2: {\n const val0 = object[path[0]] as Record<string, object>;\n if (!val0) {\n return undefined;\n }\n return val0[path[1]] as T;\n }\n case 3: {\n const val0 = object[path[0]] as Record<string, object>;\n if (!val0) {\n return undefined;\n }\n const val1 = val0[path[1]] as Record<string, object>;\n if (!val1) {\n return undefined;\n }\n return val1[path[2]] as T;\n }\n case 4: {\n const val0 = object[path[0]] as Record<string, object>;\n if (!val0) {\n return undefined;\n }\n const val1 = val0[path[1]] as Record<string, object>;\n if (!val1) {\n return undefined;\n }\n const val2 = val1[path[2]] as Record<string, object>;\n if (!val2) {\n return undefined;\n }\n return val2[path[3]] as T;\n }\n default: {\n throw Error('path has too many segments');\n }\n }\n}\n","\nexport interface GeoLocation {\n accuracy: number;\n altitude: number;\n altitudeAccuracy: number;\n geoPoint: Array<number>;\n lonLat: {\n lon: number;\n lat: number;\n };\n timestamp: string;\n}\n\nexport const getEmptyGeoLocation = (): GeoLocation => ({\n accuracy: 0,\n altitude: 0,\n altitudeAccuracy: 0,\n geoPoint: [],\n lonLat: {\n lon: 0,\n lat: 0,\n },\n timestamp: ''\n})\n","export const isArrayString = (value: any): value is Array<string> => {\n return Array.isArray(value) && value.every(i => typeof i === 'string');\n};\n","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 constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: string,\n public 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 createdByName,\n modifiedByName,\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 static empty(): VasJobModel {\n return new VasJobModel(\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n moment().utcOffset(),\n 0,\n '',\n 0,\n [],\n [],\n '',\n '',\n getEmptyGeoLocation()\n );\n }\n\n static override fromDto(dto: Partial<VasJobDto>): VasJobModel {\n const model = new VasJobModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.reference || '',\n dto.jobDate || '',\n dto.jobStatus || '',\n dto.jobType || '',\n dto.assigneeId || '',\n dto.formId || '',\n dto.timeZoneOffset || moment().utcOffset(),\n dto.pendingFields || 0,\n dto.childModified || '',\n dto.version || 0,\n dto.fields || [],\n dto.files || [],\n dto.createdByDisplayName || '',\n dto.modifiedByDisplayName || '',\n dto.geoLocation || getEmptyGeoLocation()\n );\n const emptyKeys = model.staticProperties;\n Object\n .keys(dto)\n .filter(key => emptyKeys.indexOf(key) === -1)\n .forEach((key: string) =>\n model.$this[key] = (dto 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.\n * This method is similar to `getFields` except that this method will only\n * return values where a value was set, as opposed to `getFields` which\n * return a property regardless (because it uses the form to 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 fields[controlName] = this.getValueByPath([groupName, controlName]);\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 !== 'COMPLETED')\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 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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n accessGroup: this.accessGroup,\n reference: this.reference,\n jobDate: this.jobDate,\n jobStatus: this.jobStatus,\n 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","import { VasMembershipDto } from './vas-membership.dto';\nimport { UUID } from 'angular2-uuid';\nimport { VasAccountObjectModel} from './vas-account-object.model';\n\n/**\n * VasMembershipModel\n */\nexport class VasMembershipModel extends VasAccountObjectModel {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public user: string,\n public admin: boolean,\n public lookupTypes: Array<string>,\n public contactTypes: Array<string>,\n public accessGroups: Array<string>,\n public jobStatuses: Array<string>,\n public jobTypes: Array<string>,\n public taskTypes: Array<string>,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n static empty(): VasMembershipModel {\n return VasMembershipModel.fromDto({\n // eslint-disable-next-line new-cap\n id: UUID.UUID()\n });\n }\n\n static override fromDto(\n dto: Partial<VasMembershipDto>\n ): VasMembershipModel {\n return new VasMembershipModel(\n // eslint-disable-next-line new-cap\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.user || '',\n dto.admin || false,\n dto.lookupTypes || [],\n dto.contactTypes || [],\n dto.accessGroups || [],\n dto.jobStatuses || [],\n dto.jobTypes || [],\n dto.taskTypes || []\n );\n }\n\n toDto(): VasMembershipDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n user: this.user,\n admin: this.admin,\n lookupTypes: this.lookupTypes,\n contactTypes: this.contactTypes,\n accessGroups: this.accessGroups,\n jobStatuses: this.jobStatuses,\n jobTypes: this.jobTypes,\n taskTypes: this.taskTypes\n };\n }\n}\n\n","import { VasRestrictedAccountObjectModel } from './vas-restricted-account-object.model';\n\nexport class VasReportLayoutModel extends VasRestrictedAccountObjectModel {\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public override accessGroup: string,\n public jobType: string,\n public title: string,\n public description: string,\n public entryPoint: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account,\n accessGroup\n );\n }\n\n}\n","import { VasReportRequestDto } from './vas-report-request.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment';\nimport { VasAccountObjectModel } from './vas-account-object.model';\n\nexport class VasReportRequestModel extends VasAccountObjectModel {\n\n constructor(\n public override id: string,\n public override created: string,\n public override serverCreated: string,\n public override createdBy: string,\n public override modified: string,\n public override serverModified: string,\n public override modifiedBy: string,\n public override createdByName: string,\n public override modifiedByName: string,\n public override account: string,\n public error: string,\n public jobId: string,\n public title: string,\n public url: string,\n public reportId: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy,\n createdByName,\n modifiedByName,\n account\n );\n }\n\n static override fromDto(\n dto: Partial<VasReportRequestDto>\n ): VasReportRequestModel {\n return new VasReportRequestModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.createdByName || '',\n dto.modifiedByName || '',\n dto.account || '',\n dto.error || '',\n dto.jobId || '',\n dto.title || '',\n dto.url || '',\n dto.reportId || ''\n )\n }\n\n toDto(): VasReportRequestDto {\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 createdByName: this.createdByName,\n modifiedByName: this.modifiedByName,\n account: this.account,\n error: this.error,\n jobId: this.jobId,\n title: this.title,\n url: this.url,\n reportId: this.reportId\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["moment"],"mappings":"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"}
|