@lenne.tech/ng-base 14.0.1 → 14.0.4
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/base-components/components/upload-image/upload-image.component.d.ts +3 -1
- package/esm2020/base-components/components/upload-image/upload-image.component.mjs +21 -8
- package/esm2020/src/factories/apollo-options.factory.mjs +2 -2
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +17 -5
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base.mjs +1 -1
- package/fesm2015/lenne.tech-ng-base.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +17 -5
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base.mjs +1 -1
- package/fesm2020/lenne.tech-ng-base.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { AuthService } from '@lenne.tech/ng-base/shared';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class UploadImageComponent {
|
|
5
6
|
private httpClient;
|
|
7
|
+
private authService;
|
|
6
8
|
id: string;
|
|
7
9
|
name: string;
|
|
8
10
|
label?: string;
|
|
@@ -21,7 +23,7 @@ export declare class UploadImageComponent {
|
|
|
21
23
|
selectedFile: File;
|
|
22
24
|
fileUrl: string;
|
|
23
25
|
loading: boolean;
|
|
24
|
-
constructor(httpClient: HttpClient);
|
|
26
|
+
constructor(httpClient: HttpClient, authService: AuthService);
|
|
25
27
|
/**
|
|
26
28
|
* The dragOver function is called when the user drags a file over the dropzone. It prevents the default action of the
|
|
27
29
|
* event, and sets the dragText to 'Release to Upload' and the dragActive to true
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common/http";
|
|
4
|
-
import * as i2 from "@
|
|
5
|
+
import * as i2 from "@lenne.tech/ng-base/shared";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
5
7
|
export class UploadImageComponent {
|
|
6
|
-
constructor(httpClient) {
|
|
8
|
+
constructor(httpClient, authService) {
|
|
7
9
|
this.httpClient = httpClient;
|
|
10
|
+
this.authService = authService;
|
|
8
11
|
this.supportText = 'Supports: JPEG, JPG, PNG';
|
|
9
12
|
this.required = false;
|
|
10
13
|
this.dragText = 'Drag & Drop';
|
|
@@ -86,7 +89,12 @@ export class UploadImageComponent {
|
|
|
86
89
|
upload() {
|
|
87
90
|
const data = new FormData();
|
|
88
91
|
data.append('file', this.selectedFile);
|
|
89
|
-
|
|
92
|
+
const httpOptions = {
|
|
93
|
+
headers: new HttpHeaders({
|
|
94
|
+
Authorization: 'Bearer ' + this.authService.token,
|
|
95
|
+
}),
|
|
96
|
+
};
|
|
97
|
+
this.httpClient.post(this.url + this.uploadPath, data, httpOptions).subscribe((result) => {
|
|
90
98
|
if (result?.id) {
|
|
91
99
|
this.control.setValue(result.id);
|
|
92
100
|
this.imageUploaded.emit(result.id);
|
|
@@ -104,7 +112,12 @@ export class UploadImageComponent {
|
|
|
104
112
|
this.selectedFile = null;
|
|
105
113
|
this.fileUrl = null;
|
|
106
114
|
if (id) {
|
|
107
|
-
|
|
115
|
+
const httpOptions = {
|
|
116
|
+
headers: new HttpHeaders({
|
|
117
|
+
Authorization: 'Bearer ' + this.authService.token,
|
|
118
|
+
}),
|
|
119
|
+
};
|
|
120
|
+
this.httpClient.delete(this.url + this.deletePath + id, httpOptions).subscribe((result) => {
|
|
108
121
|
this.selectedFile = null;
|
|
109
122
|
this.fileUrl = null;
|
|
110
123
|
this.control.setValue('');
|
|
@@ -114,12 +127,12 @@ export class UploadImageComponent {
|
|
|
114
127
|
}
|
|
115
128
|
}
|
|
116
129
|
}
|
|
117
|
-
UploadImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UploadImageComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
-
UploadImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UploadImageComponent, selector: "base-upload-image", inputs: { id: "id", name: "name", label: "label", supportText: "supportText", required: "required", dragText: "dragText", validExtensions: "validExtensions", control: "control", url: "url", uploadPath: "uploadPath", deletePath: "deletePath", path: "path" }, outputs: { imageUploaded: "imageUploaded", imageDeleted: "imageDeleted" }, ngImport: i0, template: "<div class=\"form-group mt-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <div\n class=\"drag-area\"\n (dragover)=\"dragOver($event)\"\n (dragleave)=\"dragLeave($event)\"\n (drop)=\"drop($event)\"\n [ngClass]=\"{ active: dragActive }\"\n >\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n\n <ng-container *ngIf=\"selectedFile && !control?.value && !loading\">\n <img [src]=\"fileUrl\" *ngIf=\"selectedFile\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile()\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"control?.value && !loading\">\n <img [src]=\"url + path + control?.value\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile(control?.value)\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"!selectedFile && !control?.value && !loading\">\n <div class=\"icon\">\n <i class=\"bi bi-images\"></i>\n </div>\n\n <span class=\"header\">{{ dragText }}</span>\n <span class=\"header\">or <span class=\"button\" (click)=\"fileInput.click()\">browse</span></span>\n <input type=\"file\" (change)=\"selectFile($event)\" hidden #fileInput />\n <span class=\"support\">{{ supportText }}</span>\n </ng-container>\n </div>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [":host{--base-upload-image-area-bg: #ffffff;--base-upload-image-area-border-color: #e1e1e1;--base-upload-image-area-height: 400px}.required:after{content:\" *\"}.drag-area{height:var(--base-upload-image-area-height);border:2px dashed var(--base-upload-image-area-border-color);background-color:var(--base-upload-image-area-bg);display:flex;flex-direction:column;justify-content:center;align-items:center;margin:10px auto;padding:20px}.drag-area img{height:100%;max-height:300px;max-width:100%;object-fit:scale-down}.drag-area .btn-danger{margin-top:auto}.drag-area .icon{font-size:50px;color:var(--bs-primary)}.drag-area .header{font-size:20px;font-weight:500}.drag-area .support{font-size:12px;color:#e1e1e1;margin:10px 0 15px}.drag-area .button{font-size:20px;font-weight:500;color:var(--bs-primary);cursor:pointer}.active{border:2px solid var(--bs-primary)}\n"], dependencies: [{ kind: "directive", type:
|
|
130
|
+
UploadImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UploadImageComponent, deps: [{ token: i1.HttpClient }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
+
UploadImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UploadImageComponent, selector: "base-upload-image", inputs: { id: "id", name: "name", label: "label", supportText: "supportText", required: "required", dragText: "dragText", validExtensions: "validExtensions", control: "control", url: "url", uploadPath: "uploadPath", deletePath: "deletePath", path: "path" }, outputs: { imageUploaded: "imageUploaded", imageDeleted: "imageDeleted" }, ngImport: i0, template: "<div class=\"form-group mt-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <div\n class=\"drag-area\"\n (dragover)=\"dragOver($event)\"\n (dragleave)=\"dragLeave($event)\"\n (drop)=\"drop($event)\"\n [ngClass]=\"{ active: dragActive }\"\n >\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n\n <ng-container *ngIf=\"selectedFile && !control?.value && !loading\">\n <img [src]=\"fileUrl\" *ngIf=\"selectedFile\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile()\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"control?.value && !loading\">\n <img [src]=\"url + path + control?.value\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile(control?.value)\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"!selectedFile && !control?.value && !loading\">\n <div class=\"icon\">\n <i class=\"bi bi-images\"></i>\n </div>\n\n <span class=\"header\">{{ dragText }}</span>\n <span class=\"header\">or <span class=\"button\" (click)=\"fileInput.click()\">browse</span></span>\n <input type=\"file\" (change)=\"selectFile($event)\" hidden #fileInput />\n <span class=\"support\">{{ supportText }}</span>\n </ng-container>\n </div>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [":host{--base-upload-image-area-bg: #ffffff;--base-upload-image-area-border-color: #e1e1e1;--base-upload-image-area-height: 400px}.required:after{content:\" *\"}.drag-area{height:var(--base-upload-image-area-height);border:2px dashed var(--base-upload-image-area-border-color);background-color:var(--base-upload-image-area-bg);display:flex;flex-direction:column;justify-content:center;align-items:center;margin:10px auto;padding:20px}.drag-area img{height:100%;max-height:300px;max-width:100%;object-fit:scale-down}.drag-area .btn-danger{margin-top:auto}.drag-area .icon{font-size:50px;color:var(--bs-primary)}.drag-area .header{font-size:20px;font-weight:500}.drag-area .support{font-size:12px;color:#e1e1e1;margin:10px 0 15px}.drag-area .button{font-size:20px;font-weight:500;color:var(--bs-primary);cursor:pointer}.active{border:2px solid var(--bs-primary)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
119
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UploadImageComponent, decorators: [{
|
|
120
133
|
type: Component,
|
|
121
134
|
args: [{ selector: 'base-upload-image', template: "<div class=\"form-group mt-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <div\n class=\"drag-area\"\n (dragover)=\"dragOver($event)\"\n (dragleave)=\"dragLeave($event)\"\n (drop)=\"drop($event)\"\n [ngClass]=\"{ active: dragActive }\"\n >\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n\n <ng-container *ngIf=\"selectedFile && !control?.value && !loading\">\n <img [src]=\"fileUrl\" *ngIf=\"selectedFile\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile()\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"control?.value && !loading\">\n <img [src]=\"url + path + control?.value\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile(control?.value)\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"!selectedFile && !control?.value && !loading\">\n <div class=\"icon\">\n <i class=\"bi bi-images\"></i>\n </div>\n\n <span class=\"header\">{{ dragText }}</span>\n <span class=\"header\">or <span class=\"button\" (click)=\"fileInput.click()\">browse</span></span>\n <input type=\"file\" (change)=\"selectFile($event)\" hidden #fileInput />\n <span class=\"support\">{{ supportText }}</span>\n </ng-container>\n </div>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [":host{--base-upload-image-area-bg: #ffffff;--base-upload-image-area-border-color: #e1e1e1;--base-upload-image-area-height: 400px}.required:after{content:\" *\"}.drag-area{height:var(--base-upload-image-area-height);border:2px dashed var(--base-upload-image-area-border-color);background-color:var(--base-upload-image-area-bg);display:flex;flex-direction:column;justify-content:center;align-items:center;margin:10px auto;padding:20px}.drag-area img{height:100%;max-height:300px;max-width:100%;object-fit:scale-down}.drag-area .btn-danger{margin-top:auto}.drag-area .icon{font-size:50px;color:var(--bs-primary)}.drag-area .header{font-size:20px;font-weight:500}.drag-area .support{font-size:12px;color:#e1e1e1;margin:10px 0 15px}.drag-area .button{font-size:20px;font-weight:500;color:var(--bs-primary);cursor:pointer}.active{border:2px solid var(--bs-primary)}\n"] }]
|
|
122
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; }, propDecorators: { id: [{
|
|
135
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }]; }, propDecorators: { id: [{
|
|
123
136
|
type: Input
|
|
124
137
|
}], name: [{
|
|
125
138
|
type: Input
|
|
@@ -148,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
148
161
|
}], imageDeleted: [{
|
|
149
162
|
type: Output
|
|
150
163
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWltYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL2NvbXBvbmVudHMvdXBsb2FkLWltYWdlL3VwbG9hZC1pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3VwbG9hZC1pbWFnZS91cGxvYWQtaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sb0JBQW9CO0lBc0IvQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbEJqQyxnQkFBVyxHQUFHLDBCQUEwQixDQUFDO1FBQ3pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLGFBQWEsQ0FBQztRQUN6QixvQkFBZSxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUzRCxRQUFHLEdBQUcsdUJBQXVCLENBQUM7UUFDOUIsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUM3QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxTQUFTLENBQUM7UUFFaEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR25CLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFFNkIsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2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QVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O2lIQTdIVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzWUNSakMsbXJFQWtEQTsyRkQxQ2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjtpR0FLcEIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtdXBsb2FkLWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1pbWFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1pbWFnZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRJbWFnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1cHBvcnRUZXh0ID0gJ1N1cHBvcnRzOiBKUEVHLCBKUEcsIFBORyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyYWdUZXh0ID0gJ0RyYWcgJiBEcm9wJztcbiAgQElucHV0KCkgdmFsaWRFeHRlbnNpb25zID0gWydpbWFnZS9qcGVnJywgJ2ltYWdlL2pwZycsICdpbWFnZS9wbmcnXTtcbiAgQElucHV0KCkgY29udHJvbDogYW55O1xuICBASW5wdXQoKSB1cmwgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJztcbiAgQElucHV0KCkgdXBsb2FkUGF0aCA9ICcvZmlsZXMvdXBsb2FkJztcbiAgQElucHV0KCkgZGVsZXRlUGF0aCA9ICcvZmlsZXMvJztcbiAgQElucHV0KCkgcGF0aCA9ICcvZmlsZXMvJztcblxuICBAT3V0cHV0KCkgaW1hZ2VVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGltYWdlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBkcmFnQWN0aXZlID0gZmFsc2U7XG4gIHNlbGVjdGVkRmlsZTogRmlsZTtcbiAgZmlsZVVybDogc3RyaW5nO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuXG4gIC8qKlxuICAgKiBUaGUgZHJhZ092ZXIgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZHJhZ3MgYSBmaWxlIG92ZXIgdGhlIGRyb3B6b25lLiBJdCBwcmV2ZW50cyB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhlXG4gICAqIGV2ZW50LCBhbmQgc2V0cyB0aGUgZHJhZ1RleHQgdG8gJ1JlbGVhc2UgdG8gVXBsb2FkJyBhbmQgdGhlIGRyYWdBY3RpdmUgdG8gdHJ1ZVxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBhbnkgLSBUaGlzIGlzIHRoZSBldmVudCB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGEgZmlsZSBvdmVyIHRoZSBkcm9wem9uZS5cbiAgICovXG4gIGRyYWdPdmVyKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZHJhZ1RleHQgPSAnUmVsZWFzZSB0byBVcGxvYWQnO1xuICAgIHRoaXMuZHJhZ0FjdGl2ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgdXNlciBkcmFncyBhIGZpbGUgb3ZlciB0aGUgZHJvcCB6b25lLCB0aGUgZHJhZ0FjdGl2ZSB2YXJpYWJsZSBpcyBzZXQgdG8gdHJ1ZSwgd2hpY2ggd2lsbCBjaGFuZ2UgdGhlIGNvbG9yIG9mXG4gICAqIHRoZSBkcm9wIHpvbmUgdG8gZ3JlZW5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IG9iamVjdCB0aGF0IGlzIHBhc3NlZCB0byB0aGUgZHJhZ0xlYXZlIGV2ZW50LlxuICAgKi9cbiAgZHJhZ0xlYXZlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmRyYWdUZXh0ID0gJ0RyYWcgJiBEcm9wJztcbiAgICB0aGlzLmRyYWdBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdGFrZXMgYW4gZXZlbnQgYXMgYSBwYXJhbWV0ZXIsIHByZXZlbnRzIHRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgZXZlbnQsIHNldHMgdGhlIFVSTCBvZiB0aGUgaW1hZ2UgdG8gdGhlXG4gICAqIGZpbGUgdGhhdCB3YXMgZHJhZ2dlZCBhbmQgZHJvcHBlZCwgc2V0cyB0aGUgdGV4dCBvZiB0aGUgZHJhZyBhbmQgZHJvcCBhcmVhIHRvIHRoZSBkZWZhdWx0IHRleHQsIGFuZCBzZXRzIHRoZVxuICAgKiBkcmFnQWN0aXZlIHZhcmlhYmxlIHRvIGZhbHNlXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCAtIGFueSAtIFRoaXMgaXMgdGhlIGV2ZW50IHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgZHJhZ3MgYW5kIGRyb3BzIGEgZmlsZS5cbiAgICovXG4gIGRyb3AoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zZXRVcmwoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdKTtcbiAgICB0aGlzLmRyYWdUZXh0ID0gJ0RyYWcgJiBEcm9wJztcbiAgICB0aGlzLmRyYWdBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhIGZpbGUgYXMgYW4gYXJndW1lbnQsIGNoZWNrcyBpZiB0aGUgZmlsZSB0eXBlIGlzIHZhbGlkLCBhbmQgaWYgaXQgaXMsIGl0IGNyZWF0ZXMgYSBuZXcgRmlsZVJlYWRlciBvYmplY3QsXG4gICAqIHNldHMgdGhlIG9ubG9hZCBmdW5jdGlvbiB0byBzZXQgdGhlIGZpbGVVcmwgdG8gdGhlIHJlc3VsdCBvZiB0aGUgZmlsZVJlYWRlciwgc2V0cyB0aGUgc2VsZWN0ZWRGaWxlIHRvIHRoZSBmaWxlLCBhbmRcbiAgICogY2FsbHMgdGhlIHVwbG9hZCBmdW5jdGlvblxuICAgKlxuICAgKiBAcGFyYW0gZmlsZSAtIGFueSAtIHRoaXMgaXMgdGhlIGZpbGUgdGhhdCBpcyBzZWxlY3RlZCBieSB0aGUgdXNlci5cbiAgICovXG4gIHNldFVybChmaWxlOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWxpZEV4dGVuc2lvbnMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICBmaWxlUmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5maWxlVXJsID0gZmlsZVJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGU7XG4gICAgICAgIHRoaXMudXBsb2FkKCk7XG4gICAgICB9O1xuICAgICAgZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdGFrZXMgYW4gZXZlbnQgYXMgYW4gYXJndW1lbnQsIGFuZCB0aGVuIHNldHMgdGhlIHVybCBvZiB0aGUgZmlsZSB0byB0aGUgZmlyc3QgZmlsZSBpbiB0aGUgZXZlbnQnc1xuICAgKiB0YXJnZXQncyBmaWxlcyBhcnJheVxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBhbnkgLSBUaGUgZXZlbnQgdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZmlsZS5cbiAgICovXG4gIHNlbGVjdEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2V0VXJsKGV2ZW50LnRhcmdldC5maWxlc1swXSk7XG4gIH1cblxuICAvKipcbiAgICogV2UgY3JlYXRlIGEgbmV3IEZvcm1EYXRhIG9iamVjdCwgYXBwZW5kIHRoZSBzZWxlY3RlZCBmaWxlIHRvIGl0LCBhbmQgdGhlbiBzZW5kIGl0IHRvIHRoZSBzZXJ2ZXJcbiAgICovXG4gIHVwbG9hZCgpIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZGF0YS5hcHBlbmQoJ2ZpbGUnLCB0aGlzLnNlbGVjdGVkRmlsZSk7XG4gICAgdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy51cmwgKyB0aGlzLnVwbG9hZFBhdGgsIGRhdGEpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQ/LmlkKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShyZXN1bHQuaWQpO1xuICAgICAgICB0aGlzLmltYWdlVXBsb2FkZWQuZW1pdChyZXN1bHQuaWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgZGVsZXRlcyB0aGUgZmlsZSBmcm9tIHRoZSBzZXJ2ZXIgYW5kIHNldHMgdGhlIHNlbGVjdGVkRmlsZSBhbmQgZmlsZVVybCB0byBudWxsXG4gICAqXG4gICAqIEBwYXJhbSBbaWRdIC0gVGhlIGlkIG9mIHRoZSBmaWxlIHRvIGRlbGV0ZS5cbiAgICovXG4gIGRlbGV0ZUZpbGUoaWQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICB0aGlzLmZpbGVVcmwgPSBudWxsO1xuXG4gICAgaWYgKGlkKSB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHRoaXMudXJsICsgdGhpcy5kZWxldGVQYXRoICsgaWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICAgICAgdGhpcy5maWxlVXJsID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5pbWFnZURlbGV0ZWQuZW1pdCgpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtM1wiPlxuICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtuZ0NsYXNzXT1cInsgcmVxdWlyZWQ6IHJlcXVpcmVkIH1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkcmFnLWFyZWFcIlxuICAgIChkcmFnb3Zlcik9XCJkcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAoZHJhZ2xlYXZlKT1cImRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAoZHJvcCk9XCJkcm9wKCRldmVudClcIlxuICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBkcmFnQWN0aXZlIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkxvYWRpbmcuLi48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpbGUgJiYgIWNvbnRyb2w/LnZhbHVlICYmICFsb2FkaW5nXCI+XG4gICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiICpuZ0lmPVwic2VsZWN0ZWRGaWxlXCIgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJkZWxldGVGaWxlKClcIj5Mw7ZzY2hlbjwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2w/LnZhbHVlICYmICFsb2FkaW5nXCI+XG4gICAgICA8aW1nIFtzcmNdPVwidXJsICsgcGF0aCArIGNvbnRyb2w/LnZhbHVlXCIgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJkZWxldGVGaWxlKGNvbnRyb2w/LnZhbHVlKVwiPkzDtnNjaGVuPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkRmlsZSAmJiAhY29udHJvbD8udmFsdWUgJiYgIWxvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktaW1hZ2VzXCI+PC9pPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyXCI+e3sgZHJhZ1RleHQgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImhlYWRlclwiPm9yIDxzcGFuIGNsYXNzPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+YnJvd3NlPC9zcGFuPjwvc3Bhbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwic2VsZWN0RmlsZSgkZXZlbnQpXCIgaGlkZGVuICNmaWxlSW5wdXQgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwic3VwcG9ydFwiPnt7IHN1cHBvcnRUZXh0IH19PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFjayBtLTJcIiAqbmdJZj1cImNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2w/LnRvdWNoZWQpXCI+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydyZXF1aXJlZCddXCI+RGllc2VzIEZlbGQgaXN0IGVpbiBQZmxpY2h0ZmVsZC48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddXCI+XG4gICAgICBEaWUgTWluZGVzdGzDpG5nZSBmw7xyIGRpZXNlcyBGZWxkIGJldHLDpGd0XG4gICAgICB7e2NvbnRyb2w/LmVycm9ycz8uWydtaW5sZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSBaZWljaGVuLlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWF4bGVuZ3RoJ11cIj5cbiAgICAgIERpZSBtYXhpbWFsZSBMw6RuZ2UgZsO8ciBkaWVzZXMgRmVsZCBiZXRyw6RndFxuICAgICAge3tjb250cm9sPy5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX0gWmVpY2hlbi5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ2VtYWlsJ11cIj5CaXR0ZSBlaW5lIGfDvGx0aWdlIEUtTWFpbCBBZHJlc3NlIGFuZ2ViZW4uPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWltYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL2NvbXBvbmVudHMvdXBsb2FkLWltYWdlL3VwbG9hZC1pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3VwbG9hZC1pbWFnZS91cGxvYWQtaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUS9ELE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW9CLFVBQXNCLEVBQVUsV0FBd0I7UUFBeEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbEJuRSxnQkFBVyxHQUFHLDBCQUEwQixDQUFDO1FBQ3pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLGFBQWEsQ0FBQztRQUN6QixvQkFBZSxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUzRCxRQUFHLEdBQUcsdUJBQXVCLENBQUM7UUFDOUIsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUM3QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxTQUFTLENBQUM7UUFFaEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR25CLFlBQU8sR0FBRyxLQUFLLENBQUM7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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtdXBsb2FkLWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1pbWFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1pbWFnZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRJbWFnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1cHBvcnRUZXh0ID0gJ1N1cHBvcnRzOiBKUEVHLCBKUEcsIFBORyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyYWdUZXh0ID0gJ0RyYWcgJiBEcm9wJztcbiAgQElucHV0KCkgdmFsaWRFeHRlbnNpb25zID0gWydpbWFnZS9qcGVnJywgJ2ltYWdlL2pwZycsICdpbWFnZS9wbmcnXTtcbiAgQElucHV0KCkgY29udHJvbDogYW55O1xuICBASW5wdXQoKSB1cmwgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJztcbiAgQElucHV0KCkgdXBsb2FkUGF0aCA9ICcvZmlsZXMvdXBsb2FkJztcbiAgQElucHV0KCkgZGVsZXRlUGF0aCA9ICcvZmlsZXMvJztcbiAgQElucHV0KCkgcGF0aCA9ICcvZmlsZXMvJztcblxuICBAT3V0cHV0KCkgaW1hZ2VVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGltYWdlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBkcmFnQWN0aXZlID0gZmFsc2U7XG4gIHNlbGVjdGVkRmlsZTogRmlsZTtcbiAgZmlsZVVybDogc3RyaW5nO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkge31cblxuICAvKipcbiAgICogVGhlIGRyYWdPdmVyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGEgZmlsZSBvdmVyIHRoZSBkcm9wem9uZS4gSXQgcHJldmVudHMgdGhlIGRlZmF1bHQgYWN0aW9uIG9mIHRoZVxuICAgKiBldmVudCwgYW5kIHNldHMgdGhlIGRyYWdUZXh0IHRvICdSZWxlYXNlIHRvIFVwbG9hZCcgYW5kIHRoZSBkcmFnQWN0aXZlIHRvIHRydWVcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gYW55IC0gVGhpcyBpcyB0aGUgZXZlbnQgdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBkcmFncyBhIGZpbGUgb3ZlciB0aGUgZHJvcHpvbmUuXG4gICAqL1xuICBkcmFnT3ZlcihldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmRyYWdUZXh0ID0gJ1JlbGVhc2UgdG8gVXBsb2FkJztcbiAgICB0aGlzLmRyYWdBY3RpdmUgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHVzZXIgZHJhZ3MgYSBmaWxlIG92ZXIgdGhlIGRyb3Agem9uZSwgdGhlIGRyYWdBY3RpdmUgdmFyaWFibGUgaXMgc2V0IHRvIHRydWUsIHdoaWNoIHdpbGwgY2hhbmdlIHRoZSBjb2xvciBvZlxuICAgKiB0aGUgZHJvcCB6b25lIHRvIGdyZWVuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSBldmVudCBvYmplY3QgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGRyYWdMZWF2ZSBldmVudC5cbiAgICovXG4gIGRyYWdMZWF2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5kcmFnVGV4dCA9ICdEcmFnICYgRHJvcCc7XG4gICAgdGhpcy5kcmFnQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRha2VzIGFuIGV2ZW50IGFzIGEgcGFyYW1ldGVyLCBwcmV2ZW50cyB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhlIGV2ZW50LCBzZXRzIHRoZSBVUkwgb2YgdGhlIGltYWdlIHRvIHRoZVxuICAgKiBmaWxlIHRoYXQgd2FzIGRyYWdnZWQgYW5kIGRyb3BwZWQsIHNldHMgdGhlIHRleHQgb2YgdGhlIGRyYWcgYW5kIGRyb3AgYXJlYSB0byB0aGUgZGVmYXVsdCB0ZXh0LCBhbmQgc2V0cyB0aGVcbiAgICogZHJhZ0FjdGl2ZSB2YXJpYWJsZSB0byBmYWxzZVxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBhbnkgLSBUaGlzIGlzIHRoZSBldmVudCB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGFuZCBkcm9wcyBhIGZpbGUuXG4gICAqL1xuICBkcm9wKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2V0VXJsKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XG4gICAgdGhpcy5kcmFnVGV4dCA9ICdEcmFnICYgRHJvcCc7XG4gICAgdGhpcy5kcmFnQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYSBmaWxlIGFzIGFuIGFyZ3VtZW50LCBjaGVja3MgaWYgdGhlIGZpbGUgdHlwZSBpcyB2YWxpZCwgYW5kIGlmIGl0IGlzLCBpdCBjcmVhdGVzIGEgbmV3IEZpbGVSZWFkZXIgb2JqZWN0LFxuICAgKiBzZXRzIHRoZSBvbmxvYWQgZnVuY3Rpb24gdG8gc2V0IHRoZSBmaWxlVXJsIHRvIHRoZSByZXN1bHQgb2YgdGhlIGZpbGVSZWFkZXIsIHNldHMgdGhlIHNlbGVjdGVkRmlsZSB0byB0aGUgZmlsZSwgYW5kXG4gICAqIGNhbGxzIHRoZSB1cGxvYWQgZnVuY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBhbnkgLSB0aGlzIGlzIHRoZSBmaWxlIHRoYXQgaXMgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBzZXRVcmwoZmlsZTogYW55KSB7XG4gICAgaWYgKHRoaXMudmFsaWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlsZVVybCA9IGZpbGVSZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlO1xuICAgICAgICB0aGlzLnVwbG9hZCgpO1xuICAgICAgfTtcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRha2VzIGFuIGV2ZW50IGFzIGFuIGFyZ3VtZW50LCBhbmQgdGhlbiBzZXRzIHRoZSB1cmwgb2YgdGhlIGZpbGUgdG8gdGhlIGZpcnN0IGZpbGUgaW4gdGhlIGV2ZW50J3NcbiAgICogdGFyZ2V0J3MgZmlsZXMgYXJyYXlcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gYW55IC0gVGhlIGV2ZW50IHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGZpbGUuXG4gICAqL1xuICBzZWxlY3RGaWxlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNldFVybChldmVudC50YXJnZXQuZmlsZXNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIGNyZWF0ZSBhIG5ldyBGb3JtRGF0YSBvYmplY3QsIGFwcGVuZCB0aGUgc2VsZWN0ZWQgZmlsZSB0byBpdCwgYW5kIHRoZW4gc2VuZCBpdCB0byB0aGUgc2VydmVyXG4gICAqL1xuICB1cGxvYWQoKSB7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGRhdGEuYXBwZW5kKCdmaWxlJywgdGhpcy5zZWxlY3RlZEZpbGUpO1xuXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMudXJsICsgdGhpcy51cGxvYWRQYXRoLCBkYXRhLCBodHRwT3B0aW9ucykuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3VsdD8uaWQpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHJlc3VsdC5pZCk7XG4gICAgICAgIHRoaXMuaW1hZ2VVcGxvYWRlZC5lbWl0KHJlc3VsdC5pZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBkZWxldGVzIHRoZSBmaWxlIGZyb20gdGhlIHNlcnZlciBhbmQgc2V0cyB0aGUgc2VsZWN0ZWRGaWxlIGFuZCBmaWxlVXJsIHRvIG51bGxcbiAgICpcbiAgICogQHBhcmFtIFtpZF0gLSBUaGUgaWQgb2YgdGhlIGZpbGUgdG8gZGVsZXRlLlxuICAgKi9cbiAgZGVsZXRlRmlsZShpZD86IHN0cmluZykge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBudWxsO1xuICAgIHRoaXMuZmlsZVVybCA9IG51bGw7XG5cbiAgICBpZiAoaWQpIHtcbiAgICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuYXV0aFNlcnZpY2UudG9rZW4sXG4gICAgICAgIH0pLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh0aGlzLnVybCArIHRoaXMuZGVsZXRlUGF0aCArIGlkLCBodHRwT3B0aW9ucykuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbGVVcmwgPSBudWxsO1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLmltYWdlRGVsZXRlZC5lbWl0KCk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtdC0zXCI+XG4gIDxsYWJlbCBbZm9yXT1cImlkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nQ2xhc3NdPVwieyByZXF1aXJlZDogcmVxdWlyZWQgfVwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyYWctYXJlYVwiXG4gICAgKGRyYWdvdmVyKT1cImRyYWdPdmVyKCRldmVudClcIlxuICAgIChkcmFnbGVhdmUpPVwiZHJhZ0xlYXZlKCRldmVudClcIlxuICAgIChkcm9wKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGRyYWdBY3RpdmUgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+TG9hZGluZy4uLjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRmlsZSAmJiAhY29udHJvbD8udmFsdWUgJiYgIWxvYWRpbmdcIj5cbiAgICAgIDxpbWcgW3NyY109XCJmaWxlVXJsXCIgKm5nSWY9XCJzZWxlY3RlZEZpbGVcIiAvPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoKVwiPkzDtnNjaGVuPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbD8udmFsdWUgJiYgIWxvYWRpbmdcIj5cbiAgICAgIDxpbWcgW3NyY109XCJ1cmwgKyBwYXRoICsgY29udHJvbD8udmFsdWVcIiAvPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoY29udHJvbD8udmFsdWUpXCI+TMO2c2NoZW48L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0ZWRGaWxlICYmICFjb250cm9sPy52YWx1ZSAmJiAhbG9hZGluZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1pbWFnZXNcIj48L2k+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXJcIj57eyBkcmFnVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyXCI+b3IgPHNwYW4gY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5icm93c2U8L3NwYW4+PC9zcGFuPlxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJzZWxlY3RGaWxlKCRldmVudClcIiBoaWRkZW4gI2ZpbGVJbnB1dCAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzdXBwb3J0XCI+e3sgc3VwcG9ydFRleHQgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIG0tMlwiICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIj5EaWVzZXMgRmVsZCBpc3QgZWluIFBmbGljaHRmZWxkLjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWlubGVuZ3RoJ11cIj5cbiAgICAgIERpZSBNaW5kZXN0bMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgIHt7Y29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aH19IFplaWNoZW4uXG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXVwiPlxuICAgICAgRGllIG1heGltYWxlIEzDpG5nZSBmw7xyIGRpZXNlcyBGZWxkIGJldHLDpGd0XG4gICAgICB7e2NvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSBaZWljaGVuLlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnZW1haWwnXVwiPkJpdHRlIGVpbmUgZ8O8bHRpZ2UgRS1NYWlsIEFkcmVzc2UgYW5nZWJlbi48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -47,8 +47,8 @@ export function apolloOptionsFactory(baseModuleConfig, httpLink, authService, ws
|
|
|
47
47
|
}, wsLink, concat(authMiddleware, http)));
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
|
-
links.push(http);
|
|
51
50
|
links.push(authMiddleware);
|
|
51
|
+
links.push(http);
|
|
52
52
|
}
|
|
53
53
|
return {
|
|
54
54
|
link: ApolloLink.from(links),
|
|
@@ -60,4 +60,4 @@ export function apolloOptionsFactory(baseModuleConfig, httpLink, authService, ws
|
|
|
60
60
|
},
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBvbGxvLW9wdGlvbnMuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2ZhY3Rvcmllcy9hcG9sbG8tb3B0aW9ucy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBS0wsdUJBQXVCLEdBQ3hCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxnQkFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsV0FBd0IsRUFDeEIsU0FBb0I7SUFFcEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWpCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDM0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLE1BQU07S0FDN0IsQ0FBQyxDQUFDO0lBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDM0QsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ3hDLElBQUksS0FBSyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxHQUFHLEtBQUssQ0FBQzthQUMzQztZQUNELFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQzlCLHVCQUF1QixDQUFDO1lBQ3RCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzNCLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDckIsT0FBTztvQkFDTCxhQUFhLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7aUJBQzdFLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFFRiw4Q0FBOEM7UUFDOUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBMkIsQ0FBQztRQUV0RCxtRUFBbUU7UUFDbkUsb0RBQW9EO1FBQ3BELEtBQUssQ0FBQyxJQUFJLENBQ1IsS0FBSztRQUNILGdDQUFnQztRQUNoQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBSSxLQUFLLHFCQUFxQixJQUFJLFNBQVMsS0FBSyxjQUFjLENBQUM7UUFDeEUsQ0FBQyxFQUNELE1BQU0sRUFDTixNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUM3QixDQUNGLENBQUM7S0FDSDtTQUFNO1FBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xCO0lBRUQsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixLQUFLLEVBQUUsSUFBSSxhQUFhLEVBQUU7UUFDMUIsY0FBYyxFQUFFO1lBQ2QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxjQUFjO2FBQzVCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBMaW5rIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBBcG9sbG9MaW5rLCBjb25jYXQsIHNwbGl0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBJbk1lbW9yeUNhY2hlIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY2FjaGUnO1xuaW1wb3J0IHsgZ2V0TWFpbkRlZmluaXRpb24gfSBmcm9tICdAYXBvbGxvL2NsaWVudC91dGlsaXRpZXMnO1xuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsXG4gIEJhc2VNb2R1bGVDb25maWcsXG4gIFJlc3RhcnRhYmxlQ2xpZW50LFxuICBXc1NlcnZpY2UsXG4gIGNyZWF0ZVJlc3RhcnRhYmxlQ2xpZW50LFxufSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5pbXBvcnQgeyBHcmFwaFFMV3NMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9zdWJzY3JpcHRpb25zJztcblxuLyoqXG4gKiBGYWN0b3J5IGZvciBhcG9sbG8tYW5ndWxhciBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcG9sbG9PcHRpb25zRmFjdG9yeShcbiAgYmFzZU1vZHVsZUNvbmZpZzogQmFzZU1vZHVsZUNvbmZpZyxcbiAgaHR0cExpbms6IEh0dHBMaW5rLFxuICBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gIHdzU2VydmljZTogV3NTZXJ2aWNlXG4pIHtcbiAgY29uc3QgbGlua3MgPSBbXTtcblxuICBjb25zdCBodHRwID0gaHR0cExpbmsuY3JlYXRlKHtcbiAgICB1cmk6IGJhc2VNb2R1bGVDb25maWcuYXBpVXJsLFxuICB9KTtcblxuICBjb25zdCBhdXRoTWlkZGxld2FyZSA9IG5ldyBBcG9sbG9MaW5rKChvcGVyYXRpb24sIGZvcndhcmQpID0+IHtcbiAgICBjb25zdCBoZWFkZXJzOiBhbnkgPSB7fTtcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGF1dGhTZXJ2aWNlLnRva2VuIHx8IG51bGw7XG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgaGVhZGVycy5BdXRob3JpemF0aW9uID0gJ0JlYXJlciAnICsgdG9rZW47XG4gICAgICB9XG4gICAgICBvcGVyYXRpb24uc2V0Q29udGV4dCgoKSA9PiAoeyBoZWFkZXJzIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcndhcmQob3BlcmF0aW9uKTtcbiAgfSk7XG5cbiAgaWYgKGJhc2VNb2R1bGVDb25maWcubG9nZ2luZykge1xuICAgIGNvbnNvbGUubG9nKGJhc2VNb2R1bGVDb25maWcpO1xuICB9XG5cbiAgaWYgKGJhc2VNb2R1bGVDb25maWcud3NVcmwpIHtcbiAgICBjb25zdCB3c0xpbmsgPSBuZXcgR3JhcGhRTFdzTGluayhcbiAgICAgIGNyZWF0ZVJlc3RhcnRhYmxlQ2xpZW50KHtcbiAgICAgICAgdXJsOiBiYXNlTW9kdWxlQ29uZmlnLndzVXJsLFxuICAgICAgICBjb25uZWN0aW9uUGFyYW1zOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGF1dGhTZXJ2aWNlLnRva2VuID8gJ0JlYXJlciAnICsgYXV0aFNlcnZpY2UudG9rZW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIFNldCBjbGllbnQgZm9yIHJlY29ubmVjdGlvbiBvbiBsb2dvdXQvbG9naW5cbiAgICB3c1NlcnZpY2UuY2xpZW50ID0gd3NMaW5rLmNsaWVudCBhcyBSZXN0YXJ0YWJsZUNsaWVudDtcblxuICAgIC8vIHVzaW5nIHRoZSBhYmlsaXR5IHRvIHNwbGl0IGxpbmtzLCB5b3UgY2FuIHNlbmQgZGF0YSB0byBlYWNoIGxpbmtcbiAgICAvLyBkZXBlbmRpbmcgb24gd2hhdCBraW5kIG9mIG9wZXJhdGlvbiBpcyBiZWluZyBzZW50XG4gICAgbGlua3MucHVzaChcbiAgICAgIHNwbGl0KFxuICAgICAgICAvLyBzcGxpdCBiYXNlZCBvbiBvcGVyYXRpb24gdHlwZVxuICAgICAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGNvbnN0IHsga2luZCwgb3BlcmF0aW9uIH0gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gICAgICAgICAgcmV0dXJuIGtpbmQgPT09ICdPcGVyYXRpb25EZWZpbml0aW9uJyAmJiBvcGVyYXRpb24gPT09ICdzdWJzY3JpcHRpb24nO1xuICAgICAgICB9LFxuICAgICAgICB3c0xpbmssXG4gICAgICAgIGNvbmNhdChhdXRoTWlkZGxld2FyZSwgaHR0cClcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxpbmtzLnB1c2goYXV0aE1pZGRsZXdhcmUpO1xuICAgIGxpbmtzLnB1c2goaHR0cCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxpbms6IEFwb2xsb0xpbmsuZnJvbShsaW5rcyksXG4gICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG4gICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -11,6 +11,7 @@ import { ToastType, GraphQLRequestType, BasicUser } from '@lenne.tech/ng-base/sh
|
|
|
11
11
|
import { __awaiter } from 'tslib';
|
|
12
12
|
import * as i2$1 from '@angular/router';
|
|
13
13
|
import * as i1$2 from '@angular/common/http';
|
|
14
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
14
15
|
|
|
15
16
|
class InputComponent {
|
|
16
17
|
constructor() {
|
|
@@ -447,8 +448,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
447
448
|
}], ctorParameters: function () { return [{ type: i1$1.BreadcrumbService }]; } });
|
|
448
449
|
|
|
449
450
|
class UploadImageComponent {
|
|
450
|
-
constructor(httpClient) {
|
|
451
|
+
constructor(httpClient, authService) {
|
|
451
452
|
this.httpClient = httpClient;
|
|
453
|
+
this.authService = authService;
|
|
452
454
|
this.supportText = 'Supports: JPEG, JPG, PNG';
|
|
453
455
|
this.required = false;
|
|
454
456
|
this.dragText = 'Drag & Drop';
|
|
@@ -530,7 +532,12 @@ class UploadImageComponent {
|
|
|
530
532
|
upload() {
|
|
531
533
|
const data = new FormData();
|
|
532
534
|
data.append('file', this.selectedFile);
|
|
533
|
-
|
|
535
|
+
const httpOptions = {
|
|
536
|
+
headers: new HttpHeaders({
|
|
537
|
+
Authorization: 'Bearer ' + this.authService.token,
|
|
538
|
+
}),
|
|
539
|
+
};
|
|
540
|
+
this.httpClient.post(this.url + this.uploadPath, data, httpOptions).subscribe((result) => {
|
|
534
541
|
if (result === null || result === void 0 ? void 0 : result.id) {
|
|
535
542
|
this.control.setValue(result.id);
|
|
536
543
|
this.imageUploaded.emit(result.id);
|
|
@@ -548,7 +555,12 @@ class UploadImageComponent {
|
|
|
548
555
|
this.selectedFile = null;
|
|
549
556
|
this.fileUrl = null;
|
|
550
557
|
if (id) {
|
|
551
|
-
|
|
558
|
+
const httpOptions = {
|
|
559
|
+
headers: new HttpHeaders({
|
|
560
|
+
Authorization: 'Bearer ' + this.authService.token,
|
|
561
|
+
}),
|
|
562
|
+
};
|
|
563
|
+
this.httpClient.delete(this.url + this.deletePath + id, httpOptions).subscribe((result) => {
|
|
552
564
|
this.selectedFile = null;
|
|
553
565
|
this.fileUrl = null;
|
|
554
566
|
this.control.setValue('');
|
|
@@ -558,12 +570,12 @@ class UploadImageComponent {
|
|
|
558
570
|
}
|
|
559
571
|
}
|
|
560
572
|
}
|
|
561
|
-
UploadImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UploadImageComponent, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
573
|
+
UploadImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UploadImageComponent, deps: [{ token: i1$2.HttpClient }, { token: i1$1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
562
574
|
UploadImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: UploadImageComponent, selector: "base-upload-image", inputs: { id: "id", name: "name", label: "label", supportText: "supportText", required: "required", dragText: "dragText", validExtensions: "validExtensions", control: "control", url: "url", uploadPath: "uploadPath", deletePath: "deletePath", path: "path" }, outputs: { imageUploaded: "imageUploaded", imageDeleted: "imageDeleted" }, ngImport: i0, template: "<div class=\"form-group mt-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <div\n class=\"drag-area\"\n (dragover)=\"dragOver($event)\"\n (dragleave)=\"dragLeave($event)\"\n (drop)=\"drop($event)\"\n [ngClass]=\"{ active: dragActive }\"\n >\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n\n <ng-container *ngIf=\"selectedFile && !control?.value && !loading\">\n <img [src]=\"fileUrl\" *ngIf=\"selectedFile\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile()\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"control?.value && !loading\">\n <img [src]=\"url + path + control?.value\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile(control?.value)\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"!selectedFile && !control?.value && !loading\">\n <div class=\"icon\">\n <i class=\"bi bi-images\"></i>\n </div>\n\n <span class=\"header\">{{ dragText }}</span>\n <span class=\"header\">or <span class=\"button\" (click)=\"fileInput.click()\">browse</span></span>\n <input type=\"file\" (change)=\"selectFile($event)\" hidden #fileInput />\n <span class=\"support\">{{ supportText }}</span>\n </ng-container>\n </div>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [":host{--base-upload-image-area-bg: #ffffff;--base-upload-image-area-border-color: #e1e1e1;--base-upload-image-area-height: 400px}.required:after{content:\" *\"}.drag-area{height:var(--base-upload-image-area-height);border:2px dashed var(--base-upload-image-area-border-color);background-color:var(--base-upload-image-area-bg);display:flex;flex-direction:column;justify-content:center;align-items:center;margin:10px auto;padding:20px}.drag-area img{height:100%;max-height:300px;max-width:100%;object-fit:scale-down}.drag-area .btn-danger{margin-top:auto}.drag-area .icon{font-size:50px;color:var(--bs-primary)}.drag-area .header{font-size:20px;font-weight:500}.drag-area .support{font-size:12px;color:#e1e1e1;margin:10px 0 15px}.drag-area .button{font-size:20px;font-weight:500;color:var(--bs-primary);cursor:pointer}.active{border:2px solid var(--bs-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
563
575
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: UploadImageComponent, decorators: [{
|
|
564
576
|
type: Component,
|
|
565
577
|
args: [{ selector: 'base-upload-image', template: "<div class=\"form-group mt-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <div\n class=\"drag-area\"\n (dragover)=\"dragOver($event)\"\n (dragleave)=\"dragLeave($event)\"\n (drop)=\"drop($event)\"\n [ngClass]=\"{ active: dragActive }\"\n >\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n\n <ng-container *ngIf=\"selectedFile && !control?.value && !loading\">\n <img [src]=\"fileUrl\" *ngIf=\"selectedFile\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile()\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"control?.value && !loading\">\n <img [src]=\"url + path + control?.value\" />\n <button class=\"btn btn-danger\" (click)=\"deleteFile(control?.value)\">L\u00F6schen</button>\n </ng-container>\n\n <ng-container *ngIf=\"!selectedFile && !control?.value && !loading\">\n <div class=\"icon\">\n <i class=\"bi bi-images\"></i>\n </div>\n\n <span class=\"header\">{{ dragText }}</span>\n <span class=\"header\">or <span class=\"button\" (click)=\"fileInput.click()\">browse</span></span>\n <input type=\"file\" (change)=\"selectFile($event)\" hidden #fileInput />\n <span class=\"support\">{{ supportText }}</span>\n </ng-container>\n </div>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [":host{--base-upload-image-area-bg: #ffffff;--base-upload-image-area-border-color: #e1e1e1;--base-upload-image-area-height: 400px}.required:after{content:\" *\"}.drag-area{height:var(--base-upload-image-area-height);border:2px dashed var(--base-upload-image-area-border-color);background-color:var(--base-upload-image-area-bg);display:flex;flex-direction:column;justify-content:center;align-items:center;margin:10px auto;padding:20px}.drag-area img{height:100%;max-height:300px;max-width:100%;object-fit:scale-down}.drag-area .btn-danger{margin-top:auto}.drag-area .icon{font-size:50px;color:var(--bs-primary)}.drag-area .header{font-size:20px;font-weight:500}.drag-area .support{font-size:12px;color:#e1e1e1;margin:10px 0 15px}.drag-area .button{font-size:20px;font-weight:500;color:var(--bs-primary);cursor:pointer}.active{border:2px solid var(--bs-primary)}\n"] }]
|
|
566
|
-
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; }, propDecorators: { id: [{
|
|
578
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1$1.AuthService }]; }, propDecorators: { id: [{
|
|
567
579
|
type: Input
|
|
568
580
|
}], name: [{
|
|
569
581
|
type: Input
|