data-status-message 0.0.4 → 0.0.5

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.
Binary file
@@ -1,20 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, Component, ViewEncapsulation, ContentChild, Input, inject, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
2
+ import { TemplateRef, Input, ContentChild, ViewEncapsulation, Component, inject, NgModule } from '@angular/core';
3
+ import * as i6 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { BehaviorSubject, concat, of, timer, EMPTY, tap, delay, startWith } from 'rxjs';
6
- import * as i2$1 from '@angular/forms';
6
+ import * as i1$1 from '@angular/forms';
7
7
  import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import * as i3$1 from '@angular/material/button';
8
+ import * as i2$1 from '@angular/material/button';
9
9
  import { MatButtonModule } from '@angular/material/button';
10
- import * as i4 from '@angular/material/slide-toggle';
10
+ import * as i3 from '@angular/material/slide-toggle';
11
11
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
12
- import * as i5 from '@angular/material/divider';
12
+ import * as i4 from '@angular/material/divider';
13
13
  import { MatDividerModule } from '@angular/material/divider';
14
14
  import { switchMap, map } from 'rxjs/operators';
15
- import * as i2 from '@angular/material/icon';
15
+ import * as i1 from '@angular/material/icon';
16
16
  import { MatIconModule } from '@angular/material/icon';
17
- import * as i3 from '@angular/material/progress-spinner';
17
+ import * as i2 from '@angular/material/progress-spinner';
18
18
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
19
19
  import { MatCheckboxModule } from '@angular/material/checkbox';
20
20
 
@@ -103,12 +103,12 @@ class DisplayStatusMessageComponent {
103
103
  }
