@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.
Files changed (96) hide show
  1. package/cjs/lib/entity/index.d.ts +10 -0
  2. package/cjs/lib/entity/index.d.ts.map +1 -1
  3. package/cjs/lib/entity/index.js +10 -0
  4. package/cjs/lib/entity/index.js.map +1 -1
  5. package/cjs/lib/entity/vas-access-group.dto.d.ts +7 -0
  6. package/cjs/lib/entity/vas-access-group.dto.d.ts.map +1 -0
  7. package/cjs/lib/entity/vas-access-group.dto.js +3 -0
  8. package/cjs/lib/entity/vas-access-group.dto.js.map +1 -0
  9. package/cjs/lib/entity/vas-account.dto.d.ts +33 -0
  10. package/cjs/lib/entity/vas-account.dto.d.ts.map +1 -0
  11. package/cjs/lib/entity/vas-account.dto.js +3 -0
  12. package/cjs/lib/entity/vas-account.dto.js.map +1 -0
  13. package/cjs/lib/entity/vas-contact-type.dto.d.ts +8 -0
  14. package/cjs/lib/entity/vas-contact-type.dto.d.ts.map +1 -0
  15. package/cjs/lib/entity/vas-contact-type.dto.js +3 -0
  16. package/cjs/lib/entity/vas-contact-type.dto.js.map +1 -0
  17. package/cjs/lib/entity/vas-contact.dto.d.ts +12 -0
  18. package/cjs/lib/entity/vas-contact.dto.d.ts.map +1 -0
  19. package/cjs/lib/entity/vas-contact.dto.js +3 -0
  20. package/cjs/lib/entity/vas-contact.dto.js.map +1 -0
  21. package/cjs/lib/entity/vas-form.model.d.ts +6 -0
  22. package/cjs/lib/entity/vas-form.model.d.ts.map +1 -1
  23. package/cjs/lib/entity/vas-form.model.js +18 -0
  24. package/cjs/lib/entity/vas-form.model.js.map +1 -1
  25. package/cjs/lib/entity/vas-job-status.dto.d.ts +8 -0
  26. package/cjs/lib/entity/vas-job-status.dto.d.ts.map +1 -0
  27. package/cjs/lib/entity/vas-job-status.dto.js +3 -0
  28. package/cjs/lib/entity/vas-job-status.dto.js.map +1 -0
  29. package/cjs/lib/entity/vas-job-type.dto.d.ts +8 -0
  30. package/cjs/lib/entity/vas-job-type.dto.d.ts.map +1 -0
  31. package/cjs/lib/entity/vas-job-type.dto.js +3 -0
  32. package/cjs/lib/entity/vas-job-type.dto.js.map +1 -0
  33. package/cjs/lib/entity/vas-job.dto.d.ts +1 -0
  34. package/cjs/lib/entity/vas-job.dto.d.ts.map +1 -1
  35. package/cjs/lib/entity/vas-job.dto.js.map +1 -1
  36. package/cjs/lib/entity/vas-job.model.d.ts +39 -1
  37. package/cjs/lib/entity/vas-job.model.d.ts.map +1 -1
  38. package/cjs/lib/entity/vas-job.model.js +85 -3
  39. package/cjs/lib/entity/vas-job.model.js.map +1 -1
  40. package/cjs/lib/entity/vas-lookup-type.dto.d.ts +7 -0
  41. package/cjs/lib/entity/vas-lookup-type.dto.d.ts.map +1 -0
  42. package/cjs/lib/entity/vas-lookup-type.dto.js +3 -0
  43. package/cjs/lib/entity/vas-lookup-type.dto.js.map +1 -0
  44. package/cjs/lib/entity/vas-lookup.dto.d.ts +16 -0
  45. package/cjs/lib/entity/vas-lookup.dto.d.ts.map +1 -0
  46. package/cjs/lib/entity/vas-lookup.dto.js +3 -0
  47. package/cjs/lib/entity/vas-lookup.dto.js.map +1 -0
  48. package/cjs/lib/entity/vas-membership.dto.d.ts +12 -0
  49. package/cjs/lib/entity/vas-membership.dto.d.ts.map +1 -0
  50. package/cjs/lib/entity/vas-membership.dto.js +3 -0
  51. package/cjs/lib/entity/vas-membership.dto.js.map +1 -0
  52. package/cjs/lib/entity/vas-report-request.model.js +3 -2
  53. package/cjs/lib/entity/vas-report-request.model.js.map +1 -1
  54. package/cjs/lib/entity/vas-task-type.dto.d.ts +7 -0
  55. package/cjs/lib/entity/vas-task-type.dto.d.ts.map +1 -0
  56. package/cjs/lib/entity/vas-task-type.dto.js +3 -0
  57. package/cjs/lib/entity/vas-task-type.dto.js.map +1 -0
  58. package/cjs/lib/entity/vas-user.model.d.ts.map +1 -1
  59. package/cjs/lib/entity/vas-user.model.js +6 -5
  60. package/cjs/lib/entity/vas-user.model.js.map +1 -1
  61. package/cjs/package.json +9 -3
  62. package/esm2020/lib/entity/index.mjs +11 -1
  63. package/esm2020/lib/entity/vas-access-group.dto.mjs +2 -0
  64. package/esm2020/lib/entity/vas-account.dto.mjs +2 -0
  65. package/esm2020/lib/entity/vas-contact-type.dto.mjs +2 -0
  66. package/esm2020/lib/entity/vas-contact.dto.mjs +2 -0
  67. package/esm2020/lib/entity/vas-form.model.mjs +19 -1
  68. package/esm2020/lib/entity/vas-job-status.dto.mjs +2 -0
  69. package/esm2020/lib/entity/vas-job-type.dto.mjs +2 -0
  70. package/esm2020/lib/entity/vas-job.dto.mjs +1 -1
  71. package/esm2020/lib/entity/vas-job.model.mjs +85 -4
  72. package/esm2020/lib/entity/vas-lookup-type.dto.mjs +2 -0
  73. package/esm2020/lib/entity/vas-lookup.dto.mjs +2 -0
  74. package/esm2020/lib/entity/vas-membership.dto.mjs +2 -0
  75. package/esm2020/lib/entity/vas-report-request.model.mjs +2 -2
  76. package/esm2020/lib/entity/vas-task-type.dto.mjs +2 -0
  77. package/esm2020/lib/entity/vas-user.model.mjs +6 -6
  78. package/fesm2015/ironcode-vas-lib.mjs +107 -9
  79. package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
  80. package/fesm2020/ironcode-vas-lib.mjs +107 -9
  81. package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
  82. package/lib/entity/index.d.ts +10 -0
  83. package/lib/entity/vas-access-group.dto.d.ts +6 -0
  84. package/lib/entity/vas-account.dto.d.ts +32 -0
  85. package/lib/entity/vas-contact-type.dto.d.ts +7 -0
  86. package/lib/entity/vas-contact.dto.d.ts +11 -0
  87. package/lib/entity/vas-form.model.d.ts +6 -0
  88. package/lib/entity/vas-job-status.dto.d.ts +7 -0
  89. package/lib/entity/vas-job-type.dto.d.ts +7 -0
  90. package/lib/entity/vas-job.dto.d.ts +1 -0
  91. package/lib/entity/vas-job.model.d.ts +39 -1
  92. package/lib/entity/vas-lookup-type.dto.d.ts +6 -0
  93. package/lib/entity/vas-lookup.dto.d.ts +15 -0
  94. package/lib/entity/vas-membership.dto.d.ts +11 -0
  95. package/lib/entity/vas-task-type.dto.d.ts +6 -0
  96. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi9lbnRpdHkvdmFzLWpvYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWNoRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsWUFBWTtJQUMzQzs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDM0IsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixTQUFpQixFQUNqQixPQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsTUFBYztRQUVyQixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxDQUNYLENBQUM7UUF4QmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAs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LENBQUMsaUJBQWlCO2FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNkLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFbEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVVUlEIH0gZnJvbSAnYW5ndWxhcjItdXVpZCc7XG5pbXBvcnQgeyBWYXNKb2JEdG8gfSBmcm9tICcuL3Zhcy1qb2IuZHRvJztcbmltcG9ydCB7IFZhc0Jhc2VNb2RlbCB9IGZyb20gJy4vdmFzLWJhc2UubW9kZWwnO1xuaW1wb3J0IHsgVmFzRmllbGREdG9WYWx1ZSB9IGZyb20gJy4vdmFzLWZpZWxkLmR0byc7XG5pbXBvcnQgeyBWYXNGb3JtTW9kZWwgfSBmcm9tICcuL3Zhcy1mb3JtLm1vZGVsJztcblxudHlwZSBWYXNKb2JNb2RlbEtleXMgPSBrZXlvZiB0eXBlb2YgVmFzSm9iTW9kZWw7XG5cbmRlY2xhcmUgdHlwZSBWYXNKb2JNb2RlbFR5cGVUeXBlID0ge1xuICBba2V5IGluIFZhc0pvYk1vZGVsS2V5c106IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSBleHRlbmRzIFZhc0pvYk1vZGVsVHlwZVR5cGUge1xuICBba2V5OiBzdHJpbmddOiBWYXNGaWVsZER0b1ZhbHVlO1xufVxuXG4vKipcbiAqIEpvYk1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBWYXNKb2JNb2RlbCBleHRlbmRzIFZhc0Jhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlckNyZWF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNyZWF0ZWRCeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kaWZpZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZlck1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RpZmllZEJ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2Nlc3NHcm91cFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmZXJlbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JEYXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JTdGF0dXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGpvYlR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFzc2lnbmVlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtSWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgYWNjb3VudDogc3RyaW5nLFxuICAgIHB1YmxpYyBhY2Nlc3NHcm91cDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iRGF0ZTogc3RyaW5nLFxuICAgIHB1YmxpYyBqb2JTdGF0dXM6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iVHlwZTogc3RyaW5nLFxuICAgIHB1YmxpYyBhc3NpZ25lZTogc3RyaW5nLFxuICAgIHB1YmxpYyBmb3JtSWQ6IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGlkLFxuICAgICAgY3JlYXRlZCxcbiAgICAgIHNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnksXG4gICAgICBtb2RpZmllZCxcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxuICAgICAgbW9kaWZpZWRCeVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGlzIHdpdGggdGhlIGR5bmFtaWMgaW50ZXJmYWNlXG4gICAqIEByZXR1cm4ge1Zhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZX1cbiAgICovXG4gIGdldCAkdGhpcygpOiBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0ICR0aGlzID0gdGhpcztcbiAgICByZXR1cm4gdGhpcyBhcyB0eXBlb2YgJHRoaXMgJiBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgSm9iIGR5bmFtaWMgcHJvcGVydGllcyBpLmUuIHRob3NlIHRoYXQgYXJlIGFkZGVkIGJ5IHRoZVxuICAgKiBkeW5hbWljIGZvcm1zXG4gICAqL1xuICBnZXQgZHluYW1pY1Byb3BlcnRpZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3QgbmF0aXZlUHJvcHMgPSB0aGlzLnN0YXRpY1Byb3BlcnRpZXM7XG4gICAgcmV0dXJuIE9iamVjdFxuICAgICAgLmdldE93blByb3BlcnR5TmFtZXModGhpcylcbiAgICAgIC5maWx0ZXIocHJvcCA9PiAhbmF0aXZlUHJvcHMuaW5jbHVkZXMocHJvcCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIEpvYiBzdGF0aWMgcHJvcGVydGllcyBpLmUuIHRob3NlIHRoYXQgYXJlIGRlY2xhcmVkIGJ5XG4gICAqIHRoZSB0eXBlXG4gICAqL1xuICBnZXQgc3RhdGljUHJvcGVydGllcygpOiBBcnJheTxzdHJpbmc+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 * as moment from 'moment';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXJlcG9ydC1yZXF1ZXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFzLWxpYi9zcmMvbGliL2VudGl0eS92YXMtcmVwb3J0LXJlcXVlc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFakMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7SUFFckQsWUFDa0IsRUFBVSxFQUNWLE9BQWUsRUFDZixhQUFxQixFQUNyQixTQUFpQixFQUNqQixRQUFnQixFQUNoQixjQUFzQixFQUN0QixVQUFrQixFQUMzQixLQUFhLEVBQ2IsS0FBYSxFQUNiLEtBQWEsRUFDYixHQUFXO1FBRWxCLEtBQUssQ0FDSCxFQUFFLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLENBQ1gsQ0FBQztRQXBCYyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFXcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQ1osR0FBaUM7UUFFakMsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFDckIsR0FBRyxDQUFDLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFDckMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQ3ZCLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUNuQixHQUFHLENBQUMsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUN0QyxHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFDeEIsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQ3BCLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUNmLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUNmLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUNmLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUNkLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxDQUFBO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzQmFzZU1vZGVsIH0gZnJvbSAnLi92YXMtYmFzZS5tb2RlbCc7XG5pbXBvcnQgeyBWYXNSZXBvcnRSZXF1ZXN0RHRvIH0gZnJvbSAnLi92YXMtcmVwb3J0LXJlcXVlc3QuZHRvJztcbmltcG9ydCB7IFVVSUQgfSBmcm9tICdhbmd1bGFyMi11dWlkJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgY2xhc3MgVmFzUmVwb3J0UmVxdWVzdE1vZGVsIGV4dGVuZHMgVmFzQmFzZU1vZGVsIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIGVycm9yOiBzdHJpbmcsXG4gICAgcHVibGljIGpvYklkOiBzdHJpbmcsXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcsXG4gICAgcHVibGljIHVybDogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGlkLFxuICAgICAgY3JlYXRlZCxcbiAgICAgIHNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnksXG4gICAgICBtb2RpZmllZCxcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxuICAgICAgbW9kaWZpZWRCeVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUR0byhcbiAgICBkdG86IFBhcnRpYWw8VmFzUmVwb3J0UmVxdWVzdER0bz5cbiAgKTogVmFzUmVwb3J0UmVxdWVzdE1vZGVsIHtcbiAgICByZXR1cm4gbmV3IFZhc1JlcG9ydFJlcXVlc3RNb2RlbChcbiAgICAgIGR0by5pZCB8fCBVVUlELlVVSUQoKSxcbiAgICAgIGR0by5jcmVhdGVkIHx8IG1vbWVudCgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBkdG8uc2VydmVyQ3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnkgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgbW9tZW50KCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGR0by5zZXJ2ZXJNb2RpZmllZCB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5IHx8ICcnLFxuICAgICAgZHRvLmVycm9yIHx8ICcnLFxuICAgICAgZHRvLmpvYklkIHx8ICcnLFxuICAgICAgZHRvLnRpdGxlIHx8ICcnLFxuICAgICAgZHRvLnVybCB8fCAnJ1xuICAgIClcbiAgfVxuXG4gIHRvRHRvKCk6IFZhc1JlcG9ydFJlcXVlc3REdG8ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGNyZWF0ZWQ6IHRoaXMuY3JlYXRlZCxcbiAgICAgIHNlcnZlckNyZWF0ZWQ6IHRoaXMuc2VydmVyQ3JlYXRlZCxcbiAgICAgIGNyZWF0ZWRCeTogdGhpcy5jcmVhdGVkQnksXG4gICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcbiAgICAgIHNlcnZlck1vZGlmaWVkOiB0aGlzLnNlcnZlck1vZGlmaWVkLFxuICAgICAgbW9kaWZpZWRCeTogdGhpcy5tb2RpZmllZEJ5LFxuICAgICAgZXJyb3I6IHRoaXMuZXJyb3IsXG4gICAgICBqb2JJZDogdGhpcy5qb2JJZCxcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgdXJsOiB0aGlzLnVybFxuICAgIH1cbiAgfVxuXG59XG4iXX0=
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 * as moment_ from 'moment';
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: moment_().toISOString(),
22
+ created: moment().toISOString(),
23
23
  createdBy: uid,
