@elderbyte/ngx-starter 12.10.1 → 12.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/bundles/elderbyte-ngx-starter.umd.js +203 -21
  2. package/bundles/elderbyte-ngx-starter.umd.js.map +1 -1
  3. package/elderbyte-ngx-starter.metadata.json +1 -1
  4. package/esm2015/lib/common/errors/exception-detail.js +2 -0
  5. package/esm2015/lib/common/errors/public_api.js +3 -0
  6. package/esm2015/lib/common/public_api.js +2 -1
  7. package/esm2015/lib/components/auditing/audited-entity/elder-audited-entity.component.js +34 -0
  8. package/esm2015/lib/components/auditing/elder-audit.module.js +31 -0
  9. package/esm2015/lib/components/auditing/i-audited-entity.js +3 -0
  10. package/esm2015/lib/components/card-organizer/card-organizer/elder-card-organizer.component.js +3 -3
  11. package/esm2015/lib/components/data-view/grid/elder-grid/elder-grid.component.js +24 -4
  12. package/esm2015/lib/components/data-view/grid/elder-grid.module.js +3 -2
  13. package/esm2015/lib/components/errors/elder-error.module.js +31 -0
  14. package/esm2015/lib/components/errors/exception-detail/elder-exception-detail.component.js +63 -0
  15. package/esm2015/lib/components/files/blob-viewer/elder-blob-viewer.component.js +6 -8
  16. package/esm2015/lib/components/public_api.js +3 -1
  17. package/esm2015/lib/components/time/duration/iso-duration-str.js +2 -0
  18. package/esm2015/lib/components/time/public_api.js +2 -1
  19. package/esm2015/lib/pipes/iso-duration.pipe.js +1 -1
  20. package/esm2015/lib/pipes/time-ago.pipe.js +1 -1
  21. package/fesm2015/elderbyte-ngx-starter.js +169 -13
  22. package/fesm2015/elderbyte-ngx-starter.js.map +1 -1
  23. package/lib/common/errors/exception-detail.d.ts +5 -0
  24. package/lib/common/errors/public_api.d.ts +2 -0
  25. package/lib/common/public_api.d.ts +1 -0
  26. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +17 -0
  27. package/lib/components/auditing/elder-audit.module.d.ts +4 -0
  28. package/lib/components/auditing/i-audited-entity.d.ts +13 -0
  29. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +9 -4
  30. package/lib/components/errors/elder-error.module.d.ts +6 -0
  31. package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +39 -0
  32. package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
  33. package/lib/components/public_api.d.ts +2 -0
  34. package/lib/components/time/duration/iso-duration-str.d.ts +5 -0
  35. package/lib/components/time/public_api.d.ts +1 -0
  36. package/lib/pipes/iso-duration.pipe.d.ts +2 -1
  37. package/lib/pipes/time-ago.pipe.d.ts +1 -1
  38. package/package.json +1 -1
  39. package/src/lib/components/auditing/audited-entity/elder-audited-entity.component.scss +4 -0
  40. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +9 -0
  41. package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +3 -0
  42. package/theming.scss +59 -0
@@ -84,11 +84,9 @@ export class ElderBlobViewerComponent {
84
84
  this.blobContext$ = new BehaviorSubject(null);
85
85
  this._url$ = new BehaviorSubject(null);
86
86
  this._mimeType$ = new BehaviorSubject(null);
87
- this.unsubscribe$ = new Subject();
87
+ this.destroy$ = new Subject();
88
88
  this._displayUnknownAsText = false;
89
- combineLatest([this._url$, this._mimeType$]).pipe(takeUntil(this.unsubscribe$), filter(([url, mimeType]) => !!url && !!mimeType), map(([url, mimeType]) => BlobUrl.from(url, mimeType))).subscribe(blobUrl => {
90
- this.blobUrl = blobUrl;
91
- });
89
+ combineLatest([this._url$, this._mimeType$]).pipe(takeUntil(this.destroy$), filter(([url, mimeType]) => !!url), map(([url, mimeType]) => BlobUrl.from(url, mimeType))).subscribe(blobUrl => this.blobUrl = blobUrl);
92
90
  }
93
91
  /***************************************************************************
94
92
  * *
@@ -97,8 +95,8 @@ export class ElderBlobViewerComponent {
97
95
  **************************************************************************/
98
96
  ngOnInit() { }
99
97
  ngOnDestroy() {
100
- this.unsubscribe$.next();
101
- this.unsubscribe$.complete();
98
+ this.destroy$.next();
99
+ this.destroy$.complete();
102
100
  }
