{"ast":null,"code":"import * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/auth.service\";\nimport * as i2 from \"../services/user.service\";\nimport * as i3 from \"@angular/router\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@angular/forms\";\nfunction LoginComponent_ng_container_15_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainerStart(0);\n    i0.ɵɵtext(1, \"Entrar\");\n    i0.ɵɵelementContainerEnd();\n  }\n}\nfunction LoginComponent_ng_template_16_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelement(0, \"span\", 11);\n    i0.ɵɵtext(1, \" Carregando... \");\n  }\n}\nexport let LoginComponent = /*#__PURE__*/(() => {\n  class LoginComponent {\n    constructor(authService, userService, router) {\n      this.authService = authService;\n      this.userService = userService;\n      this.router = router;\n      this.username = '';\n      this.password = '';\n      this.loginError = '';\n      this.loading = false;\n    }\n    login() {\n      this.loading = true;\n      this.authService.login(this.username, this.password).subscribe({\n        next: response => {\n          console.log('Login bem-sucedido:', response);\n          // Salva o ID do usuário\n          this.userService.setUserId(response.userId);\n          // Salva todos os dados de acesso (para trocar de cliente depois, etc)\n          this.userService.setUserAccessData(response);\n          // Usa o primeiro cliente como base para o nome, cargo e funcionalidades\n          const firstParking = response.parkingAccess[0];\n          this.authService.setUserData(response.userId, firstParking.nome, firstParking.cargo, firstParking.functionalities);\n          this.loading = false;\n          // Redireciona para a home ou rota inicial\n          this.router.navigate(['/home']);\n        },\n        error: err => {\n          console.error('Erro no login:', err);\n          this.loading = false;\n          this.loginError = 'Usuário ou senha inválidos.';\n        }\n      });\n    }\n    static #_ = this.ɵfac = function LoginComponent_Factory(t) {\n      return new (t || LoginComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.UserService), i0.ɵɵdirectiveInject(i3.Router));\n    };\n    static #_2 = this.ɵcmp = /*@__PURE__*/i0.ɵɵdefineComponent({\n      type: LoginComponent,\n      selectors: [[\"app-login\"]],\n      decls: 18,\n      vars: 5,\n      consts: [[\"loginForm\", \"ngForm\"], [\"carregando\", \"\"], [1, \"login-container\"], [3, \"ngSubmit\"], [1, \"form-group\"], [\"for\", \"username\"], [\"type\", \"text\", \"id\", \"username\", \"name\", \"username\", \"required\", \"\", \"placeholder\", \"Digite seu usu\\u00E1rio\", 1, \"form-control\", 3, \"ngModelChange\", \"ngModel\"], [\"for\", \"password\"], [\"type\", \"password\", \"id\", \"password\", \"name\", \"password\", \"required\", \"\", \"placeholder\", \"Digite sua senha\", 1, \"form-control\", 3, \"ngModelChange\", \"ngModel\"], [\"type\", \"submit\", 1, \"btn\", \"btn-primary\", 3, \"disabled\"], [4, \"ngIf\", \"ngIfElse\"], [1, \"spinner\"]],\n      template: function LoginComponent_Template(rf, ctx) {\n        if (rf & 1) {\n          const _r1 = i0.ɵɵgetCurrentView();\n          i0.ɵɵelementStart(0, \"div\", 2)(1, \"h2\")(2, \"strong\");\n          i0.ɵɵtext(3, \"RF ContaVagas\");\n          i0.ɵɵelementEnd()();\n          i0.ɵɵelementStart(4, \"form\", 3, 0);\n          i0.ɵɵlistener(\"ngSubmit\", function LoginComponent_Template_form_ngSubmit_4_listener() {\n            i0.ɵɵrestoreView(_r1);\n            return i0.ɵɵresetView(ctx.login());\n          });\n          i0.ɵɵelementStart(6, \"div\", 4)(7, \"label\", 5);\n          i0.ɵɵtext(8, \"Usu\\u00E1rio:\");\n          i0.ɵɵelementEnd();\n          i0.ɵɵelementStart(9, \"input\", 6);\n          i0.ɵɵtwoWayListener(\"ngModelChange\", function LoginComponent_Template_input_ngModelChange_9_listener($event) {\n            i0.ɵɵrestoreView(_r1);\n            i0.ɵɵtwoWayBindingSet(ctx.username, $event) || (ctx.username = $event);\n            return i0.ɵɵresetView($event);\n          });\n          i0.ɵɵelementEnd()();\n          i0.ɵɵelementStart(10, \"div\", 4)(11, \"label\", 7);\n          i0.ɵɵtext(12, \"Senha:\");\n          i0.ɵɵelementEnd();\n          i0.ɵɵelementStart(13, \"input\", 8);\n          i0.ɵɵtwoWayListener(\"ngModelChange\", function LoginComponent_Template_input_ngModelChange_13_listener($event) {\n            i0.ɵɵrestoreView(_r1);\n            i0.ɵɵtwoWayBindingSet(ctx.password, $event) || (ctx.password = $event);\n            return i0.ɵɵresetView($event);\n          });\n          i0.ɵɵelementEnd()();\n          i0.ɵɵelementStart(14, \"button\", 9);\n          i0.ɵɵtemplate(15, LoginComponent_ng_container_15_Template, 2, 0, \"ng-container\", 10);\n          i0.ɵɵelementEnd();\n          i0.ɵɵtemplate(16, LoginComponent_ng_template_16_Template, 2, 0, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n          i0.ɵɵelementEnd()();\n        }\n        if (rf & 2) {\n          const loginForm_r2 = i0.ɵɵreference(5);\n          const carregando_r3 = i0.ɵɵreference(17);\n          i0.ɵɵadvance(9);\n          i0.ɵɵtwoWayProperty(\"ngModel\", ctx.username);\n          i0.ɵɵadvance(4);\n          i0.ɵɵtwoWayProperty(\"ngModel\", ctx.password);\n          i0.ɵɵadvance();\n          i0.ɵɵproperty(\"disabled\", loginForm_r2.invalid || ctx.loading);\n          i0.ɵɵadvance();\n          i0.ɵɵproperty(\"ngIf\", !ctx.loading)(\"ngIfElse\", carregando_r3);\n        }\n      },\n      dependencies: [i4.NgIf, i5.ɵNgNoValidate, i5.DefaultValueAccessor, i5.NgControlStatus, i5.NgControlStatusGroup, i5.RequiredValidator, i5.NgModel, i5.NgForm],\n      styles: [\".login-container[_ngcontent-%COMP%]{max-width:420px;margin:100px auto;padding:35px 30px;border-radius:15px;background-color:#fff;box-shadow:0 8px 24px #0000001a;font-family:Segoe UI,sans-serif;text-align:center}.login-container[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:24px;color:#007bff;font-weight:700;margin-bottom:30px}.form-group[_ngcontent-%COMP%]{margin-bottom:20px;text-align:left}label[_ngcontent-%COMP%]{font-weight:700;color:#333;margin-bottom:5px;display:block}input.form-control[_ngcontent-%COMP%]{width:100%;padding:10px;border-radius:8px;border:1px solid #ced4da;background-color:#eaf2ff;font-size:15px;transition:border-color .3s}input.form-control[_ngcontent-%COMP%]:focus{outline:none;border-color:#66afe9;box-shadow:0 0 0 2px #007bff40}button.btn[_ngcontent-%COMP%]{width:100%;padding:12px;font-size:16px;font-weight:700;border-radius:6px;background-color:#007bff;color:#fff;border:none;cursor:pointer;transition:background-color .3s ease}button.btn[_ngcontent-%COMP%]:hover{background-color:#0056b3}button.btn[_ngcontent-%COMP%]:disabled{background-color:#a0c8f0;cursor:not-allowed}.spinner[_ngcontent-%COMP%]{display:inline-block;width:16px;height:16px;border:2px solid #ffffff;border-top:2px solid #007bff;border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite;margin-right:8px;vertical-align:middle}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}\"]\n    });\n  }\n  return LoginComponent;\n})();","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}