@ironcode/vas-lib 0.0.1 → 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/index.d.ts +10 -0
- package/cjs/lib/entity/index.d.ts.map +1 -1
- package/cjs/lib/entity/index.js +10 -0
- package/cjs/lib/entity/index.js.map +1 -1
- package/cjs/lib/entity/vas-access-group.dto.d.ts +7 -0
- package/cjs/lib/entity/vas-access-group.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-access-group.dto.js +3 -0
- package/cjs/lib/entity/vas-access-group.dto.js.map +1 -0
- package/cjs/lib/entity/vas-account.dto.d.ts +33 -0
- package/cjs/lib/entity/vas-account.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-account.dto.js +3 -0
- package/cjs/lib/entity/vas-account.dto.js.map +1 -0
- package/cjs/lib/entity/vas-contact-type.dto.d.ts +8 -0
- package/cjs/lib/entity/vas-contact-type.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-contact-type.dto.js +3 -0
- package/cjs/lib/entity/vas-contact-type.dto.js.map +1 -0
- package/cjs/lib/entity/vas-contact.dto.d.ts +12 -0
- package/cjs/lib/entity/vas-contact.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-contact.dto.js +3 -0
- package/cjs/lib/entity/vas-contact.dto.js.map +1 -0
- 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-status.dto.d.ts +8 -0
- package/cjs/lib/entity/vas-job-status.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-job-status.dto.js +3 -0
- package/cjs/lib/entity/vas-job-status.dto.js.map +1 -0
- package/cjs/lib/entity/vas-job-type.dto.d.ts +8 -0
- package/cjs/lib/entity/vas-job-type.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-job-type.dto.js +3 -0
- package/cjs/lib/entity/vas-job-type.dto.js.map +1 -0
- 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/lib/entity/vas-lookup-type.dto.d.ts +7 -0
- package/cjs/lib/entity/vas-lookup-type.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-lookup-type.dto.js +3 -0
- package/cjs/lib/entity/vas-lookup-type.dto.js.map +1 -0
- package/cjs/lib/entity/vas-lookup.dto.d.ts +16 -0
- package/cjs/lib/entity/vas-lookup.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-lookup.dto.js +3 -0
- package/cjs/lib/entity/vas-lookup.dto.js.map +1 -0
- package/cjs/lib/entity/vas-membership.dto.d.ts +12 -0
- package/cjs/lib/entity/vas-membership.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-membership.dto.js +3 -0
- package/cjs/lib/entity/vas-membership.dto.js.map +1 -0
- package/cjs/lib/entity/vas-report-request.model.js +3 -2
- package/cjs/lib/entity/vas-report-request.model.js.map +1 -1
- package/cjs/lib/entity/vas-task-type.dto.d.ts +7 -0
- package/cjs/lib/entity/vas-task-type.dto.d.ts.map +1 -0
- package/cjs/lib/entity/vas-task-type.dto.js +3 -0
- package/cjs/lib/entity/vas-task-type.dto.js.map +1 -0
- package/cjs/lib/entity/vas-user.model.d.ts.map +1 -1
- package/cjs/lib/entity/vas-user.model.js +6 -5
- package/cjs/lib/entity/vas-user.model.js.map +1 -1
- package/cjs/package.json +9 -3
- package/esm2020/lib/entity/index.mjs +11 -1
- package/esm2020/lib/entity/vas-access-group.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-account.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-contact-type.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-contact.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-form.model.mjs +19 -1
- package/esm2020/lib/entity/vas-job-status.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-job-type.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-job.dto.mjs +1 -1
- package/esm2020/lib/entity/vas-job.model.mjs +85 -4
- package/esm2020/lib/entity/vas-lookup-type.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-lookup.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-membership.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-report-request.model.mjs +2 -2
- package/esm2020/lib/entity/vas-task-type.dto.mjs +2 -0
- package/esm2020/lib/entity/vas-user.model.mjs +6 -6
- package/fesm2015/ironcode-vas-lib.mjs +107 -9
- package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
- package/fesm2020/ironcode-vas-lib.mjs +107 -9
- package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
- package/lib/entity/index.d.ts +10 -0
- package/lib/entity/vas-access-group.dto.d.ts +6 -0
- package/lib/entity/vas-account.dto.d.ts +32 -0
- package/lib/entity/vas-contact-type.dto.d.ts +7 -0
- package/lib/entity/vas-contact.dto.d.ts +11 -0
- package/lib/entity/vas-form.model.d.ts +6 -0
- package/lib/entity/vas-job-status.dto.d.ts +7 -0
- package/lib/entity/vas-job-type.dto.d.ts +7 -0
- package/lib/entity/vas-job.dto.d.ts +1 -0
- package/lib/entity/vas-job.model.d.ts +39 -1
- package/lib/entity/vas-lookup-type.dto.d.ts +6 -0
- package/lib/entity/vas-lookup.dto.d.ts +15 -0
- package/lib/entity/vas-membership.dto.d.ts +11 -0
- package/lib/entity/vas-task-type.dto.d.ts +6 -0
- package/package.json +2 -6
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UUID } from 'angular2-uuid';
|
|
2
2
|
import { VasBaseModel } from './vas-base.model';
|
|
3
|
+
import moment from 'moment';
|
|
3
4
|
/**
|
|
4
5
|
* JobModel
|
|
5
6
|
*/
|
|
@@ -20,8 +21,9 @@ export class VasJobModel extends VasBaseModel {
|
|
|
20
21
|
* @param {string} jobType
|
|
21
22
|
* @param {string} assignee
|
|
22
23
|
* @param {string} formId
|
|
24
|
+
* @param {number} timeZoneOffset
|
|
23
25
|
*/
|
|
24
|
-
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId) {
|
|
26
|
+
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId, timeZoneOffset) {
|
|
25
27
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
|
|
26
28
|
this.id = id;
|
|
27
29
|
this.created = created;
|
|
@@ -38,6 +40,7 @@ export class VasJobModel extends VasBaseModel {
|
|
|
38
40
|
this.jobType = jobType;
|
|
39
41
|
this.assignee = assignee;
|
|
40
42
|
this.formId = formId;
|
|
43
|
+
this.timeZoneOffset = timeZoneOffset;
|
|
41
44
|
}
|
|
42
45
|
/**
|
|
43
46
|
* Returns this with the dynamic interface
|
|
@@ -71,7 +74,7 @@ export class VasJobModel extends VasBaseModel {
|
|
|
71
74
|
static empty() {
|
|
72
75
|
return new VasJobModel(
|
|
73
76
|
// eslint-disable-next-line new-cap
|
|
74
|
-
UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
|
77
|
+
UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '', 0);
|
|
75
78
|
}
|
|
76
79
|
/**
|
|
77
80
|
* @param {VasJobDto} jobDto
|
|
@@ -80,7 +83,7 @@ export class VasJobModel extends VasBaseModel {
|
|
|
80
83
|
static fromDto(jobDto) {
|
|
81
84
|
const model = new VasJobModel(
|
|
82
85
|
// eslint-disable-next-line new-cap
|
|
83
|
-
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 || '');
|
|
86
|
+
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);
|
|
84
87
|
const emptyKeys = model.staticProperties;
|
|
85
88
|
Object
|
|
86
89
|
.keys(jobDto)
|
|
@@ -132,11 +135,20 @@ export class VasJobModel extends VasBaseModel {
|
|
|
132
135
|
}
|
|
133
136
|
case 2: {
|
|
134
137
|
const val0 = this.$this[path[0]];
|
|
138
|
+
if (!val0) {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
135
141
|
return val0[path[1]];
|
|
136
142
|
}
|
|
137
143
|
case 3: {
|
|
138
144
|
const val0 = this.$this[path[0]];
|
|
145
|
+
if (!val0) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
139
148
|
const val1 = val0[path[1]];
|
|
149
|
+
if (!val1) {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
140
152
|
return val1[path[2]];
|
|
141
153
|
}
|
|
142
154
|
default: {
|
|
@@ -201,5 +213,74 @@ export class VasJobModel extends VasBaseModel {
|
|
|
201
213
|
.forEach(prop => dto[prop] = this.$this[prop]);
|
|
202
214
|
return dto;
|
|
203
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* This method will parse a syntax that allows us to build strings from the
|
|
218
|
+
* values of from the job model. For example if the job model was:
|
|
219
|
+
*
|
|
220
|
+
* {
|
|
221
|
+
* foo: 'bar'
|
|
222
|
+
* }
|
|
223
|
+
*
|
|
224
|
+
* and we pass "i am foo {foo}", the result would be:
|
|
225
|
+
*
|
|
226
|
+
* "i am foo bar"
|
|
227
|
+
*
|
|
228
|
+
* we can also use moment to parse dates, for example if the job model was:
|
|
229
|
+
*
|
|
230
|
+
* {
|
|
231
|
+
* created: "2022-01-01T00:00:00+0000"
|
|
232
|
+
* }
|
|
233
|
+
*
|
|
234
|
+
* and we pass "{created|date:YY-MM-DD}", the result would be:
|
|
235
|
+
*
|
|
236
|
+
* "2022-01-01"
|
|
237
|
+
*
|
|
238
|
+
* @param {string} value a string with the syntax
|
|
239
|
+
* @param {ParseSyntaxOptions} options
|
|
240
|
+
* @return {string} the results of parsing the syntax on this job
|
|
241
|
+
*/
|
|
242
|
+
parseSyntax(value, options = {
|
|
243
|
+
timeZoneOffset: 0
|
|
244
|
+
}) {
|
|
245
|
+
if (!value || typeof value !== 'string') {
|
|
246
|
+
return '';
|
|
247
|
+
}
|
|
248
|
+
return value.replace(/({[^}]*})/g, (match, token) => {
|
|
249
|
+
const syntax = token.substring(1, token.length - 1);
|
|
250
|
+
let [key, filter] = syntax.split('|');
|
|
251
|
+
key = (key || '').trim();
|
|
252
|
+
filter = (filter || '').trim();
|
|
253
|
+
let filterName, filterArg = '';
|
|
254
|
+
if (filter) {
|
|
255
|
+
const splitIndex = filter.indexOf(':');
|
|
256
|
+
if (splitIndex !== -1) {
|
|
257
|
+
filterName = filter.substring(0, splitIndex);
|
|
258
|
+
filterArg = filter.substring(splitIndex + 1);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
filterName = filter;
|
|
262
|
+
filterArg = '';
|
|
263
|
+
}
|
|
264
|
+
filterName = (filterName || '').trim();
|
|
265
|
+
filterArg = (filterArg || '').trim();
|
|
266
|
+
}
|
|
267
|
+
const path = key.split('.');
|
|
268
|
+
let result = (this.getValueByPath(path) || '').toString();
|
|
269
|
+
if (filterName && result) {
|
|
270
|
+
switch (filterName) {
|
|
271
|
+
case 'date': {
|
|
272
|
+
return moment(result)
|
|
273
|
+
.utcOffset(options.timeZoneOffset)
|
|
274
|
+
.format(filterArg || '');
|
|
275
|
+
}
|
|
276
|
+
default: {
|
|
277
|
+
console.warn('unknown filter %s', filterName);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return result;
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
;
|
|
204
285
|
}
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi9lbnRpdHkvdmFzLWpvYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWNoRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsWUFBWTtJQUMzQzs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDM0IsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixTQUFpQixFQUNqQixPQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsTUFBYztRQUVyQixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxDQUNYLENBQUM7UUF4QmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBV3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEtBQUs7UUFDUCw0REFBNEQ7UUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE9BQU8sSUFBa0QsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxpQkFBaUI7UUFDbkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzFDLE9BQU8sTUFBTTthQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQzthQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUs7UUFDakIsT0FBTyxJQUFJLFdBQVc7UUFDcEIsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFDWCxFQUFFLEVBQ0YsRUFBRSxFQUNGLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEwQjtRQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVc7UUFDM0IsbUNBQW1DO1FBQ25DLE1BQU0sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUN4QixNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDcEIsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQzFCLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxFQUN0QixNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDckIsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQzNCLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUN2QixNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDcEIsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQ3hCLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxFQUN0QixNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDcEIsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQ3RCLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxFQUNwQixNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDckIsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQ3BCLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDekMsTUFBTTthQUNILElBQUksQ0FBQyxNQUFNLENBQUM7YUFDWixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzVDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3ZCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUksTUFBc0MsQ0FBQyxHQUFHLENBQUMsQ0FDaEUsQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxTQUF1QjtRQUMvQixNQUFNLE1BQU0sR0FBc0MsRUFBRSxDQUFDO1FBQ3JELFNBQVMsQ0FBQyxNQUFNO2FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQy9CLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSCxjQUFjLENBQ1osT0FBaUIsRUFBRTtRQUVuQixRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTixPQUFPO2FBQ1I7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFNLENBQUM7YUFDbkM7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUEyQixDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQU0sQ0FBQzthQUMzQjtZQUNELEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7Z0JBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUM7Z0JBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO2FBQzNCO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsTUFBTSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQzthQUMzQztTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsY0FBYyxDQUFDLEtBQXVCLEVBQUUsT0FBaUIsRUFBRTtRQUN6RCxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTixPQUFPO2FBQ1I7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNOLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDOUIsT0FBTzthQUNSO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTixtQ0FBbUM7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFzQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDM0UsT0FBTzthQUNSO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDTixtQ0FBbUM7Z0JBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFzQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBc0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzFILE9BQU87YUFDUjtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7YUFDM0M7U0FDRjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLO1FBQzdCLE1BQU0sR0FBRyxHQUFHLEVBQWtELENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQjthQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVwQyxJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxJQUFJLENBQUMsaUJBQWlCO2FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNkLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFbEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVVUlEIH0gZnJvbSAnYW5ndWxhcjItdXVpZCc7XG5pbXBvcnQgeyBWYXNKb2JEdG8gfSBmcm9tICcuL3Zhcy1qb2IuZHRvJztcbmltcG9ydCB7IFZhc0Jhc2VNb2RlbCB9IGZyb20gJy4vdmFzLWJhc2UubW9kZWwnO1xuaW1wb3J0IHsgVmFzRmllbGREdG9WYWx1ZSB9IGZyb20gJy4vdmFzLWZpZWxkLmR0byc7XG5pbXBvcnQgeyBWYXNGb3JtTW9kZWwgfSBmcm9tICcuL3Zhcy1mb3JtLm1vZGVsJztcblxudHlwZSBWYXNKb2JNb2RlbEtleXMgPSBrZXlvZiB0eXBlb2YgVmFzSm9iTW9kZWw7XG5cbmRlY2xhcmUgdHlwZSBWYXNKb2JNb2RlbFR5cGVUeXBlID0ge1xuICBba2V5IGluIFZhc0pvYk1vZGVsS2V5c106IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSBleHRlbmRzIFZhc0pvYk1vZGVsVHlwZVR5cGUge1xuICBba2V5OiBzdHJpbmddOiBWYXNGaWVsZER0b1ZhbHVlO1xufVxuXG4vKipcbiAqIEpvYk1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBWYXNKb2JNb2RlbCBleHRlbmRzIFZhc0Jhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlckNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRCeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kaWZpZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlck1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RpZmllZEJ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2Nlc3NHcm91cFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmZXJlbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JEYXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JTdGF0dXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGpvYlR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFzc2lnbmVlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtSWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgYWNjb3VudDogc3RyaW5nLFxuICAgIHB1YmxpYyBhY2Nlc3NHcm91cDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iRGF0ZTogc3RyaW5nLFxuICAgIHB1YmxpYyBqb2JTdGF0dXM6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iVHlwZTogc3RyaW5nLFxuICAgIHB1YmxpYyBhc3NpZ25lZTogc3RyaW5nLFxuICAgIHB1YmxpYyBmb3JtSWQ6IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGlkLFxuICAgICAgY3JlYXRlZCxcbiAgICAgIHNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnksXG4gICAgICBtb2RpZmllZCxcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxuICAgICAgbW9kaWZpZWRCeVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGlzIHdpdGggdGhlIGR5bmFtaWMgaW50ZXJmYWNlXG4gICAqIEByZXR1cm4ge1Zhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZX1cbiAgICovXG4gIGdldCAkdGhpcygpOiBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0ICR0aGlzID0gdGhpcztcbiAgICByZXR1cm4gdGhpcyBhcyB0eXBlb2YgJHRoaXMgJiBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgSm9iIGR5bmFtaWMgcHJvcGVydGllcyBpLmUuIHRob3NlIHRoYXQgYXJlIGFkZGVkIGJ5IHRoZVxuICAgKiBkeW5hbWljIGZvcm1zXG4gICAqL1xuICBnZXQgZHluYW1pY1Byb3BlcnRpZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3QgbmF0aXZlUHJvcHMgPSB0aGlzLnN0YXRpY1Byb3BlcnRpZXM7XG4gICAgcmV0dXJuIE9iamVjdFxuICAgICAgLmdldE93blByb3BlcnR5TmFtZXModGhpcylcbiAgICAgIC5maWx0ZXIocHJvcCA9PiAhbmF0aXZlUHJvcHMuaW5jbHVkZXMocHJvcCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIEpvYiBzdGF0aWMgcHJvcGVydGllcyBpLmUuIHRob3NlIHRoYXQgYXJlIGRlY2xhcmVkIGJ5XG4gICAqIHRoZSB0eXBlXG4gICAqL1xuICBnZXQgc3RhdGljUHJvcGVydGllcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoVmFzSm9iTW9kZWwuZW1wdHkoKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybiB7VmFzSm9iTW9kZWx9XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVtcHR5KCk6IFZhc0pvYk1vZGVsIHtcbiAgICByZXR1cm4gbmV3IFZhc0pvYk1vZGVsKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5ldy1jYXBcbiAgICAgIFVVSUQuVVVJRCgpLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtWYXNKb2JEdG99IGpvYkR0b1xuICAgKiBAcmV0dXJuIHtWYXNKb2JNb2RlbH1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUR0byhqb2JEdG86IFBhcnRpYWw8VmFzSm9iRHRvPik6IFZhc0pvYk1vZGVsIHtcbiAgICBjb25zdCBtb2RlbCA9IG5ldyBWYXNKb2JNb2RlbChcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICBqb2JEdG8uaWQgfHwgVVVJRC5VVUlEKCksXG4gICAgICBqb2JEdG8uY3JlYXRlZCB8fCAnJyxcbiAgICAgIGpvYkR0by5zZXJ2ZXJDcmVhdGVkIHx8ICcnLFxuICAgICAgam9iRHRvLmNyZWF0ZWRCeSB8fCAnJyxcbiAgICAgIGpvYkR0by5tb2RpZmllZCB8fCAnJyxcbiAgICAgIGpvYkR0by5zZXJ2ZXJNb2RpZmllZCB8fCAnJyxcbiAgICAgIGpvYkR0by5tb2RpZmllZEJ5IHx8ICcnLFxuICAgICAgam9iRHRvLmFjY291bnQgfHwgJycsXG4gICAgICBqb2JEdG8uYWNjZXNzR3JvdXAgfHwgJycsXG4gICAgICBqb2JEdG8ucmVmZXJlbmNlIHx8ICcnLFxuICAgICAgam9iRHRvLmpvYkRhdGUgfHwgJycsXG4gICAgICBqb2JEdG8uam9iU3RhdHVzIHx8ICcnLFxuICAgICAgam9iRHRvLmpvYlR5cGUgfHwgJycsXG4gICAgICBqb2JEdG8uYXNzaWduZWUgfHwgJycsXG4gICAgICBqb2JEdG8uZm9ybUlkIHx8ICcnLFxuICAgICk7XG4gICAgY29uc3QgZW1wdHlLZXlzID0gbW9kZWwuc3RhdGljUHJvcGVydGllcztcbiAgICBPYmplY3RcbiAgICAgIC5rZXlzKGpvYkR0bylcbiAgICAgIC5maWx0ZXIoa2V5ID0+IGVtcHR5S2V5cy5pbmRleE9mKGtleSkgPT09IC0xKVxuICAgICAgLmZvckVhY2goKGtleTogc3RyaW5nKSA9PlxuICAgICAgICBtb2RlbC4kdGhpc1trZXldID0gKGpvYkR0byBhcyBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2UpW2tleV1cbiAgICAgICk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VmFzRm9ybU1vZGVsfSBmb3JtTW9kZWxcbiAgICogQHJldHVybiB7UmVjb3JkPHN0cmluZywgVmFzRmllbGREdG9WYWx1ZT59XG4gICAqL1xuICBnZXRGaWVsZHMoZm9ybU1vZGVsOiBWYXNGb3JtTW9kZWwpOiBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPiB7XG4gICAgY29uc3QgZmllbGRzOiB7W2tleTogc3RyaW5nXTogVmFzRmllbGREdG9WYWx1ZX0gPSB7fTtcbiAgICBmb3JtTW9kZWwuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgKGZpZWxkcylbY29udHJvbC5yZXBvcnRUZW1wbGF0ZU5hbWVdID1cbiAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWVCeVBhdGgoW2dyb3VwLm5hbWUsIGNvbnRyb2wubmFtZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogQSB2ZXJ5IG5vbiBzb3BoaXN0aWNhdGVkIHdheSB0byBnZXQgdmFsdWVzIGZyb20gdGhlIGpvYiB2aWEgcGF0aHNcbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIGdldFZhbHVlQnlQYXRoKFsnZm9vJywgJ2JhciddKTtcbiAgICpcbiAgICogaWYgam9iIGlzXG4gICAqIHtcbiAgICogICBmb286IHtcbiAgICogICAgIGJhcjogJ3ZhbHVlJ1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiB3aWxsIHJldHVybiBcInZhbHVlXCJcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aCBwYXRoIHNlZ21lbnRzXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBnZXRWYWx1ZUJ5UGF0aDxUIGV4dGVuZHMgVmFzRmllbGREdG9WYWx1ZT4oXG4gICAgcGF0aDogc3RyaW5nW10gPSBbXVxuICApOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKHBhdGgubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6IHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIHJldHVybiAodGhpcy4kdGhpcylbcGF0aFswXV0gYXMgVDtcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICBjb25zdCB2YWwwID0gdGhpcy4kdGhpc1twYXRoWzBdXSBhcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xuICAgICAgICByZXR1cm4gdmFsMFtwYXRoWzFdXSBhcyBUO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIGNvbnN0IHZhbDAgPSB0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG4gICAgICAgIGNvbnN0IHZhbDEgPSB2YWwwW3BhdGhbMV1dIGFzIFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG4gICAgICAgIHJldHVybiB2YWwxW3BhdGhbMl1dIGFzIFQ7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRocm93IEVycm9yKCdwYXRoIGhhcyB0b28gbWFueSBzZWdtZW50cycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBIHZlcnkgbm9uIHNvcGhpc3RpY2F0ZWQgd2F5IHRvIHNldCB2YWx1ZXMgaW4gdGhlIGpvYiB2aWEgcGF0aHNcbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIHNldFZhbHVlQnlQYXRoKCd2YWx1ZScsIFsnZm9vJywgJ2JhciddKTtcbiAgICpcbiAgICogd2lsbCBtYWtlIHJlc3VsdHMgaW4gam9iXG4gICAqIHtcbiAgICogICBmb286IHtcbiAgICogICAgIGJhcjogJ3ZhbHVlJ1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgdGhlIHZhbHVlIHRvIHNldFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIHBhdGggc2VnbWVudHNcbiAgICovXG4gIHNldFZhbHVlQnlQYXRoKHZhbHVlOiBWYXNGaWVsZER0b1ZhbHVlLCBwYXRoOiBzdHJpbmdbXSA9IFtdKTogdm9pZCB7XG4gICAgc3dpdGNoIChwYXRoLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgMToge1xuICAgICAgICAodGhpcy4kdGhpcylbcGF0aFswXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgKCh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSBhcyBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPilbcGF0aFsyXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBFcnJvcigncGF0aCBoYXMgdG9vIG1hbnkgc2VnbWVudHMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBzdGF0aWNPbmx5IGlmIHRydWUsIHdpbGwgb25seSBvdXRwdXQgdmFsdWVzIGZvciB0aGUgc3RhdGljXG4gICAqIHByb3BlcnRpZXMgaW4gdGhlIGR0b1xuICAgKiBAcmV0dXJuIHtWYXNKb2JEdG99XG4gICAqL1xuICBwdWJsaWMgdG9EdG8oc3RhdGljT25seSA9IGZhbHNlKTogVmFzSm9iRHRvIHtcbiAgICBjb25zdCBkdG8gPSB7fSBhcyBWYXNKb2JEdG8gJiBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPjtcbiAgICB0aGlzLnN0YXRpY1Byb3BlcnRpZXNcbiAgICAgIC5mb3JFYWNoKHByb3AgPT5cbiAgICAgICAgKGR0bylbcHJvcF0gPSB0aGlzLiR0aGlzW3Byb3BdKTtcblxuICAgIGlmIChzdGF0aWNPbmx5KSB7XG4gICAgICByZXR1cm4gZHRvO1xuICAgIH1cblxuICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNcbiAgICAgIC5mb3JFYWNoKHByb3AgPT5cbiAgICAgICAgZHRvW3Byb3BdID0gdGhpcy4kdGhpc1twcm9wXSk7XG5cbiAgICByZXR1cm4gZHRvO1xuICB9XG59XG4iXX0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi9lbnRpdHkvdmFzLWpvYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFzQjVCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVksU0FBUSxZQUFZO0lBQzNDOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDM0IsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixTQUFpQixFQUNqQixPQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsTUFBYyxFQUNkLGNBQXNCO1FBRTdCLEtBQUssQ0FDSCxFQUFFLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLENBQ1gsQ0FBQztRQXpCYyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENB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QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUM7cUJBQy9DO2lCQUNGO2FBQ0Y7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQSxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVVUlEIH0gZnJvbSAnYW5ndWxhcjItdXVpZCc7XG5pbXBvcnQgeyBWYXNKb2JEdG8gfSBmcm9tICcuL3Zhcy1qb2IuZHRvJztcbmltcG9ydCB7IFZhc0Jhc2VNb2RlbCB9IGZyb20gJy4vdmFzLWJhc2UubW9kZWwnO1xuaW1wb3J0IHsgVmFzRmllbGREdG9WYWx1ZSB9IGZyb20gJy4vdmFzLWZpZWxkLmR0byc7XG5pbXBvcnQgeyBWYXNGb3JtTW9kZWwgfSBmcm9tICcuL3Zhcy1mb3JtLm1vZGVsJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxudHlwZSBWYXNKb2JNb2RlbEtleXMgPSBrZXlvZiB0eXBlb2YgVmFzSm9iTW9kZWw7XG5cbmRlY2xhcmUgdHlwZSBWYXNKb2JNb2RlbFR5cGVUeXBlID0ge1xuICBba2V5IGluIFZhc0pvYk1vZGVsS2V5c106IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSBleHRlbmRzIFZhc0pvYk1vZGVsVHlwZVR5cGUge1xuICBba2V5OiBzdHJpbmddOiBWYXNGaWVsZER0b1ZhbHVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlU3ludGF4T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCB0byBhZGp1c3QgYW55IGRhdGV0aW1lIHZhbHVlcyB0aGF0IGFyZSByZWZlcmVuY2VkXG4gICAqIGluIHRoZSBzeW50YXggc3RyaW5nLiBTZWVcbiAgICogaHR0cHM6Ly9tb21lbnRqc2NvbS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvbW9tZW50LzAzLW1hbmlwdWxhdGluZy8wOS11dGMtb2Zmc2V0L1xuICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgYG1vbWVudGAgd2lsbCBoYW5kbGUgdGhlIHZhbHVlLlxuICAgKi9cbiAgdGltZVpvbmVPZmZzZXQ6IG51bWJlclxufVxuXG4vKipcbiAqIEpvYk1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBWYXNKb2JNb2RlbCBleHRlbmRzIFZhc0Jhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlckNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRCeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kaWZpZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlck1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RpZmllZEJ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2Nlc3NHcm91cFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmZXJlbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JEYXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JTdGF0dXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGpvYlR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFzc2lnbmVlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtSWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVab25lT2Zmc2V0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIGFjY291bnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgYWNjZXNzR3JvdXA6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgcHVibGljIGpvYkRhdGU6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iU3RhdHVzOiBzdHJpbmcsXG4gICAgcHVibGljIGpvYlR5cGU6IHN0cmluZyxcbiAgICBwdWJsaWMgYXNzaWduZWU6IHN0cmluZyxcbiAgICBwdWJsaWMgZm9ybUlkOiBzdHJpbmcsXG4gICAgcHVibGljIHRpbWVab25lT2Zmc2V0OiBudW1iZXJcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBpZCxcbiAgICAgIGNyZWF0ZWQsXG4gICAgICBzZXJ2ZXJDcmVhdGVkLFxuICAgICAgY3JlYXRlZEJ5LFxuICAgICAgbW9kaWZpZWQsXG4gICAgICBzZXJ2ZXJNb2RpZmllZCxcbiAgICAgIG1vZGlmaWVkQnlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhpcyB3aXRoIHRoZSBkeW5hbWljIGludGVyZmFjZVxuICAgKiBAcmV0dXJuIHtWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2V9XG4gICAqL1xuICBnZXQgJHRoaXMoKTogVmFzSm9iTW9kZWxEeW5hbWljSW50ZXJmYWNlIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCAkdGhpcyA9IHRoaXM7XG4gICAgcmV0dXJuIHRoaXMgYXMgdHlwZW9mICR0aGlzICYgVmFzSm9iTW9kZWxEeW5hbWljSW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIEpvYiBkeW5hbWljIHByb3BlcnRpZXMgaS5lLiB0aG9zZSB0aGF0IGFyZSBhZGRlZCBieSB0aGVcbiAgICogZHluYW1pYyBmb3Jtc1xuICAgKi9cbiAgZ2V0IGR5bmFtaWNQcm9wZXJ0aWVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIGNvbnN0IG5hdGl2ZVByb3BzID0gdGhpcy5zdGF0aWNQcm9wZXJ0aWVzO1xuICAgIHJldHVybiBPYmplY3RcbiAgICAgIC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpXG4gICAgICAuZmlsdGVyKHByb3AgPT4gIW5hdGl2ZVByb3BzLmluY2x1ZGVzKHByb3ApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBKb2Igc3RhdGljIHByb3BlcnRpZXMgaS5lLiB0aG9zZSB0aGF0IGFyZSBkZWNsYXJlZCBieVxuICAgKiB0aGUgdHlwZVxuICAgKi9cbiAgZ2V0IHN0YXRpY1Byb3BlcnRpZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFZhc0pvYk1vZGVsLmVtcHR5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge1Zhc0pvYk1vZGVsfVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBWYXNKb2JNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBWYXNKb2JNb2RlbChcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICBVVUlELlVVSUQoKSxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Zhc0pvYkR0b30gam9iRHRvXG4gICAqIEByZXR1cm4ge1Zhc0pvYk1vZGVsfVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRHRvKGpvYkR0bzogUGFydGlhbDxWYXNKb2JEdG8+KTogVmFzSm9iTW9kZWwge1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IFZhc0pvYk1vZGVsKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5ldy1jYXBcbiAgICAgIGpvYkR0by5pZCB8fCBVVUlELlVVSUQoKSxcbiAgICAgIGpvYkR0by5jcmVhdGVkIHx8ICcnLFxuICAgICAgam9iRHRvLnNlcnZlckNyZWF0ZWQgfHwgJycsXG4gICAgICBqb2JEdG8uY3JlYXRlZEJ5IHx8ICcnLFxuICAgICAgam9iRHRvLm1vZGlmaWVkIHx8ICcnLFxuICAgICAgam9iRHRvLnNlcnZlck1vZGlmaWVkIHx8ICcnLFxuICAgICAgam9iRHRvLm1vZGlmaWVkQnkgfHwgJycsXG4gICAgICBqb2JEdG8uYWNjb3VudCB8fCAnJyxcbiAgICAgIGpvYkR0by5hY2Nlc3NHcm91cCB8fCAnJyxcbiAgICAgIGpvYkR0by5yZWZlcmVuY2UgfHwgJycsXG4gICAgICBqb2JEdG8uam9iRGF0ZSB8fCAnJyxcbiAgICAgIGpvYkR0by5qb2JTdGF0dXMgfHwgJycsXG4gICAgICBqb2JEdG8uam9iVHlwZSB8fCAnJyxcbiAgICAgIGpvYkR0by5hc3NpZ25lZSB8fCAnJyxcbiAgICAgIGpvYkR0by5mb3JtSWQgfHwgJycsXG4gICAgICBqb2JEdG8udGltZVpvbmVPZmZzZXQgfHwgMFxuICAgICk7XG4gICAgY29uc3QgZW1wdHlLZXlzID0gbW9kZWwuc3RhdGljUHJvcGVydGllcztcbiAgICBPYmplY3RcbiAgICAgIC5rZXlzKGpvYkR0bylcbiAgICAgIC5maWx0ZXIoa2V5ID0+IGVtcHR5S2V5cy5pbmRleE9mKGtleSkgPT09IC0xKVxuICAgICAgLmZvckVhY2goKGtleTogc3RyaW5nKSA9PlxuICAgICAgICBtb2RlbC4kdGhpc1trZXldID0gKGpvYkR0byBhcyBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2UpW2tleV1cbiAgICAgICk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VmFzRm9ybU1vZGVsfSBmb3JtTW9kZWxcbiAgICogQHJldHVybiB7UmVjb3JkPHN0cmluZywgVmFzRmllbGREdG9WYWx1ZT59XG4gICAqL1xuICBnZXRGaWVsZHMoZm9ybU1vZGVsOiBWYXNGb3JtTW9kZWwpOiBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPiB7XG4gICAgY29uc3QgZmllbGRzOiB7W2tleTogc3RyaW5nXTogVmFzRmllbGREdG9WYWx1ZX0gPSB7fTtcbiAgICBmb3JtTW9kZWwuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgKGZpZWxkcylbY29udHJvbC5yZXBvcnRUZW1wbGF0ZU5hbWVdID1cbiAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWVCeVBhdGgoW2dyb3VwLm5hbWUsIGNvbnRyb2wubmFtZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogQSB2ZXJ5IG5vbiBzb3BoaXN0aWNhdGVkIHdheSB0byBnZXQgdmFsdWVzIGZyb20gdGhlIGpvYiB2aWEgcGF0aHNcbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIGdldFZhbHVlQnlQYXRoKFsnZm9vJywgJ2JhciddKTtcbiAgICpcbiAgICogaWYgam9iIGlzXG4gICAqIHtcbiAgICogICBmb286IHtcbiAgICogICAgIGJhcjogJ3ZhbHVlJ1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiB3aWxsIHJldHVybiBcInZhbHVlXCJcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aCBwYXRoIHNlZ21lbnRzXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBnZXRWYWx1ZUJ5UGF0aDxUIGV4dGVuZHMgVmFzRmllbGREdG9WYWx1ZT4oXG4gICAgcGF0aDogc3RyaW5nW10gPSBbXVxuICApOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKHBhdGgubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6IHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIHJldHVybiAodGhpcy4kdGhpcylbcGF0aFswXV0gYXMgVDtcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICBjb25zdCB2YWwwID0gdGhpcy4kdGhpc1twYXRoWzBdXSBhcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xuICAgICAgICBpZiAoIXZhbDApIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWwwW3BhdGhbMV1dIGFzIFQ7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgY29uc3QgdmFsMCA9IHRoaXMuJHRoaXNbcGF0aFswXV0gYXMgUmVjb3JkPHN0cmluZywgb2JqZWN0PjtcbiAgICAgICAgaWYgKCF2YWwwKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWwxID0gdmFsMFtwYXRoWzFdXSBhcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xuICAgICAgICBpZiAoIXZhbDEpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWwxW3BhdGhbMl1dIGFzIFQ7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRocm93IEVycm9yKCdwYXRoIGhhcyB0b28gbWFueSBzZWdtZW50cycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBIHZlcnkgbm9uIHNvcGhpc3RpY2F0ZWQgd2F5IHRvIHNldCB2YWx1ZXMgaW4gdGhlIGpvYiB2aWEgcGF0aHNcbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIHNldFZhbHVlQnlQYXRoKCd2YWx1ZScsIFsnZm9vJywgJ2JhciddKTtcbiAgICpcbiAgICogd2lsbCBtYWtlIHJlc3VsdHMgaW4gam9iXG4gICAqIHtcbiAgICogICBmb286IHtcbiAgICogICAgIGJhcjogJ3ZhbHVlJ1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgdGhlIHZhbHVlIHRvIHNldFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIHBhdGggc2VnbWVudHNcbiAgICovXG4gIHNldFZhbHVlQnlQYXRoKHZhbHVlOiBWYXNGaWVsZER0b1ZhbHVlLCBwYXRoOiBzdHJpbmdbXSA9IFtdKTogdm9pZCB7XG4gICAgc3dpdGNoIChwYXRoLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgMToge1xuICAgICAgICAodGhpcy4kdGhpcylbcGF0aFswXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgKCh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSBhcyBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPilbcGF0aFsyXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBFcnJvcigncGF0aCBoYXMgdG9vIG1hbnkgc2VnbWVudHMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBzdGF0aWNPbmx5IGlmIHRydWUsIHdpbGwgb25seSBvdXRwdXQgdmFsdWVzIGZvciB0aGUgc3RhdGljXG4gICAqIHByb3BlcnRpZXMgaW4gdGhlIGR0b1xuICAgKiBAcmV0dXJuIHtWYXNKb2JEdG99XG4gICAqL1xuICBwdWJsaWMgdG9EdG8oc3RhdGljT25seSA9IGZhbHNlKTogVmFzSm9iRHRvIHtcbiAgICBjb25zdCBkdG8gPSB7fSBhcyBWYXNKb2JEdG8gJiBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPjtcbiAgICB0aGlzLnN0YXRpY1Byb3BlcnRpZXNcbiAgICAgIC5mb3JFYWNoKHByb3AgPT5cbiAgICAgICAgKGR0bylbcHJvcF0gPSB0aGlzLiR0aGlzW3Byb3BdKTtcblxuICAgIGlmIChzdGF0aWNPbmx5KSB7XG4gICAgICByZXR1cm4gZHRvO1xuICAgIH1cblxuICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNcbiAgICAgIC5mb3JFYWNoKHByb3AgPT5cbiAgICAgICAgZHRvW3Byb3BdID0gdGhpcy4kdGhpc1twcm9wXSk7XG5cbiAgICByZXR1cm4gZHRvO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgcGFyc2UgYSBzeW50YXggdGhhdCBhbGxvd3MgdXMgdG8gYnVpbGQgc3RyaW5ncyBmcm9tIHRoZVxuICAgKiB2YWx1ZXMgb2YgZnJvbSB0aGUgam9iIG1vZGVsLiBGb3IgZXhhbXBsZSBpZiB0aGUgam9iIG1vZGVsIHdhczpcbiAgICpcbiAgICoge1xuICAgKiAgIGZvbzogJ2JhcidcbiAgICogfVxuICAgKlxuICAgKiBhbmQgd2UgcGFzcyBcImkgYW0gZm9vIHtmb299XCIsIHRoZSByZXN1bHQgd291bGQgYmU6XG4gICAqXG4gICAqIFwiaSBhbSBmb28gYmFyXCJcbiAgICpcbiAgICogd2UgY2FuIGFsc28gdXNlIG1vbWVudCB0byBwYXJzZSBkYXRlcywgZm9yIGV4YW1wbGUgaWYgdGhlIGpvYiBtb2RlbCB3YXM6XG4gICAqXG4gICAqIHtcbiAgICogICBjcmVhdGVkOiBcIjIwMjItMDEtMDFUMDA6MDA6MDArMDAwMFwiXG4gICAqIH1cbiAgICpcbiAgICogYW5kIHdlIHBhc3MgXCJ7Y3JlYXRlZHxkYXRlOllZLU1NLUREfVwiLCB0aGUgcmVzdWx0IHdvdWxkIGJlOlxuICAgKlxuICAgKiBcIjIwMjItMDEtMDFcIlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgYSBzdHJpbmcgd2l0aCB0aGUgc3ludGF4XG4gICAqIEBwYXJhbSB7UGFyc2VTeW50YXhPcHRpb25zfSBvcHRpb25zXG4gICAqIEByZXR1cm4ge3N0cmluZ30gdGhlIHJlc3VsdHMgb2YgcGFyc2luZyB0aGUgc3ludGF4IG9uIHRoaXMgam9iXG4gICAqL1xuICBwYXJzZVN5bnRheChcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnNlU3ludGF4T3B0aW9ucyA9IHtcbiAgICAgIHRpbWVab25lT2Zmc2V0OiAwXG4gICAgfVxuICApOiBzdHJpbmcge1xuXG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oe1tefV0qfSkvZywgKG1hdGNoOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHN5bnRheCA9IHRva2VuLnN1YnN0cmluZygxLCB0b2tlbi5sZW5ndGggLSAxKTtcblxuICAgICAgbGV0IFtrZXksIGZpbHRlcl0gPSBzeW50YXguc3BsaXQoJ3wnKTtcbiAgICAgIGtleSA9IChrZXkgfHwgJycpLnRyaW0oKTtcbiAgICAgIGZpbHRlciA9IChmaWx0ZXIgfHwgJycpLnRyaW0oKVxuXG4gICAgICBsZXQgZmlsdGVyTmFtZSwgZmlsdGVyQXJnOiBzdHJpbmcgPSAnJztcbiAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgY29uc3Qgc3BsaXRJbmRleCA9IGZpbHRlci5pbmRleE9mKCc6Jyk7XG4gICAgICAgIGlmIChzcGxpdEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIGZpbHRlck5hbWUgPSBmaWx0ZXIuc3Vic3RyaW5nKDAsIHNwbGl0SW5kZXgpO1xuICAgICAgICAgIGZpbHRlckFyZyA9IGZpbHRlci5zdWJzdHJpbmcoc3BsaXRJbmRleCArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbHRlck5hbWUgPSBmaWx0ZXI7XG4gICAgICAgICAgZmlsdGVyQXJnID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgZmlsdGVyTmFtZSA9IChmaWx0ZXJOYW1lIHx8ICcnKS50cmltKCk7XG4gICAgICAgIGZpbHRlckFyZyA9IChmaWx0ZXJBcmcgfHwgJycpLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhdGggPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgIGxldCByZXN1bHQgPSAodGhpcy5nZXRWYWx1ZUJ5UGF0aChwYXRoKSB8fCAnJykudG9TdHJpbmcoKTtcblxuICAgICAgaWYgKGZpbHRlck5hbWUgJiYgcmVzdWx0KSB7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyTmFtZSkge1xuICAgICAgICAgIGNhc2UgJ2RhdGUnOiB7XG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KHJlc3VsdClcbiAgICAgICAgICAgICAgLnV0Y09mZnNldChvcHRpb25zLnRpbWVab25lT2Zmc2V0KVxuICAgICAgICAgICAgICAuZm9ybWF0KGZpbHRlckFyZyB8fCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybigndW5rbm93biBmaWx0ZXIgJXMnLCBmaWx0ZXJOYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWxvb2t1cC10eXBlLmR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi9lbnRpdHkvdmFzLWxvb2t1cC10eXBlLmR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzQWNjb3VudE9iamVjdER0byB9IGZyb20gJy4vdmFzLWFjY291bnQtb2JqZWN0LmR0byc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFzTG9va3VwVHlwZUR0byBleHRlbmRzIFZhc0FjY291bnRPYmplY3REdG8ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzZXF1ZW5jZTogbnVtYmVyO1xuICBjYXRlZ29yeUdyb3VwczogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWxvb2t1cC5kdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy1sb29rdXAuZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNBY2NvdW50T2JqZWN0RHRvIH0gZnJvbSAnLi92YXMtYWNjb3VudC1vYmplY3QuZHRvJztcblxuZXhwb3J0IGludGVyZmFjZSBWYXNMb29rdXBEdG8gZXh0ZW5kcyBWYXNBY2NvdW50T2JqZWN0RHRvIHtcbiAgaWQ6IHN0cmluZztcbiAgY3JlYXRlZDogc3RyaW5nO1xuICBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmc7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nO1xuICBtb2RpZmllZEJ5OiBzdHJpbmc7XG4gIGFjY291bnQ6IHN0cmluZztcbiAgYWNjZXNzR3JvdXA6IHN0cmluZztcbiAgbG9va3VwVHlwZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHNlcXVlbmNlOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLW1lbWJlcnNoaXAuZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFzLWxpYi9zcmMvbGliL2VudGl0eS92YXMtbWVtYmVyc2hpcC5kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhc0FjY291bnRPYmplY3REdG8gfSBmcm9tICcuL3Zhcy1hY2NvdW50LW9iamVjdC5kdG8nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhc01lbWJlcnNoaXBEdG8gZXh0ZW5kcyBWYXNBY2NvdW50T2JqZWN0RHRvIHtcbiAgdXNlcjogc3RyaW5nO1xuICBhZG1pbjogYm9vbGVhbjtcbiAgbG9va3VwVHlwZXM6IEFycmF5PHN0cmluZz47XG4gIGNvbnRhY3RUeXBlczogQXJyYXk8c3RyaW5nPjtcbiAgYWNjZXNzR3JvdXBzOiBBcnJheTxzdHJpbmc+O1xuICBqb2JTdGF0dXNlczogQXJyYXk8c3RyaW5nPjtcbiAgam9iVHlwZXM6IEFycmF5PHN0cmluZz47XG4gIHRhc2tUeXBlczogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VasBaseModel } from './vas-base.model';
|
|
2
2
|
import { UUID } from 'angular2-uuid';
|
|
3
|
-
import
|
|
3
|
+
import moment from 'moment';
|
|
4
4
|
export class VasReportRequestModel extends VasBaseModel {
|
|
5
5
|
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, error, jobId, title, url) {
|
|
6
6
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
|
|
@@ -35,4 +35,4 @@ export class VasReportRequestModel extends VasBaseModel {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXJlcG9ydC1yZXF1ZXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFzLWxpYi9zcmMvbGliL2VudGl0eS92YXMtcmVwb3J0LXJlcXVlc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxZQUFZO0lBRXJELFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDM0IsS0FBYSxFQUNiLEtBQWEsRUFDYixLQUFhLEVBQ2IsR0FBVztRQUVsQixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxDQUNYLENBQUM7UUFwQmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFRO0lBV3BCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUNaLEdBQWlDO1FBRWpDLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQ3JCLEdBQUcsQ0FBQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQ3JDLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxFQUN2QixHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFDbkIsR0FBRyxDQUFDLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFDdEMsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUNwQixHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFDZixHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFDZixHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFDZixHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FDZCxDQUFBO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQTtJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhc0Jhc2VNb2RlbCB9IGZyb20gJy4vdmFzLWJhc2UubW9kZWwnO1xuaW1wb3J0IHsgVmFzUmVwb3J0UmVxdWVzdER0byB9IGZyb20gJy4vdmFzLXJlcG9ydC1yZXF1ZXN0LmR0byc7XG5pbXBvcnQgeyBVVUlEIH0gZnJvbSAnYW5ndWxhcjItdXVpZCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBWYXNSZXBvcnRSZXF1ZXN0TW9kZWwgZXh0ZW5kcyBWYXNCYXNlTW9kZWwge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgZXJyb3I6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iSWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyxcbiAgICBwdWJsaWMgdXJsOiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaWQsXG4gICAgICBjcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZCxcbiAgICAgIGNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRHRvKFxuICAgIGR0bzogUGFydGlhbDxWYXNSZXBvcnRSZXF1ZXN0RHRvPlxuICApOiBWYXNSZXBvcnRSZXF1ZXN0TW9kZWwge1xuICAgIHJldHVybiBuZXcgVmFzUmVwb3J0UmVxdWVzdE1vZGVsKFxuICAgICAgZHRvLmlkIHx8IFVVSUQuVVVJRCgpLFxuICAgICAgZHRvLmNyZWF0ZWQgfHwgbW9tZW50KCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGR0by5zZXJ2ZXJDcmVhdGVkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWRCeSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZCB8fCBtb21lbnQoKS50b0lTT1N0cmluZygpLFxuICAgICAgZHRvLnNlcnZlck1vZGlmaWVkIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnkgfHwgJycsXG4gICAgICBkdG8uZXJyb3IgfHwgJycsXG4gICAgICBkdG8uam9iSWQgfHwgJycsXG4gICAgICBkdG8udGl0bGUgfHwgJycsXG4gICAgICBkdG8udXJsIHx8ICcnXG4gICAgKVxuICB9XG5cbiAgdG9EdG8oKTogVmFzUmVwb3J0UmVxdWVzdER0byB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZDogdGhpcy5zZXJ2ZXJDcmVhdGVkLFxuICAgICAgY3JlYXRlZEJ5OiB0aGlzLmNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkOiB0aGlzLm1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQ6IHRoaXMuc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXG4gICAgICBlcnJvcjogdGhpcy5lcnJvcixcbiAgICAgIGpvYklkOiB0aGlzLmpvYklkLFxuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICB1cmw6IHRoaXMudXJsXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXRhc2stdHlwZS5kdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy10YXNrLXR5cGUuZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNBY2NvdW50T2JqZWN0RHRvIH0gZnJvbSAnLi92YXMtYWNjb3VudC1vYmplY3QuZHRvJztcblxuZXhwb3J0IGludGVyZmFjZSBWYXNUYXNrVHlwZUR0byBleHRlbmRzIFZhc0FjY291bnRPYmplY3REdG8ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzZXF1ZW5jZTogbnVtYmVyO1xuICBjYXRlZ29yeUdyb3VwczogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VasBaseModel } from './vas-base.model';
|
|
2
|
-
import
|
|
2
|
+
import moment from 'moment';
|
|
3
3
|
export class VasUserModel extends VasBaseModel {
|
|
4
4
|
constructor(id, created = '', serverCreated = '', createdBy = '', modified = '', serverModified = '', modifiedBy = '', email, username) {
|
|
5
5
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
|
|
@@ -19,12 +19,12 @@ export class VasUserModel extends VasBaseModel {
|
|
|
19
19
|
static newUser(uid, displayName, email) {
|
|
20
20
|
return {
|
|
21
21
|
id: uid,
|
|
22
|
-
created:
|
|
22
|
+
created: moment().toISOString(),
|
|
23
23
|
createdBy: uid,
|
|
24
|
-
modified:
|
|
24
|
+
modified: moment().toISOString(),
|
|
25
25
|
modifiedBy: uid,
|
|
26
|
-
serverCreated:
|
|
27
|
-
serverModified:
|
|
26
|
+
serverCreated: moment().toISOString(),
|
|
27
|
+
serverModified: moment().toISOString(),
|
|
28
28
|
email: email,
|
|
29
29
|
username: displayName,
|
|
30
30
|
};
|
|
@@ -43,4 +43,4 @@ export class VasUserModel extends VasBaseModel {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXVzZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy11c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBRTVDLFlBQ2tCLEVBQVUsRUFDVixVQUFrQixFQUFFLEVBQ3BCLGdCQUF3QixFQUFFLEVBQzFCLFlBQW9CLEVBQUUsRUFDdEIsV0FBbUIsRUFBRSxFQUNyQixpQkFBeUIsRUFBRSxFQUMzQixhQUFxQixFQUFFLEVBQ2hDLEtBQWEsRUFDYixRQUFpQjtRQUV4QixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxDQUNYLENBQUM7UUFsQmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsa0JBQWEsR0FBYixhQUFhLENBQWE7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFhO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGFBQVEsR0FBUixRQUFRLENBQVM7SUFXMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBZTtRQUNuQyxPQUFPLElBQUksWUFBWSxDQUNyQixHQUFHLENBQUMsRUFBRSxFQUNOLEdBQUcsQ0FBQyxPQUFPLEVBQ1gsR0FBRyxDQUFDLGFBQWEsRUFDakIsR0FBRyxDQUFDLFNBQVMsRUFDYixHQUFHLENBQUMsUUFBUSxFQUNaLEdBQUcsQ0FBQyxjQUFjLEVBQ2xCLEdBQUcsQ0FBQyxVQUFVLEVBQ2QsR0FBRyxDQUFDLEtBQUssRUFDVCxHQUFHLENBQUMsUUFBUSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsV0FBbUIsRUFBRSxLQUFhO1FBQ25FLE9BQU87WUFDTCxFQUFFLEVBQUUsR0FBRztZQUNQLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDL0IsU0FBUyxFQUFFLEdBQUc7WUFDZCxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ2hDLFVBQVUsRUFBRSxHQUFHO1lBQ2YsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNyQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLEtBQUssRUFBRSxLQUFLO1lBQ1osUUFBUSxFQUFFLFdBQVc7U0FDdEIsQ0FBQTtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhc1VzZXJEdG8gfSBmcm9tICcuL3Zhcy11c2VyLmR0byc7XHJcbmltcG9ydCB7IFZhc0Jhc2VNb2RlbCB9IGZyb20gJy4vdmFzLWJhc2UubW9kZWwnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFZhc1VzZXJNb2RlbCBleHRlbmRzIFZhc0Jhc2VNb2RlbCBpbXBsZW1lbnRzIFZhc1VzZXJEdG8ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeTogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5OiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBlbWFpbDogc3RyaW5nLFxyXG4gICAgcHVibGljIHVzZXJuYW1lPzogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgaWQsXHJcbiAgICAgIGNyZWF0ZWQsXHJcbiAgICAgIHNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGNyZWF0ZWRCeSxcclxuICAgICAgbW9kaWZpZWQsXHJcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBtb2RpZmllZEJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmcm9tRHRvKGR0bzogVmFzVXNlckR0byk6IFZhc1VzZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gbmV3IFZhc1VzZXJNb2RlbChcclxuICAgICAgZHRvLmlkLFxyXG4gICAgICBkdG8uY3JlYXRlZCxcclxuICAgICAgZHRvLnNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGR0by5jcmVhdGVkQnksXHJcbiAgICAgIGR0by5tb2RpZmllZCxcclxuICAgICAgZHRvLnNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBkdG8ubW9kaWZpZWRCeSxcclxuICAgICAgZHRvLmVtYWlsLFxyXG4gICAgICBkdG8udXNlcm5hbWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG5ld1VzZXIodWlkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiBWYXNVc2VyRHRvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB1aWQsXHJcbiAgICAgIGNyZWF0ZWQ6IG1vbWVudCgpLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgIGNyZWF0ZWRCeTogdWlkLFxyXG4gICAgICBtb2RpZmllZDogbW9tZW50KCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgbW9kaWZpZWRCeTogdWlkLFxyXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiBtb21lbnQoKS50b0lTT1N0cmluZygpLFxyXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogbW9tZW50KCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgZW1haWw6IGVtYWlsLFxyXG4gICAgICB1c2VybmFtZTogZGlzcGxheU5hbWUsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9EdG8oKTogVmFzVXNlckR0byB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpZDogdGhpcy5pZCxcclxuICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxyXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGNyZWF0ZWRCeTogdGhpcy5jcmVhdGVkQnksXHJcbiAgICAgIG1vZGlmaWVkOiB0aGlzLm1vZGlmaWVkLFxyXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogdGhpcy5zZXJ2ZXJNb2RpZmllZCxcclxuICAgICAgbW9kaWZpZWRCeTogdGhpcy5tb2RpZmllZEJ5LFxyXG4gICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgdXNlcm5hbWU6IHRoaXMudXNlcm5hbWVcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UUID } from 'angular2-uuid';
|
|
2
|
-
import
|
|
2
|
+
import moment from 'moment';
|
|
3
3
|
|
|
4
4
|
var VasControlConfigDirection;
|
|
5
5
|
(function (VasControlConfigDirection) {
|
|
@@ -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>>}
|
|
@@ -486,8 +504,9 @@ class VasJobModel extends VasBaseModel {
|
|
|
486
504
|
* @param {string} jobType
|
|
487
505
|
* @param {string} assignee
|
|
488
506
|
* @param {string} formId
|
|
507
|
+
* @param {number} timeZoneOffset
|
|
489
508
|
*/
|
|
490
|
-
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId) {
|
|
509
|
+
constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, account, accessGroup, reference, jobDate, jobStatus, jobType, assignee, formId, timeZoneOffset) {
|
|
491
510
|
super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy);
|
|
492
511
|
this.id = id;
|
|
493
512
|
this.created = created;
|
|
@@ -504,6 +523,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
504
523
|
this.jobType = jobType;
|
|
505
524
|
this.assignee = assignee;
|
|
506
525
|
this.formId = formId;
|
|
526
|
+
this.timeZoneOffset = timeZoneOffset;
|
|
507
527
|
}
|
|
508
528
|
/**
|
|
509
529
|
* Returns this with the dynamic interface
|
|
@@ -537,7 +557,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
537
557
|
static empty() {
|
|
538
558
|
return new VasJobModel(
|
|
539
559
|
// eslint-disable-next-line new-cap
|
|
540
|
-
UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
|
560
|
+
UUID.UUID(), '', '', '', '', '', '', '', '', '', '', '', '', '', '', 0);
|
|
541
561
|
}
|
|
542
562
|
/**
|
|
543
563
|
* @param {VasJobDto} jobDto
|
|
@@ -546,7 +566,7 @@ class VasJobModel extends VasBaseModel {
|
|
|
546
566
|
static fromDto(jobDto) {
|
|
547
567
|
const model = new VasJobModel(
|
|
548
568
|
// eslint-disable-next-line new-cap
|
|
549
|
-
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 || '');
|
|
569
|
+
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);
|
|
550
570
|
const emptyKeys = model.staticProperties;
|
|
551
571
|
Object
|
|
552
572
|
.keys(jobDto)
|
|
@@ -598,11 +618,20 @@ class VasJobModel extends VasBaseModel {
|
|
|
598
618
|
}
|
|
599
619
|
case 2: {
|
|
600
620
|
const val0 = this.$this[path[0]];
|
|
621
|
+
if (!val0) {
|
|
622
|
+
return undefined;
|
|
623
|
+
}
|
|
601
624
|
return val0[path[1]];
|
|
602
625
|
}
|
|
603
626
|
case 3: {
|
|
604
627
|
const val0 = this.$this[path[0]];
|
|
628
|
+
if (!val0) {
|
|
629
|
+
return undefined;
|
|
630
|
+
}
|
|
605
631
|
const val1 = val0[path[1]];
|
|
632
|
+
if (!val1) {
|
|
633
|
+
return undefined;
|
|
634
|
+
}
|
|
606
635
|
return val1[path[2]];
|
|
607
636
|
}
|
|
608
637
|
default: {
|
|
@@ -667,6 +696,75 @@ class VasJobModel extends VasBaseModel {
|
|
|
667
696
|
.forEach(prop => dto[prop] = this.$this[prop]);
|
|
668
697
|
return dto;
|
|
669
698
|
}
|
|
699
|
+
/**
|
|
700
|
+
* This method will parse a syntax that allows us to build strings from the
|
|
701
|
+
* values of from the job model. For example if the job model was:
|
|
702
|
+
*
|
|
703
|
+
* {
|
|
704
|
+
* foo: 'bar'
|
|
705
|
+
* }
|
|
706
|
+
*
|
|
707
|
+
* and we pass "i am foo {foo}", the result would be:
|
|
708
|
+
*
|
|
709
|
+
* "i am foo bar"
|
|
710
|
+
*
|
|
711
|
+
* we can also use moment to parse dates, for example if the job model was:
|
|
712
|
+
*
|
|
713
|
+
* {
|
|
714
|
+
* created: "2022-01-01T00:00:00+0000"
|
|
715
|
+
* }
|
|
716
|
+
*
|
|
717
|
+
* and we pass "{created|date:YY-MM-DD}", the result would be:
|
|
718
|
+
*
|
|
719
|
+
* "2022-01-01"
|
|
720
|
+
*
|
|
721
|
+
* @param {string} value a string with the syntax
|
|
722
|
+
* @param {ParseSyntaxOptions} options
|
|
723
|
+
* @return {string} the results of parsing the syntax on this job
|
|
724
|
+
*/
|
|
725
|
+
parseSyntax(value, options = {
|
|
726
|
+
timeZoneOffset: 0
|
|
727
|
+
}) {
|
|
728
|
+
if (!value || typeof value !== 'string') {
|
|
729
|
+
return '';
|
|
730
|
+
}
|
|
731
|
+
return value.replace(/({[^}]*})/g, (match, token) => {
|
|
732
|
+
const syntax = token.substring(1, token.length - 1);
|
|
733
|
+
let [key, filter] = syntax.split('|');
|
|
734
|
+
key = (key || '').trim();
|
|
735
|
+
filter = (filter || '').trim();
|
|
736
|
+
let filterName, filterArg = '';
|
|
737
|
+
if (filter) {
|
|
738
|
+
const splitIndex = filter.indexOf(':');
|
|
739
|
+
if (splitIndex !== -1) {
|
|
740
|
+
filterName = filter.substring(0, splitIndex);
|
|
741
|
+
filterArg = filter.substring(splitIndex + 1);
|
|
742
|
+
}
|
|
743
|
+
else {
|
|
744
|
+
filterName = filter;
|
|
745
|
+
filterArg = '';
|
|
746
|
+
}
|
|
747
|
+
filterName = (filterName || '').trim();
|
|
748
|
+
filterArg = (filterArg || '').trim();
|
|
749
|
+
}
|
|
750
|
+
const path = key.split('.');
|
|
751
|
+
let result = (this.getValueByPath(path) || '').toString();
|
|
752
|
+
if (filterName && result) {
|
|
753
|
+
switch (filterName) {
|
|
754
|
+
case 'date': {
|
|
755
|
+
return moment(result)
|
|
756
|
+
.utcOffset(options.timeZoneOffset)
|
|
757
|
+
.format(filterArg || '');
|
|
758
|
+
}
|
|
759
|
+
default: {
|
|
760
|
+
console.warn('unknown filter %s', filterName);
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return result;
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
;
|
|
670
768
|
}
|
|
671
769
|
|
|
672
770
|
class VasReportRequestModel extends VasBaseModel {
|
|
@@ -685,7 +783,7 @@ class VasReportRequestModel extends VasBaseModel {
|
|
|
685
783
|
this.url = url;
|
|
686
784
|
}
|
|
687
785
|
static fromDto(dto) {
|
|
688
|
-
return new VasReportRequestModel(dto.id || UUID.UUID(), dto.created ||
|
|
786
|
+
return new VasReportRequestModel(dto.id || UUID.UUID(), dto.created || moment().toISOString(), dto.serverCreated || '', dto.createdBy || '', dto.modified || moment().toISOString(), dto.serverModified || '', dto.modifiedBy || '', dto.error || '', dto.jobId || '', dto.title || '', dto.url || '');
|
|
689
787
|
}
|
|
690
788
|
toDto() {
|
|
691
789
|
return {
|
|
@@ -723,12 +821,12 @@ class VasUserModel extends VasBaseModel {
|
|
|
723
821
|
static newUser(uid, displayName, email) {
|
|
724
822
|
return {
|
|
725
823
|
id: uid,
|
|
726
|
-
created:
|
|
824
|
+
created: moment().toISOString(),
|
|
727
825
|
createdBy: uid,
|
|
728
|
-
modified:
|
|
826
|
+
modified: moment().toISOString(),
|
|
729
827
|
modifiedBy: uid,
|
|
730
|
-
serverCreated:
|
|
731
|
-
serverModified:
|
|
828
|
+
serverCreated: moment().toISOString(),
|
|
829
|
+
serverModified: moment().toISOString(),
|
|
732
830
|
email: email,
|
|
733
831
|
username: displayName,
|
|
734
832
|
};
|