@trudb/tru-common-lib 0.0.871 → 0.0.873

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.
@@ -1,6 +1,6 @@
1
1
  import moment from "moment";
2
- import { TruPropertyConfigBase } from "../base-classes/tru-property-config-base";
3
2
  import { Subject } from "rxjs";
3
+ import { TruPropertyConfigBase } from "../base-classes/tru-property-config-base";
4
4
  import { TruDataChange } from "./tru-data-change";
5
5
  import { TruMergeData } from "./tru-merge-data";
6
6
  export class TruDataChangeParser {
@@ -13,6 +13,7 @@ export class TruDataChangeParser {
13
13
  expandPaths;
14
14
  isLoaded;
15
15
  types;
16
+ propertyTypes;
16
17
  globalDataContext;
17
18
  waitingEntities = [];
18
19
  dataChanged$ = new Subject();
@@ -22,7 +23,7 @@ export class TruDataChangeParser {
22
23
  dataChanged(change) {
23
24
  this.dataChanged$.next(change);
24
25
  }
25
- constructor(connection, dataContext, globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, modelPropertyLookup) {
26
+ constructor(connection, dataContext, globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, modelTypeLookup, modelPropertyLookup) {
26
27
  this.dataContext = dataContext;
27
28
  this.globalDataContext = globalDataContext;
28
29
  this.entity = entity;
@@ -32,7 +33,8 @@ export class TruDataChangeParser {
32
33
  this.contextFilters = contextFilters;
33
34
  this.expandPaths = expandPaths;
34
35
  this.isLoaded = isLoaded;
35
- this.types = modelPropertyLookup.lookup;
36
+ this.types = modelTypeLookup.lookup;
37
+ this.propertyTypes = modelPropertyLookup.lookup;
36
38
  connection.on("change", (payload) => {
37
39
  this.update(payload);
38
40
  });
@@ -60,7 +62,7 @@ export class TruDataChangeParser {
60
62
  var originalValues = entity.entityAspect.originalValues;
61
63
  entity['Data_Notification'] = true;
62
64
  Object.keys(change.properties).forEach((key) => {
63
- var entityType = this.types.get(change.tableName + '.' + key);
65
+ var entityType = this.propertyTypes.get(change.tableName + '.' + key);
64
66
  if (!entityType) {
65
67
  entityType = new TruPropertyConfigBase();
66
68
  entityType.typeName = 'text-bounded';
@@ -254,11 +256,12 @@ export class TruDataChangeParser {
254
256
  }
255
257
  }
256
258
  else if (change.changeOperation === 'I') {
257
- var newEntity = this.globalDataContext.entityAccess().add(this.entity, this.contextFilters);
259
+ let entityType = this.types.get(this.tableName);
260
+ var newEntity = this.globalDataContext.entityAccess().add(entityType, this.contextFilters);
258
261
  const pkeyName1 = change.tableName + 'Ref';
259
262
  newEntity[pkeyName1] = change.tableRef;
260
263
  this.applyPropertyChanges(change, newEntity);
261
- newEntity = this.dataContext.entityAccess().add(this.entity, this.contextFilters);
264
+ newEntity = this.dataContext.entityAccess().add(entityType, this.contextFilters);
262
265
  const pkeyName2 = change.tableName + 'Ref';
263
266
  newEntity[pkeyName2] = change.tableRef;
264
267
  this.applyPropertyChanges(change, newEntity);
@@ -273,4 +276,4 @@ export class TruDataChangeParser {
273
276
  this.dataChanged(dataChangeArgs);
274
277
  };
275
278
  }
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtY2hhbmdlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixXQUFXLENBQWlCO0lBQzVCLE1BQU0sQ0FBTTtJQUNaLFNBQVMsQ0FBUztJQUNsQixnQkFBZ0IsQ0FBTTtJQUN0QixjQUFjLENBQU07SUFDcEIsY0FBYyxDQUFLO0lBQ25CLFdBQVcsQ0FBZ0I7SUFDM0IsUUFBUSxDQUFnQjtJQUN4QixLQUFLLENBQXFDO0lBRTFDLGlCQUFpQixDQUF3QjtJQUN6QyxlQUFlLEdBQXlCLEVBQUUsQ0FBQztJQUUzQyxZQUFZLEdBQTJCLElBQUksT0FBTyxFQUFpQixDQUFDO0lBRTVFLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFxQjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFDRSxVQUFlLEVBQ2YsV0FBMkIsRUFDM0IsaUJBQXdDLEVBQ3hDLE1BQTRCLEVBQzVCLFNBQWlCLEVBQ2pCLGdCQUFxQixFQUNyQixjQUFtQixFQUNuQixjQUFrQixFQUNsQixXQUEwQixFQUMxQixRQUF1QixF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O0lBQ25DLENBQUMsQ0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LWVudGl0eS1iYXNlXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2UgfSBmcm9tIFwiLi4vYmFzZS1jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctYmFzZVwiO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFByb3BlcnR5TG9va3VwIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1tb2RlbC1wcm9wZXJ0eS1sb29rdXBcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHRcIjtcclxuaW1wb3J0IHsgVHJ1RGF0YUNoYW5nZSB9IGZyb20gXCIuL3RydS1kYXRhLWNoYW5nZVwiO1xyXG5pbXBvcnQgeyBUcnVNZXJnZURhdGEgfSBmcm9tIFwiLi90cnUtbWVyZ2UtZGF0YVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBUcnVEYXRhQ2hhbmdlUGFyc2VyIHtcclxuICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dDtcclxuICBwcml2YXRlIGVudGl0eTogYW55O1xyXG4gIHByaXZhdGUgdGFibGVOYW1lOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RSZXN1bHRzOiBhbnk7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RRdWVyeTogYW55O1xyXG4gIHByaXZhdGUgY29udGV4dEZpbHRlcnM6IFtdO1xyXG4gIHByaXZhdGUgZXhwYW5kUGF0aHM6IEFycmF5PHN0cmluZz47XHJcbiAgcHJpdmF0ZSBpc0xvYWRlZDogKCkgPT4gYm9vbGVhbjtcclxuICBwcml2YXRlIHR5cGVzOiBNYXA8c3RyaW5nLCBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2U+O1xyXG5cclxuICBwcml2YXRlIGdsb2JhbERhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGw7XHJcbiAgcHJpdmF0ZSB3YWl0aW5nRW50aXRpZXM6IEFycmF5PFRydUVudGl0eUJhc2U+ID0gW107XHJcblxyXG4gIHByaXZhdGUgZGF0YUNoYW5nZWQkOiBTdWJqZWN0PFRydURhdGFDaGFuZ2U+ID0gbmV3IFN1YmplY3Q8VHJ1RGF0YUNoYW5nZT4oKTtcclxuXHJcbiAgb25EYXRhQ2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2VkJDtcclxuICB9XHJcblxyXG4gIGRhdGFDaGFuZ2VkKGNoYW5nZTogVHJ1RGF0YUNoYW5nZSkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZCQubmV4dChjaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb25uZWN0aW9uOiBhbnksXHJcbiAgICBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBnbG9iYWxEYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQgfCBudWxsLFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgZ2V0TGF0ZXN0UmVzdWx0czogYW55LFxyXG4gICAgZ2V0TGF0ZXN0UXVlcnk6IGFueSxcclxuICAgIGNvbnRleHRGaWx0ZXJzOiBbXSxcclxuICAgIGV4cGFuZFBhdGhzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgaXNMb2FkZWQ6ICgpID0+IGJvb2xlYW4sXHJcbiAgICBtb2RlbFByb3BlcnR5TG9va3VwOiBUcnVNb2RlbFByb3BlcnR5TG9va3VwXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gZGF0YUNvbnRleHQ7XHJcbiAgICB0aGlzLmdsb2JhbERhdGFDb250ZXh0ID0gZ2xvYmFsRGF0YUNvbnRleHQ7XHJcbiAgICB0aGlzLmVudGl0eSA9IGVudGl0eTtcclxuICAgIHRoaXMudGFibGVOYW1lID0gdGFibGVOYW1lO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RSZXN1bHRzID0gZ2V0TGF0ZXN0UmVzdWx0cztcclxuICAgIHRoaXMuZ2V0TGF0ZXN0UXVlcnkgPSBnZXRMYXRlc3RRdWVyeTtcclxuICAgIHRoaXMuY29udGV4dEZpbHRlcnMgPSBjb250ZXh0RmlsdGVycztcclxuICAgIHRoaXMuZXhwYW5kUGF0aHMgPSBleHBhbmRQYXRocztcclxuICAgIHRoaXMuaXNMb2FkZWQgPSBpc0xvYWRlZDtcclxuICAgIHRoaXMudHlwZXMgPSBtb2RlbFByb3BlcnR5TG9va3VwLmxvb2t1cDtcclxuXHJcbiAgICBjb25uZWN0aW9uLm9uKFwiY2hhbmdlXCIsIChwYXlsb2FkOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy51cGRhdGUocGF5bG9hZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEVudGl0eUluQ2FjaGUgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICByZXR1cm4gZW50aXR5QWNjZXNzb3Iuc2VhcmNoQnlSZWZDYWNoZU9ubHkodGhpcy5lbnRpdHksIHBhcnNlSW50KGNoYW5nZS50YWJsZVJlZiwgMTApLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEVudGl0eUluR2xvYmFsQ2FjaGUgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpO1xyXG4gICAgcmV0dXJuIGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KHRoaXMuZW50aXR5LCBwYXJzZUludChjaGFuZ2UudGFibGVSZWYsIDEwKSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrSWZEYXRlVGltZSA9IChuZXdWYWx1ZTogYW55LCBjdXJyZW50VmFsdWU6IGFueSwgdHlwZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgaWYgKHR5cGVOYW1lID09PSAnZGF0ZS10aW1lJyB8fCB0eXBlTmFtZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIGlmIChtb21lbnQobmV3VmFsdWUsIFwiWVlZWS1NTS1ERCBISDptbTpzcy5zc3Nzc3NzXCIsIHRydWUpLmlzVmFsaWQoKSlcclxuICAgICAgICByZXR1cm4gbW9tZW50KG1vbWVudC51dGMobmV3VmFsdWUpLnRvRGF0ZSgpKS5mb3JtYXQoJ01NL0REL1lZWVkgaGg6bW0gQScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1ZhbHVlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Byb3BlcnR5QWxyZWFkeUJlZW5Nb2RpZmllZCA9IChwcm9wZXJ0eU5hbWU6IHN0cmluZywgZW50aXR5OiBhbnkpID0+IHtcclxuICAgIHJldHVybiBlbnRpdHkuZW50aXR5QXNwZWN0Lm9yaWdpbmFsVmFsdWVzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5UHJvcGVydHlDaGFuZ2VzID0gKGNoYW5nZTogYW55LCBlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgdmFyIHN0YXRlQmVmb3JlUHJvcGVydHlDaGFuZ2UgPSBlbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlO1xyXG4gICAgdmFyIG9yaWdpbmFsVmFsdWVzID0gZW50aXR5LmVudGl0eUFzcGVjdC5vcmlnaW5hbFZhbHVlcztcclxuXHJcbiAgICBlbnRpdHlbJ0RhdGFfTm90aWZpY2F0aW9uJ10gPSB0cnVlO1xyXG5cclxuICAgIE9iamVjdC5rZXlzKGNoYW5nZS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdmFyIGVudGl0eVR5cGUgPSB0aGlzLnR5cGVzLmdldChjaGFuZ2UudGFibGVOYW1lICsgJy4nICsga2V5KTtcclxuICAgICAgaWYgKCFlbnRpdHlUeXBlKSB7XHJcbiAgICAgICAgZW50aXR5VHlwZSA9IG5ldyBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2UoKTtcclxuICAgICAgICBlbnRpdHlUeXBlLnR5cGVOYW1lID0gJ3RleHQtYm91bmRlZCc7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIHByb3BlcnR5TW9kaWZpZWQgPSB0aGlzLmhhc1Byb3BlcnR5QWxyZWFkeUJlZW5Nb2RpZmllZChrZXksIGVudGl0eSlcclxuICAgICAgaWYgKGtleSA9PT0gJ1VwZGF0ZWQnIHx8IGtleSA9PT0gJ1VwZGF0ZWRSZWYnKSB7XHJcbiAgICAgICAgZW50aXR5W2tleV0gPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWVzLmhhc093blByb3BlcnR5KGtleSkpXHJcbiAgICAgICAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNba2V5XTtcclxuICAgICAgfSBlbHNlIGlmIChlbnRpdHlba2V5XSAhPT0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpKSB7XHJcbiAgICAgICAgaWYgKCFwcm9wZXJ0eU1vZGlmaWVkKSB7XHJcbiAgICAgICAgICBlbnRpdHlba2V5XSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1trZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgICAgICBsZXQgbW9kaWZpZWRCeSA9IGNoYW5nZS5tb2RpZmllZEJ5O1xyXG4gICAgICAgICAgbGV0IGhpZCA9IGNoYW5nZS5wcm9wZXJ0aWVzW2tleSArICdISUQnXTtcclxuICAgICAgICAgIGxldCBtZXJnZURhdGEgPSBuZXcgVHJ1TWVyZ2VEYXRhKHZhbHVlLCBtb2RpZmllZEJ5LCBoaWQpO1xyXG4gICAgICAgICAgZW50aXR5Lk1lcmdlX0RhdGFfU2V0LnNldChrZXksIG1lcmdlRGF0YSk7XHJcbiAgICAgICAgICBlbnRpdHkuZW50aXR5QXNwZWN0LnZhbGlkYXRlUHJvcGVydHkoa2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgKG9yaWdpbmFsVmFsdWVzW2tleV0pICE9PSAndW5kZWZpbmVkJylcclxuICAgICAgICAgIG9yaWdpbmFsVmFsdWVzW2tleV0gPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWVzLmhhc093blByb3BlcnR5KGtleSkpXHJcbiAgICAgICAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNba2V5XTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZW50aXR5Wydyb3d2ZXInXSA9IGNoYW5nZS5yb3d2ZXI7XHJcbiAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNbJ3Jvd3ZlciddO1xyXG5cclxuICAgIGlmIChzdGF0ZUJlZm9yZVByb3BlcnR5Q2hhbmdlLm5hbWUgIT09IFwiTW9kaWZpZWRcIiB8fCAoT2JqZWN0LmtleXMob3JpZ2luYWxWYWx1ZXMpLmxlbmd0aCA9PT0gMCAmJiBvcmlnaW5hbFZhbHVlcy5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSkge1xyXG4gICAgICBpZiAoIWVudGl0eS5lbnRpdHlBc3BlY3QuaXNCZWluZ1NhdmVkKSB7XHJcbiAgICAgICAgZW50aXR5LmVudGl0eUFzcGVjdC5zZXRVbmNoYW5nZWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndhaXRpbmdFbnRpdGllcy5wdXNoKGVudGl0eSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZWxldGUgZW50aXR5WydEYXRhX05vdGlmaWNhdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRXYWl0aW5nRW50aXRpZXNUb1VuY2hhbmdlZCA9ICgpID0+IHtcclxuICAgIHRoaXMud2FpdGluZ0VudGl0aWVzLmZvckVhY2goKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbnRpdHkgJiYgZW50aXR5LmVudGl0eUFzcGVjdClcclxuICAgICAgICBlbnRpdHkuZW50aXR5QXNwZWN0LnNldFVuY2hhbmdlZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVudGl0eUZvdW5kQnlRdWVyeSA9IChjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgdmFyIGVudGl0eUFjY2Vzc29yID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKTtcclxuICAgIHZhciBlbnRpdGllcyA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQXJyYXlDYWNoZU9ubHkodGhpcy5lbnRpdHksIHRoaXMuZ2V0TGF0ZXN0UXVlcnkoKSwgW2NoYW5nZS50YWJsZVJlZl0pO1xyXG5cclxuICAgIGlmIChlbnRpdGllcyAhPT0gbnVsbCAmJiAhZW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpO1xyXG4gICAgICBlbnRpdGllcyA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQXJyYXlDYWNoZU9ubHkodGhpcy5lbnRpdHksIHRoaXMuZ2V0TGF0ZXN0UXVlcnkoKSwgW2NoYW5nZS50YWJsZVJlZl0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbnRpdGllcyA9PT0gbnVsbCA/IDAgOiBlbnRpdGllcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudGl0eUZyb21TZXJ2ZXIgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICB2YXIgZW50aXRpeSA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmV2l0aFF1ZXJ5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIGNoYW5nZS50YWJsZVJlZik7XHJcbiAgICByZXR1cm4gZW50aXRpeTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW50aXR5RnJvbVJlc3VsdHMgPSAocmVzdWx0czogYW55LCBjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIHJlc3VsdHMuZmlsdGVyKChlOiBhbnkpID0+IHsgcmV0dXJuIGUuUmVmID09PSBjaGFuZ2UudGFibGVSZWYgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2F2aW5nID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIC8vaWYgKCEkcm9vdFNjb3BlWydpc1NhdmluZyddKSB7XHJcbiAgICAgICAgLy8gIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgIC8vICByZXNvbHZlKCk7XHJcbiAgICAgICAgLy99XHJcbiAgICAgIH0sIDEwMDApXHJcbiAgICB9KVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlID0gYXN5bmMgKHBheWxvYWQ6IGFueSkgPT4ge1xyXG4gICAgLy9hd2FpdCB0aGlzLmlzU2F2aW5nKCk7XHJcblxyXG4gICAgdmFyIHJlbG9hZFJlc3VsdHMgPSBmYWxzZTtcclxuICAgIHBheWxvYWQuY2hhbmdlcy5mb3JFYWNoKGFzeW5jIChjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgICB2YXIgZm91bmRFbnRpdGllcyA9IFtdO1xyXG4gICAgICB2YXIgbG9jYWxFbnRpdHkgPSB0aGlzLmZpbmRFbnRpdHlJbkNhY2hlKGNoYW5nZSk7XHJcbiAgICAgIHZhciBnbG9iYWxFbnRpdHkgPSB0aGlzLmZpbmRFbnRpdHlJbkdsb2JhbENhY2hlKGNoYW5nZSk7XHJcbiAgICAgIGlmIChsb2NhbEVudGl0eSlcclxuICAgICAgICBmb3VuZEVudGl0aWVzLnB1c2gobG9jYWxFbnRpdHkpO1xyXG4gICAgICBpZiAoZ2xvYmFsRW50aXR5KVxyXG4gICAgICAgIGZvdW5kRW50aXRpZXMucHVzaChnbG9iYWxFbnRpdHkpO1xyXG5cclxuICAgICAgaWYgKGZvdW5kRW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgZm91bmRFbnRpdGllcy5mb3JFYWNoKGFzeW5jIChlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZS50YWJsZU5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ1UnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcblxyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRpdHlBbHJlYWR5SW5SZXN1bHRzID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlBbHJlYWR5SW5SZXN1bHRzLmxlbmd0aCAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eVRvUmVtb3ZlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eVRvUmVtb3ZlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnNwbGljZShyZXN1bHRzLmluZGV4T2YoZW50aXR5VG9SZW1vdmVbMF0pLCAxKTtcclxuICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdEJykge1xyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgdmFyIGVudGl0eVRvRGVsZXRlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgIGlmIChlbnRpdHlUb0RlbGV0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGVudGl0eVRvRGVsZXRlWzBdLmVudGl0eUFzcGVjdC5zZXREZXRhY2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eVRvRGVsZXRlWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knKSB7XHJcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICB2YXIgZW50aXR5QWxyZWFkeUluUmVzdWx0cyA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiAhZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWxvY2FsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcGtleU5hbWUgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWVdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChuZXdFbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudGl0eSA9PT0gbG9jYWxFbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpICYmIGVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eVRvRGVsZXRlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eVRvRGVsZXRlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnNwbGljZShyZXN1bHRzLmluZGV4T2YoZW50aXR5QWxyZWFkeUluUmVzdWx0c1swXSksIDEpO1xyXG4gICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFnbG9iYWxFbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGtleU5hbWUgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiAhPT0gJ0QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdVJyAmJiBjaGFuZ2UudGFibGVOYW1lID09PSB0aGlzLnRhYmxlTmFtZSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0RW50aXR5RnJvbVNlcnZlcihjaGFuZ2UpLnN1YnNjcmliZSgoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHkpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICByZXN1bHRzLnB1c2goZW50aXR5KTtcclxuICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScgJiYgY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUxID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTFdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkyID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMiA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXkyO1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMl0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKG5ld0VudGl0eSk7XHJcbiAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdJJykge1xyXG4gICAgICAgICAgdmFyIG5ld0VudGl0eSA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICBjb25zdCBwa2V5TmFtZTEgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMV0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICB0eXBlIE9iamVjdEtleTIgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUyID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTI7XHJcbiAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWUyXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZXhwYW5kUGF0aHMgJiYgdGhpcy5leHBhbmRQYXRocy5sZW5ndGggJiYgdGhpcy5leHBhbmRQYXRocy5pbmNsdWRlcygnbycgKyBjaGFuZ2UudGFibGVOYW1lKSlcclxuICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBkYXRhQ2hhbmdlQXJncyA9IG5ldyBUcnVEYXRhQ2hhbmdlKCk7XHJcbiAgICBkYXRhQ2hhbmdlQXJncy5kYXRhQ2hhbmdlcyA9IHBheWxvYWQuY2hhbmdlcztcclxuICAgIGRhdGFDaGFuZ2VBcmdzLnJlbG9hZCA9IHJlbG9hZFJlc3VsdHM7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2VkKGRhdGFDaGFuZ2VBcmdzKTtcclxuICB9XHJcbn1cclxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtY2hhbmdlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBSWpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixXQUFXLENBQWlCO0lBQzVCLE1BQU0sQ0FBTTtJQUNaLFNBQVMsQ0FBUztJQUNsQixnQkFBZ0IsQ0FBTTtJQUN0QixjQUFjLENBQU07SUFDcEIsY0FBYyxDQUFLO0lBQ25CLFdBQVcsQ0FBZ0I7SUFDM0IsUUFBUSxDQUFnQjtJQUN4QixLQUFLLENBQW9DO0lBQ3pDLGFBQWEsQ0FBcUM7SUFFbEQsaUJBQWlCLENBQXdCO0lBQ3pDLGVBQWUsR0FBeUIsRUFBRSxDQUFDO0lBRTNDLFlBQVksR0FBMkIsSUFBSSxPQUFPLEVBQWlCLENBQUM7SUFFNUUsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXFCO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUNFLFVBQWUsRUFDZixXQUEyQixFQUMzQixpQkFBd0MsRUFDeEMsTUFBNEIsRUFDNUIsU0FBaUIsRUFDakIsZ0JBQXFCLEVBQ3JCLGNBQW1CLEVBQ25CLGNBQWtCLEVBQ2xCLFdB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LEVBQUUsQ0FBQztRQUN6QyxjQUFjLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDN0MsY0FBYyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LWVudGl0eS1iYXNlXCI7XHJcbmltcG9ydCB7IFRydVByb3BlcnR5Q29uZmlnQmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1iYXNlXCI7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHRcIjtcclxuaW1wb3J0IHsgVHJ1TW9kZWxQcm9wZXJ0eUxvb2t1cCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cnUtbW9kZWwtcHJvcGVydHktbG9va3VwXCI7XHJcbmltcG9ydCB7IFRydU1vZGVsVHlwZUxvb2t1cCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXBcIjtcclxuaW1wb3J0IHsgVHJ1RGF0YUNoYW5nZSB9IGZyb20gXCIuL3RydS1kYXRhLWNoYW5nZVwiO1xyXG5pbXBvcnQgeyBUcnVNZXJnZURhdGEgfSBmcm9tIFwiLi90cnUtbWVyZ2UtZGF0YVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBUcnVEYXRhQ2hhbmdlUGFyc2VyIHtcclxuICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dDtcclxuICBwcml2YXRlIGVudGl0eTogYW55O1xyXG4gIHByaXZhdGUgdGFibGVOYW1lOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RSZXN1bHRzOiBhbnk7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RRdWVyeTogYW55O1xyXG4gIHByaXZhdGUgY29udGV4dEZpbHRlcnM6IFtdO1xyXG4gIHByaXZhdGUgZXhwYW5kUGF0aHM6IEFycmF5PHN0cmluZz47XHJcbiAgcHJpdmF0ZSBpc0xvYWRlZDogKCkgPT4gYm9vbGVhbjtcclxuICBwcml2YXRlIHR5cGVzOiBNYXA8c3RyaW5nLCB0eXBlb2YgVHJ1RW50aXR5QmFzZT47XHJcbiAgcHJpdmF0ZSBwcm9wZXJ0eVR5cGVzOiBNYXA8c3RyaW5nLCBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2U+O1xyXG5cclxuICBwcml2YXRlIGdsb2JhbERhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGw7XHJcbiAgcHJpdmF0ZSB3YWl0aW5nRW50aXRpZXM6IEFycmF5PFRydUVudGl0eUJhc2U+ID0gW107XHJcblxyXG4gIHByaXZhdGUgZGF0YUNoYW5nZWQkOiBTdWJqZWN0PFRydURhdGFDaGFuZ2U+ID0gbmV3IFN1YmplY3Q8VHJ1RGF0YUNoYW5nZT4oKTtcclxuXHJcbiAgb25EYXRhQ2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2VkJDtcclxuICB9XHJcblxyXG4gIGRhdGFDaGFuZ2VkKGNoYW5nZTogVHJ1RGF0YUNoYW5nZSkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZCQubmV4dChjaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb25uZWN0aW9uOiBhbnksXHJcbiAgICBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBnbG9iYWxEYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQgfCBudWxsLFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgZ2V0TGF0ZXN0UmVzdWx0czogYW55LFxyXG4gICAgZ2V0TGF0ZXN0UXVlcnk6IGFueSxcclxuICAgIGNvbnRleHRGaWx0ZXJzOiBbXSxcclxuICAgIGV4cGFuZFBhdGhzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgaXNMb2FkZWQ6ICgpID0+IGJvb2xlYW4sXHJcbiAgICBtb2RlbFR5cGVMb29rdXA6IFRydU1vZGVsVHlwZUxvb2t1cCxcclxuICAgIG1vZGVsUHJvcGVydHlMb29rdXA6IFRydU1vZGVsUHJvcGVydHlMb29rdXBcclxuICApIHtcclxuICAgIHRoaXMuZGF0YUNvbnRleHQgPSBkYXRhQ29udGV4dDtcclxuICAgIHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQgPSBnbG9iYWxEYXRhQ29udGV4dDtcclxuICAgIHRoaXMuZW50aXR5ID0gZW50aXR5O1xyXG4gICAgdGhpcy50YWJsZU5hbWUgPSB0YWJsZU5hbWU7XHJcbiAgICB0aGlzLmdldExhdGVzdFJlc3VsdHMgPSBnZXRMYXRlc3RSZXN1bHRzO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RRdWVyeSA9IGdldExhdGVzdFF1ZXJ5O1xyXG4gICAgdGhpcy5jb250ZXh0RmlsdGVycyA9IGNvbnRleHRGaWx0ZXJzO1xyXG4gICAgdGhpcy5leHBhbmRQYXRocyA9IGV4cGFuZFBhdGhzO1xyXG4gICAgdGhpcy5pc0xvYWRlZCA9IGlzTG9hZGVkO1xyXG4gICAgdGhpcy50eXBlcyA9IG1vZGVsVHlwZUxvb2t1cC5sb29rdXA7IFxyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGVzID0gbW9kZWxQcm9wZXJ0eUxvb2t1cC5sb29rdXA7XHJcblxyXG4gICAgY29ubmVjdGlvbi5vbihcImNoYW5nZVwiLCAocGF5bG9hZDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlKHBheWxvYWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRFbnRpdHlJbkNhY2hlID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpO1xyXG4gICAgcmV0dXJuIGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KHRoaXMuZW50aXR5LCBwYXJzZUludChjaGFuZ2UudGFibGVSZWYsIDEwKSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRFbnRpdHlJbkdsb2JhbENhY2hlID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKTtcclxuICAgIHJldHVybiBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkNhY2hlT25seSh0aGlzLmVudGl0eSwgcGFyc2VJbnQoY2hhbmdlLnRhYmxlUmVmLCAxMCksIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lmRGF0ZVRpbWUgPSAobmV3VmFsdWU6IGFueSwgY3VycmVudFZhbHVlOiBhbnksIHR5cGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcclxuICAgIGlmICh0eXBlTmFtZSA9PT0gJ2RhdGUtdGltZScgfHwgdHlwZU5hbWUgPT09ICdkYXRlJykge1xyXG4gICAgICBpZiAobW9tZW50KG5ld1ZhbHVlLCBcIllZWVktTU0tREQgSEg6bW06c3Muc3Nzc3Nzc1wiLCB0cnVlKS5pc1ZhbGlkKCkpXHJcbiAgICAgICAgcmV0dXJuIG1vbWVudChtb21lbnQudXRjKG5ld1ZhbHVlKS50b0RhdGUoKSkuZm9ybWF0KCdNTS9ERC9ZWVlZIGhoOm1tIEEnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdWYWx1ZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNQcm9wZXJ0eUFscmVhZHlCZWVuTW9kaWZpZWQgPSAocHJvcGVydHlOYW1lOiBzdHJpbmcsIGVudGl0eTogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gZW50aXR5LmVudGl0eUFzcGVjdC5vcmlnaW5hbFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVByb3BlcnR5Q2hhbmdlcyA9IChjaGFuZ2U6IGFueSwgZW50aXR5OiBhbnkpID0+IHtcclxuICAgIHZhciBzdGF0ZUJlZm9yZVByb3BlcnR5Q2hhbmdlID0gZW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICAgIHZhciBvcmlnaW5hbFZhbHVlcyA9IGVudGl0eS5lbnRpdHlBc3BlY3Qub3JpZ2luYWxWYWx1ZXM7XHJcblxyXG4gICAgZW50aXR5WydEYXRhX05vdGlmaWNhdGlvbiddID0gdHJ1ZTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhjaGFuZ2UucHJvcGVydGllcykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHZhciBlbnRpdHlUeXBlID0gdGhpcy5wcm9wZXJ0eVR5cGVzLmdldChjaGFuZ2UudGFibGVOYW1lICsgJy4nICsga2V5KTtcclxuICAgICAgaWYgKCFlbnRpdHlUeXBlKSB7XHJcbiAgICAgICAgZW50aXR5VHlwZSA9IG5ldyBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2UoKTtcclxuICAgICAgICBlbnRpdHlUeXBlLnR5cGVOYW1lID0gJ3RleHQtYm91bmRlZCc7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIHByb3BlcnR5TW9kaWZpZWQgPSB0aGlzLmhhc1Byb3BlcnR5QWxyZWFkeUJlZW5Nb2RpZmllZChrZXksIGVudGl0eSlcclxuICAgICAgaWYgKGtleSA9PT0gJ1VwZGF0ZWQnIHx8IGtleSA9PT0gJ1VwZGF0ZWRSZWYnKSB7XHJcbiAgICAgICAgZW50aXR5W2tleV0gPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWVzLmhhc093blByb3BlcnR5KGtleSkpXHJcbiAgICAgICAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNba2V5XTtcclxuICAgICAgfSBlbHNlIGlmIChlbnRpdHlba2V5XSAhPT0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpKSB7XHJcbiAgICAgICAgaWYgKCFwcm9wZXJ0eU1vZGlmaWVkKSB7XHJcbiAgICAgICAgICBlbnRpdHlba2V5XSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1trZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgICAgICBsZXQgbW9kaWZpZWRCeSA9IGNoYW5nZS5tb2RpZmllZEJ5O1xyXG4gICAgICAgICAgbGV0IGhpZCA9IGNoYW5nZS5wcm9wZXJ0aWVzW2tleSArICdISUQnXTtcclxuICAgICAgICAgIGxldCBtZXJnZURhdGEgPSBuZXcgVHJ1TWVyZ2VEYXRhKHZhbHVlLCBtb2RpZmllZEJ5LCBoaWQpO1xyXG4gICAgICAgICAgZW50aXR5Lk1lcmdlX0RhdGFfU2V0LnNldChrZXksIG1lcmdlRGF0YSk7XHJcbiAgICAgICAgICBlbnRpdHkuZW50aXR5QXNwZWN0LnZhbGlkYXRlUHJvcGVydHkoa2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgKG9yaWdpbmFsVmFsdWVzW2tleV0pICE9PSAndW5kZWZpbmVkJylcclxuICAgICAgICAgIG9yaWdpbmFsVmFsdWVzW2tleV0gPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWVzLmhhc093blByb3BlcnR5KGtleSkpXHJcbiAgICAgICAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNba2V5XTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZW50aXR5Wydyb3d2ZXInXSA9IGNoYW5nZS5yb3d2ZXI7XHJcbiAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNbJ3Jvd3ZlciddO1xyXG5cclxuICAgIGlmIChzdGF0ZUJlZm9yZVByb3BlcnR5Q2hhbmdlLm5hbWUgIT09IFwiTW9kaWZpZWRcIiB8fCAoT2JqZWN0LmtleXMob3JpZ2luYWxWYWx1ZXMpLmxlbmd0aCA9PT0gMCAmJiBvcmlnaW5hbFZhbHVlcy5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSkge1xyXG4gICAgICBpZiAoIWVudGl0eS5lbnRpdHlBc3BlY3QuaXNCZWluZ1NhdmVkKSB7XHJcbiAgICAgICAgZW50aXR5LmVudGl0eUFzcGVjdC5zZXRVbmNoYW5nZWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndhaXRpbmdFbnRpdGllcy5wdXNoKGVudGl0eSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZWxldGUgZW50aXR5WydEYXRhX05vdGlmaWNhdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRXYWl0aW5nRW50aXRpZXNUb1VuY2hhbmdlZCA9ICgpID0+IHtcclxuICAgIHRoaXMud2FpdGluZ0VudGl0aWVzLmZvckVhY2goKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbnRpdHkgJiYgZW50aXR5LmVudGl0eUFzcGVjdClcclxuICAgICAgICBlbnRpdHkuZW50aXR5QXNwZWN0LnNldFVuY2hhbmdlZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVudGl0eUZvdW5kQnlRdWVyeSA9IChjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgdmFyIGVudGl0eUFjY2Vzc29yID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKTtcclxuICAgIHZhciBlbnRpdGllcyA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQXJyYXlDYWNoZU9ubHkodGhpcy5lbnRpdHksIHRoaXMuZ2V0TGF0ZXN0UXVlcnkoKSwgW2NoYW5nZS50YWJsZVJlZl0pO1xyXG5cclxuICAgIGlmIChlbnRpdGllcyAhPT0gbnVsbCAmJiAhZW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpO1xyXG4gICAgICBlbnRpdGllcyA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQXJyYXlDYWNoZU9ubHkodGhpcy5lbnRpdHksIHRoaXMuZ2V0TGF0ZXN0UXVlcnkoKSwgW2NoYW5nZS50YWJsZVJlZl0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbnRpdGllcyA9PT0gbnVsbCA/IDAgOiBlbnRpdGllcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudGl0eUZyb21TZXJ2ZXIgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICB2YXIgZW50aXRpeSA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmV2l0aFF1ZXJ5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIGNoYW5nZS50YWJsZVJlZik7XHJcbiAgICByZXR1cm4gZW50aXRpeTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW50aXR5RnJvbVJlc3VsdHMgPSAocmVzdWx0czogYW55LCBjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIHJlc3VsdHMuZmlsdGVyKChlOiBhbnkpID0+IHsgcmV0dXJuIGUuUmVmID09PSBjaGFuZ2UudGFibGVSZWYgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2F2aW5nID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIC8vaWYgKCEkcm9vdFNjb3BlWydpc1NhdmluZyddKSB7XHJcbiAgICAgICAgLy8gIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgIC8vICByZXNvbHZlKCk7XHJcbiAgICAgICAgLy99XHJcbiAgICAgIH0sIDEwMDApXHJcbiAgICB9KVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlID0gYXN5bmMgKHBheWxvYWQ6IGFueSkgPT4ge1xyXG4gICAgLy9hd2FpdCB0aGlzLmlzU2F2aW5nKCk7XHJcblxyXG4gICAgdmFyIHJlbG9hZFJlc3VsdHMgPSBmYWxzZTtcclxuICAgIHBheWxvYWQuY2hhbmdlcy5mb3JFYWNoKGFzeW5jIChjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgICB2YXIgZm91bmRFbnRpdGllcyA9IFtdO1xyXG4gICAgICB2YXIgbG9jYWxFbnRpdHkgPSB0aGlzLmZpbmRFbnRpdHlJbkNhY2hlKGNoYW5nZSk7XHJcbiAgICAgIHZhciBnbG9iYWxFbnRpdHkgPSB0aGlzLmZpbmRFbnRpdHlJbkdsb2JhbENhY2hlKGNoYW5nZSk7XHJcbiAgICAgIGlmIChsb2NhbEVudGl0eSlcclxuICAgICAgICBmb3VuZEVudGl0aWVzLnB1c2gobG9jYWxFbnRpdHkpO1xyXG4gICAgICBpZiAoZ2xvYmFsRW50aXR5KVxyXG4gICAgICAgIGZvdW5kRW50aXRpZXMucHVzaChnbG9iYWxFbnRpdHkpO1xyXG5cclxuICAgICAgaWYgKGZvdW5kRW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgZm91bmRFbnRpdGllcy5mb3JFYWNoKGFzeW5jIChlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZS50YWJsZU5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ1UnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcblxyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRpdHlBbHJlYWR5SW5SZXN1bHRzID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlbnRpdHlBbHJlYWR5SW5SZXN1bHRzLmxlbmd0aCAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eVRvUmVtb3ZlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eVRvUmVtb3ZlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnNwbGljZShyZXN1bHRzLmluZGV4T2YoZW50aXR5VG9SZW1vdmVbMF0pLCAxKTtcclxuICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdEJykge1xyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgdmFyIGVudGl0eVRvRGVsZXRlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgIGlmIChlbnRpdHlUb0RlbGV0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGVudGl0eVRvRGVsZXRlWzBdLmVudGl0eUFzcGVjdC5zZXREZXRhY2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eVRvRGVsZXRlWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knKSB7XHJcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICB2YXIgZW50aXR5QWxyZWFkeUluUmVzdWx0cyA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiAhZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWxvY2FsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcGtleU5hbWUgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWVdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChuZXdFbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudGl0eSA9PT0gbG9jYWxFbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpICYmIGVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eVRvRGVsZXRlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eVRvRGVsZXRlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnNwbGljZShyZXN1bHRzLmluZGV4T2YoZW50aXR5QWxyZWFkeUluUmVzdWx0c1swXSksIDEpO1xyXG4gICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFnbG9iYWxFbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGtleU5hbWUgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiAhPT0gJ0QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdVJyAmJiBjaGFuZ2UudGFibGVOYW1lID09PSB0aGlzLnRhYmxlTmFtZSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0RW50aXR5RnJvbVNlcnZlcihjaGFuZ2UpLnN1YnNjcmliZSgoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHkpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICByZXN1bHRzLnB1c2goZW50aXR5KTtcclxuICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScgJiYgY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUxID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTFdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkyID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMiA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXkyO1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMl0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKG5ld0VudGl0eSk7XHJcbiAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knKSB7XHJcbiAgICAgICAgICBsZXQgZW50aXR5VHlwZSA9IHRoaXMudHlwZXMuZ2V0KHRoaXMudGFibGVOYW1lKSBhcyB0eXBlb2YgVHJ1RW50aXR5QmFzZTtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQoZW50aXR5VHlwZSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICBjb25zdCBwa2V5TmFtZTEgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMV0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZChlbnRpdHlUeXBlLCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgIHR5cGUgT2JqZWN0S2V5MiA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICBjb25zdCBwa2V5TmFtZTIgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5MjtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTJdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5leHBhbmRQYXRocyAmJiB0aGlzLmV4cGFuZFBhdGhzLmxlbmd0aCAmJiB0aGlzLmV4cGFuZFBhdGhzLmluY2x1ZGVzKCdvJyArIGNoYW5nZS50YWJsZU5hbWUpKVxyXG4gICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGRhdGFDaGFuZ2VBcmdzID0gbmV3IFRydURhdGFDaGFuZ2UoKTtcclxuICAgIGRhdGFDaGFuZ2VBcmdzLmRhdGFDaGFuZ2VzID0gcGF5bG9hZC5jaGFuZ2VzO1xyXG4gICAgZGF0YUNoYW5nZUFyZ3MucmVsb2FkID0gcmVsb2FkUmVzdWx0cztcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQoZGF0YUNoYW5nZUFyZ3MpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -4,15 +4,18 @@ import { TruDataChangeParser } from '../classes/tru-data-change-parser';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./tru-data-context";
6
6
  import * as i2 from "./tru-app-environment";
7
- import * as i3 from "./tru-model-property-lookup";
7
+ import * as i3 from "./tru-model-type-lookup";
8
+ import * as i4 from "./tru-model-property-lookup";
8
9
  export class TruConnectionHub {
9
10
  dataContext;
10
11
  appEnvironment;
12
+ modelTypeLookup;
11
13
  modelPropertyLookup;
12
14
  connection;
13
- constructor(dataContext, appEnvironment, modelPropertyLookup) {
15
+ constructor(dataContext, appEnvironment, modelTypeLookup, modelPropertyLookup) {
14
16
  this.dataContext = dataContext;
15
17
  this.appEnvironment = appEnvironment;
18
+ this.modelTypeLookup = modelTypeLookup;
16
19
  this.modelPropertyLookup = modelPropertyLookup;
17
20
  this.connection = new signalR.HubConnectionBuilder()
18
21
  .withUrl(`${this.appEnvironment.appUri}/notificationhub`, {
@@ -38,9 +41,9 @@ export class TruConnectionHub {
38
41
  }
39
42
  };
40
43
  subscribe = (dataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded) => {
41
- return new TruDataChangeParser(this.connection, dataContext, this.appEnvironment.globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelPropertyLookup).onDataChanged();
44
+ return new TruDataChangeParser(this.connection, dataContext, this.appEnvironment.globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelTypeLookup, this.modelPropertyLookup).onDataChanged();
42
45
  };
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, deps: [{ token: i1.TruDataContext }, { token: i2.TruAppEnvironment }, { token: i3.TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, deps: [{ token: i1.TruDataContext }, { token: i2.TruAppEnvironment }, { token: i3.TruModelTypeLookup }, { token: i4.TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
44
47
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, providedIn: 'root' });
45
48
  }
46
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, decorators: [{
@@ -48,5 +51,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
48
51
  args: [{
49
52
  providedIn: 'root',
50
53
  }]
51
- }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruAppEnvironment }, { type: i3.TruModelPropertyLookup }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbm5lY3Rpb24taHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtY29ubmVjdGlvbi1odWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBSTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQVF4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBSWpCO0lBQ0E7SUFDQTtJQUxGLFVBQVUsQ0FBTTtJQUV4QixZQUNVLFdBQTJCLEVBQzNCLGNBQWlDLEVBQ2pDLG1CQUEyQztRQUYzQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTthQUNqRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0JBQWtCLEVBQUU7WUFDeEQsZUFBZSxFQUFFLElBQUk7WUFDckIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO1NBQ2hELENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLEdBQUcsR0FBRyxFQUFFO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJO1lBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztxQkFDdEMsSUFBSSxDQUFDLENBQUMsWUFBb0IsRUFBRSxFQUFFO29CQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRSxDQUFDLENBQUMsQ0FBQTtZQUNOLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDLENBQUE7SUFFRCxTQUFTLEdBQUcsQ0FDVixXQUEyQixFQUMzQixNQUE0QixFQUM1QixTQUFpQixFQUNqQixnQkFBMkIsRUFDM0IsY0FBeUIsRUFDekIsY0FBa0IsRUFDbEIsV0FBMEIsRUFDMUIsUUFBdUIsRUFBMEIsRUFBRTtRQUNuRCxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxVQUFVLEVBQ2YsV0FBVyxFQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQ3JDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxDQUFBO3VHQXBEVSxnQkFBZ0I7MkdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHNpZ25hbFIgZnJvbSBcIkBtaWNyb3NvZnQvc2lnbmFsclwiXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ2hhbmdlIH0gZnJvbSAnLi4vY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ2hhbmdlUGFyc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4vdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydU1vZGVsUHJvcGVydHlMb29rdXAgfSBmcm9tICcuL3RydS1tb2RlbC1wcm9wZXJ0eS1sb29rdXAnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUNvbm5lY3Rpb25IdWIge1xyXG4gIHByaXZhdGUgY29ubmVjdGlvbjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIG1vZGVsUHJvcGVydHlMb29rdXA6IFRydU1vZGVsUHJvcGVydHlMb29rdXApIHtcclxuICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgLndpdGhVcmwoYCR7dGhpcy5hcHBFbnZpcm9ubWVudC5hcHBVcml9L25vdGlmaWNhdGlvbmh1YmAsIHtcclxuICAgICAgICBza2lwTmVnb3RpYXRpb246IHRydWUsXHJcbiAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHMsXHJcbiAgICAgIH0pLndpdGhBdXRvbWF0aWNSZWNvbm5lY3QoKS5idWlsZCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oXCJlcnJvclwiLCAodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhKU09OLnBhcnNlKHZhbHVlKSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV2ViU29ja2V0LCAnT1BFTicsIHsgdmFsdWU6IDEsIH0pO1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24uc3RhcnQoKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uaW52b2tlKCdnZXRDb25uZWN0aW9uSWQnKVxyXG4gICAgICAgICAgLnRoZW4oKGNvbm5lY3Rpb25JZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTaWduYWxSIGNvbm5lY3Rpb24gc3VjY2VzcyEgY29ubmVjdGlvbklkOiAke2Nvbm5lY3Rpb25JZH1gKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coYFNpZ25hbFIgY29ubmVjdGlvbiBlcnJvcjogJHtlcnJvcn1gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1YnNjcmliZSA9IChcclxuICAgIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIGdldExhdGVzdFJlc3VsdHM6ICgpID0+IGFueSxcclxuICAgIGdldExhdGVzdFF1ZXJ5OiAoKSA9PiBhbnksXHJcbiAgICBjb250ZXh0RmlsdGVyczogW10sXHJcbiAgICBleHBhbmRQYXRoczogQXJyYXk8c3RyaW5nPixcclxuICAgIGlzTG9hZGVkOiAoKSA9PiBib29sZWFuKTogU3ViamVjdDxUcnVEYXRhQ2hhbmdlPiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IFRydURhdGFDaGFuZ2VQYXJzZXIoXHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbixcclxuICAgICAgZGF0YUNvbnRleHQsXHJcbiAgICAgIHRoaXMuYXBwRW52aXJvbm1lbnQuZ2xvYmFsRGF0YUNvbnRleHQsXHJcbiAgICAgIGVudGl0eSwgdGFibGVOYW1lLFxyXG4gICAgICBnZXRMYXRlc3RSZXN1bHRzLFxyXG4gICAgICBnZXRMYXRlc3RRdWVyeSxcclxuICAgICAgY29udGV4dEZpbHRlcnMsXHJcbiAgICAgIGV4cGFuZFBhdGhzLFxyXG4gICAgICBpc0xvYWRlZCxcclxuICAgICAgdGhpcy5tb2RlbFByb3BlcnR5TG9va3VwKS5vbkRhdGFDaGFuZ2VkKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
54
+ }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruAppEnvironment }, { type: i3.TruModelTypeLookup }, { type: i4.TruModelPropertyLookup }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbm5lY3Rpb24taHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtY29ubmVjdGlvbi1odWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBSTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFTeEUsTUFBTSxPQUFPLGdCQUFnQjtJQUlqQjtJQUNBO0lBQ0E7SUFDQTtJQU5GLFVBQVUsQ0FBTTtJQUV4QixZQUNVLFdBQTJCLEVBQzNCLGNBQWlDLEVBQ2pDLGVBQW1DLEVBQ25DLG1CQUEyQztRQUgzQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUU7YUFDakQsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLGtCQUFrQixFQUFFO1lBQ3hELGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVTtTQUNoRCxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSTtZQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7cUJBQ3RDLElBQUksQ0FBQyxDQUFDLFlBQW9CLEVBQUUsRUFBRTtvQkFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDM0UsQ0FBQyxDQUFDLENBQUE7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsU0FBUyxHQUFHLENBQ1YsV0FBMkIsRUFDM0IsTUFBNEIsRUFDNUIsU0FBaUIsRUFDakIsZ0JBQTJCLEVBQzNCLGNBQXlCLEVBQ3pCLGNBQWtCLEVBQ2xCLFdBQTBCLEVBQzFCLFFBQXVCLEVBQTBCLEVBQUU7UUFDbkQsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsVUFBVSxFQUNmLFdBQVcsRUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUNqQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlDLENBQUMsQ0FBQTt1R0F0RFUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBzaWduYWxSIGZyb20gXCJAbWljcm9zb2Z0L3NpZ25hbHJcIlxyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRydUVudGl0eUJhc2UgfSBmcm9tICcuLi9iYXNlLWNsYXNzZXMvdHJ1LWVudGl0eS1iYXNlJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNoYW5nZSB9IGZyb20gJy4uL2NsYXNzZXMvdHJ1LWRhdGEtY2hhbmdlJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNoYW5nZVBhcnNlciB9IGZyb20gJy4uL2NsYXNzZXMvdHJ1LWRhdGEtY2hhbmdlLXBhcnNlcic7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSAnLi90cnUtYXBwLWVudmlyb25tZW50JztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFByb3BlcnR5TG9va3VwIH0gZnJvbSAnLi90cnUtbW9kZWwtcHJvcGVydHktbG9va3VwJztcclxuaW1wb3J0IHsgVHJ1TW9kZWxUeXBlTG9va3VwIH0gZnJvbSAnLi90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUNvbm5lY3Rpb25IdWIge1xyXG4gIHByaXZhdGUgY29ubmVjdGlvbjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIG1vZGVsVHlwZUxvb2t1cDogVHJ1TW9kZWxUeXBlTG9va3VwLFxyXG4gICAgcHJpdmF0ZSBtb2RlbFByb3BlcnR5TG9va3VwOiBUcnVNb2RlbFByb3BlcnR5TG9va3VwKSB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBuZXcgc2lnbmFsUi5IdWJDb25uZWN0aW9uQnVpbGRlcigpXHJcbiAgICAgIC53aXRoVXJsKGAke3RoaXMuYXBwRW52aXJvbm1lbnQuYXBwVXJpfS9ub3RpZmljYXRpb25odWJgLCB7XHJcbiAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgIHRyYW5zcG9ydDogc2lnbmFsUi5IdHRwVHJhbnNwb3J0VHlwZS5XZWJTb2NrZXRzLFxyXG4gICAgICB9KS53aXRoQXV0b21hdGljUmVjb25uZWN0KCkuYnVpbGQoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uLm9uKFwiZXJyb3JcIiwgKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coSlNPTi5wYXJzZSh2YWx1ZSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFdlYlNvY2tldCwgJ09QRU4nLCB7IHZhbHVlOiAxLCB9KTtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uLnN0YXJ0KCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmludm9rZSgnZ2V0Q29ubmVjdGlvbklkJylcclxuICAgICAgICAgIC50aGVuKChjb25uZWN0aW9uSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgU2lnbmFsUiBjb25uZWN0aW9uIHN1Y2Nlc3MhIGNvbm5lY3Rpb25JZDogJHtjb25uZWN0aW9uSWR9YCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGBTaWduYWxSIGNvbm5lY3Rpb24gZXJyb3I6ICR7ZXJyb3J9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJzY3JpYmUgPSAoXHJcbiAgICBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICBnZXRMYXRlc3RSZXN1bHRzOiAoKSA9PiBhbnksXHJcbiAgICBnZXRMYXRlc3RRdWVyeTogKCkgPT4gYW55LFxyXG4gICAgY29udGV4dEZpbHRlcnM6IFtdLFxyXG4gICAgZXhwYW5kUGF0aHM6IEFycmF5PHN0cmluZz4sXHJcbiAgICBpc0xvYWRlZDogKCkgPT4gYm9vbGVhbik6IFN1YmplY3Q8VHJ1RGF0YUNoYW5nZT4gPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBUcnVEYXRhQ2hhbmdlUGFyc2VyKFxyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24sXHJcbiAgICAgIGRhdGFDb250ZXh0LFxyXG4gICAgICB0aGlzLmFwcEVudmlyb25tZW50Lmdsb2JhbERhdGFDb250ZXh0LFxyXG4gICAgICBlbnRpdHksIHRhYmxlTmFtZSxcclxuICAgICAgZ2V0TGF0ZXN0UmVzdWx0cyxcclxuICAgICAgZ2V0TGF0ZXN0UXVlcnksXHJcbiAgICAgIGNvbnRleHRGaWx0ZXJzLFxyXG4gICAgICBleHBhbmRQYXRocyxcclxuICAgICAgaXNMb2FkZWQsXHJcbiAgICAgIHRoaXMubW9kZWxUeXBlTG9va3VwLFxyXG4gICAgICB0aGlzLm1vZGVsUHJvcGVydHlMb29rdXApLm9uRGF0YUNoYW5nZWQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class TruModelTypeLookup {
4
+ _lookup = new Map();
5
+ constructor() { }
6
+ get lookup() {
7
+ return this._lookup;
8
+ }
9
+ set lookup(value) {
10
+ this._lookup = value;
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruModelTypeLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruModelTypeLookup, providedIn: 'root' });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruModelTypeLookup, decorators: [{
16
+ type: Injectable,
17
+ args: [{
18
+ providedIn: 'root',
19
+ }]
20
+ }], ctorParameters: () => [] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW1vZGVsLXR5cGUtbG9va3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUNyQixPQUFPLEdBQXVDLElBQUksR0FBRyxFQUFnQyxDQUFDO0lBRTlGLGdCQUFnQixDQUFDO0lBRWpCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsS0FBd0M7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQzt1R0FYVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRydUVudGl0eUJhc2UgfSBmcm9tIFwiLi4vYmFzZS1jbGFzc2VzL3RydS1lbnRpdHktYmFzZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydU1vZGVsVHlwZUxvb2t1cCB7XHJcbiAgcHJpdmF0ZSBfbG9va3VwOiBNYXA8c3RyaW5nLCB0eXBlb2YgIFRydUVudGl0eUJhc2U+ID0gbmV3IE1hcDxzdHJpbmcsIHR5cGVvZiBUcnVFbnRpdHlCYXNlPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBnZXQgbG9va3VwKCk6IE1hcDxzdHJpbmcsIHR5cGVvZiBUcnVFbnRpdHlCYXNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9va3VwO1xyXG4gIH1cclxuXHJcbiAgc2V0IGxvb2t1cCh2YWx1ZTogTWFwPHN0cmluZywgdHlwZW9mIFRydUVudGl0eUJhc2U+KSB7XHJcbiAgICB0aGlzLl9sb29rdXAgPSB2YWx1ZTtcclxuICB9XHJcbn1cclxuIl19
@@ -137,6 +137,7 @@ export * from './lib/services/tru-context-filters';
137
137
  export * from './lib/services/tru-data-context';
138
138
  export * from './lib/services/tru-entity-accessor';
139
139
  export * from './lib/services/tru-model-property-lookup';
140
+ export * from './lib/services/tru-model-type-lookup';
140
141
  export * from './lib/services/tru-predicate-map';
141
142
  export * from './lib/services/tru-search-result-view-manager';
142
143
  export * from './lib/services/tru-sort';
@@ -151,4 +152,4 @@ export * from './lib/services/tru-util';
151
152
  export * from './lib/assets/tru-icon-module';
152
153
  export * from './lib/assets/tru-search-icon-module';
153
154
  export * from './lib/tru-common-module';
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMENBQTBDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMscURBQXFELENBQUM7QUFFcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxnRUFBZ0UsQ0FBQztBQUUvRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbUVBQW1FLENBQUM7QUFFbEY7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2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Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7R0FFRztBQUNILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0cnUtY29tbW9uLWxpYlxuICovXG5cbi8qXG4gKiBCYXNlIENsYXNzZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1jb21wb25lbnQtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1jb250cm9sLWNvbXBvbmVudC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWVkaXQtY29udHJvbC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1jb250cm9sLWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1wYXJlbnQtY29udHJvbC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWVkaXQtcGtleS1jb250cm9sLWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1saXN0LWNvbnRyb2wtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1zZWFyY2gtY29udHJvbC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLXJhbmdlLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1zZWFyY2gtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS10YWJsZS1jb25maWctYmFzZSc7XG5cbi8qXG4gKiBCYXNlIFZpZXdcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9kZXRhaWwvdHJ1LWRldGFpbC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9kZXRhaWwvdHJ1LWRldGFpbC12aWV3LWJhc2UtbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvdHJ1LXNlYXJjaC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvdHJ1LXNlYXJjaC12aWV3LWJhc2UtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoL3NlcnZpY2VzL3RydS1zZWFyY2gtdmlldy1jb250cm9sLWV2ZW50LWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL3NlYXJjaC1yZXN1bHQvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoLXJlc3VsdC90cnUtc2VhcmNoLXJlc3VsdC12aWV3LWJhc2UtbW9kdWxlJztcblxuLypcbiAqIENsYXNzZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtY2hvaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWNvbnRleHQtZmlsdGVyLWNob2ljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1kYXRhLWNoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1mb3JtdWxhLWV2YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtbmFtZS12YWx1ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcmVkaWNhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWNsb3VkLWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWRhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWRlY2ltYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWZvcmVpZ24ta2V5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1pbnRlZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1wYXNzd29yZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctcGVyY2VudGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctc2NpZW50aWZpYyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctdGV4dC1jaG9pY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy11c2EtYWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctemlwLWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcXVlcnktcHJlZGljYXRlLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtdmFsaWRhdG9yLWZhY3RvcnknO1xuXG4vKlxuICogQ29tcG9uZW50c1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL3RydS1jb25maXJtLWRpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL3RydS1jb25maXJtLWRpYWxvZy1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC9jbGFzc2VzL3RydS1kYXRhLWdyaWQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS1ncmlkL2VudW1zL3RydS1kYXRhLWdyaWQtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvc2VydmljZXMvdHJ1LWRhdGEtZ3JpZC11dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS1ncmlkL3RydS1kYXRhLWdyaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AvdHJ1LWRlc2t0b3AnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3RydS1kZXNrdG9wLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGVza3RvcC9jbGFzc2VzL3RydS1kZXNrdG9wLXZpZXctY29uZmlnJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS1kZXNrdG9wLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctYWN0aW9uLWV2ZW50LWhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1oYW5kbGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL3RydS1leHBvcnQtZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy90cnUtZXhwb3J0LWRpYWxvZy1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyaWQtdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LWdyaWQtdmFsaWRhdGlvbi1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmlkLXZhbGlkYXRpb24tZGlhbG9nL3RydS1ncmlkLXZhbGlkYXRpb24tZGlhbG9nLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2NvbHVtbi90cnUtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2NvbHVtbi90cnUtY29sdW1uLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9mb3JtL3RydS1mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2Zvcm0vdHJ1LWZvcm0tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2dyb3VwLWJveC90cnUtZ3JvdXAtYm94JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2dyb3VwLWJveC90cnUtZ3JvdXAtYm94LW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9yb3cvdHJ1LXJvdyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9yb3cvdHJ1LXJvdy1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Bhc3N3b3JkLWRpYWxvZy90cnUtcGFzc3dvcmQtZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtZGlhbG9nL3RydS1wYXNzd29yZC1kaWFsb2ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3RydS10b29sYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci90cnUtdG9vbGJhci1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL21lbnUvdHJ1LXRvb2xiYXItbWVudSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvbWVudS90cnUtdG9vbGJhci1tZW51LW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvYnV0dG9uL3RydS10b29sYmFyLWJ1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvYnV0dG9uL3RydS10b29sYmFyLWJ1dHRvbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2Ryb3Bkb3duL3RydS10b29sYmFyLWRyb3Bkb3duJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9kcm9wZG93bi90cnUtdG9vbGJhci1kcm9wZG93bi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3NlcGFyYXRvci90cnUtdG9vbGJhci1zZXBhcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3NlcGFyYXRvci90cnUtdG9vbGJhci1zZXBhcmF0b3ItbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9jb250ZXh0LWZpbHRlci90cnUtdG9vbGJhci1jb250ZXh0LWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvY29udGV4dC1maWx0ZXIvdHJ1LXRvb2xiYXItY29udGV4dC1maWx0ZXItbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci90ZXh0L3RydS10b29sYmFyLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3RleHQvdHJ1LXRvb2xiYXItdGV4dC1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3VzZXItcHJvZmlsZS90cnUtdG9vbGJhci11c2VyLXByb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3VzZXItcHJvZmlsZS90cnUtdG9vbGJhci11c2VyLXByb2ZpbGUtbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi90cnUtbG9naW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi90cnUtbG9naW4tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9naW4vc2VydmljZXMvdHJ1LWF1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9zZXJ2aWNlcy90cnUtYXV0aC1pbnRlcmNlcHRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LXZhbGlkYXRpb24tZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LXZhbGlkYXRpb24tZGlhbG9nLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3JpZC12YWxpZGF0aW9uLWRpYWxvZy90cnUtZ3JpZC12YWxpZGF0aW9uLWRpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyaWQtdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LWdyaWQtdmFsaWRhdGlvbi1kaWFsb2ctbW9kdWxlJztcblxuLypcbiAqIERpcmVjdGl2ZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9icmVlemUtZ3JpZC12YWxpZGF0b3IvdHJ1LWJyZWV6ZS1ncmlkLXZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2JyZWV6ZS1ncmlkLXZhbGlkYXRvci90cnUtYnJlZXplLWdyaWQtdmFsaWRhdG9yLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYnJlZXplLXZhbGlkYXRvci90cnUtYnJlZXplLXZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2JyZWV6ZS12YWxpZGF0b3IvdHJ1LWJyZWV6ZS12YWxpZGF0b3ItbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci90cnUtc2VhcmNoLXBhbmVsLXBvc2l0aW9uLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci90cnUtc2VhcmNoLXBhbmVsLXBvc2l0aW9uLW1hbmFnZXItbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZWxlY3QtcGFuZWwvdHJ1LW1hdC1zZWxlY3QtcGFuZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZWxlY3QtcGFuZWwvdHJ1LW1hdC1zZWxlY3QtcGFuZWwtbW9kdWxlJztcblxuLypcbiAqIEludGVyZmFjZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy90cnUtdmFsdWUnO1xuXG4vKlxuICogU2VydmljZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtYnJlZXplLWNvbnRleHQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtYnJlZXplLW1ldGFkYXRhLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1jbG91ZC1maWxlLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWNvbXBvbmVudC1sb29rdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWNvbm5lY3Rpb24taHViJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1jb250ZXh0LWZpbHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtZW50aXR5LWFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1tb2RlbC1wcm9wZXJ0eS1sb29rdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXByZWRpY2F0ZS1tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1zb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS10YWJsZS1yZWdpc3RyeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtdGV4dC1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS11aS1ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXV0aWwnO1xuXG4vKlxuICogTW9kdWxlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMvdHJ1LWljb24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy90cnUtc2VhcmNoLWljb24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RydS1jb21tb24tbW9kdWxlJztcbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMENBQTBDLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMscURBQXFELENBQUM7QUFFcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxnRUFBZ0UsQ0FBQztBQUUvRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbUVBQW1FLENBQUM7QUFFbEY7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2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Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRydS1jb21tb24tbGliXG4gKi9cblxuLypcbiAqIEJhc2UgQ2xhc3Nlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWNvbXBvbmVudC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWNvbnRyb2wtY29tcG9uZW50LWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1jb250cm9sLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1lZGl0LWNvbnRyb2wtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1lZGl0LXBhcmVudC1jb250cm9sLWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1wa2V5LWNvbnRyb2wtY29uZmlnLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jbGFzc2VzL3RydS1lbnRpdHktYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LWxpc3QtY29udHJvbC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtc2VhcmNoLWNvbnRyb2wtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb250cm9sLWNvbmZpZy1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtY2xhc3Nlcy90cnUtc2VhcmNoLWNvbnRyb2wtcmFuZ2UtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXNlYXJjaC1jb25maWctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLWNsYXNzZXMvdHJ1LXRhYmxlLWNvbmZpZy1iYXNlJztcblxuLypcbiAqIEJhc2UgVmlld1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL2RldGFpbC90cnUtZGV0YWlsLXZpZXctYmFzZS1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL3NlYXJjaC90cnUtc2VhcmNoLXZpZXctYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL3NlYXJjaC90cnUtc2VhcmNoLXZpZXctYmFzZS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWNvbnRyb2wtZXZlbnQtaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlLXZpZXdzL3NlYXJjaC9zZXJ2aWNlcy90cnUtc2VhcmNoLXZpZXctZXZlbnQtaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2Utdmlld3Mvc2VhcmNoLXJlc3VsdC90cnUtc2VhcmNoLXJlc3VsdC12aWV3LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS12aWV3cy9zZWFyY2gtcmVzdWx0L3RydS1zZWFyY2gtcmVzdWx0LXZpZXctYmFzZS1tb2R1bGUnO1xuXG4vKlxuICogQ2xhc3Nlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1jaG9pY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtY29udGV4dC1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtY29udGV4dC1maWx0ZXItY2hvaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWRhdGEtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LWZvcm11bGEtZXZhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1uYW1lLXZhbHVlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByZWRpY2F0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctY2xvdWQtZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctZGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctZGVjaW1hbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctZm9yZWlnbi1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWludGVnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXBhc3N3b3JkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1wZXJjZW50YWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1zY2llbnRpZmljJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy10ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy10ZXh0LWNob2ljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLXVzYS1hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy16aXAtY29kZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS1xdWVyeS1wcmVkaWNhdGUtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3RydS12YWxpZGF0b3ItZmFjdG9yeSc7XG5cbi8qXG4gKiBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvdHJ1LWNvbmZpcm0tZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvdHJ1LWNvbmZpcm0tZGlhbG9nLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS1ncmlkL2NsYXNzZXMvdHJ1LWRhdGEtZ3JpZC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvZW51bXMvdHJ1LWRhdGEtZ3JpZC10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC9zZXJ2aWNlcy90cnUtZGF0YS1ncmlkLXV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtZ3JpZC90cnUtZGF0YS1ncmlkLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGVza3RvcC90cnUtZGVza3RvcCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AvdHJ1LWRlc2t0b3AtbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kZXNrdG9wL2NsYXNzZXMvdHJ1LWRlc2t0b3Atdmlldy1jb25maWcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LWRlc2t0b3AtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1hY3Rpb24tZXZlbnQtaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2t0b3Avc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1hcmdzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGVza3RvcC9zZXJ2aWNlcy90cnUtd2luZG93LWV2ZW50LWhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2V4cG9ydC1kaWFsb2cvdHJ1LWV4cG9ydC1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL3RydS1leHBvcnQtZGlhbG9nLW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3JpZC12YWxpZGF0aW9uLWRpYWxvZy90cnUtZ3JpZC12YWxpZGF0aW9uLWRpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyaWQtdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LWdyaWQtdmFsaWRhdGlvbi1kaWFsb2ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvY29sdW1uL3RydS1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvY29sdW1uL3RydS1jb2x1bW4tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2Zvcm0vdHJ1LWZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZm9ybS90cnUtZm9ybS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZ3JvdXAtYm94L3RydS1ncm91cC1ib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvZ3JvdXAtYm94L3RydS1ncm91cC1ib3gtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L3Jvdy90cnUtcm93JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L3Jvdy90cnUtcm93LW1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtZGlhbG9nL3RydS1wYXNzd29yZC1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wYXNzd29yZC1kaWFsb2cvdHJ1LXBhc3N3b3JkLWRpYWxvZy1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvdHJ1LXRvb2xiYXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3RydS10b29sYmFyLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvbWVudS90cnUtdG9vbGJhci1tZW51JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9tZW51L3RydS10b29sYmFyLW1lbnUtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9idXR0b24vdHJ1LXRvb2xiYXItYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9idXR0b24vdHJ1LXRvb2xiYXItYnV0dG9uLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvZHJvcGRvd24vdHJ1LXRvb2xiYXItZHJvcGRvd24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2Ryb3Bkb3duL3RydS10b29sYmFyLWRyb3Bkb3duLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvc2VwYXJhdG9yL3RydS10b29sYmFyLXNlcGFyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvc2VwYXJhdG9yL3RydS10b29sYmFyLXNlcGFyYXRvci1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL2NvbnRleHQtZmlsdGVyL3RydS10b29sYmFyLWNvbnRleHQtZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9vbGJhci9jb250ZXh0LWZpbHRlci90cnUtdG9vbGJhci1jb250ZXh0LWZpbHRlci1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b29sYmFyL3RleHQvdHJ1LXRvb2xiYXItdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvdGV4dC90cnUtdG9vbGJhci10ZXh0LW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvdXNlci1wcm9maWxlL3RydS10b29sYmFyLXVzZXItcHJvZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rvb2xiYXIvdXNlci1wcm9maWxlL3RydS10b29sYmFyLXVzZXItcHJvZmlsZS1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL3RydS1sb2dpbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL3RydS1sb2dpbi1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9zZXJ2aWNlcy90cnUtYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL3NlcnZpY2VzL3RydS1hdXRoLWludGVyY2VwdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92YWxpZGF0aW9uLWRpYWxvZy90cnUtdmFsaWRhdGlvbi1kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92YWxpZGF0aW9uLWRpYWxvZy90cnUtdmFsaWRhdGlvbi1kaWFsb2ctbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmlkLXZhbGlkYXRpb24tZGlhbG9nL3RydS1ncmlkLXZhbGlkYXRpb24tZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3JpZC12YWxpZGF0aW9uLWRpYWxvZy90cnUtZ3JpZC12YWxpZGF0aW9uLWRpYWxvZy1tb2R1bGUnO1xuXG4vKlxuICogRGlyZWN0aXZlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2JyZWV6ZS1ncmlkLXZhbGlkYXRvci90cnUtYnJlZXplLWdyaWQtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYnJlZXplLWdyaWQtdmFsaWRhdG9yL3RydS1icmVlemUtZ3JpZC12YWxpZGF0b3ItbW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9icmVlemUtdmFsaWRhdG9yL3RydS1icmVlemUtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYnJlZXplLXZhbGlkYXRvci90cnUtYnJlZXplLXZhbGlkYXRvci1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyL3RydS1zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NlYXJjaC1wYW5lbC1wb3NpdGlvbi1tYW5hZ2VyL3RydS1zZWFyY2gtcGFuZWwtcG9zaXRpb24tbWFuYWdlci1tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NlbGVjdC1wYW5lbC90cnUtbWF0LXNlbGVjdC1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3NlbGVjdC1wYW5lbC90cnUtbWF0LXNlbGVjdC1wYW5lbC1tb2R1bGUnO1xuXG4vKlxuICogSW50ZXJmYWNlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3RydS12YWx1ZSc7XG5cbi8qXG4gKiBTZXJ2aWNlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtYXBwLWVudmlyb25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1icmVlemUtY29udGV4dC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1icmVlemUtbWV0YWRhdGEtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWNsb3VkLWZpbGUtbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtY29tcG9uZW50LWxvb2t1cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtY29ubmVjdGlvbi1odWInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LWNvbnRleHQtZmlsdGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1lbnRpdHktYWNjZXNzb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LW1vZGVsLXByb3BlcnR5LWxvb2t1cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXByZWRpY2F0ZS1tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS1zb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS10YWJsZS1yZWdpc3RyeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cnUtdGV4dC1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RydS11aS1ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJ1LXV0aWwnO1xuXG4vKlxuICogTW9kdWxlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMvdHJ1LWljb24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy90cnUtc2VhcmNoLWljb24tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RydS1jb21tb24tbW9kdWxlJztcbiJdfQ==
@@ -2804,6 +2804,7 @@ class TruDataChangeParser {
2804
2804
  expandPaths;
2805
2805
  isLoaded;
2806
2806
  types;
2807
+ propertyTypes;
2807
2808
  globalDataContext;
2808
2809
  waitingEntities = [];
2809
2810
  dataChanged$ = new Subject();
@@ -2813,7 +2814,7 @@ class TruDataChangeParser {
2813
2814
  dataChanged(change) {
2814
2815
  this.dataChanged$.next(change);
2815
2816
  }
2816
- constructor(connection, dataContext, globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, modelPropertyLookup) {
2817
+ constructor(connection, dataContext, globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, modelTypeLookup, modelPropertyLookup) {
2817
2818
  this.dataContext = dataContext;
2818
2819
  this.globalDataContext = globalDataContext;
2819
2820
  this.entity = entity;
@@ -2823,7 +2824,8 @@ class TruDataChangeParser {
2823
2824
  this.contextFilters = contextFilters;
2824
2825
  this.expandPaths = expandPaths;
2825
2826
  this.isLoaded = isLoaded;
2826
- this.types = modelPropertyLookup.lookup;
2827
+ this.types = modelTypeLookup.lookup;
2828
+ this.propertyTypes = modelPropertyLookup.lookup;
2827
2829
  connection.on("change", (payload) => {
2828
2830
  this.update(payload);
2829
2831
  });
@@ -2851,7 +2853,7 @@ class TruDataChangeParser {
2851
2853
  var originalValues = entity.entityAspect.originalValues;
2852
2854
  entity['Data_Notification'] = true;
2853
2855
  Object.keys(change.properties).forEach((key) => {
2854
- var entityType = this.types.get(change.tableName + '.' + key);
2856
+ var entityType = this.propertyTypes.get(change.tableName + '.' + key);
2855
2857
  if (!entityType) {
2856
2858
  entityType = new TruPropertyConfigBase();
2857
2859
  entityType.typeName = 'text-bounded';
@@ -3045,11 +3047,12 @@ class TruDataChangeParser {
3045
3047
  }
3046
3048
  }
3047
3049
  else if (change.changeOperation === 'I') {
3048
- var newEntity = this.globalDataContext.entityAccess().add(this.entity, this.contextFilters);
3050
+ let entityType = this.types.get(this.tableName);
3051
+ var newEntity = this.globalDataContext.entityAccess().add(entityType, this.contextFilters);
3049
3052
  const pkeyName1 = change.tableName + 'Ref';
3050
3053
  newEntity[pkeyName1] = change.tableRef;
3051
3054
  this.applyPropertyChanges(change, newEntity);
3052
- newEntity = this.dataContext.entityAccess().add(this.entity, this.contextFilters);
3055
+ newEntity = this.dataContext.entityAccess().add(entityType, this.contextFilters);
3053
3056
  const pkeyName2 = change.tableName + 'Ref';
3054
3057
  newEntity[pkeyName2] = change.tableRef;
3055
3058
  this.applyPropertyChanges(change, newEntity);
@@ -3065,6 +3068,25 @@ class TruDataChangeParser {
3065
3068
  };
3066
3069
  }
3067
3070
 
3071
+ class TruModelTypeLookup {
3072
+ _lookup = new Map();
3073
+ constructor() { }
3074
+ get lookup() {
3075
+ return this._lookup;
3076
+ }
3077
+ set lookup(value) {
3078
+ this._lookup = value;
3079
+ }
3080
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruModelTypeLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3081
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruModelTypeLookup, providedIn: 'root' });
3082
+ }
3083
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruModelTypeLookup, decorators: [{
3084
+ type: Injectable,
3085
+ args: [{
3086
+ providedIn: 'root',
3087
+ }]
3088
+ }], ctorParameters: () => [] });
3089
+
3068
3090
  class TruModelPropertyLookup {
3069
3091
  _lookup = new Map();
3070
3092
  constructor() { }
@@ -3087,11 +3109,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
3087
3109
  class TruConnectionHub {
3088
3110
  dataContext;
3089
3111
  appEnvironment;
3112
+ modelTypeLookup;
3090
3113
  modelPropertyLookup;
3091
3114
  connection;
3092
- constructor(dataContext, appEnvironment, modelPropertyLookup) {
3115
+ constructor(dataContext, appEnvironment, modelTypeLookup, modelPropertyLookup) {
3093
3116
  this.dataContext = dataContext;
3094
3117
  this.appEnvironment = appEnvironment;
3118
+ this.modelTypeLookup = modelTypeLookup;
3095
3119
  this.modelPropertyLookup = modelPropertyLookup;
3096
3120
  this.connection = new signalR.HubConnectionBuilder()
3097
3121
  .withUrl(`${this.appEnvironment.appUri}/notificationhub`, {
@@ -3117,9 +3141,9 @@ class TruConnectionHub {
3117
3141
  }
3118
3142
  };
3119
3143
  subscribe = (dataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded) => {
3120
- return new TruDataChangeParser(this.connection, dataContext, this.appEnvironment.globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelPropertyLookup).onDataChanged();
3144
+ return new TruDataChangeParser(this.connection, dataContext, this.appEnvironment.globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelTypeLookup, this.modelPropertyLookup).onDataChanged();
3121
3145
  };
3122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
3146
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruModelTypeLookup }, { token: TruModelPropertyLookup }], target: i0.ɵɵFactoryTarget.Injectable });
3123
3147
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, providedIn: 'root' });
3124
3148
  }
3125
3149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruConnectionHub, decorators: [{
@@ -3127,7 +3151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
3127
3151
  args: [{
3128
3152
  providedIn: 'root',
3129
3153
  }]
3130
- }], ctorParameters: () => [{ type: TruDataContext }, { type: TruAppEnvironment }, { type: TruModelPropertyLookup }] });
3154
+ }], ctorParameters: () => [{ type: TruDataContext }, { type: TruAppEnvironment }, { type: TruModelTypeLookup }, { type: TruModelPropertyLookup }] });
3131
3155
 
3132
3156
  class TruToolbar {
3133
3157
  config = null;
@@ -7660,5 +7684,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
7660
7684
  * Generated bundle index. Do not edit.
7661
7685
  */
7662
7686
 
7663
- export { DetailViewModule, TruAppEnvironment, TruAuth, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeGridValidator, TruBreezeGridValidatorModule, TruBreezeMetadataProvider, TruBreezeValidator, TruBreezeValidatorModule, TruChoice, TruCloudFileManager, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruConnectionHub, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataChange, TruDataContext, TruDataGrid, TruDataGridModule, TruDataGridTypes, TruDataGridUtil, TruDesktop, TruDesktopManager, TruDesktopModule, TruDesktopViewConfig, TruDetailViewBase, TruEditControlBase, TruEditControlConfigBase, TruEditParentControlConfigBase, TruEditPkeyControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGridValidationDialog, TruGridValidationDialogModule, TruGroupBox, TruGroupBoxModule, TruIconModule, TruListControlConfigBase, TruLogin, TruLoginModule, TruMatSelectPanel, TruMatSelectPanelModule, TruModelPropertyLookup, TruNameValue, TruPasswordDialog, TruPasswordDialogModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchResultViewBase, TruSearchResultViewBaseModule, TruSearchResultViewManager, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruToolbarUserProfile, TruToolbarUserProfileModule, TruUiNotification, TruUser, TruUtil, TruValidationDialog, TruValidationDialogModule, TruValidatorFactory, TruWindowActionEventHandler, TruWindowEventArgs, TruWindowEventHandler };
7687
+ export { DetailViewModule, TruAppEnvironment, TruAuth, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeGridValidator, TruBreezeGridValidatorModule, TruBreezeMetadataProvider, TruBreezeValidator, TruBreezeValidatorModule, TruChoice, TruCloudFileManager, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruConnectionHub, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataChange, TruDataContext, TruDataGrid, TruDataGridModule, TruDataGridTypes, TruDataGridUtil, TruDesktop, TruDesktopManager, TruDesktopModule, TruDesktopViewConfig, TruDetailViewBase, TruEditControlBase, TruEditControlConfigBase, TruEditParentControlConfigBase, TruEditPkeyControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGridValidationDialog, TruGridValidationDialogModule, TruGroupBox, TruGroupBoxModule, TruIconModule, TruListControlConfigBase, TruLogin, TruLoginModule, TruMatSelectPanel, TruMatSelectPanelModule, TruModelPropertyLookup, TruModelTypeLookup, TruNameValue, TruPasswordDialog, TruPasswordDialogModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchResultViewBase, TruSearchResultViewBaseModule, TruSearchResultViewManager, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruToolbarUserProfile, TruToolbarUserProfileModule, TruUiNotification, TruUser, TruUtil, TruValidationDialog, TruValidationDialogModule, TruValidatorFactory, TruWindowActionEventHandler, TruWindowEventArgs, TruWindowEventHandler };
7664
7688
  //# sourceMappingURL=trudb-tru-common-lib.mjs.map