@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.
@@ -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>>}
@@ -1 +1 @@
1
- {"version":3,"file":"vas-form.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAiB1B,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,aAAa,EAAE;IA5BhC;;;;;;;;;;;;;;OAcG;gBAEe,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EAAE;IAahC;;;;;;;;OAQG;WACW,eAAe,CAC3B,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,GACxC,YAAY;IAef;;;OAGG;WACW,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY;IAoB7D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAc7D;;;OAGG;IACH,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAa7C;;;OAGG;IACH,oBAAoB,CAClB,QAAQ,EAAE,WAAW,GACpB,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAA;KAAC,CAAC;IAe3D;;OAEG;IACH,KAAK,IAAI,UAAU;CAiBpB"}
1
+ {"version":3,"file":"vas-form.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAiB1B,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,aAAa,EAAE;IA5BhC;;;;;;;;;;;;;;OAcG;gBAEe,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EAAE;IAahC;;;;;;;;OAQG;WACW,eAAe,CAC3B,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,GACxC,YAAY;IAef;;;OAGG;WACW,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY;IAoB7D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAc7D;;;;OAIG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAcjE;;;OAGG;IACH,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAa7C;;;OAGG;IACH,oBAAoB,CAClB,QAAQ,EAAE,WAAW,GACpB,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAA;KAAC,CAAC;IAe3D;;OAEG;IACH,KAAK,IAAI,UAAU;CAiBpB"}
@@ -88,6 +88,24 @@ class VasFormModel extends vas_base_model_1.VasBaseModel {
88
88
  }));
89
89
  return result;
90
90
  }
91
+ /**
92
+ *
93
+ * @param {string} name
94
+ * @return {VasControlModel | undefined}
95
+ */
96
+ findControlModelByName(name) {
97
+ let result;
98
+ this.groups
99
+ .find(group => group.controls
100
+ .find(control => {
101
+ if (control.name !== name) {
102
+ return;
103
+ }
104
+ result = control;
105
+ return true;
106
+ }));
107
+ return result;
108
+ }
91
109
  /**
92
110
  *
93
111
  * @return {Array<Array<string>>}
@@ -1 +1 @@
1
- {"version":3,"file":"vas-form.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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"]}
1
+ {"version":3,"file":"vas-form.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-form.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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"]}
@@ -7,6 +7,7 @@ export interface VasJobStaticDto extends VasRestrictedAccountObjectDto {
7
7
  jobType: string;
8
8
  assignee: string;
9
9
  formId: string;
10
+ timeZoneOffset: number;
10
11
  }
11
12
  export declare type VasJobDto = VasJobStaticDto & Record<string, VasFieldDtoValue>;
12
13
  //# sourceMappingURL=vas-job.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vas-job.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,eAAgB,SAAQ,6BAA6B;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,CAAC,OAAO,MAAM,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"vas-job.dto.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,eAAgB,SAAQ,6BAA6B;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AACD,MAAM,CAAC,OAAO,MAAM,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vas-job.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"","sourcesContent":["import { VasRestrictedAccountObjectDto } from './vas-restricted-account-object.dto';\nimport { VasFieldDtoValue } from './vas-field.dto';\n\nexport interface VasJobStaticDto extends VasRestrictedAccountObjectDto {\n reference: string;\n jobDate: string;\n jobStatus: string;\n jobType: string;\n assignee: string;\n formId: string;\n}\nexport declare type VasJobDto = VasJobStaticDto & Record<string, VasFieldDtoValue>;\n"]}
1
+ {"version":3,"file":"vas-job.dto.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.dto.ts"],"names":[],"mappings":"","sourcesContent":["import { VasRestrictedAccountObjectDto } from './vas-restricted-account-object.dto';\nimport { VasFieldDtoValue } from './vas-field.dto';\n\nexport interface VasJobStaticDto extends VasRestrictedAccountObjectDto {\n reference: string;\n jobDate: string;\n jobStatus: string;\n jobType: string;\n assignee: string;\n formId: string;\n timeZoneOffset: number\n}\nexport declare type VasJobDto = VasJobStaticDto & Record<string, VasFieldDtoValue>;\n"]}
@@ -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,6 +130,33 @@ 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 {};
124
162
  //# sourceMappingURL=vas-job.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vas-job.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,aAAK,eAAe,GAAG,MAAM,OAAO,WAAW,CAAC;AAEhD,OAAO,MAAM,mBAAmB,GAAG;KAChC,GAAG,IAAI,eAAe,GAAG,MAAM;CACjC,CAAA;AAED,UAAU,2BAA4B,SAAQ,mBAAmB;IAC/D,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAmBzB,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;IAhCvB;;;;;;;;;;;;;;;;OAgBG;gBAEe,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;IAavB;;;OAGG;IACH,IAAI,KAAK,IAAI,2BAA2B,CAIvC;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,CAKrC;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,CAEpC;IAED;;OAEG;WACW,KAAK,IAAI,WAAW;IAqBlC;;;OAGG;WACW,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW;IA6B9D;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAYpE;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,CAAC,SAAS,gBAAgB,EACvC,IAAI,GAAE,MAAM,EAAO,GAClB,CAAC,GAAG,SAAS;IAuBhB;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,IAAI;IAyBlE;;;;OAIG;IACI,KAAK,CAAC,UAAU,UAAQ,GAAG,SAAS;CAgB5C"}
1
+ {"version":3,"file":"vas-job.model.d.ts","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,aAAK,eAAe,GAAG,MAAM,OAAO,WAAW,CAAC;AAEhD,OAAO,MAAM,mBAAmB,GAAG;KAChC,GAAG,IAAI,eAAe,GAAG,MAAM;CACjC,CAAA;AAED,UAAU,2BAA4B,SAAQ,mBAAmB;IAC/D,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAoBzB,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,MAAM;IAlC/B;;;;;;;;;;;;;;;;;OAiBG;gBAEe,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM;IAa/B;;;OAGG;IACH,IAAI,KAAK,IAAI,2BAA2B,CAIvC;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,CAKrC;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,CAEpC;IAED;;OAEG;WACW,KAAK,IAAI,WAAW;IAsBlC;;;OAGG;WACW,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW;IA8B9D;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAYpE;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,CAAC,SAAS,gBAAgB,EACvC,IAAI,GAAE,MAAM,EAAO,GAClB,CAAC,GAAG,SAAS;IAgChB;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,IAAI;IAyBlE;;;;OAIG;IACI,KAAK,CAAC,UAAU,UAAQ,GAAG,SAAS;IAiB3C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAER,GACA,MAAM;CA4CV"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VasJobModel = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const angular2_uuid_1 = require("angular2-uuid");
5
6
  const vas_base_model_1 = require("./vas-base.model");
7
+ const moment_1 = tslib_1.__importDefault(require("moment"));
6
8
  /**
7
9
  * JobModel
8
10
  */
