nuxeo-development-framework 4.4.0 → 4.4.2

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.
@@ -84,7 +84,7 @@ export class DataChartComponent extends BaseChartComponent {
84
84
  _labels.add(item.key);
85
85
  return item.docCount;
86
86
  });
87
- return Object.assign(Object.assign(Object.assign({ label: (meta === null || meta === void 0 ? void 0 : meta.label) || '', backgroundColor: [...metaColors, ...defaultColors, ...randomColors], borderWidth: 0 }, baseDataset), metaDataset), { data: data });
87
+ return Object.assign(Object.assign(Object.assign({ label: (meta === null || meta === void 0 ? void 0 : meta.label) ? this._translateService.instant(meta === null || meta === void 0 ? void 0 : meta.label) : '', backgroundColor: [...metaColors, ...defaultColors, ...randomColors], borderWidth: 0 }, baseDataset), metaDataset), { data: data });
88
88
  });
89
89
  return {
90
90
  labels: Array.from(_labels.values()),
@@ -166,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
166
166
  }], onDataReady: [{
167
167
  type: Output
168
168
  }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9jb21wb25lbnRzL2RhdGEtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBc0I1RCxNQUFNLE9BQU8sa0JBQ1gsU0FBUSxrQkFBeUI7SUE4Q2pDLFlBQ1UsaUJBQW1DLEVBQ25DLGlCQUFtQztRQUUzQyxLQUFLLEVBQUUsQ0FBQztRQUhBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQTVCcEMsb0JBQWUsR0FBRyxZQUFZLENBQUM7UUFNL0IsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBUXpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFJOUQsb0JBQWUsR0FBRyxJQUFJ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OztHQWVUOzRGQUdVLGtCQUFrQjtrQkFwQjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWDtzSUFNYyxVQUFVO3NCQUF0QixLQUFLO2dCQVlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENoYXJ0RGF0YSwgQ2hhcnREYXRhc2V0LCBDaGFydFR5cGUsIENvbG9yIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBmaW5hbGl6ZSxcclxuICBtYXAsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENIQVJUX01BSU5fQ09MT1IsIENPTE9SU19DT1VOVCB9IGZyb20gJy4uL2NoYXJ0LmNvbnN0JztcclxuaW1wb3J0IHtcclxuICBDdXN0b21DaGFydE9wdGlvbnMsXHJcbiAgRGF0YVNvdXJjZUNvbmZpZyxcclxuICBEYXRhU291cmNlUmVzdWx0LFxyXG4gIFN0YXRpc3RpY0J1Y2tldCxcclxuICBTdGF0aXN0aWNSZXF1ZXN0Q29uZmlnLFxyXG59IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFN0YXRpc3RpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUNvbG9yVmFyaWFudHMsIGlzT2JqZWN0IH0gZnJvbSAnLi4vdXRpbGl0eSc7XHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1jaGFydC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGF0YS1jaGFydCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxhcHAtY2hhcnRcclxuICAgICAgKm5nSWY9XCJjaGFydERhdGEkIHwgYXN5bmMgYXMgZGF0YVwiXHJcbiAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICAgIFtwbHVnaW5zXT1cInBsdWdpbnNcIlxyXG4gICAgICBbd2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgIFtsZWdlbmRdPVwibGVnZW5kXCJcclxuICAgICAgW2ZvbnRGYW1pbHldPVwiZm9udEZhbWlseVwiXHJcbiAgICAgIFtmb250U2l6ZV09XCJmb250U2l6ZVwiXHJcbiAgICAgIFtyZXNwb25zaXZlXT1cInJlc3BvbnNpdmVcIlxyXG4gICAgICAob25SZWFkeSk9XCJvblJlYWR5LmVtaXQoJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtY2hhcnQ+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUNoYXJ0Q29tcG9uZW50PFRUeXBlIGV4dGVuZHMgQ2hhcnRUeXBlPlxyXG4gIGV4dGVuZHMgQmFzZUNoYXJ0Q29tcG9uZW50PFRUeXBlPlxyXG4gIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICBwcml2YXRlIF9kYXRhU291cmNlOiBEYXRhU291cmNlQ29uZmlnPFRUeXBlPjtcclxuICBASW5wdXQoKSBzZXQgZGF0YVNvdXJjZShvYmopIHtcclxuICAgIGNvbnN0IGlzRXF1YWwgPSBfLmlzRXF1YWwob2JqLCB0aGlzLl9kYXRhU291cmNlKTtcclxuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBvYmo7XHJcbiAgICBpZiAob2JqICYmICFpc0VxdWFsICYmIHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgdGhpcy5fcmVidWlsZERhdGFTdWIubmV4dCh7fSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0YVNvdXJjZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogQ3VzdG9tQ2hhcnRPcHRpb25zPFRUeXBlPjtcclxuXHJcbiAgQElucHV0KCkgZGF0YXNldDogT21pdDxDaGFydERhdGFzZXQ8VFR5cGU+LCAnZGF0YSc+O1xyXG5cclxuICBASW5wdXQoKSB0cmFuc2xhdGVQcmVmaXggPSAnU1RBVElTVElDUyc7XHJcblxyXG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBjb2xvcnM6IENvbG9yW107XHJcblxyXG4gIEBJbnB1dCgpIHVwZGF0ZU9uTGFuZ0NoYW5nZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB1cGRhdGVEYXRhKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgdGhpcy5fcmVidWlsZERhdGFTdWIubmV4dChfLmlzT2JqZWN0KHBhcmFtcykgPyBwYXJhbXMgOiB7fSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSB0cmFuc2Zvcm1EYXRhOiAoZGF0YTogRGF0YVNvdXJjZVJlc3VsdDxUVHlwZT5bXSkgPT4gQ2hhcnREYXRhPFRUeXBlPjtcclxuXHJcbiAgQE91dHB1dCgpIG9uRGF0YVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhU291cmNlUmVzdWx0PFRUeXBlPltdPigpO1xyXG5cclxuICBjaGFydERhdGEkOiBPYnNlcnZhYmxlPENoYXJ0RGF0YT47XHJcblxyXG4gIHByaXZhdGUgX3JlYnVpbGREYXRhU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBhbnk+PihudWxsKTtcclxuICBwcml2YXRlIF9yZWJ1aWxkVHJpZ2dlciQgPSB0aGlzLl9yZWJ1aWxkRGF0YVN1Yi5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICBwYWdlU2l6ZTogMSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdGF0aXN0aWNTZXJ2aWNlOiBTdGF0aXN0aWNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdGF0aXN0aWNTZXJ2aWNlLnByZXBhcmVDb25maWcoe1xyXG4gICAgICB0cmFuc2xhdGVQcmVmaXg6IHRoaXMudHJhbnNsYXRlUHJlZml4LFxyXG4gICAgICBiaW5kVmFsdWU6IHRoaXMuYmluZFZhbHVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jaGFydERhdGEkID0gdGhpcy5fcmVidWlsZFRyaWdnZXIkLnBpcGUoXHJcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+IHRoaXMuX3ByZXBhcmVkRGF0YShwYXJhbXMpKVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3N1YnNjcmliZVRvTGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvTGFuZ3VhZ2UoKSB7XHJcbiAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJlLCBuZXh0KSA9PiBwcmUubGFuZyA9PSBuZXh0LmxhbmcpLFxyXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9pc0luaXRpYWxpemVkICYmIHRoaXMudXBkYXRlT25MYW5nQ2hhbmdlKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVidWlsZERhdGFTdWIubmV4dCh7fSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZWREYXRhKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XHJcbiAgICBjb25zdCBkYXRhU291cmNlcyQgPSB0aGlzLmRhdGFTb3VyY2UubWFwKChkYXRhU291cmNlKSA9PiB7XHJcbiAgICAgIGNvbnN0IF9vYnNlcnZhYmxlcyQgPSBkYXRhU291cmNlLmNvbmZpZy5tYXAoKGNvbmZpZykgPT5cclxuICAgICAgICB0aGlzLl9mZXRjaFN0YXRpc3RpYyhjb25maWcsIHBhcmFtcylcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGZvcmtKb2luKHtcclxuICAgICAgICByZXN1bHRzOiBmb3JrSm9pbihfb2JzZXJ2YWJsZXMkKS5waXBlKFxyXG4gICAgICAgICAgbWFwKChyZXN1bHRzKSA9PiByZXN1bHRzLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSkpXHJcbiAgICAgICAgKSxcclxuICAgICAgICBtZXRhOiBvZih7XHJcbiAgICAgICAgICBsYWJlbDogZGF0YVNvdXJjZS5sYWJlbCxcclxuICAgICAgICAgIGRhdGFzZXQ6IGRhdGFTb3VyY2UuZGF0YXNldCxcclxuICAgICAgICAgIGNvbG9yczogZGF0YVNvdXJjZS5jb2xvcnMsXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH0pLnBpcGUoXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgKSBhcyBPYnNlcnZhYmxlPERhdGFTb3VyY2VSZXN1bHQ8VFR5cGU+PjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihkYXRhU291cmNlcyQpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbkRhdGFSZWFkeS5lbWl0KHJlcyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtRGF0YSA/IHRoaXMudHJhbnNmb3JtRGF0YShyZXMpIDogdGhpcy5fcHJlcGFyZUNoYXJ0RGF0YShyZXMpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVDaGFydERhdGEocmVzOiBEYXRhU291cmNlUmVzdWx0PFRUeXBlPltdKTogQ2hhcnREYXRhPENoYXJ0VHlwZT4ge1xyXG4gICAgY29uc3QgX2xhYmVscyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICAgIGNvbnN0IF9kYXRhc2V0cyA9IHJlcy5tYXAoKHsgcmVzdWx0cywgbWV0YSB9KSA9PiB7XHJcbiAgICAgIGNvbnN0IGJhc2VEYXRhc2V0ID0gaXNPYmplY3Q8VFR5cGU+KHRoaXMuZGF0YXNldCkgPyB0aGlzLmRhdGFzZXQgOiB7fTtcclxuICAgICAgY29uc3QgbWV0YURhdGFzZXQgPSBpc09iamVjdDxUVHlwZT4obWV0YT8uZGF0YXNldCkgPyBtZXRhLmRhdGFzZXQgOiB7fTtcclxuXHJcbiAgICAgIGNvbnN0IG1ldGFDb2xvcnMgPSBBcnJheS5pc0FycmF5KG1ldGE/LmNvbG9ycykgPyBtZXRhPy5jb2xvcnMgOiBbXTtcclxuICAgICAgY29uc3QgZGVmYXVsdENvbG9ycyA9IEFycmF5LmlzQXJyYXkodGhpcz8uY29sb3JzKSA/IHRoaXMuY29sb3JzIDogW107XHJcbiAgICAgIGNvbnN0IHJhbmRvbUNvbG9ycyA9XHJcbiAgICAgICAgIW1ldGE/LmNvbG9ycyAmJiAhdGhpcy5jb2xvcnMgPyB0aGlzLl9nZW5lcmF0ZUNvbG9ycyhDT0xPUlNfQ09VTlQpIDogW107XHJcblxyXG4gICAgICBjb25zdCBkYXRhID0gcmVzdWx0cy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBfbGFiZWxzLmFkZChpdGVtLmtleSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZG9jQ291bnQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsYWJlbDogbWV0YT8ubGFiZWwgfHwgJycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBbLi4ubWV0YUNvbG9ycywgLi4uZGVmYXVsdENvbG9ycywgLi4ucmFuZG9tQ29sb3JzXSxcclxuICAgICAgICBib3JkZXJXaWR0aDogMCxcclxuICAgICAgICAuLi5iYXNlRGF0YXNldCxcclxuICAgICAgICAuLi5tZXRhRGF0YXNldCxcclxuICAgICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGFiZWxzOiBBcnJheS5mcm9tKF9sYWJlbHMudmFsdWVzKCkpLFxyXG4gICAgICBkYXRhc2V0czogX2RhdGFzZXRzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZldGNoU3RhdGlzdGljKFxyXG4gICAgY29uZmlnOiBTdGF0aXN0aWNSZXF1ZXN0Q29uZmlnLFxyXG4gICAgb3ZlcnJpZGVzUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cclxuICApOiBPYnNlcnZhYmxlPFN0YXRpc3RpY0J1Y2tldFtdPiB7XHJcbiAgICBjb25zdCBfcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge30sXHJcbiAgICAgIHRoaXMuX2RlZmF1bHRQYXJhbXMsXHJcbiAgICAgIGNvbmZpZz8ucGFyYW1zIHx8IHt9LFxyXG4gICAgICBvdmVycmlkZXNQYXJhbXNcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldCh0aGlzLnRyYW5zbGF0ZVByZWZpeCB8fCAnU1RBVElTVElDUycpXHJcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgoXykgPT4gdGhpcy5fc3RhdGlzdGljU2VydmljZS5wcmVwYXJlU3RhdGlzdGljKGNvbmZpZywgX3BhcmFtcykpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dlbmVyYXRlQ29sb3JzKGxlbmd0aDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuX2dldE1haW5Db2xvcigpIHx8IENIQVJUX01BSU5fQ09MT1I7XHJcbiAgICByZXR1cm4gW10uY29uY2F0KFxyXG4gICAgICBjcmVhdGVDb2xvclZhcmlhbnRzKGNvbG9yLCBsZW5ndGgsICdzaGFkZScpLFxyXG4gICAgICBjcmVhdGVDb2xvclZhcmlhbnRzKGNvbG9yLCBsZW5ndGgsICd0aW50JylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRNYWluQ29sb3IoY3NzVmFyID0gJy0tbWFpbi1jb2xvcicpIHtcclxuICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShyb290KS5nZXRQcm9wZXJ0eVZhbHVlKGNzc1ZhcikudHJpbSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9jb21wb25lbnRzL2RhdGEtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBc0I1RCxNQUFNLE9BQU8sa0JBQ1gsU0FBUSxrQkFBeUI7SUE4Q2pDLFlBQ1UsaUJBQW1DLEVBQ25DLGlCQUFtQztRQUUzQyxLQUFLLEVBQUUsQ0FBQztRQUhBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQTVCcEMsb0JBQWUsR0FBRyxZQUFZLENBQUM7UUFNL0IsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBUXpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFJOUQsb0JBQWUsR0FBRyxJQUFJ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Z0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoRSxDQUFDOztnSEF4S1Usa0JBQWtCO29HQUFsQixrQkFBa0Isc1hBbEJuQjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQ7NEZBR1Usa0JBQWtCO2tCQXBCOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztHQWVUO29CQUNELE1BQU0sRUFBRSxFQUFFO2lCQUNYO3NJQU1jLFVBQVU7c0JBQXRCLEtBQUs7Z0JBWUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ2hhcnREYXRhLCBDaGFydERhdGFzZXQsIENoYXJ0VHlwZSwgQ29sb3IgfSBmcm9tICdjaGFydC5qcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIGZpbmFsaXplLFxyXG4gIG1hcCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ0hBUlRfTUFJTl9DT0xPUiwgQ09MT1JTX0NPVU5UIH0gZnJvbSAnLi4vY2hhcnQuY29uc3QnO1xyXG5pbXBvcnQge1xyXG4gIEN1c3RvbUNoYXJ0T3B0aW9ucyxcclxuICBEYXRhU291cmNlQ29uZmlnLFxyXG4gIERhdGFTb3VyY2VSZXN1bHQsXHJcbiAgU3RhdGlzdGljQnVja2V0LFxyXG4gIFN0YXRpc3RpY1JlcXVlc3RDb25maWcsXHJcbn0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgU3RhdGlzdGljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgY3JlYXRlQ29sb3JWYXJpYW50cywgaXNPYmplY3QgfSBmcm9tICcuLi91dGlsaXR5JztcclxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWNoYXJ0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kYXRhLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGFwcC1jaGFydFxyXG4gICAgICAqbmdJZj1cImNoYXJ0RGF0YSQgfCBhc3luYyBhcyBkYXRhXCJcclxuICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcclxuICAgICAgW3BsdWdpbnNdPVwicGx1Z2luc1wiXHJcbiAgICAgIFt3aWR0aF09XCJ3aWR0aFwiXHJcbiAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgW2xlZ2VuZF09XCJsZWdlbmRcIlxyXG4gICAgICBbZm9udEZhbWlseV09XCJmb250RmFtaWx5XCJcclxuICAgICAgW2ZvbnRTaXplXT1cImZvbnRTaXplXCJcclxuICAgICAgW3Jlc3BvbnNpdmVdPVwicmVzcG9uc2l2ZVwiXHJcbiAgICAgIChvblJlYWR5KT1cIm9uUmVhZHkuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L2FwcC1jaGFydD5cclxuICBgLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhQ2hhcnRDb21wb25lbnQ8VFR5cGUgZXh0ZW5kcyBDaGFydFR5cGU+XHJcbiAgZXh0ZW5kcyBCYXNlQ2hhcnRDb21wb25lbnQ8VFR5cGU+XHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IERhdGFTb3VyY2VDb25maWc8VFR5cGU+O1xyXG4gIEBJbnB1dCgpIHNldCBkYXRhU291cmNlKG9iaikge1xyXG4gICAgY29uc3QgaXNFcXVhbCA9IF8uaXNFcXVhbChvYmosIHRoaXMuX2RhdGFTb3VyY2UpO1xyXG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IG9iajtcclxuICAgIGlmIChvYmogJiYgIWlzRXF1YWwgJiYgdGhpcy5faXNJbml0aWFsaXplZCkge1xyXG4gICAgICB0aGlzLl9yZWJ1aWxkRGF0YVN1Yi5uZXh0KHt9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBkYXRhU291cmNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBvcHRpb25zOiBDdXN0b21DaGFydE9wdGlvbnM8VFR5cGU+O1xyXG5cclxuICBASW5wdXQoKSBkYXRhc2V0OiBPbWl0PENoYXJ0RGF0YXNldDxUVHlwZT4sICdkYXRhJz47XHJcblxyXG4gIEBJbnB1dCgpIHRyYW5zbGF0ZVByZWZpeCA9ICdTVEFUSVNUSUNTJztcclxuXHJcbiAgQElucHV0KCkgYmluZFZhbHVlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbG9yczogQ29sb3JbXTtcclxuXHJcbiAgQElucHV0KCkgdXBkYXRlT25MYW5nQ2hhbmdlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHVwZGF0ZURhdGEocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICB0aGlzLl9yZWJ1aWxkRGF0YVN1Yi5uZXh0KF8uaXNPYmplY3QocGFyYW1zKSA/IHBhcmFtcyA6IHt9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHRyYW5zZm9ybURhdGE6IChkYXRhOiBEYXRhU291cmNlUmVzdWx0PFRUeXBlPltdKSA9PiBDaGFydERhdGE8VFR5cGU+O1xyXG5cclxuICBAT3V0cHV0KCkgb25EYXRhUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFTb3VyY2VSZXN1bHQ8VFR5cGU+W10+KCk7XHJcblxyXG4gIGNoYXJ0RGF0YSQ6IE9ic2VydmFibGU8Q2hhcnREYXRhPjtcclxuXHJcbiAgcHJpdmF0ZSBfcmVidWlsZERhdGFTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIGFueT4+KG51bGwpO1xyXG4gIHByaXZhdGUgX3JlYnVpbGRUcmlnZ2VyJCA9IHRoaXMuX3JlYnVpbGREYXRhU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgIHBhZ2VTaXplOiAxLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0YXRpc3RpY1NlcnZpY2U6IFN0YXRpc3RpY1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0YXRpc3RpY1NlcnZpY2UucHJlcGFyZUNvbmZpZyh7XHJcbiAgICAgIHRyYW5zbGF0ZVByZWZpeDogdGhpcy50cmFuc2xhdGVQcmVmaXgsXHJcbiAgICAgIGJpbmRWYWx1ZTogdGhpcy5iaW5kVmFsdWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNoYXJ0RGF0YSQgPSB0aGlzLl9yZWJ1aWxkVHJpZ2dlciQucGlwZShcclxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxyXG4gICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4gdGhpcy5fcHJlcGFyZWREYXRhKHBhcmFtcykpXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc3Vic2NyaWJlVG9MYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9MYW5ndWFnZSgpIHtcclxuICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmUsIG5leHQpID0+IHByZS5sYW5nID09IG5leHQubGFuZyksXHJcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX2lzSW5pdGlhbGl6ZWQgJiYgdGhpcy51cGRhdGVPbkxhbmdDaGFuZ2UpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgICB0aGlzLl9yZWJ1aWxkRGF0YVN1Yi5uZXh0KHt9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlZERhdGEocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30pIHtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2VzJCA9IHRoaXMuZGF0YVNvdXJjZS5tYXAoKGRhdGFTb3VyY2UpID0+IHtcclxuICAgICAgY29uc3QgX29ic2VydmFibGVzJCA9IGRhdGFTb3VyY2UuY29uZmlnLm1hcCgoY29uZmlnKSA9PlxyXG4gICAgICAgIHRoaXMuX2ZldGNoU3RhdGlzdGljKGNvbmZpZywgcGFyYW1zKVxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZm9ya0pvaW4oe1xyXG4gICAgICAgIHJlc3VsdHM6IGZvcmtKb2luKF9vYnNlcnZhYmxlcyQpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHJlc3VsdHMpID0+IHJlc3VsdHMucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5jb25jYXQoY3VyciksIFtdKSlcclxuICAgICAgICApLFxyXG4gICAgICAgIG1ldGE6IG9mKHtcclxuICAgICAgICAgIGxhYmVsOiBkYXRhU291cmNlLmxhYmVsLFxyXG4gICAgICAgICAgZGF0YXNldDogZGF0YVNvdXJjZS5kYXRhc2V0LFxyXG4gICAgICAgICAgY29sb3JzOiBkYXRhU291cmNlLmNvbG9ycyxcclxuICAgICAgICB9KSxcclxuICAgICAgfSkucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9KVxyXG4gICAgICApIGFzIE9ic2VydmFibGU8RGF0YVNvdXJjZVJlc3VsdDxUVHlwZT4+O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKGRhdGFTb3VyY2VzJCkucGlwZShcclxuICAgICAgbWFwKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLm9uRGF0YVJlYWR5LmVtaXQocmVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1EYXRhID8gdGhpcy50cmFuc2Zvcm1EYXRhKHJlcykgOiB0aGlzLl9wcmVwYXJlQ2hhcnREYXRhKHJlcyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNoYXJ0RGF0YShyZXM6IERhdGFTb3VyY2VSZXN1bHQ8VFR5cGU+W10pOiBDaGFydERhdGE8Q2hhcnRUeXBlPiB7XHJcbiAgICBjb25zdCBfbGFiZWxzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gICAgY29uc3QgX2RhdGFzZXRzID0gcmVzLm1hcCgoeyByZXN1bHRzLCBtZXRhIH0pID0+IHtcclxuICAgICAgY29uc3QgYmFzZURhdGFzZXQgPSBpc09iamVjdDxUVHlwZT4odGhpcy5kYXRhc2V0KSA/IHRoaXMuZGF0YXNldCA6IHt9O1xyXG4gICAgICBjb25zdCBtZXRhRGF0YXNldCA9IGlzT2JqZWN0PFRUeXBlPihtZXRhPy5kYXRhc2V0KSA/IG1ldGEuZGF0YXNldCA6IHt9O1xyXG5cclxuICAgICAgY29uc3QgbWV0YUNvbG9ycyA9IEFycmF5LmlzQXJyYXkobWV0YT8uY29sb3JzKSA/IG1ldGE/LmNvbG9ycyA6IFtdO1xyXG4gICAgICBjb25zdCBkZWZhdWx0Q29sb3JzID0gQXJyYXkuaXNBcnJheSh0aGlzPy5jb2xvcnMpID8gdGhpcy5jb2xvcnMgOiBbXTtcclxuICAgICAgY29uc3QgcmFuZG9tQ29sb3JzID1cclxuICAgICAgICAhbWV0YT8uY29sb3JzICYmICF0aGlzLmNvbG9ycyA/IHRoaXMuX2dlbmVyYXRlQ29sb3JzKENPTE9SU19DT1VOVCkgOiBbXTtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHRzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIF9sYWJlbHMuYWRkKGl0ZW0ua2V5KTtcclxuICAgICAgICByZXR1cm4gaXRlbS5kb2NDb3VudDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBtZXRhPy5sYWJlbCA/IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXRhPy5sYWJlbCkgOiAgJycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBbLi4ubWV0YUNvbG9ycywgLi4uZGVmYXVsdENvbG9ycywgLi4ucmFuZG9tQ29sb3JzXSxcclxuICAgICAgICBib3JkZXJXaWR0aDogMCxcclxuICAgICAgICAuLi5iYXNlRGF0YXNldCxcclxuICAgICAgICAuLi5tZXRhRGF0YXNldCxcclxuICAgICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGFiZWxzOiBBcnJheS5mcm9tKF9sYWJlbHMudmFsdWVzKCkpLFxyXG4gICAgICBkYXRhc2V0czogX2RhdGFzZXRzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZldGNoU3RhdGlzdGljKFxyXG4gICAgY29uZmlnOiBTdGF0aXN0aWNSZXF1ZXN0Q29uZmlnLFxyXG4gICAgb3ZlcnJpZGVzUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cclxuICApOiBPYnNlcnZhYmxlPFN0YXRpc3RpY0J1Y2tldFtdPiB7XHJcbiAgICBjb25zdCBfcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge30sXHJcbiAgICAgIHRoaXMuX2RlZmF1bHRQYXJhbXMsXHJcbiAgICAgIGNvbmZpZz8ucGFyYW1zIHx8IHt9LFxyXG4gICAgICBvdmVycmlkZXNQYXJhbXNcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldCh0aGlzLnRyYW5zbGF0ZVByZWZpeCB8fCAnU1RBVElTVElDUycpXHJcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgoXykgPT4gdGhpcy5fc3RhdGlzdGljU2VydmljZS5wcmVwYXJlU3RhdGlzdGljKGNvbmZpZywgX3BhcmFtcykpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dlbmVyYXRlQ29sb3JzKGxlbmd0aDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuX2dldE1haW5Db2xvcigpIHx8IENIQVJUX01BSU5fQ09MT1I7XHJcbiAgICByZXR1cm4gW10uY29uY2F0KFxyXG4gICAgICBjcmVhdGVDb2xvclZhcmlhbnRzKGNvbG9yLCBsZW5ndGgsICdzaGFkZScpLFxyXG4gICAgICBjcmVhdGVDb2xvclZhcmlhbnRzKGNvbG9yLCBsZW5ndGgsICd0aW50JylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRNYWluQ29sb3IoY3NzVmFyID0gJy0tbWFpbi1jb2xvcicpIHtcclxuICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShyb290KS5nZXRQcm9wZXJ0eVZhbHVlKGNzc1ZhcikudHJpbSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -69,6 +69,20 @@ export class VersionsComponent {
69
69
  showVersion(version) {
70
70
  this.viewerFilesService.updateViewer.next(version);
71
71
  }
72
+ getFileSize(version) {
73
+ let file = version.properties['file:content'] || version.properties.content;
74
+ if (file.length) {
75
+ let length = +file.length;
76
+ if (length < 1000000) {
77
+ // trnasfer to KB
78
+ return (length / 1000).toFixed(2) + 'KB';
79
+ }
80
+ else {
81
+ // transafer to MB
82
+ return (length / (1000000)).toFixed(2) + 'MB';
83
+ }
84
+ }
85
+ }
72
86
  handleAction(event) {
73
87
  this.handleActions.emit(event);
74
88
  }
@@ -77,7 +91,7 @@ export class VersionsComponent {
77
91
  }
78
92
  }
79
93
  VersionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VersionsComponent, deps: [{ token: i1.ViewerFilesService }, { token: i2.TranslationService }, { token: i3.DocumentsService }], target: i0.ɵɵFactoryTarget.Component });
