@kolektor/nucleus-material 0.0.12-pre.7931 → 0.1.130-pre.1
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/README.md +7 -0
- package/esm2022/index.mjs +24 -0
- package/esm2022/kolektor-nucleus-material.mjs +5 -0
- package/esm2022/lib/dialog/dialog.component.mjs +22 -0
- package/esm2022/lib/dialog/dialog.module.mjs +19 -0
- package/esm2022/lib/dialog/dialog.service.mjs +45 -0
- package/esm2022/lib/dialog/models.mjs +10 -0
- package/esm2022/lib/loaded-content/loaded-content-component.mjs +72 -0
- package/esm2022/lib/loaded-content/loaded-content-directive.mjs +78 -0
- package/esm2022/lib/loaded-content/loaded-content-module.mjs +33 -0
- package/esm2022/lib/loaded-content/loading-state.mjs +105 -0
- package/esm2022/lib/snackbar/models.mjs +9 -0
- package/esm2022/lib/snackbar/progress-snackbar/progress-snackbar.component.mjs +31 -0
- package/esm2022/lib/snackbar/snackbar.module.mjs +20 -0
- package/esm2022/lib/snackbar/snackbar.service.mjs +51 -0
- package/esm2022/lib/swipe-tabs/swipe-tabs-directive.mjs +58 -0
- package/esm2022/lib/swipe-tabs/swipe-tabs-module.mjs +18 -0
- package/esm2022/lib/user-avatar/user-avatar-component.mjs +52 -0
- package/esm2022/lib/user-avatar/user-avatar-module.mjs +18 -0
- package/fesm2022/kolektor-nucleus-material.mjs +598 -0
- package/fesm2022/kolektor-nucleus-material.mjs.map +1 -0
- package/index.d.ts +17 -5
- package/lib/dialog/dialog.component.d.ts +10 -10
- package/lib/dialog/dialog.module.d.ts +10 -10
- package/lib/dialog/dialog.service.d.ts +17 -17
- package/lib/dialog/models.d.ts +24 -24
- package/lib/loaded-content/loaded-content-component.d.ts +22 -22
- package/lib/loaded-content/loaded-content-directive.d.ts +23 -23
- package/lib/loaded-content/loaded-content-module.d.ts +12 -12
- package/lib/loaded-content/loading-state.d.ts +32 -32
- package/lib/snackbar/models.d.ts +7 -7
- package/lib/snackbar/progress-snackbar/progress-snackbar.component.d.ts +10 -10
- package/lib/snackbar/snackbar.module.d.ts +10 -10
- package/lib/snackbar/snackbar.service.d.ts +13 -13
- package/lib/swipe-tabs/swipe-tabs-directive.d.ts +11 -11
- package/lib/swipe-tabs/swipe-tabs-module.d.ts +8 -8
- package/lib/user-avatar/user-avatar-component.d.ts +13 -14
- package/lib/user-avatar/user-avatar-module.d.ts +8 -8
- package/package.json +24 -29
- package/esm2020/kolektor-nucleus-material.mjs +0 -5
- package/esm2020/lib/dialog/dialog.component.mjs +0 -22
- package/esm2020/lib/dialog/dialog.module.mjs +0 -29
- package/esm2020/lib/dialog/dialog.service.mjs +0 -40
- package/esm2020/lib/dialog/models.mjs +0 -10
- package/esm2020/lib/loaded-content/loaded-content-component.mjs +0 -71
- package/esm2020/lib/loaded-content/loaded-content-directive.mjs +0 -79
- package/esm2020/lib/loaded-content/loaded-content-module.mjs +0 -39
- package/esm2020/lib/loaded-content/loading-state.mjs +0 -107
- package/esm2020/lib/native-styling/models.mjs +0 -9
- package/esm2020/lib/native-styling/native-styling.service.mjs +0 -67
- package/esm2020/lib/snackbar/models.mjs +0 -9
- package/esm2020/lib/snackbar/progress-snackbar/progress-snackbar.component.mjs +0 -29
- package/esm2020/lib/snackbar/snackbar.module.mjs +0 -33
- package/esm2020/lib/snackbar/snackbar.service.mjs +0 -50
- package/esm2020/lib/swipe-tabs/swipe-tabs-directive.mjs +0 -54
- package/esm2020/lib/swipe-tabs/swipe-tabs-module.mjs +0 -24
- package/esm2020/lib/user-avatar/user-avatar-component.mjs +0 -50
- package/esm2020/lib/user-avatar/user-avatar-module.mjs +0 -24
- package/esm2020/public-api.mjs +0 -30
- package/fesm2015/kolektor-nucleus-material.mjs +0 -712
- package/fesm2015/kolektor-nucleus-material.mjs.map +0 -1
- package/fesm2020/kolektor-nucleus-material.mjs +0 -704
- package/fesm2020/kolektor-nucleus-material.mjs.map +0 -1
- package/lib/native-styling/models.d.ts +0 -7
- package/lib/native-styling/native-styling.service.d.ts +0 -14
- package/public-api.d.ts +0 -19
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// dialog
|
|
2
|
+
export * from './lib/dialog/dialog.service';
|
|
3
|
+
export * from './lib/dialog/dialog.module';
|
|
4
|
+
export * from './lib/dialog/models';
|
|
5
|
+
// loaded-content
|
|
6
|
+
export * from './lib/loaded-content/loading-state';
|
|
7
|
+
export * from './lib/loaded-content/loaded-content-component';
|
|
8
|
+
export * from './lib/loaded-content/loaded-content-directive';
|
|
9
|
+
export * from './lib/loaded-content/loaded-content-module';
|
|
10
|
+
// swipe-tabs
|
|
11
|
+
export * from './lib/swipe-tabs/swipe-tabs-directive';
|
|
12
|
+
export * from './lib/swipe-tabs/swipe-tabs-module';
|
|
13
|
+
// dialog component
|
|
14
|
+
export * from './lib/dialog/dialog.service';
|
|
15
|
+
export * from './lib/dialog/dialog.module';
|
|
16
|
+
export * from './lib/dialog/models';
|
|
17
|
+
// snackbar component
|
|
18
|
+
export * from './lib/snackbar/snackbar.service';
|
|
19
|
+
export * from './lib/snackbar/snackbar.module';
|
|
20
|
+
export * from './lib/snackbar/models';
|
|
21
|
+
// user-avatar
|
|
22
|
+
export * from './lib/user-avatar/user-avatar-component';
|
|
23
|
+
export * from './lib/user-avatar/user-avatar-module';
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nL251Y2xldXMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGlCQUFpQjtBQUNqQixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGFBQWE7QUFDYixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsbUJBQW1CO0FBQ25CLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLHFCQUFxQjtBQUNyQixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjO0FBQ2QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZGlhbG9nXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL21vZGVscyc7XG5cbi8vIGxvYWRlZC1jb250ZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZWQtY29udGVudC9sb2FkaW5nLXN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlZC1jb250ZW50L2xvYWRlZC1jb250ZW50LWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZWQtY29udGVudC9sb2FkZWQtY29udGVudC1kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGVkLWNvbnRlbnQvbG9hZGVkLWNvbnRlbnQtbW9kdWxlJztcblxuLy8gc3dpcGUtdGFic1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3dpcGUtdGFicy9zd2lwZS10YWJzLWRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zd2lwZS10YWJzL3N3aXBlLXRhYnMtbW9kdWxlJztcblxuLy8gZGlhbG9nIGNvbXBvbmVudFxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpYWxvZy9tb2RlbHMnO1xuXG4vLyBzbmFja2JhciBjb21wb25lbnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25hY2tiYXIvc25hY2tiYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NuYWNrYmFyL21vZGVscyc7XG5cbi8vIHVzZXItYXZhdGFyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci1hdmF0YXIvdXNlci1hdmF0YXItbW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29sZWt0b3ItbnVjbGV1cy1tYXRlcmlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcvbnVjbGV1cy9udWNsZXVzLW1hdGVyaWFsL3NyYy9rb2xla3Rvci1udWNsZXVzLW1hdGVyaWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
export class NucDialogComponent {
|
|
8
|
+
constructor(dialogRef, dialogData) {
|
|
9
|
+
this.dialogRef = dialogRef;
|
|
10
|
+
this.dialogData = dialogData;
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NucDialogComponent, selector: "nuc-dialog", ngImport: i0, template: "<ng-container *ngIf=\"dialogData\">\n <h2 mat-dialog-title *ngIf=\"dialogData.title\">\n {{ dialogData.title }}\n </h2>\n <mat-dialog-content>{{ dialogData.message }}</mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngFor=\"let action of dialogData.actions\">\n <button\n color=\"{{ action.color || 'primary' }}\"\n *ngIf=\"action.value === undefined\"\n mat-button\n mat-dialog-close\n >\n {{ action.text }}\n </button>\n <button\n color=\"{{ action.color || 'primary' }}\"\n *ngIf=\"action.value !== undefined\"\n mat-button\n [mat-dialog-close]=\"action.value\"\n >\n {{ action.text }}\n </button>\n </ng-container>\n </mat-dialog-actions>\n</ng-container>\n", styles: ["mat-dialog-actions{justify-content:flex-end}mat-dialog-content{white-space:pre-wrap}button{text-transform:uppercase;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { 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"] }] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'nuc-dialog', template: "<ng-container *ngIf=\"dialogData\">\n <h2 mat-dialog-title *ngIf=\"dialogData.title\">\n {{ dialogData.title }}\n </h2>\n <mat-dialog-content>{{ dialogData.message }}</mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngFor=\"let action of dialogData.actions\">\n <button\n color=\"{{ action.color || 'primary' }}\"\n *ngIf=\"action.value === undefined\"\n mat-button\n mat-dialog-close\n >\n {{ action.text }}\n </button>\n <button\n color=\"{{ action.color || 'primary' }}\"\n *ngIf=\"action.value !== undefined\"\n mat-button\n [mat-dialog-close]=\"action.value\"\n >\n {{ action.text }}\n </button>\n </ng-container>\n </mat-dialog-actions>\n</ng-container>\n", styles: ["mat-dialog-actions{justify-content:flex-end}mat-dialog-content{white-space:pre-wrap}button{text-transform:uppercase;font-weight:700}\n"] }]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
19
|
+
type: Inject,
|
|
20
|
+
args: [MAT_DIALOG_DATA]
|
|
21
|
+
}] }]; } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcvbnVjbGV1cy9udWNsZXVzLW1hdGVyaWFsL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nL251Y2xldXMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvbGliL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFTekUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNTLFNBQTJDLEVBQ2xCLFVBQXlCO1FBRGxELGNBQVMsR0FBVCxTQUFTLENBQWtDO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQWU7SUFDeEQsQ0FBQzsrR0FKTyxrQkFBa0IsOENBR25CLGVBQWU7bUdBSGQsa0JBQWtCLGtEQ1YvQixxeEJBMEJBOzs0RkRoQmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUVFLFlBQVk7OzBCQU9uQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTnVjRGlhbG9nRGF0YSB9IGZyb20gJy4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbnVjLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVjRGlhbG9nQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE51Y0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBOdWNEaWFsb2dEYXRhXG4gICkge31cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaWFsb2dEYXRhXCI+XG4gIDxoMiBtYXQtZGlhbG9nLXRpdGxlICpuZ0lmPVwiZGlhbG9nRGF0YS50aXRsZVwiPlxuICAgIHt7IGRpYWxvZ0RhdGEudGl0bGUgfX1cbiAgPC9oMj5cbiAgPG1hdC1kaWFsb2ctY29udGVudD57eyBkaWFsb2dEYXRhLm1lc3NhZ2UgfX08L21hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZGlhbG9nRGF0YS5hY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNvbG9yPVwie3sgYWN0aW9uLmNvbG9yIHx8ICdwcmltYXJ5JyB9fVwiXG4gICAgICAgICpuZ0lmPVwiYWN0aW9uLnZhbHVlID09PSB1bmRlZmluZWRcIlxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIG1hdC1kaWFsb2ctY2xvc2VcbiAgICAgID5cbiAgICAgICAge3sgYWN0aW9uLnRleHQgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjb2xvcj1cInt7IGFjdGlvbi5jb2xvciB8fCAncHJpbWFyeScgfX1cIlxuICAgICAgICAqbmdJZj1cImFjdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJhY3Rpb24udmFsdWVcIlxuICAgICAgPlxuICAgICAgICB7eyBhY3Rpb24udGV4dCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
5
|
+
import { NucDialogComponent } from './dialog.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class NucDialogModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NucDialogModule, declarations: [NucDialogComponent], imports: [CommonModule, MatDialogModule, MatButtonModule] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogModule, imports: [CommonModule, MatDialogModule, MatButtonModule] }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [NucDialogComponent],
|
|
16
|
+
imports: [CommonModule, MatDialogModule, MatButtonModule],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcvbnVjbGV1cy9udWNsZXVzLW1hdGVyaWFsL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLGVBQWU7K0dBQWYsZUFBZTtnSEFBZixlQUFlLGlCQUhYLGtCQUFrQixhQUN2QixZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWU7Z0hBRTdDLGVBQWUsWUFGaEIsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlOzs0RkFFN0MsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7aUJBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE51Y0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW051Y0RpYWxvZ0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVjRGlhbG9nTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { NucDialogComponent } from './dialog.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
export class NucDialogService {
|
|
7
|
+
constructor(_matDialog) {
|
|
8
|
+
this._matDialog = _matDialog;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Opens a NucDialog with content from dialogData.
|
|
12
|
+
*
|
|
13
|
+
* @param dialogData NucDialogData containing title, message and possible actions.
|
|
14
|
+
* @param dialogConfig Extra configuration options. Data property is ignored, since it will be set to dialogData.
|
|
15
|
+
* @returns a promise with value that was specified inside pressed Nucleus action.
|
|
16
|
+
*/
|
|
17
|
+
async open(dialogData, dialogConfig
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
) {
|
|
20
|
+
if (dialogData.actions && dialogData.actions.length > 0) {
|
|
21
|
+
if (dialogConfig) {
|
|
22
|
+
dialogConfig.data = dialogData;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
dialogConfig = { data: dialogData };
|
|
26
|
+
}
|
|
27
|
+
return await this._matDialog
|
|
28
|
+
.open(NucDialogComponent, dialogConfig)
|
|
29
|
+
.beforeClosed()
|
|
30
|
+
.toPromise();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.error('Nucleus.AppCore: NucDialogData requires at least one action.');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogService, providedIn: 'root' }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucDialogService, decorators: [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{
|
|
42
|
+
providedIn: 'root',
|
|
43
|
+
}]
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nL251Y2xldXMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvbGliL2RpYWxvZy9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUt4RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQW9CLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7SUFBRyxDQUFDO0lBRTdDOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQ2YsVUFBeUIsRUFDekIsWUFBOEI7SUFDOUIsOERBQThEOztRQUU5RCxJQUFJLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELElBQUksWUFBWSxFQUFFO2dCQUNoQixZQUFZLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxZQUFZLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDckM7WUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVU7aUJBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUM7aUJBQ3RDLFlBQVksRUFBRTtpQkFDZCxTQUFTLEVBQUUsQ0FBQztTQUNoQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FDWCw4REFBOEQsQ0FDL0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQzsrR0E5QlUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTnVjRGlhbG9nRGF0YSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IE51Y0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOdWNEaWFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgTnVjRGlhbG9nIHdpdGggY29udGVudCBmcm9tIGRpYWxvZ0RhdGEuXG4gICAqXG4gICAqIEBwYXJhbSBkaWFsb2dEYXRhIE51Y0RpYWxvZ0RhdGEgY29udGFpbmluZyB0aXRsZSwgbWVzc2FnZSBhbmQgcG9zc2libGUgYWN0aW9ucy5cbiAgICogQHBhcmFtIGRpYWxvZ0NvbmZpZyBFeHRyYSBjb25maWd1cmF0aW9uIG9wdGlvbnMuIERhdGEgcHJvcGVydHkgaXMgaWdub3JlZCwgc2luY2UgaXQgd2lsbCBiZSBzZXQgdG8gZGlhbG9nRGF0YS5cbiAgICogQHJldHVybnMgYSBwcm9taXNlIHdpdGggdmFsdWUgdGhhdCB3YXMgc3BlY2lmaWVkIGluc2lkZSBwcmVzc2VkIE51Y2xldXMgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9wZW4oXG4gICAgZGlhbG9nRGF0YTogTnVjRGlhbG9nRGF0YSxcbiAgICBkaWFsb2dDb25maWc/OiBNYXREaWFsb2dDb25maWdcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGlmIChkaWFsb2dEYXRhLmFjdGlvbnMgJiYgZGlhbG9nRGF0YS5hY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChkaWFsb2dDb25maWcpIHtcbiAgICAgICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBkaWFsb2dEYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlhbG9nQ29uZmlnID0geyBkYXRhOiBkaWFsb2dEYXRhIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5fbWF0RGlhbG9nXG4gICAgICAgIC5vcGVuKE51Y0RpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKVxuICAgICAgICAuYmVmb3JlQ2xvc2VkKClcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnTnVjbGV1cy5BcHBDb3JlOiBOdWNEaWFsb2dEYXRhIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBhY3Rpb24uJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var NucColor;
|
|
2
|
+
(function (NucColor) {
|
|
3
|
+
/** Primary color of the theme. */
|
|
4
|
+
NucColor["primary"] = "primary";
|
|
5
|
+
/** Accent color of the theme. */
|
|
6
|
+
NucColor["accent"] = "accent";
|
|
7
|
+
/** Warning color of the theme. */
|
|
8
|
+
NucColor["warn"] = "warn";
|
|
9
|
+
})(NucColor || (NucColor = {}));
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9kaWFsb2cvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSxNQUFNLENBQU4sSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2xCLGtDQUFrQztJQUNsQywrQkFBbUIsQ0FBQTtJQUNuQixpQ0FBaUM7SUFDakMsNkJBQWlCLENBQUE7SUFDakIsa0NBQWtDO0lBQ2xDLHlCQUFhLENBQUE7QUFDZixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE51Y0RpYWxvZ0RhdGEge1xuICAvKiogT3B0aW9uYWwgdGl0bGUgZm9yIHRoZSBkaWFsb2cuICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogTWVzc2FnZSBmb3IgdGhlIGRpYWxvZy4gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuICAvKiogQWN0aW9uKHMpIChidXR0b25zKSBmb3IgdGhlIGRpYWxvZy4gQXQgbGVhc3Qgb25lIGlzIHJlcXVpcmVkLiAqL1xuICBhY3Rpb25zOiBOdWNBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOdWNBY3Rpb24ge1xuICAvKiogVGV4dCBmb3IgdGhlIGFjdGlvbiAoYnV0dG9uKS4gKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKiogUmV0dXJuIHZhbHVlIGZvciB0aGUgYWN0aW9uIChidXR0b24pLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICB2YWx1ZT86IGFueTtcbiAgLyoqIE9wdGlvbmFsIGNvbG9yIG9mIHRoZSBhY3Rpb24gKGJ1dHRvbikuICovXG4gIGNvbG9yPzogTnVjQ29sb3I7XG59XG5cbmV4cG9ydCBlbnVtIE51Y0NvbG9yIHtcbiAgLyoqIFByaW1hcnkgY29sb3Igb2YgdGhlIHRoZW1lLiAqL1xuICBwcmltYXJ5ID0gJ3ByaW1hcnknLFxuICAvKiogQWNjZW50IGNvbG9yIG9mIHRoZSB0aGVtZS4gKi9cbiAgYWNjZW50ID0gJ2FjY2VudCcsXG4gIC8qKiBXYXJuaW5nIGNvbG9yIG9mIHRoZSB0aGVtZS4gKi9cbiAgd2FybiA9ICd3YXJuJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Component, Input, TemplateRef } from '@angular/core';
|
|
3
|
+
import { LoadingState, LoadingStatus } from './loading-state';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/material/progress-spinner";
|
|
7
|
+
import * as i3 from "@angular/material/button";
|
|
8
|
+
import * as i4 from "@angular/material/icon";
|
|
9
|
+
export class NucLoadedContentComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._errorDetailsVisible = false;
|
|
12
|
+
this.errorMessage = 'We are having trouble loading the data.';
|
|
13
|
+
this.showRetry = true;
|
|
14
|
+
}
|
|
15
|
+
get message() {
|
|
16
|
+
if (this.state.message != null) {
|
|
17
|
+
return this.state.message;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
if (this.state.status === LoadingStatus.failed) {
|
|
21
|
+
return this.errorMessage;
|
|
22
|
+
}
|
|
23
|
+
else if (this.state.status === LoadingStatus.inProgress) {
|
|
24
|
+
return this.inProgressMessage;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
get showRetryButton() {
|
|
30
|
+
return this.showRetry;
|
|
31
|
+
}
|
|
32
|
+
get inProgress() {
|
|
33
|
+
const inProgress = this.state.status === LoadingStatus.inProgress;
|
|
34
|
+
if (inProgress) {
|
|
35
|
+
this._errorDetailsVisible = false;
|
|
36
|
+
}
|
|
37
|
+
return inProgress;
|
|
38
|
+
}
|
|
39
|
+
get failed() {
|
|
40
|
+
return this.state.status === LoadingStatus.failed;
|
|
41
|
+
}
|
|
42
|
+
get completed() {
|
|
43
|
+
return this.state.status === LoadingStatus.completed;
|
|
44
|
+
}
|
|
45
|
+
get errorDetailsVisible() {
|
|
46
|
+
return this._errorDetailsVisible;
|
|
47
|
+
}
|
|
48
|
+
showErrorDetails() {
|
|
49
|
+
this._errorDetailsVisible = true;
|
|
50
|
+
}
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NucLoadedContentComponent, selector: "nuc-loaded-content-component", inputs: { completedTemplate: "completedTemplate", errorTemplate: "errorTemplate", inProgressTemplate: "inProgressTemplate", state: "state", inProgressMessage: "inProgressMessage", errorMessage: "errorMessage", showRetry: "showRetry" }, ngImport: i0, template: "<ng-container *ngIf=\"completed\">\n <ng-container *ngTemplateOutlet=\"completedTemplate\"></ng-container>\n</ng-container>\n\n<div class=\"indicators-container\" *ngIf=\"inProgress || failed\">\n <ng-container *ngIf=\"inProgress\">\n <ng-container\n *ngTemplateOutlet=\"inProgressTemplate ? inProgressTemplate: defaultInProgressTemplate\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"failed\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate ? errorTemplate: defaultErrorTemplate\"\n ></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultInProgressTemplate>\n <div class=\"spinner\">\n <mat-spinner [diameter]=\"45\"></mat-spinner>\n </div>\n <p>{{message}}</p>\n</ng-template>\n\n<ng-template #defaultErrorTemplate>\n <div>\n <p class=\"message\">\n <span>{{message}}</span>\n <mat-icon\n *ngIf=\"state.errorDetails && !errorDetailsVisible\"\n class=\"info-button\"\n color=\"warn\"\n (click)=\"showErrorDetails()\"\n >info</mat-icon\n >\n </p>\n\n <p *ngIf=\"errorDetailsVisible\" class=\"error-details mat-small\">\n {{state.errorDetails}}\n </p>\n\n <p *ngIf=\"showRetryButton\">\n <button mat-mini-fab color=\"primary\" (click)=\"state.retry()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </p>\n </div>\n</ng-template>\n", styles: [".indicators-container{text-align:center;margin:0 auto;padding-top:4rem}.error-details{margin-top:1rem}.spinner{display:flex;justify-content:center;align-items:center;margin-bottom:.5rem}.message{display:flex;justify-content:center;align-items:center}.info-button{cursor:pointer;margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'nuc-loaded-content-component', template: "<ng-container *ngIf=\"completed\">\n <ng-container *ngTemplateOutlet=\"completedTemplate\"></ng-container>\n</ng-container>\n\n<div class=\"indicators-container\" *ngIf=\"inProgress || failed\">\n <ng-container *ngIf=\"inProgress\">\n <ng-container\n *ngTemplateOutlet=\"inProgressTemplate ? inProgressTemplate: defaultInProgressTemplate\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"failed\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate ? errorTemplate: defaultErrorTemplate\"\n ></ng-container>\n </ng-container>\n</div>\n\n<ng-template #defaultInProgressTemplate>\n <div class=\"spinner\">\n <mat-spinner [diameter]=\"45\"></mat-spinner>\n </div>\n <p>{{message}}</p>\n</ng-template>\n\n<ng-template #defaultErrorTemplate>\n <div>\n <p class=\"message\">\n <span>{{message}}</span>\n <mat-icon\n *ngIf=\"state.errorDetails && !errorDetailsVisible\"\n class=\"info-button\"\n color=\"warn\"\n (click)=\"showErrorDetails()\"\n >info</mat-icon\n >\n </p>\n\n <p *ngIf=\"errorDetailsVisible\" class=\"error-details mat-small\">\n {{state.errorDetails}}\n </p>\n\n <p *ngIf=\"showRetryButton\">\n <button mat-mini-fab color=\"primary\" (click)=\"state.retry()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </p>\n </div>\n</ng-template>\n", styles: [".indicators-container{text-align:center;margin:0 auto;padding-top:4rem}.error-details{margin-top:1rem}.spinner{display:flex;justify-content:center;align-items:center;margin-bottom:.5rem}.message{display:flex;justify-content:center;align-items:center}.info-button{cursor:pointer;margin-left:.5rem}\n"] }]
|
|
57
|
+
}], propDecorators: { completedTemplate: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], errorTemplate: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], inProgressTemplate: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], state: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], inProgressMessage: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], errorMessage: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], showRetry: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVkLWNvbnRlbnQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9sb2FkZWQtY29udGVudC9sb2FkZWQtY29udGVudC1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nL251Y2xldXMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvbGliL2xvYWRlZC1jb250ZW50L2xvYWRlZC1jb250ZW50LWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBUTlELE1BQU0sT0FBTyx5QkFBeUI7SUFOdEM7UUFPVSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFrQjlCLGlCQUFZLEdBQUcseUNBQXlDLENBQUM7UUFHekQsY0FBUyxHQUFHLElBQUksQ0FBQztLQTBDekI7SUF4Q0MsSUFBVyxPQUFPO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDOUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzFCO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLFVBQVUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDL0I7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ2xFLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztTQUNuQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDOytHQS9EVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixnVENWdEMsNjJDQWdEQTs7NEZEdENhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFFRSw4QkFBOEI7OEJBUXhDLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlLCBMb2FkaW5nU3RhdHVzIH0gZnJvbSAnLi9sb2FkaW5nLXN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbnVjLWxvYWRlZC1jb250ZW50LWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkZWQtY29udGVudC1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvYWRlZC1jb250ZW50LWNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE51Y0xvYWRlZENvbnRlbnRDb21wb25lbnQge1xuICBwcml2YXRlIF9lcnJvckRldGFpbHNWaXNpYmxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgY29tcGxldGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBpblByb2dyZXNzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0YXRlOiBMb2FkaW5nU3RhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGluUHJvZ3Jlc3NNZXNzYWdlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVycm9yTWVzc2FnZSA9ICdXZSBhcmUgaGF2aW5nIHRyb3VibGUgbG9hZGluZyB0aGUgZGF0YS4nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93UmV0cnkgPSB0cnVlO1xuXG4gIHB1YmxpYyBnZXQgbWVzc2FnZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tZXNzYWdlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLm1lc3NhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLnN0YXR1cyA9PT0gTG9hZGluZ1N0YXR1cy5mYWlsZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLnN0YXR1cyA9PT0gTG9hZGluZ1N0YXR1cy5pblByb2dyZXNzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluUHJvZ3Jlc3NNZXNzYWdlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvd1JldHJ5QnV0dG9uKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dSZXRyeTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5Qcm9ncmVzcygpIHtcbiAgICBjb25zdCBpblByb2dyZXNzID0gdGhpcy5zdGF0ZS5zdGF0dXMgPT09IExvYWRpbmdTdGF0dXMuaW5Qcm9ncmVzcztcbiAgICBpZiAoaW5Qcm9ncmVzcykge1xuICAgICAgdGhpcy5fZXJyb3JEZXRhaWxzVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gaW5Qcm9ncmVzcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmFpbGVkKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnN0YXR1cyA9PT0gTG9hZGluZ1N0YXR1cy5mYWlsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbXBsZXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zdGF0dXMgPT09IExvYWRpbmdTdGF0dXMuY29tcGxldGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvckRldGFpbHNWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9lcnJvckRldGFpbHNWaXNpYmxlO1xuICB9XG5cbiAgcHVibGljIHNob3dFcnJvckRldGFpbHMoKSB7XG4gICAgdGhpcy5fZXJyb3JEZXRhaWxzVmlzaWJsZSA9IHRydWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb21wbGV0ZWRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBsZXRlZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImluZGljYXRvcnMtY29udGFpbmVyXCIgKm5nSWY9XCJpblByb2dyZXNzIHx8IGZhaWxlZFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5Qcm9ncmVzc1wiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5Qcm9ncmVzc1RlbXBsYXRlID8gaW5Qcm9ncmVzc1RlbXBsYXRlOiBkZWZhdWx0SW5Qcm9ncmVzc1RlbXBsYXRlXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmFpbGVkXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlID8gZXJyb3JUZW1wbGF0ZTogZGVmYXVsdEVycm9yVGVtcGxhdGVcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SW5Qcm9ncmVzc1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPlxuICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiNDVcIj48L21hdC1zcGlubmVyPlxuICA8L2Rpdj5cbiAgPHA+e3ttZXNzYWdlfX08L3A+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRFcnJvclRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxwIGNsYXNzPVwibWVzc2FnZVwiPlxuICAgICAgPHNwYW4+e3ttZXNzYWdlfX08L3NwYW4+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgKm5nSWY9XCJzdGF0ZS5lcnJvckRldGFpbHMgJiYgIWVycm9yRGV0YWlsc1Zpc2libGVcIlxuICAgICAgICBjbGFzcz1cImluZm8tYnV0dG9uXCJcbiAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dFcnJvckRldGFpbHMoKVwiXG4gICAgICAgID5pbmZvPC9tYXQtaWNvblxuICAgICAgPlxuICAgIDwvcD5cblxuICAgIDxwICpuZ0lmPVwiZXJyb3JEZXRhaWxzVmlzaWJsZVwiIGNsYXNzPVwiZXJyb3ItZGV0YWlscyBtYXQtc21hbGxcIj5cbiAgICAgIHt7c3RhdGUuZXJyb3JEZXRhaWxzfX1cbiAgICA8L3A+XG5cbiAgICA8cCAqbmdJZj1cInNob3dSZXRyeUJ1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInN0YXRlLnJldHJ5KClcIj5cbiAgICAgICAgPG1hdC1pY29uPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { ComponentFactoryResolver, Directive, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
3
|
+
import { NucLoadedContentComponent } from './loaded-content-component';
|
|
4
|
+
import { LoadingState } from './loading-state';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
7
|
+
export class NucLoadedContentDirective {
|
|
8
|
+
constructor(_viewContainer, templateRef, _componentResolver) {
|
|
9
|
+
this._viewContainer = _viewContainer;
|
|
10
|
+
this.templateRef = templateRef;
|
|
11
|
+
this._componentResolver = _componentResolver;
|
|
12
|
+
this._errorTemplateRef = null;
|
|
13
|
+
this._inProgressTemplateRef = null;
|
|
14
|
+
this._completedTemplateRef = templateRef;
|
|
15
|
+
}
|
|
16
|
+
set nucLoadedContent(state) {
|
|
17
|
+
// add some error handling if state is null, etc.
|
|
18
|
+
this._state = state;
|
|
19
|
+
this._updateView();
|
|
20
|
+
}
|
|
21
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
22
|
+
set errorTemplate(templateRef) {
|
|
23
|
+
this._errorTemplateRef = templateRef;
|
|
24
|
+
this._updateView();
|
|
25
|
+
}
|
|
26
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
27
|
+
set inProgressTemplate(templateRef) {
|
|
28
|
+
this._inProgressTemplateRef = templateRef;
|
|
29
|
+
this._updateView();
|
|
30
|
+
}
|
|
31
|
+
set inProgressMessage(inProgressMessage) {
|
|
32
|
+
this._component.instance.inProgressMessage = inProgressMessage;
|
|
33
|
+
}
|
|
34
|
+
set errorMessage(errorMessage) {
|
|
35
|
+
this._component.instance.errorMessage = errorMessage;
|
|
36
|
+
}
|
|
37
|
+
set showRetry(showRetry) {
|
|
38
|
+
this._component.instance.showRetry = showRetry;
|
|
39
|
+
}
|
|
40
|
+
_updateView() {
|
|
41
|
+
if (this._component == null) {
|
|
42
|
+
const fac = this._componentResolver.resolveComponentFactory(NucLoadedContentComponent);
|
|
43
|
+
this._component = this._viewContainer.createComponent(fac);
|
|
44
|
+
}
|
|
45
|
+
this._component.instance.state = this._state;
|
|
46
|
+
this._component.instance.completedTemplate = this._completedTemplateRef;
|
|
47
|
+
if (this._inProgressTemplateRef) {
|
|
48
|
+
this._component.instance.inProgressTemplate = this._inProgressTemplateRef;
|
|
49
|
+
}
|
|
50
|
+
if (this._errorTemplateRef) {
|
|
51
|
+
this._component.instance.errorTemplate = this._errorTemplateRef;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
55
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NucLoadedContentDirective, selector: "[nucLoadedContent]", inputs: { nucLoadedContent: "nucLoadedContent", errorTemplate: ["nucLoadedContentError", "errorTemplate"], inProgressTemplate: ["nucLoadedContentInProgress", "inProgressTemplate"], inProgressMessage: ["nucLoadedContentInProgressMessage", "inProgressMessage"], errorMessage: ["nucLoadedContentErrorMessage", "errorMessage"], showRetry: ["nucLoadedContentShowRetry", "showRetry"] }, ngImport: i0 }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentDirective, decorators: [{
|
|
58
|
+
type: Directive,
|
|
59
|
+
args: [{ selector: '[nucLoadedContent]' }]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { nucLoadedContent: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], errorTemplate: [{
|
|
63
|
+
type: Input,
|
|
64
|
+
args: ['nucLoadedContentError']
|
|
65
|
+
}], inProgressTemplate: [{
|
|
66
|
+
type: Input,
|
|
67
|
+
args: ['nucLoadedContentInProgress']
|
|
68
|
+
}], inProgressMessage: [{
|
|
69
|
+
type: Input,
|
|
70
|
+
args: ['nucLoadedContentInProgressMessage']
|
|
71
|
+
}], errorMessage: [{
|
|
72
|
+
type: Input,
|
|
73
|
+
args: ['nucLoadedContentErrorMessage']
|
|
74
|
+
}], showRetry: [{
|
|
75
|
+
type: Input,
|
|
76
|
+
args: ['nucLoadedContentShowRetry']
|
|
77
|
+
}] } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVkLWNvbnRlbnQtZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9sb2FkZWQtY29udGVudC9sb2FkZWQtY29udGVudC1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFDTCx3QkFBd0IsRUFFeEIsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFL0MsOERBQThEO0FBRTlELE1BQU0sT0FBTyx5QkFBeUI7SUFPcEMsWUFDVSxjQUFnQyxFQUNoQyxXQUE2QixFQUM3QixrQkFBNEM7UUFGNUMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTBCO1FBUDlDLHNCQUFpQixHQUE0QixJQUFJLENBQUM7UUFDbEQsMkJBQXNCLEdBQTRCLElBQUksQ0FBQztRQVE3RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsV0FBVyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUNJLGdCQUFnQixDQUFDLEtBQW1CO1FBQ3RDLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxJQUNJLGFBQWEsQ0FBQyxXQUFvQztRQUNwRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsMkRBQTJEO0lBQzNELElBQ0ksa0JBQWtCLENBQUMsV0FBb0M7UUFDekQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFdBQVcsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQ0ksaUJBQWlCLENBQUMsaUJBQXlCO1FBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUNJLFlBQVksQ0FBQyxZQUFvQjtRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxTQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQ2pELENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUN6RCx5QkFBeUIsQ0FDMUIsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFFeEUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1NBQzNFO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUNqRTtJQUNILENBQUM7K0dBckVVLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO3dLQWlCdkMsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVNGLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsdUJBQXVCO2dCQVExQixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsNEJBQTRCO2dCQU8vQixpQkFBaUI7c0JBRHBCLEtBQUs7dUJBQUMsbUNBQW1DO2dCQU10QyxZQUFZO3NCQURmLEtBQUs7dUJBQUMsOEJBQThCO2dCQU1qQyxTQUFTO3NCQURaLEtBQUs7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51Y0xvYWRlZENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlZC1jb250ZW50LWNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGUgfSBmcm9tICcuL2xvYWRpbmctc3RhdGUnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW251Y0xvYWRlZENvbnRlbnRdJyB9KVxuZXhwb3J0IGNsYXNzIE51Y0xvYWRlZENvbnRlbnREaXJlY3RpdmUge1xuICBwcml2YXRlIF9zdGF0ZTogTG9hZGluZ1N0YXRlO1xuICBwcml2YXRlIF9jb21wbGV0ZWRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfZXJyb3JUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pblByb2dyZXNzVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfY29tcG9uZW50OiBDb21wb25lbnRSZWY8TnVjTG9hZGVkQ29udGVudENvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgX2NvbXBvbmVudFJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgKSB7XG4gICAgdGhpcy5fY29tcGxldGVkVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBudWNMb2FkZWRDb250ZW50KHN0YXRlOiBMb2FkaW5nU3RhdGUpIHtcbiAgICAvLyBhZGQgc29tZSBlcnJvciBoYW5kbGluZyBpZiBzdGF0ZSBpcyBudWxsLCBldGMuXG4gICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLl91cGRhdGVWaWV3KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ251Y0xvYWRlZENvbnRlbnRFcnJvcicpXG4gIHNldCBlcnJvclRlbXBsYXRlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCkge1xuICAgIHRoaXMuX2Vycm9yVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgICB0aGlzLl91cGRhdGVWaWV3KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ251Y0xvYWRlZENvbnRlbnRJblByb2dyZXNzJylcbiAgc2V0IGluUHJvZ3Jlc3NUZW1wbGF0ZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIHtcbiAgICB0aGlzLl9pblByb2dyZXNzVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgICB0aGlzLl91cGRhdGVWaWV3KCk7XG4gIH1cblxuICBASW5wdXQoJ251Y0xvYWRlZENvbnRlbnRJblByb2dyZXNzTWVzc2FnZScpXG4gIHNldCBpblByb2dyZXNzTWVzc2FnZShpblByb2dyZXNzTWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLmluUHJvZ3Jlc3NNZXNzYWdlID0gaW5Qcm9ncmVzc01lc3NhZ2U7XG4gIH1cblxuICBASW5wdXQoJ251Y0xvYWRlZENvbnRlbnRFcnJvck1lc3NhZ2UnKVxuICBzZXQgZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLmVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgfVxuXG4gIEBJbnB1dCgnbnVjTG9hZGVkQ29udGVudFNob3dSZXRyeScpXG4gIHNldCBzaG93UmV0cnkoc2hvd1JldHJ5OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLnNob3dSZXRyeSA9IHNob3dSZXRyeTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZpZXcoKSB7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudCA9PSBudWxsKSB7XG4gICAgICBjb25zdCBmYWMgPSB0aGlzLl9jb21wb25lbnRSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgTnVjTG9hZGVkQ29udGVudENvbXBvbmVudFxuICAgICAgKTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudCA9IHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhYyk7XG4gICAgfVxuXG4gICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLnN0YXRlID0gdGhpcy5fc3RhdGU7XG4gICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLmNvbXBsZXRlZFRlbXBsYXRlID0gdGhpcy5fY29tcGxldGVkVGVtcGxhdGVSZWY7XG5cbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzc1RlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnQuaW5zdGFuY2UuaW5Qcm9ncmVzc1RlbXBsYXRlID0gdGhpcy5faW5Qcm9ncmVzc1RlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9lcnJvclRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnQuaW5zdGFuY2UuZXJyb3JUZW1wbGF0ZSA9IHRoaXMuX2Vycm9yVGVtcGxhdGVSZWY7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NucLoadedContentComponent } from './loaded-content-component';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { NucLoadedContentDirective } from './loaded-content-directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class NucLoadedContentModule {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentModule, declarations: [NucLoadedContentDirective, NucLoadedContentComponent], imports: [CommonModule,
|
|
12
|
+
MatProgressSpinnerModule,
|
|
13
|
+
MatButtonModule,
|
|
14
|
+
MatIconModule], exports: [NucLoadedContentDirective] }); }
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentModule, imports: [CommonModule,
|
|
16
|
+
MatProgressSpinnerModule,
|
|
17
|
+
MatButtonModule,
|
|
18
|
+
MatIconModule] }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucLoadedContentModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
declarations: [NucLoadedContentDirective, NucLoadedContentComponent],
|
|
24
|
+
imports: [
|
|
25
|
+
CommonModule,
|
|
26
|
+
MatProgressSpinnerModule,
|
|
27
|
+
MatButtonModule,
|
|
28
|
+
MatIconModule,
|
|
29
|
+
],
|
|
30
|
+
exports: [NucLoadedContentDirective],
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVkLWNvbnRlbnQtbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9sb2FkZWQtY29udGVudC9sb2FkZWQtY29udGVudC1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFZdkUsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBVGxCLHlCQUF5QixFQUFFLHlCQUF5QixhQUVqRSxZQUFZO1lBQ1osd0JBQXdCO1lBQ3hCLGVBQWU7WUFDZixhQUFhLGFBRUwseUJBQXlCO2dIQUV4QixzQkFBc0IsWUFQL0IsWUFBWTtZQUNaLHdCQUF3QjtZQUN4QixlQUFlO1lBQ2YsYUFBYTs7NEZBSUosc0JBQXNCO2tCQVZsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO29CQUNwRSxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVjTG9hZGVkQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVkLWNvbnRlbnQtY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOdWNMb2FkZWRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9sb2FkZWQtY29udGVudC1kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOdWNMb2FkZWRDb250ZW50RGlyZWN0aXZlLCBOdWNMb2FkZWRDb250ZW50Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtOdWNMb2FkZWRDb250ZW50RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVjTG9hZGVkQ29udGVudE1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { tap } from 'rxjs/operators';
|
|
2
|
+
export var LoadingStatus;
|
|
3
|
+
(function (LoadingStatus) {
|
|
4
|
+
LoadingStatus[LoadingStatus["completed"] = 0] = "completed";
|
|
5
|
+
LoadingStatus[LoadingStatus["inProgress"] = 1] = "inProgress";
|
|
6
|
+
LoadingStatus[LoadingStatus["failed"] = 2] = "failed";
|
|
7
|
+
LoadingStatus[LoadingStatus["undefined"] = 3] = "undefined";
|
|
8
|
+
})(LoadingStatus || (LoadingStatus = {}));
|
|
9
|
+
export class LoadingState {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._status = LoadingStatus.undefined;
|
|
12
|
+
}
|
|
13
|
+
get status() {
|
|
14
|
+
return this._status;
|
|
15
|
+
}
|
|
16
|
+
get message() {
|
|
17
|
+
return this._message;
|
|
18
|
+
}
|
|
19
|
+
get errorDetails() {
|
|
20
|
+
return this._errorDetails;
|
|
21
|
+
}
|
|
22
|
+
load(observable, resultFunction, errorFunction, completeFunction) {
|
|
23
|
+
return this._load(true, undefined, observable, resultFunction, errorFunction, completeFunction);
|
|
24
|
+
}
|
|
25
|
+
loadWithMessage(observable, message, resultFunction, errorFunction, completeFunction) {
|
|
26
|
+
this._initialMessage = message;
|
|
27
|
+
return this._load(true, message, observable, resultFunction, errorFunction, completeFunction);
|
|
28
|
+
}
|
|
29
|
+
invoke(observable, resultFunction, errorFunction, completeFunction) {
|
|
30
|
+
return this._load(false, undefined, observable, resultFunction, errorFunction, completeFunction);
|
|
31
|
+
}
|
|
32
|
+
invokeWithMessage(observable, message, resultFunction, errorFunction, completeFunction) {
|
|
33
|
+
this._initialMessage = message;
|
|
34
|
+
return this._load(false, message, observable, resultFunction, errorFunction, completeFunction);
|
|
35
|
+
}
|
|
36
|
+
retry() {
|
|
37
|
+
if (this._lastSubscription) {
|
|
38
|
+
this._lastSubscription.unsubscribe();
|
|
39
|
+
}
|
|
40
|
+
this.setInProgress(this._initialMessage);
|
|
41
|
+
this._lastSubscription = this._loadObservable.subscribe({
|
|
42
|
+
next: this._resultFunction,
|
|
43
|
+
error: this._errorFunction,
|
|
44
|
+
complete: this._completeFunction,
|
|
45
|
+
});
|
|
46
|
+
return this._lastSubscription;
|
|
47
|
+
}
|
|
48
|
+
setInProgress(message) {
|
|
49
|
+
this._status = LoadingStatus.inProgress;
|
|
50
|
+
this._message = message;
|
|
51
|
+
}
|
|
52
|
+
setCompleted() {
|
|
53
|
+
this._status = LoadingStatus.completed;
|
|
54
|
+
}
|
|
55
|
+
setFailed(message, error) {
|
|
56
|
+
this._status = LoadingStatus.failed;
|
|
57
|
+
this._message = message;
|
|
58
|
+
this._errorDetails = error;
|
|
59
|
+
}
|
|
60
|
+
_load(saveAsLoadObservable, progressMessage, observable, resultFunction, errorFunction, completeFunction) {
|
|
61
|
+
if (this._lastSubscription) {
|
|
62
|
+
this._lastSubscription.unsubscribe();
|
|
63
|
+
}
|
|
64
|
+
this.setInProgress(progressMessage);
|
|
65
|
+
const obs = observable.pipe(tap({
|
|
66
|
+
next: () => {
|
|
67
|
+
if (!saveAsLoadObservable && this.message) {
|
|
68
|
+
// if message was used one time we clear it
|
|
69
|
+
this._message = undefined;
|
|
70
|
+
}
|
|
71
|
+
this.setCompleted();
|
|
72
|
+
},
|
|
73
|
+
error: (err) => {
|
|
74
|
+
this.setFailed(undefined, LoadingState.getErrorDetails(err));
|
|
75
|
+
},
|
|
76
|
+
}));
|
|
77
|
+
if (saveAsLoadObservable) {
|
|
78
|
+
this._loadObservable = obs;
|
|
79
|
+
this._resultFunction = resultFunction;
|
|
80
|
+
this._errorFunction = errorFunction;
|
|
81
|
+
this._completeFunction = completeFunction;
|
|
82
|
+
}
|
|
83
|
+
this._lastSubscription = obs.subscribe({
|
|
84
|
+
next: resultFunction,
|
|
85
|
+
error: errorFunction,
|
|
86
|
+
complete: completeFunction,
|
|
87
|
+
});
|
|
88
|
+
return this._lastSubscription;
|
|
89
|
+
}
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
91
|
+
static getErrorDetails(error) {
|
|
92
|
+
// this routine tries to get the best error details from:
|
|
93
|
+
// - standard rfc7807 http error: https://datatracker.ietf.org/doc/html/rfc7807
|
|
94
|
+
// - angular HttpError
|
|
95
|
+
// - JS Error object
|
|
96
|
+
const problem = error?.error;
|
|
97
|
+
if (problem?.title && problem?.detail) {
|
|
98
|
+
return `${problem.title}: ${problem.detail}`;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
return problem?.title || problem?.detail || error.message || error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcvbnVjbGV1cy9udWNsZXVzLW1hdGVyaWFsL3NyYy9saWIvbG9hZGVkLWNvbnRlbnQvbG9hZGluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsTUFBTSxDQUFOLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2QiwyREFBUyxDQUFBO0lBQ1QsNkRBQVUsQ0FBQTtJQUNWLHFEQUFNLENBQUE7SUFDTiwyREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUxXLGFBQWEsS0FBYixhQUFhLFFBS3hCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFDVSxZQUFPLEdBQWtCLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFpTDNELENBQUM7SUFyS0MsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU0sSUFBSSxDQUNULFVBQXlCLEVBQ3pCLGNBQW9DLEVBQ3BDLGFBQWtELEVBQ2xELGdCQUE2QjtRQUU3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsSUFBSSxFQUNKLFNBQVMsRUFDVCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFTSxlQUFlLENBQ3BCLFVBQXlCLEVBQ3pCLE9BQWUsRUFDZixjQUFvQyxFQUNwQyxhQUFrRCxFQUNsRCxnQkFBNkI7UUFFN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUNmLElBQUksRUFDSixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLENBQ2pCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUNYLFVBQXlCLEVBQ3pCLGNBQW9DLEVBQ3BDLGFBQWtELEVBQ2xELGdCQUE2QjtRQUU3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFTSxpQkFBaUIsQ0FDdEIsVUFBeUIsRUFDekIsT0FBZSxFQUNmLGNBQW9DLEVBQ3BDLGFBQWtELEVBQ2xELGdCQUE2QjtRQUU3QixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsS0FBSyxFQUNMLE9BQU8sRUFDUCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO1lBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsZUFBZTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxTQUFTLENBQUMsT0FBZ0IsRUFBRSxLQUFjO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRU8sS0FBSyxDQUNYLG9CQUE2QixFQUM3QixlQUFtQyxFQUNuQyxVQUF5QixFQUN6QixjQUFvQyxFQUNwQyxhQUFrRCxFQUNsRCxnQkFBNkI7UUFFN0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUM7WUFDRixJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUN6QywyQ0FBMkM7b0JBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO2lCQUMzQjtnQkFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRCxDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLG9CQUFvQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztTQUMzQztRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ3JDLElBQUksRUFBRSxjQUFjO1lBQ3BCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFFBQVEsRUFBRSxnQkFBZ0I7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELDhEQUE4RDtJQUN2RCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQVU7UUFDdEMseURBQXlEO1FBQ3pELCtFQUErRTtRQUMvRSxzQkFBc0I7UUFDdEIsb0JBQW9CO1FBRXBCLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDN0IsSUFBSSxPQUFPLEVBQUUsS0FBSyxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlDO2FBQU07WUFDTCxPQUFPLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztTQUNwRTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBlbnVtIExvYWRpbmdTdGF0dXMge1xuICBjb21wbGV0ZWQsXG4gIGluUHJvZ3Jlc3MsXG4gIGZhaWxlZCxcbiAgdW5kZWZpbmVkLFxufVxuXG5leHBvcnQgY2xhc3MgTG9hZGluZ1N0YXRlIHtcbiAgcHJpdmF0ZSBfc3RhdHVzOiBMb2FkaW5nU3RhdHVzID0gTG9hZGluZ1N0YXR1cy51bmRlZmluZWQ7XG4gIHByaXZhdGUgX2luaXRpYWxNZXNzYWdlOiBzdHJpbmc7XG4gIHByaXZhdGUgX21lc3NhZ2U/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2Vycm9yRGV0YWlscz86IHN0cmluZztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBfcmVzdWx0RnVuY3Rpb24/OiAocmVzdWx0OiBhbnkpID0+IHZvaWQ7XG4gIHByaXZhdGUgX2Vycm9yRnVuY3Rpb24/OiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkO1xuICBwcml2YXRlIF9jb21wbGV0ZUZ1bmN0aW9uPzogKCkgPT4gdm9pZDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBfbG9hZE9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBfbGFzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBzdGF0dXMoKTogTG9hZGluZ1N0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgfVxuXG4gIGdldCBtZXNzYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xuICB9XG5cbiAgZ2V0IGVycm9yRGV0YWlscygpIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JEZXRhaWxzO1xuICB9XG5cbiAgcHVibGljIGxvYWQ8VD4oXG4gICAgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPixcbiAgICByZXN1bHRGdW5jdGlvbj86IChyZXN1bHQ6IFQpID0+IHZvaWQsXG4gICAgZXJyb3JGdW5jdGlvbj86IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQsXG4gICAgY29tcGxldGVGdW5jdGlvbj86ICgpID0+IHZvaWRcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWQoXG4gICAgICB0cnVlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgb2JzZXJ2YWJsZSxcbiAgICAgIHJlc3VsdEZ1bmN0aW9uLFxuICAgICAgZXJyb3JGdW5jdGlvbixcbiAgICAgIGNvbXBsZXRlRnVuY3Rpb25cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGxvYWRXaXRoTWVzc2FnZTxUPihcbiAgICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICByZXN1bHRGdW5jdGlvbj86IChyZXN1bHQ6IFQpID0+IHZvaWQsXG4gICAgZXJyb3JGdW5jdGlvbj86IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQsXG4gICAgY29tcGxldGVGdW5jdGlvbj86ICgpID0+IHZvaWRcbiAgKTogU3Vic2NyaXB0aW9uIHtcbiAgICB0aGlzLl9pbml0aWFsTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWQoXG4gICAgICB0cnVlLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIG9ic2VydmFibGUsXG4gICAgICByZXN1bHRGdW5jdGlvbixcbiAgICAgIGVycm9yRnVuY3Rpb24sXG4gICAgICBjb21wbGV0ZUZ1bmN0aW9uXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBpbnZva2U8VD4oXG4gICAgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPixcbiAgICByZXN1bHRGdW5jdGlvbj86IChyZXN1bHQ6IFQpID0+IHZvaWQsXG4gICAgZXJyb3JGdW5jdGlvbj86IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQsXG4gICAgY29tcGxldGVGdW5jdGlvbj86ICgpID0+IHZvaWRcbiAgKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZChcbiAgICAgIGZhbHNlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgb2JzZXJ2YWJsZSxcbiAgICAgIHJlc3VsdEZ1bmN0aW9uLFxuICAgICAgZXJyb3JGdW5jdGlvbixcbiAgICAgIGNvbXBsZXRlRnVuY3Rpb25cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGludm9rZVdpdGhNZXNzYWdlPFQ+KFxuICAgIG9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIHJlc3VsdEZ1bmN0aW9uPzogKHJlc3VsdDogVCkgPT4gdm9pZCxcbiAgICBlcnJvckZ1bmN0aW9uPzogKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdm9pZCxcbiAgICBjb21wbGV0ZUZ1bmN0aW9uPzogKCkgPT4gdm9pZFxuICApOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuX2luaXRpYWxNZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXR1cm4gdGhpcy5fbG9hZChcbiAgICAgIGZhbHNlLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIG9ic2VydmFibGUsXG4gICAgICByZXN1bHRGdW5jdGlvbixcbiAgICAgIGVycm9yRnVuY3Rpb24sXG4gICAgICBjb21wbGV0ZUZ1bmN0aW9uXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZXRyeSgpIHtcbiAgICBpZiAodGhpcy5fbGFzdFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fbGFzdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnNldEluUHJvZ3Jlc3ModGhpcy5faW5pdGlhbE1lc3NhZ2UpO1xuICAgIHRoaXMuX2xhc3RTdWJzY3JpcHRpb24gPSB0aGlzLl9sb2FkT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogdGhpcy5fcmVzdWx0RnVuY3Rpb24sXG4gICAgICBlcnJvcjogdGhpcy5fZXJyb3JGdW5jdGlvbixcbiAgICAgIGNvbXBsZXRlOiB0aGlzLl9jb21wbGV0ZUZ1bmN0aW9uLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9sYXN0U3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldEluUHJvZ3Jlc3MobWVzc2FnZT86IHN0cmluZykge1xuICAgIHRoaXMuX3N0YXR1cyA9IExvYWRpbmdTdGF0dXMuaW5Qcm9ncmVzcztcbiAgICB0aGlzLl9tZXNzYWdlID0gbWVzc2FnZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5fc3RhdHVzID0gTG9hZGluZ1N0YXR1cy5jb21wbGV0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0RmFpbGVkKG1lc3NhZ2U/OiBzdHJpbmcsIGVycm9yPzogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3RhdHVzID0gTG9hZGluZ1N0YXR1cy5mYWlsZWQ7XG4gICAgdGhpcy5fbWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5fZXJyb3JEZXRhaWxzID0gZXJyb3I7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkPFQ+KFxuICAgIHNhdmVBc0xvYWRPYnNlcnZhYmxlOiBib29sZWFuLFxuICAgIHByb2dyZXNzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sXG4gICAgcmVzdWx0RnVuY3Rpb24/OiAocmVzdWx0OiBUKSA9PiB2b2lkLFxuICAgIGVycm9yRnVuY3Rpb24/OiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkLFxuICAgIGNvbXBsZXRlRnVuY3Rpb24/OiAoKSA9PiB2b2lkXG4gICk6IFN1YnNjcmlwdGlvbiB7XG4gICAgaWYgKHRoaXMuX2xhc3RTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2xhc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEluUHJvZ3Jlc3MocHJvZ3Jlc3NNZXNzYWdlKTtcbiAgICBjb25zdCBvYnMgPSBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICB0YXAoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFzYXZlQXNMb2FkT2JzZXJ2YWJsZSAmJiB0aGlzLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIC8vIGlmIG1lc3NhZ2Ugd2FzIHVzZWQgb25lIHRpbWUgd2UgY2xlYXIgaXRcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2V0Q29tcGxldGVkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRGYWlsZWQodW5kZWZpbmVkLCBMb2FkaW5nU3RhdGUuZ2V0RXJyb3JEZXRhaWxzKGVycikpO1xuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHNhdmVBc0xvYWRPYnNlcnZhYmxlKSB7XG4gICAgICB0aGlzLl9sb2FkT2JzZXJ2YWJsZSA9IG9icztcbiAgICAgIHRoaXMuX3Jlc3VsdEZ1bmN0aW9uID0gcmVzdWx0RnVuY3Rpb247XG4gICAgICB0aGlzLl9lcnJvckZ1bmN0aW9uID0gZXJyb3JGdW5jdGlvbjtcbiAgICAgIHRoaXMuX2NvbXBsZXRlRnVuY3Rpb24gPSBjb21wbGV0ZUZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuX2xhc3RTdWJzY3JpcHRpb24gPSBvYnMuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlc3VsdEZ1bmN0aW9uLFxuICAgICAgZXJyb3I6IGVycm9yRnVuY3Rpb24sXG4gICAgICBjb21wbGV0ZTogY29tcGxldGVGdW5jdGlvbixcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fbGFzdFN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBzdGF0aWMgZ2V0RXJyb3JEZXRhaWxzKGVycm9yOiBhbnkpIHtcbiAgICAvLyB0aGlzIHJvdXRpbmUgdHJpZXMgdG8gZ2V0IHRoZSBiZXN0IGVycm9yIGRldGFpbHMgZnJvbTpcbiAgICAvLyAtIHN0YW5kYXJkIHJmYzc4MDcgaHR0cCBlcnJvcjogaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3ODA3XG4gICAgLy8gLSBhbmd1bGFyIEh0dHBFcnJvclxuICAgIC8vIC0gSlMgRXJyb3Igb2JqZWN0XG5cbiAgICBjb25zdCBwcm9ibGVtID0gZXJyb3I/LmVycm9yO1xuICAgIGlmIChwcm9ibGVtPy50aXRsZSAmJiBwcm9ibGVtPy5kZXRhaWwpIHtcbiAgICAgIHJldHVybiBgJHtwcm9ibGVtLnRpdGxlfTogJHtwcm9ibGVtLmRldGFpbH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcHJvYmxlbT8udGl0bGUgfHwgcHJvYmxlbT8uZGV0YWlsIHx8IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var NucSnackbarType;
|
|
2
|
+
(function (NucSnackbarType) {
|
|
3
|
+
NucSnackbarType["Info"] = "info";
|
|
4
|
+
NucSnackbarType["Warning"] = "warning";
|
|
5
|
+
NucSnackbarType["Danger"] = "danger";
|
|
6
|
+
NucSnackbarType["Success"] = "success";
|
|
7
|
+
NucSnackbarType["Progress"] = "progress";
|
|
8
|
+
})(NucSnackbarType || (NucSnackbarType = {}));
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9zbmFja2Jhci9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZUFNWDtBQU5ELFdBQVksZUFBZTtJQUN6QixnQ0FBYSxDQUFBO0lBQ2Isc0NBQW1CLENBQUE7SUFDbkIsb0NBQWlCLENBQUE7SUFDakIsc0NBQW1CLENBQUE7SUFDbkIsd0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQU5XLGVBQWUsS0FBZixlQUFlLFFBTTFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTnVjU25hY2tiYXJUeXBlIHtcbiAgSW5mbyA9ICdpbmZvJyxcbiAgV2FybmluZyA9ICd3YXJuaW5nJyxcbiAgRGFuZ2VyID0gJ2RhbmdlcicsXG4gIFN1Y2Nlc3MgPSAnc3VjY2VzcycsXG4gIFByb2dyZXNzID0gJ3Byb2dyZXNzJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, ElementRef, Inject, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/progress-spinner";
|
|
5
|
+
export class ProgressSnackbarComponent {
|
|
6
|
+
constructor(
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
data, elem) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
this.elem = elem;
|
|
11
|
+
}
|
|
12
|
+
ngAfterViewInit() {
|
|
13
|
+
const element = this.elem.nativeElement;
|
|
14
|
+
const circle = element.querySelector('circle');
|
|
15
|
+
const message = element.querySelector('.message');
|
|
16
|
+
const color = window.getComputedStyle(message).color;
|
|
17
|
+
circle.style.stroke = color;
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressSnackbarComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressSnackbarComponent, selector: "lib-progress-snackbar", host: { classAttribute: "mat-simple-snackbar" }, ngImport: i0, template: "<div class=\"mat-simple-snack-bar-content message\">\n <mat-spinner\n style=\"vertical-align: middle; display: inline-flex; margin-right: 8px\"\n diameter=\"16\"\n strokeWidth=\"1.5\"\n mode=\"indeterminate\"\n class=\"spinner\"\n color=\"red\"\n ></mat-spinner>\n {{ data.message }}\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressSnackbarComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'lib-progress-snackbar', encapsulation: ViewEncapsulation.None, host: {
|
|
25
|
+
class: 'mat-simple-snackbar',
|
|
26
|
+
}, template: "<div class=\"mat-simple-snack-bar-content message\">\n <mat-spinner\n style=\"vertical-align: middle; display: inline-flex; margin-right: 8px\"\n diameter=\"16\"\n strokeWidth=\"1.5\"\n mode=\"indeterminate\"\n class=\"spinner\"\n color=\"red\"\n ></mat-spinner>\n {{ data.message }}\n</div>\n" }]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
28
|
+
type: Inject,
|
|
29
|
+
args: [MAT_SNACK_BAR_DATA]
|
|
30
|
+
}] }, { type: i0.ElementRef }]; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtc25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9zbmFja2Jhci9wcm9ncmVzcy1zbmFja2Jhci9wcm9ncmVzcy1zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nL251Y2xldXMvbnVjbGV1cy1tYXRlcmlhbC9zcmMvbGliL3NuYWNrYmFyL3Byb2dyZXNzLXNuYWNrYmFyL3Byb2dyZXNzLXNuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQVlqRSxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDO0lBQ0UsOERBQThEO0lBQzNCLElBQVMsRUFDcEMsSUFBZ0I7UUFEVyxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdkIsQ0FBQztJQUVKLGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNyRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQzsrR0FiVSx5QkFBeUIsa0JBRzFCLGtCQUFrQjttR0FIakIseUJBQXlCLDhHQ25CdEMsNFRBV0E7OzRGRFFhLHlCQUF5QjtrQkFWckMsU0FBUzsrQkFDRSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUksUUFFL0I7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtxQkFDN0I7OzBCQUtFLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9TTkFDS19CQVJfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcm9ncmVzcy1zbmFja2JhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1zbmFja2Jhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLXNuYWNrYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdtYXQtc2ltcGxlLXNuYWNrYmFyJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NTbmFja2JhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBJbmplY3QoTUFUX1NOQUNLX0JBUl9EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIHByaXZhdGUgZWxlbTogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBjaXJjbGUgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NpcmNsZScpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tZXNzYWdlJyk7XG4gICAgY29uc3QgY29sb3IgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShtZXNzYWdlKS5jb2xvcjtcbiAgICBjaXJjbGUuc3R5bGUuc3Ryb2tlID0gY29sb3I7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYXQtc2ltcGxlLXNuYWNrLWJhci1jb250ZW50IG1lc3NhZ2VcIj5cbiAgPG1hdC1zcGlubmVyXG4gICAgc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgbWFyZ2luLXJpZ2h0OiA4cHhcIlxuICAgIGRpYW1ldGVyPVwiMTZcIlxuICAgIHN0cm9rZVdpZHRoPVwiMS41XCJcbiAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgY2xhc3M9XCJzcGlubmVyXCJcbiAgICBjb2xvcj1cInJlZFwiXG4gID48L21hdC1zcGlubmVyPlxuICB7eyBkYXRhLm1lc3NhZ2UgfX1cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
4
|
+
import { ProgressSnackbarComponent } from './progress-snackbar/progress-snackbar.component';
|
|
5
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class NucSnackbarModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NucSnackbarModule, declarations: [ProgressSnackbarComponent], imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucSnackbarModule, imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule] }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NucSnackbarModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [ProgressSnackbarComponent],
|
|
16
|
+
imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule],
|
|
17
|
+
exports: [],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy9udWNsZXVzL251Y2xldXMtbWF0ZXJpYWwvc3JjL2xpYi9zbmFja2Jhci9zbmFja2Jhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBTzlFLE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQUpiLHlCQUF5QixhQUM5QixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCO2dIQUd4RCxpQkFBaUIsWUFIbEIsWUFBWSxFQUFFLGlCQUFpQixFQUFFLHdCQUF3Qjs7NEZBR3hELGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixDQUFDO29CQUNwRSxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3Mtc25hY2tiYXIvcHJvZ3Jlc3Mtc25hY2tiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQcm9ncmVzc1NuYWNrYmFyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0U25hY2tCYXJNb2R1bGUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBOdWNTbmFja2Jhck1vZHVsZSB7fVxuIl19
|