@@ -23,8 +25,9 @@ class VasJobModel extends vas_base_model_1.VasBaseModel {
23
25
  * @param {string} jobType
24
26
  * @param {string} assignee
25
27
  * @param {string} formId
28
+ * @param {number} timeZoneOffset
26
29
  */
27
- constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId) {
30
+ constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId, timeZoneOffset) {
28
31
  super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
29
32
  this.id = id;
30
33
  this.created = created;
@@ -41,6 +44,7 @@ class VasJobModel extends vas_base_model_1.VasBaseModel {
41
44
  this.jobType = jobType;
42
45
  this.assignee = assignee;
43
46
  this.formId = formId;
47
+ this.timeZoneOffset = timeZoneOffset;
44
48
  }
45
49
  /**
46
50
  * Returns this with the dynamic interface
@@ -74,7 +78,7 @@ class VasJobModel extends vas_base_model_1.VasBaseModel {
74
78
  static empty() {
75
79
  return new VasJobModel(
76
80
  // eslint-disable-next-line new-cap
77
- angular2_uuid_1.UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '');
81
+ angular2_uuid_1.UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '', 0);
78
82
  }
79
83
  /**
80
84
  * @param {VasJobDto} jobDto
@@ -83,7 +87,7 @@ class VasJobModel extends vas_base_model_1.VasBaseModel {
83
87
  static fromDto(jobDto) {
84
88
  const model = new VasJobModel(
85
89
  // eslint-disable-next-line new-cap
86
- jobDto.id || angular2_uuid_1.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 || '');
90
+ jobDto.id || angular2_uuid_1.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);
87
91
  const emptyKeys = model.staticProperties;
88
92
  Object
89
93
  .keys(jobDto)
@@ -135,11 +139,20 @@ class VasJobModel extends vas_base_model_1.VasBaseModel {
135
139
  }
136
140
  case 2: {
137
141
  const val0 = this.$this[path[0]];
142
+ if (!val0) {
143
+ return undefined;
144
+ }
138
145
  return val0[path[1]];
139
146
  }
140
147
  case 3: {
141
148
  const val0 = this.$this[path[0]];
149
+ if (!val0) {
150
+ return undefined;
151
+ }
142
152
  const val1 = val0[path[1]];
153
+ if (!val1) {
154
+ return undefined;
155
+ }
143
156
  return val1[path[2]];
144
157
  }
145
158
  default: {
@@ -204,6 +217,75 @@ class VasJobModel extends vas_base_model_1.VasBaseModel {
204
217
  .forEach(prop => dto[prop] = this.$this[prop]);
205
218
  return dto;
206
219
  }
220
+ /**
221
+ * This method will parse a syntax that allows us to build strings from the
222
+ * values of from the job model. For example if the job model was:
223
+ *
224
+ * {
225
+ * foo: 'bar'
226
+ * }
227
+ *
228
+ * and we pass "i am foo {foo}", the result would be:
229
+ *
230
+ * "i am foo bar"
231
+ *
232
+ * we can also use moment to parse dates, for example if the job model was:
233
+ *
234
+ * {
235
+ * created: "2022-01-01T00:00:00+0000"
236
+ * }
237
+ *
238
+ * and we pass "{created|date:YY-MM-DD}", the result would be:
239
+ *
240
+ * "2022-01-01"
241
+ *
242
+ * @param {string} value a string with the syntax
243
+ * @param {ParseSyntaxOptions} options
244
+ * @return {string} the results of parsing the syntax on this job
245
+ */
246
+ parseSyntax(value, options = {
247
+ timeZoneOffset: 0
248
+ }) {
249
+ if (!value || typeof value !== 'string') {
250
+ return '';
251
+ }
252
+ return value.replace(/({[^}]*})/g, (match, token) => {
253
+ const syntax = token.substring(1, token.length - 1);
254
+ let [key, filter] = syntax.split('|');
255
+ key = (key || '').trim();
256
+ filter = (filter || '').trim();
257
+ let filterName, filterArg = '';
258
+ if (filter) {
259
+ const splitIndex = filter.indexOf(':');
260
+ if (splitIndex !== -1) {
261
+ filterName = filter.substring(0, splitIndex);
262
+ filterArg = filter.substring(splitIndex + 1);
263
+ }
264
+ else {
265
+ filterName = filter;
266
+ filterArg = '';
267
+ }
268
+ filterName = (filterName || '').trim();
269
+ filterArg = (filterArg || '').trim();
270
+ }
271
+ const path = key.split('.');
272
+ let result = (this.getValueByPath(path) || '').toString();
273
+ if (filterName && result) {
274
+ switch (filterName) {
275
+ case 'date': {
276
+ return (0, moment_1.default)(result)
277
+ .utcOffset(options.timeZoneOffset)
278
+ .format(filterArg || '');
279
+ }
280
+ default: {
281
+ console.warn('unknown filter %s', filterName);
282
+ }
283
+ }
284
+ }
285
+ return result;
286
+ });
287
+ }
288
+ ;
207
289
  }