80
- VersionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VersionsComponent, selector: "cts-versions", inputs: { selectedVersion: "selectedVersion", file: "file", actions: "actions", currentTranslation: "currentTranslation", originTranslation: "originTranslation", historyTranslation: "historyTranslation", showUserCard: "showUserCard" }, outputs: { handleActions: "handleActions" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col\">\r\n<div class=\"viewer-attachments\">\r\n <div class=\"subheader\">\r\n <div> {{ currentTranslation | translate }}</div>\r\n\r\n </div>\r\n <div class=\"attachments-list\">\r\n <mat-list>\r\n <div class=\"mat-list-items\">\r\n <cts-item-list [item]=\"file\" [title]=\"file.title\" [iconname]=\"'description'\" [moreclasses]=\"'text-danger'\"\r\n [actions]=\"actions\" (itemClicked)=\"showVersion(file)\" (actionclicked)=\"handleAction($event)\">\r\n <div class=\"description\">\r\n {{getVersion(file)}}\r\n -\r\n {{ file.lastModified | localizedDate : '' : (isArabic? 'ar-AR' : 'en-US') }}\r\n </div>\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </div>\r\n</div>\r\n\r\n<div class=\"viewer-attachments original-section\" *ngIf=\"versions.length > 0\" >\r\n <div class=\"subheader\">\r\n <div>{{ originTranslation | translate }}</div>\r\n </div>\r\n <div class=\"attachments-list\">\r\n <mat-list>\r\n <div class=\"mat-list-items\">\r\n <cts-item-list [item]=\"versions[versions.length -1]\" [title]=\"versions[versions.length -1].title\"\r\n [iconname]=\"'description'\" [moreclasses]=\"'text-danger'\" [actions]=\"actions\"\r\n (itemClicked)=\"showVersion(versions[versions.length -1])\" (actionclicked)=\"handleAction($event)\">\r\n\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </div>\r\n</div>\r\n\r\n<div class=\"viewer-attachments\" [ngClass]=\"{'viewer-attachment-with-user-card' : showUserCard}\" *permission=\"{name: 'viewVersions', entity: file}\">\r\n <div class=\"subheader\">\r\n <div> {{ historyTranslation | translate }}</div>\r\n\r\n </div>\r\n <div class=\"attachments-list\" *ngIf=\"versions.length > 0\">\r\n <ng-container>\r\n <mat-list>\r\n <div class=\"mat-list-items\" *ngFor=\"let version of versions ;let cnt = count; let i = index\">\r\n <cts-item-list [item]=\"version\" [title]=\"version.title + '-' + getVersion(version)\" [iconname]=\"'description'\"\r\n [moreclasses]=\"'text-danger'\" (itemClicked)=\"showVersion(version)\" [actions]=\"actions\" (actionclicked)=\"handleAction($event)\">\r\n <div class=\"description\">\r\n {{getVersion(version)}}\r\n -\r\n {{ version.lastModified | localizedDate : '' : (isArabic? 'ar-AR' : 'en-US') }}\r\n <span class=\"version-contributor font-weight-bold\">\r\n\r\n {{\r\n version.properties.lastContributor.id === 'system' ?\r\n ('SYSTEM_ADMIN' | translate) : (\r\n isArabic ? (version.properties.lastContributor.fullNameAr ? version.properties.lastContributor.fullNameAr : (version.properties.lastContributor.properties.firstName + \" \" + version.properties.lastContributor.properties.lastName)) : \r\n ( version.properties.lastContributor.properties.firstName + \" \" + version.properties.lastContributor.properties.lastName)\r\n )\r\n }}\r\n <div class=\"contributor-card-details\" (click)=\"$event.stopPropagation()\" *ngIf=\"showUserCard\">\r\n <div class=\"user-img\">\r\n <img class=\"user-avatar\" [src]=\"version.properties.lastContributor.avatar\">\r\n </div>\r\n <div class=\"user-details\">\r\n <div class=\"user-name\">{{isArabic ? version.properties.lastContributor.fullNameAr : version.properties.lastContributor.fullName}}</div>\r\n <div class=\"user-position\">{{(isArabic && version.properties.lastContributor.jobGradeAr) ? version.properties.lastContributor.jobGradeAr : (version.properties.lastContributor.jobGrade ? version.properties.lastContributor.jobGrade : '--')}}</div>\r\n </div>\r\n </div>\r\n </span>\r\n </div>\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </ng-container>\r\n </div>\r\n <div class=\"version-loading\" *ngIf=\"fetching\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n <div *ngIf=\"(!fetching && versions.length === 0)\">\r\n <cts-no-data></cts-no-data>\r\n </div>\r\n</div>\r\n</div>\r\n<ng-template #noEntry>\r\n\r\n</ng-template>", styles: [".viewer-attachments .attachments-list .version-contributor{position:relative}.viewer-attachments .attachments-list .version-contributor .contributor-card-details{position:absolute;z-index:99999;display:none;min-width:250px;padding:28px 16px;align-items:center;grid-gap:8px;gap:8px;border-radius:4px;background:#FFF;cursor:default;box-shadow:0 -1px 4px #1c34541a,0 1px 4px -1px #1c345426}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-img img{width:40px;height:40px;min-width:40px;border-radius:48px;border:1px solid var(--Outline-Card, #DCDCE4)}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-details{text-align:start}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-details .user-name{color:#234990;font-size:14px;font-family:\"semiBoldPoppins\";font-weight:bold}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-details .user-position{color:#5d6481;font-size:12px}.viewer-attachments .attachments-list .version-contributor:hover .contributor-card-details{display:flex}.viewer-attachments .version-loading{display:flex;justify-content:center;padding:10px 0}\n"], components: [{ type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i5.ItemListComponent, selector: "cts-item-list", inputs: ["item", "iconname", "title", "actions", "isselected", "moreclasses"], outputs: ["itemClicked", "actionclicked"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i7.NoDataComponent, selector: "cts-no-data", inputs: ["message", "border", "img"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i10.TranslatePipe, "localizedDate": i11.LocalizedDatePipe } });
94
+ VersionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VersionsComponent, selector: "cts-versions", inputs: { selectedVersion: "selectedVersion", file: "file", actions: "actions", currentTranslation: "currentTranslation", originTranslation: "originTranslation", historyTranslation: "historyTranslation", showUserCard: "showUserCard" }, outputs: { handleActions: "handleActions" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col\">\r\n<div class=\"viewer-attachments\">\r\n <div class=\"subheader\">\r\n <div> {{ currentTranslation | translate }}</div>\r\n\r\n </div>\r\n <div class=\"attachments-list\">\r\n <mat-list>\r\n <div class=\"mat-list-items\">\r\n <cts-item-list [item]=\"file\" [title]=\"file.title\" [iconname]=\"'description'\" [moreclasses]=\"'text-danger'\"\r\n [actions]=\"actions\" (itemClicked)=\"showVersion(file)\" (actionclicked)=\"handleAction($event)\">\r\n <div class=\"description\">\r\n <div class=\"file-size\">\r\n {{ getFileSize(file)}}\r\n </div>\r\n {{getVersion(file)}}\r\n -\r\n {{ file.lastModified | localizedDate : '' : (isArabic? 'ar-AR' : 'en-US') }}\r\n </div>\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </div>\r\n</div>\r\n\r\n<div class=\"viewer-attachments original-section\" *ngIf=\"versions.length > 0\" >\r\n <div class=\"subheader\">\r\n <div>{{ originTranslation | translate }}</div>\r\n </div>\r\n <div class=\"attachments-list\">\r\n <mat-list>\r\n <div class=\"mat-list-items\">\r\n <cts-item-list [item]=\"versions[versions.length -1]\" [title]=\"versions[versions.length -1].title\"\r\n [iconname]=\"'description'\" [moreclasses]=\"'text-danger'\" [actions]=\"actions\"\r\n (itemClicked)=\"showVersion(versions[versions.length -1])\" (actionclicked)=\"handleAction($event)\">\r\n\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </div>\r\n</div>\r\n\r\n<div class=\"viewer-attachments\" [ngClass]=\"{'viewer-attachment-with-user-card' : showUserCard}\" *permission=\"{name: 'viewVersions', entity: file}\">\r\n <div class=\"subheader\">\r\n <div> {{ historyTranslation | translate }}</div>\r\n\r\n </div>\r\n <div class=\"attachments-list\" *ngIf=\"versions.length > 0\">\r\n <ng-container>\r\n <mat-list>\r\n <div class=\"mat-list-items\" *ngFor=\"let version of versions ;let cnt = count; let i = index\">\r\n <cts-item-list [item]=\"version\" [title]=\"version.title + '-' + getVersion(version)\" [iconname]=\"'description'\"\r\n [moreclasses]=\"'text-danger'\" (itemClicked)=\"showVersion(version)\" [actions]=\"actions\" (actionclicked)=\"handleAction($event)\">\r\n <div class=\"description\">\r\n <div class=\"file-size\">\r\n {{ getFileSize(version)}}\r\n </div>\r\n {{getVersion(version)}}\r\n -\r\n {{ version.lastModified | localizedDate : '' : (isArabic? 'ar-AR' : 'en-US') }}\r\n <span class=\"version-contributor font-weight-bold\">\r\n\r\n {{\r\n version.properties.lastContributor.id === 'system' ?\r\n ('SYSTEM_ADMIN' | translate) : (\r\n isArabic ? (version.properties.lastContributor.fullNameAr ? version.properties.lastContributor.fullNameAr : (version.properties.lastContributor.properties.firstName + \" \" + version.properties.lastContributor.properties.lastName)) : \r\n ( version.properties.lastContributor.properties.firstName + \" \" + version.properties.lastContributor.properties.lastName)\r\n )\r\n }}\r\n <div class=\"contributor-card-details\" (click)=\"$event.stopPropagation()\" *ngIf=\"showUserCard\">\r\n <div class=\"user-img\">\r\n <img class=\"user-avatar\" [src]=\"version.properties.lastContributor.avatar\">\r\n </div>\r\n <div class=\"user-details\">\r\n <div class=\"user-name\">{{isArabic ? version.properties.lastContributor.fullNameAr : version.properties.lastContributor.fullName}}</div>\r\n <div class=\"user-position\">{{(isArabic && version.properties.lastContributor.jobGradeAr) ? version.properties.lastContributor.jobGradeAr : (version.properties.lastContributor.jobGrade ? version.properties.lastContributor.jobGrade : '--')}}</div>\r\n </div>\r\n </div>\r\n </span>\r\n </div>\r\n </cts-item-list>\r\n </div>\r\n </mat-list>\r\n </ng-container>\r\n </div>\r\n <div class=\"version-loading\" *ngIf=\"fetching\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n <div *ngIf=\"(!fetching && versions.length === 0)\">\r\n <cts-no-data></cts-no-data>\r\n </div>\r\n</div>\r\n</div>\r\n<ng-template #noEntry>\r\n\r\n</ng-template>", styles: [".viewer-attachments .attachments-list .version-contributor{position:relative}.viewer-attachments .attachments-list .version-contributor .contributor-card-details{position:absolute;z-index:99999;display:none;min-width:250px;padding:28px 16px;align-items:center;grid-gap:8px;gap:8px;border-radius:4px;background:#FFF;cursor:default;box-shadow:0 -1px 4px #1c34541a,0 1px 4px -1px #1c345426}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-img img{width:40px;height:40px;min-width:40px;border-radius:48px;border:1px solid var(--Outline-Card, #DCDCE4)}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-details{text-align:start}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-details .user-name{color:#234990;font-size:14px;font-family:\"semiBoldPoppins\";font-weight:bold}.viewer-attachments .attachments-list .version-contributor .contributor-card-details .user-details .user-position{color:#5d6481;font-size:12px}.viewer-attachments .attachments-list .version-contributor:hover .contributor-card-details{display:flex}.viewer-attachments .attachments-list .mat-list-items .description .file-size{display:none}.viewer-attachments .version-loading{display:flex;justify-content:center;padding:10px 0}\n"], components: [{ type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i5.ItemListComponent, selector: "cts-item-list", inputs: ["item", "iconname", "title", "actions", "isselected", "moreclasses"], outputs: ["itemClicked", "actionclicked"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i7.NoDataComponent, selector: "cts-no-data", inputs: ["message", "border", "img"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i10.TranslatePipe, "localizedDate": i11.LocalizedDatePipe } });
81
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VersionsComponent, decorators: [{
82
96
  type: Component,
83
97
  args: [{
@@ -102,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
102
116
  }], handleActions: [{
103
117
  type: Output
104
118
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL3ZlcnNpb25zL3ZlcnNpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy92ZXJzaW9ucy92ZXJzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW9DLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU9wSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBdUI1QixZQUNVLGtCQUFzQyxFQUN0QyxrQkFBdUMsRUFDdkMsWUFBOEI7UUFGOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQWZ4Qyx1QkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV0QyxzQkFBaUIsR0FBRyxlQUFlLENBQUM7UUFFcEMsdUJBQWtCLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUMsQ0FBQywyQkFBMkI7UUFFMUQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFN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LGlCQUFpQjtzQkFEaEIsS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFTixhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZG9jdW1lbnRzL3NlcnZpY2VzL2RvY3VtZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2VyRmlsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmlld2VyLWZpbGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgdGhhdCB2aWV3cyBkb2N1bWVudCB2ZXJzaW9uc1xyXG4gKiBAdGl0bGVcclxuICogVmlld2VyIFZlcnNpb25zXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtdmVyc2lvbnNcclxuICogICBbZmlsZV09XCJmaWxlXCJcclxuICogICBbYWN0aW9uc109XCJtZW51X2FjdGlvbnNcIlxyXG4gKiAgIChoYW5kbGVBY3Rpb25zKT1cImhhbmRsZUFjdGlvbk9uVmVyc2lvbigkZXZlbnQpXCJcclxuICogPjwvY3RzLXZlcnNpb25zPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtdmVyc2lvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJzaW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmVyc2lvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmVyc2lvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyAsIE9uRGVzdHJveSB7XHJcbiAgLyoqIEN1cnJlbnQgc2VsZWN0ZWQgdmVyc2lvbiAoaW4gdmlld2VyKSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRWZXJzaW9uO1xyXG4gIC8qKiBEb2N1bWVudCBvYmplY3QgKi9cclxuICBASW5wdXQoKVxyXG4gIGZpbGU7XHJcbi8qKiBBY3Rpb25zIG9uIFZlcnNpb24gKi9cclxuICBASW5wdXQoKVxyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBASW5wdXQoKVxyXG4gIGN1cnJlbnRUcmFuc2xhdGlvbiA9ICd2aWV3ZXIuY3VycmVudCc7XHJcbiAgQElucHV0KClcclxuICBvcmlnaW5UcmFuc2xhdGlvbiA9ICd2aWV3ZXIub3JpZ2luJztcclxuICBASW5wdXQoKVxyXG4gIGhpc3RvcnlUcmFuc2xhdGlvbiA9ICd2aWV3ZXIuaGlzdG9yeSc7XHJcbiAgQElucHV0KCkgc2hvd1VzZXJDYXJkID0gZmFsc2U7IC8vIGZsYWdlIHRvIHNob3cgdXNlciBjYXJkc1xyXG4gIEBPdXRwdXQoKVxyXG4gIGhhbmRsZUFjdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgdmVyc2lvbnMgPSBbXTtcclxuICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gIGxhbmdTdWJzY3JpcHRpb24gOiBTdWJzY3JpcHRpb247XHJcbiAgZmV0Y2hpbmcgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlld2VyRmlsZXNTZXJ2aWNlOiBWaWV3ZXJGaWxlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRybmFzbGF0aW9uU2VydmljZSA6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZG9jdW1lbnRzQXBpOiBEb2N1bWVudHNTZXJ2aWNlXHJcblxyXG4gICkgeyB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuZmlsZSAmJiBjaGFuZ2VzLmZpbGUuY3VycmVudFZhbHVlICYmXHJcbiAgICAgIGNoYW5nZXMuZmlsZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZ2V0VmVyc2lvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gIHRoaXMudHJuYXNsYXRpb25TZXJ2aWNlLmlzQXJhYmljJC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5pc0FyYWJpYyA9IHJlcztcclxuICAgIH0pXHJcbiAgICB0aGlzLmdldFZlcnNpb25zKCk7XHJcbiAgfVxyXG5cclxuICBnZXRWZXJzaW9uKHZlcnNpb24pIHtcclxuICAgIGxldCBtYWpWZXIgPSB2ZXJzaW9uLnByb3BlcnRpZXMubWFqb3JfdmVyc2lvbiA/IHZlcnNpb24ucHJvcGVydGllcy5tYWpvcl92ZXJzaW9uIDogKCB2ZXJzaW9uLnByb3BlcnRpZXNbJ3VpZDptYWpvcl92ZXJzaW9uJ10gPyAgdmVyc2lvbi5wcm9wZXJ0aWVzWyd1aWQ6bWFqb3JfdmVyc2lvbiddIDogMCk7XHJcbiAgICBsZXQgbWluVmVyID0gdmVyc2lvbi5wcm9wZXJ0aWVzLm1pbm9yX3ZlcnNpb24gPyB2ZXJzaW9uLnByb3BlcnRpZXMubWlub3JfdmVyc2lvbiA6ICggdmVyc2lvbi5wcm9wZXJ0aWVzWyd1aWQ6bWlub3JfdmVyc2lvbiddID8gIHZlcnNpb24ucHJvcGVydGllc1sndWlkOm1pbm9yX3ZlcnNpb24nXSA6IDApO1xyXG4gICAgcmV0dXJuIGAke21halZlcn0uJHttaW5WZXJ9YDtcclxuICB9XHJcbiAgZ2V0VmVyc2lvbnMoKSB7XHJcbiAgICB0aGlzLmZldGNoaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZG9jdW1lbnRzQXBpLmdldFZlcnNpb25zKHRoaXMuZmlsZS51aWQpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLnZlcnNpb25zID0gZGF0YS5lbnRyaWVzLnJldmVyc2UoKTtcclxuICAgICAgdGhpcy5mZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLnZlcnNpb25zLnNoaWZ0KCk7XHJcbiAgICAgIHRoaXMuZmV0Y2hpbmcgPSBmYWxzZTtcclxuXHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICB0aGlzLmZldGNoaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dWZXJzaW9uKHZlcnNpb24pIHtcclxuICAgIHRoaXMudmlld2VyRmlsZXNTZXJ2aWNlLnVwZGF0ZVZpZXdlci5uZXh0KHZlcnNpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWN0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLmhhbmRsZUFjdGlvbnMuZW1pdChldmVudClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5nU3Vic2NyaXB0aW9uID8gdGhpcy5sYW5nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxyXG48ZGl2IGNsYXNzPVwidmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1YmhlYWRlclwiPlxyXG4gICAgPGRpdj4ge3sgY3VycmVudFRyYW5zbGF0aW9uIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCI+XHJcbiAgICA8bWF0LWxpc3Q+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtbGlzdC1pdGVtc1wiPlxyXG4gICAgICAgIDxjdHMtaXRlbS1saXN0IFtpdGVtXT1cImZpbGVcIiBbdGl0bGVdPVwiZmlsZS50aXRsZVwiIFtpY29ubmFtZV09XCInZGVzY3JpcHRpb24nXCIgW21vcmVjbGFzc2VzXT1cIid0ZXh0LWRhbmdlcidcIlxyXG4gICAgICAgICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiIChpdGVtQ2xpY2tlZCk9XCJzaG93VmVyc2lvbihmaWxlKVwiIChhY3Rpb25jbGlja2VkKT1cImhhbmRsZUFjdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAge3tnZXRWZXJzaW9uKGZpbGUpfX1cclxuICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICB7eyBmaWxlLmxhc3RNb2RpZmllZCB8IGxvY2FsaXplZERhdGUgOiAnJyA6IChpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2N0cy1pdGVtLWxpc3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtbGlzdD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwidmlld2VyLWF0dGFjaG1lbnRzIG9yaWdpbmFsLXNlY3Rpb25cIiAqbmdJZj1cInZlcnNpb25zLmxlbmd0aCA+IDBcIiA+XHJcbiAgPGRpdiBjbGFzcz1cInN1YmhlYWRlclwiPlxyXG4gICAgPGRpdj57eyBvcmlnaW5UcmFuc2xhdGlvbiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCI+XHJcbiAgICA8bWF0LWxpc3Q+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtbGlzdC1pdGVtc1wiPlxyXG4gICAgICAgIDxjdHMtaXRlbS1saXN0IFtpdGVtXT1cInZlcnNpb25zW3ZlcnNpb25zLmxlbmd0aCAtMV1cIiBbdGl0bGVdPVwidmVyc2lvbnNbdmVyc2lvbnMubGVuZ3RoIC0xXS50aXRsZVwiXHJcbiAgICAgICAgICBbaWNvbm5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiIFttb3JlY2xhc3Nlc109XCIndGV4dC1kYW5nZXInXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcbiAgICAgICAgICAoaXRlbUNsaWNrZWQpPVwic2hvd1ZlcnNpb24odmVyc2lvbnNbdmVyc2lvbnMubGVuZ3RoIC0xXSlcIiAoYWN0aW9uY2xpY2tlZCk9XCJoYW5kbGVBY3Rpb24oJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICA8L2N0cy1pdGVtLWxpc3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtbGlzdD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwidmlld2VyLWF0dGFjaG1lbnRzXCIgW25nQ2xhc3NdPVwieyd2aWV3ZXItYXR0YWNobWVudC13aXRoLXVzZXItY2FyZCcgOiBzaG93VXNlckNhcmR9XCIgKnBlcm1pc3Npb249XCJ7bmFtZTogJ3ZpZXdWZXJzaW9ucycsIGVudGl0eTogZmlsZX1cIj5cclxuICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyXCI+XHJcbiAgICA8ZGl2PiB7eyBoaXN0b3J5VHJhbnNsYXRpb24gfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWxpc3RcIiAqbmdJZj1cInZlcnNpb25zLmxlbmd0aCA+IDBcIj5cclxuICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgPG1hdC1saXN0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtbGlzdC1pdGVtc1wiICpuZ0Zvcj1cImxldCB2ZXJzaW9uIG9mIHZlcnNpb25zIDtsZXQgY250ID0gY291bnQ7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxjdHMtaXRlbS1saXN0IFtpdGVtXT1cInZlcnNpb25cIiBbdGl0bGVdPVwidmVyc2lvbi50aXRsZSArICctJyArIGdldFZlcnNpb24odmVyc2lvbilcIiBbaWNvbm5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiXHJcbiAgICAgICAgICAgIFttb3JlY2xhc3Nlc109XCIndGV4dC1kYW5nZXInXCIgKGl0ZW1DbGlja2VkKT1cInNob3dWZXJzaW9uKHZlcnNpb24pXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiIChhY3Rpb25jbGlja2VkKT1cImhhbmRsZUFjdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgIHt7Z2V0VmVyc2lvbih2ZXJzaW9uKX19XHJcbiAgICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICAgIHt7IHZlcnNpb24ubGFzdE1vZGlmaWVkIHwgbG9jYWxpemVkRGF0ZSA6ICcnIDogKGlzQXJhYmljPyAnYXItQVInIDogJ2VuLVVTJykgfX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZlcnNpb24tY29udHJpYnV0b3IgZm9udC13ZWlnaHQtYm9sZFwiPlxyXG5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmlkID09PSAnc3lzdGVtJyA/XHJcbiAgICAgICAgICAgICAgICAoJ1NZU1RFTV9BRE1JTicgfCB0cmFuc2xhdGUpIDogKFxyXG4gICAgICAgICAgICAgICAgICBpc0FyYWJpYyA/ICh2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmZ1bGxOYW1lQXIgPyB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmZ1bGxOYW1lQXIgOiAodmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5wcm9wZXJ0aWVzLmZpcnN0TmFtZSArIFwiIFwiICsgdmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5wcm9wZXJ0aWVzLmxhc3ROYW1lKSkgOiBcclxuICAgICAgICAgICAgICAgICAgKCB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLnByb3BlcnRpZXMuZmlyc3ROYW1lICsgXCIgXCIgKyB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLnByb3BlcnRpZXMubGFzdE5hbWUpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyaWJ1dG9yLWNhcmQtZGV0YWlsc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAqbmdJZj1cInNob3dVc2VyQ2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1pbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ1c2VyLWF2YXRhclwiIFtzcmNdPVwidmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5hdmF0YXJcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj57e2lzQXJhYmljICA/IHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IuZnVsbE5hbWVBciA6IHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IuZnVsbE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItcG9zaXRpb25cIj57eyhpc0FyYWJpYyAmJiB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmpvYkdyYWRlQXIpID8gdmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5qb2JHcmFkZUFyIDogKHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3Iuam9iR3JhZGUgPyB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmpvYkdyYWRlIDogJy0tJyl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9jdHMtaXRlbS1saXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1saXN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInZlcnNpb24tbG9hZGluZ1wiICpuZ0lmPVwiZmV0Y2hpbmdcIj5cclxuICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cIndhcm5cIiBbZGlhbWV0ZXJdPVwiMjVcIj48L21hdC1zcGlubmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgICpuZ0lmPVwiKCFmZXRjaGluZyAmJiB2ZXJzaW9ucy5sZW5ndGggPT09IDApXCI+XHJcbiAgICA8Y3RzLW5vLWRhdGE+PC9jdHMtbm8tZGF0YT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI25vRW50cnk+XHJcblxyXG48L25nLXRlbXBsYXRlPiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL3ZlcnNpb25zL3ZlcnNpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy92ZXJzaW9ucy92ZXJzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW9DLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU9wSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBdUI1QixZQUNVLGtCQUFzQyxFQUN0QyxrQkFBdUMsRUFDdkMsWUFBOEI7UUFGOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQWZ4Qyx1QkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV0QyxzQkFBaUIsR0FBRyxlQUFlLENBQUM7UUFFcEMsdUJBQWtCLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUMsQ0FBQywyQkFBMkI7UUFFMUQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFN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O1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxDQUFDOzsrR0FyRlUsaUJBQWlCO21HQUFqQixpQkFBaUIsa1dDekI5Qiw2aEpBK0ZjOzRGRHRFRCxpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSwyQkFBMkI7b0JBQ3hDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN6Qzt5S0FJQyxlQUFlO3NCQURkLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVOLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWV3ZXJGaWxlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3ZXItZmlsZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIGNvbXBvbmVudCB0aGF0IHZpZXdzIGRvY3VtZW50IHZlcnNpb25zXHJcbiAqIEB0aXRsZVxyXG4gKiBWaWV3ZXIgVmVyc2lvbnNcclxuICpcclxuICogQGV4YW1wbGVcclxuICpcclxuICogPGN0cy12ZXJzaW9uc1xyXG4gKiAgIFtmaWxlXT1cImZpbGVcIlxyXG4gKiAgIFthY3Rpb25zXT1cIm1lbnVfYWN0aW9uc1wiXHJcbiAqICAgKGhhbmRsZUFjdGlvbnMpPVwiaGFuZGxlQWN0aW9uT25WZXJzaW9uKCRldmVudClcIlxyXG4gKiA+PC9jdHMtdmVyc2lvbnM+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy12ZXJzaW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcnNpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92ZXJzaW9ucy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZXJzaW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzICwgT25EZXN0cm95IHtcclxuICAvKiogQ3VycmVudCBzZWxlY3RlZCB2ZXJzaW9uIChpbiB2aWV3ZXIpICovXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZFZlcnNpb247XHJcbiAgLyoqIERvY3VtZW50IG9iamVjdCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZTtcclxuLyoqIEFjdGlvbnMgb24gVmVyc2lvbiAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYWN0aW9ucz86IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3VycmVudFRyYW5zbGF0aW9uID0gJ3ZpZXdlci5jdXJyZW50JztcclxuICBASW5wdXQoKVxyXG4gIG9yaWdpblRyYW5zbGF0aW9uID0gJ3ZpZXdlci5vcmlnaW4nO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGlzdG9yeVRyYW5zbGF0aW9uID0gJ3ZpZXdlci5oaXN0b3J5JztcclxuICBASW5wdXQoKSBzaG93VXNlckNhcmQgPSBmYWxzZTsgLy8gZmxhZ2UgdG8gc2hvdyB1c2VyIGNhcmRzXHJcbiAgQE91dHB1dCgpXHJcbiAgaGFuZGxlQWN0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICB2ZXJzaW9ucyA9IFtdO1xyXG4gIGlzQXJhYmljID0gZmFsc2U7XHJcbiAgbGFuZ1N1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuICBmZXRjaGluZyA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2aWV3ZXJGaWxlc1NlcnZpY2U6IFZpZXdlckZpbGVzU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJuYXNsYXRpb25TZXJ2aWNlIDogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudHNBcGk6IERvY3VtZW50c1NlcnZpY2VcclxuXHJcbiAgKSB7IH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5maWxlICYmIGNoYW5nZXMuZmlsZS5jdXJyZW50VmFsdWUgJiZcclxuICAgICAgY2hhbmdlcy5maWxlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgdGhpcy5nZXRWZXJzaW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhbmdTdWJzY3JpcHRpb24gPSAgdGhpcy50cm5hc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMkLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID0gcmVzO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZ2V0VmVyc2lvbnMoKTtcclxuICB9XHJcblxyXG4gIGdldFZlcnNpb24odmVyc2lvbikge1xyXG4gICAgbGV0IG1halZlciA9IHZlcnNpb24ucHJvcGVydGllcy5tYWpvcl92ZXJzaW9uID8gdmVyc2lvbi5wcm9wZXJ0aWVzLm1ham9yX3ZlcnNpb24gOiAoIHZlcnNpb24ucHJvcGVydGllc1sndWlkOm1ham9yX3ZlcnNpb24nXSA/ICB2ZXJzaW9uLnByb3BlcnRpZXNbJ3VpZDptYWpvcl92ZXJzaW9uJ10gOiAwKTtcclxuICAgIGxldCBtaW5WZXIgPSB2ZXJzaW9uLnByb3BlcnRpZXMubWlub3JfdmVyc2lvbiA/IHZlcnNpb24ucHJvcGVydGllcy5taW5vcl92ZXJzaW9uIDogKCB2ZXJzaW9uLnByb3BlcnRpZXNbJ3VpZDptaW5vcl92ZXJzaW9uJ10gPyAgdmVyc2lvbi5wcm9wZXJ0aWVzWyd1aWQ6bWlub3JfdmVyc2lvbiddIDogMCk7XHJcbiAgICByZXR1cm4gYCR7bWFqVmVyfS4ke21pblZlcn1gO1xyXG4gIH1cclxuICBnZXRWZXJzaW9ucygpIHtcclxuICAgIHRoaXMuZmV0Y2hpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kb2N1bWVudHNBcGkuZ2V0VmVyc2lvbnModGhpcy5maWxlLnVpZCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMudmVyc2lvbnMgPSBkYXRhLmVudHJpZXMucmV2ZXJzZSgpO1xyXG4gICAgICB0aGlzLmZldGNoaW5nID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMudmVyc2lvbnMuc2hpZnQoKTtcclxuICAgICAgdGhpcy5mZXRjaGluZyA9IGZhbHNlO1xyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIHRoaXMuZmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd1ZlcnNpb24odmVyc2lvbikge1xyXG4gICAgdGhpcy52aWV3ZXJGaWxlc1NlcnZpY2UudXBkYXRlVmlld2VyLm5leHQodmVyc2lvbik7XHJcbiAgfVxyXG5cclxuICBnZXRGaWxlU2l6ZSh2ZXJzaW9uKXtcclxuICAgIGxldCBmaWxlID0gdmVyc2lvbi5wcm9wZXJ0aWVzWydmaWxlOmNvbnRlbnQnXSB8fCB2ZXJzaW9uLnByb3BlcnRpZXMuY29udGVudDtcclxuICAgIGlmKGZpbGUubGVuZ3RoKXtcclxuICAgICAgbGV0IGxlbmd0aCA9ICtmaWxlLmxlbmd0aDtcclxuICAgICAgaWYobGVuZ3RoIDwgMTAwMDAwMCl7XHJcbiAgICAgICAgLy8gdHJuYXNmZXIgdG8gS0JcclxuICAgICAgICByZXR1cm4gKGxlbmd0aC8xMDAwKS50b0ZpeGVkKDIpICsgJ0tCJ1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAvLyB0cmFuc2FmZXIgdG8gTUJcclxuICAgICAgICByZXR1cm4gKGxlbmd0aC8oMTAwMDAwMCkpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUFjdGlvbihldmVudCkge1xyXG4gICAgdGhpcy5oYW5kbGVBY3Rpb25zLmVtaXQoZXZlbnQpXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubGFuZ1N1YnNjcmlwdGlvbiA/IHRoaXMubGFuZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cclxuPGRpdiBjbGFzcz1cInZpZXdlci1hdHRhY2htZW50c1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdWJoZWFkZXJcIj5cclxuICAgIDxkaXY+IHt7IGN1cnJlbnRUcmFuc2xhdGlvbiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudHMtbGlzdFwiPlxyXG4gICAgPG1hdC1saXN0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LWxpc3QtaXRlbXNcIj5cclxuICAgICAgICA8Y3RzLWl0ZW0tbGlzdCBbaXRlbV09XCJmaWxlXCIgW3RpdGxlXT1cImZpbGUudGl0bGVcIiBbaWNvbm5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiIFttb3JlY2xhc3Nlc109XCIndGV4dC1kYW5nZXInXCJcclxuICAgICAgICAgIFthY3Rpb25zXT1cImFjdGlvbnNcIiAoaXRlbUNsaWNrZWQpPVwic2hvd1ZlcnNpb24oZmlsZSlcIiAoYWN0aW9uY2xpY2tlZCk9XCJoYW5kbGVBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXNpemVcIj5cclxuICAgICAgICAgICAgICB7eyBnZXRGaWxlU2l6ZShmaWxlKX19XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAge3tnZXRWZXJzaW9uKGZpbGUpfX1cclxuICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICB7eyBmaWxlLmxhc3RNb2RpZmllZCB8IGxvY2FsaXplZERhdGUgOiAnJyA6IChpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2N0cy1pdGVtLWxpc3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtbGlzdD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwidmlld2VyLWF0dGFjaG1lbnRzIG9yaWdpbmFsLXNlY3Rpb25cIiAqbmdJZj1cInZlcnNpb25zLmxlbmd0aCA+IDBcIiA+XHJcbiAgPGRpdiBjbGFzcz1cInN1YmhlYWRlclwiPlxyXG4gICAgPGRpdj57eyBvcmlnaW5UcmFuc2xhdGlvbiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCI+XHJcbiAgICA8bWF0LWxpc3Q+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtbGlzdC1pdGVtc1wiPlxyXG4gICAgICAgIDxjdHMtaXRlbS1saXN0IFtpdGVtXT1cInZlcnNpb25zW3ZlcnNpb25zLmxlbmd0aCAtMV1cIiBbdGl0bGVdPVwidmVyc2lvbnNbdmVyc2lvbnMubGVuZ3RoIC0xXS50aXRsZVwiXHJcbiAgICAgICAgICBbaWNvbm5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiIFttb3JlY2xhc3Nlc109XCIndGV4dC1kYW5nZXInXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcbiAgICAgICAgICAoaXRlbUNsaWNrZWQpPVwic2hvd1ZlcnNpb24odmVyc2lvbnNbdmVyc2lvbnMubGVuZ3RoIC0xXSlcIiAoYWN0aW9uY2xpY2tlZCk9XCJoYW5kbGVBY3Rpb24oJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICA8L2N0cy1pdGVtLWxpc3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtbGlzdD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwidmlld2VyLWF0dGFjaG1lbnRzXCIgW25nQ2xhc3NdPVwieyd2aWV3ZXItYXR0YWNobWVudC13aXRoLXVzZXItY2FyZCcgOiBzaG93VXNlckNhcmR9XCIgKnBlcm1pc3Npb249XCJ7bmFtZTogJ3ZpZXdWZXJzaW9ucycsIGVudGl0eTogZmlsZX1cIj5cclxuICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyXCI+XHJcbiAgICA8ZGl2PiB7eyBoaXN0b3J5VHJhbnNsYXRpb24gfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWxpc3RcIiAqbmdJZj1cInZlcnNpb25zLmxlbmd0aCA+IDBcIj5cclxuICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgPG1hdC1saXN0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtbGlzdC1pdGVtc1wiICpuZ0Zvcj1cImxldCB2ZXJzaW9uIG9mIHZlcnNpb25zIDtsZXQgY250ID0gY291bnQ7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxjdHMtaXRlbS1saXN0IFtpdGVtXT1cInZlcnNpb25cIiBbdGl0bGVdPVwidmVyc2lvbi50aXRsZSArICctJyArIGdldFZlcnNpb24odmVyc2lvbilcIiBbaWNvbm5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiXHJcbiAgICAgICAgICAgIFttb3JlY2xhc3Nlc109XCIndGV4dC1kYW5nZXInXCIgKGl0ZW1DbGlja2VkKT1cInNob3dWZXJzaW9uKHZlcnNpb24pXCIgW2FjdGlvbnNdPVwiYWN0aW9uc1wiIChhY3Rpb25jbGlja2VkKT1cImhhbmRsZUFjdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXNpemVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGdldEZpbGVTaXplKHZlcnNpb24pfX1cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge3tnZXRWZXJzaW9uKHZlcnNpb24pfX1cclxuICAgICAgICAgICAgICAtXHJcbiAgICAgICAgICAgICAge3sgdmVyc2lvbi5sYXN0TW9kaWZpZWQgfCBsb2NhbGl6ZWREYXRlIDogJycgOiAoaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKSB9fVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmVyc2lvbi1jb250cmlidXRvciBmb250LXdlaWdodC1ib2xkXCI+XHJcblxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IuaWQgPT09ICdzeXN0ZW0nID9cclxuICAgICAgICAgICAgICAgICgnU1lTVEVNX0FETUlOJyB8IHRyYW5zbGF0ZSkgOiAoXHJcbiAgICAgICAgICAgICAgICAgIGlzQXJhYmljID8gKHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IuZnVsbE5hbWVBciA/IHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IuZnVsbE5hbWVBciA6ICh2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLnByb3BlcnRpZXMuZmlyc3ROYW1lICsgXCIgXCIgKyB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLnByb3BlcnRpZXMubGFzdE5hbWUpKSA6IFxyXG4gICAgICAgICAgICAgICAgICAoIHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IucHJvcGVydGllcy5maXJzdE5hbWUgKyBcIiBcIiArIHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3IucHJvcGVydGllcy5sYXN0TmFtZSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJpYnV0b3ItY2FyZC1kZXRhaWxzXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiICpuZ0lmPVwic2hvd1VzZXJDYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInVzZXItYXZhdGFyXCIgW3NyY109XCJ2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmF2YXRhclwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbmFtZVwiPnt7aXNBcmFiaWMgID8gdmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5mdWxsTmFtZUFyIDogdmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5mdWxsTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1wb3NpdGlvblwiPnt7KGlzQXJhYmljICYmIHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3Iuam9iR3JhZGVBcikgPyB2ZXJzaW9uLnByb3BlcnRpZXMubGFzdENvbnRyaWJ1dG9yLmpvYkdyYWRlQXIgOiAodmVyc2lvbi5wcm9wZXJ0aWVzLmxhc3RDb250cmlidXRvci5qb2JHcmFkZSA/IHZlcnNpb24ucHJvcGVydGllcy5sYXN0Q29udHJpYnV0b3Iuam9iR3JhZGUgOiAnLS0nKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2N0cy1pdGVtLWxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LWxpc3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidmVyc2lvbi1sb2FkaW5nXCIgKm5nSWY9XCJmZXRjaGluZ1wiPlxyXG4gICAgPG1hdC1zcGlubmVyIGNvbG9yPVwid2FyblwiIFtkaWFtZXRlcl09XCIyNVwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAgKm5nSWY9XCIoIWZldGNoaW5nICYmIHZlcnNpb25zLmxlbmd0aCA9PT0gMClcIj5cclxuICAgIDxjdHMtbm8tZGF0YT48L2N0cy1uby1kYXRhPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjbm9FbnRyeT5cclxuXHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -42,6 +42,7 @@ export class DocumentUploadComponent {
42
42
  this.minSize = 1000;
43
43
  /** Params to be sent with body when creating a document */
44
44
  this.docParams = {};
45
+ this.checkPdfContent = false;
45
46
  /** Can upload multiple files at once */
46
47
  this.multiple = false;
47
48
  /** should create document after batch upload */
@@ -75,10 +76,7 @@ export class DocumentUploadComponent {
75
76
  }
76
77
  isTypeChecked(file) {
77
78
  let arr = this.allowedTypes.split(',');
78
- if (arr.indexOf(file.type) > -1) {
79
- return true;
80
- }
81
- else if (arr.indexOf(this.getFileExtension(file.name)) > -1) {
79
+ if ((arr.indexOf(file.type) > -1) || (arr.indexOf(this.getFileExtension(file.name)) > -1)) {
82
80
  return true;
83
81
  }
84
82
  else {
@@ -101,6 +99,24 @@ export class DocumentUploadComponent {
101
99
  return false;
102
100
  }
103
101
  }
102
+ checkFileContent(file) {
103
+ if (this.checkPdfContent) {
104
+ let reader = new FileReader();
105
+ let blob = file.slice(0, 8);
106
+ reader.readAsText(blob);
107
+ reader.onload = (e) => {
108
+ var data = ((e.target.result).toString()).substr(0, 8);
109
+ var regex = new RegExp("%PDF-1.[0-7]");
110
+ if (!data.match(regex)) {
111
+ this.customToastrService.show('error', 'error', 'ERRORS.UNVALID_PDF', {}, this.allowedTypes.replace(/./gi, '').toUpperCase());
112
+ return false;
113
+ }
114
+ else {
115
+ return true;
116
+ }
117
+ };
118
+ }
119
+ }
104
120
  uploadDocument(files) {
105
121
  let selectedFiles = Object.keys(files).map(key => files[key]);
106
122
  selectedFiles = selectedFiles.filter(file => {
@@ -110,6 +126,29 @@ export class DocumentUploadComponent {
110
126
  }
111
127
  }
112
128
  });
129
+ if (selectedFiles.length) {
130
+ if (this.checkPdfContent) {
131
+ let reader = new FileReader();
132
+ let blob = files[0].slice(0, 8);
133
+ reader.readAsText(blob);
134
+ reader.onload = (e) => {
135
+ var data = ((e.target.result).toString()).substr(0, 8);
136
+ var regex = new RegExp("%PDF-1.[0-7]");
137
+ if (!data.match(regex)) {
138
+ this.customToastrService.show('error', 'error', 'ERRORS.UNVALID_PDF', {}, this.allowedTypes.replace(/./gi, '').toUpperCase());
139
+ return false;
140
+ }
141
+ else {
142
+ this.uploadFiles(selectedFiles);
143
+ }
144
+ };
145
+ }
146
+ else {
147
+ this.uploadFiles(selectedFiles);
148
+ }
149
+ }
150
+ }
151
+ uploadFiles(selectedFiles) {
113
152
  if (selectedFiles.length) {
114
153
  this.uploading = true;
115
154
  this.documentsApi.uploadBatch(selectedFiles)
@@ -145,7 +184,7 @@ export class DocumentUploadComponent {
145
184
  }
146
185
  }
147
186
  DocumentUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentUploadComponent, deps: [{ token: i1.DocumentsService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
148
- DocumentUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DocumentUploadComponent, selector: "app-document-upload", inputs: { allowedTypes: "allowedTypes", params: "params", path: "path", maxSize: "maxSize", minSize: "minSize", docParams: "docParams", multiple: "multiple", createDocument: "createDocument", allowedMaxNumberOfFiles: "allowedMaxNumberOfFiles", showAllowedTypesInErrorMess: "showAllowedTypesInErrorMess" }, outputs: { uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<input type=\"file\" class=\"hidden\" #fileInput [accept]=\"allowedTypes\" [multiple]=\"multiple\"\r\n (change)=\"uploadDocument($event.target.files)\">\r\n<div #template [ngClass]=\"{'hidden': template.childNodes.length == 0}\" (click)=\"triggerUpload()\"\r\n class=\"upload-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n<div *ngIf=\"template.childNodes.length == 0\" class=\"default-upload\" (click)=\"triggerUpload()\">\r\n <div class=\"upload-section\" style=\"color:#465573;\">\r\n <mat-icon class=\"upload-icon\">upload</mat-icon>\r\n <h3 class=\"upload-title\">\r\n {{'documents.uploadDocuments'| translate }}</h3>\r\n <p class=\"upload-desc\">\r\n {{'documents.maxSize'| translate }} {{maxSize | FileSize}}</p>\r\n </div>\r\n <div>\r\n <mat-icon class=\"m-2\" style=\"color:#465573;\">file_copy</mat-icon>\r\n </div>\r\n</div>\r\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"uploading\"></mat-progress-bar>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.upload-container{display:flex;flex:1;justify-content:space-between;cursor:pointer;width:100%;height:100%}.default-upload{display:flex;padding:8px 16px;flex:1;justify-content:space-between;background:#d8d8fc;cursor:pointer}.upload-section{display:flex;align-items:center;justify-content:center;justify-content:space-between}.upload-icon{margin:0 8px}.upload-title{font-size:16px;border-color:#465573;border-left:1px solid;padding-left:8px;margin:0}.rtl .upload-title{border-left:0px;border-right:1px solid;padding-left:0;padding-right:8px}.upload-desc{font-size:12px;padding-left:8px;opacity:.6;margin:0}.rtl .upload-desc{padding-left:0;padding-right:8px}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6.TranslatePipe, "FileSize": i7.FileSizePipe }, encapsulation: i0.ViewEncapsulation.None });
187
+ DocumentUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DocumentUploadComponent, selector: "app-document-upload", inputs: { allowedTypes: "allowedTypes", params: "params", path: "path", maxSize: "maxSize", minSize: "minSize", docParams: "docParams", checkPdfContent: "checkPdfContent", multiple: "multiple", createDocument: "createDocument", allowedMaxNumberOfFiles: "allowedMaxNumberOfFiles", showAllowedTypesInErrorMess: "showAllowedTypesInErrorMess" }, outputs: { uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<input type=\"file\" class=\"hidden\" #fileInput [accept]=\"allowedTypes\" [multiple]=\"multiple\"\r\n (change)=\"uploadDocument($event.target.files)\">\r\n<div #template [ngClass]=\"{'hidden': template.childNodes.length == 0}\" (click)=\"triggerUpload()\"\r\n class=\"upload-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n<div *ngIf=\"template.childNodes.length == 0\" class=\"default-upload\" (click)=\"triggerUpload()\">\r\n <div class=\"upload-section\" style=\"color:#465573;\">\r\n <mat-icon class=\"upload-icon\">upload</mat-icon>\r\n <h3 class=\"upload-title\">\r\n {{'documents.uploadDocuments'| translate }}</h3>\r\n <p class=\"upload-desc\">\r\n {{'documents.maxSize'| translate }} {{maxSize | FileSize}}</p>\r\n </div>\r\n <div>\r\n <mat-icon class=\"m-2\" style=\"color:#465573;\">file_copy</mat-icon>\r\n </div>\r\n</div>\r\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"uploading\"></mat-progress-bar>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.upload-container{display:flex;flex:1;justify-content:space-between;cursor:pointer;width:100%;height:100%}.default-upload{display:flex;padding:8px 16px;flex:1;justify-content:space-between;background:#d8d8fc;cursor:pointer}.upload-section{display:flex;align-items:center;justify-content:center;justify-content:space-between}.upload-icon{margin:0 8px}.upload-title{font-size:16px;border-color:#465573;border-left:1px solid;padding-left:8px;margin:0}.rtl .upload-title{border-left:0px;border-right:1px solid;padding-left:0;padding-right:8px}.upload-desc{font-size:12px;padding-left:8px;opacity:.6;margin:0}.rtl .upload-desc{padding-left:0;padding-right:8px}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6.TranslatePipe, "FileSize": i7.FileSizePipe }, encapsulation: i0.ViewEncapsulation.None });
149
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentUploadComponent, decorators: [{
150
189
  type: Component,
151
190
  args: [{
@@ -166,6 +205,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
166
205
  type: Input
167
206
  }], docParams: [{
168
207
  type: Input
208
+ }], checkPdfContent: [{
209
+ type: Input
169
210
  }], multiple: [{
170
211
  type: Input
171
212
  }], createDocument: [{
@@ -182,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
182
223
  type: ViewChild,
183
224
  args: ['fileInput']
184
225
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50LXVwbG9hZC9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBSXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQXlDbEMsWUFDVSxZQUE4QixFQUM5QixtQkFBd0M7UUFEeEMsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUExQ2xELDJCQUEyQjtRQUUzQixpQkFBWSxHQUFHLHlIQUF5SCxDQUFDO1FBQ3pJLGlFQUFpRTtRQUVqRSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBSVosOEJBQThCO1FBRTlCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDaEIsOEJBQThCO1FBRTlCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFakIsMkRBQTJEO1FBRTNELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZix3Q0FBd0M7UUFFeEMs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O3FIQXBLVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qiw4aEJDL0JwQyxtOEJBbUJBOzRGRFlhLHVCQUF1QjtrQkFObkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsa0NBQWtDO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO3lJQUlDLFlBQVk7c0JBRFgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJSixPQUFPO3NCQUROLEtBQUs7Z0JBS1IsU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLDJCQUEyQjtzQkFEMUIsS0FBSztnQkFJTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUdpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogRG9jdW1lbnQgdXBsb2FkIGlzIGEgcmV1c2FibGUgQVBJIGludGVncmF0ZWQgdXBsb2FkIGJ1dHRvbiBjb21wb25lbnQsXHJcbiAqIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gc3VpdCB0aGUgbmVlZHMgb2YgcmVxdWlyZWQgaW1wbGVtZW50YXRpb24sXHJcbiAqIGl0IGlzIHBvc3NpYmxlIHRvIHVwbG9hZCBiYXRjaCBhbmQgY3JlYXRlIGEgZG9jdW1lbnQsIG9yIGp1c3QgdXBsb2FkIGEgYmF0Y2ggYW5kXHJcbiAqIGNvbnN1bWUgaXQgYW55IG90aGVyIHdheS5cclxuICpcclxuICogQHRpdGxlXHJcbiAqIERvY3VtZW50IFVwbG9hZFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8YXBwLWRvY3VtZW50LXVwbG9hZFxyXG4gKiAgIFthbGxvd2VkVHlwZXNdPVwiJ2FwcGxpY2F0aW9uL3BkZidcIlxyXG4gKiAgIFtjcmVhdGVEb2N1bWVudF09XCJmYWxzZVwiXHJcbiAqICAgKHVwbG9hZFN1Y2Nlc3MpPVwib25VcGxvYWRTdWNjZXNzKCRldmVudClcIlxyXG4gKiAgICh1cGxvYWRFcnJvcik9XCJvblVwbG9hZEVycm9yKCRldmVudClcIlxyXG4gKiA+XHJcbiAqICAgPGJ1dHRvbj4gVVBMT0FEIEZJTEUgPC9idXR0b24+XHJcbiAqIDwvYXBwLWRvY3VtZW50LXVwbG9hZD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRvY3VtZW50LXVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRVcGxvYWRDb21wb25lbnQge1xyXG4gIC8qKiBBbGxvd2VkIFVwbG9hZCBUeXBlcyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dlZFR5cGVzID0gJ2FwcGxpY2F0aW9uL3BkZixhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCxhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJztcclxuICAvKiogUGFyYW1zIHRvIGJlIHNlbnQgd2l0aCBwcm9wZXJ0aWVzIHdoZW4gY3JlYXRpbmcgYSBkb2N1bWVudCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zID0ge307XHJcbiAgLyoqIFBhdGggaW4gd2l0Y2ggYSBkb2N1bWVudCB3aWxsIGJlIGNyZWF0ZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIHBhdGg7XHJcbiAgLyoqIE1heCBhbGxvd2VkIHVwbG9hZCBzaXplICovXHJcbiAgQElucHV0KClcclxuICBtYXhTaXplID0gMTE0NTcyODtcclxuICAgIC8qKiBtaW4gYWxsb3dlZCB1cGxvYWQgc2l6ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIG1pblNpemUgPSAxMDAwO1xyXG5cclxuICAvKiogUGFyYW1zIHRvIGJlIHNlbnQgd2l0aCBib2R5IHdoZW4gY3JlYXRpbmcgYSBkb2N1bWVudCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZG9jUGFyYW1zID0ge307XHJcbiAgLyoqIENhbiB1cGxvYWQgbXVsdGlwbGUgZmlsZXMgYXQgb25jZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgbXVsdGlwbGUgPSBmYWxzZTtcclxuICAvKiogc2hvdWxkIGNyZWF0ZSBkb2N1bWVudCBhZnRlciBiYXRjaCB1cGxvYWQgKi9cclxuICBASW5wdXQoKVxyXG4gIGNyZWF0ZURvY3VtZW50ID0gdHJ1ZTtcclxuICAvKiogTWF4IGFsbG93ZWQgbnVtYmVyIG9mIGZpbGVzIHNpemUgKi9cclxuICBASW5wdXQoKVxyXG4gIGFsbG93ZWRNYXhOdW1iZXJPZkZpbGVzID0gMTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0FsbG93ZWRUeXBlc0luRXJyb3JNZXNzID0gdHJ1ZTtcclxuICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkb2N1bWVudCB1cGxvYWQgc3VjY2VzcywgaXQgd2lsbCBoYXZlIGRvY3VtZW50IG9yIGJhdGNoIG9iamVjdCBiYXNlZCBvbiBjb25maWd1cmF0aW9uICovXHJcbiAgQE91dHB1dCgpXHJcbiAgdXBsb2FkU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3VycyB3aGlsZSBhdHRlbXB0aW5nIHVwbG9hZCAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHVwbG9hZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRvY3VtZW50c0FwaTogRG9jdW1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgY3VzdG9tVG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHRyaWdnZXJVcGxvYWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBpc1NpemVDaGVja2VkKGZpbGUpIHtcclxuICAgIGlmKGZpbGUuc2l6ZSA+IHRoaXMubWF4U2l6ZSl7XHJcbiAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAnRVJST1JTLlNJWkUnLFxyXG4gICAgICAgIHt9LFxyXG4gICAgICAgIGAkeyh0aGlzLm1heFNpemUgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpfU1CYCBcclxuICAgICAgKTtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IubmV4dCgnZXJyb3JzLnNpemUnKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1lbHNlIGlmKGZpbGUuc2l6ZSA8PSB0aGlzLm1pblNpemUpe1xyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgJ0VSUk9SUy5NSU5fU0laRScsXHJcbiAgICAgICAge30sXHJcbiAgICAgICAgYCR7KHRoaXMubWluU2l6ZSAvICgxMDAwKSkudG9GaXhlZCgyKX1LQmAgXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLnVwbG9hZEVycm9yLm5leHQoJ2Vycm9ycy5zaXplJyk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzVHlwZUNoZWNrZWQoZmlsZSkge1xyXG4gICAgbGV0IGFyciA9IHRoaXMuYWxsb3dlZFR5cGVzLnNwbGl0KCcsJyk7XHJcbiAgICBpZiAoYXJyLmluZGV4T2YoZmlsZS50eXBlKSA+IC0xKVxyXG4gICAgICB7cmV0dXJuIHRydWV9XHJcbiAgICBlbHNlIGlmKGFyci5pbmRleE9mKHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlLm5hbWUpKSA+IC0xKXtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZih0aGlzLnNob3dBbGxvd2VkVHlwZXNJbkVycm9yTWVzcyl7XHJcbiAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICdFUlJPUlMuVFlQRScsXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICAgIHRoaXMuYWxsb3dlZFR5cGVzLnJlcGxhY2UoL2ltYWdlfGFwcGxpY2F0aW9uL2dpLCAnJykucmVwbGFjZSgvWy9dL2csICcnKS50b1VwcGVyQ2FzZSgpXHJcbiAgICAgICAgKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICdFUlJPUlMuV1JPTkdfVFlQRScpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IubmV4dCgnZXJyb3JzLnR5cGUnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNNYXhOdW1iZXJPZkZpbGVzKHNlbGVjdGVkRmlsZXMpIHtcclxuICAgIGlmIChzZWxlY3RlZEZpbGVzLmxlbmd0aCA8PSB0aGlzLmFsbG93ZWRNYXhOdW1iZXJPZkZpbGVzKVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAnRVJST1JTLk1BWF9OVU1CRVJfT0ZfRklMRVMnLFxyXG4gICAgICAgIHt9LFxyXG4gICAgICAgIHRoaXMuYWxsb3dlZE1heE51bWJlck9mRmlsZXNcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRFcnJvci5uZXh0KCdlcnJvcnMubWF4TnVtYmVyT2ZGaWxlcycpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGxvYWREb2N1bWVudChmaWxlcyk6IHZvaWQge1xyXG4gICAgbGV0IHNlbGVjdGVkRmlsZXMgPSBPYmplY3Qua2V5cyhmaWxlcykubWFwKGtleSA9PiBmaWxlc1trZXldKTtcclxuICAgIHNlbGVjdGVkRmlsZXMgPSBzZWxlY3RlZEZpbGVzLmZpbHRlcihmaWxlID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNNYXhOdW1iZXJPZkZpbGVzKHNlbGVjdGVkRmlsZXMpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNTaXplQ2hlY2tlZChmaWxlKSAmJiB0aGlzLmlzVHlwZUNoZWNrZWQoZmlsZSkpIHtcclxuICAgICAgICAgIHJldHVybiBmaWxlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoc2VsZWN0ZWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5kb2N1bWVudHNBcGkudXBsb2FkQmF0Y2goc2VsZWN0ZWRGaWxlcylcclxuICAgICAgICAuc3Vic2NyaWJlKChmaWxlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3JlYXRlRG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgICAgICAgLi4uZmlsZXMubWFwKChmaWxlKSA9PiB0aGlzLmRvY3VtZW50c0FwaS5jcmVhdGVEb2MoZmlsZSwgdGhpcy5wYXRoLCB0aGlzLnBhcmFtcywgdGhpcy5kb2NQYXJhbXMpKVxyXG4gICAgICAgICAgICBdKS5zdWJzY3JpYmUoZG9jcyA9PiB7XHJcbiAgICAgICAgICAgICAgZG9jcy5mb3JFYWNoKGRvYyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MubmV4dChkb2MpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGVzLmZvckVhY2goZG9jID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MubmV4dChkb2MpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRFcnJvci5uZXh0KGVycik7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdldEZpbGVFeHRlbnNpb24obmFtZSl7XHJcbiAgICBsZXQgZXh0ZW5zaW9uID0gbmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgcmV0dXJuICgnLicgKyBleHRlbnNpb24pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgY2xhc3M9XCJoaWRkZW5cIiAjZmlsZUlucHV0IFthY2NlcHRdPVwiYWxsb3dlZFR5cGVzXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAoY2hhbmdlKT1cInVwbG9hZERvY3VtZW50KCRldmVudC50YXJnZXQuZmlsZXMpXCI+XHJcbjxkaXYgI3RlbXBsYXRlIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogdGVtcGxhdGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMH1cIiAoY2xpY2spPVwidHJpZ2dlclVwbG9hZCgpXCJcclxuICBjbGFzcz1cInVwbG9hZC1jb250YWluZXJcIj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwidGVtcGxhdGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMFwiIGNsYXNzPVwiZGVmYXVsdC11cGxvYWRcIiAoY2xpY2spPVwidHJpZ2dlclVwbG9hZCgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1zZWN0aW9uXCIgc3R5bGU9XCJjb2xvcjojNDY1NTczO1wiPlxyXG4gICAgPG1hdC1pY29uIGNsYXNzPVwidXBsb2FkLWljb25cIj51cGxvYWQ8L21hdC1pY29uPlxyXG4gICAgPGgzIGNsYXNzPVwidXBsb2FkLXRpdGxlXCI+XHJcbiAgICAgIHt7J2RvY3VtZW50cy51cGxvYWREb2N1bWVudHMnfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgPHAgY2xhc3M9XCJ1cGxvYWQtZGVzY1wiPlxyXG4gICAgICB7eydkb2N1bWVudHMubWF4U2l6ZSd8IHRyYW5zbGF0ZSB9fSB7e21heFNpemUgfCBGaWxlU2l6ZX19PC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8bWF0LWljb24gY2xhc3M9XCJtLTJcIiBzdHlsZT1cImNvbG9yOiM0NjU1NzM7XCI+ZmlsZV9jb3B5PC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJ1cGxvYWRpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50LXVwbG9hZC9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBSXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQTJDbEMsWUFDVSxZQUE4QixFQUM5QixtQkFBd0M7UUFEeEMsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUE1Q2xELDJCQUEyQjtRQUUzQixpQkFBWSxHQUFHLHlIQUF5SCxDQUFDO1FBQ3pJLGlFQUFpRTtRQUVqRSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBSVosOEJBQThCO1FBRTlCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsOEJBQThCO1FBRTlCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZiwyREFBMkQ7UUFFM0QsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVOLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLHdDQUF3QztRQUV4QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdEQUFnRDtRQUVoRCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0Qix1Q0FBdUM7UUFFdkMsNEJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRzdCLGdDQUEyQixHQUFHLElBQUksQ0FBQztRQUNuQyw2R0FBNkc7UUFFN0csa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGlFQUFpRTtRQUVqRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsY0FBUyxHQUFHLEtBQUssQ0FBQztJQU1kLENBQUM7SUFFTCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzNCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsYUFBYSxFQUNiLEVBQUUsRUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckMsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzNCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLEVBQUUsRUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFDLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyQyxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQTtTQUNaO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2RixPQUFPLElBQUksQ0FBQTtTQUNkO2FBQ0k7WUFDSCxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDM0IsT0FBTyxFQUNQLE9BQU8sRUFDUCxhQUFhLEVBQ2IsRUFBRSxFQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQ3ZGLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUMzQixPQUFPLEVBQ1AsT0FBTyxFQUNQLG1CQUFtQixDQUFDLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyQyxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLGFBQWE7UUFDOUIsSUFBSSxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUI7WUFDdEQsT0FBTyxJQUFJLENBQUE7YUFDUjtZQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzNCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsNEJBQTRCLEVBQzVCLEVBQUUsRUFDRixJQUFJLENBQUMsdUJBQXVCLENBQzdCLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBSTtRQUNuQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxJQUFJLEdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzNCLE9BQU8sRUFDUCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLEVBQUUsRUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQ25ELENBQUM7b0JBQ0YsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUE7aUJBQ1o7WUFDSCxDQUFDLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRixjQUFjLENBQUMsS0FBSztRQUNqQixJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlELGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDekQsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBRyxhQUFhLENBQUMsTUFBTSxFQUFDO1lBQ3RCLElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBQztnQkFDcEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxJQUFJLEdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzNCLE9BQU8sRUFDUCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLEVBQUUsRUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQ25ELENBQUM7d0JBQ0YsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtxQkFDaEM7Z0JBQ0gsQ0FBQyxDQUFBO2FBQ0o7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQTthQUNoQztTQUNGO0lBR0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUFhO1FBQ3ZCLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUV0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLGFBQWEsQ0FBQzt3QkFDWixHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNsRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDL0IsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMvQixDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztpQkFDekM7WUFHSCxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ25CLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMzQixDQUFDOztxSEExTlUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsa2tCQy9CcEMsbThCQW1CQTs0RkRZYSx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLGtDQUFrQztvQkFDL0MsU0FBUyxFQUFFLENBQUMsa0NBQWtDLENBQUM7b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzt5SUFJQyxZQUFZO3NCQURYLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLDJCQUEyQjtzQkFEMUIsS0FBSztnQkFJTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUdpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogRG9jdW1lbnQgdXBsb2FkIGlzIGEgcmV1c2FibGUgQVBJIGludGVncmF0ZWQgdXBsb2FkIGJ1dHRvbiBjb21wb25lbnQsXHJcbiAqIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gc3VpdCB0aGUgbmVlZHMgb2YgcmVxdWlyZWQgaW1wbGVtZW50YXRpb24sXHJcbiAqIGl0IGlzIHBvc3NpYmxlIHRvIHVwbG9hZCBiYXRjaCBhbmQgY3JlYXRlIGEgZG9jdW1lbnQsIG9yIGp1c3QgdXBsb2FkIGEgYmF0Y2ggYW5kXHJcbiAqIGNvbnN1bWUgaXQgYW55IG90aGVyIHdheS5cclxuICpcclxuICogQHRpdGxlXHJcbiAqIERvY3VtZW50IFVwbG9hZFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8YXBwLWRvY3VtZW50LXVwbG9hZFxyXG4gKiAgIFthbGxvd2VkVHlwZXNdPVwiJ2FwcGxpY2F0aW9uL3BkZidcIlxyXG4gKiAgIFtjcmVhdGVEb2N1bWVudF09XCJmYWxzZVwiXHJcbiAqICAgKHVwbG9hZFN1Y2Nlc3MpPVwib25VcGxvYWRTdWNjZXNzKCRldmVudClcIlxyXG4gKiAgICh1cGxvYWRFcnJvcik9XCJvblVwbG9hZEVycm9yKCRldmVudClcIlxyXG4gKiA+XHJcbiAqICAgPGJ1dHRvbj4gVVBMT0FEIEZJTEUgPC9idXR0b24+XHJcbiAqIDwvYXBwLWRvY3VtZW50LXVwbG9hZD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRvY3VtZW50LXVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRVcGxvYWRDb21wb25lbnQge1xyXG4gIC8qKiBBbGxvd2VkIFVwbG9hZCBUeXBlcyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dlZFR5cGVzID0gJ2FwcGxpY2F0aW9uL3BkZixhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCxhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJztcclxuICAvKiogUGFyYW1zIHRvIGJlIHNlbnQgd2l0aCBwcm9wZXJ0aWVzIHdoZW4gY3JlYXRpbmcgYSBkb2N1bWVudCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zID0ge307XHJcbiAgLyoqIFBhdGggaW4gd2l0Y2ggYSBkb2N1bWVudCB3aWxsIGJlIGNyZWF0ZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIHBhdGg7XHJcbiAgLyoqIE1heCBhbGxvd2VkIHVwbG9hZCBzaXplICovXHJcbiAgQElucHV0KClcclxuICBtYXhTaXplID0gMTE0NTcyODtcclxuICAvKiogbWluIGFsbG93ZWQgdXBsb2FkIHNpemUgKi9cclxuICBASW5wdXQoKVxyXG4gIG1pblNpemUgPSAxMDAwO1xyXG5cclxuICAvKiogUGFyYW1zIHRvIGJlIHNlbnQgd2l0aCBib2R5IHdoZW4gY3JlYXRpbmcgYSBkb2N1bWVudCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZG9jUGFyYW1zID0ge307XHJcblxyXG4gIEBJbnB1dCgpIGNoZWNrUGRmQ29udGVudCA9IGZhbHNlO1xyXG4gIC8qKiBDYW4gdXBsb2FkIG11bHRpcGxlIGZpbGVzIGF0IG9uY2UgKi9cclxuICBASW5wdXQoKVxyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgLyoqIHNob3VsZCBjcmVhdGUgZG9jdW1lbnQgYWZ0ZXIgYmF0Y2ggdXBsb2FkICovXHJcbiAgQElucHV0KClcclxuICBjcmVhdGVEb2N1bWVudCA9IHRydWU7XHJcbiAgLyoqIE1heCBhbGxvd2VkIG51bWJlciBvZiBmaWxlcyBzaXplICovXHJcbiAgQElucHV0KClcclxuICBhbGxvd2VkTWF4TnVtYmVyT2ZGaWxlcyA9IDEwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dBbGxvd2VkVHlwZXNJbkVycm9yTWVzcyA9IHRydWU7XHJcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gZG9jdW1lbnQgdXBsb2FkIHN1Y2Nlc3MsIGl0IHdpbGwgaGF2ZSBkb2N1bWVudCBvciBiYXRjaCBvYmplY3QgYmFzZWQgb24gY29uZmlndXJhdGlvbiAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHVwbG9hZFN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgYXR0ZW1wdGluZyB1cGxvYWQgKi9cclxuICBAT3V0cHV0KClcclxuICB1cGxvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICB1cGxvYWRpbmcgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudHNBcGk6IERvY3VtZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGN1c3RvbVRvYXN0clNlcnZpY2U6IEN1c3RvbVRvYXN0clNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICB0cmlnZ2VyVXBsb2FkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgaXNTaXplQ2hlY2tlZChmaWxlKSB7XHJcbiAgICBpZiAoZmlsZS5zaXplID4gdGhpcy5tYXhTaXplKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAnRVJST1JTLlNJWkUnLFxyXG4gICAgICAgIHt9LFxyXG4gICAgICAgIGAkeyh0aGlzLm1heFNpemUgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpfU1CYFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVwbG9hZEVycm9yLm5leHQoJ2Vycm9ycy5zaXplJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAoZmlsZS5zaXplIDw9IHRoaXMubWluU2l6ZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgJ0VSUk9SUy5NSU5fU0laRScsXHJcbiAgICAgICAge30sXHJcbiAgICAgICAgYCR7KHRoaXMubWluU2l6ZSAvICgxMDAwKSkudG9GaXhlZCgyKX1LQmBcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRFcnJvci5uZXh0KCdlcnJvcnMuc2l6ZScpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNUeXBlQ2hlY2tlZChmaWxlKSB7XHJcbiAgICBsZXQgYXJyID0gdGhpcy5hbGxvd2VkVHlwZXMuc3BsaXQoJywnKTtcclxuICAgIGlmICgoYXJyLmluZGV4T2YoZmlsZS50eXBlKSA+IC0xKSB8fCAoYXJyLmluZGV4T2YodGhpcy5nZXRGaWxlRXh0ZW5zaW9uKGZpbGUubmFtZSkpID4gLTEpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zaG93QWxsb3dlZFR5cGVzSW5FcnJvck1lc3MpIHtcclxuICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICAgJ0VSUk9SUy5UWVBFJyxcclxuICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkVHlwZXMucmVwbGFjZSgvaW1hZ2V8YXBwbGljYXRpb24vZ2ksICcnKS5yZXBsYWNlKC9bL10vZywgJycpLnRvVXBwZXJDYXNlKClcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAnRVJST1JTLldST05HX1RZUEUnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwbG9hZEVycm9yLm5leHQoJ2Vycm9ycy50eXBlJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzTWF4TnVtYmVyT2ZGaWxlcyhzZWxlY3RlZEZpbGVzKSB7XHJcbiAgICBpZiAoc2VsZWN0ZWRGaWxlcy5sZW5ndGggPD0gdGhpcy5hbGxvd2VkTWF4TnVtYmVyT2ZGaWxlcylcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgJ0VSUk9SUy5NQVhfTlVNQkVSX09GX0ZJTEVTJyxcclxuICAgICAgICB7fSxcclxuICAgICAgICB0aGlzLmFsbG93ZWRNYXhOdW1iZXJPZkZpbGVzXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IubmV4dCgnZXJyb3JzLm1heE51bWJlck9mRmlsZXMnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGaWxlQ29udGVudChmaWxlKXtcclxuICAgIGlmICh0aGlzLmNoZWNrUGRmQ29udGVudCkge1xyXG4gICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgbGV0IGJsb2IgPSBmaWxlLnNsaWNlKDAsIDgpO1xyXG4gICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XHJcbiAgICAgICAgdmFyIGRhdGE6IHN0cmluZyA9ICgoZS50YXJnZXQucmVzdWx0KS50b1N0cmluZygpKS5zdWJzdHIoMCwgOCk7XHJcbiAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChcIiVQREYtMS5bMC03XVwiKTtcclxuICAgICAgICBpZiAoIWRhdGEubWF0Y2gocmVnZXgpKSB7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgJ0VSUk9SUy5VTlZBTElEX1BERicsXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICB0aGlzLmFsbG93ZWRUeXBlcy5yZXBsYWNlKC8uL2dpLCAnJykudG9VcHBlckNhc2UoKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gdXBsb2FkRG9jdW1lbnQoZmlsZXMpOiB2b2lkIHtcclxuICAgIGxldCBzZWxlY3RlZEZpbGVzID0gT2JqZWN0LmtleXMoZmlsZXMpLm1hcChrZXkgPT4gZmlsZXNba2V5XSk7XHJcbiAgICBzZWxlY3RlZEZpbGVzID0gc2VsZWN0ZWRGaWxlcy5maWx0ZXIoZmlsZSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzTWF4TnVtYmVyT2ZGaWxlcyhzZWxlY3RlZEZpbGVzKSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2l6ZUNoZWNrZWQoZmlsZSkgJiYgIHRoaXMuaXNUeXBlQ2hlY2tlZChmaWxlKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZpbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZihzZWxlY3RlZEZpbGVzLmxlbmd0aCl7XHJcbiAgICAgIGlmKHRoaXMuY2hlY2tQZGZDb250ZW50KXtcclxuICAgICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgbGV0IGJsb2IgPSBmaWxlc1swXS5zbGljZSgwLCA4KTtcclxuICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpO1xyXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBkYXRhOiBzdHJpbmcgPSAoKGUudGFyZ2V0LnJlc3VsdCkudG9TdHJpbmcoKSkuc3Vic3RyKDAsIDgpO1xyXG4gICAgICAgICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKFwiJVBERi0xLlswLTddXCIpO1xyXG4gICAgICAgICAgICBpZiAoIWRhdGEubWF0Y2gocmVnZXgpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICAgICAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICdFUlJPUlMuVU5WQUxJRF9QREYnLFxyXG4gICAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRUeXBlcy5yZXBsYWNlKC8uL2dpLCAnJykudG9VcHBlckNhc2UoKVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXMoc2VsZWN0ZWRGaWxlcylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnVwbG9hZEZpbGVzKHNlbGVjdGVkRmlsZXMpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZXMoc2VsZWN0ZWRGaWxlcyl7XHJcbiAgICBpZiAoc2VsZWN0ZWRGaWxlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5kb2N1bWVudHNBcGkudXBsb2FkQmF0Y2goc2VsZWN0ZWRGaWxlcylcclxuICAgICAgICAuc3Vic2NyaWJlKChmaWxlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3JlYXRlRG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgICAgICAgLi4uZmlsZXMubWFwKChmaWxlKSA9PiB0aGlzLmRvY3VtZW50c0FwaS5jcmVhdGVEb2MoZmlsZSwgdGhpcy5wYXRoLCB0aGlzLnBhcmFtcywgdGhpcy5kb2NQYXJhbXMpKVxyXG4gICAgICAgICAgICBdKS5zdWJzY3JpYmUoZG9jcyA9PiB7XHJcbiAgICAgICAgICAgICAgZG9jcy5mb3JFYWNoKGRvYyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MubmV4dChkb2MpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGVzLmZvckVhY2goZG9jID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MubmV4dChkb2MpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRFcnJvci5uZXh0KGVycik7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RmlsZUV4dGVuc2lvbihuYW1lKSB7XHJcbiAgICBsZXQgZXh0ZW5zaW9uID0gbmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgcmV0dXJuICgnLicgKyBleHRlbnNpb24pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgY2xhc3M9XCJoaWRkZW5cIiAjZmlsZUlucHV0IFthY2NlcHRdPVwiYWxsb3dlZFR5cGVzXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAoY2hhbmdlKT1cInVwbG9hZERvY3VtZW50KCRldmVudC50YXJnZXQuZmlsZXMpXCI+XHJcbjxkaXYgI3RlbXBsYXRlIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogdGVtcGxhdGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMH1cIiAoY2xpY2spPVwidHJpZ2dlclVwbG9hZCgpXCJcclxuICBjbGFzcz1cInVwbG9hZC1jb250YWluZXJcIj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwidGVtcGxhdGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMFwiIGNsYXNzPVwiZGVmYXVsdC11cGxvYWRcIiAoY2xpY2spPVwidHJpZ2dlclVwbG9hZCgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1zZWN0aW9uXCIgc3R5bGU9XCJjb2xvcjojNDY1NTczO1wiPlxyXG4gICAgPG1hdC1pY29uIGNsYXNzPVwidXBsb2FkLWljb25cIj51cGxvYWQ8L21hdC1pY29uPlxyXG4gICAgPGgzIGNsYXNzPVwidXBsb2FkLXRpdGxlXCI+XHJcbiAgICAgIHt7J2RvY3VtZW50cy51cGxvYWREb2N1bWVudHMnfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgPHAgY2xhc3M9XCJ1cGxvYWQtZGVzY1wiPlxyXG4gICAgICB7eydkb2N1bWVudHMubWF4U2l6ZSd8IHRyYW5zbGF0ZSB9fSB7e21heFNpemUgfCBGaWxlU2l6ZX19PC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8bWF0LWljb24gY2xhc3M9XCJtLTJcIiBzdHlsZT1cImNvbG9yOiM0NjU1NzM7XCI+ZmlsZV9jb3B5PC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJ1cGxvYWRpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiJdfQ==
@@ -35,7 +35,7 @@ export class DocumentsComponent {
35
35
  }
36
36
  }
37
37
  DocumentsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentsComponent, deps: [{ token: i1.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
38
- DocumentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DocumentsComponent, selector: "app-documents", inputs: { ancestorId: "ancestorId", quickFilters: "quickFilters", params: "params", provider: "provider", path: "path", canUploadRoles: "canUploadRoles", multiple: "multiple", maxSize: "maxSize" }, ngImport: i0, template: "<app-card>\r\n <h3 class=\"title text-lg font-bold\">\r\n {{ \"documents.title\" | translate }}\r\n </h3>\r\n\r\n\r\n <div class=\"body\">\r\n <app-document-upload [multiple]=\"multiple\" *appHasRole=\"canUploadRoles\" [docParams]=\"{type:documentConstants.documentTypes.attachment}\"\r\n [path]=\"this.path\" [params]=\"this.params\" (uploadSuccess)=\"onSuccess($event)\" (uploadError)=\"onError($event)\">\r\n </app-document-upload>\r\n <app-documents-list [quickFilters]=\"quickFilters\" [notifier]=\"notifier\" [ancestorId]=\"ancestorId\"\r\n [provider]=\"provider\" (deleteSuccess)=\"onDelete($event)\">\r\n </app-documents-list>\r\n\r\n </div>\r\n</app-card>\r\n", styles: [""], components: [{ type: i2.CardComponent, selector: "app-card", inputs: ["noBody", "dark"] }, { type: i3.DocumentUploadComponent, selector: "app-document-upload", inputs: ["allowedTypes", "params", "path", "maxSize", "minSize", "docParams", "multiple", "createDocument", "allowedMaxNumberOfFiles", "showAllowedTypesInErrorMess"], outputs: ["uploadSuccess", "uploadError"] }, { type: i4.DocumentsListComponent, selector: "app-documents-list", inputs: ["ancestorId", "provider", "disablePagination", "containerClasses", "itemsClasses", "items", "notifier", "canPreview", "batchList", "dontDelete", "canDelete", "quickFilters", "memoView"], outputs: ["deleteSuccess", "documentsCount", "documentSelect"] }], directives: [{ type: i5.AppHasRoleDirective, selector: "[appHasRole]", inputs: ["appHasRole"] }], pipes: { "translate": i6.TranslatePipe } });
38
+ DocumentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DocumentsComponent, selector: "app-documents", inputs: { ancestorId: "ancestorId", quickFilters: "quickFilters", params: "params", provider: "provider", path: "path", canUploadRoles: "canUploadRoles", multiple: "multiple", maxSize: "maxSize" }, ngImport: i0, template: "<app-card>\r\n <h3 class=\"title text-lg font-bold\">\r\n {{ \"documents.title\" | translate }}\r\n </h3>\r\n\r\n\r\n <div class=\"body\">\r\n <app-document-upload [multiple]=\"multiple\" *appHasRole=\"canUploadRoles\" [docParams]=\"{type:documentConstants.documentTypes.attachment}\"\r\n [path]=\"this.path\" [params]=\"this.params\" (uploadSuccess)=\"onSuccess($event)\" (uploadError)=\"onError($event)\">\r\n </app-document-upload>\r\n <app-documents-list [quickFilters]=\"quickFilters\" [notifier]=\"notifier\" [ancestorId]=\"ancestorId\"\r\n [provider]=\"provider\" (deleteSuccess)=\"onDelete($event)\">\r\n </app-documents-list>\r\n\r\n </div>\r\n</app-card>\r\n", styles: [""], components: [{ type: i2.CardComponent, selector: "app-card", inputs: ["noBody", "dark"] }, { type: i3.DocumentUploadComponent, selector: "app-document-upload", inputs: ["allowedTypes", "params", "path", "maxSize", "minSize", "docParams", "checkPdfContent", "multiple", "createDocument", "allowedMaxNumberOfFiles", "showAllowedTypesInErrorMess"], outputs: ["uploadSuccess", "uploadError"] }, { type: i4.DocumentsListComponent, selector: "app-documents-list", inputs: ["ancestorId", "provider", "disablePagination", "containerClasses", "itemsClasses", "items", "notifier", "canPreview", "batchList", "dontDelete", "canDelete", "quickFilters", "memoView"], outputs: ["deleteSuccess", "documentsCount", "documentSelect"] }], directives: [{ type: i5.AppHasRoleDirective, selector: "[appHasRole]", inputs: ["appHasRole"] }], pipes: { "translate": i6.TranslatePipe } });
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentsComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{