24
- modified: moment_().toISOString(),
24
+ modified: moment().toISOString(),
25
25
  modifiedBy: uid,
26
- serverCreated: moment_().toISOString(),
27
- serverModified: moment_().toISOString(),
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXVzZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy11c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFFNUMsWUFDa0IsRUFBVSxFQUNWLFVBQWtCLEVBQUUsRUFDcEIsZ0JBQXdCLEVBQUUsRUFDMUIsWUFBb0IsRUFBRSxFQUN0QixXQUFtQixFQUFFLEVBQ3JCLGlCQUF5QixFQUFFLEVBQzNCLGFBQXFCLEVBQUUsRUFDaEMsS0FBYSxFQUNiLFFBQWlCO1FBRXhCLEtBQUssQ0FDSCxFQUFFLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLENBQ1gsQ0FBQztRQWxCYyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixrQkFBYSxHQUFiLGFBQWEsQ0FBYTtRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWE7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQVcxQixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFlO1FBQ25DLE9BQU8sSUFBSSxZQUFZLENBQ3JCLEdBQUcsQ0FBQyxFQUFFLEVBQ04sR0FBRyxDQUFDLE9BQU8sRUFDWCxHQUFHLENBQUMsYUFBYSxFQUNqQixHQUFHLENBQUMsU0FBUyxFQUNiLEdBQUcsQ0FBQyxRQUFRLEVBQ1osR0FBRyxDQUFDLGNBQWMsRUFDbEIsR0FBRyxDQUFDLFVBQVUsRUFDZCxHQUFHLENBQUMsS0FBSyxFQUNULEdBQUcsQ0FBQyxRQUFRLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxXQUFtQixFQUFFLEtBQWE7UUFDbkUsT0FBTztZQUNMLEVBQUUsRUFBRSxHQUFHO1lBQ1AsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNoQyxTQUFTLEVBQUUsR0FBRztZQUNkLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDakMsVUFBVSxFQUFFLEdBQUc7WUFDZixhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDdkMsS0FBSyxFQUFFLEtBQUs7WUFDWixRQUFRLEVBQUUsV0FBVztTQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzVXNlckR0byB9IGZyb20gJy4vdmFzLXVzZXIuZHRvJztcclxuaW1wb3J0IHsgVmFzQmFzZU1vZGVsIH0gZnJvbSAnLi92YXMtYmFzZS5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBWYXNVc2VyTW9kZWwgZXh0ZW5kcyBWYXNCYXNlTW9kZWwgaW1wbGVtZW50cyBWYXNVc2VyRHRvIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnk6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWRCeTogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuICAgIHB1YmxpYyB1c2VybmFtZT86IHN0cmluZ1xyXG4gICkge1xyXG4gICAgc3VwZXIoXHJcbiAgICAgIGlkLFxyXG4gICAgICBjcmVhdGVkLFxyXG4gICAgICBzZXJ2ZXJDcmVhdGVkLFxyXG4gICAgICBjcmVhdGVkQnksXHJcbiAgICAgIG1vZGlmaWVkLFxyXG4gICAgICBzZXJ2ZXJNb2RpZmllZCxcclxuICAgICAgbW9kaWZpZWRCeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUR0byhkdG86IFZhc1VzZXJEdG8pOiBWYXNVc2VyTW9kZWwge1xyXG4gICAgcmV0dXJuIG5ldyBWYXNVc2VyTW9kZWwoXHJcbiAgICAgIGR0by5pZCxcclxuICAgICAgZHRvLmNyZWF0ZWQsXHJcbiAgICAgIGR0by5zZXJ2ZXJDcmVhdGVkLFxyXG4gICAgICBkdG8uY3JlYXRlZEJ5LFxyXG4gICAgICBkdG8ubW9kaWZpZWQsXHJcbiAgICAgIGR0by5zZXJ2ZXJNb2RpZmllZCxcclxuICAgICAgZHRvLm1vZGlmaWVkQnksXHJcbiAgICAgIGR0by5lbWFpbCxcclxuICAgICAgZHRvLnVzZXJuYW1lXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBuZXdVc2VyKHVpZDogc3RyaW5nLCBkaXNwbGF5TmFtZTogc3RyaW5nLCBlbWFpbDogc3RyaW5nKTogVmFzVXNlckR0byB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpZDogdWlkLFxyXG4gICAgICBjcmVhdGVkOiBtb21lbnRfKCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgY3JlYXRlZEJ5OiB1aWQsXHJcbiAgICAgIG1vZGlmaWVkOiBtb21lbnRfKCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgbW9kaWZpZWRCeTogdWlkLFxyXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiBtb21lbnRfKCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgc2VydmVyTW9kaWZpZWQ6IG1vbWVudF8oKS50b0lTT1N0cmluZygpLFxyXG4gICAgICBlbWFpbDogZW1haWwsXHJcbiAgICAgIHVzZXJuYW1lOiBkaXNwbGF5TmFtZSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b0R0bygpOiBWYXNVc2VyRHRvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXHJcbiAgICAgIHNlcnZlckNyZWF0ZWQ6IHRoaXMuc2VydmVyQ3JlYXRlZCxcclxuICAgICAgY3JlYXRlZEJ5OiB0aGlzLmNyZWF0ZWRCeSxcclxuICAgICAgbW9kaWZpZWQ6IHRoaXMubW9kaWZpZWQsXHJcbiAgICAgIHNlcnZlck1vZGlmaWVkOiB0aGlzLnNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXHJcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxyXG4gICAgICB1c2VybmFtZTogdGhpcy51c2VybmFtZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXVzZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy11c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBRTVDLFlBQ2tCLEVBQVUsRUFDVixVQUFrQixFQUFFLEVBQ3BCLGdCQUF3QixFQUFFLEVBQzFCLFlBQW9CLEVBQUUsRUFDdEIsV0FBbUIsRUFBRSxFQUNyQixpQkFBeUIsRUFBRSxFQUMzQixhQUFxQixFQUFFLEVBQ2hDLEtBQWEsRUFDYixRQUFpQjtRQUV4QixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxDQUNYLENBQUM7UUFsQmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsa0JBQWEsR0FBYixhQUFhLENBQWE7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFhO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGFBQVEsR0FBUixRQUFRLENBQVM7SUFXMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBZTtRQUNuQyxPQUFPLElBQUksWUFBWSxDQUNyQixHQUFHLENBQUMsRUFBRSxFQUNOLEdBQUcsQ0FBQyxPQUFPLEVBQ1gsR0FBRyxDQUFDLGFBQWEsRUFDakIsR0FBRyxDQUFDLFNBQVMsRUFDYixHQUFHLENBQUMsUUFBUSxFQUNaLEdBQUcsQ0FBQyxjQUFjLEVBQ2xCLEdBQUcsQ0FBQyxVQUFVLEVBQ2QsR0FBRyxDQUFDLEtBQUssRUFDVCxHQUFHLENBQUMsUUFBUSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsV0FBbUIsRUFBRSxLQUFhO1FBQ25FLE9BQU87WUFDTCxFQUFFLEVBQUUsR0FBRztZQUNQLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDL0IsU0FBUyxFQUFFLEdBQUc7WUFDZCxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ2hDLFVBQVUsRUFBRSxHQUFHO1lBQ2YsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNyQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLEtBQUssRUFBRSxLQUFLO1lBQ1osUUFBUSxFQUFFLFdBQVc7U0FDdEIsQ0FBQTtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhc1VzZXJEdG8gfSBmcm9tICcuL3Zhcy11c2VyLmR0byc7XHJcbmltcG9ydCB7IFZhc0Jhc2VNb2RlbCB9IGZyb20gJy4vdmFzLWJhc2UubW9kZWwnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFZhc1VzZXJNb2RlbCBleHRlbmRzIFZhc0Jhc2VNb2RlbCBpbXBsZW1lbnRzIFZhc1VzZXJEdG8ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeTogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5OiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBlbWFpbDogc3RyaW5nLFxyXG4gICAgcHVibGljIHVzZXJuYW1lPzogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgaWQsXHJcbiAgICAgIGNyZWF0ZWQsXHJcbiAgICAgIHNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGNyZWF0ZWRCeSxcclxuICAgICAgbW9kaWZpZWQsXHJcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBtb2RpZmllZEJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmcm9tRHRvKGR0bzogVmFzVXNlckR0byk6IFZhc1VzZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gbmV3IFZhc1VzZXJNb2RlbChcclxuICAgICAgZHRvLmlkLFxyXG4gICAgICBkdG8uY3JlYXRlZCxcclxuICAgICAgZHRvLnNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGR0by5jcmVhdGVkQnksXHJcbiAgICAgIGR0by5tb2RpZmllZCxcclxuICAgICAgZHRvLnNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBkdG8ubW9kaWZpZWRCeSxcclxuICAgICAgZHRvLmVtYWlsLFxyXG4gICAgICBkdG8udXNlcm5hbWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG5ld1VzZXIodWlkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiBWYXNVc2VyRHRvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB1aWQsXHJcbiAgICAgIGNyZWF0ZWQ6IG1vbWVudCgpLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgIGNyZWF0ZWRCeTogdWlkLFxyXG4gICAgICBtb2RpZmllZDogbW9tZW50KCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgbW9kaWZpZWRCeTogdWlkLFxyXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiBtb21lbnQoKS50b0lTT1N0cmluZygpLFxyXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogbW9tZW50KCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgZW1haWw6IGVtYWlsLFxyXG4gICAgICB1c2VybmFtZTogZGlzcGxheU5hbWUsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9EdG8oKTogVmFzVXNlckR0byB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpZDogdGhpcy5pZCxcclxuICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxyXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGNyZWF0ZWRCeTogdGhpcy5jcmVhdGVkQnksXHJcbiAgICAgIG1vZGlmaWVkOiB0aGlzLm1vZGlmaWVkLFxyXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogdGhpcy5zZXJ2ZXJNb2RpZmllZCxcclxuICAgICAgbW9kaWZpZWRCeTogdGhpcy5tb2RpZmllZEJ5LFxyXG4gICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgdXNlcm5hbWU6IHRoaXMudXNlcm5hbWVcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { UUID } from 'angular2-uuid';
2
- import * as moment_ from 'moment';
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 || moment_().toISOString(), dto.serverCreated || '', dto.createdBy || '', dto.modified || moment_().toISOString(), dto.serverModified || '', dto.modifiedBy || '', dto.error || '', dto.jobId || '', dto.title || '', dto.url || '');
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: moment_().toISOString(),
824
+ created: moment().toISOString(),
727
825
  createdBy: uid,
728
- modified: moment_().toISOString(),
826
+ modified: moment().toISOString(),
729
827
  modifiedBy: uid,
730
- serverCreated: moment_().toISOString(),
731
- serverModified: moment_().toISOString(),
828
+ serverCreated: moment().toISOString(),
829
+ serverModified: moment().toISOString(),
732
830
  email: email,
733
831
  username: displayName,
734
832
  };