PageSourceSearch

https://cdbv-dev.web.app/chunk-X27BLJNS.js

js cdbv-dev.web.app collected 2026-10-03 08:19:48 UTC 13,772 bytes, 1 lines download raw bytes

1import{a as se}from"./chunk-VWZ2ZMYK.js";import{a as me}from"./chunk-ZX5FXTYM.js";import{a as re,b as le}from"./chunk-LJKRCR6X.js";import"./chunk-KJVKR5ST.js";import{a as ae}from"./chunk-HFRNX4TT.js";import"./chunk-2PIO36ZI.js";import"./chunk-PWS3LN2E.js";import"./chunk-IFRBOU62.js";import"./chunk-XTSKKXLY.js";import{a as oe}from"./chunk-MFW5AKST.js";import"./chunk-T4UQCDPY.js";import"./chunk-EKWEYWJV.js";import{a as G}from"./chunk-NPFQWL75.js";import{l as X,n as Y,o as Z,p as ee,q as te,r as ie,s as ne}from"./chunk-3S7XNVYZ.js";import{d as J}from"./chunk-RKSJV6IJ.js";import"./chunk-7DWMSYTP.js";import"./chunk-75W6FHG6.js";import"./chunk-HTMFVGJI.js";import"./chunk-FRBY6MM7.js";import"./chunk-C6MLUQAX.js";import"./chunk-WTIRKKMD.js";import{e as K,f as Q}from"./chunk-V5K5OB3G.js";import"./chunk-ZQSIQGJF.js";import{i as L,n as R}from"./chunk-Y3QL5GO4.js";import{l as q,m as z,n as B,q as H,u as W}from"./chunk-36TLWE26.js";import{$b as S,Ab as A,Bb as I,D as M,Db as h,Hb as u,Ib as s,Ub as f,Vb as v,Wb as $,Xa as o,Ya as w,Zb as y,_b as U,bc as D,cc as V,ea as O,jb as g,l as k,mb as c,mc as N,na as d,oa as p,oc as j,sb as C,tb as F,vb as x,w as P,wb as b,xb as a,yb as r,zb as _}from"./chunk-WLN6BP6B.js";import"./chunk-6MDQTQU3.js";var T=(t,l)=>l.field,ce=()=>[10,25,50,100,200],de=()=>["username","name","email","phone","last_ip","roles"];function pe(t,l){if(t&1){let e=h();a(0,"p-button",13),u("click",function(){d(e);let i=s();return p(i.editUser(i.selectedUsers))}),r(),a(1,"p-button",14),u("click",function(){d(e);let i=s();return p(i.deleteUsers(i.selectedUsers))}),r()}}function _e(t,l){if(t&1&&_(0,"p-columnFilter",22),t&2){let e=s().$implicit;c("field",e.field)}}function ue(t,l){if(t&1&&(a(0,"th",20),f(1),_(2,"p-sortIcon",21),g(3,_e,1,1,"p-columnFilter",22),r()),t&2){let e=l.$implicit;c("pSortableColumn",e.field),o(),$(" ",e.header," "),o(),c("field",e.field),o(),C(e.field==="name"?3:-1)}}function Ce(t,l){if(t&1&&(a(0,"tr")(1,"th",19),_(2,"p-tableHeaderCheckbox"),r(),x(3,ue,4,4,"th",20,T),_(5,"th"),r()),t&2){let e=s(2);o(3),b(e.selectedColumns)}}function fe(t,l){if(t&1&&_(0,"p-chip",31),t&2){let e=l.$implicit;c("label",e)}}function ge(t,l){if(t&1&&(a(0,"span")(1,"div",30),x(2,fe,1,1,"p-chip",31,F),r()()),t&2){let e=s(2).$implicit;o(2),b(e.roles)}}function he(t,l){if(t&1&&(a(0,"span"),_(1,"p-chip",32),r()),t&2){let e=s(2).$implicit;o(),c("label",e.status)("styleClass","status-"+e.status)}}function xe(t,l){if(t&1&&(a(0,"span"),f(1),N(2,"date"),r()),t&2){let e=s(2).$implicit;o(),v(j(2,1,e.created_at,"dd/MM/yyyy"))}}function be(t,l){if(t&1&&(a(0,"span"),f(1),r()),t&2){let e=s().$implicit,n=s().$implicit;o(),v(n[e.field])}}function ve(t,l){if(t&1&&(a(0,"td"),A(1,27),g(2,ge,4,0,"span",28)(3,he,2,2,"span",28)(4,xe,3,4,"span",28)(5,be,2,1,"span",29),I(),r()),t&2){let e=l.$implicit;o(),c("ngSwitch",e.field),o(),c("ngSwitchCase","roles"),o(),c("ngSwitchCase","status"),o(),c("ngSwitchCase","created_at")}}function we(t,l){if(t&1){let e=h();a(0,"tr")(1,"td"),_(2,"p-tableCheckbox",23),r(),x(3,ve,6,4,"td",null,T),a(5,"td")(6,"div",24)(7,"p-button",25),u("click",function(){let i=d(e).$implicit,m=s(2);return p(m.editUser(i))}),r(),a(8,"p-button",26),u("click",function(){let i=d(e).$implicit,m=s(2);return p(m.deleteUser(i))}),r()()()()}if(t&2){let e=l.$implicit,n=s(2);o(2),c("value",e),o(),b(n.selectedColumns),o(5),c("disabled",e.id===1)}}function ye(t,l){if(t&1&&(a(0,"td"),f(1),r()),t&2){let e=s(4);o(),v(e.users.length)}}function Ue(t,l){t&1&&_(0,"td")}function Se(t,l){if(t&1&&g(0,ye,2,1,"td")(1,Ue,1,0,"td"),t&2){let e=l.$implicit;C(e.field==="id"?0:1)}}function Ve(t,l){if(t&1&&(a(0,"tr")(1,"td"),f(2),r(),x(3,Se,2,1,null,null,T),_(5,"td"),r()),t&2){let e=s(2);o(2),v(e.selectedUsers.length||""),o(),b(e.selectedColumns)}}function Te(t,l){if(t&1){let e=h();a(0,"p-table",15,0),S("selectionChange",function(i){d(e);let m=s();return U(m.selectedUsers,i)||(m.selectedUsers=i),p(i)}),g(2,Ce,6,0,"ng-template",16)(3,we,9,2,"ng-template",17)(4,Ve,6,1,"ng-template",18),r()}if(t&2){let e=s();c("value",e.users),y("selection",e.selectedUsers),c("paginator",!0)("rows",50)("rowsPerPageOptions",V(6,ce))("globalFilterFields",V(7,de))}}function Ee(t,l){t&1&&(a(0,"div",8),f(1," No hay resultados "),r())}function ke(t,l){t&1&&_(0,"app-esqueleto",9)}function Pe(t,l){if(t&1){let e=h();a(0,"app-user",33),u("close",function(){d(e);let i=s();return p(i.editableUser=null)})("save",function(i){d(e);let m=s();return p(m.onUserSaved(i))}),r()}if(t&2){let e=s();c("modal",!0)("editable",!0)("user",e.editableUser)}}function Me(t,l){if(t&1){let e=h();a(0,"div",11)(1,"app-signup",34),S("signupVisibleChange",function(i){d(e);let m=s();return U(m.signupVisibleAdmin,i)||(m.signupVisibleAdmin=i),p(i)}),u("signupCompleted",function(){d(e);let i=s();return p(i.getUsers())}),r()()}if(t&2){let e=s();o(),y("signupVisible",e.signupVisibleAdmin),c("admin",!0)}}function Oe(t,l){if(t&1){let e=h();a(0,"app-column-picker",35),u("close",function(){d(e);let i=s();return p(i.columnPickerVisible=!1)})("save",function(i){d(e);let m=s();return p(m.onColumnsSelected(i))}),r()}if(t&2){let e=s();c("availableColumns",e.availableColumns)("selectedColumns",e.selectedColumns)}}var Qe=(()=>{class t{constructor(e,n,i){this.authService=e,this.messageService=n,this.router=i,this.users=[],this.selectedUsers=[],this.roles=[],this.loading=!0,this.signupVisibleAdmin=!1,this.editableUser=null,this.defaultColumns=["id","name","email","phone","roles"],this.allColumns=[{field:"id",header:"Id"},{field:"email",header:"Email"},{field:"last_ip",header:"\xDAltima IP"},{field:"name",header:"Nombre"},{field:"phone",header:"Tel\xE9fono"},{field:"roles",header:"Roles"},{field:"status",header:"Estado"},{field:"created_at",header:"Creado"}],this.selectedColumns=[],this.columnPickerVisible=!1}ngOnInit(){this.getUsers()}goToAdmin(){this.router.navigate(["/admin"])}getUsers(){this.loading=!0,this.authService.getAllUsers().subscribe({next:e=>{this.users=e,this.allColumns.sort((n,i)=>n.field.localeCompare(i.field)),this.selectedColumns=this.allColumns.filter(n=>this.defaultColumns.includes(n.field)).sort((n,i)=>this.defaultColumns.indexOf(n.field)-this.defaultColumns.indexOf(i.field)),this.loading=!1},error:e=>{this.loading=!1,console.error("Error recibiendo los usuarios",e),this.messageService.add({severity:"error",summary:"Error",detail:e.error||"Error recibiendo los usuarios."})}})}clear(e){e.clear()}openSignupAdmin(){this.signupVisibleAdmin=!0}editUser(e){this.editableUser=e}deleteUser(e){if(e.id===1){this.messageService.add({severity:"error",summary:"Error",detail:"No puedes eliminar al usuario con ID 1."});return}confirm(`\xBFDe verdad quieres borrar al usuario "${e.email}" con ID ${e.id} y todo lo asociado a \xE9l?`)&&this.authService.deleteUser(e.id).subscribe({next:()=>{this.getUsers(),this.messageService.add({severity:"success",summary:"Success",detail
1:`User with ID ${e.id} deleted successfully.`})},error:i=>{console.error(i),this.messageService.add({severity:"error",summary:"Error",detail:`Error deleting user with ID ${e.id}: ${i.message}`})}})}deleteUsers(e){if(!confirm(`\xBFDe verdad quieres borrar ${e.length} jugadores y todo lo asociado a ellos?`)||e.length===0)return;let i=e.map(m=>this.authService.deleteUser(m.id).pipe(M(E=>(console.error(E),this.messageService.add({severity:"error",summary:"Error",detail:`Error deleting user with ID ${m.id}: ${E.message}`}),k(null)))));P(i).subscribe({next:()=>{this.getUsers(),this.messageService.add({severity:"success",summary:"\xC9xito",detail:"Jugadores borrados con \xE9xito."})},error:m=>{console.error("Error al eliminar jugadores:",m),this.messageService.add({severity:"error",summary:"Error",detail:"Error al eliminar los jugadores seleccionados."})}})}onUserSaved(e){this.authService.updateUser(e.id,e).subscribe({next:()=>{this.getUsers(),this.editableUser=null,this.messageService.add({severity:"success",summary:"Guardado",detail:"Usuario actualizado correctamente."})},error:n=>{this.messageService.add({severity:"error",summary:"Error",detail:n.error||"No se pudo actualizar el usuario."})}})}openColumnPicker(){this.columnPickerVisible=!0}onColumnsSelected(e){this.selectedColumns=e,this.columnPickerVisible=!1}get availableColumns(){return this.allColumns.filter(e=>!this.selectedColumns.includes(e))}static{this.\u0275fac=function(n){return new(n||t)(w(G),w(L),w(J))}}static{this.\u0275cmp=O({type:t,selectors:[["app-users"]],standalone:!0,features:[D],decls:16,vars:8,consts:[["usersTable",""],[1,"viewContainer","adminView","users"],[1,"sr-only"],[1,"cuadro","actions"],["icon","fa-solid fa-arrow-left","ariaLabel","Volver a Administraci\xF3n",3,"onClick"],["label","Nuevo usuario","severity","secondary","icon","fa fa-user-plus",3,"click","raised"],["label","Seleccionar columnas","severity","secondary","icon","fa fa-table-columns",3,"click"],[1,"usersTable",3,"value","selection","paginator","rows","rowsPerPageOptions","globalFilterFields"],[1,"cuadro"],["type","table"],[3,"modal","editable","user"],[1,"modal"],[3,"availableColumns","selectedColumns"],["label","Editar usuarios","severity","secondary","icon","fa fa-edit",3,"click"],["label","Eliminar usuarios","severity","danger","icon","fa fa-trash",3,"click"],[1,"usersTable",3,"selectionChange","value","selection","paginator","rows","rowsPerPageOptions","globalFilterFields"],["pTemplate","header"],["pTemplate","body"],["pTemplate","footer"],[2,"width","4rem"],[3,"pSortableColumn"],[3,"field"],["type","text","display","menu",3,"field"],[3,"value"],[1,"actions"],["severity","secondary","icon","fa fa-edit",3,"click"],["severity","danger","icon","fa fa-trash",3,"click","disabled"],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[1,"roles"],[3,"label"],[3,"label","styleClass"],[3,"close","save","modal","editable","user"],[3,"signupVisibleChange","signupCompleted","signupVisible","admin"],[3,"close","save","availableColumns","selectedColumns"]],template:function(n,i){n&1&&(a(0,"div",1)(1,"h1",2),f(2,"Administraci\xF3n de usuarios"),r(),a(3,"div",3)(4,"p-button",4),u("onClick",function(){return i.goToAdmin()}),r(),a(5,"p-button",5),u("click",function(){return i.openSignupAdmin()}),r(),a(6,"p-button",6),u("click",function(){return i.openColumnPicker()}),r(),g(7,pe,2,0),a(8,"h2"),f(9,"Usuarios"),r()(),g(10,Te,5,8,"p-table",7)(11,Ee,2,0,"div",8)(12,ke,1,0,"app-esqueleto",9),r(),g(13,Pe,1,3,"app-user",10)(14,Me,2,2,"div",11)(15,Oe,1,2,"app-column-picker",12)),n&2&&(o(5),c("raised",!0),o(2),C(i.selectedUsers.length>0?7:-1),o(3),C(i.users&&i.users.length>0?10:-1),o(),C(!i.loading&&i.users.length===0?11:-1),o(),C(i.loading?12:-1),o(),C(i.editableUser?13:-1),o(),C(i.signupVisibleAdmin?14:-1),o(),C(i.columnPickerVisible?15:-1))},dependencies:[Q,K,R,le,re,me,W,q,z,B,H,oe,ae,ne,X,Y,Z,ee,te,ie,se],styles:["[_nghost-%COMP%]     .admin h1{font-family:Helvetica Now;font-size:2rem;font-weight:700;line-height:115%;letter-spacing:-1.2px;text-align:center}@media (max-width: 478px){[_nghost-%COMP%]     .admin h1{font-family:Helvetica Now;font-size:1.5rem;margin-block-start:.83em;margin-block-end:.83em;margin-inline-start:0px;margin-inline-end:0px;font-weight:700;line-height:100%}}[_nghost-%COMP%]     .admin .cuadro{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}[_nghost-%COMP%]     .admin .cuadro p-button{max-width:500px;flex:0 0 32%}@media (max-width: 1024px){[_nghost-%COMP%]     .admin .cuadro p-button{flex:0 0 49%}}@media (max-width: 768px){[_nghost-%COMP%]     .admin .cuadro p-button{flex:0 0 100%}}[_nghost-%COMP%]     .admin .cuadro p-button button{width:-webkit-fill-available}[_nghost-%COMP%]     .adminView .actions{display:flex;align-items:center;gap:12px}@media (max-width: 768px){[_nghost-%COMP%]     .adminView .actions{flex-direction:column-reverse;align-items:stretch;gap:16px}[_nghost-%COMP%]     .adminView .actions p-button{width:100%}[_nghost-%COMP%]     .adminView .actions p-button .p-button{width:-webkit-fill-available;text-align:center!important}[_nghost-%COMP%]     .adminView .actions p-dropdown{margin-top:6px}[_nghost-%COMP%]     .adminView .actions p-dropdown .p-dropdown{width:-webkit-fill-available}[_nghost-%COMP%]     .adminView .actions h2{justify-content:center!important;margin-block:.2em!important;font-size:2.6em}}[_nghost-%COMP%]     .adminView .actions h2{font-family:Helvetica Now;font-size:2rem;font-weight:700;line-height:115%;letter-spacing:-1.2px;flex:1 0 0;display:flex;justify-content:end;margin-block:0}[_nghost-%COMP%]     .adminView table th .thAligned{display:flex;align-items:center;gap:4px}[_nghost-%COMP%]     .adminView table th .thAligned p-sorticon sortalticon{display:flex;justify-content:center;align-items:center;height:32px;width:32px}[_nghost-%COMP%]     .adminView table th .thAligned p-sorticon sortalticon svg{margin:0}[_nghost-%COMP%]     .adminView table th .thAligned p-columnfilter .p-column-filter-menu
1-button{height:32px;width:32px}[_nghost-%COMP%]     .adminView table th .thAligned p-columnfilter .p-column-filter-menu-button svg{margin-top:3px}[_nghost-%COMP%]     .adminView table td .roles{display:flex;gap:4px}[_nghost-%COMP%]     .adminView table td .actions{display:flex;justify-content:end;align-items:center;gap:4px}[_nghost-%COMP%]     .adminView table td .actions .p-button{padding:0!important;width:32px!important;height:32px!important}[_nghost-%COMP%]     .adminView p-column-filter-overlay-menu p-columnfilterformelement, [_nghost-%COMP%]     .adminView p-column-filter-overlay-menu p-column-filter-add-button{width:-webkit-fill-available}[_nghost-%COMP%]     .adminView p-column-filter-overlay-menu p-columnfilterformelement input, [_nghost-%COMP%]     .adminView p-column-filter-overlay-menu p-column-filter-add-button input{width:auto}"]})}}return t})();export{Qe as UsersComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.