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.
- package/data-status-message-0.0.5.tgz +0 -0
- package/fesm2022/data-status-message.mjs +20 -20
- package/fesm2022/data-status-message.mjs.map +1 -1
- package/package.json +3 -5
- package/types/data-status-message.d.ts +106 -0
- package/data-status-message-0.0.4.tgz +0 -0
- package/esm2022/data-status-message.mjs +0 -5
- package/esm2022/lib/display-status-message-demo/display-status-message-demo.component.mjs +0 -91
- package/esm2022/lib/display-status-message.component.mjs +0 -100
- package/esm2022/lib/display-status-message.module.mjs +0 -63
- package/esm2022/lib/models/display-status-message-labels.model.mjs +0 -11
- package/esm2022/lib/models/display-status-message.model.mjs +0 -10
- package/esm2022/lib/models/index.mjs +0 -6
- package/esm2022/public-api.mjs +0 -8
- package/index.d.ts +0 -5
- package/lib/display-status-message-demo/display-status-message-demo.component.d.ts +0 -34
- package/lib/display-status-message.component.d.ts +0 -35
- package/lib/display-status-message.module.d.ts +0 -16
- package/lib/models/display-status-message-labels.model.d.ts +0 -12
- package/lib/models/display-status-message.model.d.ts +0 -8
- package/lib/models/index.d.ts +0 -2
- package/public-api.d.ts +0 -4
|
Binary file
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef,
|
|
3
|
-
import * as
|
|
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
|
|
6
|
+
import * as i1$1 from '@angular/forms';
|
|
7
7
|
import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i2$1 from '@angular/material/button';
|
|
9
9
|
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i3 from '@angular/material/slide-toggle';
|
|
11
11
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
12
|
-
import * as
|
|
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
|
|
15
|
+
import * as i1 from '@angular/material/icon';
|
|
16
16
|
import { MatIconModule } from '@angular/material/icon';
|
|
17
|
-
import * as
|
|
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: "
|
|
107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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
|
|
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: "
|
|
207
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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
|
|
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: "
|
|
216
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
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.
|
|
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": "
|
|
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": "./
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL2xpYi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtc3RhdHVzLW1lc3NhZ2Uvc3JjL2xpYi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8vZGlzcGxheS1zdGF0dXMtbWVzc2FnZS1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQWEsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGlDQUFpQztJQUw5QztRQU9FLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFeEIsWUFBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUUsS0FBSztZQUNkLGNBQWMsRUFBRSxLQUFLO1NBQ3RCLENBQUMsQ0FBQTtRQUVGLGtCQUFhLEdBQTJDLEVBQUUsQ0FBQztZQUN6RCxPQUFPLEVBQUUsWUFBWTtZQUNyQixLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLE1BQU0sRUFBRSxtQkFBbUI7U0FDNUIsQ0FBQyxDQUFBO1FBRUYsU0FBSSxHQUFHLGdCQUFnQixDQUFBO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFFZixZQUFPLEdBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBO1FBRXpCLGtCQUFhLEdBQVUsRUFBRSxDQUFBO1FBRXpCLGVBQVUsR0FBRztZQUNYLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1NBQzVCLENBQUE7UUFFRCxzQkFBaUIsR0FBUSxLQUFLLENBQUE7UUFFOUIsZ0JBQVcsR0FBUSxLQUFLLENBQUE7UUFFeEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBZ0U3QjtJQTlEQyxRQUFRO0lBRVIsQ0FBQztJQUVELFNBQVM7UUFFUCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUN0QixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsU0FBUztRQUVQLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hDLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUNuRSxDQUFDLENBQUMsRUFDRixLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFFUCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUE7Z0JBQ2hFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO2FBQ3pCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDMUMsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO29CQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO2FBQ3ZEO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTtRQUU5RixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQUM7SUFFSixDQUFDO0lBRUQsVUFBVTtRQUVSLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsYUFBYTtRQUVYLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtJQUN0QixDQUFDOytHQXJHVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyx1RUNWOUMsbWhFQXlEQTs7NEZEL0NhLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWxheSwgRU1QVFksIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXNwbGF5U3RhdHVzTWVzc2FnZUxhYmVscyB9IGZyb20gJy4uL21vZGVscy9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRpc3BsYXktc3RhdHVzLW1lc3NhZ2UtZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaXNwbGF5LXN0YXR1cy1tZXNzYWdlLWRlbW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5U3RhdHVzTWVzc2FnZURlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuXG4gIG9wdGlvbnMgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBoYXNEYXRhOiBmYWxzZSxcbiAgICBhcGlFcnJvcjogZmFsc2UsXG4gICAgaXNWYWxpZDogZmFsc2UsXG4gICAgZGlzcGxheU92ZXJsYXk6IGZhbHNlLFxuICB9KVxuXG4gIHRyYW5zbGF0aW9ucyQ6IE9ic2VydmFibGU8RGlzcGxheVN0YXR1c01lc3NhZ2VMYWJlbHM+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
|
package/esm2022/public-api.mjs
DELETED
|
@@ -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,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
|
-
}
|
package/lib/models/index.d.ts
DELETED
package/public-api.d.ts
DELETED