@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
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/platform-browser'), require('@js-joda/core'), require('@elderbyte/ts-logger'), require('rxjs'), require('rxjs/operators'), require('@angular/common/http'), require('@angular/cdk/collections'), require('@angular/forms'), require('@angular/cdk/coercion'), require('@ngx-translate/core'), require('@angular/flex-layout'), require('@angular/material/card'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/chips'), require('@angular/material/core'), require('@angular/material/list'), require('@angular/material/progress-bar'), require('@angular/material/snack-bar'), require('@angular/cdk/drag-drop'), require('@angular/material/divider'), require('@angular/router'), require('@angular/material/badge'), require('@angular/material/checkbox'), require('@angular/material/dialog'), require('@angular/material/menu'), require('@angular/material/tooltip'), require('@angular/material/toolbar'), require('@angular/cdk/a11y'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/material/table'), require('@angular/cdk/table'), require('@angular/material/form-field'), require('@angular/material/select'), require('@angular/cdk/scrolling'), require('@elderbyte/ngx-simple-webstorage'), require('@angular/animations'), require('@angular/material/sidenav'), require('@angular/material/datepicker'), require('@angular/common/locales/de-CH'), require('rxjs/internal/BehaviorSubject'), require('rxjs/internal/Subject'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@angular/material/progress-spinner'), require('streamsaver')) :
3
- typeof define === 'function' && define.amd ? define('@elderbyte/ngx-starter', ['exports', '@angular/common', '@angular/core', '@angular/platform-browser', '@js-joda/core', '@elderbyte/ts-logger', 'rxjs', 'rxjs/operators', '@angular/common/http', '@angular/cdk/collections', '@angular/forms', '@angular/cdk/coercion', '@ngx-translate/core', '@angular/flex-layout', '@angular/material/card', '@angular/material/icon', '@angular/material/button', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/chips', '@angular/material/core', '@angular/material/list', '@angular/material/progress-bar', '@angular/material/snack-bar', '@angular/cdk/drag-drop', '@angular/material/divider', '@angular/router', '@angular/material/badge', '@angular/material/checkbox', '@angular/material/dialog', '@angular/material/menu', '@angular/material/tooltip', '@angular/material/toolbar', '@angular/cdk/a11y', '@angular/material/paginator', '@angular/material/sort', '@angular/material/table', '@angular/cdk/table', '@angular/material/form-field', '@angular/material/select', '@angular/cdk/scrolling', '@elderbyte/ngx-simple-webstorage', '@angular/animations', '@angular/material/sidenav', '@angular/material/datepicker', '@angular/common/locales/de-CH', 'rxjs/internal/BehaviorSubject', 'rxjs/internal/Subject', '@angular/cdk/overlay', '@angular/cdk/portal', '@angular/material/progress-spinner', 'streamsaver'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.elderbyte = global.elderbyte || {}, global.elderbyte['ngx-starter'] = {}), global.ng.common, global.ng.core, global.ng.platformBrowser, global.core, global.tsLogger, global.rxjs, global.rxjs.operators, global.ng.common.http, global.ng.cdk.collections, global.ng.forms, global.ng.cdk.coercion, global.i1$1, global.ng.flexLayout, global.ng.material.card, global.ng.material.icon, global.ng.material.button, global.ng.material.autocomplete, global.ng.material.input, global.ng.material.chips, global.ng.material.core, global.ng.material.list, global.ng.material.progressBar, global.ng.material.snackBar, global.ng.cdk.dragDrop, global.ng.material.divider, global.ng.router, global.ng.material.badge, global.ng.material.checkbox, global.ng.material.dialog, global.ng.material.menu, global.ng.material.tooltip, global.ng.material.toolbar, global.ng.cdk.a11y, global.ng.material.paginator, global.ng.material.sort, global.ng.material.table, global.ng.cdk.table, global.ng.material.formField, global.ng.material.select, global.ng.cdk.scrolling, global.i2$1, global.ng.animations, global.ng.material.sidenav, global.ng.material.datepicker, global.ng.common.locales.deCH, global.rxjs['internal/BehaviorSubject'], global.rxjs['internal/Subject'], global.ng.cdk.overlay, global.ng.cdk.portal, global.ng.material.progressSpinner, global.StreamSaver));
5
- }(this, (function (exports, common, i0, platformBrowser, core, tsLogger, rxjs, operators, i1, collections, forms, coercion, i1$1, flexLayout, card, icon, button, autocomplete, input, chips, core$1, list, progressBar, i2, dragDrop, divider, i1$2, badge, checkbox, i1$3, menu, tooltip, toolbar, a11y, paginator, sort, table$1, table, formField, select, scrolling, i2$1, animations, sidenav, datepicker, localeDECH, BehaviorSubject, Subject, overlay, portal, progressSpinner, StreamSaver) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/platform-browser'), require('@js-joda/core'), require('@elderbyte/ts-logger'), require('rxjs'), require('rxjs/operators'), require('@angular/common/http'), require('@angular/cdk/collections'), require('@angular/forms'), require('@angular/cdk/coercion'), require('@ngx-translate/core'), require('@angular/flex-layout'), require('@angular/material/card'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/chips'), require('@angular/material/core'), require('@angular/material/list'), require('@angular/material/progress-bar'), require('@angular/material/snack-bar'), require('@angular/cdk/drag-drop'), require('@angular/material/divider'), require('@angular/router'), require('@angular/material/badge'), require('@angular/material/checkbox'), require('@angular/material/dialog'), require('@angular/material/menu'), require('@angular/material/tooltip'), require('@angular/material/toolbar'), require('@angular/cdk/a11y'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/material/table'), require('@angular/cdk/table'), require('@angular/material/form-field'), require('@angular/material/select'), require('@angular/cdk/scrolling'), require('@elderbyte/ngx-simple-webstorage'), require('@angular/animations'), require('@angular/material/sidenav'), require('@angular/material/datepicker'), require('@angular/common/locales/de-CH'), require('rxjs/internal/BehaviorSubject'), require('rxjs/internal/Subject'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@angular/material/progress-spinner'), require('streamsaver'), require('@angular/material/expansion')) :
3
+ typeof define === 'function' && define.amd ? define('@elderbyte/ngx-starter', ['exports', '@angular/common', '@angular/core', '@angular/platform-browser', '@js-joda/core', '@elderbyte/ts-logger', 'rxjs', 'rxjs/operators', '@angular/common/http', '@angular/cdk/collections', '@angular/forms', '@angular/cdk/coercion', '@ngx-translate/core', '@angular/flex-layout', '@angular/material/card', '@angular/material/icon', '@angular/material/button', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/chips', '@angular/material/core', '@angular/material/list', '@angular/material/progress-bar', '@angular/material/snack-bar', '@angular/cdk/drag-drop', '@angular/material/divider', '@angular/router', '@angular/material/badge', '@angular/material/checkbox', '@angular/material/dialog', '@angular/material/menu', '@angular/material/tooltip', '@angular/material/toolbar', '@angular/cdk/a11y', '@angular/material/paginator', '@angular/material/sort', '@angular/material/table', '@angular/cdk/table', '@angular/material/form-field', '@angular/material/select', '@angular/cdk/scrolling', '@elderbyte/ngx-simple-webstorage', '@angular/animations', '@angular/material/sidenav', '@angular/material/datepicker', '@angular/common/locales/de-CH', 'rxjs/internal/BehaviorSubject', 'rxjs/internal/Subject', '@angular/cdk/overlay', '@angular/cdk/portal', '@angular/material/progress-spinner', 'streamsaver', '@angular/material/expansion'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.elderbyte = global.elderbyte || {}, global.elderbyte['ngx-starter'] = {}), global.ng.common, global.ng.core, global.ng.platformBrowser, global.core, global.tsLogger, global.rxjs, global.rxjs.operators, global.ng.common.http, global.ng.cdk.collections, global.ng.forms, global.ng.cdk.coercion, global.i1$1, global.ng.flexLayout, global.ng.material.card, global.ng.material.icon, global.ng.material.button, global.ng.material.autocomplete, global.ng.material.input, global.ng.material.chips, global.ng.material.core, global.ng.material.list, global.ng.material.progressBar, global.ng.material.snackBar, global.ng.cdk.dragDrop, global.ng.material.divider, global.ng.router, global.ng.material.badge, global.ng.material.checkbox, global.ng.material.dialog, global.ng.material.menu, global.ng.material.tooltip, global.ng.material.toolbar, global.ng.cdk.a11y, global.ng.material.paginator, global.ng.material.sort, global.ng.material.table, global.ng.cdk.table, global.ng.material.formField, global.ng.material.select, global.ng.cdk.scrolling, global.i2$1, global.ng.animations, global.ng.material.sidenav, global.ng.material.datepicker, global.ng.common.locales.deCH, global.rxjs['internal/BehaviorSubject'], global.rxjs['internal/Subject'], global.ng.cdk.overlay, global.ng.cdk.portal, global.ng.material.progressSpinner, global.StreamSaver, global.ng.material.expansion));
5
+ }(this, (function (exports, common, i0, platformBrowser, core, tsLogger, rxjs, operators, i1, collections, forms, coercion, i1$1, flexLayout, card, icon, button, autocomplete, input, chips, core$1, list, progressBar, i2, dragDrop, divider, i1$2, badge, checkbox, i1$3, menu, tooltip, toolbar, a11y, paginator, sort, table$1, table, formField, select, scrolling, i2$1, animations, sidenav, datepicker, localeDECH, BehaviorSubject, Subject, overlay, portal, progressSpinner, StreamSaver, expansion) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -9286,17 +9286,15 @@
9286
9286
  this.blobContext$ = new rxjs.BehaviorSubject(null);
9287
9287
  this._url$ = new rxjs.BehaviorSubject(null);
9288
9288
  this._mimeType$ = new rxjs.BehaviorSubject(null);
9289
- this.unsubscribe$ = new rxjs.Subject();
9289
+ this.destroy$ = new rxjs.Subject();
9290
9290
  this._displayUnknownAsText = false;
9291
- rxjs.combineLatest([this._url$, this._mimeType$]).pipe(operators.takeUntil(this.unsubscribe$), operators.filter(function (_a) {
9291
+ rxjs.combineLatest([this._url$, this._mimeType$]).pipe(operators.takeUntil(this.destroy$), operators.filter(function (_a) {
9292
9292
  var _b = __read(_a, 2), url = _b[0], mimeType = _b[1];
9293
- return !!url && !!mimeType;
9293
+ return !!url;
9294
9294
  }), operators.map(function (_a) {
9295
9295
  var _b = __read(_a, 2), url = _b[0], mimeType = _b[1];
9296
9296
  return BlobUrl.from(url, mimeType);
9297
- })).subscribe(function (blobUrl) {
9298
- _this.blobUrl = blobUrl;
9299
- });
9297
+ })).subscribe(function (blobUrl) { return _this.blobUrl = blobUrl; });
9300
9298
  }
9301
9299
  /***************************************************************************
9302
9300
  * *
@@ -9305,8 +9303,8 @@
9305
9303
  **************************************************************************/
9306
9304
  ElderBlobViewerComponent.prototype.ngOnInit = function () { };
9307
9305
  ElderBlobViewerComponent.prototype.ngOnDestroy = function () {
9308
- this.unsubscribe$.next();
9309
- this.unsubscribe$.complete();
9306
+ this.destroy$.next();
9307
+ this.destroy$.complete();
9310
9308
  };
9311
9309
  Object.defineProperty(ElderBlobViewerComponent.prototype, "displayUnknownAsText", {
9312
9310
  /***************************************************************************
@@ -9441,7 +9439,7 @@
9441
9439
  selector: 'elder-blob-viewer',
9442
9440
  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",
9443
9441
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
9444
- 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"]
9442
+ 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"]
9445
9443
  },] }
9446
9444
  ];
9447
9445
  ElderBlobViewerComponent.ctorParameters = function () { return [
@@ -9514,7 +9512,7 @@
9514
9512
  * Fields *
9515
9513
  * *
9516
9514
  **************************************************************************/
9517
- this.logger = tsLogger.LoggerFactory.getLogger('ElderCardOrganizerComponent');
9515
+ this.logger = tsLogger.LoggerFactory.getLogger(this.constructor.name);
9518
9516
  this.canRemove = true;
9519
9517
  /**
9520
9518
  * If enabled, the card organizer will
@@ -9584,7 +9582,7 @@
9584
9582
  }());
9585
9583
  ElderCardOrganizerComponent.decorators = [
9586
9584
  { type: i0.Component, args: [{
9587
- selector: 'elder-card-organizer, ebs-card-organizer',
9585
+ selector: 'elder-card-organizer',
9588
9586
  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",
9589
9587
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
9590
9588
  styles: [""]
@@ -14637,6 +14635,8 @@
14637
14635
  _this.idField = 'id';
14638
14636
  _this.selectionVisible = true;
14639
14637
  _this.interactionMode = 'open';
14638
+ _this.pageSizeOptions = [30, 50, 100, 150, 200];
14639
+ _this.destroy$ = new rxjs.Subject();
14640
14640
  return _this;
14641
14641
  }
14642
14642
  /***************************************************************************
@@ -14667,7 +14667,15 @@
14667
14667
  }
14668
14668
  }
14669
14669
  };
14670
+ ElderGridComponent.prototype.ngAfterViewInit = function () {
14671
+ MatTableDataContextBindingBuilder
14672
+ .start(this.dataContext$)
14673
+ .withPaginator(rxjs.of(this.matPaginator))
14674
+ .bindUntil(this.destroy$);
14675
+ };
14670
14676
  ElderGridComponent.prototype.ngOnDestroy = function () {
14677
+ this.destroy$.next();
14678
+ this.destroy$.complete();
14671
14679
  };
14672
14680
  Object.defineProperty(ElderGridComponent.prototype, "tileTemplate", {
14673
14681
  get: function () {
@@ -14698,10 +14706,15 @@
14698
14706
  set: function (data) {
14699
14707
  this.dataContext$.next(data);
14700
14708
  this.total$ = data.total.pipe(operators.map(function (total) { return total ? total + '' : '∞'; }));
14701
- this.canLoadMore$ = rxjs.combineLatest([data.loading, data.hasMoreData]).pipe(operators.map(function (_a) {
14702
- var _b = __read(_a, 2), loading = _b[0], hasMoreData = _b[1];
14703
- return !loading && hasMoreData;
14704
- }));
14709
+ if (isContinuableDataContext(data)) {
14710
+ this.canLoadMore$ = rxjs.combineLatest([data.loading, data.hasMoreData]).pipe(operators.map(function (_a) {
14711
+ var _b = __read(_a, 2), loading = _b[0], hasMoreData = _b[1];
14712
+ return !loading && hasMoreData;
14713
+ }));
14714
+ }
14715
+ else {
14716
+ this.canLoadMore$ = rxjs.of(false);
14717
+ }
14705
14718
  },
14706
14719
  enumerable: false,
14707
14720
  configurable: true
@@ -14811,7 +14824,7 @@
14811
14824
  ElderGridComponent.decorators = [
14812
14825
  { type: i0.Component, args: [{
14813
14826
  selector: 'elder-grid',
14814
- 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",
14827
+ 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",
14815
14828
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
14816
14829
  providers: [
14817
14830
  {
@@ -14840,6 +14853,8 @@
14840
14853
  idField: [{ type: i0.Input }],
14841
14854
  selectionVisible: [{ type: i0.Input }],
14842
14855
  interactionMode: [{ type: i0.Input }],
14856
+ pageSizeOptions: [{ type: i0.Input }],
14857
+ matPaginator: [{ type: i0.ViewChild, args: [paginator.MatPaginator,] }],
14843
14858
  toolbarTemplateQuery: [{ type: i0.ContentChild, args: [ElderGridToolbarDirective, { read: i0.TemplateRef, static: true },] }],
14844
14859
  tileTemplate: [{ type: i0.Input }],
14845
14860
  toolbarTemplate: [{ type: i0.Input }],
@@ -14867,7 +14882,7 @@
14867
14882
  i1$1.TranslateModule,
14868
14883
  ElderDataCommonModule,
14869
14884
  ElderInfiniteScrollModule,
14870
- ElderFormsDirectivesModule
14885
+ ElderFormsDirectivesModule, paginator.MatPaginatorModule
14871
14886
  ],
14872
14887
  declarations: [
14873
14888
  ElderGridComponent,
@@ -24477,6 +24492,167 @@
24477
24492
  },] }
24478
24493
  ];
24479
24494
 
24495
+ var ExceptionDetailCtx = /** @class */ (function () {
24496
+ function ExceptionDetailCtx(detail) {
24497
+ var _a;
24498
+ this.detail = detail;
24499
+ if (detail) {
24500
+ this.panelTitle = (_a = detail.title) === null || _a === void 0 ? void 0 : _a.substring(0, 50);
24501
+ this.panelDescription = detail.detail.substring(0, 100);
24502
+ }
24503
+ }
24504
+ ExceptionDetailCtx.of = function (detail) {
24505
+ return new ExceptionDetailCtx(detail);
24506
+ };
24507
+ return ExceptionDetailCtx;
24508
+ }());
24509
+ ExceptionDetailCtx.Empty = new ExceptionDetailCtx(null);
24510
+ var ElderExceptionDetailComponent = /** @class */ (function () {
24511
+ /***************************************************************************
24512
+ * *
24513
+ * Constructor *
24514
+ * *
24515
+ **************************************************************************/
24516
+ function ElderExceptionDetailComponent() {
24517
+ /***************************************************************************
24518
+ * *
24519
+ * Fields *
24520
+ * *
24521
+ **************************************************************************/
24522
+ this.errorCtx$ = new rxjs.BehaviorSubject(ExceptionDetailCtx.Empty);
24523
+ this.expanded = false;
24524
+ this.stacktraceRows = 8;
24525
+ }
24526
+ /***************************************************************************
24527
+ * *
24528
+ * Life Cycle *
24529
+ * *
24530
+ **************************************************************************/
24531
+ ElderExceptionDetailComponent.prototype.ngOnInit = function () {
24532
+ };
24533
+ Object.defineProperty(ElderExceptionDetailComponent.prototype, "error", {
24534
+ /***************************************************************************
24535
+ * *
24536
+ * Properties *
24537
+ * *
24538
+ **************************************************************************/
24539
+ set: function (error) {
24540
+ this.errorCtx$.next(ExceptionDetailCtx.of(error));
24541
+ },
24542
+ enumerable: false,
24543
+ configurable: true
24544
+ });
24545
+ return ElderExceptionDetailComponent;
24546
+ }());
24547
+ ElderExceptionDetailComponent.decorators = [
24548
+ { type: i0.Component, args: [{
24549
+ selector: 'elder-exception-detail',
24550
+ 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",
24551
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
24552
+ styles: [".stacktrace{font-size:11px;font-family:monospace;white-space:pre;overflow-wrap:normal;overflow-x:scroll;background-color:#575757;color:#d0b795}\n"]
24553
+ },] }
24554
+ ];
24555
+ ElderExceptionDetailComponent.ctorParameters = function () { return []; };
24556
+ ElderExceptionDetailComponent.propDecorators = {
24557
+ expanded: [{ type: i0.Input }],
24558
+ stacktraceRows: [{ type: i0.Input }],
24559
+ error: [{ type: i0.Input }]
24560
+ };
24561
+
24562
+ /**
24563
+ * Provides Error Indicators and Exception detail components.
24564
+ */
24565
+ var ElderErrorModule = /** @class */ (function () {
24566
+ function ElderErrorModule() {
24567
+ }
24568
+ return ElderErrorModule;
24569
+ }());
24570
+ ElderErrorModule.decorators = [
24571
+ { type: i0.NgModule, args: [{
24572
+ declarations: [
24573
+ ElderExceptionDetailComponent
24574
+ ],
24575
+ exports: [
24576
+ ElderExceptionDetailComponent
24577
+ ],
24578
+ imports: [
24579
+ common.CommonModule,
24580
+ expansion.MatExpansionModule,
24581
+ icon.MatIconModule,
24582
+ input.MatInputModule,
24583
+ flexLayout.FlexModule
24584
+ ]
24585
+ },] }
24586
+ ];
24587
+
24588
+ var AuditedEntityCtx = /** @class */ (function () {
24589
+ function AuditedEntityCtx(audited) {
24590
+ this.audited = audited;
24591
+ }
24592
+ return AuditedEntityCtx;
24593
+ }());
24594
+ var ElderAuditedEntityComponent = /** @class */ (function () {
24595
+ function ElderAuditedEntityComponent() {
24596
+ this.layout = 'row wrap';
24597
+ this.appearance = 'fill';
24598
+ this.auditedCtx$ = new rxjs.BehaviorSubject(null);
24599
+ }
24600
+ ElderAuditedEntityComponent.prototype.ngOnInit = function () {
24601
+ };
24602
+ Object.defineProperty(ElderAuditedEntityComponent.prototype, "audited", {
24603
+ set: function (audited) {
24604
+ this.auditedCtx$.next(new AuditedEntityCtx(audited));
24605
+ },
24606
+ enumerable: false,
24607
+ configurable: true
24608
+ });
24609
+ return ElderAuditedEntityComponent;
24610
+ }());
24611
+ ElderAuditedEntityComponent.decorators = [
24612
+ { type: i0.Component, args: [{
24613
+ selector: 'elder-audited-entity',
24614
+ 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",
24615
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
24616
+ styles: [".decent{opacity:.5}\n"]
24617
+ },] }
24618
+ ];
24619
+ ElderAuditedEntityComponent.ctorParameters = function () { return []; };
24620
+ ElderAuditedEntityComponent.propDecorators = {
24621
+ layout: [{ type: i0.Input }],
24622
+ appearance: [{ type: i0.Input }],
24623
+ audited: [{ type: i0.Input }]
24624
+ };
24625
+
24626
+ var AuditedEntity = /** @class */ (function () {
24627
+ function AuditedEntity() {
24628
+ }
24629
+ return AuditedEntity;
24630
+ }());
24631
+
24632
+ var ElderAuditModule = /** @class */ (function () {
24633
+ function ElderAuditModule() {
24634
+ }
24635
+ return ElderAuditModule;
24636
+ }());
24637
+ ElderAuditModule.decorators = [
24638
+ { type: i0.NgModule, args: [{
24639
+ declarations: [
24640
+ ElderAuditedEntityComponent
24641
+ ],
24642
+ exports: [
24643
+ ElderAuditedEntityComponent
24644
+ ],
24645
+ imports: [
24646
+ common.CommonModule,
24647
+ flexLayout.FlexModule,
24648
+ input.MatInputModule,
24649
+ i1$1.TranslateModule,
24650
+ ElderPipesModule,
24651
+ icon.MatIconModule
24652
+ ]
24653
+ },] }
24654
+ ];
24655
+
24480
24656
  /**
24481
24657
  * This class provides a reactive wrapper around an event source.
24482
24658
  *
@@ -25206,6 +25382,7 @@
25206
25382
  * Generated bundle index. Do not edit.
25207
25383
  */
25208
25384
 
25385
+ exports.AuditedEntity = AuditedEntity;
25209
25386
  exports.BlobUrl = BlobUrl;
25210
25387
  exports.BytesFormat = BytesFormat;
25211
25388
  exports.BytesPerSecondFormat = BytesPerSecondFormat;
@@ -25258,6 +25435,8 @@
25258
25435
  exports.ElderAccessDeniedComponent = ElderAccessDeniedComponent;
25259
25436
  exports.ElderAccessDeniedModule = ElderAccessDeniedModule;
25260
25437
  exports.ElderAppHeaderComponent = ElderAppHeaderComponent;
25438
+ exports.ElderAuditModule = ElderAuditModule;
25439
+ exports.ElderAuditedEntityComponent = ElderAuditedEntityComponent;
25261
25440
  exports.ElderAutocompleteComponent = ElderAutocompleteComponent;
25262
25441
  exports.ElderAutocompleteDirective = ElderAutocompleteDirective;
25263
25442
  exports.ElderAutocompleteModule = ElderAutocompleteModule;
@@ -25306,7 +25485,9 @@
25306
25485
  exports.ElderDimensionsInputComponent = ElderDimensionsInputComponent;
25307
25486
  exports.ElderDurationInputComponent = ElderDurationInputComponent;
25308
25487
  exports.ElderEnumTranslationService = ElderEnumTranslationService;
25488
+ exports.ElderErrorModule = ElderErrorModule;
25309
25489
  exports.ElderEventSourceService = ElderEventSourceService;
25490
+ exports.ElderExceptionDetailComponent = ElderExceptionDetailComponent;
25310
25491
  exports.ElderExpandToggleButtonComponent = ElderExpandToggleButtonComponent;
25311
25492
  exports.ElderExpandToggleButtonModule = ElderExpandToggleButtonModule;
25312
25493
  exports.ElderFileDropZoneDirective = ElderFileDropZoneDirective;
@@ -25456,6 +25637,7 @@
25456
25637
  exports.ElderUrlFragmentModule = ElderUrlFragmentModule;
25457
25638
  exports.ElderUrlFragmentSwitcherComponent = ElderUrlFragmentSwitcherComponent;
25458
25639
  exports.ElderViewersModule = ElderViewersModule;
25640
+ exports.ExceptionDetailCtx = ExceptionDetailCtx;
25459
25641
  exports.FileUploadClient = FileUploadClient;
25460
25642
  exports.Filter = Filter;
25461
25643
  exports.FilterContext = FilterContext;