PageSourceSearch

https://hou.la/chunk-2DLO4DN2.js

js hou.la collected 2026-09-25 03:33:38 UTC 111,598 bytes, 1 lines download raw bytes

1import{a as qe}from"./chunk-WE75UK4C.js";import{a as Ye}from"./chunk-HIUPTO4L.js";import{a as je,b as $e}from"./chunk-E6GZEUAF.js";import{a as G}from"./chunk-HVLO3SGC.js";import"./chunk-TKJJQVX7.js";import{a as M,b as A}from"./chunk-LAPCUU4J.js";import{a as ze,b as Ge}from"./chunk-NDG66OB4.js";import"./chunk-5LMG4TVJ.js";import{b as We}from"./chunk-KYVCMV2E.js";import"./chunk-HWZZ5RQT.js";import"./chunk-ZNR7QNVV.js";import"./chunk-U3Z5BGA7.js";import"./chunk-QI7CEGT6.js";import"./chunk-6ND7557V.js";import{D as ce}from"./chunk-FOJCKIWO.js";import{a as H}from"./chunk-NBMUSEX4.js";import{a as I,b as w}from"./chunk-3AIY57KH.js";import{a as P}from"./chunk-AB6CKZTE.js";import"./chunk-K5O3OQFW.js";import"./chunk-2DRXLVRR.js";import{b as q}from"./chunk-RQJZECR4.js";import"./chunk-G3G5OK6Q.js";import"./chunk-AERMLNF3.js";import"./chunk-QHMYZ6SM.js";import"./chunk-PJPLTBJX.js";import"./chunk-DLIVM562.js";import"./chunk-CV2ZWZQE.js";import"./chunk-H4HD3LNW.js";import{ja as O}from"./chunk-AQEWHUN5.js";import{d as y,e as S}from"./chunk-YQZAETCE.js";import{s as Ke,x as ae}from"./chunk-EO42E46J.js";import{h as Ue}from"./chunk-3QVSKJ3X.js";import{D as de,G as z,I as x,p as L,r as D,s as C}from"./chunk-ERUCNOOT.js";import{$b as W,Ba as be,Gc as he,Hc as xe,Ic as fe,Jb as r,Jc as Ce,Kb as te,Kc as Fe,Lb as F,Mb as B,Nb as ve,Qc as d,Rc as c,Sc as pe,Vb as a,Wb as o,Xb as p,Yb as ie,Z as Ve,Zb as ne,_a as ge,ca as Ne,da as K,db as n,fc as U,gc as m,ka as Y,la as N,ma as R,p as V,sb as v,tc as l,uc as g,vc as h,wa as Re,wc as J,yb as f}from"./chunk-DBE7WQEG.js";import{g as _}from"./chunk-W7GRJBO5.js";var X=class t{constructor(i){this.http=i}getStatsUsers(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/users`))})}getStatsHits(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/hits`))})}getStatsLinks(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/links`))})}getTopLinks(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/toplinks`))})}getCountHitsLast90Days(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/count-hits-last-90-days`))})}getCountHitsByDays(i){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/count-hits-by-days?days=${i}`))})}getCountHitsHourly(i="24h"){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/count-hits-hourly?period=${i}`))})}getKeyStatistics(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/key-statistics`))})}getLinkTypeDistribution(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/link-types`))})}getCumulativeGrowth(i="30d"){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/cumulative-growth?period=${i}`))})}getPeakHours(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/peak-hours`))})}getHitsByDayOfWeek(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/hits-by-day-of-week`))})}getTopLinksByPeriod(i="all"){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/toplinks-by-period?period=${i}`))})}getUserStatusCounts(){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/user-status-counts`))})}getStatsUsersByPeriod(i="all"){return _(this,null,function*(){return V(this.http.get(`${P.api}/api/admin/stats/users-by-period?period=${i}`))})}getStatsStream(i){if(typeof window>"u")return null;let e=!1,s=null,b=()=>_(this,null,function*(){if(!e){try{let u=yield V(this.http.get(`${P.api}/api/admin/stats/all`));e||(i.onMessage(u),i.onConnected?.())}catch(u){e||i.onError?.(u)}e||(s=setTimeout(b,5e3))}});return b(),{close:()=>{e=!0,s&&clearTimeout(s)}}}static \u0275fac=function(e){return new(e||t)(Ne(Ue))};static \u0275prov=Ve({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ze=(t,i)=>({"border-bottom":t,"border-top":i});function Qe(t,i){if(t&1&&(a(0,"span",26),d(1,"translate"),p(2,"i",27),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.HITS_TOTAL")),n(4),g(c(5,4,e.hitsStats.count))}}function Je(t,i){if(t&1){let e=W();a(0,"button",30),U("click",function(){let b=N(e).$implicit,u=m(3);return u.selectedDailyPeriod=b.value,R(u.onDailyPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(3);F("active",s.selectedDailyPeriod===e.value),n(),h(" ",e.label," ")}}function et(t,i){if(t&1&&(a(0,"div",28),f(1,Je,2,3,"button",29),o()),t&2){let e=m(2);n(),r("ngForOf",e.dailyPeriodOptions)}}function tt(t,i){if(t&1){let e=W();a(0,"button",30),U("click",function(){let b=N(e).$implicit,u=m(3);return u.selectedHourlyPeriod=b.value,R(u.onHourlyPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(3);F("active",s.selectedHourlyPeriod===e.value),n(),h(" ",e.label," ")}}function it(t,i){if(t&1&&(a(0,"div",28),f(1,tt,2,3,"button",29),o()),t&2){let e=m(2);n(),r("ngForOf",e.hourlyPeriodOptions)}}function nt(t,i){if(t&1&&(a(0,"span",26),d(1,"translate"),p(2,"i",31),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.UNIQUE_VISITORS")),n(4),g(c(5,4,e.periodTotalUniqueVisitors))}}function at(t,i){if(t&1){let e=W();a(0,"div",6)(1,"div",7)(2,"span",8),p(3,"i",9),l(4),d(5,"translate"),o(),a(6,"div",10)(7,"span",11),p(8,"span",12),a(9,"span"),l(10,"LIVE"),o()(),a(11,"span",13),d(12,"translate"),p(13,"i",14),a(14,"span"),l(15),d(16,"number"),o()(),a(17,"span",15),d(18,"translate"),p(19,"i",16),a(20,"span"),l(21),d(22,"number"),o()(),f(23,Qe,6,6,"span",17),o()(),a(24,"div",18)(25,"div",19)(26,"div",20)(27,"button",21),U("click",function(){N(e);let b=m();return R(b.switchView("daily"))}),p(28,"i",22),a(29,"span"),l(30),d(31,"translate"),o()(),a(32,"button",21),U("click",function(){N(e);let b=m();return R(b.switchView("hourly"))}),p(33,"i",23),a(34,"span"),l(35),d(36,"translate"),o()()(),f(37,et,2,1,"div",24)(38,it,2,1,"div",24),o(),a(39,"div",25),f(40,nt,6,6,"span",17),o()()()}if(t&2){let e=m();n(4),h(" ",c(5,16,"ADMIN.DASHBOARD.HITS")," "),n(3),r("pTooltip","Temps r\xE9el"),n(4),r("pTooltip",c(12,18,"ADMIN.DASHBOARD.CLICKS_PERIOD")),n(4),g(c(16,20,e.periodTotalClicks)),n(2),r("pTooltip",c(18,22,"ADMIN.DASHBOARD.QR_PERIOD")),n(4),g(c(22,24,e.periodTotalFlashs)),n(2),r("ngIf",e.hitsStats),n(4),F("active",e.viewMode==="daily"),n(3),g(c(31,26,"ADMIN.DASHBOARD.HITS_VIEW_DAY")),n(2),F("active",e.viewMode==="hourly"),n(3),g(c(36,28,"ADMIN.DASHBOARD.HITS_VIEW_HOUR")),n(2),r("ngIf",e.viewMode==="daily"),n(),r("ngIf",e.viewMode==="hourly"),n(2),r("ngIf",e.viewMode==="hourly"&&e.periodTotalUniqueVisitors>0)}}function ot(t,i){if(t&1&&(a(0,"div",32)(1,"div",33),l(2),o()()),t&2){let e=m();n(2),g(e.error)}}function st(t,i){t&1&&(a(0,"div",32)(1,"div",34),l(2),d(3,"translate"),o()()),t&2&&(n(2),h(" ",c(3,1,"ADMIN.DASHBOARD.NO_DATA")," "))}function rt(t,i){if(t&1&&(a(0,"div",35),p(1,"app-widget-chart",36),o()),t&2){let e=m();n(),r("tooltip",!0)("responsive",!0)("data",e.data)}}function lt(t,i){if(t&1&&(a(0,"div",44)(1,"div",45),l(2),d(3,"date"),o(),a(4,"div",46)(5,"a",47),l(6),o()()()),t&2){let e=m().$implicit,s=m(2);n(2),h(" ",pe(3,4,e.date,"d MMM YYYY HH:mm")," "),n(3),r("href",e.link.shortUrl||s.environment.api+"/"+e.link.key,ge)("pTooltip",e.link.url),n(),g(e.link.shortUrl||s.environment.api+"/"+e.link.key)}}function pt(t,i){if(t&1&&(a(0,"div",41),f(1,lt,7,7,"div",42),p(2,"div",43),o()),t&2){let e=i.$implicit,s=i.last,b=i.first;r("ngClass",fe(2,Ze,!s,b)),n(),r("ngIf",e.link)}}
1function dt(t,i){if(t&1&&(ie(0),a(1,"div",37)(2,"small",38),l(3),d(4,"translate"),o()(),a(5,"div",39),f(6,pt,3,5,"div",40),o(),ne()),t&2){let e=m();n(3),g(c(4,2,"ADMIN.DASHBOARD.HITS_RECENT")),n(3),r("ngForOf",e.hitsStats.data)}}var ye=class t{adminStatsService=K(X);hitsStats;countHitsLast90Days;loading=!0;error=null;environment=P;data;viewMode="daily";dailyPeriodOptions=[{label:"15j",value:"15d",days:15},{label:"30j",value:"30d",days:30},{label:"90j",value:"90d",days:90}];selectedDailyPeriod="30d";hourlyPeriodOptions=[{label:"24h",value:"24h"},{label:"48h",value:"48h"},{label:"7 jours",value:"7d"}];selectedHourlyPeriod="24h";periodTotalClicks=0;periodTotalFlashs=0;periodTotalUniqueVisitors=0;loadingChart=!1;hourlyData=[];ngOnChanges(i){i.countHitsLast90Days&&this.countHitsLast90Days&&this.viewMode==="daily"&&this.buildDailyChart()}switchView(i){this.viewMode!==i&&(this.viewMode=i,i==="daily"?this.buildDailyChart():this.loadHourlyData())}onDailyPeriodChange(){this.buildDailyChart()}onHourlyPeriodChange(){return _(this,null,function*(){yield this.loadHourlyData(!1)})}buildDailyChart(){if(!this.countHitsLast90Days)return;let i=this.dailyPeriodOptions.find(E=>E.value===this.selectedDailyPeriod)?.days||30,e=this.countHitsLast90Days.slice(-i),s=getComputedStyle(document.documentElement),b=[],u=[],T=[],$=0,k=0;for(let E of e)b.push(new Date(E.date).toLocaleDateString("fr-FR",{day:"2-digit",month:"short"})),u.push(E.clicks),T.push(E.flashs),$+=E.clicks,k+=E.flashs;this.periodTotalClicks=$,this.periodTotalFlashs=k,this.periodTotalUniqueVisitors=0,this.data={labels:b,datasets:[{type:"bar",label:"clics",backgroundColor:s.getPropertyValue("--bs-primary"),data:u,minBarLength:1},{type:"bar",label:"flashs",backgroundColor:s.getPropertyValue("--bs-success"),data:T,minBarLength:0}]}}loadHourlyData(i=!0){return _(this,null,function*(){i&&(this.loadingChart=!0);try{this.hourlyData=yield this.adminStatsService.getCountHitsHourly(this.selectedHourlyPeriod),this.buildHourlyChart()}catch(e){this.error=e?.error?.message||"Erreur lors du chargement des stats horaires"}finally{this.loadingChart=!1}})}buildHourlyChart(){if(!this.hourlyData?.length)return;let i=getComputedStyle(document.documentElement),e=[],s=[],b=[],u=0,T=0,$=0;for(let k of this.hourlyData){let E=new Date(k.hour),le=this.selectedHourlyPeriod==="24h"?E.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit"}):E.toLocaleDateString("fr-FR",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"});e.push(le),s.push(k.clicks),b.push(k.flashs),u+=k.clicks,T+=k.flashs,$+=k.unique_visitors}this.periodTotalClicks=u,this.periodTotalFlashs=T,this.periodTotalUniqueVisitors=$,this.data={labels:e,datasets:[{type:"bar",label:"clics",backgroundColor:i.getPropertyValue("--bs-primary"),data:s,minBarLength:1},{type:"bar",label:"flashs",backgroundColor:i.getPropertyValue("--bs-success"),data:b,minBarLength:0}]}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-hits"]],inputs:{hitsStats:"hitsStats",countHitsLast90Days:"countHitsLast90Days",loading:"loading"},features:[Y],decls:8,vars:8,consts:[["pTemplate","header"],[2,"min-height","380px","overflow-x","hidden","overflow-y","auto"],[3,"loading","align"],["class","p-2",4,"ngIf"],["class","d-flex px-3 align-items-end w-100",4,"ngIf"],[4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-chart-line"],[1,"stats-badges"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-live",3,"pTooltip"],[1,"live-dot"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],[1,"pi","pi-eye"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-success",3,"pTooltip"],[1,"pi","pi-qrcode"],["class","stats-badge stats-badge-warning","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],[1,"stats-header-controls"],[1,"stats-controls-left"],[1,"stats-view-toggle"],["type","button",1,"stats-toggle-btn",3,"click"],[1,"pi","pi-calendar"],[1,"pi","pi-clock"],["class","stats-period-selector",4,"ngIf"],[1,"stats-controls-right"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-warning",3,"pTooltip"],[1,"pi","pi-database"],[1,"stats-period-selector"],["type","button","class","stats-period-btn",3,"active","click",4,"ngFor","ngForOf"],["type","button",1,"stats-period-btn",3,"click"],[1,"pi","pi-users"],[1,"p-2"],[1,"alert","alert-danger","fs-6","p-2","text-center"],[1,"alert","alert-warning","p-2","fs-6","text-center","user-select-none"],[1,"d-flex","px-3","align-items-end","w-100"],["type","bar","height","280",1,"w-100",3,"tooltip","responsive","data"],[1,"mt-2","px-1"],[1,"text-muted","fw-bold"],[1,"hits-recent-list"],["class","d-flex flex-nowrap row border-1 p-2",3,"ngClass",4,"ngFor","ngForOf"],[1,"d-flex","flex-nowrap","row","border-1","p-2",3,"ngClass"],["class","col-9 position-relative",4,"ngIf"],[1,"col","d-flex","align-items-center","justify-content-end"],[1,"col-9","position-relative"],[1,"text-light","fs-8"],[1,"text-dark","fs-6","text-truncate","d-block","nowrap","w-100"],["target","_blank","tooltipPosition","top",1,"text-decoration-none",3,"href","pTooltip"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,at,41,30,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,ot,3,1,"div",3)(5,st,4,3,"div",3)(6,rt,2,3,"div",4)(7,dt,7,4,"ng-container",5),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading||s.loadingChart)("align","center"),n(),r("ngIf",s.error),n(),r("ngIf",!s.loading&&!s.loadingChart&&!s.data&&!s.error),n(),r("ngIf",s.data&&!s.loadingChart),n(),r("ngIf",s.hitsStats))},dependencies:[x,L,D,C,z,de,A,M,O,q,w,I,ae,H,G,S,y,We,ce],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-badge.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge.stats-badge-warning[_ngcontent-%COMP%]{background-color:#f59e0b;color:#333}
1.stats-badge.stats-badge-live[_ngcontent-%COMP%]{background-color:#dc3545;color:#fff;gap:6px;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.live-dot[_ngcontent-%COMP%]{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:#fff;animation:_ngcontent-%COMP%_live-pulse 1.5s ease-in-out infinite}@keyframes _ngcontent-%COMP%_live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.stats-header-controls[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stats-controls-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats-controls-right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.stats-view-toggle[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #3b82f6;background:#fff}.stats-toggle-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:none;background:transparent;color:#3b82f6;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-toggle-btn[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.9rem}.stats-toggle-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #3b82f6}.stats-toggle-btn[_ngcontent-%COMP%]:hover:not(.active){background:#3b82f61a}.stats-toggle-btn.active[_ngcontent-%COMP%]{background:#3b82f6;color:#fff}.stats-period-selector[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#fff}.stats-period-btn[_ngcontent-%COMP%]{padding:6px 14px;border:none;background:transparent;color:#666;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-period-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #dee2e6}.stats-period-btn[_ngcontent-%COMP%]:hover:not(.active){background:#f8f9fa;color:#333}.stats-period-btn.active[_ngcontent-%COMP%]{background:#f1f5f9;color:#3b82f6;font-weight:600}.hits-recent-list[_ngcontent-%COMP%]{max-height:320px;overflow-y:auto;overflow-x:hidden}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%], .stats-header-controls[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}.stats-controls-left[_ngcontent-%COMP%], .stats-controls-right[_ngcontent-%COMP%]{width:100%;justify-content:flex-start}.stats-toggle-btn[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:none}}"]})};var ct=t=>({"border-bottom":t});function mt(t,i){if(t&1&&(a(0,"div",10)(1,"span",11),d(2,"translate"),p(3,"i",12),a(4,"span"),l(5),d(6,"number"),o()()()),t&2){let e=m(2);n(),r("pTooltip",c(2,2,"ADMIN.DASHBOARD.LINKS_TOTAL")),n(4),g(c(6,4,e.linksStats.count))}}function gt(t,i){if(t&1&&(a(0,"div",5)(1,"div",6)(2,"span",7),p(3,"i",8),l(4),d(5,"translate"),o(),f(6,mt,7,6,"div",9),o()()),t&2){let e=m();n(4),h(" ",c(5,2,"ADMIN.DASHBOARD.LINKS")," "),n(2),r("ngIf",e.linksStats)}}function ft(t,i){if(t&1&&(a(0,"div",13)(1,"div",14),l(2),o()()),t&2){let e=m();n(2),h(" ",e.error," ")}}function ut(t,i){t&1&&(a(0,"span",35),d(1,"translate"),p(2,"i",36),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.PASSWORD"))}function bt(t,i){t&1&&(a(0,"span",37),d(1,"translate"),p(2,"i",38),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.UTM"))}function ht(t,i){t&1&&(a(0,"span",39),d(1,"translate"),p(2,"i",40),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.EPHEMERAL"))}function _t(t,i){t&1&&(a(0,"span",41),d(1,"translate"),p(2,"i",42),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.EXPIRED"))}function vt(t,i){t&1&&(a(0,"span",43),d(1,"translate"),p(2,"i",44),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.FB_PIXEL"))}function xt(t,i){t&1&&(a(0,"span",45),d(1,"translate"),p(2,"i",46),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.GOOGLE_TAG"))}function Ct(t,i){t&1&&(a(0,"span",47),d(1,"translate"),p(2,"i",48),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.TIKTOK_PIXEL"))}function yt(t,i){if(t&1&&(a(0,"div",16)(1,"div",17)(2,"div",18),l(3),d(4,"date"),o(),a(5,"div",19)(6,"a",20),l(7),o()(),a(8,"div",21)(9,"div",22)(10,"small",23),p(11,"i",24),a(12,"span"),l(13),o()(),a(14,"small",25),p(15,"i",26),a(16,"span"),l(1
17),o()(),f(18,ut,3,3,"span",27)(19,bt,3,3,"span",28)(20,ht,3,3,"span",29)(21,_t,3,3,"span",30)(22,vt,3,3,"span",31)(23,xt,3,3,"span",32)(24,Ct,3,3,"span",33),o()()(),p(25,"div",34),o()),t&2){let e=i.$implicit,s=i.last,b=m(2);r("ngClass",xe(17,ct,!s)),n(3),h(" ",pe(4,14,e.createdAt,"d MMM YYYY HH:mm")," "),n(3),r("pTooltip",e.url)("href",e.shortUrl||b.environment.api+"/"+e.key,ge),n(),g(e.shortUrl||b.environment.api+"/"+e.key),n(6),g(e.hitsCount),n(4),g(e.flashsCount),n(),r("ngIf",e.hasPassword),n(),r("ngIf",e.utm),n(),r("ngIf",e.isEphemeral),n(),r("ngIf",e.status==="expired"),n(),r("ngIf",e.fbPixelId),n(),r("ngIf",e.googleTagId),n(),r("ngIf",e.tiktokPixelId)}}function St(t,i){if(t&1&&(ie(0),f(1,yt,26,19,"div",15),ne()),t&2){let e=m();n(),r("ngForOf",e.linksStats.data)}}var Se=class t{linksStats;loading=!0;error=null;environment=P;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-links"]],inputs:{linksStats:"linksStats",loading:"loading"},decls:6,vars:6,consts:[["pTemplate","header"],[2,"max-height","380px","overflow-x","hidden","overflow-y","auto"],[3,"loading","align"],["class","p-2",4,"ngIf"],[4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-link"],["class","stats-badges",4,"ngIf"],[1,"stats-badges"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],[1,"pi","pi-database"],[1,"p-2"],[1,"alert","alert-danger","fs-6","p-2","text-center"],["class","d-flex flex-nowrap row border-1 p-2",3,"ngClass",4,"ngFor","ngForOf"],[1,"d-flex","flex-nowrap","row","border-1","p-2",3,"ngClass"],[1,"col-9","position-relative"],[1,"text-light","fs-8"],[1,"text-dark","fs-6","text-truncate","d-block","nowrap","w-100"],["target","_blank","tooltipPosition","top",1,"text-decoration-none",3,"pTooltip","href"],[1,"text-light","fs-6","mt-2"],[1,"d-flex","flew-column","flex-wrap","gap-1"],[1,"d-flex","align-items-center","me-3"],[1,"pi","pi-eye","fs-6","me-1"],[1,"d-flex","align-items-center"],[1,"pi","pi-qrcode","fs-6","me-1"],["class","link-badge badge-red",3,"pTooltip",4,"ngIf"],["class","link-badge badge-blue",3,"pTooltip",4,"ngIf"],["class","link-badge badge-amber",3,"pTooltip",4,"ngIf"],["class","link-badge badge-gray",3,"pTooltip",4,"ngIf"],["class","link-badge badge-indigo",3,"pTooltip",4,"ngIf"],["class","link-badge badge-green",3,"pTooltip",4,"ngIf"],["class","link-badge badge-pink",3,"pTooltip",4,"ngIf"],[1,"col","d-flex","align-items-center","justify-content-end"],[1,"link-badge","badge-red",3,"pTooltip"],[1,"pi","pi-lock"],[1,"link-badge","badge-blue",3,"pTooltip"],[1,"pi","pi-tag"],[1,"link-badge","badge-amber",3,"pTooltip"],[1,"pi","pi-clock"],[1,"link-badge","badge-gray",3,"pTooltip"],[1,"pi","pi-times-circle"],[1,"link-badge","badge-indigo",3,"pTooltip"],[1,"pi","pi-facebook"],[1,"link-badge","badge-green",3,"pTooltip"],[1,"pi","pi-google"],[1,"link-badge","badge-pink",3,"pTooltip"],[1,"pi","pi-video"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,gt,7,4,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,ft,3,1,"div",3)(5,St,2,1,"ng-container",4),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading)("align","center"),n(),r("ngIf",s.error),n(),r("ngIf",s.linksStats))},dependencies:[x,L,D,C,z,de,A,M,O,q,w,I,ae,H,S,y],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.link-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:.65rem;color:#fff;cursor:default}.link-badge.badge-red[_ngcontent-%COMP%]{background:#ef4444}.link-badge.badge-blue[_ngcontent-%COMP%]{background:#3b82f6}.link-badge.badge-amber[_ngcontent-%COMP%]{background:#f59e0b}.link-badge.badge-gray[_ngcontent-%COMP%]{background:#9ca3af}.link-badge.badge-indigo[_ngcontent-%COMP%]{background:#6366f1}.link-badge.badge-green[_ngcontent-%COMP%]{background:#22c55e}.link-badge.badge-pink[_ngcontent-%COMP%]{background:#ec4899}.link-badge.badge-cyan[_ngcontent-%COMP%]{background:#06b6d4}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}"]})};var wt=t=>({"border-bottom":t});function kt(t,i){if(t&1){let e=W();a(0,"button",13),U("click",function(){let b=N(e).$implicit,u=m(2);return u.selectedPeriod=b.value,R(u.onPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(2);F("active",s.selectedPeriod===e.value),n(),h(" ",e.label," ")}}function Pt(t,i){if(t&1&&(a(0,"div",6)(1,"div",7)(2,"span",8),p(3,"i",9),l(4),d(5,"translate"),o(),a(6,"div",10)(7,"div",11),f(8,kt,2,3,"button",12),o()()()()),t&2){let e=m();n(4),h(" ",c(5,2,"ADMIN.DASHBOARD.TOP_LINKS")," "),n(4),r("ngForOf",e.periodOptions)}}function Dt(t,i){if(t&1&&(a(0,"div",14)(1,"div",15),l(2),o()()),t&2){let e=m();n(2),h(" ",e.error," ")}}function Ot(t,i){t&1&&(a(0,"div",16),p(1,"i",17),l(2),d(3,"translate"),o()),t&2&&(n(2),h(" ",c(3,1,"ADMIN.DASHBOARD.NO_DATA")," "))}function It(t,i){t&1&&(a(0,"span",39),d(1,"translate"),p(2,"i",40),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.PASSWORD"))}function Mt(t,i){t&1&&(a(0,"span",41),d(1,"translate"),p(2,"i",42),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.UTM"))}function At(t,i){t&1&&(a(0,"span",43),d(1,"translate"),p(2,"i",44),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.EPHEMERAL"))}function Tt(t,i){t&1&&(a(0,"span",45),d(1,"translate"),p(2,"i",46),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.EXPIRED"))}function Et(t,i){t&1&&(a(0,"span",47),d(1,"translate"),p(2,"i",48),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.FB_PIXEL"))}function Bt(t,i){t&1&&(a(0,"span",49),d(1,"translate"),p(2,"i",50),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.GOOGLE_TAG"))}function Lt(t,i){t&1&&(a(0,"span",51),d(1,"translate"),p(2,"i",52),o()),t&2&&r("pTooltip",c(1,1,"ADMIN.DASHBOARD.LINK_TYPE.TIKTOK_PIXEL"))}function Ht(t,i){if(t&1&&(a(0,"div",19)(1,"div",20),l(2),o(),a(3,"div",21)(4,"div",22),l(5),d(6,"date"),o(),a(7,"div",23)(8,"a",24),l(9),o()(),a(10,"div",25)(11,"div",26)(12,"small",27),p(13,"i",28),a(14,"span"),l(15),o()(),a(16,"small",29),p(17,"i",30),a(18,"span"),l(19),o()(),f(20,It,3,3,"span",31)(21,Mt,3,3,"span",32)(22,At,3,3,"span",33)(23,Tt,3,3,"span",34)(24,Et,3,3,"span",35)(25,Bt,3,3,"span",36)(26,Lt,3,3,"span",37),o()()(),p(27,"div",38),o()),t&2){let e=i.$implicit,s=i.index,b=i.last,u=m(2);r("ngClass",xe(18,wt,!b)),n(2),h(" ",s+1," "),n(3),h(" ",pe(6,15,e.createdAt,"d MMM YYYY HH:mm")," "),n(3),r("pTooltip",e.url)("href",e.shortUrl||u.environment.api+"/"+e.key,ge),n(),g(e.shortUrl||u.environment.api+"/"+e.key),n(6),g(e.hitsCount),n(4),g(e.flashsCount),n(),r("ngIf",e.hasPassword),n(),r("ngIf",e.utm),n(),r("ngIf",e.isEphemeral),n(),r("ngIf",e.status==="expired"),n(),r("ngIf",e.fbPixelId),n(),r("ngIf",e.googleTagId),n(),r("ngIf",e.tiktokPixelId)}}function Vt(t,i){if(t&1&&(ie(0),f(1,Ht,28,20,"div",18),ne()),t&2){let e=m();n(),r("ngForOf",e.localTopLinks.data)}}var we=class t{adminStatsService=K(X);topLinksStats;loading=!0;error=null;environment=P;selectedPeriod="all";periodOptions=[{label:"7j",value:"7d"},{label:"30j",value:"30d"},{label:"90j",value:"90d"},{label:"Tout",value:"all"}];periodLoading=!1;localTopLinks;
1ngOnChanges(i){if(i.topLinksStats&&this.topLinksStats){if(this.selectedPeriod!=="all")return;this.localTopLinks=this.topLinksStats}}onPeriodChange(){return _(this,null,function*(){this.periodLoading=!0;try{this.localTopLinks=yield this.adminStatsService.getTopLinksByPeriod(this.selectedPeriod)}catch(i){console.error("Error loading top links by period:",i)}this.periodLoading=!1})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-top-links"]],inputs:{topLinksStats:"topLinksStats",loading:"loading"},features:[Y],decls:7,vars:7,consts:[["pTemplate","header"],[2,"max-height","380px","overflow-x","hidden","overflow-y","auto"],[3,"loading","align"],["class","p-2",4,"ngIf"],["class","text-center text-muted p-4",4,"ngIf"],[4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-chart-line"],[1,"stats-badges"],[1,"stats-period-selector"],["type","button","class","stats-period-btn",3,"active","click",4,"ngFor","ngForOf"],["type","button",1,"stats-period-btn",3,"click"],[1,"p-2"],[1,"alert","alert-danger","fs-6","p-2","text-center"],[1,"text-center","text-muted","p-4"],[1,"pi","pi-info-circle","fs-3","mb-2","d-block"],["class","d-flex flex-nowrap row border-1 p-2",3,"ngClass",4,"ngFor","ngForOf"],[1,"d-flex","flex-nowrap","row","border-1","p-2",3,"ngClass"],[1,"col-auto","d-flex","align-items-center","fs-6","text-light",2,"max-width","30px","width","30px"],[1,"col-9","position-relative"],[1,"text-light","fs-8"],[1,"text-dark","fs-6","text-truncate","d-block","nowrap","w-100"],["target","_blank","tooltipPosition","top",1,"text-decoration-none",3,"pTooltip","href"],[1,"text-light","fs-6","mt-2"],[1,"d-flex","flew-column","flex-wrap","gap-1"],[1,"d-flex","align-items-center","me-3"],[1,"pi","pi-eye","fs-6","me-1"],[1,"d-flex","align-items-center"],[1,"pi","pi-qrcode","fs-6","me-1"],["class","link-badge badge-red",3,"pTooltip",4,"ngIf"],["class","link-badge badge-blue",3,"pTooltip",4,"ngIf"],["class","link-badge badge-amber",3,"pTooltip",4,"ngIf"],["class","link-badge badge-gray",3,"pTooltip",4,"ngIf"],["class","link-badge badge-indigo",3,"pTooltip",4,"ngIf"],["class","link-badge badge-green",3,"pTooltip",4,"ngIf"],["class","link-badge badge-pink",3,"pTooltip",4,"ngIf"],[1,"col","d-flex","align-items-center","justify-content-end"],[1,"link-badge","badge-red",3,"pTooltip"],[1,"pi","pi-lock"],[1,"link-badge","badge-blue",3,"pTooltip"],[1,"pi","pi-tag"],[1,"link-badge","badge-amber",3,"pTooltip"],[1,"pi","pi-clock"],[1,"link-badge","badge-gray",3,"pTooltip"],[1,"pi","pi-times-circle"],[1,"link-badge","badge-indigo",3,"pTooltip"],[1,"pi","pi-facebook"],[1,"link-badge","badge-green",3,"pTooltip"],[1,"pi","pi-google"],[1,"link-badge","badge-pink",3,"pTooltip"],[1,"pi","pi-video"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,Pt,9,4,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,Dt,3,1,"div",3)(5,Ot,4,3,"div",4)(6,Vt,2,1,"ng-container",5),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading||s.periodLoading)("align","center"),n(),r("ngIf",s.error),n(),r("ngIf",s.localTopLinks&&s.localTopLinks.data.length===0&&!s.loading&&!s.periodLoading),n(),r("ngIf",s.localTopLinks&&!s.periodLoading))},dependencies:[x,L,D,C,de,A,M,O,q,w,I,ae,H,S,y],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-period-selector[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#fff}.stats-period-btn[_ngcontent-%COMP%]{padding:6px 14px;border:none;background:transparent;color:#666;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-period-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #dee2e6}.stats-period-btn[_ngcontent-%COMP%]:hover:not(.active){background:#f8f9fa;color:#333}.stats-period-btn.active[_ngcontent-%COMP%]{background:#f1f5f9;color:#3b82f6;font-weight:600}.link-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:.65rem;color:#fff;cursor:default}.link-badge.badge-red[_ngcontent-%COMP%]{background:#ef4444}.link-badge.badge-blue[_ngcontent-%COMP%]{background:#3b82f6}.link-badge.badge-amber[_ngcontent-%COMP%]{background:#f59e0b}.link-badge.badge-gray[_ngcontent-%COMP%]{background:#9ca3af}.link-badge.badge-indigo[_ngcontent-%COMP%]{background:#6366f1}.link-badge.badge-green[_ngcontent-%COMP%]{background:#22c55e}.link-badge.badge-pink[_ngcontent-%COMP%]{background:#ec4899}.link-badge.badge-cyan[_ngcontent-%COMP%]{background:#06b6d4}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}"]})};var Nt=(t,i)=>({"border-bottom":t,"border-top":i}),Rt=(t,i,e)=>({"dot-active":t,"dot-pending":i,"dot-blocked":e});function Ft(t,i){if(t&1&&(a(0,"span",24),d(1,"translate"),p(2,"i",25),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.STATUS_ACTIVE")),n(4),g(c(5,4,e.userStatusCounts.active))}}function Ut(t,i){if(t&1&&(a(0,"span",26),d(1,"translate"),p(2,"i",27),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.STATUS_PENDING")),n(4),g(c(5,4,e.userStatusCounts.pending))}}function Kt(t,i){if(t&1&&(a(0,"span",28),d(1,"translate"),p(2,"i",29),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.STATUS_BLOCKED")),n(4),g(c(5,4,e.userStatusCounts.blocked))}}function Wt(t,i){if(t&1&&(a(0,"span",30),d(1,"translate"),p(2,"i",31),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.USERS_TOTAL")),n(4),g(c(5,4,e.usersStats.count))}}function zt(t,i){if(t&1){let e=W();a(0,"button",32),U("click",function(){let b=N(e).$implicit,u=m(2);return u.selectedChartPeriod=b.value,R(u.onChartPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(2);F("active",s.selectedChartPeriod===e.value),n(),h(" ",e.label," ")}}function Gt(t,i){if(t&1){let e=W();a(0,"button",33),U("click",function(){let b=N(e).$implicit,u=m(2);return u.selectedListPeriod=b.value,R(u.onListPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(2);F("active",s.selectedListPeriod===e.value),n(),h(" ",e.label," ")}}function jt(t,i){if(t&1&&(a(0,"div",7)(1,"div",8)(2,"span",9),p(3,"i",10),l(4),d(5,"translate"),o(),a(6,"div",11)(7,"span",12),d(8,"translate"),p(9,"i",13),a(10,"span"),l(11),d(12,"
1number"),o()(),f(13,Ft,6,6,"span",14)(14,Ut,6,6,"span",15)(15,Kt,6,6,"span",16)(16,Wt,6,6,"span",17),o()(),a(17,"div",18)(18,"div",19)(19,"div",20),f(20,zt,2,3,"button",21),o()(),a(21,"div",22)(22,"div",20),f(23,Gt,2,3,"button",23),o()()()()),t&2){let e=m();n(4),h(" ",c(5,9,"ADMIN.DASHBOARD.USERS")," "),n(3),r("pTooltip",c(8,11,"ADMIN.DASHBOARD.USERS_REGISTRATIONS_PERIOD")),n(4),g(c(12,13,e.periodRegistrations)),n(2),r("ngIf",e.userStatusCounts),n(),r("ngIf",e.userStatusCounts),n(),r("ngIf",e.userStatusCounts),n(),r("ngIf",e.usersStats),n(4),r("ngForOf",e.chartPeriodOptions),n(3),r("ngForOf",e.listPeriodOptions)}}function $t(t,i){if(t&1&&(a(0,"div",34)(1,"div",35),l(2),o()()),t&2){let e=m();n(2),g(e.error)}}function Yt(t,i){t&1&&(a(0,"div",34)(1,"div",36),l(2),d(3,"translate"),o()()),t&2&&(n(2),h(" ",c(3,1,"ADMIN.DASHBOARD.NO_DATA")," "))}function qt(t,i){if(t&1&&(a(0,"div",37),p(1,"app-widget-chart",38),o()),t&2){let e=m();n(),r("tooltip",!0)("responsive",!0)("data",e.data)}}function Xt(t,i){if(t&1&&(a(0,"div",44)(1,"div",45)(2,"div",46),l(3),d(4,"date"),o(),a(5,"div",47),l(6),o()(),a(7,"div",48),p(8,"span",49),o()()),t&2){let e=i.$implicit,s=i.last,b=i.first;r("ngClass",fe(8,Nt,!s,b)),n(3),h(" ",pe(4,5,e.createdAt,"d MMM YYYY HH:mm")," "),n(3),h(" ",e.email," "),n(2),r("ngClass",Ce(11,Rt,e.status==="active",e.status==="pending email verification",e.status==="bloqued"))("pTooltip",e.status)}}function Zt(t,i){if(t&1&&(ie(0),a(1,"div",39)(2,"small",40),l(3),d(4,"translate"),o(),a(5,"small",41),l(6),d(7,"translate"),o()(),a(8,"div",42),f(9,Xt,9,15,"div",43),o(),ne()),t&2){let e=m();n(3),g(c(4,4,"ADMIN.DASHBOARD.USERS_RECENT")),n(3),J("",e.localUsersStats.count," ",c(7,6,"ADMIN.DASHBOARD.USERS_TOTAL"),""),n(3),r("ngForOf",e.localUsersStats.data)}}function Qt(t,i){t&1&&p(0,"app-widget-loading",2),t&2&&(B("dark"),r("loading",!0)("align","center"))}var ke=class t{adminStatsService=K(X);usersStats;cumulativeGrowth;userStatusCounts;loading=!0;error=null;data=null;chartPeriodOptions=[{label:"15j",value:"15d",days:15},{label:"30j",value:"30d",days:30},{label:"90j",value:"90d",days:90}];selectedChartPeriod="30d";listPeriodOptions=[{label:"7j",value:"7d"},{label:"30j",value:"30d"},{label:"90j",value:"90d"},{label:"Tout",value:"all"}];selectedListPeriod="all";periodRegistrations=0;loadingChart=!1;periodLoading=!1;localUsersStats;ngOnChanges(i){if(i.cumulativeGrowth&&this.cumulativeGrowth?.users?.length&&this.buildChart(),i.usersStats&&this.usersStats){if(this.selectedListPeriod!=="all")return;this.localUsersStats=this.usersStats}}onChartPeriodChange(){this.buildChart()}onListPeriodChange(){return _(this,null,function*(){this.periodLoading=!0;try{this.localUsersStats=yield this.adminStatsService.getStatsUsersByPeriod(this.selectedListPeriod)}catch(i){console.error("Error loading users by period:",i)}this.periodLoading=!1})}buildChart(){if(!this.cumulativeGrowth?.users?.length)return;let i=this.cumulativeGrowth.users,e=this.chartPeriodOptions.find(k=>k.value===this.selectedChartPeriod)?.days||30,s=i.slice(-e),b=[],u=[],T=0;for(let k=0;k<s.length;k++){let E=i.indexOf(s[k])-1,le=E>=0?i[E].count:s[k].count,me=E>=0?s[k].count-le:0,ue=Math.max(0,me);b.push(ue),T+=ue;let _e=new Date(s[k].date);u.push(_e.toLocaleDateString("fr-FR",{day:"2-digit",month:"short"}))}this.periodRegistrations=T;let $=getComputedStyle(document.documentElement);this.data={labels:u,datasets:[{type:"bar",label:"Inscriptions",backgroundColor:$.getPropertyValue("--bs-primary")||"#3b82f6",data:b,minBarLength:1}]}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-users"]],inputs:{usersStats:"usersStats",cumulativeGrowth:"cumulativeGrowth",userStatusCounts:"userStatusCounts",loading:"loading"},features:[Y],decls:9,vars:9,consts:[["pTemplate","header"],[2,"min-height","380px","overflow-x","hidden","overflow-y","auto"],[3,"loading","align"],["class","p-2",4,"ngIf"],["class","d-flex px-3 align-items-end w-100",4,"ngIf"],[4,"ngIf"],[3,"loading","style","align",4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-users"],[1,"stats-badges"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],[1,"pi","pi-user-plus"],["class","stats-badge stats-badge-success","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],["class","stats-badge stats-badge-warning","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],["class","stats-badge stats-badge-danger","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],["class","stats-badge stats-badge-neutral","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],[1,"stats-header-control
1s"],[1,"stats-controls-left"],[1,"stats-period-selector"],["type","button","class","stats-period-btn",3,"active","click",4,"ngFor","ngForOf"],[1,"stats-controls-right"],["type","button","class","stats-period-btn stats-period-btn-sm",3,"active","click",4,"ngFor","ngForOf"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-success",3,"pTooltip"],[1,"pi","pi-check-circle"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-warning",3,"pTooltip"],[1,"pi","pi-clock"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-danger",3,"pTooltip"],[1,"pi","pi-ban"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-neutral",3,"pTooltip"],[1,"pi","pi-database"],["type","button",1,"stats-period-btn",3,"click"],["type","button",1,"stats-period-btn","stats-period-btn-sm",3,"click"],[1,"p-2"],[1,"alert","alert-danger","fs-6","p-2","text-center"],[1,"alert","alert-warning","p-2","fs-6","text-center","user-select-none"],[1,"d-flex","px-3","align-items-end","w-100"],["type","bar","height","280",1,"w-100",3,"tooltip","responsive","data"],[1,"mt-2","px-1","d-flex","justify-content-between","align-items-center"],[1,"text-muted","fw-bold"],[1,"text-muted"],[1,"users-recent-list"],["class","d-flex flex-nowrap row border-1 p-2",3,"ngClass",4,"ngFor","ngForOf"],[1,"d-flex","flex-nowrap","row","border-1","p-2",3,"ngClass"],[1,"col-9","position-relative"],[1,"text-light","fs-8"],[1,"text-dark","fs-6","text-truncate","d-block","nowrap","w-100"],[1,"col","d-flex","align-items-center","justify-content-end"],[1,"user-status-dot",3,"ngClass","pTooltip"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,jt,24,15,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,$t,3,1,"div",3)(5,Yt,4,3,"div",3)(6,qt,2,3,"div",4)(7,Zt,10,8,"ng-container",5)(8,Qt,1,4,"app-widget-loading",6),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading||s.loadingChart)("align","center"),n(),r("ngIf",s.error),n(),r("ngIf",!s.loading&&!s.loadingChart&&!s.data&&!s.error),n(),r("ngIf",s.data&&!s.loading),n(),r("ngIf",s.localUsersStats&&!s.periodLoading),n(),r("ngIf",s.periodLoading))},dependencies:[x,L,D,C,z,de,A,M,O,q,w,I,ae,ce,H,G,S,y],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-badge.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge.stats-badge-warning[_ngcontent-%COMP%]{background-color:#f59e0b;color:#333}.stats-badge.stats-badge-danger[_ngcontent-%COMP%]{background-color:#ef4444;color:#fff}.stats-badge.stats-badge-neutral[_ngcontent-%COMP%]{background-color:#64748b;color:#fff}.stats-header-controls[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stats-controls-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats-controls-right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.stats-period-selector[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#fff}.stats-period-btn[_ngcontent-%COMP%]{padding:6px 14px;border:none;background:transparent;color:#666;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-period-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #dee2e6}.stats-period-btn[_ngcontent-%COMP%]:hover:not(.active){background:#f8f9fa;color:#333}.stats-period-btn.active[_ngcontent-%COMP%]{background:#f1f5f9;color:#3b82f6;font-weight:600}.stats-period-btn.stats-period-btn-sm[_ngcontent-%COMP%]{padding:4px 10px;font-size:.78rem}.users-recent-list[_ngcontent-%COMP%]{max-height:320px;overflow-y:auto;overflow-x:hidden}.user-status-dot[_ngcontent-%COMP%]{display:inline-block;width:10px;height:10px;border-radius:50%}.user-status-dot.dot-active[_ngcontent-%COMP%]{background:#22c55e}.user-status-dot.dot-pending[_ngcontent-%COMP%]{background:#f59e0b}.user-status-dot.dot-blocked[_ngcontent-%COMP%]{background:#ef4444}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%], .stats-header-control
1s[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}.stats-controls-left[_ngcontent-%COMP%], .stats-controls-right[_ngcontent-%COMP%]{width:100%;justify-content:flex-start}}"]})};var Jt=(t,i,e)=>({"stats-badge-success":t,"stats-badge-warning":i,"stats-badge-danger":e}),ei=()=>[1,2,3,4],ti=()=>[3,4,5];function ii(t,i){if(t&1&&(a(0,"span",10),l(1),d(2,"translate"),o()),t&2){let e=m(2);r("ngClass",Ce(5,Jt,e.getUsageClass()==="success",e.getUsageClass()==="warning",e.getUsageClass()==="danger")),n(),J(" ",e.keyStats.usagePercentage.toFixed(4),"% ",c(2,3,"ADMIN.DASHBOARD.USED")," ")}}function ni(t,i){if(t&1&&(a(0,"div",4)(1,"div",5)(2,"span",6),p(3,"i",7),l(4),d(5,"translate"),o(),a(6,"div",8),f(7,ii,3,9,"span",9),o()()()),t&2){let e=m();n(4),h(" ",c(5,2,"ADMIN.DASHBOARD.KEY_STATS")," "),n(3),r("ngIf",!e.loading&&e.keyStats)}}function ai(t,i){t&1&&(a(0,"div",13),p(1,"p-skeleton",14),o())}function oi(t,i){t&1&&(a(0,"div",11),f(1,ai,2,0,"div",12),o()),t&2&&(n(),r("ngForOf",he(1,ei)))}function si(t,i){if(t&1&&(a(0,"div",29)(1,"span",30),l(2),d(3,"translate"),o(),a(4,"div",31),p(5,"p-progressBar",32),o(),a(6,"span",33),l(7),o()()),t&2){let e=i.$implicit,s=m(2);n(2),J("",e,"",c(3,5,"ADMIN.DASHBOARD.CHARS"),""),n(3),r("value",s.getUsagePercentageByLength(e))("showValue",!1),n(2),h("",s.getUsagePercentageByLength(e).toFixed(1),"%")}}function ri(t,i){if(t&1&&(a(0,"div")(1,"div",15),p(2,"p-progressBar",16),o(),a(3,"div",17)(4,"div",18)(5,"span",19),l(6),o(),a(7,"span",20),l(8),d(9,"translate"),o()(),a(10,"div",21)(11,"span",22),l(12),o(),a(13,"span",20),l(14),d(15,"translate"),o()(),a(16,"div",23)(17,"span",24),l(18),o(),a(19,"span",20),l(20),d(21,"translate"),o()(),a(22,"div",25)(23,"span",26),l(24),o(),a(25,"span",20),l(26),d(27,"translate"),o()()(),a(28,"div",27),f(29,si,8,7,"div",28),o()()),t&2){let e=m();n(2),r("value",e.keyStats.usagePercentage)("showValue",!1),n(4),g(e.formatNumber(e.keyStats.activeKeys)),n(2),g(c(9,11,"ADMIN.DASHBOARD.ACTIVE_KEYS")),n(4),g(e.formatNumber(e.keyStats.availableKeys)),n(2),g(c(15,13,"ADMIN.DASHBOARD.AVAILABLE")),n(4),g(e.formatNumber(e.keyStats.preGeneratedAvailable)),n(2),g(c(21,15,"ADMIN.DASHBOARD.PRE_GENERATED")),n(4),g(e.formatNumber(e.keyStats.potentiallyDead)),n(2),g(c(27,17,"ADMIN.DASHBOARD.POTENTIALLY_DEAD")),n(3),r("ngForOf",he(19,ti))}}var Pe=class t{keyStats=null;loading=!0;error=null;formatNumber(i){return i>=1e9?(i/1e9).toFixed(2)+"B":i>=1e6?(i/1e6).toFixed(2)+"M":i>=1e3?(i/1e3).toFixed(1)+"K":i.toLocaleString("fr-FR")}getUsageClass(){if(!this.keyStats)return"";let i=this.keyStats.usagePercentage;return i<1?"success":i<10?"warning":"danger"}getUsageStatusText(){if(!this.keyStats)return"";let i=this.keyStats.usagePercentage;return i<.1?"Excellent":i<1?"Tr\xE8s bon":i<5?"Attention":i<10?"Pr\xE9occupant":"Critique"}getUsagePercentageByLength(i){if(!this.keyStats)return 0;let e=this.keyStats.activeKeysByLength.find(b=>b.length===i)?.count||0,s=this.keyStats.totalPotentialByLength.find(b=>b.length===i)?.count||1;return e/s*100}getActiveByLength(i){return this.keyStats&&this.keyStats.activeKeysByLength.find(e=>e.length===i)?.count||0}getPotentialByLength(i){return this.keyStats&&this.keyStats.totalPotentialByLength.find(e=>e.length===i)?.count||0}getLengthStatusClass(i){let e=this.getUsagePercentageByLength(i);return e<10?"success":e<50?"warning":"danger"}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-keys"]],inputs:{keyStats:"keyStats",loading:"loading"},decls:5,vars:2,consts:[["pTemplate","header"],[1,"keys-body"],["class","d-flex gap-2 p-2",4,"ngIf"],[4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-key"],[1,"stats-badges"],["class","stats-badge",3,"ngClass",4,"ngIf"],[1,"stats-badge",3,"ngClass"],[1,"d-flex","gap-2","p-2"],["class","flex-fill",4,"ngFor","ngForOf"],[1,"flex-fill"],["height","50px"],[1,"px-3","pt-2","pb-1"],["styleClass","progress-bar-thin",3,"value","showValue"],[1,"keys-grid","px-3","pb-2"],["pTooltip","Liens shorts actifs",1,"key-stat"],[1,"key-stat-value","text-primary"],[1,"key-stat-label"],["pTooltip","Cl\xE9s encore disponibles (62M+)",1,"key-stat"],[1,"key-stat-value","text-success"],["pTooltip","Cl\xE9s pr\xE9-g\xE9n\xE9r\xE9es legacy",1,"ke
1y-stat"],[1,"key-stat-value","text-info"],["pTooltip","Liens inactifs ou jamais utilis\xE9s",1,"key-stat"],[1,"key-stat-value","text-warning"],[1,"keys-lengths","px-3","pb-2"],["class","key-length-row",4,"ngFor","ngForOf"],[1,"key-length-row"],[1,"key-length-label"],[1,"key-length-bar-wrapper"],["styleClass","progress-bar-mini",3,"value","showValue"],[1,"key-length-value"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,ni,8,4,"ng-template",0),a(2,"div",1),f(3,oi,2,2,"div",2)(4,ri,30,20,"div",3),o()()),e&2&&(n(3),r("ngIf",s.loading),n(),r("ngIf",s.keyStats&&!s.loading))},dependencies:[x,L,D,C,Ge,ze,O,w,I,$e,je,A,M,S,y],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge.stats-badge-warning[_ngcontent-%COMP%]{background-color:#f59e0b;color:#333}.stats-badge.stats-badge-danger[_ngcontent-%COMP%]{background-color:#ef4444;color:#fff}.keys-body[_ngcontent-%COMP%]{min-height:50px}.keys-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:6px}.key-stat[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 4px;border-radius:8px;background:#f8f9fa;cursor:default}.key-stat[_ngcontent-%COMP%]:hover{background:#f1f5f9}.key-stat-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700;line-height:1.2}.key-stat-label[_ngcontent-%COMP%]{font-size:.65rem;color:#64748b;text-transform:uppercase;letter-spacing:.03em;margin-top:2px}.keys-lengths[_ngcontent-%COMP%]{display:flex;gap:12px;padding-top:4px}.key-length-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex:1}.key-length-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;color:#475569;white-space:nowrap;min-width:28px}.key-length-bar-wrapper[_ngcontent-%COMP%]{flex:1;min-width:40px}.key-length-value[_ngcontent-%COMP%]{font-size:.65rem;color:#94a3b8;white-space:nowrap;min-width:32px;text-align:right}  .progress-bar-thin{height:6px!important;border-radius:3px}  .progress-bar-thin .p-progressbar-value{border-radius:3px}  .progress-bar-mini{height:4px!important;border-radius:2px}  .progress-bar-mini .p-progressbar-value{border-radius:2px}@media (max-width: 576px){.keys-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.keys-lengths[_ngcontent-%COMP%]{flex-direction:column;gap:4px}}"]})};function li(t,i){if(t&1&&(a(0,"span",16),d(1,"translate"),p(2,"i",11),a(3,"span"),l(4),d(5,"number"),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.PROFILES_TOTAL")),n(4),g(c(5,4,e.globalStats.totalProfiles))}}function pi(t,i){if(t&1){let e=W();a(0,"button",17),U("click",function(){let b=N(e).$implicit,u=m(2);return R(u.onPeriodChange(b.value))}),l(1),o()}if(t&2){let e=i.$implicit,s=m(2);F("active",s.selectedPeriod===e.value),n(),h(" ",e.label," ")}}function di(t,i){if(t&1&&(a(0,"div",8)(1,"div",9)(2,"span",10),p(3,"i",11),l(4),d(5,"translate"),o(),a(6,"div",12),f(7,li,6,6,"span",13),a(8,"div",14),f(9,pi,2,3,"button",15),o()()()()),t&2){let e=m();n(4),h(" ",c(5,3,"ADMIN.DASHBOARD.LINK_IN_BIO")," "),n(3),r("ngIf",e.globalStats),n(2),r("ngForOf",e.periodOptions)}}function ci(t,i){if(t&1&&(a(0,"div",18)(1,"div",19),l(2),o()()),t&2){let e=m();n(2),g(e.error)}}function mi(t,i){if(t&1&&(a(0,"div",21)(1,"span",27),l(2),o(),a(3,"span",23),l(4),d(5,"translate"),o()()),t&2){let e=m(2);n(2),g(e.formatNumber(e.hitStats.totalViews)),n(2),g(c(5,2,"ADMIN.DASHBOARD.VIEWS"))}}function gi(t,i){if(t&1&&(a(0,"div",21)(1,"span",28),l(2),o(),a(3,"span",23),l(4),d(5,"translate"),o()()),t&2){let e=m(2);n(2),g(e.formatNumber(e.hitStats.totalClicks)),n(2),g(c(5,2,"ADMIN.DASHBOARD.PROFILE_CLICKS"))}}function fi(t,i){if(t&1&&(a(0,"div",21)(1,"span",29),l(2),o(),a(3,"span",23),l(4),d(5,"translate"),o()()),t&2){let e=m(2);n(2),g(e.formatNumber(e.hitStats.uniqueVisitors)),n(2),g(c(5,2,"ADMIN.DASHBOARD.UNIQUE"))}}function ui(t,i){if(t&1&&(a(0,"div",20)(1,"div",21)(2,"span",22),l(3),o(),a(4,"span",23),l(5),d(6,"translate"),o()(),a(7,"div",21)(8,"span",24),l(9),o(),a(10,"span",23),l(11),d(12,"translate"),o()(),a(13,"div",21)(14,"span",25),l(15),o(),a(16,"span",23),l(17),d(18,"translate"),o()(),f(19,mi,6,4,"div",26)(20,gi,6,4,"div",26)(21,fi,6,4,"div",26),o()),t&2){let e=m();n(3),g(e.globalStats.publicProfiles),n(2),g(c(6,9,"ADMIN.DASHBOARD.PUBLIC")),n(4),g(e.globalStats.privateProfiles),n(2),g(c(12,11,"ADMIN.DASHBOARD.PRIVATE")),n(4),g(e.globalStats.blockedProfiles),n(2),g(c(18,13,"ADMIN.DASHBOARD.BLOCKED")),n(2),r("ngIf",e.hitStats),n(),r("ngIf",e.hitStats),n(),r("ngIf",e.hitStats)}}function bi(t,i){if(t&1&&(a(0,"div")(1,"div",30),p(2,"i",31),l(3),d(4,"translate"),o(),p(
15,"app-widget-chart",32),o()),t&2){let e=m();n(3),h(" ",c(4,4,"ADMIN.DASHBOARD.VIEWS_CLICKS_PER_DAY")," "),n(2),r("tooltip",!0)("responsive",!0)("data",e.chartData)}}function hi(t,i){if(t&1&&(a(0,"div",33)(1,"div",34)(2,"span",35),p(3,"i",36),a(4,"span"),l(5),d(6,"translate"),o()(),a(7,"span",37),p(8,"i",38),a(9,"span"),l(10),d(11,"translate"),o()(),a(12,"span",39),p(13,"i",40),a(14,"span"),l(15),d(16,"translate"),o()()()()),t&2){let e=m();n(5),J("",c(6,6,"ADMIN.DASHBOARD.CREATED_LAST_24H"),": ",e.globalStats.createdLast24h,""),n(5),J("",c(11,8,"ADMIN.DASHBOARD.CREATED_LAST_7D"),": ",e.globalStats.createdLast7Days,""),n(5),J("",c(16,10,"ADMIN.DASHBOARD.CREATED_LAST_30D"),": ",e.globalStats.createdLast30Days,"")}}function _i(t,i){t&1&&(a(0,"div",41)(1,"a",42),p(2,"i",43),l(3),d(4,"translate"),o()()),t&2&&(n(3),h(" ",c(4,1,"ADMIN.DASHBOARD.VIEW_ALL_PROFILES")," "))}var De=class t{adminProfilesService=K(Ye);loading=!0;error=null;globalStats=null;hitStats=null;chartData=null;periodOptions=[{label:"7j",value:"7d"},{label:"30j",value:"30d"},{label:"90j",value:"90d"}];selectedPeriod="30d";ngOnInit(){return _(this,null,function*(){yield this.loadData()})}loadData(){return _(this,null,function*(){this.loading=!0,this.error=null;try{let[i,e]=yield Promise.all([this.adminProfilesService.getGlobalStats(),this.adminProfilesService.getHitStats(this.selectedPeriod)]);this.globalStats=i,this.hitStats=e,this.buildChartData()}catch(i){console.error("Erreur chargement stats profiles:",i),this.error=i.message||"Erreur lors du chargement"}finally{this.loading=!1}})}onPeriodChange(i){return _(this,null,function*(){this.selectedPeriod=i;try{this.hitStats=yield this.adminProfilesService.getHitStats(this.selectedPeriod),this.buildChartData()}catch(e){console.error("Erreur changement p\xE9riode:",e)}})}buildChartData(){if(!this.hitStats?.data)return;let i=getComputedStyle(document.documentElement),e=this.hitStats.data.map(u=>new Date(u.date).toLocaleDateString("fr-FR",{day:"2-digit",month:"short"})),s=this.hitStats.data.map(u=>u.views),b=this.hitStats.data.map(u=>u.clicks);this.chartData={labels:e,datasets:[{type:"bar",label:"Vues de pages",backgroundColor:i.getPropertyValue("--bs-info")||"#17a2b8",data:s,minBarLength:1},{type:"bar",label:"Clics sur liens",backgroundColor:i.getPropertyValue("--bs-success")||"#28a745",data:b,minBarLength:0}]}}formatNumber(i){return i==null?"0":i>=1e6?(i/1e6).toFixed(1)+"M":i>=1e3?(i/1e3).toFixed(1)+"k":i.toString()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-profiles"]],decls:9,vars:9,consts:[["pTemplate","header"],[1,"profiles-body","p-3"],[3,"loading","align"],["class","p-2",4,"ngIf"],["class","profiles-stats-grid mb-3",4,"ngIf"],[4,"ngIf"],["class","mt-3 pt-2 border-top",4,"ngIf"],["class","mt-3 text-center",4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-id-card"],[1,"stats-badges"],["class","stats-badge stats-badge-primary","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],[1,"stats-period-selector"],["type","button","class","stats-period-btn",3,"active","click",4,"ngFor","ngForOf"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],["type","button",1,"stats-period-btn",3,"click"],[1,"p-2"],[1,"alert","alert-danger","fs-6","p-2","text-center"],[1,"profiles-stats-grid","mb-3"],[1,"profile-stat"],[1,"profile-stat-value","text-success"],[1,"profile-stat-label"],[1,"profile-stat-value","text-secondary"],[1,"profile-stat-value","text-danger"],["class","profile-stat",4,"ngIf"],[1,"profile-stat-value","text-info"],[1,"profile-stat-value","text-primary"],[1,"profile-stat-value",2,"color","#8b5cf6"],[1,"small","text-muted","mb-2"],[1,"pi","pi-chart-bar","me-1"],["type","bar","height","120",3,"tooltip","responsive","data"],[1,"mt-3","pt-2","border-top"],[1,"d-flex","gap-3","flex-wrap"],[1,"stats-badge","stats-badge-primary"],[1,"pi","pi-clock"],[1,"stats-badge","stats-badge-success"],[1,"pi","pi-calendar"],[1,"stats-badge","stats-badge-neutral"],[1,"pi","pi-calendar-plus"],[1,"mt-3","text-center"],["routerLink","/admin/profiles",1,"btn","btn-sm","btn-outline-primary"],[1,"pi","pi-external-link","me-1"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,di,10,5,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,ci,3,1,"div",3)(5,ui,22,15,"div",4)(6,bi,6,6,"div",5)(7,hi,17,12,"div",6)(8,_i,5,3,"div",7),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading)("align","center"),n(),r("ngIf",s.error),n(),r("ngIf",s.globalStats&&!s.loading),n(),r("ngIf",s.chartData&&!s.loading),n(),r("ngIf",s.globalStats&&!s.loading),n(),r("ngIf",!s.loading))},dependencies:[x,D,C,z,ae,Ke,A,M,O,q,w,I,H,G,S,y],styles:["[_nghost-%COMP%]{display:block}.stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
1.stats-header-controls[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge-neutral[_ngcontent-%COMP%]{background-color:#64748b;color:#fff}.stats-period-selector[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#fff}.stats-period-btn[_ngcontent-%COMP%]{padding:6px 14px;border:none;background:transparent;color:#666;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-period-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #dee2e6}.stats-period-btn[_ngcontent-%COMP%]:hover:not(.active){background:#f8f9fa;color:#333}.stats-period-btn.active[_ngcontent-%COMP%]{background:#f1f5f9;color:#3b82f6;font-weight:600}.profiles-body[_ngcontent-%COMP%]{min-height:200px}.profiles-stats-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}@media (min-width: 992px){.profiles-stats-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(6,1fr)}}.profile-stat[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:.5rem .25rem;border-radius:8px;background:var(--surface-ground, #f8f9fa);transition:background .15s}.profile-stat[_ngcontent-%COMP%]:hover{background:var(--surface-hover, #eef2f6)}.profile-stat-value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;line-height:1.2}.profile-stat-label[_ngcontent-%COMP%]{font-size:.7rem;color:var(--text-color-secondary, #6c757d);text-transform:uppercase;letter-spacing:.02em;margin-top:.15rem}"]})};var vi=(t,i,e,s)=>({"pi-desktop":t,"pi-code":i,"pi-window-maximize":e,"pi-globe":s});function xi(t,i){if(t&1&&(a(0,"span",8),p(1,"i",9),a(2,"span"),l(3),d(4,"number"),o()()),t&2){let e=m(2);n(3),g(c(4,1,e.linkTypes.total))}}function Ci(t,i){if(t&1&&(a(0,"div",3)(1,"div",4)(2,"span",5),p(3,"i",6),l(4),d(5,"translate"),o(),f(6,xi,5,3,"span",7),o()()),t&2){let e=m();n(4),h(" ",c(5,2,"ADMIN.DASHBOARD.LINK_TYPES_TITLE")," "),n(2),r("ngIf",e.linkTypes)}}function yi(t,i){if(t&1&&(a(0,"div",16),p(1,"app-widget-chart",17),o()),t&2){let e=m(2);n(),r("tooltip",!0)("responsive",!0)("data",e.donutData)}}function Si(t,i){if(t&1&&(a(0,"div",18),d(1,"translate"),p(2,"i"),a(3,"span",19),l(4),d(5,"number"),o(),a(6,"span",20),l(7),d(8,"translate"),o()()),t&2){let e=i.$implicit;r("ngClass",e.colorClass)("pTooltip",c(1,6,e.key)),n(2),ve(e.icon),n(2),g(c(5,8,e.count)),n(3),g(c(8,10,e.key))}}function wi(t,i){if(t&1&&(a(0,"span",25),p(1,"i",26),l(2),a(3,"strong"),l(4),d(5,"number"),o()()),t&2){let e=i.$implicit;n(),r("ngClass",Fe(5,vi,e.type==="app",e.type==="api",e.type==="extension",e.type==="browser")),n(),h(" ",e.type," "),n(2),g(c(5,3,e.count))}}function ki(t,i){if(t&1&&(a(0,"div",21)(1,"small",22),l(2),d(3,"translate"),o(),a(4,"div",23),f(5,wi,6,10,"span",24),o()()),t&2){let e=m(2);n(2),g(c(3,2,"ADMIN.DASHBOARD.LINK_TYPE.CREATED_BY")),n(3),r("ngForOf",e.linkTypes.byCreatedType)}}function Pi(t,i){if(t&1&&(a(0,"div",10)(1,"div",11),f(2,yi,2,3,"div",12),a(3,"div",13),f(4,Si,9,12,"div",14),o()(),f(5,ki,6,4,"div",15),o()),t&2){let e=m();n(2),r("ngIf",e.donutData),n(2),r("ngForOf",e.badges),n(),r("ngIf",e.linkTypes.byCreatedType==null?null:e.linkTypes.byCreatedType.length)}}var Oe=class t{linkTypes;loading=!0;badges=[];donutData=null;chartColors=["#3b82f6","#22c55e","#f59e0b","#ef4444","#8b5cf6","#ec4899","#06b6d4","#84cc16","#f97316","#6366f1"];
1ngOnChanges(i){i.linkTypes&&this.linkTypes&&(this.buildBadges(),this.buildDonut())}buildBadges(){if(!this.linkTypes)return;let i=this.linkTypes;this.badges=[{key:"ADMIN.DASHBOARD.LINK_TYPE.PASSWORD",icon:"pi pi-lock",colorClass:"badge-red",count:i.withPassword},{key:"ADMIN.DASHBOARD.LINK_TYPE.UTM",icon:"pi pi-tag",colorClass:"badge-blue",count:i.withUtm},{key:"ADMIN.DASHBOARD.LINK_TYPE.EPHEMERAL",icon:"pi pi-clock",colorClass:"badge-amber",count:i.ephemeral},{key:"ADMIN.DASHBOARD.LINK_TYPE.EXPIRED",icon:"pi pi-times-circle",colorClass:"badge-gray",count:i.expired},{key:"ADMIN.DASHBOARD.LINK_TYPE.FB_PIXEL",icon:"pi pi-facebook",colorClass:"badge-indigo",count:i.withFbPixel},{key:"ADMIN.DASHBOARD.LINK_TYPE.GOOGLE_TAG",icon:"pi pi-google",colorClass:"badge-green",count:i.withGoogleTag},{key:"ADMIN.DASHBOARD.LINK_TYPE.TIKTOK_PIXEL",icon:"pi pi-video",colorClass:"badge-pink",count:i.withTiktokPixel},{key:"ADMIN.DASHBOARD.LINK_TYPE.AB_TEST",icon:"pi pi-sliders-h",colorClass:"badge-violet",count:i.withAbTest},{key:"ADMIN.DASHBOARD.LINK_TYPE.SMART_ROUTING",icon:"pi pi-directions",colorClass:"badge-lime",count:i.withSmartRouting}]}buildDonut(){if(!this.linkTypes)return;let i=this.linkTypes,e=[{label:"Prot\xE9g\xE9s",value:i.withPassword},{label:"UTM",value:i.withUtm},{label:"\xC9ph\xE9m\xE8res",value:i.ephemeral},{label:"Pixel FB",value:i.withFbPixel},{label:"Google Tag",value:i.withGoogleTag},{label:"Pixel TikTok",value:i.withTiktokPixel},{label:"A/B Test",value:i.withAbTest},{label:"Smart Routing",value:i.withSmartRouting}].filter(u=>u.value>0),s=e.reduce((u,T)=>u+T.value,0),b=Math.max(0,i.total-s);b>0&&e.push({label:"Standard",value:b}),e.length!==0&&(this.donutData={labels:e.map(u=>u.label),datasets:[{data:e.map(u=>u.value),backgroundColor:e.map((u,T)=>this.chartColors[T%this.chartColors.length]),borderWidth:0,hoverOffset:4}]})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-link-types"]],inputs:{linkTypes:"linkTypes",loading:"loading"},features:[Y],decls:4,vars:5,consts:[["pTemplate","header"],[3,"loading","align"],["class","link-types-content",4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-tags"],["class","stats-badge stats-badge-primary",4,"ngIf"],[1,"stats-badge","stats-badge-primary"],[1,"pi","pi-link"],[1,"link-types-content"],[1,"d-flex","flex-wrap","gap-3","align-items-start"],["class","donut-wrapper",4,"ngIf"],[1,"badges-grid","flex-fill"],["class","type-badge","tooltipPosition","top",3,"ngClass","pTooltip",4,"ngFor","ngForOf"],["class","creation-source mt-3",4,"ngIf"],[1,"donut-wrapper"],["type","doughnut","height","180",3,"tooltip","responsive","data"],["tooltipPosition","top",1,"type-badge",3,"ngClass","pTooltip"],[1,"type-badge-count"],[1,"type-badge-label"],[1,"creation-source","mt-3"],[1,"text-muted","fw-bold"],[1,"d-flex","flex-wrap","gap-2","mt-1"],["class","source-badge",4,"ngFor","ngForOf"],[1,"source-badge"],[1,"pi",3,"ngClass"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,Ci,7,4,"ng-template",0),p(2,"app-widget-loading",1),f(3,Pi,6,3,"div",2),o()),e&2&&(n(2),B("dark"),r("loading",s.loading)("align","center"),n(),r("ngIf",s.linkTypes&&!s.loading))},dependencies:[x,L,D,C,z,A,M,O,w,I,S,y,G,H],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.link-types-content[_ngcontent-%COMP%]{padding:8px}.donut-wrapper[_ngcontent-%COMP%]{flex:0 0 180px;width:180px;height:180px}.badges-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.type-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:.85rem;font-weight:500;border:1px solid transparent;transition:all .2s ease}.type-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1rem;flex-shrink:0}.type-badge[_ngcontent-%COMP%]   .type-badge-count[_ngcontent-%COMP%]{font-weight:700;font-size:.95rem}.type-badge[_ngcontent-%COMP%]   .type-badge-label[_ngcontent-%COMP%]{font-size:.75rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.type-badge[_ngcontent-%COMP%]:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.type-badge.badge-red[_ngcontent-%COMP%]{background:#fef2f2;color:#dc2626;border-color:#fecaca}.type-badge.badge-blue[_ngcontent-%COMP%]{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.type-badge.badge-amber[_ngcontent-%COMP%]{background:#fffbeb;color:#d97706;border-color:#fde68a}.type-badge.badge-gray[_ngcontent-%COMP%]{background:#f9fafb;color:#6b7280;border-color:#e5e7eb}.type-badge.badge-indigo[_ngcontent-%COMP%]{background:#eef2ff;color:#4f46e5;border-color:#c7d2fe}.type-badge.badge-green[_ngcontent-%COMP%]{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.type-badge.badge-pink[_ngcontent-%COMP%]{background:#fdf2f8;color:#db2777;border-color:#fbcfe8}.type-badge.badge-cyan[_ngcontent-%COMP%]{background:#ecfeff;color:#0891b2;border-color:#a5f3fc}.type-badge.badge-violet[_ngcontent-%COMP%]{background:#f5f3ff;color:#7c3aed;border-color:#ddd6fe}.type-badge.badge-lime[_ngcontent-%COMP%]{background:#f7fee7;color:#65a30d;border-color:#bef264}.source-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:#f1f5f9;color:#475569;font-size:.8rem;font-weight:500}.source-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.source-badge[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#1e293b}@media (max-width: 576px){.donut-wrapper[_ngcontent-%COMP%]{flex:0 0 140px;width:140px;height:140px}.badges-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.type-badge-label[_ngcontent-%COMP%]{display:none}}"]})};function Di(t,i){if(t&1&&(a(0,"small",21),l(1),d(2,"number"),o()),t&2){let e=m(2);n(),h("+",c(2,1,e.growthUsers),"")}}function Oi(t,i){if(t&1&&(a(0,"small",21),l(1),d(2,"number"),o()),t&2){let e=m(2);n(),h("+",c(2,1,e.growthLinks),"")}}function Ii(t,i){if(t&1&&(a(0,"small",21),l(1),d(2,"number"),o()),t&2){let e=m(2);n(),h("+",c(2,1,e.growthProfiles),"")}}function Mi(t,i){if(t&1){let e=W();a(0,"button",22),U("click",function(){let b=N(e).$implicit,u=m(2);return u.selectedPeriod=b.value,R(u.onPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(2);F("active",s.selectedPeriod===e.value),n(),h(" ",e.label," ")}}function Ai(t,i){if(t&1&&(a(0,"div",5)(1,"div",6)(2,"span",7),p(3,"i",8),l(4),d(5,"translate"),o(),a(6,"div",9)(7,"span",10),d(8,"translate"),p(9,"i",11),a(10,"span"),l(11),d(12,"
1number"),o(),f(13,Di,3,3,"small",12),o(),a(14,"span",13),d(15,"translate"),p(16,"i",14),a(17,"span"),l(18),d(19,"number"),o(),f(20,Oi,3,3,"small",12),o(),a(21,"span",15),d(22,"translate"),p(23,"i",16),a(24,"span"),l(25),d(26,"number"),o(),f(27,Ii,3,3,"small",12),o()()(),a(28,"div",17)(29,"div",18)(30,"div",19),f(31,Mi,2,3,"button",20),o()()()()),t&2){let e=m();n(4),h(" ",c(5,11,"ADMIN.DASHBOARD.GROWTH_TITLE")," "),n(3),r("pTooltip",c(8,13,"ADMIN.DASHBOARD.GROWTH_USERS")),n(4),g(c(12,15,e.latestUsers)),n(2),r("ngIf",e.growthUsers>0),n(),r("pTooltip",c(15,17,"ADMIN.DASHBOARD.GROWTH_LINKS")),n(4),g(c(19,19,e.latestLinks)),n(2),r("ngIf",e.growthLinks>0),n(),r("pTooltip",c(22,21,"ADMIN.DASHBOARD.GROWTH_PROFILES")),n(4),g(c(26,23,e.latestProfiles)),n(2),r("ngIf",e.growthProfiles>0),n(4),r("ngForOf",e.periodOptions)}}function Ti(t,i){if(t&1&&(a(0,"div",23)(1,"div",24),l(2),o()()),t&2){let e=m();n(2),h(" ",e.error," ")}}function Ei(t,i){t&1&&(a(0,"div",23)(1,"div",25),l(2),d(3,"translate"),o()()),t&2&&(n(2),h(" ",c(3,1,"ADMIN.DASHBOARD.NO_DATA")," "))}function Bi(t,i){if(t&1&&(a(0,"div",26),p(1,"app-widget-chart",27),o()),t&2){let e=m();n(),r("tooltip",!0)("responsive",!0)("data",e.data)}}var Ie=class t{adminStatsService=K(X);cumulativeGrowth;loading=!0;error=null;data=null;loadingChart=!1;periodOptions=[{label:"7j",value:"7d"},{label:"30j",value:"30d"},{label:"90j",value:"90d"},{label:"1 an",value:"1y"}];selectedPeriod="30d";latestUsers=0;latestLinks=0;latestProfiles=0;growthUsers=0;growthLinks=0;growthProfiles=0;useCustomPeriod=!1;ngOnChanges(i){if(i.cumulativeGrowth&&this.cumulativeGrowth){if(this.useCustomPeriod)return;this.buildChart()}}onPeriodChange(){return _(this,null,function*(){this.useCustomPeriod=this.selectedPeriod!=="30d",this.loadingChart=!0;try{this.cumulativeGrowth=yield this.adminStatsService.getCumulativeGrowth(this.selectedPeriod),this.buildChart()}catch(i){this.error=i?.error?.message||"Erreur lors du chargement"}finally{this.loadingChart=!1}})}buildChart(){if(!this.cumulativeGrowth)return;let{users:i,links:e,profiles:s}=this.cumulativeGrowth,b=i.map(u=>new Date(u.date).toLocaleDateString("fr-FR",{day:"2-digit",month:"short"}));this.latestUsers=i.length>0?i[i.length-1].count:0,this.latestLinks=e.length>0?e[e.length-1].count:0,this.latestProfiles=s.length>0?s[s.length-1].count:0,this.growthUsers=i.length>1?i[i.length-1].count-i[0].count:0,this.growthLinks=e.length>1?e[e.length-1].count-e[0].count:0,this.growthProfiles=s.length>1?s[s.length-1].count-s[0].count:0,this.data={labels:b,datasets:[{type:"line",label:"Utilisateurs",data:i.map(u=>u.count),borderColor:"#3b82f6",backgroundColor:"rgba(59, 130, 246, 0.08)",fill:!0,tension:.3,pointRadius:0,pointHoverRadius:4,borderWidth:2},{type:"line",label:"Liens",data:e.map(u=>u.count),borderColor:"#22c55e",backgroundColor:"rgba(34, 197, 94, 0.08)",fill:!0,tension:.3,pointRadius:0,pointHoverRadius:4,borderWidth:2},{type:"line",label:"Pages LIB",data:s.map(u=>u.count),borderColor:"#f59e0b",backgroundColor:"rgba(245, 158, 11, 0.08)",fill:!0,tension:.3,pointRadius:0,pointHoverRadius:4,borderWidth:2}]}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-growth"]],inputs:{cumulativeGrowth:"cumulativeGrowth",loading:"loading"},features:[Y],decls:7,vars:7,consts:[["pTemplate","header"],[2,"min-height","380px","overflow-x","hidden","overflow-y","auto"],[3,"loading","align"],["class","p-2",4,"ngIf"],["class","d-flex px-3 align-items-end w-100",4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-chart-line"],[1,"stats-badges"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],[1,"pi","pi-users"],["class","growth-delta",4,"ngIf"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-success",3,"pTooltip"],[1,"pi","pi-link"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-warning",3,"pTooltip"],[1,"pi","pi-id-card"],[1,"stats-header-controls"],[1,"stats-controls-left"],[1,"stats-period-selector"],["type","button","class","stats-period-btn",3,"active","click",4,"ngFor","ngForOf"],[1,"growth-delta"],["type","button",1,"stats-period-btn",3,"click"],[1,"p-2"],[1,"alert","alert-danger","fs-6","p-2","text-center"],[1,"alert","alert-warning","p-2","fs-6","text-center","user-select-none"],[1,"d-flex","px-3","align-items-end","w-100"],["type","line","height","260",1,"w-100",3,"tooltip","responsive","data"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,Ai,32,25,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,Ti,3,1,"div",3)(5,Ei,4,3,"div",3)(6,Bi,2,3,"div",4),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading||s.loadingChart)("align","center"),n(),r("ngIf",s.error),n(),r("ngIf",!s.loading&&!s.loadingChart&&!s.data&&!s.error),n(),r("ngIf",s.data&&!s.loadingChart))},dependencies:[x,D,C,z,A,M,O,q,w,I,ce,H,G,S,y],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-badge.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge.stats-badge-warning[_ngcontent-%COMP%]{background-color:#f59e0b;color:#333}.stats-badge.stats-badge-paying[_ngcontent-%COMP%]{background-color:#10b981;color:#fff}.growth-delta[_ngcontent-%COMP%]{font-size:.65rem;font-weight:400;opacity:.85;margin-left:2px}
1.stats-header-controls[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stats-controls-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats-period-selector[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#fff}.stats-period-btn[_ngcontent-%COMP%]{padding:6px 14px;border:none;background:transparent;color:#666;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-period-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #dee2e6}.stats-period-btn[_ngcontent-%COMP%]:hover:not(.active){background:#f8f9fa;color:#333}.stats-period-btn.active[_ngcontent-%COMP%]{background:#f1f5f9;color:#3b82f6;font-weight:600}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%], .stats-header-controls[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}"]})};function Li(t,i){t&1&&(a(0,"div",4),p(1,"span",5),a(2,"span"),l(3,"LIVE"),o()())}function Hi(t,i){if(t&1&&(a(0,"span"),l(1),d(2,"number"),o()),t&2){let e=m().$implicit;n(),g(c(2,1,e.value))}}function Vi(t,i){t&1&&(a(0,"span"),l(1,"%"),o())}function Ni(t,i){t&1&&p(0,"span",13)}function Ri(t,i){if(t&1&&(a(0,"div",6)(1,"div",7),p(2,"i"),o(),a(3,"div",8)(4,"div",9),f(5,Hi,3,3,"span",10)(6,Vi,2,0,"span",10)(7,Ni,1,0,"span",11),o(),a(8,"div",12),l(9),d(10,"translate"),o()()()),t&2){let e=i.$implicit,s=m();te("--kpi-color",e.color)("--kpi-bg",e.bgColor),n(2),ve(e.icon),n(3),r("ngIf",!s.loading),n(),r("ngIf",!s.loading&&e.label==="ADMIN.DASHBOARD.KPI_KEY_USAGE"),n(),r("ngIf",s.loading),n(2),g(c(10,10,e.label))}}var Me=class t{stats=null;loading=!0;sseConnected=!1;get kpiCards(){if(!this.stats)return[];let i=this.stats.users?.count||0,e=this.stats.links?.count||0,s=this.stats.hits?.count||0,b=this.stats.cumulativeGrowth?.profiles?.length?this.stats.cumulativeGrowth.profiles[this.stats.cumulativeGrowth.profiles.length-1].count:0,u=this.stats?.webhooks?.totalWebhooks||0,T=this.stats.keyStatistics?.usagePercentage||0;return[{icon:"pi pi-users",label:"ADMIN.DASHBOARD.KPI_USERS",value:i,color:"#3b82f6",bgColor:"rgba(59, 130, 246, 0.1)"},{icon:"pi pi-link",label:"ADMIN.DASHBOARD.KPI_LINKS",value:e,color:"#22c55e",bgColor:"rgba(34, 197, 94, 0.1)"},{icon:"pi pi-eye",label:"ADMIN.DASHBOARD.KPI_HITS",value:s,color:"#f59e0b",bgColor:"rgba(245, 158, 11, 0.1)"},{icon:"pi pi-id-card",label:"ADMIN.DASHBOARD.KPI_PROFILES",value:b,color:"#8b5cf6",bgColor:"rgba(139, 92, 246, 0.1)"},{icon:"pi pi-bolt",label:"ADMIN.DASHBOARD.KPI_WEBHOOKS",value:u,color:"#ec4899",bgColor:"rgba(236, 72, 153, 0.1)"},{icon:"pi pi-key",label:"ADMIN.DASHBOARD.KPI_KEY_USAGE",value:T,color:"#06b6d4",bgColor:"rgba(6, 182, 212, 0.1)"}]}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-kpi-banner"]],inputs:{stats:"stats",loading:"loading",sseConnected:"sseConnected"},decls:4,vars:2,consts:[[1,"kpi-banner"],["class","kpi-live-badge",4,"ngIf"],[1,"kpi-grid"],["class","kpi-card",3,"--kpi-color","--kpi-bg",4,"ngFor","ngForOf"],[1,"kpi-live-badge"],[1,"live-dot"],[1,"kpi-card"],[1,"kpi-icon"],[1,"kpi-content"],[1,"kpi-value"],[4,"ngIf"],["class","kpi-skeleton",4,"ngIf"],[1,"kpi-label"],[1,"kpi-skeleton"]],template:function(e,s){e&1&&(a(0,"div",0),f(1,Li,4,0,"div",1),a(2,"div",2),f(3,Ri,11,12,"div",3),o()()),e&2&&(n(),r("ngIf",s.sseConnected),n(2),r("ngForOf",s.kpiCards))},dependencies:[x,D,C,z,w,S,y],styles:[".kpi-banner[_ngcontent-%COMP%]{position:relative;margin-bottom:0}.kpi-live-badge[_ngcontent-%COMP%]{position:absolute;top:-4px;right:0;display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;background:#dc3545;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;z-index:1}.live-dot[_ngcontent-%COMP%]{display:inline-block;width:8px;height:8px;border-radius:50%;background:#fff;animation:_ngcontent-%COMP%_live-pulse 1.5s ease-in-out infinite}@keyframes _ngcontent-%COMP%_live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.kpi-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px;background:var(--kpi-bg);border:1px solid rgba(0,0,0,.04);transition:transform .15s ease,box-shadow .15s ease}.kpi-card[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.kpi-icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--kpi-color);color:#fff;flex-shrink:0}.kpi-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem}.kpi-content[_ngcontent-%COMP%]{min-width:0;flex:1}.kpi-value[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#1e293b;line-height:1.2}.kpi-label[_ngcontent-%COMP%]{font-size:.72rem;color:#64748b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-skeleton[_ngcontent-%COMP%]{display:inline-block;width:48px;height:20px;background:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0);background-size:200% 100%;animation:_ngcontent-%COMP%_shimmer 1.5s infinite;border-radius:4px}@keyframes _ngcontent-%COMP%_shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (max-width: 768px){.kpi-card[_ngcontent-%COMP%]{padding:12px}.kpi-value[_ngcontent-%COMP%]{font-size:1.2rem}}"]})};function Fi(t,i){if(t&1&&(a(0,"span",14),d(1,"translate"),p(2,"i",15),a(3,"span"),l(4),o()()),t&2){let e=m(3);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.WEBHOOKS_DISABLED")),n(4),g(e.webhookStats.disabledWebhooks)}}function Ui(t,i){if(t&1&&(a(0,"div",9)(1,"span",10),d(2,"translate"),p(3,"i",7),a(4,"span"),l(5),o()(),a(6,"span",11),d(7,"translate"),p(8,"i",12),a(9,"span"),l(10),o()(),f(11,Fi,5,4,"span",13),o()),t&2){let e=m(2);n(),r("pTooltip",c(2,5,"ADMIN.DASHBOARD.WEBHOOKS_TOTAL")),n(4),g(e.webhookStats.totalWebhooks),n(),r("pTooltip",c(7,7,"ADMIN.DASHBOARD.WEBHOOKS_ACTIVE")),n(4),g(e.webhookStats.activeWebhooks),n(),r("ngIf",e.webhookStats.disabledWebhooks>0)}}function Ki(t,i){if(t&1&&(a(0,"div",4)(1,"div",5)(2,"span",6),p(3,"i",7),l(4),d(5,"translate"),o(),f(6,Ui,
112,9,"div",8),o()()),t&2){let e=m();n(4),h(" ",c(5,2,"ADMIN.DASHBOARD.WEBHOOKS_TITLE")," "),n(2),r("ngIf",e.webhookStats)}}function Wi(t,i){if(t&1&&(a(0,"span",29),l(1),o()),t&2){let e=m(2);n(),g(e.webhookStats.delivery24h.failed)}}function zi(t,i){t&1&&(a(0,"span"),l(1,"0"),o())}function Gi(t,i){if(t&1&&(a(0,"span",29),l(1),o()),t&2){let e=m(2);n(),g(e.webhookStats.delivery7d.failed)}}function ji(t,i){t&1&&(a(0,"span"),l(1,"0"),o())}function $i(t,i){if(t&1&&(a(0,"div",34)(1,"span",35),l(2),o(),a(3,"span",36),l(4),o()()),t&2){let e=i.$implicit;n(2),g(e.errorMessage||"Unknown"),n(2),g(e.count)}}function Yi(t,i){if(t&1&&(a(0,"div",30)(1,"div",31),l(2),d(3,"translate"),o(),a(4,"div",32),f(5,$i,5,2,"div",33),o()()),t&2){let e=m(2);n(2),g(c(3,2,"ADMIN.DASHBOARD.WEBHOOKS_TOP_ERRORS")),n(3),r("ngForOf",e.webhookStats.topErrors)}}function qi(t,i){if(t&1&&(a(0,"div",16)(1,"div",17)(2,"div",18)(3,"div",19),l(4),d(5,"translate"),o(),a(6,"div",20),p(7,"div",21),o(),a(8,"div",22)(9,"span",23),l(10),o(),a(11,"span",24)(12,"span",25),l(13),o(),l(14," / "),f(15,Wi,2,1,"span",26)(16,zi,2,0,"span",27),o()()(),a(17,"div",18)(18,"div",19),l(19),d(20,"translate"),o(),a(21,"div",20),p(22,"div",21),o(),a(23,"div",22)(24,"span",23),l(25),o(),a(26,"span",24)(27,"span",25),l(28),o(),l(29," / "),f(30,Gi,2,1,"span",26)(31,ji,2,0,"span",27),o()()()(),f(32,Yi,6,4,"div",28),o()),t&2){let e=m();n(4),g(c(5,19,"ADMIN.DASHBOARD.WEBHOOKS_24H")),n(2),r("ngClass",e.successRate24hClass),n(),te("width",e.webhookStats.delivery24h.successRate,"%"),n(2),r("ngClass",e.successRate24hClass),n(),h("",e.webhookStats.delivery24h.successRate,"%"),n(3),g(e.webhookStats.delivery24h.delivered),n(2),r("ngIf",e.webhookStats.delivery24h.failed>0),n(),r("ngIf",e.webhookStats.delivery24h.failed===0),n(3),g(c(20,21,"ADMIN.DASHBOARD.WEBHOOKS_7D")),n(2),r("ngClass",e.successRate7dClass),n(),te("width",e.webhookStats.delivery7d.successRate,"%"),n(2),r("ngClass",e.successRate7dClass),n(),h("",e.webhookStats.delivery7d.successRate,"%"),n(3),g(e.webhookStats.delivery7d.delivered),n(2),r("ngIf",e.webhookStats.delivery7d.failed>0),n(),r("ngIf",e.webhookStats.delivery7d.failed===0),n(),r("ngIf",e.webhookStats&&e.webhookStats.topErrors&&e.webhookStats.topErrors.length>0)}}var Ae=class t{webhookStats;loading=!0;get successRate24hClass(){if(!this.webhookStats)return"";let i=this.webhookStats.delivery24h.successRate;return i>=95?"gauge-success":i>=80?"gauge-warning":"gauge-danger"}get successRate7dClass(){if(!this.webhookStats)return"";let i=this.webhookStats.delivery7d.successRate;return i>=95?"gauge-success":i>=80?"gauge-warning":"gauge-danger"}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-webhooks"]],inputs:{webhookStats:"webhookStats",loading:"loading"},decls:5,vars:5,consts:[["pTemplate","header"],[2,"min-height","180px"],[3,"loading","align"],["class","webhook-content",4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-bolt"],["class","stats-badges",4,"ngIf"],[1,"stats-badges"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-success",3,"pTooltip"],[1,"pi","pi-check-circle"],["class","stats-badge stats-badge-neutral","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-neutral",3,"pTooltip"],[1,"pi","pi-power-off"],[1,"webhook-content"],[1,"delivery-section"],[1,"delivery-card"],[1,"delivery-label"],[1,"delivery-gauge",3,"ngClass"],[1,"gauge-bar"],[1,"delivery-stats"],[1,"delivery-rate",3,"ngClass"],[1,"delivery-detail"],[1,"text-success"],["class","text-danger",4,"ngIf"],[4,"ngIf"],["class","errors-section",4,"ngIf"],[1,"text-danger"],[1,"errors-section"],[1,"errors-title"],[1,"errors-list"],["class","error-item",4,"ngFor","ngForOf"],[1,"error-item"],[1,"error-message","text-truncate"],[1,"error-count"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,Ki,7,4,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,qi,33,23,"div",3),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading)("align","center"),n(),r("ngIf",s.webhookStats&&!s.loading))},dependencies:[x,L,D,C,A,M,O,w,I,S,y,H],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-badge.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge.stats-badge-neutral[_ngcontent-%COMP%]{background-color:#64748b;color:#fff}.webhook-content[_ngcontent-%COMP%]{padding:16px}.delivery-section[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.delivery-card[_ngcontent-%COMP%]{padding:12px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.delivery-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:600;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.3px}.delivery-gauge[_ngcontent-%COMP%]{height:8px;border-radius:4px;background:#e2e8f0;overflow:hidden;margin-bottom:8px}.delivery-gauge[_ngcontent-%COMP%]   .gauge-bar[_ngcontent-%COMP%]{height:100%;border-radius:4px;transition:width .6s ease}.delivery-gauge.gauge-success[_ngcontent-%COMP%]   .gauge-bar[_ngcontent-%COMP%]{background:#22c55e}.delivery-gauge.gauge-warning[_ngcontent-%COMP%]   .gauge-bar[_ngcontent-%COMP%]{background:#f59e0b}.delivery-gauge.gauge-danger[_ngcontent-%COMP%]   .gauge-bar[_ngcontent-%COMP%]{background:#ef4444}.delivery-stats[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between}.delivery-rate[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700}.delivery-rate.gauge-success[_ngcontent-%COMP%]{color:#22c55e}.delivery-rate.gauge-warning[_ngcontent-%COMP%]{color:#f59e0b}.delivery-rate.gauge-danger[_ngcontent-%COMP%]{color:#ef4444}.delivery-detail[_ngcontent-%COMP%]{font-size:.78rem;color:#64748b}.errors-section[_ngcontent-%COMP%]{border-top:1px solid #e2e8f0;padding-top:12px}.errors-title[_ngcontent-%COMP%]{font-size:.78rem;font-weight:600;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.3px}.errors-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.error-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:6px;background:#ef44440d;border-left:3px solid #ef4444}.error-message[_ngcontent-%COMP%]{font-size:.78rem;color:#475569;flex:1;min-width:0}.error-count[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;color:#ef4444;flex-shrink:0}@media (max-width: 576px){.delivery-section[_ngcontent-%COMP%]{grid-template-columns:1fr}.stats-header-top[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}"]})};function Xi(t,i){if(t&1&&(a(0,"span",11),d(1,"translate"),p(2,"i",12),a(3,"span"),l(4),o()()),t&2){let e=m(2);r("pTooltip",c(1,2,"ADMIN.DASHBOARD.PEAK_HOURS_PEAK")),n(4),g(e.peakHourLabel)}}function Zi(t,i){if(t&1&&(a(0,"div",5)(1,"div",6)(2,"span",7),p(3,"i",8),l(4),d(5,"translate"),o(),a(6,"div",9),f(7,Xi,5,4,"span",10),o()()()),t&2){let e=m();n(4),h(" ",c(5,2,"ADMIN.DASHBOARD.PEAK_HOURS_TITLE")," "),n(3),r("ngIf",e.peakHourValue>0)}}function Qi(t,i){t&1&&(a(0,"div",13)(1,"div",14),l(2),d(3,"translate"),o()()),t&2&&(n(2),g(c(3,1,"ADMIN.DASHBOARD.NO_DATA")))}function Ji(t,i){if(t&1&&(a(0,"div",15),p(1,"app-widget-chart",16),o()),t&2){let e=m();n(),r("tooltip",!0)("responsive",!0)("data",e.chartData)}}function en(t,i){if(t&1&&(a(0,"span",24),p(1,"i",12),a(2,"span"),l(3),o()()),t&2){let e=m(2);n(3),g(e.peakDayLabel)}}function tn(t,i){if(t&1&&(a(0,"div",17)(1,"div",18)(2,"span",19),p(3,"i",20),l(4),d(5,"translate"),o(),f(6,en,4,1,"span",21),o(),a(7,"div",22),p(8,"app-widget-chart",23),o()()),t&2){let e=m();n(4),h(" ",c(5,5,"ADMIN.DASHBOARD.PEAK_DAYS_TITLE")," "),n(2),r("ngIf",e.peakDayLabel),n(2),r("tooltip",!0)("responsive",!0)("data",e.dayOfWeekChartData)}}var Te=class t{peakHours;hitsByDayOfWeek;loading=!0;chartData=null;peakHourLabel="";peakHourValue=0;dayOfWeekChartData=null;peakDayLabel="";dayLabels=["Lun","Mar","Mer","Jeu","Ven","Sam","Dim"];dayLabelsEn=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
1ngOnChanges(i){i.peakHours&&this.peakHours&&this.buildChart(),i.hitsByDayOfWeek&&this.hitsByDayOfWeek&&this.buildDayOfWeekChart()}buildChart(){if(!this.peakHours?.length)return;let i=Math.max(...this.peakHours),e=this.peakHours.indexOf(i);this.peakHourLabel=`${e}h - ${e+1}h`,this.peakHourValue=i;let s=Array.from({length:24},(b,u)=>`${u}h`);this.chartData={labels:s,datasets:[{label:"Hits",data:this.peakHours,backgroundColor:this.peakHours.map(b=>`rgba(59, 130, 246, ${.15+(i>0?b/i:0)*.85})`),borderWidth:0,borderRadius:3,minBarLength:1}]}}buildDayOfWeekChart(){if(!this.hitsByDayOfWeek?.length)return;let i=Math.max(...this.hitsByDayOfWeek),e=this.hitsByDayOfWeek.indexOf(i);this.peakDayLabel=this.dayLabels[e]||"",this.dayOfWeekChartData={labels:this.dayLabels,datasets:[{label:"Hits",data:this.hitsByDayOfWeek,backgroundColor:this.hitsByDayOfWeek.map(s=>`rgba(16, 185, 129, ${.2+(i>0?s/i:0)*.8})`),borderWidth:0,borderRadius:4,minBarLength:1}]}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-peak-hours"]],inputs:{peakHours:"peakHours",hitsByDayOfWeek:"hitsByDayOfWeek",loading:"loading"},features:[Y],decls:6,vars:3,consts:[["pTemplate","header"],[1,"stats-panel-body"],["class","p-2",4,"ngIf"],["class","p-2 pb-0",4,"ngIf"],["class","day-of-week-section",4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-clock"],[1,"stats-badges"],["class","stats-badge stats-badge-primary","tooltipPosition","bottom",3,"pTooltip",4,"ngIf"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],[1,"pi","pi-bolt"],[1,"p-2"],[1,"alert","alert-warning","p-2","fs-6","text-center","user-select-none","mb-0"],[1,"p-2","pb-0"],["type","bar","height","150",3,"tooltip","responsive","data"],[1,"day-of-week-section"],[1,"day-of-week-header"],[1,"day-of-week-title"],[1,"pi","pi-calendar"],["class","stats-badge stats-badge-success",4,"ngIf"],[1,"p-2","pt-0"],["type","bar","height","100",3,"tooltip","responsive","data"],[1,"stats-badge","stats-badge-success"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,Zi,8,4,"ng-template",0),a(2,"div",1),f(3,Qi,4,3,"div",2)(4,Ji,2,3,"div",3)(5,tn,9,7,"div",4),o()()),e&2&&(n(3),r("ngIf",!s.chartData&&!s.dayOfWeekChartData&&!s.loading),n(),r("ngIf",s.chartData),n(),r("ngIf",s.dayOfWeekChartData))},dependencies:[x,C,A,M,O,w,I,S,y,G],styles:[".stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#3b82f6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-panel-body[_ngcontent-%COMP%]{min-height:auto}.day-of-week-section[_ngcontent-%COMP%]{border-top:1px solid #e2e8f0;margin:0 8px;padding-top:8px}.day-of-week-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:0 8px 4px}.day-of-week-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.85rem;color:#475569}.day-of-week-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.9rem;color:#10b981}.stats-badge-success[_ngcontent-%COMP%]{background-color:#10b981;color:#fff}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}"]})};var nn=(t,i)=>({"border-bottom":t,"border-top":i});function an(t,i){if(t&1&&(a(0,"div",17)(1,"span",18),d(2,"translate"),p(3,"i",19),a(4,"span"),l(5),o()(),a(6,"span",20),d(7,"translate"),p(8,"i",21),a(9,"span"),l(10),o()(),a(11,"span",22),d(12,"translate"),p(13,"i",23),a(14,"span"),l(15),o()()()),t&2){let e=m(2);n(),r("pTooltip",c(2,6,"ADMIN.DASHBOARD.SHOP_ORDERS_TOOLTIP")),n(4),g(e.stats.totalOrders),n(),r("pTooltip",c(7,8,"ADMIN.DASHBOARD.SHOP_REVENUE_TOOLTIP")),n(4),h("",e.formatCents(e.stats.totalRevenueCents)," EUR"),n(),r("pTooltip",c(12,10,"ADMIN.DASHBOARD.SHOP_COMMISSION_TOOLTIP")),n(4),h("",e.formatCents(e.stats.totalCommissionCents)," EUR")}}function on(t,i){if(t&1){let e=W();a(0,"button",24),U("click",function(){let b=N(e).$implicit,u=m(2);return u.selectedPeriod=b.value,R(u.onPeriodChange())}),l(1),o()}if(t&2){let e=i.$implicit,s=m(2);F("active",s.selectedPeriod===e.value),n(),h(" ",e.label," ")}}function sn(t,i){if(t&1&&(a(0,"div",8)(1,"div",9)(2,"span",10),p(3,"i",11),l(4),d(5,"translate"),o(),f(6,an,16,12,"div",12),o(),a(7,"div",13)(8,"div",14)(9,"div",15),f(10,on,2,3,"button",16),o()()()()),t&2){let e=m();n(4),h(" ",c(5,3,"ADMIN.DASHBOARD.SHOP_TITLE")," "),n(2),r("ngIf",e.stats),n(4),r("ngForOf",e.periodOptions)}}function rn(t,i){if(t&1&&(a(0,"div",25)(1,"div",26)(2,"div",27),p(3,"i",19),o(),a(4,"div",28)(5,"div",29),l(6),o(),a(7,"div",30),l(8),d(9,"translate"),o()()(),a(10,"div",31)(11,"div",27),p(12,"i",21),o(),a(13,"div",28)(14,"div",29),l(15),a(16,"small"),l(17,"EUR"),o()(),a(18,"div",30),l(19),d(20,"translate"),o()()(),a(21,"div",32)(22,"div",27),p(23,"i",23),o(),a(24,"div",28)(25,"div",29),l(26),a(27,"small"),l(28,"EUR"),o()(),a(29,"div",30),l(30),d(31,"translate"),o()()()()),t&2){let e=m();n(6),g(e.stats.totalOrders),n(2),g(c(9,6,"ADMIN.DASHBOARD.SHOP_TOTAL_ORDERS")),n(7),h("",e.formatCents(e.stats.totalRevenueCents)," "),n(4),g(c(20,8,"ADMIN.DASHBOARD.SHOP_REVENUE")),n(7),h("",e.formatCents(e.stats.totalCommissionCents)," "),n(4),g(c(31,10,"ADMIN.DASHBOARD.SHOP_COMMISSION"))}}function ln(t,i){if(t&1&&(a(0,"span",36),p(1,"span",37),l(2),a(3,"strong"),l(4),o()()),t&2){let e=i.$implicit,s=m(2);te("border-color",s.getStatusColor(e.status)),n(),te("background",s.getStatusColor(e.status)),n(),h(" ",e.status," "),n(2),g(e.count)}}function pn(t,i){if(t&1&&(a(0,"div",33)(1,"div",34),f(2,ln,5,6,"span",35),o()()),t&2){let e=m();n(2),r("ngForOf",e.stats.statusBreakdown)}}function dn(t,i){t&1&&(a(0,"div",38)(1,"div",39),l(2),d(3,"translate"),o()()),t&2&&(n(2),h(" ",c(3,1,"ADMIN.DASHBOARD.SHOP_NO_DATA")," "))}function cn(t,i){if(t&1&&(a(0,"div",40),p(1,"app-widget-chart",41),o()),t&2){let e=m();n(),r("tooltip",!0)("responsive",!0)("data",e.chartData)}}function mn(t,i){if(t&1&&(a(0,"div",46)(1,"div",47),p(2,"i",48),o(),a(3,"div",49)(4,"div",50),l(5),o(),a(6,"div",51)(7,"span",52),l(8),o(),a(9,"span",53),l(10),o()()(),a(11,"div",54)(12,"span",55),l(13),o()(),a(14,"div",56)(15,"span",57),l(16),o()()()),t&2){let e=i.$implicit,s=i.last,b=i.first,u=m(2);r("ngClass",fe(11,nn,!s,b)),n(2),te("color",u.getStatusColor(e.status)),n(3),h(" ",u.formatDate(e.createdAt)," "),n(3),g(e.buyerName||e.buyerEmail),n(2),J("",e.itemsCount," article",e.itemsCount>1?"s":"",""),n(2),te("color",u.getStatusColor(e.status)),n(),g(e.status),n(3),h("",u.formatCents(e.totalCents)," \u20AC")}}function gn(t,i){if(t&1&&(ie(0),a(1,"div",42)(2,"small",43),l(3),d(4,"translate"),o()(),a(5,"div",44),f(6,mn,17,14,"div",45),o(),ne()),t&2){let e=m();n(3),g(c(4,2,"ADMIN.DASHBOARD.SHOP_RECENT_ORDERS")),n(3),r("ngForOf",e.recentOrders)}}var Ee=class t{shopAdminService=K(qe);loading=!0;loadingChart=!1;stats=null;recentOrders=[];chartData=null;periodOptions=[{label:"15j",value:"15d"},{label:"30j",value:"30d"},{label:"90j",value:"90d"},{label:"Ce mois",value:"this_month"},{label:"Cette annee",value:"this_year"},{label:"Total",value:"all"}];selectedPeriod="30d";ngOnInit(){this.loadStats()}onPeriodChange(){return _(this,null,function*(){this.loadingChart=!0,yield this.loadStats(),this.loadingChart=!1})}loadStats(){return _(this,null,function*(){try{let i=this.mapPeriod(this.selectedPeriod),[e,s]=yield Promise.all([this.shopAdminService.getOrderStats(i),this.shopAdminService.getOrders(1,20,void 0,void 0,i)]);this.stats=e,this.recentOrders=s.items,this.buildChart()}catch(i){console.error("[Dashboard Shop Stats] loadStats error:",i)}finally{this.loading=!1}})}mapPeriod(i){return i}formatCents(i){return(i/100).toFixed(2)}getStatusColor(i){switch(i){case"paid":return"#22c55e";case"shipped":return"#3b82f6";case"delivered":return"#8b5cf6";
1case"pending":return"#f59e0b";case"processing":return"#06b6d4";case"cancelled":return"#ef4444";case"refunded":return"#64748b";default:return"#94a3b8"}}formatDate(i){return i?new Date(i).toLocaleDateString("fr-FR",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}):"-"}buildChart(){if(!this.stats?.dailyChart?.length){this.chartData=null;return}let i=this.stats.dailyChart,e=i.map(s=>new Date(s.date).toLocaleDateString("fr-FR",{day:"2-digit",month:"short"}));this.chartData={labels:e,datasets:[{type:"bar",label:"Commandes",backgroundColor:"#3b82f6",data:i.map(s=>s.orders),minBarLength:1}]}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard-stats-shop"]],decls:9,vars:9,consts:[["pTemplate","header"],[2,"min-height","380px","overflow-x","hidden","overflow-y","auto"],[3,"loading","align"],["class","kpi-grid px-3 pt-3",4,"ngIf"],["class","px-3 mt-3",4,"ngIf"],["class","p-2",4,"ngIf"],["class","d-flex px-3 align-items-end w-100 mt-3",4,"ngIf"],[4,"ngIf"],[1,"stats-header","w-100"],[1,"stats-header-top"],[1,"stats-title"],[1,"pi","pi-shopping-cart"],["class","stats-badges",4,"ngIf"],[1,"stats-header-controls"],[1,"stats-controls-left"],[1,"stats-period-selector"],["type","button","class","stats-period-btn",3,"active","click",4,"ngFor","ngForOf"],[1,"stats-badges"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-primary",3,"pTooltip"],[1,"pi","pi-box"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-success",3,"pTooltip"],[1,"pi","pi-dollar"],["tooltipPosition","bottom",1,"stats-badge","stats-badge-info",3,"pTooltip"],[1,"pi","pi-percentage"],["type","button",1,"stats-period-btn",3,"click"],[1,"kpi-grid","px-3","pt-3"],[1,"kpi-card",2,"--kpi-color","#8b5cf6","--kpi-bg","rgba(139, 92, 246, 0.1)"],[1,"kpi-icon"],[1,"kpi-content"],[1,"kpi-value"],[1,"kpi-label"],[1,"kpi-card",2,"--kpi-color","#3b82f6","--kpi-bg","rgba(59, 130, 246, 0.1)"],[1,"kpi-card",2,"--kpi-color","#22c55e","--kpi-bg","rgba(34, 197, 94, 0.1)"],[1,"px-3","mt-3"],[1,"status-chips"],["class","status-chip",3,"border-color",4,"ngFor","ngForOf"],[1,"status-chip"],[1,"status-dot"],[1,"p-2"],[1,"alert","alert-warning","p-2","fs-6","text-center","user-select-none"],[1,"d-flex","px-3","align-items-end","w-100","mt-3"],["type","bar","height","260",1,"w-100",3,"tooltip","responsive","data"],[1,"mt-2","px-1"],[1,"text-muted","fw-bold"],[1,"events-recent-list"],["class","d-flex flex-nowrap row border-1 p-2",3,"ngClass",4,"ngFor","ngForOf"],[1,"d-flex","flex-nowrap","row","border-1","p-2",3,"ngClass"],[1,"col-1","d-flex","align-items-center","justify-content-center"],[1,"pi","pi-shopping-bag",2,"font-size","1rem"],[1,"col-7","position-relative"],[1,"text-light","fs-8"],[1,"text-dark","fs-6","text-truncate","d-block","nowrap","w-100"],[1,"fw-semibold"],[1,"ms-2","text-muted"],[1,"col-2","d-flex","align-items-center","justify-content-center"],[1,"order-status"],[1,"col-2","d-flex","align-items-center","justify-content-end"],[1,"order-total","fw-bold"]],template:function(e,s){e&1&&(a(0,"p-panel"),f(1,sn,11,5,"ng-template",0),a(2,"div",1),p(3,"app-widget-loading",2),f(4,rn,32,12,"div",3)(5,pn,3,1,"div",4)(6,dn,4,3,"div",5)(7,cn,2,3,"div",6)(8,gn,7,4,"ng-container",7),o()()),e&2&&(n(3),B("dark"),r("loading",s.loading||s.loadingChart)("align","center"),n(),r("ngIf",s.stats&&!s.loading),n(),r("ngIf",s.stats&&!s.loading&&s.stats.statusBreakdown.length),n(),r("ngIf",!s.loading&&!s.loadingChart&&!s.chartData&&(s.stats==null?null:s.stats.totalOrders)===0),n(),r("ngIf",s.chartData&&!s.loadingChart),n(),r("ngIf",s.recentOrders.length&&!s.loading))},dependencies:[x,L,D,C,ce,A,M,O,w,I,S,y,H,G],styles:["[_nghost-%COMP%]{display:block}.stats-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.stats-header-top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.stats-title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:1rem;color:#1e293b}.stats-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem;color:#8b5cf6}.stats-badges[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stats-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600;white-space:nowrap}.stats-badge[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.85rem}.stats-badge.stats-badge-success[_ngcontent-%COMP%]{background-color:#22c55e;color:#fff}.stats-badge.stats-badge-info[_ngcontent-%COMP%]{background-color:#3b82f6;color:#fff}.stats-badge.stats-badge-primary[_ngcontent-%COMP%]{background-color:#8b5cf6;color:#fff}.stats-badge.stats-badge-danger[_ngcontent-%COMP%]{background-color:#ef4444;color:#fff}
1.stats-header-controls[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stats-controls-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats-period-selector[_ngcontent-%COMP%]{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#fff}.stats-period-btn[_ngcontent-%COMP%]{padding:6px 14px;border:none;background:transparent;color:#666;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stats-period-btn[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid #dee2e6}.stats-period-btn[_ngcontent-%COMP%]:hover:not(.active){background:#f8f9fa;color:#333}.stats-period-btn.active[_ngcontent-%COMP%]{background:#f1f5f9;color:#8b5cf6;font-weight:600}.kpi-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px;background:var(--kpi-bg);border:1px solid rgba(0,0,0,.04);transition:transform .15s ease,box-shadow .15s ease}.kpi-card[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.kpi-icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--kpi-color);color:#fff;flex-shrink:0}.kpi-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.1rem}.kpi-content[_ngcontent-%COMP%]{min-width:0;flex:1}.kpi-value[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#1e293b;line-height:1.2}.kpi-value[_ngcontent-%COMP%]   small[_ngcontent-%COMP%]{font-size:.7rem;font-weight:500;color:var(--text-color-secondary, #94a3b8)}.kpi-label[_ngcontent-%COMP%]{font-size:.72rem;color:#64748b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.status-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:.8rem;border:1px solid;background:#fff}.status-chip[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{font-weight:700}.status-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;display:inline-block}.order-status[_ngcontent-%COMP%]{font-size:.72rem;font-weight:600;text-transform:capitalize}.order-total[_ngcontent-%COMP%]{font-size:.85rem;color:#1e293b}@media (max-width: 576px){.stats-header-top[_ngcontent-%COMP%], .stats-header-controls[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}.kpi-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}"]})};var fn=()=>({"opacity-50":!1}),Xe=class t{adminStatsService=K(X);ngZone=K(Re);sseHandle=null;stats=be(null);loading=be(!0);error=be(null);sseConnected=be(!1);ngOnInit(){this.connectSSE()}ngOnDestroy(){this.sseHandle&&(this.sseHandle.close(),this.sseHandle=null)}connectSSE(){this.sseHandle&&this.sseHandle.close(),this.sseHandle=this.adminStatsService.getStatsStream({onMessage:i=>{this.ngZone.run(()=>{this.stats.set(i),this.loading.set(!1),this.error.set(null),this.sseConnected.set(!0)})},onConnected:()=>{this.ngZone.run(()=>{this.error.set(null),this.sseConnected.set(!0)})},onDisconnected:()=>{this.ngZone.run(()=>{this.sseConnected.set(!1)})},onError:i=>{this.ngZone.run(()=>{console.warn("SSE error:",i),this.sseConnected.set(!1)})}}),this.sseHandle||this.loadStatsOnce()}loadStatsOnce(){return _(this,null,function*(){try{let[i,e,s,b,u,T,$,k,E,le,me]=yield Promise.all([this.adminStatsService.getStatsUsers(),this.adminStatsService.getStatsHits(),this.adminStatsService.getStatsLinks(),this.adminStatsService.getTopLinks(),this.adminStatsService.getCountHitsLast90Days(),this.adminStatsService.getKeyStatistics(),this.adminStatsService.getLinkTypeDistribution(),this.adminStatsService.getCumulativeGrowth("30d"),this.adminStatsService.getPeakHours(),this.adminStatsService.getHitsByDayOfWeek(),this.adminStatsService.getUserStatusCounts()]);this.stats.set({users:i,hits:e,links:s,topLinks:b,countHitsLast90Days:u,keyStatistics:T,linkTypes:$,cumulativeGrowth:k,peakHours:E,hitsByDayOfWeek:le,userStatusCounts:me}),this.loading.set(!1),this.error.set(null)}catch(i){console.error("Erreur chargement stats:",i),this.error.set(i.error?.message||"Erreur lors du chargement des statistics"),this.loading.set(!1)}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=v({type:t,selectors:[["app-view-admin-dashboard"]],decls:40,vars:27,consts:[[1,"container-fluid","admin","border","rounded","container-items","bg-white","p-3","mb-3",3,"ngClass"],[1,"row","mb-3"],[1,"col-12","d-flex","justify-content-end"],["href","/admin/stats-wall","target","_blank","rel","noopener","title","Ouvrir le mur d'audience sur un grand \xE9cran (comptes r\xE9els uniquement)",1,"btn","btn-primary","d-inline-flex","align-items-center","gap-2"],[1,"pi","pi-desktop"],[1,"pi","pi-external-link",2,"font-size","11px"],[1,"col-12"],[3,"stats","loading","sseConnected"],[3,"cumulativeGrowth","loading"],[3,"keyStats","loading"],[1,"row","equal-height-row"],[1,"col-12","col-md-6","mb-3","pe-md-2"],[3,"usersStats","cumulativeGrowth","userStatusCounts","loading"],[1,"col-12","col-md-6","mb-3","ps-md-2"],[3,"hitsStats","countHitsLast90Days","loading"],[3,"linksStats","loading"],[3,"topLinksStats","loading"],[1,"row","mb-3","equal-height-row"],[1,"col-12","col-lg-7","mb-3","mb-lg-0"],[3,"linkTypes","loading"],[1,"col-12","col-lg-5"],[3,"webhookStats","loading"],[3,"peakHours","hitsByDayOfWeek","loading"],[1,"row"]],template:function(e,s){if(e&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"a",3),p(4,"i",4),l(5," \xC9cran d\xE9port\xE9 audience "),p(6,"i",5),o()()(),a(7,"div",1)(8,"div",6),p(9,"app-view-admin-dashboard-kpi-banner",7),o()(),a(10,"div",1)(11,"div",6),p(12,"app-view-admin-dashboard-stats-growth",8),o()(),a(13,"div",1)(14,"div",6),p(15,"app-view-admin-dashboard-stats-keys",9),o()(),a(16,"div",10)(17,"div",11),p(18,"app-view-admin-dashboard-stats-users",12),o(),a(19,"div",13),p(20,"app-view-admin-dashboard-stats-hits",14),o()(),a(21,"div",10)(22,"div",11),p(23,"app-view-admin-dashboard-stats-links",15),o(),a(24,"div",13),p(25,"app-view-admin-dashboard-stats-top-links",16),o()(),a(26,"div",17)(27,"div",18),p(28,"app-view-admin-dashboard-stats-link-types",19),o(),a(29,"div",20),p(30,"app-view-admin-dashboard-stats-webhooks",21),o()(),a(31,"div",1)(32,"div",6),p(33,"app-view-admin-dashboard-stats-peak-hours",22),o()(),a(34,"div",1)(35,"div",6),p(36,"app-view-admin-dashboard-stats-shop"),o()(),a(37,"div",23)(38,"div",6),p(39,"app-view-admin-dashboard-stats-profiles"),o()()()),e&2){let b,u,T,$,k,E,le,me,ue,_e,Be,Le,He;r("ngClass",he(26,fn)),n(9),r("stats",s.stats())("loading",s.loading())("sseConnected",s.sseConnected()),n(3),r("cumulativeGrowth",(b=s.stats())==null?null:b.cumulativeGrowth)("loading",s.loading()),n(3),r("keyStats",(u=(u=s.stats())==null?null:u.keyStatistics)!==null&&u!==void 0?u:null)("loading",s.loading()),n(3),r("usersStats",(T=s.stats())==null?null:T.users)("cumulativeGrowth",($=s.stats())==null?null:$.cumulativeGrowth)("userStatusCounts",(k=s.stats())==null?null:k.userStatusCounts)("loading",s.loading()),n(2),r("hitsStats",(E=s.stats())==null?null:E.hits)("countHitsLast90Days",(le=s.stats())==null?null:le.countHitsLast90Days)("loading",s.loading()),n(3),r("linksStats",(me=s.stats())==null?null:me.links)("loading",s.loading()),n(2),r("topLinksStats",(ue=s.stats())==null?null:ue.topLinks)("loading",s.loading()),n(3),r("linkTypes",(_e=s.stats())==null?null:_e.linkTypes)("loading",s.loading()),n(2),r("webhookStats",(Be=s.stats())==null?null:Be.webhooks)("loading",s.loading()),n(3),r("peakHours",(Le=s.stats())==null?null:Le.peakHours)("hitsByDayOfWeek",(He=s.stats())==null?null:He.hitsByDayOfWeek)("loading",s.loading())}},dependencies:[x,L,ye,Se,we,ke,Pe,De,Oe,Ie,Me,Ae,Te,Ee],styles:["[_nghost-%COMP%]{display:block;width:100%;padding-top:.5rem}.equal-height-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.equal-height-row[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{display:flex;flex-direction:column}.equal-height-row[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child{flex:1;display:flex;flex-direction:column}  .admin p-panel{display:flex;flex-direction:column;flex:1}  .admin p-panel .p-panel{display:flex;flex-direction:column;flex:1}  .admin p-panel .p-panel-header{padding:10px!important}  .admin p-panel .p-panel-content{padding:0!important;flex:1}"]})};export{Xe as ViewAdminDashboardComponent};

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.