1"use strict";(self.webpackChunkpikmykid=self.webpackChunkpikmykid||[]).push([[2680],{9493:(N,R,d)=>{d.r(R),d.d(R,{AttendanceContainerComponent:()=>fa});var t=d(4438),f=d(2168),S=d(177),D=d(1141),I=d(8542),x=d(8427),v=d(5144),c=d(9417),p=d(4582),k=d(2242),M=d(5430),F=d(1413),g=d(7468),b=d(152),_=d(6354),T=d(8141),E=d(4371),G=d(4401),$=d(9425),B=d(450),X=d(9410),Y=d(4979),Z=d(9746),j=function(i){return i[i.All=0]="All",i[i.Absent=1]="Absent",i[i.EarlyDismissal=2]="EarlyDismissal",i}(j||{}),O=function(i){return i[i.All=0]="All",i[i.AtSchool=1]="AtSchool",i[i.NotAtSchool=2]="NotAtSchool",i}(O||{}),P=d(1776),h=function(i){return i[i.MarkAbsent=1]="MarkAbsent",i[i.CancelAbsent=2]="CancelAbsent",i[i.EarlyRelease=3]="EarlyRelease",i[i.CancelEarlyRelease=4]="CancelEarlyRelease",i[i.MarkPresent=5]="MarkPresent",i[i.CancelPresent=6]="CancelPresent",i[i.MarkTardy=7]="MarkTardy",i[i.CancelTardy=8]="CancelTardy",i}(h||{}),L=d(1570),U=d(8833),H=d(9851),K=d(1631),tt=d(7236),mt=d(6516),A=d(4820),W=d(4718),et=d(9293),Q=d(2735),q=d(5779),nt=d(6060),gt=d(8370),at=d(2276);const ht=["filters"],ft=["scanStudentInput"],bt=()=>[10,25,50,100],it=i=>["/schooladmin/newstudent",i,"studentRecord"],st=i=>({"btn-early-dismissal":i}),ot=i=>({"btn-absent":i}),lt=i=>({"btn-present":i}),dt=i=>({"btn-tardy":i}),rt=()=>({"max-width":"452px",width:"100%"}),z=()=>({width:"100%"}),St=()=>({"max-width":"465px",width:"100%"}),yt=i=>({students:i,label:""}),kt=i=>({students:i,label:"Already absent or early dismissed"}),Ct=i=>({students:i,label:"Already announced or dismissed"}),Dt=i=>({students:i,label:"Checked into a dismissal line or afterschool program"}),xt=i=>({students:i,label:"Scheduled for early dismissal"}),Mt=()=>({"max-width":"760px",width:"100%"}),Tt=(i,o)=>({"scan-qr-modal__row--success":i,"scan-qr-modal__row--invalid":o}),It=(i,o)=>({"scan-qr-modal__status--success":i,"scan-qr-modal__status--error":o});function vt(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",34),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.toggleQuickAttendance())}),t.EFF(1," Quick Attendance "),t.j41(2,"span",35),t.EFF(3,"\u26a1"),t.k0s()()}if(2&i){const e=t.XpG();t.FS9("pTooltip",e.quickAttendanceEnabled?"Disable Quick Attendance":"Enable Quick Attendance"),t.Y8G("ngClass",e.quickAttendanceEnabled?"quick-attendance-btn-on":"")("hideDelay",e.systemService.customViewportCheck(780)?4e3:0)}}function Pt(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",36),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.toggleQuickAttendance())}),t.j41(1,"span",35),t.EFF(2,"\u26a1"),t.k0s()()}if(2&i){const e=t.XpG();t.FS9("pTooltip",e.quickAttendanceEnabled?"Disable Quick Attendance":"Enable Quick Attendance"),t.Y8G("ngClass",e.quickAttendanceEnabled?"quick-attendance-btn-on":"")("hideDelay",e.systemService.customViewportCheck(780)?4e3:0),t.BMQ("aria-label",e.quickAttendanceEnabled?"Disable Quick Attendance":"Enable Quick Attendance")}}function wt(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",37),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.toggleBulkEdit())}),t.k0s()}if(2&i){const e=t.XpG();t.Y8G("label",e.bulkEdit?"Close Bulk Edit":"Bulk Edit")}}function Rt(i,o){if(1&i){const e=t.RV6();t.j41(0,"i",38),t.bIt("click",function(){t.eBV(e),t.XpG();const a=t.sdS(26);return t.Njj(a.clear())})("keydown.enter",function(){t.eBV(e),t.XpG();const a=t.sdS(26);return t.Njj(a.clear())})("keydown.space",function(a){t.eBV(e),t.XpG();const s=t.sdS(26);return a.preventDefault(),t.Njj(s.clear())}),t.k0s()}}function At(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",39),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.onCbClearAEFilter())}),t.nrm(1,"i",40),t.k0s()}}function Et(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",49),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.openScanQrCodesModal())}),t.k0s()}}function Gt(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",41)(1,"div",42)(2,"button",43),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.openBulkActionModal(a.attendanceOperationEnum.MarkAbsent))}),t.k0s(),t.j41(3,"button",44),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.openBulkActionModal(a.attendanceOperationEnum.EarlyRelease))}),t.k0s(),t.DNE(4,Et,1,0,"button",45),t.k0s(),t.j41(5,"div",46)(6,"p-checkbox",47),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG();return t.DH7(s.bulkEditSelectAll,a)||(s.bulkEditSelectAll=a),t.Njj(a)}),t.bIt("onChange",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.selectAllMobile())}),t.k0s(),t.j41(7,"label",48),t.EFF(8,"SELECT ALL"),t.k0s()()()}if(2&i){const e=t.XpG();t.R7$(2),t.Y8G("disabled",0==e.bulkEditSelectedData.length),t.R7$(),t.Y8G("disabled",0==e.bulkEditSelectedData.length),t.R7$(),t.Y8G("ngIf",1==(null==e.attendanceSettings?null:e.attendanceSettings.StudentsAbsentByDefault)),t.R7$(2),t.R50("ngModel",e.bulkEditSelectAll),t.Y8G("binary",!0)}}function Ft(i,o){1&i&&(t.j41(0,"th",55),t.nrm(1,"p-tableHeaderCheckbox"),t.k0s())}function Nt(i,o){if(1&i&&t.nrm(0,"p-sortIcon",56),2&i){const e=t.XpG(3);t.Y8G("field",e.sortFields.LastName)}}function jt(i,o){if(1&i&&t.nrm(0,"p-sortIcon",56),2&i){const e=t.XpG(3);t.Y8G("field",e.sortFields.Grade)}}function Ot(i,o){if(1&i&&t.nrm(0,"p-sortIcon",56),2&i){const e=t.XpG(3);t.Y8G("field",e.sortFields.ClassName)}}function Vt(i,o){if(1&i&&(t.j41(0,"tr"),t.DNE(1,Ft,2,0,"th",51),t.j41(2,"th",52),t.EFF(3," Student "),t.DNE(4,Nt,1,1,"p-sortIcon",53),t.k0s(),t.j41(5,"th",52),t.EFF(6," Grade "),t.DNE(7,jt,1,1,"p-sortIcon",53),t.k0s(),t.j41(8,"th",52),t.EFF(9," Class "),t.DNE(10,Ot,1,1,"p-sortIcon",53),t.k0s(),t.j41(11,"th"),t.EFF(12," Early Dismissal "),t.k0s(),t.j41(13,"th",54),t.EFF(14," Attendance Status "),t.k0s()()),2&i){const e=t.XpG(2),n=t.sdS(26);t.R7$(),t.Y8G("ngIf",e.bulkEdit),t.R7$(),t.Y8G("pSortableColumn",e.sortFields.LastName),t.R7$(2),t.Y8G("ngIf",n.sortField==e.sortFields.LastName),t.R7$(),t.Y8G("pSortableColumn",e.sortFields.Grade),t.R7$(2),t.Y8G("ngIf",n.sortField==e.sortFields.Grade),t.R7$(),t.Y8G("pSortableColumn",e.sortFields.ClassName),t.R7$(2),t.Y8G("ngIf",n.sortField==e.sortFields.ClassName)}}function $t(i,o){if(1&i&&t.DNE(0,Vt,15,7,"tr",50),2&i){const e=t.XpG();t.Y8G("ngIf",!e.systemService.customViewportCheck(1156))}}function Bt(i,o){if(1&i){const e=t.RV6();t.j41(0,"a",60),t.bIt("click",function(){t.eBV(e);const a=t.XpG(3);return t.Njj(a.onCbClearAEFilter())}
1),t.EFF(1,"Clear filters to see data."),t.k0s()}}function Xt(i,o){if(1&i&&(t.j41(0,"td",58),t.EFF(1," No attendance records found. "),t.DNE(2,Bt,2,0,"a",59),t.k0s()),2&i){const e=t.XpG(2);t.BMQ("colspan",e.bulkEdit?6:5),t.R7$(2),t.Y8G("ngIf",e.hasFilterValue())}}function Yt(i,o){if(1&i&&(t.j41(0,"tr"),t.DNE(1,Xt,3,2,"td",57),t.k0s()),2&i){const e=t.XpG();t.R7$(),t.Y8G("ngIf",!e.systemService.checkLoading())}}function Lt(i,o){if(1&i){const e=t.RV6();t.j41(0,"td",55)(1,"div",64)(2,"p-checkbox",65),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.bulkEditSelectedData,a)||(s.bulkEditSelectedData=a),t.Njj(a)}),t.bIt("onChange",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.onMobileCheckboxChange())}),t.k0s()()()}if(2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(2),t.Y8G("value",e),t.R50("ngModel",n.bulkEditSelectedData)}}function Ut(i,o){if(1&i){const e=t.RV6();t.j41(0,"span",84),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.enter",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.space",function(a){t.eBV(e);const s=t.XpG(2).$implicit,l=t.XpG();return a.preventDefault(),t.Njj(l.openStudentNoteModal(s))}),t.k0s()}}function Ht(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",81),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.markPresent(a))}),t.EFF(1," Present "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,lt,e.AttendanceStatus===n.attendanceStatusEnum.Present))("disabled",n.pendingStudentIds.has(e.StudentId))}}function Wt(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",81),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.markTardy(a))}),t.EFF(1," Tardy "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,dt,e.AttendanceStatus===n.attendanceStatusEnum.Tardy))("disabled",e.AttendanceStatus===n.attendanceStatusEnum.EarlyDismissed||e.AttendanceStatus===n.attendanceStatusEnum.Absent||n.pendingStudentIds.has(e.StudentId))}}function qt(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",85),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.cancelAbsence(a))}),t.EFF(1," Undo "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("disabled",e.AttendanceStatus!==n.attendanceStatusEnum.Absent||n.pendingStudentIds.has(e.StudentId))}}function Kt(i,o){1&i&&(t.j41(0,"div",86),t.nrm(1,"span",87),t.k0s())}function Qt(i,o){if(1&i){const e=t.RV6();t.j41(0,"td")(1,"div",66)(2,"div",67),t.nrm(3,"span",68),t.k0s(),t.j41(4,"div",69)(5,"div",70)(6,"span",71)(7,"strong",72)(8,"a",73),t.EFF(9),t.k0s(),t.DNE(10,Ut,1,0,"span",74),t.k0s(),t.j41(11,"small")(12,"strong"),t.EFF(13,"PMK ID:"),t.k0s(),t.EFF(14),t.k0s(),t.j41(15,"small")(16,"strong"),t.EFF(17,"SIS ID:"),t.k0s(),t.EFF(18),t.k0s()(),t.j41(19,"div")(20,"a",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG();return t.Njj(s.markEarlyDismissal(a))})("keydown.enter",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG();return t.Njj(!s.isEarlyDismissalDisabled(a)&&s.markEarlyDismissal(a))})("keydown.space",function(a){t.eBV(e);const s=t.XpG().$implicit,l=t.XpG();return!l.isEarlyDismissalDisabled(s)&&l.markEarlyDismissal(s),t.Njj(a.preventDefault())}),t.qSk(),t.j41(21,"svg",76),t.nrm(22,"use",77),t.k0s()(),t.joV(),t.j41(23,"div"),t.EFF(24),t.k0s()()(),t.j41(25,"div",78)(26,"div",79),t.DNE(27,Ht,2,4,"button",80)(28,Wt,2,4,"button",80),t.j41(29,"button",81),t.bIt("click",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG();return t.Njj(s.markAbsent(a))}),t.EFF(30," Absent "),t.k0s(),t.DNE(31,qt,2,1,"button",82),t.k0s(),t.DNE(32,Kt,2,0,"div",83),t.k0s()()()()}if(2&i){const e=t.XpG(),n=e.expanded,a=e.$implicit,s=t.XpG();t.R7$(3),t.Y8G("pRowToggler",a)("ngClass",n?"pi pi-chevron-down":"pi pi-chevron-right"),t.R7$(5),t.Y8G("routerLink",t.eq3(21,it,a.StudentId)),t.R7$(),t.Lme(" ",a.FirstName," ",a.LastName," "),t.R7$(),t.Y8G("ngIf",a.HasStudentNote),t.R7$(4),t.SpI(" ",a.SchoolStudentId,""),t.R7$(4),t.SpI(" ",a.ExternalStudentId,""),t.R7$(2),t.AVh("disabled-link",s.isEarlyDismissalDisabled(a)),t.Y8G("pTooltip",a.AttendanceStatus===s.attendanceStatusEnum.EarlyDismissed?"Mark Present":"Mark Early Dismissal"),t.BMQ("aria-label",a.AttendanceStatus===s.attendanceStatusEnum.EarlyDismissed?"Mark Present":"Mark Early Dismissal")("aria-disabled",s.isEarlyDismissalDisabled(a)),t.R7$(),t.Y8G("ngClass",t.eq3(23,st,a.AttendanceStatus===s.attendanceStatusEnum.EarlyDismissed)),t.R7$(3),t.JRh(a.EarlyDismissalScheduledTime),t.R7$(3),t.Y8G("ngIf",s.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",s.isSelectedDateToday),t.R7$(),t.Y8G("ngClass",t.eq3(25,ot,a.AttendanceStatus===s.attendanceStatusEnum.Absent))("disabled",a.AttendanceStatus===s.attendanceStatusEnum.EarlyDismissed||s.pendingStudentIds.has(a.StudentId)),t.R7$(2),t.Y8G("ngIf",s.isSelectedDateNotToday),t.R7$(),t.Y8G("ngIf",s.pendingStudentIds.has(a.StudentId))}}function zt(i,o){if(1&i&&(t.j41(0,"td",55),t.nrm(1,"p-tableCheckbox",88),t.k0s()),2&i){const e=t.XpG().$implicit;t.R7$(),t.Y8G("value",e)}}function Jt(i,o){if(1&i){const e=t.RV6();t.j41(0,"span",84),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.enter",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.space",function(a){t.eBV(e);const s=t.XpG(2).$implicit,l=t.XpG();return a.preventDefault(),t.Njj(l.openStudentNoteModal(s))}),t.k0s()}}function Zt(i,o){if(1&i&&(t.j41(0,"td",89)(1,"div",90)(2,"a",73),t.EFF(3),t.k0s(),t.DNE(4,Jt,1,0,"span",74),t.k0s(),t.j41(5,"div",91),t.EFF(6),t.k0s(),t.j41(7,"div",91),t.EFF(8),t.k0s()()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.Y8G("hideDelay",n.systemService.customViewportCheck(780)?4e3:0)("pTooltip",(e.FirstName+" "+e.LastName).length>15?e.FirstName+" "+e.LastName:null),t.R7$(),t.Y8G("routerLink",t.eq3(8,it,e.StudentId)),t.R7$(),t.Lme(" ",e.FirstName," ",e.LastName," "),t.R7$(),t.Y8G("ngIf",e.HasStudentNote),t.R7$(2),t.SpI("PMK ID: ",e.SchoolStudentId,""),t.R7$(2),t.SpI("SIS ID: ",e.ExternalStudentId,"")}}function te(i,o){if(1&i&&(t.j41(0,"td",89)(1,"div",90),t.EFF(2),t.k0s()()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.Y8G("hideDelay",n.systemService.customViewportCheck(780)?4e3:0)("pTooltip",e.Grade.length>15?e.Grade:null),t.R7$(),t.SpI(" ",e.Grade,"")}}function ee(i,o){if(1&i&&(t.j41(0,"td",89)(1,"div",90),t.EFF(2),t.k0s()()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.Y8G("hideDelay",n.systemService.customViewportCheck(780)?4e3:0)("pTooltip",(null==e.ClassName?null:e.ClassName.length)>15?e.ClassName:null),t.R7$(),t.SpI(" ",e.ClassName,"")}}function ne(i,o){if(1&i){const e=t.RV6();t.j41(0,"td",92)(1,"a",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG();return t.Njj(s.markEarlyDismissal(a))})("keydown.enter",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG();return t.Njj(!s.isEarlyDismissalDisabled(a)&&s.markEarlyDismissal(a))})("keydown.space",function(a){t.eBV(e);const s=t.XpG().$implicit,l=t.XpG();return!l.isEarlyDismissalDisabled(s)&&l.markEarlyDismissal(s),t.Njj(a.preventDefault())}),t.qSk(),t.j41(2,"svg",76),t.nrm(3,"use",77),t.k0s()(),t.joV(),t.j41(4,"div"),t.EFF(5),t.k0s()()}if(2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.AVh("disabled-link",n.isEarlyDismissalDisabled(e)),t.Y8G("pTooltip",e.AttendanceStatus===n.attendanceStatusEnum.EarlyDismissed?"Mark Present":"Mark Early Dismissal"),t.BMQ("aria-label",e.AttendanceStatus===n.attendanceStatusEnum.EarlyDismissed?"Mark Present":"Mark Early Dismissal")("aria-disabled",n.isEarlyDismissalDisabled(e)),t.R7$(),t.Y8G("ngClass",t.eq3(7,st,e.AttendanceStatus===n.attendanceStatusEnum.EarlyDismissed)),t.R7$(3),t.JRh(e.EarlyDismissalScheduledTime)}}function ae(i,o){1&i&&(t.qex(0),t.j41(1,"span",95),t.EFF(2,"Released Early"),t.k0s(),t.bVm())}function ie(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",81),t.bIt("click",function(){t.eBV(e);const a=t.XpG(3).$implicit,s=t.XpG();return t.Njj(s.markPresent(a))}),t.EFF(1," Present "),t.k0s()}if(2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,lt,e.AttendanceStatus===n.attendanceStatusEnum.Present))("disabled",n.pendingStudentIds.has(e.StudentId))}}function se(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",81),t.bIt("click",function(){t.eBV(e);const a=t.XpG(3).$implicit,s=t.XpG();return t.Njj(s.markTardy(a))}),t.EFF(1," Tardy "),t.k0s()}if(2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,dt,e.AttendanceStatus===n.attendanceStatusEnum.Tardy))("disabled",e.AttendanceStatus===n.attendanceStatusEnum.EarlyDismissed||e.AttendanceStatus===n.attendanceStatusEnum.Absent||n.pendingStudentIds.has(e.StudentId))}}function oe(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",85),t.bIt("click",function(){t.eBV(e);const a=t.XpG(3).$implicit,s=t.XpG();return t.Njj(s.cancelAbsence(a))}),t.EFF(1," Undo "),t.k0s()}if(2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.Y8G("disabled",e.AttendanceStatus!==n.attendanceStatusEnum.Absent||n.pendingStudentIds.has(e.StudentId))}}function le(i,o){if(1&i){const e=t.RV6();
1t.DNE(0,ie,2,4,"button",80)(1,se,2,4,"button",80),t.j41(2,"button",81),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.markAbsent(a))}),t.EFF(3," Absent "),t.k0s(),t.DNE(4,oe,2,1,"button",82)}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngIf",n.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",n.isSelectedDateToday),t.R7$(),t.Y8G("ngClass",t.eq3(5,ot,e.AttendanceStatus===n.attendanceStatusEnum.Absent))("disabled",e.AttendanceStatus===n.attendanceStatusEnum.EarlyDismissed||n.pendingStudentIds.has(e.StudentId)),t.R7$(2),t.Y8G("ngIf",n.isSelectedDateNotToday)}}function de(i,o){1&i&&(t.j41(0,"div",86),t.nrm(1,"span",87),t.k0s())}function re(i,o){if(1&i&&(t.j41(0,"td",93)(1,"div",78)(2,"div",79),t.DNE(3,ae,3,0,"ng-container",94)(4,le,5,7,"ng-template",null,2,t.C5r),t.k0s(),t.DNE(6,de,2,0,"div",83),t.k0s()()),2&i){const e=t.sdS(5),n=t.XpG().$implicit,a=t.XpG();t.R7$(3),t.Y8G("ngIf",n.AttendanceStatus===a.attendanceStatusEnum.EarlyDismissed)("ngIfElse",e),t.R7$(3),t.Y8G("ngIf",a.pendingStudentIds.has(n.StudentId))}}function ce(i,o){if(1&i&&(t.j41(0,"tr"),t.DNE(1,Lt,3,2,"td",51)(2,Qt,33,27,"td",50)(3,zt,2,1,"td",51)(4,Zt,9,10,"td",61)(5,te,3,3,"td",61)(6,ee,3,3,"td",61)(7,ne,6,9,"td",62)(8,re,7,3,"td",63),t.k0s()),2&i){const e=t.XpG();t.R7$(),t.Y8G("ngIf",e.bulkEdit&&e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",e.bulkEdit&&!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156))}}function pe(i,o){if(1&i&&(t.j41(0,"tr")(1,"td",96)(2,"div",97)(3,"span")(4,"strong",98),t.EFF(5,"Grade:"),t.k0s(),t.EFF(6),t.k0s(),t.j41(7,"span")(8,"strong",98),t.EFF(9,"Class:"),t.k0s(),t.EFF(10),t.k0s()()()()),2&i){const e=t.XpG().$implicit;t.R7$(6),t.SpI(" ",e.Grade,""),t.R7$(4),t.SpI(" ",e.ClassName,"")}}function _e(i,o){if(1&i&&t.DNE(0,pe,11,2,"tr",50),2&i){const e=t.XpG();t.Y8G("ngIf",e.systemService.customViewportCheck(1156))}}function ue(i,o){if(1&i&&t.EFF(0),2&i){const e=t.XpG(),n=t.sdS(26);t.LHq(" ",null==n.filteredValue?null:n.filteredValue.length," ",null!==(null==n.filteredValue?null:n.filteredValue.length)?" of ":""," ",e.totalRecords," total row",1!==e.totalRecords?"s":""," ")}}function me(i,o){if(1&i&&t.nrm(0,"student-note-modal",99),2&i){const e=t.XpG();t.Y8G("studentId",e.studentForNoteModal.StudentId)("studentName",e.studentForNoteModal.FirstName+" "+e.studentForNoteModal.LastName)("cancel",e.closeStudentNoteModal)}}function ge(i,o){if(1&i&&t.EFF(0),2&i){const e=t.XpG(2);t.SpI(" ",e.updateAttendanceWithHallPassModal.Title," ")}}function he(i,o){if(1&i&&(t.j41(0,"div",54)(1,"div",103),t.EFF(2),t.k0s(),t.j41(3,"div",104)(4,"div",105)(5,"div"),t.EFF(6,"From"),t.k0s(),t.j41(7,"div",106),t.EFF(8),t.k0s()(),t.nrm(9,"div",107),t.j41(10,"div",105)(11,"div"),t.EFF(12,"Destination"),t.k0s(),t.j41(13,"div",106),t.EFF(14),t.k0s()(),t.nrm(15,"div",107),t.j41(16,"div",105)(17,"div"),t.EFF(18,"Hall Pass Status"),t.k0s(),t.j41(19,"div",106),t.EFF(20),t.k0s()(),t.nrm(21,"div",107),t.j41(22,"div",108),t.EFF(23),t.k0s()()()),2&i){const e=t.XpG(2);t.R7$(2),t.Lme(" ",e.updateAttendanceWithHallPassModal.Student.FirstName," ",e.updateAttendanceWithHallPassModal.Student.LastName," "),t.R7$(6),t.JRh(e.updateAttendanceWithHallPassModal.OriginName),t.R7$(6),t.JRh(e.updateAttendanceWithHallPassModal.DestinationName),t.R7$(6),t.JRh(e.updateAttendanceWithHallPassModal.Status),t.R7$(3),t.SpI(" ",e.updateAttendanceWithHallPassModal.Message," ")}}function fe(i,o){if(1&i&&t.nrm(0,"app-btn-primary-state",109)(1,"app-btn-secondary-state",109),2&i){const e=t.XpG(2);t.Y8G("label",e.updateAttendanceWithHallPassModal.ButtonLabel)("state",e.btnState)("action",e.updateStudentAttendanceWithHallPass),t.R7$(),t.Y8G("label","Cancel")("state",e.btnState)("action",e.closeAttendanceWithHallPassModal)}}function be(i,o){if(1&i){const e=t.RV6();t.j41(0,"p-dialog",100),t.bIt("keydown.escape",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.closeAttendanceWithHallPassModal())}),t.DNE(1,ge,1,1,"ng-template",25)(2,he,24,6,"ng-template",101)(3,fe,2,6,"ng-template",102),t.k0s()}2&i&&(t.Aen(t.lJ4(5,rt)),t.Y8G("visible",!0)("draggable",!1)("closable",!1))}function Se(i,o){if(1&i&&t.EFF(0),2&i){const e=t.XpG(2);t.SpI(" ",e.attendanceDetailsModal.Title," ")}}function ye(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",122)(1,"label"),t.EFF(2,"Time of arrival"),t.k0s(),t.j41(3,"p-calendar",123),t.bIt("onSelect",function(a){t.eBV(e);const s=t.XpG(3);return t.Njj(s.onTardyTimeSelect(a))}),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(3);return t.DH7(s.attendanceDetailsModal.Time,a)||(s.attendanceDetailsModal.Time=a),t.Njj(a)}),t.k0s()()}if(2&i){const e=t.XpG(3);t.R7$(3),t.Aen(t.lJ4(6,z)),t.Y8G("autofocus",!1)("timeOnly",!0)("readonlyInput",!0),t.R50("ngModel",e.attendanceDetailsModal.Time)}}function ke(i,o){if(1&i){const e=t.RV6();t.j41(0,"input",124),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(3);return t.DH7(s.attendanceDetailsModal.CustomReason,a)||(s.attendanceDetailsModal.CustomReason=a),t.Njj(a)}),t.k0s()}if(2&i){const e=t.XpG(3);t.R50("ngModel",e.attendanceDetailsModal.CustomReason),t.Y8G("maxlength",100)}}function Ce(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",112)(1,"label"),t.EFF(2,"Start Date"),t.k0s(),t.j41(3,"p-dropdown",125),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(3);return t.DH7(s.attendanceDetailsModal.StartDateOption,a)||(s.attendanceDetailsModal.StartDateOption=a),t.Njj(a)}),t.bIt("onChange",function(){t.eBV(e);const a=t.XpG(3);return t.Njj(a.onStartDateOptionChange())}),t.k0s()()}if(2&i){const e=t.XpG(3);t.R7$(3),t.Y8G("options",e.absentStartDateDropdownOptions),t.R50("ngModel",e.attendanceDetailsModal.StartDateOption),t.Y8G("disabled",e.isSelectedDateNotToday)}}function De(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",126)(1,"p-calendar",127),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(3);return t.DH7(s.attendanceDetailsModal.StartDateCustom,a)||(s.attendanceDetailsModal.StartDateCustom=a),t.Njj(a)}),t.bIt("onSelect",function(){t.eBV(e);const a=t.XpG(3);return t.Njj(a.onCustomStartDateChange())}),t.k0s()()}if(2&i){const e=t.XpG(3);t.R7$(),t.Aen(t.lJ4(6,z)),t.R50("ngModel",e.attendanceDetailsModal.StartDateCustom),t.Y8G("disabled",e.isSelectedDateNotToday)("minDate",e.todayDate)("readonlyInput",!0)}}function xe(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",117)(1,"div",118)(2,"p-inputSwitch",128),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(3);return t.DH7(s.attendanceDetailsModal.SelectTillDate,a)||(s.attendanceDetailsModal.SelectTillDate=a),t.Njj(a)}),t.bIt("onChange",function(){t.eBV(e);const a=t.XpG(3);return t.Njj(a.onSelectTillDateChange())}),t.k0s()(),t.j41(3,"span"),t.EFF(4,"Through a specific date"),t.k0s()()}if(2&i){const e=t.XpG(3);t.R7$(2),t.R50("ngModel",e.attendanceDetailsModal.SelectTillDate)}}function Me(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",112)(1,"label"),t.EFF(2,"Till Date"),t.k0s(),t.j41(3,"p-calendar",129),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(3);return t.DH7(s.attendanceDetailsModal.TillDate,a)||(s.attendanceDetailsModal.TillDate=a),t.Njj(a)}),t.bIt("onSelect",function(){t.eBV(e);const a=t.XpG(3);return t.Njj(a.onTillDateChange())}),t.k0s()()}if(2&i){const e=t.XpG(3);t.R7$(3),t.Aen(t.lJ4(5,z)),t.R50("ngModel",e.attendanceDetailsModal.TillDate),t.Y8G("minDate",e.tillMinDate)("readonlyInput",!0)}}function Te(i,o){if(1&i){const e=t.RV6();t.DNE(0,ye,4,7,"div",111),t.j41(1,"div",112)(2,"label"),t.EFF(3,"Reason"),t.k0s(),t.j41(4,"p-dropdown",113),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.attendanceDetailsModal.SelectedReason,a)||(s.attendanceDetailsModal.SelectedReason=a),t.Njj(a)}),t.bIt("onChange",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.onReasonChange())}),t.k0s(),t.DNE(5,ke,1,2,"input",114),t.k0s(),t.DNE(6,Ce,4,3,"div",115)(7,De,2,7,"div",116),t.j41(8,"div",117)(9,"div",118)(10,"p-inputSwitch",119),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.attendanceDetailsModal.IsExcused,a)||(s.attendanceDetailsModal.IsExcused=a),t.Njj(a)}),t.k0s()(),t.j41(11,"span"),t.EFF(12,"Excused"),t.k0s()(),t.DNE(13,xe,5,1,"div",120)(14,Me,4,6,"div",115),t.j41(15,"div",121)(16,"p"),t.EFF(17),t.k0s()()}if(2&i){const e=t.XpG(2);t.Y8G("ngIf",(null==e.attendanceDetailsModal.Payload?null:e.attendanceDetailsModal.Payload.AttendanceOperation)===e.attendanceOperationEnum.MarkTardy),t.R7$(4),t.Y8G("options",e.absenceReasonsDropdownOptions),t.R50("ngModel",e.attendanceDetailsModal.SelectedReason),t.R7$(),t.Y8G("ngIf",!e.attendanceDetailsModal.SelectedReason),t.R7$(),t.Y8G("ngIf",(null==e.attendanceDetailsModal.Payload?null:e.attendanceDetailsModal.Payload.AttendanceOperation)===e.attendanceOperationEnum.MarkAbsent),t.R7$(),t.Y8G("ngIf",(null==e.attendanceDetailsModal.Payload?null:e.attendanceDetailsModal.Payload.AttendanceOperation)===e.attendanceOperationEnum.MarkAbsent&&e.attendanceDetailsModal.StartDateOption===e.startDateOptionValues.Custom),t.R7$(3),t.R50("ngModel",e.attendanceDetailsModal.IsExcused),t.R7$(3),t.Y8G("ngIf",(null==e.attendanceDetailsModal.Payload?null:e.attendanceDetailsModal.Payload.AttendanceOperation)===e.attendanceOperationEnum.MarkAbsent),t.R7$(),t.Y8G("ngIf",e.attendanceDetailsModal.SelectTillDate),t.R7$(3),t.JRh(e.attendanceDetailsModal.ConfirmationMessage)}}function Ie(i,o){if(1&i&&t.nrm(0,"app-btn-primary-state",109)(1,"app-btn-secondary-state",109),2&i){const e=t.XpG(2);t.Y8G("label",e.attendanceDetailsModal.ButtonLabel)("state",e.btnState)("action",e.updateAttendanceWithDetails),t.R7$(),t.Y8G("label","Cancel")("state",e.btnState)("action",e.closeAttendanceDetailsModal)}}function ve(i,o){if(1&i){const e=t.RV6();t.j41(0,"p-dialog",110),t.bIt("keydown.escape",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.closeAttendanceDetailsModal())},!1,t.EBC)("onShow",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.focusAttendanceDetailsModal())}),t.DNE(1,Se,1,1,"ng-template",25)(2,Te,18,10,"ng-template",101)(3,Ie,2,6,"ng-template",102),t.k0s()}2&i&&(t.Aen(t.lJ4(7,rt)),t.Y8G("visible",!0)("draggable",!1)("closable",!1)("focusOnShow",!1)("autofocus",!1))}function Pe(i,o){if(1&i&&t.EFF(0),2&i){const e=t.XpG(2);t.SpI(" ",e.bulkUpdateAttendanceWithValidationsModal.Title," ")}}function we(i,o){if(1&i&&(t.j41(0,"div")(1,"p",121),t.EFF(2),t.k0s()()),2&i){const e=t.XpG(3);t.R7$(2),t.JRh(e.bulkUpdateAttendanceWithValidationsModal.SuccessMessage)}}function Re(i,o){}function Ae(i,o){if(1&i&&(t.j41(0,"tr")(1,"td"),t.EFF(2),t.k0s()()),2&i){const e=o.$implicit;t.R7$(2),t.JRh((null==e?null:e.DisplayName)||e)}}function Ee(i,o){if(1&i&&(t.j41(0,"div",131),t.EFF(1),t.k0s(),t.j41(2,"p-table",132),t.DNE(3,Re,0,0,"ng-template",25)(4,Ae,3,1,"ng-template",27),t.k0s()),2&i){const e=o.students,n=o.label;t.R7$(),t.JRh(n),t.R7$(),t.Y8G("value",e)}}function Ge(i,o){1&i&&t.eu8(0)}function Fe(i,o){if(1&i&&(t.j41(0,"div"),t.qex(1),t.DNE(2,Ge,1,0,"ng-container",133),t.bVm(),t.k0s()),2&i){t.XpG();const e=t.sdS(4),n=t.XpG(2);t.R7$(2),t.Y8G("ngTemplateOutlet",e)("ngTemplateOutletContext",t.eq3(2,yt,null==n.bulkUpdateAttendanceWithValidationsModal.Validations?null:n.bulkUpdateAttendanceWithValidationsModal.Validations.HallPassInProgressOrScheduledStudents))}}function Ne(i,o){1&i&&t.eu8(0)}function je(i,o){if(1&i&&(t.qex(0),t.DNE(1,Ne,1,0,"ng-container",133),t.bVm()),2&i){t.XpG(2);const e=t.sdS(4),n=t.XpG(2);t.R7$(),t.Y8G("ngTemplateOutlet",e)("ngTemplateOutletContext",t.eq3(2,kt,null==n.bulkUpdateAttendanceWithValidationsModal.Validations?null:n.bulkUpdateAttendanceWithValidationsModal.Validations.AbsentOrEarlyDismissedStudents))}}function Oe(i,o){1&i&&t.eu8(0)}function Ve(i,o){if(1&i&&(t.qex(0),t.DNE(1,Oe,1,0,"ng-container",133),t.bVm()),2&i){t.XpG(2);const e=t.sdS(4),n=t.XpG(2);t.R7$(),t.Y8G("ngTemplateOutlet",e)("ngTemplateOutletContext",t.eq3(2,Ct,null==n.bulkUpdateAttendanceWithValidationsModal.Validations?null:n.bulkUpdateAttendanceWithValidationsModal.Validations.DismissedOrAnnouncedStudents))}}function $e(i,o){1&i&&t.eu8(0)}function Be(i,o){if(1&i&&(t.qex(0),t.DNE(1,$e,1,0,"ng-container",133),t.bVm()),2&i){t.XpG(2);const e=t.sdS(4),n=t.XpG(2);t.R7$(),t.Y8G("ngTemplateOutlet",e)("ngTemplateOutletContext",t.eq3(2,Dt,null==n.bulkUpdateAttendanceWithValidationsModal.Validations?null:n.bulkUpdateAttendanceWithValidationsModal.Validations.CheckedInStudents))}}function Xe(i,o){1&i&&t.eu8(0)}function Ye(i,o){if(1&i&&(t.qex(0),t.DNE(1,Xe,1,0,"ng-container",133),t.bVm()),2&i){t.XpG(2);const e=t.sdS(4),n=t.XpG(2);t.R7$(),t.Y8G("ngTemplateOutlet",e)("ngTemplateOutletContext",t.eq3(2,xt,null==n.bulkUpdateAttendanceWithValidationsModal.Validations?null:n.bulkUpdateAttendanceWithValidationsModal.Validations.ScheduledEarlyDismissalStudents))}}function Le(i,o){if(1&i&&(t.j41(0,"div"),t.DNE(1,je,2,4,"ng-container",50)(2,Ve,2,4,"ng-container",50)(3,Be,2,4,"ng-container",50)(4,Ye,2,4,"ng-container",50),t.k0s()),2&i){const e=t.XpG(3);t.R7$(),t.Y8G("ngIf",(null==e.bulkUpdateAttendanceWithValidationsModal.Validations||null==e.bulkUpdateAttendanceWithValidationsModal.Validations.AbsentOrEarlyDismissedStudents?null:e.bulkUpdateAttendanceWithValidationsModal.Validations.AbsentOrEarlyDismissedStudents.length)>0),t.R7$(),t.Y8G("ngIf",(null==e.bulkUpdateAttendanceWithValidationsModal.Validations||null==e.bulkUpdateAttendanceWithValidationsModal.Validations.DismissedOrAnnouncedStudents?null:e.bulkUpdateAttendanceWithValidationsModal.Validations.DismissedOrAnnouncedStudents.length)>0),t.R7$(),t.Y8G("ngIf",(null==e.bulkUpdateAttendanceWithValidationsModal.Validations||null==e.bulkUpdateAttendanceWithValidationsModal.Validations.CheckedInStudents?null:e.bulkUpdateAttendanceWithValidationsModal.Validations.CheckedInStudents.length)>0),t.R7$(),t.Y8G("ngIf",(null==e.bulkUpdateAttendanceWithValidationsModal.Validations||null==e.bulkUpdateAttendanceWithValidationsModal.Validations.ScheduledEarlyDismissalStudents?null:e.bulkUpdateAttendanceWithValidationsModal.Validations.ScheduledEarlyDismissalStudents.length)>0)}}function Ue(i,o){if(1&i&&(t.DNE(0,we,3,1,"div",50),t.j41(1,"div",130),t.EFF(2),t.k0s(),t.DNE(3,Ee,5,2,"ng-template",null,3,t.C5r)(5,Fe,3,4,"div",50)(6,Le,5,4,"div",50)),2&i){const e=t.XpG(2);t.Y8G("ngIf",e.bulkUpdateAttendanceWithValidationsModal.SuccessMessage),t.R7$(2),t.SpI(" ",e.bulkUpdateAttendanceWithValidationsModal.Message," "),t.R7$(3),t.Y8G("ngIf",!0===e.bulkUpdateAttendanceWithValidationsModal.ShowStudentsWithHallPassOnly),t.R7$(),t.Y8G("ngIf",!1===e.bulkUpdateAttendanceWithValidationsModal.ShowStudentsWithHallPassOnly)}}function He(i,o){if(1&i&&t.nrm(0,"app-btn-primary-state",109),2&i){const e=t.XpG(3);t.Y8G("label",e.bulkUpdateAttendanceWithValidationsModal.PrimaryButtonLabel)("state",e.btnState)("action",e.bulkUpdateAttendanceWithValidations)}}function We(i,o){if(1&i&&(t.DNE(0,He,1,3,"app-btn-primary-state",134),t.nrm(1,"app-btn-secondary-state",109)),2&i){const e=t.XpG(2);t.Y8G("ngIf",!0===e.bulkUpdateAttendanceWithValidationsModal.ShowPrimaryButton),t.R7$(),t.Y8G("label",e.bulkUpdateAttendanceWithValidationsModal.SecondaryButtonLabel)("state",e.btnState)("action",e.closeBulkUpdateAttendanceWithValidationsModal)}}function qe(i,o){if(1&i){const e=t.RV6();t.j41(0,"p-dialog",100),t.bIt("keydown.escape",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.closeBulkUpdateAttendanceWithValidationsModal())}),t.DNE(1,Pe,1,1,"ng-template",25)(2,Ue,7,4,"ng-template",101)(3,We,2,4,"ng-template",102),t.k0s()}2&i&&(t.Aen(t.lJ4(5,St)),t.Y8G("visible",!0)("draggable",!1)("closable",!1))}function Ke(i,o){1&i&&t.EFF(0," Bulk Mark Present ")}function Qe(i,o){1&i&&(t.j41(0,"tr")(1,"th",144),t.EFF(2,"Student ID"),t.k0s(),t.j41(3,"th"),t.EFF(4,"Name"),t.k0s(),t.j41(5,"th"),t.EFF(6,"Status"),t.k0s(),t.j41(7,"th",145),t.EFF(8,"Action"),t.k0s()())}function ze(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",150),t.bIt("click",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG(3);return t.Njj(s.undoScannedStudentMarkPresent(a))}),t.k0s()}if(2&i){const e=t.XpG().$implicit;t.Y8G("disabled",!e.CanUndo||e.IsProcess
1ing)}}function Je(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",151),t.bIt("click",function(){t.eBV(e);const a=t.XpG().$implicit,s=t.XpG(3);return t.Njj(s.removeScannedAttendanceStudent(a))}),t.nrm(1,"i",152),t.k0s()}}function Ze(i,o){if(1&i&&(t.j41(0,"tr",146)(1,"td"),t.EFF(2),t.k0s(),t.j41(3,"td"),t.EFF(4),t.k0s(),t.j41(5,"td")(6,"span",147),t.EFF(7),t.k0s()(),t.j41(8,"td",54),t.DNE(9,ze,1,1,"button",148)(10,Je,2,0,"button",149),t.k0s()()),2&i){const e=o.$implicit,n=t.XpG(3);t.Y8G("ngClass",t.l_i(7,Tt,"success"===e.StatusSeverity,"error"===e.StatusSeverity)),t.R7$(2),t.JRh(e.SchoolStudentId),t.R7$(2),t.JRh(e.DisplayName),t.R7$(2),t.Y8G("ngClass",t.l_i(10,It,"success"===e.StatusSeverity,"error"===e.StatusSeverity)),t.R7$(),t.SpI(" ",e.StatusMessage," "),t.R7$(2),t.Y8G("ngIf",!n.isScannedStudentNotFound(e)),t.R7$(),t.Y8G("ngIf",n.isScannedStudentNotFound(e))}}function tn(i,o){1&i&&(t.j41(0,"tr")(1,"td",153),t.EFF(2,"Scan or type a Student ID to start bulk mark present."),t.k0s()())}function en(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",136)(1,"div",137)(2,"div",138)(3,"div",139)(4,"input",140,4),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.scannedStudentId,a)||(s.scannedStudentId=a),t.Njj(a)}),t.bIt("keyup.enter",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.getScannedStudentAndMarkPresent())}),t.k0s(),t.j41(6,"button",141),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.getScannedStudentAndMarkPresent())}),t.nrm(7,"i",142),t.k0s()()()(),t.j41(8,"p-table",143),t.DNE(9,Qe,9,0,"ng-template",25)(10,Ze,11,13,"ng-template",27)(11,tn,3,0,"ng-template",26),t.k0s()()}if(2&i){const e=t.XpG(2);t.R7$(4),t.R50("ngModel",e.scannedStudentId),t.R7$(4),t.Y8G("value",e.scannedAttendanceStudents)("scrollable",!0)}}function nn(i,o){if(1&i&&t.nrm(0,"app-btn-secondary-state",109),2&i){const e=t.XpG(2);t.Y8G("label","Close")("state",e.btnState)("action",e.closeScanQrCodesModal)}}function an(i,o){if(1&i){const e=t.RV6();t.j41(0,"p-dialog",135),t.bIt("keydown.escape",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.closeScanQrCodesModal())}),t.DNE(1,Ke,1,0,"ng-template",25)(2,en,12,3,"ng-template",101)(3,nn,1,3,"ng-template",102),t.k0s()}2&i&&(t.Aen(t.lJ4(5,Mt)),t.Y8G("visible",!0)("draggable",!1)("closable",!1))}let sn=(()=>{class i{get today(){return this.dateTimeService.formatDateToMMDDYYYY(new Date)}get isSelectedDateNotToday(){const e=this.getSelectedDate();return!this.dateTimeService.isSameDay(e,this.todayDate)}get isSelectedDateToday(){const e=this.getSelectedDate();return this.dateTimeService.isSameDay(e,this.todayDate)}get absenceReasonsDropdownOptions(){const e=this.attendanceDetailsModal.Payload?.AttendanceOperation;return[{label:"Custom Reason",value:null},...this.getReasonsByAttendanceOperation(e).map(a=>({label:a.Reason,value:a}))]}get absentStartDateDropdownOptions(){const e=this.getTomorrowDate();return[{label:`Today (${this.today})`,value:this.startDateOptionValues.Today},{label:`Tomorrow (${this.dateTimeService.formatDateToMMDDYYYY(e)})`,value:this.startDateOptionValues.Tomorrow},{label:"Custom",value:this.startDateOptionValues.Custom}]}constructor(e,n,a,s,l,r,m,u,w){this.systemService=e,this.messageService=n,this.attendanceService=a,this.gradeService=s,this.classesService=l,this.studentTagService=r,this.dateTimeService=m,this.userSettingService=u,this.checkInService=w,this.Subscriptions=[],this.attendanceRecords=[],this.studentNameSearch="",this.fetchStudent=new F.B,this.attendanceStatusEnum=P.h,this.attendanceOperationEnum=h,this.dailyAttendanceApiClasses=[],this.attendanceReasons=[],this.absentReasons=[],this.tardyReasons=[],this.earlyDismissedReasons=[],this.classrooms=[],this.grades=[],this.studentTags=[],this.itemsPerPage=25,this.totalRecords=0,this.firstLoad=!0,this.sortField="StudentLastName",this.sortOrder=1,this.pageNumber=1,this.absenteeTypeOptions=[{label:"All",value:j.All},{label:"Absent",value:j.Absent},{label:"Early Dismissal",value:j.EarlyDismissal}],this.attendanceStatusOptions=[{label:"All",value:O.All},{label:"At School",value:O.AtSchool},{label:"Not At School",value:O.NotAtSchool}],this.startDateOptionValues={Today:"today",Tomorrow:"tomorrow",Custom:"custom"},this.todayDate=new Date,this.tillMinDate=new Date,this.filtersPage=[{label:"Student ID",key:"schoolStudentId",type:"text",placeholder:"Student ID",value:null,params:{cb:()=>this.fetchStudent.next("")},useCallback:!0},{label:"SIS ID",key:"externalStudentId",type:"text",placeholder:"S
1IS ID",value:null,hideFilter:!0,params:{cb:()=>this.fetchStudent.next("")},useCallback:!0},{label:"Classroom",key:"classroom",type:"dropdown",params:{},placeholder:"All",id:"classroom",value:null,useCallback:!0,showClear:!0},{label:"Grade",key:"grade",type:"dropdown",params:{},placeholder:"All",id:"grade",value:null,useCallback:!0,showClear:!0},{label:"Student Tag",key:"tags",type:"multiselect",params:{},placeholder:"All Tags",id:"studentTag",filterText:"",value:[],useCallback:!0},{label:"Absentee Type",key:"absenteeType",type:"dropdown",params:{data:this.absenteeTypeOptions,label:"label",value:"value",cb:()=>this.fetchStudent.next("")},placeholder:"All",id:"absenteeType",value:j.All,defaultValue:j.All,useCallback:!0,showClear:!1},{label:"Attendance Status",key:"attendanceStatus",type:"dropdown",params:{data:this.attendanceStatusOptions,label:"label",value:"value",cb:()=>this.fetchStudent.next("")},placeholder:"All",id:"attendanceStatus",value:O.All,defaultValue:O.All,useCallback:!0,showClear:!1},{label:"Attendance Date",key:"date",type:"calendar",useCallback:!0,params:{cb:()=>this.fetchStudent.next("")},id:"date",value:this.todayDate,minDate:this.todayDate,defaultValue:this.todayDate}],this.storageKey="attendance-daily-table",this.bulkEdit=!1,this.bulkEditSelectAll=!1,this.bulkEditSelectedData=[],this.quickAttendanceEnabled=!1,this.pendingStudentIds=new Set,this.updateAttendanceWithHallPassModal={},this.bulkUpdateAttendanceWithValidationsModal={},this.attendanceDetailsModal={},this.btnState=A.D.Default,this.pageModals={StudentNotes:"studentNotes",StudentHasHallPass:"studentHasHallPass",AttendanceDetails:"attendanceDetails",BulkAttendanceValidations:"bulkAttendanceValidations",ScanQrCodes:"scanQrCodes"},this.selectedModal=null,this.studentForNoteModal=null,this.scannedStudentId="",this.scannedAttendanceStudents=[],this.scannedAttendanceStudentSessionIds=new Set,this.sortFields={LastName:"StudentLastName",Grade:"Grade",ClassName:"ClassName"},this.closeStudentNoteModal=()=>{this.selectedModal=null,this.studentForNoteModal=null},this.closeScanQrCodesModal=()=>{this.selectedModal=null,this.scannedStudentId="",this.scannedAttendanceStudents=[],this.scannedAttendanceStudentSessionIds.clear()},this.updateAttendanceWithDetails=()=>{const C=this.attendanceDetailsModal.Payload;C.Reason=this.attendanceDetailsModal.SelectedReason?this.attendanceDetailsModal.SelectedReason.Reason:this.attendanceDetailsModal.CustomReason,C.IsUnexcused=!this.attendanceDetailsModal.IsExcused,C.AttendanceOperation===h.MarkAbsent&&(C.StartDate=this.getSelectedAbsentStartDateFormatted()),C.AttendanceOperation===h.MarkTardy&&(C.Time=this.dateTimeService.convertTo24Hour(this.attendanceDetailsModal.Time)),C.TillDate=this.attendanceDetailsModal.SelectTillDate&&this.attendanceDetailsModal.TillDate?this.dateTimeService.formatDateToMMDDYYYY(this.attendanceDetailsModal.TillDate):null,this.attendanceDetailsModal.IsBulk?this.bulkUpdateStudentAttendance(C):this.updateStudentAttendance(C,this.attendanceDetailsModal.Student)},this.closeAttendanceDetailsModal=()=>{this.selectedModal=null,this.attendanceDetailsModal={},this.bulkEditSelectedData=[],this.bulkEditSelectAll=!1},this.updateStudentAttendanceWithHallPass=()=>{const C=this.updateAttendanceWithHallPassModal.Payload;C.IsTerminateHallPassConfirmed=!0,this.updateStudentAttendance(C,this.updateAttendanceWithHallPassModal.Student)},this.closeAttendanceWithHallPassModal=()=>{this.selectedModal=null,this.updateAttendanceWithHallPassModal={}},this.bulkUpdateAttendanceWithValidations=()=>{const C=this.bulkUpdateAttendanceWithValidationsModal.Payload;C.IsTerminateHallPassConfirmed=!0,this.bulkUpdateStudentAttendance(C)},this.closeBulkUpdateAttendanceWithValidationsModal=()=>{this.selectedModal=null,this.bulkUpdateAttendanceWithValidationsModal={},this.bulkEditSelectedData=[],this.bulkEditSelectAll=!1,this.getStudents(null,this.pageNumber)},this.pikmykidEllipsis=new Z.C(e)}ngOnInit(){this.setupSearchDebounce(),this.setupExternalIdFilterVisibility(),this.systemService.setLoading(!0),(0,g.p)({classrooms:this.getClassroomsBySchool(),grades:this.getListGrades(),studentTags:this.getStudentTags()}).subscribe(()=>{this.getUserFilters()}
1),this.getAttendanceSettings(),this.getDailyAttendanceApiClasses()}ngOnDestroy(){this.Subscriptions.forEach(e=>{e.unsubscribe()})}setupSearchDebounce(){this.Subscriptions.push(this.fetchStudent.pipe((0,b.B)(500)).subscribe(()=>{this.getStudents()}))}setupExternalIdFilterVisibility(){this.Subscriptions.push(this.systemService.siteSettingsLoaded.subscribe(e=>{e&&this.syncExternalIdFilterVisibility()}))}syncExternalIdFilterVisibility(){const e=this.filtersPage.find(a=>"externalStudentId"===a.key);if(!e)return;const n=this.systemService.schoolLayoutSettings()?.HasSchoolStudentExternalId;e.hideFilter=!n}getListGrades(){return this.gradeService.getGradesV2().pipe((0,_.T)(e=>e.Data.map(n=>({label:this.pikmykidEllipsis.transform(n.Name,30),value:n.Id}))),(0,T.M)(e=>{this.grades=e;const n=this.filtersPage.find(a=>"grade"===a.key);n&&(n.params={data:this.grades,label:"label",value:"value",cb:()=>this.fetchStudent.next("")})}))}getClassroomsBySchool(){return this.classesService.getClassroomsForFilter().pipe((0,T.M)(e=>{this.classrooms=[],e.Data.forEach(a=>{this.classrooms.push({label:this.pikmykidEllipsis.transform(a.Name,30),value:a.Id})});let n=this.filtersPage.find(a=>"classroom"==a.key);n&&(n.params={data:this.classrooms,label:"label",value:"value",cb:()=>this.fetchStudent.next("")})}))}getStudentTags(){return this.studentTagService.GetStudentTags().pipe((0,T.M)(e=>{this.studentTags=[],e.Data.forEach(a=>{this.studentTags.push({label:this.pikmykidEllipsis.transform(a.TagName,30),value:a.Id,studentIds:a.StudentIds})});let n=this.filtersPage.find(a=>"tags"==a.key);n&&(n.params={data:this.studentTags,label:"label",value:"value",cb:()=>this.fetchStudent.next("")})}))}getAttendanceSettings(){this.Subscriptions.push(this.attendanceService.GetAttendanceSettings().subscribe({next:e=>{e.Success&&e.Data&&(this.attendanceSettings=e.Data,this.quickAttendanceEnabled=this.attendanceSettings.EnableQuickAttendance,0==this.attendanceSettings.EnableQuickAttendance&&this.getAttendanceReasons())}}))}getAttendanceReasons(){this.Subscriptions.push(this.attendanceService.GetAttendanceReasons(null).subscribe({next:e=>{e.Success&&e.Data&&(this.attendanceReasons=e.Data,this.absentReasons=this.toReasonOptions(e.Data,P.h.Absent),this.tardyReasons=this.toReasonOptions(e.Data,P.h.Tardy),this.earlyDismissedReasons=this.toReasonOptions(e.Data,P.h.EarlyDismissed))}}))}getDailyAttendanceApiClasses(){this.Subscriptions.push(this.attendanceService.GetDailyAttendanceApiClasses().subscribe({next:e=>{e.Success&&e.Data&&(this.dailyAttendanceApiClasses=e.Data)}}))}getSisIds(e,n){const a=this.dailyAttendanceApiClasses.map(r=>({apiClass:r,student:r.Students.find(m=>m.StudentId===e)})).filter(r=>!!r.student);if(0===a.length)return{sisClassId:null,sisStudentId:null};if(a.length>1&&n){const r=this.normalizeClassName(n),m=a.find(u=>this.normalizeClassName(u.apiClass.ClassName)===r);if(m)return{sisClassId:m.apiClass.SisClassId,sisStudentId:m.student.SisStudentId}}const{apiClass:s,student:l}=a[0];return{sisClassId:s.SisClassId,sisStudentId:l.SisStudentId}}normalizeClassName(e){return(e??"").replace(/[:\s]+/g," ").trim().toLowerCase()}toReasonOptions(e,n){return e.filter(a=>a.AttendanceStatusTypeId===n)}getReasonsByAttendanceOperation(e){switch(e){case h.MarkAbsent:return this.absentReasons;case h.MarkTardy:return this.tardyReasons;case h.EarlyRelease:return this.earlyDismissedReasons;default:return[]}}getStudents(e=null,n=1){this.systemService.setLoading(!0);const a={StudentName:this.studentNameSearch,StudentId:this.getFilterValue("schoolStudentId"),ExternalId:this.getFilterValue("externalStudentId"),ClassId:this.getFilterValue("classroom"),GradeId:this.getFilterValue("grade"),StudentTagIds:this.getFilterValue("tags"),AbsenteeTypeFilter:this.getFilterValue("absenteeType"),AttendanceStatusFilter:this.getFilterValue("attendanceStatus"),AttendanceDate:this.getSelectedDateFormatted(),PageNumber:n,ItemsPerPage:this.itemsPerPage,OrderBy:this.sortField,SortAscending:!0};if(e){const s=e.first/e.rows+1;a.ItemsPerPage=e.rows,a.PageNumber=s,a.OrderBy=e.sortField??this.sortField,a.SortAscending=1==e.sortOrder,this.pageNumber=s,this.itemsPerPage=e.rows}this.isSelectedDateNotToday&&(this.bulkEdit=!1),this.Subscriptions.push(this.attendanceService.GetStudents(a).subscribe({next:s=>{this.firstLoad&&(this.firstLoad=!1),s.Success&&s.Data&&(this.attendanceRecords=s.Data.Items,this.totalRecords=s.Data.TotalRecords),this.systemService.setLoading(!1),this.saveUserFilterSettings()}}))}getFilterValue(e){const n=this.filtersPage.find(a=>a.key==e);return n?n.value:null}hasFilterValue(){return!this.firstLoad&&(this.filtersViewChild&&this.filtersViewChild.hasFilterValue()||this.studentNameSearch&&""!=this.studentNameSearch)}
1getSelectedDateFormatted(){const e=this.getSelectedDate();return this.dateTimeService.formatDateToMMDDYYYY(e)}getSelectedDate(){return this.getFilterValue("date")??this.todayDate}onCbClearAEFilter(){this.filtersPage.forEach(e=>{e.value="multiselect"===e.type?[]:"date"===e.key?this.todayDate:e.defaultValue?e.defaultValue:null}),this.filtersViewChild&&(this.filtersViewChild.filtersFound=!1),this.sortField="StudentLastName",this.sortOrder=1,this.studentNameSearch="",this.fetchStudent.next("")}toggleBulkEdit(){this.bulkEdit=!this.bulkEdit,this.bulkEditSelectedData=[],this.bulkEdit||(this.bulkEditSelectAll=!1)}toggleQuickAttendance(){this.quickAttendanceEnabled=!this.quickAttendanceEnabled,!this.quickAttendanceEnabled&&0===this.attendanceReasons.length&&this.getAttendanceReasons()}selectAllMobile(){this.bulkEditSelectedData=this.bulkEditSelectAll?[...this.attendanceRecords]:[]}onRowSelect(){this.bulkEditSelectedData.length==this.attendanceRecords.length&&(this.bulkEditSelectAll=!0)}onRowUnselect(){this.bulkEditSelectAll&&(this.bulkEditSelectAll=!1)}onMobileCheckboxChange(){this.bulkEditSelectAll=this.bulkEditSelectedData.length==this.attendanceRecords.length}openBulkActionModal(e){if(0===this.bulkEditSelectedData.length)return;const n={Students:this.bulkEditSelectedData.map(s=>{const{sisClassId:l,sisStudentId:r}=this.getSisIds(s.StudentId,s.ClassName);return{StudentId:s.StudentId,FirstName:s.FirstName,LastName:s.LastName,SchoolStudentId:s.SchoolStudentId,SisClassId:l,SisStudentId:r}}),AttendanceOperation:e,IsTerminateHallPassConfirmed:!1},a=this.getAttendanceOperationTexts(e,!0);this.attendanceDetailsModal={Payload:n,IsBulk:!0,SelectedReason:null,CustomReason:"",IsExcused:!0,StartDateOption:this.startDateOptionValues.Today,StartDateCustom:new Date,SelectTillDate:!1,TillDate:null,Title:a.title,ButtonLabel:a.buttonLabel,ConfirmationMessage:a.confirmationMessage},this.tillMinDate=this.todayDate,this.selectedModal=this.pageModals.AttendanceDetails}openStudentNoteModal(e){this.selectedModal=this.pageModals.StudentNotes,this.studentForNoteModal=e}openScanQrCodesModal(){this.isSelectedDateNotToday?this.messageService.add({severity:"error",detail:"Students can only be marked present for today."}):this.attendanceSettings&&!0===this.attendanceSettings.StudentsAbsentByDefault?(this.scannedStudentId="",this.scannedAttendanceStudents=[],this.scannedAttendanceStudentSessionIds.clear(),this.selectedModal=this.pageModals.ScanQrCodes,this.focusScanStudentInput()):this.messageService.add({severity:"error",detail:"Scan QR Codes is available only when Absent by default is enabled."})}getScannedStudentAndMarkPresent(){const e=(this.scannedStudentId||"").trim();return""===e?(this.messageService.add({severity:"error",detail:"Student ID must be provided"}),void this.focusScanStudentInput()):this.isSelectedDateNotToday?(this.setScannedStudentRowStatus(this.upsertScannedAttendanceStudentRow({SchoolStudentId:e,StatusSeverity:"error",StatusMessage:"Students can only be marked present for today."}),"error","Students can only be marked present for today."),this.scannedStudentId="",void this.focusScanStudentInput()):void this.Subscriptions.push(this.checkInService.GetStudentBySchoolStudentID({schoolStudentID:e,includeTodayDismissal:!0}).subscribe({next:a=>{const s=a?.Student;if(s){const l=Number(s.StudentID??s.StudentId),r=Number.isFinite(l)&&l>0?l:null,m=this.upsertScannedAttendanceStudentRow({StudentId:r,SchoolStudentId:s.SchoolStudentID??s.SchoolStudentId??e,FirstName:s.FirstName??"",LastName:s.LastName??""});r?this.markScannedStudentPresent(m):this.setScannedStudentRowStatus(m,"error","Student record is missing an ID")}else this.setScannedStudentRowStatus(this.upsertScannedAttendanceStudentRow({SchoolStudentId:e,StatusSeverity:"error",StatusMessage:"Student not found"}),"error","Student not found");this.scannedStudentId="",this.focusScanStudentInput()},error:()=>{this.setScannedStudentRowStatus(this.upsertScannedAttendanceStudentRow({SchoolStudentId:e,StatusSeverity:"error",StatusMessage:"Unable to process this Student ID right now."}),"error","Unable to process this Student ID right now."),this.scannedStudentId="",this.focusScanStudentInput()}}))}undoScannedStudentMarkPresent(e){if(!e.StudentId||e.IsProcessing||!e.CanUndo)return;const n={StudentId:e.StudentId,AttendanceOperation:h.MarkAbsent,IsTerminateHallPassConfirmed:!1};e.IsProcessing=!0,this.pendingStudentIds.add(e.StudentId),this.Subscriptions.push(this.attendanceService.Upd
1ateStudentAttendance(n).subscribe({next:a=>{if(e.IsProcessing=!1,this.pendingStudentIds.delete(n.StudentId),a?.Success)return e.CanUndo=!1,this.scannedAttendanceStudentSessionIds.delete(n.StudentId),this.setScannedStudentRowStatus(e,"success","The student has been marked absent"),this.messageService.add({severity:"success",detail:`${e.DisplayName} has been marked absent`}),this.getStudents(null,this.pageNumber),void this.focusScanStudentInput();this.setScannedStudentRowStatus(e,"error",!1===a?.IsSuccess&&a?.TakeAction?"The student is present and on a hall pass":a?.ErrorMessage||"Unable to process Undo right now.")},error:a=>{e.IsProcessing=!1,this.pendingStudentIds.delete(n.StudentId),this.setScannedStudentRowStatus(e,"error",a?.error?.Message||"Unable to process Undo right now.")}}))}isScannedStudentNotFound(e){return!(!e||e.StudentId)&&(e.StatusMessage||"").toLowerCase().includes("not found")}removeScannedAttendanceStudent(e){this.scannedAttendanceStudents=this.scannedAttendanceStudents.filter(n=>n!==e),this.focusScanStudentInput()}markScannedStudentPresent(e){if(!e.StudentId||e.IsProcessing||this.pendingStudentIds.has(e.StudentId))return;const n={StudentId:e.StudentId,AttendanceOperation:h.MarkPresent,IsTerminateHallPassConfirmed:!1};e.IsProcessing=!0,this.pendingStudentIds.add(e.StudentId),this.Subscriptions.push(this.attendanceService.UpdateStudentAttendance(n).subscribe({next:a=>{if(e.IsProcessing=!1,this.pendingStudentIds.delete(n.StudentId),a?.Success)return e.CanUndo=!0,this.scannedAttendanceStudentSessionIds.add(n.StudentId),this.setScannedStudentRowStatus(e,"success","The student has successfully been marked present"),this.messageService.add({severity:"success",detail:`${e.DisplayName} has been marked present`}),this.getStudents(null,this.pageNumber),void this.focusScanStudentInput();this.setScannedStudentRowStatus(e,"error",a?.ErrorMessage||"Unable to process this Student ID right now.")},error:a=>{e.IsProcessing=!1,this.pendingStudentIds.delete(n.StudentId),this.setScannedStudentRowStatus(e,"error",a?.error?.Message||"Unable to process this Student ID right now.")}}))}upsertScannedAttendanceStudentRow(e){const n=e.StudentId??null,a=e.SchoolStudentId??"",s=this.scannedAttendanceStudents.find(r=>n&&r.StudentId===n||!!a&&r.SchoolStudentId===a);if(s)return s.StudentId=n??s.StudentId,s.SchoolStudentId=a||s.SchoolStudentId,s.FirstName=e.FirstName??s.FirstName,s.LastName=e.LastName??s.LastName,s.DisplayName=this.getScannedStudentDisplayName(s.FirstName,s.LastName,s.SchoolStudentId),e.StatusMessage&&(s.StatusMessage=e.StatusMessage),e.StatusSeverity&&(s.StatusSeverity=e.StatusSeverity),s.CanUndo=!!s.StudentId&&this.scannedAttendanceStudentSessionIds.has(s.StudentId),s;const l={StudentId:n,SchoolStudentId:a,FirstName:e.FirstName??"",LastName:e.LastName??"",DisplayName:this.getScannedStudentDisplayName(e.FirstName??"",e.LastName??"",a),StatusMessage:e.StatusMessage??"",StatusSeverity:e.StatusSeverity??"error",IsProcessing:!1,CanUndo:!!n&&this.scannedAttendanceStudentSessionIds.has(n)};return this.scannedAttendanceStudents.unshift(l),l}getScannedStudentDisplayName(e,n,a){return`${e??""} ${n??""}`.trim()||`Student ${a}`}setScannedStudentRowStatus(e,n,a){e.StatusSeverity=n,e.StatusMessage=a}focusScanStudentInput(){setTimeout(()=>{this.scanStudentInput?.nativeElement?.focus()})}isEarlyDismissalDisabled(e){return e.AttendanceStatus===this.attendanceStatusEnum.Absent||e.AttendanceStatus===this.attendanceStatusEnum.Unknown||this.pendingStudentIds.has(e.StudentId)||this.isSelectedDateNotToday}markEarlyDismissal(e){if(e.AttendanceStatus===P.h.Absent||this.isSelectedDateNotToday)return;const n=e.AttendanceStatus===P.h.EarlyDismissed?h.MarkPresent:h.EarlyRelease,a={StudentId:e.StudentId,AttendanceOperation:n,IsTerminateHallPassConfirmed:!1};if(this.quickAttendanceEnabled||n===h.MarkPresent)this.updateStudentAttendance(a,e);else{const s=this.getAttendanceOperationTexts(n,!1,e);this.attendanceDetailsModal={Payload:a,Student:e,SelectedReason:null,CustomReason:"",IsExcused:!0,SelectTillDate:!1,TillDate:null,Title:s.title,ButtonLabel:s.buttonLabel,ConfirmationMessage:s.confirmationMessage},this.selectedModal=this.pageModals.AttendanceDetails}}markPresent(e){e.AttendanceStatus===P.h.Present||this.isSelectedDateNotToday||this.updateStudentAttendance({StudentId:e.StudentId,AttendanceOperation:e.AttendanceStatus===P.h.Tardy?h.CancelTardy:h.MarkPresent,IsTerminateHallPassConfirmed:!1},e)}markTardy(e){if(e.AttendanceStatus===P.h.Tardy||e.AttendanceStatus===P.h.EarlyDismissed||e.AttendanceStatus===P.h.Absent||this.isSelectedDateNotToday)return;const n={StudentId:e.StudentId,AttendanceOperation:h.MarkTardy,IsTerminateHallPassConfirmed:!1};if(this.quickAttendanceEnabled)this.updateStudentAttendance(n,e);else{const a=this.getAttendanceOperationTexts(h.MarkTardy,!1,e);this.attendanceDetailsModal={Payload:n,Student:e,SelectedReason:null,CustomReason:"",IsExcused:!0,SelectTillDate:!1,TillDate:null,Time:this.dateTimeService.formatDateTo12HrTimeString(new Date),Title:a.title,ButtonLabel:a.buttonLabel,ConfirmationMessage:a.confirmationMessage},this.selectedModal=this.pageModals.AttendanceDetails}}markAbsent(e){if(e.AttendanceStatus===P.h.EarlyDismissed||e.AttendanceStatus===P.h.Absent)return;const{sisClassId:n,sisStudentId:a}=this.getSisIds(e.StudentId,e.ClassName),s={StudentId:e.StudentId,AttendanceOperation:h.MarkAbsent,IsTerminateHallPassConfirmed:!1,SisClassId:n,SisStudentId:a};if(this.quickAttendanceEnabled)s.StartDate=this.getSelectedDateFormatted(),this.updateStudentAttendance(s,e);else{if(this.attendanceDetailsModal={Payload:s,Student:e,SelectedReason:null,CustomReason:"",IsExcused:!0,StartDateOption:this.startDateOptionValues.Today,StartDateCustom:new Date,SelectTillDate:!1,TillDate:null},this.isSelectedDateNotToday){this.attendanceDetailsModal.StartDateOption=this.startDateOptionValues.Custom;
1const r=this.getSelectedDate();this.attendanceDetailsModal.StartDateCustom=r,this.tillMinDate=r}else this.tillMinDate=this.todayDate;const l=this.getAttendanceOperationTexts(h.MarkAbsent,!1,e);this.attendanceDetailsModal.Title=l.title,this.attendanceDetailsModal.ButtonLabel=l.buttonLabel,this.attendanceDetailsModal.ConfirmationMessage=l.confirmationMessage,this.selectedModal=this.pageModals.AttendanceDetails}}cancelAbsence(e){if(e.AttendanceStatus!==P.h.Absent||this.isSelectedDateToday)return;const n={StudentId:e.StudentId,AttendanceOperation:h.CancelAbsent,StartDate:this.getSelectedDateFormatted()};this.updateStudentAttendance(n,e)}onTardyTimeSelect(e){const n=new Date;if(60*e.getHours()+e.getMinutes()>60*n.getHours()+n.getMinutes()){const l=this.dateTimeService.formatDateTo12HrTimeString(n);this.attendanceDetailsModal.Time=null,setTimeout(()=>{this.attendanceDetailsModal.Time=l})}}onReasonChange(){this.attendanceDetailsModal.CustomReason="",this.attendanceDetailsModal.IsExcused=!this.attendanceDetailsModal.SelectedReason||!this.attendanceDetailsModal.SelectedReason.Unexcused}getAttendanceOperationTexts(e,n,a){switch(e){case h.MarkAbsent:return{title:"Mark Absent",buttonLabel:"Mark Absent",confirmationMessage:this.getAbsentConfirmationMessage(n,null,a)};case h.EarlyRelease:return{title:"Mark Early Dismissal",buttonLabel:"Mark Dismissed",confirmationMessage:this.getEarlyDismissalConfirmationMessage(n,a)};case h.MarkTardy:return{title:"Mark Tardy",buttonLabel:"Mark Tardy",confirmationMessage:this.getTardyConfirmationMessage(n,a)};default:return{title:"",buttonLabel:"",confirmationMessage:""}}}getAbsentConfirmationMessage(e,n,a){const s=this.getBaseConfirmationMessage(e,a)+"absent ",l=this.getSelectedAbsentStartDateFormatted();return n?`${s} from ${l} to ${n}.`:`${s} for ${l}.`}getEarlyDismissalConfirmationMessage(e,n){return this.getBaseConfirmationMessage(e,n)+"an Early Dismissal. Continue?"}getTardyConfirmationMessage(e,n){return this.getBaseConfirmationMessage(e,n)+"Tardy. Continue?"}getBaseConfirmationMessage(e,n){const a="You are about to mark";return e?`${a} ${this.bulkEditSelectedData.length} ${1==this.bulkEditSelectedData.length?"student":"students"} as `:`${a} ${n.FirstName} ${n.LastName} as `}updateConfirmationMessage(){const e=this.attendanceDetailsModal.Student;if(this.attendanceDetailsModal.Payload?.AttendanceOperation===h.MarkAbsent){const a=this.attendanceDetailsModal.SelectTillDate,s=this.attendanceDetailsModal.TillDate,l=this.attendanceDetailsModal.IsBulk,r=this.getSelectedAbsentStartDate();if(a&&s&&!this.dateTimeService.isSameDay(s,r)){const u=this.dateTimeService.formatDateToMMDDYYYY(s);this.attendanceDetailsModal.ConfirmationMessage=this.getAbsentConfirmationMessage(l,u,e)}else this.attendanceDetailsModal.ConfirmationMessage=this.getAbsentConfirmationMessage(l,null,e)}}onStartDateOptionChange(){const e=this.getSelectedAbsentStartDate();this.tillMinDate=e,this.attendanceDetailsModal.SelectTillDate&&this.attendanceDetailsModal.TillDate&&this.dateTimeService.isDateBefore(this.attendanceDetailsModal.TillDate,e)&&(this.attendanceDetailsModal.TillDate=e),this.updateConfirmationMessage()}onCustomStartDateChange(){this.attendanceDetailsModal.StartDateOption===this.startDateOptionValues.Custom&&this.onStartDateOptionChange()}onSelectTillDateChange(){if(this.attendanceDetailsModal.SelectTillDate){const e=this.getSelectedAbsentStartDate();this.tillMinDate=e,this.attendanceDetailsModal.TillDate=e}this.updateConfirmationMessage()}onTillDateChange(){this.attendanceDetailsModal.SelectTillDate&&this.updateConfirmationMessage()}getSelectedAbsentStartDate(){const e=this.attendanceDetailsModal.StartDateOption;return e===this.startDateOptionValues.Tomorrow?this.getTomorrowDate():e===this.startDateOptionValues.Custom&&this.attendanceDetailsModal.StartDateCustom?this.attendanceDetailsModal.StartDateCustom:this.todayDate}getSelectedAbsentStartDateFormatted(){return this.dateTimeService.formatDateToMMDDYYYY(this.getSelectedAbsentStartDate())}getTomorrowDate(){const e=new Date(this.todayDate);return e.setDate(e.getDate()+1),e}focusAttendanceDetailsModal(){setTimeout(()=>{const e=document.querySelectorAll(".attendance-details-modal .p-dialog-footer button");e[e.length-1]?.focus()})}updateStudentAttendance(e,n){this.pendingStudentIds.add(e.StudentId),this.btnState=A.D.Loading,this.attendanceService.Upd
1ateStudentAttendance(e).subscribe({next:a=>{if(this.pendingStudentIds.delete(e.StudentId),a.Success){this.btnState=A.D.Success,setTimeout(()=>{this.btnState=A.D.Default,this.closeAttendanceWithHallPassModal(),this.closeAttendanceDetailsModal()},W.K.Default);const s=`${n.FirstName} ${n.LastName}`,l={[h.MarkAbsent]:this.getAbsentSuccessMessage(e,s),[h.MarkPresent]:`${s} has been marked present`,[h.EarlyRelease]:`${s} was dismissed early`,[h.CancelAbsent]:`${s}'s absence has been canceled`,[h.MarkTardy]:`${s} has been marked tardy`,[h.CancelTardy]:`${s} is no longer marked tardy and is now marked present`};return this.messageService.add({severity:"success",detail:l[e.AttendanceOperation]??`Attendance updated for ${s}`}),void this.getStudents(null,this.pageNumber)}if(0==a.IsSuccess&&a.TakeAction){const s={[h.MarkAbsent]:{title:"Mark Absent",buttonLabel:"Mark Absent"},[h.EarlyRelease]:{title:"Mark Early Dismissal",buttonLabel:"Mark Dismissed"}};this.updateAttendanceWithHallPassModal={Payload:e,Student:n,OriginName:a.OriginName,DestinationName:a.DestinationName,Status:a.Status,Message:a.ErrorMessage,Title:s[e.AttendanceOperation]?.title??"",ButtonLabel:s[e.AttendanceOperation]?.buttonLabel??""},this.btnState=A.D.Default,this.selectedModal=this.pageModals.StudentHasHallPass}},error:()=>{this.pendingStudentIds.delete(e.StudentId),this.btnState=A.D.Error,setTimeout(()=>{this.btnState=A.D.Default,this.getStudents(null,this.pageNumber)},W.K.Default)}})}getAbsentSuccessMessage(e,n){return this.getStartTillDateMessage(`${n} has been marked absent`,e.StartDate,e.TillDate)}getStartTillDateMessage(e,n,a){const s=n||this.today;return a&&a!=s?`${e} from ${s} to ${a}.`:`${e} for ${s===this.today?"today":s}.`}getBulkActionMessages(e,n,a){const l=1==e?`${e} student was`:`${e} students were`;return{[h.MarkAbsent]:this.getStartTillDateMessage((1==e?`${e} student has`:`${e} students have`)+" been marked absent",n,a),[h.EarlyRelease]:`${l} dismissed early`}}bulkUpdateStudentAttendance(e){this.btnState=A.D.Loading,this.attendanceService.BulkUpdateStudentAttendance(e).subscribe({next:n=>{if(n.Success){this.btnState=A.D.Success,setTimeout(()=>{this.btnState=A.D.Default,this.closeAttendanceDetailsModal()},W.K.Default);const a=this.getBulkActionMessages(e.Students.length,e.StartDate,e.TillDate);return this.messageService.add({severity:"success",detail:a[e.AttendanceOperation]}),void this.getStudents(null,this.pageNumber)}if(0==n.IsSuccess&&n.TakeAction){const a=n.Validations,s=a.HasHallPassInProgressOrScheduled,l=this.getBulkActionMessages(a.ValidStudentIds.length,e.StartDate,e.TillDate),m={[h.MarkAbsent]:{title:"Mark Absent",primaryButtonLabel:"Mark Absent"},[h.EarlyRelease]:{title:"Mark Early Dismissal",primaryButtonLabel:"Mark Dismissed"}};this.bulkUpdateAttendanceWithValidationsModal={Payload:e,Validations:a,Message:n.ErrorMessage,Title:m[e.AttendanceOperation].title,PrimaryButtonLabel:m[e.AttendanceOperation].primaryButtonLabel,SecondaryButtonLabel:!0===s?"Cancel":"Close",ShowPrimaryButton:s,ShowStudentsWithHallPassOnly:s,SuccessMessage:!1===s&&!0===a.HasValidStudentIds?l[e.AttendanceOperation]:""},this.btnState=A.D.Default,this.selectedModal=this.pageModals.BulkAttendanceValidations}},error:()=>{this.btnState=A.D.Error,setTimeout(()=>{this.btnState=A.D.Default,this.getStudents(null,this.pageNumber)},W.K.Default)}})}saveUserFilterSettings(){var e={SelectedClassId:this.getFilterValue("classroom"),SelectedGradeId:this.getFilterValue("grade"),SelectedStudentTagIds:this.getFilterValue("tags"),SelectedAbsenteeTypeId:this.getFilterValue("absenteeType"),SelectedAttendanceStatusId:this.getFilterValue("attendanceStatus"),ItemsPerPage:this.itemsPerPage};this.userSettingService.setDailyAttendanceUserSettings(e).subscribe(n=>{})}getUserFilters(){this.userSettingService.getDailyAttendanceUserSettings().subscribe(e=>{if(!e?.IsSuccess||!e?.Data)return void this.getStudents();const n=JSON.parse(e.Data);if(n.ItemsPerPage&&(this.itemsPerPage=n.ItemsPerPage),this.grades.some(u=>u.value===n.SelectedGradeId)){const u=this.filtersPage.find(w=>"grade"===w.key);u&&(u.value=n.SelectedGradeId)}if(this.classrooms.some(u=>u.value==n.SelectedClassId)){const u=this.filtersPage.find(w=>"classroom"===w.key);u&&(u.value=n.SelectedClassId)}if(this.studentTags.some(u=>n.SelectedStudentTagIds.includes(u.value))){const u=this.filtersPage.find(C=>"tags"===C.key);let w=this.studentTags.filter(C=>n.SelectedStudentTagIds.includes(C.value));u&&(u.value=w.map(C=>C.value))}if(this.absenteeTypeOptions.some(u=>u.value===n.SelectedAbsenteeTypeId)){const u=this.filtersPage.find(w=>"absenteeType"===w.key);u&&(u.value=n.SelectedAbsenteeTypeId)}if(this.attendanceStatusOptions.some(u=>u.value===n.SelectedAttendanceStatusId)){const u=this.filtersPage.find(w=>"attendanceStatus"===w.key);u&&(u.value=n.SelectedAttendanceStatusId)}this.getStudents()})}static#t=this.\u0275fac=function(n){return new(n||i)(t.rXU(Q.V),t.rXU(q.bg),t.rXU($.$),t.rXU(B.U),t.rXU(X.w),t.rXU(Y.t),t.rXU(nt.D),t.rXU(gt.$),t.rXU(et.D))};static#e=this.\u0275cmp=t.VBU({type:i,selectors:[["app-daily"]],viewQuery:function(n,a){if(1&n&&(t.GBs(ht,5),t.GBs(ft,5)),2&n){let s;t.mGM(s=t.lsd())&&(a.filtersViewChild=s.first),t.mGM(s=t.lsd())&&(a.scanStudentInput=s.first)}},standalone:!0,features:[t.Jv_([$.$,X.w,B.U,Y.t,et.D]),t.aNF],decls:37,vars:30,consts:[["filters",""],["tbl",""],["attendanceButtons",""],["studentTable",""],["scanStudentInput",""],[1,"flex","settings_header_container",2,"flex-direction","column"],[2,"display","flex"],[1,"flex-grow-1"],[1,"flex","align-items-center","bulk-btn-container"],["class","quick-attendance-btn","tooltipEvent","hover",3,"ngClass","pTooltip","hideDelay","click",4,"ngIf"],["class","quick-attendance-btn quick-attendance-btn-icon-only","tooltipEvent","hover",3,"ngClass","pTooltip","hideDelay","click",4,"ngIf"],["pButton","","class","btn btn-secondary btn-bul
1k-edit",3,"label","click",4,"ngIf"],[1,"input-search_container"],["pInputText","","placeholder","Student Name",1,"input-search",3,"ngModelChange","ngModel"],[1,"search-icon_container"],[1,"pi","pi-search","combined-search-icon"],[2,"padding-left","6px"],[3,"cbClearAEFilter","storageVal","tbl","isLazyLoad","cols"],["pTooltip","Clear table sorting","class","clear_sort pi pi-sort-alt-slash clear-sort-icon","role","button","tabindex","0","aria-label","Clear table sorting",3,"click","keydown.enter","keydown.space",4,"ngIf"],["aria-label","Selected date filter",1,"active-filter-chip"],["aria-hidden","true",1,"pi","pi-calendar","active-filter-chip__icon"],["type","button","class","active-filter-chip__clear","pTooltip","Clear date filter","aria-label","Clear date filter",3,"click",4,"ngIf"],["class","bulk-edit-wrapper",4,"ngIf"],[1,"flex","settings_body_container"],["paginatorDropdownAppendTo","body","paginatorPosition","bottom","stateStorage","local","dataKey","StudentId","styleClass","p-datatable-gridlines settings_table sm_table",3,"selectionChange","onLazyLoad","onRowSelect","onRowUnselect","value","showCurrentPageReport","paginator","rows","rowsPerPageOptions","pageLinks","stateKey","rowHover","selection","sortOrder","totalRecords","lazy"],["pTemplate","header"],["pTemplate","emptymessage"],["pTemplate","body"],["pTemplate","rowexpansion"],["pTemplate","paginatorright"],[3,"studentId","studentName","cancel",4,"ngIf"],[3,"visible","draggable","closable","style","keydown.escape",4,"ngIf"],["styleClass","attendance-details-modal",3,"visible","draggable","closable","focusOnShow","autofocus","style","keydown.escape","onShow",4,"ngIf"],["styleClass","scan-qr-modal-dialog",3,"visible","draggable","closable","style","keydown.escape",4,"ngIf"],["tooltipEvent","hover",1,"quick-attendance-btn",3,"click","ngClass","pTooltip","hideDelay"],["aria-hidden","true",1,"quick-attendance-icon"],["tooltipEvent","hover",1,"quick-attendance-btn","quick-attendance-btn-icon-only",3,"click","ngClass","pTooltip","hideDelay"],["pButton","",1,"btn","btn-secondary","btn-bul
1k-edit",3,"click","label"],["pTooltip","Clear table sorting","role","button","tabindex","0","aria-label","Clear table sorting",1,"clear_sort","pi","pi-sort-alt-slash","clear-sort-icon",3,"click","keydown.enter","keydown.space"],["type","button","pTooltip","Clear date filter","aria-label","Clear date filter",1,"active-filter-chip__clear",3,"click"],["aria-hidden","true",1,"pi","pi-times"],[1,"bulk-edit-wrapper"],[1,"flex"],["pButton","","label","Mark Absent",1,"btn","bulk-edit_btn",3,"click","disabled"],["pButton","","label","Mark Early Dismissal",1,"btn","bulk-edit_btn",3,"click","disabled"],["pButton","","class","btn bulk-edit_btn","label","Scan QR Codes",3,"click",4,"ngIf"],[1,"flex","align-items-center"],["inputId","selectAll",3,"ngModelChange","onChange","ngModel","binary"],["for","selectAll",1,"bulk-edit-select-all"],["pButton","","label","Scan QR Codes",1,"btn","bulk-edit_btn",3,"click"],[4,"ngIf"],["style","width: 1% !important;",4,"ngIf"],[3,"pSortableColumn"],[3,"field",4,"ngIf"],[1,"text-center"],[2,"width","1% !important"],[3,"field"],["class","emptymessage",4,"ngIf"],[1,"emptymessage"],[3,"click",4,"ngIf"],[3,"click"],["class","ellipsis-wrapper",4,"ngIf"],["class","early-dismissal",4,"ngIf"],["class","attendance-status",4,"ngIf"],[1,"flex","align-items-center",2,"padding","8px 0"],[3,"ngModelChange","onChange","value","ngModel"],[1,"grid","grid-nogutter"],[1,"col-1","py-4"],[1,"p-button-text","p-button-rounded","p-button-plain","toggle-button",2,"cursor","pointer",3,"pRowToggler","ngClass"],[1,"col-11"],[1,"table-controls"],[1,"student-info"],[1,"ellipsis-fn"],["target","_blank",2,"text-decoration","none",3,"routerLink"],["role","button","tabindex","0","aria-label","View student notes","class","pi pi-book notes-icon","style","padding-left: 4px;",3,"click","keydown.enter","keydown.space",4,"ngIf"],["role","button","tabindex","0","tooltipPosition","bottom",1,"early-dismissal-link",3,"click","keydown.enter","keydown.space","pTooltip"],[1,"app_icon",3,"ngClass"],[0,"xlink","href","#svg-icon-change-dismissal"],[1,"attendance-actions-wrap"],[1,"table-buttons","table-controls"],["pButton","","class","btn btn-secondary",3,"ngClass","disabled","click",4,"ngIf"],["pButton","",1,"btn","btn-secondary",3,"click","ngClass","disabled"],["pButton","","class","btn btn-secondary","pTooltip","Cancel Absence","tooltipEvent","hover",3,"disabled","click",4,"ngIf"],["class","attendance-actions-overlay",4,"ngIf"],["role","button","tabindex","0","aria-label","View student notes",1,"pi","pi-book","notes-icon",2,"padding-left","4px",3,"click","keydown.enter","keydown.space"],["pButton","","pTooltip","Cancel Absence","tooltipEvent","hover",1,"btn","btn-secondary",3,"click","disabled"],[1,"attendance-actions-overlay"],["aria-hidden","true",1,"pi","pi-spin","pi-spinner","attendance-actions-overlay__icon"],[3,"value"],[1,"ellipsis-wrapper"],["appendTo","body","tooltipPosition","right",1,"ellipsis-overflow",3,"hideDelay","pTooltip"],[1,"student-id"],[1,"early-dismissal"],[1,"attendance-status"],[4,"ngIf","ngIfElse"],[1,"released-early-text"],["colspan","12"],[1,"ml-6","student-info"],[2,"padding-right","4px"],[3,"studentId","studentName","cancel"],[3,"keydown.escape","visible","draggable","closable"],["pTemplate","content"],["pTemplate","footer"],[1,"confirm-hp-modal_student-name"],[1,"confirm-hp-modal_hp-detail-container"],[1,"confirm-hp-modal_hp-detail"],[2,"color","grey"],[1,"confirm-hp-modal_bottom-border"],[2,"margin-top","50px"],[3,"label","state","action"],["styleClass","attendance-details-modal",3,"keydown.escape","onShow","visible","draggable","closable","focusOnShow","autofocus"],["class","modal-input",4,"ngIf"],[1,"modal-input","mt-3"],["styleClass","modal-input","appendTo","body","optionLabel","label","optionValue","value",3,"ngModelChange","onChange","options","ngModel"],["pInputText","","class","w-full mt-2","placeholder","Type reason here",3,"ngModel","maxlength","ngModelChange",4,"ngIf"],["class","modal-input mt-3",4,"ngIf"],["class","modal-input mt-2",4,"ngIf"],[1,"modal-excused-container"],[1,"modal-switch-wrapper"],[3,"ngModelChange","ngModel"],["class","modal-excused-container",4,"ngIf"],[1,"text-center","modal
1-confirmation-message"],[1,"modal-input"],["appendTo","body","dataType","string","hourFormat","12",3,"onSelect","ngModelChange","autofocus","timeOnly","readonlyInput","ngModel"],["pInputText","","placeholder","Type reason here",1,"w-full","mt-2",3,"ngModelChange","ngModel","maxlength"],["styleClass","modal-input","appendTo","body","optionLabel","label","optionValue","value",3,"ngModelChange","onChange","options","ngModel","disabled"],[1,"modal-input","mt-2"],["dateFormat","mm/dd/yy","styleClass","modal-input","appendTo","body",3,"ngModelChange","onSelect","ngModel","disabled","minDate","readonlyInput"],[3,"ngModelChange","onChange","ngModel"],["dateFormat","mm/dd/yy","styleClass","modal-input","appendTo","body",3,"ngModelChange","onSelect","ngModel","minDate","readonlyInput"],[1,"text-center","modal-confirmation-message","mb-4"],[1,"mb-2","mt-2"],["styleClass","p-datatable-gridlines settings_table sm_table",3,"value"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"label","state","action",4,"ngIf"],["styleClass","scan-qr-modal-dialog",3,"keydown.escape","visible","draggable","closable"],[1,"scan-qr-modal__content"],[1,"scan-qr-modal__table-wrap"],[1,"scan-qr-modal__filters"],[1,"scan-qr-modal__search-wrap"],["pInputText","","aria-label","Student ID","placeholder","Type Student ID or Scan QR Code",1,"scan-qr-modal__search",3,"ngModelChange","keyup.enter","ngModel"],["type","button","aria-label","Search student id",1,"scan-qr-modal__search-button",3,"click"],["aria-hidden","true",1,"pi","pi-search"],["styleClass","p-datatable-gridlines settings_table sm_table scan-qr-modal__table","scrollHeight","320px",3,"value","scrollable"],[2,"width","140px"],[1,"text-center",2,"width","130px"],[3,"ngClass"],[1,"scan-qr-modal__status",3,"ngClass"],["pButton","","type","button","class","btn btn-secondary scan-qr-modal__undo-btn","label","Undo",3,"disabled","click",4,"ngIf"],["type","button","class","scan-qr-modal__icon-action-button","title","Remove","aria-label","Remove",3,"click",4,"ngIf"],["pButton","","type","button","label","Undo",1,"btn","btn-secondary","scan-qr-modal__undo-btn",3,"click","disabled"],["type","button","title","Remove","aria-label","Remove",1,"scan-qr-modal__icon-action-button",3,"click"],["aria-hidden","true",1,"pi","pi-trash"],["colspan","4",1,"emptymessage"]],template:function(n,a){if(1&n){const s=t.RV6();t.j41(0,"div",5)(1,"div",6)(2,"div",7)(3,"h3"),t.EFF(4," Daily Attendance "),t.k0s()(),t.j41(5,"div",8),t.DNE(6,vt,4,3,"button",9)(7,Pt,3,4,"button",10)(8,wt,1,1,"button",11),t.k0s()(),t.j41(9,"div",12)(10,"input",13),t.mxI("ngModelChange",function(r){return t.eBV(s),t.DH7(a.studentNameSearch,r)||(a.studentNameSearch=r),t.Njj(r)}),t.bIt("ngModelChange",function(){return t.eBV(s),t.Njj(a.fetchStudent.next(""))}),t.k0s(),t.j41(11,"div",14),t.nrm(12,"span",15),t.k0s(),t.j41(13,"span",16)(14,"pmk-table-filter",17,0),t.bIt("cbClearAEFilter",function(){return t.eBV(s),t.Njj(a.onCbClearAEFilter())}),t.k0s(),t.DNE(16,Rt,1,0,"i",18),t.j41(17,"span",19),t.nrm(18,"i",20),t.j41(19,"span"),t.EFF(20),t.k0s(),t.DNE(21,At,2,0,"button",21),t.k0s()()()(),t.DNE(22,Gt,9,5,"div",22),t.j41(23,"div",23)(24,"div",7)(25,"p-table",24,1),t.mxI("selectionChange",function(r){return t.eBV(s),t.DH7(a.bulkEditSelectedData,r)||(a.bulkEditSelectedData=r),t.Njj(r)}),t.bIt("onLazyLoad",function(r){return t.eBV(s),t.Njj(!a.firstLoad&&a.getStudents(r))})("onRowSelect",function(){return t.eBV(s),t.Njj(a.onRowSelect())})("onRowUnselect",function(){return t.eBV(s),t.Njj(a.onRowUnselect())}),t.DNE(27,$t,1,1,"ng-template",25)(28,Yt,2,1,"ng-template",26)(29,ce,9,8,"ng-template",27)(30,_e,1,1,"ng-template",28)(31,ue,1,4,"ng-template",29),t.k0s()()(),t.DNE(32,me,1,3,"student-note-modal",30)(33,be,4,6,"p-dialog",31)(34,ve,4,8,"p-dialog",32)(35,qe,4,6,"p-dialog",31)(36,an,4,6,"p-dialog",33)}if(2&n){const s=t.sdS(26);t.R7$(6),t.Y8G("ngIf",!a.systemService.customViewportCheck(700)),t.R7$(),t.Y8G("ngIf",a.systemService.customViewportCheck(700)),t.R7$(),t.Y8G("ngIf",a.isSelectedDateToday),t.R7$(2),t.R50("ngModel",a.studentNameSearch),t.R7$(4),t.Y8G("storageVal",a.filtersPage)("tbl",s)("isLazyLoad",!0)("cols",a.systemService.viewportVerySmall()?2:3),t.R7$(2),t.Y8G("ngIf",s.sortField),t.R7$(4),t.SpI("Date: ",a.getSelectedDateFormatted(),""),t.R7$(),t.Y8G("ngIf",a.isSelectedDateNotToday),t.R7$(),t.Y8G("ngIf",a.bulkEdit),t.R7$(3),t.Y8G("value",a.attendanceRecords)("showCurrentPageReport",!0)("paginator",!0)("rows",a.itemsPerPage)("rowsPerPageOptions",t.lJ4(29,bt))("pageLinks",a.systemService.customViewportCheck(1156)?1:5)("stateKey",a.storageKey)("rowHover",!a.systemService.customViewportCheck(1156)),t.R50("selection",a.bulkEditSelectedData),t.Y8G("sortOrder",1)("totalRecords",a.totalRecords)("lazy",!0),t.R7$(7),t.Y8G("ngIf",a.selectedModal==a.pageModals.StudentNotes),t.R7$(),t.Y8G("ngIf",a.selectedModal==a.pageModals.StudentHasH
1allPass),t.R7$(),t.Y8G("ngIf",a.selectedModal==a.pageModals.AttendanceDetails),t.R7$(),t.Y8G("ngIf",a.selectedModal==a.pageModals.BulkAttendanceValidations),t.R7$(),t.Y8G("ngIf",a.selectedModal==a.pageModals.ScanQrCodes)}},dependencies:[S.MD,S.YU,S.bT,S.T3,c.YN,c.me,c.BC,c.tU,c.vS,f.iI,f.Wk,D.tm,D._f,q.Ei,p.bG,p.XI,p.Tg,p.FP,p.yc,p.S9,p.nA,I.S,I.m,k.u,k.S,M.q4,M.Sc,E.H,at.E,G.I,L.P,L.l,U.kr,U.ms,H.rO,H.Vv,K.H_,K.HW,mt.l,tt.$],styles:[".active-filter-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 12px;border:1px solid #b7d7ff;border-radius:999px;background-color:#eef6ff;color:#2f5f95;font-size:14px;font-weight:500;line-height:1;vertical-align:middle}.active-filter-chip__icon[_ngcontent-%COMP%]{font-size:14px}.active-filter-chip__clear[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.active-filter-chip__clear[_ngcontent-%COMP%]:hover, .active-filter-chip__clear[_ngcontent-%COMP%]:focus-visible{background-color:#2f5f951f;outline:none}.active-filter-chip__clear[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:12px}@media (max-width: 575px){.active-filter-chip[_ngcontent-%COMP%]{margin-top:8px;margin-right:30px}}.bulk-edit-select-all[_ngcontent-%COMP%]{margin-bottom:0!important;padding-right:16px;padding-left:8px}.bulk-btn-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:0}.btn-bulk-edit[_ngcontent-%COMP%]{height:36px}.quick-attendance-btn[_ngcontent-%COMP%]{border:1px solid #DCE0E6;display:inline-flex;align-items:center;border-radius:32px;padding:0 8px 0 16px;outline:none;cursor:pointer;text-transform:uppercase;color:#95989a;height:32px;margin-right:12px;background-color:#fff;font-size:.875rem}.quick-attendance-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--lightblue);outline-offset:2px}.quick-attendance-btn-on[_ngcontent-%COMP%]{border-color:#1976d2!important;color:#1976d2;background:#e8f0fe}.quick-attendance-btn-icon-only[_ngcontent-%COMP%]{width:32px;justify-content:center;padding:0}.quick-attendance-icon[_ngcontent-%COMP%]{margin-left:8px;font-size:14px;line-height:1}.quick-attendance-btn-icon-only[_ngcontent-%COMP%] .quick-attendance-icon[_ngcontent-%COMP%]{margin-left:0}.input-search_container[_ngcontent-%COMP%]{width:100%;max-width:500px;padding-bottom:16px}.input-search[_ngcontent-%COMP%]{width:250px}.search-icon_container[_ngcontent-%COMP%]{padding:10px;margin-left:-35px;cursor:pointer;display:inline-block}.combined-search-icon[_ngcontent-%COMP%]{color:#495057}.clear-sort-icon[_ngcontent-%COMP%]{margin-right:8px}.notes-icon[_ngcontent-%COMP%]{color:#e18f32;cursor:pointer}.early-dismissal-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center}.app_icon[_ngcontent-%COMP%]{width:45px;height:45px;cursor:pointer;display:block;margin:0 auto;color:#95989a}.app_icon[_ngcontent-%COMP%]:hover{color:#3fa9f5} .attendance-status{padding:8px!important;width:200px}.early-dismissal[_ngcontent-%COMP%]{text-align:center!important;width:75px;padding:8px 0!important}.attendance-actions-wrap[_ngcontent-%COMP%]{position:relative}.attendance-actions-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:#ffffff73;border-radius:6px;pointer-events:all}.attendance-actions-overlay__icon[_ngcontent-%COMP%]{font-size:14px;color:#6b7280}.table-controls[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}.table-controls[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{margin:0}.student-id[_ngcontent-%COMP%]{font-size:12px;color:#c0c4cc}.student-info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.btn-present[_ngcontent-%COMP%]{background:#7ac943;border:1px solid #7AC943;color:#fff}.btn-present[_ngcontent-%COMP%]:hover{background-color:#7ac943!important;border-color:#fff!important;color:#fff!important}.btn-tardy[_ngcontent-%COMP%]{background:#f79320;border:1px solid #F79320;color:#fff}.btn-tardy[_ngcontent-%COMP%]:hover{background-color:#f79320!important;border-color:#fff!important;color:#fff!important}.btn-absent[_ngcontent-%COMP%]{background:#b82d2d;border:1px solid #B82D2D;color:#fff}.btn-absent[_ngcontent-%COMP%]:hover{background-color:#b82d2d!important;border-color:#fff!important;color:#fff!important}.btn-early-dismissal[_ngcontent-%COMP%], .btn-early-dismissal[_ngcontent-%COMP%]:hover{color:#b82d2d}.disabled-link[_ngcontent-%COMP%]{pointer-events:none;cursor:not-allowed;opacity:.5}
1.confirm-hp-modal_student-name[_ngcontent-%COMP%]{color:#95989a;padding-bottom:24px;font-weight:700}.confirm-hp-modal_hp-detail-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 40px}.confirm-hp-modal_hp-detail[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px 0}.confirm-hp-modal_bottom-border[_ngcontent-%COMP%]{height:2px;background-color:#d3d3d3;width:100%} .p-datatable-table .p-datatable-tbody>tr>td{padding:12px 16px!important}@media (max-width: 1156px){.table-controls[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.table-buttons[_ngcontent-%COMP%]{width:100%}.table-buttons[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{flex:1;justify-content:center}}.modal-excused-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-top:12px}.modal-switch-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;padding-top:3px}.modal-confirmation-message[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:8px}.scan-qr-modal__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px}.scan-qr-modal__table-wrap[_ngcontent-%COMP%]{border:1px solid #d5dbe3;background:#f6f8fb}.scan-qr-modal__filters[_ngcontent-%COMP%]{padding:16px;border-bottom:1px solid #d5dbe3}.scan-qr-modal__search-wrap[_ngcontent-%COMP%]{position:relative}.scan-qr-modal__search[_ngcontent-%COMP%]{width:100%;height:48px;border-radius:6px;padding-right:46px}.scan-qr-modal__search-button[_ngcontent-%COMP%]{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:30px;height:30px;border:none;background:transparent;color:#8d98a5;cursor:pointer;display:flex;align-items:center;justify-content:center}.scan-qr-modal__search-button[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:22px}.scan-qr-modal__search-button[_ngcontent-%COMP%]:hover{color:#4b5563}.scan-qr-modal__table[_ngcontent-%COMP%]{background:#fff;margin-bottom:14px} .scan-qr-modal__table .p-datatable-thead>tr>th, .scan-qr-modal__table .p-datatable-tbody>tr>td{white-space:normal!important;word-break:keep-all!important;overflow-wrap:normal!important;-webkit-hyphens:none;hyphens:none;vertical-align:top} .scan-qr-modal__table .p-datatable-thead>tr>th{line-height:1.25} .scan-qr-modal__table .p-datatable-tbody>tr>td{line-height:1.35}.scan-qr-modal__row--success[_ngcontent-%COMP%]{background:#eef8f0}.scan-qr-modal__row--invalid[_ngcontent-%COMP%]{background:#fff1f1}.scan-qr-modal__status[_ngcontent-%COMP%]{display:inline;font-weight:600}.scan-qr-modal__status--success[_ngcontent-%COMP%]{color:#2e7d32}.scan-qr-modal__status--error[_ngcontent-%COMP%]{color:#b82d2d}.scan-qr-modal__undo-btn[_ngcontent-%COMP%]{min-width:68px;padding:2px 10px!important;height:30px;font-size:12px}.scan-qr-modal__icon-action-button[_ngcontent-%COMP%]{width:30px;height:30px;border:1px solid #d2d8df;border-radius:4px;background:#fff;color:#8f9aa6;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.scan-qr-modal__icon-action-button[_ngcontent-%COMP%]:hover{color:#5f6872;border-color:#bec7d1} .scan-qr-modal-dialog .p-dialog-header{justify-content:center;font-size:28px;font-weight:600;font-family:sofia-pro,sans-serif;color:#5f666c;padding-top:30px;padding-bottom:22px} .scan-qr-modal-dialog .p-dialog-content{padding:0 24px 16px} .scan-qr-modal-dialog .p-dialog-footer{border-top:1px solid #dfe5ec;padding:20px 24px 26px;display:flex;justify-content:center}@media (max-width: 700px){ .scan-qr-modal-dialog .p-dialog-header{font-size:28px;padding-top:20px;padding-bottom:14px} .scan-qr-modal-dialog .p-dialog-content{padding:0 12px 12px} .scan-qr-modal-dialog .p-dialog-footer{padding:14px 12px 18px}}"]})}return i})();var y=function(i){return i[i.Unknown=0]="Unknown",i[i.Present=1]="Present",i[i.Absent=2]="Absent",i[i.Tardy=4]="Tardy",i}(y||{});const on=["filters"],ln=["tbl"],dn=()=>({"min-width":"220px"}),rn=()=>["FirstName","LastName"],ct=i=>["/schooladmin/newstudent",i,"studentRecord"],pt=i=>({"btn-present":i}),_t=i=>({"btn-tardy":i}),ut=i=>({"btn-absent":i}),V=()=>({width:"100%"}),cn=()=>({"max-width":"520px",width:"100%"}),pn=()=>({"max-width":"960px",width:"100%"});function _n(i,o){if(1&i){const e=t.RV6();t.j41(0,"i",34),t.bIt("click",function(){t.eBV(e),t.XpG();const a=t.sdS(35);return t.Njj(a.clear())})("keydown.enter",function(){t.eBV(e),t.XpG();const a=t.sdS(35);return t.Njj(a.clear())})("keydown.space",function(a){t.eBV(e),t.XpG();const s=t.sdS(35);return a.preventDefault(),t.Njj(s.clear())}),t.k0s()}}function un(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",35),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.onCbClearAEFilter())}),t.nrm(1,"i",36),t.k0s()}}function mn(i,o){1&i&&t.nrm(0,"i",40)}function gn(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",37),t.bIt("click",function(){const a=t.eBV(e).$implicit,s=t.XpG();return t.Njj(s.selectPeriod(a))}),t.EFF(1),t.j41(2,"span",38),t.EFF(3),t.k0s(),t.DNE(4,mn,1,0,"i",39),t.k0s()}if(2&i){const e=o.$implicit,n=t.XpG();t.AVh("period-chip--selected",n.isSelectedPeriod(e)),t.R7$(),t.SpI(" ",e.ClassName," "),t.R7$(2),t.JRh(n.formatTimeRange(e)),t.R7$(),t.Y8G("ngIf",n.isPeriodLocked&&n.isSelectedPeriod(e))}}function hn(i,o){if(1&i&&(t.j41(0,"div",41),t.EFF(1),t.nI1(2,"date"),t.k0s()),2&i){const e=t.XpG();t.R7$(),t.SpI(" Marking Attendance is only allowed for the current day (",t.i5U(2,1,e.today,"MMMM d, y"),"). ")}}function fn(i,o){if(1&i&&(t.j41(0,"div",42),t.EFF(1," Current period \xb7 attendance will be recorded for "),t.j41(2,"strong"),t.EFF(3),t.k0s(),t.EFF(4),t.nI1(5,"date"),t.k0s()),2&i){const e=t.XpG();t.R7$(3),t.JRh(e.selectedPeriod.ClassName),t.R7$(),t.Lme(" (",e.formatTimeRange(e.selectedPeriod)," \xb7
1now ",t.i5U(5,3,e.now,"h:mm:ss a"),"). Pick a period above to mark a different class. ")}}function bn(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",43)(1,"span",44),t.EFF(2,"QUICK CODES"),t.k0s(),t.j41(3,"span",45),t.EFF(4),t.k0s(),t.j41(5,"span",46),t.EFF(6),t.k0s(),t.j41(7,"span",47),t.EFF(8),t.k0s(),t.j41(9,"a",48),t.bIt("click",function(){t.eBV(e);const a=t.XpG();return t.Njj(a.openQuickCodesModal())}),t.EFF(10,"Edit"),t.k0s()()}if(2&i){const e=t.XpG();t.R7$(4),t.SpI("Present \xb7 ",e.getQuickCodeText(e.attendanceOperationEnum.Present),""),t.R7$(2),t.SpI("Absent \xb7 ",e.getQuickCodeText(e.attendanceOperationEnum.Absent),""),t.R7$(2),t.SpI("Tardy \xb7 ",e.getQuickCodeText(e.attendanceOperationEnum.Tardy),"")}}function Sn(i,o){if(1&i&&t.nrm(0,"p-sortIcon",53),2&i){const e=t.XpG(3);t.Y8G("field",e.sortFields.LastName)}}function yn(i,o){if(1&i&&t.nrm(0,"p-sortIcon",53),2&i){const e=t.XpG(3);t.Y8G("field",e.sortFields.Grade)}}function kn(i,o){if(1&i&&t.nrm(0,"p-sortIcon",53),2&i){const e=t.XpG(3);t.Y8G("field",e.sortFields.ClassName)}}function Cn(i,o){if(1&i&&(t.j41(0,"tr")(1,"th",50),t.EFF(2," Student "),t.DNE(3,Sn,1,1,"p-sortIcon",51),t.k0s(),t.j41(4,"th",50),t.EFF(5," Grade "),t.DNE(6,yn,1,1,"p-sortIcon",51),t.k0s(),t.j41(7,"th",50),t.EFF(8," Class "),t.DNE(9,kn,1,1,"p-sortIcon",51),t.k0s(),t.j41(10,"th",52),t.EFF(11," Attendance Status "),t.k0s()()),2&i){const e=t.XpG(2),n=t.sdS(35);t.R7$(),t.Y8G("pSortableColumn",e.sortFields.LastName),t.R7$(2),t.Y8G("ngIf",n.sortField==e.sortFields.LastName),t.R7$(),t.Y8G("pSortableColumn",e.sortFields.Grade),t.R7$(2),t.Y8G("ngIf",n.sortField==e.sortFields.Grade),t.R7$(),t.Y8G("pSortableColumn",e.sortFields.ClassName),t.R7$(2),t.Y8G("ngIf",n.sortField==e.sortFields.ClassName)}}function Dn(i,o){if(1&i&&t.DNE(0,Cn,12,6,"tr",49),2&i){const e=t.XpG();t.Y8G("ngIf",!e.systemService.customViewportCheck(1156))}}function xn(i,o){if(1&i){const e=t.RV6();t.j41(0,"a",57),t.bIt("click",function(){t.eBV(e);const a=t.XpG(3);return t.Njj(a.onCbClearAEFilter())}),t.EFF(1,"Clear filters to see data."),t.k0s()}}function Mn(i,o){if(1&i&&(t.j41(0,"td",55),t.EFF(1," No students are available with these filters. "),t.DNE(2,xn,2,0,"a",56),t.k0s()),2&i){const e=t.XpG(2);t.BMQ("colspan",4),t.R7$(2),t.Y8G("ngIf",e.hasFilterValue())}}function Tn(i,o){if(1&i&&(t.j41(0,"tr"),t.DNE(1,Mn,3,2,"td",54),t.k0s()),2&i){const e=t.XpG();t.R7$(),t.Y8G("ngIf",!e.systemService.checkLoading())}}function In(i,o){if(1&i){const e=t.RV6();t.j41(0,"span",74),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.enter",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.space",function(a){t.eBV(e);const s=t.XpG(2).$implicit,l=t.XpG();return a.preventDefault(),t.Njj(l.openStudentNoteModal(s))}),t.k0s()}}function vn(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.selectStatus(a,s.attendanceOperationEnum.Present))}),t.EFF(1," Present "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,pt,n.getRowOperation(e)===n.attendanceOperationEnum.Present))("disabled",!n.selectedPeriod||n.isRowActionBlocked(e))}}function Pn(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.selectStatus(a,s.attendanceOperationEnum.Tardy))}),t.EFF(1," Tardy "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,_t,n.getRowOperation(e)===n.attendanceOperationEnum.Tardy))("disabled",!n.selectedPeriod||n.isRowActionBlocked(e))}}function wn(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.selectStatus(a,s.attendanceOperationEnum.Absent))}),t.EFF(1," Absent "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,ut,n.getRowOperation(e)===n.attendanceOperationEnum.Absent))("disabled",!n.selectedPeriod||n.isRowActionBlocked(e))}}function Rn(i,o){1&i&&(t.j41(0,"div",76),t.nrm(1,"span",77),t.k0s())}function An(i,o){if(1&i&&t.nrm(0,"span",83),2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.Y8G("ngClass",n.getFillClass(e))}}function En(i,o){if(1&i&&t.nrm(0,"span",84),2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.xc7("animation-duration",n.reasonSelectionWindowMs,"ms"),t.Y8G("ngClass",n.getFillClass(e))}}function Gn(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",78)(1,"div",79)(2,"p-dropdown",80),t.bIt("onChange",function(a){t.eBV(e);const s=t.XpG(2).$implicit,l=t.XpG();return t.Njj(l.onReasonChanged(s,a.value))}),t.k0s(),t.DNE(3,An,1,1,"span",81)(4,En,1,3,"span",82),t.k0s()()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.R7$(2),t.Aen(t.lJ4(9,V)),t.Y8G("options",n.getReasonsForRow(e))("ngModel",n.getRowReasonId(e))("placeholder",n.getRowReasonPlaceholder(e))("disabled",n.isReasonLocked(e)||n.isRowActionBlocked(e)),t.R7$(),t.Y8G("ngIf",n.isReasonLocked(e)),t.R7$(),t.Y8G("ngForOf",n.getFillTokens(e))("ngForTrackBy",n.trackFill)}}function Fn(i,o){if(1&i&&(t.j41(0,"td")(1,"div",60)(2,"div",61),t.nrm(3,"span",62),t.k0s(),t.j41(4,"div",63)(5,"div",64)(6,"span",65)(7,"strong",66)(8,"a",67),t.EFF(9),t.k0s(),t.DNE(10,In,1,0,"span",68),t.k0s(),t.j41(11,"small")(12,"strong"),t.EFF(13,"PMK ID:"),t.k0s(),t.EFF(14),t.k0s(),t.j41(15,"small")(16,"strong"),t.EFF(17,"SIS ID:"),t.k0s(),t.EFF(18),t.k0s()()(),t.j41(19,"div",69)(20,"div",70),t.DNE(21,vn,2,4,"button",71)(22,Pn,2,4,"button",71)(23,wn,2,4,"button",71),t.k0s(),t.DNE(24,Rn,2,0,"div",72),t.k0s(),t.DNE(25,Gn,5,10,"div",73),t.k0s()()()),2&i){const e=t.XpG(),n=e.expanded,a=e.$implicit,s=t.XpG();t.R7$(3),t.Y8G("pRowToggler",a)("ngClass",n?"pi pi-chevron-down":"pi pi-chevron-right"),t.R7$(5),t.Y8G("routerLink",t.eq3(13,ct,a.StudentId)),t.R7$(),t.Lme(" ",a.FirstName," ",a.LastName," "),t.R7$(),t.Y8G("ngIf",a.HasStudentNote),t.R7$(4),t.SpI(" ",a.SchoolStudentId,""),t.R7$(4),t.SpI(" ",a.ExternalStudentId,""),t.R7$(3),t.Y8G("ngIf",s.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",s.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",s.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",s.isRowActionBlocked(a)),t.R7$(),t.Y8G("ngIf",null!==s.getRowOperation(a))}}function Nn(i,o){if(1&i){const e=t.RV6();t.j41(0,"span",74),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.enter",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.openStudentNoteModal(a))})("keydown.space",function(a){t.eBV(e);const s=t.XpG(2).$implicit,l=t.XpG();return a.preventDefault(),t.Njj(l.openStudentNoteModal(s))}),t.k0s()}}function jn(i,o){if(1&i&&(t.j41(0,"td",85)(1,"div",86)(2,"a",67),t.EFF(3),t.k0s(),t.DNE(4,Nn,1,0,"span",68),t.k0s(),t.j41(5,"div",87),t.EFF(6),t.k0s(),t.j41(7,"div",87),t.EFF(8),t.k0s()()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.Y8G("hideDelay",n.systemService.customViewportCheck(780)?4e3:0)("pTooltip",(e.FirstName+" "+e.LastName).length>15?e.FirstName+" "+e.LastName:null),t.R7$(),t.Y8G("routerLink",t.eq3(8,ct,e.StudentId)),t.R7$(),t.Lme(" ",e.FirstName," ",e.LastName," "),t.R7$(),t.Y8G("ngIf",e.HasStudentNote),t.R7$(2),t.SpI("PMK ID: ",e.SchoolStudentId,""),t.R7$(2),t.SpI("SIS ID: ",e.ExternalStudentId,"")}}function On(i,o){if(1&i&&(t.j41(0,"td",85)(1,"div",86),t.EFF(2),t.k0s()()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.Y8G("hideDelay",n.systemService.customViewportCheck(780)?4e3:0)("pTooltip",e.Grade.length>15?e.Grade:null),t.R7$(),t.SpI(" ",e.Grade,"")}}function Vn(i,o){if(1&i&&(t.j41(0,"td",85)(1,"div",86),t.EFF(2),t.k0s()()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(),t.Y8G("hideDelay",n.systemService.customViewportCheck(780)?4e3:0)("pTooltip",(null==e.ClassName?null:e.ClassName.length)>15?e.ClassName:null),t.R7$(),t.SpI(" ",e.ClassName,"")}}function $n(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.selectStatus(a,s.attendanceOperationEnum.Present))}),t.EFF(1," Present "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,pt,n.getRowOperation(e)===n.attendanceOperationEnum.Present))("disabled",!n.selectedPeriod||n.isRowActionBlocked(e))}}function Bn(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.selectStatus(a,s.attendanceOperationEnum.Tardy))}),t.EFF(1," Tardy "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,_t,n.getRowOperation(e)===n.attendanceOperationEnum.Tardy))("disabled",!n.selectedPeriod||n.isRowActionBlocked(e))}}function Xn(i,o){if(1&i){const e=t.RV6();t.j41(0,"button",75),t.bIt("click",function(){t.eBV(e);const a=t.XpG(2).$implicit,s=t.XpG();return t.Njj(s.selectStatus(a,s.attendanceOperationEnum.Absent))}),t.EFF(1," Absent "),t.k0s()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.Y8G("ngClass",t.eq3(2,ut,n.getRowOperation(e)===n.attendanceOperationEnum.Absent))("disabled",!n.selectedPeriod||n.isRowActionBlocked(e))}}function Yn(i,o){1&i&&(t.j41(0,"div",76),t.nrm(1,"span",77),t.k0s())}function Ln(i,o){if(1&i&&t.nrm(0,"span",83),2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.Y8G("ngClass",n.getFillClass(e))}}function Un(i,o){if(1&i&&t.nrm(0,"span",84),2&i){const e=t.XpG(3).$implicit,n=t.XpG();t.xc7("animation-duration",n.reasonSelectionWindowMs,"ms"),t.Y8G("ngClass",n.getFillClass(e))}}function Hn(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",78)(1,"div",79)(2,"p-dropdown",80),t.bIt("onChange",function(a){t.eBV(e);const s=t.XpG(2).$implicit,l=t.XpG();return t.Njj(l.onReasonChanged(s,a.value))}),t.k0s(),t.DNE(3,Ln,1,1,"span",81)(4,Un,1,3,"span",82),t.k0s()()}if(2&i){const e=t.XpG(2).$implicit,n=t.XpG();t.R7$(2),t.Aen(t.lJ4(9,V)),t.Y8G("options",n.getReasonsForRow(e))("ngModel",n.getRowReasonId(e))("placeholder",n.getRowReasonPlaceholder(e))("disabled",n.isReasonLocked(e)||n.isRowActionBlocked(e)),t.R7$(),t.Y8G("ngIf",n.isReasonLocked(e)),t.R7$(),t.Y8G("ngForOf",n.getFillTokens(e))("ngForTrackBy",n.trackFill)}}function Wn(i,o){if(1&i&&(t.j41(0,"td",88)(1,"div",69)(2,"div",70),t.DNE(3,$n,2,4,"button",71)(4,Bn,2,4,"button",71)(5,Xn,2,4,"button",71),t.k0s(),t.DNE(6,Yn,2,0,"div",72),t.k0s(),t.DNE(7,Hn,5,10,"div",73),t.k0s()),2&i){const e=t.XpG().$implicit,n=t.XpG();t.R7$(3),t.Y8G("ngIf",n.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",n.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",n.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",n.isRowActionBlocked(e)),t.R7$(),t.Y8G("ngIf",null!==n.getRowOperation(e))}}function qn(i,o){if(1&i&&(t.j41(0,"tr"),t.DNE(1,Fn,26,15,"td",49)(2,jn,9,10,"td",58)(3,On,3,3,"td",58)(4,Vn,3,3,"td",58)(5,Wn,8,5,"td",59),t.k0s()),2&i){const e=t.XpG();t.R7$(),t.Y8G("ngIf",e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156)),t.R7$(),t.Y8G("ngIf",!e.systemService.customViewportCheck(1156))}}function Kn(i,o){if(1&i&&(t.j41(0,"tr")(1,"td",89)(2,"div",90)(3,"span")(4,"strong",91),t.EFF(5,"Grade:"),t.k0s(),t.EFF(6),t.k0s(),t.j41(7,"span")(8,"strong",91),t.EFF(9,"Class:"),t.k0s(),t.EFF(10),t.k0s()()()()),2&i){const e=t.XpG().$implicit;t.R7$(6),t.SpI(" ",e.Grade,""),t.R7$(4),t.SpI(" ",e.ClassName,"")}}function Qn(i,o){if(1&i&&t.DNE(0,Kn,11,2,"tr",49),2&i){const e=t.XpG();t.Y8G("ngIf",e.systemService.customViewportCheck(1156))}}function zn(i,o){if(1&i&&t.nrm(0,"student-note-modal",92),2&i){const e=t.XpG();t.Y8G("studentId",e.studentForNoteModal.StudentId)("studentName",e.studentForNoteModal.FirstName+" "+e.studentForNoteModal.LastName)("cancel",e.closeStudentNoteModal)}}function Jn(i,o){1&i&&t.EFF(0," Quick Attendance ")}function Zn(i,o){if(1&i){const e=t.RV6();t.j41(0,"p",96),t.EFF(1," Pick one reason code for each status. It's applied automatically when you mark a student. "),t.k0s(),t.j41(2,"div",97)(3,"span",98),t.nrm(4,"span",99),t.EFF(5,"Present"),t.k0s(),t.j41(6,"div",100)(7,"p-dropdown",101),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.quickCodes[s.attendanceOperationEnum.Present],a)||(s.quickCodes[s.attendanceOperationEnum.Present]=a),t.Njj(a)}),t.k0s()()(),t.j41(8,"div",97)(9,"span",102),t.nrm(10,"span",99),t.EFF(11,"Absent"),t.k0s(),t.j41(12,"div",100)(13,"p-dropdown",101),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.quickCodes[s.attendanceOperationEnum.Absent],a)||(s.quickCodes[s.attendanceOperationEnum.Absent]=a),t.Njj(a)}),t.k0s()()(),t.j41(14,"div",97)(15,"span",103),t.nrm(16,"span",99),t.EFF(17,"Tardy"),t.k0s(),t.j41(18,"div",100)(19,"p-dropdown",101),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.quickCodes[s.attendanceOperationEnum.Tardy],a)||(s.quickCodes[s.attendanceOperationEnum.Tardy]=a),t.Njj(a)}),t.k0s()()()}if(2&i){const e=t.XpG(2);t.R7$(7),t.Aen(t.lJ4(12,V)),t.Y8G("options",e.presentReasons),t.R50("ngModel",e.quickCodes[e.attendanceOperationEnum.Present]),t.R7$(6),t.Aen(t.lJ4(13,V)),t.Y8G("options",e.absentReasons),t.R50("ngModel",e.quickCodes[e.attendanceOperationEnum.Absent]),t.R7$(6),t.Aen(t.lJ4(14,V)),t.Y8G("options",e.tardyReasons),t.R50("ngModel",e.quickCodes[e.attendanceOperationEnum.Tardy])}}function ta(i,o){if(1&i&&t.nrm(0,"app-btn-secondary-state",104),2&i){const e=t.XpG(2);t.Y8G("label","Done")("state",e.btnState)("action",e.closeQuickCodesModal)}}function ea(i,o){1&i&&(t.j41(0,"p-dialog",93),t.DNE(1,Jn,1,0,"ng-template",28)(2,Zn,20,15,"ng-template",94)(3,ta,1,3,"ng-template",95),t.k0s()),2&i&&(t.Aen(t.lJ4(7,cn)),t.Y8G("visible",!0)("draggable",!1)("closable",!1)("focusOnShow",!1)("autofocus",!1))}function na(i,o){1&i&&t.EFF(0," Attendance History ")}function aa(i,o){1&i&&(t.j41(0,"tr")(1,"th",113),t.EFF(2,"Student "),t.nrm(3,"p-sortIcon",114),t.k0s(),t.j41(4,"th",115),t.EFF(5,"Period "),t.nrm(6,"p-sortIcon",116),t.k0s(),t.j41(7,"th",117),t.EFF(8,"Status "),t.nrm(9,"p-sortIcon",118),t.k0s(),t.j41(10,"th",119),t.EFF(11,"Reason "),t.nrm(12,"p-sortIcon",120),t.k0s(),t.j41(13,"th",121),t.EFF(14,"By "),t.nrm(15,"p-sortIcon",122),t.k0s(),t.j41(16,"th",123),t.EFF(17,"Logged "),t.nrm(18,"p-sortIcon",124),t.k0s()())}function ia(i,o){if(1&i&&(t.j41(0,"tr")(1,"td"),t.EFF(2),t.k0s(),t.j41(3,"td"),t.EFF(4),t.k0s(),t.j41(5,"td"),t.EFF(6),t.k0s(),t.j41(7,"td"),t.EFF(8),t.k0s(),t.j41(9,"td"),t.EFF(10),t.k0s(),t.j41(11,"td"),t.EFF(12),t.nI1(13,"date"),t.k0s()()),2&i){const e=o.$implicit;
1t.R7$(2),t.JRh(e.StudentName),t.R7$(2),t.JRh(e.PeriodName),t.R7$(2),t.JRh(e.StatusLabel),t.R7$(2),t.JRh(e.Reason||"\u2014"),t.R7$(2),t.JRh(e.UserName),t.R7$(2),t.JRh(t.i5U(13,6,e.EventDateTime,"M/d/yyyy, h:mm a"))}}function sa(i,o){if(1&i&&(t.j41(0,"tr")(1,"td",125),t.EFF(2),t.k0s()()),2&i){const e=t.XpG(3);t.R7$(2),t.JRh(e.historyLoading?"Loading\u2026":"No attendance events for this day.")}}function oa(i,o){if(1&i){const e=t.RV6();t.j41(0,"div",105)(1,"div",106)(2,"label",107),t.EFF(3,"Day"),t.k0s(),t.j41(4,"p-calendar",108),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.historyDate,a)||(s.historyDate=a),t.Njj(a)}),t.bIt("onSelect",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.loadHistory())}),t.k0s()(),t.j41(5,"div",106)(6,"label",107),t.EFF(7,"Student Name"),t.k0s(),t.j41(8,"input",109),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.historyStudentFilter,a)||(s.historyStudentFilter=a),t.Njj(a)}),t.bIt("ngModelChange",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.applyHistoryFilters())}),t.k0s()(),t.j41(9,"div",106)(10,"label",107),t.EFF(11,"Status"),t.k0s(),t.j41(12,"p-dropdown",110),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.historyStatusFilter,a)||(s.historyStatusFilter=a),t.Njj(a)}),t.bIt("onChange",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.applyHistoryFilters())}),t.k0s()(),t.j41(13,"div",106)(14,"label",107),t.EFF(15,"Reason"),t.k0s(),t.j41(16,"input",111),t.mxI("ngModelChange",function(a){t.eBV(e);const s=t.XpG(2);return t.DH7(s.historyReasonFilter,a)||(s.historyReasonFilter=a),t.Njj(a)}),t.bIt("ngModelChange",function(){t.eBV(e);const a=t.XpG(2);return t.Njj(a.applyHistoryFilters())}),t.k0s()()(),t.j41(17,"p-table",112),t.DNE(18,aa,19,0,"ng-template",28)(19,ia,14,9,"ng-template",30)(20,sa,3,1,"ng-template",29),t.k0s()}if(2&i){const e=t.XpG(2);t.R7$(4),t.Aen(t.lJ4(12,V)),t.R50("ngModel",e.historyDate),t.Y8G("maxDate",e.todayDate)("readonlyInput",!0),t.R7$(4),t.R50("ngModel",e.historyStudentFilter),t.R7$(4),t.Y8G("options",e.historyStatusOptions),t.R50("ngModel",e.historyStatusFilter),t.R7$(4),t.R50("ngModel",e.historyReasonFilter),t.R7$(),t.Y8G("value",e.filteredHistoryList)("paginator",e.filteredHistoryList.length>10)("rows",10)}}function la(i,o){if(1&i&&t.nrm(0,"app-btn-secondary-state",104),2&i){const e=t.XpG(2);t.Y8G("label","Close")("state",e.btnState)("action",e.closeHistory)}}function da(i,o){1&i&&(t.j41(0,"p-dialog",93),t.DNE(1,na,1,0,"ng-template",28)(2,oa,21,13,"ng-template",94)(3,la,1,3,"ng-template",95),t.k0s()),2&i&&(t.Aen(t.lJ4(7,pn)),t.Y8G("visible",!0)("draggable",!1)("closable",!1)("focusOnShow",!1)("autofocus",!1))}let ra=(()=>{class i{get today(){return this.dateTimeService.formatDateToMMDDYYYY(new Date)}get isSelectedDateNotToday(){const e=this.getSelectedDate();return!this.dateTimeService.isSameDay(e,this.todayDate)}get isSelectedDateToday(){const e=this.getSelectedDate();return this.dateTimeService.isSameDay(e,this.todayDate)}get filteredStudents(){const e=this.selectedPeriod?.Students??[],n=this.getFilterValue("attendanceStatus"),a=this.getFilterValue("tags")??[];return e.filter(s=>{if(null!=n&&n!==y.Unknown&&(s.PeriodRowReasonState?.operation??null)!==n)return!1;if(a.length>0){const l=this.filtersPage.find(m=>"tags"===m.key)?.params?.data??[];if(!a.some(m=>l.find(w=>w.value===m)?.studentIds?.includes(s.StudentId)))return!1}return!0})}constructor(e,n,a,s,l,r,m){this.systemService=e,this.messageService=n,this.attendanceService=a,this.gradeService=s,this.classesService=l,this.studentTagService=r,this.dateTimeService=m,this.Subscriptions=[],this.periodAttendanceData=[],this.gradeLookupById={},this.classLookupById={},this.studentNameSearch="",this.fetchStudent=new F.B,this.attendanceOperationEnum=y,this.firstLoad=!0,this.sortField="SortName",this.attendanceStatusOptions=[{label:"All",value:y.Unknown},{label:"Present",value:y.Present},{label:"Tardy",value:y.Tardy},{label:"Absent",value:y.Absent}],this.todayDate=new Date,this.filtersPage=[{label:"Student ID",key:"SchoolStudentId",type:"text",placeholder:"Student ID",value:null,params:{},useCallback:!1}
1,{label:"SIS ID",key:"ExternalStudentId",type:"text",placeholder:"SIS ID",value:null,hideFilter:!0,params:{},useCallback:!1},{label:"Classroom",key:"ClassId",type:"dropdown",params:{},placeholder:"All",id:"classroom",value:null,useCallback:!1,showClear:!0},{label:"Grade",key:"GradeId",type:"dropdown",params:{},placeholder:"All",id:"grade",value:null,useCallback:!1,showClear:!0},{label:"Student Tag",key:"tags",type:"multiselect",params:{},placeholder:"All Tags",id:"studentTag",filterText:"",value:[],useCallback:!0},{label:"Attendance Status",key:"attendanceStatus",type:"dropdown",params:{data:this.attendanceStatusOptions,label:"label",value:"value",cb:()=>{}},placeholder:"All",id:"attendanceStatus",value:null,useCallback:!0,showClear:!0},{label:"Attendance Date",key:"date",type:"calendar",useCallback:!0,params:{cb:()=>this.fetchStudent.next()},id:"date",value:this.todayDate,minDate:this.todayDate,defaultValue:this.todayDate}],this.btnState=A.D.Default,this.pageModals={StudentNotes:"studentNotes",QuickCodes:"quickCodes",History:"history"},this.selectedModal=null,this.studentForNoteModal=null,this.sortFields={LastName:"SortName",Grade:"Grade",ClassName:"ClassName"},this.presentReasons=[],this.absentReasons=[],this.tardyReasons=[],this.reasonSelectionWindowMs=3e4,this.rowActionBlocked={},this.reasonLockTimers={},this.quickCodes={[y.Present]:null,[y.Absent]:null,[y.Tardy]:null},this.historyRows=[],this.filteredHistoryList=[],this.historyDate=new Date,this.historyLoading=!1,this.historyStudentFilter="",this.historyReasonFilter="",this.historyStatusFilter=null,this.historyStatusOptions=[{label:"All",value:null},{label:"Present",value:y.Present},{label:"Absent",value:y.Absent},{label:"Tardy",value:y.Tardy}],this.teachers=[],this.selectedTeacherId=null,this.selectedPeriod=null,this.periodManuallySelected=!1,this.now=new Date,this.closeQuickCodesModal=()=>{this.selectedModal=null},this.closeHistory=()=>{this.selectedModal=null},this.trackFill=(u,w)=>w,this.closeStudentNoteModal=()=>{this.selectedModal=null,this.studentForNoteModal=null},this.pikmykidEllipsis=new Z.C(e)}ngOnInit(){this.setupExternalIdFilterVisibility(),this.Subscriptions.push(this.fetchStudent.subscribe(()=>this.getPeriodAttendanceData())),(0,g.p)({classrooms:this.getClassroomsBySchool(),grades:this.getListGrades(),studentTags:this.getStudentTags()}).subscribe(()=>{this.getPeriodAttendanceData()}),this.loadAttendanceReasons(),this.startClock(),this.autoSelectActivePeriod()}ngOnDestroy(){this.Subscriptions.forEach(e=>{e.unsubscribe()}),Object.keys(this.reasonLockTimers).forEach(e=>clearTimeout(this.reasonLockTimers[+e])),clearInterval(this.clockTimer)}selectPeriod(e){if(this.periodManuallySelected&&this.isSamePeriod(this.selectedPeriod,e))return this.periodManuallySelected=!1,void this.autoSelectActivePeriod();this.periodManuallySelected=!0,this.changeSelectedPeriod(e)}get isPeriodLocked(){return this.periodManuallySelected}
1getPeriodsForSelectedTeacher(){return null==this.selectedTeacherId?[]:this.periodAttendanceData.filter(e=>e.SisStaffId===this.selectedTeacherId).sort((e,n)=>e.StartDateTime.getTime()-n.StartDateTime.getTime())}onTeacherChange(){this.periodManuallySelected=!1,this.autoSelectActivePeriod()}autoSelectActivePeriod(){if(this.periodManuallySelected)return;const e=this.getPeriodsForSelectedTeacher();if(!e.length)return void this.changeSelectedPeriod(null);const n=this.now.getTime(),a=e.find(s=>s.EndDateTime.getTime()>n)??e[e.length-1];this.changeSelectedPeriod(a)}changeSelectedPeriod(e){const n=this.selectedPeriod;this.isSamePeriod(n,e)||(this.selectedPeriod=e,this.clearAttendanceMarks(),e&&this.getStudentStatus(e.Students.map(a=>a.StudentId)),n&&e&&this.messageService.add({severity:"info",detail:`Period changed to ${e.ClassName}`}))}clearAttendanceMarks(){this.periodAttendanceData.forEach(e=>{(e.Students??[]).forEach(n=>{delete n.PeriodRowReasonState})}),this.rowActionBlocked={},Object.keys(this.reasonLockTimers).forEach(e=>clearTimeout(this.reasonLockTimers[+e])),this.reasonLockTimers={}}formatTimeRange(e){const n=this.formatTime(e.StartDateTime),a=this.formatTime(e.EndDateTime);if(n.hm===a.hm&&n.meridian===a.meridian){const s=`${n.hm} ${n.meridian}`;return"12:00 AM"===s?"":s}return n.meridian===a.meridian?`${n.hm}\u2013${a.hm} ${n.meridian}`:`${n.hm} ${n.meridian}\u2013${a.hm} ${a.meridian}`}formatTime(e){const n=e.getHours(),s=n<12?"AM":"PM";let l=n%12;return 0===l&&(l=12),{hm:`${l}:${e.getMinutes().toString().padStart(2,"0")}`,meridian:s}}isSelectedPeriod(e){return this.isSamePeriod(this.selectedPeriod,e)}isSamePeriod(e,n){return e&&n?null!=e.ApiClassScheduleId&&null!=n.ApiClassScheduleId?e.ApiClassScheduleId===n.ApiClassScheduleId:e.ApiClassId===n.ApiClassId&&e.SisStaffId===n.SisStaffId&&e.StartDateTime.getTime()===n.StartDateTime.getTime()&&e.EndDateTime.getTime()===n.EndDateTime.getTime():e===n}getPeriodStudent(e,n=this.selectedPeriod){if(n)return(n.Students??[]).find(a=>a.StudentId===e)}getRowState(e,n=this.selectedPeriod){return this.getPeriodStudent(e,n)?.PeriodRowReasonState??null}setRowState(e,n,a=this.selectedPeriod){const s=this.getPeriodStudent(e,a);s&&(s.PeriodRowReasonState=n)}clearRowState(e,n=this.selectedPeriod){const a=this.getPeriodStudent(e,n);a&&delete a.PeriodRowReasonState}startClock(){this.clockTimer=setInterval(()=>{const e=this.now;this.now=new Date,this.now.toDateString()!==e.toDateString()&&this.reloadScheduleForNewDay(),this.autoSelectActivePeriod()},1e3)}reloadScheduleForNewDay(){this.periodManuallySelected=!1,this.clearAttendanceMarks(),this.getPeriodAttendanceData()}startReasonLockTimer(e){this.clearReasonLockTimer(e),this.reasonLockTimers[e]=setTimeout(()=>{const n=this.getRowState(e);n&&(n.locked=!0),delete this.reasonLockTimers[e]},this.reasonSelectionWindowMs)}clearReasonLockTimer(e){this.reasonLockTimers[e]&&(clearTimeout(this.reasonLockTimers[e]),delete this.reasonLockTimers[e])}getRowOperation(e){return this.getRowState(e.StudentId)?.operation??null}isReasonLocked(e){return this.getRowState(e.StudentId)?.locked??!1}isRowActionBlocked(e){return this.rowActionBlocked[e.StudentId]??!1}getRowReasonId(e){return this.getRowState(e.StudentId)?.reasonId??null}getReasonsForRow(e){return this.getReasonsForOperation(this.getRowState(e.StudentId)?.operation??void 0)}getReasonsForOperation(e){switch(e){case y.Present:return this.presentReasons;case y.Absent:return this.absentReasons;case y.Tardy:return this.tardyReasons;default:return[]}}getRowReasonPlaceholder(e){const a=this.getRowState(e.StudentId)?.reasonText?.trim();return a||"Reason - None"}getQuickCodeText(e){const n=this.quickCodes[e],a=this.getReasonsForOperation(e).find(s=>s.Id===n);return a?a.Reason:"None"}openQuickCodesModal(){this.selectedModal=this.pageModals.QuickCodes}openHistory(){const e=new Date;this.historyDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.historyStudentFilter="",this.historyReasonFilter="",this.historyStatusFilter=null,this.selectedModal=this.pageModals.History,this.loadHistory()}loadHistory(){const e=this.toLocalDateTimeString(this.historyDate);this.historyLoading=!0,this.Subscriptions.push(this.attendanceService.GetPeriodAttendanceHistory(e).subscribe({next:n=>{this.historyRows=(n?.Success&&n.Data?n.Data:[]).map(s=>this.toHistoryRow(s)),this.applyHistoryFilters(),this.historyLoading=!1},error:()=>{this.historyRows=[],this.applyHistoryFilters(),this.historyLoading=!1}}))}toHistoryRow(e){return{...e,StudentName:`${e.StudentFirstName??""} ${e.StudentLastName??""}`.trim(),UserName:this.historyUserName(e),StatusLabel:e.Operation,EventTimestamp:e.EventDateTime?new Date(e.EventDateTime).getTime():0}}applyHistoryFilters(){const e=this.historyStudentFilter.trim().toLowerCase(),n=this.historyReasonFilter.trim().toLowerCase(),a=this.historyStatusFilter?y[this.historyStatusFilter]:null;this.filteredHistoryList=this.historyRows.filter(s=>!(e&&!s.StudentName.toLowerCase().includes(e)||null!=a&&s.Operation!==a||n&&!(s.Reason??"").toLowerCase().includes(n)))}historyUserName(e){return`${e.SchoolUserFirstName??""} ${e.SchoolUserLastName??""}`.trim()||"\u2014"}onReasonChanged(e,n){const a=this.selectedPeriod,s=this.getRowState(e.StudentId,a);if(!s||s.locked||this.isRowActionBlocked(e))return;const l={...s,reasonId:n,locked:!1,token:(s.token??0)+1,eventDateTime:this.toLocalDateTimeString(new Date)};this.rowActionBlocked[e.StudentId]=!0,this.savePeriodAttendance(e,l,a)}
1selectStatus(e,n){const a=this.selectedPeriod,s=e.StudentId;if(!a||this.isRowActionBlocked(e))return;const l=this.getRowState(s,a);if(l&&l.operation===n)return void(!l.locked&&l.logId&&(this.rowActionBlocked[s]=!0,this.deletePeriodAttendance(l.logId,s,a)));const m={operation:n,reasonId:this.quickCodes[n]??null,locked:!1,token:(l?.token??0)+1,logId:l&&!l.locked?l.logId:null,eventDateTime:this.toLocalDateTimeString(new Date)};this.rowActionBlocked[s]=!0,this.savePeriodAttendance(e,m,a)}savePeriodAttendance(e,n,a=this.selectedPeriod){const s=e.StudentId,l=n??this.getRowState(s,a);if(!l||!a)return;const r=this.toLocalDateTimeString(new Date);n||(l.eventDateTime=r);const m={...l,eventDateTime:r},u=this.getReasonsForOperation(m.operation).find(J=>J.Id===m.reasonId),w=`${a.ClassName??""} ${this.formatTimeRange(a)}`.trim(),C={LogPeriodAttendanceId:m.logId??0,StudentId:s,SisStudentId:e.ExternalStudentId,ApiClassId:a.ApiClassId,SisClassId:a.SisClassId,EventNote:w,EventDateTime:m.eventDateTime,Operation:m.operation,AttendanceReason:u?.Reason??null,UnexcusedReason:u?.Unexcused??!1,SisAttendanceCode:u?.SisWritebackCode??null};m.logId?this.updatePeriodAttendance(C,s,m,a):this.addPeriodAttendance(C,s,m,a)}addPeriodAttendance(e,n,a,s){this.Subscriptions.push(this.attendanceService.AddPeriodAttendance(e).subscribe({next:l=>{if(!this.selectedPeriod||!this.isSamePeriod(this.selectedPeriod,s))return;const r=l?.Success?l.Data?.LogPeriodAttendanceId??null:null;if(!r)return delete this.rowActionBlocked[n],void this.getStudentStatus([n]);this.setRowState(n,{...a,logId:r},s),this.startReasonLockTimer(n),this.messageService.add({severity:"success",detail:"Attendance record saved."}),delete this.rowActionBlocked[n]},error:()=>{!this.selectedPeriod||!this.isSamePeriod(this.selectedPeriod,s)||(delete this.rowActionBlocked[n],this.getStudentStatus([n]))}}))}updatePeriodAttendance(e,n,a,s){this.Subscriptions.push(this.attendanceService.UpdatePeriodAttendance(e).subscribe({next:l=>{if(this.selectedPeriod&&this.isSamePeriod(this.selectedPeriod,s)){if(!1===l?.Success)return delete this.rowActionBlocked[n],void this.getStudentStatus([n]);this.setRowState(n,a,s),this.startReasonLockTimer(n),this.messageService.add({severity:"success",detail:"Attendance record updated."}),delete this.rowActionBlocked[n]}},error:()=>{!this.selectedPeriod||!this.isSamePeriod(this.selectedPeriod,s)||(delete this.rowActionBlocked[n],this.getStudentStatus([n]))}}))}deletePeriodAttendance(e,n,a){this.Subscriptions.push(this.attendanceService.DeletePeriodAttendance(e).subscribe({next:s=>{if(this.selectedPeriod&&this.isSamePeriod(this.selectedPeriod,a)){if(!1===s?.Success)return delete this.rowActionBlocked[n],void this.getStudentStatus([n]);this.messageService.add({severity:"success",detail:"Attendance record deleted."}),this.clearReasonLockTimer(n),this.clearRowState(n,a),delete this.rowActionBlocked[n]}},error:()=>{!this.selectedPeriod||!this.isSamePeriod(this.selectedPeriod,a)||(delete this.rowActionBlocked[n],this.getStudentStatus([n]))}}))}toLocalDateTimeString(e){const n=a=>String(a).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}:${n(e.getSeconds())}`}getFillToken(e){const n=this.getRowState(e.StudentId);return!n||n.locked?null:n.token}getFillTokens(e){const n=this.getFillToken(e);return null==n?[]:[n]}getFillClass(e){switch(this.getRowState(e.StudentId)?.operation){case y.Present:return"fill-present";case y.Absent:return"fill-absent";case y.Tardy:return"fill-tardy";default:return""}}setupExternalIdFilterVisibility(){this.Subscriptions.push(this.systemService.siteSettingsLoaded.subscribe(e=>{e&&this.syncExternalIdFilterVisibility()}))}syncExternalIdFilterVisibility(){const e=this.filtersPage.find(a=>"ExternalStudentId"===a.key);if(!e)return;const n=this.systemService.schoolLayoutSettings()?.HasSchoolStudentExternalId;e.hideFilter=!n}getListGrades(){return this.gradeService.getGradesV2().pipe((0,_.T)(e=>(this.gradeLookupById={},e.Data.map(n=>(this.gradeLookupById[n.Id]=n.Name,{label:this.pikmykidEllipsis.transform(n.Name,30),value:n.Id})))),(0,T.M)(e=>{const n=this.filtersPage.find(a=>"GradeId"===a.key);n&&(n.params={data:e,label:"label",value:"value"})}))}getClassroomsBySchool(){return this.classesService.getClassroomsForFilter().pipe((0,T.M)(e=>{let n=[];this.classLookupById={},e.Data.forEach(s=>{this.classLookupById[s.Id]=s.Name,n.push({label:this.pikmykidEllipsis.transform(s.Name,30),value:s.Id})});let a=this.filtersPage.find(s=>
1"ClassId"==s.key);a&&(a.params={data:n,label:"label",value:"value"})}))}getStudentTags(){return this.studentTagService.GetStudentTags().pipe((0,T.M)(e=>{let n=[];e.Data.forEach(s=>{n.push({label:this.pikmykidEllipsis.transform(s.TagName,30),value:s.Id,studentIds:s.StudentIds})});let a=this.filtersPage.find(s=>"tags"==s.key);a&&(a.params={data:n,label:"label",value:"value",cb:()=>{}})}))}loadAttendanceReasons(){this.Subscriptions.push(this.attendanceService.GetAttendanceReasons(null).subscribe({next:e=>{!e.Success||!e.Data||(this.presentReasons=this.toReasonOptions(e.Data,P.h.Present),this.absentReasons=this.toReasonOptions(e.Data,P.h.Absent),this.tardyReasons=this.toReasonOptions(e.Data,P.h.Tardy),this.quickCodes[y.Present]=this.presentReasons[0]?.Id??null,this.quickCodes[y.Absent]=this.absentReasons[0]?.Id??null,this.quickCodes[y.Tardy]=this.tardyReasons[0]?.Id??null)}}))}toReasonOptions(e,n){return e.filter(a=>a.AttendanceStatusTypeId===n)}getPeriodAttendanceData(){this.systemService.setLoading(!0),this.periodAttendanceData=[],this.teachers=[],this.selectedTeacherId=null,this.selectedPeriod=null;const e={Date:this.getSelectedDateFormatted()};this.Subscriptions.push(this.attendanceService.GetPeriodAttendanceData(e).subscribe({next:n=>{n.Success&&n.Data?(this.periodAttendanceData=n.Data,this.enrichPeriodAttendanceStudents(),this.populateTeachersFromPeriodAttendanceData(),this.firstLoad=!1,this.systemService.setLoading(!1)):this.systemService.setLoading(!1)}}))}enrichPeriodAttendanceStudents(){if(!this.periodAttendanceData?.length)return;const e=this.getSelectedDate(),n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0);this.periodAttendanceData=this.periodAttendanceData.map(a=>({...a,ApiClassScheduleId:a.Schedules?.[0]?.ApiClassScheduleId??null,StartDateTime:a.Schedules?.[0]?.StartDateTime?new Date(a.Schedules[0].StartDateTime):new Date(n),EndDateTime:a.Schedules?.[0]?.EndDateTime?new Date(a.Schedules[0].EndDateTime):new Date(n),Students:(a.Students??[]).map(s=>({...s,Grade:this.gradeLookupById[s.GradeId]??s.Grade,ClassName:null!=s.ClassId?this.classLookupById[s.ClassId]??"":"",SortName:`${s.LastName} ${s.FirstName}`}))}))}populateTeachersFromPeriodAttendanceData(){if(!this.periodAttendanceData?.length)return;const e=new Map;this.periodAttendanceData.forEach(s=>{const l=(s.SisStaffId??"").toString().trim();l&&(e.has(l)||e.set(l,{TeacherId:l,Name:s.StaffName??""}))});const n=Array.from(e.values());n.length&&(this.teachers=n,null!=this.selectedTeacherId&&this.teachers.some(s=>s.TeacherId===this.selectedTeacherId)||(this.selectedTeacherId=this.teachers[0].TeacherId),this.periodManuallySelected=!1,this.autoSelectActivePeriod())}getStudentStatus(e){const n=this.selectedPeriod;if(!n||!e?.length||this.isSelectedDateNotToday)return;const a={StudentIds:e,ApiClassId:n.ApiClassId,ApiClassScheduleId:n.ApiClassScheduleId};this.systemService.setLoading(!0),this.attendanceService.GetPeriodAttendanceStudentStatus(a).subscribe({next:s=>{if(!s.Success||!s.Data)return void this.systemService.setLoading(!1);if(!this.selectedPeriod||!this.isSamePeriod(this.selectedPeriod,n))return void this.systemService.setLoading(!1);const l=new Map((s.Data??[]).map(r=>[r.StudentId,r]));(n.Students??[]).forEach(r=>{const m=l.get(r.StudentId);if(!m)return void this.clearRowState(r.StudentId,n);const u=this.parseOperationFromDb(m.Operation);u!==y.Unknown?this.setRowState(r.StudentId,{operation:u,reasonId:null,reasonText:m.Reason??null,locked:!0,token:0,logId:null,eventDateTime:null},n):this.clearRowState(r.StudentId,n)}),this.systemService.setLoading(!1)},error:()=>{this.systemService.setLoading(!1)}})}parseOperationFromDb(e){switch((e??"").trim().toLowerCase()){case"present":return y.Present;case"absent":return y.Absent;case"tardy":return y.Tardy;default:return y.Unknown}}getFilterValue(e){const n=this.filtersPage.find(a=>a.key==e);return n?n.value:null}hasFilterValue(){return!this.firstLoad&&(this.filtersViewChild&&this.filtersViewChild.hasFilterValue()||this.studentNameSearch&&""!=this.studentNameSearch)}
1getSelectedDateFormatted(){const e=this.getSelectedDate();return this.dateTimeService.formatDateToMMDDYYYY(e)}getSelectedDate(){return this.getFilterValue("date")??this.todayDate}onCbClearAEFilter(){this.tableViewChild&&this.tableViewChild.clear();const e=this.isSelectedDateNotToday;this.filtersPage.forEach(n=>{n.value="multiselect"===n.type?[]:"date"===n.key?this.todayDate:null}),this.filtersViewChild&&(this.filtersViewChild.filtersFound=!1),this.sortField="SortName",this.studentNameSearch="",e&&this.fetchStudent.next()}openStudentNoteModal(e){this.selectedModal=this.pageModals.StudentNotes,this.studentForNoteModal=e}static#t=this.\u0275fac=function(n){return new(n||i)(t.rXU(Q.V),t.rXU(q.bg),t.rXU($.$),t.rXU(B.U),t.rXU(X.w),t.rXU(Y.t),t.rXU(nt.D))};static#e=this.\u0275cmp=t.VBU({type:i,selectors:[["app-period"]],viewQuery:function(n,a){if(1&n&&(t.GBs(on,5),t.GBs(ln,5)),2&n){let s;t.mGM(s=t.lsd())&&(a.filtersViewChild=s.first),t.mGM(s=t.lsd())&&(a.tableViewChild=s.first)}},standalone:!0,features:[t.Jv_([$.$,X.w,B.U,Y.t]),t.aNF],decls:43,vars:31,consts:[["filters",""],["tbl",""],[1,"flex","settings_header_container",2,"flex-direction","column"],[2,"display","flex"],[1,"flex-grow-1"],[1,"flex","align-items-center"],["pButton","","label","View History",1,"btn","btn-secondary",3,"click"],[1,"input-search_container"],["pInputText","","placeholder","Student Name",1,"input-search",3,"ngModelChange","ngModel"],[1,"search-icon_container"],[1,"pi","pi-search","combined-search-icon"],[2,"padding-left","6px"],[3,"cbClearAEFilter","storageVal","tbl","isLazyLoad","cols"],["pTooltip","Clear table sorting","class","clear_sort pi pi-sort-alt-slash clear-sort-icon","role","button","tabindex","0","aria-label","Clear table sorting",3,"click","keydown.enter","keydown.space",4,"ngIf"],["aria-label","Selected date filter",1,"active-filter-chip"],["aria-hidden","true",1,"pi","pi-calendar","active-filter-chip__icon"],["type","button","class","active-filter-chip__clear","pTooltip","Clear date filter","aria-label","Clear date filter",3,"click",4,"ngIf"],[1,"period-controls"],[1,"teacher-selector"],[1,"period-selector__label"],["optionLabel","Name","optionValue","TeacherId","filterBy","Name","placeholder","Select teacher","appendTo","body",3,"ngModelChange","onChange","options","ngModel","filter"],[1,"period-selector"],["type","button","class","period-chip",3,"period-chip--selected","click",4,"ngFor","ngForOf"],["class","period-banner mb-0",4,"ngIf"],["class","period-banner",4,"ngIf"],["class","quick-codes-bar",4,"ngIf"],[1,"flex","settings_body_container"],["paginatorDropdownAppendTo","body","paginatorPosition","bottom","dataKey","StudentId","styleClass","p-datatable-gridlines settings_table sm_table",3,"value","showCurrentPageReport","paginator","pageLinks","globalFilterFields","rowHover","sortField","sortOrder","lazy"],["pTemplate","header"],["pTemplate","emptymessage"],["pTemplate","body"],["pTemplate","rowexpansion"],[3,"studentId","studentName","cancel",4,"ngIf"],[3,"visible","draggable","closable","focusOnShow","autofocus","style",4,"ngIf"],["pTooltip","Clear table sorting","role","button","tabindex","0","aria-label","Clear table sorting",1,"clear_sort","pi","pi-sort-alt-slash","clear-sort-icon",3,"click","keydown.enter","keydown.space"],["type","button","pTooltip","Clear date filter","aria-label","Clear date filter",1,"active-filter-chip__clear",3,"click"],["aria-hidden","true",1,"pi","pi-times"],["type","button",1,"period-chip",3,"click"],[1,"period-chip__time"],["class","pi pi-lock period-chip__lock","aria-label","Period locked",4,"ngIf"],["aria-label","Period locked",1,"pi","pi-lock","period-chip__lock"],[1,"period-banner","mb-0"],[1,"period-banner"],[1,"quick-codes-bar"],[1,"quick-codes-label"],[1,"quick-code-pill","pill-present"],[1,"quick-code-pill","pill-absent"],[1,"quick-code-pill","pill-tardy"],[1,"quick-codes-edit",3,"click"],[4,"ngIf"],[3,"pSortableColumn"],[3,"field",4,"ngIf"],[1,"text-center"],[3,"field"],["class","emptymessage",4,"ngIf"],[1,"emptymessage"],[3,"click",4,"ngIf"],[3,"click"],["class","ellipsis-wrapper",4,"ngIf"],["class","attendance-status",4,"ngIf"],[1,"grid","grid-nogutter"],[1,"col-1","py-4"],[1,"p-button-text","p-button-rounded","p-button-plain","toggle-button",2,"cursor","pointer",3,"pRowToggler","ngClass"],[1,"col-11"],[1,"table-control
1s"],[1,"student-info"],[1,"ellipsis-fn"],["target","_blank",2,"text-decoration","none",3,"routerLink"],["role","button","tabindex","0","aria-label","View student notes","class","pi pi-book notes-icon","style","padding-left: 4px;",3,"click","keydown.enter","keydown.space",4,"ngIf"],[1,"attendance-actions-wrap"],[1,"table-buttons","table-controls"],["pButton","","class","btn btn-secondary",3,"ngClass","disabled","click",4,"ngIf"],["class","attendance-actions-overlay",4,"ngIf"],["class","reason-select-wrapper",4,"ngIf"],["role","button","tabindex","0","aria-label","View student notes",1,"pi","pi-book","notes-icon",2,"padding-left","4px",3,"click","keydown.enter","keydown.space"],["pButton","",1,"btn","btn-secondary",3,"click","ngClass","disabled"],[1,"attendance-actions-overlay"],["aria-hidden","true",1,"pi","pi-spin","pi-spinner","attendance-actions-overlay__icon"],[1,"reason-select-wrapper"],[1,"reason-select-host","reason-select-host--full"],["appendTo","body","optionLabel","Reason","optionValue","Id",3,"onChange","options","ngModel","placeholder","disabled"],["class","reason-fill reason-fill-static",3,"ngClass",4,"ngIf"],["class","reason-fill",3,"ngClass","animation-duration",4,"ngFor","ngForOf","ngForTrackBy"],[1,"reason-fill","reason-fill-static",3,"ngClass"],[1,"reason-fill",3,"ngClass"],[1,"ellipsis-wrapper"],["appendTo","body","tooltipPosition","right",1,"ellipsis-overflow",3,"hideDelay","pTooltip"],[1,"student-id"],[1,"attendance-status"],["colspan","12"],[1,"ml-6","student-info"],[2,"padding-right","4px"],[3,"studentId","studentName","cancel"],[3,"visible","draggable","closable","focusOnShow","autofocus"],["pTemplate","content"],["pTemplate","footer"],[1,"quick-codes-subtitle"],[1,"quick-codes-row"],[1,"quick-codes-status","status-present"],[1,"status-dot"],[1,"quick-codes-dropdown"],["appendTo","body","optionLabel","Reason","optionValue","Id","placeholder","Select reason",3,"ngModelChange","options","ngModel"],[1,"quick-codes-status","status-absent"],[1,"quick-codes-status","status-tardy"],[3,"label","state","action"],[1,"flex","flex-wrap","align-items-end","gap-3","mb-3","period-history-filters"],[1,"flex","flex-column"],[1,"mb-1"],["dateFormat","mm/dd/yy","styleClass","modal-input","appendTo","body",3,"ngModelChange","onSelect","ngModel","maxDate","readonlyInput"],["type","text","pInputText","","placeholder","Filter by name",3,"ngModelChange","ngModel"],["optionLabel","label","optionValue","value","appendTo","body",3,"ngModelChange","onChange","options","ngModel"],["type","text","pInputText","","placeholder","Filter by reason",3,"ngModelChange","ngModel"],["styleClass","p-datatable-gridlines settings_table sm_table",3,"value","paginator","rows"],["pSortableColumn","StudentName"],["field","StudentName"],["pSortableColumn","PeriodName"],["field","PeriodName"],["pSortableColumn","StatusLabel"],["field","StatusLabel"],["pSortableColumn","Reason"],["field","Reason"],["pSortableColumn","UserName"],["field","UserName"],["pSortableColumn","EventTimestamp"],["field","EventTimestamp"],["colspan","6",1,"emptymessage"]],template:function(n,a){if(1&n){const s=t.RV6();t.j41(0,"div",2)(1,"div",3)(2,"div",4)(3,"h3"),t.EFF(4," Period Attendance "),t.k0s()(),t.j41(5,"div",5)(6,"button",6),t.bIt("click",function(){return t.eBV(s),t.Njj(a.openHistory())}),t.k0s()()(),t.j41(7,"div",7)(8,"input",8),t.mxI("ngModelChange",function(r){return t.eBV(s),t.DH7(a.studentNameSearch,r)||(a.studentNameSearch=r),t.Njj(r)}),t.bIt("ngModelChange",function(r){t.eBV(s);const m=t.sdS(35);return t.Njj(m.filterGlobal(r,"contains"))}),t.k0s(),t.j41(9,"div",9),t.nrm(10,"span",10),t.k0s(),t.j41(11,"span",11)(12,"pmk-table-filter",12,0),t.bIt("cbClearAEFilter",function(){return t.eBV(s),t.Njj(a.onCbClearAEFilter())}),t.k0s(),t.DNE(14,_n,1,0,"i",13),t.j41(15,"span",14),t.nrm(16,"i",15),t.j41(17,"span"),t.EFF(18),t.k0s(),t.DNE(19,un,2,0,"button",16),t.k0s()()()(),t.j41(20,"div",17)(21,"div",18)(22,"span",19),t.EFF(23,"TEACHER"),t.k0s(),t.j41(24,"p-dropdown",20),t.mxI("ngModelChange",function(r){return t.eBV(s),t.DH7(a.selectedTeacherId,r)||(a.selectedTeacherId=r),t.Njj(r)}),t.bIt("onChange",function(){return t.eBV(s),t.Njj(a.onTeacherChange())}),t.k0s()(),t.j41(25,"div",21)(26,"span",19),t.EFF(27,"PERIOD"),t.k0s(),t.DNE(28,gn,5,5,"button",22),t.k0s(),t.DNE(29,hn,3,4,"div",23)(30,fn,6,6,"div",24)(31,bn,11,3,"div",25),t.k0s(),t.j41(32,"div",26)(33,"div",4)(34,"p-table",27,1),t.DNE(36,Dn,1,1,"ng-template",28)(37,Tn,2,1,"ng-template",29)(38,qn,6,5,"ng-template",3
10)(39,Qn,1,1,"ng-template",31),t.k0s()()(),t.DNE(40,zn,1,3,"student-note-modal",32)(41,ea,4,8,"p-dialog",33)(42,da,4,8,"p-dialog",33)}if(2&n){const s=t.sdS(35);t.R7$(8),t.R50("ngModel",a.studentNameSearch),t.R7$(4),t.Y8G("storageVal",a.filtersPage)("tbl",s)("isLazyLoad",!1)("cols",a.systemService.viewportVerySmall()?2:3),t.R7$(2),t.Y8G("ngIf",s.sortField),t.R7$(4),t.SpI("Date: ",a.getSelectedDateFormatted(),""),t.R7$(),t.Y8G("ngIf",a.isSelectedDateNotToday),t.R7$(5),t.Aen(t.lJ4(29,dn)),t.Y8G("options",a.teachers),t.R50("ngModel",a.selectedTeacherId),t.Y8G("filter",!0),t.R7$(4),t.Y8G("ngForOf",a.getPeriodsForSelectedTeacher()),t.R7$(),t.Y8G("ngIf",a.isSelectedDateNotToday),t.R7$(),t.Y8G("ngIf",a.selectedPeriod&&a.isSelectedDateToday),t.R7$(),t.Y8G("ngIf",a.isSelectedDateToday),t.R7$(3),t.Y8G("value",a.filteredStudents)("showCurrentPageReport",!0)("paginator",!1)("pageLinks",a.systemService.customViewportCheck(1156)?1:5)("globalFilterFields",t.lJ4(30,rn))("rowHover",!a.systemService.customViewportCheck(1156))("sortField",a.sortField)("sortOrder",1)("lazy",!1),t.R7$(6),t.Y8G("ngIf",a.selectedModal==a.pageModals.StudentNotes),t.R7$(),t.Y8G("ngIf",a.selectedModal==a.pageModals.QuickCodes),t.R7$(),t.Y8G("ngIf",a.selectedModal==a.pageModals.History)}},dependencies:[S.MD,S.YU,S.Sq,S.bT,S.vh,c.YN,c.me,c.BC,c.vS,f.iI,f.Wk,D.tm,D._f,q.Ei,p.bG,p.XI,p.Tg,p.FP,p.yc,I.S,I.m,k.u,k.S,M.q4,E.H,at.E,G.I,L.P,L.l,U.kr,U.ms,H.rO,H.Vv,K.H_,tt.$],styles:[".active-filter-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 12px;border:1px solid #b7d7ff;border-radius:999px;background-color:#eef6ff;color:#2f5f95;font-size:14px;font-weight:500;line-height:1;vertical-align:middle}.active-filter-chip__icon[_ngcontent-%COMP%]{font-size:14px}.active-filter-chip__clear[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.active-filter-chip__clear[_ngcontent-%COMP%]:hover, .active-filter-chip__clear[_ngcontent-%COMP%]:focus-visible{background-color:#2f5f951f;outline:none}.active-filter-chip__clear[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:12px}@media (max-width: 575px){.active-filter-chip[_ngcontent-%COMP%]{margin-top:8px;margin-right:30px}}.bulk-edit-select-all[_ngcontent-%COMP%]{margin-bottom:0!important;padding-right:16px;padding-left:8px}.bulk-btn-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:0}.btn-bulk-edit[_ngcontent-%COMP%]{height:36px}.quick-attendance-btn[_ngcontent-%COMP%]{border:1px solid #DCE0E6;display:inline-flex;align-items:center;border-radius:32px;padding:0 8px 0 16px;outline:none;cursor:pointer;text-transform:uppercase;color:#95989a;height:32px;margin-right:12px;background-color:#fff;font-size:.875rem}.quick-attendance-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--lightblue);outline-offset:2px}.quick-attendance-btn-on[_ngcontent-%COMP%]{border-color:#1976d2!important;color:#1976d2;background:#e8f0fe}.quick-attendance-btn-icon-only[_ngcontent-%COMP%]{width:32px;justify-content:center;padding:0}.quick-attendance-icon[_ngcontent-%COMP%]{margin-left:8px;font-size:14px;line-height:1}.quick-attendance-btn-icon-only[_ngcontent-%COMP%] .quick-attendance-icon[_ngcontent-%COMP%]{margin-left:0}.input-search_container[_ngcontent-%COMP%]{width:100%;max-width:500px;padding-bottom:16px}.input-search[_ngcontent-%COMP%]{width:250px}.search-icon_container[_ngcontent-%COMP%]{padding:10px;margin-left:-35px;cursor:pointer;display:inline-block}.combined-search-icon[_ngcontent-%COMP%]{color:#495057}.clear-sort-icon[_ngcontent-%COMP%]{margin-right:8px}.notes-icon[_ngcontent-%COMP%]{color:#e18f32;cursor:pointer}.app_icon[_ngcontent-%COMP%]{width:45px;height:45px;cursor:pointer;display:block;margin:0 auto;color:#95989a}.app_icon[_ngcontent-%COMP%]:hover{color:#3fa9f5} .attendance-status{padding:8px!important;width:200px}.reason-select-wrapper[_ngcontent-%COMP%]{margin-top:8px}.attendance-actions-wrap[_ngcontent-%COMP%]{position:relative}.attendance-actions-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:#ffffff73;border-radius:6px;pointer-events:all}.attendance-actions-overlay__icon[_ngcontent-%COMP%]{font-size:14px;color:#6b7280}.period-controls[_ngcontent-%COMP%]{background:#fff}.teacher-selector[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:12px 16px 4px}.period-selector[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 16px 4px}.period-selector__label[_ngcontent-%COMP%]{font-size:12px;font-weight:600;letter-spacing:.06em;color:#9aa0a6}.period-chip[_ngcontent-%COMP%]{position:relative;display:inline-flex;align-items:baseline;gap:8px;padding:6px 14px;border-radius:16px;border:1px solid #d7dbe0;background:#fff;color:#5a6470;font-size:14px;cursor:pointer}
1.period-chip__lock[_ngcontent-%COMP%]{position:absolute;top:-6px;right:-6px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#1c7ec4;color:#fff;font-size:9px}.period-chip[_ngcontent-%COMP%]:hover{border-color:#3fa9f5}.period-chip--selected[_ngcontent-%COMP%]{border-color:#3fa9f5;background:#3fa9f51f;color:#1c7ec4;font-weight:600}.period-chip__time[_ngcontent-%COMP%]{font-size:12px;color:#9aa0a6}.period-banner[_ngcontent-%COMP%]{margin:8px 16px 4px;padding:14px 18px;border-left:4px solid #3FA9F5;border-radius:4px;background:#e8f4fd;color:#2f7fb8;font-size:15px;line-height:1.4}.quick-codes-bar[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px}.quick-codes-label[_ngcontent-%COMP%]{font-size:12px;font-weight:600;letter-spacing:.06em;color:#9aa0a6}.quick-code-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:6px 16px;border-radius:16px;font-size:14px;font-weight:500}.pill-present[_ngcontent-%COMP%]{background:#7ac9432e;color:#4e8a1e}.pill-absent[_ngcontent-%COMP%]{background:#b82d2d24;color:#b82d2d}.pill-tardy[_ngcontent-%COMP%]{background:#f793202e;color:#b9701a}.quick-codes-edit[_ngcontent-%COMP%]{color:#3fa9f5;text-decoration:underline;cursor:pointer;font-size:14px}.quick-codes-subtitle[_ngcontent-%COMP%]{text-align:center;color:#6b7280;margin:0 0 24px}.quick-codes-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;margin-bottom:16px}.quick-codes-status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;min-width:110px;font-weight:600}.status-dot[_ngcontent-%COMP%]{width:12px;height:12px;border-radius:50%;display:inline-block}.status-present[_ngcontent-%COMP%]{color:#4e8a1e}.status-present[_ngcontent-%COMP%] .status-dot[_ngcontent-%COMP%]{background:#7ac943}.status-absent[_ngcontent-%COMP%]{color:#b82d2d}.status-absent[_ngcontent-%COMP%] .status-dot[_ngcontent-%COMP%]{background:#b82d2d}.status-tardy[_ngcontent-%COMP%]{color:#b9701a}.status-tardy[_ngcontent-%COMP%] .status-dot[_ngcontent-%COMP%]{background:#f79320}.quick-codes-dropdown[_ngcontent-%COMP%]{flex:1}.reason-select-host[_ngcontent-%COMP%]{position:relative;display:inline-block}.reason-select-host--full[_ngcontent-%COMP%]{display:block;width:100%}@keyframes _ngcontent-%COMP%_reasonFill{0%{width:0}to{width:100%}}.reason-fill[_ngcontent-%COMP%]{position:absolute;top:0;left:0;bottom:0;width:0;pointer-events:none;border-radius:6px;opacity:.3;z-index:1;animation-name:_ngcontent-%COMP%_reasonFill;animation-timing-function:linear;animation-fill-mode:forwards}.reason-fill-static[_ngcontent-%COMP%]{width:100%;animation:none}.reason-fill.fill-present[_ngcontent-%COMP%]{background:#7ac943}.reason-fill.fill-tardy[_ngcontent-%COMP%]{background:#f79320}.reason-fill.fill-absent[_ngcontent-%COMP%]{background:#b82d2d}.table-controls[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center}.table-controls[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{margin:0}.student-id[_ngcontent-%COMP%]{font-size:12px;color:#c0c4cc}.student-info[_ngcontent-%COMP%]{display:flex;flex-direction:column}.btn-present[_ngcontent-%COMP%]{background:#7ac943;border:1px solid #7AC943;color:#fff}.btn-present[_ngcontent-%COMP%]:hover{background-color:#7ac943!important;border-color:#fff!important;color:#fff!important}.btn-tardy[_ngcontent-%COMP%]{background:#f79320;border:1px solid #F79320;color:#fff}.btn-tardy[_ngcontent-%COMP%]:hover{background-color:#f79320!important;border-color:#fff!important;color:#fff!important}.btn-absent[_ngcontent-%COMP%]{background:#b82d2d;border:1px solid #B82D2D;color:#fff}.btn-absent[_ngcontent-%COMP%]:hover{background-color:#b82d2d!important;border-color:#fff!important;color:#fff!important}.disabled-link[_ngcontent-%COMP%]{pointer-events:none;cursor:not-allowed;opacity:.5}.confirm-hp-modal_student-name[_ngcontent-%COMP%]{color:#95989a;padding-bottom:24px;font-weight:700}.confirm-hp-modal_hp-detail-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 40px}.confirm-hp-modal_hp-detail[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px 0}.confirm-hp-modal_bottom-border[_ngcontent-%COMP%]{height:2px;background-color:#d3d3d3;width:100%} .p-datatable-table .p-datatable-tbody>tr>td{padding:12px 16px!important}
1@media (max-width: 1156px){.table-controls[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.table-buttons[_ngcontent-%COMP%]{width:100%}.table-buttons[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{flex:1;justify-content:center}}.modal-excused-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-top:12px}.modal-switch-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;padding-top:3px}.modal-confirmation-message[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:8px}"]})}return i})();var ca=d(5964),pa=d(2092);const _a=()=>["/schooladmin/attendancesettings"];function ua(i,o){if(1&i){const e=t.RV6();t.j41(0,"i",11),t.bIt("click",function(a){t.eBV(e),t.XpG();const s=t.sdS(13);return t.Njj(s.toggle(a))}),t.k0s()}}function ma(i,o){if(1&i){const e=t.RV6();t.j41(0,"pmk-tabview",12),t.bIt("cb",function(a){t.eBV(e);const s=t.XpG();return t.Njj(s.tabChange(a))}),t.k0s()}if(2&i){const e=t.XpG();t.Y8G("activeIndex",e.index)("model",e.tabs)}}function ga(i,o){1&i&&t.nrm(0,"app-daily")}function ha(i,o){1&i&&t.nrm(0,"app-period")}let fa=(()=>{class i{constructor(e,n,a){this.systemService=e,this.router=n,this.route=a,this.Subscriptions=[],this.systemFeaturesEffect=(0,t.QZP)(()=>{this.updateTabs()}),this.selectedIndex="daily",this.index=0}updateTabs(){this.tabs=[{label:"Daily Attendance",path:"daily",showSave:!1,command:e=>{this.tabChange(e.item.path)}},{label:"Period Attendance",path:"period",showSave:!1,hideTab:!this.systemService.systemFeatures()?.PeriodAttendance,command:e=>{this.tabChange(e.item.path)}}]}ngOnInit(){if(this.updateTabs(),this.Subscriptions.push(this.router.events.pipe((0,ca.p)(e=>e instanceof f.wF)).subscribe(e=>{let a=e.url.split("/"),s=a[a.length-1];this.index=this.tabs.findIndex(l=>l.path==s),this.selectedIndex=s})),this.selectedIndex=this.route.snapshot.paramMap.get("id"),this.selectedIndex){const e=this.tabs.filter(a=>!0!==a.hideTab);if(!e.find(a=>a.path===this.selectedIndex))return void this.router.navigate(["schooladmin/attendance",e[0]?.path||"daily"],{replaceUrl:!0});this.index=this.tabs.findIndex(a=>a.path==this.selectedIndex)}else this.selectedIndex="daily",this.index=this.tabs.findIndex(e=>e.path==this.selectedIndex)}ngOnDestroy(){this.systemFeaturesEffect.destroy(),this.Subscriptions.forEach(e=>{e.unsubscribe()})}tabChange(e){e!=this.selectedIndex&&this.router.navigate(["schooladmin/attendance",e])}static#t=this.\u0275fac=function(n){return new(n||i)(t.rXU(Q.V),t.rXU(f.Ix),t.rXU(f.nX))};static#e=this.\u0275cmp=t.VBU({type:i,selectors:[["app-attendance-container"]],standalone:!0,features:[t.aNF],decls:14,vars:8,consts:[["settingsMenu",""],[1,"st",2,"background-color","white"],[1,"flex",2,"height","65px"],[1,"flex-grow-1"],[2,"margin-top","10px"],["class","settings_menu pi pi-bars",3,"click",4,"ngIf"],[1,"flex","align-items-center","header-container"],[1,"btn","btn-secondary",3,"routerLink"],[3,"activeIndex","model","cb",4,"ngIf"],[4,"ngIf"],["appendTo","body","styleClass","clean",3,"model","popup"],[1,"settings_menu","pi","pi-bars",3,"click"],[3,"cb","activeIndex","model"]],template:function(n,a){1&n&&(t.j41(0,"div",1)(1,"div",2)(2,"div",3)(3,"h3",4),t.EFF(4,"Attendance "),t.DNE(5,ua,1,0,"i",5),t.k0s()(),t.j41(6,"div",6)(7,"a",7),t.EFF(8,"Settings"),t.k0s()()()(),t.DNE(9,ma,1,2,"pmk-tabview",8)(10,ga,1,0,"app-daily",9)(11,ha,1,0,"app-period",9),t.nrm(12,"p-menu",10,0)),2&n&&(t.R7$(5),t.Y8G("ngIf",a.systemService.viewportVerySmall()),t.R7$(2),t.Y8G("routerLink",t.lJ4(7,_a)),t.R7$(2),t.Y8G("ngIf",!a.systemService.viewportVerySmall()),t.R7$(),t.Y8G("ngIf","daily"==a.selectedIndex),t.R7$(),t.Y8G("ngIf","period"==a.selectedIndex),t.R7$(),t.Y8G("model",a.tabs)("popup",!0))},dependencies:[S.MD,S.bT,D.tm,I.S,x.N,pa.y,v.Mk,v.W1,f.Wk,sn,ra,f.iI],styles:[".header-container[_ngcontent-%COMP%]{margin-right:8px}"]})}return i})()},450:(N,R,d)=>{d.d(R,{U:()=>I});var t=d(5312),f=d(4438),S=d(1626),D=d(2735);let I=(()=>{class x{constructor(c,p){this.http=c,this.systemService=p}saveGrade(c){return this.http.post(t.c.basePath+"SchoolAdmin/SaveGrade",c,this.systemService.options)}sortGrades(c){return this.http.post(t.c.basePath+"SchoolAdmin/SortGrades",c,this.systemService.options)}deleteGrade(c){return this.http.post(t.c.basePath+"SchoolAdmin/DeleteGrade",c,this.systemService.options)}
1getGradesV2(){return this.http.get(t.c.basePath+"SchoolAdmin/GetGradesV2",this.systemService.options)}bulkUpdateGradeToStudents(c){return this.http.post(t.c.basePath+"SchoolAdmin/UpdateGradeToStudents",c,this.systemService.options)}getGradeById(c){return this.http.get(t.c.basePath+"SchoolAdmin/GetGradeById?id="+c,this.systemService.options)}static#t=this.\u0275fac=function(p){return new(p||x)(f.KVO(S.Qq),f.KVO(D.V))};static#e=this.\u0275prov=f.jDH({token:x,factory:x.\u0275fac})}return x})()},1644:(N,R,d)=>{d.d(R,{$:()=>I});var t=d(5312),f=d(4438),S=d(1626),D=d(2735);let I=(()=>{class x{constructor(c,p){this.http=c,this.systemService=p}bulkAddStudentNote(c){return this.http.post(t.c.basePath+"SchoolAdmin/AddNoteToStudents",c,this.systemService.options)}getStudentNoteList(c){return this.http.get(t.c.basePath+"SchoolAdmin/GetStudentNoteListV2?studentId="+c,this.systemService.options)}getStudentNotesDetails(c){return this.http.get(t.c.basePath+"SchoolAdmin/GetStudentNotes?studentId="+c,this.systemService.options)}toggleStudentNotePinStatus(c){return this.http.post(t.c.basePath+"SchoolAdmin/ToggleStudentNotePinStatus",c,this.systemService.options)}getStudentNote(c){return this.http.get(t.c.basePath+"SchoolAdmin/GetStudentNote?noteId="+c,this.systemService.options)}addEditStudentNote(c){return this.http.post(t.c.basePath+"SchoolAdmin/AddEditStudentNote",c,this.systemService.options)}deleteStudentNote(c){return this.http.post(t.c.basePath+"SchoolAdmin/DeleteStudentNote",c,this.systemService.options)}static#t=this.\u0275fac=function(p){return new(p||x)(f.KVO(S.Qq),f.KVO(D.V))};static#e=this.\u0275prov=f.jDH({token:x,factory:x.\u0275fac,providedIn:"root"})}return x})()},4979:(N,R,d)=>{d.d(R,{t:()=>x});var t=d(1626),f=d(5312),S=d(4438),D=d(2735),I=d(2490);let x=(()=>{class v{constructor(p,k,M){this.http=p,this.systemService=k,this.cookieService=M}createTag(p){return this.http.post(f.c.basePath+"api/StudentTag/CreateStudentTag",p,this.systemService.options)}updateTag(p){return this.http.post(f.c.basePath+"api/StudentTag/EditStudentTag",p,this.systemService.options)}uploadTagFile(p){let k={headers:new t.Lr({AuthTokenId:this.cookieService.get("AuthTokenID")}),withCredentials:!0};return this.http.post(f.c.basePath+"api/StudentTag/ProcessStudentTagsFile",p,k)}BulkDeleteStudentTag(p){return this.http.post(f.c.basePath+"api/StudentTag/BulkDeleteStudentTag",p,this.systemService.options)}BulkRemoveStudentFromStudentTag(p){return this.http.post(f.c.basePath+"api/StudentTag/BulkRemoveStudentFromStudentTag",p,this.systemService.options)}GetStudentTags(){return this.http.get(f.c.basePath+"api/StudentTag/GetStudentTags",this.systemService.options)}BulkEditStudentTagPickupOption(p){return this.http.post(f.c.basePath+"api/StudentTag/BulkEditStudentTagPickupOption",p,this.systemService.options)}static#t=this.\u0275fac=function(k){return new(k||v)(S.KVO(t.Qq),S.KVO(D.V),S.KVO(I.O))};static#e=this.\u0275prov=S.jDH({token:v,factory:v.\u0275fac})}return v})()},9746:(N,R,d)=>{d.d(R,{C:()=>S});var t=d(4438),f=d(2735);let S=(()=>{class D{constructor(x){this.systemService=x}transform(x,v=10,c=!1){let p="",k=x.trim();if(-1==k.indexOf(" "))if(k.length>v)if(c)p=k.substring(0,v)+"...";else{let M=Math.min(k.length,k.lastIndexOf(" "),k.lastIndexOf("-"),k.lastIndexOf("?"),k.lastIndexOf("."),k.lastIndexOf("!"),k.lastIndexOf(":"));M<0&&(M=v),p=k.substring(0,M)+"..."}else p=k;else p=k;return p}static#t=this.\u0275fac=function(v){return new(v||D)(t.rXU(f.V,16))};static#e=this.\u0275pipe=t.EJ8({name:"pikmykidEllipsis",type:D,pure:!1,standalone:!0})}return D})()},2092:(N,R,d)=>{d.d(R,{y:()=>k});var t=d(4438),f=d(4820),S=d(2168),D=d(177),I=d(8542);const x=["tab_container"];function v(M,F){if(1&M){const g=t.RV6();t.j41(0,"div",6),t.bIt("click",function(){t.eBV(g);const _=t.XpG();return t.Njj(_.navLeft())})("keydown.enter",function(){t.eBV(g);const _=t.XpG();return t.Njj(_.navLeft())})("keydown.space",function(_){return t.eBV(g),t.XpG().navLeft(),t.Njj(_.preventDefault())}),t.nrm(1,"i",7),t.k0s()}}function c(M,F){if(1&M){const g=t.RV6();t.j41(0,"div",8),t.bIt("click",function(){const _=t.eBV(g),T=_.$implicit,E=_.index,G=t.XpG
1();return t.Njj(G.tabClick(T,E))})("keydown.enter",function(){const _=t.eBV(g),T=_.$implicit,E=_.index,G=t.XpG();return t.Njj(G.tabClick(T,E))})("keydown.space",function(_){const T=t.eBV(g),E=T.$implicit,G=T.index;return t.XpG().tabClick(E,G),t.Njj(_.preventDefault())}),t.EFF(1),t.k0s()}if(2&M){const g=F.$implicit,b=F.index,_=t.XpG();t.xc7("min-width",_.getTabMinWidth(g)),t.Y8G("id","tab"+b)("ngClass",_.activeIndex==b?"btn btn-primary tab":"btn btn-secondary tab"),t.BMQ("aria-selected",_.activeIndex==b),t.R7$(),t.JRh(g.label)}}function p(M,F){if(1&M){const g=t.RV6();t.j41(0,"div",9),t.bIt("click",function(){t.eBV(g);const _=t.XpG();return t.Njj(_.navRight())})("keydown.enter",function(){t.eBV(g);const _=t.XpG();return t.Njj(_.navRight())})("keydown.space",function(_){return t.eBV(g),t.XpG().navRight(),t.Njj(_.preventDefault())}),t.nrm(1,"i",10),t.k0s()}}let k=(()=>{class M{constructor(g,b){this.route=g,this.aRoute=b,this.cb=new t.bkB,this.activeIndex=0,this.activeIndexChange=new t.bkB,this.model=[],this.index=0,this.showNavArrows=!1}ngOnInit(){this.model=this.filteredModels(),this.activeIndex&&(this.model[this.activeIndex].selected=!0)}ngAfterViewInit(){this.scrollTo();let g=document.getElementById("tabrow").clientWidth,b=0;for(let _=0;_<this.model.length;_++)b+=document.getElementById("tab"+_).clientWidth;this.showNavArrows=!(b<g)}navLeft(){void 0!==this.btnState&&this.btnState!==f.D.Default||0!=this.activeIndex&&(this.activeIndex--,this.model[this.activeIndex].selected=!0,this.scrollTo(),this.cb.emit(this.model[this.activeIndex].path),this.activeIndexChange.emit(this.activeIndex))}navRight(){void 0!==this.btnState&&this.btnState!==f.D.Default||this.activeIndex!=this.model.length-1&&(this.activeIndex++,this.model[this.activeIndex].selected=!0,this.scrollTo(),this.cb.emit(this.model[this.activeIndex].path),this.activeIndexChange.emit(this.activeIndex))}tabClick(g,b){void 0!==this.btnState&&this.btnState!==f.D.Default||(this.activeIndex=b,g.selected=!0,this.scrollTo(),this.cb.emit(g.path),this.activeIndexChange.emit(this.activeIndex))}scrollTo(){let g=document.getElementById("tab"+this.activeIndex.toString());document.getElementById("tabrow"),document.getElementById("tab_container"),g.scrollTop=g.offsetTop}filteredModels(){return this.model.filter(g=>1!=g.hideTab)}getTabMinWidth(g){return g.minWidth?g.minWidth:"auto"}static#t=this.\u0275fac=function(b){return new(b||M)(t.rXU(S.Ix),t.rXU(S.nX))};static#e=this.\u0275cmp=t.VBU({type:M,selectors:[["pmk-tabview"]],viewQuery:function(b,_){if(1&b&&t.GBs(x,5),2&b){let T;t.mGM(T=t.lsd())&&(_.tab_container=T.first)}},inputs:{activeIndex:"activeIndex",model:"model",btnState:"btnState"},outputs:{cb:"cb",activeIndexChange:"activeIndexChange"},decls:6,vars:3,consts:[["id","tab_container"],["role","tablist",1,"flex","flex-row","tab_buttons"],["tooltipPosition","bottom","pTooltip","Click to navigate to the previous tab","class","btn btn-primary tab tableft","role","button","tabindex","0","aria-label","Previous tab",3,"click","keydown.enter","keydown.space",4,"ngIf"],["id","tabrow",1,"tab_button_row"],["role","tab","tabindex","0",3,"id","ngClass","min-width","click","keydown.enter","keydown.space",4,"ngFor","ngForOf"],["tooltipPosition","bottom","pTooltip","Click to navigate to the next tab","class","btn btn-primary tab tabright","role","button","tabindex","0","aria-label","Next tab",3,"click","keydown.enter","keydown.space",4,"ngIf"],["tooltipPosition","bottom","pTooltip","Click to navigate to the previous tab","role","button","tabindex","0","aria-label","Previous tab",1,"btn","btn-primary","tab","tableft",3,"click","keydown.enter","keydown.space"],["aria-hidden","true",1,"pi","pi-arrow-left"],["role","tab","tabindex","0",3,"click","keydown.enter","keydown.space","id","ngClass"],["tooltipPosition","bottom","pTooltip","Click to navigate to the next tab","role","button","tabindex","0","aria-label","Next tab",1,"btn","btn-primary","tab","tabright",3,"click","keydown.enter","keydown.space"],["aria-hidden","true",1,"pi","pi-arrow-right"]],template:function(b,_){1&b&&(t.j41(0,"div",0)(1,"div",1),t.DNE(2,v,2,0,"div",2),t.j41(3,"div",3),t.DNE(4,c,2,6,"div",4),t.k0s(),t.DNE(5,p,2,0,"div",5),t.k0s()()),2&b&&(t.R7$(2),t.Y8G("ngIf",_.activeIndex>0&&_.showNavArrows),t.R7$(2),t.Y8G("ngForOf",_.filteredModels()),t.R7$(),t.Y8G("ngIf",_.activeIndex<_.model.length-1&&_.showNavArrows))},dependencies:[D.YU,D.Sq,D.bT,I.m],styles:["#tab_container[_ngcontent-%COMP%]{width:100%;overflow:hidden;max-width:100%;background-color:#fff;white-space:nowrap;border-bottom:1px solid var(--light_grey);position:relative}.tab_buttons[_ngcontent-%COMP%]{position:relative}.tab_button_row[_ngcontent-%COMP%]{max-width:calc(100% - 32px);width:calc(100% - 32px);display:flex;overflow-x:auto}.w_1[_ngcontent-%COMP%], .w_2[_ngcontent-%COMP%]{max-width:calc(100% - 32px);width:calc(100% - 32px)}.tab_button_row[_ngcontent-%COMP%] .tab[_ngcontent-%COMP%]{width:-moz-fit-content;width:fit-content}.tab_buttons_inner[_ngcontent-%COMP%]{overflow-x:auto}.tab_arrows[_ngcontent-%COMP%]{display:flex;position:absolute;top:0;right:0;height:49px;width:64px}.tab_arrows[_ngcontent-%COMP%] .tab[_ngcontent-%COMP%]{padding-left:12px;width:32px;height:48px;float:left;border-top-left-radius:0;border-top-right-radius:0}.tab.tableft[_ngcontent-%COMP%]{border-top-left-radius:0}.tab.tabright[_ngcontent-%COMP%]{width:32px}.tab[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;white-space:nowrap;font-size:16px!important;cursor:pointer;min-width:inherit;margin:0!important;border-radius:0}.btn-secondary.tab[_ngcontent-%COMP%]{color:var(--light_grey_tab)}.tab_buttons[_ngcontent-%COMP%] .tab[_ngcontent-%COMP%]:last-child{border-top-right-radius:0}.tab[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--lightblue);outline-offset:-3px}.btn-primary.tab[_ngcontent-%COMP%]:focus-visible{outline-color:#fff}.selected[_ngcontent-%COMP%]{border-bottom:1px solid #cdcdcd}"]})}return M})()},8427:(N,R,d)=>{d.d(R,{N:()=>D});var t=d(177),f=d(8542),S=d(4438);let D=(()=>{class I{static#t=this.\u0275fac=function(c){return new(c||I)};static#e=this.\u0275mod=S.$C({type:I});static#n=this.\u0275inj=S.G2t({imports:[t.MD,f.S]})}return I})()}}]);
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.