103
101
  /***************************************************************************
104
102
  * *
@@ -210,7 +208,7 @@ ElderBlobViewerComponent.decorators = [
210
208
  selector: 'elder-blob-viewer',
211
209
  template: "<div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"document-viewer\" fxFill>\n\n <ng-container *ngIf=\"blobContext$ | async as blobContext\">\n\n <!-- Video -->\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"blobContext.mimeType.isVideo\" fxFill>\n <video class=\"video\"\n controls autoplay loop\n\n >\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\">\n Your browser does not support HTML5 video.\n </video>\n </div>\n\n <!-- Audio -->\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"blobContext.mimeType.isAudio\" fxFill>\n <audio class=\"audio\"\n controls autoplay loop\n >\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\">\n Your browser does not support HTML5 audio.\n </audio>\n </div>\n\n <!-- Image -->\n <div fxLayout=\"column\" *ngIf=\"blobContext.mimeType.isImage\" style=\"overflow: hidden\" fxFill>\n <img class=\"cover\" fxFlex\n [src]=\"blobContext.safeUrl\" alt=\"blob image\"/>\n </div>\n\n <!-- Embedded (PDFs etc) -->\n <div fxLayout=\"column\" *ngIf=\"blobContext.displayEmbedded\" fxFill>\n <div style=\"width: 100%;height: 100%\">\n <embed class=\"embedded\" [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" width=\"100%\" height=\"100%\">\n </div>\n </div>\n\n <!-- Plain Text -->\n <div fxLayout=\"column\" *ngIf=\"blobContext.displayAsText\" fxFill>\n <textarea\n class=\"document-content\"\n placeholder=\"Content\"\n [value]=\"blobContext.text\" wrap=\"off\"\n readonly\n ></textarea>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"blobContext.cantDisplay\" fxFill>\n <p>Cant display {{blobContext.mimeType.value}}!</p>\n </div>\n\n </ng-container>\n\n <ng-container *ngIf=\"!(blobContext$ | async)\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFill>\n <p>No Document.</p>\n </div>\n </ng-container>\n\n\n</div>\n",
212
210
  changeDetection: ChangeDetectionStrategy.OnPush,
213
- styles: [".document-viewer{background-color:#dedede;color:#1f1e1e}.video{width:100%;height:auto}.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{-o-object-fit:scale-down;object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:#575757;color:#ccc;outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-radius:0;box-shadow:0 2px 14px #000;border-top:1px solid #FFF;border-bottom:1px solid #FFF}\n"]
211
+ styles: [":host{overflow:hidden}.document-viewer{background-color:#dedede;color:#1f1e1e}.video{width:100%;height:auto}.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{-o-object-fit:scale-down;object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:#575757;color:#ccc;outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-radius:0;box-shadow:0 2px 14px #000;border-top:1px solid #FFF;border-bottom:1px solid #FFF}\n"]
214
212
  },] }
215
213
  ];
216
214
  ElderBlobViewerComponent.ctorParameters = () => [
@@ -225,4 +223,4 @@ ElderBlobViewerComponent.propDecorators = {
225
223
  url: [{ type: Input }],
226
224
  mimeType: [{ type: Input }]
227
225
  };
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmxvYi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9ibG9iLXZpZXdlci9lbGRlci1ibG9iLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxXQUFXO0lBZ0JmLFlBQ2tCLE9BQWdCLEVBQ2hCLFFBQXNCLEVBQ3RCLE9BQWUsSUFBSTtRQUZuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUVyQyxDQUFDO0lBbkJNLE1BQU0sQ0FBQyxRQUFRLENBQ3BCLElBQVksRUFDWixRQUFzQjtRQUV0QixPQUFPLElBQUksV0FBVyxDQUFDLElB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QUMsQ0FDOUQsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXNCO1FBRTdDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRGLDhFQUE4RTtRQUM5RSxvRUFBb0U7UUFDcEUsd0ZBQXdGO1FBRXhGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUFtQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUN4QyxZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUEzTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDJtRUFBaUQ7Z0JBRWpELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBOUZPLGtCQUFrQjtZQUpsQixZQUFZO1lBS1osaUJBQWlCOzs7bUNBNkp0QixLQUFLO21CQWNMLEtBQUs7c0JBU0wsS0FBSztrQkFVTCxLQUFLO3VCQVNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVVybH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge0Jsb2JVcmx9IGZyb20gJy4uL2Jsb2ItdXJsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtIdHRwQ2xpZW50UHJpc3RpbmV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9odHRwL2h0dHAtY2xpZW50LXByaXN0aW5lJztcbmltcG9ydCB7RWxkZXJUb2FzdFNlcnZpY2V9IGZyb20gJy4uLy4uL3RvYXN0cy9lbGRlci10b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmNsYXNzIEJsb2JDb250ZXh0IHtcblxuICBwdWJsaWMgc3RhdGljIHRleHRCbG9iKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBtaW1lVHlwZTogQmxvYk1pbWVUeXBlXG4gICkge1xuICAgIHJldHVybiBuZXcgQmxvYkNvbnRleHQobnVsbCwgbWltZVR5cGUsIHRleHQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzYWZlVXJsKFxuICAgIHNhZmVVcmw6IFNhZmVVcmwsXG4gICAgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSxcbiAgKTogQmxvYkNvbnRleHQge1xuICAgIHJldHVybiBuZXcgQmxvYkNvbnRleHQoc2FmZVVybCwgbWltZVR5cGUsIG51bGwpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHNhZmVVcmw6IFNhZmVVcmwsXG4gICAgcHVibGljIHJlYWRvbmx5IG1pbWVUeXBlOiBCbG9iTWltZVR5cGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHRleHQ6IHN0cmluZyA9IG51bGxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXlBc1RleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy50ZXh0O1xuICB9XG5cbiAgcHVibGljIGdldCBjYW50RGlzcGxheSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzcGxheUFzVGV4dCAmJiAhdGhpcy5kaXNwbGF5RW1iZWRkZWRcbiAgICAgICYmICF0aGlzLm1pbWVUeXBlLmlzQXVkaW8gJiYgIXRoaXMubWltZVR5cGUuaXNJbWFnZSAmJiAhdGhpcy5taW1lVHlwZS5pc1ZpZGVvO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5RW1iZWRkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWltZVR5cGUuaXNQZGY7XG4gIH1cblxufVxuXG5jbGFzcyBCbG9iTWltZVR5cGUge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT0NURVRfU1RSRUFNID0gbmV3IEJsb2JNaW1lVHlwZSgnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZShtaW1lVHlwZTogc3RyaW5nKTogQmxvYk1pbWVUeXBlIHtcbiAgICBpZiAobWltZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgQmxvYk1pbWVUeXBlKG1pbWVUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEJsb2JNaW1lVHlwZS5PQ1RFVF9TVFJFQU07XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmdcbiAgKSB7ICB9XG5cbiAgcHVibGljIGdldCBpc09jdGV0U3RyZWFtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1ZpZGVvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ3ZpZGVvLycpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0ltYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0F1ZGlvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0pzb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgnYXBwbGljYXRpb24vanNvbicpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1BkZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5zdGFydHNXaXRoKCdhcHBsaWNhdGlvbi9wZGYnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ3RleHQvJykgfHwgdGhpcy5pc0pzb247XG4gIH1cblxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1ibG9iLXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1ibG9iLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWJsb2Itdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmxvYlZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJsb2JDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmxvYkNvbnRleHQ+KG51bGwpO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdXJsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWltZVR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2Rpc3BsYXlVbmtub3duQXNUZXh0ID0gZmFsc2U7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwUHJpc3RpbmU6IEh0dHBDbGllbnRQcmlzdGluZSxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBFbGRlclRvYXN0U2VydmljZVxuICApIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl91cmwkLCB0aGlzLl9taW1lVHlwZSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgIGZpbHRlcigoW3VybCwgbWltZVR5cGVdKSA9PiAhIXVybCAmJiAhIW1pbWVUeXBlKSxcbiAgICAgIG1hcCgoW3VybCwgbWltZVR5cGVdKSA9PiBCbG9iVXJsLmZyb20odXJsLCBtaW1lVHlwZSkpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBibG9iVXJsID0+IHtcbiAgICAgICAgdGhpcy5ibG9iVXJsID0gYmxvYlVybDtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgeyAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIGRpc3BsYXkgdW5rbm93biBibG9icyBhcyB0ZXh0LiAoaS5lLiBtaW1lLXR5cGUgaXMgb2N0ZXQtc3RyZWFtKVxuICAgKiBAcGFyYW0gdW5rbm93bkFzVGV4dFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5VW5rbm93bkFzVGV4dCh1bmtub3duQXNUZXh0OiBib29sZWFuKSB7XG5cbiAgICAvLyBUT0RPIEZJWCBSQUNFIENPTkRJVElPTjpcbiAgICAvLyAgICBTaW5jZSB0aGlzIHByb3BlcnR5IGlzIG5vdCByZWFjdGl2ZSwgaXQgbXVzdCBiZSBzZXQgZmlyc3QuXG4gICAgLy8gICAgT3RoZXJ3aXNlLCBpdCB3aWxsIHN0aWxsIGJlIGZhbHNlLCBldmVuIGlmIHNldCB0byB0cnVlIVxuXG4gICAgdGhpcy5fZGlzcGxheVVua25vd25Bc1RleHQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodW5rbm93bkFzVGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW4gbWVtb3J5IGJsb2IgdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGJsb2JcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYmxvYihibG9iOiBCbG9iKSB7XG4gICAgdGhpcy5oYW5kbGVCbG9iKGJsb2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGJsb2ItdXJsIHRvIGRpc3BsYXkuXG4gICAqIEBwYXJhbSBibG9iVXJsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJsb2JVcmwoYmxvYlVybDogQmxvYlVybCkge1xuICAgIHRoaXMuaGFuZGxlQmxvYlVybChibG9iVXJsKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldCBhIHVybCB0byBkaXNwbGF5LiBSZXF1aXJlcyB0aGUgbWltZVR5cGUgdG8gYmUgc2V0IGFzd2VsbC5cbiAgICogQHBhcmFtIHVybFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB1cmwodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmwkLm5leHQodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1pbWUtdHlwZSBmb3IgdGhlIHVybCB0byBkaXNwbGF5LiBPbmx5IGNvbnNpZGVyZWQgaWYgdXJsIGlzIHNldC5cbiAgICogQHBhcmFtIG1pbWVUeXBlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1pbWVUeXBlKG1pbWVUeXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9taW1lVHlwZSQubmV4dChtaW1lVHlwZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHByaXZhdGUgaGFuZGxlQmxvYihibG9iOiBCbG9iKTogdm9pZCB7XG5cbiAgICBjb25zdCBzYWZlVXJsID0gdGhpcy5jcmVhdGVTYWZlVXJsRnJvbUJsb2IoYmxvYik7XG4gICAgY29uc3QgbWltZVR5cGUgPSBCbG9iTWltZVR5cGUucGFyc2UoYmxvYi50eXBlKTtcblxuICAgIGlmICh0aGlzLmNhbkRpc3BsYXlBc1RleHQobWltZVR5cGUpKSB7XG4gICAgICB0aGlzLnRleHRDb250ZXh0KGJsb2IsIG1pbWVUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXh0QmxvYihcbiAgICAgICAgQmxvYkNvbnRleHQuc2FmZVVybChcbiAgICAgICAgICBzYWZlVXJsLFxuICAgICAgICAgIG1pbWVUeXBlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0ZXh0Q29udGV4dChibG9iOiBCbG9iLCBtaW1lVHlwZTogQmxvYk1pbWVUeXBlKTogdm9pZCB7XG4gICAgYmxvYi50ZXh0KCkudGhlbihcbiAgICAgIHRleHQgPT4ge1xuICAgICAgICB0aGlzLm5leHRCbG9iKFxuICAgICAgICAgIEJsb2JDb250ZXh0LnRleHRCbG9iKFxuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIG1pbWVUeXBlXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJsb2JVcmwoYmxvYlVybDogQmxvYlVybCk6IHZvaWQge1xuXG4gICAgY29uc3Qgc2FmZVVybCA9IHRoaXMuY3JlYXRlU2FmZVVybEZyb21EYXRhVXJsKGJsb2JVcmwudXJsKTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IEJsb2JNaW1lVHlwZS5wYXJzZShibG9iVXJsLm1pbWVUeXBlKTtcblxuICAgIGlmICh0aGlzLmNhbkRpc3BsYXlBc1RleHQobWltZVR5cGUpKSB7XG4gICAgICB0aGlzLmxvYWRBc1RleHQoYmxvYlVybC51cmwsIG1pbWVUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXh0QmxvYihcbiAgICAgICAgQmxvYkNvbnRleHQuc2FmZVVybChcbiAgICAgICAgICBzYWZlVXJsLFxuICAgICAgICAgIG1pbWVUeXBlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0QmxvYihibG9iQ29udGV4dDogQmxvYkNvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmJsb2JDb250ZXh0JC5uZXh0KGJsb2JDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU2FmZVVybEZyb21CbG9iKGJsb2I6IEJsb2IpOiBTYWZlVXJsIHtcbiAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGJsb2JVcmwpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTYWZlVXJsRnJvbURhdGFVcmwodXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRBc1RleHQocHJpc3RpbmVVcmw6IHN0cmluZywgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IHZvaWQge1xuXG4gICAgdGhpcy5uZXh0QmxvYihcbiAgICAgIEJsb2JDb250ZXh0LnRleHRCbG9iKCdMb2FkaW5nLi4uJywgbWltZVR5cGUpXG4gICAgKTtcblxuICAgIHRoaXMuZG93bmxvYWRBc1RleHQocHJpc3RpbmVVcmwpLnN1YnNjcmliZShcbiAgICAgIHRleHQgPT4ge1xuICAgICAgICB0aGlzLm5leHRCbG9iKFxuICAgICAgICAgIEJsb2JDb250ZXh0LnRleHRCbG9iKHRleHQsIG1pbWVUeXBlKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMubmV4dEJsb2IoXG4gICAgICAgICAgQmxvYkNvbnRleHQudGV4dEJsb2IoJ0ZhaWxlZCB0byBkb3dubG9hZCBjb250ZW50IScsIG1pbWVUeXBlKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS53YXJuKCdGYWlsZWQgdG8gZG93bmxvYWQgY29udGVudCEnLCBlcnIpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNhbkRpc3BsYXlBc1RleHQobWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IGJvb2xlYW4ge1xuXG4gICAgY29uc3QgY2FuID0gbWltZVR5cGUuaXNUZXh0IHx8ICh0aGlzLl9kaXNwbGF5VW5rbm93bkFzVGV4dCAmJiBtaW1lVHlwZS5pc09jdGV0U3RyZWFtKTtcblxuICAgIC8vIFRPRE8gX2Rpc3BsYXlVbmtub3duQXNUZXh0IG1pZ2h0IGJlIG51bGwgZHVlIHJhY2UgY29uZGl0aW9uIHNlZSB0b2RvIGFib3ZlLlxuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdjYW5EaXNwbGF5QXNUZXh0KCcgKyBtaW1lVHlwZS52YWx1ZSArICcpIC0tPiAnXG4gICAgLy8gICsgY2FuICsgJyAtLS0+IHRoaXMuX2Rpc3BsYXlVbmtub3duQXNUZXh0OicgKyB0aGlzLl9kaXNwbGF5VW5rbm93bkFzVGV4dCwgbWltZVR5cGUpO1xuXG4gICAgcmV0dXJuIGNhbjtcbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWRBc1RleHQocHJpc3RpbmVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFByaXN0aW5lLmdldChwcmlzdGluZVVybCwge1xuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICB9KTtcbiAgfVxuXG5cblxufVxuIl19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmxvYi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9ibG9iLXZpZXdlci9lbGRlci1ibG9iLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxXQUFXO0lBZ0JmLFlBQ2tCLE9BQWdCLEVBQ2hCLFFBQXNCLEVBQ3RCLE9BQWUsSUFBSTtRQUZuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUVyQyxDQUFDO0lBbkJNLE1BQU0sQ0FBQyxRQUFRLENBQ3BCLElBQVksRUFDWixRQUFzQjtRQUV0QixPQUFPLElBQUksV0FBVyxDQUFDLElB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QUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXNCO1FBRTdDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRGLDhFQUE4RTtRQUM5RSxvRUFBb0U7UUFDcEUsd0ZBQXdGO1FBRXhGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUFtQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUN4QyxZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFoTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDJtRUFBaUQ7Z0JBRWpELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBOUZPLGtCQUFrQjtZQUpsQixZQUFZO1lBS1osaUJBQWlCOzs7bUNBMkp0QixLQUFLO21CQWNMLEtBQUs7c0JBU0wsS0FBSztrQkFVTCxLQUFLO3VCQVNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVVybH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge0Jsb2JVcmx9IGZyb20gJy4uL2Jsb2ItdXJsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtIdHRwQ2xpZW50UHJpc3RpbmV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9odHRwL2h0dHAtY2xpZW50LXByaXN0aW5lJztcbmltcG9ydCB7RWxkZXJUb2FzdFNlcnZpY2V9IGZyb20gJy4uLy4uL3RvYXN0cy9lbGRlci10b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmNsYXNzIEJsb2JDb250ZXh0IHtcblxuICBwdWJsaWMgc3RhdGljIHRleHRCbG9iKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBtaW1lVHlwZTogQmxvYk1pbWVUeXBlXG4gICkge1xuICAgIHJldHVybiBuZXcgQmxvYkNvbnRleHQobnVsbCwgbWltZVR5cGUsIHRleHQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzYWZlVXJsKFxuICAgIHNhZmVVcmw6IFNhZmVVcmwsXG4gICAgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSxcbiAgKTogQmxvYkNvbnRleHQge1xuICAgIHJldHVybiBuZXcgQmxvYkNvbnRleHQoc2FmZVVybCwgbWltZVR5cGUsIG51bGwpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHNhZmVVcmw6IFNhZmVVcmwsXG4gICAgcHVibGljIHJlYWRvbmx5IG1pbWVUeXBlOiBCbG9iTWltZVR5cGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHRleHQ6IHN0cmluZyA9IG51bGxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXlBc1RleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy50ZXh0O1xuICB9XG5cbiAgcHVibGljIGdldCBjYW50RGlzcGxheSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzcGxheUFzVGV4dCAmJiAhdGhpcy5kaXNwbGF5RW1iZWRkZWRcbiAgICAgICYmICF0aGlzLm1pbWVUeXBlLmlzQXVkaW8gJiYgIXRoaXMubWltZVR5cGUuaXNJbWFnZSAmJiAhdGhpcy5taW1lVHlwZS5pc1ZpZGVvO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5RW1iZWRkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWltZVR5cGUuaXNQZGY7XG4gIH1cblxufVxuXG5jbGFzcyBCbG9iTWltZVR5cGUge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT0NURVRfU1RSRUFNID0gbmV3IEJsb2JNaW1lVHlwZSgnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZShtaW1lVHlwZTogc3RyaW5nKTogQmxvYk1pbWVUeXBlIHtcbiAgICBpZiAobWltZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgQmxvYk1pbWVUeXBlKG1pbWVUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEJsb2JNaW1lVHlwZS5PQ1RFVF9TVFJFQU07XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmdcbiAgKSB7ICB9XG5cbiAgcHVibGljIGdldCBpc09jdGV0U3RyZWFtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1ZpZGVvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ3ZpZGVvLycpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0ltYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0F1ZGlvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0pzb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgnYXBwbGljYXRpb24vanNvbicpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1BkZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5zdGFydHNXaXRoKCdhcHBsaWNhdGlvbi9wZGYnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ3RleHQvJykgfHwgdGhpcy5pc0pzb247XG4gIH1cblxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1ibG9iLXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1ibG9iLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWJsb2Itdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmxvYlZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJsb2JDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmxvYkNvbnRleHQ+KG51bGwpO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdXJsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWltZVR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfZGlzcGxheVVua25vd25Bc1RleHQgPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBQcmlzdGluZTogSHR0cENsaWVudFByaXN0aW5lLFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IEVsZGVyVG9hc3RTZXJ2aWNlXG4gICkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3VybCQsIHRoaXMuX21pbWVUeXBlJF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICBmaWx0ZXIoKFt1cmwsIG1pbWVUeXBlXSkgPT4gISF1cmwpLFxuICAgICAgbWFwKChbdXJsLCBtaW1lVHlwZV0pID0+IEJsb2JVcmwuZnJvbSh1cmwsIG1pbWVUeXBlKSlcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGJsb2JVcmwgPT4gdGhpcy5ibG9iVXJsID0gYmxvYlVybFxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7ICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIGRpc3BsYXkgdW5rbm93biBibG9icyBhcyB0ZXh0LiAoaS5lLiBtaW1lLXR5cGUgaXMgb2N0ZXQtc3RyZWFtKVxuICAgKiBAcGFyYW0gdW5rbm93bkFzVGV4dFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5VW5rbm93bkFzVGV4dCh1bmtub3duQXNUZXh0OiBib29sZWFuKSB7XG5cbiAgICAvLyBUT0RPIEZJWCBSQUNFIENPTkRJVElPTjpcbiAgICAvLyAgICBTaW5jZSB0aGlzIHByb3BlcnR5IGlzIG5vdCByZWFjdGl2ZSwgaXQgbXVzdCBiZSBzZXQgZmlyc3QuXG4gICAgLy8gICAgT3RoZXJ3aXNlLCBpdCB3aWxsIHN0aWxsIGJlIGZhbHNlLCBldmVuIGlmIHNldCB0byB0cnVlIVxuXG4gICAgdGhpcy5fZGlzcGxheVVua25vd25Bc1RleHQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodW5rbm93bkFzVGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW4gbWVtb3J5IGJsb2IgdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGJsb2JcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYmxvYihibG9iOiBCbG9iKSB7XG4gICAgdGhpcy5oYW5kbGVCbG9iKGJsb2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGJsb2ItdXJsIHRvIGRpc3BsYXkuXG4gICAqIEBwYXJhbSBibG9iVXJsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJsb2JVcmwoYmxvYlVybDogQmxvYlVybCkge1xuICAgIHRoaXMuaGFuZGxlQmxvYlVybChibG9iVXJsKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldCBhIHVybCB0byBkaXNwbGF5LiBSZXF1aXJlcyB0aGUgbWltZVR5cGUgdG8gYmUgc2V0IGFzd2VsbC5cbiAgICogQHBhcmFtIHVybFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB1cmwodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmwkLm5leHQodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1pbWUtdHlwZSBmb3IgdGhlIHVybCB0byBkaXNwbGF5LiBPbmx5IGNvbnNpZGVyZWQgaWYgdXJsIGlzIHNldC5cbiAgICogQHBhcmFtIG1pbWVUeXBlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1pbWVUeXBlKG1pbWVUeXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9taW1lVHlwZSQubmV4dChtaW1lVHlwZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHByaXZhdGUgaGFuZGxlQmxvYihibG9iOiBCbG9iKTogdm9pZCB7XG5cbiAgICBjb25zdCBzYWZlVXJsID0gdGhpcy5jcmVhdGVTYWZlVXJsRnJvbUJsb2IoYmxvYik7XG4gICAgY29uc3QgbWltZVR5cGUgPSBCbG9iTWltZVR5cGUucGFyc2UoYmxvYi50eXBlKTtcblxuICAgIGlmICh0aGlzLmNhbkRpc3BsYXlBc1RleHQobWltZVR5cGUpKSB7XG4gICAgICB0aGlzLnRleHRDb250ZXh0KGJsb2IsIG1pbWVUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXh0QmxvYihcbiAgICAgICAgQmxvYkNvbnRleHQuc2FmZVVybChzYWZlVXJsLCBtaW1lVHlwZSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0ZXh0Q29udGV4dChibG9iOiBCbG9iLCBtaW1lVHlwZTogQmxvYk1pbWVUeXBlKTogdm9pZCB7XG4gICAgYmxvYi50ZXh0KCkudGhlbihcbiAgICAgIHRleHQgPT4ge1xuICAgICAgICB0aGlzLm5leHRCbG9iKFxuICAgICAgICAgIEJsb2JDb250ZXh0LnRleHRCbG9iKHRleHQsIG1pbWVUeXBlKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJsb2JVcmwoYmxvYlVybDogQmxvYlVybCk6IHZvaWQge1xuXG4gICAgY29uc3Qgc2FmZVVybCA9IHRoaXMuY3JlYXRlU2FmZVVybEZyb21EYXRhVXJsKGJsb2JVcmwudXJsKTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IEJsb2JNaW1lVHlwZS5wYXJzZShibG9iVXJsLm1pbWVUeXBlKTtcblxuICAgIGlmICh0aGlzLmNhbkRpc3BsYXlBc1RleHQobWltZVR5cGUpKSB7XG4gICAgICB0aGlzLmxvYWRBc1RleHQoYmxvYlVybC51cmwsIG1pbWVUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXh0QmxvYihcbiAgICAgICAgQmxvYkNvbnRleHQuc2FmZVVybChzYWZlVXJsLCBtaW1lVHlwZSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0QmxvYihibG9iQ29udGV4dDogQmxvYkNvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmJsb2JDb250ZXh0JC5uZXh0KGJsb2JDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU2FmZVVybEZyb21CbG9iKGJsb2I6IEJsb2IpOiBTYWZlVXJsIHtcbiAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGJsb2JVcmwpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTYWZlVXJsRnJvbURhdGFVcmwodXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRBc1RleHQocHJpc3RpbmVVcmw6IHN0cmluZywgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IHZvaWQge1xuXG4gICAgdGhpcy5uZXh0QmxvYihcbiAgICAgIEJsb2JDb250ZXh0LnRleHRCbG9iKCdMb2FkaW5nLi4uJywgbWltZVR5cGUpXG4gICAgKTtcblxuICAgIHRoaXMuZG93bmxvYWRBc1RleHQocHJpc3RpbmVVcmwpLnN1YnNjcmliZShcbiAgICAgIHRleHQgPT4ge1xuICAgICAgICB0aGlzLm5leHRCbG9iKFxuICAgICAgICAgIEJsb2JDb250ZXh0LnRleHRCbG9iKHRleHQsIG1pbWVUeXBlKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMubmV4dEJsb2IoXG4gICAgICAgICAgQmxvYkNvbnRleHQudGV4dEJsb2IoJ0ZhaWxlZCB0byBkb3dubG9hZCBjb250ZW50IScsIG1pbWVUeXBlKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS53YXJuKCdGYWlsZWQgdG8gZG93bmxvYWQgY29udGVudCEnLCBlcnIpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNhbkRpc3BsYXlBc1RleHQobWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IGJvb2xlYW4ge1xuXG4gICAgY29uc3QgY2FuID0gbWltZVR5cGUuaXNUZXh0IHx8ICh0aGlzLl9kaXNwbGF5VW5rbm93bkFzVGV4dCAmJiBtaW1lVHlwZS5pc09jdGV0U3RyZWFtKTtcblxuICAgIC8vIFRPRE8gX2Rpc3BsYXlVbmtub3duQXNUZXh0IG1pZ2h0IGJlIG51bGwgZHVlIHJhY2UgY29uZGl0aW9uIHNlZSB0b2RvIGFib3ZlLlxuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdjYW5EaXNwbGF5QXNUZXh0KCcgKyBtaW1lVHlwZS52YWx1ZSArICcpIC0tPiAnXG4gICAgLy8gICsgY2FuICsgJyAtLS0+IHRoaXMuX2Rpc3BsYXlVbmtub3duQXNUZXh0OicgKyB0aGlzLl9kaXNwbGF5VW5rbm93bkFzVGV4dCwgbWltZVR5cGUpO1xuXG4gICAgcmV0dXJuIGNhbjtcbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWRBc1RleHQocHJpc3RpbmVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFByaXN0aW5lLmdldChwcmlzdGluZVVybCwge1xuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -34,4 +34,6 @@ export * from './containers/public_api';
34
34
  export * from './csv/elder-csv.module';
35
35
  export * from './input/public_api';
36
36
  export * from './iframes/elder-iframe.module';
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWNjZXNzLWRlbmllZC9lbGRlci1hY2Nlc3MtZGVuaWVkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2V4cGFuZC10b2dnbGUtYnV0dG9uL2VsZGVyLWV4cGFuZC10b2dnbGUtYnV0dG9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpLWF1dG9jb21wbGV0ZS9lbGRlci1tdWx0aS1hdXRvLWNvbXBsZXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xhYmVscy9lbGRlci1sYWJlbHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWxzL2VsZGVyLXBhbmVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzL2VsZGVyLWZpbGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1vcmdhbml6ZXIvZWxkZXItY2FyZC1vcmdhbml6ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS12aWV3L3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zaGVsbC9lbGRlci1zaGVsbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtbGlzdC9lbGRlci1zZWxlY3QtbGlzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtY2hpcC1saXN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS10cmFuc2Zlci9lbGRlci1kYXRhLXRyYW5zZmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGl2aXR5L3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1zY3JvbGwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybXMvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2h0dHAtc3VwcG9ydC9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9ncy9lbGRlci1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2xvYmFsLXNlYXJjaC9lbGRlci1nbG9iYWwtc2VhcmNoLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0cy9lbGRlci10b2FzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL21lYXN1cmVzL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy9lbGRlci1oZWFkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZHMvZWxkZXItY2FyZC9lbGRlci1jYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXdlcnMvZWxkZXItdmlld2Vycy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91cmwtZnJhZ21lbnQvZWxkZXItdXJsLWZyYWdtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi1ncm91cC9lbGRlci1idXR0b24tZ3JvdXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGgvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcnMvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2Nzdi9lbGRlci1jc3YubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2lmcmFtZXMvZWxkZXItaWZyYW1lLm1vZHVsZSc7XG4iXX0=
37
+ export * from './errors/elder-error.module';
38
+ export * from './auditing/elder-audit.module';
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY2Vzcy1kZW5pZWQvZWxkZXItYWNjZXNzLWRlbmllZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBhbmQtdG9nZ2xlLWJ1dHRvbi9lbGRlci1leHBhbmQtdG9nZ2xlLWJ1dHRvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tdWx0aS1hdXRvY29tcGxldGUvZWxkZXItbXVsdGktYXV0by1jb21wbGV0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbHMvZWxkZXItbGFiZWxzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3BhbmVscy9lbGRlci1wYW5lbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlcy9lbGRlci1maWxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhcmQtb3JnYW5pemVyL2VsZGVyLWNhcmQtb3JnYW5pemVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdmlldy9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2hlbGwvZWxkZXItc2hlbGwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdGltZS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWxpc3QvZWxkZXItc2VsZWN0LWxpc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWNoaXAtbGlzdC9lbGRlci1jaGlwLWxpc3Qtc2VsZWN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdHJhbnNmZXIvZWxkZXItZGF0YS10cmFuc2Zlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5cy9lbGRlci1vdmVybGF5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpdml0eS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaW5maW5pdGVzY3JvbGwvZWxkZXItaW5maW5pdGUtc2Nyb2xsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1zL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXN1cHBvcnQvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZ3MvZWxkZXItZGlhbG9nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2dsb2JhbC1zZWFyY2gvZWxkZXItZ2xvYmFsLXNlYXJjaC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdHMvZWxkZXItdG9hc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0L3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9tZWFzdXJlcy9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlcnMvZWxkZXItaGVhZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhcmRzL2VsZGVyLWNhcmQvZWxkZXItY2FyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3ZXJzL2VsZGVyLXZpZXdlcnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXJsLWZyYWdtZW50L2VsZGVyLXVybC1mcmFnbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tZ3JvdXAvZWxkZXItYnV0dG9uLWdyb3VwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2dyYXBoL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXJzL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jc3YvZWxkZXItY3N2Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0L3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pZnJhbWVzL2VsZGVyLWlmcmFtZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMvZWxkZXItZXJyb3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXRpbmcvZWxkZXItYXVkaXQubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWR1cmF0aW9uLXN0ci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9kdXJhdGlvbi9pc28tZHVyYXRpb24tc3RyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgYSByYXcgSVNPIGR1cmF0aW9uIGZvcm1hdHRlZCBzdHJpbmcgc3VjaCBhcyAnUDIzRFQyM0gnXG4gKiBBIHBhcnNlZCBkdXJhdGlvbiBpcyByZXByZXNlbnRlZCBieSBhIGpvZGEgRHVyYXRpb24gY2xhc3MuXG4gKi9cbmV4cG9ydCB0eXBlIElzb0R1cmF0aW9uU3RyID0gc3RyaW5nO1xuIl19
@@ -1,7 +1,8 @@
1
1
  export * from './date-adapters/custom-date-adapter';
2
2
  export * from './duration/duration-bucket';
3
3
  export * from './duration/duration-format';
4
+ export * from './duration/iso-duration-str';
4
5
  export * from './period/period-bucket';
5
6
  export * from './period/period-format';
6
7
  export * from './elder-time.module';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlLWFkYXB0ZXJzL2N1c3RvbS1kYXRlLWFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbi9kdXJhdGlvbi1idWNrZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbi9kdXJhdGlvbi1mb3JtYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJpb2QvcGVyaW9kLWJ1Y2tldCc7XG5leHBvcnQgKiBmcm9tICcuL3BlcmlvZC9wZXJpb2QtZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItdGltZS5tb2R1bGUnO1xuXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtYWRhcHRlcnMvY3VzdG9tLWRhdGUtYWRhcHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2R1cmF0aW9uL2R1cmF0aW9uLWJ1Y2tldCc7XG5leHBvcnQgKiBmcm9tICcuL2R1cmF0aW9uL2R1cmF0aW9uLWZvcm1hdCc7XG5leHBvcnQgKiBmcm9tICcuL2R1cmF0aW9uL2lzby1kdXJhdGlvbi1zdHInO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJpb2QvcGVyaW9kLWJ1Y2tldCc7XG5leHBvcnQgKiBmcm9tICcuL3BlcmlvZC9wZXJpb2QtZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItdGltZS5tb2R1bGUnO1xuXG4iXX0=
@@ -54,4 +54,4 @@ IsoDurationPipe.decorators = [
54
54
  IsoDurationPipe.ctorParameters = () => [
55
55
  { type: ElderUnitService }
56
56
  ];
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWR1cmF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9waXBlcy9pc28tZHVyYXRpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUNtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFKL0IsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQU16RSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFNBQVMsQ0FBQyxLQUFrRCxFQUFFLE1BQU0sR0FBRyxjQUFjLENBQUMsY0FBYztRQUV6RyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFFbEMsSUFBSTtZQUNGLElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRTtnQkFDN0IsS0FBSyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO2dCQUNsQyxLQUFLLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QztpQkFBTSxJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUU7Z0JBQzFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztZQUVELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkQ7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyRixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7OztZQXZDRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGFBQWE7YUFDcEI7OztZQWRPLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW5pdH0gZnJvbSAnLi4vY29tcG9uZW50cy9tZWFzdXJlcy9tb2RlbC91bml0JztcbmltcG9ydCB7RHVyYXRpb24sIFBlcmlvZH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQge0VsZGVyVW5pdFNlcnZpY2V9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVhc3VyZXMvZWxkZXItdW5pdC5zZXJ2aWNlJztcbmltcG9ydCB7RHVyYXRpb25Gb3JtYXR9IGZyb20gJy4uL2NvbXBvbmVudHMvdGltZS9kdXJhdGlvbi9kdXJhdGlvbi1mb3JtYXQnO1xuaW1wb3J0IHtQZXJpb2REdXJhdGlvbn0gZnJvbSAnLi4vY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG4vKipcbiAqIENvbnZlcnRzIGFueSB2YWxpZCBpbnB1dCBvZiBzdGFuZGFyZCBJU08gODYwMSBkdXJhdGlvbiBmb3JtYXRcbiAqIGV4YW1wbGUgaW5wdXQ6IFBUMkgxME0xMi4xMjM1Njc1Uywgb3V0cHV0OiAyaCwgMTBtaW4sIDEycywgMTI0IG1zXG4gKlxuICogYSBtYXhpbWFsIGlucHV0IGxvb2tzIGxpa2UgdGhpczogUDNZNk00RFQxMkgzME01UyBhbHRob3VnaFxuICogIGFsbCBhcmd1bWVudHMgZXhjZXB0IFAgYXJlIG9wdGlvbmFsLCBkZWNpbWFsIG51bWJlcnMgYWxsb3dlZFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdpc29EdXJhdGlvbidcbn0pXG5leHBvcnQgY2xhc3MgSXNvRHVyYXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bml0U2VydmljZTogRWxkZXJVbml0U2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IER1cmF0aW9uIHwgUGVyaW9kIHwgUGVyaW9kRHVyYXRpb24sIGZvcm1hdCA9IER1cmF0aW9uRm9ybWF0LkZPUk1BVF9EWU5BTUlDKTogc3RyaW5nIHtcblxuICAgIGlmICghdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgJyc7IH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEdXJhdGlvbikge1xuICAgICAgICB2YWx1ZSA9IFBlcmlvZER1cmF0aW9uLm9mRHVyYXRpb24odmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFBlcmlvZCkge1xuICAgICAgICB2YWx1ZSA9IFBlcmlvZER1cmF0aW9uLm9mUGVyaW9kKHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBQZXJpb2REdXJhdGlvbikge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSBQZXJpb2REdXJhdGlvbi5wYXJzZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBEdXJhdGlvbkZvcm1hdC5wYXJzZShmb3JtYXQpLmZvcm1hdCh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHBlcmlvZC9kdXJhdGlvbiB2YWx1ZTogJyArIHZhbHVlLnRvU3RyaW5nKCksIGVycik7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWR1cmF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9waXBlcy9pc28tZHVyYXRpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUduRDs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUNtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFKL0IsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQU16RSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFNBQVMsQ0FBQyxLQUEwRCxFQUFFLE1BQU0sR0FBRyxjQUFjLENBQUMsY0FBYztRQUVqSCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFFbEMsSUFBSTtZQUNGLElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRTtnQkFDN0IsS0FBSyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO2dCQUNsQyxLQUFLLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QztpQkFBTSxJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUU7Z0JBQzFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztZQUVELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkQ7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyRixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7OztZQXZDRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGFBQWE7YUFDcEI7OztZQWZPLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW5pdH0gZnJvbSAnLi4vY29tcG9uZW50cy9tZWFzdXJlcy9tb2RlbC91bml0JztcbmltcG9ydCB7RHVyYXRpb24sIFBlcmlvZH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQge0VsZGVyVW5pdFNlcnZpY2V9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVhc3VyZXMvZWxkZXItdW5pdC5zZXJ2aWNlJztcbmltcG9ydCB7RHVyYXRpb25Gb3JtYXR9IGZyb20gJy4uL2NvbXBvbmVudHMvdGltZS9kdXJhdGlvbi9kdXJhdGlvbi1mb3JtYXQnO1xuaW1wb3J0IHtQZXJpb2REdXJhdGlvbn0gZnJvbSAnLi4vY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtJc29EdXJhdGlvblN0cn0gZnJvbSAnLi4vY29tcG9uZW50cy90aW1lL2R1cmF0aW9uL2lzby1kdXJhdGlvbi1zdHInO1xuXG4vKipcbiAqIENvbnZlcnRzIGFueSB2YWxpZCBpbnB1dCBvZiBzdGFuZGFyZCBJU08gODYwMSBkdXJhdGlvbiBmb3JtYXRcbiAqIGV4YW1wbGUgaW5wdXQ6IFBUMkgxME0xMi4xMjM1Njc1Uywgb3V0cHV0OiAyaCwgMTBtaW4sIDEycywgMTI0IG1zXG4gKlxuICogYSBtYXhpbWFsIGlucHV0IGxvb2tzIGxpa2UgdGhpczogUDNZNk00RFQxMkgzME01UyBhbHRob3VnaFxuICogIGFsbCBhcmd1bWVudHMgZXhjZXB0IFAgYXJlIG9wdGlvbmFsLCBkZWNpbWFsIG51bWJlcnMgYWxsb3dlZFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdpc29EdXJhdGlvbidcbn0pXG5leHBvcnQgY2xhc3MgSXNvRHVyYXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bml0U2VydmljZTogRWxkZXJVbml0U2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IElzb0R1cmF0aW9uU3RyIHwgRHVyYXRpb24gfCBQZXJpb2QgfCBQZXJpb2REdXJhdGlvbiwgZm9ybWF0ID0gRHVyYXRpb25Gb3JtYXQuRk9STUFUX0RZTkFNSUMpOiBzdHJpbmcge1xuXG4gICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAnJzsgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIER1cmF0aW9uKSB7XG4gICAgICAgIHZhbHVlID0gUGVyaW9kRHVyYXRpb24ub2ZEdXJhdGlvbih2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgUGVyaW9kKSB7XG4gICAgICAgIHZhbHVlID0gUGVyaW9kRHVyYXRpb24ub2ZQZXJpb2QodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFBlcmlvZER1cmF0aW9uKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IFBlcmlvZER1cmF0aW9uLnBhcnNlKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIER1cmF0aW9uRm9ybWF0LnBhcnNlKGZvcm1hdCkuZm9ybWF0KHZhbHVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gcGFyc2UgcGVyaW9kL2R1cmF0aW9uIHZhbHVlOiAnICsgdmFsdWUudG9TdHJpbmcoKSwgZXJyKTtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG59XG4iXX0=
@@ -101,4 +101,4 @@ TimeAgoPipe.ctorParameters = () => [
101
101
  { type: ChangeDetectorRef },
102
102
  { type: NgZone }
103
103
  ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL3BpcGVzL3RpbWUtYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLElBQUksRUFBaUIsTUFBTSxFQUFFLGlCQUFpQixFQUFZLE1BQU0sZUFBZSxDQUFDO0FBR3hGOzs7R0FHRztBQUtILE1BQU0sT0FBTyxXQUFXO0lBSXRCLFlBQW9CLGlCQUFvQyxFQUFVLE1BQWM7UUFBNUQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRTdFLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxjQUFjLENBQUM7U0FBRTtRQUV0QyxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtnQkFDakMsT0FBTyxNQUFNLENBQUMsVUFBVSxD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R0FBRyxFQUFFLEVBQUUsdUNBQXVDO1lBQ2pFLE9BQU8sR0FBRyxDQUFDO1NBQ1o7YUFBTSxFQUFFLG9CQUFvQjtZQUMzQixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7O1lBOUVGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsS0FBSzthQUNaOzs7WUFWb0MsaUJBQWlCO1lBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdab25lLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG4vKipcbiAqIFNvdXJjZSBjb2RlIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9BbmRyZXdQb3ludHovdGltZS1hZ28tcGlwZVxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICd0aW1lQWdvJyxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGltZUFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgdGltZXI6IG51bWJlciB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW1vdmVUaW1lcigpO1xuXG4gICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gJ3Vua25vd24gdGltZSc7IH1cblxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5yb3VuZChNYXRoLmFicygobm93LmdldFRpbWUoKSAtIGQuZ2V0VGltZSgpKSAvIDEwMDApKTtcbiAgICBjb25zdCB0aW1lVG9VcGRhdGUgPSB0aGlzLmdldFNlY29uZHNVbnRpbFVwZGF0ZShzZWNvbmRzKSAqIDEwMDA7XG4gICAgdGhpcy50aW1lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICAgICAgfSwgdGltZVRvVXBkYXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHNlY29uZHMgLyA2MCkpO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5yb3VuZChNYXRoLmFicyhtaW51dGVzIC8gNjApKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5yb3VuZChNYXRoLmFicyhob3VycyAvIDI0KSk7XG4gICAgY29uc3QgbW9udGhzID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXlzIC8gMzAuNDE2KSk7XG4gICAgY29uc3QgeWVhcnMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRheXMgLyAzNjUpKTtcbiAgICBpZiAoc2Vjb25kcyA8PSA0NSkge1xuICAgICAgcmV0dXJuICdhIGZldyBzZWNvbmRzIGFnbyc7XG4gICAgfSBlbHNlIGlmIChzZWNvbmRzIDw9IDkwKSB7XG4gICAgICByZXR1cm4gJ2EgbWludXRlIGFnbyc7XG4gICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDQ1KSB7XG4gICAgICByZXR1cm4gbWludXRlcyArICcgbWludXRlcyBhZ28nO1xuICAgIH0gZWxzZSBpZiAobWludXRlcyA8PSA5MCkge1xuICAgICAgcmV0dXJuICdhbiBob3VyIGFnbyc7XG4gICAgfSBlbHNlIGlmIChob3VycyA8PSAyMikge1xuICAgICAgcmV0dXJuIGhvdXJzICsgJyBob3VycyBhZ28nO1xuICAgIH0gZWxzZSBpZiAoaG91cnMgPD0gMzYpIHtcbiAgICAgIHJldHVybiAnYSBkYXkgYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gMjUpIHtcbiAgICAgIHJldHVybiBkYXlzICsgJyBkYXlzIGFnbyc7XG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDQ1KSB7XG4gICAgICByZXR1cm4gJ2EgbW9udGggYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gMzQ1KSB7XG4gICAgICByZXR1cm4gbW9udGhzICsgJyBtb250aHMgYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gNTQ1KSB7XG4gICAgICByZXR1cm4gJ2EgeWVhciBhZ28nO1xuICAgIH0gZWxzZSB7IC8vIChkYXlzID4gNTQ1KVxuICAgICAgcmV0dXJuIHllYXJzICsgJyB5ZWFycyBhZ28nO1xuICAgIH1cbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKCk7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVUaW1lcigpIHtcbiAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldFNlY29uZHNVbnRpbFVwZGF0ZShzZWNvbmRzOiBudW1iZXIpIHtcbiAgICBjb25zdCBtaW4gPSA2MDtcbiAgICBjb25zdCBociA9IG1pbiAqIDYwO1xuICAgIGNvbnN0IGRheSA9IGhyICogMjQ7XG4gICAgaWYgKHNlY29uZHMgPCBtaW4pIHsgLy8gbGVzcyB0aGFuIDEgbWluLCB1cGRhdGUgZXZlciAyIHNlY3NcbiAgICAgIHJldHVybiAyO1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IGhyKSB7IC8vIGxlc3MgdGhhbiBhbiBob3VyLCB1cGRhdGUgZXZlcnkgMzAgc2Vjc1xuICAgICAgcmV0dXJuIDMwO1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IGRheSkgeyAvLyBsZXNzIHRoZW4gYSBkYXksIHVwZGF0ZSBldmVyeSA1IG1pbnNcbiAgICAgIHJldHVybiAzMDA7XG4gICAgfSBlbHNlIHsgLy8gdXBkYXRlIGV2ZXJ5IGhvdXJcbiAgICAgIHJldHVybiAzNjAwO1xuICAgIH1cbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL3BpcGVzL3RpbWUtYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLElBQUksRUFBaUIsTUFBTSxFQUFFLGlCQUFpQixFQUFZLE1BQU0sZUFBZSxDQUFDO0FBR3hGOzs7R0FHRztBQUtILE1BQU0sT0FBTyxXQUFXO0lBSXRCLFlBQW9CLGlCQUFvQyxFQUFVLE1BQWM7UUFBNUQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRTdFLFNBQVMsQ0FBQyxLQUE2QjtRQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sY0FBYyxDQUFDO1NBQUU7UUFFdEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQ2pDLE9BQU8sTUFBTSxDQUFDLFVBQVUs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LEdBQUcsRUFBRSxFQUFFLHVDQUF1QztZQUNqRSxPQUFPLEdBQUcsQ0FBQztTQUNaO2FBQU0sRUFBRSxvQkFBb0I7WUFDM0IsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OztZQTlFRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLEtBQUs7YUFDWjs7O1lBVm9DLGlCQUFpQjtZQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm0sIE5nWm9uZSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuLyoqXG4gKiBTb3VyY2UgY29kZSBmcm9tXG4gKiBodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3UG95bnR6L3RpbWUtYWdvLXBpcGVcbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAndGltZUFnbycsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVBZ29QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHRpbWVyOiBudW1iZXIgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUpIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKCk7XG5cbiAgICBpZiAoIXZhbHVlKSB7IHJldHVybiAndW5rbm93biB0aW1lJzsgfVxuXG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKChub3cuZ2V0VGltZSgpIC0gZC5nZXRUaW1lKCkpIC8gMTAwMCkpO1xuICAgIGNvbnN0IHRpbWVUb1VwZGF0ZSA9IHRoaXMuZ2V0U2Vjb25kc1VudGlsVXBkYXRlKHNlY29uZHMpICogMTAwMDtcbiAgICB0aGlzLnRpbWVyID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICAgICAgICB9LCB0aW1lVG9VcGRhdGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGgucm91bmQoTWF0aC5hYnMoc2Vjb25kcyAvIDYwKSk7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKG1pbnV0ZXMgLyA2MCkpO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGhvdXJzIC8gMjQpKTtcbiAgICBjb25zdCBtb250aHMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRheXMgLyAzMC40MTYpKTtcbiAgICBjb25zdCB5ZWFycyA9IE1hdGgucm91bmQoTWF0aC5hYnMoZGF5cyAvIDM2NSkpO1xuICAgIGlmIChzZWNvbmRzIDw9IDQ1KSB7XG4gICAgICByZXR1cm4gJ2EgZmV3IHNlY29uZHMgYWdvJztcbiAgICB9IGVsc2UgaWYgKHNlY29uZHMgPD0gOTApIHtcbiAgICAgIHJldHVybiAnYSBtaW51dGUgYWdvJztcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPD0gNDUpIHtcbiAgICAgIHJldHVybiBtaW51dGVzICsgJyBtaW51dGVzIGFnbyc7XG4gICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDkwKSB7XG4gICAgICByZXR1cm4gJ2FuIGhvdXIgYWdvJztcbiAgICB9IGVsc2UgaWYgKGhvdXJzIDw9IDIyKSB7XG4gICAgICByZXR1cm4gaG91cnMgKyAnIGhvdXJzIGFnbyc7XG4gICAgfSBlbHNlIGlmIChob3VycyA8PSAzNikge1xuICAgICAgcmV0dXJuICdhIGRheSBhZ28nO1xuICAgIH0gZWxzZSBpZiAoZGF5cyA8PSAyNSkge1xuICAgICAgcmV0dXJuIGRheXMgKyAnIGRheXMgYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gNDUpIHtcbiAgICAgIHJldHVybiAnYSBtb250aCBhZ28nO1xuICAgIH0gZWxzZSBpZiAoZGF5cyA8PSAzNDUpIHtcbiAgICAgIHJldHVybiBtb250aHMgKyAnIG1vbnRocyBhZ28nO1xuICAgIH0gZWxzZSBpZiAoZGF5cyA8PSA1NDUpIHtcbiAgICAgIHJldHVybiAnYSB5ZWFyIGFnbyc7XG4gICAgfSBlbHNlIHsgLy8gKGRheXMgPiA1NDUpXG4gICAgICByZXR1cm4geWVhcnMgKyAnIHllYXJzIGFnbyc7XG4gICAgfVxuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlVGltZXIoKTtcbiAgfVxuICBwcml2YXRlIHJlbW92ZVRpbWVyKCkge1xuICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0U2Vjb25kc1VudGlsVXBkYXRlKHNlY29uZHM6IG51bWJlcikge1xuICAgIGNvbnN0IG1pbiA9IDYwO1xuICAgIGNvbnN0IGhyID0gbWluICogNjA7XG4gICAgY29uc3QgZGF5ID0gaHIgKiAyNDtcbiAgICBpZiAoc2Vjb25kcyA8IG1pbikgeyAvLyBsZXNzIHRoYW4gMSBtaW4sIHVwZGF0ZSBldmVyIDIgc2Vjc1xuICAgICAgcmV0dXJuIDI7XG4gICAgfSBlbHNlIGlmIChzZWNvbmRzIDwgaHIpIHsgLy8gbGVzcyB0aGFuIGFuIGhvdXIsIHVwZGF0ZSBldmVyeSAzMCBzZWNzXG4gICAgICByZXR1cm4gMzA7XG4gICAgfSBlbHNlIGlmIChzZWNvbmRzIDwgZGF5KSB7IC8vIGxlc3MgdGhlbiBhIGRheSwgdXBkYXRlIGV2ZXJ5IDUgbWluc1xuICAgICAgcmV0dXJuIDMwMDtcbiAgICB9IGVsc2UgeyAvLyB1cGRhdGUgZXZlcnkgaG91clxuICAgICAgcmV0dXJuIDM2MDA7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -56,6 +56,7 @@ import { Overlay, OverlayPositionBuilder, OverlayModule } from '@angular/cdk/ove
56
56
  import { TemplatePortal } from '@angular/cdk/portal';
57
57
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
58
58
  import * as StreamSaver from 'streamsaver';
59
+ import { MatExpansionModule } from '@angular/material/expansion';
59
60
 
60
61
  class BytesFormat {
61
62
  static format(bytes, precision = 2) {
@@ -8106,11 +8107,9 @@ class ElderBlobViewerComponent {
8106
8107
  this.blobContext$ = new BehaviorSubject(null);
8107
8108
  this._url$ = new BehaviorSubject(null);
8108
8109
  this._mimeType$ = new BehaviorSubject(null);
8109
- this.unsubscribe$ = new Subject();
8110
+ this.destroy$ = new Subject();
8110
8111
  this._displayUnknownAsText = false;
8111
- combineLatest([this._url$, this._mimeType$]).pipe(takeUntil(this.unsubscribe$), filter(([url, mimeType]) => !!url && !!mimeType), map(([url, mimeType]) => BlobUrl.from(url, mimeType))).subscribe(blobUrl => {
8112
- this.blobUrl = blobUrl;
8113
- });
8112
+ combineLatest([this._url$, this._mimeType$]).pipe(takeUntil(this.destroy$), filter(([url, mimeType]) => !!url), map(([url, mimeType]) => BlobUrl.from(url, mimeType))).subscribe(blobUrl => this.blobUrl = blobUrl);
8114
8113
  }
8115
8114
  /***************************************************************************
8116
8115
  * *
@@ -8119,8 +8118,8 @@ class ElderBlobViewerComponent {
8119
8118
  **************************************************************************/
