1import{a as Hi,b as Yi,c as mn,d as pn,e as da}from"./chunk-5XABVGFE.js";import{b as ji,c as ma}from"./chunk-HSEEKFP3.js";import{a as Li,e as ne,h as pa}from"./chunk-ZKBGHAFD.js";import{a as Ki}from"./chunk-JSOUDTI4.js";import{a as Xe,b as he}from"./chunk-UZPCYI5Q.js";import{a as Ai}from"./chunk-6HFWQG7I.js";import{a as Ce,c as ra,d as la}from"./chunk-HEEAEQ45.js";import{A as sa,b as je,r as gn,s as ia,t as aa,x as oa}from"./chunk-LLCWMH6T.js";import"./chunk-FETKOYBM.js";import"./chunk-OQZ6WBCC.js";import{a as Fi}from"./chunk-VZRVPARN.js";import"./chunk-6ZREJQMS.js";import{b as gi}from"./chunk-PDKQTVHO.js";import"./chunk-4JZ2LMEF.js";import{a as ee,b as $i,c as Ot,d as U}from"./chunk-KEYER3NW.js";import"./chunk-MQARS4DF.js";import"./chunk-HPWBH25P.js";import"./chunk-WEVSVGWJ.js";import{a as nn,c as an,d as on,e as ye}from"./chunk-ZVKOWIS3.js";import"./chunk-3B6JM56F.js";import{a as Si,b as Oi,d as Ei,e as Ii,f as Ti}from"./chunk-O7Y2UANO.js";import{a as si,b as Ze}from"./chunk-BDWH5MNQ.js";import"./chunk-4FDGMODB.js";import"./chunk-UHM3JEYI.js";import{a as zi}from"./chunk-JR6Y6XBD.js";import"./chunk-MWEH7EWC.js";import"./chunk-2JXQXGNF.js";import{a as mi}from"./chunk-WKW23Z5D.js";import"./chunk-EHX5NZF7.js";import{a as ca,b as un,c as ga,d as ua,f as ha,g as fa,h as xa,j as ya}from"./chunk-3HOSDFDW.js";import"./chunk-2J7T2LO6.js";import{a as qi,b as Ui,d as Ji}from"./chunk-4S2CQURN.js";import{a as Gi,b as Vi,c as Ni,j as Xi,k as Zi,l as ta,m as ea,n as na}from"./chunk-4PS77X3U.js";import{a as Wi,b as Bi,c as Qi}from"./chunk-XFYDLKW6.js";import{a as Ri,b as _e,c as ve,d as dn}from"./chunk-5FVKTBQI.js";import{a as Zt,c as jt}from"./chunk-FLU7RHIM.js";import"./chunk-AA2WQG56.js";import{e as Zn}from"./chunk-YDOQF6CK.js";import{a as ri,b as pi}from"./chunk-6ZURBS2V.js";import"./chunk-X27LS24K.js";import"./chunk-F5X5MWHG.js";import"./chunk-GFCHJ5RH.js";import{a as vt,b as Ct,c as Yt,d as bt,f as wt,h as Mt}from"./chunk-NP7Y2WCK.js";import"./chunk-MS4AQ6UA.js";import{a as nt,b as Jt,c as Ue,g as Je,j as He,m as Ke,n as Ye}from"./chunk-DNLV3KGD.js";import{a as xe}from"./chunk-2JAY2TJI.js";import"./chunk-NUMPRRZ5.js";import{b as mt,c as ii}from"./chunk-SM63WMUW.js";import{c as at,d as pt}from"./chunk-ZLUK7JFV.js";import"./chunk-46YLFARR.js";import"./chunk-NWXTY4VU.js";import{a as ui,b as rn}from"./chunk-MJCNXSOB.js";import{a as Xt,b as fe}from"./chunk-TAQHTMET.js";import{a as sn,b as ki,c as ln,d as cn,e as Di,g as te}from"./chunk-TYQ462VZ.js";import{a as hi,b as fi,c as xi,d as yi,e as _i,f as vi,g as Ci,h as bi,i as wi,j as Mi,l as Pi}from"./chunk-H3UG7VTH.js";import{a as di,c as en}from"./chunk-EN5OP37D.js";import"./chunk-3EAPBFQS.js";import{d as $e}from"./chunk-J2V7HHOR.js";import"./chunk-RMELRSWZ.js";import"./chunk-BI3IDHMO.js";import{a as St}from"./chunk-YLQ3VEKM.js";import{a as R,b as G}from"./chunk-PZQWDTYU.js";import"./chunk-SGYCFQGT.js";import"./chunk-FWDZAKDL.js";import{A as N,B as ai,C as $,F as oi,G as q,I as Pt,J as li,L as tn,M as ci,P as it,a as S,b as k,d as ct,f as xt,i as dt,j as zt,k as _t,m as I,o as Ht,p as ei,q as ue,r as At,t as Kt,v as ni,z as Ft}from"./chunk-2LOZQKDB.js";import{a as Ut,b as qe,c as F,d as ti,f as L}from"./chunk-PL65QUBP.js";import{d as qt,e as ge}from"./chunk-ESNVBJ44.js";import{a as Yn,c as kt}from"./chunk-4EBYQCNS.js";import"./chunk-JAD7XMWW.js";import{a as st}from"./chunk-PINT3XN2.js";import"./chunk-36SSSHBW.js";import{$a as Vn,$b as re,Ab as Ve,Bb as z,Bc as Qe,Cb as A,Cc as y,Db as o,Dc as J,Eb as a,Fb as g,Ga as Tt,Gb as Sn,Ha as rt,Hb as On,Ia as Le,Ib as Ne,Jb as O,Jc as pe,Ka as P,Lb as v,Mb as m,Mc as Wt,N as Rt,Oc as Jn,R as oe,Ra as Nt,Rb as Ie,Sb as Te,Tb as ke,Tc as Hn,Ua as Gn,Vb as We,Wb as Be,Wc as Kn,Xa as l,Xb as ht,Yb as r,Yc as et,Zb as _,_b as D,aa as Ee,ab as W,ba as jn,db as Re,ea as Pn,fb as Nn,hb as C,hd as Bt,ia as K,ib as me,ic as qn,ja as de,jb as Wn,jc as De,ka as Ln,kb as Bn,kc as ft,la as Vt,lc as ze,ma as f,mb as Qn,nb as u,oc as B,od as Xn,pc as Y,qc as Ae,qd as Qt,rb as lt,sb as p,sc as Un,ta as Rn,tb as $n,td as $t,u as V,ua as w,ub as Q,ud as Dt,va as M,wd as Fe,y as An,yb as h,z as Fn,zb as Ge}from"./chunk-VSN3JVKD.js";import{a as ot,b as ae,i as ut}from"./chunk-RKIXE2YC.js";var so=e=>["/invite","student",e,"create"],lo=e=>["/students/groups","create",e];
1function co(e,c){if(e&1&&(o(0,"button",7),r(1," Invite Student "),a()),e&2){let t=m(2);p("routerLink",ft(1,so,t.organizationId()))}}function mo(e,c){if(e&1&&u(0,co,2,3,"button",14),e&2){let t=m();p("ngIf",t.tab()===0)}}function po(e,c){if(e&1&&(o(0,"button",7),r(1," Create Group "),a()),e&2){let t=m(2);p("routerLink",ft(1,lo,t.organizationId()))}}function go(e,c){if(e&1&&u(0,po,2,3,"button",14),e&2){let t=m();p("ngIf",t.tab()===1)}}function uo(e,c){if(e&1&&g(0,"app-users-list",15),e&2){let t=m();p("organizationId",t.organizationId())}}function ho(e,c){if(e&1&&g(0,"app-groups-list",16),e&2){let t=m();p("organizationId",t.organizationId())}}var En=(()=>{class e{constructor(t,n,i){this.route=t,this.router=n,this.profileService=i,this.organizationId=P(void 0),this.permissions=P([]),this.tab=P(0),J(()=>{if(this.organizationId())return this.profileService.getUserData().subscribe({next:s=>{let d=s.roles.find(x=>x.organizationId===this.organizationId()).permissions;this.permissions.set(d)}})}),J(()=>{let s=this.route.snapshot.paramMap.get("organizationId");this.organizationId.set(s),this.route.snapshot.paramMap.get("type")==="groups"&&this.tab.set(1);let d=this.router.events.subscribe(x=>{if(x instanceof Xn){let b=this.route.snapshot.paramMap.get("organizationId");this.organizationId.set(b),this.route.snapshot.paramMap.get("type")==="groups"&&this.tab.set(1)}});return()=>d.unsubscribe()})}tabChanged(t){if(t.index==0){this.router.navigate(["students",this.organizationId()]);return}this.router.navigate(["students",this.organizationId(),"groups"]),this.tab.set(t.index)}static{this.\u0275fac=function(n){return new(n||e)(W(Qt),W($t),W(xe))}}static{this.\u0275cmp=C({type:e,selectors:[["app-students"]],standalone:!1,decls:20,vars:5,consts:[[1,"wrapper"],[1,"content"],[1,"d-md-flex","justify-content-between"],[1,"mat-h1"],[1,"mat-h4"],[1,"d-flex",2,"gap","6px"],["href","https://www.youtube.com/watch?v=8mC4KBD5t70","target","_blank","mat-stroked-button","","color","primary",1,"mt-1","mb-2"],["mat-flat-button","","color","primary",1,"mt-1","mb-2",3,"routerLink"],["mat-stretch-tabs","false","mat-align-tabs","start",3,"selectedTabChange","selectedIndex"],["label","Students"],[1,"mt-2"],["cacheKey","students","role","student",3,"organizationId",4,"ngIf"],["label","Groups"],[3,"organizationId",4,"ngIf"],["class","mt-1 mb-2","mat-flat-button","","color","primary",3,"routerLink",4,"ngIf"],["cacheKey","students","role","student",3,"organizationId"],[3,"organizationId"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"div")(4,"h1",3),r(5,"Students & Groups"),a(),o(6,"p",4),r(7," Manage your students and groups "),a()(),o(8,"div",5)(9,"a",6),r(10," Help & tutorial "),a(),u(11,mo,1,1,"button",7)(12,go,1,1,"button",7),a()(),o(13,"mat-tab-group",8),v("selectedTabChange",function(d){return i.tabChanged(d)}
1),o(14,"mat-tab",9)(15,"div",10),u(16,uo,1,1,"app-users-list",11),a()(),o(17,"mat-tab",12)(18,"div",10),u(19,ho,1,1,"app-groups-list",13),a()()()()()),n&2&&(l(11),h(i.permissions().includes("invites:create:own")||i.permissions().includes("invites:create:any")?11:-1),l(),h(i.permissions().includes("user-groups:create:own")||i.permissions().includes("user-groups:create:any")?12:-1),l(),p("selectedIndex",i.tab()),l(3),p("ngIf",i.organizationId()!==void 0),l(3),p("ngIf",i.organizationId()!==void 0))},dependencies:[Wt,ji,Li,_e,ve,ti,F,Dt],styles:["h1[_ngcontent-%COMP%]{font-weight:500!important;color:var(--mat-sys-primary);margin-bottom:6px!important}a[_ngcontent-%COMP%]{text-decoration:none}.wrapper[_ngcontent-%COMP%]{display:flex;width:100%;flex:1;place-content:center}.content[_ngcontent-%COMP%]{flex:1;max-width:1100px}"]})}}return e})();var Ca=(()=>{class e{constructor(t){this.httpClient=t}getOrganization(t){return this.httpClient.get(st.api+"/users/organizations/"+t)}create(t){return this.httpClient.post(st.api+"/users/groups",t)}static{this.\u0275fac=function(n){return new(n||e)(Vt(Bt))}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var yo=e=>["/students",e,"groups"],wa=()=>[];function _o(e,c){e&1&&(o(0,"div",10),g(1,"mat-spinner",11),a())}function vo(e,c){e&1&&(o(0,"div",12)(1,"div",13),g(2,"img",14),a(),o(3,"h2",15),r(4,"Group created successfully."),a()())}function Co(e,c){if(e&1&&(o(0,"div"),u(1,vo,5,0,"div",9),a()),e&2){let t=m();l(),p("ngIf",t.success())}}function bo(e,c){if(e&1&&g(0,"app-user-selector-new",26),e&2){let t=m(3);p("control",t.form.controls.teachers)("selectedUsers",De(7,wa))("organizationId",t.organizationId()||"")("role","teacher")("selectLimit",-1)("floatLabel","always")("drag",!0)}}function wo(e,c){if(e&1&&u(0,bo,1,8,"app-user-selector-new",26),e&2){let t=m(2);h(t.permissions().includes("invites:create:any")?0:-1)}}function Mo(e,c){e&1&&g(0,"mat-spinner",27)}function Po(e,c){e&1&&(o(0,"span"),r(1,"Create Group"),a())}function So(e,c){if(e&1){let t=O();o(0,"div",12)(1,"h2",16),r(2,"Create Group"),a(),o(3,"p",17),r(4," Please write a name for the group and select its participants. "),a(),o(5,"form",18),v("ngSubmit",function(){w(t);let i=m();return M(i.createGroup())}),o(6,"mat-form-field",19)(7,"mat-label"),r(8,"Group Name"),a(),g(9,"input",20),a(),o(10,"mat-form-field",19)(11,"mat-label"),r(12,"Description"),a(),g(13,"textarea",21),a(),g(14,"app-user-selector-new",22),u(15,wo,1,1),o(16,"div",23)(17,"button",24),u(18,Mo,1,0,"mat-spinner",25)(19,Po,2,0,"span",8),a()()()()}if(e&2){let t=m();l(5),p("formGroup",t.form),l(9),p("control",t.form.controls.users)("selectedUsers",De(11,wa))("organizationId",t.organizationId()||"")("selectLimit",-1)("floatLabel","always")("drag",!0),l(),h(t.plan()>=2?15:-1),l(2),p("disabled",t.form.invalid||t.loading()),l(),p("ngIf",t.loading()),l(),p("ngIf",!t.loading())}}var Ma=(()=>{class e{constructor(t,n,i,s){this.groupCreateService=t,this.route=n,this.snackBar=i,this.profileService=s,this.form=new _t({name:new I("",xt.required),users:new I([],xt.required),teachers:new I([]),description:new I("")}),this.organizationId=P(null),this.plan=P(0),this.permissions=P([]),this.loading=P(!1),this.success=P(!1),J(()=>{this.organizationId()!==null&&this.groupCreateService.getOrganization(this.organizationId()).subscribe(d=>{this.plan.set(d.plan)})}),J(()=>{if(this.organizationId()!==null)return this.profileService.getUserData().subscribe({next:d=>{let x=d.roles.find(b=>b.organizationId===this.organizationId()).permissions;this.permissions.set(x)}})})}ngOnInit(){this.organizationId.set(this.route.snapshot.paramMap.get("organizationId"))}createGroup(){this.form.valid&&this.organizationId()&&(this.loading.set(!0),this.groupCreateService.create({name:this.form.get("name").value,users:this.form.get("users").value,teachers:this.form.get("teachers")?.value??[],description:this.form.get("description").value,organizationId:this.organizationId()}).subscribe(()=>{this.loading.set(!1),this.success.set(!0),this.snackBar.open("Group created successfully!","Close",{duration:2e3})}))}static{this.\u0275fac=function(n){return new(n||e)(W(Ca),W(Qt),W(mt),W(xe))}}static{this.\u0275cmp=C({type:e,selectors:[["app-group-create"]],standalone:!1,decls:12,vars:8,consts:[[1,"row"],[1,"col-12","col-md-2","col-xl-3"],[1,"col-12","col-sm-12","col-md-8","col-xl-6"],[1,"group-create"],[1,"group-create-content"],["class","loading-indicator",4,"ngIf"],["mat-icon-button","",3,"routerLink"],[1,"material-symbols-outlined"],[4,"ngIf"],["class","text-center",4,"ngIf"],[1,"loading-indicator"],["diameter","26"],[1,"text-center"],[1,"image"],["src","/assets/groups.svg","alt","Group created."],[1,"mat-h2","mt-2"],[1,"mat-h2"],[1,"mat-h4","mb-4"],[1,"form",3,"ngSubmit","formGroup"],["appearance","outline","subscriptSizing","dynamic"],["tabIndex","1","matInput","","formControlName","name","required",""],["matInput","","tabindex","2","formControlName","description","placeholder","Description"],[3,"control","selectedUsers","organizationId","selectLimit","floatLabel","drag"],[1,"buttons"],["mat-flat-button","","color","primary","type","submit",3,"disabled"],["diameter","20",4,"ngIf"],[3,"control","selectedUsers","organizationId","role","selectLimit","floatLabel","drag"],["diameter","20"]],template:function(n,i){n&1&&(o(0,"div",0),g(1,"div",1),o(2,"div",2)(3,"div",3)(4,"mat-card")(5,"mat-card-content",4),u(6,_o,2,0,"div",5),o(7,"button",6)(8,"mat-icon",7),r(9,"arrow_back"),a()(),u(10,Co,2,1,"div",8)(11,So,20,12,"div",9),a()()()()()),n&2&&(l(4),Q("loading",i.loading()),l(2),p("ngIf",i.loading()),l(),p("routerLink",ft(6,yo,i.organizationId())),l(3),p("ngIf",i.success()),l(),p("ngIf",!i.success()))},dependencies:[Wt,N,$,R,S,Ce,at,it,Pt,Ht,ct,dt,zt,ni,At,Kt,F,Ut,Dt],styles:['a[_ngcontent-%COMP%]{text-decoration:none}.group-create[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-weight:500;color:var(--mat-sys-primary);margin-bottom:6px}.group-create[_ngcontent-%COMP%] .select-type[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:var(--mat-sys-primary);margin-bottom:12px}.group-create[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{border-radius:25px}.group-create[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{padding-left:8px;padding-right:8px;font-weight:500;color:var(--mat-sys-primary)}.group-create[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] .mat-button-toggle-checked[_ngcontent-%COMP%]{background-color:#2d8662;color:#fff}.group-create[_ngcontent-%COMP%] .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:42px}mat-card.loading[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{opacity:.4}mat-card.loading[_ngcontent-%COMP%]{z-index:10;position:relative}mat-card.loading[_ngcontent-%COMP%] .loading-indicator[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%}mat-card.loading[_ngcontent-%COMP%] .loading-indicator[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{margin-left:-50%;margin-top:-50%}.buttons[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}.form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:24px}mat-card[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:24px}mat-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin-bottom:0;color:var(--mat-sys-primary)}.divider[_ngcontent-%COMP%]{margin-top:16px;padding:0 16px;display:flex;align-items:center}.divider[_ngcontent-%COMP%]:before, .divider[_ngcontent-%COMP%]:after{content:"";flex-grow:1;height:1px;background-color:#e5e2e1}.divider[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin:0 10px;font-weight:500;font-size:11px;letter-spacing:1px;color:#787776;line-height:21px}mat-form-field[_ngcontent-%COMP%]{width:100%}mat-hint[_ngcontent-%COMP%]{font-size:14px;margin-left:12px}.group-create-edit-actions[_ngcontent-%COMP%]{margin-top:0;padding-top:0!important}']})}}return e})();var Pa=(()=>{class e{constructor(t){this.httpClient=t}delete(t){return this.httpClient.delete(st.api+"/users/groups/"+t)}static{this.\u0275fac=function(n){return new(n||e)(Vt(Bt))}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var Sa=(()=>{class e{constructor(t,n,i,s,d){this.dialogRef=t,this.groupDeleteService=n,this.data=i,this.matSnackBar=s,this.router=d,this.loading=P(!1)}confirmDelete(){this.loading.set(!0),this.groupDeleteService.delete(this.data.groupId).subscribe({error:()=>{this.loading.set(!1),this.matSnackBar.open("You cannot delete this group.","Ok",{duration:5e3})},next:()=>{this.loading.set(!1),this.matSnackBar.open("Your group has been successfully deleted.","Ok.",{duration:5e3}),this.dialogRef.close(),this.router.navigate(["group"])}})}static{this.\u0275fac=function(n){return new(n||e)(W(vt),W(Pa),W(Ct),W(mt),W($t))}}static{this.\u0275cmp=C({type:e,selectors:[["app-group-delete"]],standalone:!1,decls:15,vars:1,consts:[[1,"mat-typography","slingui-popup","text-center"],[1,"text-center"],[1,"material-symbols-outlined"],[2,"max-width","364px"],[1,"buttons","mt-4"],[3,"loading"],["mat-flat-button","","color","primary","cdkFocusInitial","",3,"click"],["mat-button","","color","primary","mat-dialog-close","",1,"mt-2"]],template:function(n,i){n&1&&(o(0,"mat-dialog-content",0)(1,"div",1)(2,"mat-icon",2),r(3,"delete"),a()(),o(4,"h3"),r(5,"Are you sure you want to delete this group?"),a(),g(6,"mat-divider"),o(7,"p",3),r(8," Your action will be irreversible and you can only delete your group. "),a(),o(9,"div",4)(10,"app-loading-button",5)(11,"button",6),v("click",function(){return i.confirmDelete()}),r(12," Confirm delete "),a()(),o(13,"button",7),r(14," Cancel "),a()()()),n&2&&(l(10),p("loading",i.loading()))},dependencies:[S,ri,nt,bt,wt,F],styles:["h3[_ngcontent-%COMP%]{font-family:Syne;font-style:normal;font-weight:400;font-size:28px;line-height:36px;text-align:center;color:var(--mat-sys-primary)}mat-divider[_ngcontent-%COMP%]{max-width:148px;margin:6px auto 12px}p[_ngcontent-%COMP%]{font-family:Syne;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.25px}mat-dialog-content[_ngcontent-%COMP%]{max-width:364px;margin-top:12px;margin-bottom:12px}mat-icon[_ngcontent-%COMP%]{margin-top:12px;margin-bottom:12px;transform:scale(1.5)} .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid #e2e2e2;box-shadow:0 1px 4px #0035431a;border-radius:16px}"]})}}return e})();var Oa=(()=>{class e{constructor(t,n){this.dialogRef=t,this.data=n}static{this.\u0275fac=function(n){return new(n||e)(W(vt),W(Ct))}}static{this.\u0275cmp=C({type:e,selectors:[["app-confirm-activities-assignment"]],standalone:!1,decls:14,vars:2,consts:[[1,"mat-typography","slingui-popup","text-center"],[1,"text-center"],[1,"material-symbols-outlined"],[2,"max-width","364px"],[1,"buttons","mt-4"],["mat-flat-button","","color","primary","cdkFocusInitial","",3,"mat-dialog-close"],["mat-button","","color","primary",1,"mt-2",3,"mat-dialog-close"]],template:function(n,i){n&1&&(o(0,"mat-dialog-content",0)(1,"div",1)(2,"mat-icon",2),r(3,"edit_square"),a()(),o(4,"h3"),r(5,"Share exercises"),a(),g(6,"mat-divider"),o(7,"p",3),r(8," Would you like to assign the group's exercises to the new student(s)? "),a(),o(9,"div",4)(10,"button",5),r(11," Assign "),a(),o(12,"button",6),r(13,"Do not assign"),a()()()),n&2&&(l(10),p("mat-dialog-close",!0),l(2),p("mat-dialog-close",!1))},dependencies:[S,nt,bt,wt,F],styles:["h3[_ngcontent-%COMP%]{font-family:Syne;font-style:normal;font-weight:400;font-size:28px;line-height:36px;text-align:center;color:var(--mat-sys-primary)}mat-divider[_ngcontent-%COMP%]{max-width:148px;margin:6px auto 12px}p[_ngcontent-%COMP%]{font-family:Syne;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.25px}mat-dialog-content[_ngcontent-%COMP%]{max-width:364px;margin-top:12px;margin-bottom:12px}mat-icon[_ngcontent-%COMP%]{margin-top:12px;margin-bottom:12px;transform:scale(1.5)} .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid #e2e2e2;box-shadow:0 1px 4px #0035431a;border-radius:16px}"]})}}return e})();var Ea=(()=>{class e{constructor(t){this.httpClient=t}getGroup(t){return this.httpClient.get(st.api+"/users/groups/"+t)}edit(t){return this.httpClient.put(st.api+"/users/groups/"+t.groupId,t)}static{this.\u0275fac=function(n){return new(n||e)(Vt(Bt))}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var Io=e=>["/","students",e,"groups"];function To(e,c){e&1&&(o(0,"div",10),g(1,"mat-spinner",11),a())}function ko(e,c){e&1&&(o(0,"div",12)(1,"div",13),g(2,"img",14),a(),o(3,"h2",15),r(4,"Group updated successfully"),a()())}
1function Do(e,c){if(e&1&&g(0,"app-user-selector-new",26),e&2){let t=m(3);p("organizationId",t.organizationId())("control",t.formGroup.controls.teachers)("selectedUsers",t.startSelectedTeachers())("role","teacher")("selectLimit",-1)("floatLabel","always")("drag",!0)}}function zo(e,c){if(e&1&&u(0,Do,1,7,"app-user-selector-new",26),e&2){let t=m(2);h(t.permissions().includes("user-groups:read:any")?0:-1)}}function Ao(e,c){if(e&1){let t=O();o(0,"div",12)(1,"h2",16),r(2,"Edit Group"),a(),o(3,"p",17),r(4,"Edit group name and yours participants."),a(),o(5,"form",18),v("ngSubmit",function(){w(t);let i=m();return M(i.onSubmit())}),o(6,"mat-form-field",19)(7,"mat-label"),r(8,"Name"),a(),g(9,"input",20),a(),o(10,"mat-form-field",19)(11,"mat-label"),r(12,"Description"),a(),g(13,"textarea",21),a(),g(14,"app-user-selector-new",22),u(15,zo,1,1),o(16,"div",23)(17,"button",24),r(18," Save "),a(),o(19,"button",25),v("click",function(){w(t);let i=m();return M(i.openGroupDelete())}),r(20," Delete Group "),a()()()()}if(e&2){let t=m();l(5),p("formGroup",t.formGroup),l(9),p("organizationId",t.organizationId())("control",t.formGroup.controls.users)("selectedUsers",t.startSelectedUsers())("selectLimit",-1)("floatLabel","always")("drag",!0),l(),h(t.plan()>=2?15:-1),l(2),p("disabled",!t.formGroup.valid)}}var Ia=(()=>{class e{constructor(t,n,i,s,d,x){this.groupService=t,this.profileService=n,this.matSnackBar=i,this.route=s,this.router=d,this.dialog=x,this.loading=P(!0),this.success=P(!1),this.groupId=P(""),this.organizationId=P(""),this.group=P(null),this.plan=P(0),this.startSelectedUsers=P([]),this.startSelectedTeachers=P([]),this.formGroup=new _t({name:new I({value:"",disabled:!1},[]),users:new I([]),teachers:new I([]),description:new I({value:"",disabled:!1},[])}),this.permissions=P([]),this.organizationId.set(this.route.snapshot.paramMap.get("organizationId")),this.groupId.set(this.route.snapshot.paramMap.get("groupId")),J(()=>{if(this.organizationId()!=="")return this.profileService.getUserData().subscribe({next:b=>{let j=b.roles.find(yt=>yt.organizationId===this.organizationId()).permissions;this.permissions.set(j)}})})}ngAfterViewInit(){this.groupService.getGroup(this.groupId()).subscribe(t=>{t!==void 0&&(this.group.set(t),this.startSelectedUsers.set(t?.selectedUsers),t.teachers&&this.startSelectedTeachers.set(t.selectedTeachers),this.plan.set(t.organizationId.plan),this.formGroup.setValue({name:t?.name,users:t?.selectedUsers.map(n=>n._id),teachers:t?.selectedTeachers.map(n=>n._id),description:t?.description}),this.loading.set(!1))})}openGroupDelete(){this.dialog.open(Sa,{data:{groupId:this.groupId()}}).afterClosed().subscribe(n=>{this.router.navigate(["students",this.organizationId(),"groups"])})}onSubmit(){this.loading.set(!0);let t=this.route.snapshot.paramMap.get("groupId");(this.formGroup.get("users").value??[]).filter(i=>!this.startSelectedUsers().some(s=>s._id===i)).length>0?this.dialog.open(Oa).afterClosed().subscribe(s=>{if(s==null){this.loading.set(!1);return}this.submitForm(t,s)}):this.submitForm(t,!1)}submitForm(t,n){this.groupService.edit({groupId:t,name:this.formGroup.get("name").value,users:this.formGroup.get("users").value,teachers:this.formGroup.get("teachers").value,description:this.formGroup.get("description").value,shouldShareExercises:n}).subscribe({error:()=>{this.loading.set(!1),this.matSnackBar.open("We not able to edit group for this organization.","Ok",{duration:5e3})},next:()=>{this.loading.set(!1),this.success.set(!0)}})}static{this.\u0275fac=function(n){return new(n||e)(W(Ea),W(xe),W(mt),W(Qt),W($t),W(Yt))}}static{this.\u0275cmp=C({type:e,selectors:[["app-group-edit"]],standalone:!1,decls:13,vars:10,consts:[[1,"row"],[1,"col-12","col-md-2","col-xl-3"],[1,"col-12","col-sm-12","col-md-8","col-xl-6"],[1,"group-create"],["class","loading-indicator",4,"ngIf"],[1,"group-create-content"],[1,"back-button","text-right","mb-2"],["mat-icon-button","","color","primary",3,"routerLink"],[1,"material-symbols-outlined"],["class","text-center",4,"ngIf"],[1,"loading-indicator"],["diameter","26"],[1,"text-center"],[1,"image"],["src","/assets/groups.svg","alt","Group edited."],[1,"mat-h2","mt-2"],[1,"mat-h2"],[1,"mat-h4","mb-4"],[1,"form",3,"ngSubmit","formGroup"],["appearance","outline","subscriptSizing","dynamic"],["matInput","","tabindex","1","formControlName","name","placeholder","Name"],["matInput","","tabindex","2","formControlName","description","placeholder","Description"],[3,"organizationId","control","selectedUsers","selectLimit","floatLabel","drag"],[1,"buttons"],["mat-flat-button","","type","submit","color","primary",3,"disabled"],["mat-stroked-button","","type","button","color","warn",3,"click"],[3,"organizationId","control","selectedUsers","role","selectLimit","floatLabel","drag"]],template:function(n,i){n&1&&(o(0,"div",0),g(1,"div",1),o(2,"div",2)(3,"div",3)(4,"mat-card"),u(5,To,2,0,"div",4),o(6,"mat-card-content",5)(7,"div",6)(8,"a",7)(9,"mat-icon",8),r(10," arrow_back "),a()()(),u(11,ko,5,0,"div",9)(12,Ao,21,9,"div",9),a()()()()()),n&2&&(l(4),Q("student",!0)("loading",i.loading()),l(),p("ngIf",i.loading()),l(3),p("routerLink",ft(8,Io,i.organizationId())),l(3),p("ngIf",i.success()),l(),p("ngIf",!i.success()))},dependencies:[Wt,N,$,R,S,Ce,at,it,Pt,Ht,ct,dt,zt,At,Kt,F,qe,Dt],styles:['a[_ngcontent-%COMP%]{text-decoration:none}.groups-edit[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-weight:500;color:var(--mat-sys-primary);margin-bottom:6px}.groups-edit[_ngcontent-%COMP%] .select-type[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:var(--mat-sys-primary);margin-bottom:12px}.groups-edit[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%]{border-radius:25px}.groups-edit[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] mat-button-toggle[_ngcontent-%COMP%]{padding-left:8px;padding-right:8px;font-weight:500;color:var(--mat-sys-primary)}.groups-edit[_ngcontent-%COMP%] mat-button-toggle-group[_ngcontent-%COMP%] .mat-button-toggle-checked[_ngcontent-%COMP%]{background-color:#2d8662;color:#fff}.groups-edit[_ngcontent-%COMP%] .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:42px}mat-card.loading[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{opacity:.4}mat-card.loading[_ngcontent-%COMP%]{z-index:10;position:relative}mat-card.loading[_ngcontent-%COMP%] .loading-indicator[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%}mat-card.loading[_ngcontent-%COMP%] .loading-indicator[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{margin-left:-50%;margin-top:-50%}.buttons[_ngcontent-%COMP%]{display:flex;gap:12px}.form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:24px}mat-card[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:24px}mat-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin-bottom:0;color:var(--mat-sys-primary)}.divider[_ngcontent-%COMP%]{margin-top:16px;padding:0 16px;display:flex;align-items:center}.divider[_ngcontent-%COMP%]:before, .divider[_ngcontent-%COMP%]:after{content:"";flex-grow:1;height:1px;background-color:#e5e2e1}.divider[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin:0 10px;font-weight:500;font-size:11px;letter-spacing:1px;color:#787776;line-height:21px}mat-form-field[_ngcontent-%COMP%]{width:100%}mat-hint[_ngcontent-%COMP%]{font-size:14px;margin-left:12px}.groups-edit-edit-actions[_ngcontent-%COMP%]{margin-top:0;padding-top:0!important}']})}}return e})();var Fo=()=>[],jo=(e,c)=>c.id;
1function Lo(e,c){if(e&1&&(o(0,"p"),r(1),a()),e&2){let t=m().$implicit;l(),D("Number of questions: ",t.numberOfQuestions,"")}}function Ro(e,c){e&1&&(o(0,"th",12),r(1,"Grammar"),a())}function Go(e,c){if(e&1&&(o(0,"td",13),r(1),a()),e&2){let t,n=c.$implicit;l(),D(" ",(t=n.grammar)!==null&&t!==void 0?t:"-"," ")}}function Vo(e,c){e&1&&(o(0,"th",12),r(1,"Vocabulary"),a())}function No(e,c){if(e&1&&(o(0,"td",13),r(1),a()),e&2){let t,n=c.$implicit;l(),D(" ",(t=n==null?null:n.vocabulary)!==null&&t!==void 0?t:"-"," ")}}function Wo(e,c){e&1&&g(0,"tr",14)}function Bo(e,c){e&1&&g(0,"tr",15)}function Qo(e,c){if(e&1&&(o(0,"mat-tab",0)(1,"mat-card",1)(2,"h1",2),r(3),a(),o(4,"div",3)(5,"p"),r(6),a(),u(7,Lo,2,1,"p"),a(),o(8,"p",4),r(9),a(),o(10,"table",5),Sn(11,6),u(12,Ro,2,0,"th",7)(13,Go,2,1,"td",8),On(),Sn(14,9),u(15,Vo,2,0,"th",7)(16,No,2,1,"td",8),On(),u(17,Wo,1,0,"tr",10)(18,Bo,1,0,"tr",11),a()()()),e&2){let t,n,i=c.$implicit,s=m();p("label",(t=i==null?null:i.name)!==null&&t!==void 0?t:""),l(3),_(i==null?null:i.name),l(3),D("Number of exercises: ",i==null||i.exercises==null?null:i.exercises.length,""),l(),h(i!=null&&i.id&&i.numberOfQuestions?7:-1),l(2),D(" ",i==null?null:i.description," "),l(),p("dataSource",(n=i==null?null:i.contents)!==null&&n!==void 0?n:De(8,Fo)),l(7),p("matHeaderRowDef",s.displayedColumns),l(),p("matRowDefColumns",s.displayedColumns)}}var Ta=(()=>{class e{constructor(){this.displayedColumns=["grammar","vocabulary"],this.journey=rt.required()}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-pathways-details"]],inputs:{journey:[1,"journey"]},standalone:!1,decls:3,vars:0,consts:[[3,"label"],[1,"student-pathways-details__content"],[1,"mat-h1"],[1,"student-pathways-details__meta"],[1,"student-pathways-details__description"],["mat-table","",3,"dataSource"],["matColumnDef","grammar"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","vocabulary"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(n,i){n&1&&(o(0,"mat-tab-group"),z(1,Qo,19,9,"mat-tab",0,jo),a()),n&2&&(l(),A(i.journey().pathways))},dependencies:[N,hi,xi,Ci,yi,fi,bi,_i,vi,wi,Mi,_e,ve],styles:[".student-pathways-details__content[_ngcontent-%COMP%]{margin:12px 0 0!important;padding:14px;border:1px solid var(--mat-sys-outline-variant);border-radius:14px;background:var(--mat-sys-surface);box-shadow:none!important;text-align:left}.student-pathways-details__content[_ngcontent-%COMP%] h1.mat-h1[_ngcontent-%COMP%]{margin:0 0 10px;color:var(--mat-sys-primary);font-size:16px;font-weight:500;line-height:22px}.student-pathways-details__meta[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px}.student-pathways-details__meta[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.student-pathways-details__description[_ngcontent-%COMP%]{margin:0 0 12px;color:var(--mat-sys-on-surface-variant);font-size:13px;line-height:19px}table.mat-mdc-table[_ngcontent-%COMP%]{width:100%;border:1px solid var(--mat-sys-outline-variant);border-radius:12px;box-shadow:none!important;overflow:hidden}th.mat-mdc-header-cell[_ngcontent-%COMP%], td.mat-mdc-cell[_ngcontent-%COMP%]{width:50%;padding:10px 12px;font-size:12px;line-height:18px;vertical-align:middle}[_nghost-%COMP%] .mat-mdc-tab-header{margin-bottom:4px}[_nghost-%COMP%] .mat-mdc-tab-label-container{border-bottom-color:var(--mat-sys-outline-variant)}[_nghost-%COMP%] .mat-mdc-tab .mdc-tab__text-label{font-size:12px}"]})}}return e})();var Jo=["journeyInput"],Ho=["pathwayInput"],ka=(e,c)=>c.id;function Ko(e,c){e&1&&g(0,"mat-progress-bar",5)}function Yo(e,c){if(e&1&&(o(0,"mat-option",10),r(1),a()),e&2){let t=c.$implicit;p("value",t),l(),_(t.name)}}function Xo(e,c){if(e&1&&(o(0,"mat-option",10),r(1),a()),e&2){let t=c.$implicit;p("value",t),l(),_(t.name)}}function Zo(e,c){if(e&1&&(o(0,"mat-accordion")(1,"mat-expansion-panel")(2,"mat-expansion-panel-header")(3,"mat-panel-title"),r(4),B(5,"translate"),a()(),g(6,"app-student-pathways-detail
1s",12),a()()),e&2){let t=m();l(4),D(" ",Y(5,2,"inviteEdit.tabs.pathwaysTab.pathwayDetails")," "),l(2),p("journey",t.selectedJourney())}}var Tn=e=>e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase(),Da=(()=>{class e{constructor(){this.subscriptions=[],this.searchJourney=new I(""),this.searchPathway=new I(""),this.authorFromJourney=y(()=>this.selectedJourney()?.author||"slingui"),this.isWeHelpUAuthor=y(()=>this.authorFromJourney()==="weHelpU"),this.loading=Nn(!1),this.changeAuthorJourney=Tt(),this.plan=rt.required(),this.hideLoading=rt(!1),this.autoSelect=rt(!0),this.preSelected=rt({journeyId:"",pathwayId:""}),this.isFirstSet=P(!1),this.formInput=rt(new _t({journey:new I("",xt.required),pathway:new I("",xt.required)})),this.firstPathway=Tt(),this.selectedJourney=P(void 0),this.exerciseConnectorService=f(Ki),this.result=kt(Fn([this.searchJourney.valueChanges.pipe(Ee(""),oe((t,n)=>JSON.stringify(t)===JSON.stringify(n)||!!n?._id),Rt(300))]).pipe(Pn(()=>this.loading.set(!0)),jn(([t])=>this.exerciseConnectorService.listJourneys({search:t})),Pn(()=>this.loading.set(!1)),An(t=>this.plan()>=2?t.filter(n=>n.author!=="weHelpU"):t)),{initialValue:[]}),this.searchPathwaysValue=kt(this.searchPathway.valueChanges.pipe(oe(),Ee(null),Rt(300))),this.filteredPathways=y(()=>{let t=this.searchPathwaysValue(),n=this.selectedJourney()?.pathways??[];if(!t)return n;let i=Tn(t).replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=new RegExp(i,"i");return n.filter(d=>{let x=Tn(d.name),b=Tn(d.description);return s.test(x)||s.test(b)})}),J(()=>{let t=this.selectedJourney();t?.author&&this.changeAuthorJourney.emit(t.author),this.searchPathway.setValue("")}),J(()=>{let t=this.result(),n=this.preSelected(),i=Qe(()=>this.formInput()),s=Qe(()=>this.isFirstSet()),d=i?.getRawValue()?.journey,x=i?.getRawValue()?.pathway;if(!t?.length||!i||!this.autoSelect()&&!n.journeyId)return;let b=t[0];for(let X of t)if(X.id===n.journeyId||X._id===n.journeyId){b=X;break}else X.isDefault&&(b=X);let j=t.find(X=>X.id===d?.id||X._id===d?.id||X.id===n.journeyId||X._id===n.journeyId)||b,yt=n.pathwayId||x?.id||x?._id,tt=j?.pathways?.find(X=>X.id===yt||X._id===yt)||j?.pathways?.[0];this.firstPathway.emit(tt);let Gt=!d||d.id===j?.id||!d.pathways||d.pathways.length<=1;j&&(Gt||!s)&&(this.selectedJourney.set(j),(!d||d.id===j.id)&&i.get("journey")?.setValue(j,{emitEvent:!1})),tt&&(Gt||!x)&&(this.searchPathway.setValue(""),i.get("pathway")?.setValue(tt,{emitEvent:!1}))}),J(t=>{let n=this.formInput(),i=n?.getRawValue()?.journey;i&&this.selectedJourney.set(i);let s=n?.controls.journey?.valueChanges.subscribe(d=>{if(!(!d||!d.id)&&(this.selectedJourney.set(d),this.searchPathway.setValue(""),d.pathways&&d.pathways.length>0)){let x=n?.getRawValue()?.pathway;d.pathways.find(j=>j.id===x?.id||j._id===x?.id)||n.controls.pathway?.setValue(d.pathways[0])}});t(()=>s?.unsubscribe())})}ngOnDestroy(){this.subscriptions.forEach(t=>t.unsubscribe())}display(t){return t?.name??t?.description??""}filterJourney(){let t=this.journeyInput.nativeElement.value;this.searchJourney.setValue(t)}filterPathway(){let t=this.pathwayInput?.nativeElement?.value;this.searchPathway.setValue(t)}selectJourney(t,n=!0){this.searchJourney.setValue(""),this.selectedJourney.set(t),Qe(()=>this.formInput()).get("journey")?.setValue(t,{emitEvent:n})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-journey-selector"]],viewQuery:function(n,i){if(n&1&&(Ie(Jo,5),Ie(Ho,5)),n&2){let s;Te(s=ke())&&(i.journeyInput=s.first),Te(s=ke())&&(i.pathwayInput=s.first)}},inputs:{loading:[1,"loading"],plan:[1,"plan"],hideLoading:[1,"hideLoading"],autoSelect:[1,"autoSelect"],preSelected:[1,"preSelected"],formInput:[1,"formInput"]},outputs:{loading:"loadingChange",changeAuthorJourney:"changeAuthorJourney",firstPathway:"firstPathway"},standalone:!1,decls:22,vars:7,consts:[["journeyInput",""],["journeyAuto","matAutocomplete"],["pathwayInput",""],["pathwayAuto","matAutocomplete"],[1,"journey-selector__progress"],["mode","indeterminate"],[3,"formGroup"],["appearance","outline",1,"w-100"],["type","text","matInput","","formControlName","journey",3,"input","matAutocomplete"],[3,"displayWith"],[3,"value"],["type","text","matInput","","formControlName","pathway",3,"input","matAutocomplete"],[3,"journey"]],template:function(n,i){if
1(n&1){let s=O();o(0,"div",4),u(1,Ko,1,0,"mat-progress-bar",5),a(),o(2,"section",6)(3,"mat-form-field",7)(4,"mat-label"),r(5,"Journey"),a(),o(6,"input",8,0),v("input",function(){return w(s),M(i.filterJourney())}),a(),o(8,"mat-autocomplete",9,1),z(10,Yo,2,2,"mat-option",10,ka),a()(),o(12,"mat-form-field",7)(13,"mat-label"),r(14,"Pathway"),a(),o(15,"input",11,2),v("input",function(){return w(s),M(i.filterPathway())}),a(),o(17,"mat-autocomplete",9,3),z(19,Xo,2,2,"mat-option",10,ka),a()()(),u(21,Zo,7,4,"mat-accordion")}if(n&2){let s=ht(9),d=ht(18);l(),h(i.loading()&&!i.hideLoading()?1:-1),l(),p("formGroup",i.formInput()),l(4),p("matAutocomplete",s),l(2),p("displayWith",i.display),l(2),A(i.result()),l(5),p("matAutocomplete",d),l(2),p("displayWith",i.display),l(2),A(i.filteredPathways()),l(2),h(i.selectedJourney()?21:-1)}},dependencies:[ct,dt,zt,At,Kt,Wi,$e,Bi,Ii,Si,Oi,Ei,it,Pt,at,Xe,Ta,qt],styles:["[_nghost-%COMP%]{display:block;min-width:0}.journey-selector__progress[_ngcontent-%COMP%]{height:4px;margin-bottom:12px;border-radius:2px;overflow:hidden}section[_ngcontent-%COMP%]{display:grid;gap:14px}mat-form-field[_ngcontent-%COMP%], mat-accordion[_ngcontent-%COMP%]{display:block;width:100%}mat-accordion[_ngcontent-%COMP%]{margin-top:14px}mat-expansion-panel[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-outline-variant);border-radius:14px!important;background:var(--mat-sys-surface-container-lowest);box-shadow:none!important;overflow:hidden}[_nghost-%COMP%] .mat-mdc-form-field-subscript-wrapper{display:none}[_nghost-%COMP%] .mat-expansion-panel-header{height:48px;padding:0 16px 0 18px}[_nghost-%COMP%] .mat-expansion-panel-header-title{color:var(--mat-sys-on-surface);font-family:Syne;font-size:14px;font-weight:400;letter-spacing:.15px;line-height:20px}[_nghost-%COMP%] .mat-expansion-panel-body{padding:0 14px 14px}"]})}}return e})();var er=(e,c)=>({journeyId:e,pathwayId:c}),nr=e=>["/organizations",e,"subscription"];function ir(e,c){if(e&1){let t=O();o(0,"div",5)(1,"mat-form-field",9)(2,"mat-label"),r(3),B(4,"translate"),a(),g(5,"input",10),B(6,"translate"),a(),o(7,"app-student-journey-selector",11),v("firstPathway",function(i){w(t);let s=m();return M(s.firstPathway.set(i))})("changeAuthorJourney",function(i){w(t);let s=m();return M(s.authorJourney.set(i))}),a()()}if(e&2){let t,n=m();l(3),_(Y(4,7,"inviteEdit.tabs.pathwaysTab.weeklyExerciseGoal")),l(2),p("formControl",n.getControl(n.form(),"weeklyGoal"))("placeholder",Y(6,9,"inviteEdit.tabs.pathwaysTab.weeklyExerciseGoal")),l(2),p("formInput",n.form())("autoSelect",n.autoSelectJourney())("preSelected",ze(11,er,(t=(t=n.getControl(n.form(),"journey").getRawValue())==null?null:t.id)!==null&&t!==void 0?t:"",(t=(t=n.getControl(n.form(),"pathway").getRawValue())==null?null:t.id)!==null&&t!==void 0?t:""))("plan",n.plan())}}function ar(e,c){if(e&1&&(o(0,"div",6)(1,"mat-icon",12),r(2,"info"),a(),o(3,"span",13),r(4," Only the first Pathway is available on the Free plan. "),o(5,"a",14),r(6," Upgrade now "),a(),r(7," to unlock full access and give your students the complete learning experience! "),a()()),e&2){let t=m();l(5),p("routerLink",ft(1,nr,t.organizationId()))}}var Aa=(()=>{class e{constructor(){this.internalForm=new _t({usePathway:new I(!1),usePlacementTest:new I(!1),setAutomaticPathway:new I(!1)}),this.subscriptions=[],this.form=rt.required(),this.organizationId=rt.required(),this.autoSelectJourney=rt(!0),this.firstPathway=P(void 0),this.formValue=P({}),this.authorJourney=P("slingui"),this.savePathway=Tt(),this.usePathway=kt(this.getControl(this.internalForm,"usePathway").valueChanges.pipe(Ee(this.getControl(this.internalForm,"usePathway").value))),this.currentOrganization=Ai(),this.plan=y(()=>this.currentOrganization()?.plan??0),this.isDemo=y(()=>this.currentOrganization().plan===0),this.isDisabled=y(()=>{let t=this.form().invalid,i=this.firstPathway()?.id;return t||(i&&this.isDemo()?this.formValue()?.pathway?.id!==i:t)}),J(()=>{this.formValue()?.usePathway||this.firstPathway.set(void 0)}),J(()=>{this.authorJourney()!=="slingui"?(this.getControl(this.internalForm,"usePlacementTest").setValue(!1),this.getControl(this.internalForm,"usePlacementTest").disable(),this.getControl(this.internalForm,"setAutomaticPathway").setValue(!1),this.getControl(this.internalForm,"setAutomaticPathway").disable()):(this.getControl(this.internalForm,"usePlacementTest").enable(),this.getControl(this.internalForm,"setAutomaticPathway").enable())})}ngOnInit(){let t=this.form().getRawValue();this.formValue.set(t),this.subscriptions.push(this.form().valueChanges.pipe(Rt(300)).subscribe(()=>{let n=this.form().getRawValue();this.formValue.set(n),this.internalForm.patchValue(n)}),this.internalForm.valueChanges.subscribe(n=>{this.form().patchValue(n,{emitEvent:!1});let{usePathway:i,setAutomaticPathway:s}=n;i&&!s?(this.getControl(this.form(),"pathway").enable({emitEvent:!1}),this.getControl(this.form(),"journey").enable({emitEvent:!1}),this.getControl(this.form(),"weeklyGoal").enable({emitEvent:!1})):i&&s?(this.getControl(this.form(),"pathway").disable({emitEvent:!1}),this.getControl(this.form(),"journey").disable({emitEvent:!1}),this.getControl(this.form(),"weeklyGoal").enable({emitEvent:!1})):(this.getControl(this.form(),"pathway").disable({emitEvent:!1}),this.getControl(this.form(),"journey").disable({emitEvent:!1}),this.getControl(this.form(),"weeklyGoal").disable({emitEvent:!1}))}),this.getControl(this.internalForm,"usePathway").valueChanges.subscribe(n=>{n||this.getControl(this.internalForm,"setAutomaticPathway").setValue(!1,{emitEvent:!1})}),this.getControl(this.internalForm,"setAutomaticPathway").valueChanges.subscribe(n=>{n&&(this.getControl(this.internalForm,"usePlacementTest").setValue(!0,{emitEvent:!1}),this.getControl(this.internalForm,"usePathway").setValue(!0))}),this.getControl(this.internalForm,"usePlacementTest").valueChanges.subscribe(n=>{n||this.getControl(this.internalForm,"setAutomaticPathway").setValue(!1,{emitEvent:!1})}
1)),this.internalForm.patchValue(t)}ngOnDestroy(){this.subscriptions.forEach(t=>t.unsubscribe())}getControl(t,n){return t.get(n)}save(){this.savePathway.emit(this.form().getRawValue())}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-pathway-settings"]],inputs:{form:[1,"form"],organizationId:[1,"organizationId"],autoSelectJourney:[1,"autoSelectJourney"]},outputs:{savePathway:"savePathway"},standalone:!1,decls:29,vars:28,consts:[[1,"student-pathway-settings",3,"ngSubmit","formGroup"],[1,"student-pathway-settings__toggles"],[1,"student-pathway-settings__toggle-row"],[1,"student-pathway-settings__toggle",3,"formControl"],[1,"material-symbols-outlined","student-pathway-settings__info",3,"matTooltip"],[1,"student-pathway-settings__fields"],["role","alert",1,"alert","alert-info","mb-5","d-flex","align-items-center"],[1,"student-pathway-settings__actions"],["tabindex","5","mat-flat-button","","type","submit","color","primary",3,"disabled"],["appearance","outline",1,"w-100"],["matInput","","type","number",3,"formControl","placeholder"],[3,"firstPathway","changeAuthorJourney","formInput","autoSelect","preSelected","plan"],[1,"material-symbols-outlined","pe-5"],[1,"text-start"],[3,"routerLink"]],template:function(n,i){n&1&&(o(0,"form",0),v("ngSubmit",function(){return i.save()}),o(1,"div",1)(2,"div",2)(3,"mat-slide-toggle",3),r(4),B(5,"translate"),a(),o(6,"mat-icon",4),B(7,"translate"),r(8," info "),a()(),o(9,"div",2)(10,"mat-slide-toggle",3),r(11),B(12,"translate"),a(),o(13,"mat-icon",4),B(14,"translate"),r(15," info "),a()(),o(16,"div",2)(17,"mat-slide-toggle",3),r(18),B(19,"translate"),a(),o(20,"mat-icon",4),B(21,"translate"),r(22," info "),a()()(),u(23,ir,8,14,"div",5)(24,ar,8,3,"div",6),o(25,"div",7)(26,"button",8),r(27),B(28,"translate"),a()()()),n&2&&(p("formGroup",i.form()),l(3),p("formControl",i.getControl(i.internalForm,"usePlacementTest")),l(),D(" ",Y(5,14,"inviteEdit.tabs.pathwaysTab.usePlacementTestToogle")," "),l(2),p("matTooltip",Y(7,16,"inviteEdit.tabs.pathwaysTab.usePlacementTestTooltip")),l(4),p("formControl",i.getControl(i.internalForm,"setAutomaticPathway")),l(),D(" ",Y(12,18,"inviteEdit.tabs.pathwaysTab.setAutomaticPathwayAssignmentToogle")," "),l(2),p("matTooltip",Y(14,20,"inviteEdit.tabs.pathwaysTab.setAutomaticPathwayAssignmentTooltip")),l(4),p("formControl",i.getControl(i.internalForm,"usePathway")),l(),D(" ",Y(19,22,"inviteEdit.tabs.pathwaysTab.usePathwayToogle")," "),l(2),p("matTooltip",Y(21,24,"inviteEdit.tabs.pathwaysTab.usePathwayTooltip")),l(3),h(i.usePathway()?23:-1),l(),h(i.isDisabled()&&i.isDemo()?24:-1),l(2),p("disabled",i.isDisabled()),l(),D(" ",Y(28,26,"inviteEdit.tabs.pathwaysTab.saveButton")," "))},dependencies:[Ht,ct,ei,dt,zt,ue,At,Dt,F,it,Pt,S,at,si,Xt,Da,qt],styles:[".student-pathway-settings[_ngcontent-%COMP%]{width:100%;min-width:0;max-width:500px;box-sizing:border-box;margin:0 auto;padding:0;overflow:visible}.student-pathway-settings__toggles[_ngcontent-%COMP%]{display:grid;gap:12px;margin:0;min-width:0;max-width:100%;box-sizing:border-box}.student-pathway-settings__toggle-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;min-height:36px;box-sizing:border-box;padding:3px 0;text-align:left}.student-pathway-settings__info[_ngcontent-%COMP%]{width:18px;height:18px;flex:0 0 auto;color:var(--mat-sys-on-surface-variant);font-size:18px;line-height:18px;cursor:help;opacity:.72}.student-pathway-settings__fields[_ngcontent-%COMP%]{display:grid;gap:14px;margin-top:20px;padding:8px 4px 2px 0}.student-pathway-settings__actions[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:26px}.student-pathway-settings__actions[_ngcontent-%COMP%] button[mat-flat-button][_ngcontent-%COMP%]{min-width:174px}mat-form-field[_ngcontent-%COMP%], app-student-journey-selector[_ngcontent-%COMP%]{display:block;width:100%}[_nghost-%COMP%] .student-pathway-settings__toggle .mdc-form-field{align-items:center;gap:8px;max-width:100%}[_nghost-%COMP%] .student-pathway-settings__toggle .mdc-switch{flex:0 0 auto;margin-right:0!important}[_nghost-%COMP%] .student-pathway-settings__toggle .mdc-label{padding-left:0;font-family:Syne;font-style:normal;font-weight:400;font-size:14px;letter-spacing:.25px;white-space:normal;line-height:20px}[_nghost-%COMP%] .student-pathway-settings__fields .mat-mdc-form-field-subscript-wrapper{display:none}"]})}}return e})();function rr(e){if(!(e.get("usePathway")?.value===!0))return null;let t=e.get("journey")?.value?.id,n=e.get("pathway")?.value?.id;return typeof t=="string"&&t.trim()&&typeof n=="string"&&n.trim()?null:{pathwayIdentifiersRequired:!0}}var Fa=(()=>{class e{constructor(){this.dialogRef=f(vt),this.data=f(Ct),this.initialPathway={id:this.data.pathwayId,_id:this.data.pathwayId,name:this.data.pathway,description:this.data.pathway,contents:[],exercises:[]},this.initialJourney={id:this.data.journeyId,_id:this.data.journeyId,name:this.data.journey,author:this.data.journeyAuthor,isDefault:!0,pathways:[this.initialPathway]},this.formJourney=new _t({usePathway:new I(this.data.enablePathways),usePlacementTest:new I(this.data.enablePlacementTest),setAutomaticPathway:new I(this.data.assignPathwayFromPlacementTest),weeklyGoal:new I(this.data.weeklyExerciseGoal,{nonNullable:!0,validators:[xt.required,xt.min(1),xt.max(99)]}),journey:new I(this.data.creating?null:this.initialJourney),pathway:new I(this.data.creating?null:this.initialPathway)},{validators:[rr]}),Nt(()=>{requestAnimationFrame(()=>this.dialogRef.addPanelClass("test-pathways-dialog-panel--ready"))})}save(){let t=this.formJourney.getRawValue(),n=t.journey?.id?.trim()??"",i=t.pathway?.id?.trim()??"";if(this.formJourney.invalid){this.formJourney.markAllAsTouched();return}let s=!!t.usePlacementTest,d=s&&!!t.setAutomaticPathway,x=Number(t.weeklyGoal??this.data.weeklyExerciseGoal);this.dialogRef.close({payload:ot({weeklyGoal:x,usePathway:!!t.usePathway,usePlacementTest:s,setAutomaticPathway:d},n&&i?{currentJourneyId:n,currentPathwayId:i}:{}),settings:{weeklyExerciseGoal:x,journey:t.journey?.name??this.data.journey,pathway:t.pathway?.name??this.data.pathway,journeyId:n,journeyAuthor:t.journey?.author??this.data.journeyAuthor,pathwayId:i,enablePlacementTest:s,assignPathwayFromPlacementTest:d,enablePathways:!!t.usePathway}
1})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-test-pathways-dialog"]],standalone:!1,decls:12,vars:3,consts:[[1,"mat-typography","slingui-popup","test-pathways-popup"],[1,"test-pathways-popup__header"],[1,"material-symbols-outlined"],[3,"savePathway","form","organizationId","autoSelectJourney"],["mat-button","","color","primary","mat-dialog-close","",1,"test-pathways-cancel"]],template:function(n,i){n&1&&(o(0,"mat-dialog-content",0)(1,"div",1)(2,"mat-icon",2),r(3,"tune"),a(),o(4,"h3"),r(5,"Test & Pathways"),a(),g(6,"mat-divider"),o(7,"p"),r(8," Choose which exercise features your student will have access to, such as Placement Tests and Pathways. "),a()(),o(9,"app-student-pathway-settings",3),v("savePathway",function(){return i.save()}),a(),o(10,"button",4),r(11," Cancel "),a()()),n&2&&(l(9),p("form",i.formJourney)("organizationId",i.data.organizationId)("autoSelectJourney",!i.data.creating))},dependencies:[S,nt,bt,wt,F,Aa],styles:[".test-pathways-popup[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;max-width:560px;max-height:calc(100dvh - 32px);margin:0;padding-top:24px;padding-bottom:20px}.test-pathways-popup__header[_ngcontent-%COMP%]{width:100%;max-width:364px;margin:0 auto 28px;display:grid;justify-items:center;text-align:center}.test-pathways-popup__header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-top:12px;margin-bottom:12px;transform:scale(1.5)}.test-pathways-popup__header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-family:Tanker-Regular,Tanker,Syne,sans-serif;font-style:normal;font-weight:400;font-size:24px;line-height:32px;text-align:center;color:#085e55}.test-pathways-popup__header[_ngcontent-%COMP%] mat-divider[_ngcontent-%COMP%]{width:148px;margin:6px auto 12px}.test-pathways-popup__header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;margin:0;font-family:Syne;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.25px}app-student-pathway-settings[_ngcontent-%COMP%]{display:block;width:100%;min-width:0;text-align:left}.test-pathways-cancel[_ngcontent-%COMP%]{display:flex;margin:8px auto 0} .test-pathways-dialog-panel{visibility:hidden} .test-pathways-dialog-panel.test-pathways-dialog-panel--ready{visibility:visible} .test-pathways-dialog-panel .mat-mdc-dialog-content{max-height:calc(100dvh - 32px)} .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid #e2e2e2;box-shadow:0 1px 4px #0035431a;border-radius:16px}"]})}}return e})();var ja=(()=>{class e{constructor(){this.dialogRef=f(vt),this.data=f(Ct),Nt(()=>{requestAnimationFrame(()=>this.dialogRef.addPanelClass("test-pathways-dialog-panel--ready"))})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-billing-info-dialog"]],decls:12,vars:2,consts:[[1,"mat-typography","slingui-popup","test-pathways-popup"],[1,"test-pathways-popup__header"],[1,"material-symbols-outlined"],[3,"inviteId","organizationId"],["mat-button","","color","primary","mat-dialog-close","",1,"test-pathways-cancel"]],template:function(n,i){n&1&&(o(0,"mat-dialog-content",0)(1,"div",1)(2,"mat-icon",2),r(3,"receipt_long"),a(),o(4,"h3"),r(5,"MANAGE BILLING"),a(),g(6,"mat-divider"),o(7,"p"),r(8,"Easily track expected student payments and stay organized."),a()(),g(9,"app-student-subscription",3),o(10,"button",4),r(11," Cancel "),a()()),n&2&&(l(9),p("inviteId",i.data.inviteId)("organizationId",i.data.organizationId))},dependencies:[Mt,bt,wt,L,F,k,S,Jt,nt,pn,mn],styles:[".test-pathways-popup[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;max-width:560px;max-height:calc(100dvh - 32px);margin:0;padding-top:24px;padding-bottom:20px;position:relative}.test-pathways-popup__header[_ngcontent-%COMP%]{width:100%;max-width:364px;margin:0 auto 28px;display:grid;justify-items:center;text-align:center}.test-pathways-popup__header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-top:12px;margin-bottom:12px;transform:scale(1.5)}.test-pathways-popup__header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-family:Tanker-Regular,Tanker,Syne,sans-serif;font-style:normal;font-weight:400;font-size:24px;line-height:32px;text-align:center;color:#085e55}.test-pathways-popup__header[_ngcontent-%COMP%] mat-divider[_ngcontent-%COMP%]{width:148px;margin:6px auto 12px}.test-pathways-popup__header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;margin:0;font-family:Syne;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.25px}.test-pathways-cancel[_ngcontent-%COMP%]{display:flex;margin:8px auto 0}
1 app-student-subscription{display:block;width:100%;min-width:0;text-align:left} app-student-subscription .student-card{box-shadow:none!important;padding:0!important;margin:0!important;border:none!important;background:transparent!important} app-student-subscription .text-center{display:none!important} app-student-subscription .buttons{display:flex;justify-content:center;margin-top:26px} app-student-subscription .left-buttons{width:100%;display:flex;justify-content:center} app-student-subscription .left-buttons button[mat-flat-button]{min-width:174px} .test-pathways-dialog-panel{visibility:hidden} .test-pathways-dialog-panel.test-pathways-dialog-panel--ready{visibility:visible} .test-pathways-dialog-panel .mat-mdc-dialog-content{max-height:calc(100dvh - 32px)} .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid #e2e2e2;box-shadow:0 1px 4px #0035431a;border-radius:16px}"],changeDetection:0})}}return e})();var lr=/^\d{4}-\d{2}-\d{2}$/,T=(()=>{class e{constructor(){this.maxTabIndex=4,this.dialog=f(Yt),this.snackBar=f(mt),this.inviteService=f(ne),this.globalsService=f(mi),this.queryClient=f(ee),this.router=f($t),this.posthogService=f(gi),this.saveEventMutation=la(),this.profileFormPatchKey=P(""),this.exerciseSettingsSaveInFlight=!1,this.routeIdentityVersion=0,this.testPathwaysDialogOpen=!1,this.organizationId=P(""),this.inviteId=P(""),this.currentTab=P(0),this.canDeleteStudent=y(()=>{let t=this.globalsService.profile();if(!t)return!1;let n=t.roles?.find(i=>i.organizationId===this.organizationId());return n?.permissions?n.permissions.includes("invites:delete:any")||n.permissions.includes("invites:delete:own"):!1}),this.canUpdateStudent=y(()=>{let t=this.globalsService.profile();if(!t)return!1;let n=t.roles?.find(i=>i.organizationId===this.organizationId());return n?.permissions?n.permissions.includes("invites:update:any")||n.permissions.includes("invites:update:own"):!1}),this.canManageBilling=y(()=>{let t=this.globalsService.profile();if(!t)return!1;let n=t.roles?.find(i=>i.organizationId===this.organizationId());return n?.permissions?n.permissions.includes("invites-billing:update:any")||n.permissions.includes("invites-billing:update:own")||n.permissions.includes("invites-billing:read:any")||n.permissions.includes("invites-billing:read:own"):!1}),this.localExerciseSettings=P(null),this.studentProfileForm=new _t({name:new I("",{nonNullable:!0,validators:[xt.required]}),email:new I({value:"",disabled:!0},{nonNullable:!0}),phone:new I(null),dateOfBirth:new I("",{nonNullable:!0,validators:[xt.pattern(lr)]}),legalDocumentType:new I({value:"CPF",disabled:!0},{nonNullable:!0}),cpf:new I("",{nonNullable:!0}),teachers:new I([],{nonNullable:!0}),description:new I("",{nonNullable:!0}),inviteLink:new I({value:"",disabled:!0},{nonNullable:!0}),createdAt:new I({value:"",disabled:!0},{nonNullable:!0}),status:new I({value:"",disabled:!0},{nonNullable:!0})}),this.fallbackExerciseSettings={weeklyExerciseGoal:15,journey:"General english",pathway:"Starter Track (Pre AI)",journeyId:"",journeyAuthor:"",pathwayId:"",enablePlacementTest:!0,assignPathwayFromPlacementTest:!1,enablePathways:!0},this.newExerciseSettings={weeklyExerciseGoal:5,journey:"",pathway:"",journeyId:"",journeyAuthor:"",pathwayId:"",enablePlacementTest:!1,assignPathwayFromPlacementTest:!1,enablePathways:!1},this.fallbackStudent={name:"Student Name",initials:"SN",email:"[email protected]",phone:"+1 555 010 2026",description:"Student focused on conversational confidence and interview preparation.",inviteLink:"https://link.slingui.com/gfdsfgevgdfgdfgg4gfd65g4",invitationPending:!1,createdAt:"Jan 06, 2026",status:"Accepted",teacher:"Teacher infos"},this.invoices=P(Array.from({length:3},()=>({month:"Month 2025",due:"Due: Month 2025",amount:"R$ 134",status:"Paid"}))),this.callHistory=P(Array.from({length:6},()=>({date:"Jan 02, 2026",startTime:"09:03 AM",duration:"5m 12s",teacher:"Jan 02, 2026",student:"09:03 AM",id:"asdasdasdasdasdas",notes:"Class Notes"}))),this.answerSummaryTooltip=`Green: correct answers 2Red: wrong answers 3Red x: Total wrong attempts 4White: Unanswered question`,this.studentInviteQuery=U(()=>({queryKey:["student-detail","invite",this.inviteId()],enabled:!!this.inviteId(),queryFn:()=>V(this.inviteService.getInviteByInviteId(this.inviteId())).then(t=>t)})),this.inviteBalanceQuery=U(()=>({queryKey:["student-detail","invite-balance",this.inviteId()],enabled:!!this.inviteId(),queryFn:()=>V(this.inviteService.getInviteBalance(this.inviteId()))})),this.inviteBalanceEventsQuery=U(()=>({queryKey:["student-detail","invite-balance-events",this.inviteId()],enabled:!!this.inviteId(),queryFn:()=>V(this.inviteService.getInviteBalanceEvents(this.inviteId(),{skip:0,limit:10}))})),this.settingsOwnerId=y(()=>{let t=this.inviteRecord(),n=this.record(t?.user);
4return this.string(n?._id)??this.string(n?.id)??this.string(t?._id)??this.string(t?.id)??""}),this.studentSettingsQuery=U(()=>{let t=this.settingsOwnerId();return{queryKey:["student-detail","student-settings",t],enabled:!!t,retry:3,refetchOnWindowFocus:!1,refetchOnReconnect:!1,queryFn:()=>V(this.inviteService.getSettings(t)).then(n=>n)}}),this.coreLoading=y(()=>this.studentInviteQuery.isFetching()),this.coreError=y(()=>this.studentInviteQuery.isError()),this.studentSettingsLoading=y(()=>this.studentSettingsQuery.isFetching()&&!this.localExerciseSettings()),this.studentSettingsUnavailable=y(()=>this.studentSettingsQuery.isError()&&!this.localExerciseSettings()),this.exerciseSettings=y(()=>{let t=this.localExerciseSettings();return t||(this.studentSettingsQuery.isError()?this.fallbackExerciseSettings:this.studentSettingsQuery.isFetching()&&!this.hasStudentSettings(this.studentSettingsQuery.data())?this.fallbackExerciseSettings:this.mapStudentSettings(this.studentSettingsQuery.data()))}),this.studentAvatarUserId=y(()=>{let t=this.inviteRecord(),n=this.record(t?.user);return this.string(n?._id)??this.string(n?.id)??"no-user"}),this.selectedTeachers=y(()=>{let t=this.inviteRecord()?.selectedTeachers;return Array.isArray(t)?t.flatMap(n=>{let i=this.record(n),s=this.string(i?._id)??this.string(i?.id);if(!i||!s)return[];let d=this.record(i.metadata);return[{_id:s,id:this.string(i.id),firstName:this.string(i.firstName),lastName:this.string(i.lastName),email:this.string(i.email),metadata:d?{name:this.string(d.name)}:void 0}]}):[]}),this.selectedGroups=y(()=>{let t=this.inviteRecord(),n=t?.selectedGroups??t?.groups??t?.userGroups??[],i=Array.isArray(n)?n.flatMap(d=>{if(typeof d=="string")return[{id:d,name:d}];if(d&&typeof d=="object"){let x=d,b=this.string(x._id)??this.string(x.id)??"",j=this.string(x.name)??this.string(x.title)??b;if(j)return[{id:b,name:j}]}return[]}):[],s=[{id:"g1",name:"Beginners English A1"},{id:"g2",name:"Intermediate English B2"},{id:"g3",name:"Advanced Conversation"},{id:"g4",name:"Business Communication"},{id:"g5",name:"Grammar Workshop"},{id:"g6",name:"IELTS Preparation"},{id:"g7",name:"Morning Conversation"},{id:"g8",name:"Evening Discussion"},{id:"g9",name:"Public Speaking"},{id:"g10",name:"Vocabulary Builders"},{id:"g11",name:"Accent Reduction"},{id:"g12",name:"Weekend Intensive"},{id:"g13",name:"TOEFL Masterclass"},{id:"g14",name:"Business Writing & Email"},{id:"g15",name:"Pronunciation Lab"},{id:"g16",name:"Slang & Idioms Master"},{id:"g17",name:"Job Interview Prep"},{id:"g18",name:"Legal English Fundamentals"},{id:"g19",name:"Medical English Skills"},{id:"g20",name:"Academic Reading & Writing"},{id:"g21",name:"Phonetics & Listening"},{id:"g22",name:"Corporate Executives Circle"},{id:"g23",name:"DELE Exam Prep"},{id:"g24",name:"Global Leadership Forum"},{id:"g25",name:"Tech & IT English"}];return i.length>0?[...i,...s]:s}),this.studentSummary=y(()=>{let t=this.inviteRecord(),n=this.record(t?.metadata),i=this.record(t?.user),s=!!t,d=this.string(n?.name)??this.fallbackStudent.name,x=this.string(t?.id)??this.inviteId(),b=x?`${location.origin}/invite/link/${x}?whitelabel=${this.organizationId()}`:this.fallbackStudent.inviteLink;return{name:d,initials:this.studentInitials(d),email:s?this.string(i?.email)??this.string(t?.email)??"":this.fallbackStudent.email,phone:s?this.string(n?.phone)??"":this.fallbackStudent.phone,description:s?this.string(n?.description)??"":this.fallbackStudent.description,inviteLink:b,invitationPending:t?this.isInvitationPending(t):!1,createdAt:t?.createdAt?pe(t.createdAt,"mediumDate","en-US"):s?"":this.fallbackStudent.createdAt,status:t?this.inviteStatus(t):this.fallbackStudent.status,teacher:this.teacherName(this.selectedTeachers()[0])??this.fallbackStudent.teacher}}),this.requestContext=y(()=>{let t=this.organizationId(),n=this.inviteId(),i=this.inviteRecord();if(!t||!n||!i)return null;let s=this.record(i.user),d=this.record(this.globalsService.profile()),x=this.record(d?.user),b=this.record(d?.userMetadata),j={organizationId:t,inviteId:n}
4,yt=this.string(i.userId)??this.string(s?._id)??this.string(s?.id),tt=this.string(s?._id)??this.string(s?.id)??this.string(i.userId),Gt=this.string(s?.firebaseUserUid),X=this.string(s?.email)??this.string(i.email),Oe=this.string(d?.firebaseUserUid),Lt=this.string(d?.email)??this.string(x?.email)??this.string(b?.email);return yt&&(j.studentOidcId=yt),tt&&(j.userId=tt),Gt&&(j.studentFirebaseId=Gt),X&&(j.studentEmail=X),Oe&&(j.teacherFirebaseId=Oe),Lt&&(j.teacherEmail=Lt),j}),this.pathwaysEnabled=y(()=>this.exerciseSettings().enablePathways),this.weeklyGoal=y(()=>({goal:this.exerciseSettings().weeklyExerciseGoal})),this.pathway=y(()=>({journey:this.exerciseSettings().journey,title:this.exerciseSettings().pathway})),this.backLink=y(()=>this.posthogService?.isFeatureEnabled("invite-crm")?["/invites",this.organizationId()]:["/students",this.organizationId()]),this.updateExerciseSettingsMutation=Ot(()=>({mutationFn:t=>{let{result:n,settingsOwnerId:i,inviteId:s}=t,d=n.payload.currentJourneyId?.trim(),x=n.payload.currentPathwayId?.trim();if(!i||n.payload.usePathway&&(!d||!x))return Promise.reject(new Error("Student settings are invalid."));let b=ot({weeklyGoal:n.payload.weeklyGoal,usePathway:n.payload.usePathway,usePlacementTest:n.payload.usePlacementTest,setAutomaticPathway:n.payload.setAutomaticPathway},d&&x?{currentJourneyId:d,currentPathwayId:x}:{});return V(this.inviteService.saveSettings(s,b))},onSuccess:(t,n)=>{this.inviteId()===n.inviteId&&(this.localExerciseSettings.set(n.result.settings),this.queryClient.invalidateQueries({queryKey:["student-detail","student-settings",n.settingsOwnerId]}),this.snackBar.open("Saved.","Ok",{duration:3e3}))},onError:()=>{this.snackBar.open("There was something wrong on update configurations from this student.","Ok",{duration:5e3})},onSettled:()=>{this.exerciseSettingsSaveInFlight=!1}})),this.updateStudentProfileMutation=Ot(()=>({mutationFn:t=>V(this.inviteService.edit({inviteId:t.inviteId,teachers:t.values.teachers,metadata:this.buildInviteMetadata(t.values,t.legalDocuments)})),onSuccess:(t,n)=>{this.snackBar.open("Saved.","Ok",{duration:3e3}),this.queryClient.invalidateQueries({queryKey:["student-detail","invite",n.inviteId]})},onError:()=>{this.snackBar.open("Could not update student information.","Ok",{duration:5e3})}})),J(()=>{if(this.studentInviteQuery.isError()){this.clearStudentProfile();return}this.patchStudentProfileForm(this.studentInviteQuery.data())})}initialize(t,n){(this.organizationId()!==t||this.inviteId()!==n)&&(++this.routeIdentityVersion,this.localExerciseSettings.set(null),this.clearStudentProfile()),this.organizationId.set(t),this.inviteId.set(n),this.currentTab.set(this.historyTab())}changeTab(t){!Number.isInteger(t)||t<0||t>this.maxTabIndex||(this.currentTab.set(t),typeof history<"u"&&history.replaceState(ae(ot({},history.state),{studentDetailTab:t}),""))}goToExercises(){this.changeTab(1)}goToClassroom(){this.changeTab(2)}goToBilling(){this.changeTab(3)}openBillingInfoDialog(){this.dialog.open(ja,{panelClass:"test-pathways-dialog-panel",width:"560px",maxWidth:"calc(100vw - 32px)",maxHeight:"calc(100dvh - 32px)",data:{inviteId:this.inviteId(),organizationId:this.organizationId()}})}openInviteDelete(){this.dialog.open(Hi,{data:{inviteId:this.inviteId()}}).afterClosed().subscribe(n=>{n&&this.router.navigate(["/","students",this.organizationId()])})}openScheduleClassDialog(){let t=new Date;this.dialog.open(ra,{width:"auto",minWidth:"600px",maxWidth:"95vw",panelClass:"update-event-dialog-panel",data:{organizationId:this.organizationId(),startDate:t.toISOString(),participants:[{userId:this.studentAvatarUserId(),name:this.studentSummary().name,role:"participant",origin:"internal"}]}}).afterClosed().subscribe(i=>{if(i?.action==="save"){let s=i.event.organizationId||this.organizationId();this.saveEventMutation.mutate(ae(ot({},i.event),{organizationId:s}),{onSuccess:()=>{this.queryClient.invalidateQueries({queryKey:["student-detail","next-classes"]})}})}})}openAdjustBalanceDialog(){this.dialog.open(Yi,{data:{inviteId:this.inviteId(),selectedTab:"credits"},width:"520px",maxWidth:"95vw"}).afterClosed().subscribe(n=>
4{n&&(this.queryClient.invalidateQueries({queryKey:["student-detail","invite-balance",this.inviteId()]}),this.queryClient.invalidateQueries({queryKey:["student-detail","invite-balance-events",this.inviteId()]}))})}openTestPathwaysDialog(){if(this.exerciseSettingsSaveInFlight||this.testPathwaysDialogOpen||this.studentSettingsQuery.isFetching()&&!this.localExerciseSettings()&&!this.hasStudentSettings(this.studentSettingsQuery.data()))return;let t=this.inviteId().trim(),n=this.settingsOwnerId(),i=this.organizationId(),s=this.routeIdentityVersion;this.testPathwaysDialogOpen=!0;let d=!this.studentSettingsQuery.isError()&&this.hasStudentSettings(this.studentSettingsQuery.data());this.dialog.open(Fa,{data:ae(ot({},d?this.exerciseSettings():this.newExerciseSettings),{organizationId:i,creating:!d}),panelClass:"test-pathways-dialog-panel",width:"560px",maxWidth:"calc(100vw - 32px)",maxHeight:"calc(100dvh - 32px)"}).afterClosed().subscribe(b=>{this.testPathwaysDialogOpen=!1,!(!b||this.exerciseSettingsSaveInFlight||!t||this.routeIdentityVersion!==s||this.inviteId().trim()!==t||this.settingsOwnerId()!==n||this.organizationId()!==i||b.payload.usePathway&&(!b.payload.currentJourneyId?.trim()||!b.payload.currentPathwayId?.trim()))&&(this.exerciseSettingsSaveInFlight=!0,this.updateExerciseSettingsMutation.mutate({result:b,inviteId:t,settingsOwnerId:n}))})}copyInviteLink(){return ut(this,null,function*(){try{if(typeof navigator>"u"||!navigator.clipboard?.writeText)throw new Error("Clipboard unavailable");yield navigator.clipboard.writeText(this.studentSummary().inviteLink),this.snackBar.open("Invitation link copied","Close",{duration:2400})}catch{this.snackBar.open("Could not copy the link. Select it manually.","Close",{duration:3200})}})}emailStudent(){if(typeof window>"u")return;let t=encodeURIComponent("Slingui class update");window.location.href=`mailto:${this.studentSummary().email}?subject=${t}`}saveStudentProfile(){if(this.studentProfileForm.invalid)return;let t=this.record(this.inviteRecord()?.metadata);this.updateStudentProfileMutation.mutate({inviteId:this.inviteId(),values:this.studentProfileForm.getRawValue(),legalDocuments:t?.legalDocuments})}inviteRecord(){if(!(this.studentInviteQuery.isFetching()||this.studentInviteQuery.isError()))return this.record(this.studentInviteQuery.data())}clearStudentProfile(){this.profileFormPatchKey.set(""),this.studentProfileForm.reset()}patchStudentProfileForm(t){let n=this.record(t);if(!n)return;let i=this.record(n.metadata),s=this.string(n.id)??this.string(n._id)??"",d=`${s}:${this.string(n.updatedAt)??""}`;if(this.profileFormPatchKey()===d)return;this.profileFormPatchKey.set(d);let x=this.findCpfLegalDocument(i?.legalDocuments);this.studentProfileForm.patchValue({name:this.string(i?.name)??"",email:this.string(n.email)??"",phone:this.string(i?.phone)??null,dateOfBirth:this.string(i?.dateOfBirth)??"",legalDocumentType:"CPF",cpf:this.legalDocumentValue(x),teachers:this.selectedTeachers().map(b=>b._id),description:this.string(i?.description)??"",inviteLink:`${location.origin}/invite/link/${s}?whitelabel=${this.organizationId()}`,createdAt:n.createdAt?pe(n.createdAt,"mediumDate","en-US"):"",status:this.inviteStatus(n)})}buildInviteMetadata(t,n){return{name:t.name,description:t.description??"",legalDocuments:this.buildLegalDocuments(n,t.cpf),phone:t.phone??"",dateOfBirth:t.dateOfBirth??""}}buildLegalDocuments(t,n){let i=this.legalDocumentsFrom(t),s=this.findCpfLegalDocumentIndex(i),d=i.filter((b,j)=>j!==s&&!this.isTypedCpfLegalDocument(b)).map(b=>ot({},b)),x=typeof n=="string"?n.trim():"";return x?[...d,{type:"CPF",value:x,country:"BR"}]:d}findCpfLegalDocument(t){let n=this.legalDocumentsFrom(t),i=this.findCpfLegalDocumentIndex(n);return i>=0?n[i]:void 0}findCpfLegalDocumentIndex(t){let n=t.findIndex(i=>this.isTypedCpfLegalDocument(i));return n>=0?n:t.findIndex(i=>!i.type)}legalDocumentsFrom(t){return Array.isArray(t)?t.flatMap(n=>{let i=this.record(n);return i?[ae(ot({},i),{type:this.string(i.type),value:this.string(i.value),country:this.string(i.country)})]:[]}):[]}isTypedCpfLegalDocument(t){return typeof t.type=="string"&&t.type.toUpperCase()==="CPF"}legalDocumentValue(t){return typeof t?.value=="string"?t.value:""}hasMetadataValue(t){return typeof t=="string"&&t.trim().length>0}hasStudentSettings(t){let n=this.record(t);if(!n)return!1;let i=this.record(n.data)??n,s=this.record(i.journeySettings);return[i.weeklyGoal,i.usePathway,i.usePlacementTest,i.setAutomaticPathway,i.currentJourney,i.currentJourneyId,i.currentPathwayId,s?.weeklyGoal,s?.usePathway,s?.usePlacementTest,s?.setAutomaticPathway,s?.currentJourney,s?.currentJourneyId,s?.currentPathwayId].some(d=>d!=null)}mapStudentSettings(t){let n=this.record(t);if(!n)return this.fallbackExerciseSettings;let i=this.record(n.data)??n,s=this.record(i.journeySettings)??this.record(n.journeySettings)??i,d=this.record(s.currentJourney)??this.record(i.currentJourney),x=this.firstString(s.currentPathwayId,i.currentPathwayId),b=d?.pathways,yt=(Array.isArray(b)?b.map(Lt=>this.record(Lt)).filter(Lt=>!!Lt):[]).find(Lt=>this.firstString(Lt.id,Lt._id)===x),tt=Number(s.weeklyGoal),Gt=i.usePlacementTest??s.usePlacementTest,X=i.setAutomaticPathway??s.setAutomaticPathway,Oe=i.usePathway??s.usePathway;return{weeklyExerciseGoal:Number.isFinite(tt)?tt:this.fallbackExerciseSettings.weeklyExerciseGoal,journey:this.firstString(d?.name,d?.title)??this.fallbackExerciseSettings.journey,pathway:this.firstString(yt?.name,yt?.title)??this.fallbackExerciseSettings.pathway,journeyId:this.firstString(d?.id,d?._id,s.currentJourneyId)??this.fallbackExerciseSettings.journeyId,journeyAuthor:this.firstString(d?.author)??this.fallbackExerciseSettings.journeyAuthor,pathwayId:x??this.fallbackExerciseSettings.pathwayId,enablePlacementTest:typeof Gt=="boolean"?Gt:this.fallbackExerciseSettings.enablePlacementTest,assignPathwayFromPlacementTest:typeof X=="boolean"?X:this.fallbackExerciseSettings.assignPathwayFromPlacementTest,enablePathways:typeof Oe=="boolean"?Oe:this.fallbackExerciseSettings.enablePathways}}inviteStatus(t){return this.hasTerminalTimestamp(t.rejectedAt)?"Rejected":this.hasTerminalTimestamp(t.acceptedAt)?"Accepted":this.hasTerminalTimestamp(t.declinedAt)?"Declined":this.hasTerminalTimestamp(t.deactivatedAt)?"Deactivated":this.hasTerminalTimestamp(t.deletedAt)?"Deleted":this.hasTerminalTimestamp(t.removedAt)?"Removed":"Pending"}isInvitationPending(t){return![t.rejectedAt,t.acceptedAt,t.declinedAt,t.deactivatedAt,t.deletedAt,t.removedAt].some(n=>this.hasTerminalTimestamp(n))}hasTerminalTimestamp(t){return t!=null}
4studentInitials(t){let n=t.trim().split(/\s+/).filter(Boolean);return n.length===0?this.fallbackStudent.initials:n.slice(0,2).map(i=>i[0]).join("").toUpperCase()}teacherName(t){return t&&([t.firstName,t.lastName].filter(Boolean).join(" ").trim()||t.email||t.metadata?.name)||null}historyTab(){if(typeof history>"u")return 0;let t=Number(history.state?.studentDetailTab);return Number.isInteger(t)&&t>=0&&t<=this.maxTabIndex?t:0}record(t){return t!==null&&typeof t=="object"?t:void 0}string(t){return typeof t=="string"&&t.trim()?t.trim():void 0}firstString(...t){return t.map(n=>this.string(n)).find(Boolean)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();var It=(()=>{class e{constructor(t){this.httpClient=t}getAssignedExercises(t){return ut(this,null,function*(){let n=yield this.getAssignedExercisesResponse(t);return this.mapAssignedExerciseItems(n?.items??[],!1)})}getAssignedPathways(t){return ut(this,null,function*(){let n=yield this.getAssignedExercisesResponse(t);return this.mapAssignedExerciseItems(n?.items??[],!0)})}removeAssignedExercise(t,n){return ut(this,null,function*(){let i=yield this.removeAssignedExercises(t,n,"assigned");return this.deletedExerciseIds(i,n)})}removeAssignedPathway(t,n){return ut(this,null,function*(){let i=yield this.removeAssignedExercises(t,n,"pathway");return this.deletedExerciseIds(i,n)})}getDailyEngagement(t,n,i){return V(this.httpClient.post(`${st.api}/users/exercises/daily-engagement`,this.cleanPayload({organizationId:t.organizationId,studentOidcId:t.studentOidcId,startDate:n,endDate:i,studentEmail:t.studentEmail})))}getLastActivity(t){return V(this.httpClient.post(`${st.api}/users/exercises/last-activity`,this.cleanPayload({organizationId:t.organizationId,studentOidcId:t.studentOidcId,studentEmail:t.studentEmail})))}getStudentScore(t){return V(this.httpClient.get(`${st.api}/exercises/score/organization/${t.organizationId}/user/${t.userId}`))}getStudentPathwayProgress(t,n,i){return V(this.httpClient.get(`${st.api}/exercises/journey/organization/${t}/students/${n}/pathways/${i}/progress`))}getAssignedExercisesResponse(t){return V(this.httpClient.post(`${st.api}/users/exercises/assigned-exercises`,this.cleanPayload({organizationId:t.organizationId,studentEmail:t.studentEmail,teacherEmail:t.teacherEmail})))}removeAssignedExercises(t,n,i){return V(this.httpClient.post(`${st.api}/users/exercises/remove-assigned-exercises`,this.cleanPayload({organizationId:t.organizationId,studentEmail:t.studentEmail,teacherEmail:t.teacherEmail,exerciseIds:[n],deleteAll:!1,exerciseType:i})))}mapAssignedExerciseItems(t,n){return t.filter(i=>n?this.isPathwayAssignment(i):!this.isPathwayAssignment(i)).map((i,s)=>this.mapAssignmentCard(i,s))}mapAssignmentCard(t,n){let i=t?.exerciseData??t?.exercise??t?.assignedExercise??t?.assignment??t,s=this.firstString(t?.title,i?.subject,i?.title,t?.name,i?.name,t?.exerciseTitle,i?.exerciseTitle),d=this.firstString(t?.description1,i?.description1,t?.description,i?.description,t?.summary,i?.summary,t?.resume,i?.resume);return{id:this.firstString(t?.id,t?._id,t?.exerciseId,i?.id,i?._id,t?.pathwayId,t?.pathway?.id,t?.pathway?._id)??`assignment-${n}`,title:s??"Untitled exercise",description:d??"No description available.",level:this.firstString(t?.level,i?.level),tags:this.assignmentTags(t,i),outlineChips:this.assignmentOutlineChips(t,i),difficulty:this.assignmentDifficulty(t,i),variant:this.assignmentVariant(t,i),answerSummary:this.assignmentAnswerSummary(t,i),url:this.firstString(t?.url,i?.url)}}isPathwayAssignment(t){return typeof t?.isPathway=="boolean"?t.isPathway:[t?.type,t?.exerciseType,t?.assignmentType,t?.source,t?.kind,t?.category].some(i=>`${i??""}`.toLowerCase().includes("pathway"))?!0:!!(t?.pathwayId||t?.pathway||t?.journeyPathwayId)}assignmentTags(t,n){return this.toStringArray(n?.tags??t?.tags??t?.topics??n?.topics??t?.categories??n?.categories).map(s=>{let d=this.formatChipLabel(s);return d.startsWith("#")?d:`#${d}`})}assignmentOutlineChips(t,n){return this.toStringArray(n?.grammar_points_primary??n?.grammarPointsPrimary??t?.grammar_points_primary??t?.grammarPointsPrimary??t?.outlineChips??n?.outlineChips??t?.practiceTags??t?.contents??n?.contents).map(s=>this.formatChipLabel(s))}assignmentDifficulty(t,n){let s=`${this.firstString(t?.difficulty,n?.difficulty,t?.level,n?.level)??""}`.toLowerCase();return s.includes("easy")||s==="1"||s==="a1"?"easy":s.includes("hard")||s==="3"||s==="c1"?"hard":"medium"}assignmentVariant(t,n){let i=n&&typeof n=="object"&&"skill"in n?n.skill:void 0,s=t&&typeof t=="object"&&"skill"in t?t.skill:void 0,d=this.firstString(i,s)?.toLowerCase();switch(d){case"grammar":case"listening":case"pack":case"reading":case"speaking":return d;default:return"unknown"}}assignmentAnswerSummary(t,n){let i=t?.answerSummary??n?.answerSummary??t?.stats??n?.stats??{},s=t?.colors??n?.colors??{},d=t?.progress??n?.progress??t?.globalContext??n?.globalContext??{};return{correct:this.numberValue(s?.correct,i?.correct,i?.correctAnswers,d?.correctAnswers),wrongAnswers:this.numberValue(s?.wrong,i?.wrongAnswers,i?.wrong,d?.wrongAnswers),wrongAttempts:this.numberValue(s?.wrongAttempts,i?.wrongAttempts,i?.triesNumber,i?.attempts,d?.triesNumber),unanswered:this.numberValue(s?.empty,i?.unanswered,i?.pendingAnswers,i?.blankAnswers,d?.pendingAnswers,d?.blankAnswers)}}deletedExerciseIds(t,n){let i=this.toStringArray(t?.deletedExerciseIds??t?.deletedIds??t?.deleted??t?.exerciseIds);return i.length?i:[n]}cleanPayload(t){return Object.entries(t).reduce((n,[i,s])=>(s!=null&&s!==""&&(n[i]=s),n),{})}firstString(...t){return t.find(i=>typeof i=="string"&&i.trim().length>0)?.trim()}toStringArray(t){return t?(Array.isArray(t)?t:[t]).map(i=>typeof i=="string"?i.trim():this.firstString(i?.name,i?.title,i?.label,i?.id,i?._id)??"").filter(
4Boolean):[]}formatChipLabel(t){let n=t.startsWith("#"),i=t.replace(/^#/,"").replace(/[_-]+/g," ").trim().split(/\s+/).map(s=>s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()).join(" ");return n?`#${i}`:i}numberValue(...t){let n=t.find(s=>s!=null&&s!==""),i=Number(n??0);return Number.isFinite(i)?i:0}static{this.\u0275fac=function(n){return new(n||e)(Vt(Bt))}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();var Me=(()=>{class e{constructor(){this.dayMs=1e3*60*60*24,this.maxRangeDays=365,this.staleTime=300*1e3,this.gcTime=1800*1e3,this.rangeShortcutOptions=[{label:"This week",value:"this-week"},{label:"This month",value:"this-month"},{label:"Past 3 months",value:"past-3-months"},{label:"Past 6 months",value:"past-6-months"},{label:"This year",value:"this-year"},{label:"Custom",value:"custom"}],this.selectedDateRange=P(this.shortcutDateRange("this-month")),this.selectedRangeShortcut=P("this-month"),this.selectedTimeSpanLabel=y(()=>{let t=this.selectedRangeShortcut();return t!=="custom"?this.rangeShortcutOptions.find(n=>n.value===t)?.label??"This week":this.rangeLabel(this.selectedDateRange())}),this.dateRange=y(()=>this.toDateRange(this.selectedDateRange())),this.studentDetailService=f(It),this.detailState=f(T),this.canLoad=y(()=>this.hasLoadContext(this.detailState.requestContext())),this.dailyEngagementQuery=U(()=>{let t=this.detailState.requestContext(),n=this.dateRange();return{queryKey:this.dailyEngagementQueryKey(t,n),enabled:this.hasLoadContext(t),staleTime:this.staleTime,gcTime:this.gcTime,queryFn:()=>this.fetchDailyEngagement(t,n)}}),this.loading=y(()=>this.detailState.coreLoading()||this.dailyEngagementQuery.isLoading())}selectShortcut(t){if(t==="custom"){this.selectedRangeShortcut.set("custom");return}this.selectedRangeShortcut.set(t),this.selectedDateRange.set(this.shortcutDateRange(t))}selectRangeStart(t){if(!t||Number.isNaN(t.getTime()))return;this.selectedRangeShortcut.set("custom");let n=this.startOfDay(t),i=this.selectedDateRange(),s=i.end.getTime()>=n.getTime()?i.end:n,d=this.clampEndDate(n,s);this.selectedDateRange.set({start:n,end:d})}selectRangeEnd(t){if(!t||Number.isNaN(t.getTime()))return;this.selectedRangeShortcut.set("custom");let n=this.startOfDay(t),i=this.selectedDateRange(),s=i.start.getTime()<=n.getTime()?i.start:n,d=this.clampEndDate(s,n);this.selectedDateRange.set({start:s,end:d})}hasLoadContext(t){return!!t?.organizationId&&!!t?.studentOidcId&&!!t?.studentEmail}dailyEngagementQueryKey(t,n){return["student-detail","daily-engagement",t?.organizationId??"",t?.inviteId??"",t?.studentOidcId??"",t?.studentEmail??"",n.startDate,n.endDate]}fetchDailyEngagement(t,n){return this.studentDetailService.getDailyEngagement(t,n.startDate,n.endDate)}lastSevenCalendarDays(){return this.toDateRange(this.defaultDateRange())}defaultDateRange(){return this.shortcutDateRange("this-week")}shortcutDateRange(t){let n=this.startOfDay(new Date),i=new Date(n);if(t==="this-week"){let s=i.getDay(),d=s===0?6:s-1;i.setDate(i.getDate()-d)}return t==="this-month"&&i.setDate(1),t==="past-3-months"?this.completedMonthsRange(3):t==="past-6-months"?this.completedMonthsRange(6):(t==="this-year"&&i.setMonth(0,1),{start:i,end:n})}completedMonthsRange(t){let n=this.startOfDay(new Date);n.setDate(1),n.setDate(0);let i=new Date(n);return i.setDate(1),i.setMonth(i.getMonth()-(t-1)),{start:i,end:n}}toDateRange(t){let n=this.startOfDay(t.start),i=this.clampEndDate(n,this.startOfDay(t.end)),s=Math.max(1,Math.round((i.getTime()-n.getTime())/this.dayMs)+1),d=Array.from({length:s}).map((x,b)=>{let j=new Date(n);return j.setDate(n.getDate()+b),j});return{startDate:this.formatDate(d[0]),endDate:this.formatDate(d[d.length-1]),days:d}}startOfDay(t){let n=new Date(t);return n.setHours(0,0,0,0),n}clampEndDate(t,n){let i=new Date(t);return i.setDate(t.getDate()+this.maxRangeDays-1),n.getTime()>i.getTime()?i:n}shortDate(t){return t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}rangeLabel(t){let n=this.startOfDay(t.start),i=this.startOfDay(t.end);return n.getTime()===i.getTime()?this.shortDate(n):`${this.shortDate(n)} \u2013 ${this.shortDate(i)}`}performanceSections(t){let n=t?.exerciseStats?.skillBreakdown??{};return Object.entries(n).map(([s,d])=>this.performanceSection(s,d)).sort((s,d)=>this.skillOrder(s.title)-this.skillOrder(d.title))}reviewSuggestions(t){let n=t?.reviewSuggestions??{},i=this.toStringArray(n?.grammar),s=this.toStringArray(n?.vocab??n?.vocabulary),d=[];return i.length&&d.push({title:"Grammar points",description:i.join(", ")}),s.length&&d.push({title:"Vocabulary points",description:s.join(", ")}),d}formatDate(t){let n=t.getFullYear(),i=`${t.getMonth()+1}`.padStart(2,"0"),s=`${t.getDate()}`.padStart(2,"0");return`${n}-${i}-${s}`}performanceSection(t,n){let i=this.record(n);return{title:this.skillTitle(t),variant:this.skillVariant(t),rows:[{label:"Questions",value:`${this.numberValue(i?.questions)}`},{label:"Correct",value:`${this.numberValue(i?.correct)}`},{label:"Wrong",value:`${this.numberValue(i?.wrong)}`},{label:"Attempts",value:`${this.numberValue(i?.attempts)}`},{label:"First time hits",value:`${this.numberValue(i?.firstTimeHits)} (${this.numberValue(i?.firstTimeHitPercentage)}%)`}]}}skillTitle(t){let n=`${t}`.replace(/[_-]/g," ").trim();return n?n.split(" ").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" "):"Skill"}skillVariant(t){let n=`${t}`.toLowerCase();return n.includes("grammar")?"grammar":n.includes("speak")||n.includes("pronunciation")?"speaking":n.includes("listen")||n.includes("audio")?"listening":"reading"}skillOrder(t){let n=t.toLowerCase(),i=["grammar","pronunciation","speaking","listening","reading"],s=i.findIndex(d=>n.includes(d));return s===-1?i.length:s}toStringArray(t){return t?(Array.isArray(t)?t:[t]).map(i=>{if(typeof i=="string")return i.trim();let s=this.record(i);return this.string(s?.name)??this.string(s?.title)??this.string(s?.label)??""}
4).filter(Boolean):[]}record(t){return t!==null&&typeof t=="object"?t:void 0}string(t){return typeof t=="string"&&t.trim()?t.trim():void 0}numberValue(t){let n=Number(t??0);return Number.isFinite(n)?n:0}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();var dr=(e,c)=>c.value;function mr(e,c){if(e&1){let t=O();o(0,"button",19),v("click",function(){w(t);let i=m().$implicit,s=m(),d=ht(21);return s.selectShortcut(i.value),M(d.open())}),r(1),a()}if(e&2){let t=m().$implicit;l(),D(" ",t.label," ")}}function pr(e,c){if(e&1){let t=O();o(0,"button",19),v("click",function(){w(t);let i=m().$implicit,s=m();return M(s.selectShortcut(i.value))}),r(1),a()}if(e&2){let t=m().$implicit;l(),D(" ",t.label," ")}}function gr(e,c){if(e&1&&u(0,mr,2,1,"button",18)(1,pr,2,1,"button",18),e&2){let t=c.$implicit;h(t.value==="custom"?0:1)}}function ur(e,c){e&1&&(o(0,"div",13)(1,"div",20),g(2,"mat-spinner",21),a()())}function hr(e,c){e&1&&(o(0,"div",14),r(1,"Engagement is unavailable for this student."),a())}function fr(e,c){e&1&&(o(0,"div",15)(1,"mat-icon",5),r(2,"trending_up"),a(),o(3,"strong"),r(4,"Daily engagement is unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}function xr(e,c){if(e&1&&(o(0,"div",16)(1,"mat-icon",5),r(2,"trending_up"),a(),o(3,"strong"),r(4),a(),o(5,"small"),r(6,"Try another day or check back after the student has class, AI Tutor, or exercise activity."),a()()),e&2){let t=m();l(4),D("No engagement for ",t.selectedTimeSpanLabel().toLowerCase(),"")}}function yr(e,c){if(e&1){let t=O();o(0,"div",17)(1,"div",22),v("chartInit",function(i){w(t);let s=m();return M(s.chartInitialized.emit(i))}),a()()}if(e&2){let t=m();l(),p("options",t.chartOptions())("autoResize",!0)}}var xn=(()=>{class e{constructor(){this.engagementState=f(Me),this.chartInitialized=Tt(),this.selectedDateRange=this.engagementState.selectedDateRange,this.selectedTimeSpanLabel=this.engagementState.selectedTimeSpanLabel,this.rangeShortcutOptions=this.engagementState.rangeShortcutOptions,this.dateRange=this.engagementState.dateRange,this.canLoad=this.engagementState.canLoad,this.loading=this.engagementState.loading,this.dailyEngagementQuery=this.engagementState.dailyEngagementQuery,this.engagementItems=y(()=>this.mapEngagementItems(this.dailyEngagementQuery.data()?.items??[])),this.hasEngagementData=y(()=>this.engagementItems().some(t=>t.value>0)),this.chartGranularity=y(()=>this.engagementGranularity()),this.chartOptions=y(()=>this.createEngagementChart(this.engagementItems(),this.chartGranularity()))}selectShortcut(t){this.engagementState.selectShortcut(t)}selectRangeStart(t){this.engagementState.selectRangeStart(t)}selectRangeEnd(t){this.engagementState.selectRangeEnd(t)}mapEngagementItems(t){let n=new Map(t.map(d=>[this.dateKey(d.date),d])),i=this.dateRange().days.map(d=>{let x=this.formatDate(d),b=n.get(x);return{day:d.toLocaleDateString("en-US",{month:"short",day:"2-digit"}),date:x,value:b?this.engagementValue(b):0}}),s=this.engagementGranularity();return s==="monthly"?this.aggregateMonthly(i):s==="weekly"?this.aggregateWeekly(i):i}engagementValue(t){return this.numberValue(t.exerciseQuestionsAnswered)+this.numberValue(t.aiTutorTextMessages)+this.numberValue(t.aiTutorAudioMessages)+(t.hadOnlineClass?1:0)}createEngagementChart(t,n){let i=this.themeColor("--primary-50","#537D8D"),s=this.themeColor("--mat-sys-on-surface-variant","#484646"),d=this.themeColor("--mat-sys-outline-variant","#C6C5D0"),x=Math.max(5,...t.map(tt=>tt.value)),b=Math.max(1,Math.ceil(x/4)),j=b*4,yt=this.barWidth(t.length,n);return{animation:!1,color:[i],backgroundColor:"transparent",textStyle:{color:s,fontFamily:"Syne, Helvetica Neue, sans-serif"},grid:{top:12,right:8,bottom:8,left:8,containLabel:!0},tooltip:{show:!0,trigger:"item"},xAxis:{type:"category",data:t.map(tt=>tt.day),boundaryGap:!0,axisTick:{show:!1},axisLine:{show:!1},axisLabel:{color:s,fontSize:11,fontFamily:"Syne, Helvetica Neue, sans-serif",formatter:tt=>this.formatAxisLabel(tt,n),hideOverlap:!0,interval:this.axisLabelInterval(t.length,n),lineHeight:15,margin:10,showMinLabel:!0,showMaxLabel:!0}},yAxis:{type:"value",min:0,max:j,interval:b,axisLabel:{show:!1},axisTick:{show:!1}
4,axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:d,width:1}}},series:[{type:"bar",data:t.map(tt=>({value:tt.value,itemStyle:{color:i,borderColor:i},emphasis:{itemStyle:{color:i,borderColor:i,opacity:1}}})),barWidth:yt,barMinWidth:4,barGap:"0%",barCategoryGap:this.barCategoryGap(n),itemStyle:{color:i,borderColor:i,borderWidth:0,borderRadius:[6,6,4,4]},emphasis:{disabled:!0,focus:"none",itemStyle:{color:i,borderColor:i,opacity:1}},blur:{itemStyle:{color:i,borderColor:i,opacity:1}},select:{disabled:!0,itemStyle:{color:i,borderColor:i,opacity:1}}}]}}formatDate(t){return this.engagementState.formatDate(t)}engagementGranularity(){let t=this.dateRange().days.length,n=this.engagementState.selectedRangeShortcut();return n==="this-week"?"daily":n==="this-month"?"weekly":n==="past-3-months"||n==="past-6-months"||n==="this-year"||t>32?"monthly":t>13?"weekly":"daily"}aggregateWeekly(t){let n=[];for(let i=0;i<t.length;i+=7){let s=t.slice(i,i+7),d=s[0],x=s[s.length-1];n.push({day:d.date===x.date?d.day:`${this.shortDate(d.date)} \u2013 ${this.shortDate(x.date)}`,date:`${d.date}:${x.date}`,value:s.reduce((b,j)=>b+j.value,0)})}return n}aggregateMonthly(t){let n=new Map;return t.forEach(i=>{let[s,d]=i.date.split("-"),x=`${s}-${d}`,b=n.get(x);if(b){b.value+=i.value;return}n.set(x,{day:this.monthLabel(i.date),date:x,value:i.value})}),Array.from(n.values())}shortDate(t){return new Date(`${t}T00:00:00`).toLocaleDateString("en-US",{month:"short",day:"2-digit"})}monthLabel(t){return new Date(`${t.slice(0,7)}-01T00:00:00`).toLocaleDateString("en-US",{month:"short"})}barWidth(t,n){return n==="monthly"?t<=4?34:(t<=8,32):n==="weekly"?t<=5?42:34:t<=7?34:24}barCategoryGap(t){return t==="monthly"?"48%":t==="weekly"?"42%":"34%"}axisLabelInterval(t,n){return t<=1||n!=="daily"||t<=7?0:t<=13?1:Math.ceil(t/7)-1}formatAxisLabel(t,n){return n==="weekly"?t.replace(" \u2013 ",` 5\u2013 `):t}dateKey(t){return t?.slice(0,10)??""}numberValue(t){let n=Number(t??0);return Number.isFinite(n)?n:0}themeColor(t,n){if(typeof document>"u")return n;let i=getComputedStyle(document.documentElement).getPropertyValue(t).trim();return i&&(i.startsWith("#")||i.startsWith("rgb")||i.startsWith("hsl"))?i:n}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-daily-engagement-widget"]],outputs:{chartInitialized:"chartInitialized"},features:[qn([Zn()])],decls:27,vars:6,consts:[["rangeShortcutMenu","matMenu"],["engagementDatePicker",""],[1,"student-widget","engagement-panel"],[1,"student-widget-header"],[1,"mat-h2"],[1,"material-symbols-outlined"],["aria-label","Daily engagement date picker",1,"student-widget-date-picker"],[1,"student-widget-date-input",3,"rangePicker"],["matStartDate","","readonly","","tabindex","-1",3,"dateChange","value"],["matEndDate","","readonly","","tabindex","-1",3,"dateChange","value"],["mat-stroked-button","","type","button","aria-label","Select daily engagement date range",3,"matMenuTriggerFor"],["iconPositionEnd","",1,"material-symbols-outlined"],[1,"student-widget-range-menu"],["aria-live","polite","aria-label","Loading engagement",1,"student-widget-loading-shell"],[1,"student-widget-state"],["role","alert",1,"student-widget-empty-state","student-widget-empty-state--error"],[1,"student-widget-empty-state"],["aria-label","Daily engagement chart",1,"student-chart-container"],["mat-menu-item","","type","button"],["mat-menu-item","","type","button",3,"click"],[1,"student-widget-loading-overlay"],["diameter","34"],["echarts","",1,"student-chart",3,"chartInit","options","autoResize"]],template:function(n,i){if(n&1){let s=O();o(0,"mat-card",2)(1,"mat-card-content")(2,"div",3)(3,"h2",4)(4,"mat-icon",5),r(5,"trending_up"),a(),r(6," Daily engagement "),a(),o(7,"div",6)(8,"mat-date-range-input",7)(9,"input",8),v("dateChange",function(x){return w(s),M(i.selectRangeStart(x.value))}),a(),o(10,"input",9),v("dateChange",function(x){return w(s),M(i.selectRangeEnd(x.value))}),a()(),o(11,"button",10)(12,"span"),r(13),a(),o(14,"mat-icon",11),r(15," calendar_today "),a()(),o(16,"mat-menu",12,0),z(18,gr,2,1,null,null,dr),a(),g(20,"mat-date-range-picker",null,1),a()(),u(22,ur,3,0,"div",13)(23,hr,2,0,"div",14)(24,fr,7,0,"div",15)(25,xr,7,1,"div",16)(26,yr,2,2,"div",17),a()()}if(n&2){let s=ht(17),d=ht(21);l(8),p("rangePicker",d),l(),p("value",i.selectedDateRange().start),l(),p("value",i.selectedDateRange().end),l(),p("matMenuTriggerFor",s),l(2),_(i.selectedTimeSpanLabel()),l(5),A(i.rangeShortcutOptions),l(4),h(i.loading()?22:i.canLoad()?i.dailyEngagementQuery.isError()?24:i.hasEngagementData()?26:25:23)}},dependencies:[L,F,q,N,$,na,Xi,Zi,ta,ea,k,S,pt,ye,an,nn,on,G,R,un,ca],styles:["[_nghost-%COMP%]{display:block;min-width:0}.student-widget.mat-mdc-card[_ngcontent-%COMP%]{position:relative;height:100%;overflow:hidden;isolation:isolate;container-name:engagement-card;container-type:inline-size;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.student-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-height:100%;display:flex;flex-direction:column;padding:16px;background:var(--mat-sys-surface)}.student-widget-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.student-widget-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px}.student-widget-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.student-widget-date-picker[_ngcontent-%COMP%]{position:relative;width:210px;max-width:100%;min-width:0;display:inline-flex;align-items:center}.student-widget-date-picker[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{width:100%;min-width:0;height:36px;justify-content:space-between;background:color-mix(in srgb,var(--mat-sys-surface) 76%,transparent);color:var(--mat-sys-primary);font-size:12px;font-weight:500}.student-widget-date-picker[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-widget-date-input[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:-1;width:100%;height:100%;opacity:0;pointer-events:none}.student-widget-date-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:0;height:0;opacity:0}
5.engagement-panel[_ngcontent-%COMP%]{min-height:300px}.student-chart-container[_ngcontent-%COMP%]{position:relative;width:100%;min-width:0;height:260px;min-height:260px;max-height:260px;margin-top:auto;overflow:hidden;contain:layout paint;background:var(--mat-sys-surface)}.student-chart[_ngcontent-%COMP%]{width:100%;height:100%;min-height:260px}.student-widget-state[_ngcontent-%COMP%]{min-height:260px;display:grid;place-items:center;padding:16px;border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);font-size:13px;line-height:20px;text-align:center}.student-widget-empty-state[_ngcontent-%COMP%]{min-height:260px;display:grid;place-content:center;justify-items:center;gap:6px;padding:24px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.student-widget-empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 64%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:18px}.student-widget-empty-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:20px}.student-widget-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:340px;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.student-widget-empty-state--error[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.student-widget-empty-state--error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error)}.student-widget-empty-state--error[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-widget-empty-state--error[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-error-container)}.student-widget-loading-shell[_ngcontent-%COMP%]{min-height:260px;flex:1;border-radius:12px;background:var(--mat-sys-surface-container-lowest);overflow:hidden}.student-widget-loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;padding:16px;border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}@container engagement-card (max-width: 520px){.student-widget-header[_ngcontent-%COMP%]{align-items:stretch;flex-direction:column}.student-widget-date-picker[_ngcontent-%COMP%]{width:100%}.student-chart-container[_ngcontent-%COMP%]{height:280px;min-height:280px;max-height:280px}}"],changeDetection:0})}}return e})();var _r=new Ln("STUDENT_NEXT_CLASSES_CURRENT_DATE",{providedIn:"root",factory:()=>new Date}),Pe=(()=>{class e{constructor(){this.detailState=f(T),this.calendarService=f(sa),this.currentDate=f(_r),this.weekRange=aa(this.currentDate,"week"),this.monthRange=ia(this.currentDate),this.canLoad=y(()=>{let t=this.detailState.requestContext();return!!t?.organizationId&&!!t.userId}),this.weeklyQuery=U(()=>{let t=this.detailState.requestContext();return{queryKey:["student-detail","next-classes","week",t?.organizationId??"",t?.userId??"",this.weekRange.start.toISOString(),this.weekRange.end.toISOString()],enabled:this.detailState.currentTab()===0&&!!t?.organizationId&&!!t?.userId,queryFn:()=>V(this.calendarService.getUserEvents(t.organizationId,t.userId,{startDate:this.weekRange.start,endDate:this.weekRange.end,types:[je.RegularClass,je.MakeUpClass]}
5))}}),this.monthlyQuery=U(()=>{let t=this.detailState.requestContext();return{queryKey:["student-detail","next-classes","month",t?.organizationId??"",t?.userId??"",this.monthRange.start.toISOString(),this.monthRange.end.toISOString()],enabled:this.detailState.currentTab()===2&&!!t?.organizationId&&!!t?.userId,queryFn:()=>V(this.calendarService.getUserEvents(t.organizationId,t.userId,{startDate:this.monthRange.start,endDate:this.monthRange.end,types:[je.RegularClass,je.MakeUpClass]}))}}),this.weeklyEvents=y(()=>this.projectEvents(this.weeklyQuery.data()?.results??[],this.weekRange)),this.monthlyEvents=y(()=>this.projectEvents(this.monthlyQuery.data()?.results??[],this.monthRange)),this.weeklyClasses=y(()=>this.toClassPreviews(this.visibleEvents(this.weeklyEvents()))),this.monthlyClasses=y(()=>this.toClassPreviews(this.visibleEvents(this.monthlyEvents()))),this.weekDays=y(()=>this.toCalendarDays(this.weekRange,this.weeklyEvents())),this.monthDays=y(()=>this.toCalendarDays(this.monthRange,this.monthlyEvents()))}projectEvents(t,n){return oa(t,n).sort((i,s)=>i.startDate.getTime()-s.startDate.getTime())}visibleEvents(t){let n=new Date(this.currentDate);return n.setHours(0,0,0,0),t.filter(i=>i.startDate.getTime()>=n.getTime())}toClassPreviews(t){return t.map(n=>{let i=(n.displayParticipants??n.participants).map(s=>({userId:s.userId,name:s.name?.trim()||"Participant"}));return{id:`${n._id}:${n.recurrenceId??n.startDate.toISOString()}`,name:n.title,participants:i,time:pe(n.startDate,"HH:mm","en-US"),date:pe(n.startDate,"MM/dd/yy","en-US"),isPast:n.startDate.getTime()+5400*1e3<this.currentDate.getTime()}})}toCalendarDays(t,n){let i=new Set(n.map(x=>gn(x.startDate))),s=gn(this.currentDate),d=[];for(let x=new Date(t.start);x.getTime()<=t.end.getTime();x.setDate(x.getDate()+1)){let b=gn(x);d.push(ot(ot(ot({label:`${x.getDate()}`},b===s?{selected:!0}:{}),x.getTime()<new Date(this.currentDate).setHours(0,0,0,0)?{isPast:!0}:{}),i.has(b)&&b!==s?{outlined:!0}:{}))}return d}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();var vr=(e,c)=>c.id,Cr=(e,c)=>c.userId;function br(e,c){e&1&&(o(0,"div",1),g(1,"mat-spinner",10),a())}function wr(e,c){if(e&1&&(o(0,"span",11),r(1),a()),e&2){let t=c.$implicit;Q("day--selected",t.selected)("day--outlined",t.outlined)("day--past",t.isPast),l(),D(" ",t.label," ")}}function Mr(e,c){e&1&&(o(0,"div",7),r(1,"Classes are unavailable for this student."),a())}function Pr(e,c){e&1&&(o(0,"div",8)(1,"mat-icon",3),r(2,"event_busy"),a(),o(3,"strong"),r(4,"Next classes are unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Sr(e,c){e&1&&(o(0,"div",9)(1,"mat-icon",3),r(2,"event_available"),a(),o(3,"strong"),r(4,"No classes for the rest of this week"),a(),o(5,"small"),r(6,"Nothing else is scheduled for this student this week."),a()())}function Or(e,c){if(e&1&&(o(0,"span",16),g(1,"slingui-avatar",18),a()),e&2){let t=c.$implicit;lt("aria-label",t.name),l(),p("userId",t.userId)("width",22)("height",22)}}function Er(e,c){if(e&1&&(o(0,"div",13)(1,"div",14)(2,"strong"),r(3),a(),o(4,"div",15),z(5,Or,2,4,"span",16,Cr),a()(),o(7,"div",17)(8,"span"),r(9),a(),o(10,"small"),r(11),a()()()),e&2){let t=c.$implicit;Q("class-row--past",t.isPast),l(3),_(t.name),l(2),A(t.participants),l(4),_(t.time),l(2),_(t.date)}}function Ir(e,c){if(e&1&&z(0,Er,12,5,"div",12,vr),e&2){let t=m();A(t.state.weeklyClasses().slice(0,4))}}var La=(()=>{class e{constructor(){this.state=f(Pe)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-next-classes-widget"]],decls:29,vars:2,consts:[[1,"student-widget","next-classes-panel"],["aria-live","polite","aria-label","Loading next classes",1,"student-widget-loading-overlay"],[1,"mat-h2"],[1,"material-symbols-outlined"],["aria-label","Upcoming week days",1,"week-row"],[1,"day",3,"day--selected","day--outlined","day--past"],[1,"class-list"],[1,"student-widget-state"],["role","alert",1,"student-widget-empty-state","student-widget-empty-state--error"],[1,"student-widget-empty-state"],["diameter","28"],[1,"day"],[1,"class-row",3,"class-row--past"],[1,"class-row"],[1,"class-copy"],["aria-label","Event participants",1,"class-participants"],[1,"class-participant-avatar"],[1,"class-time"],[3,"userId","width","height"]],template:function(n,i){n&1&&(o(0,"mat-card",0),u(1,br,2,0,"div",1),o(2,"mat-card-content")(3,"h2",2)(4,"mat-icon",3),r(5,"videocam"),a(),r(6," Next classes "),a(),o(7,"div",4)(8,"span"),r(9,"S"),a(),o(10,"span"),r(11,"M"),a(),o(12,"span"),r(13,"T"),a(),o(14,"span"),r(15,"W"),a(),o(16,"span"),r(17,"T"),a(),o(18,"span"),r(19,"F"),a(),o(20,"span"),r(21,"S"),a(),z(22,wr,2,7,"span",5,Ge),a(),o(24,"div",6),u(25,Mr,2,0,"div",7)(26,Pr,7,0,"div",8)(27,Sr,7,0,"div",9)(28,Ir,2,0),a()()()),n&2&&(l(),h(i.state.weeklyQuery.isFetching()?1:-1),l(21),A(i.state.weekDays()),l(3),h(i.state.canLoad()?i.state.weeklyQuery.isError()?26:i.state.weeklyClasses().length===0?27:28:25))},dependencies:[jt,Zt,q,N,$,k,S,G,R],styles:["[_nghost-%COMP%]{display:block;min-width:0;align-self:start;width:100%}.student-widget.mat-mdc-card[_ngcontent-%COMP%]{position:relative;height:auto;overflow:hidden;isolation:isolate;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.student-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:16px;background:var(--mat-sys-surface)}h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 14px;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px}h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.week-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(7,1fr);gap:10px 8px;align-items:center;margin:14px 0 16px;color:var(--mat-sys-on-surface);font-size:12px;text-align:center}.day[_ngcontent-%COMP%]{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;justify-self:center;border-radius:999px}.day--selected[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-primary);background:var(--mat-sys-primary);color:var(--mat-sys-on-primary)!important}.day--outlined[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-primary);color:var(--mat-sys-primary)}.day--past[_ngcontent-%COMP%]{opacity:.42}.day--past.day--outlined[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-primary) 42%,transparent);
5color:color-mix(in srgb,var(--mat-sys-primary) 52%,var(--mat-sys-on-surface-variant))}.class-list[_ngcontent-%COMP%]{display:grid;gap:0}.student-widget-loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:3;display:grid;place-items:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 86%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}.student-widget-state[_ngcontent-%COMP%]{min-height:72px;display:grid;place-items:center;margin-top:4px;padding:14px;border:1px dashed var(--mat-sys-outline-variant);border-radius:12px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface-variant);font-size:12px;text-align:center}.student-widget-empty-state[_ngcontent-%COMP%]{min-height:112px;display:grid;place-content:center;justify-items:center;gap:6px;margin-top:4px;padding:20px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.student-widget-empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 64%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:18px}.student-widget-empty-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:20px}.student-widget-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:280px;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.student-widget-empty-state--error[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface))}.student-widget-empty-state--error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error)}.student-widget-empty-state--error[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-widget-empty-state--error[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-error-container)}.class-copy[_ngcontent-%COMP%]{min-width:0}.class-participants[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:22px;margin-top:4px}.class-participant-avatar[_ngcontent-%COMP%]{display:inline-flex;line-height:0}.class-participant-avatar[_ngcontent-%COMP%] + .class-participant-avatar[_ngcontent-%COMP%]{margin-left:-5px} .class-participant-avatar slingui-avatar .profile-avatar, .class-participant-avatar slingui-avatar img{display:block;border-radius:999px}.class-row--past[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .class-row--past[_ngcontent-%COMP%] .class-time[_ngcontent-%COMP%]{text-decoration:line-through}.class-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.class-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.class-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .class-time[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface);font-size:14px;font-weight:500;line-height:20px}.class-row[_ngcontent-%COMP%] small[_ngcontent-%COMP%], .class-time[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:11px;line-height:16px}.class-time[_ngcontent-%COMP%]{text-align:right}"],changeDetection:0})}}return e})();var Ra=(e,c)=>c.event._id;function Tr(e,c){if(e&1){let t=O();o(0,"strong"),r(1),B(2,"number"),a(),o(3,"button",12),v("click",function(){w(t);let i=m();return M(i.detailState.openAdjustBalanceDialog())}),o(4,"mat-icon",1),r(5,"edit"),a()()}e&2&&(l(),_(Ae(2,1,c.credits,"1.0-0")))}function kr(e,c){e&1&&g(0,"mat-spinner",7)}function Dr(e,c){e&1&&(o(0,"div",9),g(1,"mat-spinner",7),r(2," Loading..."),a())}function zr(e,c){e&1&&(o(0,"div",10),r(1,"No recent activity"),a())}function Ar(e,c){if(e&1&&(o(0,"div",13)(1,"div",14)(2,"span",15),r(3),B(4,"translate"),a(),o(5,"span",16),r(6),B(7,"date"),a()(),o(8,"span",17),r(9),a()()),e&2){let t=c.$implicit;l(3),_(Y(4,8,t.source)),l(3),_(Ae(7,10,t.event.createdAt,"MMM d, yyyy")),l(2),Q("credit",t.sign==="+")("debt",t.sign==="-"),l(),re
5(" ",t.sign,"",t.amount," ")}}function Fr(e,c){if(e&1&&z(0,Ar,10,13,"div",13,Ra),e&2){let t=m();A(t.creditEvents())}}function jr(e,c){e&1&&(o(0,"strong"),r(1),B(2,"number"),a()),e&2&&(l(),_(Ae(2,1,c.eligibleMakeupClasses,"1.0-0")))}function Lr(e,c){e&1&&g(0,"mat-spinner",7)}function Rr(e,c){e&1&&(o(0,"div",9),g(1,"mat-spinner",7),r(2," Loading..."),a())}function Gr(e,c){e&1&&(o(0,"div",10),r(1,"No recent activity"),a())}function Vr(e,c){if(e&1&&(o(0,"div",13)(1,"div",14)(2,"span",15),r(3),B(4,"translate"),a(),o(5,"span",16),r(6),B(7,"date"),a()(),o(8,"span",17),r(9),a()()),e&2){let t=c.$implicit;l(3),_(Y(4,8,t.source)),l(3),_(Ae(7,10,t.event.createdAt,"MMM d, yyyy")),l(2),Q("credit",t.sign==="+")("debt",t.sign==="-"),l(),re(" ",t.sign,"",t.amount," ")}}function Nr(e,c){if(e&1&&z(0,Vr,10,13,"div",13,Ra),e&2){let t=m();A(t.makeupEvents())}}var Ga=(()=>{class e{constructor(){this.detailState=f(T),this.balanceQuery=this.detailState.inviteBalanceQuery,this.eventsQuery=this.detailState.inviteBalanceEventsQuery,this.creditEvents=y(()=>{let t=this.eventsQuery.data()?.results??[];return this.parseEvents(t,"credits").slice(0,3)}),this.makeupEvents=y(()=>{let t=this.eventsQuery.data()?.results??[];return this.parseEvents(t,"makeupClasses").slice(0,3)})}parseEvents(t,n){let i="inviteBalance.common.placeholder";return t.filter(s=>{let d=n==="credits"?s.deltas?.credits:s.deltas?.eligibleMakeupClasses;return d!==void 0&&d!==0}).map(s=>{let d=Number(n==="credits"?s.deltas?.credits:s.deltas?.eligibleMakeupClasses),x=Math.abs(d),b=d>0?"credit":"debt";return{event:s,sign:b==="debt"?"-":"+",amount:x,source:da[s.effectiveSourceType||s.sourceType||""]||i,owner:typeof s.metadata?.requestorName=="string"&&s.metadata.requestorName.trim()?s.metadata.requestorName:s.metadata?.requestedByUserId?"inviteBalance.owner.unknown":i}})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-balances-overview-widget"]],decls:36,vars:8,consts:[[1,"balances-overview-card"],[1,"material-symbols-outlined"],[1,"balances-content"],[1,"balance-section"],[1,"balance-header"],[1,"balance-title"],[1,"balance-value"],["diameter","20"],[1,"events-list"],[1,"events-loading"],[1,"events-empty"],["vertical","",1,"section-divider"],["mat-icon-button","","aria-label","Adjust balance",1,"utility-edit-btn",3,"click"],[1,"event-item"],[1,"event-info"],[1,"event-source"],[1,"event-date"],[1,"event-amount"]],template:function(n,i){if(n&1&&(o(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title")(3,"mat-icon",1),r(4,"account_balance_wallet"),a(),r(5," Balances & History "),a()(),o(6,"mat-card-content",2)(7,"div",3)(8,"div",4)(9,"div",5)(10,"mat-icon",1),r(11,"payments"),a(),o(12,"h3"),r(13,"Class credits"),a()(),o(14,"div",6),u(15,Tr,6,4)(16,kr,1,0,"mat-spinner",7),a()(),o(17,"div",8),u(18,Dr,3,0,"div",9)(19,zr,2,0,"div",10)(20,Fr,2,0),a()(),g(21,"mat-divider",11),o(22,"div",3)(23,"div",4)(24,"div",5)(25,"mat-icon",1),r(26,"history"),a(),o(27,"h3"),r(28,"Make-up classes"),a()(),o(29,"div",6),u(30,jr,3,4,"strong")(31,Lr,1,0,"mat-spinner",7),a()(),o(32,"div",8),u(33,Rr,3,0,"div",9)(34,Gr,2,0,"div",10)(35,Nr,2,0),a()()()()),n&2){let s,d,x,b;l(8),Q("is-negative",((s=(s=i.balanceQuery.data())==null?null:s.credits)!==null&&s!==void 0?s:0)<0),l(7),h((d=i.balanceQuery.data())?15:i.balanceQuery.isFetching()?16:-1,d),l(3),h(i.eventsQuery.isFetching()?18:i.creditEvents().length===0?19:20),l(5),Q("is-negative",((x=(x=i.balanceQuery.data())==null?null:x.eligibleMakeupClasses)!==null&&x!==void 0?x:0)<0),l(7),h((b=i.balanceQuery.data())?30:i.balanceQuery.isFetching()?3
51:-1,b),l(3),h(i.eventsQuery.isFetching()?33:i.makeupEvents().length===0?34:35)}},dependencies:[et,Kn,Hn,q,N,$,oi,ai,k,S,G,R,Jt,nt,L,Ut,ge,qt],styles:["[_nghost-%COMP%]{display:block}.balances-overview-card[_ngcontent-%COMP%]{position:relative;height:100%;overflow:hidden;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.balances-overview-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%]{padding:16px 20px}.balances-overview-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px;color:var(--mat-sys-primary);text-transform:uppercase;margin:0}.balances-overview-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--mat-sys-primary);font-size:18px;width:18px;height:18px}.balances-content[_ngcontent-%COMP%]{display:flex;padding:0}.balance-section[_ngcontent-%COMP%]{flex:1;padding:20px;display:flex;flex-direction:column;gap:16px}.section-divider[_ngcontent-%COMP%]{height:auto;margin:0}.balance-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;background:color-mix(in srgb,var(--mat-sys-surface-container-lowest) 40%,transparent);padding:12px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--mat-sys-outline-variant) 50%,transparent)}.balance-header.is-negative[_ngcontent-%COMP%] .balance-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .balance-header.is-negative[_ngcontent-%COMP%] .balance-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%], .balance-header.is-negative[_ngcontent-%COMP%] .balance-value[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .balance-header.is-negative[_ngcontent-%COMP%] .utility-edit-btn[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.balance-value[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:20px;color:var(--mat-sys-primary)}.balance-value[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-weight:600}.utility-edit-btn[_ngcontent-%COMP%]{width:28px;height:28px;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--mat-sys-on-surface-variant)}.utility-edit-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:16px;height:16px;font-size:16px}.balance-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.balance-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:500;color:var(--mat-sys-on-surface)}.balance-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;color:var(--mat-sys-on-surface-variant)}.events-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.event-item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px dashed var(--mat-sys-outline-variant)}.event-item[_ngcontent-%COMP%]:last-child{border-bottom:none;padding-bottom:0}.event-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.event-source[_ngcontent-%COMP%]{font-size:13px;font-weight:500;color:var(--mat-sys-on-surface)}.event-date[_ngcontent-%COMP%]{font-size:11px;color:var(--mat-sys-on-surface-variant)}.event-amount[_ngcontent-%COMP%]{font-size:14px;font-weight:600}.event-amount.credit[_ngcontent-%COMP%]{color:var(--mat-sys-primary)}.event-amount.debt[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.events-empty[_ngcontent-%COMP%], .events-loading[_ngcontent-%COMP%]{font-size:13px;color:var(--mat-sys-on-surface-variant);text-align:center;padding:16px 0;display:flex;justify-content:center;align-items:center;gap:8px}@media(max-width:768px){.balances-content[_ngcontent-%COMP%]{flex-direction:column}.section-divider[_ngcontent-%COMP%]{width:100%;height:1px}}"],changeDetection:0})}}return e})();var Na=(e,c)=>c._id||c.id;function Wr(e,c){e&1&&(o(0,"mat-icon",7),B(1,"translate"),r(2,"info"),a()),e&2&&p("matTooltip",Y(1,1,"invite.primaryTeacher"))}function Br(e,c){e&1&&(o(0,"mat-icon",10),r(1,"close"),a())}
5function Qr(e,c){if(e&1){let t=O();o(0,"mat-chip-row",5),v("removed",function(){let i=w(t).$implicit,s=m(3);return M(s.removeUser(i))}),o(1,"div",6),u(2,Wr,3,3,"mat-icon",7),o(3,"div",8),g(4,"slingui-avatar",9),o(5,"span"),r(6),a()()(),u(7,Br,2,0,"mat-icon",10),a()}if(e&2){let t=c.$implicit,n=c.$index,i=m(3);p("disabled",i.disabled()),l(2),h(n===0?2:-1),l(),p("matTooltip",i.getTeacherFullInfo(t)),l(),p("width",18)("height",18)("userId",t._id||t.id||""),l(2),D(" ",i.getTeacherName(t)," "),l(),h(i.removable()&&!i.disabled()?7:-1)}}function $r(e,c){if(e&1&&z(0,Qr,8,8,"mat-chip-row",4,Na),e&2){let t=m(2);A(t.selectedUsers)}}function qr(e,c){e&1&&(o(0,"mat-icon",7),B(1,"translate"),r(2,"info"),a()),e&2&&p("matTooltip",Y(1,1,"invite.primaryTeacher"))}function Ur(e,c){e&1&&(o(0,"mat-icon",10),r(1,"close"),a())}function Jr(e,c){if(e&1){let t=O();o(0,"mat-chip-row",12),v("removed",function(){let i=w(t).$implicit,s=m(3);return M(s.removeUser(i))}),o(1,"div",6),u(2,qr,3,3,"mat-icon",7),o(3,"div",8),g(4,"slingui-avatar",9),o(5,"span"),r(6),a()()(),u(7,Ur,2,0,"mat-icon",10),a()}if(e&2){let t=c.$implicit,n=c.$index,i=m(3);p("disabled",i.disabled()),l(2),h(n===0?2:-1),l(),p("matTooltip",i.getTeacherFullInfo(t)),l(),p("width",18)("height",18)("userId",t._id||t.id||""),l(2),D(" ",i.getTeacherName(t)," "),l(),h(i.removable()&&!i.disabled()?7:-1)}}function Hr(e,c){if(e&1&&z(0,Jr,8,8,"mat-chip-row",11,Na),e&2){let t=m(2);A(t.selectedUsers)}}function Kr(e,c){if(e&1){let t=O();o(0,"div",1)(1,"mat-chip-grid",3,0),v("cdkDropListDropped",function(i){w(t);let s=m();return M(s.drop(i))}),u(3,$r,2,0)(4,Hr,2,0),a()()}if(e&2){let t=m();l(3),h(t.drag?3:4)}}function Yr(e,c){e&1&&(o(0,"div",2)(1,"small"),r(2,"This student does not have any teachers yet."),a()())}var Wa=(()=>{class e{constructor(){this.role="teacher",this.drag=!1,this.disabled=rt(!1),this.removable=rt(!0),this._selectedUsers=[]}get selectedUsers(){return this._selectedUsers}set selectedUsers(t){this._selectedUsers=t||[],this.control&&this.control.setValue([...this._selectedUsers.map(n=>n._id??n.id??"")],{emitEvent:!1})}drop(t){let n=Array.from(this.selectedUsers);Gi(n,t.previousIndex,t.currentIndex),this.selectedUsers=n,this.control&&(this.control.markAsDirty(),this.control.setValue([...this.selectedUsers.map(i=>i._id??i.id??"")],{emitEvent:!0}))}removeUser(t){let n=this.selectedUsers.indexOf(t);n>=0&&(this.selectedUsers.splice(n,1),this.control&&(this.control.markAsDirty(),this.control.setValue([...this.selectedUsers.map(i=>i._id??i.id??"")],{emitEvent:!0})))}getTeacherName(t){if(!t)return"";let n=t?.metadata?.name||(t?.firstName||t?.lastName?`${t?.firstName||""} ${t?.lastName||""}`.trim():null)||(t?.user?.firstName||t?.user?.lastName?`${t?.user?.firstName||""} ${t?.user?.lastName||""}`.trim():null)||t?.name;return n||t?.email||t?.user?.email||""}getTeacherFullInfo(t){if(!t)return"";let n=this.getTeacherName(t),i=t?.email||t?.user?.email||"";return n&&i&&n!==i?`${n} ${i}`:n||i}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-teacher-selector"]],inputs:{control:"control",role:"role",drag:"drag",disabled:[1,"disabled"],removable:[1,"removable"],selectedUsers:"selectedUsers"},decls:2,vars:1,consts:[["chipGrid",""],[1,"chips-container-box"],[1,"student-widget-empty-state"],["aria-label","Selected teachers","cdkDropList","","cdkDropListOrientation","mixed",3,"cdkDropListDropped"],["cdkDrag","",1,"drag",3,"disabled"],["cdkDrag","",1,"drag",3,"removed","disabled"],[1,"chip-content"],[1,"material-symbols-outlined","info",3,"matTooltip"],["matTooltipClass","teacher-tooltip",1,"chip-user-info",3,"matTooltip"],[3,"width","height","userId"],["matChipRemove","",1,"material-symbols-outlined"],[3,"disabled"],[3,"removed","disabled"]],template:function(n,i){n&1&&u(0,Kr,5,1,"div",1)(1,Yr,3,0,"div",2),n&2&&h(i.selectedUsers.length>0?0:1)},dependencies:[et,te,Di,sn,ln,k,S,fe,Xt,jt,Zt,Ni,Vi,ge,qt],styles:["[_nghost-%COMP%]{display:block;width:100%;min-width:0;max-width:100%}.chips-container-box[_ngcontent-%COMP%]{width:100%;height:auto;min-height:32px;max-height:76px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:0;display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:2px 4px!important;border:none!important;outline:none!important;border-radius:0;background-color:transparent;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--mat-sys-on-surface-variant) 30%,transparent) transparent}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar{width:5px}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent;margin:4px 0}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--mat-sys-on-surface-variant) 30%,transparent);border-radius:999px}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--mat-sys-on-surface-variant) 50%,transparent)}.student-widget-empty-state[_ngcontent-%COMP%]{width:100%;min-height:36px;height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:8px 14px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.student-widget-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-family:Syne,sans-serif;font-size:13px;font-weight:400;line-height:18px}mat-chip-row[_ngcontent-%COMP%]{--mdc-chip-container-shape: 999px !important;--mdc-shape-small: 999px !important;--mdc-chip-outline-color: var(--mat-sys-primary);--mdc-chip-label-text-color: #40484c;border-radius:999px!important;background-color:var(--slingui-surface, #eef3f6)!important;font-family:Syne,sans-serif;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.1px;color:#40484c;margin:0;padding:0 8px!important;transition:all .2s ease}.info[_ngcontent-%COMP%]{width:18px;height:18px;min-width:18px;flex:0 0 18px;font-size:18px;line-height:18px;display:flex;align-items:center;justify-content:center;color:var(--mat-sys-primary, #2b5b6c);margin-right:2px;cursor:help}.chip-content[_ngcontent-%COMP%]{min-width:0;max-width:100%;display:flex;gap:4px;align-items:center;overflow:visible}
5.chip-content[_ngcontent-%COMP%] slingui-avatar[_ngcontent-%COMP%]{flex:0 0 auto;display:flex;align-items:center}.chip-user-info[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%;cursor:pointer;overflow:visible}.chip-user-info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Syne,sans-serif;font-size:13px;font-weight:500;color:#40484c;letter-spacing:.1px}mat-icon[matChipRemove][_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;color:#40484c;opacity:.7;transition:opacity .2s ease,color .2s ease}mat-icon[matChipRemove][_ngcontent-%COMP%]:hover{opacity:1;color:var(--mat-sys-error, #ba1a1a)}[_nghost-%COMP%] .mat-mdc-chip-set, [_nghost-%COMP%] .mat-mdc-chip-grid, [_nghost-%COMP%] .mdc-evolution-chip-set, [_nghost-%COMP%] .mdc-evolution-chip-set__chips{min-width:0;max-width:100%;width:100%;margin:0!important;padding:0!important;gap:2px 4px!important;overflow:hidden!important}[_nghost-%COMP%] .mat-mdc-chip-grid .mdc-evolution-chip-set__chips, [_nghost-%COMP%] .mat-mdc-chip-set .mdc-evolution-chip-set__chips{width:100%;margin:0!important;padding:0!important;gap:2px 4px!important;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;overflow:hidden!important}[_nghost-%COMP%] .mat-mdc-chip, [_nghost-%COMP%] .mat-mdc-standard-chip, [_nghost-%COMP%] .mat-mdc-chip-row, [_nghost-%COMP%] .mdc-evolution-chip, [_nghost-%COMP%] .mdc-evolution-chip__chip-app-item, [_nghost-%COMP%] .mdc-evolution-chip__action, [_nghost-%COMP%] .mdc-evolution-chip__action--primary, [_nghost-%COMP%] .mdc-evolution-chip__cell, [_nghost-%COMP%] .mdc-evolution-chip__cell--primary, [_nghost-%COMP%] .mdc-evolution-chip__graphic, [_nghost-%COMP%] .mdc-evolution-chip__outline{min-width:0;max-width:100%;margin:0!important;border-radius:999px!important}[_nghost-%COMP%] .mdc-evolution-chip__chip-app-item, [_nghost-%COMP%] .mdc-evolution-chip__action--primary, [_nghost-%COMP%] .mdc-evolution-chip__cell--primary, [_nghost-%COMP%] .mdc-evolution-chip__text-label{overflow:visible!important} mat-chip-grid>div>.drag:first-child{--mdc-chip-outline-color: var(--mat-sys-primary)} .teacher-tooltip{max-width:480px!important;word-break:break-word;white-space:normal}"],changeDetection:0})}}return e})();var Xr=["teacherList"];function Zr(e,c){e&1&&(o(0,"div",8),g(1,"mat-spinner",13),a())}function ts(e,c){if(e&1&&(o(0,"mat-list-option",15)(1,"mat-icon",17),r(2,"person"),a(),o(3,"div",18),r(4),a()()),e&2){let t=c.$implicit,n=m(2);p("value",t)("selected",n.isAssigned(t)),l(4),_(n.getTeacherName(t))}}function es(e,c){e&1&&(o(0,"div",16),r(1,"No teachers found."),a())}function ns(e,c){if(e&1){let t=O();o(0,"mat-selection-list",14,0),v("selectionChange",function(i){w(t);let s=m();return M(s.onSelectionChange(i))}),z(2,ts,5,3,"mat-list-option",15,Ve),a(),u(4,es,2,0,"div",16)}if(e&2){let t=m();l(2),A(t.teachers()),l(2),h(t.teachers().length===0?4:-1)}}function is(e,c){e&1&&g(0,"mat-spinner",11)}function as(e,c){e&1&&r(0," Save ")}var Ba=(()=>{class e{constructor(){this.dialogRef=f(vt),this.data=f(Ct),this.inviteService=f(ne),this.userSelectorService=f(qi),this.snackBar=f(mt),this.selectedTeacherIds=P(new Set(this.data.assignedTeachersIds||[])),this.searchControl=new I(""),this.debouncedSearch=kt(this.searchControl.valueChanges.pipe(Rt(300),oe()),{initialValue:""}),this.teachersQuery=U(()=>({queryKey:["teachers","role-teacher",this.debouncedSearch()],queryFn:()=>ut(this,null,function*(){try{return(yield V(this.userSelectorService.searchUsers(this.debouncedSearch()??"","teacher"))).results||[]}catch{return this.snackBar.open("Failed to load teachers","Close",{duration:3e3}),[]}})})),this.teachers=y(()=>this.teachersQuery.data()||[]),this.loading=y(()=>this.teachersQuery.isPending()),this.saveMutation=Ot(()=>({mutationFn:t=>V(this.inviteService.edit(t)),onSuccess:()=>{this.snackBar.open("Teachers updated successfully","Close",{duration:3e3}),this.dialogRef.close(!0)},onError:()=>{this.snackBar.open("Failed to update teachers","Close",{duration:3e3})}})),this.submitting=y(()=>this.saveMutation.isPending()),this.teacherList=Re("teacherList"),Nt(()=>{requestAnimationFrame(()=>this.dialogRef.addPanelClass("assign-teacher-dialog-panel--ready"))})}isAssigned(t){let n=t,i=n._id||n.id;return i?this.selectedTeacherIds().has(i):!1}onSelectionChange(t){this.selectedTeacherIds.update(n=>{let i=new Set(n);for(let s of t.options){let d=s.value,x=d._id||d.id;x&&(s.selected?i.add(x):i.delete(x))}return i})}getTeacherName(t){let n=t;return n?.firstName||n?.lastName?`${n?.firstName||""} ${n?.lastName||""}`.trim():n?.name||n?.email||"Unknown"}confirm(){this.saveMutation.mutate({inviteId:this.data.inviteId,teachers:Array.from(this.selectedTeacherIds())})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-add-teacher-dialog"]],viewQuery:function(n,i){n&1&&We(i.teacherList,Xr,5),n&2&&Be()},decls:22,vars:5,consts:[["teacherList",""],[1,"mat-typography","slingui-popup","assign-teacher-popup"],[1,"assign-teacher-popup__header"],[1,"material-symbols-outlined"],[1,"search-container"],["appearance","outline",1,"search-field"],["matPrefix","",1,"material-symbols-outlined"],["matInput","","placeholder","Search teachers...",3,"formControl"],[1,"loading-container"],[1,"assign-teacher-actions"],["mat-flat-button","","color","primary",1,"assign-teacher-save",3,"click","disabled"],["diameter","20",1,"button-spinner"],["mat-button","","mat-dialog-close","",1,"assign-teacher-cancel",3,"disabled"],["diameter","40"],[3,"selectionChange"],[3,"value","selected"],[1,"empty-state"],["matListItemIcon","",1,"material-symbols-outlined"],["matListItemTitle",""]],template:function(n,i){n&1&&(o(0,"mat-dialog-content",1)(1,"div",2)(2,"mat-icon",3),r(3,"person_add"),a(),o(4,"h3"),r(5,"ASSIGN TEACHERS"),a(),g(6,"mat-divider"),o(7,"p"),r(8,"Select which teachers should be assigned to this student."),a()(),o(9,"div",4)(10,"mat-form-field",5)(11,"mat-icon",6),r(12,"search"),a(),g(13,"input",7),a()(),u(14,Zr,2,0,"div",8)(15,ns,5,1),o(16,"div",9)(17,"button",10),v("click",function(){return i.confirm()}),u(18,is,1,0,"mat-spinner",11)(19,as,1,0),a(),o(20,"button",12),r(21," Cancel "),a()()()),n&2&&(l(13),p("formControl",i.searchControl),l(),h(i.loading()?14:15),l(3),p("disabled",i.loading()||i.submitting()),l(),h(i.submitting()?18:19),l(2),p("disabled",i.submitting()))},dependencies:[et,Mt,bt,wt,L,F,Ye,Ke,He,Je,nt,Ue,k,S,G,R,pt,at,it,tn,St,Ft,ct,dt,ue],styles:[".assign-teacher-popup[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;max-width:560px;max-height:calc(100dvh - 32px);margin:0;padding-top:24px;padding-bottom:20px}.assign-teacher-popup__header[_ngcontent-%COMP%]{width:100%;max-width:364px;margin:0 auto 28px;display:grid;justify-items:center;text-align:center}.assign-teacher-popup__header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-top:12px;margin-bottom:12px;transform:scale(1.5)}.assign-teacher-popup__header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-family:Tanker-Regular,Tanker,Syne,sans-serif;font-style:normal;font-weight:400;font-size:24px;line-height:32px;text-align:center;color:#085e55}.assign-teacher-popup__header[_ngcontent-%COMP%] mat-divider[_ngcontent-%COMP%]{width:148px;margin:6px auto 12px}.assign-teacher-popup__header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;margin:0;font-family:Syne;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.25px}.search-container[_ngcontent-%COMP%]{padding:0 16px;margin-bottom:8px}.search-container[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]{width:100%}.assign-teacher-actions[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;margin-top:24px}.assign-teacher-save[_ngcontent-%COMP%]{width:100%;max-width:240px;border-radius:20px}.assign-teacher-cancel[_ngcontent-%COMP%]{display:flex;margin:8px auto 0} .assign-teacher-dialog-panel{visibility:hidden} .assign-teacher-dialog-panel.assign-teacher-dialog-panel--ready{visibility:visible} .assign-teacher-dialog-panel .mat-mdc-dialog-content{max-height:calc(100dvh - 32px)} .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid #e2e2e2;box-shadow:0 1px 4px #0035431a;border-radius:16px}.loading-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:2rem}.empty-state[_ngcontent-%COMP%]{text-align:center;padding:2rem;color:var(--text-color-secondary, #666)}.button-spinner[_ngcontent-%COMP%]{margin:0 auto}mat-selection-list[_ngcontent-%COMP%]{max-height:400px;overflow-y:auto}"],changeDetection:0})}}return e})();
5function os(e,c){if(e&1){let t=O();o(0,"button",7),v("click",function(){w(t);let i=m();return M(i.openAssignTeacherDialog())}),r(1," Assign "),a()}}var Qa=(()=>{class e{openAssignTeacherDialog(){let t=this.state.inviteId();if(!t)return;let n=this.state.selectedTeachers().map(s=>s._id||s.id).filter(s=>!!s);this.dialog.open(Ba,{width:"400px",panelClass:"assign-teacher-dialog-panel",data:{inviteId:t,assignedTeachersIds:n}}).afterClosed().subscribe(s=>{s&&this.state.studentInviteQuery.refetch()})}constructor(){this.state=f(T),this.dialog=f(Yt);let t=this.state.studentProfileForm.controls.teachers;t.valueChanges.pipe(Yn()).subscribe(()=>{t.dirty&&this.state.studentProfileForm.valid&&(this.state.saveStudentProfile(),t.markAsPristine())})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-assigned-teachers-widget"]],decls:10,vars:5,consts:[[1,"student-widget","assigned-teachers-panel"],[1,"student-widget-header"],[1,"mat-h2"],[1,"material-symbols-outlined"],["mat-flat-button","","color","primary","type","button",1,"assign-button"],[1,"info-section"],["role","teacher",1,"profile-teacher-selector",3,"control","selectedUsers","drag","removable"],["mat-flat-button","","color","primary","type","button",1,"assign-button",3,"click"]],template:function(n,i){n&1&&(o(0,"mat-card",0)(1,"mat-card-content")(2,"div",1)(3,"h2",2)(4,"mat-icon",3),r(5,"supervisor_account"),a(),r(6," Teachers "),a(),u(7,os,2,0,"button",4),a(),o(8,"div",5),g(9,"app-teacher-selector",6),a()()()),n&2&&(l(7),h(i.state.canUpdateStudent()?7:-1),l(2),p("control",i.state.studentProfileForm.controls.teachers)("selectedUsers",i.state.selectedTeachers())("drag",i.state.canUpdateStudent())("removable",i.state.canUpdateStudent()))},dependencies:[et,q,N,$,k,S,L,F,Mt,Wa],styles:["[_nghost-%COMP%]{display:block;min-width:0;width:100%}.student-widget.mat-mdc-card[_ngcontent-%COMP%]{position:relative;height:100%;overflow:hidden;isolation:isolate;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.student-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:16px;background:var(--mat-sys-surface);display:flex;flex-direction:column;height:100%;box-sizing:border-box}.student-widget-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:14px}.student-widget-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px;text-transform:uppercase}.student-widget-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.student-widget-header[_ngcontent-%COMP%] .assign-button[_ngcontent-%COMP%]{height:32px;padding:0 16px;font-family:Syne,sans-serif!important;font-size:13px;font-weight:500}.info-section[_ngcontent-%COMP%]{display:flex;align-items:flex-start;width:100%;flex:1}.profile-teacher-selector[_ngcontent-%COMP%]{width:100%} .mat-mdc-text-field-wrapper{overflow:visible!important}"],changeDetection:0})}}return e})();var rs=["groupList"];function ss(e,c){e&1&&(o(0,"div",8),g(1,"mat-spinner",13),a())}function ls(e,c){if(e&1&&(o(0,"mat-list-option",15)(1,"mat-icon",17),r(2,"group"),a(),o(3,"div",18),r(4),a()()),e&2){let t=c.$implicit,n=m(2);p("value",t)("selected",n.isAssigned(t)),l(4),_(n.getGroupName(t))}}function cs(e,c){e&1&&(o(0,"div",16),r(1,"No groups found."),a())}function ds(e,c){if(e&1){let t=O();o(0,"mat-selection-list",14,0),v("selectionChange",function(i){w(t);let s=m();return M(s.onSelectionChange(i))}),z(2,ls,5,3,"mat-list-option",15,Ve),a(),u(4,cs,2,0,"div",16)}if(e&2){let t=m();l(2),A(t.groups()),l(2),h(t.groups().length===0?4:-1)}}function ms(e,c){e&1&&g(0,"mat-spinner",11)}function ps(e,c){e&1&&r(0," Save ")}var $a=(()=>{class e{constructor(){this.dialogRef=f(vt),this.data=f(Ct),this.inviteService=f(ne),this.queryClient=f(ee),this.snackBar=f(mt),this.initialAssignedIds=new Set(this.data.assignedGroupIds||[]),this.selectedGroupIds=P(new Set(this.data.assignedGroupIds||[])),this.searchControl=new I(""),this.debouncedSearch=kt(this.searchControl.valueChanges.pipe(Rt(300),oe()),{initialValue:""}),this.groupsQuery=U(()=>({queryKey:["groups",this.data.organizationId,this.debouncedSearch()],queryFn:()=>ut(this,null,function*(){try{let n=yield V(this.inviteService.getGroups(this.data.organizationId,this.debouncedSearch()??""));return Array.isArray(n)?n:n?.results||[]}catch{return[]}})})),this.groups=y(()=>this.groupsQuery.data()||[]),this.loading=y(()=>this.groupsQuery.isPending()),this.saveMutation=Ot(()=>({mutationKey:["sync-groups",this.data.organizationId,this.data.userId],mutationFn:t=>V(this.inviteService.syncGroups(t.organizationId,t.userId,{toAdd:t.toAdd,toRemove:t.toRemove})),onSuccess:t=>{if(t){let n=[];if(Array.isArray(t))n=t;else if(t&&typeof t=="object"){let i=t;n=i.results||i.groups||i.items||[]}Array.isArray(n)&&this.queryClient.setQueryData(["assigned-groups",this.data.organizationId,this.data.userId],n)}this.snackBar.open("Groups updated successfully","Close",{duration:3e3}),this.dialogRef.close(!0)},onError:()=>{this.snackBar.open("Failed to update groups","Close",{duration:3e3})}})),this.submitting=y(()=>this.saveMutation.isPending()),this.groupList=Re("groupList"),Nt(()=>{requestAnimationFrame(()=>this.dialogRef.addPanelClass("assign-group-dialog-panel--ready"))})}isAssigned(t){let n=t,i=n._id||n.id;return i?this.selectedGroupIds().has(i):!1}onSelectionChange(t){this.selectedGroupIds.update(n=>{let i=new Set(n);for(let s of t.options){let d=s.value,x=d._id||d.id;x&&(s.selected?i.add(x):i.delete(x))}return i})}getGroupName(t){return t.name||"Unknown Group"}confirm(){let t=this.selectedGroupIds(),n=Array.from(t),i=Array.from(this.initialAssignedIds).filter(s=>!t.has(s));this.saveMutation.mutate({organizationId:this.data.organizationId,userId:this.data.userId,toAdd:n,toRemove:i})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-add-group-dialog"]],viewQuery:function(n,i){n&1&&We(i.groupList,rs,5),n&2&&Be()},decls:22,vars:5,consts:[["groupList",""],[1,"mat-typography","slingui-popup","assign-group-popup"],[1,"assign-group-popup__header"],[1,"material-symbols-outlined"],[1,"search-container"],["appearance","outline",1,"search-field"],["matPrefix","",1,"material-symbols-outlined"],["matInput","","placeholder","Search groups...",3,"formControl"],[1,"loading-container"],[1,"assign-group-actions"],["mat-flat-button","","color","primary",1,"assign-group-save",3,"click","disabled"],["diameter","18"],["mat-button","","mat-dialog-close","",1,"assign-group-cancel",3,"disabled"],["diameter","40"],[3,"selectionChange"],[3,"value","selected"],[1,"empty-state"],["matListItemIcon","",1,"material-symbols-outlined"],["matListItemTitle",""]],template:function(n,i){n&1&&(o(0,"mat-dialog-content",1)(1,"div",2)(2,"mat-icon",3),r(3,"group_add"),a(),o(4,"h3"),r(5,"ASSIGN GROUPS"),a(),g(6,"mat-divider"),o(7,"p"),r(8,"Select which groups should be assigned to this student."),a()(),o(9,"div",4)(10,"mat-form-field",5)(11,"mat-icon",6),r(12,"search"),a(),g(13,"input",7),a()(),u(14,ss,2,0,"div",8)(15,ds,5,1),o(16,"div",9)(17,"button",10),v("click",function(){return i.confirm()}),u(18,ms,1,0,"mat-spinner",11)(19,ps,1,0),a(),o(20,"button",12),r(21," Cancel "),a()()()),n&2&&(l(13),p("formControl",i.searchControl),l(),h(i.loading()?14:15),l(3),p("disabled",i.loading()||i.submitting()),l(),h(i.submitting()?18:19),l(2),p("disabled",i.submitting()))},dependencies:[et,Mt,bt,wt,L,F,Ye,Ke,He,Je,nt,Ue,k,S,G,R,pt,at,it,tn,St,Ft,ct,dt,ue],styles:[".assign-group-popup[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;max-width:560px;max-height:calc(100dvh - 32px);margin:0;padding-top:24px;padding-bottom:20px}.assign-group-popup__header[_ngcontent-%COMP%]{width:100%;max-width:364px;margin:0 auto 28px;display:grid;justify-items:center;text-align:center}.assign-group-popup__header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-top:12px;margin-bottom:12px;transform:scale(1.5)}.assign-group-popup__header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-family:Tanker-Regular,Tanker,Syne,sans-serif;font-style:normal;font-weight:400;font-size:24px;line-height:32px;text-align:center;color:#085e55}.assign-group-popup__header[_ngcontent-%COMP%] mat-divider[_ngcontent-%COMP%]{width:148px;margin:6px auto 12px}.assign-group-popup__header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;margin:0;font-family:Syne;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.25px}.search-container[_ngcontent-%COMP%]{padding:0 16px;margin-bottom:8px}.search-container[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]{width:100%}.assign-group-actions[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;margin-top:24px}.assign-group-save[_ngcontent-%COMP%]{width:100%;max-width:240px;border-radius:20px}.assign-group-cancel[_ngcontent-%COMP%]{display:flex;margin:8px auto 0}.loading-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:2rem}.empty-state[_ngcontent-%COMP%]{text-align:center;padding:2rem;color:var(--text-color-secondary, #666)}.button-spinner[_ngcontent-%COMP%]{margin:0 auto}mat-selection-list[_ngcontent-%COMP%]{max-height:300px;overflow-y:auto} .assign-group-dialog-panel{visibility:hidden} .assign-group-dialog-panel.assign-group-dialog-panel--ready{visibility:visible} .assign-group-dialog-panel .mat-mdc-dialog-content{max-height:calc(100dvh - 32px)} .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid #e2e2e2;box-shadow:0 1px 4px #0035431a;border-radius:16px}"],changeDetection:0})}}return e})();var gs=(e,c)=>c._id||c.id||c.name;function us(e,c){e&1&&(o(0,"div",1),g(1,"mat-spinner",9),a())}
5function hs(e,c){if(e&1){let t=O();o(0,"button",10),v("click",function(){w(t);let i=m();return M(i.openAssignGroupDialog())}),r(1," Assign "),a()}}function fs(e,c){e&1&&(o(0,"mat-icon",15),r(1,"close"),a())}function xs(e,c){if(e&1){let t=O();o(0,"mat-chip-row",13),v("removed",function(){let i=w(t).$implicit,s=m(2);return M(s.removeGroup(i))}),o(1,"span",14),r(2),a(),u(3,fs,2,0,"mat-icon",15),a()}if(e&2){let t=c.$implicit,n=m(2);l(2),_(t.name),l(),h(n.state.canUpdateStudent()?3:-1)}}function ys(e,c){if(e&1&&(o(0,"div",7)(1,"mat-chip-set",11),z(2,xs,4,2,"mat-chip-row",12,gs),a()()),e&2){let t=m();l(2),A(t.groups())}}function _s(e,c){e&1&&(o(0,"div",8)(1,"small"),r(2,"This student does not have any groups yet."),a()())}var qa=(()=>{class e{constructor(){this.state=f(T),this.dialog=f(Yt),this.inviteService=f(ne),this.queryClient=f(ee),this.snackBar=f(mt),this.groupsQuery=U(()=>{let t=this.state.organizationId(),n=this.state.requestContext()?.userId;return{queryKey:["assigned-groups",t,n],enabled:!!t&&!!n,queryFn:()=>ut(this,null,function*(){try{let s=yield V(this.inviteService.getGroups(t,"",n));return Array.isArray(s)?s:s?.results||[]}catch{return[]}})}}),this.removedGroupIds=P(new Set),this.groups=y(()=>{let t=this.groupsQuery.data()||[],n=this.removedGroupIds();return t.filter(i=>!n.has(i._id||i.id))}),this.isMutatingSync=$i({mutationKey:["sync-groups"]}),this.loading=y(()=>this.groupsQuery.isPending()||this.groupsQuery.isFetching()||this.isMutatingSync()>0),this.syncMutation=Ot(()=>({mutationKey:["sync-groups",this.state.organizationId(),this.state.requestContext()?.userId],mutationFn:t=>V(this.inviteService.syncGroups(t.organizationId,t.userId,{toAdd:t.toAdd,toRemove:t.toRemove})),onSuccess:(t,n)=>{if(this.removedGroupIds.set(new Set),t){let i=[];if(Array.isArray(t))i=t;else if(t&&typeof t=="object"){let s=t;i=s.results||s.groups||s.items||[]}Array.isArray(i)&&this.queryClient.setQueryData(["assigned-groups",n.organizationId,n.userId],i)}this.snackBar.open("Group removed successfully","Close",{duration:3e3})},onError:()=>{this.removedGroupIds.set(new Set),this.snackBar.open("Failed to remove group","Close",{duration:3e3})}}))}openAssignGroupDialog(){let t=this.state.organizationId(),n=this.state.requestContext()?.userId;if(!t||!n)return;let i=this.groups().map(d=>d._id||d.id).filter(d=>!!d);this.dialog.open($a,{width:"400px",panelClass:"assign-group-dialog-panel",data:{organizationId:t,userId:n,assignedGroupIds:i}}).afterClosed().subscribe()}removeGroup(t){let n=t._id||t.id;if(!n)return;let i=this.state.organizationId(),s=this.state.requestContext()?.userId;!i||!s||(this.removedGroupIds.update(d=>{let x=new Set(d);return x.add(n),x}),this.syncMutation.mutate({organizationId:i,userId:s,toAdd:[],toRemove:[n]}))}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-assigned-groups-widget"]],decls:12,vars:3,consts:[[1,"student-widget","assigned-groups-panel"],["aria-live","polite","aria-label","Loading groups",1,"student-widget-loading-overlay"],[1,"student-widget-header"],[1,"mat-h2"],[1,"material-symbols-outlined"],["mat-flat-button","","color","primary","type","button",1,"assign-button"],[1,"info-section"],[1,"chips-container-box"],[1,"student-widget-empty-state"],["diameter","28"],["mat-flat-button","","color","primary","type","button",1,"assign-button",3,"click"],["aria-label","Groups"],[1,"group-chip"],[1,"group-chip",3,"removed"],[1,"group-chip-name"],["matChipRemove","",1,"material-symbols-outlined"]],template:function(n,i){n&1&&(o(0,"mat-card",0),u(1,us,2,0,"div",1),o(2,"mat-card-content")(3,"div",2)(4,"h2",3)(5,"mat-icon",4),r(6,"group"),a(),r(7," Groups "),a(),u(8,hs,2,0,"button",5),a(),o(9,"div",6),u(10,ys,4,0,"div",7)(11,_s,3,0,"div",8),a()()()),n&2&&(l(),h(i.loading()?1:-1),l(7),h(i.state.canUpdateStudent()?8:-1),l(2),h(i.groups().length>0?10:11))},dependencies:[et,q,N,$,k,S,L,F,te,sn,ln,cn,Mt,G,R],styles:["[_nghost-%COMP%]{display:block;min-width:0;width:100%}.student-widget.mat-mdc-card[_ngcontent-%COMP%]{position:relative;height:100%;overflow:hidden;isolation:isolate;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.student-widget-loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:3;display:grid;place-items:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 86%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}.student-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:16px;background:var(--mat-sys-surface);display:flex;flex-direction:column;height:100%;box-sizing:border-box}.student-widget-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:14px}.student-widget-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px;text-transform:uppercase}.student-widget-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.student-widget-header[_ngcontent-%COMP%] .assign-button[_ngcontent-%COMP%]{height:32px;padding:0 16px;font-family:Syne,sans-serif!important;font-size:13px;font-weight:500}.chips-container-box[_ngcontent-%COMP%]{width:100%;height:auto;min-height:32px;max-height:76px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:0;display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:2px 4px!important;border:none!important;outline:none!important;border-radius:0;background-color:transparent;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--mat-sys-on-surface-variant) 30%,transparent) transparent}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar{width:5px}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent;margin:4px 0}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--mat-sys-on-surface-variant) 30%,transparent);border-radius:999px}.chips-container-box[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--mat-sys-on-surface-variant) 50%,transparent)}.info-section[_ngcontent-%COMP%]{display:flex;align-items:flex-start;width:100%;flex:1}.student-widget-empty-state[_ngcontent-%COMP%]{width:100%;min-height:36px;height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:8px 14px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.student-widget-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-family:Syne,sans-serif;font-size:13px;font-weight:400;line-height:18px}mat-chip-row.group-chip[_ngcontent-%COMP%]{--mdc-chip-container-shape: 999px !important;--mdc-shape-small: 999px !important;border-radius:999px!important;background-color:var(--slingui-surface, #eef3f6)!important;font-family:Syne,sans-serif;font-size:13px;font-weight:500;color:#40484c;margin:0;padding:0 10px!important;border:1px solid var(--mat-sys-outline-variant)!important}mat-icon[matChipRemove][_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px;margin-left:4px;color:#5f666a;opacity:.7;transition:opacity .2s ease,color .2s ease;cursor:pointer}mat-icon[matChipRemove][_ngcontent-%COMP%]:hover{opacity:1;color:var(--mat-sys-error, #ba1a1a)}[_nghost-%COMP%] .mat-mdc-chip-set, [_nghost-%COMP%] .mdc-evolution-chip-set, [_nghost-%COMP%] .mdc-evolution-chip-set__chips{min-width:0;max-width:100%;width:100%;margin:0!important;padding:0!important;gap:2px 4px!important;overflow:hidden!important}[_nghost-%COMP%] .mat-mdc-chip-set .mdc-evolution-chip-set__chips{width:100%;margin:0!important;padding:0!important;gap:2px 4px!important;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;overflow:hidden!important}[_nghost-%COMP%] .mat-mdc-chip, [_nghost-%COMP%] .mat-mdc-standard-chip, [_nghost-%COMP%] .mat-mdc-chip-row, [_nghost-%COMP%] .mdc-evolution-chip, [_nghost-%COMP%] .mdc-evolution-chip__chip-app-item, [_nghost-%COMP%] .mdc-evolution-chip__action, [_nghost-%COMP%] .mdc-evolution-chip__cell, [_nghost-%COMP%] .mdc-evolution-chip__outline{min-width:0;max-width:100%;margin:0!important;border-radius:999px!important}"],changeDetection:0})}}return e})();function vs(e,c){e&1&&g(0,"app-student-balances-overview-widget")}var yn=(()=>{class e{constructor(){this.detailState=f(T),this.chartInitialized=Tt()}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-overview-tab"]],outputs:{chartInitialized:"chartInitialized"},decls:8,vars:1,consts:[[1,"tab-content","overview-tab"],[1,"dashboard-grid","dashboard-grid--overview"],[1,"assigned-widgets-row","full-width-widget"],[3,"chartInitialized"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"div",2),g(3,"app-assigned-teachers-widget")(4,"app-assigned-groups-widget"),a(),o(5,"app-daily-engagement-widget",3),v("chartInitialized",function(d){return i.chartInitialized.emit(d)}),a(),g(6,"app-next-classes-widget"),u(7,vs,1,0,"app-student-balances-overview-widget"),a()()),n&2&&(l(7),h(i.detailState.canManageBilling()?7:-1))},dependencies:[xn,La,Ga,Qa,qa],styles:["[_nghost-%COMP%]{display:block;min-width:0}.tab-content[_ngcontent-%COMP%]{padding-top:14px}.dashboard-grid[_ngcontent-%COMP%]{display:grid;gap:12px}.dashboard-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0}.dashboard-grid--overview[_ngcontent-%COMP%]{grid-template-columns:1.7fr 1fr}.full-width-widget[_ngcontent-%COMP%]{grid-column:1/-1}.assigned-widgets-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:992px){.assigned-widgets-row[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}@media(max-width:1200px){.dashboard-grid--overview[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:992px){.dashboard-grid--overview[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}"],changeDetection:0})}}return e})();var _n=(()=>{class e{constructor(){this.queryClient=f(ee),this.detailState=f(T),this.studentDetailService=f(It),this.assignmentsQuery=U(()=>{let t=this.detailState.requestContext();return{queryKey:this.queryKey(t),enabled:!!t?.organizationId&&!!t?.studentEmail&&!!t?.teacherEmail,staleTime:300*1e3,gcTime:1800*1e3,queryFn:()=>this.studentDetailService.getAssignedExercisesResponse(t)}}),this.assignments=y(()=>this.studentDetailService.mapAssignedExerciseItems(this.assignmentsQuery.data()?.items??[],!1)),this.pathways=y(()=>this.studentDetailService.mapAssignedExerciseItems(this.assignmentsQuery.data()?.items??[],!0)),this.canLoad=y(()=>{let t=this.detailState.requestContext();return!!t?.organizationId&&!!t?.studentEmail&&!!t?.teacherEmail}),this.removeExerciseMutation=Ot(()=>({mutationFn:t=>this.studentDetailService.removeAssignedExercise(t.context,t.id),onSuccess:(t,n)=>this.removeCachedItems(n.queryKey,t)})),this.removePathwayMutation=Ot(()=>({mutationFn:t=>this.studentDetailService.removeAssignedPathway(t.context,t.id),onSuccess:(t,n)=>this.removeCachedItems(n.queryKey,t)})),this.disabledPathwayCards=[this.disabledCard("1","Vocabulary","reading","medium"),this.disabledCard("2","Listening","listening","hard"),this.disabledCard("3","Clauses","speaking","easy"),this.disabledCard("4","Reading","reading","medium"),this.disabledCard("5","Speaking","listening","hard"),this.disabledCard("6","Review","reading","easy")],this.pathwayCards=y(()=>this.detailState.pathwaysEnabled()?this.pathways():this.disabledPathwayCards)}removeAssignment(t){let n=this.detailState.requestContext();!n||!this.canLoad()||this.removeExerciseMutation.isPending()||this.removeExerciseMutation.mutate({id:t,context:n,queryKey:this.queryKey(n)})}removePathway(t){let n=this.detailState.requestContext();!n||!this.canLoad()||this.removePathwayMutation.isPending()||this.removePathwayMutation.mutate({id:t,context:n,queryKey:this.queryKey(n)})}queryKey(t){return["student-detail","assigned-exercises-response",t?.organizationId??"",t?.inviteId??"",t?.studentEmail??"",t?.teacherEmail??""]}removeCachedItems(t,n){if(n.length>0){let i=new Set(n);this.queryClient.setQueryData(t,s=>s&&ae(ot({},s),{items:(s.items??[]).filter(d=>!i.has(this.assignmentItemId(d)))}))}
5this.queryClient.invalidateQueries({queryKey:t}),this.queryClient.invalidateQueries({queryKey:["student-detail","pathway-progress"]})}assignmentItemId(t){let n=this.record(t),i=this.record(n?.exerciseData);return`${n?.id??n?._id??n?.exerciseId??i?.id??i?._id??""}`}disabledCard(t,n,i,s){return{id:`disabled-pathway-preview-${t}`,title:"Pathway preview",description:"Compact pathway preview content.",level:"A2 - B1",tags:["#Preview"],outlineChips:[n],difficulty:s,variant:i,answerSummary:{correct:0,wrongAnswers:0,wrongAttempts:0,unanswered:0}}}record(t){return t!==null&&typeof t=="object"?t:void 0}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();var Ua=(()=>{class e{transform(t){return t&&t?.replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>")}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275pipe=Bn({name:"boldTextToHtml",type:e,pure:!0})}}return e})();var Se=(()=>{class e{constructor(){this.detailState=f(T)}openSettings(){this.detailState.openTestPathwaysDialog()}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-pathways-disabled-overlay"]],decls:7,vars:0,consts:[["role","status",1,"student-pathways-disabled-overlay"],["mat-stroked-button","","type","button",3,"click"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"strong"),r(2,"Pathways disabled"),a(),o(3,"small"),r(4,"Enable to assign and track pathways."),a(),o(5,"button",1),v("click",function(){return i.openSettings()}),r(6," Enable Pathways "),a()())},dependencies:[L,F],styles:["[_nghost-%COMP%]{position:absolute;inset:0;z-index:3;display:block;overflow:hidden;border-radius:inherit}.student-pathways-disabled-overlay[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;height:100%;display:grid;place-content:center;justify-items:center;gap:4px;padding:8px 12px;border-radius:inherit;background:var(--mat-sys-surface);color:var(--mat-sys-on-surface);text-align:center}strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:12px;font-weight:600;line-height:15px}small[_ngcontent-%COMP%]{max-width:220px;color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:13px}button[mat-stroked-button][_ngcontent-%COMP%]{position:relative;justify-self:center;min-width:0;height:28px;margin-top:2px;padding:0 12px;font-size:11px;line-height:28px}"],changeDetection:0})}}return e})();var bs=(e,c)=>({assignment:e,removeLabel:"Remove exercise",remove:c}),Ja=e=>[e],ws=e=>({assignment:e}),Ms=(e,c)=>({assignment:e,removeLabel:"Remove pathway exercise",remove:c}),Ha=(e,c)=>c.title,Ps=(e,c)=>c.label,zn=(e,c)=>c.id;function Ss(e,c){e&1&&(o(0,"div",8)(1,"div",25),g(2,"mat-spinner",26),a()())}function Os(e,c){e&1&&(o(0,"div",9),r(1,"Performance overview is unavailable for this student."),a())}function Es(e,c){e&1&&(o(0,"div",10)(1,"mat-icon",7),r(2,"monitoring"),a(),o(3,"strong"),r(4,"Performance overview is unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Is(e,c){if(e&1&&(o(0,"div",11)(1,"mat-icon",7),r(2,"monitoring"),a(),o(3,"strong"),r(4),a(),o(5,"small"),r(6,"This section follows the Daily engagement time span. Exercise skill data will appear here when available for the selected period."),a()()),e&2){let t=m();l(4),D("Performance overview isn't available for ",t.selectedTimeSpanLabel().toLowerCase(),"")}}function Ts(e,c){if(e&1&&(o(0,"div")(1,"span"),r(2),a(),o(3,"span"),r(4),a()()),e&2){let t=c.$implicit;l(2),_(t.label),l(2),_(t.value)}}function ks(e,c){if(e&1&&(o(0,"article",28)(1,"strong"),r(2),a(),z(3,Ts,5,2,"div",null,Ps),a()),e&2){let t=c.$implicit;Q("performance-card--reading",t.variant==="reading")("performance-card--grammar",t.variant==="grammar")("performance-card--speaking",t.variant==="speaking")("performance-card--listening",t.variant==="listening"),l(2),_(t.title),l(),A(t.rows)}}function Ds(e,c){if(e&1&&(o(0,"div",12),z(1,ks,5,9,"article",27,Ha),a()),e&2){let t=m();l(),A(t.performanceSections())}}function zs(e,c){e&1&&(o(0,"div",14)(1,"div",25),g(2,"mat-spinner",26),a()())}function As(e,c){e&1&&(o(0,"div",9),r(1,"Review suggestions are unavailable for this student."),a())}function Fs(e,c){e&1&&(o(0,"div",10)(1,"mat-icon",7),r(2,"auto_fix_high"),a(),o(3,"strong"),r(4,"Review suggestions are unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}
5function js(e,c){if(e&1&&(o(0,"div",11)(1,"mat-icon",7),r(2,"auto_fix_high"),a(),o(3,"strong"),r(4),a(),o(5,"small"),r(6,"This section follows the Daily engagement time span. Grammar and vocabulary suggestions will appear when available for the selected period."),a()()),e&2){let t=m();l(4),D("Review suggestions aren't available for ",t.selectedTimeSpanLabel().toLowerCase(),"")}}function Ls(e,c){if(e&1&&(o(0,"div",29)(1,"strong"),r(2),a(),o(3,"small"),r(4),a()()),e&2){let t=c.$implicit;l(2),_(t.title),l(2),_(t.description)}}function Rs(e,c){if(e&1&&z(0,Ls,5,2,"div",29,Ha),e&2){let t=m();A(t.reviewSuggestions())}}function Gs(e,c){e&1&&(o(0,"div",17),g(1,"mat-spinner",26),a())}function Vs(e,c){e&1&&(o(0,"div",20)(1,"div",25),g(2,"mat-spinner",26),a()())}function Ns(e,c){e&1&&(o(0,"div",9),r(1,"Assigned exercises are unavailable for this student."),a())}function Ws(e,c){e&1&&(o(0,"div",10)(1,"mat-icon",7),r(2,"library_books"),a(),o(3,"strong"),r(4,"Assigned exercises are unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Bs(e,c){e&1&&(o(0,"div",11)(1,"mat-icon",7),r(2,"library_books"),a(),o(3,"strong"),r(4,"No assigned exercises"),a(),o(5,"small"),r(6,"Assigned exercises will show here after this student receives individual activities."),a()())}function Qs(e,c){e&1&&Ne(0)}function $s(e,c){if(e&1&&u(0,Qs,1,0,"ng-container",32),e&2){let t=c.$implicit,n=m(2),i=ht(63);p("ngTemplateOutlet",i)("ngTemplateOutletContext",ze(2,bs,t,n.removeAssignment))}}function qs(e,c){if(e&1){let t=O();o(0,"mat-paginator",33),v("page",function(i){w(t);let s=m(2);return M(s.onAssignmentsPageChange(i))}),a()}if(e&2){let t=m(2);p("length",t.assignments().length)("pageIndex",t.assignmentsPageIndex())("pageSize",t.pageSize)("pageSizeOptions",ft(4,Ja,t.pageSize))}}function Us(e,c){if(e&1&&(o(0,"div",30),z(1,$s,1,5,"ng-container",null,zn),a(),u(3,qs,1,6,"mat-paginator",31)),e&2){let t=m();l(),A(t.pagedAssignments()),l(2),h(t.assignments().length>t.pageSize?3:-1)}}function Js(e,c){e&1&&(o(0,"div",17),g(1,"mat-spinner",26),a())}function Hs(e,c){e&1&&Ne(0)}function Ks(e,c){if(e&1&&u(0,Hs,1,0,"ng-container",32),e&2){let t=c.$implicit;m(2);let n=ht(63);p("ngTemplateOutlet",n)("ngTemplateOutletContext",ft(2,ws,t))}}function Ys(e,c){if(e&1&&(o(0,"div",23),z(1,Ks,1,4,"ng-container",null,zn),a()),e&2){let t=m();l(),A(t.pathwayCards())}}function Xs(e,c){e&1&&(o(0,"div",24)(1,"div",25),g(2,"mat-spinner",26),a()())}function Zs(e,c){e&1&&(o(0,"div",9),r(1,"Exercises from pathways are unavailable for this student."),a())}function tl(e,c){e&1&&(o(0,"div",10)(1,"mat-icon",7),r(2,"route"),a(),o(3,"strong"),r(4,"Exercises from pathways are unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}function el(e,c){e&1&&(o(0,"div",11)(1,"mat-icon",7),r(2,"route"),a(),o(3,"strong"),r(4,"No exercises from pathways"),a(),o(5,"small"),r(6,"Exercises assigned from pathways will appear here when available."),a()())}function nl(e,c){e&1&&Ne(0)}function il(e,c){if(e&1&&u(0,nl,1,0,"ng-container",32),e&2){let t=c.$implicit,n=m(2),i=ht(63);p("ngTemplateOutlet",i)("ngTemplateOutletContext",ze(2,Ms,t,n.removePathway))}}function al(e,c){if(e&1){let t=O();o(0,"mat-paginator",35),v("page",function(i){w(t);let s=m(2);return M(s.onPathwaysPageChange(i))}),a()}if(e&2){let t=m(2);p("length",t.pathways().length)("pageIndex",t.pathwaysPageIndex())("pageSize",t.pageSize)("pageSizeOptions",ft(4,Ja,t.pageSize))}}function ol(e,c){if(e&1&&(o(0,"div",30),z(1,il,1,5,"ng-container",null,zn),a(),u(3,al,1,6,"mat-paginator",34)),e&2){let t=m();l(),A(t.pagedPathways()),l(2),h(t.pathways().length>t.pageSize?3:-1)}}function rl(e,c){e&1&&g(0,"app-pathways-disabled-overlay")}function sl(e,c){if(e&1){let t=O();o(0,"div",37)(1,"button",54),v("click",function(i){w(t);let s=m(),d=s.assignment,x=s.remove;return x(d.id),M(i.stopPropagation())}),o(2,"mat-icon",7),r(3,"close"),a()()()}if(e&2){let t=m().removeLabel;l(),lt("aria-label",t)}}function ll(e,c){if(e&1&&(o(0,"mat-chip",42),r(1),a()),e&2){let t=m().assignment;p("appAssignmentTooltip",t.tags.slice(1).join(", ")),l(),_(c)}}function cl(e,c){if(e&1&&(o(0,"mat-chip",43),r(1),a()),e&2){let t=m().assignment;p("appAssignmentTooltip",t.outlineChips.slice(1).join(", ")),l(),_(c)}}function dl(e,c){if(e&1&&(o(0,"span",46),r(1),a()),e&2){let t=m().assignment;l(),_(t.level)}}
5function ml(e,c){if(e&1){let t=O();o(0,"article",36),v("click",function(){let i=w(t).assignment,s=m();return M(s.onAssignmentClick(i))}),u(1,sl,4,1,"div",37),o(2,"div",38)(3,"strong",39),r(4),a(),g(5,"p",40),B(6,"boldTextToHtml"),B(7,"safeHtml"),o(8,"mat-chip-set",41),u(9,ll,2,2,"mat-chip",42)(10,cl,2,2,"mat-chip",43),a()(),o(11,"div",44)(12,"span",45),u(13,dl,2,1,"span",46),o(14,"span",47)(15,"span",7),r(16,"local_fire_department"),a(),o(17,"span",7),r(18,"local_fire_department"),a(),o(19,"span",7),r(20,"local_fire_department"),a()()(),o(21,"span",48)(22,"span",49)(23,"span",50),r(24,"\u2022"),a(),o(25,"span"),r(26),a()(),o(27,"span",51)(28,"span",50),r(29,"\u2022"),a(),o(30,"span"),r(31),a()(),o(32,"span",52)(33,"span",50),r(34,"\xD7"),a(),o(35,"span"),r(36),a()(),o(37,"span",53)(38,"span",50),r(39,"\u25CB"),a(),o(40,"span"),r(41),a()()()()()}if(e&2){let t,n,i=c.assignment,s=c.remove,d=m();Q("assignment-card--clickable",!!i.url)("assignment-card--reading",i.variant==="reading")("assignment-card--grammar",i.variant==="grammar")("assignment-card--speaking",i.variant==="speaking")("assignment-card--listening",i.variant==="listening")("assignment-card--pack",i.variant==="pack"),l(),h(s?1:-1),l(2),p("appAssignmentTooltip",i.title),l(),_(i.title),l(),p("innerHTML",Y(7,33,Y(6,31,i.description)),Gn)("appAssignmentTooltip",i.description),l(4),h((t=i.tags[0])?9:-1,t),l(),h((n=i.outlineChips[0])?10:-1,n),l(3),h(i.level?13:-1),l(),lt("aria-label","Difficulty is "+i.difficulty),l(3),Q("assignment-fire--muted",i.difficulty==="easy"),l(2),Q("assignment-fire--muted",i.difficulty==="easy"||i.difficulty==="medium"),l(2),lt("data-tooltip",d.answerSummaryTooltip)("aria-label","Answer summary: "+i.answerSummary.correct+" correct answers, "+i.answerSummary.wrongAnswers+" wrong answers, "+i.answerSummary.wrongAttempts+" total wrong attempts, "+i.answerSummary.unanswered+" unanswered questions"),l(5),_(i.answerSummary.correct),l(5),_(i.answerSummary.wrongAnswers),l(5),_(i.answerSummary.wrongAttempts),l(5),_(i.answerSummary.unanswered)}}function pl(e){return!!e&&(e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight)}var gl=(()=>{class e{constructor(){this.message="",this.assignmentTooltipActivation="overflow",this.assignmentTooltipText="input",this.element=f(Le).nativeElement,this.renderer=f(Vn),this.tooltip=f(Xt,{host:!0}),this.initialized=!1,this.destroyed=!1,this.refreshQueued=!1,this.enabled=!1}ngAfterViewInit(){this.initialized=!0,this.resizeObserver=new ResizeObserver(()=>this.queueRefresh()),this.resizeObserver.observe(this.element),this.mutationObserver=new MutationObserver(()=>this.queueRefresh()),this.mutationObserver.observe(this.element,{childList:!0,characterData:!0,subtree:!0}),this.refresh()}ngOnChanges(){this.initialized&&this.queueRefresh()}ngOnDestroy(){this.destroyed=!0,this.resizeObserver?.disconnect(),this.mutationObserver?.disconnect()}refresh(){if(this.destroyed)return;let t=this.assignmentTooltipText==="rendered"?this.element.innerText.trim():this.message,n=this.assignmentTooltipActivation==="message"?t.length>0:pl(this.element);this.tooltip.message=t,this.tooltip.disabled=!n,n!==this.enabled&&(this.enabled=n,n?this.renderer.setAttribute(this.element,"tabindex","0"):this.renderer.removeAttribute(this.element,"tabindex"))}queueRefresh(){this.refreshQueued||this.destroyed||(this.refreshQueued=!0,queueMicrotask(()=>{this.refreshQueued=!1,this.refresh()}))}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275dir=Wn({type:e,selectors:[["","appAssignmentTooltip",""]],inputs:{message:[0,"appAssignmentTooltip","message"],assignmentTooltipActivation:"assignmentTooltipActivation",assignmentTooltipText:"assignmentTooltipText"},features:[Qn([Xt]),Rn]})}}return e})(),vn=(()=>{class e{constructor(){this.detailState=f(T),this.engagementState=f(Me),this.assignmentsState=f(_n),this.chartInitialized=Tt(),this.coreLoading=this.detailState.coreLoading,this.pathwaysEnabled=this.detailState.pathwaysEnabled,this.answerSummaryTooltip=this.detailState.answerSummaryTooltip,this.selectedTimeSpanLabel=this.engagementState.selectedTimeSpanLabel,this.dailyEngagementQuery=this.engagementState.dailyEngagementQuery,this.engagementLoading=this.engagementState.loading,this.canLoadEngagement=this.engagementState.canLoad,this.reviewSuggestions=y(()=>this.engagementState.reviewSuggestions(this.dailyEngagementQuery.data())),this.performanceSections=y(()=>this.engagementState.performanceSections(this.dailyEngagementQuery.data())),this.isUpdatingAssignments=y(()=>this.assignmentsState.removeExerciseMutation.isPending()||this.assignmentsState.removePathwayMutation.isPending()||this.assignmentsState.assignmentsQuery.isFetching()),this.assignmentsQuery=this.assignmentsState.assignmentsQuery,this.assignments=this.assignmentsState.assignments,this.pathways=this.assignmentsState.pathways,this.pathwayCards=this.assignmentsState.pathwayCards,this.canLoadAssignments=this.assignmentsState.canLoad,this.pageSize=6,this.assignmentsPageIndex=P(0),this.pathwaysPageIndex=P(0),this.pagedAssignments=y(()=>{let t=this.assignmentsPageIndex()*this.pageSize;return this.assignments().slice(t,t+this.pageSize)}),this.pagedPathways=y(()=>{let t=this.pathwaysPageIndex()*this.pageSize;return this.pathways().slice(t,t+this.pageSize)}),this.removeAssignment=t=>{this.assignmentsState.removeAssignment(t)},this.removePathway=t=>{this.pathwaysEnabled()&&this.assignmentsState.removePathway(t)},J(()=>{let t=this.assignments().length,n=t===0?0:Math.floor((t-1)/this.pageSize);this.assignmentsPageIndex()>n&&this.assignmentsPageIndex.set(n)}),J(()=>{let t=this.pathways().length,n=t===0?0:Math.floor((t-1)/this.pageSize);this.pathwaysPageIndex()>n&&this.pathwaysPageIndex.set(n)})}onAssignmentsPageChange(t){this.assignmentsPageIndex.set(t.pageIndex)}onPathwaysPageChange(t){this.pathwaysPageIndex.set(t.pageIndex)}openTestPathways(){this.detailState.openTestPathwaysDialog()}onAssignmentClick(t){t.url&&(Fi()?window.location.href=t.url:window.open(t.url,"_blank"))}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-exercises-tab"]],outputs:{chartInitialized:"chartInitialized"},decls:64,vars:7,consts:[["assignmentCard",""],[1,"tab-content","exercises-tab"],[1,"dashboard-grid","dashboard-grid--exercise-engagement"],[3,"chartInitialized"],[1,"dashboard-grid","dashboard-grid--exercise-insights"],[1,"panel","performance-panel"],[1,"mat-h2"],[1,"material-symbols-outlined"],["aria-live","polite","aria-label","Loading performance overview",1,"assignment-loading-shell"],[1,"assignment-state"],["role","alert",1,"assignment-empty-state","assignment-empty-state--error"],[1,"assignment-empty-state"],[1,"performance-grid"],[1,"panel","review-panel"],["aria-live","polite","aria-label","Loading review suggestions",1,"assignment-loading-shell"],[1,"dashboard-grid","dashboard-grid--assignments"],[1,"panel","assignment-panel"],["aria-live","polite",1,"assignment-loading-overlay"],[1,"panel-header","panel-header--compact"],["mat-icon-button","","type","button","aria-label","Exercise actions"],["aria-live","polite","aria-label","Loading assigned exercises",1,"assignment-loading-shell"],["mat-icon-button","","type","button","aria-label","Exercises from pathways actions"],[1,"assignment-panel-body"],["inert","",1,"assignment-grid","assignment-grid--inactive"],["aria-live","polite","aria-label","Loading exercises from pathways",1,"assignment-loading-shell"],[1,"assignment-loading-overlay"],["diameter","34"],[1,"performance-card",3,"performance-card--reading","performance-card--grammar","performance-card--speaking","performance-card--listening"],[1,"performance-card"],[1,"review-card"],[1,"assignment-grid"],["aria-label","Select page of assigned exercises",3,"length","pageIndex","pageSize","pageSizeOptions"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-label","Select page of assigned exercises",3,"page","length","pageIndex","pageSize","pageSizeOptions"],["aria-label","Select page of pathway exercises",3,"length","pageIndex","pageSize","pageSizeOptions"],["aria-label","Select page of pathway exercises",3,"page","length","pageIndex","pageSize","pageSizeOptions"],[1,"assignment-card",3,"click"],[1,"assignment-card-actions"],[1,"assignment-card-fill"],[3,"appAssignmentTooltip"],["assignmentTooltipText","rendered",3,"innerHTML","appAssignmentTooltip"],["aria-label","Assignment tags"],["assignmentTooltipActivation","message",3,"appAssignmentTooltip"],["assignmentTooltipActivation","message",1,"assignment-chip--outlined",3,"appAssignmentTooltip"],[1,"assignment-meta"],[1,"assignment-meta-primary"],[1,"assignment-level"],[1,"assignment-difficulty"],["tabindex","0",1,"assignment-answer-summary"],[1,"assignment-answer-summary-item","assignment-answer-summary-item--correct"],[1,"assignment-answer-summary-marker"],[1,"assignment-answer-summary-item","assignment-answer-summary-item--wrong"],[1,"assignment-answer-summary-item","assignment-answer-summary-item--wrong-attempts"],[1,"assignment-answer-summary-item","assignment-answer-summary-item--unanswered"],["mat-icon-button","","type","button",1,"assignment-remove-button",3,"click"]],template:function(n,i){if
5(n&1){let s=O();o(0,"div",1)(1,"div",2)(2,"app-daily-engagement-widget",3),v("chartInitialized",function(x){return w(s),M(i.chartInitialized.emit(x))}),a()(),o(3,"div",4)(4,"mat-card",5)(5,"mat-card-content")(6,"h2",6)(7,"mat-icon",7),r(8,"insights"),a(),r(9," Performance overview "),a(),u(10,Ss,3,0,"div",8)(11,Os,2,0,"div",9)(12,Es,7,0,"div",10)(13,Is,7,1,"div",11)(14,Ds,3,0,"div",12),a()(),o(15,"mat-card",13)(16,"mat-card-content")(17,"h2",6)(18,"mat-icon",7),r(19,"spellcheck"),a(),r(20," Review suggestions "),a(),u(21,zs,3,0,"div",14)(22,As,2,0,"div",9)(23,Fs,7,0,"div",10)(24,js,7,1,"div",11)(25,Rs,2,0),a()()(),o(26,"div",15)(27,"mat-card",16),u(28,Gs,2,0,"div",17),o(29,"mat-card-content")(30,"div",18)(31,"h2",6)(32,"mat-icon",7),r(33,"library_books"),a(),r(34," Assigned exercises "),a(),o(35,"button",19)(36,"mat-icon",7),r(37,"more_vert"),a()()(),u(38,Vs,3,0,"div",20)(39,Ns,2,0,"div",9)(40,Ws,7,0,"div",10)(41,Bs,7,0,"div",11)(42,Us,4,1),a()(),o(43,"mat-card",16),u(44,Js,2,0,"div",17),o(45,"mat-card-content")(46,"div",18)(47,"h2",6)(48,"mat-icon",7),r(49,"library_books"),a(),r(50," Exercises from pathways "),a(),o(51,"button",21)(52,"mat-icon",7),r(53,"more_vert"),a()()(),o(54,"div",22),u(55,Ys,3,0,"div",23)(56,Xs,3,0,"div",24)(57,Zs,2,0,"div",9)(58,tl,7,0,"div",10)(59,el,7,0,"div",11)(60,ol,4,1),a(),u(61,rl,1,0,"app-pathways-disabled-overlay"),a()()()(),u(62,ml,42,35,"ng-template",null,0,Un)}n&2&&(l(10),h(i.engagementLoading()?10:i.canLoadEngagement()?i.dailyEngagementQuery.isError()?12:i.performanceSections().length===0?13:14:11),l(11),h(i.engagementLoading()?21:i.canLoadEngagement()?i.dailyEngagementQuery.isError()?23:i.reviewSuggestions().length===0?24:25:22),l(7),h(!i.coreLoading()&&!i.assignmentsQuery.isLoading()&&i.isUpdatingAssignments()?28:-1),l(10),h(i.coreLoading()||i.assignmentsQuery.isLoading()?38:i.canLoadAssignments()?i.assignmentsQuery.isError()?40:i.assignments().length===0?41:42:39),l(6),h(i.pathwaysEnabled()&&!i.coreLoading()&&!i.assignmentsQuery.isLoading()&&i.isUpdatingAssignments()?44:-1),l(11),h(i.pathwaysEnabled()?i.coreLoading()||i.assignmentsQuery.isLoading()?56:i.canLoadAssignments()?i.assignmentsQuery.isError()?58:i.pathways().length===0?59:60:57:55),l(6),h(i.pathwaysEnabled()?-1:61))},dependencies:[Jn,L,Ut,q,N,$,te,ki,cn,k,S,G,R,rn,ui,fe,gl,xn,Se,Ua,zi],styles:['[_nghost-%COMP%]{display:block;min-width:0}.student-detail-page[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;min-width:0;max-width:1180px;margin:0 auto;padding:22px 16px 32px;color:var(--mat-sys-on-surface)}.student-detail-loading-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#ffffff8f;backdrop-filter:blur(2px)}.student-detail-loading-card[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:var(--mat-sys-surface);color:var(--mat-sys-primary);box-shadow:0 14px 34px #28434d1f;font-size:14px;font-weight:600}.tab-content[_ngcontent-%COMP%]{padding-top:14px}.student-tabs[_ngcontent-%COMP%]{display:block;min-width:0;max-width:100%}[_nghost-%COMP%] .student-tabs .mat-mdc-tab-body-wrapper, [_nghost-%COMP%] .student-tabs .mat-mdc-tab-body, [_nghost-%COMP%] .student-tabs .mat-mdc-tab-body-content{min-width:0;max-width:100%}[_nghost-%COMP%] .student-tabs .mat-mdc-tab-body-content{overflow-x:hidden}@media(min-width:577px){[_nghost-%COMP%] .student-tabs .mat-mdc-tab-labels{width:100%}[_nghost-%COMP%] .student-tabs .mat-mdc-tab{min-width:0;flex:1 1 0;padding-inline:12px}}.panel.mat-mdc-card[_ngcontent-%COMP%], .metric-card[_ngcontent-%COMP%]{background:var(--mat-sys-surface);border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;box-shadow:none!important}.panel[_ngcontent-%COMP%]{position:relative;overflow:hidden;isolation:isolate}.panel[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:16px;background:var(--mat-sys-surface)}h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 14px;color:var(--mat-sys-primary);font-family:Tanker-Regular,Syne,sans-serif;font-size:19px;font-weight:400;letter-spacing:.01em;line-height:26px}h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.student-detail-page[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%], .student-detail-page[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%], .student-detail-page[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%]{font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px}.student-detail-page[_ngcontent-%COMP%] .panel-header--compact[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%]{font-size:21px;line-height:26px}.panel-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin-bottom:0}.panel-header[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:168px;height:36px;justify-content:space-between;font-size:12px}.panel-header--compact[_ngcontent-%COMP%]{margin-bottom:10px}.metrics-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.66fr) minmax(0,1.48fr) minmax(0,.76fr);gap:12px;margin-bottom:12px}.metric-card[_ngcontent-%COMP%]{min-height:72px;position:relative;padding:8px 12px;display:grid;background:var(--mat-sys-surface-container-low)}.metric-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-weight:500}.metric-card[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:13px}.metric-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;min-width:0;color:var(--mat-sys-primary);font-size:11px;font-weight:500;line-height:14px}.metric-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:15px;height:15px;font-size:15px}.metric-card--goal[_ngcontent-%COMP%]{grid-template-rows:auto 1fr;gap:6px}.metric-card-content[_ngcontent-%COMP%]{min-width:0;transition:opacity .12s ease,filter .12s ease}.metric-card-content--goal[_ngcontent-%COMP%]{display:grid;grid-template-rows:auto 1fr;gap:6px}.metric-card-content--pathway[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}.metric-card-content--inactive[_ngcontent-%COMP%], .assignment-grid--inactive[_ngcontent-%COMP%]{opacity:.34;filter:grayscale(.35);pointer-events:none}.metric-inactive-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:4px;border-radius:inherit;background:#ffffffad;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}.metric-inactive-overlay[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:11px;font-weight:600;line-height:14px}.metric-inactive-overlay[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%], .assignment-inactive-overlay[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:0;height:28px;padding:0 12px;font-size:12px;line-height:28px}.goal-card-body[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(56px,1fr) auto 42px;align-items:center;gap:10px}.goal-main[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;font-size:16px;line-height:20px}.goal-main[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block}.goal-percent[_ngcontent-%COMP%]{color:var(--mat-sys-primary)!important;font-size:22px;line-height:28px}.goal-medal[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:3px solid var(--mat-sys-primary);border-radius:999px;color:var(--mat-sys-primary)}.goal-medal[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:24px;height:24px;font-size:24px}.metric-card--activity[_ngcontent-%COMP%]{grid-template-rows:auto auto auto;align-content:start;gap:6px}.metric-card--activity[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-top:2px;font-size:15px;line-height:19px}.metric-card--pathway[_ngcontent-%COMP%]{grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}.pathway-ring[_ngcontent-%COMP%]{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:conic-gradient(var(--mat-sys-primary) 0 31deg,var(--mat-sys-primary-container) 31deg 360deg)}.pathway-ring[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:999px;background:var(--mat-sys-surface-container-low)}.pathway-copy[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.pathway-copy[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:20px}.streak-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:17px;padding:0 8px;border-radius:4px;background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);font-size:10px;font-weight:500;line-height:14px;white-space:nowrap}.metric-disabled-state[_ngcontent-%COMP%]{display:grid;gap:6px;justify-items:start;align-content:center;min-height:72px;color:var(--mat-sys-on-surface)}.metric-disabled-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:20px;height:20px;color:var(--mat-sys-primary);font-size:20px}.metric-disabled-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:14px;line-height:18px}.metric-disabled-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{font-size:11px;line-height:14px}.metric-disabled-state[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-top:2px}.metric-disabled-state--inline[_ngcontent-%COMP%]{grid-column:1/-1}.metric-card--level[_ngcontent-%COMP%]{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px}.level-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container);font-size:11px;font-weight:700;white-space:nowrap}.level-copy[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column;gap:3px}.level-copy[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:16px;line-height:20px}.level-copy[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;font-size:10px;line-height:13px;margin-bottom:1px}.dashboard-grid[_ngcontent-%COMP%]{display:grid;gap:12px}.dashboard-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .assignment-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0}.dashboard-grid--overview[_ngcontent-%COMP%]{grid-template-columns:1.7fr 1fr}.dashboard-grid--overview[_ngcontent-%COMP%] .engagement-panel[_ngcontent-%COMP%]{min-height:300px}.financial-panel[_ngcontent-%COMP%]{min-height:260px}.engagement-panel[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-height:100%;display:flex;flex-direction:column}.dashboard-grid--exercises-top[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1.75fr) minmax(280px,.95fr);margin-bottom:12px}.dashboard-grid--exercise-engagement[_ngcontent-%COMP%]{grid-template-columns:1fr;margin-bottom:12px}.dashboard-grid--exercise-engagement[_ngcontent-%COMP%] .engagement-panel[_ngcontent-%COMP%]{min-height:300px}.dashboard-grid--exercise-insights[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.dashboard-grid--assignments[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);margin-bottom:12px}.dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.student-chart-container[_ngcontent-%COMP%]{position:relative;width:100%;height:260px;min-height:260px;max-height:260px;margin-top:auto;overflow:hidden;contain:layout paint;background:var(--mat-sys-surface)}.student-chart[_ngcontent-%COMP%]{position:absolute;inset:0;width:100%!important;height:100%!important}.week-row[_ngcontent-%COMP%], .month-calendar[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;text-align:center;gap:8px;margin-bottom:12px;color:var(--mat-sys-on-surface);font-size:12px}.week-row[_ngcontent-%COMP%]{margin-top:14px}.month-calendar[_ngcontent-%COMP%]{gap:10px 8px;margin-top:18px}.day[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;justify-self:center;border-radius:999px}.day--selected[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.day--outlined[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-primary);color:var(--mat-sys-primary)}.class-list[_ngcontent-%COMP%]{display:flex;flex-direction:column}.class-list--tall[_ngcontent-%COMP%]{max-height:380px;overflow:hidden}.class-row[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.class-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .class-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface);font-size:14px;font-weight:500}.class-row[_ngcontent-%COMP%] small[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:16px}
5.class-time[_ngcontent-%COMP%], .invoice-status[_ngcontent-%COMP%]{text-align:right;white-space:nowrap}.status-pill[_ngcontent-%COMP%], .up-to-date[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:22px;padding:0 8px;border-radius:6px;background:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container)!important;font-size:11px!important;font-weight:500!important}.financial-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;color:var(--mat-sys-on-surface-variant);font-size:12px}.financial-panel[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .call-card[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-top:0;color:var(--mat-sys-on-surface);font-size:13px}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:var(--mat-sys-primary);font-size:11px;font-weight:500;text-align:left;text-transform:uppercase}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:12px 8px;border-bottom:1px solid var(--mat-sys-outline-variant)}.review-card[_ngcontent-%COMP%]{padding:16px;border-radius:12px;background:var(--mat-sys-surface-container-lowest)}.review-card[_ngcontent-%COMP%] + .review-card[_ngcontent-%COMP%]{margin-top:12px}.review-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .review-card[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block}.review-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:15px;font-weight:500}.review-card[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{margin-top:4px;color:var(--mat-sys-on-surface-variant);font-size:14px;line-height:20px}.assignment-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;transition:opacity .12s ease,filter .12s ease}.assignment-panel[_ngcontent-%COMP%]{position:relative;container-type:inline-size}@container (max-width: 1000px){.assignment-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 600px){.assignment-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}.assignment-state[_ngcontent-%COMP%]{min-height:160px;display:grid;place-items:center;padding:18px;border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);font-size:13px;line-height:20px;text-align:center}.assignment-empty-state[_ngcontent-%COMP%]{min-height:160px;display:grid;place-content:center;justify-items:center;gap:8px;padding:24px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.assignment-empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 64%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:20px}.assignment-empty-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:20px}.assignment-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:320px;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.assignment-empty-state--error[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.assignment-empty-state--error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error)}.assignment-empty-state--error[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .assignment-empty-state--error[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-error-container)}.assignment-loading-shell[_ngcontent-%COMP%]{min-height:160px;border-radius:12px;background:var(--mat-sys-surface-container-lowest);overflow:hidden}.assignment-loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;padding:18px;border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}.assignment-inactive-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:4px;border-radius:inherit;background:#ffffffad;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}.assignment-inactive-overlay[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:18px}.assignment-inactive-overlay[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:180px;color:var(--mat-sys-on-surface-variant);font-size:11px;line-height:14px}.assignment-card[_ngcontent-%COMP%]{box-sizing:border-box;min-height:200px;position:relative;display:flex;flex-direction:column;padding:8px;border:1px solid #e1e1e1;overflow-x:clip;border-radius:16px;background:#fff;--assignment-card-bg: var(--mat-sys-surface-container-low);--assignment-accent: var(--mat-sys-on-surface);--assignment-title-fg: var(--mat-sys-on-surface);--assignment-description-fg: var(--mat-sys-on-surface-variant);--assignment-chip-bg: var(--mat-sys-surface-container-high);--assignment-chip-fg: var(--mat-sys-on-surface);--assignment-outline-chip-bg: var(--mat-sys-surface)}.assignment-card.assignment-card--clickable[_ngcontent-%COMP%]{cursor:pointer;
5transition:box-shadow .2s ease,border-color .2s ease}.assignment-card.assignment-card--clickable[_ngcontent-%COMP%]:hover, .assignment-card.assignment-card--clickable[_ngcontent-%COMP%]:focus-visible{border-color:var(--assignment-accent);box-shadow:0 4px 8px #00000014;outline:none}.assignment-card[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%]{max-width:calc(100% - 1px);box-sizing:border-box}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%]{min-height:0;display:flex;flex:1;flex-direction:column;padding:12px;overflow:hidden;border-radius:12px;background:var(--assignment-card-bg)}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%]{display:-webkit-box;margin-bottom:4px;overflow:hidden;color:var(--assignment-title-fg);font-size:15px;font-weight:500;-webkit-box-orient:vertical;-webkit-line-clamp:1}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > p[_ngcontent-%COMP%]{display:-webkit-box;margin:0 0 4px;overflow:hidden;color:var(--assignment-description-fg);font-size:14px;line-height:20px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.assignment-card[_ngcontent-%COMP%] mat-chip-set[_ngcontent-%COMP%]{width:100%;min-width:0;max-width:100%;margin-top:auto;overflow:hidden}.assignment-card-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;height:20px;margin:-4px 0 2px}.assignment-remove-button[_ngcontent-%COMP%]{width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;display:inline-grid!important;place-items:center;padding:0!important;border:0!important;border-radius:999px!important;background:transparent!important;box-shadow:none!important;color:var(--assignment-accent);line-height:1}.assignment-remove-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;margin:0;font-size:18px;line-height:18px}[_nghost-%COMP%] .assignment-remove-button .mat-mdc-button-touch-target{width:22px;height:22px}.assignment-card--reading[_ngcontent-%COMP%], .assignment-card--grammar[_ngcontent-%COMP%], .assignment-card--speaking[_ngcontent-%COMP%], .assignment-card--listening[_ngcontent-%COMP%], .assignment-card--pack[_ngcontent-%COMP%]{--assignment-outline-chip-bg: #fff}.assignment-card--reading[_ngcontent-%COMP%]{--assignment-card-bg: #ddf5ff;--assignment-accent: #001f28;--assignment-title-fg: #001f28;--assignment-description-fg: #001f28;--assignment-chip-bg: #001f28;--assignment-chip-fg: #fff}.assignment-card--grammar[_ngcontent-%COMP%]{--assignment-card-bg: #beffdc;--assignment-accent: #003825;--assignment-title-fg: #003825;--assignment-description-fg: #003825;--assignment-chip-bg: #003825;--assignment-chip-fg: #fff}.assignment-card--speaking[_ngcontent-%COMP%]{--assignment-card-bg: #ffefd5;--assignment-accent: #402d00;--assignment-title-fg: #402d00;--assignment-description-fg: #402d00;--assignment-chip-bg: #402d00;--assignment-chip-fg: #fff}.assignment-card--listening[_ngcontent-%COMP%]{--assignment-card-bg: #ffecee;--assignment-accent: #660029;--assignment-title-fg: #660029;--assignment-description-fg: #660029;--assignment-chip-bg: #660029;--assignment-chip-fg: #fff}.assignment-card--pack[_ngcontent-%COMP%]{--assignment-card-bg: #001f28;--assignment-accent: #001f28;--assignment-title-fg: #ddf5ff;--assignment-description-fg: #fff;--assignment-chip-bg: var(--primary-90);--assignment-chip-fg: #001f28}.assignment-meta[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0;max-width:100%;box-sizing:border-box;margin-top:8px;padding:0 4px 0 8px;color:var(--assignment-accent);font-size:13px;line-height:20px;overflow-x:clip}.assignment-meta-primary[_ngcontent-%COMP%]{min-width:0;max-width:100%;display:inline-flex;align-items:center;flex:0 1 auto;box-sizing:border-box}.assignment-level[_ngcontent-%COMP%], .assignment-difficulty[_ngcontent-%COMP%]{min-width:0;max-width:100%;box-sizing:border-box;min-height:22px}.assignment-level[_ngcontent-%COMP%]{flex:0 1 auto;padding-right:8px;border-right:1px solid var(--mat-divider-color);overflow-wrap:anywhere;text-transform:uppercase}.assignment-difficulty[_ngcontent-%COMP%]{display:inline-flex;align-items:center;flex:0 0 auto;color:var(--assignment-accent)}.assignment-difficulty[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{width:16px;height:18px;display:inline-block;flex:0 0 16px;overflow:hidden;font-size:18px;line-height:18px}.assignment-level[_ngcontent-%COMP%] + .assignment-difficulty[_ngcontent-%COMP%]{margin-left:8px}.assignment-fire--muted[_ngcontent-%COMP%]{opacity:.2}.assignment-answer-summary[_ngcontent-%COMP%]{position:relative;display:inline-flex;align-items:center;flex:0 1 auto;flex-wrap:wrap;box-sizing:border-box;gap:5px 7px;min-width:0;max-width:100%;margin-left:auto;padding:3px 7px;border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:#ffffff73;color:var(--mat-sys-on-surface);font-family:Roboto Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;outline:0}.assignment-answer-summary[_ngcontent-%COMP%]:before, .assignment-answer-summary[_ngcontent-%COMP%]:after{position:absolute;right:0;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.assignment-answer-summary[_ngcontent-%COMP%]:before{content:"";bottom:calc(100% + 2px);border:5px solid transparent;border-top-color:#263238;transform:translateY(-2px)}.assignment-answer-summary[_ngcontent-%COMP%]:after{content:attr(data-tooltip);bottom:calc(100% + 12px);z-index:3;width:max-content;max-width:220px;padding:8px 10px;border-radius:8px;background:#263238;box-shadow:0 8px 20px #0000002e;color:#fff;font-size:11px;font-weight:500;line-height:16px;text-align:left;white-space:pre-line;transform:translateY(2px)}.assignment-answer-summary[_ngcontent-%COMP%]:hover:before, .assignment-answer-summary[_ngcontent-%COMP%]:hover:after, .assignment-answer-summary[_ngcontent-%COMP%]:focus-visible:before, .assignment-answer-summary[_ngcontent-%COMP%]:focus-visible:after{opacity:1;transform:translateY(0)}.assignment-answer-summary-item[_ngcontent-%COMP%]{min-width:0;display:inline-flex;align-items:center;gap:2px;padding:0;background:transparent;line-height:1}.assignment-answer-summary-marker[_ngcontent-%COMP%]{display:inline-block;line-height:1}
5.assignment-answer-summary-item--correct[_ngcontent-%COMP%]{color:#2e7d32}.assignment-answer-summary-item--wrong[_ngcontent-%COMP%], .assignment-answer-summary-item--wrong-attempts[_ngcontent-%COMP%]{color:#c62828}.assignment-answer-summary-item--unanswered[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant)}.pathway-disabled-state[_ngcontent-%COMP%]{min-height:220px;display:grid;place-items:center;align-content:center;gap:10px;padding:22px;border-radius:12px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface);text-align:center}.pathway-disabled-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:32px;height:32px;color:var(--mat-sys-primary);font-size:32px}.pathway-disabled-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:16px;font-weight:500;line-height:22px}.pathway-disabled-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:320px;margin:0;color:var(--mat-sys-on-surface-variant);font-size:14px;line-height:20px}.performance-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.performance-card[_ngcontent-%COMP%]{padding:12px;border-radius:10px;background:var(--mat-sys-surface-container-lowest)}.performance-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;margin-bottom:12px;font-size:15px;font-weight:500}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0;font-size:13px;line-height:20px}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{min-width:0;overflow-wrap:anywhere}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{flex:1 1 120px}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:last-child{flex:0 1 auto;text-align:right}.performance-card--reading[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-primary-container) 70%,var(--mat-sys-surface))}.performance-card--grammar[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-secondary-container) 70%,var(--mat-sys-surface))}.performance-card--speaking[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-tertiary-container) 70%,var(--mat-sys-surface))}.performance-card--listening[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 70%,var(--mat-sys-surface))}.call-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.call-card[_ngcontent-%COMP%]{padding:12px;border-radius:12px;background:var(--mat-sys-surface-container-lowest)}.call-card[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{margin:0 0 10px}.call-card[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12px;line-height:17px}.call-card[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-weight:500}.call-card[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;color:var(--mat-sys-on-surface);text-align:right}.call-card[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{min-height:72px}mat-icon[_ngcontent-%COMP%]{overflow:visible} .student-detail-page .mat-mdc-form-field{width:100%} .student-detail-page .mat-mdc-text-field-wrapper, .student-detail-page .mdc-text-field--outlined{background:var(--mat-sys-surface)} .student-detail-page .mat-mdc-standard-chip{--mdc-chip-container-height: 24px;--mdc-chip-elevated-container-color: var(--mat-sys-primary-container);--mdc-chip-label-text-color: var(--mat-sys-on-primary-container);font-size:11px;font-weight:500} .student-detail-page .assignment-card .mat-mdc-standard-chip{--mdc-chip-container-height: 22px;--mdc-chip-label-text-size: 11px;--mdc-chip-label-text-weight: 500;min-width:0;max-width:100%;flex:0 1 auto;box-sizing:border-box;overflow:hidden;background:var(--assignment-chip-bg)!important;border:0!important;border-radius:32px!important;color:var(--assignment-chip-fg)!important;font-size:11px;margin:0!important} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__cell--primary, .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__action--primary{min-width:0;max-width:100%} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border:0!important} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__text-label{min-width:0;max-width:100%;display:block;overflow:hidden;color:var(--assignment-chip-fg)!important;text-overflow:ellipsis;white-space:nowrap} .student-detail-page .assignment-card .mat-mdc-chip-set .mdc-evolution-chip-set__chips{width:100%;min-width:0;max-width:100%;flex-flow:row nowrap;gap:6px;margin:0;overflow:hidden} .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip{background:var(--assignment-outline-chip-bg)!important;border:1px solid var(--assignment-accent)!important;color:var(--assignment-accent)!important} .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border:0!important} .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip .mdc-evolution-chip__text-label, .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip span{color:var(--assignment-accent)!important} .student-detail-page .assignment-remove-button.mat-mdc-icon-button{border:0!important} .student-detail-page .assignment-remove-button.mat-mdc-icon-button .mat-mdc-button-touch-target{width:24px;height:24px} .student-detail-page .mat-mdc-progress-bar{margin-top:8px;border-radius:999px;overflow:hidden} .student-detail-page .level-copy .mat-mdc-progress-bar{height:4px;margin-top:0} .student-detail-page .level-copy .mdc-linear-progress__bar-inner{border-top-width:4px} .student-detail-page .mat-mdc-slide-toggle{--mdc-switch-selected-track-color: var(--mat-sys-primary);--mdc-switch-selected-handle-color: var(--mat-sys-on-primary);--mdc-switch-selected-hover-track-color: var(--mat-sys-primary);--mdc-switch-selected-pressed-track-color: var(--mat-sys-primary);--mdc-switch-selected-focus-track-color: var(--mat-sys-primary)}@media(max-width:1200px){.metrics-grid[_ngcontent-%COMP%], .dashboard-grid--overview[_ngcontent-%COMP%], .dashboard-grid--exercises-top[_ngcontent-%COMP%], .dashboard-grid--classroom[_ngcontent-%COMP%], .call-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:992px){.dashboard-grid--exercises-top[_ngcontent-%COMP%], .dashboard-grid--exercise-insights[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}@media(max-width:768px){.student-detail-page[_ngcontent-%COMP%]{padding:16px 12px 32px}.dashboard-grid--overview[_ngcontent-%COMP%], .dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.exercise-summary-metrics[_ngcontent-%COMP%]{justify-content:stretch}.exercise-summary-metrics[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%]{width:auto;min-width:0;max-width:none}.student-chart-container[_ngcontent-%COMP%]{height:280px;min-height:280px;max-height:280px}}@media(max-width:576px){.student-detail-page[_ngcontent-%COMP%]{padding:14px 8px 28px}.metrics-grid[_ngcontent-%COMP%], .performance-grid[_ngcontent-%COMP%], .call-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.panel-header[_ngcontent-%COMP%], .billing-header[_ngcontent-%COMP%]{align-items:stretch;flex-direction:column}.panel-header[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:0}.assignment-card[_ngcontent-%COMP%]{height:auto;min-height:200px}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%]{overflow:visible}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%], .assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > p[_ngcontent-%COMP%]{display:block;overflow:visible;-webkit-line-clamp:unset}}'],changeDetection:0})}}return e})();function hl(e,c){e&1&&(o(0,"mat-error"),r(1,"Use YYYY-MM-DD format."),a())}
5function fl(e,c){if(e&1){let t=O();o(0,"mat-form-field",7)(1,"mat-label"),r(2,"Invitation link"),a(),g(3,"input",25),o(4,"button",26),v("click",function(){w(t);let i=m();return M(i.state.copyInviteLink())}),o(5,"mat-icon",4),r(6,"content_copy"),a()()()}}var Cn=(()=>{class e{constructor(){this.state=f(T)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-profile-form-widget"]],decls:61,vars:7,consts:[[1,"tab-content","profile-tab"],[1,"panel","profile-document-panel"],[1,"profile-section-header"],[1,"mat-h2"],[1,"material-symbols-outlined"],[1,"profile-form","profile-form--document",3,"ngSubmit","formGroup"],[1,"profile-field-grid"],["appearance","outline"],["matInput","","formControlName","name"],["matInput","","formControlName","email"],["matInput","","formControlName","phone"],["matInput","","type","date","formControlName","dateOfBirth","placeholder","YYYY-MM-DD"],["formControlName","legalDocumentType"],["value","CPF"],["matInput","","formControlName","cpf"],["appearance","outline",1,"profile-description-field"],["matInput","","formControlName","description"],[1,"profile-section-divider"],[1,"profile-section-header","profile-section-header--compact"],["appearance","outline",1,"field-disabled"],["matInput","","formControlName","createdAt"],["matInput","","formControlName","status"],["role","teacher",1,"profile-teacher-selector",3,"control","selectedUsers","drag"],[1,"profile-form-actions"],["mat-flat-button","","color","primary","type","submit",3,"disabled"],["matInput","","formControlName","inviteLink","readonly",""],["mat-icon-button","","matSuffix","","type","button","aria-label","Copy invitation link",3,"click"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"mat-card",1)(2,"mat-card-content")(3,"div",2)(4,"h2",3)(5,"mat-icon",4),r(6,"badge"),a(),r(7," Personal details "),a()(),o(8,"form",5),v("ngSubmit",function(){return i.state.saveStudentProfile()}),o(9,"div",6)(10,"mat-form-field",7)(11,"mat-label"),r(12,"Name"),a(),g(13,"input",8),a(),o(14,"mat-form-field",7)(15,"mat-label"),r(16,"E-mail *"),a(),g(17,"input",9),a(),o(18,"mat-form-field",7)(19,"mat-label"),r(20,"Phone (optional)"),a(),g(21,"input",10),a(),o(22,"mat-form-field",7)(23,"mat-label"),r(24,"Date of birth"),a(),g(25,"input",11),u(26,hl,2,0,"mat-error"),a(),o(27,"mat-form-field",7)(28,"mat-label"),r(29,"Document type"),a(),o(30,"mat-select",12)(31,"mat-option",13),r(32,"CPF"),a()()(),o(33,"mat-form-field",7)(34,"mat-label"),r(35,"Document value"),a(),g(36,"input",14),a(),o(37,"mat-form-field",15)(38,"mat-label"),r(39,"Description"),a(),g(40,"textarea",16),a()(),g(41,"div",17),o(42,"div",18)(43,"h3"),r(44,"Access"),a(),o(45,"small"),r(46,"Invitation and ownership details for this student."),a()(),o(47,"div",6),u(48,fl,7,0,"mat-form-field",7),o(49,"mat-form-field",19)(50,"mat-label"),r(51,"Created on"),a(),g(52,"input",20),a(),o(53,"mat-form-field",19)(54,"mat-label"),r(55,"Status"),a(),g(56,"input",21),a()(),g(57,"app-user-selector",22),o(58,"div",23)(59,"button",24),r(60," Save "),a()()()()()()),n&2&&(l(8),p("formGroup",i.state.studentProfileForm),l(18),h(i.state.studentProfileForm.controls.dateOfBirth.hasError("pattern")?26:-1),l(22),h(i.state.studentSummary().invitationPending?48:-1),l(9),p("control",i.state.studentProfileForm.controls.teachers)("selectedUsers",i.state.selectedTeachers())("drag",!0),l(2),p("disabled",i.state.studentProfileForm.invalid||i.state.updateStudentProfileMutation.isPending()))},dependencies:[L,F,Ut,q,N,$,St,it,Pt,li,ci,k,S,pt,at,en,di,$e,Ft,Ht,ct,dt,zt,At,Kt,Ji,Ui],styles:["[_nghost-%COMP%]{display:block;min-width:0;container-type:inline-size}.tab-content[_ngcontent-%COMP%]{padding-top:14px}.profile-tab[_ngcontent-%COMP%]{min-width:0;display:grid;gap:12px}.profile-document-panel.mat-mdc-card[_ngcontent-%COMP%]{min-width:0;overflow:hidden;border:1px solid var(--mat-sys-outline-variant);border-radius:18px;background:var(--mat-sys-surface);box-shadow:none!important}.profile-document-panel[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-width:0;padding:18px}.profile-section-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;min-width:0}.profile-section-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .profile-section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0}.profile-section-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif;font-size:23px;font-weight:400;letter-spacing:.012em;line-height:28px}.profile-section-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.profile-section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:15px;font-weight:600;line-height:22px}.profile-section-header[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{min-width:0;max-width:360px;overflow-wrap:anywhere;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px;text-align:right}.profile-section-header--compact[_ngcontent-%COMP%]{align-items:baseline;margin-bottom:10px}.profile-form[_ngcontent-%COMP%]{min-width:0;display:grid;gap:14px}.profile-form[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{min-height:96px}.profile-form--document[_ngcontent-%COMP%]{gap:14px}.profile-field-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.profile-description-field[_ngcontent-%COMP%]{grid-column:1/-1}.profile-field-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .profile-form[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], app-user-selector[_ngcontent-%COMP%]{min-width:0;max-width:100%}.profile-teacher-selector[_ngcontent-%COMP%]{margin-top:-6px}.profile-section-divider[_ngcontent-%COMP%]{height:1px;margin:0;background:var(--mat-sys-outline-variant)}.field-shell[_ngcontent-%COMP%]{min-height:48px;padding:10px 12px;border:1px solid var(--mat-sys-outline-variant);border-radius:16px;background:var(--mat-sys-surface)}.field-shell[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{display:block;margin:0 0 8px;color:var(--mat-sys-on-surface-variant);font-size:12px}.profile-form-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-start}.profile-form-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:104px}mat-icon[_ngcontent-%COMP%]{overflow:visible}[_nghost-%COMP%] .profile-form .mat-mdc-form-field, [_nghost-%COMP%] .profile-form .mat-mdc-text-field-wrapper, [_nghost-%COMP%] .profile-form .mat-mdc-form-field-flex, [_nghost-%COMP%] .profile-form .mat-mdc-form-field-infix{overflow:visible}[_nghost-%COMP%] .mat-mdc-form-field{width:100%}[_nghost-%COMP%] .mat-mdc-form-field-flex{box-sizing:border-box;width:100%;min-width:0;max-width:100%}[_nghost-%COMP%] .mat-mdc-form-field-infix{box-sizing:border-box;width:0;min-width:0;max-width:100%;flex:1 1 0}[_nghost-%COMP%] .mat-mdc-input-element, [_nghost-%COMP%] input, [_nghost-%COMP%] textarea{box-sizing:border-box;width:100%;min-width:0;max-width:100%}[_nghost-%COMP%] .mat-mdc-form-field-infix, [_nghost-%COMP%] .mat-mdc-select, [_nghost-%COMP%] .mat-mdc-select-trigger, [_nghost-%COMP%] .mat-mdc-select-value{min-width:0;max-width:100%}[_nghost-%COMP%] .mat-mdc-text-field-wrapper, [_nghost-%COMP%] .mdc-text-field--outlined{background:var(--mat-sys-surface)}[_nghost-%COMP%] .mat-mdc-form-field-icon-suffix mat-icon{overflow:hidden}[_nghost-%COMP%] .mat-mdc-standard-chip{--mdc-chip-container-height: 24px;--mdc-chip-elevated-container-color: var(--mat-sys-primary-container);--mdc-chip-label-text-color: var(--mat-sys-on-primary-container);font-size:11px;font-weight:500}@container (max-width: 768px){.profile-field-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.profile-section-header[_ngcontent-%COMP%], .profile-section-header--compact[_ngcontent-%COMP%]{align-items:stretch;flex-direction:column}.profile-section-header[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:none;text-align:left}}"],changeDetection:0})}}return e})();var bn=(()=>{class e{constructor(){this.detailState=f(T),this.studentDetailService=f(It),this.canLoad=y(()=>{let t=this.detailState.requestContext();return!!t?.organizationId&&!!t?.studentOidcId&&!!t?.studentEmail}),this.activityQuery=U(()=>{let t=this.detailState.requestContext();return{queryKey:["student-detail","last-activity",t?.organizationId??"",t?.inviteId??"",t?.studentOidcId??"",t?.studentEmail??""],enabled:this.canLoad(),queryFn:()=>this.studentDetailService.getLastActivity(t)}}),this.loading=y(()=>this.detailState.coreLoading()||this.activityQuery.isLoading()),this.activity=y(()=>{let t=this.activityQuery.data()?.lastActivity;if(!t)return{primary:"No activity yet",secondary:"No recent student activity"};let n=this.activityDate(t.timestamp??t.date);return{primary:n?this.relativeTime(n):"Activity recorded",secondary:[this.sourceLabel(t.source),n?this.formatDateTime(n):null].filter(i=>!!i).join(" \u2022 ")}})}activityDate(t){if(!t)return null;let n=typeof t=="number"&&t<1e12?t*1e3:t,i=new Date(n);return Number.isNaN(i.getTime())?null:i}relativeTime(t){let n=Date.now()-t.getTime(),i=Math.abs(n),s=6e4,d=60*s,x=24*d;return i<s?"Just now":i<d?this.formatRelative(n,s,"minute"):i<x?this.formatRelative(n,d,"hour"):this.formatRelative(n,x,"day")}formatRelative(t,n,i){let s=Math.max(1,Math.round(Math.abs(t)/n));return`${s} ${i}${s===1?"":"s"} ${t>=0?"ago":"from now"}`}
5formatDateTime(t){return t.toLocaleString("en-US",{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit"})}sourceLabel(t){return t?{online_class:"Online class",ai_tutor_text_message:"AI tutor text",ai_tutor_audio_message:"AI tutor audio",exercise_question_answered:"Exercise answered"}[t]??t.replace(/_/g," "):"Last activity"}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();function yl(e,c){e&1&&(o(0,"div",3),g(1,"mat-spinner",5),a())}function _l(e,c){e&1&&(o(0,"strong"),r(1,"Unavailable"),a(),o(2,"small"),r(3,"Student activity cannot be loaded"),a())}function vl(e,c){e&1&&(o(0,"div",4)(1,"mat-icon",2),r(2,"history"),a(),o(3,"strong"),r(4,"Last activity unavailable"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Cl(e,c){if(e&1&&(o(0,"strong"),r(1),a(),o(2,"small"),r(3),a()),e&2){let t=m();l(),_(t.activityState.activity().primary),l(2),_(t.activityState.activity().secondary)}}var Ka=(()=>{class e{constructor(){this.activityState=f(bn)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-activity-widget"]],decls:10,vars:1,consts:[[1,"student-summary-metric","student-summary-metric--activity"],[1,"student-summary-metric-label"],[1,"material-symbols-outlined"],["aria-live","polite","aria-label","Loading latest activity",1,"student-summary-metric-loading"],["role","alert",1,"student-summary-metric-error-state"],["diameter","24"]],template:function(n,i){n&1&&(o(0,"article",0)(1,"div",1)(2,"mat-icon",2),r(3,"history"),a(),o(4,"span"),r(5,"Last activity"),a()(),u(6,yl,2,0,"div",3)(7,_l,4,0)(8,vl,7,0,"div",4)(9,Cl,4,2),a()),n&2&&(l(6),h(i.activityState.loading()?6:i.activityState.canLoad()?i.activityState.activityQuery.isError()?8:9:7))},dependencies:[k,S,G,R],styles:["[_nghost-%COMP%]{display:block;height:100%}.student-summary-metric[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;height:100%;min-height:86px;display:grid;align-content:center;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--mat-sys-primary) 18%,var(--mat-sys-outline-variant));border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);box-shadow:inset 0 1px #ffffffad,0 8px 18px #28434d09}.student-summary-metric[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:16px;font-weight:500;line-height:20px}.student-summary-metric[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:14px}.student-summary-metric-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;color:var(--mat-sys-primary);font-size:11px;font-weight:500;line-height:16px}.student-summary-metric-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:16px;height:16px;font-size:16px}.student-summary-metric-error-state[_ngcontent-%COMP%]{position:absolute;inset:6px;z-index:1;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:1px 6px;padding:5px 7px;border:1px dashed color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));border-radius:10px;background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:24px;height:24px;grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error);font-size:16px}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{min-width:0;color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:11px;font-weight:600;line-height:14px;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{font-size:10px;line-height:13px}.student-summary-metric-loading[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}@media(max-width:820px){.student-summary-metric[_ngcontent-%COMP%]{min-height:86px}}"],changeDetection:0})}}return e})();var ie=(()=>{class e{constructor(){this.detailState=f(T),this.studentDetailService=f(It),this.scoreQuery=U(()=>{let t=this.detailState.requestContext();return{queryKey:["student-detail","score",t?.organizationId??"",t?.userId??""],enabled:!!t?.organizationId&&!!t?.userId,staleTime:0,gcTime:0,refetchOnMount:"always",queryFn:()=>this.studentDetailService.getStudentScore(t)}}),this.score=y(()=>this.scoreQuery.data()),this.completedWeeklyExercises=y(()=>this.score()?.userScore.exercisesThisWeek??null),this.weeklyGoalPercentage=y(()=>{let t=this.completedWeeklyExercises();if(t===null)return null;let n=this.detailState.weeklyGoal().goal;return!Number.isFinite(n)||n<=0?0:Math.min(100,Math.max(0,Math.round(t/n*100)))}),this.levelProgressPercentage=y(()=>{let t=this.score()?.userScore;return!t||t.levelPointsRequired<=0?0:Math.min(100,Math.max(0,t.totalPoints/t.levelPointsRequired*100))})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();function bl(e,c){e&1&&(o(0,"div",3),g(1,"mat-spinner",7),a())}function wl(e,c){e&1&&g(0,"app-pathways-disabled-overlay")}function Ml(e,c){e&1&&(o(0,"div",4),g(1,"mat-spinner",7),a())}function Pl(e,c){e&1&&(o(0,"div",5)(1,"mat-icon",2),r(2,"track_changes"),a(),o(3,"strong"),r(4,"Exercise score unavailable"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Sl(e,c){if(e&1&&(o(0,"div",6)(1,"strong",8),r(2),a(),o(3,"strong",9),r(4),a(),o(5,"span",10)(6,"mat-icon",2),r(7,"workspace_premium"),a()()()),e&2){let t=m();l(2),re("",t.completed(),"/",t.detailState.weeklyGoal().goal,""),l(2),D("",t.percentage(),"%")}}var Ya=(()=>{class e{constructor(){this.detailState=f(T),this.scoreState=f(ie),this.studentScoreQuery=this.scoreState.scoreQuery,this.completed=this.scoreState.completedWeeklyExercises,this.percentage=this.scoreState.weeklyGoalPercentage}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-goal-widget"]],decls:11,vars:4,consts:[[1,"student-summary-metric","student-summary-metric--goal"],[1,"student-summary-metric-label"],[1,"material-symbols-outlined"],["aria-live","polite","aria-label","Loading weekly exercise goal settings",1,"student-summary-metric-loading"],["aria-live","polite","aria-label","Loading weekly exercise goal",1,"student-summary-metric-loading"],["role","alert",1,"student-summary-metric-error-state"],[1,"student-goal-body"],["diameter","24"],[1,"student-goal-count"],[1,"student-goal-percent"],["aria-hidden","true",1,"student-goal-medal"]],template:function(n,i){n&1&&(o(0,"article",0)(1,"div",1)(2,"mat-icon",2),r(3,"track_changes"),a(),o(4,"span"),r(5,"Weekly exercise goal"),a()(),u(6,bl,2,0,"div",3)(7,wl,1,0,"app-pathways-disabled-overlay")(8,Ml,2,0,"div",4)(9,Pl,7,0,"div",5)(10,Sl,8,3,"div",6),a()),n&2&&(Q("student-summary-metric--inactive",!i.detailState.pathwaysEnabled()),lt("aria-disabled",!i.detailState.pathwaysEnabled()||i.detailState.studentSettingsUnavailable()),l(6),h(i.detailState.studentSettingsLoading()?6:i.detailState.studentSettingsUnavailable()?7:i.studentScoreQuery.isFetching()?8:i.studentScoreQuery.isError()?9:i.studentScoreQuery.data()?10:-1))},dependencies:[k,S,G,R,Se],styles:["[_nghost-%COMP%]{display:block;height:100%}.student-summary-metric[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;height:100%;min-height:86px;display:grid;align-content:center;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--mat-sys-primary) 18%,var(--mat-sys-outline-variant));border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);box-shadow:inset 0 1px #ffffffad,0 8px 18px #28434d09}.student-summary-metric--inactive[_ngcontent-%COMP%]{opacity:.48;filter:grayscale(.35)}.student-summary-metric[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-weight:500}.student-summary-metric[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:14px}.student-summary-metric-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;color:var(--mat-sys-primary);font-size:11px;font-weight:500;line-height:16px}.student-summary-metric-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:16px;height:16px;font-size:16px}.student-summary-metric-error-state[_ngcontent-%COMP%]{position:absolute;inset:6px;z-index:1;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:1px 6px;padding:5px 7px;border:1px dashed color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));border-radius:10px;background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:24px;height:24px;grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error);font-size:16px}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{min-width:0;color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:-webkit-box;overflow:hidden;font-size:11px;font-weight:600;line-height:14px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{font-size:10px;line-height:13px}.student-goal-body[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(44px,1fr) auto auto;align-items:center;gap:10px}.student-goal-count[_ngcontent-%COMP%]{font-size:16px;line-height:22px}.student-goal-percent[_ngcontent-%COMP%]{color:var(--mat-sys-primary)!important;font-size:20px;line-height:26px}.student-goal-medal[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:2px solid var(--mat-sys-primary);border-radius:999px;color:var(--mat-sys-primary)}.student-goal-medal[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:20px;height:20px;font-size:20px}.student-summary-metric-loading[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface)}@media(max-width:820px){.student-summary-metric[_ngcontent-%COMP%]{min-height:86px}}"],changeDetection:0})}}return e})();function Ol(e,c){e&1&&(o(0,"div",1),g(1,"mat-spinner",3),a())}function El(e,c){e&1&&(o(0,"div",2)(1,"mat-icon",4),r(2,"military_tech"),a(),o(3,"strong"),r(4,"Level unavailable"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Il(e,c){if(e&1&&(o(0,"span",5),r(1),a(),o(2,"div",6)(3,"strong"),r(4),a(),o(5,"small"),r(6),a(),g(7,"mat-progress-bar",7),a()),e&2){let t=c,n=m(2);l(),_(t.userScore.level),l(3),D("Level ",t.userScore.level,""),l(2),re("",t.userScore.totalPoints," / ",t.userScore.levelPointsRequired," pts"),l(),p("value",n.progressPercentage())}}function Tl(e,c){if(e&1&&u(0,Il,8,5),e&2){let t,n=m();h((t=n.studentScoreQuery.data())?0:-1,t)}}var Xa=(()=>{class e{constructor(){this.scoreState=f(ie),this.studentScoreQuery=this.scoreState.scoreQuery,this.progressPercentage=this.scoreState.levelProgressPercentage}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-level-widget"]],decls:4,vars:1,consts:[[1,"student-summary-metric","student-summary-metric--level"],["aria-live","polite","aria-label","Loading student level",1,"student-summary-metric-loading"],["role","alert",1,"student-summary-metric-error-state"],["diameter","24"],[1,"material-symbols-outlined"],[1,"student-level-chip"],[1,"student-level-copy"],["mode","determinate",3,"value"]],template:function(n,i){n&1&&(o(0,"article",0),u(1,Ol,2,0,"div",1)(2,El,7,0,"div",2)(3,Tl,1,1),a()),n&2&&(l(),h(i.studentScoreQuery.isFetching()?1:i.studentScoreQuery.isError()?2:3))},dependencies:[k,S,he,Xe,G,R],styles:["[_nghost-%COMP%]{display:block;height:100%}.student-summary-metric[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;height:100%;min-height:86px;display:grid;align-content:center;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--mat-sys-primary) 18%,var(--mat-sys-outline-variant));border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);box-shadow:inset 0 1px #ffffffad,0 8px 18px #28434d09}.student-summary-metric[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:14px}.student-summary-metric-error-state[_ngcontent-%COMP%]{position:absolute;inset:6px;z-index:1;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:1px 6px;padding:5px 7px;border:1px dashed color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));border-radius:10px;background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:24px;height:24px;grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error);font-size:16px}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{min-width:0;color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:-webkit-box;overflow:hidden;font-size:11px;font-weight:600;line-height:14px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{font-size:10px;line-height:13px}.student-summary-metric--level[_ngcontent-%COMP%]{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}.student-level-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:32px;border-radius:10px;background:#a4ff5a;border:2px solid #085E55;color:#085e55;font-family:Tanker-Regular,Tanker,Syne,sans-serif;font-size:13px;font-weight:400;line-height:16px}.student-level-copy[_ngcontent-%COMP%]{min-width:0}.student-level-copy[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface);font-size:16px;font-weight:500;line-height:20px}.student-level-copy[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ng
5content-%COMP%]{--mdc-linear-progress-active-indicator-color: var(--mat-sys-primary);--mdc-linear-progress-track-color: color-mix( in srgb, var(--mat-sys-primary) 14%, var(--mat-sys-surface) );height:4px;margin-top:8px;border-radius:999px}.student-summary-metric-loading[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface)}@media(max-width:820px){.student-summary-metric[_ngcontent-%COMP%]{min-height:86px}}"],changeDetection:0})}}return e})();var wn=(()=>{class e{constructor(){this.detailState=f(T),this.studentDetailService=f(It),this.canLoad=y(()=>{let t=this.detailState.requestContext();return!!(t?.organizationId&&t.userId&&this.detailState.pathwaysEnabled()&&this.detailState.exerciseSettings().pathwayId)}),this.progressQuery=U(()=>{let t=this.detailState.requestContext(),n=this.detailState.exerciseSettings().pathwayId;return{queryKey:["student-detail","pathway-progress",t?.organizationId??"",t?.userId??"",n],enabled:this.canLoad(),staleTime:0,gcTime:0,refetchOnMount:"always",queryFn:()=>this.studentDetailService.getStudentPathwayProgress(t.organizationId,t.userId,n)}})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275prov=K({token:e,factory:e.\u0275fac})}}return e})();function kl(e,c){e&1&&(o(0,"div",1),g(1,"mat-spinner",2),a())}function Dl(e,c){e&1&&g(0,"app-pathways-disabled-overlay")}function zl(e,c){e&1&&(o(0,"div",3),g(1,"mat-spinner",2),a())}function Al(e,c){e&1&&(o(0,"div",4)(1,"mat-icon",8),r(2,"route"),a(),o(3,"strong"),r(4,"Pathway progress unavailable"),a(),o(5,"small"),r(6,"Try again later."),a()())}function Fl(e,c){e&1&&(o(0,"span",5),r(1," Streak unavailable "),a())}function jl(e,c){if(e&1&&(o(0,"span",9),r(1),a()),e&2){let t=m();l(),D("",t.userScore.consecutiveDays,"-day streak")}}function Ll(e,c){e&1&&u(0,jl,2,1,"span",9),e&2&&h(c.userScore.consecutiveDays>0?0:-1)}function Rl(e,c){if(e&1&&u(0,Ll,1,1),e&2){let t,n=m(2);h((t=n.studentScoreQuery.data())?0:-1,t)}}function Gl(e,c){if(e&1&&(o(0,"div",10)(1,"div",11)(2,"span"),r(3),a()(),o(4,"div",12)(5,"small",13),r(6),a(),o(7,"strong"),r(8),a(),o(9,"small"),r(10),a()()()),e&2){let t=m(2);Q("student-pathway-content--inactive",!t.detailState.pathwaysEnabled()),l(),$n("--completion-progress",t.completionProgress()),lt("aria-label",t.completionPercentage()+"% complete"),l(2),D("",t.completionPercentage(),"%"),l(3),_(t.detailState.pathway().journey),l(2),_(t.detailState.pathway().title),l(2),_(t.completionLabel())}}function Vl(e,c){if(e&1){let t=O();o(0,"button",14),v("click",function(){w(t);let i=m(2);return M(i.detailState.openTestPathwaysDialog())}),r(1," Enable Pathways "),a()}}function Nl(e,c){if(e&1&&u(0,zl,2,0,"div",3)(1,Al,7,0,"div",4)(2,Fl,2,0,"span",5)(3,Rl,1,1)(4,Gl,11,9,"div",6)(5,Vl,2,0,"button",7),e&2){let t=m();h(t.detailState.pathwaysEnabled()&&(t.studentScoreQuery.isFetching()||t.pathwayProgressQuery.isFetching())?0:t.detailState.pathwaysEnabled()&&(!t.pathwayProgressState.canLoad()||t.pathwayProgressQuery.isError())?1:t.detailState.pathwaysEnabled()&&t.studentScoreQuery.isError()?2:t.detailState.pathwaysEnabled()?3:-1),l(4),h(!t.detailState.pathwaysEnabled()||t.pathwayProgressState.canLoad()&&!t.pathwayProgressQuery.isError()?4:-1),l(),h(t.detailState.pathwaysEnabled()?-1:5)}}var Za=(()=>{class e{constructor(){this.detailState=f(T),this.scoreState=f(ie),this.pathwayProgressState=f(wn),this.pathwayProgressQuery=this.pathwayProgressState.progressQuery,this.studentScoreQuery=this.scoreState.scoreQuery,this.completionPercentage=y(()=>{let t=this.pathwayProgressQuery.data(),n=t?.exercisesCompleted??0,i=t?.exercisesTotal??0;return i<=0?0:Math.min(100,Math.max(0,Math.round(n/i*100)))}),this.completionProgress=y(()=>`${this.completionPercentage()}%`),this.completionLabel=y(()=>{let t=this.pathwayProgressQuery.data();return`${t?.exercisesCompleted??0}/${t?.exercisesTotal??0} exercises completed`})}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-pathway-widget"]],decls:4,vars:2,consts:[[1,"student-summary-metric","student-summary-metric--pathway"],["aria-live","polite","aria-label","Loading pathway settings",1,"student-summary-metric-loading"],["diameter","24"],["aria-live","polite","aria-label","Loading pathway progress",1,"student-summary-metric-loading"],["role","alert",1,"student-summary-metric-error-state"],["role","alert",1,"student-pathway-streak","student-pathway-streak--error"],[1,"student-pathway-content",3,"student-pathway-content--inactive"],["mat-stroked-button","","type","button"],[1,"material-symbols-outlined"],[1,"student-pathway-streak"],[1,"student-pathway-content"],[1,"student-pathway-ring"],[1,"student-pathway-detail
5s"],[1,"student-pathway-journey"],["mat-stroked-button","","type","button",3,"click"]],template:function(n,i){n&1&&(o(0,"article",0),u(1,kl,2,0,"div",1)(2,Dl,1,0,"app-pathways-disabled-overlay")(3,Nl,6,3),a()),n&2&&(lt("aria-disabled",!i.detailState.pathwaysEnabled()||i.detailState.studentSettingsUnavailable()),l(),h(i.detailState.studentSettingsLoading()?1:i.detailState.studentSettingsUnavailable()?2:3))},dependencies:[L,F,k,S,G,R,Se],styles:["[_nghost-%COMP%]{display:block;height:100%}.student-summary-metric[_ngcontent-%COMP%]{height:100%;min-height:86px;display:grid;align-content:center;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--mat-sys-primary) 18%,var(--mat-sys-outline-variant));border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);box-shadow:inset 0 1px #ffffffad,0 8px 18px #28434d09}.student-summary-metric[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-weight:500}.student-summary-metric[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:14px}.student-summary-metric--pathway[_ngcontent-%COMP%]{position:relative;align-content:stretch;padding-top:20px}.student-summary-metric--pathway[_ngcontent-%COMP%] > button[mat-stroked-button][_ngcontent-%COMP%]{position:absolute;right:10px;bottom:10px;min-width:0;height:28px;padding:0 10px;font-size:11px}.student-pathway-content[_ngcontent-%COMP%]{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;height:100%}.student-pathway-content--inactive[_ngcontent-%COMP%]{opacity:.38;filter:grayscale(.35)}.student-pathway-ring[_ngcontent-%COMP%]{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:999px;background:conic-gradient(var(--mat-sys-primary) 0 var(--completion-progress),color-mix(in srgb,var(--mat-sys-primary) 18%,var(--mat-sys-surface)) var(--completion-progress) 100%)}.student-pathway-ring[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:999px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-primary);font-size:9px;font-weight:700;line-height:1}
5.student-pathway-details[_ngcontent-%COMP%]{min-width:0;display:grid}.student-pathway-journey[_ngcontent-%COMP%]{color:var(--mat-sys-primary)!important;font-weight:600}.student-summary-metric-error-state[_ngcontent-%COMP%]{position:absolute;inset:6px;z-index:1;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:1px 6px;padding:5px 7px;border:1px dashed color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));border-radius:10px;background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:24px;height:24px;grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error);font-size:16px}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-summary-metric-error-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{min-width:0;color:var(--mat-sys-on-error-container)}.student-summary-metric-error-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{overflow:hidden;font-size:11px;font-weight:600;line-height:14px;text-overflow:ellipsis}.student-pathway-streak[_ngcontent-%COMP%]{position:absolute;top:8px;right:10px;display:inline-flex;align-items:center;width:fit-content;min-height:18px;padding:0 8px;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 72%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:10px;font-weight:600;line-height:14px}.student-pathway-streak--error[_ngcontent-%COMP%]{box-sizing:border-box;max-width:calc(100% - 20px);overflow:hidden;border:1px dashed color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container);text-overflow:ellipsis;white-space:nowrap}.student-summary-metric-loading[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface)}@media(max-width:820px){.student-summary-metric[_ngcontent-%COMP%]{min-height:86px}}"],changeDetection:0})}}return e})();function Wl(e,c){if(e&1&&(o(0,"p"),r(1),a()),e&2){let t=m();l(),_(t.detailState.studentSummary().description)}}function Bl(e,c){if(e&1&&(o(0,"span",10),r(1),a()),e&2){let t=m();l(),_(t.detailState.studentSummary().status)}}function Ql(e,c){if(e&1&&(o(0,"span",11),r(1),a()),e&2){let t=m();l(),_(t.detailState.studentSummary().email)}}function $l(e,c){if(e&1&&(o(0,"span",11),r(1),a()),e&2){let t=m();l(),_(t.detailState.studentSummary().phone)}}function ql(e,c){if(e&1&&(o(0,"span",11),r(1),a()),e&2){let t=m();l(),D("Created ",t.detailState.studentSummary().createdAt,"")}}function Ul(e,c){if(e&1){let t=O();o(0,"button",21),v("click",function(){w(t);let i=m();return M(i.detailState.copyInviteLink())}),o(1,"mat-icon",2),r(2,"content_copy"),a(),r(3," Invitation link "),a()}}function Jl(e,c){if(e&1){let t=O();o(0,"button",17),v("click",function(){w(t);let i=m();return M(i.detailState.openBillingInfoDialog())}),o(1,"mat-icon",2),r(2,"receipt_long"),a(),o(3,"span"),r(4,"Manage billing"),a()()}}function Hl(e,c){if(e&1){let t=O();g(0,"mat-divider"),o(1,"button",22),v("click",function(){w(t);let i=m();return M(i.detailState.openInviteDelete())}),o(2,"mat-icon",23),r(3,"delete"),a(),o(4,"span",24),r(5,"Remove student"),a()()}}var Mn=(()=>{class e{constructor(){this.detailState=f(T)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-summary-widget"]],decls:52,vars:15,consts:[["studentActionsMenu","matMenu"],["mat-icon-button","","aria-label","Back to students list",1,"profile-back-button",3,"routerLink"],[1,"material-symbols-outlined"],["aria-label","Student profile summary",1,"profile-hero"],[1,"profile-hero-main"],["aria-hidden","true",1,"student-summary-photo-card"],[1,"student-summary-avatar",3,"editable","userId","width","height"],[1,"student-summary-copy"],[1,"student-summary-title-row"],["aria-label","Student profile metadata",1,"profile-meta-row"],[1,"profile-status-pill"],[1,"profile-meta-text"],[1,"profile-hero-actions"],["mat-stroked-button","","type","button"],["mat-stroked-button","","type","button",3,"matMenuTriggerFor"],[1,"student-actions-menu"],["mat-menu-item","","type","button"],["mat-menu-item","","type","button",3,"click"],["mat-menu-item","","href","https://exercises.slingui.com/assign"],["mat-menu-item","","href","https://go.slingui.com/files"],["aria-label","Student learning snapshot",1,"profile-snapsh
5ot-grid"],["mat-stroked-button","","type","button",3,"click"],["mat-menu-item","","type","button",1,"warn-text",3,"click"],["color","warn",1,"material-symbols-outlined"],[2,"color","var(--mat-warn-500, #f44336)"]],template:function(n,i){if(n&1){let s=O();o(0,"a",1)(1,"mat-icon",2),r(2,"arrow_back"),a()(),o(3,"section",3)(4,"div",4)(5,"div",5),g(6,"slingui-avatar",6),a(),o(7,"div",7)(8,"div",8)(9,"h2"),r(10),a()(),u(11,Wl,2,1,"p"),o(12,"div",9),u(13,Bl,2,1,"span",10)(14,Ql,2,1,"span",11)(15,$l,2,1,"span",11)(16,ql,2,1,"span",11),a()(),o(17,"div",12),u(18,Ul,4,0,"button",13),o(19,"button",14)(20,"mat-icon",2),r(21,"bolt"),a(),r(22," Actions "),a()()(),o(23,"mat-menu",15,0),u(25,Jl,5,0,"button",16),o(26,"button",17),v("click",function(){return w(s),M(i.detailState.openScheduleClassDialog())}),o(27,"mat-icon",2),r(28,"event"),a(),o(29,"span"),r(30,"Schedule class"),a()(),o(31,"button",17),v("click",function(){return w(s),M(i.detailState.openTestPathwaysDialog())}),o(32,"mat-icon",2),r(33,"tune"),a(),o(34,"span"),r(35,"Test & Pathways"),a()(),o(36,"a",18)(37,"mat-icon",2),r(38,"library_books"),a(),o(39,"span"),r(40,"Assign exercises"),a()(),o(41,"a",19)(42,"mat-icon",2),r(43,"folder_shared"),a(),o(44,"span"),r(45,"Share files"),a()(),u(46,Hl,6,0),a(),o(47,"div",20),g(48,"app-student-goal-widget")(49,"app-student-activity-widget")(50,"app-student-pathway-widget")(51,"app-student-level-widget"),a()()}if(n&2){let s=ht(24);p("routerLink",i.detailState.backLink()),l(6),p("editable",!1)("userId",i.detailState.studentAvatarUserId())("width",84)("height",84),l(4),_(i.detailState.studentSummary().name),l(),h(i.detailState.studentSummary().description?11:-1),l(2),h(i.detailState.studentSummary().status?13:-1),l(),h(i.detailState.studentSummary().email?14:-1),l(),h(i.detailState.studentSummary().phone?15:-1),l(),h(i.detailState.studentSummary().createdAt?16:-1),l(2),h(i.detailState.studentSummary().invitationPending?18:-1),l(),p("matMenuTriggerFor",s),l(6),h(i.detailState.canManageBilling()?25:-1),l(21),h(i.detailState.canDeleteStudent()?46:-1)}},dependencies:[Dt,L,F,qe,k,S,ye,an,nn,on,Jt,nt,jt,Zt,G,Ya,Ka,Za,Xa],styles:["[_nghost-%COMP%]{display:block;min-width:0}.profile-hero[_ngcontent-%COMP%]{display:grid;gap:18px;margin-bottom:12px;padding:20px;border:1px solid var(--mat-sys-outline-variant);border-radius:22px;background:var(--mat-sys-surface);box-shadow:0 8px 20px #28434d09}.profile-hero-main[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}.profile-hero-main[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0}.student-summary-photo-card[_ngcontent-%COMP%]{width:92px;height:92px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;box-shadow:none}.student-summary-avatar[_ngcontent-%COMP%]{display:inline-flex;width:82px;height:82px}.student-summary-copy[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto}.student-summary-copy[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:680px;margin:4px 0 0;color:var(--mat-sys-on-surface-variant);font-size:13px;line-height:20px}.student-summary-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.student-summary-title-row[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;color:var(--mat-sys-primary);font-family:Tanker-Regular,Syne,sans-serif;font-size:31px;font-weight:500;letter-spacing:.01em;line-height:34px}.profile-back-button[_ngcontent-%COMP%]{width:36px;height:36px;margin-bottom:8px;color:var(--mat-sys-on-surface)}.profile-back-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:22px;height:22px;font-size:22px}.profile-meta-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:11px 0 0;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.profile-status-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);font-size:12px;font-weight:600;line-height:18px}.profile-meta-text[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border:1px solid color-mix(in srgb,var(--mat-sys-outline-variant) 70%,transparent);border-radius:999px;background:color-mix(in srgb,var(--mat-sys-surface-container-low) 72%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);font-size:12px;font-weight:500;line-height:18px;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}.profile-hero-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;
5gap:8px;flex-wrap:wrap}.profile-hero-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{height:36px;background:color-mix(in srgb,var(--mat-sys-surface) 58%,transparent);white-space:nowrap}.profile-snapshot-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(174px,.68fr) minmax(0,1.52fr) minmax(188px,.86fr);align-items:stretch;gap:10px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--mat-sys-outline-variant) 62%,transparent)}.profile-snapshot-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-height:100%} .student-summary-photo-card slingui-avatar .profile-avatar, .student-summary-photo-card slingui-avatar .profile-avatar img{display:block;border-radius:999px!important;overflow:hidden} .student-summary-photo-card slingui-avatar .profile-avatar img{object-fit:cover} .student-actions-menu.mat-mdc-menu-panel{border:1px solid var(--mat-sys-outline-variant);border-radius:14px;background:var(--mat-sys-surface);box-shadow:0 16px 32px #28434d1f} .student-actions-menu .mat-mdc-menu-item{min-height:42px;color:var(--mat-sys-on-surface);font-size:14px} .student-actions-menu .mat-mdc-menu-item .mat-icon{color:var(--mat-sys-primary)}@media(max-width:1200px){.profile-snapshot-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:992px){.profile-hero-main[_ngcontent-%COMP%]{grid-template-columns:auto minmax(0,1fr);align-items:center}.profile-hero-actions[_ngcontent-%COMP%]{grid-column:2;justify-content:flex-start}}@media(max-width:768px){.profile-hero[_ngcontent-%COMP%]{padding:18px}.profile-hero-main[_ngcontent-%COMP%]{grid-template-columns:84px minmax(0,1fr);align-items:start;gap:14px}.student-summary-photo-card[_ngcontent-%COMP%]{width:84px;height:84px}.student-summary-avatar[_ngcontent-%COMP%]{width:76px;height:76px}.student-summary-title-row[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:28px;line-height:30px}.profile-meta-row[_ngcontent-%COMP%]{gap:6px}.profile-hero-actions[_ngcontent-%COMP%]{grid-column:1/-1;justify-content:flex-start}}@media(max-width:576px){.profile-hero[_ngcontent-%COMP%]{padding:16px}.profile-hero-main[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.student-summary-title-row[_ngcontent-%COMP%]{justify-content:center}.student-summary-title-row[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{text-align:center}.student-summary-copy[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:100%;margin:4px auto 0;text-align:center}.profile-meta-row[_ngcontent-%COMP%]{justify-content:center;margin-left:0}.profile-hero-actions[_ngcontent-%COMP%]{width:100%;grid-column:1;display:grid;grid-template-columns:minmax(0,1fr)}.profile-hero-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%;min-width:0;flex:initial}.profile-snapshot-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}"],changeDetection:0})}}return e})();var Yl=["studentTabs"];function Xl(e,c){e&1&&(o(0,"div",2)(1,"div",4),g(2,"mat-spinner",5),o(3,"span"),r(4,"Loading student details..."),a()()())}function Zl(e,c){e&1&&(o(0,"div",3)(1,"div",4)(2,"strong"),r(3,"Student details unavailable"),a(),o(4,"span"),r(5,"Try again later."),a()()())}function tc(e,c){if(e&1){let t=O();o(0,"app-student-overview-tab",11),v("chartInitialized",function(i){w(t);let s=m(2);return M(s.onOverviewChartInit(i))}),a()}}function ec(e,c){if(e&1){let t=O();o(0,"app-student-exercises-tab",11),v("chartInitialized",function(i){w(t);let s=m(2);return M(s.onExercisesChartInit(i))}),a()}}function nc(e,c){e&1&&g(0,"app-student-profile-form-widget")}function ic(e,c){e&1&&(o(0,"mat-tab",12),u(1,nc,1,0,"ng-template",8),a())}function ac(e,c){if(e&1){let t=O();g(0,"app-student-summary-widget"),o(1,"mat-tab-group",6,0),v("selectedTabChange",function(){w(t);let i=m();return M(i.captureTabScrollPosition())})("selectedIndexChange",function(i){w(t);let s=m();return M(s.changeTab(i))}),o(3,"mat-tab",7),u(4,tc,1,0,"ng-template",8),a(),o(5,"mat-tab",9),u(6,ec,1,0,"ng-template",8),a(),u(7,ic,2,0,"mat-tab",10),a()}if(e&2){let t=m();l(),p("preserveContent",!0)("selectedIndex",t.state.currentTab()),l(6),p("ngIf",t.state.canUpdateStudent())}}var to=(()=>{class e{constructor(){this.state=f(T),this.route=f(Qt),this.captureTabInput=t=>{let n=t.target,i=n instanceof Element?n.closest('[role="tab"]'):null;(!(t instanceof KeyboardEvent)||(t.key==="Enter"||t.key===" ")&&!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey)&&i&&i.closest("mat-tab-header")?.parentElement===this.tabGroup?.nativeElement&&i.getAttribute("aria-selected")==="false"&&i.getAttribute("aria-disabled")!=="true"&&this.captureTabScrollPosition()}
5,this.routeParams=kt(this.route.paramMap,{initialValue:this.route.snapshot.paramMap}),J(()=>{let t=this.routeParams();this.state.initialize(t.get("organizationId")??"",t.get("inviteId")??"")}),J(()=>{this.state.currentTab(),this.resizeChartsSoon()})}ngAfterViewInit(){this.resizeChartsSoon();let t=this.tabGroup?.nativeElement;t?.addEventListener("click",this.captureTabInput,!0),t?.addEventListener("keydown",this.captureTabInput,!0)}ngOnDestroy(){let t=this.tabGroup?.nativeElement;t?.removeEventListener("click",this.captureTabInput,!0),t?.removeEventListener("keydown",this.captureTabInput,!0)}onOverviewChartInit(t){this.overviewChart=t,this.resizeChartsSoon()}onExercisesChartInit(t){this.exercisesChart=t,this.resizeChartsSoon()}captureTabScrollPosition(){this.tabSwitchScrollX??=window.scrollX,this.tabSwitchScrollY??=window.scrollY}changeTab(t){let n=this.tabSwitchScrollX??window.scrollX,i=this.tabSwitchScrollY??window.scrollY;this.state.changeTab(t),requestAnimationFrame(()=>{window.scrollTo(n,i),this.tabSwitchScrollX=void 0,this.tabSwitchScrollY=void 0})}resizeChartsSoon(){typeof requestAnimationFrame=="function"&&requestAnimationFrame(()=>this.resizeCharts()),setTimeout(()=>this.resizeCharts(),160),setTimeout(()=>this.resizeCharts(),320)}resizeCharts(){this.overviewChart?.resize(),this.exercisesChart?.resize()}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-detail"]],viewQuery:function(n,i){if(n&1&&Ie(Yl,5,Le),n&2){let s;Te(s=ke())&&(i.tabGroup=s.first)}},standalone:!1,decls:4,vars:1,consts:[["studentTabs",""],[1,"student-detail-page"],["aria-live","polite","aria-label","Loading student details",1,"student-detail-loading-overlay"],["role","alert",1,"student-detail-loading-overlay"],[1,"student-detail-loading-card"],["diameter","34"],["mat-stretch-tabs","false","mat-align-tabs","start","animationDuration","120ms",1,"student-tabs",3,"selectedTabChange","selectedIndexChange","preserveContent","selectedIndex"],["label","Overview"],["matTabContent",""],["label","Learning"],["label","Profile",4,"ngIf"],[3,"chartInitialized"],["label","Profile"]],template:function(n,i){n&1&&(o(0,"div",1),u(1,Xl,5,0,"div",2)(2,Zl,6,0,"div",3)(3,ac,8,3),a()),n&2&&(l(),h(i.state.coreLoading()?1:i.state.coreError()?2:3))},dependencies:[Wt,Ri,_e,ve,R,yn,vn,Cn,Mn],styles:['[_nghost-%COMP%]{display:block;min-width:0}.student-detail-page[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;min-width:0;max-width:1180px;margin:0 auto;padding:22px 16px 32px;color:var(--mat-sys-on-surface)}.student-detail-loading-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#ffffff8f;backdrop-filter:blur(2px)}.student-detail-loading-card[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:var(--mat-sys-surface);color:var(--mat-sys-primary);box-shadow:0 14px 34px #28434d1f;font-size:14px;font-weight:600}.tab-content[_ngcontent-%COMP%]{padding-top:14px}.student-tabs[_ngcontent-%COMP%]{display:block;min-width:0;max-width:100%}[_nghost-%COMP%] .student-tabs .mat-mdc-tab-body-wrapper, [_nghost-%COMP%] .student-tabs .mat-mdc-tab-body, [_nghost-%COMP%] .student-tabs .mat-mdc-tab-body-content{min-width:0;max-width:100%}[_nghost-%COMP%] .student-tabs .mat-mdc-tab-body-content{overflow-x:hidden}@media(min-width:577px){[_nghost-%COMP%] .student-tabs .mat-mdc-tab-labels{width:100%}[_nghost-%COMP%] .student-tabs .mat-mdc-tab{min-width:0;flex:1 1 0;padding-inline:12px}}.panel.mat-mdc-card[_ngcontent-%COMP%], .metric-card[_ngcontent-%COMP%]{background:var(--mat-sys-surface);border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;box-shadow:none!important}.panel[_ngcontent-%COMP%]{position:relative;overflow:hidden;isolation:isolate}.panel[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:16px;background:var(--mat-sys-surface)}h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 14px;color:var(--mat-sys-primary);font-family:Tanker-Regular,Syne,sans-serif;font-size:19px;font-weight:400;letter-spacing:.01em;line-height:26px}h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.student-detail-page[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%], .student-detail-page[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%], .student-detail-page[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%]{font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px}.student-detail-page[_ngcontent-%COMP%] .panel-header--compact[_ngcontent-%COMP%] h2.mat-h2[_ngcontent-%COMP%]{font-size:21px;line-height:26px}.panel-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin-bottom:0}.panel-header[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:168px;height:36px;justify-content:space-between;font-size:12px}.panel-header--compact[_ngcontent-%COMP%]{margin-bottom:10px}.metrics-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.66fr) minmax(0,1.48fr) minmax(0,.76fr);gap:12px;margin-bottom:12px}.metric-card[_ngcontent-%COMP%]{min-height:72px;position:relative;padding:8px 12px;display:grid;background:var(--mat-sys-surface-container-low)}.metric-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-weight:500}.metric-card[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:10px;line-height:13px}.metric-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;min-width:0;color:var(--mat-sys-primary);font-size:11px;font-weight:500;line-height:14px}.metric-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:15px;height:15px;font-size:15px}.metric-card--goal[_ngcontent-%COMP%]{grid-template-rows:auto 1fr;gap:6px}.metric-card-content[_ngcontent-%COMP%]{min-width:0;transition:opacity .12s ease,filter .12s ease}.metric-card-content--goal[_ngcontent-%COMP%]{display:grid;grid-template-rows:auto 1fr;gap:6px}.metric-card-content--pathway[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}.metric-card-content--inactive[_ngcontent-%COMP%], .assignment-grid--inactive[_ngcontent-%COMP%]{opacity:.34;filter:grayscale(.35);pointer-events:none}.metric-inactive-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:4px;border-radius:inherit;background:#ffffffad;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}.metric-inactive-overlay[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:11px;font-weight:600;line-height:14px}.metric-inactive-overlay[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%], .assignment-inactive-overlay[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:0;height:28px;padding:0 12px;font-size:12px;line-height:28px}.goal-card-body[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(56px,1fr) auto 42px;align-items:center;gap:10px}.goal-main[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;font-size:16px;line-height:20px}.goal-main[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block}.goal-percent[_ngcontent-%COMP%]{color:var(--mat-sys-primary)!important;font-size:22px;line-height:28px}.goal-medal[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:3px solid var(--mat-sys-primary);border-radius:999px;color:var(--mat-sys-primary)}.goal-medal[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:24px;height:24px;font-size:24px}.metric-card--activity[_ngcontent-%COMP%]{grid-template-rows:auto auto auto;align-content:start;gap:6px}.metric-card--activity[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-top:2px;font-size:15px;line-height:19px}.metric-card--pathway[_ngcontent-%COMP%]{grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}.pathway-ring[_ngcontent-%COMP%]{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:conic-gradient(var(--mat-sys-primary) 0 31deg,var(--mat-sys-primary-container) 31deg 360deg)}.pathway-ring[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:999px;background:var(--mat-sys-surface-container-low)}.pathway-copy[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.pathway-copy[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:20px}.streak-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:17px;padding:0 8px;border-radius:4px;background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);font-size:10px;font-weight:500;line-height:14px;white-space:nowrap}.metric-disabled-state[_ngcontent-%COMP%]{display:grid;gap:6px;justify-items:start;align-content:center;min-height:72px;color:var(--mat-sys-on-surface)}.metric-disabled-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:20px;height:20px;color:var(--mat-sys-primary);font-size:20px}.metric-disabled-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:14px;line-height:18px}.metric-disabled-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{font-size:11px;line-height:14px}.metric-disabled-state[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-top:2px}.metric-disabled-state--inline[_ngcontent-%COMP%]{grid-column:1/-1}.metric-card--level[_ngcontent-%COMP%]{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px}.level-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container);font-size:11px;font-weight:700;white-space:nowrap}.level-copy[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column;gap:3px}.level-copy[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:16px;line-height:20px}.level-copy[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;font-size:10px;line-height:13px;margin-bottom:1px}.dashboard-grid[_ngcontent-%COMP%]{display:grid;gap:12px}.dashboard-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .assignment-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0}.dashboard-grid--overview[_ngcontent-%COMP%]{grid-template-columns:1.7fr 1fr}.dashboard-grid--overview[_ngcontent-%COMP%] .engagement-panel[_ngcontent-%COMP%]{min-height:300px}.financial-panel[_ngcontent-%COMP%]{min-height:260px}.engagement-panel[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-height:100%;display:flex;flex-direction:column}.dashboard-grid--exercises-top[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1.75fr) minmax(280px,.95fr);margin-bottom:12px}.dashboard-grid--exercise-engagement[_ngcontent-%COMP%]{grid-template-columns:1fr;margin-bottom:12px}.dashboard-grid--exercise-engagement[_ngcontent-%COMP%] .engagement-panel[_ngcontent-%COMP%]{min-height:300px}.dashboard-grid--exercise-insights[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.dashboard-grid--assignments[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);margin-bottom:12px}.dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.student-chart-container[_ngcontent-%COMP%]{position:relative;width:100%;height:260px;min-height:260px;max-height:260px;margin-top:auto;overflow:hidden;contain:layout paint;background:var(--mat-sys-surface)}.student-chart[_ngcontent-%COMP%]{position:absolute;inset:0;width:100%!important;height:100%!important}.week-row[_ngcontent-%COMP%], .month-calendar[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;text-align:center;gap:8px;margin-bottom:12px;color:var(--mat-sys-on-surface);font-size:12px}.week-row[_ngcontent-%COMP%]{margin-top:14px}.month-calendar[_ngcontent-%COMP%]{gap:10px 8px;margin-top:18px}.day[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;justify-self:center;border-radius:999px}.day--selected[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.day--outlined[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-primary);color:var(--mat-sys-primary)}.class-list[_ngcontent-%COMP%]{display:flex;flex-direction:column}.class-list--tall[_ngcontent-%COMP%]{max-height:380px;overflow:hidden}.class-row[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.class-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .class-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface);font-size:14px;font-weight:500}.class-row[_ngcontent-%COMP%] small[_ngcontent-%COMP%], .invoice-row[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:16px}
5.class-time[_ngcontent-%COMP%], .invoice-status[_ngcontent-%COMP%]{text-align:right;white-space:nowrap}.status-pill[_ngcontent-%COMP%], .up-to-date[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:22px;padding:0 8px;border-radius:6px;background:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container)!important;font-size:11px!important;font-weight:500!important}.financial-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;color:var(--mat-sys-on-surface-variant);font-size:12px}.financial-panel[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .call-card[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-top:0;color:var(--mat-sys-on-surface);font-size:13px}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:var(--mat-sys-primary);font-size:11px;font-weight:500;text-align:left;text-transform:uppercase}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:12px 8px;border-bottom:1px solid var(--mat-sys-outline-variant)}.review-card[_ngcontent-%COMP%]{padding:16px;border-radius:12px;background:var(--mat-sys-surface-container-lowest)}.review-card[_ngcontent-%COMP%] + .review-card[_ngcontent-%COMP%]{margin-top:12px}.review-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .review-card[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block}.review-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:15px;font-weight:500}.review-card[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{margin-top:4px;color:var(--mat-sys-on-surface-variant);font-size:14px;line-height:20px}.assignment-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;transition:opacity .12s ease,filter .12s ease}.assignment-panel[_ngcontent-%COMP%]{position:relative;container-type:inline-size}@container (max-width: 1000px){.assignment-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 600px){.assignment-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}.assignment-state[_ngcontent-%COMP%]{min-height:160px;display:grid;place-items:center;padding:18px;border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);font-size:13px;line-height:20px;text-align:center}.assignment-empty-state[_ngcontent-%COMP%]{min-height:160px;display:grid;place-content:center;justify-items:center;gap:8px;padding:24px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.assignment-empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 64%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:20px}.assignment-empty-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:20px}.assignment-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:320px;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.assignment-empty-state--error[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface));color:var(--mat-sys-on-error-container)}.assignment-empty-state--error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error)}.assignment-empty-state--error[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .assignment-empty-state--error[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-error-container)}.assignment-loading-shell[_ngcontent-%COMP%]{min-height:160px;border-radius:12px;background:var(--mat-sys-surface-container-lowest);overflow:hidden}.assignment-loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;padding:18px;border-radius:16px;background:color-mix(in srgb,var(--mat-sys-surface) 82%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}.assignment-inactive-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:4px;border-radius:inherit;background:#ffffffad;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);color:var(--mat-sys-on-surface);text-align:center}.assignment-inactive-overlay[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:18px}.assignment-inactive-overlay[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:180px;color:var(--mat-sys-on-surface-variant);font-size:11px;line-height:14px}.assignment-card[_ngcontent-%COMP%]{box-sizing:border-box;min-height:200px;position:relative;display:flex;flex-direction:column;padding:8px;border:1px solid #e1e1e1;overflow-x:clip;border-radius:16px;background:#fff;--assignment-card-bg: var(--mat-sys-surface-container-low);--assignment-accent: var(--mat-sys-on-surface);--assignment-title-fg: var(--mat-sys-on-surface);--assignment-description-fg: var(--mat-sys-on-surface-variant);--assignment-chip-bg: var(--mat-sys-surface-container-high);--assignment-chip-fg: var(--mat-sys-on-surface);--assignment-outline-chip-bg: var(--mat-sys-surface)}.assignment-card.assignment-card--clickable[_ngcontent-%COMP%]{cursor:pointer;
5transition:box-shadow .2s ease,border-color .2s ease}.assignment-card.assignment-card--clickable[_ngcontent-%COMP%]:hover, .assignment-card.assignment-card--clickable[_ngcontent-%COMP%]:focus-visible{border-color:var(--assignment-accent);box-shadow:0 4px 8px #00000014;outline:none}.assignment-card[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%]{max-width:calc(100% - 1px);box-sizing:border-box}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%]{min-height:0;display:flex;flex:1;flex-direction:column;padding:12px;overflow:hidden;border-radius:12px;background:var(--assignment-card-bg)}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%]{display:-webkit-box;margin-bottom:4px;overflow:hidden;color:var(--assignment-title-fg);font-size:15px;font-weight:500;-webkit-box-orient:vertical;-webkit-line-clamp:1}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > p[_ngcontent-%COMP%]{display:-webkit-box;margin:0 0 4px;overflow:hidden;color:var(--assignment-description-fg);font-size:14px;line-height:20px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.assignment-card[_ngcontent-%COMP%] mat-chip-set[_ngcontent-%COMP%]{width:100%;min-width:0;max-width:100%;margin-top:auto;overflow:hidden}.assignment-card-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;height:20px;margin:-4px 0 2px}.assignment-remove-button[_ngcontent-%COMP%]{width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;display:inline-grid!important;place-items:center;padding:0!important;border:0!important;border-radius:999px!important;background:transparent!important;box-shadow:none!important;color:var(--assignment-accent);line-height:1}.assignment-remove-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;margin:0;font-size:18px;line-height:18px}[_nghost-%COMP%] .assignment-remove-button .mat-mdc-button-touch-target{width:22px;height:22px}.assignment-card--reading[_ngcontent-%COMP%], .assignment-card--grammar[_ngcontent-%COMP%], .assignment-card--speaking[_ngcontent-%COMP%], .assignment-card--listening[_ngcontent-%COMP%], .assignment-card--pack[_ngcontent-%COMP%]{--assignment-outline-chip-bg: #fff}.assignment-card--reading[_ngcontent-%COMP%]{--assignment-card-bg: #ddf5ff;--assignment-accent: #001f28;--assignment-title-fg: #001f28;--assignment-description-fg: #001f28;--assignment-chip-bg: #001f28;--assignment-chip-fg: #fff}.assignment-card--grammar[_ngcontent-%COMP%]{--assignment-card-bg: #beffdc;--assignment-accent: #003825;--assignment-title-fg: #003825;--assignment-description-fg: #003825;--assignment-chip-bg: #003825;--assignment-chip-fg: #fff}.assignment-card--speaking[_ngcontent-%COMP%]{--assignment-card-bg: #ffefd5;--assignment-accent: #402d00;--assignment-title-fg: #402d00;--assignment-description-fg: #402d00;--assignment-chip-bg: #402d00;--assignment-chip-fg: #fff}.assignment-card--listening[_ngcontent-%COMP%]{--assignment-card-bg: #ffecee;--assignment-accent: #660029;--assignment-title-fg: #660029;--assignment-description-fg: #660029;--assignment-chip-bg: #660029;--assignment-chip-fg: #fff}.assignment-card--pack[_ngcontent-%COMP%]{--assignment-card-bg: #001f28;--assignment-accent: #001f28;--assignment-title-fg: #ddf5ff;--assignment-description-fg: #fff;--assignment-chip-bg: var(--primary-90);--assignment-chip-fg: #001f28}.assignment-meta[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0;max-width:100%;box-sizing:border-box;margin-top:8px;padding:0 4px 0 8px;color:var(--assignment-accent);font-size:13px;line-height:20px;overflow-x:clip}.assignment-meta-primary[_ngcontent-%COMP%]{min-width:0;max-width:100%;display:inline-flex;align-items:center;flex:0 1 auto;box-sizing:border-box}.assignment-level[_ngcontent-%COMP%], .assignment-difficulty[_ngcontent-%COMP%]{min-width:0;max-width:100%;box-sizing:border-box;min-height:22px}.assignment-level[_ngcontent-%COMP%]{flex:0 1 auto;padding-right:8px;border-right:1px solid var(--mat-divider-color);overflow-wrap:anywhere;text-transform:uppercase}.assignment-difficulty[_ngcontent-%COMP%]{display:inline-flex;align-items:center;flex:0 0 auto;color:var(--assignment-accent)}.assignment-difficulty[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{width:16px;height:18px;display:inline-block;flex:0 0 16px;overflow:hidden;font-size:18px;line-height:18px}.assignment-level[_ngcontent-%COMP%] + .assignment-difficulty[_ngcontent-%COMP%]{margin-left:8px}.assignment-fire--muted[_ngcontent-%COMP%]{opacity:.2}.assignment-answer-summary[_ngcontent-%COMP%]{position:relative;display:inline-flex;align-items:center;flex:0 1 auto;flex-wrap:wrap;box-sizing:border-box;gap:5px 7px;min-width:0;max-width:100%;margin-left:auto;padding:3px 7px;border:1px solid var(--mat-sys-outline-variant);border-radius:999px;background:#ffffff73;color:var(--mat-sys-on-surface);font-family:Roboto Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;outline:0}.assignment-answer-summary[_ngcontent-%COMP%]:before, .assignment-answer-summary[_ngcontent-%COMP%]:after{position:absolute;right:0;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.assignment-answer-summary[_ngcontent-%COMP%]:before{content:"";bottom:calc(100% + 2px);border:5px solid transparent;border-top-color:#263238;transform:translateY(-2px)}.assignment-answer-summary[_ngcontent-%COMP%]:after{content:attr(data-tooltip);bottom:calc(100% + 12px);z-index:3;width:max-content;max-width:220px;padding:8px 10px;border-radius:8px;background:#263238;box-shadow:0 8px 20px #0000002e;color:#fff;font-size:11px;font-weight:500;line-height:16px;text-align:left;white-space:pre-line;transform:translateY(2px)}.assignment-answer-summary[_ngcontent-%COMP%]:hover:before, .assignment-answer-summary[_ngcontent-%COMP%]:hover:after, .assignment-answer-summary[_ngcontent-%COMP%]:focus-visible:before, .assignment-answer-summary[_ngcontent-%COMP%]:focus-visible:after{opacity:1;transform:translateY(0)}.assignment-answer-summary-item[_ngcontent-%COMP%]{min-width:0;display:inline-flex;align-items:center;gap:2px;padding:0;background:transparent;line-height:1}.assignment-answer-summary-marker[_ngcontent-%COMP%]{display:inline-block;line-height:1}
5.assignment-answer-summary-item--correct[_ngcontent-%COMP%]{color:#2e7d32}.assignment-answer-summary-item--wrong[_ngcontent-%COMP%], .assignment-answer-summary-item--wrong-attempts[_ngcontent-%COMP%]{color:#c62828}.assignment-answer-summary-item--unanswered[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant)}.pathway-disabled-state[_ngcontent-%COMP%]{min-height:220px;display:grid;place-items:center;align-content:center;gap:10px;padding:22px;border-radius:12px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface);text-align:center}.pathway-disabled-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:32px;height:32px;color:var(--mat-sys-primary);font-size:32px}.pathway-disabled-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:16px;font-weight:500;line-height:22px}.pathway-disabled-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:320px;margin:0;color:var(--mat-sys-on-surface-variant);font-size:14px;line-height:20px}.performance-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.performance-card[_ngcontent-%COMP%]{padding:12px;border-radius:10px;background:var(--mat-sys-surface-container-lowest)}.performance-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;margin-bottom:12px;font-size:15px;font-weight:500}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0;font-size:13px;line-height:20px}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{min-width:0;overflow-wrap:anywhere}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{flex:1 1 120px}.performance-card[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:last-child{flex:0 1 auto;text-align:right}.performance-card--reading[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-primary-container) 70%,var(--mat-sys-surface))}.performance-card--grammar[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-secondary-container) 70%,var(--mat-sys-surface))}.performance-card--speaking[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-tertiary-container) 70%,var(--mat-sys-surface))}.performance-card--listening[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 70%,var(--mat-sys-surface))}.call-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.call-card[_ngcontent-%COMP%]{padding:12px;border-radius:12px;background:var(--mat-sys-surface-container-lowest)}.call-card[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{margin:0 0 10px}.call-card[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12px;line-height:17px}.call-card[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-weight:500}.call-card[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;color:var(--mat-sys-on-surface);text-align:right}.call-card[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{min-height:72px}mat-icon[_ngcontent-%COMP%]{overflow:visible} .student-detail-page .mat-mdc-form-field{width:100%} .student-detail-page .mat-mdc-text-field-wrapper, .student-detail-page .mdc-text-field--outlined{background:var(--mat-sys-surface)} .student-detail-page .mat-mdc-standard-chip{--mdc-chip-container-height: 24px;--mdc-chip-elevated-container-color: var(--mat-sys-primary-container);--mdc-chip-label-text-color: var(--mat-sys-on-primary-container);font-size:11px;font-weight:500} .student-detail-page .assignment-card .mat-mdc-standard-chip{--mdc-chip-container-height: 22px;--mdc-chip-label-text-size: 11px;--mdc-chip-label-text-weight: 500;min-width:0;max-width:100%;flex:0 1 auto;box-sizing:border-box;overflow:hidden;background:var(--assignment-chip-bg)!important;border:0!important;border-radius:32px!important;color:var(--assignment-chip-fg)!important;font-size:11px;margin:0!important} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__cell--primary, .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__action--primary{min-width:0;max-width:100%} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border:0!important} .student-detail-page .assignment-card .mat-mdc-standard-chip .mdc-evolution-chip__text-label{min-width:0;max-width:100%;display:block;overflow:hidden;color:var(--assignment-chip-fg)!important;text-overflow:ellipsis;white-space:nowrap} .student-detail-page .assignment-card .mat-mdc-chip-set .mdc-evolution-chip-set__chips{width:100%;min-width:0;max-width:100%;flex-flow:row nowrap;gap:6px;margin:0;overflow:hidden} .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip{background:var(--assignment-outline-chip-bg)!important;border:1px solid var(--assignment-accent)!important;color:var(--assignment-accent)!important} .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border:0!important} .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip .mdc-evolution-chip__text-label, .student-detail-page .assignment-card .assignment-chip--outlined.mat-mdc-standard-chip span{color:var(--assignment-accent)!important} .student-detail-page .assignment-remove-button.mat-mdc-icon-button{border:0!important} .student-detail-page .assignment-remove-button.mat-mdc-icon-button .mat-mdc-button-touch-target{width:24px;height:24px} .student-detail-page .mat-mdc-progress-bar{margin-top:8px;border-radius:999px;overflow:hidden} .student-detail-page .level-copy .mat-mdc-progress-bar{height:4px;margin-top:0} .student-detail-page .level-copy .mdc-linear-progress__bar-inner{border-top-width:4px} .student-detail-page .mat-mdc-slide-toggle{--mdc-switch-selected-track-color: var(--mat-sys-primary);--mdc-switch-selected-handle-color: var(--mat-sys-on-primary);--mdc-switch-selected-hover-track-color: var(--mat-sys-primary);--mdc-switch-selected-pressed-track-color: var(--mat-sys-primary);--mdc-switch-selected-focus-track-color: var(--mat-sys-primary)}@media(max-width:1200px){.metrics-grid[_ngcontent-%COMP%], .dashboard-grid--overview[_ngcontent-%COMP%], .dashboard-grid--exercises-top[_ngcontent-%COMP%], .dashboard-grid--classroom[_ngcontent-%COMP%], .call-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:992px){.dashboard-grid--exercises-top[_ngcontent-%COMP%], .dashboard-grid--exercise-insights[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}@media(max-width:768px){.student-detail-page[_ngcontent-%COMP%]{padding:16px 12px 32px}.dashboard-grid--overview[_ngcontent-%COMP%], .dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.exercise-summary-metrics[_ngcontent-%COMP%]{justify-content:stretch}.exercise-summary-metrics[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%]{width:auto;min-width:0;max-width:none}.student-chart-container[_ngcontent-%COMP%]{height:280px;min-height:280px;max-height:280px}}@media(max-width:576px){.student-detail-page[_ngcontent-%COMP%]{padding:14px 8px 28px}.metrics-grid[_ngcontent-%COMP%], .performance-grid[_ngcontent-%COMP%], .call-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.panel-header[_ngcontent-%COMP%], .billing-header[_ngcontent-%COMP%]{align-items:stretch;flex-direction:column}.panel-header[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:0}.assignment-card[_ngcontent-%COMP%]{height:auto;min-height:200px}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%]{overflow:visible}.assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%], .assignment-card[_ngcontent-%COMP%] .assignment-card-fill[_ngcontent-%COMP%] > p[_ngcontent-%COMP%]{display:block;overflow:visible;-webkit-line-clamp:unset}}']})}}return e})();var oc=[{path:":organizationId/student/:inviteId",component:to},{path:":organizationId",component:En},{path:":organizationId/:type",component:En},{path:"groups/create/:organizationId",component:Ma},{path:"groups/edit/:organizationId/:groupId",component:Ia}],eo=(()=>{class e{static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275mod=me({type:e})}static{this.\u0275inj=de({imports:[Fe.forChild(oc),Fe]})}}return e})();var no=(()=>{class e{static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275mod=me({type:e})}static{this.\u0275inj=de({imports:[et,Ft,Fe,Qi,L,q,Ti,St,k,pt,he,Ze,Pi,dn,fe,ge]})}}return e})();var io=(()=>{class e{constructor(){this.state=f(T)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-billing-info-form-widget"]],decls:5,vars:2,consts:[[1,"tab-content","billing-tab"],[1,"billing-grid"],[1,"student-widget","billing-editor-widget"],[3,"inviteId","organizationId"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"mat-card",2)(3,"mat-card-content"),g(4,"app-student-subscription",3),a()()()()),n&2&&(l(4),p("inviteId",i.state.inviteId())("organizationId",i.state.organizationId()))},dependencies:[q,N,$,pn,mn],styles:["[_nghost-%COMP%]{display:block;min-width:0}.tab-content[_ngcontent-%COMP%]{min-width:0;padding-top:14px}.billing-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px}.billing-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0}.billing-editor-widget.mat-mdc-card[_ngcontent-%COMP%]{min-width:0;height:100%;overflow:hidden;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.billing-editor-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-width:0;height:100%;padding:16px;background:var(--mat-sys-surface)}.billing-editor-widget[_ngcontent-%COMP%] app-student-subscription[_ngcontent-%COMP%]{display:block;min-width:0}@media(max-width:992px){.billing-grid[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}"],changeDetection:0})}}return e})();var rc=(e,c)=>c.id;function sc(e,c){e&1&&(o(0,"div",6)(1,"mat-icon",3),r(2,"phone_disabled"),a(),o(3,"strong"),r(4,"No calls last week"),a(),o(5,"small"),r(6,"Completed calls will appear here with their notes and details."),a()())}
5function lc(e,c){if(e&1&&(o(0,"article",8)(1,"dl")(2,"div")(3,"dt"),r(4,"Date:"),a(),o(5,"dd"),r(6),a()(),o(7,"div")(8,"dt"),r(9,"Start time:"),a(),o(10,"dd"),r(11),a()(),o(12,"div")(13,"dt"),r(14,"Duration:"),a(),o(15,"dd"),r(16),a()(),o(17,"div")(18,"dt"),r(19,"Teachers:"),a(),o(20,"dd"),r(21),a()(),o(22,"div")(23,"dt"),r(24,"Students"),a(),o(25,"dd"),r(26),a()(),o(27,"div")(28,"dt"),r(29,"ID:"),a(),o(30,"dd"),r(31),a()()(),o(32,"mat-form-field",9)(33,"mat-label"),r(34,"Notes"),a(),g(35,"textarea",10),a(),o(36,"button",11),r(37,"Details"),a()()),e&2){let t=c.$implicit;l(6),_(t.date),l(5),_(t.startTime),l(5),_(t.duration),l(5),_(t.teacher),l(5),_(t.student),l(5),_(t.id),l(4),p("value",t.notes)}}function cc(e,c){if(e&1&&(o(0,"div",7),z(1,lc,38,7,"article",8,rc),a()),e&2){let t=m();l(),A(t.state.callHistory())}}var ao=(()=>{class e{constructor(){this.state=f(T)}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-call-history-widget"]],decls:13,vars:1,consts:[[1,"student-widget","call-history-panel"],[1,"student-widget-header"],[1,"mat-h2"],[1,"material-symbols-outlined"],["mat-stroked-button","","type","button"],["iconPositionEnd","",1,"material-symbols-outlined"],[1,"call-empty-state"],[1,"call-grid"],[1,"call-card"],["appearance","outline"],["matInput","","readonly","",3,"value"],["mat-flat-button","","color","primary","type","button"]],template:function(n,i){n&1&&(o(0,"mat-card",0)(1,"mat-card-content")(2,"div",1)(3,"h2",2)(4,"mat-icon",3),r(5,"history"),a(),r(6," Call history "),a(),o(7,"button",4),r(8," Last week "),o(9,"mat-icon",5),r(10," calendar_today "),a()()(),u(11,sc,7,0,"div",6)(12,cc,3,0,"div",7),a()()),n&2&&(l(11),h(i.state.callHistory().length===0?11:12))},dependencies:[L,F,q,N,$,St,it,Pt,k,S,pt,at],styles:["[_nghost-%COMP%]{display:block;min-width:0}.student-widget.mat-mdc-card[_ngcontent-%COMP%]{height:auto;min-width:0;overflow:hidden;isolation:isolate;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.student-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-width:0;padding:16px;background:var(--mat-sys-surface)}.student-widget-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.student-widget-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px}.student-widget-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.student-widget-header[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:168px;height:36px;justify-content:space-between;font-size:12px}.call-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.call-card[_ngcontent-%COMP%]{min-width:0;padding:12px;border-radius:12px;background:var(--mat-sys-surface-container-lowest)}.call-card[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{margin:0 0 10px}.call-card[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0;margin-bottom:5px;font-size:12px;line-height:17px}.call-card[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{flex:0 0 auto;color:var(--mat-sys-on-surface-variant);font-weight:500}.call-card[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--mat-sys-on-surface);text-align:right}.call-card[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{min-height:72px}.call-card[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%], .call-card[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%;min-width:0;max-width:100%}.call-empty-state[_ngcontent-%COMP%]{min-height:180px;display:grid;place-content:center;justify-items:center;gap:8px;padding:24px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.call-empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 64%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:20px}.call-empty-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:20px}.call-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:320px;font-size:12px;line-height:18px}@media(max-width:1200px){.call-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.student-widget-header[_ngcontent-%COMP%]{align-items:stretch;flex-direction:column}.student-widget-header[_ngcontent-%COMP%] button[mat-stroked-button][_ngcontent-%COMP%]{min-width:0}
5.call-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}"],changeDetection:0})}}return e})();var dc=(e,c)=>c.id,mc=(e,c)=>c.userId;function pc(e,c){e&1&&(o(0,"div",1),g(1,"mat-spinner",10),a())}function gc(e,c){if(e&1&&(o(0,"span",11),r(1),a()),e&2){let t=c.$implicit;Q("day--selected",t.selected)("day--outlined",t.outlined)("day--past",t.isPast),l(),D(" ",t.label," ")}}function uc(e,c){e&1&&(o(0,"div",7),r(1,"Classes are unavailable for this student."),a())}function hc(e,c){e&1&&(o(0,"div",8)(1,"mat-icon",3),r(2,"event_busy"),a(),o(3,"strong"),r(4,"Next classes are unavailable right now"),a(),o(5,"small"),r(6,"Try again later."),a()())}function fc(e,c){e&1&&(o(0,"div",9)(1,"mat-icon",3),r(2,"event_available"),a(),o(3,"strong"),r(4,"No classes this month"),a(),o(5,"small"),r(6,"Nothing else is scheduled for this student this month."),a()())}function xc(e,c){if(e&1&&(o(0,"span",18),g(1,"slingui-avatar",19),a()),e&2){let t=m().$implicit;lt("aria-label",t.name),l(),p("userId",t.userId)("width",22)("height",22)}}function yc(e,c){if(e&1&&u(0,xc,2,4,"span",18),e&2){let t=c.$index,n=m(3);h(t<n.visibleParticipantLimit?0:-1)}}function _c(e,c){if(e&1&&(o(0,"span",16),r(1),a()),e&2){let t=m().$implicit,n=m(2);lt("aria-label",t.participants.length-n.visibleParticipantLimit+" more participants"),l(),D("+",t.participants.length-n.visibleParticipantLimit,"")}}function vc(e,c){if(e&1&&(o(0,"div",13)(1,"div",14)(2,"strong"),r(3),a(),o(4,"div",15),z(5,yc,1,1,null,null,mc),u(7,_c,2,2,"span",16),a()(),o(8,"div",17)(9,"span"),r(10),a(),o(11,"small"),r(12),a()()()),e&2){let t=c.$implicit,n=m(2);Q("class-row--past",t.isPast),l(3),_(t.name),l(2),A(t.participants),l(2),h(t.participants.length>n.visibleParticipantLimit?7:-1),l(3),_(t.time),l(2),_(t.date)}}
5function Cc(e,c){if(e&1&&z(0,vc,13,6,"div",12,dc),e&2){let t=m();A(t.state.monthlyClasses())}}var oo=(()=>{class e{constructor(){this.state=f(Pe),this.visibleParticipantLimit=5}static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-classroom-next-classes-widget"]],decls:29,vars:2,consts:[[1,"student-widget","next-classes-panel","next-classes-panel--wide"],["aria-live","polite","aria-label","Loading next classes",1,"student-widget-loading-overlay"],[1,"mat-h2"],[1,"material-symbols-outlined"],["aria-label","Current month classes",1,"month-calendar"],[1,"day",3,"day--selected","day--outlined","day--past"],[1,"class-list","class-list--tall"],[1,"student-widget-state"],["role","alert",1,"student-widget-empty-state","student-widget-empty-state--error"],[1,"student-widget-empty-state"],["diameter","28"],[1,"day"],[1,"class-row",3,"class-row--past"],[1,"class-row"],[1,"class-copy"],["aria-label","Event participants",1,"class-participants"],[1,"class-participant-overflow"],[1,"class-time"],[1,"class-participant-avatar"],[3,"userId","width","height"]],template:function(n,i){n&1&&(o(0,"mat-card",0),u(1,pc,2,0,"div",1),o(2,"mat-card-content")(3,"h2",2)(4,"mat-icon",3),r(5,"event"),a(),r(6," Next classes "),a(),o(7,"div",4)(8,"span"),r(9,"S"),a(),o(10,"span"),r(11,"M"),a(),o(12,"span"),r(13,"T"),a(),o(14,"span"),r(15,"W"),a(),o(16,"span"),r(17,"T"),a(),o(18,"span"),r(19,"F"),a(),o(20,"span"),r(21,"S"),a(),z(22,gc,2,7,"span",5,Ge),a(),o(24,"div",6),u(25,uc,2,0,"div",7)(26,hc,7,0,"div",8)(27,fc,7,0,"div",9)(28,Cc,2,0),a()()()),n&2&&(l(),h(i.state.monthlyQuery.isFetching()?1:-1),l(21),A(i.state.monthDays()),l(3),h(i.state.canLoad()?i.state.monthlyQuery.isError()?26:i.state.monthlyClasses().length===0?27:28:25))},dependencies:[jt,Zt,q,N,$,k,S,G,R],styles:["[_nghost-%COMP%]{display:block;min-width:0;align-self:start;width:100%}.student-widget.mat-mdc-card[_ngcontent-%COMP%]{position:relative;height:auto;overflow:hidden;isolation:isolate;border:1px solid var(--mat-sys-outline-variant)!important;border-radius:16px;background:var(--mat-sys-surface);box-shadow:none!important}.student-widget[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{min-width:0;padding:16px;background:var(--mat-sys-surface)}h2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 14px;color:var(--mat-sys-primary);font-family:Tanker-Regular,Tanker,Syne,sans-serif!important;font-size:23px;font-weight:400!important;letter-spacing:.012em;line-height:28px}h2[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:18px;height:18px;font-size:18px}.month-calendar[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(2px,1.2vw,8px);align-items:center;min-width:0;margin:14px 0 16px;color:var(--mat-sys-on-surface);font-size:12px;text-align:center}.day[_ngcontent-%COMP%]{width:min(34px,100%);aspect-ratio:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;justify-self:center;border-radius:999px}.day--selected[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-primary);background:var(--mat-sys-primary);color:var(--mat-sys-on-primary)!important}.day--outlined[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-primary);color:var(--mat-sys-primary)}.day--past[_ngcontent-%COMP%]{opacity:.42}.day--past.day--outlined[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-primary) 42%,transparent);color:color-mix(in srgb,var(--mat-sys-primary) 52%,var(--mat-sys-on-surface-variant))}.class-list[_ngcontent-%COMP%]{min-width:0;display:grid;gap:0}.class-list--tall[_ngcontent-%COMP%]{max-height:460px;overflow-x:hidden;overflow-y:auto}.student-widget-loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:3;display:grid;place-items:center;border-radius:inherit;background:color-mix(in srgb,var(--mat-sys-surface) 86%,transparent);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}.student-widget-state[_ngcontent-%COMP%]{min-height:72px;display:grid;place-items:center;margin-top:4px;padding:14px;border:1px dashed var(--mat-sys-outline-variant);border-radius:12px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface-variant);font-size:12px;text-align:center}.student-widget-empty-state[_ngcontent-%COMP%]{min-height:112px;display:grid;place-content:center;justify-items:center;gap:6px;margin-top:4px;padding:20px;border:1px dashed color-mix(in srgb,var(--mat-sys-primary) 24%,var(--mat-sys-outline-variant));border-radius:12px;background:color-mix(in srgb,var(--mat-sys-primary-container) 18%,var(--mat-sys-surface));color:var(--mat-sys-on-surface-variant);text-align:center}.student-widget-empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--mat-sys-primary-container) 64%,var(--mat-sys-surface));color:var(--mat-sys-primary);font-size:18px}.student-widget-empty-state[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);font-size:14px;font-weight:600;line-height:20px}.student-widget-empty-state[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{max-width:280px;color:var(--mat-sys-on-surface-variant);font-size:12px;line-height:18px}.student-widget-empty-state--error[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--mat-sys-error) 42%,var(--mat-sys-outline-variant));background:color-mix(in srgb,var(--mat-sys-error-container) 48%,var(--mat-sys-surface))}.student-widget-empty-state--error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--mat-sys-error-container) 76%,var(--mat-sys-surface));color:var(--mat-sys-error)}.student-widget-empty-state--error[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .student-widget-empty-state--error[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--mat-sys-on-error-container)}.class-copy[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto}.class-participants[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;min-width:0;min-height:22px;margin-top:4px}
5.class-participant-avatar[_ngcontent-%COMP%]{display:inline-flex;line-height:0}.class-participant-avatar[_ngcontent-%COMP%] + .class-participant-avatar[_ngcontent-%COMP%]{margin-left:-5px}.class-participant-overflow[_ngcontent-%COMP%]{min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;margin-left:-5px;padding:0 5px;border:1px solid var(--mat-sys-surface);border-radius:999px;background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);font-size:10px;font-weight:600;line-height:1} .class-participant-avatar slingui-avatar .profile-avatar, .class-participant-avatar slingui-avatar img{display:block;border-radius:999px}.class-row--past[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .class-row--past[_ngcontent-%COMP%] .class-time[_ngcontent-%COMP%]{text-decoration:line-through}.class-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;padding:10px 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.class-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.class-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .class-time[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface);font-size:14px;font-weight:500;line-height:20px}.class-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{overflow-wrap:anywhere}.class-row[_ngcontent-%COMP%] small[_ngcontent-%COMP%], .class-time[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block;color:var(--mat-sys-on-surface-variant);font-size:11px;line-height:16px}.class-time[_ngcontent-%COMP%]{min-width:0;flex:0 1 auto;overflow-wrap:anywhere;text-align:right}"],changeDetection:0})}}return e})();var ro=(()=>{class e{static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275cmp=C({type:e,selectors:[["app-student-classroom-tab"]],decls:4,vars:0,consts:[[1,"tab-content","classroom-tab"],[1,"dashboard-grid","dashboard-grid--classroom"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1),g(2,"app-call-history-widget")(3,"app-classroom-next-classes-widget"),a()())},dependencies:[ao,oo],styles:["[_nghost-%COMP%]{display:block;min-width:0}.tab-content[_ngcontent-%COMP%]{padding-top:14px}.dashboard-grid[_ngcontent-%COMP%]{display:grid;gap:12px}.dashboard-grid[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0}.dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}@media(max-width:1200px){.dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:992px){.dashboard-grid--classroom[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}}"],changeDetection:0})}}return e})();ga([ha,fa,xa,ya]);var xx=(()=>{class e{static{this.\u0275fac=function(n){return new(n||e)}}static{this.\u0275mod=me({type:e})}static{this.\u0275inj=de({providers:[T,It,ie,wn,Me,_n,bn,Pe],imports:[et,ma,pa,dn,q,rn,G,k,Ce,pi,te,Jt,pt,he,Mt,en,Ze,ye,jt,ii,Ft,St,L,yn,vn,ro,io,Cn,Mn,no,un.forRoot({echarts:ua}),eo]})}}return e})();export{xx as StudentsModule};
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.