208
290
  exports.VasJobModel = VasJobModel;
209
291
  //# sourceMappingURL=vas-job.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vas-job.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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"]}
1
+ {"version":3,"file":"vas-job.model.js","sourceRoot":"","sources":["../../../../../projects/vas-lib/src/lib/entity/vas-job.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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"]}
package/cjs/package.json CHANGED
@@ -12,7 +12,12 @@
12
12
  "watch": "ng build --watch",
13
13
  "test": "ng test",
14
14
  "prepublish": "npm run build",
15
- "publish": "pushd ./dist/vas-lib; npm publish; popd; cd ./dist/vas-lib-ng; npm publish"
15
+ "publish:vas-lib": "pushd ./dist/vas-lib; npm publish; popd;",
16
+ "publish:vas-lib-ng": "pushd ./dist/vas-lib-ng; npm publish; popd;",
17
+ "publish": "npm run publish:vas-lib && npm run publish:vas-lib-ng",
18
+ "link:vas-lib": "cd dist/vas-lib; npm link",
19
+ "link:vas-lib-ng": "cd dist/vas-lib-ng; npm link @ironcode/vas-lib; npm link",
20
+ "link": "npm run link:vas-lib; npm run link:vas-lib-ng"
16
21
  },
17
22
  "dependencies": {
18
23
  "@angular/animations": "~13.2.0",
@@ -85,6 +85,24 @@ export class VasFormModel extends VasBaseModel {
85
85
  }));
86
86
  return result;
87
87
  }