8120
8119
  ngOnInit() { }
8121
8120
  ngOnDestroy() {
8122
- this.unsubscribe$.next();
8123
- this.unsubscribe$.complete();
8121
+ this.destroy$.next();
8122
+ this.destroy$.complete();
8124
8123
  }
8125
8124
  /***************************************************************************
8126
8125
  * *
@@ -8232,7 +8231,7 @@ ElderBlobViewerComponent.decorators = [
8232
8231
  selector: 'elder-blob-viewer',
8233
8232
  template: "<div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"document-viewer\" fxFill>\n\n <ng-container *ngIf=\"blobContext$ | async as blobContext\">\n\n <!-- Video -->\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"blobContext.mimeType.isVideo\" fxFill>\n <video class=\"video\"\n controls autoplay loop\n\n >\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\">\n Your browser does not support HTML5 video.\n </video>\n </div>\n\n <!-- Audio -->\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"blobContext.mimeType.isAudio\" fxFill>\n <audio class=\"audio\"\n controls autoplay loop\n >\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\">\n Your browser does not support HTML5 audio.\n </audio>\n </div>\n\n <!-- Image -->\n <div fxLayout=\"column\" *ngIf=\"blobContext.mimeType.isImage\" style=\"overflow: hidden\" fxFill>\n <img class=\"cover\" fxFlex\n [src]=\"blobContext.safeUrl\" alt=\"blob image\"/>\n </div>\n\n <!-- Embedded (PDFs etc) -->\n <div fxLayout=\"column\" *ngIf=\"blobContext.displayEmbedded\" fxFill>\n <div style=\"width: 100%;height: 100%\">\n <embed class=\"embedded\" [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" width=\"100%\" height=\"100%\">\n </div>\n </div>\n\n <!-- Plain Text -->\n <div fxLayout=\"column\" *ngIf=\"blobContext.displayAsText\" fxFill>\n <textarea\n class=\"document-content\"\n placeholder=\"Content\"\n [value]=\"blobContext.text\" wrap=\"off\"\n readonly\n ></textarea>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"blobContext.cantDisplay\" fxFill>\n <p>Cant display {{blobContext.mimeType.value}}!</p>\n </div>\n\n </ng-container>\n\n <ng-container *ngIf=\"!(blobContext$ | async)\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFill>\n <p>No Document.</p>\n </div>\n </ng-container>\n\n\n</div>\n",
8234
8233
  changeDetection: ChangeDetectionStrategy.OnPush,
8235
- styles: [".document-viewer{background-color:#dedede;color:#1f1e1e}.video{width:100%;height:auto}.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{-o-object-fit:scale-down;object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:#575757;color:#ccc;outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-radius:0;box-shadow:0 2px 14px #000;border-top:1px solid #FFF;border-bottom:1px solid #FFF}\n"]
8234
+ styles: [":host{overflow:hidden}.document-viewer{background-color:#dedede;color:#1f1e1e}.video{width:100%;height:auto}.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{-o-object-fit:scale-down;object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:#575757;color:#ccc;outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-radius:0;box-shadow:0 2px 14px #000;border-top:1px solid #FFF;border-bottom:1px solid #FFF}\n"]
8236
8235
  },] }
8237
8236
  ];
8238
8237
  ElderBlobViewerComponent.ctorParameters = () => [
@@ -8301,7 +8300,7 @@ class ElderCardOrganizerComponent {
8301
8300
  * Fields *
8302
8301
  * *
8303
8302
  **************************************************************************/
