import{a as G}from"./chunk-TG6VAGNW.js";import{a as U,b as z,e as N,g as j,i as R}from"./chunk-3W3Y6BTK.js";import{$ as l,B as L,H as h,I as w,J as E,L as D,M as v,N as S,O as o,P as a,Q as V,U as C,W as f,Y as d,Z as A,_ as k,a as b,aa as P,b as M,ba as W,ca as B,da as g,ea as u,fa as p,l as O,m as _,n as m,r as y,va as I,w as T,x as c}from"./chunk-THKCX2S5.js";var F=(s,r)=>r.id;function X(s,r){if(s&1){let t=C();o(0,"div",19)(1,"input",23),f("input",function(e){let n=_(t).$index,x=d(3);return m(x.updateTag(n,e.target.value))}),a(),o(2,"button",24),f("click",function(){let e=_(t).$index,n=d(3);return m(n.removeTag(e))}),l(3,"\u2715"),a()()}if(s&2){let t=r.$implicit;c(),S("value",t)}}function q(s,r){s&1&&l(0," Sauvegarde\u2026 ")}function K(s,r){s&1&&l(0," Sauvegarder ")}function Q(s,r){if(s&1){let t=C();o(0,"div",8)(1,"div",9)(2,"label"),l(3,"Nom"),a(),o(4,"input",10),p("ngModelChange",function(e){let n=_(t);return u(n.name,e)||(n.name=e),m(e)}),a()(),o(5,"div",9)(6,"label"),l(7,"Titre"),a(),o(8,"input",11),p("ngModelChange",function(e){let n=_(t);return u(n.title,e)||(n.title=e),m(e)}),a()(),o(9,"div",9)(10,"label"),l(11,"Avatar URL"),a(),o(12,"input",12),p("ngModelChange",function(e){let n=_(t);return u(n.avatarUrl,e)||(n.avatarUrl=e),m(e)}),a()(),o(13,"div",9)(14,"label"),l(15,"Background Image URL"),a(),o(16,"input",13),p("ngModelChange",function(e){let n=_(t);return u(n.backgroundImageUrl,e)||(n.backgroundImageUrl=e),m(e)}),a()(),o(17,"div",14)(18,"label"),l(19,"Description courte"),a(),o(20,"textarea",15),p("ngModelChange",function(e){let n=_(t);return u(n.description,e)||(n.description=e),m(e)}),a()(),o(21,"div",14)(22,"label"),l(23,"\xC0 propos (HTML)"),a(),o(24,"textarea",16),p("ngModelChange",function(e){let n=_(t);return u(n.aboutText,e)||(n.aboutText=e),m(e)}),a()()(),o(25,"div",17)(26,"label"),l(27,"Tags"),a(),o(28,"div",18),D(29,X,4,1,"div",19,E),o(31,"button",20),f("click",function(){_(t);let e=d(2);return m(e.addTag())}),l(32,"+ Tag"),a()()(),o(33,"div",21)(34,"button",22),f("click",function(){_(t);let e=d(2);return m(e.saveProfile())}),h(35,q,1,0)(36,K,1,0),a()()}if(s&2){let t=r,i=d(2);c(4),g("ngModel",t.name),c(4),g("ngModel",t.title),c(4),g("ngModel",t.avatarUrl),c(4),g("ngModel",t.backgroundImageUrl),c(4),g("ngModel",t.description),c(4),g("ngModel",t.aboutText),c(5),v(t.tags),c(5),S("disabled",i.profileSaving()),c(),w(i.profileSaving()?35:36)}}function Y(s,r){if(s&1&&(o(0,"section",7)(1,"h2"),l(2,"Profil"),a(),h(3,Q,37,8),a()),s&2){let t,i=d();c(3),w((t=i.profile())?3:-1,t)}}function Z(s,r){if(s&1){let t=C();o(0,"div",32)(1,"input",34),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editGameDraft.icon,e)||(n.editGameDraft.icon=e),m(e)}),a(),o(2,"input",35),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editGameDraft.name,e)||(n.editGameDraft.name=e),m(e)}),a(),o(3,"input",36),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editGameDraft.type,e)||(n.editGameDraft.type=e),m(e)}),a(),o(4,"input",37),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editGameDraft.sortOrder,e)||(n.editGameDraft.sortOrder=e),m(e)}),a(),o(5,"button",38),f("click",function(){_(t);let e=d(3);return m(e.saveGame())}),l(6,"\u2713"),a(),o(7,"button",39),f("click",function(){_(t);let e=d(3);return m(e.editingGameId=null)}),l(8,"\u2715"),a()()}if(s&2){let t=d(3);c(),g("ngModel",t.editGameDraft.icon),c(),g("ngModel",t.editGameDraft.name),c(),g("ngModel",t.editGameDraft.type),c(),g("ngModel",t.editGameDraft.sortOrder)}}function $(s,r){if(s&1){let t=C();o(0,"div",33)(1,"span",40),l(2),a(),o(3,"span",41),l(4),a(),o(5,"span",42),l(6),a(),o(7,"button",43),f("click",function(){_(t);let e=d().$implicit,n=d(2);return m(n.startEditGame(e))}),l(8,"\u270E"),a(),o(9,"button",24),f("click",function(){_(t);let e=d().$implicit,n=d(2);return m(n.deleteGame(e.id))}),l(10,"\u2715"),a()()}if(s&2){let t=d().$implicit;c(2),P(t.icon),c(2),P(t.name),c(2),P(t.type)}}function ee(s,r){if(s&1&&h(0,Z,9,4,"div",32)(1,$,11,3,"div",33),s&2){let t=r.$implicit,i=d(2);w(i.editingGameId===t.id?0:1)}}function te(s,r){if(s&1){let t=C();o(0,"section",7)(1,"h2"),l(2,"Jeux"),a(),o(3,"div",25),D(4,ee,2,1,null,null,F),a(),o(6,"div",26)(7,"h3"),l(8,"Ajouter un jeu"),a(),o(9,"div",8)(10,"div",9)(11,"label"),l(12,"Nom"),a(),o(13,"input",27),p("ngModelChange",function(e){_(t);let n=d();return u(n.newGame.name,e)||(n.newGame.name=e),m(e)}),a()(),o(14,"div",9)(15,"label"),l(16,"Ic\xF4ne (emoji)"),a(),o(17,"input",28),p("ngModelChange",function(e){_(t);let n=d();return u(n.newGame.icon,e)||(n.newGame.icon=e),m(e)}),a()(),o(18,"div",9)(19,"label"),l(20,"Type"),a(),o(21,"input",29),p("ngModelChange",function(e){_(t);let n=d();return u(n.newGame.type,e)||(n.newGame.type=e),m(e)}),a()(),o(22,"div",9)(23,"label"),l(24,"Ordre"),a(),o(25,"input",30),p("ngModelChange",function(e){_(t);let n=d();return u(n.newGame.sortOrder,e)||(n.newGame.sortOrder=e),m(e)}),a()()(),o(26,"button",31),f("click",function(){_(t);let e=d();return m(e.addGame())}),l(27,"Ajouter"),a()()()}if(s&2){let t=d();c(4),v(t.games()),c(9),g("ngModel",t.newGame.name),c(4),g("ngModel",t.newGame.icon),c(4),g("ngModel",t.newGame.type),c(4),g("ngModel",t.newGame.sortOrder)}}function ne(s,r){if(s&1){let t=C();o(0,"div",32)(1,"input",51),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editSocialLinkDraft.platform,e)||(n.editSocialLinkDraft.platform=e),m(e)}),a(),o(2,"input",52),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editSocialLinkDraft.url,e)||(n.editSocialLinkDraft.url=e),m(e)}),a(),o(3,"input",53),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editSocialLinkDraft.username,e)||(n.editSocialLinkDraft.username=e),m(e)}),a(),o(4,"input",54),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editSocialLinkDraft.icon,e)||(n.editSocialLinkDraft.icon=e),m(e)}),a(),o(5,"input",55),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editSocialLinkDraft.color,e)||(n.editSocialLinkDraft.color=e),m(e)}),a(),o(6,"input",56),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editSocialLinkDraft.color,e)||(n.editSocialLinkDraft.color=e),m(e)}),a(),o(7,"button",38),f("click",function(){_(t);let e=d(3);return m(e.saveSocialLink())}),l(8,"\u2713"),a(),o(9,"button",39),f("click",function(){_(t);let e=d(3);return m(e.editingSocialLinkId=null)}),l(10,"\u2715"),a()()}if(s&2){let t=d(3);c(),g("ngModel",t.editSocialLinkDraft.platform),c(),g("ngModel",t.editSocialLinkDraft.url),c(),g("ngModel",t.editSocialLinkDraft.username),c(),g("ngModel",t.editSocialLinkDraft.icon),c(),g("ngModel",t.editSocialLinkDraft.color),c(),g("ngModel",t.editSocialLinkDraft.color)}}function ie(s,r){if(s&1){let t=C();o(0,"div",33),V(1,"span",57),o(2,"span",41),l(3),a(),o(4,"span",42),l(5),a(),o(6,"a",58),l(7),a(),o(8,"button",43),f("click",function(){_(t);let e=d().$implicit,n=d(2);return m(n.startEditSocialLink(e))}),l(9,"\u270E"),a(),o(10,"button",24),f("click",function(){_(t);let e=d().$implicit,n=d(2);return m(n.deleteSocialLink(e.id))}),l(11,"\u2715"),a()()}if(s&2){let t=d().$implicit;c(),A("background",t.color),c(2),P(t.platform),c(2),P(t.username),c(),S("href",t.url,T),c(),P(t.url)}}function oe(s,r){if(s&1&&h(0,ne,11,6,"div",32)(1,ie,12,6,"div",33),s&2){let t=r.$implicit,i=d(2);w(i.editingSocialLinkId===t.id?0:1)}}function ae(s,r){if(s&1){let t=C();o(0,"section",7)(1,"h2"),l(2,"R\xE9seaux sociaux"),a(),o(3,"div",25),D(4,oe,2,1,null,null,F),a(),o(6,"div",26)(7,"h3"),l(8,"Ajouter un lien"),a(),o(9,"div",8)(10,"div",9)(11,"label"),l(12,"Plateforme"),a(),o(13,"input",44),p("ngModelChange",function(e){_(t);let n=d();return u(n.newSocialLink.platform,e)||(n.newSocialLink.platform=e),m(e)}),a()(),o(14,"div",9)(15,"label"),l(16,"URL"),a(),o(17,"input",45),p("ngModelChange",function(e){_(t);let n=d();return u(n.newSocialLink.url,e)||(n.newSocialLink.url=e),m(e)}),a()(),o(18,"div",9)(19,"label"),l(20,"Username"),a(),o(21,"input",46),p("ngModelChange",function(e){_(t);let n=d();return u(n.newSocialLink.username,e)||(n.newSocialLink.username=e),m(e)}),a()(),o(22,"div",9)(23,"label"),l(24,"Ic\xF4ne (ex: twitch.svg)"),a(),o(25,"input",47),p("ngModelChange",function(e){_(t);let n=d();return u(n.newSocialLink.icon,e)||(n.newSocialLink.icon=e),m(e)}),a()(),o(26,"div",9)(27,"label"),l(28,"Couleur"),a(),o(29,"div",48)(30,"input",49),p("ngModelChange",function(e){_(t);let n=d();return u(n.newSocialLink.color,e)||(n.newSocialLink.color=e),m(e)}),a(),o(31,"input",50),p("ngModelChange",function(e){_(t);let n=d();return u(n.newSocialLink.color,e)||(n.newSocialLink.color=e),m(e)}),a()()()(),o(32,"button",31),f("click",function(){_(t);let e=d();return m(e.addSocialLink())}),l(33,"Ajouter"),a()()()}if(s&2){let t=d();c(4),v(t.socialLinks()),c(9),g("ngModel",t.newSocialLink.platform),c(4),g("ngModel",t.newSocialLink.url),c(4),g("ngModel",t.newSocialLink.username),c(4),g("ngModel",t.newSocialLink.icon),c(5),g("ngModel",t.newSocialLink.color),c(),g("ngModel",t.newSocialLink.color)}}function re(s,r){if(s&1){let t=C();o(0,"div",64)(1,"div",66)(2,"input",67),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editFanartDraft.title,e)||(n.editFanartDraft.title=e),m(e)}),a(),o(3,"input",68),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editFanartDraft.author,e)||(n.editFanartDraft.author=e),m(e)}),a(),o(4,"input",69),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editFanartDraft.imageUrl,e)||(n.editFanartDraft.imageUrl=e),m(e)}),a(),o(5,"input",70),p("ngModelChange",function(e){_(t);let n=d(3);return u(n.editFanartDraft.sortOrder,e)||(n.editFanartDraft.sortOrder=e),m(e)}),a(),o(6,"div",71)(7,"button",38),f("click",function(){_(t);let e=d(3);return m(e.saveFanart())}),l(8,"\u2713 Sauvegarder"),a(),o(9,"button",39),f("click",function(){_(t);let e=d(3);return m(e.editingFanartId=null)}),l(10,"Annuler"),a()()()()}if(s&2){let t=d(3);c(2),g("ngModel",t.editFanartDraft.title),c(),g("ngModel",t.editFanartDraft.author),c(),g("ngModel",t.editFanartDraft.imageUrl),c(),g("ngModel",t.editFanartDraft.sortOrder)}}function le(s,r){if(s&1){let t=C();o(0,"div",65),V(1,"img",72),o(2,"div",73)(3,"span",74),l(4),a(),o(5,"span",75),l(6),a()(),o(7,"button",76),f("click",function(){_(t);let e=d().$implicit,n=d(2);return m(n.startEditFanart(e))}),l(8,"\u270E"),a(),o(9,"button",77),f("click",function(){_(t);let e=d().$implicit,n=d(2);return m(n.deleteFanart(e.id))}),l(10,"\u2715"),a()()}if(s&2){let t=d().$implicit;c(),S("src",t.imageUrl,T)("alt",t.title),c(3),P(t.title),c(2),W("par ",t.author)}}function de(s,r){if(s&1&&h(0,re,11,4,"div",64)(1,le,11,4,"div",65),s&2){let t=r.$implicit,i=d(2);w(i.editingFanartId===t.id?0:1)}}function ce(s,r){if(s&1){let t=C();o(0,"section",7)(1,"h2"),l(2,"Fanarts"),a(),o(3,"div",59),D(4,de,2,1,null,null,F),a(),o(6,"div",26)(7,"h3"),l(8,"Ajouter un fanart"),a(),o(9,"div",8)(10,"div",9)(11,"label"),l(12,"Titre"),a(),o(13,"input",60),p("ngModelChange",function(e){_(t);let n=d();return u(n.newFanart.title,e)||(n.newFanart.title=e),m(e)}),a()(),o(14,"div",9)(15,"label"),l(16,"Auteur"),a(),o(17,"input",61),p("ngModelChange",function(e){_(t);let n=d();return u(n.newFanart.author,e)||(n.newFanart.author=e),m(e)}),a()(),o(18,"div",14)(19,"label"),l(20,"URL de l'image"),a(),o(21,"input",62),p("ngModelChange",function(e){_(t);let n=d();return u(n.newFanart.imageUrl,e)||(n.newFanart.imageUrl=e),m(e)}),a()(),o(22,"div",9)(23,"label"),l(24,"Ordre"),a(),o(25,"input",63),p("ngModelChange",function(e){_(t);let n=d();return u(n.newFanart.sortOrder,e)||(n.newFanart.sortOrder=e),m(e)}),a()()(),o(26,"button",31),f("click",function(){_(t);let e=d();return m(e.addFanart())}),l(27,"Ajouter"),a()()()}if(s&2){let t=d();c(4),v(t.fanarts()),c(9),g("ngModel",t.newFanart.title),c(4),g("ngModel",t.newFanart.author),c(4),g("ngModel",t.newFanart.imageUrl),c(4),g("ngModel",t.newFanart.sortOrder)}}function se(s,r){if(s&1){let t=C();o(0,"div",80)(1,"input",88),f("ngModelChange",function(e){let n=_(t).$index,x=d(2);return m(x.updateBrandColor(n,"hex",e))}),a(),o(2,"input",89),f("ngModelChange",function(e){let n=_(t).$index,x=d(2);return m(x.updateBrandColor(n,"name",e))}),a(),o(3,"input",90),f("ngModelChange",function(e){let n=_(t).$index,x=d(2);return m(x.updateBrandColor(n,"hex",e))}),a(),o(4,"button",24),f("click",function(){let e=_(t).$index,n=d(2);return m(n.removeColor(e))}),l(5,"\u2715"),a()()}if(s&2){let t=r.$implicit,i=r.$index;c(),S("ngModel",t.hex)("name","cHex"+i),c(),S("ngModel",t.name)("name","cName"+i),c(),S("ngModel",t.hex)("name","cHexT"+i)}}function _e(s,r){if(s&1){let t=C();o(0,"div",86)(1,"input",91),f("ngModelChange",function(e){let n=_(t).$index,x=d(2);return m(x.updateBrandFont(n,e))}),a(),o(2,"button",24),f("click",function(){let e=_(t).$index,n=d(2);return m(n.removeFont(e))}),l(3,"\u2715"),a()()}if(s&2){let t=r.$implicit,i=r.$index;c(),S("ngModel",t.name)("name","fName"+i)}}function me(s,r){if(s&1){let t=C();o(0,"section",7)(1,"h2"),l(2,"Brand Guidelines"),a(),o(3,"div",78)(4,"h3"),l(5,"Couleurs"),a(),o(6,"div",79),D(7,se,6,6,"div",80,E),a(),o(9,"div",81)(10,"input",82),p("ngModelChange",function(e){_(t);let n=d();return u(n.newColor.name,e)||(n.newColor.name=e),m(e)}),a(),o(11,"input",83),p("ngModelChange",function(e){_(t);let n=d();return u(n.newColor.hex,e)||(n.newColor.hex=e),m(e)}),a(),o(12,"input",84),p("ngModelChange",function(e){_(t);let n=d();return u(n.newColor.hex,e)||(n.newColor.hex=e),m(e)}),a(),o(13,"button",20),f("click",function(){_(t);let e=d();return m(e.addColor())}),l(14,"+ Couleur"),a()()(),o(15,"div",78)(16,"h3"),l(17,"Polices"),a(),o(18,"div",85),D(19,_e,4,2,"div",86,E),a(),o(21,"div",81)(22,"input",87),p("ngModelChange",function(e){_(t);let n=d();return u(n.newFont.name,e)||(n.newFont.name=e),m(e)}),a(),o(23,"button",20),f("click",function(){_(t);let e=d();return m(e.addFont())}),l(24,"+ Police"),a()()(),o(25,"div",21)(26,"button",31),f("click",function(){_(t);let e=d();return m(e.saveBrand())}),l(27,"Sauvegarder"),a()()()}if(s&2){let t=d();c(7),v(t.brand().colors),c(3),g("ngModel",t.newColor.name),c(),g("ngModel",t.newColor.hex),c(),g("ngModel",t.newColor.hex),c(7),v(t.brand().fonts),c(3),g("ngModel",t.newFont.name)}}function ge(s,r){s&1&&l(0," Importation\u2026 ")}function ue(s,r){s&1&&l(0," Choisir un fichier .json ")}function pe(s,r){if(s&1&&(o(0,"div",98),l(1),a()),s&2){let t=r;k("success",t.type==="success")("error",t.type==="error"),c(),B(" ",t.type==="success"?"\u2713":"\u2715"," ",t.message," ")}}function fe(s,r){if(s&1){let t=C();o(0,"section",7)(1,"h2"),l(2,"Sauvegarde & Restauration"),a(),o(3,"div",92)(4,"div",93)(5,"div",94),l(6,"\u2B07\uFE0F"),a(),o(7,"h3"),l(8,"Exporter"),a(),o(9,"p"),l(10,"T\xE9l\xE9charge toutes les donn\xE9es (profil, jeux, r\xE9seaux, fanarts, brand) dans un fichier "),o(11,"code"),l(12,".json"),a(),l(13,"."),a(),o(14,"button",31),f("click",function(){_(t);let e=d();return m(e.exportBackup())}),l(15,"T\xE9l\xE9charger la sauvegarde"),a()(),o(16,"div",93)(17,"div",94),l(18,"\u2B06\uFE0F"),a(),o(19,"h3"),l(20,"Importer"),a(),o(21,"p"),l(22,"Restaure les donn\xE9es depuis un fichier "),o(23,"code"),l(24,".json"),a(),l(25," export\xE9 pr\xE9c\xE9demment. "),o(26,"strong"),l(27,"Cette action \xE9crase toutes les donn\xE9es existantes."),a()(),o(28,"label",95),h(29,ge,1,0)(30,ue,1,0),o(31,"input",96),f("change",function(e){_(t);let n=d();return m(n.importBackup(e))}),a()()()(),h(32,pe,2,6,"div",97),a()}if(s&2){let t,i=d();c(28),k("loading",i.importing()),c(),w(i.importing()?29:30),c(2),S("disabled",i.importing()),c(),w((t=i.backupStatus())?32:-1,t)}}var H=class s{auth=O(I);api=O(G);activeTab=y("profile");profile=y(null);profileSaving=y(!1);games=y([]);newGame={name:"",icon:"",type:"",sortOrder:0};editingGameId=null;editGameDraft={name:"",icon:"",type:"",sortOrder:0};socialLinks=y([]);newSocialLink={platform:"",url:"",username:"",icon:"",color:"#000000"};editingSocialLinkId=null;editSocialLinkDraft={platform:"",url:"",username:"",icon:"",color:"#000000"};fanarts=y([]);newFanart={title:"",author:"",imageUrl:"",sortOrder:0};editingFanartId=null;editFanartDraft={title:"",author:"",imageUrl:"",sortOrder:0};brand=y({colors:[],fonts:[]});newColor={name:"",hex:"#000000"};newFont={name:""};ngOnInit(){this.loadAll()}loadAll(){this.api.getProfile().subscribe(r=>this.profile.set(r)),this.api.getGames().subscribe(r=>this.games.set(r)),this.api.getSocialLinks().subscribe(r=>this.socialLinks.set(r)),this.api.getFanarts().subscribe(r=>this.fanarts.set(r)),this.api.getBrand().subscribe(r=>this.brand.set(r))}saveProfile(){let r=this.profile();r&&(this.profileSaving.set(!0),this.api.updateProfile(r).subscribe({next:t=>{this.profile.set(t),this.profileSaving.set(!1)},error:()=>this.profileSaving.set(!1)}))}updateTag(r,t){let i=this.profile();if(!i)return;let e=[...i.tags];e[r]=t,this.profile.set(M(b({},i),{tags:e}))}addTag(){let r=this.profile();r&&this.profile.set(M(b({},r),{tags:[...r.tags,""]}))}removeTag(r){let t=this.profile();if(!t)return;let i=t.tags.filter((e,n)=>n!==r);this.profile.set(M(b({},t),{tags:i}))}addGame(){this.newGame.name&&this.api.createGame(this.newGame).subscribe(r=>{this.games.update(t=>[...t,r]),this.newGame={name:"",icon:"",type:"",sortOrder:0}})}startEditGame(r){this.editingGameId=r.id,this.editGameDraft={name:r.name,icon:r.icon,type:r.type,sortOrder:r.sortOrder}}saveGame(){this.editingGameId&&this.api.updateGame(this.editingGameId,this.editGameDraft).subscribe(r=>{this.games.update(t=>t.map(i=>i.id===r.id?r:i)),this.editingGameId=null})}deleteGame(r){this.api.deleteGame(r).subscribe(()=>{this.games.update(t=>t.filter(i=>i.id!==r))})}addSocialLink(){!this.newSocialLink.platform||!this.newSocialLink.url||this.api.createSocialLink(this.newSocialLink).subscribe(r=>{this.socialLinks.update(t=>[...t,r]),this.newSocialLink={platform:"",url:"",username:"",icon:"",color:"#000000"}})}startEditSocialLink(r){this.editingSocialLinkId=r.id,this.editSocialLinkDraft={platform:r.platform,url:r.url,username:r.username,icon:r.icon,color:r.color}}saveSocialLink(){this.editingSocialLinkId&&this.api.updateSocialLink(this.editingSocialLinkId,this.editSocialLinkDraft).subscribe(r=>{this.socialLinks.update(t=>t.map(i=>i.id===r.id?r:i)),this.editingSocialLinkId=null})}deleteSocialLink(r){this.api.deleteSocialLink(r).subscribe(()=>{this.socialLinks.update(t=>t.filter(i=>i.id!==r))})}addFanart(){!this.newFanart.title||!this.newFanart.imageUrl||this.api.createFanart(this.newFanart).subscribe(r=>{this.fanarts.update(t=>[...t,r]),this.newFanart={title:"",author:"",imageUrl:"",sortOrder:0}})}startEditFanart(r){this.editingFanartId=r.id,this.editFanartDraft={title:r.title,author:r.author,imageUrl:r.imageUrl,sortOrder:r.sortOrder}}saveFanart(){this.editingFanartId&&this.api.updateFanart(this.editingFanartId,this.editFanartDraft).subscribe(r=>{this.fanarts.update(t=>t.map(i=>i.id===r.id?r:i)),this.editingFanartId=null})}deleteFanart(r){this.api.deleteFanart(r).subscribe(()=>{this.fanarts.update(t=>t.filter(i=>i.id!==r))})}updateBrandColor(r,t,i){this.brand.update(e=>{let n=e.colors.map((x,J)=>J===r?M(b({},x),{[t]:i}):x);return M(b({},e),{colors:n})})}updateBrandFont(r,t){this.brand.update(i=>{let e=i.fonts.map((n,x)=>x===r?M(b({},n),{name:t}):n);return M(b({},i),{fonts:e})})}addColor(){!this.newColor.name||!this.newColor.hex||(this.brand.update(r=>M(b({},r),{colors:[...r.colors,b({},this.newColor)]})),this.newColor={name:"",hex:"#000000"})}removeColor(r){this.brand.update(t=>M(b({},t),{colors:t.colors.filter((i,e)=>e!==r)}))}addFont(){this.newFont.name&&(this.brand.update(r=>M(b({},r),{fonts:[...r.fonts,b({},this.newFont)]})),this.newFont={name:""})}removeFont(r){this.brand.update(t=>M(b({},t),{fonts:t.fonts.filter((i,e)=>e!==r)}))}saveBrand(){this.api.updateBrand(this.brand()).subscribe(r=>this.brand.set(r))}backupStatus=y(null);importing=y(!1);exportBackup(){this.api.exportBackup().subscribe(r=>{let t=URL.createObjectURL(r),i=document.createElement("a");i.href=t,i.download=`lordrutra-backup-${new Date().toISOString().slice(0,10)}.json`,i.click(),URL.revokeObjectURL(t)})}importBackup(r){let t=r.target.files?.[0];if(!t)return;this.importing.set(!0),this.backupStatus.set(null);let i=new FileReader;i.onload=e=>{try{let n=JSON.parse(e.target?.result);this.api.restoreBackup(n).subscribe({next:x=>{this.importing.set(!1),this.backupStatus.set({type:"success",message:`Restaur\xE9 le ${new Date(x.restoredAt).toLocaleString("fr-FR")}`}),this.loadAll()},error:()=>{this.importing.set(!1),this.backupStatus.set({type:"error",message:"Erreur lors de la restauration."})}})}catch{this.importing.set(!1),this.backupStatus.set({type:"error",message:"Fichier JSON invalide."})}},i.readAsText(t),r.target.value=""}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-admin-dashboard"]],decls:29,vars:18,consts:[[1,"admin"],[1,"sidebar"],[1,"sidebar-brand"],[1,"sidebar-icon"],[3,"click"],[1,"logout-btn",3,"click"],[1,"main"],[1,"section"],[1,"form-grid"],[1,"field"],["name","name","type","text",3,"ngModelChange","ngModel"],["name","title","type","text",3,"ngModelChange","ngModel"],["name","avatarUrl","type","text",3,"ngModelChange","ngModel"],["name","backgroundImageUrl","type","text",3,"ngModelChange","ngModel"],[1,"field","full"],["name","description","rows","2",3,"ngModelChange","ngModel"],["name","aboutText","rows","5",3,"ngModelChange","ngModel"],[1,"tags-section"],[1,"tags-list"],[1,"tag-item"],[1,"btn-outline",3,"click"],[1,"actions"],[1,"btn-primary",3,"click","disabled"],["type","text",3,"input","value"],[1,"btn-icon","danger",3,"click"],[1,"list"],[1,"add-form"],["name","gName","type","text","placeholder","Civilization VII",3,"ngModelChange","ngModel"],["name","gIcon","type","text","placeholder","\u2694\uFE0F",3,"ngModelChange","ngModel"],["name","gType","type","text","placeholder","Strat\xE9gie 4X",3,"ngModelChange","ngModel"],["name","gOrder","type","number",3,"ngModelChange","ngModel"],[1,"btn-primary",3,"click"],[1,"list-item","edit-row"],[1,"list-item"],["name","egIcon","type","text","placeholder","\u2694\uFE0F",1,"edit-input","small",3,"ngModelChange","ngModel"],["name","egName","type","text","placeholder","Nom",1,"edit-input",3,"ngModelChange","ngModel"],["name","egType","type","text","placeholder","Type",1,"edit-input",3,"ngModelChange","ngModel"],["name","egOrder","type","number",1,"edit-input","small",3,"ngModelChange","ngModel"],[1,"btn-primary","small",3,"click"],[1,"btn-icon",3,"click"],[1,"item-icon"],[1,"item-name"],[1,"item-sub"],[1,"btn-icon","edit",3,"click"],["name","slPlatform","type","text","placeholder","Twitch",3,"ngModelChange","ngModel"],["name","slUrl","type","text","placeholder","https://twitch.tv/...",3,"ngModelChange","ngModel"],["name","slUsername","type","text","placeholder","lordrutra",3,"ngModelChange","ngModel"],["name","slIcon","type","text","placeholder","twitch.svg",3,"ngModelChange","ngModel"],[1,"color-field"],["name","slColorPicker","type","color",3,"ngModelChange","ngModel"],["name","slColorText","type","text","placeholder","#9147ff",3,"ngModelChange","ngModel"],["name","eslPlatform","type","text","placeholder","Plateforme",1,"edit-input",3,"ngModelChange","ngModel"],["name","eslUrl","type","text","placeholder","URL",1,"edit-input",3,"ngModelChange","ngModel"],["name","eslUsername","type","text","placeholder","Username",1,"edit-input",3,"ngModelChange","ngModel"],["name","eslIcon","type","text","placeholder","icon.svg",1,"edit-input","small",3,"ngModelChange","ngModel"],["name","eslColorPicker","type","color",1,"edit-color",3,"ngModelChange","ngModel"],["name","eslColorText","type","text","placeholder","#fff",1,"edit-input","small",3,"ngModelChange","ngModel"],[1,"color-dot"],["target","_blank",1,"item-url",3,"href"],[1,"fanarts-grid"],["name","faTitle","type","text","placeholder","Fan Art 1",3,"ngModelChange","ngModel"],["name","faAuthor","type","text","placeholder","Luri",3,"ngModelChange","ngModel"],["name","faImageUrl","type","text","placeholder","https://cdn.davor-nucleus.fr/...",3,"ngModelChange","ngModel"],["name","faOrder","type","number",3,"ngModelChange","ngModel"],[1,"fanart-card","fanart-edit"],[1,"fanart-card"],[1,"fanart-edit-fields"],["name","efTitle","type","text","placeholder","Titre",3,"ngModelChange","ngModel"],["name","efAuthor","type","text","placeholder","Auteur",3,"ngModelChange","ngModel"],["name","efUrl","type","text","placeholder","URL image",3,"ngModelChange","ngModel"],["name","efOrder","type","number","placeholder","Ordre",3,"ngModelChange","ngModel"],[1,"fanart-edit-actions"],["loading","lazy",3,"src","alt"],[1,"fanart-info"],[1,"fanart-title"],[1,"fanart-author"],[1,"btn-icon","edit","fanart-edit-btn",3,"click"],[1,"btn-icon","danger","fanart-delete",3,"click"],[1,"brand-block"],[1,"colors-list"],[1,"color-item"],[1,"add-inline"],["name","cName","type","text","placeholder","Rouge",3,"ngModelChange","ngModel"],["name","cHexPicker","type","color",3,"ngModelChange","ngModel"],["name","cHexText","type","text","placeholder","#c0302a",2,"width","90px",3,"ngModelChange","ngModel"],[1,"fonts-list"],[1,"font-item"],["name","fName","type","text","placeholder","Cinzel",3,"ngModelChange","ngModel"],["type","color",1,"color-swatch-input",3,"ngModelChange","ngModel","name"],["type","text","placeholder","Nom",1,"edit-input",3,"ngModelChange","ngModel","name"],["type","text","placeholder","#fff",1,"edit-input","small",3,"ngModelChange","ngModel","name"],["type","text","placeholder","Nom de la police",1,"edit-input",3,"ngModelChange","ngModel","name"],[1,"backup-block"],[1,"backup-card"],[1,"backup-icon"],[1,"btn-upload"],["type","file","accept",".json","hidden","",3,"change","disabled"],[1,"backup-status",3,"success","error"],[1,"backup-status"]],template:function(t,i){t&1&&(o(0,"div",0)(1,"aside",1)(2,"div",2)(3,"span",3),l(4,"\u2694\uFE0F"),a(),o(5,"span"),l(6,"LordRutra Admin"),a()(),o(7,"nav")(8,"button",4),f("click",function(){return i.activeTab.set("profile")}),l(9,"\u{1F464} Profil"),a(),o(10,"button",4),f("click",function(){return i.activeTab.set("games")}),l(11,"\u{1F3AE} Jeux"),a(),o(12,"button",4),f("click",function(){return i.activeTab.set("social")}),l(13,"\u{1F517} R\xE9seaux"),a(),o(14,"button",4),f("click",function(){return i.activeTab.set("fanarts")}),l(15,"\u{1F5BC}\uFE0F Fanarts"),a(),o(16,"button",4),f("click",function(){return i.activeTab.set("brand")}),l(17,"\u{1F3A8} Brand"),a(),o(18,"button",4),f("click",function(){return i.activeTab.set("backup")}),l(19,"\u{1F4BE} Backup"),a()(),o(20,"button",5),f("click",function(){return i.auth.logout()}),l(21,"\u2190 D\xE9connexion"),a()(),o(22,"main",6),h(23,Y,4,1,"section",7),h(24,te,28,4,"section",7),h(25,ae,34,6,"section",7),h(26,ce,28,4,"section",7),h(27,me,28,4,"section",7),h(28,fe,33,5,"section",7),a()()),t&2&&(c(8),k("active",i.activeTab()==="profile"),c(2),k("active",i.activeTab()==="games"),c(2),k("active",i.activeTab()==="social"),c(2),k("active",i.activeTab()==="fanarts"),c(2),k("active",i.activeTab()==="brand"),c(2),k("active",i.activeTab()==="backup"),c(5),w(i.activeTab()==="profile"?23:-1),c(),w(i.activeTab()==="games"?24:-1),c(),w(i.activeTab()==="social"?25:-1),c(),w(i.activeTab()==="fanarts"?26:-1),c(),w(i.activeTab()==="brand"?27:-1),c(),w(i.activeTab()==="backup"?28:-1))},dependencies:[R,U,j,z,N],styles:[".admin[_ngcontent-%COMP%]{display:flex;min-height:100vh;background:#f1f5f9;font-family:Inter,system-ui,sans-serif}.sidebar[_ngcontent-%COMP%]{width:220px;min-width:220px;background:#1e293b;color:#e2e8f0;display:flex;flex-direction:column;padding:1.5rem 0;position:sticky;top:0;height:100vh}.sidebar-brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.6rem;padding:0 1.25rem 1.5rem;font-weight:700;font-size:.95rem;border-bottom:1px solid #334155;margin-bottom:1rem}.sidebar-icon[_ngcontent-%COMP%]{font-size:1.4rem}.sidebar[_ngcontent-%COMP%] nav[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1}.sidebar[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:none;border:none;color:#94a3b8;text-align:left;padding:.75rem 1.25rem;font-size:.9rem;cursor:pointer;transition:background .15s,color .15s;border-radius:0}.sidebar[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover, .sidebar[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:#334155;color:#fff}.logout-btn[_ngcontent-%COMP%]{background:none;border:none;color:#64748b;text-align:left;padding:.75rem 1.25rem;font-size:.85rem;cursor:pointer;margin-top:auto;transition:color .15s}.logout-btn[_ngcontent-%COMP%]:hover{color:#ef4444}.main[_ngcontent-%COMP%]{flex:1;padding:2rem 2.5rem;overflow-y:auto}.section[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#1e293b;margin:0 0 1.5rem}.form-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem}.field.full[_ngcontent-%COMP%]{grid-column:1 / -1}.field[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em}.field[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%], .field[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{padding:.6rem .75rem;border:1.5px solid #e2e8f0;border-radius:7px;font-size:.9rem;color:#1e293b;outline:none;transition:border-color .2s;background:#fff;resize:vertical}.field[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus, .field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus{border-color:#6366f1}.btn-primary[_ngcontent-%COMP%]{padding:.6rem 1.25rem;background:#6366f1;color:#fff;border:none;border-radius:7px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary[_ngcontent-%COMP%]:hover:not(:disabled){background:#4f46e5}.btn-primary[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.btn-outline[_ngcontent-%COMP%]{padding:.5rem 1rem;background:none;border:1.5px solid #6366f1;color:#6366f1;border-radius:7px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-outline[_ngcontent-%COMP%]:hover{background:#eef2ff}.btn-icon[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:5px;font-size:.85rem;transition:background .15s}.btn-icon.danger[_ngcontent-%COMP%]{color:#ef4444}.btn-icon.danger[_ngcontent-%COMP%]:hover{background:#fee2e2}.actions[_ngcontent-%COMP%]{margin-top:1.5rem}.list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.list-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:8px;padding:.75rem 1rem;border:1px solid #e2e8f0}.item-icon[_ngcontent-%COMP%]{font-size:1.2rem}.item-name[_ngcontent-%COMP%]{font-weight:600;color:#1e293b;flex:1}.item-sub[_ngcontent-%COMP%]{font-size:.82rem;color:#64748b}.item-url[_ngcontent-%COMP%]{font-size:.78rem;color:#6366f1;text-decoration:none;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-dot[_ngcontent-%COMP%]{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}.add-form[_ngcontent-%COMP%]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem 1.5rem}.add-form[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;color:#1e293b;margin:0 0 1rem}.tags-section[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tags-section[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]{display:block;font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.tags-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tag-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.tag-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:.35rem .6rem;border:1.5px solid #e2e8f0;border-radius:20px;font-size:.85rem;outline:none;width:110px}.tag-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:#6366f1}.fanarts-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.fanart-card[_ngcontent-%COMP%]{position:relative;background:#fff;border-radius:10px;border:1px solid #e2e8f0;overflow:hidden}.fanart-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;aspect-ratio:1;object-fit:cover;display:block}.fanart-info[_ngcontent-%COMP%]{padding:.6rem .75rem;display:flex;flex-direction:column;gap:.15rem}.fanart-title[_ngcontent-%COMP%]{font-size:.85rem;font-weight:600;color:#1e293b}.fanart-author[_ngcontent-%COMP%]{font-size:.75rem;color:#64748b}.fanart-delete[_ngcontent-%COMP%]{position:absolute;top:.4rem;right:.4rem;background:#ffffffe6!important;border-radius:50%!important;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.brand-block[_ngcontent-%COMP%]{margin-bottom:2rem}.brand-block[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;color:#1e293b;margin:0 0 .75rem}.colors-list[_ngcontent-%COMP%], .fonts-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.color-item[_ngcontent-%COMP%], .font-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:7px;padding:.5rem .75rem}.color-swatch[_ngcontent-%COMP%]{width:24px;height:24px;border-radius:5px;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.color-name[_ngcontent-%COMP%]{font-weight:600;color:#1e293b;flex:1}.color-hex[_ngcontent-%COMP%]{font-size:.82rem;color:#64748b;font-family:monospace}.font-name[_ngcontent-%COMP%]{font-weight:600;color:#1e293b;flex:1}.add-inline[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.add-inline[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:.5rem .75rem;border:1.5px solid #e2e8f0;border-radius:7px;font-size:.9rem;outline:none;flex:1;min-width:100px}.add-inline[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:#6366f1}.add-inline[_ngcontent-%COMP%] input[type=color][_ngcontent-%COMP%]{width:42px;height:38px;padding:2px;cursor:pointer;flex:none}.color-field[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.color-field[_ngcontent-%COMP%] input[type=color][_ngcontent-%COMP%]{width:42px;height:36px;padding:2px;cursor:pointer;border-radius:6px;border:1.5px solid #e2e8f0}.edit-row[_ngcontent-%COMP%]{flex-wrap:wrap;gap:.4rem}.edit-input[_ngcontent-%COMP%]{padding:.45rem .6rem;border:1.5px solid #c7d2fe;border-radius:6px;font-size:.85rem;outline:none;flex:1;min-width:80px;background:#f8faff}.edit-input[_ngcontent-%COMP%]:focus{border-color:#6366f1}.edit-input.small[_ngcontent-%COMP%]{flex:0 0 70px;min-width:unset}.edit-color[_ngcontent-%COMP%]{width:36px;height:34px;padding:2px;border-radius:6px;border:1.5px solid #e2e8f0;cursor:pointer;flex-shrink:0}.btn-primary.small[_ngcontent-%COMP%]{padding:.45rem .75rem;font-size:.82rem}.btn-icon.edit[_ngcontent-%COMP%]{color:#6366f1}.btn-icon.edit[_ngcontent-%COMP%]:hover{background:#eef2ff}.fanart-edit[_ngcontent-%COMP%]{padding:.75rem}.fanart-edit-fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.fanart-edit-fields[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:.5rem .65rem;border:1.5px solid #c7d2fe;border-radius:6px;font-size:.85rem;outline:none;background:#f8faff}.fanart-edit-fields[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:#6366f1}.fanart-edit-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;margin-top:.25rem}.fanart-edit-btn[_ngcontent-%COMP%]{position:absolute;top:.4rem;left:.4rem;background:#ffffffe6!important;border-radius:50%!important;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.backup-block[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.backup-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.75rem;display:flex;flex-direction:column;gap:.75rem}.backup-icon[_ngcontent-%COMP%]{font-size:2rem}.backup-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#1e293b;margin:0}.backup-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:.875rem;color:#64748b;margin:0;line-height:1.5}.backup-card[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:#f1f5f9;padding:.1em .4em;border-radius:4px;font-size:.82em}.btn-upload[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.25rem;background:#0f172a;color:#fff;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:auto}.btn-upload[_ngcontent-%COMP%]:hover{background:#1e293b}.btn-upload.loading[_ngcontent-%COMP%]{opacity:.6;cursor:not-allowed}.backup-status[_ngcontent-%COMP%]{padding:.875rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500}.backup-status.success[_ngcontent-%COMP%]{background:#dcfce7;color:#166534}.backup-status.error[_ngcontent-%COMP%]{background:#fee2e2;color:#991b1b}.color-swatch-input[_ngcontent-%COMP%]{width:36px;height:34px;padding:2px;border-radius:6px;border:1.5px solid #e2e8f0;cursor:pointer;flex-shrink:0}"]})};export{H as AdminDashboard};