@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
@@ -0,0 +1,5 @@
1
+ export interface ExceptionDetail {
2
+ readonly title: string;
3
+ readonly detail: string;
4
+ readonly stacktrace: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from './exception-detail';
2
+ export * from './standard-error-detail';
@@ -8,6 +8,7 @@ export * from './http/public_api';
8
8
  export * from './i18n/public_api';
9
9
  export * from './rxjs/public_api';
10
10
  export * from './enums/public_api';
11
+ export * from './errors/public_api';
11
12
  export * from './csv/public_api';
12
13
  export * from './async/public_api';
13
14
  export * from './objects';
@@ -0,0 +1,17 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { IAuditedEntity } from '../i-audited-entity';
4
+ import { MatFormFieldAppearance } from '@angular/material/form-field/form-field';
5
+ declare class AuditedEntityCtx {
6
+ readonly audited: IAuditedEntity;
7
+ constructor(audited: IAuditedEntity);
8
+ }
9
+ export declare class ElderAuditedEntityComponent implements OnInit {
10
+ layout: string;
11
+ appearance: MatFormFieldAppearance;
12
+ readonly auditedCtx$: BehaviorSubject<AuditedEntityCtx>;
13
+ constructor();
14
+ ngOnInit(): void;
15
+ set audited(audited: IAuditedEntity);
16
+ }
17
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './i-audited-entity';
2
+ export * from './audited-entity/elder-audited-entity.component';
3
+ export declare class ElderAuditModule {
4
+ }
@@ -0,0 +1,13 @@
1
+ import { IsoDateStr } from '../../common/time/date-util';
2
+ export interface IAuditedEntity {
3
+ readonly createdAt: IsoDateStr;
4
+ readonly createdBy: string;
5
+ readonly modifiedAt: IsoDateStr;
6
+ readonly modifiedBy: string;
7
+ }
8
+ export declare abstract class AuditedEntity implements IAuditedEntity {
9
+ createdAt: IsoDateStr;
10
+ createdBy: string;
11
+ modifiedAt: IsoDateStr;
12
+ modifiedBy: string;
13
+ }
@@ -1,6 +1,6 @@
1
- import { OnDestroy, OnInit, TemplateRef, TrackByFunction, ViewContainerRef } from '@angular/core';
1
+ import { AfterViewInit, OnDestroy, OnInit, TemplateRef, TrackByFunction, ViewContainerRef } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { IDataContextContinuable } from '../../../../common/data/data-context/data-context';
3
+ import { IDataContext, IDataContextContinuable } from '../../../../common/data/data-context/data-context';
4
4
  import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
5
5
  import { SelectionModel } from '../../../../common/selection/selection-model';
6
6
  import { MediaObserver } from '@angular/flex-layout';
@@ -8,6 +8,7 @@ import { Sort } from '../../../../common/data/sort';
8
8
  import { ElderDataViewInteractionMode } from '../../base/elder-data-view';
9
9
  import { ElderDataViewSelectionMode } from '../../../select/popup/selection-model-popup.directive';
10
10
  import { ElderDataViewBaseComponent } from '../../base/elder-data-view-base';
11
+ import { MatPaginator } from '@angular/material/paginator';
11
12
  export declare class ElderGridTileDirective {
12
13
  templateRef: TemplateRef<any>;
13
14
  viewContainer: ViewContainerRef;
@@ -21,7 +22,7 @@ export declare class ElderGridToolbarDirective {
21
22
  viewContainer: ViewContainerRef;
22
23
  constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
23
24
  }
24
- export declare class ElderGridComponent extends ElderDataViewBaseComponent implements OnInit, OnDestroy {
25
+ export declare class ElderGridComponent extends ElderDataViewBaseComponent implements OnInit, AfterViewInit, OnDestroy {
25
26
  private mediaObserver;
26
27
  /***************************************************************************
27
28
  * *
@@ -54,8 +55,11 @@ export declare class ElderGridComponent extends ElderDataViewBaseComponent imple
54
55
  idField: string;
55
56
  selectionVisible: boolean;
56
57
  interactionMode: ElderDataViewInteractionMode;
58
+ pageSizeOptions: number[];
59
+ matPaginator: MatPaginator;
57
60
  toolbarTemplateQuery: TemplateRef<any>;
58
61
  private _toolbarTemplate;
62
+ private readonly destroy$;
59
63
  /***************************************************************************
60
64
  * *
61
65
  * Constructor *
@@ -68,6 +72,7 @@ export declare class ElderGridComponent extends ElderDataViewBaseComponent imple
68
72
  * *
69
73
  **************************************************************************/
70
74
  ngOnInit(): void;
75
+ ngAfterViewInit(): void;
71
76
  ngOnDestroy(): void;
72
77
  /***************************************************************************
73
78
  * *
@@ -78,7 +83,7 @@ export declare class ElderGridComponent extends ElderDataViewBaseComponent imple
78
83
  get tileTemplate(): TemplateRef<any>;
79
84
  set toolbarTemplate(template: TemplateRef<any>);
80
85
  get toolbarTemplate(): TemplateRef<any>;
81
- set data(data: IDataContextContinuable<any>);
86
+ set data(data: IDataContext<any>);
82
87
  get dataSnapshot(): IDataContextContinuable<any>;
83
88
  set columnCount(count: number);
84
89
  get columnCount(): number;
@@ -0,0 +1,6 @@
1
+ export * from './exception-detail/elder-exception-detail.component';
2
+ /**
3
+ * Provides Error Indicators and Exception detail components.
4
+ */
5
+ export declare class ElderErrorModule {
6
+ }
@@ -0,0 +1,39 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { ExceptionDetail } from '../../../common/errors/exception-detail';
4
+ export declare class ExceptionDetailCtx {
5
+ readonly detail: ExceptionDetail;
6
+ static Empty: ExceptionDetailCtx;
7
+ readonly panelTitle: string;
8
+ readonly panelDescription: string;
9
+ static of(detail: ExceptionDetail): ExceptionDetailCtx;
10
+ constructor(detail: ExceptionDetail);
11
+ }
12
+ export declare class ElderExceptionDetailComponent implements OnInit {
13
+ /***************************************************************************
14
+ * *
15
+ * Fields *
16
+ * *
17
+ **************************************************************************/
18
+ readonly errorCtx$: BehaviorSubject<ExceptionDetailCtx>;
19
+ expanded: boolean;
20
+ stacktraceRows: number;
21
+ /***************************************************************************
22
+ * *
23
+ * Constructor *
24
+ * *
25
+ **************************************************************************/
26
+ constructor();
27
+ /***************************************************************************
28
+ * *
29
+ * Life Cycle *
30
+ * *
31
+ **************************************************************************/
32
+ ngOnInit(): void;
33
+ /***************************************************************************
34
+ * *
35
+ * Properties *
36
+ * *
37
+ **************************************************************************/
38
+ set error(error: ExceptionDetail);
39
+ }
@@ -41,7 +41,7 @@ export declare class ElderBlobViewerComponent implements OnInit, OnDestroy {
41
41
  readonly blobContext$: BehaviorSubject<BlobContext>;
42
42
  private readonly _url$;
43
43
  private readonly _mimeType$;
44
- private readonly unsubscribe$;
44
+ private readonly destroy$;
45
45
  private _displayUnknownAsText;
46
46
  /***************************************************************************
47
47
  * *
@@ -34,3 +34,5 @@ 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
+ export * from './errors/elder-error.module';
38
+ export * from './auditing/elder-audit.module';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Represents a raw ISO duration formatted string such as 'P23DT23H'
3
+ * A parsed duration is represented by a joda Duration class.
4
+ */
5
+ export declare type IsoDurationStr = string;
@@ -1,6 +1,7 @@
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';
@@ -2,6 +2,7 @@ import { PipeTransform } from '@angular/core';
2
2
  import { Duration, Period } from '@js-joda/core';
3
3
  import { ElderUnitService } from '../components/measures/elder-unit.service';
4
4
  import { PeriodDuration } from '../common/time/period-duration';
5
+ import { IsoDurationStr } from '../components/time/duration/iso-duration-str';
5
6
  /**
6
7
  * Converts any valid input of standard ISO 8601 duration format
7
8
  * example input: PT2H10M12.1235675S, output: 2h, 10min, 12s, 124 ms
@@ -18,5 +19,5 @@ export declare class IsoDurationPipe implements PipeTransform {
18
19
  * Public API *
19
20
  * *
20
21
  **************************************************************************/
21
- transform(value: string | Duration | Period | PeriodDuration, format?: string): string;
22
+ transform(value: IsoDurationStr | Duration | Period | PeriodDuration, format?: string): string;
22
23
  }
@@ -8,7 +8,7 @@ export declare class TimeAgoPipe implements PipeTransform, OnDestroy {
8
8
  private ngZone;
9
9
  private timer;
10
10
  constructor(changeDetectorRef: ChangeDetectorRef, ngZone: NgZone);
11
- transform(value: string): string;
11
+ transform(value: string | number | Date): string;
12
12
  ngOnDestroy(): void;
13
13
  private removeTimer;
14
14
  private getSecondsUntilUpdate;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "12.10.1",
3
+ "version": "12.12.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^12.0.1",
6
6
  "@angular/core": "^12.0.1",
@@ -0,0 +1,9 @@
1
+ .stacktrace {
2
+ font-size: 11px;
3
+ font-family: monospace;
4
+ white-space: pre;
5
+ overflow-wrap: normal;
6
+ overflow-x: scroll;
7
+ background-color: #575757;
8
+ color: #d0b795;
9
+ }
@@ -1,3 +1,6 @@
1
+ :host {
2
+ overflow: hidden;
3
+ }
1
4
 
2
5
  .document-viewer {
3
6
  background-color: #dedede;
package/theming.scss CHANGED
@@ -11,6 +11,7 @@
11
11
  @use "src/lib/components/card-organizer/card-stack/elder-card-stack.component" as elder-card-stack;
12
12
  @use "src/lib/components/cards/elder-card/elder-card.component" as elder-card;
13
13
  @use "src/lib/components/button-group/elder-button-group/elder-button-group.component" as elder-button-group;
14
+ @use "src/lib/components/iframes/iframe-host/iframe-host.component" as iframe-host;
14
15
 
15
16
  /***************************************************************************
16
17
  * *
@@ -145,6 +146,10 @@ td.mat-footer-cell.elder-number-cell {
145
146
  Material Form Field
146
147
  *******************************/
147
148
 
149
+ .elder-form-field-gap {
150
+ width: 12px;
151
+ }
152
+
148
153
  // two fields plus 12px gap add up to elder-std-form-field width
149
154
  .elder-form-field-small {
150
155
  width: 84px;
@@ -160,6 +165,59 @@ Material Form Field
160
165
  overflow: hidden; // This allows flex items to shrink (min/max is not defaulting auto)
161
166
  }
162
167
 
168
+ .elder-form-field-large {
169
+ width: 244px;
170
+ overflow: hidden;
171
+ }
172
+
173
+ .elder-form-field-xl {
174
+ width: 276px;
175
+ overflow: hidden;
176
+ }
177
+
178
+ .elder-form-field-xxl {
179
+ width: 372px;
180
+ overflow: hidden;
181
+ }
182
+
183
+ /**
184
+ * mat-form-field style shorthands
185
+ */
186
+ mat-form-field {
187
+ // three fields plus 12px gap add up to elder-std-form-field width
188
+ .tiny {
189
+ width: 52px; // (180-(2*12)) / 3
190
+ }
191
+
192
+ // two fields plus 12px gap add up to elder-std-form-field width
193
+ .small {
194
+ width: 84px; // (180-(1*12)) / 2
195
+ }
196
+
197
+ .standard {
198
+ width: 180px;
199
+ overflow: hidden; // This allows flex items to shrink (min/max is not defaulting auto)
200
+ }
201
+
202
+ // one and a half plus 12px gap 180 + 52 + 12
203
+ .large {
204
+ width: 244px;
205
+ overflow: hidden;
206
+ }
207
+
208
+ // one and a half plus 12px gap 180 + 84 + 12
209
+ .xl {
210
+ width: 276px;
211
+ overflow: hidden;
212
+ }
213
+
214
+ // two standard fields plus 12px gap (180 + 180 + 12)
215
+ .xxl {
216
+ width: 372px;
217
+ overflow: hidden;
218
+ }
219
+ }
220
+
163
221
  /***************************************************************************
164
222
  * *
165
223
  * Style for hiding spinner on inputs *
@@ -378,6 +436,7 @@ $ebs-elder-gold: $elder-gold;
378
436
  @include elder-card.theme($theme);
379
437
  @include elder-grid.theme($theme);
380
438
  @include elder-button-group.theme($theme);
439
+ @include iframe-host.theme($theme);
381
440
  }
382
441
 
383
442
  /***************************************************************************