@lenne.tech/ng-base 13.18.0 → 13.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base-components/base-components.module.d.ts +5 -3
- package/base-components/components/model-form-sub/model-form-sub.component.d.ts +4 -0
- package/base-components/components/model-table/model-table.component.d.ts +23 -1
- package/base-components/components/refence-input/refence-input.component.d.ts +23 -0
- package/base-components/components/upload-image/upload-image.component.d.ts +70 -0
- package/base-components/public-api.d.ts +2 -0
- package/base-prototype/pages/profile/profile.component.d.ts +11 -2
- package/esm2020/base-components/base-components.module.mjs +11 -3
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +15 -10
- package/esm2020/base-components/components/model-table/model-table.component.mjs +14 -5
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +61 -0
- package/esm2020/base-components/components/upload-image/upload-image.component.mjs +138 -0
- package/esm2020/base-components/public-api.mjs +3 -1
- package/esm2020/base-prototype/pages/profile/profile.component.mjs +21 -6
- package/esm2020/shared/services/user.service.mjs +1 -2
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +221 -14
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +17 -3
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +0 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +219 -12
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +17 -3
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs +0 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { GraphQLRequestType } from '@lenne.tech/ng-base/shared';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
export class RefenceInputComponent {
|
|
8
|
+
constructor(graphQLService) {
|
|
9
|
+
this.graphQLService = graphQLService;
|
|
10
|
+
this.placeholder = '';
|
|
11
|
+
this.required = false;
|
|
12
|
+
this.method = 'find';
|
|
13
|
+
this.fields = ['id', 'name'];
|
|
14
|
+
this.valueField = 'id';
|
|
15
|
+
this.nameField = 'name';
|
|
16
|
+
this.objects = [];
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.graphQLService
|
|
20
|
+
.graphQl(this.method, {
|
|
21
|
+
fields: this.fields,
|
|
22
|
+
type: GraphQLRequestType.QUERY,
|
|
23
|
+
})
|
|
24
|
+
.subscribe((result) => {
|
|
25
|
+
if (result) {
|
|
26
|
+
this.objects = result;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
RefenceInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: RefenceInputComponent, deps: [{ token: i1.GraphQLService }], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
RefenceInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: RefenceInputComponent, selector: "base-refence-input", inputs: { id: "id", name: "name", label: "label", placeholder: "placeholder", autocomplete: "autocomplete", tabIndex: "tabIndex", control: "control", required: "required", method: "method", fields: "fields", valueField: "valueField", nameField: "nameField" }, ngImport: i0, template: "<div class=\"form-group mb-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <input\n [id]=\"id\"\n [name]=\"name\"\n class=\"form-control\"\n [formControl]=\"control\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [autocomplete]=\"autocomplete ?? null\"\n [tabIndex]=\"tabIndex ?? null\"\n [ngClass]=\"{ 'is-invalid': control?.invalid && control?.touched }\"\n [attr.list]=\"id + '-datalistOptions'\"\n />\n <datalist [id]=\"id + '-datalistOptions'\">\n <option *ngFor=\"let object of objects\" [value]=\"object[valueField]\">{{ object[nameField] }}</option>\n </datalist>\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 *ngIf=\"control?.errors?.['matching']\">Die Passw\u00F6rter m\u00FCssen \u00FCberein stimmen.</div>\n </div>\n</div>\n", styles: [""], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: RefenceInputComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ selector: 'base-refence-input', template: "<div class=\"form-group mb-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <input\n [id]=\"id\"\n [name]=\"name\"\n class=\"form-control\"\n [formControl]=\"control\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [autocomplete]=\"autocomplete ?? null\"\n [tabIndex]=\"tabIndex ?? null\"\n [ngClass]=\"{ 'is-invalid': control?.invalid && control?.touched }\"\n [attr.list]=\"id + '-datalistOptions'\"\n />\n <datalist [id]=\"id + '-datalistOptions'\">\n <option *ngFor=\"let object of objects\" [value]=\"object[valueField]\">{{ object[nameField] }}</option>\n </datalist>\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 *ngIf=\"control?.errors?.['matching']\">Die Passw\u00F6rter m\u00FCssen \u00FCberein stimmen.</div>\n </div>\n</div>\n", styles: [""] }]
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i1.GraphQLService }]; }, propDecorators: { id: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], name: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], label: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], placeholder: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], autocomplete: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], tabIndex: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], control: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], required: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], method: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], fields: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], valueField: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], nameField: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}] } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZW5jZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWtCLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBT2hGLE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWHpDLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBSTFCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixXQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzVCLFlBQU8sR0FBVSxFQUFFLENBQUM7SUFFaUMsQ0FBQztJQUV0RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWM7YUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxLQUFLO1NBQy9CLENBQUM7YUFDRCxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7a0hBNUJVLHFCQUFxQjtzR0FBckIscUJBQXFCLDhUQ1JsQyw2K0NBZ0NBOzJGRHhCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9CO3FHQUtyQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlLCBHcmFwaFFMU2VydmljZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1yZWZlbmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVuY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWZlbmNlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVuY2VJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgQElucHV0KCkgdGFiSW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbnRyb2w6IGFueTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWV0aG9kID0gJ2ZpbmQnO1xuICBASW5wdXQoKSBmaWVsZHMgPSBbJ2lkJywgJ25hbWUnXTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZCA9ICdpZCc7XG4gIEBJbnB1dCgpIG5hbWVGaWVsZCA9ICduYW1lJztcbiAgb2JqZWN0czogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyYXBoUUxTZXJ2aWNlOiBHcmFwaFFMU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAuZ3JhcGhRbCh0aGlzLm1ldGhvZCwge1xuICAgICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLm9iamVjdHMgPSByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0zXCI+XG4gIDxsYWJlbCBbZm9yXT1cImlkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nQ2xhc3NdPVwieyByZXF1aXJlZDogcmVxdWlyZWQgfVwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDxpbnB1dFxuICAgIFtpZF09XCJpZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPz8gbnVsbFwiXG4gICAgW3RhYkluZGV4XT1cInRhYkluZGV4ID8/IG51bGxcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LnRvdWNoZWQgfVwiXG4gICAgW2F0dHIubGlzdF09XCJpZCArICctZGF0YWxpc3RPcHRpb25zJ1wiXG4gIC8+XG4gIDxkYXRhbGlzdCBbaWRdPVwiaWQgKyAnLWRhdGFsaXN0T3B0aW9ucydcIj5cbiAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvYmplY3Qgb2Ygb2JqZWN0c1wiIFt2YWx1ZV09XCJvYmplY3RbdmFsdWVGaWVsZF1cIj57eyBvYmplY3RbbmFtZUZpZWxkXSB9fTwvb3B0aW9uPlxuICA8L2RhdGFsaXN0PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIG0tMlwiICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIj5EaWVzZXMgRmVsZCBpc3QgZWluIFBmbGljaHRmZWxkLjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWlubGVuZ3RoJ11cIj5cbiAgICAgIERpZSBNaW5kZXN0bMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgIHt7Y29udHJvbC5lcnJvcnM/LlsnbWlubGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX0gWmVpY2hlbi5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ21heGxlbmd0aCddXCI+XG4gICAgICBEaWUgbWF4aW1hbGUgTMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgIHt7Y29udHJvbC5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX0gWmVpY2hlbi5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ2VtYWlsJ11cIj5CaXR0ZSBlaW5lIGfDvGx0aWdlIEUtTWFpbCBBZHJlc3NlIGFuZ2ViZW4uPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtYXRjaGluZyddXCI+RGllIFBhc3N3w7ZydGVyIG3DvHNzZW4gw7xiZXJlaW4gc3RpbW1lbi48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common/http";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class UploadImageComponent {
|
|
6
|
+
constructor(httpClient) {
|
|
7
|
+
this.httpClient = httpClient;
|
|
8
|
+
this.supportText = 'Supports: JPEG, JPG, PNG';
|
|
9
|
+
this.required = false;
|
|
10
|
+
this.dragText = 'Drag & Drop';
|
|
11
|
+
this.validExtensions = ['image/jpeg', 'image/jpg', 'image/png'];
|
|
12
|
+
this.url = 'http://localhost:3000';
|
|
13
|
+
this.uploadPath = '/files/upload';
|
|
14
|
+
this.deletePath = '/files/';
|
|
15
|
+
this.path = '/files/';
|
|
16
|
+
this.dragActive = false;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The dragOver function is called when the user drags a file over the dropzone. It prevents the default action of the
|
|
20
|
+
* event, and sets the dragText to 'Release to Upload' and the dragActive to true
|
|
21
|
+
*
|
|
22
|
+
* @param event - any - This is the event that is triggered when the user drags a file over the dropzone.
|
|
23
|
+
*/
|
|
24
|
+
dragOver(event) {
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
this.dragText = 'Release to Upload';
|
|
27
|
+
this.dragActive = true;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* When the user drags a file over the drop zone, the dragActive variable is set to true, which will change the color of
|
|
31
|
+
* the drop zone to green
|
|
32
|
+
*
|
|
33
|
+
* @param event - The event object that is passed to the dragLeave event.
|
|
34
|
+
*/
|
|
35
|
+
dragLeave(event) {
|
|
36
|
+
this.dragText = 'Drag & Drop';
|
|
37
|
+
this.dragActive = false;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The function takes an event as a parameter, prevents the default action of the event, sets the URL of the image to the
|
|
41
|
+
* file that was dragged and dropped, sets the text of the drag and drop area to the default text, and sets the
|
|
42
|
+
* dragActive variable to false
|
|
43
|
+
*
|
|
44
|
+
* @param event - any - This is the event that is triggered when the user drags and drops a file.
|
|
45
|
+
*/
|
|
46
|
+
drop(event) {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
this.setUrl(event.dataTransfer.files[0]);
|
|
49
|
+
this.dragText = 'Drag & Drop';
|
|
50
|
+
this.dragActive = false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* It takes a file as an argument, checks if the file type is valid, and if it is, it creates a new FileReader object,
|
|
54
|
+
* sets the onload function to set the fileUrl to the result of the fileReader, sets the selectedFile to the file, and
|
|
55
|
+
* calls the upload function
|
|
56
|
+
*
|
|
57
|
+
* @param file - any - this is the file that is selected by the user.
|
|
58
|
+
*/
|
|
59
|
+
setUrl(file) {
|
|
60
|
+
if (this.validExtensions.includes(file.type)) {
|
|
61
|
+
const fileReader = new FileReader();
|
|
62
|
+
fileReader.onload = () => {
|
|
63
|
+
this.fileUrl = fileReader.result;
|
|
64
|
+
this.selectedFile = file;
|
|
65
|
+
this.upload();
|
|
66
|
+
};
|
|
67
|
+
fileReader.readAsDataURL(file);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The function takes an event as an argument, and then sets the url of the file to the first file in the event's
|
|
72
|
+
* target's files array
|
|
73
|
+
*
|
|
74
|
+
* @param event - any - The event that is triggered when the user selects a file.
|
|
75
|
+
*/
|
|
76
|
+
selectFile(event) {
|
|
77
|
+
this.setUrl(event.target.files[0]);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* We create a new FormData object, append the selected file to it, and then send it to the server
|
|
81
|
+
*/
|
|
82
|
+
upload() {
|
|
83
|
+
const data = new FormData();
|
|
84
|
+
data.append('file', this.selectedFile);
|
|
85
|
+
this.httpClient.post(this.url + this.uploadPath, data).subscribe((result) => {
|
|
86
|
+
if (result?.id) {
|
|
87
|
+
this.control.setValue(result.id);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* It deletes the file from the server and sets the selectedFile and fileUrl to null
|
|
93
|
+
*
|
|
94
|
+
* @param [id] - The id of the file to delete.
|
|
95
|
+
*/
|
|
96
|
+
deleteFile(id) {
|
|
97
|
+
this.selectedFile = null;
|
|
98
|
+
this.fileUrl = null;
|
|
99
|
+
if (id) {
|
|
100
|
+
this.httpClient.delete(this.url + this.deletePath + id).subscribe((result) => {
|
|
101
|
+
this.selectedFile = null;
|
|
102
|
+
this.fileUrl = null;
|
|
103
|
+
this.control.setValue('');
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
UploadImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UploadImageComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
UploadImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", 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" }, ngImport: i0, template: "<div class=\"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 <ng-container *ngIf=\"selectedFile && !control?.value\">\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\">\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\">\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</div>\n", styles: [".required:after{content:\" *\"}.drag-area{height:400px;border:2px dashed #e1e1e1;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%}.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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UploadImageComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{ selector: 'base-upload-image', template: "<div class=\"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 <ng-container *ngIf=\"selectedFile && !control?.value\">\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\">\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\">\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</div>\n", styles: [".required:after{content:\" *\"}.drag-area{height:400px;border:2px dashed #e1e1e1;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%}.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"] }]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; }, propDecorators: { id: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], name: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], label: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], supportText: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], required: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], dragText: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], validExtensions: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], control: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], url: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], uploadPath: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], deletePath: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], path: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}] } });
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWltYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL2NvbXBvbmVudHMvdXBsb2FkLWltYWdlL3VwbG9hZC1pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3VwbG9hZC1pbWFnZS91cGxvYWQtaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRakQsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWJqQyxnQkFBVyxHQUFHLDBCQUEwQixDQUFDO1FBQ3pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLGFBQWEsQ0FBQztRQUN6QixvQkFBZSxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUzRCxRQUFHLEdBQUcsdUJBQXVCLENBQUM7UUFDOUIsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUM3QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxTQUFTLENBQUM7UUFDMUIsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUkwQixDQUFDO0lBRTlDOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLEtBQVU7UUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLEtBQVU7UUFDbEIs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QXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS11cGxvYWQtaW1hZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLWltYWdlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEltYWdlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgc3VwcG9ydFRleHQgPSAnU3VwcG9ydHM6IEpQRUcsIEpQRywgUE5HJztcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZHJhZ1RleHQgPSAnRHJhZyAmIERyb3AnO1xuICBASW5wdXQoKSB2YWxpZEV4dGVuc2lvbnMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xuICBASW5wdXQoKSBjb250cm9sOiBhbnk7XG4gIEBJbnB1dCgpIHVybCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnO1xuICBASW5wdXQoKSB1cGxvYWRQYXRoID0gJy9maWxlcy91cGxvYWQnO1xuICBASW5wdXQoKSBkZWxldGVQYXRoID0gJy9maWxlcy8nO1xuICBASW5wdXQoKSBwYXRoID0gJy9maWxlcy8nO1xuICBkcmFnQWN0aXZlID0gZmFsc2U7XG4gIHNlbGVjdGVkRmlsZTogRmlsZTtcbiAgZmlsZVVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICogVGhlIGRyYWdPdmVyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGEgZmlsZSBvdmVyIHRoZSBkcm9wem9uZS4gSXQgcHJldmVudHMgdGhlIGRlZmF1bHQgYWN0aW9uIG9mIHRoZVxuICAgKiBldmVudCwgYW5kIHNldHMgdGhlIGRyYWdUZXh0IHRvICdSZWxlYXNlIHRvIFVwbG9hZCcgYW5kIHRoZSBkcmFnQWN0aXZlIHRvIHRydWVcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gYW55IC0gVGhpcyBpcyB0aGUgZXZlbnQgdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBkcmFncyBhIGZpbGUgb3ZlciB0aGUgZHJvcHpvbmUuXG4gICAqL1xuICBkcmFnT3ZlcihldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmRyYWdUZXh0ID0gJ1JlbGVhc2UgdG8gVXBsb2FkJztcbiAgICB0aGlzLmRyYWdBY3RpdmUgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHVzZXIgZHJhZ3MgYSBmaWxlIG92ZXIgdGhlIGRyb3Agem9uZSwgdGhlIGRyYWdBY3RpdmUgdmFyaWFibGUgaXMgc2V0IHRvIHRydWUsIHdoaWNoIHdpbGwgY2hhbmdlIHRoZSBjb2xvciBvZlxuICAgKiB0aGUgZHJvcCB6b25lIHRvIGdyZWVuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSBldmVudCBvYmplY3QgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGRyYWdMZWF2ZSBldmVudC5cbiAgICovXG4gIGRyYWdMZWF2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5kcmFnVGV4dCA9ICdEcmFnICYgRHJvcCc7XG4gICAgdGhpcy5kcmFnQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRha2VzIGFuIGV2ZW50IGFzIGEgcGFyYW1ldGVyLCBwcmV2ZW50cyB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhlIGV2ZW50LCBzZXRzIHRoZSBVUkwgb2YgdGhlIGltYWdlIHRvIHRoZVxuICAgKiBmaWxlIHRoYXQgd2FzIGRyYWdnZWQgYW5kIGRyb3BwZWQsIHNldHMgdGhlIHRleHQgb2YgdGhlIGRyYWcgYW5kIGRyb3AgYXJlYSB0byB0aGUgZGVmYXVsdCB0ZXh0LCBhbmQgc2V0cyB0aGVcbiAgICogZHJhZ0FjdGl2ZSB2YXJpYWJsZSB0byBmYWxzZVxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBhbnkgLSBUaGlzIGlzIHRoZSBldmVudCB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGFuZCBkcm9wcyBhIGZpbGUuXG4gICAqL1xuICBkcm9wKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2V0VXJsKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XG4gICAgdGhpcy5kcmFnVGV4dCA9ICdEcmFnICYgRHJvcCc7XG4gICAgdGhpcy5kcmFnQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYSBmaWxlIGFzIGFuIGFyZ3VtZW50LCBjaGVja3MgaWYgdGhlIGZpbGUgdHlwZSBpcyB2YWxpZCwgYW5kIGlmIGl0IGlzLCBpdCBjcmVhdGVzIGEgbmV3IEZpbGVSZWFkZXIgb2JqZWN0LFxuICAgKiBzZXRzIHRoZSBvbmxvYWQgZnVuY3Rpb24gdG8gc2V0IHRoZSBmaWxlVXJsIHRvIHRoZSByZXN1bHQgb2YgdGhlIGZpbGVSZWFkZXIsIHNldHMgdGhlIHNlbGVjdGVkRmlsZSB0byB0aGUgZmlsZSwgYW5kXG4gICAqIGNhbGxzIHRoZSB1cGxvYWQgZnVuY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBhbnkgLSB0aGlzIGlzIHRoZSBmaWxlIHRoYXQgaXMgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBzZXRVcmwoZmlsZTogYW55KSB7XG4gICAgaWYgKHRoaXMudmFsaWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsZVVybCA9IGZpbGVSZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBmaWxlO1xuICAgICAgICB0aGlzLnVwbG9hZCgpO1xuICAgICAgfTtcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRha2VzIGFuIGV2ZW50IGFzIGFuIGFyZ3VtZW50LCBhbmQgdGhlbiBzZXRzIHRoZSB1cmwgb2YgdGhlIGZpbGUgdG8gdGhlIGZpcnN0IGZpbGUgaW4gdGhlIGV2ZW50J3NcbiAgICogdGFyZ2V0J3MgZmlsZXMgYXJyYXlcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gYW55IC0gVGhlIGV2ZW50IHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGZpbGUuXG4gICAqL1xuICBzZWxlY3RGaWxlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNldFVybChldmVudC50YXJnZXQuZmlsZXNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIGNyZWF0ZSBhIG5ldyBGb3JtRGF0YSBvYmplY3QsIGFwcGVuZCB0aGUgc2VsZWN0ZWQgZmlsZSB0byBpdCwgYW5kIHRoZW4gc2VuZCBpdCB0byB0aGUgc2VydmVyXG4gICAqL1xuICB1cGxvYWQoKSB7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGRhdGEuYXBwZW5kKCdmaWxlJywgdGhpcy5zZWxlY3RlZEZpbGUpO1xuICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMudXJsICsgdGhpcy51cGxvYWRQYXRoLCBkYXRhKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0Py5pZCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUocmVzdWx0LmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBkZWxldGVzIHRoZSBmaWxlIGZyb20gdGhlIHNlcnZlciBhbmQgc2V0cyB0aGUgc2VsZWN0ZWRGaWxlIGFuZCBmaWxlVXJsIHRvIG51bGxcbiAgICpcbiAgICogQHBhcmFtIFtpZF0gLSBUaGUgaWQgb2YgdGhlIGZpbGUgdG8gZGVsZXRlLlxuICAgKi9cbiAgZGVsZXRlRmlsZShpZD86IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICB0aGlzLmZpbGVVcmwgPSBudWxsO1xuXG4gICAgaWYgKGlkKSB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHRoaXMudXJsICsgdGhpcy5kZWxldGVQYXRoICsgaWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICAgICAgdGhpcy5maWxlVXJsID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdDbGFzc109XCJ7IHJlcXVpcmVkOiByZXF1aXJlZCB9XCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJhZy1hcmVhXCJcbiAgICAoZHJhZ292ZXIpPVwiZHJhZ092ZXIoJGV2ZW50KVwiXG4gICAgKGRyYWdsZWF2ZSk9XCJkcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwiZHJvcCgkZXZlbnQpXCJcbiAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogZHJhZ0FjdGl2ZSB9XCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpbGUgJiYgIWNvbnRyb2w/LnZhbHVlXCI+XG4gICAgICA8aW1nIFtzcmNdPVwiZmlsZVVybFwiICpuZ0lmPVwic2VsZWN0ZWRGaWxlXCIgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJkZWxldGVGaWxlKClcIj5Mw7ZzY2hlbjwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2w/LnZhbHVlXCI+XG4gICAgICA8aW1nIFtzcmNdPVwidXJsICsgcGF0aCArIGNvbnRyb2w/LnZhbHVlXCIgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJkZWxldGVGaWxlKGNvbnRyb2w/LnZhbHVlKVwiPkzDtnNjaGVuPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkRmlsZSAmJiAhY29udHJvbD8udmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktaW1hZ2VzXCI+PC9pPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyXCI+e3sgZHJhZ1RleHQgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImhlYWRlclwiPm9yIDxzcGFuIGNsYXNzPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+YnJvd3NlPC9zcGFuPjwvc3Bhbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwic2VsZWN0RmlsZSgkZXZlbnQpXCIgaGlkZGVuICNmaWxlSW5wdXQgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwic3VwcG9ydFwiPnt7IHN1cHBvcnRUZXh0IH19PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -16,4 +16,6 @@ export * from './components/breadcrumb/breadcrumb.component';
|
|
|
16
16
|
export * from './components/model-form/model-form.component';
|
|
17
17
|
export * from './components/model-table/model-table.component';
|
|
18
18
|
export * from './components/model-form-sub/model-form-sub.component';
|
|
19
|
-
|
|
19
|
+
export * from './components/upload-image/upload-image.component';
|
|
20
|
+
export * from './components/refence-input/refence-input.component';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxTQUFTO0FBQ1QsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxhQUFhO0FBQ2IsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG9EQUFvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHBvcnRzIGZvciBwdWJsaWMgQVBJXG4gKi9cblxuLy8gTW9kdWxlXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtY29tcG9uZW50cy5tb2R1bGUnO1xuXG4vLyBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGluZy1iYXIvbG9hZGluZy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9za2VsZXRvbi1sb2FkZXIvc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kZWwtZm9ybS9tb2RlbC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kZWwtdGFibGUvbW9kZWwtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tb2RlbC1mb3JtLXN1Yi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZC1pbWFnZS91cGxvYWQtaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9yZWZlbmNlLWlucHV0L3JlZmVuY2UtaW5wdXQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
4
|
-
import * as i2 from "@
|
|
4
|
+
import * as i2 from "@angular/router";
|
|
5
|
+
import * as i3 from "@lenne.tech/ng-base/base-components";
|
|
5
6
|
export class ProfileComponent {
|
|
6
|
-
constructor(authService) {
|
|
7
|
+
constructor(authService, route) {
|
|
7
8
|
this.authService = authService;
|
|
9
|
+
this.route = route;
|
|
8
10
|
this.config = {};
|
|
9
11
|
this.profileConfig = {
|
|
12
|
+
avatar: {
|
|
13
|
+
label: 'E-Mail',
|
|
14
|
+
placeholder: '',
|
|
15
|
+
},
|
|
10
16
|
email: {
|
|
11
17
|
label: 'E-Mail',
|
|
12
18
|
placeholder: '',
|
|
@@ -21,6 +27,7 @@ export class ProfileComponent {
|
|
|
21
27
|
},
|
|
22
28
|
roles: {
|
|
23
29
|
exclude: true,
|
|
30
|
+
roles: ['admin'],
|
|
24
31
|
},
|
|
25
32
|
username: {
|
|
26
33
|
label: 'Benutzername',
|
|
@@ -33,13 +40,21 @@ export class ProfileComponent {
|
|
|
33
40
|
this.currentUser = authService.currentUser;
|
|
34
41
|
this.profileConfig = { ...this.profileConfig, ...this.config };
|
|
35
42
|
}
|
|
43
|
+
ngOnInit() {
|
|
44
|
+
this.route.data.subscribe((data) => {
|
|
45
|
+
// Merge config from route to component
|
|
46
|
+
if (data) {
|
|
47
|
+
this.profileConfig = { ...this.profileConfig, ...data };
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
36
51
|
}
|
|
37
|
-
ProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ProfileComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ProfileComponent, selector: "base-profile", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"container\">\n <div class=\"py-5\">\n <base-model-form\n [id]=\"currentUser?.id\"\n [modelName]=\"'user'\"\n [label]=\"'Mein Profil'\"\n [config]=\"profileConfig || {}\"\n [delete]=\"false\"\n ></base-model-form>\n </div>\n</div>\n", styles: [""], components: [{ type:
|
|
52
|
+
ProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ProfileComponent, deps: [{ token: i1.AuthService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ProfileComponent, selector: "base-profile", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"container\">\n <div class=\"py-5\">\n <base-model-form\n [id]=\"currentUser?.id\"\n [modelName]=\"'user'\"\n [label]=\"'Mein Profil'\"\n [config]=\"profileConfig || {}\"\n [delete]=\"false\"\n ></base-model-form>\n </div>\n</div>\n", styles: [""], components: [{ type: i3.ModelFormComponent, selector: "base-model-form", inputs: ["modelName", "label", "id", "delete", "logging", "config"], outputs: ["finished"] }] });
|
|
39
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ProfileComponent, decorators: [{
|
|
40
55
|
type: Component,
|
|
41
56
|
args: [{ selector: 'base-profile', template: "<div class=\"container\">\n <div class=\"py-5\">\n <base-model-form\n [id]=\"currentUser?.id\"\n [modelName]=\"'user'\"\n [label]=\"'Mein Profil'\"\n [config]=\"profileConfig || {}\"\n [delete]=\"false\"\n ></base-model-form>\n </div>\n</div>\n", styles: [""] }]
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { config: [{
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.ActivatedRoute }]; }, propDecorators: { config: [{
|
|
43
58
|
type: Input
|
|
44
59
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTekQsTUFBTSxPQUFPLGdCQUFnQjtJQWtDM0IsWUFBb0IsV0FBd0IsRUFBVSxLQUFxQjtRQUF2RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBakNsRSxXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQzFCLGtCQUFhLEdBQUc7WUFDZCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsV0FBVyxFQUFFLEVBQUU7YUFDaEI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsV0FBVyxFQUFFLEVBQUU7YUFDaEI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxVQUFVO2dCQUNqQixXQUFXLEVBQUUsRUFBRTthQUNoQjtZQUNELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTtnQkFDYixLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDakI7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7U0FDRixDQUFDO1FBS0EsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyx1Q0FBdUM7WUFDdkMsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2R0E5Q1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isa0ZDVDdCLHVSQVdBOzJGREZhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjOytIQUtmLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJhc2ljVXNlciB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1wcm9maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9maWxlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb25maWc6IGFueSA9IHt9O1xuICBwcm9maWxlQ29uZmlnID0ge1xuICAgIGF2YXRhcjoge1xuICAgICAgbGFiZWw6ICdFLU1haWwnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgIH0sXG4gICAgZW1haWw6IHtcbiAgICAgIGxhYmVsOiAnRS1NYWlsJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICB9LFxuICAgIGZpcnN0TmFtZToge1xuICAgICAgbGFiZWw6ICdWb3JuYW1lJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICB9LFxuICAgIGxhc3ROYW1lOiB7XG4gICAgICBsYWJlbDogJ05hY2huYW1lJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICB9LFxuICAgIHJvbGVzOiB7XG4gICAgICBleGNsdWRlOiB0cnVlLFxuICAgICAgcm9sZXM6IFsnYWRtaW4nXSxcbiAgICB9LFxuICAgIHVzZXJuYW1lOiB7XG4gICAgICBsYWJlbDogJ0JlbnV0emVybmFtZScsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgfSxcbiAgICBwYXNzd29yZDoge1xuICAgICAgZXhjbHVkZTogdHJ1ZSxcbiAgICB9LFxuICB9O1xuXG4gIGN1cnJlbnRVc2VyOiBCYXNpY1VzZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgdGhpcy5jdXJyZW50VXNlciA9IGF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyO1xuICAgIHRoaXMucHJvZmlsZUNvbmZpZyA9IHsgLi4udGhpcy5wcm9maWxlQ29uZmlnLCAuLi50aGlzLmNvbmZpZyB9O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgLy8gTWVyZ2UgY29uZmlnIGZyb20gcm91dGUgdG8gY29tcG9uZW50XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aGlzLnByb2ZpbGVDb25maWcgPSB7IC4uLnRoaXMucHJvZmlsZUNvbmZpZywgLi4uZGF0YSB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJweS01XCI+XG4gICAgPGJhc2UtbW9kZWwtZm9ybVxuICAgICAgW2lkXT1cImN1cnJlbnRVc2VyPy5pZFwiXG4gICAgICBbbW9kZWxOYW1lXT1cIid1c2VyJ1wiXG4gICAgICBbbGFiZWxdPVwiJ01laW4gUHJvZmlsJ1wiXG4gICAgICBbY29uZmlnXT1cInByb2ZpbGVDb25maWcgfHwge31cIlxuICAgICAgW2RlbGV0ZV09XCJmYWxzZVwiXG4gICAgPjwvYmFzZS1tb2RlbC1mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -28,7 +28,6 @@ export class UserService extends GraphQLPlusService {
|
|
|
28
28
|
fields: ['token', { user: ['id', 'firstName', 'lastName', 'email', 'roles'] }],
|
|
29
29
|
type: GraphQLRequestType.QUERY,
|
|
30
30
|
loading: true,
|
|
31
|
-
log: true,
|
|
32
31
|
}).pipe(map((response) => {
|
|
33
32
|
this.authService.token = response.token;
|
|
34
33
|
this.authService.currentUser = BasicUser.map(response.user);
|
|
@@ -80,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
80
79
|
providedIn: 'root',
|
|
81
80
|
}]
|
|
82
81
|
}], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }, { type: i3.LoaderService }, { type: i4.AuthService }]; } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFNNUQsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBa0I7SUFDakQsWUFDWSxNQUFjLEVBQ2Qsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLFdBQXdCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFHcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBMEM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUM1QixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDcEIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLEtBQUs7WUFDOUIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLFFBQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNkLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzthQUNuQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsS0FBK0U7UUFDdEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUM1QixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDcEIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDakMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLFFBQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNkLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzthQUNuQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtZQUM5QyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsa0JBQWtCLENBQUMsS0FBSztZQUM5QixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7O3dHQXRFVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoIH0gZnJvbSAnLi4vY2xhc3Nlcy9hdXRoLmNsYXNzJztcbmltcG9ydCB7IEJhc2ljVXNlciB9IGZyb20gJy4uL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTE1ldGFTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMUGx1c1NlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtcGx1cy5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuL2xvYWRlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGV4dGVuZHMgR3JhcGhRTFBsdXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGFwb2xsbzogQXBvbGxvLFxuICAgIHByb3RlY3RlZCBncmFwaHFsTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGFwb2xsbywgZ3JhcGhxbE1ldGFTZXJ2aWNlLCBsb2FkZXJTZXJ2aWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dpblxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXRcbiAgICovXG4gIGxvZ2luKGlucHV0OiB7IGVtYWlsOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3NpZ25JbicsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpbnB1dCB9LFxuICAgICAgZmllbGRzOiBbJ3Rva2VuJywgeyB1c2VyOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcyddIH1dLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogQXV0aCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuID0gcmVzcG9uc2UudG9rZW47XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIgPSBCYXNpY1VzZXIubWFwKHJlc3BvbnNlLnVzZXIpO1xuXG4gICAgICAgIHJldHVybiBBdXRoLm1hcCh7XG4gICAgICAgICAgdG9rZW46IHJlc3BvbnNlLnRva2VuLFxuICAgICAgICAgIHVzZXI6IEJhc2ljVXNlci5tYXAocmVzcG9uc2UudXNlciksXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dFxuICAgKi9cbiAgcmVnaXN0ZXIoaW5wdXQ6IHsgZmlyc3ROYW1lOiBzdHJpbmc7IGxhc3ROYW1lOiBzdHJpbmc7IGVtYWlsOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3NpZ25VcCcsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpbnB1dCB9LFxuICAgICAgZmllbGRzOiBbJ3Rva2VuJywgeyB1c2VyOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcyddIH1dLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogQXV0aCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuID0gcmVzcG9uc2UudG9rZW47XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIgPSBCYXNpY1VzZXIubWFwKHJlc3BvbnNlLnVzZXIpO1xuXG4gICAgICAgIHJldHVybiBBdXRoLm1hcCh7XG4gICAgICAgICAgdG9rZW46IHJlc3BvbnNlLnRva2VuLFxuICAgICAgICAgIHVzZXI6IEJhc2ljVXNlci5tYXAocmVzcG9uc2UudXNlciksXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgcGFzc3dvcmQgcmVzZXQgbWFpbFxuICAgKlxuICAgKiBAcGFyYW0gZW1haWxcbiAgICovXG4gIHJlcXVlc3RQYXNzd29yZFJlc2V0TWFpbChlbWFpbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgncmVxdWVzdFBhc3N3b3JkUmVzZXRNYWlsJywge1xuICAgICAgYXJndW1lbnRzOiB7IGVtYWlsIH0sXG4gICAgICBmaWVsZHM6IFtdLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|