8304
- this.logger = LoggerFactory.getLogger('ElderCardOrganizerComponent');
8303
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
8305
8304
  this.canRemove = true;
8306
8305
  /**
8307
8306
  * If enabled, the card organizer will
@@ -8366,7 +8365,7 @@ class ElderCardOrganizerComponent {
8366
8365
  }
8367
8366
  ElderCardOrganizerComponent.decorators = [
8368
8367
  { type: Component, args: [{
8369
- selector: 'elder-card-organizer, ebs-card-organizer',
8368
+ selector: 'elder-card-organizer',
8370
8369
  template: "\n<div fxLayout=\"row\" fxLayoutGap=\"20px\" class=\"padding-10 card-organizer\" fxFill>\n\n <elder-card-stack fxFlex\n *ngFor=\"let stack of stacks$ | async\"\n\n [stack]=\"stack\"\n\n [stackId]=\"stack.id\"\n [headerEnabled]=\"headerEnabled\"\n [headerTitle]=\"stack.title\"\n [canRemove]=\"canRemove\"\n\n [cardTemplate]=\"stackCardTemplate\"\n [removeConfirmation]=\"removeConfirmation\"\n [autoMoveCards]=\"autoMoveCards\"\n (requestNewCard)=\"onRequestNewCard($event)\"\n (requestRemoveCard)=\"onRequestRemoveCard($event)\"\n (cardClick)=\"onCardClicked($event)\"\n\n [connectedTo]=\"organizerModel.stackIds | async\"\n (cardDropped)=\"onCardDropped($event)\"\n [canEnterPredicate]=\"canEnterPredicate\"\n [copyOnDrag]=\"copyOnDrag\"\n >\n </elder-card-stack>\n\n</div>\n",
8371
8370
  changeDetection: ChangeDetectionStrategy.OnPush,
8372
8371
  styles: [""]
@@ -12891,6 +12890,8 @@ class ElderGridComponent extends ElderDataViewBaseComponent {
12891
12890
  this.idField = 'id';
12892
12891
  this.selectionVisible = true;
12893
12892
  this.interactionMode = 'open';
12893
+ this.pageSizeOptions = [30, 50, 100, 150, 200];
12894
+ this.destroy$ = new Subject();
12894
12895
  }
12895
12896
  /***************************************************************************
12896
12897
  * *
@@ -12916,7 +12917,15 @@ class ElderGridComponent extends ElderDataViewBaseComponent {
12916
12917
  }
12917
12918
  }
12918
12919
  }
12920
+ ngAfterViewInit() {
12921
+ MatTableDataContextBindingBuilder
12922
+ .start(this.dataContext$)
12923
+ .withPaginator(of(this.matPaginator))
12924
+ .bindUntil(this.destroy$);
12925
+ }
12919
12926
  ngOnDestroy() {
12927
+ this.destroy$.next();
12928
+ this.destroy$.complete();
12920
12929
  }
12921
12930
  /***************************************************************************
12922
12931
  * *
@@ -12938,7 +12947,12 @@ class ElderGridComponent extends ElderDataViewBaseComponent {
12938
12947
  set data(data) {
12939
12948
  this.dataContext$.next(data);
12940
12949
  this.total$ = data.total.pipe(map(total => total ? total + '' : '∞'));
12941
- this.canLoadMore$ = combineLatest([data.loading, data.hasMoreData]).pipe(map(([loading, hasMoreData]) => !loading && hasMoreData));
12950
+ if (isContinuableDataContext(data)) {
12951
+ this.canLoadMore$ = combineLatest([data.loading, data.hasMoreData]).pipe(map(([loading, hasMoreData]) => !loading && hasMoreData));
12952
+ }
12953
+ else {
12954
+ this.canLoadMore$ = of(false);
12955
+ }
12942
12956
  }
12943
12957
  get dataSnapshot() {
12944
12958
  return this.dataContinuable;
@@ -13030,7 +13044,7 @@ class ElderGridComponent extends ElderDataViewBaseComponent {
13030
13044
  ElderGridComponent.decorators = [
13031
13045
  { type: Component, args: [{
13032
13046
  selector: 'elder-grid',
13033
- template: "<div fxLayout=\"column\" class=\"scroll-fix\" fxFill>\n\n <!-- Grid Browser -->\n <div fxLayout=\"column\" fxFlex\n class=\"scroll-fix elder-grid-container\"\n *ngIf=\"dataContext$ | async as data\"\n [class.elder-mat-table-container]=\"!embedded\"\n [class.mat-elevation-z5]=\"float\"\n [class.elder-mat-table-flat]=\"!embedded && !float\"\n\n [elderDataContextSelection]=\"data\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n\n <!-- Toolbar Row -->\n <div *ngIf=\"toolbarVisible\"\n fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex=\"none\" class=\"elder-grid-toolbar\">\n\n <div fxLayout=\"column\" fxFlex=\"none\" style=\"padding-left: 8px; padding-right: 8px\" *ngIf=\"selectionVisible\">\n <elder-selection-master-checkbox fxFlex=\"none\" style=\"padding-left: 12px\"></elder-selection-master-checkbox>\n </div>\n\n <!-- Toolbar -->\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-template *ngTemplateOutlet=\"toolbarTemplate; context: {$implicit: this}\"></ng-template>\n </ng-container>\n\n <elder-single-sort *ngIf=\"availableSorts && availableSorts.length > 0 && data.sort.sorts | async as sorts\"\n fxFlex=\"none\"\n [availableSorts]=\"availableSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [sort]=\"sorts[0]\"\n (sortChange)=\"updateSort($event)\">\n </elder-single-sort>\n\n </div>\n\n <mat-divider *ngIf=\"toolbarVisible\"></mat-divider>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"elder-grid-browser\" fxLayout=\"column\" fxFlex\n id=\"documents-container\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n infiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"'documents-container'\" [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n\n >\n\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"let row of dataRows$; trackBy: trackByIndex; templateCacheSize: 50\"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\">\n\n <ng-container *ngFor=\"let tile of row; trackBy: trackByFn\">\n\n <!-- Tile Cell -->\n <div *ngIf=\"showTile(tile)\" class=\"elder-grid-tile\">\n <!-- cdkDrag [cdkDragDisabled]=\"true\" [cdkDragData]=\"tile\" -->\n <!-- <div class=\"tile-placeholder\" *cdkDragPlaceholder></div> -->\n <div class=\"elder-grid-tile-content\">\n <ng-container\n *ngTemplateOutlet=\"tileTemplate || simpleTileTemplate; context: {$implicit: tile}\">\n </ng-container>\n\n <!-- Overlay (Selection) -->\n <ng-container *ngIf=\"selectionVisible\">\n <div *ngIf=\"selectionModel.selection | async as selection\"\n class=\"elder-grid-tile-overlay\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n [class.elder-click-through]=\"!inSelectionMode(selection)\"\n (click)=\"selectionModel.toggle(tile)\"\n >\n <button mat-icon-button type=\"button\"\n (click)=\"selectionModel.toggle(tile)\" elderStopEventPropagation\n class=\"elder-grid-tile-check\">\n <mat-icon\n [class.elder-selected]=\"(selectionModel.observeSelection(tile) | async)\"\n >\n {{(selectionModel.observeSelection(tile) | async) ? 'check_circle' : 'radio_button_unchecked'}}\n </mat-icon>\n </button>\n </div>\n </ng-container>\n\n </div>\n </div>\n\n <div *ngIf=\"!showTile(tile)\" class=\"elder-grid-tile-hidden\"></div>\n </ng-container>\n\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n\n <mat-progress-bar fxFlex=\"none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(data && (data.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Continuation Footer -->\n <div class=\"elder-grid-footer\" *ngIf=\"footerVisible\"\n fxLayout=\"row\" fxFlex=\"none\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\"\n style=\"padding-right: 10px\" >\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n\n\n </div>\n</div>\n\n<ng-template #simpleTileTemplate let-tile>\n <div *ngIf=\"tile\" fxLayout=\"column\" fxFlex fxLayoutAlign=\"center center\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{tile}}</p>\n </div>\n</ng-template>\n",
13047
+ template: "<div fxLayout=\"column\" class=\"scroll-fix\" fxFill>\n\n <!-- Grid Browser -->\n <div fxLayout=\"column\" fxFlex\n class=\"scroll-fix elder-grid-container\"\n *ngIf=\"dataContext$ | async as data\"\n [class.elder-mat-table-container]=\"!embedded\"\n [class.mat-elevation-z5]=\"float\"\n [class.elder-mat-table-flat]=\"!embedded && !float\"\n\n [elderDataContextSelection]=\"data\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n\n <!-- Toolbar Row -->\n <div *ngIf=\"toolbarVisible\"\n fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex=\"none\" class=\"elder-grid-toolbar\">\n\n <div fxLayout=\"column\" fxFlex=\"none\" style=\"padding-left: 8px; padding-right: 8px\" *ngIf=\"selectionVisible\">\n <elder-selection-master-checkbox fxFlex=\"none\" style=\"padding-left: 12px\"></elder-selection-master-checkbox>\n </div>\n\n <!-- Toolbar -->\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-template *ngTemplateOutlet=\"toolbarTemplate; context: {$implicit: this}\"></ng-template>\n </ng-container>\n\n <elder-single-sort *ngIf=\"availableSorts && availableSorts.length > 0 && data.sort.sorts | async as sorts\"\n fxFlex=\"none\"\n [availableSorts]=\"availableSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [sort]=\"sorts[0]\"\n (sortChange)=\"updateSort($event)\">\n </elder-single-sort>\n\n </div>\n\n <mat-divider *ngIf=\"toolbarVisible\"></mat-divider>\n\n <span class=\"elder-table-hint mat-body-1\" fxFlex fxLayoutAlign=\"center center\"\n *ngIf=\"!dataContext?.isStarted\">\n {{'Datacontext not started' | translate}}\n </span>\n\n <div *ngIf=\"(dataContext?.data | async)?.isStarted\" fxFlex fxLayoutAlign=\"center center\">\n\n <span class=\"elder-table-hint mat-body-1\"\n *ngIf=\"(dataContext?.data | async)?.length === 0 && !(dataContext?.status | async)?.hasError\">\n {{'No data available' | translate}}\n </span>\n\n <div *ngIf=\"(dataContext?.status | async)?.hasError\"\n fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"20px\">\n <mat-icon color=\"warn\">warning</mat-icon>\n <span class=\"hint mat-body-1\">{{'Error while loading data' | translate}}</span>\n </div>\n\n </div>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"elder-grid-browser\" fxLayout=\"column\" fxFlex\n id=\"documents-container\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n infiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"'documents-container'\" [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\">\n\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"let row of dataRows$; trackBy: trackByIndex; templateCacheSize: 50\"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\">\n\n <ng-container *ngFor=\"let tile of row; trackBy: trackByFn\">\n\n <!-- Tile Cell -->\n <div *ngIf=\"showTile(tile)\" class=\"elder-grid-tile\">\n <!-- cdkDrag [cdkDragDisabled]=\"true\" [cdkDragData]=\"tile\" -->\n <!-- <div class=\"tile-placeholder\" *cdkDragPlaceholder></div> -->\n <div class=\"elder-grid-tile-content\">\n <ng-container\n *ngTemplateOutlet=\"tileTemplate || simpleTileTemplate; context: {$implicit: tile}\">\n </ng-container>\n\n <!-- Overlay (Selection) -->\n <ng-container *ngIf=\"selectionVisible\">\n <div *ngIf=\"selectionModel.selection | async as selection\"\n class=\"elder-grid-tile-overlay\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n [class.elder-click-through]=\"!inSelectionMode(selection)\"\n (click)=\"selectionModel.toggle(tile)\"\n >\n <button mat-icon-button type=\"button\"\n (click)=\"selectionModel.toggle(tile)\" elderStopEventPropagation\n class=\"elder-grid-tile-check\">\n <mat-icon\n [class.elder-selected]=\"(selectionModel.observeSelection(tile) | async)\"\n >\n {{(selectionModel.observeSelection(tile) | async) ? 'check_circle' : 'radio_button_unchecked'}}\n </mat-icon>\n </button>\n </div>\n </ng-container>\n\n </div>\n </div>\n\n <div *ngIf=\"!showTile(tile)\" class=\"elder-grid-tile-hidden\"></div>\n </ng-container>\n\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n\n <mat-progress-bar fxFlex=\"none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(data && (data.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Footer -->\n <div class=\"elder-grid-footer\" *ngIf=\"footerVisible\"\n fxLayout=\"row\" fxFlex=\"none\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\"\n style=\"padding-right: 10px\">\n\n <!-- Continuable -->\n <ng-container *ngIf=\"isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </ng-container>\n\n <!-- Paged -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n fxFlex=\"none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Local Source -->\n <ng-container *ngIf=\"!isActivePaged && !isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}}\n </span>\n </ng-container>\n\n </div>\n\n\n </div>\n</div>\n\n<ng-template #simpleTileTemplate let-tile>\n <div *ngIf=\"tile\" fxLayout=\"column\" fxFlex fxLayoutAlign=\"center center\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{tile}}</p>\n </div>\n</ng-template>\n",
13034
13048
  changeDetection: ChangeDetectionStrategy.OnPush,
13035
13049
  providers: [
13036
13050
  {
@@ -13059,6 +13073,8 @@ ElderGridComponent.propDecorators = {
13059
13073
  idField: [{ type: Input }],
13060
13074
  selectionVisible: [{ type: Input }],
13061
13075
  interactionMode: [{ type: Input }],
13076
+ pageSizeOptions: [{ type: Input }],
13077
+ matPaginator: [{ type: ViewChild, args: [MatPaginator,] }],
13062
13078
  toolbarTemplateQuery: [{ type: ContentChild, args: [ElderGridToolbarDirective, { read: TemplateRef, static: true },] }],
13063
13079
  tileTemplate: [{ type: Input }],
13064
13080
  toolbarTemplate: [{ type: Input }],
@@ -13083,7 +13099,7 @@ ElderGridModule.decorators = [
13083
13099
  TranslateModule,
13084
13100
  ElderDataCommonModule,
13085
13101
  ElderInfiniteScrollModule,
13086
- ElderFormsDirectivesModule
13102
+ ElderFormsDirectivesModule, MatPaginatorModule
13087
13103
  ],
13088
13104
  declarations: [
13089
13105
  ElderGridComponent,
@@ -21658,6 +21674,146 @@ ElderIFrameModule.decorators = [
21658
21674
  },] }
21659
21675
  ];
21660
21676
 
21677
+ class ExceptionDetailCtx {
21678
+ constructor(detail) {
21679
+ var _a;
21680
+ this.detail = detail;
21681
+ if (detail) {
21682
+ this.panelTitle = (_a = detail.title) === null || _a === void 0 ? void 0 : _a.substring(0, 50);
21683
+ this.panelDescription = detail.detail.substring(0, 100);
21684
+ }
21685
+ }
21686
+ static of(detail) {
21687
+ return new ExceptionDetailCtx(detail);
21688
+ }
21689
+ }
21690
+ ExceptionDetailCtx.Empty = new ExceptionDetailCtx(null);
21691
+ class ElderExceptionDetailComponent {
21692
+ /***************************************************************************
21693
+ * *
21694
+ * Constructor *
21695
+ * *
21696
+ **************************************************************************/
21697
+ constructor() {
21698
+ /***************************************************************************
21699
+ * *
21700
+ * Fields *
21701
+ * *
21702
+ **************************************************************************/
21703
+ this.errorCtx$ = new BehaviorSubject(ExceptionDetailCtx.Empty);
21704
+ this.expanded = false;
21705
+ this.stacktraceRows = 8;
21706
+ }
21707
+ /***************************************************************************
21708
+ * *
21709
+ * Life Cycle *
21710
+ * *
21711
+ **************************************************************************/
21712
+ ngOnInit() {
21713
+ }
21714
+ /***************************************************************************
21715
+ * *
21716
+ * Properties *
21717
+ * *
21718
+ **************************************************************************/
21719
+ set error(error) {
21720
+ this.errorCtx$.next(ExceptionDetailCtx.of(error));
21721
+ }
21722
+ }
21723
+ ElderExceptionDetailComponent.decorators = [
21724
+ { type: Component, args: [{
21725
+ selector: 'elder-exception-detail',
21726
+ template: "<ng-container *ngIf=\"errorCtx$ | async as errorCtx\">\n\n <mat-accordion *ngIf=\"errorCtx.detail as error\" fxFill>\n <mat-expansion-panel [expanded]=\"expanded\">\n <mat-expansion-panel-header>\n <mat-panel-title fxLayoutAlign=\"start center\" fxLayoutGap=\"8px\">\n <mat-icon color=\"warn\" class=\"noselect\">warning</mat-icon>\n <span class=\"noselect\">{{errorCtx.panelTitle}}</span>\n </mat-panel-title>\n <mat-panel-description class=\"noselect\">\n <span class=\"mat-caption\">{{errorCtx.panelDescription}}</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div fxLayout=\"column\" fxFlex style=\"overflow: hidden\">\n\n <mat-form-field class=\"full-width\">\n <mat-label>Detail</mat-label>\n <input matInput [value]=\"error.detail\" readonly>\n </mat-form-field>\n\n <mat-form-field class=\"full-width\">\n <mat-label>Stacktrace</mat-label>\n <textarea class=\"stacktrace\" matInput [value]=\"error.stacktrace\" [rows]=\"stacktraceRows\"></textarea>\n </mat-form-field>\n\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n\n</ng-container>\n\n\n",
21727
+ changeDetection: ChangeDetectionStrategy.OnPush,
21728
+ styles: [".stacktrace{font-size:11px;font-family:monospace;white-space:pre;overflow-wrap:normal;overflow-x:scroll;background-color:#575757;color:#d0b795}\n"]
21729
+ },] }
21730
+ ];
21731
+ ElderExceptionDetailComponent.ctorParameters = () => [];
21732
+ ElderExceptionDetailComponent.propDecorators = {
21733
+ expanded: [{ type: Input }],
21734
+ stacktraceRows: [{ type: Input }],
21735
+ error: [{ type: Input }]
21736
+ };
21737
+
21738
+ /**
21739
+ * Provides Error Indicators and Exception detail components.
21740
+ */
21741
+ class ElderErrorModule {
21742
+ }
21743
+ ElderErrorModule.decorators = [
21744
+ { type: NgModule, args: [{
21745
+ declarations: [
21746
+ ElderExceptionDetailComponent
21747
+ ],
21748
+ exports: [
21749
+ ElderExceptionDetailComponent
21750
+ ],
21751
+ imports: [
21752
+ CommonModule,
21753
+ MatExpansionModule,
21754
+ MatIconModule,
21755
+ MatInputModule,
21756
+ FlexModule
21757
+ ]
21758
+ },] }
21759
+ ];
21760
+
21761
+ class AuditedEntityCtx {
21762
+ constructor(audited) {
21763
+ this.audited = audited;
21764
+ }
21765
+ }
21766
+ class ElderAuditedEntityComponent {
21767
+ constructor() {
21768
+ this.layout = 'row wrap';
21769
+ this.appearance = 'fill';
21770
+ this.auditedCtx$ = new BehaviorSubject(null);
21771
+ }
21772
+ ngOnInit() {
21773
+ }
21774
+ set audited(audited) {
21775
+ this.auditedCtx$.next(new AuditedEntityCtx(audited));
21776
+ }
21777
+ }
21778
+ ElderAuditedEntityComponent.decorators = [
21779
+ { type: Component, args: [{
21780
+ selector: 'elder-audited-entity',
21781
+ template: "<section [fxLayout]=\"layout\" fxLayoutGap=\"8px\" *ngIf=\"auditedCtx$ | async as ctx\">\n\n <mat-form-field class=\"elder-std-form-field\" [appearance]=\"appearance\">\n <mat-icon class=\"decent noselect\" matSuffix>add_circle_outline</mat-icon>\n <mat-label>{{'context.createdAt' | translate}} {{ctx.audited?.createdAt | timeAgo}}</mat-label>\n <input matInput name=\"created\"\n [value]=\"ctx.audited?.createdAt | date:'dd.MM.yyyy hh:mm'\"\n readonly>\n <mat-hint>{{ctx.audited?.createdBy}}</mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"elder-std-form-field\" [appearance]=\"appearance\">\n <mat-icon class=\"decent noselect\" matSuffix>mode_edit_outline</mat-icon>\n <mat-label>{{'context.modifiedAt' | translate}} {{ctx.audited?.modifiedAt | timeAgo}}</mat-label>\n <input matInput name=\"modified\"\n [value]=\"ctx.audited?.modifiedAt | date:'dd.MM.yyyy hh:mm'\"\n readonly>\n <mat-hint>{{ctx.audited?.modifiedBy}}</mat-hint>\n </mat-form-field>\n\n</section>\n",
21782
+ changeDetection: ChangeDetectionStrategy.OnPush,
21783
+ styles: [".decent{opacity:.5}\n"]
21784
+ },] }
21785
+ ];
21786
+ ElderAuditedEntityComponent.ctorParameters = () => [];
21787
+ ElderAuditedEntityComponent.propDecorators = {
21788
+ layout: [{ type: Input }],
21789
+ appearance: [{ type: Input }],
21790
+ audited: [{ type: Input }]
21791
+ };
21792
+
21793
+ class AuditedEntity {
21794
+ }
21795
+
21796
+ class ElderAuditModule {
21797
+ }
21798
+ ElderAuditModule.decorators = [
21799
+ { type: NgModule, args: [{
21800
+ declarations: [
21801
+ ElderAuditedEntityComponent
21802
+ ],
21803
+ exports: [
21804
+ ElderAuditedEntityComponent
21805
+ ],
21806
+ imports: [
21807
+ CommonModule,
21808
+ FlexModule,
21809
+ MatInputModule,
21810
+ TranslateModule,
21811
+ ElderPipesModule,
21812
+ MatIconModule
21813
+ ]
21814
+ },] }
21815
+ ];
21816
+
21661
21817
  /**
21662
21818
  * This class provides a reactive wrapper around an event source.
21663
21819
  *
@@ -22328,5 +22484,5 @@ KafentModule.decorators = [
22328
22484
  * Generated bundle index. Do not edit.
22329
22485
  */
