@ironcode/vas-lib 0.0.3 → 0.0.4
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-form.model.d.ts +6 -0
- package/cjs/lib/entity/vas-form.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-form.model.js +18 -0
- package/cjs/lib/entity/vas-form.model.js.map +1 -1
- package/cjs/lib/entity/vas-job.dto.d.ts +1 -0
- package/cjs/lib/entity/vas-job.dto.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.dto.js.map +1 -1
- package/cjs/lib/entity/vas-job.model.d.ts +39 -1
- package/cjs/lib/entity/vas-job.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-job.model.js +85 -3
- package/cjs/lib/entity/vas-job.model.js.map +1 -1
- package/cjs/package.json +6 -1
- package/esm2020/lib/entity/vas-form.model.mjs +19 -1
- package/esm2020/lib/entity/vas-job.dto.mjs +1 -1
- package/esm2020/lib/entity/vas-job.model.mjs +85 -4
- package/fesm2015/ironcode-vas-lib.mjs +101 -3
- package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
- package/fesm2020/ironcode-vas-lib.mjs +101 -3
- package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
- package/lib/entity/vas-form.model.d.ts +6 -0
- package/lib/entity/vas-job.dto.d.ts +1 -0
- package/lib/entity/vas-job.model.d.ts +39 -1
- package/package.json +2 -6
|
@@ -409,6 +409,24 @@ class VasFormModel extends VasBaseModel {
|
|
|
409
409
|
}));
|
|
410
410
|
return result;
|
|
411
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
*
|
|
414
|
+
* @param {string} name
|
|
415
|
+
* @return {VasControlModel | undefined}
|
|
416
|
+
*/
|
|
417
|
+
findControlModelByName(name) {
|
|
418
|
+
let result;
|
|
419
|
+
this.groups
|
|
420
|
+
.find(group => group.controls
|
|
421
|
+
.find(control => {
|
|
422
|
+
if (control.name !== name) {
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
result = control;
|
|
426
|
+
return true;
|
|
427
|
+
}));
|
|
428
|
+
return result;
|
|
429
|
+
}
|
|
412
430
|
/**
|
|
413
431
|
*
|
|
414
432
|
* @return {Array<Array<string>>}
|
|
@@ -485,8 +503,9 @@ class VasJobModel extends VasBaseModel {
|
|
|
485
503
|
* @param {string} jobType
|
|
486
504
|
* @param {string} assignee
|
|
487
505
|
* @param {string} formId
|
|
506
|
+
* @param {number} timeZoneOffset
|
|
488
507
|
*/
|
|
489
|
-
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId) {
|
|
508
|
+
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId, timeZoneOffset) {
|
|
490
509
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
|
|
491
510
|
this.id = id;
|
|
492
511
|
this.created = created;
|
|
@@ -503,6 +522,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
503
522
|
this.jobType = jobType;
|
|
504
523
|
this.assignee = assignee;
|
|
505
524
|
this.formId = formId;
|
|
525
|
+
this.timeZoneOffset = timeZoneOffset;
|
|
506
526
|
}
|
|
507
527
|
/**
|
|
508
528
|
* Returns this with the dynamic interface
|
|
@@ -536,7 +556,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
536
556
|
static empty() {
|
|
537
557
|
return new VasJobModel(
|
|
538
558
|
// eslint-disable-next-line new-cap
|
|
539
|
-
UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
|
559
|
+
UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '', 0);
|
|
540
560
|
}
|
|
541
561
|
/**
|
|
542
562
|
* @param {VasJobDto} jobDto
|
|
@@ -545,7 +565,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
545
565
|
static fromDto(jobDto) {
|
|
546
566
|
const model = new VasJobModel(
|
|
547
567
|
// eslint-disable-next-line new-cap
|
|
548
|
-
jobDto.id || UUID.UUID(), jobDto.created || '', jobDto.serverCreated || '', jobDto.createdBy || '', jobDto.modified || '', jobDto.serverModified || '', jobDto.modifiedBy || '', jobDto.account || '', jobDto.accessGroup || '', jobDto.reference || '', jobDto.jobDate || '', jobDto.jobStatus || '', jobDto.jobType || '', jobDto.assignee || '', jobDto.formId || '');
|
|
568
|
+
jobDto.id || UUID.UUID(), jobDto.created || '', jobDto.serverCreated || '', jobDto.createdBy || '', jobDto.modified || '', jobDto.serverModified || '', jobDto.modifiedBy || '', jobDto.account || '', jobDto.accessGroup || '', jobDto.reference || '', jobDto.jobDate || '', jobDto.jobStatus || '', jobDto.jobType || '', jobDto.assignee || '', jobDto.formId || '', jobDto.timeZoneOffset || 0);
|
|
549
569
|
const emptyKeys = model.staticProperties;
|
|
550
570
|
Object
|
|
551
571
|
.keys(jobDto)
|
|
@@ -597,11 +617,20 @@ class VasJobModel extends VasBaseModel {
|
|
|
597
617
|
}
|
|
598
618
|
case 2: {
|
|
599
619
|
const val0 = this.$this[path[0]];
|
|
620
|
+
if (!val0) {
|
|
621
|
+
return undefined;
|
|
622
|
+
}
|
|
600
623
|
return val0[path[1]];
|
|
601
624
|
}
|
|
602
625
|
case 3: {
|
|
603
626
|
const val0 = this.$this[path[0]];
|
|
627
|
+
if (!val0) {
|
|
628
|
+
return undefined;
|
|
629
|
+
}
|
|
604
630
|
const val1 = val0[path[1]];
|
|
631
|
+
if (!val1) {
|
|
632
|
+
return undefined;
|
|
633
|
+
}
|
|
605
634
|
return val1[path[2]];
|
|
606
635
|
}
|
|
607
636
|
default: {
|
|
@@ -666,6 +695,75 @@ class VasJobModel extends VasBaseModel {
|
|
|
666
695
|
.forEach(prop => dto[prop] = this.$this[prop]);
|
|
667
696
|
return dto;
|
|
668
697
|
}
|
|
698
|
+
/**
|
|
699
|
+
* This method will parse a syntax that allows us to build strings from the
|
|
700
|
+
* values of from the job model. For example if the job model was:
|
|
701
|
+
*
|
|
702
|
+
* {
|
|
703
|
+
* foo: 'bar'
|
|
704
|
+
* }
|
|
705
|
+
*
|
|
706
|
+
* and we pass "i am foo {foo}", the result would be:
|
|
707
|
+
*
|
|
708
|
+
* "i am foo bar"
|
|
709
|
+
*
|
|
710
|
+
* we can also use moment to parse dates, for example if the job model was:
|
|
711
|
+
*
|
|
712
|
+
* {
|
|
713
|
+
* created: "2022-01-01T00:00:00+0000"
|
|
714
|
+
* }
|
|
715
|
+
*
|
|
716
|
+
* and we pass "{created|date:YY-MM-DD}", the result would be:
|
|
717
|
+
*
|
|
718
|
+
* "2022-01-01"
|
|
719
|
+
*
|
|
720
|
+
* @param {string} value a string with the syntax
|
|
721
|
+
* @param {ParseSyntaxOptions} options
|
|
722
|
+
* @return {string} the results of parsing the syntax on this job
|
|
723
|
+
*/
|
|
724
|
+
parseSyntax(value, options = {
|
|
725
|
+
timeZoneOffset: 0
|
|
726
|
+
}) {
|
|
727
|
+
if (!value || typeof value !== 'string') {
|
|
728
|
+
return '';
|
|
729
|
+
}
|
|
730
|
+
return value.replace(/({[^}]*})/g, (match, token) => {
|
|
731
|
+
const syntax = token.substring(1, token.length - 1);
|
|
732
|
+
let [key, filter] = syntax.split('|');
|
|
733
|
+
key = (key || '').trim();
|
|
734
|
+
filter = (filter || '').trim();
|
|
735
|
+
let filterName, filterArg = '';
|
|
736
|
+
if (filter) {
|
|
737
|
+
const splitIndex = filter.indexOf(':');
|
|
738
|
+
if (splitIndex !== -1) {
|
|
739
|
+
filterName = filter.substring(0, splitIndex);
|
|
740
|
+
filterArg = filter.substring(splitIndex + 1);
|
|
741
|
+
}
|
|
742
|
+
else {
|
|
743
|
+
filterName = filter;
|
|
744
|
+
filterArg = '';
|
|
745
|
+
}
|
|
746
|
+
filterName = (filterName || '').trim();
|
|
747
|
+
filterArg = (filterArg || '').trim();
|
|
748
|
+
}
|
|
749
|
+
const path = key.split('.');
|
|
750
|
+
let result = (this.getValueByPath(path) || '').toString();
|
|
751
|
+
if (filterName && result) {
|
|
752
|
+
switch (filterName) {
|
|
753
|
+
case 'date': {
|
|
754
|
+
return moment(result)
|
|
755
|
+
.utcOffset(options.timeZoneOffset)
|
|
756
|
+
.format(filterArg || '');
|
|
757
|
+
}
|
|
758
|
+
default: {
|
|
759
|
+
console.warn('unknown filter %s', filterName);
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
return result;
|
|
764
|
+
});
|
|
765
|
+
}
|
|
766
|
+
;
|
|
669
767
|
}
|
|
670
768
|
|
|
671
769
|
class VasReportRequestModel extends VasBaseModel {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ironcode-vas-lib.mjs","sources":["../../../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-control.model.ts","../../../projects/vas-lib/src/lib/entity/vas-control-type.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-job.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report-request.model.ts","../../../projects/vas-lib/src/lib/entity/vas-user.model.ts","../../../projects/vas-lib/src/ironcode-vas-lib.ts"],"sourcesContent":["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 * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n */\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 ) {\n\n }\n}\n\n","import { VasBaseModel } from './vas-base.model';\nimport { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlDto } from './vas-control.dto';\nimport { UUID } from 'angular2-uuid';\n\nexport declare type VasControlModelDefaultValueType = string | number | object;\n\n/**\n * ControlModel\n */\nexport class VasControlModel extends VasBaseModel implements VasControlDto {\n public controlTypeModel: VasControlTypeModel | undefined = undefined;\n\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} controlType\n * @param {string} group\n * @param {string[]} validators\n * @param {string} name\n * @param {string} title\n * @param {boolean} linkable\n * @param {number} sequence\n * @param {string} description\n * @param {string} defaultValue\n * @param {object} config\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 account: string,\n public accessGroup: string,\n public controlType: string,\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: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\n );\n }\n\n /**\n * The config property is returned from the api as a json string, this getter\n * will deserialize it\n * @return {T}\n */\n getConfigModel<T>(): T {\n return JSON.parse(this.config) as T;\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 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. field.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 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.account || '',\n dto.accessGroup || '',\n dto.controlType || '',\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 dto.config || '{}',\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 account: this.account,\n accessGroup: this.accessGroup,\n controlType: this.controlType,\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: this.config\n };\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 * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} name\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 name: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\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.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 name: this.name\n };\n }\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 * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} name\n * @param {string} title\n * @param {string} description\n * @param {number} sequence\n * @param {boolean} includeInSummary\n * @param {string[]} forms\n * @param {string} visibilityControl\n * @param {string} visibleIfEquals\n * @param {VasControlModel[]} controls\n * @param {number} scoreWeight\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 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 );\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.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 .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 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 { VasBaseModel } from './vas-base.model';\nimport { VasGroupModel } from './vas-group.model';\nimport { VasControlModel } from './vas-control.model';\nimport { VasFormDto } from './vas-form.dto';\nimport { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\nimport { VasFieldDtoValue } from './vas-field.dto';\nimport { VasJobModel } from './vas-job.model';\n\n/**\n * VasFormModel\n */\nexport class VasFormModel extends VasBaseModel {\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} jobType\n * @param {string} title\n * @param {string} description\n * @param {VasGroupModel[]} groups\n */\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 account: string,\n public accessGroup: string,\n public jobType: string,\n public title: string,\n public description: string,\n public groups: VasGroupModel[]\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\n );\n }\n\n /**\n * The VAS API response for Form will inline Group and Control but not\n * ControlType. This method is a help which will allows us to construct an\n * instance of VasFormModel with the ControlType model set appropriately into\n * each VasControlModel\n * @param {VasFormDto} formDto\n * @param {Array<VasControlTypeDto>} controlTypeDtos\n * @return {VasFormModel}\n */\n public static fromApiResponse(\n formDto: VasFormDto,\n controlTypeDtos: Array<VasControlTypeDto>\n ): VasFormModel {\n const controlTypeModels = controlTypeDtos\n .map(ctDto => VasControlTypeModel.fromDto(ctDto));\n const formModel = VasFormModel.fromDto(formDto);\n formModel.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n control.controlTypeModel = controlTypeModels\n .find(ct => ct.id === control.controlType);\n });\n });\n return formModel;\n }\n\n /**\n * @param {VasFormDto} dto\n * @return {VasFormModel}\n */\n public static fromDto(dto: Partial<VasFormDto>): VasFormModel {\n return new VasFormModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.jobType || '',\n dto.title || '',\n dto.description || '',\n (dto.groups || [])\n .sort((a, b) => a.sequence - b.sequence)\n .map(g => VasGroupModel.fromDto(g))\n );\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 * @return {Array<Array<string>>}\n */\n getCameraControlPaths(): Array<Array<string>> {\n const paths: string[][] = [];\n this.groups.forEach(group => {\n group.controls.forEach(control => {\n if (control.controlTypeModel?.name !== 'camera') {\n return;\n }\n paths.push([group.name, control.safeName]);\n });\n });\n return paths;\n }\n\n /**\n * @param {VasJobModel} jobModel\n * @return {Array<{id: string, value: VasFieldDtoValue}>}\n */\n getValuesByControlId(\n jobModel: VasJobModel\n ): Array<{id: string, value: VasFieldDtoValue | undefined}> {\n const items: Array<{id: string, value: VasFieldDtoValue | undefined}> = [];\n this.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n items.push({\n id: control.id,\n value: jobModel.getValueByPath([group.name, control.safeName])\n });\n });\n });\n return items;\n }\n\n /**\n * @return {VasFormDto}\n */\n toDto(): VasFormDto {\n return {\n id: this.id,\n created: this.created,\n serverCreated: this.serverCreated,\n createdBy: this.createdBy,\n modified: this.modified,\n serverModified: this.serverModified,\n modifiedBy: this.modifiedBy,\n account: this.account,\n accessGroup: this.accessGroup,\n jobType: this.jobType,\n title: this.title,\n description: this.description,\n groups: this.groups.map(group => group.toDto()),\n };\n }\n}\n\n","import { UUID } from 'angular2-uuid';\nimport { VasJobDto } from './vas-job.dto';\nimport { VasBaseModel } from './vas-base.model';\nimport { VasFieldDtoValue } from './vas-field.dto';\nimport { VasFormModel } from './vas-form.model';\n\ntype VasJobModelKeys = keyof typeof VasJobModel;\n\ndeclare type VasJobModelTypeType = {\n [key in VasJobModelKeys]: string;\n}\n\ninterface VasJobModelDynamicInterface extends VasJobModelTypeType {\n [key: string]: VasFieldDtoValue;\n}\n\n/**\n * JobModel\n */\nexport class VasJobModel extends VasBaseModel {\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} reference\n * @param {string} jobDate\n * @param {string} jobStatus\n * @param {string} jobType\n * @param {string} assignee\n * @param {string} formId\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 account: string,\n public accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: string,\n public jobType: string,\n public assignee: string,\n public formId: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\n );\n }\n\n /**\n * Returns this with the dynamic interface\n * @return {VasJobModelDynamicInterface}\n */\n get $this(): VasJobModelDynamicInterface {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const $this = this;\n return this as typeof $this & VasJobModelDynamicInterface;\n }\n\n /**\n * Returns a list of Job dynamic properties i.e. those that are added by the\n * dynamic forms\n */\n get dynamicProperties(): Array<string> {\n const nativeProps = this.staticProperties;\n return Object\n .getOwnPropertyNames(this)\n .filter(prop => !nativeProps.includes(prop));\n }\n\n /**\n * Returns a list of Job static properties i.e. those that are declared by\n * the type\n */\n get staticProperties(): Array<string> {\n return Object.getOwnPropertyNames(VasJobModel.empty());\n }\n\n /**\n * @return {VasJobModel}\n */\n public static empty(): VasJobModel {\n return new VasJobModel(\n // eslint-disable-next-line new-cap\n UUID.UUID(),\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n ''\n );\n }\n\n /**\n * @param {VasJobDto} jobDto\n * @return {VasJobModel}\n */\n public static fromDto(jobDto: Partial<VasJobDto>): VasJobModel {\n const model = new VasJobModel(\n // eslint-disable-next-line new-cap\n jobDto.id || UUID.UUID(),\n jobDto.created || '',\n jobDto.serverCreated || '',\n jobDto.createdBy || '',\n jobDto.modified || '',\n jobDto.serverModified || '',\n jobDto.modifiedBy || '',\n jobDto.account || '',\n jobDto.accessGroup || '',\n jobDto.reference || '',\n jobDto.jobDate || '',\n jobDto.jobStatus || '',\n jobDto.jobType || '',\n jobDto.assignee || '',\n jobDto.formId || '',\n );\n const emptyKeys = model.staticProperties;\n Object\n .keys(jobDto)\n .filter(key => emptyKeys.indexOf(key) === -1)\n .forEach((key: string) =>\n model.$this[key] = (jobDto as VasJobModelDynamicInterface)[key]\n );\n return model;\n }\n\n /**\n * @param {VasFormModel} formModel\n * @return {Record<string, VasFieldDtoValue>}\n */\n getFields(formModel: VasFormModel): Record<string, VasFieldDtoValue> {\n const fields: {[key: string]: VasFieldDtoValue} = {};\n formModel.groups\n .forEach(group => {\n group.controls.forEach(control => {\n (fields)[control.reportTemplateName] =\n this.getValueByPath([group.name, control.name]);\n });\n });\n return fields;\n }\n\n /**\n * A very non sophisticated way to get values from the job via paths\n *\n * For example:\n *\n * getValueByPath(['foo', 'bar']);\n *\n * if job is\n * {\n * foo: {\n * bar: 'value'\n * }\n * }\n *\n * will return \"value\"\n *\n * @param {string[]} path path segments\n * @return {void}\n */\n getValueByPath<T extends VasFieldDtoValue>(\n path: string[] = []\n ): T | undefined {\n switch (path.length) {\n case 0: {\n return;\n }\n case 1: {\n return (this.$this)[path[0]] as T;\n }\n case 2: {\n const val0 = this.$this[path[0]] as Record<string, object>;\n return val0[path[1]] as T;\n }\n case 3: {\n const val0 = this.$this[path[0]] as Record<string, object>;\n const val1 = val0[path[1]] as Record<string, object>;\n return val1[path[2]] as T;\n }\n default: {\n throw Error('path has too many segments');\n }\n }\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.$this)[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 const dto = {} as VasJobDto & Record<string, VasFieldDtoValue>;\n this.staticProperties\n .forEach(prop =>\n (dto)[prop] = this.$this[prop]);\n\n if (staticOnly) {\n return dto;\n }\n\n this.dynamicProperties\n .forEach(prop =>\n dto[prop] = this.$this[prop]);\n\n return dto;\n }\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasReportRequestDto } from './vas-report-request.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment';\n\nexport class VasReportRequestModel 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 error: string,\n public jobId: string,\n public title: string,\n public url: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\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.error || '',\n dto.jobId || '',\n dto.title || '',\n dto.url || ''\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 error: this.error,\n jobId: this.jobId,\n title: this.title,\n url: this.url\n }\n }\n\n}\n","import { VasUserDto } from './vas-user.dto';\r\nimport { VasBaseModel } from './vas-base.model';\r\nimport moment from 'moment';\r\n\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 email: string,\r\n public username?: 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 );\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.email,\r\n dto.username\r\n );\r\n }\r\n\r\n public static newUser(uid: string, displayName: string, email: string): VasUserDto {\r\n return {\r\n id: uid,\r\n created: moment().toISOString(),\r\n createdBy: uid,\r\n modified: moment().toISOString(),\r\n modifiedBy: uid,\r\n serverCreated: moment().toISOString(),\r\n serverModified: moment().toISOString(),\r\n email: email,\r\n username: displayName,\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 email: this.email,\r\n username: this.username\r\n };\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ironcode-vas-lib.mjs","sources":["../../../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-control.model.ts","../../../projects/vas-lib/src/lib/entity/vas-control-type.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-job.model.ts","../../../projects/vas-lib/src/lib/entity/vas-report-request.model.ts","../../../projects/vas-lib/src/lib/entity/vas-user.model.ts","../../../projects/vas-lib/src/ironcode-vas-lib.ts"],"sourcesContent":["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 * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n */\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 ) {\n\n }\n}\n\n","import { VasBaseModel } from './vas-base.model';\nimport { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlDto } from './vas-control.dto';\nimport { UUID } from 'angular2-uuid';\n\nexport declare type VasControlModelDefaultValueType = string | number | object;\n\n/**\n * ControlModel\n */\nexport class VasControlModel extends VasBaseModel implements VasControlDto {\n public controlTypeModel: VasControlTypeModel | undefined = undefined;\n\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} controlType\n * @param {string} group\n * @param {string[]} validators\n * @param {string} name\n * @param {string} title\n * @param {boolean} linkable\n * @param {number} sequence\n * @param {string} description\n * @param {string} defaultValue\n * @param {object} config\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 account: string,\n public accessGroup: string,\n public controlType: string,\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: string\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\n );\n }\n\n /**\n * The config property is returned from the api as a json string, this getter\n * will deserialize it\n * @return {T}\n */\n getConfigModel<T>(): T {\n return JSON.parse(this.config) as T;\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 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. field.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 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.account || '',\n dto.accessGroup || '',\n dto.controlType || '',\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 dto.config || '{}',\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 account: this.account,\n accessGroup: this.accessGroup,\n controlType: this.controlType,\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: this.config\n };\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 * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} name\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 name: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\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.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 name: this.name\n };\n }\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 * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} name\n * @param {string} title\n * @param {string} description\n * @param {number} sequence\n * @param {boolean} includeInSummary\n * @param {string[]} forms\n * @param {string} visibilityControl\n * @param {string} visibleIfEquals\n * @param {VasControlModel[]} controls\n * @param {number} scoreWeight\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 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 );\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.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 .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 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 { VasBaseModel } from './vas-base.model';\nimport { VasGroupModel } from './vas-group.model';\nimport { VasControlModel } from './vas-control.model';\nimport { VasFormDto } from './vas-form.dto';\nimport { VasControlTypeModel } from './vas-control-type.model';\nimport { VasControlTypeDto } from './vas-control-type.dto';\nimport { VasFieldDtoValue } from './vas-field.dto';\nimport { VasJobModel } from './vas-job.model';\n\n/**\n * VasFormModel\n */\nexport class VasFormModel extends VasBaseModel {\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} jobType\n * @param {string} title\n * @param {string} description\n * @param {VasGroupModel[]} groups\n */\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 account: string,\n public accessGroup: string,\n public jobType: string,\n public title: string,\n public description: string,\n public groups: VasGroupModel[]\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\n );\n }\n\n /**\n * The VAS API response for Form will inline Group and Control but not\n * ControlType. This method is a help which will allows us to construct an\n * instance of VasFormModel with the ControlType model set appropriately into\n * each VasControlModel\n * @param {VasFormDto} formDto\n * @param {Array<VasControlTypeDto>} controlTypeDtos\n * @return {VasFormModel}\n */\n public static fromApiResponse(\n formDto: VasFormDto,\n controlTypeDtos: Array<VasControlTypeDto>\n ): VasFormModel {\n const controlTypeModels = controlTypeDtos\n .map(ctDto => VasControlTypeModel.fromDto(ctDto));\n const formModel = VasFormModel.fromDto(formDto);\n formModel.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n control.controlTypeModel = controlTypeModels\n .find(ct => ct.id === control.controlType);\n });\n });\n return formModel;\n }\n\n /**\n * @param {VasFormDto} dto\n * @return {VasFormModel}\n */\n public static fromDto(dto: Partial<VasFormDto>): VasFormModel {\n return new VasFormModel(\n dto.id || '',\n dto.created || '',\n dto.serverCreated || '',\n dto.createdBy || '',\n dto.modified || '',\n dto.serverModified || '',\n dto.modifiedBy || '',\n dto.account || '',\n dto.accessGroup || '',\n dto.jobType || '',\n dto.title || '',\n dto.description || '',\n (dto.groups || [])\n .sort((a, b) => a.sequence - b.sequence)\n .map(g => VasGroupModel.fromDto(g))\n );\n }\n\n /**\n * @param {string} id\n * @return {VasControlModel | undefined}\n */\n findControlModelById(id: string): VasControlModel | undefined {\n let result;\n this.groups\n .find(group => group.controls\n .find(control => {\n if (control.id !== id) {\n return;\n }\n result = control;\n return true;\n }));\n return result;\n }\n\n /**\n *\n * @param {string} name\n * @return {VasControlModel | undefined}\n */\n findControlModelByName(name: string): VasControlModel | undefined {\n let result;\n this.groups\n .find(group => group.controls\n .find(control => {\n if (control.name !== name) {\n return;\n }\n result = control;\n return true;\n }));\n return result;\n }\n\n /**\n *\n * @return {Array<Array<string>>}\n */\n getCameraControlPaths(): Array<Array<string>> {\n const paths: string[][] = [];\n this.groups.forEach(group => {\n group.controls.forEach(control => {\n if (control.controlTypeModel?.name !== 'camera') {\n return;\n }\n paths.push([group.name, control.safeName]);\n });\n });\n return paths;\n }\n\n /**\n * @param {VasJobModel} jobModel\n * @return {Array<{id: string, value: VasFieldDtoValue}>}\n */\n getValuesByControlId(\n jobModel: VasJobModel\n ): Array<{id: string, value: VasFieldDtoValue | undefined}> {\n const items: Array<{id: string, value: VasFieldDtoValue | undefined}> = [];\n this.groups\n .forEach(group => {\n group.controls\n .forEach(control => {\n items.push({\n id: control.id,\n value: jobModel.getValueByPath([group.name, control.safeName])\n });\n });\n });\n return items;\n }\n\n /**\n * @return {VasFormDto}\n */\n toDto(): VasFormDto {\n return {\n id: this.id,\n created: this.created,\n serverCreated: this.serverCreated,\n createdBy: this.createdBy,\n modified: this.modified,\n serverModified: this.serverModified,\n modifiedBy: this.modifiedBy,\n account: this.account,\n accessGroup: this.accessGroup,\n jobType: this.jobType,\n title: this.title,\n description: this.description,\n groups: this.groups.map(group => group.toDto()),\n };\n }\n}\n\n","import { UUID } from 'angular2-uuid';\nimport { VasJobDto } from './vas-job.dto';\nimport { VasBaseModel } from './vas-base.model';\nimport { VasFieldDtoValue } from './vas-field.dto';\nimport { VasFormModel } from './vas-form.model';\nimport moment from 'moment';\n\ntype VasJobModelKeys = keyof typeof VasJobModel;\n\ndeclare type VasJobModelTypeType = {\n [key in VasJobModelKeys]: string;\n}\n\ninterface VasJobModelDynamicInterface extends VasJobModelTypeType {\n [key: string]: VasFieldDtoValue;\n}\n\nexport interface ParseSyntaxOptions {\n /**\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 */\n timeZoneOffset: number\n}\n\n/**\n * JobModel\n */\nexport class VasJobModel extends VasBaseModel {\n /**\n * @param {string} id\n * @param {string} created\n * @param {string} serverCreated\n * @param {string} createdBy\n * @param {string} modified\n * @param {string} serverModified\n * @param {string} modifiedBy\n * @param {string} account\n * @param {string} accessGroup\n * @param {string} reference\n * @param {string} jobDate\n * @param {string} jobStatus\n * @param {string} jobType\n * @param {string} assignee\n * @param {string} formId\n * @param {number} timeZoneOffset\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 account: string,\n public accessGroup: string,\n public reference: string,\n public jobDate: string,\n public jobStatus: string,\n public jobType: string,\n public assignee: string,\n public formId: string,\n public timeZoneOffset: number\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\n );\n }\n\n /**\n * Returns this with the dynamic interface\n * @return {VasJobModelDynamicInterface}\n */\n get $this(): VasJobModelDynamicInterface {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const $this = this;\n return this as typeof $this & VasJobModelDynamicInterface;\n }\n\n /**\n * Returns a list of Job dynamic properties i.e. those that are added by the\n * dynamic forms\n */\n get dynamicProperties(): Array<string> {\n const nativeProps = this.staticProperties;\n return Object\n .getOwnPropertyNames(this)\n .filter(prop => !nativeProps.includes(prop));\n }\n\n /**\n * Returns a list of Job static properties i.e. those that are declared by\n * the type\n */\n get staticProperties(): Array<string> {\n return Object.getOwnPropertyNames(VasJobModel.empty());\n }\n\n /**\n * @return {VasJobModel}\n */\n public static empty(): VasJobModel {\n return new VasJobModel(\n // eslint-disable-next-line new-cap\n UUID.UUID(),\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 0\n );\n }\n\n /**\n * @param {VasJobDto} jobDto\n * @return {VasJobModel}\n */\n public static fromDto(jobDto: Partial<VasJobDto>): VasJobModel {\n const model = new VasJobModel(\n // eslint-disable-next-line new-cap\n jobDto.id || UUID.UUID(),\n jobDto.created || '',\n jobDto.serverCreated || '',\n jobDto.createdBy || '',\n jobDto.modified || '',\n jobDto.serverModified || '',\n jobDto.modifiedBy || '',\n jobDto.account || '',\n jobDto.accessGroup || '',\n jobDto.reference || '',\n jobDto.jobDate || '',\n jobDto.jobStatus || '',\n jobDto.jobType || '',\n jobDto.assignee || '',\n jobDto.formId || '',\n jobDto.timeZoneOffset || 0\n );\n const emptyKeys = model.staticProperties;\n Object\n .keys(jobDto)\n .filter(key => emptyKeys.indexOf(key) === -1)\n .forEach((key: string) =>\n model.$this[key] = (jobDto as VasJobModelDynamicInterface)[key]\n );\n return model;\n }\n\n /**\n * @param {VasFormModel} formModel\n * @return {Record<string, VasFieldDtoValue>}\n */\n getFields(formModel: VasFormModel): Record<string, VasFieldDtoValue> {\n const fields: {[key: string]: VasFieldDtoValue} = {};\n formModel.groups\n .forEach(group => {\n group.controls.forEach(control => {\n (fields)[control.reportTemplateName] =\n this.getValueByPath([group.name, control.name]);\n });\n });\n return fields;\n }\n\n /**\n * A very non sophisticated way to get values from the job via paths\n *\n * For example:\n *\n * getValueByPath(['foo', 'bar']);\n *\n * if job is\n * {\n * foo: {\n * bar: 'value'\n * }\n * }\n *\n * will return \"value\"\n *\n * @param {string[]} path path segments\n * @return {void}\n */\n getValueByPath<T extends VasFieldDtoValue>(\n path: string[] = []\n ): T | undefined {\n switch (path.length) {\n case 0: {\n return;\n }\n case 1: {\n return (this.$this)[path[0]] as T;\n }\n case 2: {\n const val0 = this.$this[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 = this.$this[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 default: {\n throw Error('path has too many segments');\n }\n }\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.$this)[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 const dto = {} as VasJobDto & Record<string, VasFieldDtoValue>;\n this.staticProperties\n .forEach(prop =>\n (dto)[prop] = this.$this[prop]);\n\n if (staticOnly) {\n return dto;\n }\n\n this.dynamicProperties\n .forEach(prop =>\n dto[prop] = this.$this[prop]);\n\n return dto;\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 let result = (this.getValueByPath(path) || '').toString();\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 });\n };\n}\n","import { VasBaseModel } from './vas-base.model';\nimport { VasReportRequestDto } from './vas-report-request.dto';\nimport { UUID } from 'angular2-uuid';\nimport moment from 'moment';\n\nexport class VasReportRequestModel 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 error: string,\n public jobId: string,\n public title: string,\n public url: string,\n ) {\n super(\n id,\n created,\n serverCreated,\n createdBy,\n modified,\n serverModified,\n modifiedBy\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.error || '',\n dto.jobId || '',\n dto.title || '',\n dto.url || ''\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 error: this.error,\n jobId: this.jobId,\n title: this.title,\n url: this.url\n }\n }\n\n}\n","import { VasUserDto } from './vas-user.dto';\r\nimport { VasBaseModel } from './vas-base.model';\r\nimport moment from 'moment';\r\n\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 email: string,\r\n public username?: 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 );\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.email,\r\n dto.username\r\n );\r\n }\r\n\r\n public static newUser(uid: string, displayName: string, email: string): VasUserDto {\r\n return {\r\n id: uid,\r\n created: moment().toISOString(),\r\n createdBy: uid,\r\n modified: moment().toISOString(),\r\n modifiedBy: uid,\r\n serverCreated: moment().toISOString(),\r\n serverModified: moment().toISOString(),\r\n email: email,\r\n username: displayName,\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 email: this.email,\r\n username: this.username\r\n };\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,12 @@ export declare class VasFormModel extends VasBaseModel {
|
|
|
58
58
|
* @return {VasControlModel | undefined}
|
|
59
59
|
*/
|
|
60
60
|
findControlModelById(id: string): VasControlModel | undefined;
|
|
61
|
+
/**
|
|
62
|
+
*
|
|
63
|
+
* @param {string} name
|
|
64
|
+
* @return {VasControlModel | undefined}
|
|
65
|
+
*/
|
|
66
|
+
findControlModelByName(name: string): VasControlModel | undefined;
|
|
61
67
|
/**
|
|
62
68
|
*
|
|
63
69
|
* @return {Array<Array<string>>}
|
|
@@ -9,6 +9,15 @@ declare type VasJobModelTypeType = {
|
|
|
9
9
|
interface VasJobModelDynamicInterface extends VasJobModelTypeType {
|
|
10
10
|
[key: string]: VasFieldDtoValue;
|
|
11
11
|
}
|
|
12
|
+
export interface ParseSyntaxOptions {
|
|
13
|
+
/**
|
|
14
|
+
* This value will be used to adjust any datetime values that are referenced
|
|
15
|
+
* in the syntax string. See
|
|
16
|
+
* https://momentjscom.readthedocs.io/en/latest/moment/03-manipulating/09-utc-offset/
|
|
17
|
+
* for more information about how `moment` will handle the value.
|
|
18
|
+
*/
|
|
19
|
+
timeZoneOffset: number;
|
|
20
|
+
}
|
|
12
21
|
/**
|
|
13
22
|
* JobModel
|
|
14
23
|
*/
|
|
@@ -28,6 +37,7 @@ export declare class VasJobModel extends VasBaseModel {
|
|
|
28
37
|
jobType: string;
|
|
29
38
|
assignee: string;
|
|
30
39
|
formId: string;
|
|
40
|
+
timeZoneOffset: number;
|
|
31
41
|
/**
|
|
32
42
|
* @param {string} id
|
|
33
43
|
* @param {string} created
|
|
@@ -44,8 +54,9 @@ export declare class VasJobModel extends VasBaseModel {
|
|
|
44
54
|
* @param {string} jobType
|
|
45
55
|
* @param {string} assignee
|
|
46
56
|
* @param {string} formId
|
|
57
|
+
* @param {number} timeZoneOffset
|
|
47
58
|
*/
|
|
48
|
-
constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, account: string, accessGroup: string, reference: string, jobDate: string, jobStatus: string, jobType: string, assignee: string, formId: string);
|
|
59
|
+
constructor(id: string, created: string, serverCreated: string, createdBy: string, modified: string, serverModified: string, modifiedBy: string, account: string, accessGroup: string, reference: string, jobDate: string, jobStatus: string, jobType: string, assignee: string, formId: string, timeZoneOffset: number);
|
|
49
60
|
/**
|
|
50
61
|
* Returns this with the dynamic interface
|
|
51
62
|
* @return {VasJobModelDynamicInterface}
|
|
@@ -119,5 +130,32 @@ export declare class VasJobModel extends VasBaseModel {
|
|
|
119
130
|
* @return {VasJobDto}
|
|
120
131
|
*/
|
|
121
132
|
toDto(staticOnly?: boolean): VasJobDto;
|
|
133
|
+
/**
|
|
134
|
+
* This method will parse a syntax that allows us to build strings from the
|
|
135
|
+
* values of from the job model. For example if the job model was:
|
|
136
|
+
*
|
|
137
|
+
* {
|
|
138
|
+
* foo: 'bar'
|
|
139
|
+
* }
|
|
140
|
+
*
|
|
141
|
+
* and we pass "i am foo {foo}", the result would be:
|
|
142
|
+
*
|
|
143
|
+
* "i am foo bar"
|
|
144
|
+
*
|
|
145
|
+
* we can also use moment to parse dates, for example if the job model was:
|
|
146
|
+
*
|
|
147
|
+
* {
|
|
148
|
+
* created: "2022-01-01T00:00:00+0000"
|
|
149
|
+
* }
|
|
150
|
+
*
|
|
151
|
+
* and we pass "{created|date:YY-MM-DD}", the result would be:
|
|
152
|
+
*
|
|
153
|
+
* "2022-01-01"
|
|
154
|
+
*
|
|
155
|
+
* @param {string} value a string with the syntax
|
|
156
|
+
* @param {ParseSyntaxOptions} options
|
|
157
|
+
* @return {string} the results of parsing the syntax on this job
|
|
158
|
+
*/
|
|
159
|
+
parseSyntax(value: string, options?: ParseSyntaxOptions): string;
|
|
122
160
|
}
|
|
123
161
|
export {};
|
package/package.json
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ironcode/vas-lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "~13.2.0",
|
|
6
|
-
"@angular/core": "~13.2.0",
|
|
7
|
-
"@angular/forms": "~13.2.0",
|
|
8
5
|
"moment": "^2.0.0",
|
|
9
|
-
"angular2-uuid": "^1.1.1"
|
|
10
|
-
"@ironcode/vas-lib": "^0.0.1"
|
|
6
|
+
"angular2-uuid": "^1.1.1"
|
|
11
7
|
},
|
|
12
8
|
"dependencies": {
|
|
13
9
|
"tslib": "^2.3.0"
|