@trudb/tru-common-lib 0.0.921 → 0.0.923

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.
@@ -119,7 +119,7 @@ export class TruDataChangeParser {
119
119
  entityFoundByQuery = (change) => {
120
120
  var entityAccessor = this.dataContext.entityAccess();
121
121
  var entities = entityAccessor.searchByRefArrayCacheOnly(this.entity, this.getLatestQuery(), [change.tableRef]);
122
- if (entities !== null && !entities.length) {
122
+ if (!entities?.length) {
123
123
  var entityAccessor = this.globalDataContext.entityAccess();
124
124
  entities = entityAccessor.searchByRefArrayCacheOnly(this.entity, this.getLatestQuery(), [change.tableRef]);
125
125
  }
@@ -275,4 +275,4 @@ export class TruDataChangeParser {
275
275
  this.dataChanged(dataChangeArgs);
276
276
  };
277
277
  }
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtY2hhbmdlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBS2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixhQUFhLENBQW9CO0lBQ2pDLFdBQVcsQ0FBaUI7SUFDNUIsTUFBTSxDQUFNO0lBQ1osU0FBUyxDQUFTO0lBQ2xCLFNBQVMsQ0FBMkI7SUFDcEMsZ0JBQWdCLENBQVk7SUFDNUIsY0FBYyxDQUFNO0lBQ3BCLGNBQWMsQ0FBSztJQUNuQixXQUFXLENBQWdCO0lBQzNCLFFBQVEsQ0FBZ0I7SUFDeEIsS0FBSyxDQUFxQjtJQUMxQixhQUFhLENBQXFDO0lBRWxELGlCQUFpQixDQUF3QjtJQUN6QyxlQUFlLEdBQXlCLEVBQUUsQ0FBQztJQUUzQyxZQUFZLEdBQTJCLElBQUksT0FBTyxFQUFpQixDQUFDO0lBRTVFLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFxQjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFDRSxVQUFlLEVBQ2YsYUFBZ0MsRUFDaEMsV0FBMkIsRUFDM0IsaUJBQXdDLEVBQ3hDLE1BQTRCLEVBQzVCLFNBQWlC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QUFJLGNBQWMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUM3QyxjQUFjLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSBcIi4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2VcIjtcclxuaW1wb3J0IHsgVHJ1UHJvcGVydHlDb25maWdCYXNlIH0gZnJvbSBcIi4uL2Jhc2UtY2xhc3Nlcy90cnUtcHJvcGVydHktY29uZmlnLWJhc2VcIjtcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudFwiO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0XCI7XHJcbmltcG9ydCB7IFRydU1vZGVsUHJvcGVydHlMb29rdXAgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LW1vZGVsLXByb3BlcnR5LWxvb2t1cFwiO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFR5cGVMb29rdXAgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LW1vZGVsLXR5cGUtbG9va3VwXCI7XHJcbmltcG9ydCB7IFRydURhdGFDaGFuZ2UgfSBmcm9tIFwiLi90cnUtZGF0YS1jaGFuZ2VcIjtcclxuaW1wb3J0IHsgVHJ1TWVyZ2VEYXRhIH0gZnJvbSBcIi4vdHJ1LW1lcmdlLWRhdGFcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1RGF0YUNoYW5nZVBhcnNlciB7XHJcbiAgcHJpdmF0ZSBhcHBFbnZpb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudDtcclxuICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dDtcclxuICBwcml2YXRlIGVudGl0eTogYW55O1xyXG4gIHByaXZhdGUgdGFibGVOYW1lOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBhZGRFbnRpdHk6IChuZXdFbnRpdHk6IGFueSkgPT4gdm9pZDtcclxuICBwcml2YXRlIGdldExhdGVzdFJlc3VsdHM6ICgpID0+IGFueTtcclxuICBwcml2YXRlIGdldExhdGVzdFF1ZXJ5OiBhbnk7XHJcbiAgcHJpdmF0ZSBjb250ZXh0RmlsdGVyczogW107XHJcbiAgcHJpdmF0ZSBleHBhbmRQYXRoczogQXJyYXk8c3RyaW5nPjtcclxuICBwcml2YXRlIGlzTG9hZGVkOiAoKSA9PiBib29sZWFuO1xyXG4gIHByaXZhdGUgdHlwZXM6IFRydU1vZGVsVHlwZUxvb2t1cDtcclxuICBwcml2YXRlIHByb3BlcnR5VHlwZXM6IE1hcDxzdHJpbmcsIFRydVByb3BlcnR5Q29uZmlnQmFzZT47XHJcblxyXG4gIHByaXZhdGUgZ2xvYmFsRGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbDtcclxuICBwcml2YXRlIHdhaXRpbmdFbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBkYXRhQ2hhbmdlZCQ6IFN1YmplY3Q8VHJ1RGF0YUNoYW5nZT4gPSBuZXcgU3ViamVjdDxUcnVEYXRhQ2hhbmdlPigpO1xyXG5cclxuICBvbkRhdGFDaGFuZ2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZWQkO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNoYW5nZWQoY2hhbmdlOiBUcnVEYXRhQ2hhbmdlKSB7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2VkJC5uZXh0KGNoYW5nZSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNvbm5lY3Rpb246IGFueSxcclxuICAgIGFwcEVudmlyb21lbnQ6IFRydUFwcEVudmlyb25tZW50LFxyXG4gICAgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgZ2xvYmFsRGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCxcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIGFkZEVudGl0eTogYW55LFxyXG4gICAgZ2V0TGF0ZXN0UmVzdWx0czogYW55LFxyXG4gICAgZ2V0TGF0ZXN0UXVlcnk6IGFueSxcclxuICAgIGNvbnRleHRGaWx0ZXJzOiBbXSxcclxuICAgIGV4cGFuZFBhdGhzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgaXNMb2FkZWQ6ICgpID0+IGJvb2xlYW4sXHJcbiAgICBtb2RlbFR5cGVMb29rdXA6IFRydU1vZGVsVHlwZUxvb2t1cCxcclxuICAgIG1vZGVsUHJvcGVydHlMb29rdXA6IFRydU1vZGVsUHJvcGVydHlMb29rdXBcclxuICApIHtcclxuICAgIHRoaXMuYXBwRW52aW9ubWVudCA9IGFwcEVudmlyb21lbnQ7XHJcbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gZGF0YUNvbnRleHQ7XHJcbiAgICB0aGlzLmdsb2JhbERhdGFDb250ZXh0ID0gZ2xvYmFsRGF0YUNvbnRleHQ7XHJcbiAgICB0aGlzLmVudGl0eSA9IGVudGl0eTtcclxuICAgIHRoaXMudGFibGVOYW1lID0gdGFibGVOYW1lO1xyXG4gICAgdGhpcy5hZGRFbnRpdHkgPSBhZGRFbnRpdHk7XHJcbiAgICB0aGlzLmdldExhdGVzdFJlc3VsdHMgPSBnZXRMYXRlc3RSZXN1bHRzO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RRdWVyeSA9IGdldExhdGVzdFF1ZXJ5O1xyXG4gICAgdGhpcy5jb250ZXh0RmlsdGVycyA9IGNvbnRleHRGaWx0ZXJzO1xyXG4gICAgdGhpcy5leHBhbmRQYXRocyA9IGV4cGFuZFBhdGhzO1xyXG4gICAgdGhpcy5pc0xvYWRlZCA9IGlzTG9hZGVkO1xyXG4gICAgdGhpcy50eXBlcyA9IG1vZGVsVHlwZUxvb2t1cDsgXHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZXMgPSBtb2RlbFByb3BlcnR5TG9va3VwLmxvb2t1cDtcclxuXHJcbiAgICBjb25uZWN0aW9uLm9uKFwiY2hhbmdlXCIsIChwYXlsb2FkOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy51cGRhdGUocGF5bG9hZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEVudGl0eUluQ2FjaGUgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICByZXR1cm4gZW50aXR5QWNjZXNzb3Iuc2VhcmNoQnlSZWZDYWNoZU9ubHkodGhpcy50eXBlcy5nZXRUeXBlKGNoYW5nZS50YWJsZU5hbWUpLCBwYXJzZUludChjaGFuZ2UudGFibGVSZWYsIDEwKSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRFbnRpdHlJbkdsb2JhbENhY2hlID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKTtcclxuICAgIHJldHVybiBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkNhY2hlT25seSh0aGlzLnR5cGVzLmdldFR5cGUoY2hhbmdlLnRhYmxlTmFtZSksIHBhcnNlSW50KGNoYW5nZS50YWJsZVJlZiwgMTApLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tJZkRhdGVUaW1lID0gKG5ld1ZhbHVlOiBhbnksIGN1cnJlbnRWYWx1ZTogYW55LCB0eXBlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICBpZiAodHlwZU5hbWUgPT09ICdkYXRlLXRpbWUnIHx8IHR5cGVOYW1lID09PSAnZGF0ZScpIHtcclxuICAgICAgaWYgKG1vbWVudChuZXdWYWx1ZSwgXCJZWVlZLU1NLUREIEhIOm1tOnNzLnNzc3Nzc3NcIiwgdHJ1ZSkuaXNWYWxpZCgpKVxyXG4gICAgICAgIHJldHVybiBtb21lbnQobW9tZW50LnV0YyhuZXdWYWx1ZSkudG9EYXRlKCkpLmZvcm1hdCgnTU0vREQvWVlZWSBoaDptbSBBJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsdWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzUHJvcGVydHlBbHJlYWR5QmVlbk1vZGlmaWVkID0gKHByb3BlcnR5TmFtZTogc3RyaW5nLCBlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIGVudGl0eS5lbnRpdHlBc3BlY3Qub3JpZ2luYWxWYWx1ZXMuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlQcm9wZXJ0eUNoYW5nZXMgPSAoY2hhbmdlOiBhbnksIGVudGl0eTogYW55KSA9PiB7XHJcbiAgICB2YXIgc3RhdGVCZWZvcmVQcm9wZXJ0eUNoYW5nZSA9IGVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGU7XHJcbiAgICB2YXIgb3JpZ2luYWxWYWx1ZXMgPSBlbnRpdHkuZW50aXR5QXNwZWN0Lm9yaWdpbmFsVmFsdWVzO1xyXG5cclxuICAgIGVudGl0eVsnRGF0YV9Ob3RpZmljYXRpb24nXSA9IHRydWU7XHJcblxyXG4gICAgT2JqZWN0LmtleXMoY2hhbmdlLnByb3BlcnRpZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICB2YXIgZW50aXR5VHlwZSA9IHRoaXMucHJvcGVydHlUeXBlcy5nZXQoY2hhbmdlLnRhYmxlTmFtZSArICcuJyArIGtleSk7XHJcbiAgICAgIGlmICghZW50aXR5VHlwZSkge1xyXG4gICAgICAgIGVudGl0eVR5cGUgPSBuZXcgVHJ1UHJvcGVydHlDb25maWdCYXNlKCk7XHJcbiAgICAgICAgZW50aXR5VHlwZS50eXBlTmFtZSA9ICd0ZXh0LWJvdW5kZWQnO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBwcm9wZXJ0eU1vZGlmaWVkID0gdGhpcy5oYXNQcm9wZXJ0eUFscmVhZHlCZWVuTW9kaWZpZWQoa2V5LCBlbnRpdHkpXHJcbiAgICAgIGlmIChrZXkgPT09ICdVcGRhdGVkJyB8fCBrZXkgPT09ICdVcGRhdGVkUmVmJykge1xyXG4gICAgICAgIGVudGl0eVtrZXldID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxyXG4gICAgICAgICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzW2tleV07XHJcbiAgICAgIH0gZWxzZSBpZiAoZW50aXR5W2tleV0gIT09IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKSkge1xyXG4gICAgICAgIGlmICghcHJvcGVydHlNb2RpZmllZCkge1xyXG4gICAgICAgICAgZW50aXR5W2tleV0gPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgICAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNba2V5XTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICAgICAgbGV0IG1vZGlmaWVkQnkgPSBjaGFuZ2UubW9kaWZpZWRCeTtcclxuICAgICAgICAgIGxldCBoaWQgPSBjaGFuZ2UucHJvcGVydGllc1trZXkgKyAnSElEJ107XHJcbiAgICAgICAgICBsZXQgbWVyZ2VEYXRhID0gbmV3IFRydU1lcmdlRGF0YSh2YWx1ZSwgbW9kaWZpZWRCeSwgaGlkKTtcclxuICAgICAgICAgIGVudGl0eS5NZXJnZV9EYXRhX1NldC5zZXQoa2V5LCBtZXJnZURhdGEpO1xyXG4gICAgICAgICAgZW50aXR5LmVudGl0eUFzcGVjdC52YWxpZGF0ZVByb3BlcnR5KGtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIChvcmlnaW5hbFZhbHVlc1trZXldKSAhPT0gJ3VuZGVmaW5lZCcpXHJcbiAgICAgICAgICBvcmlnaW5hbFZhbHVlc1trZXldID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxyXG4gICAgICAgICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzW2tleV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGVudGl0eVsncm93dmVyJ10gPSBjaGFuZ2Uucm93dmVyO1xyXG4gICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzWydyb3d2ZXInXTtcclxuXHJcbiAgICBpZiAoc3RhdGVCZWZvcmVQcm9wZXJ0eUNoYW5nZS5uYW1lICE9PSBcIk1vZGlmaWVkXCIgfHwgKE9iamVjdC5rZXlzKG9yaWdpbmFsVmFsdWVzKS5sZW5ndGggPT09IDAgJiYgb3JpZ2luYWxWYWx1ZXMuY29uc3RydWN0b3IgPT09IE9iamVjdCkpIHtcclxuICAgICAgaWYgKCFlbnRpdHkuZW50aXR5QXNwZWN0LmlzQmVpbmdTYXZlZCkge1xyXG4gICAgICAgIGVudGl0eS5lbnRpdHlBc3BlY3Quc2V0VW5jaGFuZ2VkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53YWl0aW5nRW50aXRpZXMucHVzaChlbnRpdHkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlIGVudGl0eVsnRGF0YV9Ob3RpZmljYXRpb24nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0V2FpdGluZ0VudGl0aWVzVG9VbmNoYW5nZWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLndhaXRpbmdFbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZW50aXR5ICYmIGVudGl0eS5lbnRpdHlBc3BlY3QpXHJcbiAgICAgICAgZW50aXR5LmVudGl0eUFzcGVjdC5zZXRVbmNoYW5nZWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbnRpdHlGb3VuZEJ5UXVlcnkgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICB2YXIgZW50aXRpZXMgPSBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkFycmF5Q2FjaGVPbmx5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIFtjaGFuZ2UudGFibGVSZWZdKTtcclxuXHJcbiAgICBpZiAoZW50aXRpZXMgIT09IG51bGwgJiYgIWVudGl0aWVzLmxlbmd0aCkge1xyXG4gICAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKTtcclxuICAgICAgZW50aXRpZXMgPSBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkFycmF5Q2FjaGVPbmx5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIFtjaGFuZ2UudGFibGVSZWZdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZW50aXRpZXMgPT09IG51bGwgPyAwIDogZW50aXRpZXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlGcm9tU2VydmVyID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpO1xyXG4gICAgdmFyIGVudGl0aXkgPSBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZldpdGhRdWVyeSh0aGlzLmVudGl0eSwgdGhpcy5nZXRMYXRlc3RRdWVyeSgpLCBjaGFuZ2UudGFibGVSZWYpO1xyXG4gICAgcmV0dXJuIGVudGl0aXk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudGl0eUZyb21SZXN1bHRzID0gKHJlc3VsdHM6IGFueSwgY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHJldHVybiByZXN1bHRzLmZpbHRlcigoZTogYW55KSA9PiB7IHJldHVybiBlLlJlZiA9PT0gY2hhbmdlLnRhYmxlUmVmIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1NhdmluZyA9IGFzeW5jICgpID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuYXBwRW52aW9ubWVudC5pc1NhdmluZykge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDAwKVxyXG4gICAgfSlcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHVwZGF0ZSA9IGFzeW5jIChwYXlsb2FkOiBhbnkpID0+IHtcclxuICAgIGF3YWl0IHRoaXMuaXNTYXZpbmcoKTtcclxuXHJcbiAgICB2YXIgcmVsb2FkUmVzdWx0cyA9IGZhbHNlO1xyXG4gICAgcGF5bG9hZC5jaGFuZ2VzLmZvckVhY2goYXN5bmMgKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICAgIHZhciBmb3VuZEVudGl0aWVzID0gW107XHJcbiAgICAgIHZhciBsb2NhbEVudGl0eSA9IHRoaXMuZmluZEVudGl0eUluQ2FjaGUoY2hhbmdlKTtcclxuICAgICAgdmFyIGdsb2JhbEVudGl0eSA9IHRoaXMuZmluZEVudGl0eUluR2xvYmFsQ2FjaGUoY2hhbmdlKTtcclxuICAgICAgaWYgKGxvY2FsRW50aXR5KVxyXG4gICAgICAgIGZvdW5kRW50aXRpZXMucHVzaChsb2NhbEVudGl0eSk7XHJcbiAgICAgIGlmIChnbG9iYWxFbnRpdHkpXHJcbiAgICAgICAgZm91bmRFbnRpdGllcy5wdXNoKGdsb2JhbEVudGl0eSk7XHJcblxyXG4gICAgICBpZiAoZm91bmRFbnRpdGllcy5sZW5ndGgpIHtcclxuICAgICAgICBmb3VuZEVudGl0aWVzLmZvckVhY2goYXN5bmMgKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuXHJcbiAgICAgICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnVScpIHtcclxuICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgZW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eUFscmVhZHlJblJlc3VsdHMgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoICYmIHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZEVudGl0eShlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRpdHlUb1JlbW92ZSA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlUb1JlbW92ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eVRvUmVtb3ZlWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnRCcpIHtcclxuICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgIHZhciBlbnRpdHlUb0RlbGV0ZSA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICBpZiAoZW50aXR5VG9EZWxldGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBlbnRpdHlUb0RlbGV0ZVswXS5lbnRpdHlBc3BlY3Quc2V0RGV0YWNoZWQoKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdHMuc3BsaWNlKHJlc3VsdHMuaW5kZXhPZihlbnRpdHlUb0RlbGV0ZVswXSksIDEpO1xyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdJJykge1xyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgdmFyIGVudGl0eUFscmVhZHlJblJlc3VsdHMgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgIWVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoICYmIHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsb2NhbEVudGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgICAgICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBrZXlOYW1lID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRFbnRpdHkobmV3RW50aXR5KTtcclxuICAgICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRpdHkgPT09IGxvY2FsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZEVudGl0eShlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpICYmIGVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50aXR5VG9EZWxldGUgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5VG9EZWxldGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc3BsaWNlKHJlc3VsdHMuaW5kZXhPZihlbnRpdHlBbHJlYWR5SW5SZXN1bHRzWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWdsb2JhbEVudGl0eSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG5ld0VudGl0eSA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwa2V5TmFtZSA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXk7XHJcbiAgICAgICAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWVdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uICE9PSAnRCcpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ1UnICYmIGNoYW5nZS50YWJsZU5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRFbnRpdHlGcm9tU2VydmVyKGNoYW5nZSkuc3Vic2NyaWJlKChlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVudGl0eSkge1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgZW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpICYmIHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkRW50aXR5KG5ld0VudGl0eSk7XHJcbiAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knICYmIGNoYW5nZS50YWJsZU5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XHJcbiAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dCEuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5LCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMSA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXk7XHJcbiAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWUxXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgIG5ld0VudGl0eSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5LCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgIHR5cGUgT2JqZWN0S2V5MiA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICBjb25zdCBwa2V5TmFtZTIgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5MjtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTJdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRW50aXR5KG5ld0VudGl0eSk7XHJcbiAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knKSB7XHJcbiAgICAgICAgICBsZXQgZW50aXR5VHlwZSA9IHRoaXMudHlwZXMuZ2V0VHlwZShjaGFuZ2UudGFibGVOYW1lKTtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQoZW50aXR5VHlwZSBhcyBhbnksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUxID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTFdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQoZW50aXR5VHlwZSBhcyBhbnksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkyID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMiA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXkyO1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMl0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZFBhdGhzICYmIHRoaXMuZXhwYW5kUGF0aHMubGVuZ3RoICYmIHRoaXMuZXhwYW5kUGF0aHMuaW5jbHVkZXMoJ28nICsgY2hhbmdlLnRhYmxlTmFtZSkpXHJcbiAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgZGF0YUNoYW5nZUFyZ3MgPSBuZXcgVHJ1RGF0YUNoYW5nZSgpO1xyXG4gICAgZGF0YUNoYW5nZUFyZ3MuZGF0YUNoYW5nZXMgPSBwYXlsb2FkLmNoYW5nZXM7XHJcbiAgICBkYXRhQ2hhbmdlQXJncy5yZWxvYWQgPSByZWxvYWRSZXN1bHRzO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZChkYXRhQ2hhbmdlQXJncyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtY2hhbmdlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBS2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixhQUFhLENBQW9CO0lBQ2pDLFdBQVcsQ0FBaUI7SUFDNUIsTUFBTSxDQUFNO0lBQ1osU0FBUyxDQUFTO0lBQ2xCLFNBQVMsQ0FBMkI7SUFDcEMsZ0JBQWdCLENBQVk7SUFDNUIsY0FBYyxDQUFNO0lBQ3BCLGNBQWMsQ0FBSztJQUNuQixXQUFXLENBQWdCO0lBQzNCLFFBQVEsQ0FBZ0I7SUFDeEIsS0FBSyxDQUFxQjtJQUMxQixhQUFhLENBQXFDO0lBRWxELGlCQUFpQixDQUF3QjtJQUN6QyxlQUFlLEdBQXlCLEVBQUUsQ0FBQztJQUUzQyxZQUFZLEdBQTJCLElBQUksT0FBTyxFQUFpQixDQUFDO0lBRTVFLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFxQjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFDRSxVQUFlLEVBQ2YsYUFBZ0MsRUFDaEMsV0FBMkIsRUFDM0IsaUJBQXdDLEVBQ3hDLE1BQTRCLEVBQzVCLFNBQWlC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QUFhLEVBQUUsQ0FBQztRQUN6QyxjQUFjLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDN0MsY0FBYyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LWVudGl0eS1iYXNlXCI7XHJcbmltcG9ydCB7IFRydVByb3BlcnR5Q29uZmlnQmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1iYXNlXCI7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnRcIjtcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dFwiO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFByb3BlcnR5TG9va3VwIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1tb2RlbC1wcm9wZXJ0eS1sb29rdXBcIjtcclxuaW1wb3J0IHsgVHJ1TW9kZWxUeXBlTG9va3VwIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1tb2RlbC10eXBlLWxvb2t1cFwiO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ2hhbmdlIH0gZnJvbSBcIi4vdHJ1LWRhdGEtY2hhbmdlXCI7XHJcbmltcG9ydCB7IFRydU1lcmdlRGF0YSB9IGZyb20gXCIuL3RydS1tZXJnZS1kYXRhXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRydURhdGFDaGFuZ2VQYXJzZXIge1xyXG4gIHByaXZhdGUgYXBwRW52aW9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQ7XHJcbiAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQ7XHJcbiAgcHJpdmF0ZSBlbnRpdHk6IGFueTtcclxuICBwcml2YXRlIHRhYmxlTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgYWRkRW50aXR5OiAobmV3RW50aXR5OiBhbnkpID0+IHZvaWQ7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RSZXN1bHRzOiAoKSA9PiBhbnk7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RRdWVyeTogYW55O1xyXG4gIHByaXZhdGUgY29udGV4dEZpbHRlcnM6IFtdO1xyXG4gIHByaXZhdGUgZXhwYW5kUGF0aHM6IEFycmF5PHN0cmluZz47XHJcbiAgcHJpdmF0ZSBpc0xvYWRlZDogKCkgPT4gYm9vbGVhbjtcclxuICBwcml2YXRlIHR5cGVzOiBUcnVNb2RlbFR5cGVMb29rdXA7XHJcbiAgcHJpdmF0ZSBwcm9wZXJ0eVR5cGVzOiBNYXA8c3RyaW5nLCBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2U+O1xyXG5cclxuICBwcml2YXRlIGdsb2JhbERhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGw7XHJcbiAgcHJpdmF0ZSB3YWl0aW5nRW50aXRpZXM6IEFycmF5PFRydUVudGl0eUJhc2U+ID0gW107XHJcblxyXG4gIHByaXZhdGUgZGF0YUNoYW5nZWQkOiBTdWJqZWN0PFRydURhdGFDaGFuZ2U+ID0gbmV3IFN1YmplY3Q8VHJ1RGF0YUNoYW5nZT4oKTtcclxuXHJcbiAgb25EYXRhQ2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2VkJDtcclxuICB9XHJcblxyXG4gIGRhdGFDaGFuZ2VkKGNoYW5nZTogVHJ1RGF0YUNoYW5nZSkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZCQubmV4dChjaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb25uZWN0aW9uOiBhbnksXHJcbiAgICBhcHBFbnZpcm9tZW50OiBUcnVBcHBFbnZpcm9ubWVudCxcclxuICAgIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIGdsb2JhbERhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGwsXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICBhZGRFbnRpdHk6IGFueSxcclxuICAgIGdldExhdGVzdFJlc3VsdHM6IGFueSxcclxuICAgIGdldExhdGVzdFF1ZXJ5OiBhbnksXHJcbiAgICBjb250ZXh0RmlsdGVyczogW10sXHJcbiAgICBleHBhbmRQYXRoczogQXJyYXk8c3RyaW5nPixcclxuICAgIGlzTG9hZGVkOiAoKSA9PiBib29sZWFuLFxyXG4gICAgbW9kZWxUeXBlTG9va3VwOiBUcnVNb2RlbFR5cGVMb29rdXAsXHJcbiAgICBtb2RlbFByb3BlcnR5TG9va3VwOiBUcnVNb2RlbFByb3BlcnR5TG9va3VwXHJcbiAgKSB7XHJcbiAgICB0aGlzLmFwcEVudmlvbm1lbnQgPSBhcHBFbnZpcm9tZW50O1xyXG4gICAgdGhpcy5kYXRhQ29udGV4dCA9IGRhdGFDb250ZXh0O1xyXG4gICAgdGhpcy5nbG9iYWxEYXRhQ29udGV4dCA9IGdsb2JhbERhdGFDb250ZXh0O1xyXG4gICAgdGhpcy5lbnRpdHkgPSBlbnRpdHk7XHJcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHRhYmxlTmFtZTtcclxuICAgIHRoaXMuYWRkRW50aXR5ID0gYWRkRW50aXR5O1xyXG4gICAgdGhpcy5nZXRMYXRlc3RSZXN1bHRzID0gZ2V0TGF0ZXN0UmVzdWx0cztcclxuICAgIHRoaXMuZ2V0TGF0ZXN0UXVlcnkgPSBnZXRMYXRlc3RRdWVyeTtcclxuICAgIHRoaXMuY29udGV4dEZpbHRlcnMgPSBjb250ZXh0RmlsdGVycztcclxuICAgIHRoaXMuZXhwYW5kUGF0aHMgPSBleHBhbmRQYXRocztcclxuICAgIHRoaXMuaXNMb2FkZWQgPSBpc0xvYWRlZDtcclxuICAgIHRoaXMudHlwZXMgPSBtb2RlbFR5cGVMb29rdXA7IFxyXG4gICAgdGhpcy5wcm9wZXJ0eVR5cGVzID0gbW9kZWxQcm9wZXJ0eUxvb2t1cC5sb29rdXA7XHJcblxyXG4gICAgY29ubmVjdGlvbi5vbihcImNoYW5nZVwiLCAocGF5bG9hZDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlKHBheWxvYWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRFbnRpdHlJbkNhY2hlID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpO1xyXG4gICAgcmV0dXJuIGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KHRoaXMudHlwZXMuZ2V0VHlwZShjaGFuZ2UudGFibGVOYW1lKSwgcGFyc2VJbnQoY2hhbmdlLnRhYmxlUmVmLCAxMCksIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRW50aXR5SW5HbG9iYWxDYWNoZSA9IChjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgdmFyIGVudGl0eUFjY2Vzc29yID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dCEuZW50aXR5QWNjZXNzKCk7XHJcbiAgICByZXR1cm4gZW50aXR5QWNjZXNzb3Iuc2VhcmNoQnlSZWZDYWNoZU9ubHkodGhpcy50eXBlcy5nZXRUeXBlKGNoYW5nZS50YWJsZU5hbWUpLCBwYXJzZUludChjaGFuZ2UudGFibGVSZWYsIDEwKSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrSWZEYXRlVGltZSA9IChuZXdWYWx1ZTogYW55LCBjdXJyZW50VmFsdWU6IGFueSwgdHlwZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgaWYgKHR5cGVOYW1lID09PSAnZGF0ZS10aW1lJyB8fCB0eXBlTmFtZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIGlmIChtb21lbnQobmV3VmFsdWUsIFwiWVlZWS1NTS1ERCBISDptbTpzcy5zc3Nzc3NzXCIsIHRydWUpLmlzVmFsaWQoKSlcclxuICAgICAgICByZXR1cm4gbW9tZW50KG1vbWVudC51dGMobmV3VmFsdWUpLnRvRGF0ZSgpKS5mb3JtYXQoJ01NL0REL1lZWVkgaGg6bW0gQScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1ZhbHVlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Byb3BlcnR5QWxyZWFkeUJlZW5Nb2RpZmllZCA9IChwcm9wZXJ0eU5hbWU6IHN0cmluZywgZW50aXR5OiBhbnkpID0+IHtcclxuICAgIHJldHVybiBlbnRpdHkuZW50aXR5QXNwZWN0Lm9yaWdpbmFsVmFsdWVzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5UHJvcGVydHlDaGFuZ2VzID0gKGNoYW5nZTogYW55LCBlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgdmFyIHN0YXRlQmVmb3JlUHJvcGVydHlDaGFuZ2UgPSBlbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlO1xyXG4gICAgdmFyIG9yaWdpbmFsVmFsdWVzID0gZW50aXR5LmVudGl0eUFzcGVjdC5vcmlnaW5hbFZhbHVlcztcclxuXHJcbiAgICBlbnRpdHlbJ0RhdGFfTm90aWZpY2F0aW9uJ10gPSB0cnVlO1xyXG5cclxuICAgIE9iamVjdC5rZXlzKGNoYW5nZS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdmFyIGVudGl0eVR5cGUgPSB0aGlzLnByb3BlcnR5VHlwZXMuZ2V0KGNoYW5nZS50YWJsZU5hbWUgKyAnLicgKyBrZXkpO1xyXG4gICAgICBpZiAoIWVudGl0eVR5cGUpIHtcclxuICAgICAgICBlbnRpdHlUeXBlID0gbmV3IFRydVByb3BlcnR5Q29uZmlnQmFzZSgpO1xyXG4gICAgICAgIGVudGl0eVR5cGUudHlwZU5hbWUgPSAndGV4dC1ib3VuZGVkJztcclxuICAgICAgfVxyXG4gICAgICB2YXIgcHJvcGVydHlNb2RpZmllZCA9IHRoaXMuaGFzUHJvcGVydHlBbHJlYWR5QmVlbk1vZGlmaWVkKGtleSwgZW50aXR5KVxyXG4gICAgICBpZiAoa2V5ID09PSAnVXBkYXRlZCcgfHwga2V5ID09PSAnVXBkYXRlZFJlZicpIHtcclxuICAgICAgICBlbnRpdHlba2V5XSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1trZXldO1xyXG4gICAgICB9IGVsc2UgaWYgKGVudGl0eVtrZXldICE9PSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSkpIHtcclxuICAgICAgICBpZiAoIXByb3BlcnR5TW9kaWZpZWQpIHtcclxuICAgICAgICAgIGVudGl0eVtrZXldID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICAgICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzW2tleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgICAgIGxldCBtb2RpZmllZEJ5ID0gY2hhbmdlLm1vZGlmaWVkQnk7XHJcbiAgICAgICAgICBsZXQgaGlkID0gY2hhbmdlLnByb3BlcnRpZXNba2V5ICsgJ0hJRCddO1xyXG4gICAgICAgICAgbGV0IG1lcmdlRGF0YSA9IG5ldyBUcnVNZXJnZURhdGEodmFsdWUsIG1vZGlmaWVkQnksIGhpZCk7XHJcbiAgICAgICAgICBlbnRpdHkuTWVyZ2VfRGF0YV9TZXQuc2V0KGtleSwgbWVyZ2VEYXRhKTtcclxuICAgICAgICAgIGVudGl0eS5lbnRpdHlBc3BlY3QudmFsaWRhdGVQcm9wZXJ0eShrZXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiAob3JpZ2luYWxWYWx1ZXNba2V5XSkgIT09ICd1bmRlZmluZWQnKVxyXG4gICAgICAgICAgb3JpZ2luYWxWYWx1ZXNba2V5XSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1trZXldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBlbnRpdHlbJ3Jvd3ZlciddID0gY2hhbmdlLnJvd3ZlcjtcclxuICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1sncm93dmVyJ107XHJcblxyXG4gICAgaWYgKHN0YXRlQmVmb3JlUHJvcGVydHlDaGFuZ2UubmFtZSAhPT0gXCJNb2RpZmllZFwiIHx8IChPYmplY3Qua2V5cyhvcmlnaW5hbFZhbHVlcykubGVuZ3RoID09PSAwICYmIG9yaWdpbmFsVmFsdWVzLmNvbnN0cnVjdG9yID09PSBPYmplY3QpKSB7XHJcbiAgICAgIGlmICghZW50aXR5LmVudGl0eUFzcGVjdC5pc0JlaW5nU2F2ZWQpIHtcclxuICAgICAgICBlbnRpdHkuZW50aXR5QXNwZWN0LnNldFVuY2hhbmdlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2FpdGluZ0VudGl0aWVzLnB1c2goZW50aXR5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZSBlbnRpdHlbJ0RhdGFfTm90aWZpY2F0aW9uJ107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFdhaXRpbmdFbnRpdGllc1RvVW5jaGFuZ2VkID0gKCkgPT4ge1xyXG4gICAgdGhpcy53YWl0aW5nRW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVudGl0eSAmJiBlbnRpdHkuZW50aXR5QXNwZWN0KVxyXG4gICAgICAgIGVudGl0eS5lbnRpdHlBc3BlY3Quc2V0VW5jaGFuZ2VkKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW50aXR5Rm91bmRCeVF1ZXJ5ID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpO1xyXG4gICAgdmFyIGVudGl0aWVzID0gZW50aXR5QWNjZXNzb3Iuc2VhcmNoQnlSZWZBcnJheUNhY2hlT25seSh0aGlzLmVudGl0eSwgdGhpcy5nZXRMYXRlc3RRdWVyeSgpLCBbY2hhbmdlLnRhYmxlUmVmXSk7XHJcblxyXG4gICAgaWYgKCFlbnRpdGllcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpO1xyXG4gICAgICBlbnRpdGllcyA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQXJyYXlDYWNoZU9ubHkodGhpcy5lbnRpdHksIHRoaXMuZ2V0TGF0ZXN0UXVlcnkoKSwgW2NoYW5nZS50YWJsZVJlZl0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbnRpdGllcyA9PT0gbnVsbCA/IDAgOiBlbnRpdGllcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudGl0eUZyb21TZXJ2ZXIgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICB2YXIgZW50aXRpeSA9IGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmV2l0aFF1ZXJ5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIGNoYW5nZS50YWJsZVJlZik7XHJcbiAgICByZXR1cm4gZW50aXRpeTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW50aXR5RnJvbVJlc3VsdHMgPSAocmVzdWx0czogYW55LCBjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIHJlc3VsdHMuZmlsdGVyKChlOiBhbnkpID0+IHsgcmV0dXJuIGUuUmVmID09PSBjaGFuZ2UudGFibGVSZWYgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2F2aW5nID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5hcHBFbnZpb25tZW50LmlzU2F2aW5nKSB7XHJcbiAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApXHJcbiAgICB9KVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlID0gYXN5bmMgKHBheWxvYWQ6IGFueSkgPT4ge1xyXG4gICAgYXdhaXQgdGhpcy5pc1NhdmluZygpO1xyXG5cclxuICAgIHZhciByZWxvYWRSZXN1bHRzID0gZmFsc2U7XHJcbiAgICBwYXlsb2FkLmNoYW5nZXMuZm9yRWFjaChhc3luYyAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgICAgdmFyIGZvdW5kRW50aXRpZXMgPSBbXTtcclxuICAgICAgdmFyIGxvY2FsRW50aXR5ID0gdGhpcy5maW5kRW50aXR5SW5DYWNoZShjaGFuZ2UpO1xyXG4gICAgICB2YXIgZ2xvYmFsRW50aXR5ID0gdGhpcy5maW5kRW50aXR5SW5HbG9iYWxDYWNoZShjaGFuZ2UpO1xyXG4gICAgICBpZiAobG9jYWxFbnRpdHkpXHJcbiAgICAgICAgZm91bmRFbnRpdGllcy5wdXNoKGxvY2FsRW50aXR5KTtcclxuICAgICAgaWYgKGdsb2JhbEVudGl0eSlcclxuICAgICAgICBmb3VuZEVudGl0aWVzLnB1c2goZ2xvYmFsRW50aXR5KTtcclxuXHJcbiAgICAgIGlmIChmb3VuZEVudGl0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIGZvdW5kRW50aXRpZXMuZm9yRWFjaChhc3luYyAoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjaGFuZ2UudGFibGVOYW1lID09PSB0aGlzLnRhYmxlTmFtZSkge1xyXG5cclxuICAgICAgICAgICAgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdVJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50aXR5QWxyZWFkeUluUmVzdWx0cyA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIGlmICghZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRW50aXR5KGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eVRvUmVtb3ZlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eVRvUmVtb3ZlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnNwbGljZShyZXN1bHRzLmluZGV4T2YoZW50aXR5VG9SZW1vdmVbMF0pLCAxKTtcclxuICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdEJykge1xyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgdmFyIGVudGl0eVRvRGVsZXRlID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgIGlmIChlbnRpdHlUb0RlbGV0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGVudGl0eVRvRGVsZXRlWzBdLmVudGl0eUFzcGVjdC5zZXREZXRhY2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eVRvRGVsZXRlWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knKSB7XHJcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICB2YXIgZW50aXR5QWxyZWFkeUluUmVzdWx0cyA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiAhZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWxvY2FsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmVudGl0eSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcGtleU5hbWUgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWVdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEVudGl0eShuZXdFbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVudGl0eSA9PT0gbG9jYWxFbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRW50aXR5KGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRpdHlUb0RlbGV0ZSA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlUb0RlbGV0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eUFscmVhZHlJblJlc3VsdHNbMF0pLCAxKTtcclxuICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghZ2xvYmFsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dCEuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5LCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBrZXlOYW1lID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZV0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gIT09ICdEJykge1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgZW50aXR5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnVScgJiYgY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmdldEVudGl0eUZyb21TZXJ2ZXIoY2hhbmdlKS5zdWJzY3JpYmUoKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZW50aXR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZGRFbnRpdHkobmV3RW50aXR5KTtcclxuICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScgJiYgY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUxID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTFdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkyID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMiA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXkyO1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMl0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRFbnRpdHkobmV3RW50aXR5KTtcclxuICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScpIHtcclxuICAgICAgICAgIGxldCBlbnRpdHlUeXBlID0gdGhpcy50eXBlcy5nZXRUeXBlKGNoYW5nZS50YWJsZU5hbWUpO1xyXG4gICAgICAgICAgdmFyIG5ld0VudGl0eSA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQhLmVudGl0eUFjY2VzcygpLmFkZChlbnRpdHlUeXBlIGFzIGFueSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICBjb25zdCBwa2V5TmFtZTEgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMV0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZChlbnRpdHlUeXBlIGFzIGFueSwgdGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICB0eXBlIE9iamVjdEtleTIgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUyID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTI7XHJcbiAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWUyXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZXhwYW5kUGF0aHMgJiYgdGhpcy5leHBhbmRQYXRocy5sZW5ndGggJiYgdGhpcy5leHBhbmRQYXRocy5pbmNsdWRlcygnbycgKyBjaGFuZ2UudGFibGVOYW1lKSlcclxuICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBkYXRhQ2hhbmdlQXJncyA9IG5ldyBUcnVEYXRhQ2hhbmdlKCk7XHJcbiAgICBkYXRhQ2hhbmdlQXJncy5kYXRhQ2hhbmdlcyA9IHBheWxvYWQuY2hhbmdlcztcclxuICAgIGRhdGFDaGFuZ2VBcmdzLnJlbG9hZCA9IHJlbG9hZFJlc3VsdHM7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2VkKGRhdGFDaGFuZ2VBcmdzKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,20 +1,21 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { FormsModule } from "@angular/forms";
4
+ import { MaterialModule } from '../../material.module';
4
5
  import { TruExportDialog } from "./tru-export-dialog";
5
6
  import { MatCheckboxModule } from "@angular/material/checkbox";
6
7
  import * as i0 from "@angular/core";
7
8
  export class TruExportDialogModule {
8
9
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, declarations: [TruExportDialog], imports: [CommonModule, FormsModule, MatCheckboxModule], exports: [TruExportDialog] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, imports: [CommonModule, FormsModule, MatCheckboxModule] });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, declarations: [TruExportDialog], imports: [CommonModule, FormsModule, MaterialModule, MatCheckboxModule], exports: [TruExportDialog] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, imports: [CommonModule, FormsModule, MaterialModule, MatCheckboxModule] });
11
12
  }
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, decorators: [{
13
14
  type: NgModule,
14
15
  args: [{
15
16
  declarations: [TruExportDialog],
16
- imports: [CommonModule, FormsModule, MatCheckboxModule],
17
+ imports: [CommonModule, FormsModule, MaterialModule, MatCheckboxModule],
17
18
  exports: [TruExportDialog]
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWV4cG9ydC1kaWFsb2ctbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1kaWFsb2cvdHJ1LWV4cG9ydC1kaWFsb2ctbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTy9ELE1BQU0sT0FBTyxxQkFBcUI7dUdBQXJCLHFCQUFxQjt3R0FBckIscUJBQXFCLGlCQUpqQixlQUFlLGFBQ3BCLFlBQVksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLGFBQzVDLGVBQWU7d0dBRWQscUJBQXFCLFlBSHRCLFlBQVksRUFBRSxXQUFXLEVBQUUsaUJBQWlCOzsyRkFHM0MscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztvQkFDdkQsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgVHJ1RXhwb3J0RGlhbG9nIH0gZnJvbSBcIi4vdHJ1LWV4cG9ydC1kaWFsb2dcIjtcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVHJ1RXhwb3J0RGlhbG9nXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtUcnVFeHBvcnREaWFsb2ddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVFeHBvcnREaWFsb2dNb2R1bGUgeyB9XHJcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWV4cG9ydC1kaWFsb2ctbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1kaWFsb2cvdHJ1LWV4cG9ydC1kaWFsb2ctbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU8vRCxNQUFNLE9BQU8scUJBQXFCO3VHQUFyQixxQkFBcUI7d0dBQXJCLHFCQUFxQixpQkFKakIsZUFBZSxhQUNwQixZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsYUFDNUQsZUFBZTt3R0FFZCxxQkFBcUIsWUFIdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCOzsyRkFHM0QscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUcnVFeHBvcnREaWFsb2cgfSBmcm9tIFwiLi90cnUtZXhwb3J0LWRpYWxvZ1wiO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtUcnVFeHBvcnREaWFsb2ddLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRlcmlhbE1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtUcnVFeHBvcnREaWFsb2ddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVFeHBvcnREaWFsb2dNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -3,7 +3,8 @@ import { Component, Inject, HostListener } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/material/dialog";
5
5
  import * as i2 from "@angular/forms";
6
- import * as i3 from "@angular/material/checkbox";
6
+ import * as i3 from "@angular/material/button";
7
+ import * as i4 from "@angular/material/checkbox";
7
8
  export class TruExportDialog {
8
9
  dialogRef;
9
10
  data;
@@ -40,11 +41,11 @@ export class TruExportDialog {
40
41
  }
41
42
  ngOnInit() { }
42
43
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
43
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruExportDialog, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["math{padding:20px;display:inline-block}.mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruExportDialog, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
44
45
  }
45
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialog, decorators: [{
46
47
  type: Component,
47
- args: [{ selector: 'tru-export-dialog', template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["math{padding:20px;display:inline-block}.mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"] }]
48
+ args: [{ selector: 'tru-export-dialog', template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"] }]
48
49
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: TruExportDialog, decorators: [{
49
50
  type: Inject,
50
51
  args: [MAT_DIALOG_DATA]
@@ -58,4 +59,4 @@ export class TruExportDialogConfig {
58
59
  this.title = title;
59
60
  }
60
61
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWV4cG9ydC1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy90cnUtZXhwb3J0LWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL3RydS1leHBvcnQtZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT3hFLE1BQU0sT0FBTyxlQUFlO0lBR1A7SUFDZTtJQUhsQyxLQUFLLENBQVM7SUFFZCxZQUFtQixTQUF3QyxFQUN6QixJQUFxQjtRQURwQyxjQUFTLEdBQVQsU0FBUyxDQUErQjtRQUN6QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sR0FBRztRQUNSLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixLQUFLLEVBQUUsS0FBSztLQUNiLENBQUE7SUFFRCx3QkFBd0IsR0FBRyxHQUFHLEVBQUU7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDdEMsQ0FBQyxDQUFBO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO3VHQXZDRixlQUFlLDhDQUloQixlQUFlOzJGQUpkLGVBQWUsc0lDUjVCLHF1Q0FrQ0E7OzJGRDFCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLG1CQUFtQjs7MEJBUTFCLE1BQU07MkJBQUMsZUFBZTt5Q0F5QnpCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFjL0MsTUFBTSxPQUFPLHFCQUFxQjtJQUViO0lBQW5CLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQ2hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1LWV4cG9ydC1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZXhwb3J0LWRpYWxvZy5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cnUtZXhwb3J0LWRpYWxvZy5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1RXhwb3J0RGlhbG9nIGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VHJ1RXhwb3J0RGlhbG9nPixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogVHJ1RXhwb3J0RGlhbG9nKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcclxuICB9XHJcblxyXG4gIG9wdGlvbnMgPSB7XHJcbiAgICB1c2VHcmlkOiBmYWxzZSxcclxuICAgIHVzZU5hbWVzOiBmYWxzZSxcclxuICAgIHVzZUVtcHR5VGFnczogZmFsc2UsXHJcbiAgICBhc3luYzogZmFsc2VcclxuICB9XHJcblxyXG4gIG9uRm9ybWF0Rm9ySW1wb3J0Q2hlY2tlZCA9ICgpID0+IHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLnVzZU5hbWVzKVxyXG4gICAgICB0aGlzLm9wdGlvbnMudXNlRW1wdHlUYWdzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbkNvbmZpcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgb25EaXNtaXNzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5cHJlc3MnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXlDb2RlID09IDI3KSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09IDEzKSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLm9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1RXhwb3J0RGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHRpdGxlOiBzdHJpbmcpIHtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gIHt7dGl0bGV9fVxyXG48L2gxPlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHRhYmxlPlxyXG4gICAgPHRib2R5PlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwiZXhwb3J0LWRpYWxvZy1jaGVja2JveC1jb250YWluZXJcIiB0aXRsZT1cIlRvIHN1cHBvcnQgaW1wb3J0aW5nIHRoZSBleHBvcnQgZmlsZTogdXNlIG5hbWVzIGluc3RlYWQgb2YgbGFiZWxzLlwiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zLnVzZU5hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZvcm1hdEZvckltcG9ydENoZWNrZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIj5cclxuICAgICAgICAgICAgRm9ybWF0IGZvciBpbXBvcnRcclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY2xhc3M9XCJleHBvcnQtZGlhbG9nLWNoZWNrYm94LWNvbnRhaW5lclwiIHRpdGxlPVwiRXhwb3J0IG9ubHkgdGhlIHJvd3MgaW4gdGhlIGdyaWQuICBXaGVuIHVuY2hlY2tlZCwgZXhwb3J0cyB0aGUgcmVzdWx0cyBvZiBhIG5ldyBzZWFyY2ggd2l0aG91dCBsaW1pdGluZyByZXN1bHQgY291bnQgYXMgaXMgYSBub3JtYWwgc2VhcmNoLlwiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zLnVzZUdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYWZ0ZXInXCI+XHJcbiAgICAgICAgICAgIEV4cG9ydCBncmlkIHJvd3NcclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3Rib2R5PlxyXG4gIDwvdGFibGU+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvbkRpc21pc3MoKVwiPk5vPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib25Db25maXJtKClcIj5ZZXM8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWV4cG9ydC1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy90cnUtZXhwb3J0LWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL3RydS1leHBvcnQtZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU94RSxNQUFNLE9BQU8sZUFBZTtJQUdQO0lBQ2U7SUFIbEMsS0FBSyxDQUFTO0lBRWQsWUFBbUIsU0FBd0MsRUFDekIsSUFBcUI7UUFEcEMsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLEdBQUc7UUFDUixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxLQUFLO1FBQ2YsWUFBWSxFQUFFLEtBQUs7UUFDbkIsS0FBSyxFQUFFLEtBQUs7S0FDYixDQUFBO0lBRUQsd0JBQXdCLEdBQUcsR0FBRyxFQUFFO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLENBQUMsQ0FBQTtJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUU7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQzt1R0F2Q0YsZUFBZSw4Q0FJaEIsZUFBZTsyRkFKZCxlQUFlLHNJQ1I1Qixpd0NBaUNBOzsyRkR6QmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQVExQixNQUFNOzJCQUFDLGVBQWU7eUNBeUJ6QixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBYy9DLE1BQU0sT0FBTyxxQkFBcUI7SUFFYjtJQUFuQixZQUFtQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1leHBvcnQtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWV4cG9ydC1kaWFsb2cuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWV4cG9ydC1kaWFsb2cuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUV4cG9ydERpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRydUV4cG9ydERpYWxvZz4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFRydUV4cG9ydERpYWxvZykge1xyXG4gICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XHJcbiAgfVxyXG5cclxuICBvcHRpb25zID0ge1xyXG4gICAgdXNlR3JpZDogZmFsc2UsXHJcbiAgICB1c2VOYW1lczogZmFsc2UsXHJcbiAgICB1c2VFbXB0eVRhZ3M6IGZhbHNlLFxyXG4gICAgYXN5bmM6IGZhbHNlXHJcbiAgfVxyXG5cclxuICBvbkZvcm1hdEZvckltcG9ydENoZWNrZWQgPSAoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy51c2VOYW1lcylcclxuICAgICAgdGhpcy5vcHRpb25zLnVzZUVtcHR5VGFncyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25Db25maXJtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIG9uRGlzbWlzcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXByZXNzJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAyNykge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5vcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRydUV4cG9ydERpYWxvZ0NvbmZpZyB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aXRsZTogc3RyaW5nKSB7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIj5cclxuICB7e3RpdGxlfX1cclxuPC9oMT5cclxuXHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwibWF0LWRpYWxvZy1jb250ZW50XCI+XHJcbiAgPHRhYmxlPlxyXG4gICAgPHRib2R5PlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwiZXhwb3J0LWRpYWxvZy1jaGVja2JveC1jb250YWluZXJcIiB0aXRsZT1cIlRvIHN1cHBvcnQgaW1wb3J0aW5nIHRoZSBleHBvcnQgZmlsZTogdXNlIG5hbWVzIGluc3RlYWQgb2YgbGFiZWxzLlwiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cIm9wdGlvbnMudXNlTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRm9ybWF0Rm9ySW1wb3J0Q2hlY2tlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiPlxyXG4gICAgICAgICAgICBGb3JtYXQgZm9yIGltcG9ydFxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cImV4cG9ydC1kaWFsb2ctY2hlY2tib3gtY29udGFpbmVyXCIgdGl0bGU9XCJFeHBvcnQgb25seSB0aGUgcm93cyBpbiB0aGUgZ3JpZC4gIFdoZW4gdW5jaGVja2VkLCBleHBvcnRzIHRoZSByZXN1bHRzIG9mIGEgbmV3IHNlYXJjaCB3aXRob3V0IGxpbWl0aW5nIHJlc3VsdCBjb3VudCBhcyBpcyBhIG5vcm1hbCBzZWFyY2guXCI+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9wdGlvbnMudXNlR3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIj5cclxuICAgICAgICAgICAgRXhwb3J0IGdyaWQgcm93c1xyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGJvZHk+XHJcbiAgPC90YWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uRGlzbWlzcygpXCI+Tm88L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPlllczwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
@@ -14,7 +14,7 @@ import * as i3 from '@angular/material/button';
14
14
  import { MatButtonModule } from '@angular/material/button';
15
15
  import * as i7 from '@angular/forms';
16
16
  import { FormControl, FormsModule, ReactiveFormsModule, Validators, FormGroup } from '@angular/forms';
17
- import * as i3$1 from '@angular/material/checkbox';
17
+ import * as i4 from '@angular/material/checkbox';
18
18
  import { MatCheckboxModule } from '@angular/material/checkbox';
19
19
  import * as i9 from '@angular/material/input';
20
20
  import { MatInputModule } from '@angular/material/input';
@@ -36,7 +36,7 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete';
36
36
  import { MatBadgeModule } from '@angular/material/badge';
37
37
  import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
38
38
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
39
- import * as i4 from '@angular/material/card';
39
+ import * as i4$1 from '@angular/material/card';
40
40
  import { MatCardModule } from '@angular/material/card';
41
41
  import { MatChipsModule } from '@angular/material/chips';
42
42
  import { MatStepperModule } from '@angular/material/stepper';
@@ -633,11 +633,11 @@ class TruExportDialog {
633
633
  }
634
634
  ngOnInit() { }
635
635
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
636
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruExportDialog, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["math{padding:20px;display:inline-block}.mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] });
636
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruExportDialog, selector: "tru-export-dialog", host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
637
637
  }
638
638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialog, decorators: [{
639
639
  type: Component,
640
- args: [{ selector: 'tru-export-dialog', template: "<h1 mat-dialog-title>\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content>\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["math{padding:20px;display:inline-block}.mat-mdc-dialog-content{overflow:hidden}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"] }]
640
+ args: [{ selector: 'tru-export-dialog', template: "<h1 mat-dialog-title class=\"mat-dialog-title\">\r\n {{title}}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <table>\r\n <tbody>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"To support importing the export file: use names instead of labels.\">\r\n <mat-checkbox [(ngModel)]=\"options.useNames\"\r\n (change)=\"onFormatForImportChecked()\"\r\n [labelPosition]=\"'after'\">\r\n Format for import\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"export-dialog-checkbox-container\" title=\"Export only the rows in the grid. When unchecked, exports the results of a new search without limiting result count as is a normal search.\">\r\n <mat-checkbox \r\n [(ngModel)]=\"options.useGrid\"\r\n [labelPosition]=\"'after'\">\r\n Export grid rows\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<div mat-dialog-actions>\r\n <button mat-button (click)=\"onDismiss()\">No</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Yes</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.export-dialog-checkbox-container{padding-bottom:5px;display:inline-block}\n"] }]
641
641
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: TruExportDialog, decorators: [{
642
642
  type: Inject,
643
643
  args: [MAT_DIALOG_DATA]
@@ -732,7 +732,7 @@ class TruPasswordDialog {
732
732
  this.subs.forEach(s => s.unsubscribe());
733
733
  }
734
734
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruPasswordDialog, deps: [{ token: i1.MatDialogRef }, { token: i2.HttpClient }, { token: TruAppEnvironment }, { token: TruUser }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
735
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruPasswordDialog, selector: "tru-password-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <p class=\"tru-password-dialog-title\">Change Password</p>\r\n <p class=\"tru-password-dialog-username\">for {{username}}</p>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content tru-control-container tru-password-dialog\">\r\n <p>{{message}}</p>\r\n\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Current Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n [formControl]=\"currentPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <p class=\"tru-password-dialog-error-msg\" *ngIf=\"errorMsg\">{{errorMsg}}</p>\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>New Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n [formControl]=\"newPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <password-strength-meter [password]=\"newPasswordControl.value\" (strengthChange)=\"onPasswordStrengthChanged($event)\" />\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Confirm New Password</mat-label>\r\n <mat-form-field>\r\n <input #confirmInput\r\n matInput\r\n [formControl]=\"confirmNewPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n </div>\r\n <mat-checkbox [formControl]=\"showPasswordControl\"\r\n (click)=\"onShowPasswordClicked()\"\r\n [labelPosition]=\"'before'\">\r\n Show Password\r\n </mat-checkbox>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Cancel</button>\r\n <button [disabled]=\"!canSubmit() || busy || errorMsg ? 'disabled' : null\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Submit</button>\r\n</div>\r\n", styles: [".tru-control-container{font-family:Calibri,Helvetica,Arial,sans-serif!important}label{font-size:12px}.tru-select-option{min-height:unset}::ng-deep .mdc-text-field{border:0px;padding:0}::ng-deep .mdc-text-field--disabled .mdc-text-field__input{color:#00000061!important}::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:unset!important}::ng-deep .tru-control-container .mdc-notched-outline__leading{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}::ng-deep .tru-control-container .mdc-notched-outline__trailing{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}::ng-deep .tru-control-container .mdc-text-field--outlined{padding:0!important}::ng-deep .tru-control-container .mdc-text-field__input{width:calc(100% - 10px)!important}::ng-deep .tru-control-container .mat-mdc-select{width:calc(100% - 10px)!important}::ng-deep .tru-control-container.search .mat-mdc-form-field-infix,::ng-deep .tru-control-container.edit .mat-mdc-form-field-infix{padding:0 0 5px!important;min-height:unset!important}::ng-deep .tru-control-container input{font-size:12px!important;padding-left:5px}::ng-deep .tru-control-container mat-select{font-size:12px!important;padding-left:5px}::ng-deep .tru-control-container .mat-mdc-form-field-focus-overlay{background-color:unset}::ng-deep .tru-control-container .mat-mdc-checkbox{height:30px;float:left}::ng-deep .tru-control-container .mdc-checkbox__ripple{display:none}::ng-deep .tru-control-container .mdc-checkbox__background{border:1px solid currentColor}::ng-deep .tru-control-container .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#006dcc}::ng-deep .tru-control-container .mat-mdc-checkbox label{color:#0000008a}::ng-deep .mat-mdc-form-field-icon-prefix>.mat-icon{padding:0 0 5px!important}::ng-deep .mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 0 5px!important}::ng-deep .tru-control-container .mdc-text-field{overflow:visible}::ng-deep label{font-size:12px}::ng-deep .tru-control-container .mdc-text-field{will-change:unset!important}.mat-mdc-checkbox.mat-accent{--mdc-checkbox-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-icon-color: #006dcc;--mdc-checkbox-selected-hover-icon-color: #006dcc;--mdc-checkbox-selected-icon-color: #006dcc;--mdc-checkbox-selected-pressed-icon-color: #006dcc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54)}.tru-control-container{margin-bottom:10px;margin-right:10px}::ng-deep .tru-control-container .mat-mdc-form-field{display:inline!important}::ng-deep .tru-control-container .mat-mdc-form-field-infix{padding:0!important;min-height:unset!important}::ng-deep .tru-control-container mat-label{font-size:14px;font-weight:700}::ng-deep .tru-control-container input{font-size:12px;padding-left:5px}::ng-deep .tru-control-container mat-select{font-size:12px;padding-left:5px}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__leading{border-color:#bd362f}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__notch{border-color:#bd362f}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__trailing{border-color:#bd362f}::ng-deep .tru-control-container .mat-mdc-form-field-bottom-align:before{content:unset!important}::ng-deep .tru-control-container path{color:#a9a9a9}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid+div:before{border-color:red}\n", "::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important;overflow:hidden}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.tru-password-dialog .tru-password-dialog-control-wrapper{margin-bottom:20px}.tru-password-dialog-title{font-size:26px}.tru-password-dialog-username{font-size:14px;margin:0;color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, .6))}.tru-password-dialog-error-msg{color:red!important;font-size:11px!important}mat-checkbox{float:right!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "component", type: i11.PasswordStrengthMeterComponent, selector: "password-strength-meter", inputs: ["password", "minPasswordLength", "enableFeedback", "enableAsync", "colors", "numberOfProgressBarItems"], outputs: ["strengthChange"] }] });
735
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruPasswordDialog, selector: "tru-password-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <p class=\"tru-password-dialog-title\">Change Password</p>\r\n <p class=\"tru-password-dialog-username\">for {{username}}</p>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content tru-control-container tru-password-dialog\">\r\n <p>{{message}}</p>\r\n\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Current Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n [formControl]=\"currentPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <p class=\"tru-password-dialog-error-msg\" *ngIf=\"errorMsg\">{{errorMsg}}</p>\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>New Password</mat-label>\r\n <mat-form-field>\r\n <input #newInput\r\n matInput\r\n [formControl]=\"newPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n <password-strength-meter [password]=\"newPasswordControl.value\" (strengthChange)=\"onPasswordStrengthChanged($event)\" />\r\n </div>\r\n <div class=\"tru-password-dialog-control-wrapper\">\r\n <mat-label>Confirm New Password</mat-label>\r\n <mat-form-field>\r\n <input #confirmInput\r\n matInput\r\n [formControl]=\"confirmNewPasswordControl\"\r\n [type]=\"showPassword ? 'text' : 'password'\" />\r\n </mat-form-field>\r\n </div>\r\n <mat-checkbox [formControl]=\"showPasswordControl\"\r\n (click)=\"onShowPasswordClicked()\"\r\n [labelPosition]=\"'before'\">\r\n Show Password\r\n </mat-checkbox>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Cancel</button>\r\n <button [disabled]=\"!canSubmit() || busy || errorMsg ? 'disabled' : null\" mat-raised-button color=\"primary\" (click)=\"onConfirm()\">Submit</button>\r\n</div>\r\n", styles: [".tru-control-container{font-family:Calibri,Helvetica,Arial,sans-serif!important}label{font-size:12px}.tru-select-option{min-height:unset}::ng-deep .mdc-text-field{border:0px;padding:0}::ng-deep .mdc-text-field--disabled .mdc-text-field__input{color:#00000061!important}::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:unset!important}::ng-deep .tru-control-container .mdc-notched-outline__leading{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}::ng-deep .tru-control-container .mdc-notched-outline__trailing{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}::ng-deep .tru-control-container .mdc-text-field--outlined{padding:0!important}::ng-deep .tru-control-container .mdc-text-field__input{width:calc(100% - 10px)!important}::ng-deep .tru-control-container .mat-mdc-select{width:calc(100% - 10px)!important}::ng-deep .tru-control-container.search .mat-mdc-form-field-infix,::ng-deep .tru-control-container.edit .mat-mdc-form-field-infix{padding:0 0 5px!important;min-height:unset!important}::ng-deep .tru-control-container input{font-size:12px!important;padding-left:5px}::ng-deep .tru-control-container mat-select{font-size:12px!important;padding-left:5px}::ng-deep .tru-control-container .mat-mdc-form-field-focus-overlay{background-color:unset}::ng-deep .tru-control-container .mat-mdc-checkbox{height:30px;float:left}::ng-deep .tru-control-container .mdc-checkbox__ripple{display:none}::ng-deep .tru-control-container .mdc-checkbox__background{border:1px solid currentColor}::ng-deep .tru-control-container .mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#006dcc}::ng-deep .tru-control-container .mat-mdc-checkbox label{color:#0000008a}::ng-deep .mat-mdc-form-field-icon-prefix>.mat-icon{padding:0 0 5px!important}::ng-deep .mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 0 5px!important}::ng-deep .tru-control-container .mdc-text-field{overflow:visible}::ng-deep label{font-size:12px}::ng-deep .tru-control-container .mdc-text-field{will-change:unset!important}.mat-mdc-checkbox.mat-accent{--mdc-checkbox-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-icon-color: #006dcc;--mdc-checkbox-selected-hover-icon-color: #006dcc;--mdc-checkbox-selected-icon-color: #006dcc;--mdc-checkbox-selected-pressed-icon-color: #006dcc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54)}.tru-control-container{margin-bottom:10px;margin-right:10px}::ng-deep .tru-control-container .mat-mdc-form-field{display:inline!important}::ng-deep .tru-control-container .mat-mdc-form-field-infix{padding:0!important;min-height:unset!important}::ng-deep .tru-control-container mat-label{font-size:14px;font-weight:700}::ng-deep .tru-control-container input{font-size:12px;padding-left:5px}::ng-deep .tru-control-container mat-select{font-size:12px;padding-left:5px}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__leading{border-color:#bd362f}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__notch{border-color:#bd362f}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid .mdc-notched-outline__trailing{border-color:#bd362f}::ng-deep .tru-control-container .mat-mdc-form-field-bottom-align:before{content:unset!important}::ng-deep .tru-control-container path{color:#a9a9a9}::ng-deep .tru-control-container .mat-mdc-form-field-flex.invalid+div:before{border-color:red}\n", "::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mdc-dialog__title{padding:20px 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important;overflow:hidden}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.tru-password-dialog .tru-password-dialog-control-wrapper{margin-bottom:20px}.tru-password-dialog-title{font-size:26px}.tru-password-dialog-username{font-size:14px;margin:0;color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, .6))}.tru-password-dialog-error-msg{color:red!important;font-size:11px!important}mat-checkbox{float:right!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "component", type: i11.PasswordStrengthMeterComponent, selector: "password-strength-meter", inputs: ["password", "minPasswordLength", "enableFeedback", "enableAsync", "colors", "numberOfProgressBarItems"], outputs: ["strengthChange"] }] });
736
736
  }
737
737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruPasswordDialog, decorators: [{
738
738
  type: Component,
@@ -2930,7 +2930,7 @@ class TruDataChangeParser {
2930
2930
  entityFoundByQuery = (change) => {
2931
2931
  var entityAccessor = this.dataContext.entityAccess();
2932
2932
  var entities = entityAccessor.searchByRefArrayCacheOnly(this.entity, this.getLatestQuery(), [change.tableRef]);
2933
- if (entities !== null && !entities.length) {
2933
+ if (!entities?.length) {
2934
2934
  var entityAccessor = this.globalDataContext.entityAccess();
2935
2935
  entities = entityAccessor.searchByRefArrayCacheOnly(this.entity, this.getLatestQuery(), [change.tableRef]);
2936
2936
  }
@@ -6287,14 +6287,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
6287
6287
 
6288
6288
  class TruExportDialogModule {
6289
6289
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6290
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, declarations: [TruExportDialog], imports: [CommonModule, FormsModule, MatCheckboxModule], exports: [TruExportDialog] });
6291
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, imports: [CommonModule, FormsModule, MatCheckboxModule] });
6290
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, declarations: [TruExportDialog], imports: [CommonModule, FormsModule, MaterialModule, MatCheckboxModule], exports: [TruExportDialog] });
6291
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, imports: [CommonModule, FormsModule, MaterialModule, MatCheckboxModule] });
6292
6292
  }
6293
6293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruExportDialogModule, decorators: [{
6294
6294
  type: NgModule,
6295
6295
  args: [{
6296
6296
  declarations: [TruExportDialog],
6297
- imports: [CommonModule, FormsModule, MatCheckboxModule],
6297
+ imports: [CommonModule, FormsModule, MaterialModule, MatCheckboxModule],
6298
6298
  exports: [TruExportDialog]
6299
6299
  }]
6300
6300
  }] });
@@ -6563,7 +6563,7 @@ class TruLogin {
6563
6563
  }
6564
6564
  }
6565
6565
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruLogin, deps: [{ token: TruAuth }], target: i0.ɵɵFactoryTarget.Component });
6566
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruLogin, selector: "tru-login", ngImport: i0, template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
6566
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: TruLogin, selector: "tru-login", ngImport: i0, template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
6567
6567
  }
6568
6568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruLogin, decorators: [{
6569
6569
  type: Component,