1import {x}from'./chunk-DKa_lTad.js';import {q as qi}from'./chunk-CVw3kVav.js';import'./chunk-B3u5vfS_.js';import'./chunk-UaF3bGu1.js';import {d as di}from'./chunk-DJhf42fO.js';import'./chunk-XqdxMd3C.js';import'./chunk-MS7fByFm.js';import'./chunk-CDPt3Otv.js';import {e}from'./chunk-sYCDWZwQ.js';import'./chunk-CHOPy0Xy.js';import'./chunk-CUDPYCdX.js';import'./chunk-CrUA5_OB.js';import'./chunk-AtRZkn00.js';import {h}from'./chunk-CuIv_2Yo.js';import'./chunk-BuBQ1bUO.js';import'./chunk-DuMamgHU.js';import'./chunk-B3ISy_w0.js';import {d as d$1,H,O,bP as V,aE as lt,bO as Gt,cs as Og,cA as zM,K as Kb,P as Pg,bs as Fg,bt as Is,bu as Tg,bv as Ag,V as Vg,bw as Gt$1,bx as $c,T as Tt,cr as pe,i as ea,k as Kv,l as b0,b1 as ei,L as L0,Y as Yx,cw as Ux,cx as ql,cy as Dp,m as dn,b2 as da,by as vr,bR as Ch,n as Vw,bA as Pw,o as nk,d7 as Bp,d8 as Zl,t as td,b3 as ed,p as tC,q as bC,s as sv,N as NC,X as XC,_ as _D,r as il,u as XD,cj as $D,ck as Bu,gK as QD,cl as Nu,cm as KD,v as rM,F as Fb,w as t1,y as A1,z as gS,B as Vs,C as zs,I as Fi,J as NS,Z as ZS,M as EI,Q as us,R as ms,S as HI,U as ZI,$ as Dn,a0 as kE,a1 as Jv,a2 as go,a3 as qd,av as on,a4 as YE,a5 as OT,a6 as lA,a7 as mt,a8 as cy,aa as Xs,ab as my,ac as V_,ae as fS,ad as hd,bB as lb,af as KT,aV as QT,bi as v_,ai as ay,bC as tS,ag as _C,ak as Dd,al as hS,bE as fb,am as XT,aj as ky,b5 as sy,dC as eS,aZ as Ey,a_ as g_,a$ as m_,aT as l_}from'./main-CTPND76J.js';import'./chunk-CSMDl5mW.js';import'./chunk-uLrwdER6.js';import'./chunk-yNGvWcTC.js';import'./chunk-BbHm1W5v.js';import'./chunk-DQrATr21.js';import'./chunk-C5d18HOX.js';import {l}from'./chunk-C0FlMv5v.js';import'./chunk-DGo7Z0iu.js';import {a}from'./chunk-DD2sjzT3.js';import'./chunk-C79GQXs3.js';import'./chunk-BGYiJIld.js';import'./chunk-DmMVvtGW.js';import {o}from'./chunk-B0wrQYKy.js';import'./chunk--hUsjbHa.js';import'./chunk-D3crpTkA.js';import {f}from'./chunk-CjNSgPDz.js';import {h as he$1}from'./chunk-C2EVnWPI.js';import'./chunk-CC_dzDIF.js';import {c as ce}from'./chunk-Cha4_V9g.js';import'./chunk-yuXVPJRt.js';import'./chunk-CLFEoJNz.js';import'./chunk-CAH8VGMK.js';import'./chunk-DEs7_uwk.js';import'./chunk-BfgFC6r8.js';import'./chunk-C-PyjSCj.js';var be=()=>["Filter by payment status to find unpaid subscriptions.","Filter by subscription status to find what is cancelled, expired or failed payment.","Export to Excel for finance reporting."];function ve(d,y){if(d&1&&(Xs(0,"mat-option",16),V_(1),hd()),d&2){let e=y.$implicit,i=l_();ay("value",e.id),_C(),ky(i.getPlanText(e));}}function Se(d,y){if(d&1&&(Xs(0,"mat-option",16),V_(1),hd()),d&2){let e=y.$implicit;ay("value",e.value),_C(),ky(e.label);}}function he(d,y){if(d&1&&(Xs(0,"mat-option",16),V_(1),hd()),d&2){let e=y.$implicit;ay("value",e.value),_C(),ky(e.label);}}var _i=(()=>{class d{constructor(e,i,n,m,S,g,M,ue,fe){this.subscriptionService=e,this.translate=i,this.route=n,this.toastr=m,this.errorService=S,this.planService=g,this.fb=M,this.datePipe=ue,this.subscriptionListRefresh=fe,this.subscriptions=[],this.expanSearch=false,this.statusList=[],this.typeList=[],this.plansList=[];}ngOnInit(){this.buildForm(),this.statusList=this.mapEnumToOptions(d$1),this.typeList=this.mapEnumToOptions(e),this.applyDeepLink(),this.loadPlans(),this.paginator.pageIndex=0,this.paginator.pageSize=10,this.loadSubscriptions(),this.checkUpgradeQuery(),this.refreshSub
1=this.subscriptionListRefresh.onRefresh.subscribe(()=>this.loadSubscriptions());}ngOnDestroy(){this.refreshSub?.unsubscribe();}buildForm(){this.form=this.fb.group({clientName:[null],planId:[null],partnerType:[null],subscriptionStatus:[null],subscriptionType:[null],startDateFrom:[null],startDateTo:[null],endDateFrom:[null],endDateTo:[null],isActive:[null],isPaid:[null]});}applyDeepLink(){let e=this.route.snapshot.queryParamMap,i={};for(let S of ["startDateFrom","startDateTo","endDateFrom","endDateTo"]){let g=e.get(S);if(!g)continue;let M=new Date(g);isNaN(M.getTime())||(i[S]=M);}let n=Number(e.get("subscriptionStatus"));e.get("subscriptionStatus")!==null&&Number.isInteger(n)&&(i.subscriptionStatus=n);let m=e.get("isActive");(m==="true"||m==="false")&&(i.isActive=m==="true"),Object.keys(i).length&&(this.form.patchValue(i),this.expanSearch=true);}mapEnumToOptions(e){return Object.keys(e).filter(i=>!isNaN(Number(e[i]))).map(i=>({value:e[i],label:this.translate.instant(i)}))}loadPlans(){this.planService.searchPlans(null,null,null).subscribe({next:e=>{e?.succeeded&&(this.plansList=e.data?.sort((i,n)=>(i.partnerId||0)-(n.partnerId||0))||[]);},error:e=>{console.error("Error loading plans",e);}});}checkUpgradeQuery(){this.route.queryParams.subscribe(e=>{e.upgrade&&this.toastr.success("Upgrade request received successfully");});}getPaymentStatusLabel(e){return e==null?"-":this.translate.instant(l[e])}search(){this.paginator.pageIndex=0,this.loadSubscriptions();}addSubscriptionAdmin(e){this.subscriptionService.addSubscriptionAdmin(e).subscribe({next:()=>{this.toastr.success("Added Successfully"),this.loadSubscriptions();},error:i=>{this.errorService.setError(i,"Failed to Add");}});}loadSubscriptions(){let e=this.form.value,i={clientName:e.clientName,planId:e.planId,partnerId:e.partnerType,subscriptionStatus:e.subscriptionStatus,subscriptionType:e.subscriptionType,startDateFrom:this.parseDate(e.startDateFrom),startDateTo:this.parseDate(e.startDateTo,true),endDateFrom:this.parseDate(e.endDateFrom),endDateTo:this.parseDate(e.endDateTo,true),isActive:e.isActive,isPaid:e.isPaid,pageNumber:this.paginator.pageIndex,pageSize:this.paginator.pageSize};this.subscriptionService.searchSubscriptions(i).subscribe({next:n=>{n?.succeeded&&(this.subscriptions=n.data||[],this.paginator.length=n.count);},error:n=>{this.errorService.setError(n,"Error while getting the data");}});}parseDate(e,i=false){if(e){let n=String(e.getDate()).padStart(2,"0"),m=String(e.getMonth()+1).padStart(2,"0"),S=e.getFullYear();return `${m}/${n}/${S}`+(i?" 23:59:59":"")}return null}getPlanText(e){return e.nameAr+" - "+e.nameEn+" ("+this.translate.instant(o[e.partnerId])+")"}clearFilters(){this.form.reset(),this.paginator.pageIndex=0,this.loadSubscriptions();}exportToExcel(){if(!this.subscriptions||this.subscriptions.length===0){this.toastr.warning("No data to export");return}let e=this.subscriptions.map(i=>{let n=i.subscriptionStartDate instanceof Date?i.subscriptionStartDate:i.subscriptionStartDate?new Date(i.subscriptionStartDate):null,m=i.subscriptionEndDate instanceof Date?i.subscriptionEndDate:i.subscriptionEndDate?new Date(i.subscriptionEndDate):null;return {isActive:i.isActive?"Yes":"No",businessName:i.businessName??"",planName:i.planName??"",subscriptionStatus:this.translate.instant(d$1[i.subscriptionStatus]??""),finalPrice:i.finalPrice,addonPrice:i.addonPrice??0,startDate:n?this.datePipe.transform(n,"yyyy-MM-dd")??"":"",endDate:m?this.datePipe.transform(m,"yyyy-MM-dd")??"":""}});x(e,"Subscriptions",`subscriptions_${new Date().toISOString().split("T")[0]}.xlsx`).then(()=>this.toastr.success("Excel file exported successfully")).catch(()=>this.toastr.error("Error exporting to Excel"));}static{this.\u0275fac=function(i){return new(i||d)(H(a),H(O),H(V),H(lt),H(Gt),H(h),H(Og),H(zM),H(di))};}static{this.\u0275cmp=Kb({type:d,selectors:[["app-subscriptions-list-admin"]],viewQuery:function(i,n){if(i&1&&Ey(he$1,7),i&2){let m;g_(m=m_())&&(n.paginator=m.first);}},features:[eS([zM])],decls:152,vars:101,consts:[["startFromPicker",""],["startToPicker",""],["endFromPicker",""],["endToPicker",""],["helpKey","admin-subscriptions","intro","Every subscription on the platform, with the search options to find the ones that need attention.",3,"steps"],["hideToggle","",1,"cardWithShadow",3,"opened","closed","expanded"],[1,"f-w-600","f-s-16"],[1,"p-24",3,"formGroup"],[1,"row"],[1,"col-lg-6","col-sm-6"],[1,"col-sm-4","d-flex","align-items-center","justify-content-end"],[1,"mat-subtitle-2","f-w-600","d-block","m-b-24"],[1,"col-sm-8"],[1,"w-100"],["matInput","","formControlName","clientName"],["formControlName","planId"],[3,"value"],["formControlName","partnerType","aria-label","Select an option",1,"m-t-8"],["color","primary",3,"value"],["formControlName","subscriptionStatus"],["formControlName","subscriptionType"],[1,"d-flex","gap-2"],[1,"w-50"],["matInput","","formControlName","startDateFrom",3,"matDatepicker"],["matSuffix","",3,"for"],["matInput","","formControlName","startDateTo",3,"matDatepicker"],["matInput","","formControlName","endDateFrom",3,"matDatepicker"],["matInput","","formControlName","endDateTo",3,"matDatepicker"],["formControlName","isPaid","aria-label","Select an option",1,"m-t-8"],["formControlName","isActive","aria-label","Select an option",1,"m-t-8"],["type","button","mat-flat-button","","color","primary",3,"click"],["type","button","mat-stroked-button","","color","warn",3,"click"],[1,"d-flex","justify-content-between","align-items-center","m-b-16","m-t-16"],[1,"m-0"],["mat-icon-button","",3,"click","disabled","matTooltip"],[3,"subscriptions","isAdmin","showBusinessName"],[3,"page"]],template:function(i,n){if(i&1&&(cy(0,"app-page-help",4),Xs(1,"mat-accordion")(2,"mat-expansion-panel",5),my("opened",function(){return n.expanSearch=true})("closed",function(){return n.expanSearch=false}),Xs(3,"mat-expansion-panel-header")(4,"mat-panel-title",6),V_(5),fS(6,"translate"),hd()(),Xs(7,"form",7)(8,"div",8)(9,"div",9)(10,"div",8)(11,"div",10)(12,"mat-label",11),V_(13),fS(14,"translate"),hd()(),Xs(15,"div",12)(16,"mat-form-field",13),cy(17,"input",14),lb(),hd()()(),Xs(18,"div",8)(19,"div",10)(20,"mat-label",11),V_(21),fS(22,"translate"),hd()(),Xs(23,"div",12)(24,"mat-form-field",13)(25,"mat-select",15),KT(26,ve,2,2,"mat-option",16,QT),hd(),lb(),hd()()(),Xs(28,"div",8)(29,"div",10)(30,"mat-label",11),V_(31),fS(32,"translate"),hd()(),Xs(33,"div",12)(34,"mat-radio-group",17)(35,"mat-radio-button",18),V_(36),fS(37,"translate"),hd(),Xs(38,"mat-radio-button",18),V_(39),fS(40,"translate"),hd(),Xs(41,"mat-radio-button",18),V_(42),fS(43,"translate"),hd(),Xs(44,"mat-radio-button",18),V_(45),fS(46,"translate"),hd()(),lb(),hd()(),Xs(47,"div",8)(48,"div",10)(49,"mat-label",11),V_(50),fS(51,"translate"),hd()(),Xs(52,"div",12)(53,"mat-form-field",13)(54,"mat-select",19),KT(55,Se,2,2,"mat-option",16,QT),hd(),lb(),hd()()(),Xs(57,"div",8)(58,"div",10)(59,"mat-label",11),V_(60),fS(61,"translate"),hd()(),Xs(62,"div",12)(63,"mat-form-field",13)(64,"mat-select",20),KT(65,he,2,2,"mat-option",16,QT),hd(),lb(),hd()()()(),Xs(67,"div",9)(68,"div",8)(69,"div",10)(70,"mat-label",11),V_(71),fS(72,"translate"),hd()(),Xs(73,"div",12)(74,"div",21)(75,"mat-form-field",22),cy(76,"input",23),lb(),cy(77,"mat-datepicker-toggle",24)(78,"mat-datepicker",null,0),hd(),Xs(80,"mat-form-field",22),cy(81,"input",25),lb(),cy(82,"mat-datepicker-toggle",24)(83,"mat-datepicker",null,1),hd()()()(),Xs(85,"div",8)(86,"div",10)(87,"mat-label",11),V_(88),fS(89,"translate"),hd()(),Xs(90,"div",12)(91,"div",21)(92,"mat-form-field",22),cy(93,"input",26),lb(),cy(94,"mat-datepicker-toggle",24)(95,"mat-datepicker",null,2),hd(),Xs(97,"mat-form-field",22),cy(98,"input",27),lb(),cy(99,"mat-datepicker-toggle",24)(100,"mat-datepicker",null,3),hd()()()(),Xs(102,"div",8)(103,"div",10)(104,"mat-label",11),V_(105),fS(106,"translate"),hd()(),Xs(107,"div",12)(108,"mat-radio-group",28)(109,"mat-radio-button",18),V_(110),fS(111,"translate"),hd(),Xs(112,"mat-radio-button",18),V_(113),fS(114,"translate"),hd(),Xs(115,"mat-radio-button",18),V_(116),fS(117,"translate"),hd()(),lb(),hd()(),Xs(118,"div",8)(119,"div",10)(120,"mat-label",11),V_(121),fS(122,"translate"),hd()(),Xs(123,"div",12)(124,"mat-radio-group",29)(125,"mat-radio-button",18),V_(126
1),fS(127,"translate"),hd(),Xs(128,"mat-radio-button",18),V_(129),fS(130,"translate"),hd(),Xs(131,"mat-radio-button",18),V_(132),fS(133,"translate"),hd()(),lb(),hd()()()(),Xs(134,"mat-action-row")(135,"button",30),my("click",function(){return n.search()}),V_(136),fS(137,"translate"),hd(),Xs(138,"button",31),my("click",function(){return n.clearFilters()}),V_(139),fS(140,"translate"),hd()()()()(),Xs(141,"div",32)(142,"h4",33),V_(143),fS(144,"translate"),hd(),Xs(145,"button",34),fS(146,"translate"),fS(147,"translate"),my("click",function(){return n.exportToExcel()}),Xs(148,"mat-icon"),V_(149,"download"),hd()()(),cy(150,"app-subscriptions-list",35),Xs(151,"paginator-configurable",36),my("page",function(){return n.loadSubscriptions()}),hd()),i&2){let m=v_(79),S=v_(84),g=v_(96),M=v_(101);ay("steps",tS(100,be)),_C(2),ay("expanded",n.expanSearch),_C(3),Dd("",hS(6,50,"Search Options")," "),_C(2),ay("formGroup",n.form),_C(6),Dd("",hS(14,52,"Business Name")," "),_C(4),fb(),_C(4),Dd("",hS(22,54,"Plan Name")," "),_C(4),fb(),_C(),XT(n.plansList),_C(5),Dd("",hS(32,56,"Partner")," "),_C(3),fb(),_C(),ay("value",null),_C(),ky(hS(37,58,"All")),_C(2),ay("value",0),_C(),ky(hS(40,60,"No Partner")),_C(2),ay("value",1),_C(),ky(hS(43,62,"Salla")),_C(2),ay("value",2),_C(),ky(hS(46,64,"Zid")),_C(5),Dd("",hS(51,66,"Subscription Status")," "),_C(4),fb(),_C(),XT(n.statusList),_C(5),ky(hS(61,68,"Subscription Type")),_C(4),fb(),_C(),XT(n.typeList),_C(6),ky(hS(72,70,"Start Date")),_C(5),ay("matDatepicker",m),fb(),_C(),ay("for",m),_C(4),ay("matDatepicker",S),fb(),_C(),ay("for",S),_C(6),ky(hS(89,72,"End Date")),_C(5),ay("matDatepicker",g),fb(),_C(),ay("for",g),_C(4),ay("matDatepicker",M),fb(),_C(),ay("for",M),_C(6),Dd("",hS(106,74,"Payment Status")," "),_C(3),fb(),_C(),ay("value",null),_C(),ky(hS(111,76,"All")),_C(2),ay("value",true),_
1C(),ky(hS(114,78,"Paid")),_C(2),ay("value",false),_C(),ky(hS(117,80,"Unpaid")),_C(5),Dd("",hS(122,82,"Activation Status")," "),_C(3),fb(),_C(),ay("value",null),_C(),ky(hS(127,84,"All")),_C(2),ay("value",true),_C(),ky(hS(130,86,"Active")),_C(2),ay("value",false),_C(),ky(hS(133,88,"Inactive")),_C(4),ky(hS(137,90,"Search")),_C(3),ky(hS(140,92,"Clear")),_C(4),ky(hS(144,94,"Subscriptions")),_C(2),ay("disabled",n.subscriptions.length===0)("matTooltip",hS(146,96,"Download as Excel")),sy("aria-label",hS(147,98,"Download as Excel")),_C(5),ay("subscriptions",n.subscriptions)("isAdmin",true)("showBusinessName",true);}},dependencies:[ce,Pg,Fg,Is,Tg,Ag,Vg,Gt$1,$c,Tt,pe,ea,qi,f,he$1,Kv,b0,ei,L0,Yx,Ux,ql,Dp,dn,da,vr,Ch,Vw,Pw,nk,Bp,Zl,td,ed,tC,bC,sv,NC,XC,_D,il,XD,$D,Bu,QD,Nu,KD,rM,Fb,t1,A1,gS,Vs,zs,Fi,NS,ZS,EI,us,ms,HI,ZI,Dn,kE,Jv,go,qd,on,YE,OT,lA,mt],styles:[".text-green[_ngcontent-%COMP%]{color:var(--color-primary-dark);font-weight:500}.text-red[_ngcontent-%COMP%]{color:var(--color-error-text);font-weight:500}.status-badge[_ngcontent-%COMP%]{padding:4px 12px;border-radius:var(--radius-xl);font-size:var(--font-size-sm);font-weight:600;display:inline-block;color:#fff;min-width:80px;text-align:center;text-transform:uppercase}.badge-active[_ngcontent-%COMP%]{background-color:var(--color-primary)}.badge-canceled[_ngcontent-%COMP%]{background-color:var(--color-error)}.badge-expired[_ngcontent-%COMP%]{background-color:#ffc107;color:var(--color-text)}.badge-unknown[_ngcontent-%COMP%]{background-color:var(--color-text-muted)}.badge-future[_ngcontent-%COMP%]{background-color:#4589c4}"],changeDetection:1});}}return d})();export{_i as SubscriptionsListAdminComponent};
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.