PageSourceSearch

https://ims.drmgrdu.ac.in/client/chunk-AVNV2Z3T.js

js drmgrdu.ac.in collected 2026-09-24 18:46:38 UTC 147,092 bytes, 1 lines download raw bytes

1import{a as Ce,b as rt,c as dt,d as lt,e as Vt,f as Se,g as ct,h as Nt}from"./chunk-IXJE675S.js";import"./chunk-UWTWGQZO.js";import"./chunk-2FQUVVO3.js";import{a as T}from"./chunk-GNCZ7NLE.js";import"./chunk-BMD2HLHR.js";import{a as Ct}from"./chunk-OXGSOEBO.js";import"./chunk-WXQS62KK.js";import{a as kt,b as Lt,c as xe}from"./chunk-EHRUXARM.js";import{a as he}from"./chunk-PFIAIK5J.js";import"./chunk-L4KS4O4D.js";import"./chunk-OBL3UMJK.js";import"./chunk-C342R6R4.js";import{d as pe,e as se,f as X,g as Z,h as ge}from"./chunk-V5KJRP2K.js";import"./chunk-57S6Q36M.js";import"./chunk-QEGAIP75.js";import"./chunk-3RDKMDGK.js";import"./chunk-3CO4C5KT.js";import{a as ot}from"./chunk-TGLJFD7R.js";import{a as $}from"./chunk-EEGLZW5Y.js";import{h as be}from"./chunk-4XHWYO6A.js";import"./chunk-JAVXKLPM.js";import"./chunk-A7DVSW7U.js";import{a as ue}from"./chunk-3KJJR4PR.js";import"./chunk-ABAWT23C.js";import"./chunk-IWOLENFE.js";import"./chunk-UWQZ6LHD.js";import{a as At}from"./chunk-7FBSWJHX.js";import{b as ve}from"./chunk-4DJXF7UW.js";import"./chunk-NDDBMTF2.js";import"./chunk-PP6OKG4J.js";import{b as at}from"./chunk-OOXBIU4P.js";import{a as le,f as it,g as I,l as ce,m as me}from"./chunk-RAZ6272N.js";import{c as ft}from"./chunk-D6CDOXMU.js";import{a as oe}from"./chunk-Q5YFQ62E.js";import"./chunk-Y7PLHQ6M.js";import{b as _e,e as fe}from"./chunk-QNJ3LBLE.js";import"./chunk-3R646RNR.js";import{d as J,e as Q}from"./chunk-PLPK6HII.js";import{G as re,H as de,c as vt,g as B,h as Dt,j as It,l as U,m as jt,z as Tt}from"./chunk-UFCZWRLF.js";import{a as ut}from"./chunk-7Q5L7ALI.js";import"./chunk-CARY4E7O.js";import"./chunk-2PT6A6VZ.js";import{$ as wt,Bc as j,Cc as P,Hb as w,Hc as ne,Ib as a,Ja as r,Jb as _,Ka as u,Kb as M,Lb as S,Mb as pt,Nc as N,Rc as ie,Sb as E,Tb as O,Ub as D,Va as s,Xb as L,Yb as F,Za as z,_a as l,ab as k,ec as V,fa as y,fc as xt,ga as Pt,gc as K,gd as _t,hd as Ot,id as nt,jc as st,jd as R,kb as i,kd as ae,lb as n,mb as f,md as ht,na as x,nb as H,oa as h,ob as q,pb as gt,qb as C,ub as b,va as Et,wb as p}from"./chunk-32W73H3G.js";import{a as te,b as ee,g as bt}from"./chunk-WWX6BADO.js";var zt=(()=>{class e{userService;router;route;modalService;loadingService;title="attendance";currentUser;constructor(t,d,o,c,g){this.userService=t,this.router=d,this.route=o,this.modalService=c,this.loadingService=g}ngOnInit(){this.getCurrentUser()}getCurrentUser(){this.userService.getCurrentUser().then(t=>{this.currentUser=t})}static \u0275fac=function(d){return new(d||e)(u(ft),u(nt),u(_t),u(I),u($))};static \u0275cmp=y({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(d,o){d&1&&f(0,"router-outlet")},dependencies:[Ot]})}return e})();function Ue(e,m){if(e&1&&(i(0,"div",12),a(1),n()),e&2){let t=p();r(),M("Time : ",t.value.stime+" - "+t.value.etime,"")}}function $e(e,m){if(e&1&&(i(0,"div",12),a(1),n()),e&2){let t=p();r(),_(t.value.unit)}}function We(e,m){e&1&&(i(0,"div",12),a(1,"-----"),n())}function He(e,m){if(e&1&&(i(0,"div",12),a(1),n()),e&2){let t=p();r(),_(t.value.topicscovered)}}function qe(e,m){e&1&&(i(0,"div"),a(1,"-----"),n())}function Ke(e,m){if(e&1&&(i(0,"div",13),a(1),n()),e&2){let t=p();r(),_(t.value.pedagogyString)}}function Ge(e,m){e&1&&(i(0,"div",13),a(1,"-----"),n())}function Je(e,m){if(e&1&&(i(0,"div",13),a(1),n()),e&2){let t=p();r(),_(t.value.comments)}}function Qe(e,m){e&1&&(i(0,"div",13),a(1,"-----"),n())}function Xe(e,m){if(e&1&&(i(0,"div",13),a(1),n()),e&2){let t=p();r(),_(t.value.loggedby)}}function Ze(e,m){e&1&&(i(0,"div",13),a(1,"-----"),n())}var ye=(()=>{class e{modalService;activeModal;value;event;constructor(t,d){this.modalService=t,this.activeModal=d}ngOnInit(){this.showEventDetails(this.value)}showEventDetails(t){console.log(t)}close(){this.activeModal.close()}static \u0275fac=function(d){return new(d||e)(u(I),u(it))};static \u0275cmp=y({type:e,selectors:[["app-popup"]],inputs:{value:"value"},decls:48,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],["type","button","aria-label","Close",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"row","m-1"],[1,"col-md-6"],[1,"text-monospace"],["class","p-1",4,"ngIf"],[4,"ngIf"],["class","pl-1",4,"ngIf"],[1,"row","m-event1"],[1,"p-1"],[1,"pl-1"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"h4"),a(3),n(),i(4,"button",2),b("click",function(){return o.close()}),i(5,"span",3),a(6,"\xD7"),n()()(),i(7,"div",4)(8,"div",5)(9,"div",6)(10,"span",7),a(11,"Time"),n()(),i(12,"div",6),s(13,Ue,2,1,"div",8),n(),i(14,"div",6)(15,"span",7),a(16,"Unit"),n()(),i(17,"div",6),s(18,$e,2,1,"div",8)(19,We,2,0,"div",8),n()(),i(20,"div",5)(21,"div",6)(22,"span",7),a(23,"Topics Covered"),n()(),i(24,"div",6),s(25,He,2,1,"div",8)(26,qe,2,0,"div",9),n()(),i(27,"div",5)(28,"div",6)(29,"span",7),a(30,"Pedagogy"),n()(),i(31,"div",6),s(32,Ke,2,1,"div",10)(33,Ge,2,0,"div",10),n()(),i(34,"div",11)(35,"div",6)(36,"span",7),a(37,"Comments"),n()(),i(38,"div",6),s(39,Je,2,1,"div",10)(40,Qe,2,0,"div",10),n()(),i(41,"div",5)(42,"div",6)(43,"span",7),a(44,"Attendance provided by"),n()(),i(45,"div",6),s(46,Xe,2,1,"div",10)(47,Ze,2,0,"div",10),n()()()()),d&2&&(r(3),S("",o.value.subjectName," 
1(",o.value.subjectCode,")"),r(10),l("ngIf",o.value.stime!=null&&o.value.etime!=null),r(5),l("ngIf",o.value.unit!=null),r(),l("ngIf",o.value.unit==null),r(6),l("ngIf",o.value.topicscovered!=null),r(),l("ngIf",o.value.topicscovered==null),r(6),l("ngIf",o.value.pedagogy!=null),r(),l("ngIf",o.value.pedagogy==null),r(6),l("ngIf",o.value.comments!=null),r(),l("ngIf",o.value.comments==null),r(6),l("ngIf",o.value.loggedby!=null),r(),l("ngIf",o.value.loggedby==null))},dependencies:[P]})}return e})();function tn(e,m){if(e&1&&(i(0,"div",29)(1,"small"),a(2,"Attendance by"),n(),i(3,"div")(4,"span",33),a(5),n()()()),e&2){let t=p(2).$implicit;r(5),_(t.loggedby)}}function en(e,m){if(e&1){let t=C();i(0,"div",23)(1,"div",24)(2,"span",25),a(3),n(),i(4,"small"),f(5,"i",26),a(6,"\xA0\xA0Time"),n(),i(7,"h6",27),a(8),n(),i(9,"small"),f(10,"i",28),a(11,"\xA0\xA0Subject"),n(),i(12,"div",29),a(13),n(),s(14,tn,6,1,"div",30),i(15,"div",31)(16,"a",32),b("click",function(){x(t);let o=p().$implicit,c=p(2);return h(c.showEventDetailsPopup(o))}),a(17,"more info"),n()()()()}if(e&2){let t=p(),d=t.$implicit,o=t.index;r(3),M("#",o+1,""),r(5),_(d.stime+" - "+d.etime),r(5),_(d.subjectName+"("+d.subjectCode+")"),r(),l("ngIf",d.eStatus!=""&&d.eStatus!=null)}}function nn(e,m){if(e&1&&(i(0,"div",29)(1,"small"),a(2,"Attendance by"),n(),i(3,"div")(4,"span",33),a(5),n()()()),e&2){let t=p(2).$implicit;r(5),_(t.loggedby)}}function an(e,m){if(e&1){let t=C();i(0,"div",23)(1,"div",34)(2,"span",25),a(3),n(),i(4,"small"),f(5,"i",26),a(6,"\xA0\xA0Time"),n(),i(7,"h6",27),a(8),n(),i(9,"small"),f(10,"i",28),a(11,"\xA0\xA0Subject"),n(),i(12,"div",29),a(13),n(),s(14,nn,6,1,"div",30),i(15,"div",31)(16,"a",32),b("click",function(){x(t);let o=p().$implicit,c=p(2);return h(c.showEventDetailsPopup(o))}),a(17,"more info"),n()()()()}if(e&2){let t=p(),d=t.$implicit,o=t.index;r(3),M("#",o+1,""),r(5),_(d.stime+" - "+d.etime),r(5),_(d.subjectName+"("+d.subjectCode+")"),r(),l("ngIf",d.eStatus!=""&&d.eStatus!=null)}}function on(e,m){if(e&1){let t=C();i(0,"div",23)(1,"div",35)(2,"span",25),a(3),n(),i(4,"small"),f(5,"i",26),a(6,"\xA0\xA0Time"),n(),i(7,"h6",27),a(8),n(),i(9,"small"),f(10,"i",28),a(11,"\xA0\xA0Subject"),n(),i(12,"div",29),a(13),n(),i(14,"div",29)(15,"small"),a(16,"Attendance by"),n(),i(17,"div")(18,"span",36),a(19,"Pending"),n()()(),i(20,"div",37)(21,"a",32),b("click",function(){x(t);let o=p().$implicit,c=p(2);return h(c.showEventDetailsPopup(o))}),a(22,"more info"),n()()()()}if(e&2){let t=p(),d=t.$implicit,o=t.index;r(3),M("#",o+1,""),r(5),_(d.stime+" - "+d.etime),r(5),_(d.subjectName+"("+d.subjectCode+")")}}function rn(e,m){if(e&1&&(i(0,"div",21),s(1,en,18,4,"div",22)(2,an,18,4,"div",22)(3,on,23,3,"div",22),n()),e&2){let t=m.$implicit;r(),l("ngIf",t.eStatus=="PRESENT"),r(),l("ngIf",t.eStatus=="ABSENT"),r(),l("ngIf",t.eStatus==""||t.eStatus==null)}}function dn(e,m){if(e&1&&(i(0,"div",18)(1,"div",38)(2,"div",23)(3,"div",35)(4,"div",39)(5,"small"),f(6,"i",40),a(7,"\xA0\xA0Attendance Status"),n(),i(8,"div",41)(9,"span",36),a(10,"No information available, please contact department for more details"),n()()(),i(11,"div",31)(12,"small",42),a(13),n()()()()()()),e&2){let t=p(2);r(13),M("",t.getPendingEventsCount()," pending attendance record(s)")}}function ln(e,m){if(e&1&&(i(0,"div")(1,"div",18),s(2,rn,4,3,"div",19),n(),s(3,dn,14,1,"div",20),n()),e&2){let t=p();r(2),l("ngForOf",t.events),r(),l("ngIf",t.hasPendingEvents())}}function cn(e,m){e&1&&(i(0,"div",43),f(1,"i",40),a(2," No attendance records found for the selected date. "),n())}var Pe=(()=>{class e{userService;modalService;router;toastr;eventSerive;datePipe;currentUser;singleUser;dateCtrl;fromDate;toDate;events;event;showEvents=!1;hasSearched=!1;constructor(t,d,o,c,g,v){this.userService=t,this.modalService=d,this.router=o,this.toastr=c,this.eventSerive=g,this.datePipe=v}ngOnInit(){this.getCurrentUser(),this.getSingleUser()}getCurrentUser(){this.userService.getCurrentUser().then(t=>{this.currentUser=t})}getSingleUser(){this.userService.getSingleUser().then(t=>{this.singleUser=t})}getEvents(t){this.datePipe.transform(t,"yyyy/MM/dd"),this.fromDate=this.datePipe.transform(t,"dd-MMM-yyyy"),this.toDate=this.datePipe.transform(t,"dd-MMM-yyyy"),console.log(this.fromDate+"vfdgfdgvdf"+this.toDate),this.eventSerive.getEventAttendents(this.fromDate,this.toDate).then(d=>{this.events=d,this.showEvents=this.events&&this.events.length>0,this.hasSearched=!0})}showEventDetailsPopup(t){let d=this.modalService.open(ye,{size:"lg"});d.componentInstance.value=t}hasPendingEvents(){return this.events&&this.events.some(t=>t.eStatus==""||t.eStatus==null)}getPendingEventsCount(){return this.events?this.events.filter(t=>t.eStatus==""||t.eStatus==null).length:0}static \u0275fac=function(d){return new(d||e)(u(ft),u(I),u(nt),u(ut),u(T),u(N))};static \u0275cmp=y({type:e,selectors:[["app-attendance"]],decls:27,vars:3,consts:[[1,"attendance-container"],[1,"mb-2"],[1,"attendance-notice","mb-2"],[1,"fa","fa-exclamation-triangle"],[1,"row","mb-2"],[1,"col-md-5","col-sm-12","text-md-right","text-sm-left","col-form-label"],[1,"col-md-2","col-sm-8"],["type","text","name","dateCtrl","placeholder","Select Date","bsDatepicker","",1,"form-control",3,"ngModelChange","ngModel"],[1,"col-md-1","col-sm-4"],[1,"btn","btn-success","w-100",3,"click"],[4,"ngIf"],["class","alert alert-info mb-2",4,"ngIf"],[1,"row","justify-content-center","mt-2"],[1,"col-lg-8","col-md-10","col-sm-12"],[1,"row","justify-content-center"],[1,"col-lg-2","col-md-3","col-sm-4","col-4","p-1","bg-success","text-center","text-white","rounded","mb-1","mb-lg-0","mx-1"],[1,"col-lg-2","col-md-3","col-sm-4","col-4","p-1","bg-warning","text-center","text-dark","rounded","mb-1","mb-lg-0","mx-1"],[1,"col-lg-2","col-md-3","col-sm-4","col-4","p-1","bg-danger","text-center","text-white","rounded","mb-1","mb-lg-0","mx-1"],[1,"row"],["class","col-lg-4 col-md-6 col-sm-12 mb-2",4,"ngFor","ngForOf"],["class","row",4,"ngIf"],[1,"col-lg-4","col-md-6","col-sm-12","mb-2"],["class","card mb-2",4,"ngIf"],[1,"card","mb-2"],[1,"card-body","present-card"],[1,"badge","bg-dark","position-absolute",2,"top","0","right","0","border-radius","0 0 0.5rem 0.5rem","padding","4px 8px","font-size","0.8rem"],[1,"fa","fa-clock-o"],[1,"card-title","mb-1"],[1,"fa","fa-book"],[1,"mb-1"],["class","mb-1",4,"ngIf"],[1,"text-end"],["data-toggle","modal","href","",3,"click"],[1,"badge","badge-light"],[1,"card-body","absent-card"],[1,"card-body","pending-card"],[1,"badge","badge-warning"],[1,"text-right"],[1,"col-12"],[1,"pending-message","mb-2"],[1,"fa","fa-info-circle"],[1,"mt-1"],[1,"text-muted"],[1,"alert","alert-info","mb-2"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"h4",1),a(2,"Attendance"),n(),i(3,"div",2),f(4,"i",3),i(5,"strong"),a(6,"Important:"),n(),a(7," If you find any attendance marked incorrectly, submit a correction request to your department within 5 days. Requests after 5 days will not be considered. "),n(),i(8,"div",4)(9,"label",5),a(10,"Date:"),n(),i(11,"div",6)(12,"input",7),D("ngModelChange",function(g){return O(o.dateCtrl,g)||(o.dateCtrl=g),g}),n()(),i(13,"div",8)(14,"button",9),b("click",function(){return o.getEvents(o.dateCtrl)}),a(15,"View"),n()()(),s(16,ln,4,2,"div",10)(17,cn,3,0,"div",11),i(18,"div",12)(19,"div",13)(20,"div",14)(21,"div",15),a(22,"Present"),n(),i(23,"div",16),a(24,"Pending"),n(),i(25,"div",17),a(26,"Absent"),n()()()()()),d&2&&(r(12),E("ngModel",o.dateCtrl),r(4),l("ngIf",o.showEvents),r(),l("ngIf",o.hasSearched&&!o.showEvents))},dependencies:[vt,B,U,j,P,pe,se],styles:[".attendance-container[_ngcontent-%COMP%]{padding:1rem;background:#f8f9fa;border-radius:.5rem;box-shadow:0 2px 4px #0000001a}.attendance-notice[_ngcontent-%COMP%]{background:linear-gradient(135deg,#fff3cd,#ffeaa7);
1border:2px solid #f39c12;border-radius:8px;padding:12px 16px;color:#8b4513;font-weight:500;box-shadow:0 2px 6px #f39c1233;position:relative}.attendance-notice[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#e74c3c;margin-right:8px;font-size:1.1em}.attendance-notice[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#d35400;font-weight:600}.present-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border-radius:8px;box-shadow:0 2px 8px #28a7454d}.absent-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#dc3545,#e74c3c);color:#fff;border-radius:8px;box-shadow:0 2px 8px #dc35454d}.pending-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#ffc107,#fd7e14);color:#fff;border-radius:8px;box-shadow:0 2px 8px #ffc1074d}.pending-message[_ngcontent-%COMP%]{background:#ffffff1a;border-radius:6px;padding:8px;border:1px solid rgba(255,255,255,.2)}.pending-message[_ngcontent-%COMP%]   .badge-warning[_ngcontent-%COMP%]{background-color:#ffffffe6;color:#856404;font-size:.75rem;padding:4px 8px;border-radius:4px}@media (max-width: 768px){.attendance-container[_ngcontent-%COMP%]{padding:.75rem;overflow-x:hidden}.card-body[_ngcontent-%COMP%]{padding:.75rem;word-wrap:break-word;overflow-wrap:break-word}.badge[_ngcontent-%COMP%]{font-size:.7rem!important;padding:3px 6px!important}.card-title[_ngcontent-%COMP%]{font-size:.9rem;margin-bottom:.25rem}.alert[_ngcontent-%COMP%]{font-size:.85rem;padding:.5rem}.attendance-notice[_ngcontent-%COMP%]{padding:10px 12px;font-size:.9rem;word-wrap:break-word}.form-control[_ngcontent-%COMP%]{font-size:.9rem}.btn[_ngcontent-%COMP%]{font-size:.85rem;padding:.4rem .8rem}.pending-message[_ngcontent-%COMP%]{padding:6px 8px;font-size:.8rem}.pending-message[_ngcontent-%COMP%]   .badge-warning[_ngcontent-%COMP%]{font-size:.7rem;padding:3px 6px;white-space:normal;word-wrap:break-word}}@media (max-width: 576px){.attendance-container[_ngcontent-%COMP%]{padding:.5rem;overflow-x:hidden}.card-body[_ngcontent-%COMP%]{padding:.5rem;word-wrap:break-word;overflow-wrap:break-word}.card-title[_ngcontent-%COMP%]{font-size:.85rem}.alert[_ngcontent-%COMP%]{font-size:.8rem;padding:.4rem}.attendance-notice[_ngcontent-%COMP%]{padding:8px 10px;font-size:.85rem;word-wrap:break-word}.form-group.row[_ngcontent-%COMP%]{margin:.25rem}.form-group.row[_ngcontent-%COMP%]   .col-form-label[_ngcontent-%COMP%]{margin-bottom:.25rem}.pending-message[_ngcontent-%COMP%]{padding:4px 6px;font-size:.75rem}.pending-message[_ngcontent-%COMP%]   .badge-warning[_ngcontent-%COMP%]{font-size:.65rem;padding:2px 4px;white-space:normal;word-wrap:break-word;line-height:1.2}}@media (min-width: 769px){.card[_ngcontent-%COMP%]{transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.card[_ngcontent-%COMP%]:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000026}}.card.mb-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.card-body[_ngcontent-%COMP%]   small[_ngcontent-%COMP%]{font-weight:500;color:#ffffffe6}.card-body[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]{color:#fff;font-weight:500}.btn-success[_ngcontent-%COMP%]{background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:hover{background-color:#218838;border-color:#1e7e34}.attendance-container[_ngcontent-%COMP%]   .row.justify-content-center[_ngcontent-%COMP%]   .col-lg-2[_ngcontent-%COMP%]{font-size:.85rem;font-weight:500}"]})}return e})();function mn(e,m){e&1&&(i(0,"span"),f(1,"span",8),a(2,"Loading..."),n())}function pn(e,m){if(e&1&&(i(0,"tr")(1,"td"),a(2),n(),i(3,"td"),a(4),n(),i(5,"td"),a(6),n(),i(7,"td"),a(8),n()()),e&2){let t=m.$implicit,d=m.index;r(2),_(d+1),r(2),_(t.departmentName),r(2),_(t.day),r(2),_(t.time)}}function sn(e,m){if(e&1&&(i(0,"div",9)(1,"div",10)(2,"table",11)(3,"thead")(4,"tr")(5,"th",12),a(6,"#"),n(),i(7,"th",12),a(8,"Department"),n(),i(9,"th",12),a(10,"Day(s)"),n(),i(11,"th",12),a(12,"Time"),n()()(),i(13,"tbody"),s(14,pn,9,4,"tr",13),n()()()()),e&2){let t=p();r(14),l("ngForOf",t.deadLine[0].timeLimit)}}var Ft=(()=>{class e{eventService;ngmodel;activeModal;deadLine;loading=!1;constructor(t,d,o){this.eventService=t,this.ngmodel=d,this.activeModal=o}ngOnInit(){this.getDeadLine()}getDeadLine(){this.loading=!0,this.eventService.getAttendanceDeadline().then(t=>{this.deadLine=t,this.loading=!1})}close(){this.activeModal.close()}static \u0275fac=function(d){return new(d||e)(u(T),u(I),u(it))};static \u0275cmp=y({type:e,selectors:[["app-attendance-deadline"]],decls:9,vars:2,consts:[[1,"container"],[1,"modal-header"],[1,"fs-6","fw-semibold"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close",3,"click"],[1,"row","my-3","px-5","text-center"],[1,"col-12"],[4,"ngIf"],["class","row m-2",4,"ngIf"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm","me-2"],[1,"row","m-2"],[1,"table-responsive"],[1,"table","table-striped","table-hover"],["scope","col"],[4,"ngFor","ngForOf"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"span",2),a(3,"Attendance DeadLine Info"),n(),i(4,"button",3),b("click",function(){return o.close()}),n()(),i(5,"div",4)(6,"div",5),s(7,mn,3,0,"span",6),n()(),s(8,sn,15,1,"div",7),n()),d&2&&(r(7),l("ngIf",o.loading),r(),l("ngIf",o.deadLine!=null))},dependencies:[j,P],styles:[".container[_ngcontent-%COMP%]{margin:0!important;padding:0!important;max-width:100%!important}.modal-header[_ngcontent-%COMP%]{padding:16px 20px!important;border-bottom:1px solid #dee2e6!important;background-color:#f8f9fa!important;border-radius:12px 12px 0 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.2rem!important;font-weight:600!important;color:#2c3e50!important;margin:0!important}.btn-close[_ngcontent-%COMP%]{background:none!important;border:none!important;font-size:1.5rem!important;color:#6c757d!important;padding:0!important;width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;transition:all .3s ease!important}.btn-close[_ngcontent-%COMP%]:hover{background-color:#e9ecef!important;color:#495057!important}.row.my-3.px-5.text-center[_ngcontent-%COMP%]{margin:20px 0!important;padding:0 20px!important}.col-12[_ngcontent-%COMP%]{padding:16px!important;background-color:#f8f9fa!important;border-radius:8px!important;border:1px solid #dee2e6!important}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem!important;height:1rem!important;color:#007bff!important}.row.m-2[_ngcontent-%COMP%]{margin:16px!important}.table[_ngcontent-%COMP%]{border-radius:8px!important;overflow:hidden!important;box-shadow:0 2px 8px #0000001a!important;margin-bottom:0!important}.table-striped[_ngcontent-%COMP%] > tbody[_ngcontent-%COMP%] > tr[_ngcontent-%COMP%]:nth-of-type(odd) > td[_ngcontent-%COMP%]{background-color:#00000005!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f8f9fa!important;border-bottom:2px solid #dee2e6!important;font-weight:600!important;color:#2c3e50!important;padding:12px 8px!important;font-size:.85rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:12px 8px!important;vertical-align:middle!important;font-size:.85rem!important;border-bottom:1px solid #dee2e6!important}@media (max-width: 768px){.modal-header[_ngcontent-%COMP%]{padding:12px 16px!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.1rem!important}.btn-close[_ngcontent-%COMP%]{width:28px!important;height:28px!important;font-size:1.3rem!important}.row.my-3.px-5.text-center[_ngcontent-%COMP%]{margin:16px 0!important;padding:0 16px!important}.col-12[_ngcontent-%COMP%]{padding:12px!important;font-size:.9rem!important}.row.m-2[_ngcontent-%COMP%]{margin:12px!important}.table-responsive[_ngcontent-%COMP%]{border-radius:8px!important;box-shadow:0 2px 8px #0000001a!important}.table[_ngcontent-%COMP%]{font-size:.8rem!important;min-width:400px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px 6px!important;font-size:.75rem!important}}@media (max-width: 480px){.modal-header[_ngcontent-%COMP%]{padding:10px 12px!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important}.btn-close[_ngcontent-%COMP%]{width:24px!important;height:24px!important;font-size:1.1rem!important}.row.my-3.px-5.text-center[_ngcontent-%COMP%]{margin:12px 0!important;padding:0 12px!important}.col-12[_ngcontent-%COMP%]{padding:10px!important;font-size:.85rem!important}.row.m-2[_ngcontent-%COMP%]{margin:8px!important}.table[_ngcontent-%COMP%]{font-size:.75rem!important;min-width:350px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 4px!important;font-size:.7rem!important}}@media (hover: none) and (pointer: coarse){.btn-close[_ngcontent-%COMP%]:hover{background-color:transparent!important;color:#6c757d!important}}*[_ngcontent-%COMP%]{box-sizing:border-box!important}.container[_ngcontent-%COMP%], .row[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%]{overflow:visible!important}.btn-close[_ngcontent-%COMP%]:focus{outline:2px solid #007bff!important;outline-offset:2px!important}@media (max-width: 768px){.table-responsive[_ngcontent-%COMP%]{-webkit-overflow-scrolling:touch!important;overflow-x:auto!important}}@media (max-width: 768px){.modal-dialog[_ngcontent-%COMP%]{margin:8px!important;max-width:calc(100% - 16px)!important}.modal-content[_ngcontent-%COMP%]{border-radius:12px!important}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-border[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 1s linear infinite!important}.modal-header[_ngcontent-%COMP%]{display:flex!important;justify-content:space-between!important;align-items:center!important}@media (hover: hover) and (pointer: fine){.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{background-color:#007bff0d!important}}"]})}return e})();var gn=()=>["/attendance/staffHome/myAttendance"],_n=()=>({exact:!0}),fn=()=>["/attendance/staffHome/subAttendance"],un=()=>["/attendance/staffHome/staffAttendance"],vn=()=>["/attendance/staffHome/deptAttendance"],bn=()=>[],xn=()=>["/attendanceview"];function hn(e,m){if(e&1){let t=C();i(0,"button",24),b("click",function(){x(t);let o=p();return h(o.getDeadLine())}),f(1,"i",25),a(2," Attendance deadline "),n()}}function Cn(e,m){e&1&&(i(0,"a",26),f(1,"i",27),n())}function Sn(e,m){e&1&&(i(0,"a",14)(1,"span",28),f(2,"i",29),n(),i(3,"span"),a(4,"View Attendance"),n()()),e&2&&l("routerLink",L(1,xn))}var Ee=(()=>{class e{userService;router;loadingService;route;modalService;currentUser;singleUser;constructor(t,d,o,c,g){this.userService=t,this.router=d,this.loadingService=o,this.route=c,this.modalService=g}ngOnInit(){this.getCurrentUser(),this.currentUser={}
1,this.getSingleUser(),this.singleUser={}}getCurrentUser(){this.userService.getCurrentUser().then(t=>{this.currentUser=t})}getSingleUser(){this.loadingService.showLoading(),this.userService.getSingleUser().then(t=>{this.singleUser=t,this.loadingService.hideLoading()})}getDeadLine(){let t=this.modalService.open(Ft,{size:"lg",backdrop:"static"})}static \u0275fac=function(d){return new(d||e)(u(ft),u(nt),u($),u(_t),u(I))};static \u0275cmp=y({type:e,selectors:[["app-attendance-home"]],decls:36,vars:14,consts:[[1,"jp-module-page-shell","jp-admin-dashboard-shell"],[1,"jp-admin-header","mb-2"],[1,"d-flex","flex-wrap","justify-content-between","align-items-center","gap-2","w-100"],[1,"jp-admin-title-row"],["aria-hidden","true",1,"jp-admin-page-icon","jp-admin-page-icon--attendance"],[1,"fa","fa-calendar-check-o"],[1,"jp-ims-page-heading","mb-0"],[1,"jp-attendance-header-actions","d-flex","flex-wrap","align-items-center","gap-2"],["type","button","class","jp-btn jp-btn-secondary btn-sm",3,"click",4,"ngIf"],["routerLink","/attendance/attSettings","class","jp-btn jp-btn-secondary btn-sm","aria-label","Attendance settings",4,"ngIf"],[1,"jp-admin-tab-toolbar"],["role","tablist",1,"jp-ims-admin-tabs","nav","nav-tabs","border-0"],["routerLinkActive","active","role","tab",1,"nav-link","jp-admin-tab","jp-admin-tab--attendance",3,"routerLink","routerLinkActiveOptions"],["aria-hidden","true",1,"jp-admin-tab-icon","jp-admin-tab-icon--attendance"],["routerLinkActive","active","role","tab",1,"nav-link","jp-admin-tab",3,"routerLink"],["aria-hidden","true",1,"jp-admin-tab-icon","jp-admin-tab-icon--obe"],[1,"fa","fa-book"],["aria-hidden","true",1,"jp-admin-tab-icon","jp-admin-tab-icon--staff-leave"],[1,"fa","fa-users"],["routerLinkActive","active","role","tab",1,"nav-link","jp-admin-tab","jp-admin-tab--faculty",3,"routerLink"],["aria-hidden","true",1,"jp-admin-tab-icon","jp-admin-tab-icon--faculty"],[1,"fa","fa-building"],["routerLinkActive","active","class","nav-link jp-admin-tab","role","tab",3,"routerLink",4,"ngIf"],[1,"jp-module-page","jp-admin-content"],["type","button",1,"jp-btn","jp-btn-secondary","btn-sm",3,"click"],["aria-hidden","true",1,"fa","fa-clock-o","me-1"],["routerLink","/attendance/attSettings","aria-label","Attendance settings",1,"jp-btn","jp-btn-secondary","btn-sm"],["aria-hidden","true",1,"fa","fa-cog"],["aria-hidden","true",1,"jp-admin-tab-icon","jp-admin-tab-icon--event"],[1,"fa","fa-eye"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"header",1)(2,"div",2)(3,"div",3)(4,"span",4),f(5,"i",5),n(),i(6,"h1",6),a(7,"Attendance"),n()(),i(8,"div",7),s(9,hn,3,0,"button",8)(10,Cn,2,0,"a",9),n()()(),i(11,"div",10)(12,"nav",11)(13,"a",12)(14,"span",13),f(15,"i",5),n(),i(16,"span"),a(17,"My Attendance"),n()(),i(18,"a",14)(19,"span",15),f(20,"i",16),n(),i(21,"span"),a(22,"Subject"),n()(),i(23,"a",14)(24,"span",17),f(25,"i",18),n(),i(26,"span"),a(27,"Staff"),n()(),i(28,"a",19)(29,"span",20),f(30,"i",21),n(),i(31,"span"),a(32,"Department"),n()(),s(33,Sn,5,2,"a",22),n()(),i(34,"main",23),f(35,"router-outlet"),n()()),d&2&&(r(9),l("ngIf",(o.currentUser==null?null:o.currentUser.userType)=="HOD"||(o.currentUser==null?null:o.currentUser.userType)=="FACULTY"),r(),l("ngIf",(o.currentUser==null?null:o.currentUser.userType)=="ADMIN"),r(3),l("routerLink",L(8,gn))("routerLinkActiveOptions",L(9,_n)),r(5),l("routerLink",L(10,fn)),r(5),l("routerLink",L(11,un)),r(5),l("routerLink",L(12,vn)),r(5),l("ngIf",(o.currentUser==null?null:o.currentUser.userType)=="HOD"||((o.currentUser==null?null:o.currentUser.roles)||L(13,bn)).includes("ACADEMICADMIN")))},dependencies:[Ot,R,ae,P],styles:[".jp-admin-dashboard-shell[_ngcontent-%COMP%]   .jp-admin-page-icon--attendance[_ngcontent-%COMP%]{--jp-admin-icon-1: #0e7490;--jp-admin-icon-2: #0891b2;--jp-admin-icon-3: #155e75}.jp-attendance-header-actions[_ngcontent-%COMP%]   .jp-btn[_ngcontent-%COMP%]{white-space:nowrap}.jp-admin-header[_ngcontent-%COMP%]   .jp-admin-title-row[_ngcontent-%COMP%]{min-width:0}@media (max-width: 575.98px){.jp-admin-header[_ngcontent-%COMP%]   .jp-ims-page-heading[_ngcontent-%COMP%]{font-size:1.125rem}}"]})}return e})();function yn(e,m){if(e&1&&(i(0,"ng-option",27),a(1),n()),e&2){let t=m.$implicit;l("value",t.id),r(),S("",t.degreeName," -",t.departmentName," ")}}function wn(e,m){e&1&&(i(0,"span",28),a(1," Department required "),n())}function Pn(e,m){if(e&1&&(i(0,"ng-option",27),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),M("",t," ")}}function En(e,m){e&1&&(i(0,"span",28),a(1," Day required "),n())}function On(e,m){e&1&&(i(0,"span",28),a(1," Time required "),n())}var Rt=(()=>{class e{loading;departmentService;activeModal;toasterService;eventService;value;reload=new Et;departments;days;timeLimit={};attConfigData;constructor(t,d,o,c,g){this.loading=t,this.departmentService=d,this.activeModal=o,this.toasterService=c,this.eventService=g}ngOnInit(){this.onload(),this.days=[0,1,2,3,4,5,10,15,20,25,30,45,60,90,180],this.timeLimit.time="12:00 AM"}onload(){this.loading.showLoading(),this.departmentService.getDepartment().then(t=>{this.departments=t,this.loading.hideLoading()})}addTimeLimit(t){if(this.value.timeLimit==null&&(this.value.timeLimit=[]),t){for(var d=0;d<this.value.timeLimit.length;d++)this.timeLimit.departmentId==this.value.timeLimit[d].departmentId&&this.value.timeLimit.splice(d,1);this.value.timeLimit.push(this.timeLimit),this.insert()}}insert(){this.value.id==null||this.value.id==null?this.eventService.createAttTimeLimit(this.value).then(t=>{this.attConfigData=t,this.toasterService.success("Changes Added Sucessfully.")}):this.eventService.updateAttTimeLimit(this.value).then(t=>{this.attConfigData=t,this.reload.emit(),this.toasterService.success("Changes Added Sucessfully.")}),this.activeModal.close()}close(){this.activeModal.close()}static \u0275fac=function(d){return new(d||e)(u($),u(at),u(it),u(ut),u(T))};static \u0275cmp=y({type:e,selectors:[["app-attendance-time-limit"]],inputs:{value:"value"},outputs:{reload:"reload"},decls:46,vars:11,consts:[["createAttSetting","ngForm"],["departmentId","ngModel"],["day","ngModel"],["time","ngModel"],["TimePicker",""],[1,"container"],[1,"modal-header"],[1,"fs-6","fw-semibold"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close",3,"click"],[1,"modal-body"],[1,"form"],[1,"row","mt-4"],[1,"col-4","text-end"],["for","exampleDataList",1,"form-label"],[1,"col-4"],["name","departmentId","ngModel","","required","",3,"ngModelChange","ngModel","clearable"],["value","",3,"disabled"],[3,"value",4,"ngFor","ngForOf"],["style","color: red;",4,"ngIf"],[1,"col-2"],["name","day","ngModel","","required","",3,"ngModelChange","ngModel","clearable"],[1,"col-2","text-end"],[1,"col-3"],["type","text","name","time","ngModel","","required","","readonly","",1,"form-control",3,"ngModelChange","ngModel","ngxTimepicker"],[1,"row","mt-3","px-5","text-center"],[1,"col-12"],["type","submit",1,"btn","btn-success",3,"click"],[3,"value"],[2,"color","red"]],template:function(d,o){if(d&1){let c=C();i(0,"div",5)(1,"div",6)(2,"span",7),a(3,"Time Setting"),n(),i(4,"button",8),b("click",function(){return x(c),h(o.close())}),n()(),i(5,"div",9)(6,"form",10,0)(8,"div",11)(9,"div",12)(10,"label",13)(11,"span",7),a(12,"Degree & Department :"),n()()(),i(13,"div",14)(14,"ng-select",15,1),D("ngModelChange",function(v){return x(c),O(o.timeLimit.departmentId,v)||(o.timeLimit.departmentId=v),h(v)}),i(16,"ng-option",16),a(17,"------------------select-----------------"),n(),s(18,yn,2,3,"ng-option",17),n(),s(19,wn,2,0,"span",18),n()(),i(20,"div",11)(21,"div",12)(22,"label",13)(23,"span",7),a(24,"Day :"),n()()(),i(25,"div",19)(26,"ng-select",20,2),D("ngModelChange",function(v){return x(c),O(o.timeLimit.day,v)||(o.timeLimit.day=v),h(v)}),i(28,"ng-option",16),a(29,"------------------select-----------------"),n(),s(30,Pn,2,2,"ng-option",17),n(),s(31,En,2,0,"span",18),n(),i(32,"div",21)(33,"label",13)(34,"span",7),a(35,"Time :"),n()()(),i(36,"div",22)(37,"input",23,3),D("ngModelChange",function(v){return x(c),O(o.timeLimit.time,v)||(o.timeLimit.time=v),h(v)}),n(),f(39,"ngx-material-timepicker",null,4),s(41,On,2,0,"span",18),n()(),i(42,"div",24)(43,"div",25)(44,"button",26),b("click",function(){x(c);let v=w(7);return h(o.addTimeLimit(v.form.valid))}),a(45,"Add"),n()()()()()()}if(d&2){let c=w(7),g=w(15),v=w(27),A=w(38),tt=w(40);r(14),E("ngModel",o.timeLimit.departmentId),l("clearable",!1),r(4),l("ngForOf",o.departments),r(),l("ngIf",c.submitted&&g.invalid||g.invalid&&g.touched),r(7),E("ngModel",o.timeLimit.day),l("clearable",!1),r(4),l("ngForOf",o.days),r(),l("ngIf",c.submitted&&v.invali
1d||v.invalid&&v.touched),r(6),E("ngModel",o.timeLimit.time),l("ngxTimepicker",tt),r(4),l("ngIf",c.submitted&&A.invalid||A.invalid&&A.touched)}},dependencies:[jt,vt,B,Dt,Tt,U,It,kt,Lt,j,P,Q,J]})}return e})();function Dn(e,m){if(e&1&&(i(0,"ng-option",27),a(1),n()),e&2){let t=m.$implicit;l("value",t.id),r(),S("",t.degreeName," -",t.departmentName," ")}}function In(e,m){e&1&&(i(0,"span",28),a(1," Department required "),n())}function jn(e,m){if(e&1&&(i(0,"ng-option",27),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),M("",t," ")}}function Tn(e,m){e&1&&(i(0,"span",28),a(1," Day required "),n())}function An(e,m){e&1&&(i(0,"span",28),a(1," Time required "),n())}var Bt=(()=>{class e{loading;departmentService;activeModal;toasterService;eventService;value;totValue;index;reload=new Et;days;departments;updateAttConfig;constructor(t,d,o,c,g){this.loading=t,this.departmentService=d,this.activeModal=o,this.toasterService=c,this.eventService=g}ngOnInit(){this.onload(),this.days=[0,1,2,3,4,5,10,15,20,25,30,45,60,90,180]}onload(){this.loading.showLoading(),this.departmentService.getDepartment().then(t=>{this.departments=t,this.loading.hideLoading()})}updateTimeLimit(t){if(t){for(var d=0;d<this.totValue.timeLimit.length;d++)this.index==d&&(this.totValue.timeLimit[d].departmentId=this.value.departmentId,this.totValue.timeLimit[d].time=this.value.time,this.totValue.timeLimit[d].day=this.value.day);this.eventService.updateAttTimeLimit(this.totValue).then(o=>{this.updateAttConfig=o,this.reload.emit(),this.toasterService.success("Changes Added Sucessfully.")})}this.activeModal.close()}close(){this.activeModal.close()}static \u0275fac=function(d){return new(d||e)(u($),u(at),u(it),u(ut),u(T))};static \u0275cmp=y({type:e,selectors:[["app-edit-attendance-time-limit"]],inputs:{value:"value",totValue:"totValue",index:"index"},outputs:{reload:"reload"},decls:46,vars:11,consts:[["updateAttSetting","ngForm"],["departmentId","ngModel"],["day","ngModel"],["time","ngModel"],["TimePicker",""],[1,"container"],[1,"modal-header"],[1,"fs-6","fw-semibold"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close",3,"click"],[1,"modal-body"],[1,"form"],[1,"row","mt-4"],[1,"col-4","text-end"],["for","exampleDataList",1,"form-label"],[1,"col-4"],["name","departmentId","ngModel","","required","",3,"ngModelChange","ngModel","clearable"],["value","",3,"disabled"],[3,"value",4,"ngFor","ngForOf"],["style","color: red;",4,"ngIf"],[1,"col-2"],["name","day","ngModel","","required","",3,"ngModelChange","ngModel","clearable"],[1,"col-2","text-end"],[1,"col-3"],["type","text","name","time","ngModel","","required","","readonly","",1,"form-control",3,"ngModelChange","ngModel","ngxTimepicker"],[1,"row","mt-3","px-5","text-center"],[1,"col-12"],["type","submit",1,"btn","btn-success",3,"click"],[3,"value"],[2,"color","red"]],template:function(d,o){if(d&1){let c=C();i(0,"div",5)(1,"div",6)(2,"span",7),a(3,"Time Setting"),n(),i(4,"button",8),b("click",function(){return x(c),h(o.close())}),n()(),i(5,"div",9)(6,"form",10,0)(8,"div",11)(9,"div",12)(10,"label",13)(11,"span",7),a(12,"Degree & Department :"),n()()(),i(13,"div",14)(14,"ng-select",15,1),D("ngModelChange",function(v){return x(c),O(o.value.departmentId,v)||(o.value.departmentId=v),h(v)}),i(16,"ng-option",16),a(17,"------------------select-----------------"),n(),s(18,Dn,2,3,"ng-option",17),n(),s(19,In,2,0,"span",18),n()(),i(20,"div",11)(21,"div",12)(22,"label",13)(23,"span",7),a(24,"Day :"),n()()(),i(25,"div",19)(26,"ng-select",20,2),D("ngModelChange",function(v){return x(c),O(o.value.day,v)||(o.value.day=v),h(v)}),i(28,"ng-option",16),a(29,"------------------select-----------------"),n(),s(30,jn,2,2,"ng-option",17),n(),s(31,Tn,2,0,"span",18),n(),i(32,"div",21)(33,"label",13)(34,"span",7),a(35,"Time :"),n()()(),i(36,"div",22)(37,"input",23,3),D("ngModelChange",function(v){return x(c),O(o.value.time,v)||(o.value.time=v),h(v)}),n(),f(39,"ngx-material-timepicker",null,4),s(41,An,2,0,"span",18),n()(),i(42,"div",24)(43,"div",25)(44,"button",26),b("click",function(){x(c);let v=w(7);return h(o.updateTimeLimit(v.form.valid))}),a(45,"Update"),n()()()()()()}if(d&2){let c=w(7),g=w(15),v=w(27),A=w(38),tt=w(40);r(14),E("ngModel",o.value.departmentId),l("clearable",!1),r(4),l("ngForOf",o.departments),r(),l("ngIf",c.submitted&&g.invalid||g.invalid&&g.touched),r(7),E("ngModel",o.value.day),l("clearable",!1),r(4),l("ngForOf",o.days),r(),l("ngIf",c.submitted&&v.invali
1d||v.invalid&&v.touched),r(6),E("ngModel",o.value.time),l("ngxTimepicker",tt),r(4),l("ngIf",c.submitted&&A.invalid||A.invalid&&A.touched)}},dependencies:[jt,vt,B,Dt,Tt,U,It,kt,Lt,j,P,Q,J]})}return e})();function kn(e,m){if(e&1){let t=C();i(0,"tr")(1,"td",20),a(2),n(),i(3,"td",21),a(4),n(),i(5,"td",20),a(6),n(),i(7,"td",20),a(8),n(),i(9,"td",20)(10,"button",22),b("click",function(o){let c=x(t),g=c.$implicit,v=c.index,A=p(2);return h(A.editDeadLine(g,v,o))}),f(11,"i",23),n()()()}if(e&2){let t=m.$implicit,d=m.index;r(2),_(d+1),r(2),_(t.departmentName),r(2),_(t.day),r(2),_(t.time),r(2),z("aria-label","Edit deadline for "+t.departmentName)}}function Ln(e,m){if(e&1&&(i(0,"div",14)(1,"div",2)(2,"div",15)(3,"table",16)(4,"thead")(5,"tr")(6,"th",17),a(7,"#"),n(),i(8,"th",18),a(9,"Department"),n(),i(10,"th",17),a(11,"Day(s)"),n(),i(12,"th",17),a(13,"Time"),n(),i(14,"th",17),a(15,"Edit"),n()()(),i(16,"tbody"),s(17,kn,12,5,"tr",19),n()()()()()),e&2){let t=p();r(17),l("ngForOf",t.deadLine[0].timeLimit)}}var Oe=(()=>{class e{eventService;router;route;modalService;deadLine;constructor(t,d,o,c){this.eventService=t,this.router=d,this.route=o,this.modalService=c}ngOnInit(){this.getDeadLine()}getDeadLine(){this.eventService.getAttendanceDeadline().then(t=>{this.deadLine=t})}backToHome(){this.router.navigate(["/attendance/staffHome"])}createDeptTimeLimit(){let t=this.modalService.open(Rt,{size:"lg",backdrop:"static"});t.componentInstance.value=this.deadLine[0],t.componentInstance.reload.subscribe(()=>{this.reload()})}reload(){this.getDeadLine()}editDeadLine(t,d,o){o?.preventDefault(),o?.stopPropagation();let c=this.modalService.open(Bt,{size:"lg",backdrop:"static"});c.componentInstance.value=t,c.componentInstance.totValue=this.deadLine[0],c.componentInstance.index=d,c.componentInstance.reload.subscribe(()=>{this.reload()})}static \u0275fac=function(d){return new(d||e)(u(T),u(nt),u(_t),u(I))};static \u0275cmp=y({type:e,selectors:[["app-attendance-settings"]],decls:17,vars:1,consts:[[1,"container-fluid","mobile-container"],[1,"card","mobile-card","header-card"],[1,"card-body"],[1,"row","align-items-center"],[1,"col-12","col-md-4","mb-2","mb-md-0"],[1,"btn","btn-dark","btn-back",3,"click"],["aria-hidden","true",1,"fa","fa-arrow-left","me-2"],[1,"col-12","col-md-8","text-center","text-md-start"],[1,"page-title","mb-0"],[1,"card","mobile-card","create-card"],[1,"card-body","text-center"],[1,"btn","btn-success","btn-create",3,"click"],["aria-hidden","true",1,"fa","fa-plus","me-2"],["class","card mobile-card table-card",4,"ngIf"],[1,"card","mobile-card","table-card"],[1,"table-responsive"],[1,"table","table-striped","mobile-table"],["scope","col",1,"text-center"],["scope","col"],[4,"ngFor","ngForOf"],[1,"text-center"],[1,"department-name"],["type","button",1,"edit-link",3,"click"],["aria-hidden","true",1,"fa","fa-edit"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"button",5),b("click",function(){return o.backToHome()}),f(6,"i",6),a(7,"Back "),n()(),i(8,"div",7)(9,"h5",8),a(10,"Manage Attendance Deadline"),n()()()()(),i(11,"div",9)(12,"div",10)(13,"button",11),b("click",function(){return o.createDeptTimeLimit()}),f(14,"i",12),a(15,"Create "),n()()(),s(16,Ln,18,1,"div",13),n()),d&2&&(r(16),l("ngIf",o.deadLine!=null))},dependencies:[j,P],styles:[".container-fluid.mobile-container[_ngcontent-%COMP%]{margin:0!important;padding:16px!important;background-color:#f8f9fa!important;max-width:100%!important;overflow-x:hidden!important;min-height:100vh!important}.mobile-card[_ngcontent-%COMP%]{background-color:#fff!important;border-radius:12px!important;box-shadow:0 2px 8px #0000001a!important;border:none!important;margin-bottom:16px!important;overflow:hidden!important}.header-card[_ngcontent-%COMP%]{margin-bottom:16px!important}.header-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding:16px!important}.btn-back[_ngcontent-%COMP%]{background-color:#343a40!important;border-color:#343a40!important;border-radius:8px!important;padding:10px 16px!important;font-size:.9rem!important;font-weight:500!important;transition:all .3s ease!important;min-height:44px!important;display:inline-flex!important;align-items:center!important}.btn-back[_ngcontent-%COMP%]:hover{background-color:#23272b!important;border-color:#1d2124!important;transform:translateY(-1px)!important}.btn-back[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{margin-right:8px!important}.page-title[_ngcontent-%COMP%]{font-size:1.3rem!important;font-weight:600!important;color:#2c3e50!important;margin:0!important}.create-card[_ngcontent-%COMP%]{margin-bottom:16px!important}.create-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding:16px!important;text-align:center!important}.btn-create[_ngcontent-%COMP%]{background-color:#28a745!important;border-color:#28a745!important;border-radius:8px!important;padding:10px 20px!important;font-size:.9rem!important;font-weight:500!important;transition:all .3s ease!important;min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.btn-create[_ngcontent-%COMP%]:hover{background-color:#218838!important;border-color:#1e7e34!important;transform:translateY(-1px)!important}.btn-create[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{margin-right:8px!important}.table-card[_ngcontent-%COMP%]{margin-bottom:16px!important}.table-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding:16px!important}.mobile-table[_ngcontent-%COMP%]{border-radius:8px!important;overflow:hidden!important;margin-bottom:0!important;border:1px solid #dee2e6!important;width:100%!important}.table-striped[_ngcontent-%COMP%] > tbody[_ngcontent-%COMP%] > tr[_ngcontent-%COMP%]:nth-of-type(odd) > td[_ngcontent-%COMP%]{background-color:#00000005!important}.mobile-table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f8f9fa!important;border-bottom:2px solid #dee2e6!important;font-weight:600!important;color:#2c3e50!important;padding:12px 8px!important;font-size:.85rem!important;white-space:nowrap!important}.mobile-table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:12px 8px!important;vertical-align:middle!important;font-size:.85rem!important;border-bottom:1px solid #dee2e6!important}
1.department-name[_ngcontent-%COMP%]{font-weight:500!important;color:#2c3e50!important}.edit-link[_ngcontent-%COMP%]{color:#007bff!important;text-decoration:none!important;font-size:1.1rem!important;transition:color .3s ease!important;display:inline-block!important;padding:4px!important;border-radius:4px!important;background:transparent!important;border:none!important;cursor:pointer!important}.edit-link[_ngcontent-%COMP%]:hover{color:#0056b3!important;text-decoration:none!important;background-color:#007bff1a!important}.edit-link[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{transition:transform .3s ease!important}.edit-link[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%]{transform:scale(1.1)!important}@media (max-width: 768px){.container-fluid.mobile-container[_ngcontent-%COMP%]{margin:0!important;padding:8px!important}.mobile-card[_ngcontent-%COMP%]{margin-bottom:12px!important}.header-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%], .create-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%], .table-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding:12px!important}.header-card[_ngcontent-%COMP%]   .row[_ngcontent-%COMP%]{flex-direction:column!important;align-items:stretch!important}.header-card[_ngcontent-%COMP%]   .col-12.col-md-4[_ngcontent-%COMP%]{order:2!important;margin-top:12px!important}.header-card[_ngcontent-%COMP%]   .col-12.col-md-8[_ngcontent-%COMP%]{order:1!important;text-align:center!important}.btn-back[_ngcontent-%COMP%]{width:100%!important;padding:12px 16px!important;font-size:1rem!important;justify-content:center!important}.page-title[_ngcontent-%COMP%]{font-size:1.2rem!important;margin-bottom:0!important}.btn-create[_ngcontent-%COMP%]{width:100%!important;padding:12px 20px!important;font-size:1rem!important}.table-responsive[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #dee2e6!important;-webkit-overflow-scrolling:touch!important;overflow-x:auto!important}.mobile-table[_ngcontent-%COMP%]{font-size:.8rem!important;min-width:500px!important}.mobile-table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:10px 6px!important;font-size:.75rem!important;background-color:#f8f9fa!important;font-weight:600!important}.mobile-table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px 6px!important;font-size:.75rem!important;vertical-align:middle!important}.department-name[_ngcontent-%COMP%]{font-weight:500!important;color:#2c3e50!important}.edit-link[_ngcontent-%COMP%]{font-size:1rem!important;padding:6px!important}}@media (max-width: 480px){.container-fluid.mobile-container[_ngcontent-%COMP%]{margin:2px!important;padding:6px!important}.mobile-card[_ngcontent-%COMP%]{margin-bottom:8px!important}.header-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%], .create-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%], .table-card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding:10px!important}.page-title[_ngcontent-%COMP%]{font-size:1.1rem!important;margin-bottom:0!important}.btn-back[_ngcontent-%COMP%]{padding:14px 16px!important;font-size:1rem!important}.btn-create[_ngcontent-%COMP%]{padding:14px 20px!important;font-size:1rem!important}.mobile-table[_ngcontent-%COMP%]{font-size:.75rem!important;min-width:400px!important}.mobile-table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .mobile-table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 4px!important;font-size:.7rem!important}.edit-link[_ngcontent-%COMP%]{font-size:.9rem!important;padding:4px!important}}@media (hover: none) and (pointer: coarse){.btn-back[_ngcontent-%COMP%]:hover, .btn-create[_ngcontent-%COMP%]:hover, .edit-link[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%]{transform:none!important}.edit-link[_ngcontent-%COMP%]:hover{color:#007bff!important;background-color:transparent!important}}*[_ngcontent-%COMP%]{box-sizing:border-box!important}.container-fluid.mobile-container[_ngcontent-%COMP%], .row[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%]{overflow:visible!important}.btn-back[_ngcontent-%COMP%]:focus, .btn-create[_ngcontent-%COMP%]:focus, .edit-link[_ngcontent-%COMP%]:focus{outline:2px solid #007bff!important;outline-offset:2px!important}.btn-back[_ngcontent-%COMP%]:disabled, .btn-create[_ngcontent-%COMP%]:disabled{opacity:.6!important;cursor:not-allowed!important}@media (max-width: 768px){.table-responsive[_ngcontent-%COMP%]{-webkit-overflow-scrolling:touch!important;overflow-x:auto!important;border:none!important}.edit-link[_ngcontent-%COMP%]{min-height:44px!important;min-width:44px!important;display:flex!important;align-items:center!important;justify-content:center!important}.mobile-card[_ngcontent-%COMP%]:last-child{margin-bottom:20px!important}}"]})}return e})();var Kt=bt(Ct());var Vn=e=>({ranges:e}),Nn=()=>[];function zn(e,m){if(e&1&&(i(0,"ng-option",17),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),S(" ",t.degreeName," - ",t.departmentName," ")}}function Fn(e,m){if(e&1&&(i(0,"ng-option",17),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),_(t.label)}}function Yn(e,m){if(e&1&&(i(0,"ng-option",17),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),_(t.timetableName)}}function Rn(e,m){if(e&1){let t=C();i(0,"div",4)(1,"label",18),a(2,"Date Range"),n(),i(3,"input",19),b("bsValueChange",function(o){x(t);let c=p();return h(c.demo(o))}),n()()}if(e&2){let t=p();r(3),l("bsConfig",F(1,Vn,t.ranges))}}function Bn(e,m){e&1&&f(0,"i",25)}function Un(e,m){e&1&&(i(0,"span"),a(1,"View"),n())}function $n(e,m){e&1&&(i(0,"span",26),f(1,"span",27),a(2," Loading\u2026 "),n())}function Wn(e,m){if(e&1){let t=C();i(0,"div",20)(1,"label",21),a(2,"\xA0"),n(),i(3,"button",22),b("click",function(){x(t);let o=p();return h(o.getEventStatus())}),s(4,Bn,1,0,"i",23)(5,Un,2,0,"span",15)(6,$n,3,0,"span",24),n()()}if(e&2){let t=p();r(3),l("disabled",t.isViewLoading||!t.timetableRefCode||!t.fromDate||!t.toDate),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",t.isViewLoading)}}function Hn(e,m){if(e&1&&(i(0,"span"),a(1),n()),e&2){let t=p().$implicit;r(),_(t.loggedby)}}function qn(e,m){e&1&&(i(0,"span"),a(1,"--"),n())}function Kn(e,m){if(e&1&&(i(0,"small",40)(1,"strong"),a(2),n()()),e&2){let t=p().$implicit,d=p(3);r(2),_(d.totalPresent(t))}}function Gn(e,m){e&1&&(i(0,"small",40)(1,"strong"),a(2,"Tot Pre: -- Tot Abs: --"),n()())}function Jn(e,m){if(e&1&&(i(0,"small",44),f(1,"i",45),i(2,"strong"),a(3,"Updated On:"),n(),a(4),n()),e&2){let t=p().$implicit;r(4),M(" ",t.modifiedOn," ")}}function Qn(e,m){if(e&1){let t=C();i(0,"div",35)(1,"div",36)(2,"div",32)(3,"a",37),b("click",function(){let o=x(t).$implicit,c=p(3);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))}),i(4,"div",38)(5,"strong"),a(6),V(7,"date"),n(),f(8,"br"),i(9,"small",39),a(10),n()(),i(11,"div",38)(12,"strong"),a(13),n(),f(14,"br"),i(15,"small",39),a(16),n()(),i(17,"div")(18,"small",40),f(19,"i",41),i(20,"strong"),a(21,"HandleBy:"),n(),a(22),n(),i(23,"small",40),f(24,"i",41),i(25,"strong"),a(26,"Loggedby:"),n(),s(27,Hn,2,1,"span",15)(28,qn,2,0,"span",15),n(),s(29,Kn,3,1,"small",42)(30,Gn,3,0,"small",42)(31,Jn,5,1,"small",43),n()()()()()}if(e&2){let t=m.$implicit,d=p(3);r(),k("attendance-present",t.attenStatus=="YES")("attendance-absent",t.attenStatus=="NO"),r(2),k("pe-none",d.isDetailLoa
1ding)("opacity-50",d.isDetailLoading),l("routerLink",L(24,Nn)),z("aria-busy",d.isDetailLoading),r(3),_(K(7,21,t.date.$date,"dd/MM/yyyy")),r(4),S("",t.stime," - ",t.etime,""),r(3),_(t.subjectName),r(3),M("(",t.subjectCode,")"),r(6),M(" ",t.staffName||"---"," "),r(5),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="NO"),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="NO"),r(),l("ngIf",t.attenStatus=="YES")}}function Xn(e,m){if(e&1&&(i(0,"div",29)(1,"div",30)(2,"span",31),a(3),n()(),i(4,"div",32)(5,"div",33),s(6,Qn,32,25,"div",34),n()()()),e&2){let t=m.$implicit;r(3),_(t.key),r(3),l("ngForOf",t.value)}}function Zn(e,m){if(e&1&&(i(0,"div"),s(1,Xn,7,2,"div",28),V(2,"groupBy"),n()),e&2){let t=p();r(),l("ngForOf",K(2,1,t.deptEvents,"timetableName"))}}function ti(e,m){e&1&&(i(0,"div",46),f(1,"i",47),i(2,"div",48)(3,"p",49),a(4,"Sorry! No event found."),n()()())}var De=Kt.default??Kt,Ie=(()=>{class e{loading;departmentService;eventService;accyearService;markingService;modalService;datepipe;errorHandler;departments;dept;academicYears=[];selectedAcademicYear;timeTables;timeTable;startDate=new Date;endDate=new Date;fromDate;toDate;ranges=[{value:[new Date(new Date().setDate(new Date().getDate())),new Date],label:"Today"},{value:[new Date(new Date().setDate(new Date().getDate()-1)),new Date(new Date().setDate(new Date().getDate()-1))],label:"Yesterday"},{value:[new Date(new Date().setDate(new Date().getDate()-7)),new Date],label:"Last 7 Days"}];timetableRefCode;deptEvents;showTable;isDepartmentLoading=!1;isAcademicYearLoading=!1;isTimetableLoading=!1;isViewLoading=!1;isDetailLoading=!1;present;absent;eventViewRequested=!1;constructor(t,d,o,c,g,v,A,tt){this.loading=t,this.departmentService=d,this.eventService=o,this.accyearService=c,this.markingService=g,this.modalService=v,this.datepipe=A,this.errorHandler=tt}ngOnInit(){this.onload()}demo(t){this.startDate=t[0].toString(),this.endDate=t[1].toString(),this.fromDate=De(new Date(this.startDate)).format("DD-MMM-YYYY"),this.toDate=De(new Date(this.endDate)).format("DD-MMM-YYYY")}onload(){this.loading.showLoading(),this.isDepartmentLoading=!0,this.departmentService.getDepartment().then(t=>{this.departments=t,this.isDepartmentLoading=!1,this.loading.hideLoading()}).catch(()=>{this.isDepartmentLoading=!1,this.loading.hideLoading()})}getAcademicYears(t){this.resetTimeTableSelectionState(),!(!t||!t.id)&&(this.isAcademicYearLoading=!0,this.accyearService.getAcademicByDep(t.id).then(d=>{let o=Array.isArray(d)?d:[];this.academicYears=o.filter(c=>c&&(c.inactive==="NO"||c.inactive===void 0||c.inactive===null)).map(c=>ee(te({},c),{id:c.id,label:`${c.startYear??""} - ${c.endYear??""}`.trim()})),this.academicYears.sort((c,g)=>String(g.startYear??"").localeCompare(String(c.startYear??""))),this.isAcademicYearLoading=!1}).catch(()=>{this.academicYears=[],this.isAcademicYearLoading=!1}))}getTimeTableByAccYear(){this.eventViewRequested=!1,this.timeTables=[],this.timeTable=void 0,this.timetableRefCode=void 0,this.showTable=!1,this.deptEvents=[],!(!this.dept||!this.dept.id||!this.selectedAcademicYear||!this.selectedAcademicYear.id)&&(this.isTimetableLoading=!0,this.eventService.getTimetableViewByAccYear(this.dept.id,this.selectedAcademicYear.id).then(t=>{this.timeTables=t||[],this.isTimetableLoading=!1,this.timeTables.sort((d,o)=>d.timetableName.localeCompare(o.timetableName))}).catch(()=>{this.timeTables=[],this.isTimetableLoading=!1}))}getSelectedTimeTable(t){this.eventViewRequested=!1,this.timetableRefCode=t?t.referenceCode:void 0,this.showTable=!1,this.deptEvents=[]}getEventStatus(){!this.timetableRefCode||!this.fromDate||!this.toDate||(this.eventViewRequested=!0,this.isViewLoading=!0,this.eventService.getDepartmentTimeTable(this.fromDate,this.toDate,this.timetableRefCode).then(t=>{this.deptEvents=t,this.isViewLoading=!1,this.showTable=this.deptEvents.length!==0}).catch(()=>{this.isViewLoading=!1,this.showTable=!1,this.deptEvents=[]}))}totalPresent(t){return dt(t)}getEventStudentListVal(t,d,o){lt(this.markingService,this.modalService,this,t,o,c=>this.reload(c),"departmentTab",this.errorHandler)}reload(t){t?.eventId&&this.patchDeptEvent(t)||this.getEventStatus()}patchDeptEvent(t){let d=this.deptEvents?.find(o=>o.id===t.eventId);return d?(rt(d,t),!0):!1}resetTimeTableSelectionState(){this.selectedAcademicYear=void 0,this.academicYears=[],this.timeTables=[],this.timeTable=void 0,this.timetableRefCode=void 0,this.showTable=!1,this.deptEvents=[],this.eventViewRequested=!1}static \u0275fac=function(d){return new(d||e)(u($),u(at),u(T),u(ue),u(ct),u(I),u(N),u(ot))};static \u0275cmp=y({type:e,selectors:[["app-department-attendance"]],decls:30,vars:16,consts:[[1,"jp-ims-admin-tab-page","jp-ims-attendance-dept-tab","container-fluid","p-0","p-md-1"],[1,"jp-dashboard-filter-bar"],[1,"jp-attendance-filter-heading"],[1,"jp-filter-row"],[1,"jp-filter-item"],["for","deptSelect",1,"jp-filter-label"],["id","deptSelect","placeholder","Select degree & department",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["value","",3,"disabled"],[3,"value",4,"ngFor","ngForOf"],["for","accYearSelect",1,"jp-filter-label"],["id","accYearSelect","placeholder","Select academic year",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["for","timetableSelect",1,"jp-filter-label"],["id","timetableSelect","placeholder","Select timetable",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["class","jp-filter-item",4,"ngIf"],["class","jp-filter-actions",4,"ngIf"],[4,"ngIf"],["class","jp-alert jp-alert-warning mb-0",4,"ngIf"],[3,"value"],["for","dateRange",1,"jp-filter-label"],["type","text","id","dateRange","placeholder","Select date range","bsDaterangepicker","",1,"jp-form-control",3,"bsValueChange","bsConfig"],[1,"jp-filter-actions"],[1,"jp-filter-label","d-none","d-md-block"],["type","button",1,"jp-btn","jp-btn-primary","jp-btn-view",3,"click","disabled"],["class","fa fa-eye me-1","aria-hidden","true",4,"ngIf"],["class","d-inline-flex align-items-center gap-2",4,"ngIf"],["aria-hidden","true",1,"fa","fa-eye","me-1"],[1,"d-inline-flex","align-items-center","gap-2"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm"],["class","jp-card jp-attendance-event-card",4,"ngFor","ngForOf"],[1,"jp-card","jp-attendance-event-card"],[1,"jp-card-header","border-bottom","px-3","py-2"],[1,"badge","text-bg-primary","fw-semibold"],[1,"card-body"],[1,"row","g-3"],["class","col-12 col-sm-6 col-lg-4 col-xl-3",4,"ngFor","ngForOf"],[1,"col-12","col-sm-6","col-lg-4","col-xl-3"],[1,"card","h-100"],[1,"text-decoration-none",3,"click","routerLink"],[1,"mb-2"],[1,"text-muted"],[1,"text-muted","d-block","mb-1"],["aria-hidden","true",1,"fa","fa-user","me-1","opacity-50"],["class","text-muted d-block mb-1",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-calendar","me-1","opacity-50"],[1,"jp-alert","jp-alert-warning","mb-0"],["aria-hidden","true",1,"fa","fa-exclamation-triangle","jp-alert-icon"],[1,"jp-alert-content"],[1,"jp-alert-message","mb-0"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"h2",2),a(3,"Department Attendance Report"),n(),i(4,"div",3)(5,"div",4)(6,"label",5),a(7,"Degree & Department"),n(),i(8,"ng-select",6),D("ngModelChange",function(g){return O(o.dept,g)||(o.dept=g),g}),b("change",function(){return o.getAcademicYears(o.dept)}),i(9,"ng-option",7),a(10,"Select degree & department"),n(),s(11,zn,2,3,"ng-option",8),n()(),i(12,"div",4)(13,"label",9),a(14,"Academic Year"),n(),i(15,"ng-select",10),D("ngModelChange",function(g){return O(o.selectedAcademicYear,g)||(o.selectedAcademicYear=g),g}),b("change",function(){return o.getTimeTableByAccYear()}),i(16,"ng-option",7),a(17,"Select academic year"),n(),s(18,Fn,2,2,"ng-option",8),n()(),i(19,"div",4)(20,"label",11),a(21,"TimeTable"),n(),i(22,"ng-select",12),D("ngModelChange",function(g){return O(o.timeTable,g)||(o.timeTable=g),g}),b("change",function(){return o.getSelectedTimeTable(o.timeTable)}),i(23,"ng-option",7),a(24,"Select timetable"),n(),s(25,Yn,2,2,"ng-option",8),n()(),s(26,Rn,4,3,"div",13)(27,Wn,7,4,"div",14),n()(),s(28,Zn,3,4,"div",15)(29,t
1i,5,0,"div",16),n()),d&2&&(r(8),E("ngModel",o.dept),l("clearable",!1)("loading",o.isDepartmentLoading),r(3),l("ngForOf",o.departments),r(4),E("ngModel",o.selectedAcademicYear),l("clearable",!1)("loading",o.isAcademicYearLoading),r(3),l("ngForOf",o.academicYears),r(4),E("ngModel",o.timeTable),l("clearable",!1)("loading",o.isTimetableLoading),r(3),l("ngForOf",o.timeTables),r(),l("ngIf",o.timeTable!=null),r(),l("ngIf",o.timeTable!=null),r(),l("ngIf",o.showTable==!0),r(),l("ngIf",o.eventViewRequested&&!o.isViewLoading&&o.showTable==!1&&o.timetableRefCode&&o.fromDate&&o.toDate))},dependencies:[R,B,U,j,P,Q,J,X,Z,_e,N],styles:[".container.card.custom-card[_ngcontent-%COMP%]{margin:8px!important;border-radius:12px!important;box-shadow:0 2px 8px #0000001a!important;padding:16px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-top:0!important;margin-bottom:20px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:12px 0!important;border-bottom:2px solid #dee2e6!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.2rem!important;font-weight:600!important;color:#2c3e50!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:20px!important;margin-bottom:20px!important;align-items:center!important}.form-label[_ngcontent-%COMP%]{font-weight:600!important;color:#2c3e50!important;margin-bottom:8px!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important;font-weight:600!important}ng-select[_ngcontent-%COMP%]{width:100%!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #ddd!important;min-height:44px!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]:focus{border-color:#007bff!important;box-shadow:0 0 0 .2rem #007bff40!important}ng-select[_ngcontent-%COMP%]   .ng-placeholder[_ngcontent-%COMP%]{color:#6c757d!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-option[_ngcontent-%COMP%]{padding:10px 12px!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-option.ng-option-selected[_ngcontent-%COMP%]{background-color:#007bff!important;color:#fff!important}.form-control[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #ddd!important;padding:10px 12px!important;font-size:.9rem!important;transition:border-color .3s ease!important}.form-control[_ngcontent-%COMP%]:focus{border-color:#007bff!important;box-shadow:0 0 0 .2rem #007bff40!important}.btn[_ngcontent-%COMP%]{border-radius:8px!important;padding:10px 16px!important;font-size:.9rem!important;font-weight:500!important;transition:all .3s ease!important;min-height:44px!important}.btn-success[_ngcontent-%COMP%]{background-color:#28a745!important;border-color:#28a745!important}.btn-success[_ngcontent-%COMP%]:hover:not(:disabled){background-color:#218838!important;border-color:#1e7e34!important;transform:translateY(-1px)!important}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem!important;height:1rem!important}.table[_ngcontent-%COMP%]{border-radius:8px!important;overflow:hidden!important;box-shadow:0 2px 8px #0000001a!important;margin-bottom:0!important}.table-striped[_ngcontent-%COMP%] > tbody[_ngcontent-%COMP%] > tr[_ngcontent-%COMP%]:nth-of-type(odd) > td[_ngcontent-%COMP%]{background-color:#00000005!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f8f9fa!important;border-bottom:2px solid #dee2e6!important;font-weight:600!important;color:#2c3e50!important;padding:12px 8px!important;font-size:.85rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:12px 8px!important;vertical-align:middle!important;font-size:.85rem!important;border-bottom:1px solid #dee2e6!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#007bff!important;text-decoration:none!important;font-weight:500!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline!important;color:#0056b3!important}.badge[_ngcontent-%COMP%]{font-size:.75rem!important;padding:4px 8px!important;border-radius:4px!important;font-weight:500!important}.badge.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}.badge.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important;color:#212529!important}.alert[_ngcontent-%COMP%]{border-radius:8px!important;padding:12px 16px!important;margin:16px 0!important;border:none!important}.alert-warning[_ngcontent-%COMP%]{background-color:#fff3cd!important;color:#856404!important;border-left:4px solid #ffc107!important}@media (max-width: 768px){.container.card.custom-card[_ngcontent-%COMP%]{margin:4px!important;padding:12px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-bottom:16px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:8px 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.1rem!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:16px!important;margin-bottom:16px!important;flex-direction:column!important;align-items:stretch!important}.col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%]{width:100%!important;max-width:100%!important;flex:none!important;padding:0 0 8px!important;text-align:left!important}.col-4.text-end[_ngcontent-%COMP%]{text-align:left!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{font-size:16px!important;min-height:48px!important}.form-control[_ngcontent-%COMP%]{width:100%!important;font-size:16px!important;padding:12px!important}.btn[_ngcontent-%COMP%]{width:100%!important;padding:12px 16px!important;font-size:1rem!important;margin-top:8px!important}.table-responsive[_ngcontent-%COMP%]{border-radius:8px!important;box-shadow:0 2px 8px #0000001a!important}.table[_ngcontent-%COMP%]{font-size:.8rem!important;min-width:600px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px 6px!important;font-size:.75rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(4){min-width:200
1px!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(5){min-width:150px!important}.alert[_ngcontent-%COMP%]{margin:12px 0!important;padding:10px 12px!important;font-size:.85rem!important}.badge[_ngcontent-%COMP%]{font-size:.7rem!important;padding:3px 6px!important}}@media (max-width: 480px){.container.card.custom-card[_ngcontent-%COMP%]{margin:2px!important;padding:8px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-bottom:12px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:6px 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:12px!important;margin-bottom:12px!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{min-height:50px!important;font-size:16px!important}.form-control[_ngcontent-%COMP%]{padding:14px!important;font-size:16px!important}.btn[_ngcontent-%COMP%]{padding:14px 16px!important;font-size:1rem!important}.table[_ngcontent-%COMP%]{font-size:.75rem!important;min-width:500px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 4px!important;font-size:.7rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(4){min-width:180px!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(5){min-width:120px!important}.alert[_ngcontent-%COMP%]{margin:8px 0!important;padding:8px 10px!important;font-size:.8rem!important}.badge[_ngcontent-%COMP%]{font-size:.65rem!important;padding:2px 4px!important}}@media (hover: none) and (pointer: coarse){.btn[_ngcontent-%COMP%]:hover:not(:disabled){transform:none!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:none!important}}*[_ngcontent-%COMP%]{box-sizing:border-box!important}.container[_ngcontent-%COMP%], .row[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%]{overflow:visible!important}.btn[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus, ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]:focus{outline:2px solid #007bff!important;outline-offset:2px!important}.btn[_ngcontent-%COMP%]:disabled{opacity:.6!important;cursor:not-allowed!important}@media (max-width: 768px){.table-responsive[_ngcontent-%COMP%]{-webkit-overflow-scrolling:touch!important;overflow-x:auto!important}}.attendance-present[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{background-color:#d4edda!important;border-left:4px solid #28a745!important}.attendance-absent[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{background-color:#f8d7da!important;border-left:4px solid #dc3545!important}.event-date-time[_ngcontent-%COMP%], .event-subject[_ngcontent-%COMP%]{font-size:.9rem!important}.event-details[_ngcontent-%COMP%]{font-size:.8rem!important}.event-details[_ngcontent-%COMP%]   small[_ngcontent-%COMP%]{line-height:1.4!important}.card[_ngcontent-%COMP%]{transition:transform .2s ease-in-out,box-shadow .2s ease-in-out!important;border:1px solid #dee2e6!important;border-radius:8px!important}.card[_ngcontent-%COMP%]:hover{transform:translateY(-2px)!important;box-shadow:0 4px 12px #00000026!important}@media (max-width: 768px){.card[_ngcontent-%COMP%]{margin-bottom:12px!important}.card-body[_ngcontent-%COMP%]{padding:12px!important}.event-date-time[_ngcontent-%COMP%], .event-subject[_ngcontent-%COMP%]{font-size:.85rem!important}.event-details[_ngcontent-%COMP%]{font-size:.75rem!important}.event-details[_ngcontent-%COMP%]   small[_ngcontent-%COMP%]{line-height:1.3!important}.card[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{display:block!important;padding:8px!important;margin:-8px!important;border-radius:4px!important}.card[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:active{background-color:#0000000d!important}}@media (max-width: 480px){.card-body[_ngcontent-%COMP%]{padding:10px!important}.event-date-time[_ngcontent-%COMP%], .event-subject[_ngcontent-%COMP%]{font-size:.8rem!important}.event-details[_ngcontent-%COMP%]{font-size:.7rem!important}.event-details[_ngcontent-%COMP%]   small[_ngcontent-%COMP%]{line-height:1.2!important}}@media (hover: none) and (pointer: coarse){.card[_ngcontent-%COMP%]:hover{transform:none!important;box-shadow:0 2px 8px #0000001a!important}.card[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:active{background-color:#0000001a!important}}.badge.text-bg-primary[_ngcontent-%COMP%]{background-color:#007bff!important;color:#fff!important;font-size:.8rem!important;padding:6px 12px!important;border-radius:6px!important}@media (max-width: 768px){.badge.text-bg-primary[_ngcontent-%COMP%]{font-size:.75rem!important;padding:4px 8px!important}}.alert-warning[_ngcontent-%COMP%]{border-left:4px solid #ffc107!important;background-color:#fff3cd!important;color:#856404!important}.alert[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{font-size:.7rem!important;padding:3px 6px!important}@media (max-width: 768px){.form-label[_ngcontent-%COMP%]{margin-bottom:6px!important;font-size:.9rem!important}.mb-2[_ngcontent-%COMP%]{margin-bottom:8px!important}.mb-md-0[_ngcontent-%COMP%]{margin-bottom:0!important}}.btn.w-100[_ngcontent-%COMP%]{min-height:48px!important;font-size:1rem!important;font-weight:500!important}@media (max-width: 480px){.btn.w-100[_ngcontent-%COMP%]{min-height:50px!important;font-size:1rem!important}}"]})}return e})();var Jt=bt(Ct());var je=e=>({$implicit:e,showLogged:!1}),ei=e=>({$implicit:e}),Te=e=>({$implicit:e,showLogged:!0}
1),Ae=()=>[];function ni(e,m){if(e&1&&(i(0,"span",39),a(1),n()),e&2){let t=p(2);r(),_(t.todayPendingEvents.length)}}function ii(e,m){e&1&&gt(0)}function ai(e,m){if(e&1&&(H(0),s(1,ii,1,0,"ng-container",41),q()),e&2){let t=p(3),d=w(32);r(),l("ngTemplateOutlet",d)("ngTemplateOutletContext",F(2,je,t.todayPendingEvents))}}function oi(e,m){e&1&&(i(0,"div",42)(1,"div",43)(2,"p",28),a(3,"No pending attendance for today."),n()()())}function ri(e,m){if(e&1&&(H(0),s(1,ai,2,4,"ng-container",40)(2,oi,4,0,"ng-template",null,3,st),q()),e&2){let t=w(3),d=p(2);r(),l("ngIf",d.todayPendingEvents.length>0)("ngIfElse",t)}}function di(e,m){if(e&1&&(i(0,"span",44),a(1),n()),e&2){let t=p(2);r(),_(t.disputedEvents.length)}}function li(e,m){e&1&&(i(0,"div",45),f(1,"i",46),i(2,"div",47)(3,"p",48),a(4,"Could not load disputed attendance. Other sections are still shown."),n()()())}function ci(e,m){e&1&&(i(0,"div",49),f(1,"i",50),i(2,"div",47)(3,"p",48),a(4," These hours are disputed. Open each hour and correct attendance against the logsheet \u2014 no extension request is needed while the hour remains disputed. "),n()()())}function mi(e,m){e&1&&gt(0)}function pi(e,m){if(e&1&&(H(0),s(1,mi,1,0,"ng-container",41),q()),e&2){let t=p(3),d=w(34);r(),l("ngTemplateOutlet",d)("ngTemplateOutletContext",F(2,ei,t.disputedEvents))}}function si(e,m){if(e&1&&(i(0,"div",42)(1,"div",43)(2,"p",28),a(3),n()()()),e&2){let t=p(4);r(3),M("No disputed attendance in the last ",t.oldPendingLookbackDays," days.")}}function gi(e,m){if(e&1&&s(0,si,4,1,"div",20),e&2){let t=p(3);l("ngIf",!t.disputesLoadError)}}function _i(e,m){if(e&1&&(H(0),s(1,pi,2,4,"ng-container",40)(2,gi,1,1,"ng-template",null,4,st),q()),e&2){let t=w(3),d=p(2);r(),l("ngIf",d.disputedEvents.length>0)("ngIfElse",t)}}function fi(e,m){e&1&&(i(0,"div",51),f(1,"span",52),a(2," Loading disputes\u2026 "),n())}function ui(e,m){if(e&1&&(i(0,"span",39),a(1),n()),e&2){let t=p(2);r(),_(t.oldPendingEvents.length)}}function vi(e,m){e&1&&(i(0,"div",45),f(1,"i",46),i(2,"div",47)(3,"p",48),a(4,"Could not load older pending sessions. Today's data is still shown below."),n()()())}function bi(e,m){e&1&&gt(0)}function xi(e,m){if(e&1&&(H(0),s(1,bi,1,0,"ng-container",41),q()),e&2){let t=p(3),d=w(32);r(),l("ngTemplateOutlet",d)("ngTemplateOutletContext",F(2,je,t.oldPendingEvents))}}function hi(e,m){if(e&1&&(i(0,"div",42)(1,"div",43)(2,"p",28),a(3),n()()()),e&2){let t=p(4);r(3),M("No older pending attendance in the last ",t.oldPendingLookbackDays," days.")}}function Ci(e,m){if(e&1&&s(0,hi,4,1,"div",20),e&2){let t=p(3);l("ngIf",!t.oldPendingLoadError)}}function Si(e,m){if(e&1&&(H(0),s(1,xi,2,4,"ng-container",40)(2,Ci,1,1,"ng-template",null,5,st),q()),e&2){let t=w(3),d=p(2);r(),l("ngIf",d.oldPendingEvents.length>0)("ngIfElse",t)}}function Mi(e,m){e&1&&(i(0,"div",51),f(1,"span",52),a(2," Loading older pending\u2026 "),n())}function yi(e,m){if(e&1&&(i(0,"span",53),a(1),n()),e&2){let t=p(2);r(),_(t.todayLoggedEvents.length)}}function wi(e,m){e&1&&gt(0)}function Pi(e,m){if(e&1&&(H(0),s(1,wi,1,0,"ng-container",41),q()),e&2){let t=p(3),d=w(32);r(),l("ngTemplateOutlet",d)("ngTemplateOutletContext",F(2,Te,t.todayLoggedEvents))}}function Ei(e,m){e&1&&(i(0,"div",42)(1,"div",43)(2,"p",28),a(3,"No attendance logged for today yet."),n()()())}function Oi(e,m){if(e&1&&(H(0),s(1,Pi,2,4,"ng-container",40)(2,Ei,4,0,"ng-template",null,6,st),q()),e&2){let t=w(3),d=p(2);r(),l("ngIf",d.todayLoggedEvents.length>0)("ngIfElse",t)}}function Di(e,m){e&1&&(i(0,"div",54),f(1,"span",52),a(2," Loading\u2026 "),n())}function Ii(e,m){if(e&1&&(H(0),i(1,"section",22)(2,"div",23)(3,"h2",24),a(4,"Today \u2014 My pending"),n(),s(5,ni,2,1,"span",25),n(),s(6,ri,4,2,"ng-container",19),n(),i(7,"section",26)(8,"div",23)(9,"div")(10,"h2",27),a(11,"Disputed attendance"),n(),i(12,"p",28),a(13),n()(),s(14,di,2,1,"span",29),n(),s(15,li,5,0,"div",30)(16,ci,5,0,"div",31)(17,_i,4,2,"ng-container",19)(18,fi,3,0,"div",32),n(),i(19,"section",33)(20,"div",23)(21,"div")(22,"h2",34),a(23,"Old date pending"),n(),i(24,"p",28),a(25),n()(),s(26,ui,2,1,"span",25),n(),s(27,vi,5,0,"div",30)(28,Si,4,2,"ng-container",19)(29,Mi,3,0,"div",32),n(),i(30,"section",35)(31,"div",23)(32,"h2",36),a(33,"Today \u2014 Attendances"),n(),s(34,yi,2,1,"span",37),n(),s(35,Oi,4,2,"ng-container",19),n(),s(36,Di,3,0,"div",38),q()),e&2){let t=p();r(5),l("ngIf",t.todayPendingEvents.length>0),r(),l("ngIf",!t.isViewLoading),r(7),M("Last ",t.oldPendingLookbackDays," days"),r(),l("ngIf",t.disputedEvents.length>0),r(),l("ngIf",t.disputesLoadError),r(),l("ngIf",!t.isDisputesLoading&&t.dis
1putedEvents.length>0),r(),l("ngIf",!t.isDisputesLoading),r(),l("ngIf",t.isDisputesLoading),r(7),M("Last ",t.oldPendingLookbackDays," days (your sessions only)"),r(),l("ngIf",t.oldPendingEvents.length>0),r(),l("ngIf",t.oldPendingLoadError),r(),l("ngIf",!t.isOldPendingLoading),r(),l("ngIf",t.isOldPendingLoading),r(5),l("ngIf",t.todayLoggedEvents.length>0),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",t.isViewLoading&&t.isDisputesLoading&&t.todayPendingEvents.length===0&&t.todayLoggedEvents.length===0&&t.disputedEvents.length===0)}}function ji(e,m){e&1&&gt(0)}function Ti(e,m){if(e&1&&(i(0,"div",42),s(1,ji,1,0,"ng-container",41),n()),e&2){let t=p(),d=w(32);r(),l("ngTemplateOutlet",d)("ngTemplateOutletContext",F(2,Te,t.facultyEvents))}}function Ai(e,m){e&1&&(i(0,"div",55),f(1,"i",46),i(2,"div",47)(3,"p",48),a(4,"Sorry! No event found."),n()()())}function ki(e,m){e&1&&(i(0,"div",55),f(1,"i",46),i(2,"div",47)(3,"p",48),a(4,"Sorry! No event found for today."),n()()())}function Li(e,m){if(e&1&&(H(0),i(1,"span",44),a(2,"Disputed"),n(),f(3,"br"),a(4," Reason: "),i(5,"strong"),a(6),n(),q()),e&2){let t=p(2).$implicit,d=p(2);r(6),_(d.disputeReason(t))}}function Vi(e,m){if(e&1&&(i(0,"td")(1,"small",72),f(2,"i",73),i(3,"strong"),a(4,"Logged by:"),n(),a(5),f(6,"br"),i(7,"strong"),a(8),n(),f(9,"br"),a(10," Updated: "),i(11,"strong"),a(12),n(),f(13,"br"),s(14,Li,7,1,"ng-container",19),n()()),e&2){let t=p().$implicit,d=p(2);r(5),M(" ",t.loggedby,""),r(3),_(d.totalPresent(t)),r(4),_(t.modifiedOn||"\u2014"),r(2),l("ngIf",d.isDisputed(t))}}function Ni(e,m){e&1&&(i(0,"td")(1,"span",39),a(2,"Pending"),n()())}function zi(e,m){if(e&1){let t=C();i(0,"tr")(1,"td",65),a(2),n(),i(3,"td",66),a(4),V(5,"date"),n(),i(6,"td",67),a(7),n(),i(8,"td")(9,"a",68),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))}),i(10,"small",69),a(11),n(),a(12),n(),i(13,"small",70)(14,"span",71),a(15),n(),a(16," Timetable: "),i(17,"strong"),a(18),n(),a(19,", Ref: "),i(20,"strong"),a(21),n()()(),s(22,Vi,15,4,"td",19)(23,Ni,3,0,"td",19),n()}if(e&2){let t=m.$implicit,d=m.index,o=p().showLogged,c=p();r(2),_(d+1),r(2),_(xt(5,19,c.eventDisplayDate(t))),r(3),S("",t.stime,"-",t.etime,""),r(2),k("pe-none",c.isDetailLoading)("opacity-50",c.isDetailLoading),l("routerLink",L(21,Ae)),z("aria-busy",c.isDetailLoading),r(2),_(t.batchName),r(),S(" ",t.subjectName," (",t.subjectCode,") "),r(3),S("",t.stime,"-",t.etime," \xB7 "),r(3),_(c.displayTimetableName(t)),r(3),_(c.displayReferenceCode(t)),r(),l("ngIf",o&&t.attenStatus==="YES"),r(),l("ngIf",!o||t.attenStatus==="NO")}}function Fi(e,m){e&1&&(i(0,"span",86),a(1,"Pending"),n())}function Yi(e,m){e&1&&(i(0,"span",87),a(1,"Logged"),n())}function Ri(e,m){e&1&&(i(0,"span",88),a(1,"Disputed"),n())}function Bi(e,m){if(e&1&&(i(0,"div",80)(1,"span",81),a(2,"Logged by"),n(),i(3,"span",82),a(4),n()()),e&2){let t=p().$implicit;r(4),_(t.loggedby)}}function Ui(e,m){if(e&1&&(i(0,"div",80)(1,"span",81),a(2,"Attendance"),n(),i(3,"span",82),a(4),n()()),e&2){let t=p().$implicit,d=p(2);r(4),_(d.totalPresent(t))}}function $i(e,m){if(e&1&&(i(0,"div",80)(1,"span",81),a(2,"Updated"),n(),i(3,"span",89),a(4),n()()),e&2){let t=p().$implicit;r(4),_(t.modifiedOn||"\u2014")}}function Wi(e,m){if(e&1&&(i(0,"div",80)(1,"span",81),a(2,"Dispute reason"),n(),i(3,"span",82),a(4),n()()),e&2){let t=p().$implicit,d=p(2);r(4),_(d.disputeReason(t))}}function Hi(e,m){if(e&1){let t=C();i(0,"div",74),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.enter",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.space",function(o){let c=x(t).$implicit,g=p(2);return o.preventDefault(),h(g.getEventStudentListVal(c.id,c.subid,c.batid))}),i(1,"div",75)(2,"span",76),a(3),n(),s(4,Fi,2,0,"span",77)(5,Yi,2,0,"span",78)(6,Ri,2,0,"span",79),n(),i(7,"div",80)(8,"span",81),a(9,"Date & time"),n(),i(10,"span",82),a(11),V(12,"date"),n()(),i(13,"div",80)(14,"span",81),a(15,"Batch"),n(),i(16,"span",82),a(17),n()(),i(18,"div",80)(19,"span",81),a(20,"Timetable"),n(),i(21,"span",82),a(22),n()(),i(23,"div",80)(24,"span",81),a(25,"Ref"),n(),i(26,"span",82),a(27),n()(),s(28,Bi,5,1,"div",83)(29,Ui,5,1,"div",83)(30,$i,5,1,"div",83)(31,Wi,5,1,"div",83),i(32,"div",84)(33,"span"),a(34,"View details"),n(),f(35,"i",85),n()()}if(e&2){let t=m.$implicit,d=p().showLogged,o=p();
1k("pe-none",o.isDetailLoading)("opacity-50",o.isDetailLoading),z("aria-label","View attendance for "+t.subjectName)("aria-busy",o.isDetailLoading),r(3),S(" ",t.subjectName," (",t.subjectCode,") "),r(),l("ngIf",!d||t.attenStatus==="NO"),r(),l("ngIf",d&&t.attenStatus==="YES"),r(),l("ngIf",d&&t.attenStatus==="YES"&&o.isDisputed(t)),r(5),pt("",xt(12,21,o.eventDisplayDate(t))," \xB7 ",t.stime,"-",t.etime,""),r(6),_(t.batchName),r(5),_(o.displayTimetableName(t)),r(5),_(o.displayReferenceCode(t)),r(),l("ngIf",d&&t.attenStatus==="YES"),r(),l("ngIf",d&&t.attenStatus==="YES"),r(),l("ngIf",d&&t.attenStatus==="YES"),r(),l("ngIf",d&&t.attenStatus==="YES"&&o.isDisputed(t))}}function qi(e,m){if(e&1&&(i(0,"div",42)(1,"div",56)(2,"table",57)(3,"thead")(4,"tr")(5,"th",58),a(6,"#"),n(),i(7,"th",59),a(8,"Date"),n(),i(9,"th",60),a(10,"Time"),n(),i(11,"th",59),a(12,"Subject Details"),n(),i(13,"th",61),a(14,"Attendance Status"),n()()(),i(15,"tbody"),s(16,zi,24,22,"tr",62),n()()(),i(17,"div",63),s(18,Hi,36,23,"div",64),n()()),e&2){let t=m.$implicit;r(16),l("ngForOf",t),r(2),l("ngForOf",t)}}function Ki(e,m){if(e&1&&(i(0,"small",70),a(1," Department: "),i(2,"strong"),a(3),n()()),e&2){let t=p().$implicit;r(3),S("",t.degreeName," ",t.departmentName,"")}}function Gi(e,m){if(e&1&&(i(0,"span"),a(1),n()),e&2){let t=p().$implicit,d=p(2);r(),M(" \xB7 ",d.totalPresent(t),"")}}function Ji(e,m){if(e&1&&(i(0,"small",69),a(1," Raised on: "),i(2,"strong"),a(3),n()()),e&2){let t=p().$implicit,d=p(2);r(3),_(d.disputeRaisedOn(t))}}function Qi(e,m){if(e&1){let t=C();i(0,"tr")(1,"td",65),a(2),n(),i(3,"td",66),a(4),V(5,"date"),n(),i(6,"td",67),a(7),n(),i(8,"td")(9,"a",68),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))}),i(10,"small",69),a(11),n(),a(12),n(),i(13,"small",70)(14,"span",71),a(15),n(),a(16," Timetable: "),i(17,"strong"),a(18),n(),a(19,", Ref: "),i(20,"strong"),a(21),n()(),s(22,Ki,4,2,"small",91),n(),i(23,"td")(24,"span",92),a(25,"Disputed"),n(),i(26,"small",93)(27,"strong"),a(28,"Reason:"),n(),a(29),n(),i(30,"small",70),a(31," Logged by: "),i(32,"strong"),a(33),n(),s(34,Gi,2,1,"span",19),n(),s(35,Ji,4,1,"small",94),i(36,"small",95),a(37," Open this hour and check attendance with the logsheet. "),n()()()}if(e&2){let t=m.$implicit,d=m.index,o=p(2);r(2),_(d+1),r(2),_(xt(5,22,o.eventDisplayDate(t))),r(3),S("",t.stime,"-",t.etime,""),r(2),k("pe-none",o.isDetailLoading)("opacity-50",o.isDetailLoading),l("routerLink",L(24,Ae)),z("aria-busy",o.isDetailLoading),r(2),_(t.batchName),r(),S(" ",t.subjectName," (",t.subjectCode,") "),r(3),S("",t.stime,"-",t.etime," \xB7 "),r(3),_(o.displayTimetableName(t)),r(3),_(o.displayReferenceCode(t)),r(),l("ngIf",t.departmentName),r(7),M(" ",o.disputeReason(t)," "),r(4),_(t.loggedby||"\u2014"),r(),l("ngIf",o.totalPresent(t)),r(),l("ngIf",o.disputeRaisedOn(t)!=="\u2014")}}function Xi(e,m){if(e&1&&(i(0,"div",80)(1,"span",81),a(2,"Department"),n(),i(3,"span",82),a(4),n()()),e&2){let t=p().$implicit;r(4),S("",t.degreeName," ",t.departmentName,"")}}function Zi(e,m){if(e&1&&(i(0,"div",80)(1,"span",81),a(2,"Raised on"),n(),i(3,"span",82),a(4),n()()),e&2){let t=p().$implicit,d=p(2);r(4),_(d.disputeRaisedOn(t))}}function ta(e,m){if(e&1){let t=C();i(0,"div",74),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.enter",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.space",function(o){let c=x(t).$implicit,g=p(2);return o.preventDefault(),h(g.getEventStudentListVal(c.id,c.subid,c.batid))}),i(1,"div",75)(2,"span",76),a(3),n(),i(4,"span",88),a(5,"Disputed"),n()(),i(6,"div",80)(7,"span",81),a(8,"Date & time"),n(),i(9,"span",82),a(10),V(11,"date"),n()(),i(12,"div",80)(13,"span",81),a(14,"Batch"),n(),i(15,"span",82),a(16),n()(),s(17,Xi,5,2,"div",83),i(18,"div",80)(19,"span",81),a(20,"Logged by"),n(),i(21,"span",82),a(22),n()(),i(23,"div",80)(24,"span",81),a(25,"Dispute reason"),n(),i(26,"span",82),a(27),n()(),s(28,Zi,5,1,"div",83),i(29,"div",84)(30,"span"),a(31,"Check attendance"),n(),f(32,"i",85),n()()}if(e&2){let t=m.$implicit,d=p(2);
1k("pe-none",d.isDetailLoading)("opacity-50",d.isDetailLoading),z("aria-label","Review disputed attendance for "+t.subjectName)("aria-busy",d.isDetailLoading),r(3),S(" ",t.subjectName," (",t.subjectCode,") "),r(7),pt("",xt(11,16,d.eventDisplayDate(t))," \xB7 ",t.stime,"-",t.etime,""),r(6),_(t.batchName),r(),l("ngIf",t.departmentName),r(5),_(t.loggedby||"\u2014"),r(5),_(d.disputeReason(t)),r(),l("ngIf",d.disputeRaisedOn(t)!=="\u2014")}}function ea(e,m){if(e&1&&(i(0,"div",42)(1,"div",56)(2,"table",90)(3,"thead")(4,"tr")(5,"th",58),a(6,"#"),n(),i(7,"th",59),a(8,"Date"),n(),i(9,"th",60),a(10,"Time"),n(),i(11,"th",59),a(12,"Subject Details"),n(),i(13,"th",59),a(14,"Dispute details"),n()()(),i(15,"tbody"),s(16,Qi,38,25,"tr",62),n()()(),i(17,"div",63),s(18,ta,33,18,"div",64),n()()),e&2){let t=m.$implicit;r(16),l("ngForOf",t),r(2),l("ngForOf",t)}}var Ut=Jt.default??Jt,Gt=240,ke=(()=>{class e{eventService;errorHandler;markingService;modalService;oldPendingLookbackDays=Gt;quickRange="TODAY";pickerValue=[];startDate=new Date;endDate=new Date;fromDate="";toDate="";facultyEvents=[];todayPendingEvents=[];oldPendingEvents=[];disputedEvents=[];todayLoggedEvents=[];present;absent;showTable;isViewLoading=!1;isDetailLoading=!1;isOldPendingLoading=!1;isDisputesLoading=!1;oldPendingLoadError=!1;disputesLoadError=!1;constructor(t,d,o,c){this.eventService=t,this.errorHandler=d,this.markingService=o,this.modalService=c}ngOnInit(){this.applyRange("TODAY")}get isTodaySegmentedView(){return this.quickRange==="TODAY"}get hasTodaySegmentedData(){return this.todayPendingEvents.length>0||this.oldPendingEvents.length>0||this.disputedEvents.length>0||this.todayLoggedEvents.length>0}isActive(t){return this.quickRange===t}demo(t){!t||!t[0]||!t[1]||(this.startDate=new Date(t[0]),this.endDate=new Date(t[1]),this.quickRange="CUSTOM",this.updateFormattedDates())}applyRange(t,d){if(this.quickRange=t,t==="CUSTOM"){d&&(d.focus(),d.click());return}let o=new Date;if(t==="TODAY")this.startDate=new Date(o),this.endDate=new Date(o);else if(t==="YESTERDAY"){let c=new Date(o);c.setDate(o.getDate()-1),this.startDate=new Date(c),this.endDate=new Date(c)}else{let c=new Date(o);c.setDate(o.getDate()-6),this.startDate=new Date(c),this.endDate=new Date(o)}this.pickerValue=[],this.updateFormattedDates(),this.getFacultyEvents()}updateFormattedDates(){this.fromDate=Ut(this.startDate).format("DD-MMM-YYYY"),this.toDate=Ut(this.endDate).format("DD-MMM-YYYY")}getSelectedRangeLabel(){return this.quickRange==="TODAY"?"Today":this.quickRange==="YESTERDAY"?"Yesterday":this.quickRange==="LAST_7_DAYS"?"Last 7 Days":`${Ut(this.startDate).format("DD/MM/yyyy")} - ${Ut(this.endDate).format("DD/MM/yyyy")}`}getFacultyEvents(){if(this.isTodaySegmentedView){this.loadTodayView();return}this.clearTodaySegments(),this.isViewLoading=!0,this.eventService.getTimetable(this.fromDate,this.toDate).then(t=>{this.facultyEvents=Array.isArray(t)?t:[],this.isViewLoading=!1,this.showTable=this.facultyEvents.length!==0}).catch(t=>{this.isViewLoading=!1,this.showTable=!1,this.errorHandler.handleError(t)})}loadTodayView(){this.isViewLoading=!0,this.isDisputesLoading=!0,this.isOldPendingLoading=!0,this.oldPendingLoadError=!1,this.disputesLoadError=!1,this.clearTodaySegments();let t=this.eventService.getTimetable(this.fromDate,this.toDate).catch(c=>(this.errorHandler.handleError(c),[])),d=this.eventService.getStaffRecentPending(Gt).catch(()=>(this.oldPendingLoadError=!0,[])),o=this.eventService.getStaffRecentDisputes(Gt).catch(()=>(this.disputesLoadError=!0,[]));Promise.all([t,d,o]).then(([c,g,v])=>{let A=Array.isArray(c)?c:[],tt=Array.isArray(g)?g:[],Be=Array.isArray(v)?v:[];this.todayPendingEvents=this.sortEvents(A.filter($t=>$t.attenStatus==="NO")),this.todayLoggedEvents=this.sortEvents(A.filter($t=>$t.attenStatus==="YES")),this.oldPendingEvents=this.sortEvents(tt),this.disputedEvents=this.sortEvents(Be),this.isViewLoading=!1,this.isOldPendingLoading=!1,this.isDisputesLoading=!1,this.showTable=this.hasTodaySegmentedData})}clearTodaySegments(){this.todayPendingEvents=[],this.oldPendingEvents=[],this.disputedEvents=[],this.todayLoggedEvents=[]}isDisputed(t){return t?.eventStatus?.Status==="DISPUTE"||t?.eventStatus?.status==="DISPUTE"}disputeReason(t){let d=t?.eventStatus?.disputeReason||"";return d&&d.trim().length>0?d:"No reason recorded"}disputeRaisedOn(t){return t?.eventStatus?.modifiedOn||t?.eventStatus?.createdOn||"\u2014"}sortEvents(t){return[...t].sort((d,o)=>{let c=this.eventSortKey(d),g=this.eventSortKey(o);if(c!==g)return g-c;let v=(d.stime||"").toString(),A=(o.stime||"").toString();return v!==A?v.localeCompare(A):(d.subjectName||"").localeCompare(o.subjectName||"")})}eventSortKey(t){return t?.date?.$date!=null?new Date(t.date.$date).getTime():t?.stringDate!=null?new Date(t.stringDate).getTime():0}displayTimetableName(t){return t?.timetableName||"\u2014"}displayReferenceCode(t){return t?.referenceCode||"\u2014"}eventDisplayDate(t){return t?.date?.$date!=null?new Date(t.date.$date):t?.stringDate!=null?new Date(t.stringDate):null}totalPresent(t){return dt(t)}getEventStudentListVal(t,d,o){lt(this.markingService,this.modalService,this,t,o,c=>this.reload(c),void 0,this.errorHandler)}reload(t){t?.eventId&&this.patchMyAttendanceEvent(t)||this.getFacultyEvents()}patchMyAttendanceEvent(t){let d=[this.todayPendingEvents,this.todayLoggedEvents,this.oldPendingEvents,this.disputedEvents,this.facultyEvents];for(let o of d){let c=o?.findIndex(v=>v.id===t.eventId);if(c==null||c<0)continue;let g=o[c];return rt(g,t),o===this.todayPendingEvents?(this.todayPendingEvents=this.todayPendingEvents.filter(v=>v.id!==t.eventId),this.todayLoggedEvents=this.sortEvents([...this.todayLoggedEvents,g])):o===this.oldPendingEvents&&(this.oldPendingEvents=this.oldPendingEvents.filter(v=>v.id!==t.eventId),this.todayLoggedEvents=this.sortEvents([...this.todayLoggedEvents,g])),!0}return!1}static \u0275fac=function(d){return new(d||e)(u(T),u(ot),u(ct),u(I))};static \u0275cmp=y({type:e,selectors:[["app-my-attendance"]],decls:35,vars:21,consts:[["customDatePicker",""],["eventList",""],["disputeEventList",""],["todayPendingEmpty",""],["disputedEmpty",""],["oldPendingEmpty",""],["todayLoggedEmpty",""],[1,"jp-ims-admin-tab-page","jp-ims-attendance-my-tab","jp-staff-leave-dashboard"],[1,"jp-sl-filters-card"],[1,"jp-sl-filters-row"],[1,"jp-sl-filter-group","jp-attendance-date-filter"],[1,"jp-sl-date-control
1s"],[1,"jp-sl-date-presets"],["type","button",1,"jp-sl-preset-btn",3,"click"],["type","text","placeholder","Date range","bsDaterangepicker","",1,"jp-sl-filter-date",3,"bsValueChange","bsValue","hidden"],[1,"jp-sl-filter-group","jp-attendance-filter-actions"],["type","button",1,"jp-sl-btn-refresh","jp-btn-view",3,"click","disabled"],["aria-hidden","true",1,"fa"],[1,"jp-sl-as-of-hint","mb-0"],[4,"ngIf"],["class","jp-card jp-attendance-results-card",4,"ngIf"],["class","jp-alert jp-alert-warning mb-0",4,"ngIf"],[1,"jp-attendance-today-section","jp-attendance-today-section--pending-today"],[1,"d-flex","flex-wrap","justify-content-between","align-items-start","gap-2","mb-2"],[1,"jp-sl-section-title","jp-attendance-section-title--pending-today","mb-0"],["class","badge text-bg-danger",4,"ngIf"],[1,"jp-attendance-today-section","jp-attendance-today-section--disputed"],[1,"jp-sl-section-title","jp-attendance-section-title--disputed","mb-0"],[1,"text-muted","small","mb-0"],["class","badge text-bg-warning",4,"ngIf"],["class","jp-alert jp-alert-warning mb-2",4,"ngIf"],["class","jp-alert jp-alert-info mb-2",4,"ngIf"],["class","jp-loading text-center py-2",4,"ngIf"],[1,"jp-attendance-today-section","jp-attendance-today-section--pending-old"],[1,"jp-sl-section-title","jp-attendance-section-title--pending-old","mb-0"],[1,"jp-attendance-today-section","jp-attendance-today-section--logged-today"],[1,"jp-sl-section-title","jp-attendance-section-title--logged-today","mb-0"],["class","badge text-bg-success",4,"ngIf"],["class","jp-loading text-center py-4",4,"ngIf"],[1,"badge","text-bg-danger"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"jp-card","jp-attendance-results-card"],[1,"card-body","py-3"],[1,"badge","text-bg-warning"],[1,"jp-alert","jp-alert-warning","mb-2"],["aria-hidden","true",1,"fa","fa-exclamation-triangle","jp-alert-icon"],[1,"jp-alert-content"],[1,"jp-alert-message","mb-0"],[1,"jp-alert","jp-alert-info","mb-2"],["aria-hidden","true",1,"fa","fa-info-circle","jp-alert-icon"],[1,"jp-loading","text-center","py-2"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm","me-2"],[1,"badge","text-bg-success"],[1,"jp-loading","text-center","py-4"],[1,"jp-alert","jp-alert-warning","mb-0"],[1,"table-responsive","jp-list-table-wrap","d-none","d-md-block"],["role","grid","aria-label","My attendance events",1,"table","table-hover","mb-0","jp-attendance-events-table","jp-list-table"],["scope","col",1,"jp-list-table-col-index","d-none","d-lg-table-cell"],["scope","col"],["scope","col",1,"d-none","d-lg-table-cell"],["scope","col",1,"jp-list-table-col-compact"],[4,"ngFor","ngForOf"],[1,"jp-mobile-cards","d-block","d-md-none"],["class","jp-list-card jp-attendance-event-mobile-card jp-attendance-event-mobile-card--interactive","role","button","tabindex","0",3,"pe-none","opacity-50","click","keydown.enter","keydown.space",4,"ngFor","ngForOf"],[1,"text-center","text-muted","jp-list-table-col-index","d-none","d-lg-table-cell"],[1,"text-nowrap"],[1,"text-nowrap","d-none","d-lg-table-cell"],[1,"fw-semibold","text-decoration-none",3,"click","routerLink"],[1,"text-muted","d-block"],[1,"text-muted","d-block","mt-1"],[1,"d-lg-none"],[1,"text-muted"],["aria-hidden","true",1,"fa","fa-user","opacity-50"],["role","button","tabindex","0",1,"jp-list-card","jp-attendance-event-mobile-card","jp-attendance-event-mobile-card--interactive",3,"click","keydown.enter","keydown.space"],[1,"jp-list-card-row","jp-list-card-title"],[1,"jp-attendance-mobile-card-subject","fw-semibold","text-break"],["class","badge text-bg-danger flex-shrink-0",4,"ngIf"],["class","badge text-bg-success flex-shrink-0",4,"ngIf"],["class","badge text-bg-warning flex-shrink-0",4,"ngIf"],[1,"jp-list-card-row"],[1,"jp-list-card-label"],[1,"jp-list-card-value"],["class","jp-list-card-row",4,"ngIf"],["aria-hidden","true",1,"jp-attendance-mobile-card-cta"],[1,"fa","fa-chevron-right"],[1,"badge","text-bg-danger","flex-shrink-0"],[1,"badge","text-bg-success","flex-shrink-0"],[1,"badge","text-bg-warning","flex-shrink-0"],[1,"jp-list-card-value","jp-list-card-date"],["role","grid","aria-label","Disputed attendance events",1,"table","table-hover","mb-0","jp-attendance-events-table","jp-list-table"],["class","text-muted d-block mt-1",4,"ngIf"],[1,"badge","text-bg-warning","mb-1"],[1,"d-block"],["class","text-muted d-block",4,"ngIf"],[1,"text-primary","d-block","mt-1"]],template:function(d,o){if(d&1){let c=C();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"label"),a(5,"As of date"),n(),i(6,"div",11)(7,"div",12)(8,"button",13),b("click",function(){return x(c),h(o.applyRange("TODAY"))}),a(9," Today "),n(),i(10,"button",13),b("click",function(){return x(c),h(o.applyRange("YESTERDAY"))}),a(11," Yesterday "),n(),i(12,"button",13),b("click",function(){return x(c),h(o.applyRange("LAST_7_DAYS"))}),a(13," Last 7 Days "),n(),i(14,"button",13),b("click",function(){x(c);let v=w(17);return h(o.applyRange("CUSTOM",v))}),a(15," Custom "),n()(),i(16,"input",14,0),b("bsValueChange",function(v){return x(c),h(o.demo(v))}),n()()(),i(18,"div",15)(19,"button",16),b("click",function(){return x(c),h(o.getFacultyEvents())}),f(20,"i",17),i(21,"span"),a(22),n()()()(),i(23,"p",18),a(24," Showing data as of "),i(25,"strong"),a(26),n()()(),s(27,Ii,37,16,"ng-container",19)(28,Ti,2,4,"div",20)(29,Ai,5,0,"div",21)(30,ki,5,0,"div",21),n(),s(31,qi,19,2,"ng-template",null,1,st)(33,ea,19,2,"ng-template",null,2,st)}d&2&&(r(8),k("active",o.quickRange==="TODAY"),r(2),k("active",o.quickRange==="YESTE
1RDAY"),r(2),k("active",o.quickRange==="LAST_7_DAYS"),r(2),k("active",o.quickRange==="CUSTOM"),r(2),l("bsValue",o.pickerValue)("hidden",o.quickRange!=="CUSTOM"),r(3),l("disabled",o.isViewLoading),r(),k("fa-refresh",!o.isViewLoading)("fa-spin",o.isViewLoading),r(2),_(o.isViewLoading?"Loading\u2026":"View"),r(4),_(o.getSelectedRangeLabel()),r(),l("ngIf",o.isTodaySegmentedView),r(),l("ngIf",!o.isTodaySegmentedView&&o.showTable===!0),r(),l("ngIf",!o.isTodaySegmentedView&&o.showTable===!1&&!o.isViewLoading),r(),l("ngIf",o.isTodaySegmentedView&&!o.isViewLoading&&!o.isOldPendingLoading&&!o.hasTodaySegmentedData))},dependencies:[R,j,P,ne,X,Z,N],styles:["[_nghost-%COMP%]{display:block}"]})}return e})();var Qt=bt(Ct());var na=e=>({ranges:e}),ia=()=>[];function aa(e,m){if(e&1&&(i(0,"ng-option",14),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),_(t.name)}}function oa(e,m){if(e&1&&(i(0,"ng-option",14),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),_(t.name)}}function ra(e,m){if(e&1){let t=C();i(0,"div",4)(1,"label",5),a(2,"Date"),n(),i(3,"input",15),b("bsValueChange",function(o){x(t);let c=p();return h(c.demo(o))}),n()()}if(e&2){let t=p();r(3),l("bsConfig",F(1,na,t.ranges))}}function da(e,m){e&1&&f(0,"i",22)}function la(e,m){e&1&&(i(0,"span"),a(1,"View"),n())}function ca(e,m){e&1&&(i(0,"span",23),f(1,"span",24),a(2," Loading\u2026 "),n())}function ma(e,m){if(e&1){let t=C();i(0,"div",16)(1,"label",17),a(2,"\xA0"),n(),i(3,"button",18),b("click",function(){x(t);let o=p();return h(o.getStaffHandleEvents())}),s(4,da,1,0,"i",19)(5,la,2,0,"span",20)(6,ca,3,0,"span",21),n()()}if(e&2){let t=p();r(3),l("disabled",t.isViewLoading),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",t.isViewLoading)}}function pa(e,m){if(e&1&&(i(0,"td")(1,"small",42)(2,"strong"),a(3,"Loggedby:"),n(),a(4),f(5,"br"),i(6,"strong"),a(7),n(),f(8,"br"),a(9," Updated: "),i(10,"strong"),a(11),n()()()),e&2){let t=p().$implicit,d=p(2);r(4),M(" ",t.loggedby,""),r(3),_(d.totalPresent(t)),r(4),_(t.modifiedOn)}}function sa(e,m){e&1&&(i(0,"td")(1,"span",43),a(2,"Pending"),n()())}function ga(e,m){if(e&1){let t=C();i(0,"tr")(1,"td",35),a(2),n(),i(3,"td",36),a(4),V(5,"date"),n(),i(6,"td",37),a(7),n(),i(8,"td")(9,"a",38),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))}),i(10,"small",39),a(11),n(),a(12),n(),i(13,"small",40)(14,"span",41),a(15),n(),a(16," Timetable: "),i(17,"strong"),a(18),n(),a(19,", Ref: "),i(20,"strong"),a(21),n()()(),s(22,pa,12,3,"td",20)(23,sa,3,0,"td",20),n()}if(e&2){let t=m.$implicit,d=m.index,o=p(2);r(2),_(d+1),r(2),_(K(5,19,t.date.$date,"dd/MM/yyyy")),r(3),S("",t.stime,"-",t.etime,""),r(2),k("pe-none",o.isDetailLoading)("opacity-50",o.isDetailLoading),l("routerLink",L(22,ia)),z("aria-busy",o.isDetailLoading),r(2),_(t.batchName),r(),S(" ",t.subjectName," (",t.subjectCode,") "),r(3),S("",t.stime,"-",t.etime," \xB7 "),r(3),_(t.timetableName),r(3),_(t.referenceCode),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="NO")}}function _a(e,m){e&1&&(i(0,"span",55),a(1,"Pending"),n())}function fa(e,m){e&1&&(i(0,"span",56),a(1,"Logged"),n())}function ua(e,m){if(e&1&&(i(0,"div",49)(1,"span",50),a(2,"Logged by"),n(),i(3,"span",51),a(4),n()()),e&2){let t=p().$implicit;r(4),_(t.loggedby)}}function va(e,m){if(e&1&&(i(0,"div",49)(1,"span",50),a(2,"Attendance"),n(),i(3,"span",51),a(4),n()()),e&2){let t=p().$implicit,d=p(2);r(4),_(d.totalPresent(t))}}function ba(e,m){if(e&1&&(i(0,"div",49)(1,"span",50),a(2,"Updated"),n(),i(3,"span",57),a(4),n()()),e&2){let t=p().$implicit;r(4),_(t.modifiedOn)}}function xa(e,m){if(e&1){let t=C();i(0,"div",44),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.enter",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.space",function(o){let c=x(t).$implicit,g=p(2);return o.preventDefault(),h(g.getEventStudentListVal(c.id,c.subid,c.batid))}),i(1,"div",45)(2,"span",46),a(3),n(),s(4,_a,2,0,"span",47)(5,fa,2,0,"span",48),n(),i(6,"div",49)(7,"span",50),a(8,"Date & time"),n(),i(9,"span",51),a(10),V(11,"date"),n()(),i(12,"div",49)(13,"span",50),a(14,"Batch"),n(),i(15,"span",51),a(16),n()(),i(17,"div",49)(18,"span",50),a(19,"Timetable"),n(),i(20,"span",51),a(21
1),n()(),i(22,"div",49)(23,"span",50),a(24,"Ref"),n(),i(25,"span",51),a(26),n()(),s(27,ua,5,1,"div",52)(28,va,5,1,"div",52)(29,ba,5,1,"div",52),i(30,"div",53)(31,"span"),a(32,"View details"),n(),f(33,"i",54),n()()}if(e&2){let t=m.$implicit,d=p(2);k("pe-none",d.isDetailLoading)("opacity-50",d.isDetailLoading),z("aria-label","View attendance for "+t.subjectName)("aria-busy",d.isDetailLoading),r(3),S(" ",t.subjectName," (",t.subjectCode,") "),r(),l("ngIf",t.attenStatus=="NO"),r(),l("ngIf",t.attenStatus=="YES"),r(5),pt("",K(11,19,t.date.$date,"dd/MM/yyyy")," \xB7 ",t.stime,"-",t.etime,""),r(6),_(t.batchName),r(5),_(t.timetableName),r(5),_(t.referenceCode),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="YES")}}function ha(e,m){if(e&1&&(i(0,"div",25)(1,"div",26)(2,"table",27)(3,"thead")(4,"tr")(5,"th",28),a(6,"#"),n(),i(7,"th",29),a(8,"Date"),n(),i(9,"th",30),a(10,"Time"),n(),i(11,"th",29),a(12,"Subject Details"),n(),i(13,"th",31),a(14,"Attendance Status"),n()()(),i(15,"tbody"),s(16,ga,24,23,"tr",32),n()()(),i(17,"div",33),s(18,xa,34,22,"div",34),n()()),e&2){let t=p();r(16),l("ngForOf",t.staffHandledEvents),r(2),l("ngForOf",t.staffHandledEvents)}}function Ca(e,m){e&1&&(i(0,"div",58),f(1,"i",59),i(2,"div",60)(3,"p",61),a(4,"Sorry! No event found."),n()()())}var Le=Qt.default??Qt,Ve=(()=>{class e{facDeptService;eventsService;eventService;markingService;modalService;errorHandler;facultyDepts;fac;staffs;staff;selectedStaffId;ranges=[{value:[new Date(new Date().setDate(new Date().getDate())),new Date],label:"Today"},{value:[new Date(new Date().setDate(new Date().getDate()-1)),new Date(new Date().setDate(new Date().getDate()-1))],label:"Yesterday"},{value:[new Date(new Date().setDate(new Date().getDate()-7)),new Date],label:"Last 7 Days"}];startDate=new Date;endDate=new Date;fromDate;toDate;staffHandledEvents;present;absent;eventData;status;subject;showTable;isDepartmentLoading=!1;isStaffLoading=!1;isViewLoading=!1;isDetailLoading=!1;constructor(t,d,o,c,g,v){this.facDeptService=t,this.eventsService=d,this.eventService=o,this.markingService=c,this.modalService=g,this.errorHandler=v}ngOnInit(){this.getFaculty()}getFaculty(){this.isDepartmentLoading=!0,this.facDeptService.getAllFacultyDepartments().then(t=>{this.facultyDepts=t,this.isDepartmentLoading=!1})}onChange(t){this.isStaffLoading=!0,this.eventsService.getStaffByFacultyDept(t.id).then(d=>{this.staffs=d,this.isStaffLoading=!1}).catch(()=>{this.isStaffLoading=!1})}onStaffSelected(t){this.selectedStaffId=t?.id}demo(t){this.startDate=t[0].toString(),this.endDate=t[1].toString(),this.fromDate=Le(new Date(this.startDate)).format("DD-MMM-YYYY"),this.toDate=Le(new Date(this.endDate)).format("DD-MMM-YYYY")}getStaffHandleEvents(){this.isViewLoading=!0,this.eventService.getStaffAttendance(this.fromDate,this.toDate,this.selectedStaffId).then(t=>{this.staffHandledEvents=t,this.isViewLoading=!1,this.staffHandledEvents.length!=0?this.showTable=!0:this.showTable=!1})}totalPresent(t){return dt(t)}getEventStudentListVal(t,d,o){lt(this.markingService,this.modalService,this,t,o,c=>this.reload(c),"staffTab",this.errorHandler)}reload(t){t?.eventId&&this.patchStaffEvent(t)||this.getStaffHandleEvents()}patchStaffEvent(t){let d=this.staffHandledEvents?.find(o=>o.id===t.eventId);return d?(rt(d,t),!0):!1}static \u0275fac=function(d){return new(d||e)(u(oe),u(he),u(T),u(ct),u(I),u(ot))};static \u0275cmp=y({type:e,selectors:[["app-staff-attendance"]],decls:23,vars:12,consts:[[1,"jp-ims-admin-tab-page","jp-ims-attendance-staff-tab"],[1,"jp-dashboard-filter-bar"],[1,"jp-attendance-filter-heading"],[1,"jp-filter-row"],[1,"jp-filter-item"],[1,"jp-filter-label"],["placeholder","Select faculty department","groupBy","facultyName",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["value","",3,"disabled"],[3,"value",4,"ngFor","ngForOf"],["placeholder","Select staff","groupBy","usertype",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["class","jp-filter-item",4,"ngIf"],["class","jp-filter-actions",4,"ngIf"],["class","jp-card jp-attendance-results-card",4,"ngIf"],["class","jp-alert jp-alert-warning mb-0",4,"ngIf"],[3,"value"],["type","text","placeholder","Select date range","bsDaterangepicker","",1,"jp-form-control",3,"bsValueChange","bsConfig"],[1,"jp-filter-actions"],[1,"jp-filter-label","d-none","d-md-block"],["type","button",1,"jp-btn","jp-btn-primary","jp-btn-view",3,"click","disabled"],["class","fa fa-eye me-1","aria-hidden","true",4,"ngIf"],[4,"ngIf"],["class","d-inline-flex align-items-center gap-2",4,"ngIf"],["aria-hidden","true",1,"fa","fa-eye","me-1"],[1,"d-inline-flex","align-items-center","gap-2"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm"],[1,"jp-card","jp-attendance-results-card"],[1,"table-responsive","jp-list-table-wrap","d-none","d-md-block"],["role","grid","aria-label","Staff attendance events",1,"table","table-hover","mb-0","jp-attendance-events-table","jp-list-table"],["scope","col",1,"jp-list-table-col-index","d-none","d-lg-table-cell"],["scope","col"],["scope","col",1,"d-none","d-lg-table-cell"],["scope","col",1,"jp-list-table-col-compact"],[4,"ngFor","ngForOf"],[1,"jp-mobile-cards","d-block","d-md-none"],["class","jp-list-card jp-attendance-event-mobile-card jp-attendance-event-mobile-card--interactive","role","button","tabindex","0",3,"pe-none","opacity-50","click","keydown.enter","keydown.space",4,"ngFor","ngForOf"],[1,"text-center","text-muted","jp-list-table-col-index","d-none","d-lg-table-cell"],[1,"text-nowrap"],[1,"text-nowrap","d-none","d-lg-table-cell"],[1,"fw-semibold","text-decoration-none",3,"click","routerLink"],[1,"text-muted","d-block"],[1,"text-muted","d-block","mt-1"],[1,"d-lg-none"],[1,"text-muted"],[1,"badge","text-bg-danger"],["role","button","tabindex","0",1,"jp-list-card","jp-attendance-event-mobile-card","jp-attendance-event-mobile-card--interactive",3,"click","keydown.enter","keydown.space"],[1,"jp-list-card-row","jp-list-card-title"],[1,"jp-attendance-mobile-card-subject","fw-semibold","text-break"],["class","badge text-bg-danger flex-shrink-0",4,"ngIf"],["class","badge text-bg-success flex-shrink-0",4,"ngIf"],[1,"jp-list-card-row"],[1,"jp-list-card-label"],[1,"jp-list-card-value"],["class","jp-list-card-row",4,"ngIf"],["aria-hidden","true",1,"jp-attendance-mobile-card-cta"],[1,"fa","fa-chevron-right"],[1,"badge","text-bg-danger","flex-shrink-0"],[1,"badge","text-bg-success","flex-shrink-0"],[1,"jp-list-card-value","jp-list-card-date"],[1,"jp-alert","jp-alert-warning","mb-0"],["aria-hidden","true",1,"fa","fa-exclamation-triangle","jp-alert-icon"],[1,"jp-alert-content"],[1,"jp-alert-message","mb-0"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"h2",2),a(3,"Staff Attendance Report"),n(),i(4,"div",3)(5,"div",4)(6,"label",5),a(7,"Faculty Department"),n(),i(8,"ng-select",6),D("ngModelChange",function(g){return O(o.fac,g)||(o.fac=g),g}),b("change",function(){return o.onChange(o.fac)}),i(9,"ng-option",7),a(10,"Select faculty department"),n(),s(11,aa,2,2,"ng-option",8),n()(),i(12,"div",4)(13,"label",5),a(14,"Staff"),n(),i(15,"ng-select",9),D("ngModelChange",function(g){return O(o.staff,g)||(o.staff=g),g}),b("change",function(){return o.onStaffSelected(o.staff)}),i(16,"ng-option",7),a(17,"Select staff"),n(),s(18,oa,2,2,"ng-option",8),n()(),s(19,ra,4,3,"div",10)(20,ma,7,4,"div",11),n()(),s(21,ha,19,2,"div",12)(22,Ca,5,0,"div",13),n()),d&2&&(r(8),E("ngModel",o.fac),l("clearable",!1)("loading",o.isDepartmentLoading),r(3),l("ngForOf",o.facultyDepts),r(4),E("ngModel",o.staff),l("clearable",!1)("loading",o.isStaffLoading),r(3),l("ngForOf",o.staffs),r(),l("ngIf",o.staff!=null),r(),l("ngIf",o.staff!=null),r(),l("ngIf",o.showTable==!0),r(),l("ngIf",o.showTable==!1))},dependencies:[R,B,U,j,P,Q,J,X,Z,N],styles:[".container.card.custom-card[_ngcontent-%COMP%]{margin:8px!important;border-radius:12px!important;box-shadow:0 2px 8px #0000001a!important;padding:16px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-top:0!important;margin-bottom:20px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:12px 0!important;border-bottom:2px solid #dee2e6!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.2rem!important;font-weight:600!important;color:#2c3e50!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:20px!important;margin-bottom:20px!important;align-items:center!important}.form-label[_ngcontent-%COMP%]{font-weight:600!important;color:#2c3e50!important;margin-bottom:8px!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important;font-weight:600!important}ng-select[_ngcontent-%COMP%]{width:100%!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #ddd!important;min-height:44px!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]:focus{border-color:#007bff!important;box-shadow:0 0 0 .2rem #007bff40!important}ng-select[_ngcontent-%COMP%]   .ng-placeholder[_ngcontent-%COMP%]{color:#6c757d!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-option[_ngcontent-%COMP%]{padding:10px 12px!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-option.ng-option-selected[_ngcontent-%COMP%]{background-color:#007bff!important;color:#fff!important}.form-control[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #ddd!important;padding:10px 12px!important;font-size:.9rem!important;transition:border-color .3s ease!important}.form-control[_ngcontent-%COMP%]:focus{border-color:#007bff!important;box-shadow:0 0 0 .2rem #007bff40!important}.btn[_ngcontent-%COMP%]{border-radius:8px!important;padding:10px 16px!important;font-size:.9rem!important;font-weight:500!important;transition:all .3s ease!important;min-height:44px!important}.btn-success[_ngcontent-%COMP%]{background-color:#28a745!important;border-color:#28a745!important}.btn-success[_ngcontent-%COMP%]:hover:not(:disabled){background-color:#218838!important;border-color:#1e7e34!important;transform:translateY(-1px)!important}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem!important;height:1rem!important}.table[_ngcontent-%COMP%]{border-radius:8px!important;overflow:hidden!important;box-shadow:0 2px 8px #0000001a!important;margin-bottom:0!important}.table-striped[_ngcontent-%COMP%] > tbody[_ngcontent-%COMP%] > tr[_ngcontent-%COMP%]:nth-of-type(odd) > td[_ngcontent-%COMP%]{background-color:#00000005!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f8f9fa!important;border-bottom:2px solid #dee2e6!important;font-weight:600!important;color:#2c3e50!important;padding:12px 8px!important;font-size:.85rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:12px 8px!important;vertical-align:middle!important;font-size:.85rem!important;border-bottom:1px solid #dee2e6!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#007bff!important;text-decoration:none!important;font-weight:500!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline!important;color:#0056b3!important}.badge[_ngcontent-%COMP%]{font-size:.75rem!important;padding:4px 8px!important;border-radius:4px!important;font-weight:500!important}.badge.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}.badge.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important;color:#212529!important}.alert[_ngcontent-%COMP%]{border-radius:8px!important;padding:12px 16px!important;margin:16px 0!important;border:none!important}.alert-warning[_ngcontent-%COMP%]{background-color:#fff3cd!important;color:#856404!important;border-left:4px solid #ffc107!important}@media (max-width: 768px){.container.card.custom-card[_ngcontent-%COMP%]{margin:4px!important;padding:12px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-bottom:16px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:8px 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.1rem!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:16px!important;margin-bottom:16px!important;flex-direction:column!important;align-items:stretch!important}.col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%]{width:100%!important;max-width:100%!important;flex:none!important;padding:0 0 8px!important;text-align:left!important}.col-4.text-end[_ngcontent-%COMP%]{text-align:left!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{font-size:16px!important;min-height:48px!important}.form-control[_ngcontent-%COMP%]{width:100%!important;font-size:16px!important;padding:12px!important}.btn[_ngcontent-%COMP%]{width:100%!important;padding:12px 16px!important;font-size:1rem!important;margin-top:8px!important}.table-responsive[_ngcontent-%COMP%]{border-radius:8px!important;box-shadow:0 2px 8px #0000001a!important}.table[_ngcontent-%COMP%]{font-size:.8rem!important;min-width:600px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px 6px!important;font-size:.75rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(4){min-width:200
1px!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(5){min-width:150px!important}.alert[_ngcontent-%COMP%]{margin:12px 0!important;padding:10px 12px!important;font-size:.85rem!important}.badge[_ngcontent-%COMP%]{font-size:.7rem!important;padding:3px 6px!important}}@media (max-width: 480px){.container.card.custom-card[_ngcontent-%COMP%]{margin:2px!important;padding:8px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-bottom:12px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:6px 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:12px!important;margin-bottom:12px!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{min-height:50px!important;font-size:16px!important}.form-control[_ngcontent-%COMP%]{padding:14px!important;font-size:16px!important}.btn[_ngcontent-%COMP%]{padding:14px 16px!important;font-size:1rem!important}.table[_ngcontent-%COMP%]{font-size:.75rem!important;min-width:500px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 4px!important;font-size:.7rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(4){min-width:180px!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(5){min-width:120px!important}.alert[_ngcontent-%COMP%]{margin:8px 0!important;padding:8px 10px!important;font-size:.8rem!important}.badge[_ngcontent-%COMP%]{font-size:.65rem!important;padding:2px 4px!important}}@media (hover: none) and (pointer: coarse){.btn[_ngcontent-%COMP%]:hover:not(:disabled){transform:none!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:none!important}}*[_ngcontent-%COMP%]{box-sizing:border-box!important}.container[_ngcontent-%COMP%], .row[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%]{overflow:visible!important}.btn[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus, ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]:focus{outline:2px solid #007bff!important;outline-offset:2px!important}.btn[_ngcontent-%COMP%]:disabled{opacity:.6!important;cursor:not-allowed!important}@media (max-width: 768px){.table-responsive[_ngcontent-%COMP%]{-webkit-overflow-scrolling:touch!important;overflow-x:auto!important}}"]})}return e})();var Xt=bt(Ct());var Ma=e=>({ranges:e}),ya=()=>[];function wa(e,m){if(e&1&&(i(0,"ng-option",16),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),S(" ",t.degreeName," - ",t.departmentName," ")}}function Pa(e,m){if(e&1&&(i(0,"ng-option",16),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),_(t.year)}}function Ea(e,m){if(e&1&&(i(0,"ng-option",16),a(1),n()),e&2){let t=m.$implicit;l("value",t),r(),_(t.subjectName)}}function Oa(e,m){if(e&1&&(i(0,"ng-option",16),a(1),n()),e&2){let t=m.$implicit;l("value",t.id),r(),_(t.batchName)}}function Da(e,m){if(e&1){let t=C();i(0,"div",4)(1,"label",5),a(2,"Batch"),n(),i(3,"ng-select",17),D("ngModelChange",function(o){x(t);let c=p();return O(c.batchId,o)||(c.batchId=o),h(o)}),b("change",function(o){x(t);let c=p();return h(c.onBatchChange(o))}),i(4,"ng-option",7),a(5,"Select batch"),n(),s(6,Oa,2,2,"ng-option",8),n()()}if(e&2){let t=p();r(3),E("ngModel",t.batchId),l("clearable",!1)("loading",t.isBatchLoading),r(3),l("ngForOf",t.batches)}}function Ia(e,m){if(e&1){let t=C();i(0,"div",4)(1,"label",5),a(2,"Date"),n(),i(3,"input",18),b("bsValueChange",function(o){x(t);let c=p();return h(c.demo(o))}),n()()}if(e&2){let t=p();r(3),l("bsConfig",F(1,Ma,t.ranges))}}function ja(e,m){e&1&&f(0,"i",25)}function Ta(e,m){e&1&&(i(0,"span"),a(1,"View"),n())}function Aa(e,m){e&1&&(i(0,"span",26),f(1,"span",27),a(2," Loading\u2026 "),n())}function ka(e,m){if(e&1){let t=C();i(0,"div",19)(1,"label",20),a(2,"\xA0"),n(),i(3,"button",21),b("click",function(){x(t);let o=p();return h(o.getSubjectEvents(o.batchId))}),s(4,ja,1,0,"i",22)(5,Ta,2,0,"span",23)(6,Aa,3,0,"span",24),n()()}if(e&2){let t=p();r(3),l("disabled",t.isViewLoading),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",!t.isViewLoading),r(),l("ngIf",t.isViewLoading)}}function La(e,m){e&1&&(i(0,"p",28),f(1,"i",29),a(2," No batches available for this criteria. "),n())}function Va(e,m){if(e&1&&(i(0,"td")(1,"small",47)(2,"strong"),a(3,"Loggedby:"),n(),a(4),f(5,"br"),i(6,"strong"),a(7),n(),f(8,"br"),a(9," Updated: "),i(10,"strong"),a(11),n()()()),e&2){let t=p().$implicit,d=p(2);r(4),M(" ",t.loggedby,""),r(3),_(d.totalPresent(t)),r(4),_(t.modifiedOn)}}function Na(e,m){e&1&&(i(0,"td")(1,"span",48),a(2,"Pending"),n()())}function za(e,m){if(e&1){let t=C();i(0,"tr")(1,"td",40),a(2),n(),i(3,"td",41),a(4),V(5,"date"),n(),i(6,"td",42),a(7),n(),i(8,"td")(9,"a",43),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))}),i(10,"small",44),a(11),n(),a(12),n(),i(13,"small",45)(14,"span",46),a(15),n(),a(16," Timetable: "),i(17,"strong"),a(18),n(),a(19,", Ref: "),i(20,"strong"),a(21),n()()(),s(22,Va,12,3,"td",23)(23,Na,3,0,"td",23),n()}if(e&2){let t=m.$implicit,d=m.index,o=p(2);r(2),_(d+1),r(2),_(K(5,19,t.date.$date,"dd/MM/yyyy")),r(3),S("",t.stime,"-",t.etime,""),r(2),k("pe-none",o.isDetailLoa
1ding)("opacity-50",o.isDetailLoading),l("routerLink",L(22,ya)),z("aria-busy",o.isDetailLoading),r(2),_(t.batchName),r(),S(" ",t.subjectName," (",t.subjectCode,") "),r(3),S("",t.stime,"-",t.etime," \xB7 "),r(3),_(t.timetableName),r(3),_(t.referenceCode),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="NO")}}function Fa(e,m){e&1&&(i(0,"span",60),a(1,"Pending"),n())}function Ya(e,m){e&1&&(i(0,"span",61),a(1,"Logged"),n())}function Ra(e,m){if(e&1&&(i(0,"div",54)(1,"span",55),a(2,"Logged by"),n(),i(3,"span",56),a(4),n()()),e&2){let t=p().$implicit;r(4),_(t.loggedby)}}function Ba(e,m){if(e&1&&(i(0,"div",54)(1,"span",55),a(2,"Attendance"),n(),i(3,"span",56),a(4),n()()),e&2){let t=p().$implicit,d=p(2);r(4),_(d.totalPresent(t))}}function Ua(e,m){if(e&1&&(i(0,"div",54)(1,"span",55),a(2,"Updated"),n(),i(3,"span",62),a(4),n()()),e&2){let t=p().$implicit;r(4),_(t.modifiedOn)}}function $a(e,m){if(e&1){let t=C();i(0,"div",49),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.enter",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))})("keydown.space",function(o){let c=x(t).$implicit,g=p(2);return o.preventDefault(),h(g.getEventStudentListVal(c.id,c.subid,c.batid))}),i(1,"div",50)(2,"span",51),a(3),n(),s(4,Fa,2,0,"span",52)(5,Ya,2,0,"span",53),n(),i(6,"div",54)(7,"span",55),a(8,"Date & time"),n(),i(9,"span",56),a(10),V(11,"date"),n()(),i(12,"div",54)(13,"span",55),a(14,"Batch"),n(),i(15,"span",56),a(16),n()(),i(17,"div",54)(18,"span",55),a(19,"Timetable"),n(),i(20,"span",56),a(21),n()(),i(22,"div",54)(23,"span",55),a(24,"Ref"),n(),i(25,"span",56),a(26),n()(),s(27,Ra,5,1,"div",57)(28,Ba,5,1,"div",57)(29,Ua,5,1,"div",57),i(30,"div",58)(31,"span"),a(32,"View details"),n(),f(33,"i",59),n()()}if(e&2){let t=m.$implicit,d=p(2);k("pe-none",d.isDetailLoading)("opacity-50",d.isDetailLoading),z("aria-label","View attendance for "+t.subjectName)("aria-busy",d.isDetailLoading),r(3),S(" ",t.subjectName," (",t.subjectCode,") "),r(),l("ngIf",t.attenStatus=="NO"),r(),l("ngIf",t.attenStatus=="YES"),r(5),pt("",K(11,19,t.date.$date,"dd/MM/yyyy")," \xB7 ",t.stime,"-",t.etime,""),r(6),_(t.batchName),r(5),_(t.timetableName),r(5),_(t.referenceCode),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="YES")}}function Wa(e,m){if(e&1&&(i(0,"div",30)(1,"div",31)(2,"table",32)(3,"thead")(4,"tr")(5,"th",33),a(6,"#"),n(),i(7,"th",34),a(8,"Date"),n(),i(9,"th",35),a(10,"Time"),n(),i(11,"th",34),a(12,"Subject Details"),n(),i(13,"th",36),a(14,"Attendance Status"),n()()(),i(15,"tbody"),s(16,za,24,23,"tr",37),n()()(),i(17,"div",38),s(18,$a,34,22,"div",39),n()()),e&2){let t=p();r(16),l("ngForOf",t.subjectEvents),r(2),l("ngForOf",t.subjectEvents)}}function Ha(e,m){e&1&&(i(0,"div",63),f(1,"i",64),i(2,"div",65)(3,"p",66),a(4,"Sorry! No event found."),n()()())}var Ne=Xt.default??Xt,ze=(()=>{class e{loading;departmentService;regulationService;subjectService;markingService;modalService;eventService;errorHandler;departments;dept;regulations;reg;sub;subjects;batches;batchId;date;ranges=[{value:[new Date(new Date().setDate(new Date().getDate())),new Date],label:"Today"},{value:[new Date(new Date().setDate(new Date().getDate()-1)),new Date(new Date().setDate(new Date().getDate()-1))],label:"Yesterday"},{value:[new Date(new Date().setDate(new Date().getDate()-7)),new Date],label:"Last 7 Days"}];startDate=new Date;endDate=new Date;fromDate;toDate;subjectEvents;present;absent;eventData;status;subject;showTable;bacthesAvailable=!1;subjectSelected=!1;eventLoaded=!1;batchSelected=!1;isViewLoading=!1;isBatchLoading=!1;isSubjectLoading=!1;isDepartmentLoading=!1;isregulationLoading=!1;isDetailLoading=!1;constructor(t,d,o,c,g,v,A,tt){this.loading=t,this.departmentService=d,this.regulationService=o,this.subjectService=c,this.markingService=g,this.modalService=v,this.eventService=A,this.errorHandler=tt}ngOnInit(){this.onload()}demo(t){this.startDate=t[0].toString(),this.endDate=t[1].toString(),this.fromDate=Ne(new Date(this.startDate)).format("DD-MMM-YYYY"),this.toDate=Ne(new Date(this.endDate)).format("DD-MMM-YYYY")}onload(){this.loading.showLoading(),this.isDepartmentLoading=!0,this.departmentService.getDepartment().then(t=>{this.departments=t,this.isDepartmentLoading=!1,this.loading.hideLoading()})}onChange(t){this.reg=void 0,this.sub=void 0,this.batchId=void 0,this.subjectSelected=!1,this.bacthesAvailable=!1,this.batchSelected=!1,this.eventLoaded=!1,this.subjectEvents=[],this.isregulationLoading=!0,this.loading.showLoading(),this.regulationService.list(t.id).then(d=>{this.regulations=d.datas,this.isregulationLoading=!1}),this.loading.hideLoading()}getSubjects(t){this.sub=void 0,this.batchId=void 0,this.subjectSelected=!1,this.bacthesAvailable=!1,this.batchSelected=!1,this.eventLoaded=!1,this.isSubjectLoading=!0,this.subjectEvents=[],this.loading.showLoading(),this.regulationService.getByRegulationId(t.id).then(d=>{this.subjects=d.datas,this.isSubjectLoading=!1})}getBatches(t){this.batchId=void 0,this.subjectSelected=!0,this.bacthesAvailable=!1,this.batchSelected=!1,this.subjectEvents=[],this.showTable=!1,this.eventLoaded=!1,this.isBatchLoading=!0,this.subjectService.getActiveBatch(t.id).then(d=>{this.batches=d,this.isBatchLoading=!1,this.batches.sort((o,c)=>o.batchName.localeCompare(c.batchName)),this.batches.length!=0?this.bacthesAvailable=!0:this.bacthesAvailable=!1})}onBatchChange(t){this.batchId=t,this.batchSelected=!!t,this.subjectEvents=[],this.showTable=!1,this.eventLoaded=!1}getSubjectEvents(t){this.subjectEvents=[],this.showTable=!1,this.eventLoaded=!1,this.isViewLoading=!0,this.eventService.getSubjectTimetable(this.fromDate,this.toDate,t).then(d=>{this.subjectEvents=d,this.isViewLoading=!1,this.eventLoaded=!0,this.subjectEvents.length!=0?this.showTable=!0:this.showTable=!1})}totalPresent(t){return dt(t)}getEventStudentListVal(t,d,o){lt(this.markingService,this.modalService,this,t,o,c=>this.reload(c),void 0,this.errorHandler)}
1reload(t){t?.eventId&&this.patchSubjectEvent(t)||this.getSubjectEvents(this.batchId)}patchSubjectEvent(t){let d=this.subjectEvents?.find(o=>o.id===t.eventId);return d?(rt(d,t),!0):!1}static \u0275fac=function(d){return new(d||e)(u($),u(at),u(ve),u(At),u(ct),u(I),u(T),u(ot))};static \u0275cmp=y({type:e,selectors:[["app-subject-attendance"]],decls:32,vars:18,consts:[[1,"jp-ims-admin-tab-page","jp-ims-attendance-subject-tab"],[1,"jp-dashboard-filter-bar"],[1,"jp-attendance-filter-heading"],[1,"jp-filter-row"],[1,"jp-filter-item"],[1,"jp-filter-label"],["placeholder","Select degree & department",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["value","",3,"disabled"],[3,"value",4,"ngFor","ngForOf"],["placeholder","Select regulation",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["placeholder","Select subject",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["class","jp-filter-item",4,"ngIf"],["class","jp-filter-actions",4,"ngIf"],["class","jp-sl-as-of-hint mb-0 mt-2",4,"ngIf"],["class","jp-card jp-attendance-results-card",4,"ngIf"],["class","jp-alert jp-alert-warning mb-0",4,"ngIf"],[3,"value"],["placeholder","Select batch",1,"jp-filter-ng-select",3,"ngModelChange","change","ngModel","clearable","loading"],["type","text","placeholder","Select date range","bsDaterangepicker","",1,"jp-form-control",3,"bsValueChange","bsConfig"],[1,"jp-filter-actions"],[1,"jp-filter-label","d-none","d-md-block"],["type","button",1,"jp-btn","jp-btn-primary","jp-btn-view",3,"click","disabled"],["class","fa fa-eye me-1","aria-hidden","true",4,"ngIf"],[4,"ngIf"],["class","d-inline-flex align-items-center gap-2",4,"ngIf"],["aria-hidden","true",1,"fa","fa-eye","me-1"],[1,"d-inline-flex","align-items-center","gap-2"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm"],[1,"jp-sl-as-of-hint","mb-0","mt-2"],["aria-hidden","true",1,"fa","fa-info-circle","me-1"],[1,"jp-card","jp-attendance-results-card"],[1,"table-responsive","jp-list-table-wrap","d-none","d-md-block"],["role","grid","aria-label","Subject attendance events",1,"table","table-hover","mb-0","jp-attendance-events-table","jp-list-table"],["scope","col",1,"jp-list-table-col-index","d-none","d-lg-table-cell"],["scope","col"],["scope","col",1,"d-none","d-lg-table-cell"],["scope","col",1,"jp-list-table-col-compact"],[4,"ngFor","ngForOf"],[1,"jp-mobile-cards","d-block","d-md-none"],["class","jp-list-card jp-attendance-event-mobile-card jp-attendance-event-mobile-card--interactive","role","button","tabindex","0",3,"pe-none","opacity-50","click","keydown.enter","keydown.space",4,"ngFor","ngForOf"],[1,"text-center","text-muted","jp-list-table-col-index","d-none","d-lg-table-cell"],[1,"text-nowrap"],[1,"text-nowrap","d-none","d-lg-table-cell"],[1,"fw-semibold","text-decoration-none",3,"click","routerLink"],[1,"text-muted","d-block"],[1,"text-muted","d-block","mt-1"],[1,"d-lg-none"],[1,"text-muted"],[1,"badge","text-bg-danger"],["role","button","tabindex","0",1,"jp-list-card","jp-attendance-event-mobile-card","jp-attendance-event-mobile-card--interactive",3,"click","keydown.enter","keydown.space"],[1,"jp-list-card-row","jp-list-card-title"],[1,"jp-attendance-mobile-card-subject","fw-semibold","text-break"],["class","badge text-bg-danger flex-shrink-0",4,"ngIf"],["class","badge text-bg-success flex-shrink-0",4,"ngIf"],[1,"jp-list-card-row"],[1,"jp-list-card-label"],[1,"jp-list-card-value"],["class","jp-list-card-row",4,"ngIf"],["aria-hidden","true",1,"jp-attendance-mobile-card-cta"],[1,"fa","fa-chevron-right"],[1,"badge","text-bg-danger","flex-shrink-0"],[1,"badge","text-bg-success","flex-shrink-0"],[1,"jp-list-card-value","jp-list-card-date"],[1,"jp-alert","jp-alert-warning","mb-0"],["aria-hidden","true",1,"fa","fa-exclamation-triangle","jp-alert-icon"],[1,"jp-alert-content"],[1,"jp-alert-message","mb-0"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"h2",2),a(3,"Subject Attendance Report"),n(),i(4,"div",3)(5,"div",4)(6,"label",5),a(7,"Degree & Department"),n(),i(8,"ng-select",6),D("ngModelChange",function(g){return O(o.dept,g)||(o.dept=g),g}),b("change",function(){return o.onChange(o.dept)}),i(9,"ng-option",7),a(10,"Select degree & department"),n(),s(11,wa,2,3,"ng-option",8),n()(),i(12,"div",4)(13,"label",5),a(14,"Regulation"),n(),i(15,"ng-select",9),D("ngModelChange",function(g){return O(o.reg,g)||(o.reg=g),g}),b("change",function(){return o.getSubjects(o.reg)}),i(16,"ng-option",7),a(17,"Select regulation"),n(),s(18,Pa,2,2,"ng-option",8),n()(),i(19,"div",4)(20,"label",5),a(21,"Subject"),n(),i(22,"ng-select",10),D("ngModelChange",function(g){return O(o.sub,g)||(o.sub=g),g}),b("change",function(){return o.getBatches(o.sub)}),i(23,"ng-option",7),a(24,"Select subject"),n(),s(25,Ea,2,2,"ng-option",8),n()(),s(26,Da,7,4,"div",11)(27,Ia,4,3,"div",11)(28,ka,7,4,"div",12),n(),s(29,La,3,0,"p",13),n(),s(30,Wa,19,2,"div",14)(31,Ha,5,0,"div",15),n()),d&2&&(r(8),E("ngModel",o.dept),l("clearable",!1)("loading",o.isDepartmentLoading),r(3),l("ngForOf",o.departments),r(4),E("ngModel",o.reg),l("clearable",!1)("loading",o.isregulationLoading),r(3),l("ngForOf",o.regulations),r(4),E("ngModel",o.sub),l("clearable",!1)("loading",o.isSubjectLoading),r(3),l("ngForOf",o.subjects),r(),l("ngIf",o.bacthesAvailable),r(),l("ngIf",o.batchSelected),r(),l("ngIf",o.batchSelected),r(),l("ngIf",o.subjectSelected&&!o.bacthesAvailable),r(),l("ngIf",o.showTable),r(),l("ngIf",o.eventLoaded&&!o.showTable))},dependencies:[R,B,U,j,P,Q,J,X,Z,N],styles:[".container.card.custom-card[_ngcontent-%COMP%]{margin:8px!important;border-radius:12px!important;box-shadow:0 2px 8px #0000001a!important;padding:16px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-top:0!important;margin-bottom:20px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:12px 0!important;border-bottom:2px solid #dee2e6!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.2rem!important;font-weight:600!important;color:#2c3e50!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:20px!important;margin-bottom:20px!important;align-items:center!important}.form-label[_ngcontent-%COMP%]{font-weight:600!important;color:#2c3e50!important;margin-bottom:8px!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important;font-weight:600!important}ng-select[_ngcontent-%COMP%]{width:100%!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #ddd!important;min-height:44px!important;font-size:.9rem!important;overflow:hidden!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]:focus{border-color:#007bff!important;box-shadow:0 0 0 .2rem #007bff40!important}ng-select[_ngcontent-%COMP%]   .ng-placeholder[_ngcontent-%COMP%]{color:#6c757d!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-option[_ngcontent-%COMP%]{padding:10px 12px!important;font-size:.9rem!important}ng-select[_ngcontent-%COMP%]   .ng-option.ng-option-selected[_ngcontent-%COMP%]{background-color:#007bff!important;color:#fff!important}ng-select[_ngcontent-%COMP%]   .ng-value[_ngcontent-%COMP%]{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}ng-select[_ngcontent-%COMP%]   .ng-value-label[_ngcontent-%COMP%]{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;display:block!important}.form-control[_ngcontent-%COMP%]{border-radius:8px!important;border:1px solid #ddd!important;padding:10px 12px!important;font-size:.9rem!important;transition:border-color .3s ease!important}.form-control[_ngcontent-%COMP%]:focus{border-color:#007bff!important;box-shadow:0 0 0 .2rem #007bff40!important}.btn[_ngcontent-%COMP%]{border-radius:8px!important;padding:10px 16px!important;font-size:.9rem!important;font-weight:500!important;transition:all .3s ease!important;min-height:44px!important}.btn-success[_ngcontent-%COMP%]{background-color:#28a745!important;border-color:#28a745!important}.btn-success[_ngcontent-%COMP%]:hover:not(:disabled){background-color:#218838!important;border-color:#1e7e34!important;transform:translateY(-1px)!important}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem!important;height:1rem!important}.col-12.text-center.text-muted[_ngcontent-%COMP%]{padding:16px!important;background-color:#f8f9fa!important;border-radius:8px!important;border:1px solid #dee2e6!important;font-size:.9rem!important;color:#6c757d!important}.col-12.text-center.text-muted[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#17a2b8!important}.table[_ngcontent-%COMP%]{border-radius:8px!important;overflow:hidden!important;box-shadow:0 2px 8px #0000001a!important;margin-bottom:0!important}.table-striped[_ngcontent-%COMP%] > tbody[_ngcontent-%COMP%] > tr[_ngcontent-%COMP%]:nth-of-type(odd) > td[_ngcontent-%COMP%]{background-color:#00000005!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f8f9fa!important;border-bottom:2px solid #dee2e6!important;font-weight:600!important;color:#2c3e50!important;padding:12px 8px!important;font-size:.85rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:12px 8px!important;vertical-align:middle!important;font-size:.85rem!important;border-bottom:1px solid #dee2e6!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#007bff!important;text-decoration:none!important;font-weight:500!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline!important;color:#0056b3!important}.badge[_ngcontent-%COMP%]{font-size:.75rem!important;padding:4px 8px!important;border-radius:4px!important;font-weight:500!important}.badge.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}.badge.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important;color:#212529!important}.alert[_ngcontent-%COMP%]{border-radius:8px!important;padding:12px 16px!important;margin:16px 0!important;border:none!important}.alert-warning[_ngcontent-%COMP%]{background-color:#fff3cd!important;color:#856404!important;border-left:4px solid #ffc107!important}@media (max-width: 768px){.container.card.custom-card[_ngcontent-%COMP%]{margin:4px!important;padding:12px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-bottom:16px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:8px 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1.1rem!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:16px!important;margin-bottom:16px!important;flex-direction:column!important;align-items:stretch!important}.col-4[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%]{width:100%!important;max-width:100%!important;flex:none!important;padding:0 0 8px!important;text-align:left!important}.col-4.text-end[_ngcontent-%COMP%]{text-align:left!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{font-size:16px!important;min-height:48px!important;overflow:hidden!important}ng-select[_ngcontent-%COMP%]   .ng-value[_ngcontent-%COMP%]{max-width:calc(100% - 40px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}ng-select[_ngcontent-%COMP%]   .ng-value-label[_ngcontent-%COMP%]{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.form-control[_ngcontent-%COMP%]{width:100%!important;font-size:16px!important;padding:12px!important}.btn[_ngcontent-%COMP%]{width:100%!important;padding:12px 16px!important;font-size:1rem!important;margin-top:8px!important}.col-12.text-center.text-muted[_ngcontent-%COMP%]{padding:12px!important;font-size:.85rem!important}.table-responsive[_ngcontent-%COMP%]{border-radius:8px!important;box-shadow:0 2px 8px #0000001a!important}.table[_ngcontent-%COMP%]{font-size:.8rem!important;min-width:600px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px 6px!important;font-size:.75rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(4){min-width:200
1px!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(5){min-width:150px!important}.alert[_ngcontent-%COMP%]{margin:12px 0!important;padding:10px 12px!important;font-size:.85rem!important}.badge[_ngcontent-%COMP%]{font-size:.7rem!important;padding:3px 6px!important}}@media (max-width: 480px){.container.card.custom-card[_ngcontent-%COMP%]{margin:2px!important;padding:8px!important}.row.mt-3[_ngcontent-%COMP%]:first-child{margin-bottom:12px!important}.col-12.py-0.border-bottom[_ngcontent-%COMP%]{padding:6px 0!important}.fs-6.fw-semibold[_ngcontent-%COMP%]{font-size:1rem!important}.row.mt-4[_ngcontent-%COMP%]{margin-top:12px!important;margin-bottom:12px!important}ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]{min-height:50px!important;font-size:16px!important;overflow:hidden!important}ng-select[_ngcontent-%COMP%]   .ng-value[_ngcontent-%COMP%]{max-width:calc(100% - 45px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}ng-select[_ngcontent-%COMP%]   .ng-value-label[_ngcontent-%COMP%]{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.9rem!important}.form-control[_ngcontent-%COMP%]{padding:14px!important;font-size:16px!important}.btn[_ngcontent-%COMP%]{padding:14px 16px!important;font-size:1rem!important}.col-12.text-center.text-muted[_ngcontent-%COMP%]{padding:10px!important;font-size:.8rem!important}.table[_ngcontent-%COMP%]{font-size:.75rem!important;min-width:500px!important}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 4px!important;font-size:.7rem!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(4){min-width:180px!important}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:nth-child(5){min-width:120px!important}.alert[_ngcontent-%COMP%]{margin:8px 0!important;padding:8px 10px!important;font-size:.8rem!important}.badge[_ngcontent-%COMP%]{font-size:.65rem!important;padding:2px 4px!important}}@media (hover: none) and (pointer: coarse){.btn[_ngcontent-%COMP%]:hover:not(:disabled){transform:none!important}.table[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:none!important}}*[_ngcontent-%COMP%]{box-sizing:border-box!important}.container[_ngcontent-%COMP%], .row[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%]{overflow:visible!important}.btn[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus, ng-select[_ngcontent-%COMP%]   .ng-select-container[_ngcontent-%COMP%]:focus{outline:2px solid #007bff!important;outline-offset:2px!important}.btn[_ngcontent-%COMP%]:disabled{opacity:.6!important;cursor:not-allowed!important}@media (max-width: 768px){.table-responsive[_ngcontent-%COMP%]{-webkit-overflow-scrolling:touch!important;overflow-x:auto!important}}"]})}return e})();var Zt=bt(Ct());var qa=e=>({ranges:e}),Ka=()=>[];function Ga(e,m){e&1&&(i(0,"span"),a(1,"View"),n())}function Ja(e,m){e&1&&(i(0,"span"),f(1,"span",15),a(2,"Loading... "),n())}function Qa(e,m){if(e&1&&(i(0,"td")(1,"i")(2,"small",20),f(3,"i",21),a(4,"\xA0"),i(5,"b"),a(6,"Loggedby:"),n(),a(7),f(8,"br"),i(9,"b"),a(10),n(),f(11,"br"),a(12," Updated On:"),i(13,"b"),a(14),n()()()()),e&2){let t=p().$implicit,d=p(2);r(7),M("",t.loggedby,"\xA0"),r(3),_(d.totalPresent(t)),r(4),_(t.modifiedOn)}}function Xa(e,m){e&1&&(i(0,"td")(1,"span",22),a(2,"Pending"),n()())}function Za(e,m){if(e&1){let t=C();i(0,"tr")(1,"td"),a(2),n(),i(3,"td"),a(4),V(5,"date"),n(),i(6,"td"),a(7),n(),i(8,"td")(9,"a",19),b("click",function(){let o=x(t).$implicit,c=p(2);return h(c.getEventStudentListVal(o.id,o.subid,o.batid))}),i(10,"small"),a(11),f(12,"br"),n(),a(13),n(),f(14,"br"),i(15,"small",20),a(16,"TimetableName:"),i(17,"b"),a(18),n(),a(19,"\xA0Reference code"),i(20,"b"),a(21),n()()(),s(22,Qa,15,3,"td",13)(23,Xa,3,0,"td",13),n()}if(e&2){let t=m.$implicit,d=m.index;r(2),_(d+1),r(2),_(K(5,12,t.date.$date,"dd-MM-yyyy")),r(3),S("",t.stime,"-",t.etime,""),r(2),l("routerLink",L(15,Ka)),r(2),M("",t.batchName," \xA0"),r(2),S("",t.subjectName,"\xA0( ",t.subjectCode," )"),r(5),M("",t.timetableName,","),r(3),_(t.referenceCode),r(),l("ngIf",t.attenStatus=="YES"),r(),l("ngIf",t.attenStatus=="NO")}}function to(e,m){if(e&1&&(i(0,"div",6)(1,"table",16)(2,"thead")(3,"tr")(4,"th",17),a(5,"#"),n(),i(6,"th",17),a(7,"Date"),n(),i(8,"th",17),a(9,"Time"),n(),i(10,"th",17),a(11,"Subject Details"),n(),i(12,"th",17),a(13,"Attendance Status"),n()()(),i(14,"tbody"),s(15,Za,24,16,"tr",18),n()()()),e&2){let t=p();r(15),l("ngForOf",t.facultyEvents)}}function eo(e,m){e&1&&(i(0,"div",6)(1,"div",23)(2,"span",24),a(3,"Warning"),n(),a(4,"\xA0 : Sorry!, no event found. "),n()())}var Fe=Zt.default??Zt,Ye=(()=>{class e{eventService;modalService;datepipe;subjectService;ranges=[{value:[new Date(new Date().setDate(new Date().getDate())),new Date],label:"Today"},{value:[new Date(new Date().setDate(new Date().getDate()-1)),new Date(new Date().setDate(new Date().getDate()-1))],label:"Yesterday"},{value:[new Date(new Date().setDate(new Date().getDate()-7)),new Date],label:"Last 7 Days"}];startDate=new Date;endDate=new Date;fromDate;toDate;facultyEvents;present;absent;subject;status;eventData;showTable;isViewLoading=!1;constructor(t,d,o,c){this.eventService=t,this.modalService=d,this.datepipe=o,this.subjectService=c}ngOnInit(){}demo(t){this.startDate=t[0].toString(),this.endDate=t[1].toString(),this.fromDate=Fe(new Date(this.startDate)).format("DD-MMM-YYYY"),this.toDate=Fe(new Date(this.endDate)).format("DD-MMM-YYYY")}getFacultyEvents(){this.isViewLoading=!0,this.eventService.getTimetable(this.fromDate,this.toDate).then(t=>{this.facultyEvents=t,console.log(this.facultyEvents,"facultyEvents"),this.isViewLoading=!1,this.facultyEvents.length!=0?this.showTable=!0:this.showTable=!1})}totalPresent(t){this.present=0,this.absent=0;for(var d=0;d<t.attendance.length;d++)t.attendance[d].status=="PRESENT"?this.present=this.present+1:this.absent=this.absent+1;return"Tot Pre:"+this.present+" Tot Abs:"+this.absent}getEventStudentListVal(t,d,o){this.subjectService.getSubjectById(d).then(c=>{this.subject=c,this.getEvent(t,o)})}getEvent(t,d){this.eventService.getDeadlineStatus(t).then(o=>{this.status=o,this.status.errorStatus?this.eventService.getEventtable(t).then(c=>{let g=this.modalService.open(Vt,{size:"lg",backdrop:"static"});g.componentInstance.value=c,g.componentInstance.subValue=this.subject,g.componentInstance.batchId=d}):this.eventService.getEventtable(t).then(c=>{this.eventData=c;let g=this.modalService.open(Nt,{size:"lg",scrollable:!0,backdrop:"static",windowClass:"jp-attendance-popup-modal"});g.componentInstance.value=this.eventData,g.componentInstance.subValue=this.subject,g.componentInstance.batchId=d,g.componentInstance.reload.subscribe(()=>{this.reload()})})})}reload(){this.getFacultyEvents()}static \u0275fac=function(d){return new(d||e)(u(T),u(I),u(N),u(At))};static \u0275cmp=y({type:e,selectors:[["app-student-attendance"]],decls:23,vars:8,consts:[[1,"container"],[1,"row","py-0"],[1,"col-12","py-0","border-bottom"],[1,"fs-6","fw-semibold"],[1,"alert","alert-info"],[1,"label","label-info"],[1,"row","mt-3"],[1,"col-2","text-center"],["for","DateList",1,"form-label"],[1,"col-4"],["type","text","placeholder","Date range picker","bsDaterangepicker","",1,"form-control",3,"bsValueChange","bsConfig"],[1,"col-md-2"],["type","button",1,"btn","btn-success",3,"click","disabled"],[4,"ngIf"],["class","row mt-3",4,"ngIf"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm","me-2"],[1,"table","table-striped","table-hover"],["scope","col"],[4,"ngFor","ngForOf"],[3,"click","routerLink"],[1,"text-muted"],[1,"fa","fa-user",2,"opacity","0.40"],[1,"badge","bg-danger",2,"cursor","pointer"],["role","alert",1,"alert","alert-warning"],[1,"badge","bg-warning"]],template:function(d,o){d&1&&(i(0,"div",0)(1,"div",1)(2,"div",2)(3,"span",3),a(4,"Attendance"),n()()(),f(5,"br"),i(6,"div",4)(7,"span",5),a(8,"Info"),n(),a(9," Everyday Attendance should be updated within 1 day(s) 9:35 PM "),n(),i(10,"div",6)(11,"div",7)(12,"label",8)(13,"span",3),a(14,"Date :"),n()()(),i(15,"div",9)(16,"input",10),b("bsValueChange",function(g){return o.demo(g)}),n()(),i(17,"div",11)(18,"button",12),b("click",function(){return o.getFacultyEvents()}),s(19,Ga,2,0,"span",13)(20,Ja,3,0,"span",13),n()()(),s(21,to,16,1,"div",14)(22,eo,5,0,"div",14),n()),d&2&&(r(16),l("bsConfig",F(6,qa,o.ranges)),r(2),l("disabled",o.isViewLoading),r(),l("ngIf",!o.isViewLoading),r(),l("ngIf",o.isViewLoading),r(),l("ngIf",o.showTable==!0),r(),l("ngIf",o.showTable==!1))},dependencies:[R,j,P,X,Z,N]})}return e})();var no=[{path:"",redirectTo:"home",pathMatch:"full"},{path:"",component:zt,children:[{path:"home",component:Pe},{path:"studentAttendance",component:Ye},{path:"staffHome",component:Ee,children:[{path:"",redirectTo:"myAttend
1ance",pathMatch:"full"},{path:"myAttendance",component:ke},{path:"subAttendance",component:ze},{path:"staffAttendance",component:Ve},{path:"deptAttendance",component:Ie}]},{path:"attDeadline",component:Ft},{path:"attSettings",component:Oe},{path:"attendanceModal",component:Nt},{path:"attendanceRestrict",component:Vt},{path:"copyAtt",component:Ce},{path:"completedLP",component:Se},{path:"timeLimit",component:Rt},{path:"editAttTimeLimit",component:Bt}]}],Re=(()=>{class e{static \u0275fac=function(d){return new(d||e)};static \u0275mod=Pt({type:e});static \u0275inj=wt({imports:[ht.forChild(no),ht]})}return e})();var qr=(()=>{class e{static \u0275fac=function(d){return new(d||e)};static \u0275mod=Pt({type:e,bootstrap:[zt]});static \u0275inj=wt({providers:[N],imports:[Re,me,re,ht,xe,de,le,fe,ce,ie,be,ge.forRoot()]})}return e})();export{qr as AttendanceModule};

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.