{"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/*# sourceMappingURL=login.component.css.map*/\"]\n    });\n  }\n  return LoginComponent;\n})();","map":{"version":3,"names":["i0","ɵɵelementContainerStart","ɵɵtext","ɵɵelement","LoginComponent","constructor","authService","userService","router","username","password","loginError","loading","login","subscribe","next","response","console","log","setUserId","userId","setUserAccessData","firstParking","parkingAccess","setUserData","nome","cargo","functionalities","navigate","error","err","_","ɵɵdirectiveInject","i1","AuthService","i2","UserService","i3","Router","_2","selectors","decls","vars","consts","template","LoginComponent_Template","rf","ctx","ɵɵelementStart","ɵɵelementEnd","ɵɵlistener","LoginComponent_Template_form_ngSubmit_4_listener","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtwoWayListener","LoginComponent_Template_input_ngModelChange_9_listener","$event","ɵɵtwoWayBindingSet","LoginComponent_Template_input_ngModelChange_13_listener","ɵɵtemplate","LoginComponent_ng_container_15_Template","LoginComponent_ng_template_16_Template","ɵɵtemplateRefExtractor","ɵɵadvance","ɵɵtwoWayProperty","ɵɵproperty","loginForm_r2","invalid","carregando_r3"],"sources":["/root/rfcontavagas_hom/12.-Servidor-local-Docker/Front-Parking-Angular/src/app/login/login.component.ts","/root/rfcontavagas_hom/12.-Servidor-local-Docker/Front-Parking-Angular/src/app/login/login.component.html"],"sourcesContent":["import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\nimport { UserService } from '../services/user.service';\n\n@Component({\n  selector: 'app-login',\n  templateUrl: './login.component.html',\n  styleUrls: ['./login.component.css']\n})\nexport class LoginComponent {\n  username = '';\n  password = '';\n  loginError = '';\n\n  constructor(\n    private authService: AuthService,\n    private userService: UserService,\n    private router: Router\n  ) {}\n  loading: boolean = false;\n\n  login(): void {\n    this.loading = true;\n\n\n    this.authService.login(this.username, this.password).subscribe({\n      next: (response) => {\n        console.log('Login bem-sucedido:', response);\n\n        // Salva o ID do usuário\n        this.userService.setUserId(response.userId);\n\n        // Salva todos os dados de acesso (para trocar de cliente depois, etc)\n        this.userService.setUserAccessData(response);\n\n        // Usa o primeiro cliente como base para o nome, cargo e funcionalidades\n        const firstParking = response.parkingAccess[0];\n\n        this.authService.setUserData(\n          response.userId,\n          firstParking.nome,\n          firstParking.cargo,\n          firstParking.functionalities\n        );\n        this.loading = false;\n\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\n        this.loginError = 'Usuário ou senha inválidos.';\n      }\n    });\n  }\n}\n","<div class=\"login-container\">\n  <h2><strong>RF ContaVagas</strong></h2>\n  <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n    \n    <div class=\"form-group\">\n      <label for=\"username\">Usuário:</label>\n      <input\n        type=\"text\"\n        id=\"username\"\n        name=\"username\"\n        [(ngModel)]=\"username\"\n        required\n        class=\"form-control\"\n        placeholder=\"Digite seu usuário\"\n      />\n    </div>\n\n    <div class=\"form-group\">\n      <label for=\"password\">Senha:</label>\n      <input\n        type=\"password\"\n        id=\"password\"\n        name=\"password\"\n        [(ngModel)]=\"password\"\n        required\n        class=\"form-control\"\n        placeholder=\"Digite sua senha\"\n      />\n    </div>\n\n    <button type=\"submit\" [disabled]=\"loginForm.invalid || loading\" class=\"btn btn-primary\">\n      <ng-container *ngIf=\"!loading; else carregando\">Entrar</ng-container>\n    </button>\n    \n    <ng-template #carregando>\n      <span class=\"spinner\"></span> Carregando...\n    </ng-template>\n    \n\n  </form>\n</div>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}