104
104
  ngOnInit() {
105
105
  }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DisplayStatusMessageComponent, selector: "app-display-status-message", inputs: { delayBy: "delayBy", overlay: "overlay", display: "display", labels: "labels", error: "error", loading: "loading", data: "data", validateWith: "validateWith" }, queries: [{ propertyName: "projectedContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n <div *ngIf=\"loading; else CHECK_DATA\" class=\"loading-state-container box\">\n <div id=\"border-spinner\" *ngIf=\"(loadingDisplay$ | async) === false; else labelSpinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n <ng-template #labelSpinner>\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n </ng-template>\n </div>\n\n <ng-template #CHECK_DATA>\n <div *ngIf=\"error; else HAS_ERROR\" class=\"error-state-container\">\n\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error?.message || labels.error }}\n </div>\n\n <ng-container *ngIf=\"!loading && error\">\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n </ng-container>\n </div>\n\n <ng-template #HAS_ERROR>\n\n <ng-container *ngIf=\"data\" class=\"vert-container\">\n\n <ng-container *ngIf=\"!isValid;\">\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n\n <div style=\"margin-top: 1rem;\" *ngIf=\"!isValid\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n </ng-container>\n\n </ng-container>\n\n </ng-template>\n\n </ng-template>\n</div>\n", styles: [".state-container{text-align:center;margin:0 auto;padding:.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;z-index:1;cursor:default}.state-container .state-text{margin-top:.5rem;font-weight:700;font-style:normal;font-size:1.125rem;text-align:center}.state-container .state-icon{height:1.875rem;width:1.875rem;font-size:1.875rem}.state-container .link{font-size:1rem!important;color:#286fad}.state-container .retry{font-size:1.25rem}.loading-state-container #border-spinner{border:.0625rem solid #a8a7a7;border-radius:50%;padding:.8rem;justify-content:center;align-items:center;display:flex;transition:all .3s ease-in}.loading-state-container #loading-text{display:flex;padding:.8125rem;font-size:1rem;color:#333}.loading-state-container .loading{margin-left:.625rem}.loading-state-container #loading-with-text{border:.0625rem solid #a8a7a7;border-radius:2rem;transition:all .3s ease-in}.spc-top{margin-top:1rem}.vert-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.box{height:50px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#fffc}.error-icon{color:#ccc}.warn-icon{color:red;opacity:.8}.mat-progress-spinner circle,.mat-spinner circle{stroke:#cb4814}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DisplayStatusMessageComponent, selector: "app-display-status-message", inputs: { delayBy: "delayBy", overlay: "overlay", display: "display", labels: "labels", error: "error", loading: "loading", data: "data", validateWith: "validateWith" }, queries: [{ propertyName: "projectedContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n @if (loading) {\n <div class=\"loading-state-container box\">\n @if ((loadingDisplay$ | async) === false) {\n <div id=\"border-spinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n } @else {\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n }\n </div>\n } @else {\n @if (error) {\n <div class=\"error-state-container\">\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error.message || labels.error }}\n </div>\n @if (!loading && error) {\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n }\n </div>\n } @else {\n @if (data) {\n <ng-container class=\"vert-container\">\n @if (!isValid;) {\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n @if (!isValid) {\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n }\n }\n </ng-container>\n }\n }\n }\n\n</div>\n", styles: [".state-container{text-align:center;margin:0 auto;padding:.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;z-index:1;cursor:default}.state-container .state-text{margin-top:.5rem;font-weight:700;font-style:normal;font-size:1.125rem;text-align:center}.state-container .state-icon{height:1.875rem;width:1.875rem;font-size:1.875rem}.state-container .link{font-size:1rem!important;color:#286fad}.state-container .retry{font-size:1.25rem}.loading-state-container #border-spinner{border:.0625rem solid #a8a7a7;border-radius:50%;padding:.8rem;justify-content:center;align-items:center;display:flex;transition:all .3s ease-in}.loading-state-container #loading-text{display:flex;padding:.8125rem;font-size:1rem;color:#333}.loading-state-container .loading{margin-left:.625rem}.loading-state-container #loading-with-text{border:.0625rem solid #a8a7a7;border-radius:2rem;transition:all .3s ease-in}.spc-top{margin-top:1rem}.vert-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.box{height:50px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#fffc}.error-icon{color:#ccc}.warn-icon{color:red;opacity:.8}.mat-progress-spinner circle,.mat-spinner circle{stroke:#cb4814}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
108
108
  }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageComponent, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageComponent, decorators: [{
110
110
  type: Component,
111
- args: [{ selector: 'app-display-status-message', encapsulation: ViewEncapsulation.None, template: "\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n <div *ngIf=\"loading; else CHECK_DATA\" class=\"loading-state-container box\">\n <div id=\"border-spinner\" *ngIf=\"(loadingDisplay$ | async) === false; else labelSpinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n <ng-template #labelSpinner>\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n </ng-template>\n </div>\n\n <ng-template #CHECK_DATA>\n <div *ngIf=\"error; else HAS_ERROR\" class=\"error-state-container\">\n\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error?.message || labels.error }}\n </div>\n\n <ng-container *ngIf=\"!loading && error\">\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n </ng-container>\n </div>\n\n <ng-template #HAS_ERROR>\n\n <ng-container *ngIf=\"data\" class=\"vert-container\">\n\n <ng-container *ngIf=\"!isValid;\">\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n\n <div style=\"margin-top: 1rem;\" *ngIf=\"!isValid\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n </ng-container>\n\n </ng-container>\n\n </ng-template>\n\n </ng-template>\n</div>\n", styles: [".state-container{text-align:center;margin:0 auto;padding:.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;z-index:1;cursor:default}.state-container .state-text{margin-top:.5rem;font-weight:700;font-style:normal;font-size:1.125rem;text-align:center}.state-container .state-icon{height:1.875rem;width:1.875rem;font-size:1.875rem}.state-container .link{font-size:1rem!important;color:#286fad}.state-container .retry{font-size:1.25rem}.loading-state-container #border-spinner{border:.0625rem solid #a8a7a7;border-radius:50%;padding:.8rem;justify-content:center;align-items:center;display:flex;transition:all .3s ease-in}.loading-state-container #loading-text{display:flex;padding:.8125rem;font-size:1rem;color:#333}.loading-state-container .loading{margin-left:.625rem}.loading-state-container #loading-with-text{border:.0625rem solid #a8a7a7;border-radius:2rem;transition:all .3s ease-in}.spc-top{margin-top:1rem}.vert-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.box{height:50px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#fffc}.error-icon{color:#ccc}.warn-icon{color:red;opacity:.8}.mat-progress-spinner circle,.mat-spinner circle{stroke:#cb4814}\n"] }]
111
+ args: [{ selector: 'app-display-status-message', encapsulation: ViewEncapsulation.None, standalone: false, template: "\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n @if (loading) {\n <div class=\"loading-state-container box\">\n @if ((loadingDisplay$ | async) === false) {\n <div id=\"border-spinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n } @else {\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n }\n </div>\n } @else {\n @if (error) {\n <div class=\"error-state-container\">\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error.message || labels.error }}\n </div>\n @if (!loading && error) {\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n }\n </div>\n } @else {\n @if (data) {\n <ng-container class=\"vert-container\">\n @if (!isValid;) {\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n @if (!isValid) {\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n }\n }\n </ng-container>\n }\n }\n }\n\n</div>\n", styles: [".state-container{text-align:center;margin:0 auto;padding:.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;z-index:1;cursor:default}.state-container .state-text{margin-top:.5rem;font-weight:700;font-style:normal;font-size:1.125rem;text-align:center}.state-container .state-icon{height:1.875rem;width:1.875rem;font-size:1.875rem}.state-container .link{font-size:1rem!important;color:#286fad}.state-container .retry{font-size:1.25rem}.loading-state-container #border-spinner{border:.0625rem solid #a8a7a7;border-radius:50%;padding:.8rem;justify-content:center;align-items:center;display:flex;transition:all .3s ease-in}.loading-state-container #loading-text{display:flex;padding:.8125rem;font-size:1rem;color:#333}.loading-state-container .loading{margin-left:.625rem}.loading-state-container #loading-with-text{border:.0625rem solid #a8a7a7;border-radius:2rem;transition:all .3s ease-in}.spc-top{margin-top:1rem}.vert-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.box{height:50px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#fffc}.error-icon{color:#ccc}.warn-icon{color:red;opacity:.8}.mat-progress-spinner circle,.mat-spinner circle{stroke:#cb4814}\n"] }]
112
112
  }], propDecorators: { projectedContent: [{
113
113
  type: ContentChild,
114
114
  args: [TemplateRef, { static: false }]
@@ -203,17 +203,17 @@ class DisplayStatusMessageDemoComponent {
203
203
  console.log('Action:', type);
204
204
  this.overlay = false;
205
205
  }
206
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
207
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DisplayStatusMessageDemoComponent, selector: "app-display-status-message-demo", ngImport: i0, template: "<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n <div *ngIf=\"useFunc.checked\" style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n <div *ngIf=\"!hasData((sampleData$ | async))\" style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DisplayStatusMessageComponent, selector: "app-display-status-message", inputs: ["delayBy", "overlay", "display", "labels", "error", "loading", "data", "validateWith"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
207
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DisplayStatusMessageDemoComponent, selector: "app-display-status-message-demo", ngImport: i0, template: "<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n @if (useFunc.checked) {\n <div style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n }\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n @if (!hasData((sampleData$ | async))) {\n <div style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n }\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DisplayStatusMessageComponent, selector: "app-display-status-message", inputs: ["delayBy", "overlay", "display", "labels", "error", "loading", "data", "validateWith"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.JsonPipe, name: "json" }] }); }
208
208
  }
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageDemoComponent, decorators: [{
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageDemoComponent, decorators: [{
210
210
  type: Component,
211
- args: [{ selector: 'app-display-status-message-demo', template: "<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n <div *ngIf=\"useFunc.checked\" style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n <div *ngIf=\"!hasData((sampleData$ | async))\" style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n" }]
211
+ args: [{ selector: 'app-display-status-message-demo', standalone: false, template: "<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n @if (useFunc.checked) {\n <div style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n }\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n @if (!hasData((sampleData$ | async))) {\n <div style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n }\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n" }]
212
212
  }] });
213
213
 
214
214
  class DisplayStatusMessageModule {
215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
216
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, declarations: [DisplayStatusMessageComponent,
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
216
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageModule, declarations: [DisplayStatusMessageComponent,
217
217
  DisplayStatusMessageDemoComponent], imports: [CommonModule,
218
218
  MatIconModule,
219
219
  MatProgressSpinnerModule,
@@ -225,7 +225,7 @@ class DisplayStatusMessageModule {
225
225
  MatDividerModule,
226
226
  MatCheckboxModule], exports: [DisplayStatusMessageComponent,
227
227
  DisplayStatusMessageDemoComponent] }); }
228
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, imports: [CommonModule,
228
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageModule, imports: [CommonModule,
229
229
  MatIconModule,
230
230
  MatProgressSpinnerModule,
231
231
  FormsModule,
@@ -236,7 +236,7 @@ class DisplayStatusMessageModule {
236
236
  MatDividerModule,
237
237
  MatCheckboxModule] }); }
238
238
  }
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, decorators: [{
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisplayStatusMessageModule, decorators: [{
240
240
  type: NgModule,
241
241
  args: [{
242
242
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"data-status-message.mjs","sources":["../../../projects/data-status-message/src/lib/models/display-status-message-labels.model.ts","../../../projects/data-status-message/src/lib/models/display-status-message.model.ts","../../../projects/data-status-message/src/lib/display-status-message.component.ts","../../../projects/data-status-message/src/lib/display-status-message.component.html","../../../projects/data-status-message/src/lib/display-status-message-demo/display-status-message-demo.component.ts","../../../projects/data-status-message/src/lib/display-status-message-demo/display-status-message-demo.component.html","../../../projects/data-status-message/src/lib/display-status-message.module.ts","../../../projects/data-status-message/src/lib/models/index.ts","../../../projects/data-status-message/src/public-api.ts","../../../projects/data-status-message/src/data-status-message.ts"],"sourcesContent":["export interface DisplayStatusMessageLabelsInterface {\n loading: string\n error: string\n noData: string\n}\n\nexport class DisplayStatusMessageLabels implements DisplayStatusMessageLabelsInterface {\n\n constructor(\n public loading = 'Loading...',\n public error = 'Error Message',\n public noData = 'No Data',\n ) {}\n\n static adapt(item?: any): DisplayStatusMessageLabels {\n\n return new DisplayStatusMessageLabels(\n item?.loading,\n item?.error,\n item?.noData,\n )\n\n }\n\n}\n","export interface DisplayStatusMessageInterface {\n message?: string\n}\n\nexport class DisplayStatusMessage implements DisplayStatusMessageInterface {\n\n constructor(\n public message?: string,\n ) {}\n\n static adapt(item?: any): DisplayStatusMessage {\n\n item = (typeof item === 'string') ? { message: item } : item\n\n return new DisplayStatusMessage(\n item?.message,\n )\n\n }\n\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BehaviorSubject, concat, of, timer } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\nimport { DisplayStatusMessageLabels } from './models/display-status-message-labels.model';\nimport { DisplayStatusMessage } from './models/display-status-message.model';\n\n@Component({\n selector: 'app-display-status-message',\n templateUrl: './display-status-message.component.html',\n styleUrls: ['./display-status-message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DisplayStatusMessageComponent implements OnInit {\n\n @ContentChild(TemplateRef, { static: false }) projectedContent?: TemplateRef<any>;\n\n @Input() delayBy = 3 //seconds\n\n private _overlay = false\n @Input() set overlay(value: boolean) {\n this._overlay = (value) ? value : false\n }\n\n get overlay() {\n return this._overlay\n }\n\n @Input() display = false\n\n disabled = false\n\n private loadingSubject$ = new BehaviorSubject<boolean>(false);\n\n loadingDisplay$ = this.loadingSubject$.pipe(\n switchMap(loading => {\n if (loading) {\n return concat(\n of(false),\n timer(1000 * this.delayBy).pipe(map(() => true))\n );\n }\n return of(false);\n })\n );\n\n _labels = DisplayStatusMessageLabels.adapt()\n @Input() set labels(value: any) {\n this._labels = (value) ? DisplayStatusMessageLabels.adapt(value) : DisplayStatusMessageLabels.adapt()\n }\n\n get labels() {\n return this._labels\n }\n\n private _error: DisplayStatusMessage|any\n @Input() set error(value: DisplayStatusMessage | null) {\n this._error = (value) ? DisplayStatusMessage.adapt(value) : null\n }\n\n get error() {\n return this._error;\n }\n\n get hasProjectedContent() {\n return this.projectedContent ? true : false\n }\n\n private _loading = false\n @Input() set loading(value: boolean|null) {\n value = (value) ? value : false\n this._loading = (value);\n this.loadingSubject$.next(value);\n }\n\n get loading() {\n return this._loading;\n }\n\n private _data: any;\n @Input() set data(value) {\n this._data = value;\n this.error = null\n }\n\n get data() {\n return this._data;\n }\n\n private _validateWith: Function|any\n @Input() set validateWith(validateWith: Function|null) {\n this._validateWith = (validateWith) ? validateWith : null\n }\n\n get validateWith() {\n return this._validateWith\n }\n\n get isValid() {\n const canValidate = (this.validateWith && this.data) ? true : false\n return (canValidate && this.validateWith) ? this.validateWith(this.data) : true\n }\n\n ngOnInit() {\n\n }\n\n}\n","\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n <div *ngIf=\"loading; else CHECK_DATA\" class=\"loading-state-container box\">\n <div id=\"border-spinner\" *ngIf=\"(loadingDisplay$ | async) === false; else labelSpinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n <ng-template #labelSpinner>\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n </ng-template>\n </div>\n\n <ng-template #CHECK_DATA>\n <div *ngIf=\"error; else HAS_ERROR\" class=\"error-state-container\">\n\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error?.message || labels.error }}\n </div>\n\n <ng-container *ngIf=\"!loading && error\">\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n </ng-container>\n </div>\n\n <ng-template #HAS_ERROR>\n\n <ng-container *ngIf=\"data\" class=\"vert-container\">\n\n <ng-container *ngIf=\"!isValid;\">\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n\n <div style=\"margin-top: 1rem;\" *ngIf=\"!isValid\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n </ng-container>\n\n </ng-container>\n\n </ng-template>\n\n </ng-template>\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { delay, EMPTY, Observable, of, startWith, switchMap, tap, throwError } from 'rxjs';\nimport { DisplayStatusMessageLabels } from '../models/display-status-message-labels.model';\nimport { FormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'app-display-status-message-demo',\n templateUrl: './display-status-message-demo.component.html',\n styleUrls: ['./display-status-message-demo.component.scss']\n})\nexport class DisplayStatusMessageDemoComponent implements OnInit {\n\n fb = inject(FormBuilder)\n\n options = this.fb.group({\n hasData: false,\n apiError: false,\n isValid: false,\n displayOverlay: false,\n })\n\n translations$: Observable<DisplayStatusMessageLabels> = of({\n loading: 'Loading...',\n error: 'This is an Error has Occurred',\n noData: 'No Data Available',\n })\n\n hint = 'This is a hint'\n overlay = false\n\n hasData: any = () => true\n\n simulatedData: any[] = []\n\n sampleData = [\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n ]\n\n errorRetrySample$: any = EMPTY\n\n sampleData$: any = EMPTY\n\n isPendingSample$ = of(false)\n\n ngOnInit() {\n\n }\n\n onSetData() {\n\n this.options.patchValue({\n apiError: false,\n })\n\n }\n\n onCallAPI() {\n\n this.isPendingSample$ = of(false)\n .pipe(\n tap(() => {\n this.sampleData$ = EMPTY\n this.overlay = (this.options.value.displayOverlay) ? true : false\n }),\n delay(1000 * 5),\n tap(() => {\n\n if (this.options.value.apiError) {\n this.errorRetrySample$ = of({ message: 'An Error has Occured' })\n this.sampleData$ = EMPTY\n } else {\n this.simulatedData = this.options.value.hasData ? this.sampleData : [];\n this.sampleData$ = of(this.simulatedData);\n if(this.simulatedData.length > 0) this.overlay = false\n }\n\n this.hasData = (this.options.value.isValid) ? (data: any[]) => data?.length > 0 : () => true\n\n }),\n startWith(true)\n );\n\n }\n\n onSetError() {\n\n this.options.patchValue({\n hasData: false,\n isValid: false,\n })\n\n }\n\n onSetValidate() {\n\n this.options.patchValue({\n apiError: false,\n })\n\n }\n\n onAction(type: string) {\n console.log('Action:', type)\n this.overlay = false\n }\n\n}\n","<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n <div *ngIf=\"useFunc.checked\" style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n <div *ngIf=\"!hasData((sampleData$ | async))\" style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DisplayStatusMessageDemoComponent } from './display-status-message-demo/display-status-message-demo.component';\nimport { DisplayStatusMessageComponent } from './display-status-message.component';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatProgressSpinnerModule,\n FormsModule,\n ReactiveFormsModule,\n MatProgressSpinnerModule,\n MatButtonModule,\n MatSlideToggleModule,\n MatDividerModule,\n MatCheckboxModule\n ],\n declarations: [\n DisplayStatusMessageComponent,\n DisplayStatusMessageDemoComponent,\n ],\n exports: [\n DisplayStatusMessageComponent,\n DisplayStatusMessageDemoComponent,\n ]\n\n})\nexport class DisplayStatusMessageModule { }\n","/*\n * Public API Surface of data-status-message\n */\n\nexport * from './display-status-message-labels.model';\nexport * from './display-status-message.model';\n","/*\n * Public API Surface of data-status-message\n */\n\nexport * from './lib/display-status-message.module';\n\nexport * from './lib/display-status-message.component';\nexport * from './lib/display-status-message-demo/display-status-message-demo.component';\nexport * from './lib/models/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i6.DisplayStatusMessageComponent"],"mappings":"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"}
1
+ {"version":3,"file":"data-status-message.mjs","sources":["../../../projects/data-status-message/src/lib/models/display-status-message-labels.model.ts","../../../projects/data-status-message/src/lib/models/display-status-message.model.ts","../../../projects/data-status-message/src/lib/display-status-message.component.ts","../../../projects/data-status-message/src/lib/display-status-message.component.html","../../../projects/data-status-message/src/lib/display-status-message-demo/display-status-message-demo.component.ts","../../../projects/data-status-message/src/lib/display-status-message-demo/display-status-message-demo.component.html","../../../projects/data-status-message/src/lib/display-status-message.module.ts","../../../projects/data-status-message/src/lib/models/index.ts","../../../projects/data-status-message/src/public-api.ts","../../../projects/data-status-message/src/data-status-message.ts"],"sourcesContent":["export interface DisplayStatusMessageLabelsInterface {\n loading: string\n error: string\n noData: string\n}\n\nexport class DisplayStatusMessageLabels implements DisplayStatusMessageLabelsInterface {\n\n constructor(\n public loading = 'Loading...',\n public error = 'Error Message',\n public noData = 'No Data',\n ) {}\n\n static adapt(item?: any): DisplayStatusMessageLabels {\n\n return new DisplayStatusMessageLabels(\n item?.loading,\n item?.error,\n item?.noData,\n )\n\n }\n\n}\n","export interface DisplayStatusMessageInterface {\n message?: string\n}\n\nexport class DisplayStatusMessage implements DisplayStatusMessageInterface {\n\n constructor(\n public message?: string,\n ) {}\n\n static adapt(item?: any): DisplayStatusMessage {\n\n item = (typeof item === 'string') ? { message: item } : item\n\n return new DisplayStatusMessage(\n item?.message,\n )\n\n }\n\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { BehaviorSubject, concat, of, timer } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\nimport { DisplayStatusMessageLabels } from './models/display-status-message-labels.model';\nimport { DisplayStatusMessage } from './models/display-status-message.model';\n\n@Component({\n selector: 'app-display-status-message',\n templateUrl: './display-status-message.component.html',\n styleUrls: ['./display-status-message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DisplayStatusMessageComponent implements OnInit {\n\n @ContentChild(TemplateRef, { static: false }) projectedContent?: TemplateRef<any>;\n\n @Input() delayBy = 3 //seconds\n\n private _overlay = false\n @Input() set overlay(value: boolean) {\n this._overlay = (value) ? value : false\n }\n\n get overlay() {\n return this._overlay\n }\n\n @Input() display = false\n\n disabled = false\n\n private loadingSubject$ = new BehaviorSubject<boolean>(false);\n\n loadingDisplay$ = this.loadingSubject$.pipe(\n switchMap(loading => {\n if (loading) {\n return concat(\n of(false),\n timer(1000 * this.delayBy).pipe(map(() => true))\n );\n }\n return of(false);\n })\n );\n\n _labels = DisplayStatusMessageLabels.adapt()\n @Input() set labels(value: any) {\n this._labels = (value) ? DisplayStatusMessageLabels.adapt(value) : DisplayStatusMessageLabels.adapt()\n }\n\n get labels() {\n return this._labels\n }\n\n private _error: DisplayStatusMessage|any\n @Input() set error(value: DisplayStatusMessage | null) {\n this._error = (value) ? DisplayStatusMessage.adapt(value) : null\n }\n\n get error() {\n return this._error;\n }\n\n get hasProjectedContent() {\n return this.projectedContent ? true : false\n }\n\n private _loading = false\n @Input() set loading(value: boolean|null) {\n value = (value) ? value : false\n this._loading = (value);\n this.loadingSubject$.next(value);\n }\n\n get loading() {\n return this._loading;\n }\n\n private _data: any;\n @Input() set data(value) {\n this._data = value;\n this.error = null\n }\n\n get data() {\n return this._data;\n }\n\n private _validateWith: Function|any\n @Input() set validateWith(validateWith: Function|null) {\n this._validateWith = (validateWith) ? validateWith : null\n }\n\n get validateWith() {\n return this._validateWith\n }\n\n get isValid() {\n const canValidate = (this.validateWith && this.data) ? true : false\n return (canValidate && this.validateWith) ? this.validateWith(this.data) : true\n }\n\n ngOnInit() {\n\n }\n\n}\n","\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n @if (loading) {\n <div class=\"loading-state-container box\">\n @if ((loadingDisplay$ | async) === false) {\n <div id=\"border-spinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n } @else {\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n }\n </div>\n } @else {\n @if (error) {\n <div class=\"error-state-container\">\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error.message || labels.error }}\n </div>\n @if (!loading && error) {\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n }\n </div>\n } @else {\n @if (data) {\n <ng-container class=\"vert-container\">\n @if (!isValid;) {\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n @if (!isValid) {\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n }\n }\n </ng-container>\n }\n }\n }\n\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { delay, EMPTY, Observable, of, startWith, switchMap, tap, throwError } from 'rxjs';\nimport { DisplayStatusMessageLabels } from '../models/display-status-message-labels.model';\nimport { FormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'app-display-status-message-demo',\n templateUrl: './display-status-message-demo.component.html',\n styleUrls: ['./display-status-message-demo.component.scss'],\n standalone: false\n})\nexport class DisplayStatusMessageDemoComponent implements OnInit {\n\n fb = inject(FormBuilder)\n\n options = this.fb.group({\n hasData: false,\n apiError: false,\n isValid: false,\n displayOverlay: false,\n })\n\n translations$: Observable<DisplayStatusMessageLabels> = of({\n loading: 'Loading...',\n error: 'This is an Error has Occurred',\n noData: 'No Data Available',\n })\n\n hint = 'This is a hint'\n overlay = false\n\n hasData: any = () => true\n\n simulatedData: any[] = []\n\n sampleData = [\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n { id: 1, name: 'John Doe' },\n { id: 2, name: 'Jane Doe' },\n ]\n\n errorRetrySample$: any = EMPTY\n\n sampleData$: any = EMPTY\n\n isPendingSample$ = of(false)\n\n ngOnInit() {\n\n }\n\n onSetData() {\n\n this.options.patchValue({\n apiError: false,\n })\n\n }\n\n onCallAPI() {\n\n this.isPendingSample$ = of(false)\n .pipe(\n tap(() => {\n this.sampleData$ = EMPTY\n this.overlay = (this.options.value.displayOverlay) ? true : false\n }),\n delay(1000 * 5),\n tap(() => {\n\n if (this.options.value.apiError) {\n this.errorRetrySample$ = of({ message: 'An Error has Occured' })\n this.sampleData$ = EMPTY\n } else {\n this.simulatedData = this.options.value.hasData ? this.sampleData : [];\n this.sampleData$ = of(this.simulatedData);\n if(this.simulatedData.length > 0) this.overlay = false\n }\n\n this.hasData = (this.options.value.isValid) ? (data: any[]) => data?.length > 0 : () => true\n\n }),\n startWith(true)\n );\n\n }\n\n onSetError() {\n\n this.options.patchValue({\n hasData: false,\n isValid: false,\n })\n\n }\n\n onSetValidate() {\n\n this.options.patchValue({\n apiError: false,\n })\n\n }\n\n onAction(type: string) {\n console.log('Action:', type)\n this.overlay = false\n }\n\n}\n","<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n @if (useFunc.checked) {\n <div style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n }\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n @if (!hasData((sampleData$ | async))) {\n <div style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n }\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DisplayStatusMessageDemoComponent } from './display-status-message-demo/display-status-message-demo.component';\nimport { DisplayStatusMessageComponent } from './display-status-message.component';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatProgressSpinnerModule,\n FormsModule,\n ReactiveFormsModule,\n MatProgressSpinnerModule,\n MatButtonModule,\n MatSlideToggleModule,\n MatDividerModule,\n MatCheckboxModule\n ],\n declarations: [\n DisplayStatusMessageComponent,\n DisplayStatusMessageDemoComponent,\n ],\n exports: [\n DisplayStatusMessageComponent,\n DisplayStatusMessageDemoComponent,\n ]\n\n})\nexport class DisplayStatusMessageModule { }\n","/*\n * Public API Surface of data-status-message\n */\n\nexport * from './display-status-message-labels.model';\nexport * from './display-status-message.model';\n","/*\n * Public API Surface of data-status-message\n */\n\nexport * from './lib/display-status-message.module';\n\nexport * from './lib/display-status-message.component';\nexport * from './lib/display-status-message-demo/display-status-message-demo.component';\nexport * from './lib/models/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","i2","i5.DisplayStatusMessageComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-status-message",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "homepage": "https://wavecoders.ca",
5
5
  "author": "Mike Bonifacio <wavecoders@gmail.com> (http://wavecoders@gmail.com/)",
6
6
  "description": "This is an Angular Module containing Components/Services using Material",
@@ -19,15 +19,13 @@
19
19
  },
20
20
  "sideEffects": false,
21
21
  "module": "fesm2022/data-status-message.mjs",
22
- "typings": "index.d.ts",
22
+ "typings": "types/data-status-message.d.ts",
23
23
  "exports": {
24
24
  "./package.json": {
25
25
  "default": "./package.json"
26
26
  },
27
27
  ".": {
28
- "types": "./index.d.ts",
29
- "esm2022": "./esm2022/data-status-message.mjs",
30
- "esm": "./esm2022/data-status-message.mjs",
28
+ "types": "./types/data-status-message.d.ts",
31
29
  "default": "./fesm2022/data-status-message.mjs"
32
30
  }
33
31
  }
@@ -0,0 +1,106 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, TemplateRef } from '@angular/core';
3
+ import * as rxjs from 'rxjs';
4
+ import { Observable } from 'rxjs';
5
+ import * as _angular_forms from '@angular/forms';
6
+ import { FormBuilder } from '@angular/forms';
7
+ import * as i3 from '@angular/common';
8
+ import * as i4 from '@angular/material/icon';
9
+ import * as i5 from '@angular/material/progress-spinner';
10
+ import * as i7 from '@angular/material/button';
11
+ import * as i8 from '@angular/material/slide-toggle';
12
+ import * as i9 from '@angular/material/divider';
13
+ import * as i10 from '@angular/material/checkbox';
14
+
15
+ interface DisplayStatusMessageLabelsInterface {
16
+ loading: string;
17
+ error: string;
18
+ noData: string;
19
+ }
20
+ declare class DisplayStatusMessageLabels implements DisplayStatusMessageLabelsInterface {
21
+ loading: string;
22
+ error: string;
23
+ noData: string;
24
+ constructor(loading?: string, error?: string, noData?: string);
25
+ static adapt(item?: any): DisplayStatusMessageLabels;
26
+ }
27
+
28
+ interface DisplayStatusMessageInterface {
29
+ message?: string;
30
+ }
31
+ declare class DisplayStatusMessage implements DisplayStatusMessageInterface {
32
+ message?: string | undefined;
33
+ constructor(message?: string | undefined);
34
+ static adapt(item?: any): DisplayStatusMessage;
35
+ }
36
+
37
+ declare class DisplayStatusMessageComponent implements OnInit {
38
+ projectedContent?: TemplateRef<any>;
39
+ delayBy: number;
40
+ private _overlay;
41
+ set overlay(value: boolean);
42
+ get overlay(): boolean;
43
+ display: boolean;
44
+ disabled: boolean;
45
+ private loadingSubject$;
46
+ loadingDisplay$: rxjs.Observable<boolean>;
47
+ _labels: DisplayStatusMessageLabels;
48
+ set labels(value: any);
49
+ get labels(): any;
50
+ private _error;
51
+ set error(value: DisplayStatusMessage | null);
52
+ get error(): DisplayStatusMessage | null;
53
+ get hasProjectedContent(): boolean;
54
+ private _loading;
55
+ set loading(value: boolean | null);
56
+ get loading(): boolean | null;
57
+ private _data;
58
+ set data(value: any);
59
+ get data(): any;
60
+ private _validateWith;
61
+ set validateWith(validateWith: Function | null);
62
+ get validateWith(): Function | null;
63
+ get isValid(): any;
64
+ ngOnInit(): void;
65
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisplayStatusMessageComponent, never>;
66
+ static ɵcmp: i0.ɵɵComponentDeclaration<DisplayStatusMessageComponent, "app-display-status-message", never, { "delayBy": { "alias": "delayBy"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "display": { "alias": "display"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "error": { "alias": "error"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "data": { "alias": "data"; "required": false; }; "validateWith": { "alias": "validateWith"; "required": false; }; }, {}, ["projectedContent"], ["[ERROR]", "[NO_DATA]"], false, never>;
67
+ }
68
+
69
+ declare class DisplayStatusMessageDemoComponent implements OnInit {
70
+ fb: FormBuilder;
71
+ options: _angular_forms.FormGroup<{
72
+ hasData: _angular_forms.FormControl<boolean | null>;
73
+ apiError: _angular_forms.FormControl<boolean | null>;
74
+ isValid: _angular_forms.FormControl<boolean | null>;
75
+ displayOverlay: _angular_forms.FormControl<boolean | null>;
76
+ }>;
77
+ translations$: Observable<DisplayStatusMessageLabels>;
78
+ hint: string;
79
+ overlay: boolean;
80
+ hasData: any;
81
+ simulatedData: any[];
82
+ sampleData: {
83
+ id: number;
84
+ name: string;
85
+ }[];
86
+ errorRetrySample$: any;
87
+ sampleData$: any;
88
+ isPendingSample$: Observable<boolean>;
89
+ ngOnInit(): void;
90
+ onSetData(): void;
91
+ onCallAPI(): void;
92
+ onSetError(): void;
93
+ onSetValidate(): void;
94
+ onAction(type: string): void;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisplayStatusMessageDemoComponent, never>;
96
+ static ɵcmp: i0.ɵɵComponentDeclaration<DisplayStatusMessageDemoComponent, "app-display-status-message-demo", never, {}, {}, never, never, false, never>;
97
+ }
98
+
99
+ declare class DisplayStatusMessageModule {
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisplayStatusMessageModule, never>;
101
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DisplayStatusMessageModule, [typeof DisplayStatusMessageComponent, typeof DisplayStatusMessageDemoComponent], [typeof i3.CommonModule, typeof i4.MatIconModule, typeof i5.MatProgressSpinnerModule, typeof _angular_forms.FormsModule, typeof _angular_forms.ReactiveFormsModule, typeof i5.MatProgressSpinnerModule, typeof i7.MatButtonModule, typeof i8.MatSlideToggleModule, typeof i9.MatDividerModule, typeof i10.MatCheckboxModule], [typeof DisplayStatusMessageComponent, typeof DisplayStatusMessageDemoComponent]>;
102
+ static ɵinj: i0.ɵɵInjectorDeclaration<DisplayStatusMessageModule>;
103
+ }
104
+
105
+ export { DisplayStatusMessage, DisplayStatusMessageComponent, DisplayStatusMessageDemoComponent, DisplayStatusMessageLabels, DisplayStatusMessageModule };
106
+ export type { DisplayStatusMessageInterface, DisplayStatusMessageLabelsInterface };
Binary file
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdGF0dXMtbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL2RhdGEtc3RhdHVzLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,91 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { delay, EMPTY, of, startWith, tap } from 'rxjs';
3
- import { FormBuilder } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "@angular/material/button";
8
- import * as i4 from "@angular/material/slide-toggle";
9
- import * as i5 from "@angular/material/divider";
10
- import * as i6 from "../display-status-message.component";
11
- export class DisplayStatusMessageDemoComponent {
12
- constructor() {
13
- this.fb = inject(FormBuilder);
14
- this.options = this.fb.group({
15
- hasData: false,
16
- apiError: false,
17
- isValid: false,
18
- displayOverlay: false,
19
- });
20
- this.translations$ = of({
21
- loading: 'Loading...',
22
- error: 'This is an Error has Occurred',
23
- noData: 'No Data Available',
24
- });
25
- this.hint = 'This is a hint';
26
- this.overlay = false;
27
- this.hasData = () => true;
28
- this.simulatedData = [];
29
- this.sampleData = [
30
- { id: 1, name: 'John Doe' },
31
- { id: 2, name: 'Jane Doe' },
32
- { id: 1, name: 'John Doe' },
33
- { id: 2, name: 'Jane Doe' },
34
- { id: 1, name: 'John Doe' },
35
- { id: 2, name: 'Jane Doe' },
36
- { id: 1, name: 'John Doe' },
37
- { id: 2, name: 'Jane Doe' },
38
- ];
39
- this.errorRetrySample$ = EMPTY;
40
- this.sampleData$ = EMPTY;
41
- this.isPendingSample$ = of(false);
42
- }
43
- ngOnInit() {
44
- }
45
- onSetData() {
46
- this.options.patchValue({
47
- apiError: false,
48
- });
49
- }
50
- onCallAPI() {
51
- this.isPendingSample$ = of(false)
52
- .pipe(tap(() => {
53
- this.sampleData$ = EMPTY;
54
- this.overlay = (this.options.value.displayOverlay) ? true : false;
55
- }), delay(1000 * 5), tap(() => {
56
- if (this.options.value.apiError) {
57
- this.errorRetrySample$ = of({ message: 'An Error has Occured' });
58
- this.sampleData$ = EMPTY;
59
- }
60
- else {
61
- this.simulatedData = this.options.value.hasData ? this.sampleData : [];
62
- this.sampleData$ = of(this.simulatedData);
63
- if (this.simulatedData.length > 0)
64
- this.overlay = false;
65
- }
66
- this.hasData = (this.options.value.isValid) ? (data) => data?.length > 0 : () => true;
67
- }), startWith(true));
68
- }
69
- onSetError() {
70
- this.options.patchValue({
71
- hasData: false,
72
- isValid: false,
73
- });
74
- }
75
- onSetValidate() {
76
- this.options.patchValue({
77
- apiError: false,
78
- });
79
- }
80
- onAction(type) {
81
- console.log('Action:', type);
82
- this.overlay = false;
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DisplayStatusMessageDemoComponent, selector: "app-display-status-message-demo", ngImport: i0, template: "<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n <div *ngIf=\"useFunc.checked\" style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n <div *ngIf=\"!hasData((sampleData$ | async))\" style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.DisplayStatusMessageComponent, selector: "app-display-status-message", inputs: ["delayBy", "overlay", "display", "labels", "error", "loading", "data", "validateWith"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageDemoComponent, decorators: [{
88
- type: Component,
89
- args: [{ selector: 'app-display-status-message-demo', template: "<h1>Display Status Message Demo</h1>\n\n<div style=\"margin: 2rem;\">\n\n <h3>Labels</h3>\n {{ (translations$ | async) | json }}\n\n <h3>Has Data</h3>\n\n <div style=\"display: flex; gap: 2rem;\" [formGroup]=\"options\">\n <mat-slide-toggle formControlName=\"hasData\" (click)=\"onSetData()\">Has Data</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"apiError\" (click)=\"onSetError()\">Throw api Error</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"isValid\" #useFunc (click)=\"onSetValidate()\">Validate Data Set</mat-slide-toggle>\n <span style=\"flex: 1\"></span>\n <mat-slide-toggle formControlName=\"displayOverlay\">Overlay</mat-slide-toggle>\n </div>\n\n <div *ngIf=\"useFunc.checked\" style=\"margin-top: 1rem;\">\n Use function to determine if data is an array > 0 records\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <div style=\"margin-top: 1rem; display: flex; gap: 1rem\">\n <!-- <button mat-stroked-button (click)=\"onReset()\">Reset</button> -->\n <span style=\"flex:1\"></span>\n <button mat-stroked-button (click)=\"onCallAPI()\">Call API</button>\n </div>\n\n</div>\n\n<div style=\"height: 50%;\">\n <app-display-status-message\n style=\"display: grid; height: 100%;\"\n [loading]=\"(isPendingSample$ | async)\"\n [validateWith]=\"hasData\"\n [overlay]=\"overlay\"\n [labels]=\"(translations$ | async)\"\n [error]=\"(errorRetrySample$ | async)\"\n [data]=\"(sampleData$ | async)\"\n >\n <ng-container NO_DATA>\n <div *ngIf=\"!hasData((sampleData$ | async))\" style=\"margin-bottom: 1rem;\">{{ hint }}</div>\n <div style=\"display: flex; gap: 8\">\n <button mat-stroked-button (click)=\"onAction('retry')\">Retry</button>\n </div>\n </ng-container>\n\n <ng-container ERROR>\n <button mat-stroked-button (click)=\"onAction('reset-filters')\">\n Try Again\n </button>\n </ng-container>\n </app-display-status-message>\n</div>\n" }]
90
- }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL2xpYi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL2xpYi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQWEsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGlDQUFpQztJQUw5QztRQU9FLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFeEIsWUFBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUUsS0FBSztZQUNkLGNBQWMsRUFBRSxLQUFLO1NBQ3RCLENBQUMsQ0FBQTtRQUVGLGtCQUFhLEdBQTJDLEVBQUUsQ0FBQztZQUN6RCxPQUFPLEVBQUUsWUFBWTtZQUNyQixLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLE1BQU0sRUFBRSxtQkFBbUI7U0FDNUIsQ0FBQyxDQUFBO1FBRUYsU0FBSSxHQUFHLGdCQUFnQixDQUFBO1FBQ3ZCLFlB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O1lBQ2QsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsYUFBYTtRQUVYLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtJQUN0QixDQUFDOytHQXJHVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyx1RUNWOUMsbWhFQXlEQTs7NEZEL0NhLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWxheSwgRU1QVFksIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXNwbGF5U3RhdHVzTWVzc2FnZUxhYmVscyB9IGZyb20gJy4uL21vZGVscy9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRpc3BsYXktc3RhdHVzLW1lc3NhZ2UtZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5U3RhdHVzTWVzc2FnZURlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuXG4gIG9wdGlvbnMgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBoYXNEYXRhOiBmYWxzZSxcbiAgICBhcGlFcnJvcjogZmFsc2UsXG4gICAgaXNWYWxpZDogZmFsc2UsXG4gICAgZGlzcGxheU92ZXJsYXk6IGZhbHNlLFxuICB9KVxuXG4gIHRyYW5zbGF0aW9ucyQ6IE9ic2VydmFibGU8RGlzcGxheVN0YXR1c01lc3NhZ2VMYWJlbHM+ID0gb2Yoe1xuICAgIGxvYWRpbmc6ICdMb2FkaW5nLi4uJyxcbiAgICBlcnJvcjogJ1RoaXMgaXMgYW4gRXJyb3IgaGFzIE9jY3VycmVkJyxcbiAgICBub0RhdGE6ICdObyBEYXRhIEF2YWlsYWJsZScsXG4gIH0pXG5cbiAgaGludCA9ICdUaGlzIGlzIGEgaGludCdcbiAgb3ZlcmxheSA9IGZhbHNlXG5cbiAgaGFzRGF0YTogYW55ID0gKCkgPT4gdHJ1ZVxuXG4gIHNpbXVsYXRlZERhdGE6IGFueVtdID0gW11cblxuICBzYW1wbGVEYXRhID0gW1xuICAgIHsgaWQ6IDEsIG5hbWU6ICdKb2huIERvZScgfSxcbiAgICB7IGlkOiAyLCBuYW1lOiAnSmFuZSBEb2UnIH0sXG4gICAgeyBpZDogMSwgbmFtZTogJ0pvaG4gRG9lJyB9LFxuICAgIHsgaWQ6IDIsIG5hbWU6ICdKYW5lIERvZScgfSxcbiAgICB7IGlkOiAxLCBuYW1lOiAnSm9obiBEb2UnIH0sXG4gICAgeyBpZDogMiwgbmFtZTogJ0phbmUgRG9lJyB9LFxuICAgIHsgaWQ6IDEsIG5hbWU6ICdKb2huIERvZScgfSxcbiAgICB7IGlkOiAyLCBuYW1lOiAnSmFuZSBEb2UnIH0sXG4gIF1cblxuICBlcnJvclJldHJ5U2FtcGxlJDogYW55ID0gRU1QVFlcblxuICBzYW1wbGVEYXRhJDogYW55ID0gRU1QVFlcblxuICBpc1BlbmRpbmdTYW1wbGUkID0gb2YoZmFsc2UpXG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG4gIG9uU2V0RGF0YSgpIHtcblxuICAgIHRoaXMub3B0aW9ucy5wYXRjaFZhbHVlKHtcbiAgICAgIGFwaUVycm9yOiBmYWxzZSxcbiAgICB9KVxuXG4gIH1cblxuICBvbkNhbGxBUEkoKSB7XG5cbiAgICB0aGlzLmlzUGVuZGluZ1NhbXBsZSQgPSBvZihmYWxzZSlcbiAgICAucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2FtcGxlRGF0YSQgPSBFTVBUWVxuICAgICAgICB0aGlzLm92ZXJsYXkgPSAodGhpcy5vcHRpb25zLnZhbHVlLmRpc3BsYXlPdmVybGF5KSA/IHRydWUgOiBmYWxzZVxuICAgICAgfSksXG4gICAgICBkZWxheSgxMDAwICogNSksXG4gICAgICB0YXAoKCkgPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmFsdWUuYXBpRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLmVycm9yUmV0cnlTYW1wbGUkID0gb2YoeyBtZXNzYWdlOiAnQW4gRXJyb3IgaGFzIE9jY3VyZWQnIH0pXG4gICAgICAgICAgdGhpcy5zYW1wbGVEYXRhJCA9IEVNUFRZXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaW11bGF0ZWREYXRhID0gdGhpcy5vcHRpb25zLnZhbHVlLmhhc0RhdGEgPyB0aGlzLnNhbXBsZURhdGEgOiBbXTtcbiAgICAgICAgICB0aGlzLnNhbXBsZURhdGEkID0gb2YodGhpcy5zaW11bGF0ZWREYXRhKTtcbiAgICAgICAgICBpZih0aGlzLnNpbXVsYXRlZERhdGEubGVuZ3RoID4gMCkgdGhpcy5vdmVybGF5ID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFzRGF0YSA9ICh0aGlzLm9wdGlvbnMudmFsdWUuaXNWYWxpZCkgPyAoZGF0YTogYW55W10pID0+IGRhdGE/Lmxlbmd0aCA+IDAgOiAoKSA9PiB0cnVlXG5cbiAgICAgIH0pLFxuICAgICAgc3RhcnRXaXRoKHRydWUpXG4gICAgKTtcblxuICB9XG5cbiAgb25TZXRFcnJvcigpIHtcblxuICAgIHRoaXMub3B0aW9ucy5wYXRjaFZhbHVlKHtcbiAgICAgIGhhc0RhdGE6IGZhbHNlLFxuICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgfSlcblxuICB9XG5cbiAgb25TZXRWYWxpZGF0ZSgpIHtcblxuICAgIHRoaXMub3B0aW9ucy5wYXRjaFZhbHVlKHtcbiAgICAgIGFwaUVycm9yOiBmYWxzZSxcbiAgICB9KVxuXG4gIH1cblxuICBvbkFjdGlvbih0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZygnQWN0aW9uOicsIHR5cGUpXG4gICAgdGhpcy5vdmVybGF5ID0gZmFsc2VcbiAgfVxuXG59XG4iLCI8aDE+RGlzcGxheSBTdGF0dXMgTWVzc2FnZSBEZW1vPC9oMT5cblxuPGRpdiBzdHlsZT1cIm1hcmdpbjogMnJlbTtcIj5cblxuICA8aDM+TGFiZWxzPC9oMz5cbiAge3sgKHRyYW5zbGF0aW9ucyQgfCBhc3luYykgfCBqc29uIH19XG5cbiAgPGgzPkhhcyBEYXRhPC9oMz5cblxuICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAycmVtO1wiIFtmb3JtR3JvdXBdPVwib3B0aW9uc1wiPlxuICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImhhc0RhdGFcIiAoY2xpY2spPVwib25TZXREYXRhKClcIj5IYXMgRGF0YTwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhcGlFcnJvclwiIChjbGljayk9XCJvblNldEVycm9yKClcIj5UaHJvdyBhcGkgRXJyb3I8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiaXNWYWxpZFwiICN1c2VGdW5jIChjbGljayk9XCJvblNldFZhbGlkYXRlKClcIj5WYWxpZGF0ZSBEYXRhIFNldDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8c3BhbiBzdHlsZT1cImZsZXg6IDFcIj48L3NwYW4+XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU92ZXJsYXlcIj5PdmVybGF5PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwidXNlRnVuYy5jaGVja2VkXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiPlxuICAgIFVzZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgZGF0YSBpcyBhbiBhcnJheSA+IDAgcmVjb3Jkc1xuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTtcIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07IGRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbVwiPlxuICAgIDwhLS0gPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uUmVzZXQoKVwiPlJlc2V0PC9idXR0b24+IC0tPlxuICAgIDxzcGFuIHN0eWxlPVwiZmxleDoxXCI+PC9zcGFuPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJvbkNhbGxBUEkoKVwiPkNhbGwgQVBJPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBzdHlsZT1cImhlaWdodDogNTAlO1wiPlxuICA8YXBwLWRpc3BsYXktc3RhdHVzLW1lc3NhZ2VcbiAgICBzdHlsZT1cImRpc3BsYXk6IGdyaWQ7IGhlaWdodDogMTAwJTtcIlxuICAgIFtsb2FkaW5nXT1cIihpc1BlbmRpbmdTYW1wbGUkIHwgYXN5bmMpXCJcbiAgICBbdmFsaWRhdGVXaXRoXT1cImhhc0RhdGFcIlxuICAgIFtvdmVybGF5XT1cIm92ZXJsYXlcIlxuICAgIFtsYWJlbHNdPVwiKHRyYW5zbGF0aW9ucyQgfCBhc3luYylcIlxuICAgIFtlcnJvcl09XCIoZXJyb3JSZXRyeVNhbXBsZSQgfCBhc3luYylcIlxuICAgIFtkYXRhXT1cIihzYW1wbGVEYXRhJCB8IGFzeW5jKVwiXG4gID5cbiAgICAgIDxuZy1jb250YWluZXIgTk9fREFUQT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFoYXNEYXRhKChzYW1wbGVEYXRhJCB8IGFzeW5jKSlcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDFyZW07XCI+e3sgaGludCB9fTwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiA4XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uQWN0aW9uKCdyZXRyeScpXCI+UmV0cnk8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBFUlJPUj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uQWN0aW9uKCdyZXNldC1maWx0ZXJzJylcIj5cbiAgICAgICAgICBUcnkgQWdhaW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9hcHAtZGlzcGxheS1zdGF0dXMtbWVzc2FnZT5cbjwvZGl2PlxuIl19
@@ -1,100 +0,0 @@
1
- import { Component, ContentChild, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
2
- import { BehaviorSubject, concat, of, timer } from 'rxjs';
3
- import { map, switchMap } from 'rxjs/operators';
4
- import { DisplayStatusMessageLabels } from './models/display-status-message-labels.model';
5
- import { DisplayStatusMessage } from './models/display-status-message.model';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/material/icon";
9
- import * as i3 from "@angular/material/progress-spinner";
10
- export class DisplayStatusMessageComponent {
11
- constructor() {
12
- this.delayBy = 3; //seconds
13
- this._overlay = false;
14
- this.display = false;
15
- this.disabled = false;
16
- this.loadingSubject$ = new BehaviorSubject(false);
17
- this.loadingDisplay$ = this.loadingSubject$.pipe(switchMap(loading => {
18
- if (loading) {
19
- return concat(of(false), timer(1000 * this.delayBy).pipe(map(() => true)));
20
- }
21
- return of(false);
22
- }));
23
- this._labels = DisplayStatusMessageLabels.adapt();
24
- this._loading = false;
25
- }
26
- set overlay(value) {
27
- this._overlay = (value) ? value : false;
28
- }
29
- get overlay() {
30
- return this._overlay;
31
- }
32
- set labels(value) {
33
- this._labels = (value) ? DisplayStatusMessageLabels.adapt(value) : DisplayStatusMessageLabels.adapt();
34
- }
35
- get labels() {
36
- return this._labels;
37
- }
38
- set error(value) {
39
- this._error = (value) ? DisplayStatusMessage.adapt(value) : null;
40
- }
41
- get error() {
42
- return this._error;
43
- }
44
- get hasProjectedContent() {
45
- return this.projectedContent ? true : false;
46
- }
47
- set loading(value) {
48
- value = (value) ? value : false;
49
- this._loading = (value);
50
- this.loadingSubject$.next(value);
51
- }
52
- get loading() {
53
- return this._loading;
54
- }
55
- set data(value) {
56
- this._data = value;
57
- this.error = null;
58
- }
59
- get data() {
60
- return this._data;
61
- }
62
- set validateWith(validateWith) {
63
- this._validateWith = (validateWith) ? validateWith : null;
64
- }
65
- get validateWith() {
66
- return this._validateWith;
67
- }
68
- get isValid() {
69
- const canValidate = (this.validateWith && this.data) ? true : false;
70
- return (canValidate && this.validateWith) ? this.validateWith(this.data) : true;
71
- }
72
- ngOnInit() {
73
- }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DisplayStatusMessageComponent, selector: "app-display-status-message", inputs: { delayBy: "delayBy", overlay: "overlay", display: "display", labels: "labels", error: "error", loading: "loading", data: "data", validateWith: "validateWith" }, queries: [{ propertyName: "projectedContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n <div *ngIf=\"loading; else CHECK_DATA\" class=\"loading-state-container box\">\n <div id=\"border-spinner\" *ngIf=\"(loadingDisplay$ | async) === false; else labelSpinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n <ng-template #labelSpinner>\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n </ng-template>\n </div>\n\n <ng-template #CHECK_DATA>\n <div *ngIf=\"error; else HAS_ERROR\" class=\"error-state-container\">\n\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error?.message || labels.error }}\n </div>\n\n <ng-container *ngIf=\"!loading && error\">\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n </ng-container>\n </div>\n\n <ng-template #HAS_ERROR>\n\n <ng-container *ngIf=\"data\" class=\"vert-container\">\n\n <ng-container *ngIf=\"!isValid;\">\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n\n <div style=\"margin-top: 1rem;\" *ngIf=\"!isValid\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n </ng-container>\n\n </ng-container>\n\n </ng-template>\n\n </ng-template>\n</div>\n", styles: [".state-container{text-align:center;margin:0 auto;padding:.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;z-index:1;cursor:default}.state-container .state-text{margin-top:.5rem;font-weight:700;font-style:normal;font-size:1.125rem;text-align:center}.state-container .state-icon{height:1.875rem;width:1.875rem;font-size:1.875rem}.state-container .link{font-size:1rem!important;color:#286fad}.state-container .retry{font-size:1.25rem}.loading-state-container #border-spinner{border:.0625rem solid #a8a7a7;border-radius:50%;padding:.8rem;justify-content:center;align-items:center;display:flex;transition:all .3s ease-in}.loading-state-container #loading-text{display:flex;padding:.8125rem;font-size:1rem;color:#333}.loading-state-container .loading{margin-left:.625rem}.loading-state-container #loading-with-text{border:.0625rem solid #a8a7a7;border-radius:2rem;transition:all .3s ease-in}.spc-top{margin-top:1rem}.vert-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.box{height:50px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#fffc}.error-icon{color:#ccc}.warn-icon{color:red;opacity:.8}.mat-progress-spinner circle,.mat-spinner circle{stroke:#cb4814}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageComponent, decorators: [{
78
- type: Component,
79
- args: [{ selector: 'app-display-status-message', encapsulation: ViewEncapsulation.None, template: "\n<div class=\"state-container\" id=\"overlay\" [class.overlay]=\"overlay\">\n <div *ngIf=\"loading; else CHECK_DATA\" class=\"loading-state-container box\">\n <div id=\"border-spinner\" *ngIf=\"(loadingDisplay$ | async) === false; else labelSpinner\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n </div>\n <ng-template #labelSpinner>\n <div id=\"loading-with-text\">\n <div id=\"loading-text\">\n <mat-spinner [diameter]=\"22\"></mat-spinner>\n <span class=\"loading\">{{ labels.loading }}</span>\n </div>\n </div>\n </ng-template>\n </div>\n\n <ng-template #CHECK_DATA>\n <div *ngIf=\"error; else HAS_ERROR\" class=\"error-state-container\">\n\n <div>\n <mat-icon class=\"state-icon warn-icon\">error</mat-icon>\n </div>\n <div class=\"state-text\">\n {{ error?.message || labels.error }}\n </div>\n\n <ng-container *ngIf=\"!loading && error\">\n <div style=\"margin-top: 1rem;\">\n <ng-content select=\"[ERROR]\"></ng-content>\n </div>\n </ng-container>\n </div>\n\n <ng-template #HAS_ERROR>\n\n <ng-container *ngIf=\"data\" class=\"vert-container\">\n\n <ng-container *ngIf=\"!isValid;\">\n <mat-icon class=\"state-icon error-icon\">warning</mat-icon>\n <div class=\"state-text\">{{ labels.noData }}</div>\n\n <div style=\"margin-top: 1rem;\" *ngIf=\"!isValid\">\n <ng-content select=\"[NO_DATA]\"></ng-content>\n </div>\n </ng-container>\n\n </ng-container>\n\n </ng-template>\n\n </ng-template>\n</div>\n", styles: [".state-container{text-align:center;margin:0 auto;padding:.5rem;display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;height:100%;z-index:1;cursor:default}.state-container .state-text{margin-top:.5rem;font-weight:700;font-style:normal;font-size:1.125rem;text-align:center}.state-container .state-icon{height:1.875rem;width:1.875rem;font-size:1.875rem}.state-container .link{font-size:1rem!important;color:#286fad}.state-container .retry{font-size:1.25rem}.loading-state-container #border-spinner{border:.0625rem solid #a8a7a7;border-radius:50%;padding:.8rem;justify-content:center;align-items:center;display:flex;transition:all .3s ease-in}.loading-state-container #loading-text{display:flex;padding:.8125rem;font-size:1rem;color:#333}.loading-state-container .loading{margin-left:.625rem}.loading-state-container #loading-with-text{border:.0625rem solid #a8a7a7;border-radius:2rem;transition:all .3s ease-in}.spc-top{margin-top:1rem}.vert-container{display:flex;flex-direction:column;justify-content:center;align-items:center}.box{height:50px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#fffc}.error-icon{color:#ccc}.warn-icon{color:red;opacity:.8}.mat-progress-spinner circle,.mat-spinner circle{stroke:#cb4814}\n"] }]
80
- }], propDecorators: { projectedContent: [{
81
- type: ContentChild,
82
- args: [TemplateRef, { static: false }]
83
- }], delayBy: [{
84
- type: Input
85
- }], overlay: [{
86
- type: Input
87
- }], display: [{
88
- type: Input
89
- }], labels: [{
90
- type: Input
91
- }], error: [{
92
- type: Input
93
- }], loading: [{
94
- type: Input
95
- }], data: [{
96
- type: Input
97
- }], validateWith: [{
98
- type: Input
99
- }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLXN0YXR1cy1tZXNzYWdlL3NyYy9saWIvZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLXN0YXR1cy1tZXNzYWdlL3NyYy9saWIvZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFRN0UsTUFBTSxPQUFPLDZCQUE2QjtJQU4xQztRQVVXLFlBQU8sR0FBRyxDQUFDLENBQUEsQ0FBQyxTQUFTO1FBRXRCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFTZixZQUFPLEdBQUcsS0FBSyxDQUFBO1FBRXhCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFFUixvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRTlELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3pDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQixJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLE1BQU0sQ0FDWCxFQUFFLENBQUMsS0FB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QUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUNqRixDQUFDO0lBRUQsUUFBUTtJQUVSLENBQUM7K0dBNUZVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDBSQUUxQixXQUFXLGdEQ2YzQiw4bERBb0RBOzs0RkR2Q2EsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNFLDRCQUE0QixpQkFHdkIsaUJBQWlCLENBQUMsSUFBSTs4QkFJUyxnQkFBZ0I7c0JBQTdELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFbkMsT0FBTztzQkFBZixLQUFLO2dCQUdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQW1CTyxNQUFNO3NCQUFsQixLQUFLO2dCQVNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBYU8sT0FBTztzQkFBbkIsS0FBSztnQkFXTyxJQUFJO3NCQUFoQixLQUFLO2dCQVVPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbmNhdCwgb2YsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRGlzcGxheVN0YXR1c01lc3NhZ2VMYWJlbHMgfSBmcm9tICcuL21vZGVscy9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBEaXNwbGF5U3RhdHVzTWVzc2FnZSB9IGZyb20gJy4vbW9kZWxzL2Rpc3BsYXktc3RhdHVzLW1lc3NhZ2UubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGlzcGxheS1zdGF0dXMtbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5U3RhdHVzTWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IGZhbHNlIH0pIHByb2plY3RlZENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIGRlbGF5QnkgPSAzIC8vc2Vjb25kc1xuXG4gIHByaXZhdGUgX292ZXJsYXkgPSBmYWxzZVxuICBASW5wdXQoKSBzZXQgb3ZlcmxheSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX292ZXJsYXkgPSAodmFsdWUpID8gdmFsdWUgOiBmYWxzZVxuICB9XG5cbiAgZ2V0IG92ZXJsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBmYWxzZVxuXG4gIGRpc2FibGVkID0gZmFsc2VcblxuICBwcml2YXRlIGxvYWRpbmdTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGxvYWRpbmdEaXNwbGF5JCA9IHRoaXMubG9hZGluZ1N1YmplY3QkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGxvYWRpbmcgPT4ge1xuICAgICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIGNvbmNhdChcbiAgICAgICAgICBvZihmYWxzZSksXG4gICAgICAgICAgdGltZXIoMTAwMCAqIHRoaXMuZGVsYXlCeSkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH0pXG4gICk7XG5cbiAgX2xhYmVscyA9IERpc3BsYXlTdGF0dXNNZXNzYWdlTGFiZWxzLmFkYXB0KClcbiAgQElucHV0KCkgc2V0IGxhYmVscyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fbGFiZWxzID0gKHZhbHVlKSA/IERpc3BsYXlTdGF0dXNNZXNzYWdlTGFiZWxzLmFkYXB0KHZhbHVlKSA6IERpc3BsYXlTdGF0dXNNZXNzYWdlTGFiZWxzLmFkYXB0KClcbiAgfVxuXG4gIGdldCBsYWJlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsc1xuICB9XG5cbiAgcHJpdmF0ZSBfZXJyb3I6IERpc3BsYXlTdGF0dXNNZXNzYWdlfGFueVxuICBASW5wdXQoKSBzZXQgZXJyb3IodmFsdWU6IERpc3BsYXlTdGF0dXNNZXNzYWdlIHwgbnVsbCkge1xuICAgIHRoaXMuX2Vycm9yID0gKHZhbHVlKSA/IERpc3BsYXlTdGF0dXNNZXNzYWdlLmFkYXB0KHZhbHVlKSA6IG51bGxcbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3I7XG4gIH1cblxuICBnZXQgaGFzUHJvamVjdGVkQ29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0ZWRDb250ZW50ID8gdHJ1ZSA6IGZhbHNlXG4gIH1cblxuICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2VcbiAgQElucHV0KCkgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW58bnVsbCkge1xuICAgIHZhbHVlID0gKHZhbHVlKSA/IHZhbHVlIDogZmFsc2VcbiAgICB0aGlzLl9sb2FkaW5nID0gKHZhbHVlKTtcbiAgICB0aGlzLmxvYWRpbmdTdWJqZWN0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0YTogYW55O1xuICBASW5wdXQoKSBzZXQgZGF0YSh2YWx1ZSkge1xuICAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcbiAgICB0aGlzLmVycm9yID0gbnVsbFxuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZVdpdGg6IEZ1bmN0aW9ufGFueVxuICBASW5wdXQoKSBzZXQgdmFsaWRhdGVXaXRoKHZhbGlkYXRlV2l0aDogRnVuY3Rpb258bnVsbCkge1xuICAgIHRoaXMuX3ZhbGlkYXRlV2l0aCA9ICh2YWxpZGF0ZVdpdGgpID8gdmFsaWRhdGVXaXRoIDogbnVsbFxuICB9XG5cbiAgZ2V0IHZhbGlkYXRlV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVXaXRoXG4gIH1cblxuICBnZXQgaXNWYWxpZCgpIHtcbiAgICBjb25zdCBjYW5WYWxpZGF0ZSA9ICh0aGlzLnZhbGlkYXRlV2l0aCAmJiB0aGlzLmRhdGEpID8gdHJ1ZSA6IGZhbHNlXG4gICAgcmV0dXJuIChjYW5WYWxpZGF0ZSAmJiB0aGlzLnZhbGlkYXRlV2l0aCkgPyB0aGlzLnZhbGlkYXRlV2l0aCh0aGlzLmRhdGEpIDogdHJ1ZVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG59XG4iLCJcbjxkaXYgY2xhc3M9XCJzdGF0ZS1jb250YWluZXJcIiBpZD1cIm92ZXJsYXlcIiBbY2xhc3Mub3ZlcmxheV09XCJvdmVybGF5XCI+XG4gIDxkaXYgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIENIRUNLX0RBVEFcIiBjbGFzcz1cImxvYWRpbmctc3RhdGUtY29udGFpbmVyIGJveFwiPlxuICAgIDxkaXYgaWQ9XCJib3JkZXItc3Bpbm5lclwiICpuZ0lmPVwiKGxvYWRpbmdEaXNwbGF5JCB8IGFzeW5jKSA9PT0gZmFsc2U7IGVsc2UgbGFiZWxTcGlubmVyXCI+XG4gICAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjIyXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsU3Bpbm5lcj5cbiAgICAgIDxkaXYgaWQ9XCJsb2FkaW5nLXdpdGgtdGV4dFwiPlxuICAgICAgICA8ZGl2IGlkPVwibG9hZGluZy10ZXh0XCI+XG4gICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIyMlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2FkaW5nXCI+e3sgbGFiZWxzLmxvYWRpbmcgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNDSEVDS19EQVRBPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvcjsgZWxzZSBIQVNfRVJST1JcIiBjbGFzcz1cImVycm9yLXN0YXRlLWNvbnRhaW5lclwiPlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzdGF0ZS1pY29uIHdhcm4taWNvblwiPmVycm9yPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLXRleHRcIj5cbiAgICAgICAge3sgZXJyb3I/Lm1lc3NhZ2UgfHwgbGFiZWxzLmVycm9yIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nICYmIGVycm9yXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltFUlJPUl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI0hBU19FUlJPUj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGFcIiBjbGFzcz1cInZlcnQtY29udGFpbmVyXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1ZhbGlkO1wiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN0YXRlLWljb24gZXJyb3ItaWNvblwiPndhcm5pbmc8L21hdC1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS10ZXh0XCI+e3sgbGFiZWxzLm5vRGF0YSB9fTwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCIgKm5nSWY9XCIhaXNWYWxpZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW05PX0RBVEFdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -1,63 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { DisplayStatusMessageDemoComponent } from './display-status-message-demo/display-status-message-demo.component';
4
- import { DisplayStatusMessageComponent } from './display-status-message.component';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
7
- import { MatButtonModule } from '@angular/material/button';
8
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
9
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
- import { MatDividerModule } from '@angular/material/divider';
11
- import { MatCheckboxModule } from '@angular/material/checkbox';
12
- import * as i0 from "@angular/core";
13
- export class DisplayStatusMessageModule {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, declarations: [DisplayStatusMessageComponent,
16
- DisplayStatusMessageDemoComponent], imports: [CommonModule,
17
- MatIconModule,
18
- MatProgressSpinnerModule,
19
- FormsModule,
20
- ReactiveFormsModule,
21
- MatProgressSpinnerModule,
22
- MatButtonModule,
23
- MatSlideToggleModule,
24
- MatDividerModule,
25
- MatCheckboxModule], exports: [DisplayStatusMessageComponent,
26
- DisplayStatusMessageDemoComponent] }); }
27
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, imports: [CommonModule,
28
- MatIconModule,
29
- MatProgressSpinnerModule,
30
- FormsModule,
31
- ReactiveFormsModule,
32
- MatProgressSpinnerModule,
33
- MatButtonModule,
34
- MatSlideToggleModule,
35
- MatDividerModule,
36
- MatCheckboxModule] }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DisplayStatusMessageModule, decorators: [{
39
- type: NgModule,
40
- args: [{
41
- imports: [
42
- CommonModule,
43
- MatIconModule,
44
- MatProgressSpinnerModule,
45
- FormsModule,
46
- ReactiveFormsModule,
47
- MatProgressSpinnerModule,
48
- MatButtonModule,
49
- MatSlideToggleModule,
50
- MatDividerModule,
51
- MatCheckboxModule
52
- ],
53
- declarations: [
54
- DisplayStatusMessageComponent,
55
- DisplayStatusMessageDemoComponent,
56
- ],
57
- exports: [
58
- DisplayStatusMessageComponent,
59
- DisplayStatusMessageDemoComponent,
60
- ]
61
- }]
62
- }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLXN0YXR1cy1tZXNzYWdlL3NyYy9saWIvZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBeUIvRCxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7Z0hBQTFCLDBCQUEwQixpQkFUbkMsNkJBQTZCO1lBQzdCLGlDQUFpQyxhQWJqQyxZQUFZO1lBQ1osYUFBYTtZQUNiLHdCQUF3QjtZQUN4QixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixpQkFBaUIsYUFPakIsNkJBQTZCO1lBQzdCLGlDQUFpQztnSEFJeEIsMEJBQTBCLFlBckJuQyxZQUFZO1lBQ1osYUFBYTtZQUNiLHdCQUF3QjtZQUN4QixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixpQkFBaUI7OzRGQVlSLDBCQUEwQjtrQkF2QnRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLDZCQUE2Qjt3QkFDN0IsaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsNkJBQTZCO3dCQUM3QixpQ0FBaUM7cUJBQ2xDO2lCQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IERpc3BsYXlTdGF0dXNNZXNzYWdlRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vL2Rpc3BsYXktc3RhdHVzLW1lc3NhZ2UtZGVtby5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheVN0YXR1c01lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXktc3RhdHVzLW1lc3NhZ2UuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEaXNwbGF5U3RhdHVzTWVzc2FnZUNvbXBvbmVudCxcbiAgICBEaXNwbGF5U3RhdHVzTWVzc2FnZURlbW9Db21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEaXNwbGF5U3RhdHVzTWVzc2FnZUNvbXBvbmVudCxcbiAgICBEaXNwbGF5U3RhdHVzTWVzc2FnZURlbW9Db21wb25lbnQsXG4gIF1cblxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5U3RhdHVzTWVzc2FnZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- export class DisplayStatusMessageLabels {
2
- constructor(loading = 'Loading...', error = 'Error Message', noData = 'No Data') {
3
- this.loading = loading;
4
- this.error = error;
5
- this.noData = noData;
6
- }
7
- static adapt(item) {
8
- return new DisplayStatusMessageLabels(item?.loading, item?.error, item?.noData);
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1sYWJlbHMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLXN0YXR1cy1tZXNzYWdlL3NyYy9saWIvbW9kZWxzL2Rpc3BsYXktc3RhdHVzLW1lc3NhZ2UtbGFiZWxzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTywwQkFBMEI7SUFFckMsWUFDUyxVQUFVLFlBQVksRUFDdEIsUUFBUSxlQUFlLEVBQ3ZCLFNBQVMsU0FBUztRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFDeEIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksMEJBQTBCLENBQ25DLElBQUksRUFBRSxPQUFPLEVBQ2IsSUFBSSxFQUFFLEtBQUssRUFDWCxJQUFJLEVBQUUsTUFBTSxDQUNiLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERpc3BsYXlTdGF0dXNNZXNzYWdlTGFiZWxzSW50ZXJmYWNlIHtcbiAgbG9hZGluZzogc3RyaW5nXG4gIGVycm9yOiBzdHJpbmdcbiAgbm9EYXRhOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIERpc3BsYXlTdGF0dXNNZXNzYWdlTGFiZWxzIGltcGxlbWVudHMgRGlzcGxheVN0YXR1c01lc3NhZ2VMYWJlbHNJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsb2FkaW5nID0gJ0xvYWRpbmcuLi4nLFxuICAgIHB1YmxpYyBlcnJvciA9ICdFcnJvciBNZXNzYWdlJyxcbiAgICBwdWJsaWMgbm9EYXRhID0gJ05vIERhdGEnLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBEaXNwbGF5U3RhdHVzTWVzc2FnZUxhYmVscyB7XG5cbiAgICByZXR1cm4gbmV3IERpc3BsYXlTdGF0dXNNZXNzYWdlTGFiZWxzKFxuICAgICAgaXRlbT8ubG9hZGluZyxcbiAgICAgIGl0ZW0/LmVycm9yLFxuICAgICAgaXRlbT8ubm9EYXRhLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- export class DisplayStatusMessage {
2
- constructor(message) {
3
- this.message = message;
4
- }
5
- static adapt(item) {
6
- item = (typeof item === 'string') ? { message: item } : item;
7
- return new DisplayStatusMessage(item?.message);
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL2xpYi9tb2RlbHMvZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1MsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUN0QixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBRTVELE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsSUFBSSxFQUFFLE9BQU8sQ0FDZCxDQUFBO0lBRUgsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEaXNwbGF5U3RhdHVzTWVzc2FnZUludGVyZmFjZSB7XG4gIG1lc3NhZ2U/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIERpc3BsYXlTdGF0dXNNZXNzYWdlIGltcGxlbWVudHMgRGlzcGxheVN0YXR1c01lc3NhZ2VJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtZXNzYWdlPzogc3RyaW5nLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBEaXNwbGF5U3RhdHVzTWVzc2FnZSB7XG5cbiAgICBpdGVtID0gKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykgPyB7IG1lc3NhZ2U6IGl0ZW0gfSA6IGl0ZW1cblxuICAgIHJldHVybiBuZXcgRGlzcGxheVN0YXR1c01lc3NhZ2UoXG4gICAgICBpdGVtPy5tZXNzYWdlLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of data-status-message
3
- */
4
- export * from './display-status-message-labels.model';
5
- export * from './display-status-message.model';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLXN0YXR1cy1tZXNzYWdlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkYXRhLXN0YXR1cy1tZXNzYWdlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWxhYmVscy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Rpc3BsYXktc3RhdHVzLW1lc3NhZ2UubW9kZWwnO1xuIl19
@@ -1,8 +0,0 @@
1
- /*
2
- * Public API Surface of data-status-message
3
- */
4
- export * from './lib/display-status-message.module';
5
- export * from './lib/display-status-message.component';
6
- export * from './lib/display-status-message-demo/display-status-message-demo.component';
7
- export * from './lib/models/index';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5RUFBeUUsQ0FBQztBQUN4RixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkYXRhLXN0YXR1cy1tZXNzYWdlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGxheS1zdGF0dXMtbWVzc2FnZS5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5kZXgnO1xuIl19
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="data-status-message" />
5
- export * from './public-api';
@@ -1,34 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { DisplayStatusMessageLabels } from '../models/display-status-message-labels.model';
4
- import { FormBuilder } from '@angular/forms';
5
- import * as i0 from "@angular/core";
6
- export declare class DisplayStatusMessageDemoComponent implements OnInit {
7
- fb: FormBuilder;
8
- options: import("@angular/forms").FormGroup<{
9
- hasData: import("@angular/forms").FormControl<boolean | null>;
10
- apiError: import("@angular/forms").FormControl<boolean | null>;
11
- isValid: import("@angular/forms").FormControl<boolean | null>;
12
- displayOverlay: import("@angular/forms").FormControl<boolean | null>;
13
- }>;
14
- translations$: Observable<DisplayStatusMessageLabels>;
15
- hint: string;
16
- overlay: boolean;
17
- hasData: any;
18
- simulatedData: any[];
19
- sampleData: {
20
- id: number;
21
- name: string;
22
- }[];
23
- errorRetrySample$: any;
24
- sampleData$: any;
25
- isPendingSample$: Observable<boolean>;
26
- ngOnInit(): void;
27
- onSetData(): void;
28
- onCallAPI(): void;
29
- onSetError(): void;
30
- onSetValidate(): void;
31
- onAction(type: string): void;
32
- static ɵfac: i0.ɵɵFactoryDeclaration<DisplayStatusMessageDemoComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<DisplayStatusMessageDemoComponent, "app-display-status-message-demo", never, {}, {}, never, never, false, never>;
34
- }
@@ -1,35 +0,0 @@
1
- import { OnInit, TemplateRef } from '@angular/core';
2
- import { DisplayStatusMessageLabels } from './models/display-status-message-labels.model';
3
- import { DisplayStatusMessage } from './models/display-status-message.model';
4
- import * as i0 from "@angular/core";
5
- export declare class DisplayStatusMessageComponent implements OnInit {
6
- projectedContent?: TemplateRef<any>;
7
- delayBy: number;
8
- private _overlay;
9
- set overlay(value: boolean);
10
- get overlay(): boolean;
11
- display: boolean;
12
- disabled: boolean;
13
- private loadingSubject$;
14
- loadingDisplay$: import("rxjs").Observable<boolean>;
15
- _labels: DisplayStatusMessageLabels;
16
- set labels(value: any);
17
- get labels(): any;
18
- private _error;
19
- set error(value: DisplayStatusMessage | null);
20
- get error(): DisplayStatusMessage | null;
21
- get hasProjectedContent(): boolean;
22
- private _loading;
23
- set loading(value: boolean | null);
24
- get loading(): boolean | null;
25
- private _data;
26
- set data(value: any);
27
- get data(): any;
28
- private _validateWith;
29
- set validateWith(validateWith: Function | null);
30
- get validateWith(): Function | null;
31
- get isValid(): any;
32
- ngOnInit(): void;
33
- static ɵfac: i0.ɵɵFactoryDeclaration<DisplayStatusMessageComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<DisplayStatusMessageComponent, "app-display-status-message", never, { "delayBy": { "alias": "delayBy"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "display": { "alias": "display"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "error": { "alias": "error"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "data": { "alias": "data"; "required": false; }; "validateWith": { "alias": "validateWith"; "required": false; }; }, {}, ["projectedContent"], ["[ERROR]", "[NO_DATA]"], false, never>;
35
- }
@@ -1,16 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./display-status-message.component";
3
- import * as i2 from "./display-status-message-demo/display-status-message-demo.component";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/material/icon";
6
- import * as i5 from "@angular/material/progress-spinner";
7
- import * as i6 from "@angular/forms";
8
- import * as i7 from "@angular/material/button";
9
- import * as i8 from "@angular/material/slide-toggle";
10
- import * as i9 from "@angular/material/divider";
11
- import * as i10 from "@angular/material/checkbox";
12
- export declare class DisplayStatusMessageModule {
13
- static ɵfac: i0.ɵɵFactoryDeclaration<DisplayStatusMessageModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<DisplayStatusMessageModule, [typeof i1.DisplayStatusMessageComponent, typeof i2.DisplayStatusMessageDemoComponent], [typeof i3.CommonModule, typeof i4.MatIconModule, typeof i5.MatProgressSpinnerModule, typeof i6.FormsModule, typeof i6.ReactiveFormsModule, typeof i5.MatProgressSpinnerModule, typeof i7.MatButtonModule, typeof i8.MatSlideToggleModule, typeof i9.MatDividerModule, typeof i10.MatCheckboxModule], [typeof i1.DisplayStatusMessageComponent, typeof i2.DisplayStatusMessageDemoComponent]>;
15
- static ɵinj: i0.ɵɵInjectorDeclaration<DisplayStatusMessageModule>;
16
- }
@@ -1,12 +0,0 @@
1
- export interface DisplayStatusMessageLabelsInterface {
2
- loading: string;
3
- error: string;
4
- noData: string;
5
- }
6
- export declare class DisplayStatusMessageLabels implements DisplayStatusMessageLabelsInterface {
7
- loading: string;
8
- error: string;
9
- noData: string;
10
- constructor(loading?: string, error?: string, noData?: string);
11
- static adapt(item?: any): DisplayStatusMessageLabels;
12
- }
@@ -1,8 +0,0 @@
1
- export interface DisplayStatusMessageInterface {
2
- message?: string;
3
- }
4
- export declare class DisplayStatusMessage implements DisplayStatusMessageInterface {
5
- message?: string | undefined;
6
- constructor(message?: string | undefined);
7
- static adapt(item?: any): DisplayStatusMessage;
8
- }
@@ -1,2 +0,0 @@
1
- export * from './display-status-message-labels.model';
2
- export * from './display-status-message.model';
package/public-api.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/display-status-message.module';
2
- export * from './lib/display-status-message.component';
3
- export * from './lib/display-status-message-demo/display-status-message-demo.component';
4
- export * from './lib/models/index';