88
+ /**
89
+ *
90
+ * @param {string} name
91
+ * @return {VasControlModel | undefined}
92
+ */
93
+ findControlModelByName(name) {
94
+ let result;
95
+ this.groups
96
+ .find(group => group.controls
97
+ .find(control => {
98
+ if (control.name !== name) {
99
+ return;
100
+ }
101
+ result = control;
102
+ return true;
103
+ }));
104
+ return result;
105
+ }
88
106
  /**
89
107
  *
90
108
  * @return {Array<Array<string>>}
@@ -140,4 +158,4 @@ export class VasFormModel extends VasBaseModel {
140
158
  };
141
159
  }
142
160
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWZvcm0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy1mb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFDNUM7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxZQUNrQixFQUFVLEVBQ1YsT0FBZSxFQUNmLGFBQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQzNCLE9BQWUsRUFDZixXQUFtQixFQUNuQixPQUFlLEVBQ2YsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLE1BQXVCO1FBRTlCLEtBQUssQ0FDSCxFQUFFLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLENBQ1gsQ0FBQztRQXRCYyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQWlCO0lBV2hDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLE9BQW1CLEVBQ25CLGVBQXlDO1FBRXpDLE1BQU0saUJBQWlCLEdBQUcsZUFBZTthQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxNQUFNO2FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVE7aUJBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsaUJBQWlCO3FCQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBd0I7UUFDNUMsT0FBTyxJQUFJLFlBQVksQ0FDckIsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQ1osR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQ2pCLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxFQUN2QixHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFDbkIsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQ2xCLEdBQUcsQ0FBQyxjQUFjLElBQUksRUFBRSxFQUN4QixHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFDcEIsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQ2pCLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxFQUNyQixHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDakIsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQ2YsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQ3JCLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7YUFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7YUFDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUFDLEVBQVU7UUFDN0IsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLENBQUMsTUFBTTthQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRO2FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNkLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU87YUFDUjtZQUNELE1BQU0sR0FBRyxPQUFPLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILHFCQUFxQjtRQUNuQixNQUFNLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQy9DLE9BQU87aUJBQ1I7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUNsQixRQUFxQjtRQUVyQixNQUFNLEtBQUssR0FBNkQsRUFBRSxDQUFDO1FBQzNFLElBQUksQ0FBQyxNQUFNO2FBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVE7aUJBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtvQkFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMvRCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNCYXNlTW9kZWwgfSBmcm9tICcuL3Zhcy1iYXNlLm1vZGVsJztcbmltcG9ydCB7IFZhc0dyb3VwTW9kZWwgfSBmcm9tICcuL3Zhcy1ncm91cC5tb2RlbCc7XG5pbXBvcnQgeyBWYXNDb250cm9sTW9kZWwgfSBmcm9tICcuL3Zhcy1jb250cm9sLm1vZGVsJztcbmltcG9ydCB7IFZhc0Zvcm1EdG8gfSBmcm9tICcuL3Zhcy1mb3JtLmR0byc7XG5pbXBvcnQgeyBWYXNDb250cm9sVHlwZU1vZGVsIH0gZnJvbSAnLi92YXMtY29udHJvbC10eXBlLm1vZGVsJztcbmltcG9ydCB7IFZhc0NvbnRyb2xUeXBlRHRvIH0gZnJvbSAnLi92YXMtY29udHJvbC10eXBlLmR0byc7XG5pbXBvcnQgeyBWYXNGaWVsZER0b1ZhbHVlIH0gZnJvbSAnLi92YXMtZmllbGQuZHRvJztcbmltcG9ydCB7IFZhc0pvYk1vZGVsIH0gZnJvbSAnLi92YXMtam9iLm1vZGVsJztcblxuLyoqXG4gKiBWYXNGb3JtTW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIFZhc0Zvcm1Nb2RlbCBleHRlbmRzIFZhc0Jhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlckNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRCeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kaWZpZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlck1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RpZmllZEJ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2Nlc3NHcm91cFxuICAgKiBAcGFyYW0ge3N0cmluZ30gam9iVHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uXG4gICAqIEBwYXJhbSB7VmFzR3JvdXBNb2RlbFtdfSBncm91cHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgYWNjb3VudDogc3RyaW5nLFxuICAgIHB1YmxpYyBhY2Nlc3NHcm91cDogc3RyaW5nLFxuICAgIHB1YmxpYyBqb2JUeXBlOiBzdHJpbmcsXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcsXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgcHVibGljIGdyb3VwczogVmFzR3JvdXBNb2RlbFtdXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaWQsXG4gICAgICBjcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZCxcbiAgICAgIGNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgVkFTIEFQSSByZXNwb25zZSBmb3IgRm9ybSB3aWxsIGlubGluZSBHcm91cCBhbmQgQ29udHJvbCBidXQgbm90XG4gICAqIENvbnRyb2xUeXBlLiBUaGlzIG1ldGhvZCBpcyBhIGhlbHAgd2hpY2ggd2lsbCBhbGxvd3MgdXMgdG8gY29uc3RydWN0IGFuXG4gICAqIGluc3RhbmNlIG9mIFZhc0Zvcm1Nb2RlbCB3aXRoIHRoZSBDb250cm9sVHlwZSBtb2RlbCBzZXQgYXBwcm9wcmlhdGVseSBpbnRvXG4gICAqIGVhY2ggVmFzQ29udHJvbE1vZGVsXG4gICAqIEBwYXJhbSB7VmFzRm9ybUR0b30gZm9ybUR0b1xuICAgKiBAcGFyYW0ge0FycmF5PFZhc0NvbnRyb2xUeXBlRHRvPn0gY29udHJvbFR5cGVEdG9zXG4gICAqIEByZXR1cm4ge1Zhc0Zvcm1Nb2RlbH1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFwaVJlc3BvbnNlKFxuICAgIGZvcm1EdG86IFZhc0Zvcm1EdG8sXG4gICAgY29udHJvbFR5cGVEdG9zOiBBcnJheTxWYXNDb250cm9sVHlwZUR0bz5cbiAgKTogVmFzRm9ybU1vZGVsIHtcbiAgICBjb25zdCBjb250cm9sVHlwZU1vZGVscyA9IGNvbnRyb2xUeXBlRHRvc1xuICAgICAgLm1hcChjdER0byA9PiBWYXNDb250cm9sVHlwZU1vZGVsLmZyb21EdG8oY3REdG8pKTtcbiAgICBjb25zdCBmb3JtTW9kZWwgPSBWYXNGb3JtTW9kZWwuZnJvbUR0byhmb3JtRHRvKTtcbiAgICBmb3JtTW9kZWwuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzXG4gICAgICAgICAgLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgICBjb250cm9sLmNvbnRyb2xUeXBlTW9kZWwgPSBjb250cm9sVHlwZU1vZGVsc1xuICAgICAgICAgICAgICAuZmluZChjdCA9PiBjdC5pZCA9PT0gY29udHJvbC5jb250cm9sVHlwZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZm9ybU1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VmFzRm9ybUR0b30gZHRvXG4gICAqIEByZXR1cm4ge1Zhc0Zvcm1Nb2RlbH1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUR0byhkdG86IFBhcnRpYWw8VmFzRm9ybUR0bz4pOiBWYXNGb3JtTW9kZWwge1xuICAgIHJldHVybiBuZXcgVmFzRm9ybU1vZGVsKFxuICAgICAgZHRvLmlkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyQ3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnkgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeSB8fCAnJyxcbiAgICAgIGR0by5hY2NvdW50IHx8ICcnLFxuICAgICAgZHRvLmFjY2Vzc0dyb3VwIHx8ICcnLFxuICAgICAgZHRvLmpvYlR5cGUgfHwgJycsXG4gICAgICBkdG8udGl0bGUgfHwgJycsXG4gICAgICBkdG8uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAoZHRvLmdyb3VwcyB8fCBbXSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlKVxuICAgICAgICAubWFwKGcgPT4gVmFzR3JvdXBNb2RlbC5mcm9tRHRvKGcpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkXG4gICAqIEByZXR1cm4ge1Zhc0NvbnRyb2xNb2RlbCB8IHVuZGVmaW5lZH1cbiAgICovXG4gIGZpbmRDb250cm9sTW9kZWxCeUlkKGlkOiBzdHJpbmcpOiBWYXNDb250cm9sTW9kZWwgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQ7XG4gICAgdGhpcy5ncm91cHNcbiAgICAgIC5maW5kKGdyb3VwID0+IGdyb3VwLmNvbnRyb2xzXG4gICAgICAgIC5maW5kKGNvbnRyb2wgPT4ge1xuICAgICAgICAgIGlmIChjb250cm9sLmlkICE9PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSBjb250cm9sO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJuIHtBcnJheTxBcnJheTxzdHJpbmc+Pn1cbiAgICovXG4gIGdldENhbWVyYUNvbnRyb2xQYXRocygpOiBBcnJheTxBcnJheTxzdHJpbmc+PiB7XG4gICAgY29uc3QgcGF0aHM6IHN0cmluZ1tdW10gPSBbXTtcbiAgICB0aGlzLmdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLmNvbnRyb2xUeXBlTW9kZWw/Lm5hbWUgIT09ICdjYW1lcmEnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBhdGhzLnB1c2goW2dyb3VwLm5hbWUsIGNvbnRyb2wuc2FmZU5hbWVdKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXRocztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Zhc0pvYk1vZGVsfSBqb2JNb2RlbFxuICAgKiBAcmV0dXJuIHtBcnJheTx7aWQ6IHN0cmluZywgdmFsdWU6IFZhc0ZpZWxkRHRvVmFsdWV9Pn1cbiAgICovXG4gIGdldFZhbHVlc0J5Q29udHJvbElkKFxuICAgIGpvYk1vZGVsOiBWYXNKb2JNb2RlbFxuICApOiBBcnJheTx7aWQ6IHN0cmluZywgdmFsdWU6IFZhc0ZpZWxkRHRvVmFsdWUgfCB1bmRlZmluZWR9PiB7XG4gICAgY29uc3QgaXRlbXM6IEFycmF5PHtpZDogc3RyaW5nLCB2YWx1ZTogVmFzRmllbGREdG9WYWx1ZSB8IHVuZGVmaW5lZH0+ID0gW107XG4gICAgdGhpcy5ncm91cHNcbiAgICAgIC5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgICAgZ3JvdXAuY29udHJvbHNcbiAgICAgICAgICAuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICBpZDogY29udHJvbC5pZCxcbiAgICAgICAgICAgICAgdmFsdWU6IGpvYk1vZGVsLmdldFZhbHVlQnlQYXRoKFtncm91cC5uYW1lLCBjb250cm9sLnNhZmVOYW1lXSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge1Zhc0Zvcm1EdG99XG4gICAqL1xuICB0b0R0bygpOiBWYXNGb3JtRHRvIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnk6IHRoaXMuY3JlYXRlZEJ5LFxuICAgICAgbW9kaWZpZWQ6IHRoaXMubW9kaWZpZWQsXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogdGhpcy5zZXJ2ZXJNb2RpZmllZCxcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMubW9kaWZpZWRCeSxcbiAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIGFjY2Vzc0dyb3VwOiB0aGlzLmFjY2Vzc0dyb3VwLFxuICAgICAgam9iVHlwZTogdGhpcy5qb2JUeXBlLFxuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIGdyb3VwczogdGhpcy5ncm91cHMubWFwKGdyb3VwID0+IGdyb3VwLnRvRHRvKCkpLFxuICAgIH07XG4gIH1cbn1cblxuIl19
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWZvcm0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy1mb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFDNUM7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxZQUNrQixFQUFVLEVBQ1YsT0FBZSxFQUNmLGFBQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQzNCLE9BQWUsRUFDZixXQUFtQixFQUNuQixPQUFlLEVBQ2YsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLE1BQXVCO1FBRTlCLEtBQUssQ0FDSCxFQUFFLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLENBQ1gsQ0FBQztRQXRCYyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGdCQUFXLEdBQVgsV0FB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LEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoRCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzQmFzZU1vZGVsIH0gZnJvbSAnLi92YXMtYmFzZS5tb2RlbCc7XG5pbXBvcnQgeyBWYXNHcm91cE1vZGVsIH0gZnJvbSAnLi92YXMtZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgVmFzQ29udHJvbE1vZGVsIH0gZnJvbSAnLi92YXMtY29udHJvbC5tb2RlbCc7XG5pbXBvcnQgeyBWYXNGb3JtRHRvIH0gZnJvbSAnLi92YXMtZm9ybS5kdG8nO1xuaW1wb3J0IHsgVmFzQ29udHJvbFR5cGVNb2RlbCB9IGZyb20gJy4vdmFzLWNvbnRyb2wtdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBWYXNDb250cm9sVHlwZUR0byB9IGZyb20gJy4vdmFzLWNvbnRyb2wtdHlwZS5kdG8nO1xuaW1wb3J0IHsgVmFzRmllbGREdG9WYWx1ZSB9IGZyb20gJy4vdmFzLWZpZWxkLmR0byc7XG5pbXBvcnQgeyBWYXNKb2JNb2RlbCB9IGZyb20gJy4vdmFzLWpvYi5tb2RlbCc7XG5cbi8qKlxuICogVmFzRm9ybU1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBWYXNGb3JtTW9kZWwgZXh0ZW5kcyBWYXNCYXNlTW9kZWwge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjcmVhdGVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2ZXJDcmVhdGVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjcmVhdGVkQnlcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2ZXJNb2RpZmllZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kaWZpZWRCeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjZXNzR3JvdXBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGpvYlR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0ge1Zhc0dyb3VwTW9kZWxbXX0gZ3JvdXBzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIGFjY291bnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgYWNjZXNzR3JvdXA6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iVHlwZTogc3RyaW5nLFxuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nLFxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHB1YmxpYyBncm91cHM6IFZhc0dyb3VwTW9kZWxbXVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGlkLFxuICAgICAgY3JlYXRlZCxcbiAgICAgIHNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnksXG4gICAgICBtb2RpZmllZCxcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxuICAgICAgbW9kaWZpZWRCeVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIFZBUyBBUEkgcmVzcG9uc2UgZm9yIEZvcm0gd2lsbCBpbmxpbmUgR3JvdXAgYW5kIENvbnRyb2wgYnV0IG5vdFxuICAgKiBDb250cm9sVHlwZS4gVGhpcyBtZXRob2QgaXMgYSBoZWxwIHdoaWNoIHdpbGwgYWxsb3dzIHVzIHRvIGNvbnN0cnVjdCBhblxuICAgKiBpbnN0YW5jZSBvZiBWYXNGb3JtTW9kZWwgd2l0aCB0aGUgQ29udHJvbFR5cGUgbW9kZWwgc2V0IGFwcHJvcHJpYXRlbHkgaW50b1xuICAgKiBlYWNoIFZhc0NvbnRyb2xNb2RlbFxuICAgKiBAcGFyYW0ge1Zhc0Zvcm1EdG99IGZvcm1EdG9cbiAgICogQHBhcmFtIHtBcnJheTxWYXNDb250cm9sVHlwZUR0bz59IGNvbnRyb2xUeXBlRHRvc1xuICAgKiBAcmV0dXJuIHtWYXNGb3JtTW9kZWx9XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BcGlSZXNwb25zZShcbiAgICBmb3JtRHRvOiBWYXNGb3JtRHRvLFxuICAgIGNvbnRyb2xUeXBlRHRvczogQXJyYXk8VmFzQ29udHJvbFR5cGVEdG8+XG4gICk6IFZhc0Zvcm1Nb2RlbCB7XG4gICAgY29uc3QgY29udHJvbFR5cGVNb2RlbHMgPSBjb250cm9sVHlwZUR0b3NcbiAgICAgIC5tYXAoY3REdG8gPT4gVmFzQ29udHJvbFR5cGVNb2RlbC5mcm9tRHRvKGN0RHRvKSk7XG4gICAgY29uc3QgZm9ybU1vZGVsID0gVmFzRm9ybU1vZGVsLmZyb21EdG8oZm9ybUR0byk7XG4gICAgZm9ybU1vZGVsLmdyb3Vwc1xuICAgICAgLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICBncm91cC5jb250cm9sc1xuICAgICAgICAgIC5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgICAgICAgY29udHJvbC5jb250cm9sVHlwZU1vZGVsID0gY29udHJvbFR5cGVNb2RlbHNcbiAgICAgICAgICAgICAgLmZpbmQoY3QgPT4gY3QuaWQgPT09IGNvbnRyb2wuY29udHJvbFR5cGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGZvcm1Nb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Zhc0Zvcm1EdG99IGR0b1xuICAgKiBAcmV0dXJuIHtWYXNGb3JtTW9kZWx9XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21EdG8oZHRvOiBQYXJ0aWFsPFZhc0Zvcm1EdG8+KTogVmFzRm9ybU1vZGVsIHtcbiAgICByZXR1cm4gbmV3IFZhc0Zvcm1Nb2RlbChcbiAgICAgIGR0by5pZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkIHx8ICcnLFxuICAgICAgZHRvLnNlcnZlckNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uY3JlYXRlZEJ5IHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkIHx8ICcnLFxuICAgICAgZHRvLnNlcnZlck1vZGlmaWVkIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnkgfHwgJycsXG4gICAgICBkdG8uYWNjb3VudCB8fCAnJyxcbiAgICAgIGR0by5hY2Nlc3NHcm91cCB8fCAnJyxcbiAgICAgIGR0by5qb2JUeXBlIHx8ICcnLFxuICAgICAgZHRvLnRpdGxlIHx8ICcnLFxuICAgICAgZHRvLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgKGR0by5ncm91cHMgfHwgW10pXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZSlcbiAgICAgICAgLm1hcChnID0+IFZhc0dyb3VwTW9kZWwuZnJvbUR0byhnKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZFxuICAgKiBAcmV0dXJuIHtWYXNDb250cm9sTW9kZWwgfCB1bmRlZmluZWR9XG4gICAqL1xuICBmaW5kQ29udHJvbE1vZGVsQnlJZChpZDogc3RyaW5nKTogVmFzQ29udHJvbE1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHRoaXMuZ3JvdXBzXG4gICAgICAuZmluZChncm91cCA9PiBncm91cC5jb250cm9sc1xuICAgICAgICAuZmluZChjb250cm9sID0+IHtcbiAgICAgICAgICBpZiAoY29udHJvbC5pZCAhPT0gaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gY29udHJvbDtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHJldHVybiB7VmFzQ29udHJvbE1vZGVsIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgZmluZENvbnRyb2xNb2RlbEJ5TmFtZShuYW1lOiBzdHJpbmcpOiBWYXNDb250cm9sTW9kZWwgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQ7XG4gICAgdGhpcy5ncm91cHNcbiAgICAgIC5maW5kKGdyb3VwID0+IGdyb3VwLmNvbnRyb2xzXG4gICAgICAgIC5maW5kKGNvbnRyb2wgPT4ge1xuICAgICAgICAgIGlmIChjb250cm9sLm5hbWUgIT09IG5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gY29udHJvbDtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybiB7QXJyYXk8QXJyYXk8c3RyaW5nPj59XG4gICAqL1xuICBnZXRDYW1lcmFDb250cm9sUGF0aHMoKTogQXJyYXk8QXJyYXk8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHBhdGhzOiBzdHJpbmdbXVtdID0gW107XG4gICAgdGhpcy5ncm91cHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICBncm91cC5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC5jb250cm9sVHlwZU1vZGVsPy5uYW1lICE9PSAnY2FtZXJhJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwYXRocy5wdXNoKFtncm91cC5uYW1lLCBjb250cm9sLnNhZmVOYW1lXSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGF0aHM7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtWYXNKb2JNb2RlbH0gam9iTW9kZWxcbiAgICogQHJldHVybiB7QXJyYXk8e2lkOiBzdHJpbmcsIHZhbHVlOiBWYXNGaWVsZER0b1ZhbHVlfT59XG4gICAqL1xuICBnZXRWYWx1ZXNCeUNvbnRyb2xJZChcbiAgICBqb2JNb2RlbDogVmFzSm9iTW9kZWxcbiAgKTogQXJyYXk8e2lkOiBzdHJpbmcsIHZhbHVlOiBWYXNGaWVsZER0b1ZhbHVlIHwgdW5kZWZpbmVkfT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBcnJheTx7aWQ6IHN0cmluZywgdmFsdWU6IFZhc0ZpZWxkRHRvVmFsdWUgfCB1bmRlZmluZWR9PiA9IFtdO1xuICAgIHRoaXMuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzXG4gICAgICAgICAgLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGNvbnRyb2wuaWQsXG4gICAgICAgICAgICAgIHZhbHVlOiBqb2JNb2RlbC5nZXRWYWx1ZUJ5UGF0aChbZ3JvdXAubmFtZSwgY29udHJvbC5zYWZlTmFtZV0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtWYXNGb3JtRHRvfVxuICAgKi9cbiAgdG9EdG8oKTogVmFzRm9ybUR0byB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZDogdGhpcy5zZXJ2ZXJDcmVhdGVkLFxuICAgICAgY3JlYXRlZEJ5OiB0aGlzLmNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkOiB0aGlzLm1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQ6IHRoaXMuc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXG4gICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICBhY2Nlc3NHcm91cDogdGhpcy5hY2Nlc3NHcm91cCxcbiAgICAgIGpvYlR5cGU6IHRoaXMuam9iVHlwZSxcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBncm91cHM6IHRoaXMuZ3JvdXBzLm1hcChncm91cCA9PiBncm91cC50b0R0bygpKSxcbiAgICB9O1xuICB9XG59XG5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5kdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy1qb2IuZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNSZXN0cmljdGVkQWNjb3VudE9iamVjdER0byB9IGZyb20gJy4vdmFzLXJlc3RyaWN0ZWQtYWNjb3VudC1vYmplY3QuZHRvJztcbmltcG9ydCB7IFZhc0ZpZWxkRHRvVmFsdWUgfSBmcm9tICcuL3Zhcy1maWVsZC5kdG8nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhc0pvYlN0YXRpY0R0byBleHRlbmRzIFZhc1Jlc3RyaWN0ZWRBY2NvdW50T2JqZWN0RHRvIHtcbiAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gIGpvYkRhdGU6IHN0cmluZztcbiAgam9iU3RhdHVzOiBzdHJpbmc7XG4gIGpvYlR5cGU6IHN0cmluZztcbiAgYXNzaWduZWU6IHN0cmluZztcbiAgZm9ybUlkOiBzdHJpbmc7XG59XG5leHBvcnQgZGVjbGFyZSB0eXBlIFZhc0pvYkR0byA9IFZhc0pvYlN0YXRpY0R0byAmIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5kdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy1qb2IuZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNSZXN0cmljdGVkQWNjb3VudE9iamVjdER0byB9IGZyb20gJy4vdmFzLXJlc3RyaWN0ZWQtYWNjb3VudC1vYmplY3QuZHRvJztcbmltcG9ydCB7IFZhc0ZpZWxkRHRvVmFsdWUgfSBmcm9tICcuL3Zhcy1maWVsZC5kdG8nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhc0pvYlN0YXRpY0R0byBleHRlbmRzIFZhc1Jlc3RyaWN0ZWRBY2NvdW50T2JqZWN0RHRvIHtcbiAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gIGpvYkRhdGU6IHN0cmluZztcbiAgam9iU3RhdHVzOiBzdHJpbmc7XG4gIGpvYlR5cGU6IHN0cmluZztcbiAgYXNzaWduZWU6IHN0cmluZztcbiAgZm9ybUlkOiBzdHJpbmc7XG4gIHRpbWVab25lT2Zmc2V0OiBudW1iZXJcbn1cbmV4cG9ydCBkZWNsYXJlIHR5cGUgVmFzSm9iRHRvID0gVmFzSm9iU3RhdGljRHRvICYgUmVjb3JkPHN0cmluZywgVmFzRmllbGREdG9WYWx1ZT47XG4iXX0=