@lenne.tech/ng-base 14.2.2 → 14.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base-cms/pages/base-cms/base-cms.component.d.ts +16 -2
- package/base-components/components/model-form/model-form.component.d.ts +2 -1
- package/base-components/components/model-table/model-table.component.d.ts +5 -0
- package/base-components/components/refence-input/refence-input.component.d.ts +2 -1
- package/base-components/components/upload-image/upload-image.component.d.ts +3 -1
- package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +43 -11
- package/esm2020/base-components/components/model-form/model-form.component.mjs +18 -3
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +3 -3
- package/esm2020/base-components/components/model-table/model-table.component.mjs +19 -6
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +6 -3
- package/esm2020/base-components/components/upload-image/upload-image.component.mjs +9 -3
- package/esm2020/base-prototype/pages/profile/profile.component.mjs +1 -1
- package/esm2020/shared/services/cms.service.mjs +7 -1
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs +43 -10
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +50 -13
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +1 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +6 -0
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs +41 -9
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +50 -13
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +1 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs +6 -0
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/shared/services/cms.service.d.ts +4 -0
|
@@ -279,7 +279,7 @@ class ProfileComponent {
|
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
ProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProfileComponent, deps: [{ token: i1.AuthService }, { token: i2.ActivatedRoute }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
282
|
-
ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", 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 (finished)=\"updateSessionUser()\"\n ></base-model-form>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i5.ModelFormComponent, selector: "base-model-form", inputs: ["modelName", "label", "id", "delete", "duplicate", "logging", "config"], outputs: ["finished"] }] });
|
|
282
|
+
ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", 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 (finished)=\"updateSessionUser()\"\n ></base-model-form>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i5.ModelFormComponent, selector: "base-model-form", inputs: ["modelName", "label", "id", "delete", "onlyUpdateMode", "duplicate", "logging", "config"], outputs: ["finished"] }] });
|
|
283
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProfileComponent, decorators: [{
|
|
284
284
|
type: Component,
|
|
285
285
|
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 (finished)=\"updateSessionUser()\"\n ></base-model-form>\n </div>\n</div>\n" }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lenne.tech-ng-base-base-prototype.mjs","sources":["../../../projects/ng-base/base-prototype/pages/login/login.component.ts","../../../projects/ng-base/base-prototype/pages/login/login.component.html","../../../projects/ng-base/base-prototype/pages/register/register.component.ts","../../../projects/ng-base/base-prototype/pages/register/register.component.html","../../../projects/ng-base/base-prototype/pages/forgot-password/forgot-password.component.ts","../../../projects/ng-base/base-prototype/pages/forgot-password/forgot-password.component.html","../../../projects/ng-base/base-prototype/pages/profile/profile.component.ts","../../../projects/ng-base/base-prototype/pages/profile/profile.component.html","../../../projects/ng-base/base-prototype/base-prototype.module.ts","../../../projects/ng-base/base-prototype/public-api.ts","../../../projects/ng-base/base-prototype/lenne.tech-ng-base-base-prototype.ts"],"sourcesContent":["import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormsService, UserService } from '@lenne.tech/ng-base/shared';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'base-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n error: string;\n loading: boolean;\n subscription = new Subscription();\n config = {\n redirectUrl: '/main',\n showPasswordForget: true,\n showRegister: true,\n logoUrl: '',\n };\n\n constructor(\n private formsService: FormsService,\n private userService: UserService,\n private router: Router,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.createForm();\n\n this.subscription.add(\n this.route.data.subscribe((data) => {\n // Merge config from route to component\n if (data?.config) {\n this.config = { ...this.config, ...data.config };\n }\n })\n );\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n /**\n * Create login form\n */\n createForm() {\n this.form = new UntypedFormGroup({\n email: new UntypedFormControl('', [Validators.required, Validators.email]),\n password: new UntypedFormControl('', Validators.required),\n });\n }\n\n /**\n * Submit login form\n */\n submit() {\n this.error = '';\n this.loading = true;\n\n if (this.form.invalid) {\n this.formsService.validateAllFormFields(this.form);\n this.scrollToTop();\n this.loading = false;\n return;\n }\n\n this.userService.login(this.form.value).subscribe({\n next: (response) => {\n if (response) {\n this.router.navigate([this.config.redirectUrl]);\n this.form.reset();\n } else {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n this.scrollToTop();\n }\n this.loading = false;\n },\n error: (error) => {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n\n // Wrong password\n if (error?.message?.includes('Unauthorized')) {\n this.error = 'Dein Passwort ist leider falsch. Bitte überprüfe deine Eingabe!';\n }\n\n // User not found\n if (error?.message?.includes('Not user found')) {\n this.error = 'Es konnte kein Konto mit der E-Mail gefunden werden. Bitte gib eine gültige E-Mail ein!';\n }\n\n this.scrollToTop();\n this.loading = false;\n },\n });\n }\n\n scrollToTop() {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column login-container\">\n <div class=\"container\">\n <img *ngIf=\"config?.logoUrl\" class=\"img-fluid mb-5\" [src]=\"config.logoUrl\" alt=\"Logo\" />\n\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'current-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Einloggen</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../passwort-vergessen\" *ngIf=\"config?.showPasswordForget\">Passwort vergessen</a>\n <a routerLink=\"../registrieren\" *ngIf=\"config?.showRegister\">Noch kein Konto? Dann registiere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { FormsService, UserService, Validation } from '@lenne.tech/ng-base/shared';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'base-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.scss'],\n})\nexport class RegisterComponent implements OnInit {\n form: UntypedFormGroup;\n error: string;\n loading: boolean;\n\n constructor(private formsService: FormsService, private userService: UserService, private router: Router) {}\n\n ngOnInit(): void {\n this.createForm();\n }\n\n /**\n * Create login form\n */\n createForm() {\n this.form = new UntypedFormGroup(\n {\n firstName: new UntypedFormControl('', [Validators.required]),\n lastName: new UntypedFormControl('', [Validators.required]),\n email: new UntypedFormControl('', [Validators.required, Validators.email]),\n password: new UntypedFormControl('', Validators.required),\n passwordConfirm: new UntypedFormControl('', Validators.required),\n privacy: new UntypedFormControl(false, Validators.requiredTrue),\n },\n {\n validators: [Validation.match('password', 'passwordConfirm')],\n }\n );\n }\n\n /**\n * Submit login form\n */\n submit() {\n this.error = '';\n this.loading = true;\n\n if (this.form.invalid) {\n this.formsService.validateAllFormFields(this.form);\n this.scrollToTop();\n this.loading = false;\n return;\n }\n\n const input = this.form.value;\n delete input.privacy;\n\n this.userService.register(input).subscribe({\n next: (auth) => {\n if (auth) {\n this.router.navigate(['/main']);\n } else {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n this.scrollToTop();\n }\n this.loading = false;\n },\n error: (err) => {\n if (err?.message?.includes('already exists')) {\n this.error =\n 'Mit dieser E-Mail gibt es bereits ein Konto. Bitte wähle eine andere E-Mail Adresse oder logge dich mit deinem Passwort ein.';\n this.scrollToTop();\n }\n\n this.loading = false;\n },\n });\n }\n\n scrollToTop() {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column register-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div id=\"register-error\" class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'firstName'\"\n [name]=\"'firstName'\"\n [label]=\"'Vorname'\"\n [type]=\"'text'\"\n [control]=\"form.get('firstName')\"\n [autocomplete]=\"'given-name'\"\n ></base-input>\n <base-input\n [id]=\"'lastName'\"\n [name]=\"'lastName'\"\n [label]=\"'Nachname'\"\n [type]=\"'text'\"\n [control]=\"form.get('lastName')\"\n [autocomplete]=\"'family-name'\"\n ></base-input>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'new-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [name]=\"'password-confirm'\"\n [label]=\"'Passwort bestätigen'\"\n [autocomplete]=\"'new-password'\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n ></base-input>\n <base-checkbox [id]=\"'privacy'\" [control]=\"form.get('privacy')\">\n Hiermit bestätige ich, dass ich die <a routerLink=\"/datenschutz\">Datenschutzerklärung</a> gelesen habe und\n akzeptiere.\n </base-checkbox>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Registrieren</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../login\">Bereits ein Konto? Dann logge Dich hier ein!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { FormsService, UserService } from '@lenne.tech/ng-base/shared';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'base-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss'],\n})\nexport class ForgotPasswordComponent implements OnInit {\n form: UntypedFormGroup;\n error: string;\n loading: boolean;\n\n constructor(private formsService: FormsService, private userService: UserService, private router: Router) {}\n\n ngOnInit(): void {\n this.createForm();\n }\n\n /**\n * Create login form\n */\n createForm() {\n this.form = new UntypedFormGroup({\n email: new UntypedFormControl('', [Validators.required, Validators.email]),\n });\n }\n\n /**\n * Submit form\n */\n submit() {\n this.loading = true;\n\n if (this.form.invalid) {\n this.formsService.validateAllFormFields(this.form);\n this.loading = false;\n return;\n }\n\n this.userService.requestPasswordResetMail(this.form.get('email').value).subscribe({\n next: (response) => {\n if (response) {\n this.router.navigate(['/']);\n } else {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n }\n this.loading = false;\n },\n error: () => {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column forgot-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [autocomplete]=\"'email'\"\n [control]=\"form.get('email')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">E-Mail senden</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../login\">Bereits ein Konto? Dann logge Dich hier ein!</a>\n <a routerLink=\"../registrieren\">Noch kein Konto? Dann registiere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AuthService, BasicUser, UserService } from '@lenne.tech/ng-base/shared';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'base-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss'],\n})\nexport class ProfileComponent implements OnInit {\n @Input() config: any = {};\n profileConfig = {\n avatar: {\n label: 'E-Mail',\n placeholder: '',\n },\n email: {\n label: 'E-Mail',\n placeholder: '',\n },\n firstName: {\n label: 'Vorname',\n placeholder: '',\n },\n lastName: {\n label: 'Nachname',\n placeholder: '',\n },\n roles: {\n exclude: true,\n roles: ['admin'],\n },\n username: {\n label: 'Benutzername',\n placeholder: '',\n },\n password: {\n exclude: true,\n },\n };\n\n currentUser: BasicUser;\n\n constructor(private authService: AuthService, private route: ActivatedRoute, private userService: UserService) {\n this.currentUser = authService.currentUser;\n this.profileConfig = { ...this.profileConfig, ...this.config };\n }\n\n ngOnInit() {\n this.route.data.subscribe((data) => {\n // Merge config from route to component\n if (data) {\n this.profileConfig = { ...this.profileConfig, ...data };\n }\n });\n }\n\n /**\n * It gets the current user from the database and updates the current user in the session\n */\n updateSessionUser() {\n this.userService.get(this.authService.currentUser.id).subscribe((user) => {\n if (user) {\n this.authService.currentUser = user;\n }\n });\n }\n}\n","<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 (finished)=\"updateSessionUser()\"\n ></base-model-form>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { BaseModule } from '@lenne.tech/ng-base';\nimport { BaseComponentsModule } from '@lenne.tech/ng-base/base-components';\n\nimport { LoginComponent } from './pages/login/login.component';\nimport { RegisterComponent } from './pages/register/register.component';\nimport { ForgotPasswordComponent } from './pages/forgot-password/forgot-password.component';\nimport { ProfileComponent } from './pages/profile/profile.component';\n\n// Modules\nconst imports = [BaseModule, FormsModule, RouterModule, ReactiveFormsModule, CommonModule, BaseComponentsModule];\n\n// Imported and exported elements\nconst elements = [\n // Components\n LoginComponent,\n RegisterComponent,\n ForgotPasswordComponent,\n ProfileComponent,\n];\n\n@NgModule({\n declarations: elements,\n imports,\n exports: elements,\n})\nexport class BasePrototypeModule {}\n","/**\n * Exports for public API\n */\n\n// Module\nexport * from './base-prototype.module';\n\n// Pages\nexport * from './pages/login/login.component';\nexport * from './pages/register/register.component';\nexport * from './pages/forgot-password/forgot-password.component';\nexport * from './pages/profile/profile.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lenne.tech-ng-base-base-prototype.mjs","sources":["../../../projects/ng-base/base-prototype/pages/login/login.component.ts","../../../projects/ng-base/base-prototype/pages/login/login.component.html","../../../projects/ng-base/base-prototype/pages/register/register.component.ts","../../../projects/ng-base/base-prototype/pages/register/register.component.html","../../../projects/ng-base/base-prototype/pages/forgot-password/forgot-password.component.ts","../../../projects/ng-base/base-prototype/pages/forgot-password/forgot-password.component.html","../../../projects/ng-base/base-prototype/pages/profile/profile.component.ts","../../../projects/ng-base/base-prototype/pages/profile/profile.component.html","../../../projects/ng-base/base-prototype/base-prototype.module.ts","../../../projects/ng-base/base-prototype/public-api.ts","../../../projects/ng-base/base-prototype/lenne.tech-ng-base-base-prototype.ts"],"sourcesContent":["import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormsService, UserService } from '@lenne.tech/ng-base/shared';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'base-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n error: string;\n loading: boolean;\n subscription = new Subscription();\n config = {\n redirectUrl: '/main',\n showPasswordForget: true,\n showRegister: true,\n logoUrl: '',\n };\n\n constructor(\n private formsService: FormsService,\n private userService: UserService,\n private router: Router,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.createForm();\n\n this.subscription.add(\n this.route.data.subscribe((data) => {\n // Merge config from route to component\n if (data?.config) {\n this.config = { ...this.config, ...data.config };\n }\n })\n );\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n /**\n * Create login form\n */\n createForm() {\n this.form = new UntypedFormGroup({\n email: new UntypedFormControl('', [Validators.required, Validators.email]),\n password: new UntypedFormControl('', Validators.required),\n });\n }\n\n /**\n * Submit login form\n */\n submit() {\n this.error = '';\n this.loading = true;\n\n if (this.form.invalid) {\n this.formsService.validateAllFormFields(this.form);\n this.scrollToTop();\n this.loading = false;\n return;\n }\n\n this.userService.login(this.form.value).subscribe({\n next: (response) => {\n if (response) {\n this.router.navigate([this.config.redirectUrl]);\n this.form.reset();\n } else {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n this.scrollToTop();\n }\n this.loading = false;\n },\n error: (error) => {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n\n // Wrong password\n if (error?.message?.includes('Unauthorized')) {\n this.error = 'Dein Passwort ist leider falsch. Bitte überprüfe deine Eingabe!';\n }\n\n // User not found\n if (error?.message?.includes('Not user found')) {\n this.error = 'Es konnte kein Konto mit der E-Mail gefunden werden. Bitte gib eine gültige E-Mail ein!';\n }\n\n this.scrollToTop();\n this.loading = false;\n },\n });\n }\n\n scrollToTop() {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column login-container\">\n <div class=\"container\">\n <img *ngIf=\"config?.logoUrl\" class=\"img-fluid mb-5\" [src]=\"config.logoUrl\" alt=\"Logo\" />\n\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'current-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Einloggen</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../passwort-vergessen\" *ngIf=\"config?.showPasswordForget\">Passwort vergessen</a>\n <a routerLink=\"../registrieren\" *ngIf=\"config?.showRegister\">Noch kein Konto? Dann registiere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { FormsService, UserService, Validation } from '@lenne.tech/ng-base/shared';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'base-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.scss'],\n})\nexport class RegisterComponent implements OnInit {\n form: UntypedFormGroup;\n error: string;\n loading: boolean;\n\n constructor(private formsService: FormsService, private userService: UserService, private router: Router) {}\n\n ngOnInit(): void {\n this.createForm();\n }\n\n /**\n * Create login form\n */\n createForm() {\n this.form = new UntypedFormGroup(\n {\n firstName: new UntypedFormControl('', [Validators.required]),\n lastName: new UntypedFormControl('', [Validators.required]),\n email: new UntypedFormControl('', [Validators.required, Validators.email]),\n password: new UntypedFormControl('', Validators.required),\n passwordConfirm: new UntypedFormControl('', Validators.required),\n privacy: new UntypedFormControl(false, Validators.requiredTrue),\n },\n {\n validators: [Validation.match('password', 'passwordConfirm')],\n }\n );\n }\n\n /**\n * Submit login form\n */\n submit() {\n this.error = '';\n this.loading = true;\n\n if (this.form.invalid) {\n this.formsService.validateAllFormFields(this.form);\n this.scrollToTop();\n this.loading = false;\n return;\n }\n\n const input = this.form.value;\n delete input.privacy;\n\n this.userService.register(input).subscribe({\n next: (auth) => {\n if (auth) {\n this.router.navigate(['/main']);\n } else {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n this.scrollToTop();\n }\n this.loading = false;\n },\n error: (err) => {\n if (err?.message?.includes('already exists')) {\n this.error =\n 'Mit dieser E-Mail gibt es bereits ein Konto. Bitte wähle eine andere E-Mail Adresse oder logge dich mit deinem Passwort ein.';\n this.scrollToTop();\n }\n\n this.loading = false;\n },\n });\n }\n\n scrollToTop() {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column register-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div id=\"register-error\" class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'firstName'\"\n [name]=\"'firstName'\"\n [label]=\"'Vorname'\"\n [type]=\"'text'\"\n [control]=\"form.get('firstName')\"\n [autocomplete]=\"'given-name'\"\n ></base-input>\n <base-input\n [id]=\"'lastName'\"\n [name]=\"'lastName'\"\n [label]=\"'Nachname'\"\n [type]=\"'text'\"\n [control]=\"form.get('lastName')\"\n [autocomplete]=\"'family-name'\"\n ></base-input>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [control]=\"form.get('email')\"\n [autocomplete]=\"'email'\"\n ></base-input>\n <base-input\n [id]=\"'password'\"\n [name]=\"'password'\"\n [label]=\"'Passwort'\"\n [type]=\"'password'\"\n [autocomplete]=\"'new-password'\"\n [control]=\"form.get('password')\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [name]=\"'password-confirm'\"\n [label]=\"'Passwort bestätigen'\"\n [autocomplete]=\"'new-password'\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n ></base-input>\n <base-checkbox [id]=\"'privacy'\" [control]=\"form.get('privacy')\">\n Hiermit bestätige ich, dass ich die <a routerLink=\"/datenschutz\">Datenschutzerklärung</a> gelesen habe und\n akzeptiere.\n </base-checkbox>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Registrieren</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../login\">Bereits ein Konto? Dann logge Dich hier ein!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { FormsService, UserService } from '@lenne.tech/ng-base/shared';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'base-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss'],\n})\nexport class ForgotPasswordComponent implements OnInit {\n form: UntypedFormGroup;\n error: string;\n loading: boolean;\n\n constructor(private formsService: FormsService, private userService: UserService, private router: Router) {}\n\n ngOnInit(): void {\n this.createForm();\n }\n\n /**\n * Create login form\n */\n createForm() {\n this.form = new UntypedFormGroup({\n email: new UntypedFormControl('', [Validators.required, Validators.email]),\n });\n }\n\n /**\n * Submit form\n */\n submit() {\n this.loading = true;\n\n if (this.form.invalid) {\n this.formsService.validateAllFormFields(this.form);\n this.loading = false;\n return;\n }\n\n this.userService.requestPasswordResetMail(this.form.get('email').value).subscribe({\n next: (response) => {\n if (response) {\n this.router.navigate(['/']);\n } else {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n }\n this.loading = false;\n },\n error: () => {\n this.error = 'Etwas ist schiefgelaufen. Bitte probiere es später erneut.';\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column forgot-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'email'\"\n [name]=\"'email'\"\n [label]=\"'E-Mail Adresse'\"\n [type]=\"'email'\"\n [autocomplete]=\"'email'\"\n [control]=\"form.get('email')\"\n ></base-input>\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">E-Mail senden</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n <hr />\n <a routerLink=\"../login\">Bereits ein Konto? Dann logge Dich hier ein!</a>\n <a routerLink=\"../registrieren\">Noch kein Konto? Dann registiere Dich jetzt!</a>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AuthService, BasicUser, UserService } from '@lenne.tech/ng-base/shared';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'base-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss'],\n})\nexport class ProfileComponent implements OnInit {\n @Input() config: any = {};\n profileConfig = {\n avatar: {\n label: 'E-Mail',\n placeholder: '',\n },\n email: {\n label: 'E-Mail',\n placeholder: '',\n },\n firstName: {\n label: 'Vorname',\n placeholder: '',\n },\n lastName: {\n label: 'Nachname',\n placeholder: '',\n },\n roles: {\n exclude: true,\n roles: ['admin'],\n },\n username: {\n label: 'Benutzername',\n placeholder: '',\n },\n password: {\n exclude: true,\n },\n };\n\n currentUser: BasicUser;\n\n constructor(private authService: AuthService, private route: ActivatedRoute, private userService: UserService) {\n this.currentUser = authService.currentUser;\n this.profileConfig = { ...this.profileConfig, ...this.config };\n }\n\n ngOnInit() {\n this.route.data.subscribe((data) => {\n // Merge config from route to component\n if (data) {\n this.profileConfig = { ...this.profileConfig, ...data };\n }\n });\n }\n\n /**\n * It gets the current user from the database and updates the current user in the session\n */\n updateSessionUser() {\n this.userService.get(this.authService.currentUser.id).subscribe((user) => {\n if (user) {\n this.authService.currentUser = user;\n }\n });\n }\n}\n","<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 (finished)=\"updateSessionUser()\"\n ></base-model-form>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { BaseModule } from '@lenne.tech/ng-base';\nimport { BaseComponentsModule } from '@lenne.tech/ng-base/base-components';\n\nimport { LoginComponent } from './pages/login/login.component';\nimport { RegisterComponent } from './pages/register/register.component';\nimport { ForgotPasswordComponent } from './pages/forgot-password/forgot-password.component';\nimport { ProfileComponent } from './pages/profile/profile.component';\n\n// Modules\nconst imports = [BaseModule, FormsModule, RouterModule, ReactiveFormsModule, CommonModule, BaseComponentsModule];\n\n// Imported and exported elements\nconst elements = [\n // Components\n LoginComponent,\n RegisterComponent,\n ForgotPasswordComponent,\n ProfileComponent,\n];\n\n@NgModule({\n declarations: elements,\n imports,\n exports: elements,\n})\nexport class BasePrototypeModule {}\n","/**\n * Exports for public API\n */\n\n// Module\nexport * from './base-prototype.module';\n\n// Pages\nexport * from './pages/login/login.component';\nexport * from './pages/register/register.component';\nexport * from './pages/forgot-password/forgot-password.component';\nexport * from './pages/profile/profile.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3"],"mappings":"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"}
|
|
@@ -2198,6 +2198,12 @@ class CmsService {
|
|
|
2198
2198
|
capitalizeFirstLetter(value) {
|
|
2199
2199
|
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
2200
2200
|
}
|
|
2201
|
+
/**
|
|
2202
|
+
* Transform first letter to lowercase
|
|
2203
|
+
*/
|
|
2204
|
+
lowerCaseFirstLetter(value) {
|
|
2205
|
+
return value.charAt(0).toLowerCase() + value.slice(1);
|
|
2206
|
+
}
|
|
2201
2207
|
}
|
|
2202
2208
|
CmsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, deps: [{ token: GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2203
2209
|
CmsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CmsService, providedIn: 'root' });
|