22330
22486
 
22331
- export { BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextStatus, DataSourceAdapter, DataSourceProcessor, DataSourceToDataContextBinding, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, EbsCommonDialogService, EbsToastService, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewBaseModule, ElderDataViewSelectionMode, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDatesModule, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogService, ElderDimensionsInputComponent, ElderDurationInputComponent, ElderEnumTranslationService, ElderEventSourceService, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollLegacyDirective, ElderInfiniteScrollModule, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMaxDirective, ElderMeasuresModule, ElderMinDirective, ElderMultiAutoCompleteModule, ElderMultiAutocompleteComponent, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderPlugParentFormDirectiveLegacy, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityInputComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredIgnoreZeroValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectChipDirective, ElderSelectComponent, ElderSelectListComponent, ElderSelectListItemComponent, ElderSelectListModule, ElderSelectModule, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderStopEventPropagationDirectiveLegacy, ElderSvgViewerComponent, ElderTabFocusTrapDirective, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderTimeModule, ElderToastModule, ElderToastService, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTouchedDirectiveLegacy, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentSwitcherComponent, ElderViewersModule, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownLocaleType, LazyBehaviorSubject, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, ReplacementResult, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectOnTabDirective, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, TextRange, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToastService, ToastType, TokenChunkRequest, ToolbarHeader, TranslatedEnumValue, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, WordPositionFinder, alphaNumStringComparator, buildFormIntegrationProviders, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isListDataSource, isPagedDataSource, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, ElderPanelComponentBase as ɵa, _ElderPanelMixinBase as ɵb, provideForm as ɵc, createSelectionModel as ɵd, createDataViewSelection as ɵe, ELDER_DATA_VIEW as ɵf, ElderTripleStateCheckboxDirective as ɵh, ElderTableColumnDirective as ɵi, ElderTableRowDirective as ɵj, ElderPaginatorIntl as ɵk, StandardToastComponent as ɵl, ElderSelectBase as ɵm };
22487
+ export { AuditedEntity, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextStatus, DataSourceAdapter, DataSourceProcessor, DataSourceToDataContextBinding, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, EbsCommonDialogService, EbsToastService, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewBaseModule, ElderDataViewSelectionMode, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDatesModule, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogService, ElderDimensionsInputComponent, ElderDurationInputComponent, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollLegacyDirective, ElderInfiniteScrollModule, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMaxDirective, ElderMeasuresModule, ElderMinDirective, ElderMultiAutoCompleteModule, ElderMultiAutocompleteComponent, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderPlugParentFormDirectiveLegacy, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityInputComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredIgnoreZeroValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectChipDirective, ElderSelectComponent, ElderSelectListComponent, ElderSelectListItemComponent, ElderSelectListModule, ElderSelectModule, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderStopEventPropagationDirectiveLegacy, ElderSvgViewerComponent, ElderTabFocusTrapDirective, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderTimeModule, ElderToastModule, ElderToastService, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTouchedDirectiveLegacy, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentSwitcherComponent, ElderViewersModule, ExceptionDetailCtx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownLocaleType, LazyBehaviorSubject, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, ReplacementResult, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectOnTabDirective, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, TextRange, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToastService, ToastType, TokenChunkRequest, ToolbarHeader, TranslatedEnumValue, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, WordPositionFinder, alphaNumStringComparator, buildFormIntegrationProviders, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isListDataSource, isPagedDataSource, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, ElderPanelComponentBase as ɵa, _ElderPanelMixinBase as ɵb, provideForm as ɵc, createSelectionModel as ɵd, createDataViewSelection as ɵe, ELDER_DATA_VIEW as ɵf, ElderTripleStateCheckboxDirective as ɵh, ElderTableColumnDirective as ɵi, ElderTableRowDirective as ɵj, ElderPaginatorIntl as ɵk, StandardToastComponent as ɵl, ElderSelectBase as ɵm };
22332
22488
  //# sourceMappingURL=elderbyte-ngx-starter.js.map