1import{a as xe}from"./chunk-O2K735F6.js";import{c as he,e as ge,i as be,o as Ce}from"./chunk-SGGWWVGS.js";import"./chunk-JEL6HJ7P.js";import{$a as me,Dc as w,Hc as fe,K as ie,Pa as re,S as se,T as oe,Ua as de,_a as le,hc as ce,ic as ue,sa as _,t as ne,vb as pe,wa as I,ya as ae}from"./chunk-YQOD7X2Z.js";import"./chunk-563YFTIG.js";import"./chunk-36JN3LZY.js";import"./chunk-WPHW6CRH.js";import{K as ee,L as te,h as Y,m as S,s as Z}from"./chunk-76O7YCWW.js";import{e as X}from"./chunk-YYIIKC2W.js";import"./chunk-3WYGUSDH.js";import"./chunk-LU7SZU5X.js";import{A as W,q as J}from"./chunk-PO2RDVKE.js";import{Ac as N,Bc as K,Cc as H,N as O,Pb as g,Qb as q,Rb as b,S as V,Sb as Q,Tc as v,Ub as G,Uc as y,Vb as $,Wb as l,Xb as o,Yb as i,Zb as m,db as r,ec as z,ib as j,jc as U,lc as f,n as B,oa as F,pa as L,pb as D,pc as T,qc as R,rc as E,s as A,t as P,ub as x,zc as p}from"./chunk-3URBZWPM.js";import{a as M,b as k}from"./chunk-ODN5LVDJ.js";function Se(t,s){if(t&1&&m(0,"fab-button",1),t&2){let e=f();l("button",e.removeButtonConfig)}}var ve=(()=>{let s=class s{constructor(){this.onRemove=new j,this.removeButtonConfig={action:{type:"callback",callback:this._onRemove.bind(this)},aria:"Remove student",text:"Remove",type:"primary"}}_onRemove(){this.onRemove.emit(this.student)}};s.\u0275fac=function(d){return new(d||s)},s.\u0275cmp=x({type:s,selectors:[["app-affected-student"]],inputs:{student:"student",config:"config"},outputs:{onRemove:"onRemove"},decls:8,vars:5,consts:[[1,"ir-affected-student"],[3,"button"]],template:function(d,n){d&1&&(o(0,"section",0)(1,"p"),p(2),i(),o(3,"p"),p(4),i(),o(5,"p"),p(6),i(),g(7,Se,1,1,"fab-button",1),i()),d&2&&(r(2),H("",n.student.firstname," ",n.student.lastname),r(2),N(n.student.membershipNumber),r(2),N(n.student.assessmentName),r(),b(n.config!=null&&n.config.canSelect?-1:7))},dependencies:[_],styles:["[_ngcontent-%COMP%]:root{--aat-ui-grey-25: #bfbfbf;--aat-ui-grey-55: #737373;--aat-slate: #3a5066;--aat-ui-grey-05: #f2f2f2}.ir-affected-student[_ngcontent-%COMP%]{display:grid;grid-template-columns:30% 20% 30% 20%;animation-duration:.5s;animation-name:_ngcontent-%COMP%_fade-in;animation-direction:alternate;border:1px solid rgb(229.5,229.5,229.5);border-radius:3px;padding-top:15px;padding-bottom:15px;padding-left:1rem;padding-right:1rem}.ir-affected-student[_ngcontent-%COMP%] fab-button[_ngcontent-%COMP%]{align-self:center;justify-self:flex-end}@keyframes _ngcontent-%COMP%_fade-in{0%{opacity:0;height:0}to{opacity:1;height:100%}}"]});let t=s;return t})();function _e(t,s){if(t&1&&(m(0,"fab-dropdown-simple",8),v(1,"async")),t&2){let e=f(2);l("content",y(1,2,e.assessmentPickerConfig))("formControl",e.assessmentCtrl)}}function Ie(t,s){if(t&1&&m(0,"fab-dropdown-simple",8),t&2){let e=f(2);l("content",e.assessmentPickerLoading)("formControl",e.assessmentCtrl)}}function we(t,s){if(t&1&&(o(0,"div",13)(1,"div",15),m(2,"fab-aat-icon",16),i(),o(3,"p",17),p(4,"No affected students yet"),i()()),t&2){let e=f(2);r(2),l("content",e.iconConfig)}}function Ae(t,s){if(t&1){let e=z();o(0,"app-affected-student",21),U("onRemove",function(){let d=F(e).$index,n=f(3);return L(n.removeStudentRow(d))}),i()}if(t&2){let e=s.$implicit;l("student",e)}}function De(t,s){if(t&1&&(o(0,"section",14)(1,"div",18)(2,"p",19)(3,"b"),p(4,"Student full name"),i()(),o(5,"p",19)(6,"b"),p(7,"AAT ID"),i()(),o(8,"p",19)(9,"b"),p(10,"Assessment name"),i()()(),G(11,Ae,1,1,"app-affected-student",20,Q),i()),t&2){let e=f(2);r(11),$(e.manualStudentInputs)}}function Te(t,s){if(t&1&&(o(0,"app-question-section",5)(1,"p"),p(2,"Please enter the details of the affected students. Once added they will appear in the box below"),i(),o(3,"div",6)(4,"div",7),m(5,"fab-input-text-2",8),i(),o(6,"div",7),m(7,"fab-input-text-2",8),i(),o(8,"div",7),g(9,_e,2,4,"fab-dropdown-simple",8),v(10,"async"),q(11,Ie,1,2,"fab-dropdown-simple",8),i(),o(12,"div",9),m(13,"fab-button",10)(14,"fab-button",11),i()()(),o(15,"app-question-section",12)(16,"p"),p(17),i(),g(18,we,5,1,"div",13)(19,De,13,0,"section",14),i()),t&2){let e=f();l("step",e.config.progressIndicator.currentStep)("stepTitle",e.config.title),r(5),l("content",e.studentInputConfig)("formControl",e.nameCtrl),r(2),l("content",e.studentIdInputConfig)("formControl",e.membershipNumberCtrl),r(2),b(y(10,12,e.assessmentPickerConfig)?9:11),r(4),l("button",e.addStudentBtnConfig)("enabled",e.studentInfoValid()),r(),l("button",e.deleteStudentBtnConfig),r(3),K("Review and manage the list of students affected on ",e.selectedDate),r(),b(e.manualStudentInputs.length===0?18:19)}}function Re(t,s){if(t&1&&(o(0,"app-question-section",1),m(1,"fab-table",22),v(2,"async"),i()),t&2){let e=f();l("step",e.config.progressIndicator.currentStep)("stepTitle",e.config.title),r(),l("rowData",y(2,6,e.studentsInAssessment))("columnDefs",e.columnDefs)("gridOptions",e.gridOptions)("noRowsCopy",e.noDataCopy)}}var Je=(()=>{let s=class s{constructor(a,d){this.service=a,this.router=d,this.tooltip="Add student details to continue",this.noDataCopy="There were no assessments scheduled for the date you selected. Please choose a different date.",this.studentInputConfig={id:"student-name",required:!0,label:"Student full name",codeType:"AlphaText",maxLen:100},this.studentIdInputConfig={id:"student-id",required:!0,label:"AAT ID",codeType:"Number",maxLen:10},this.assessmentPickerConfig=B(null),this.assessmentPickerLoading={group:"assessment",placeholder:"Loading assessments",label:"Assessment name",options:[]},this.iconConfig={colour:ne.BLACK,iconName:ie.person}
1,this.manualStudentInputs=[],this.nameCtrl=new S(""),this.membershipNumberCtrl=new S(""),this.assessmentCtrl=new S(null),this.addStudentBtnConfig={action:{callback:this.addStudentRow.bind(this),type:"callback"},aria:"Add student",type:"primary",text:"Add student"},this.deleteStudentBtnConfig={action:{callback:this.clearStudentInputs.bind(this),type:"callback"},aria:"Clear student information",type:"text",text:"Clear"},this.nextBtn=he(()=>this.router.navigate(be),{title:"Continue to additional details"}),this.columnDefs=[{headerName:"First name",field:"firstname",flex:1},{headerName:"Last name",field:"lastname",flex:1},{headerName:"Membership number",field:"memberId"},{headerName:"Assessment",field:"assessmentName",flex:3}],this.defaultColDef={resizable:!1},this.config=Ce(this.service.pathway,"affected-students"),this.gridOptions={rowSelection:{mode:"multiRow",checkboxes:!0,headerCheckbox:!0},onFirstDataRendered:n=>{let c=[];n.api.forEachNode(h=>{h.data.isSelected&&c.push(h)}),n.api.setNodesSelected({nodes:c,newValue:!0})},onSelectionChanged:n=>{(n.source==="uiSelectAll"||n.source==="checkboxSelected")&&this.service.setStudentsInAssessment(this.table.agGrid.api.getSelectedRows())}},this.studentsInAssessment=P([this.service.getAssessmentsOnDate(this.config.userType),this.service.incidentData]).pipe(O(),A(([n,c])=>n.sort((h,u)=>h.firstname.localeCompare(u.firstname)).map(h=>{let u=c.affectedStudents??[];return k(M({},h),{isSelected:!!u.find(C=>C.studentId===h.studentId&&C.assessmentId===h.assessmentId)})}))),this.assessmentPickerConfig=this.service.getAssessments().pipe(V(),A(n=>({group:"assessment",placeholder:"Select an assessment",label:"Assessment name",options:n.flatMap(u=>u.assessments).map(u=>({label:u.value,value:u.key})).sort((u,C)=>u.label>C.label?1:-1)})))}ngOnInit(){this.service.incidentData.subscribe(a=>{this.selectedDate=new Date(a.scheduledDate)?.toLocaleDateString()??"Unknown date",this.manualStudentInputs=a.affectedStudents??[]})}addStudentRow(){let[a,...d]=this.nameCtrl.value?.split(" ");this.manualStudentInputs.unshift({firstname:a,lastname:d.join(" "),membershipNumber:this.membershipNumberCtrl.value,assessmentId:this.assessmentCtrl.value.value,assessmentName:this.assessmentCtrl.value.label}),this.service.setStudentsInAssessment(this.manualStudentInputs),this.clearStudentInputs()}removeStudentRow(a){this.manualStudentInputs.splice(a,1),this.service.setStudentsInAssessment(this.manualStudentInputs)}clearStudentInputs(){this.nameCtrl.reset(),this.membershipNumberCtrl.reset(),this.assessmentDropdownComponent.reset()}studentInfoValid(){return this.nameCtrl.value?.length>1&&this.nameCtrl.valid&&this.membershipNumberCtrl.value?.length>1&&this.membershipNumberCtrl.valid&&this.assessmentCtrl.valid&&this.assessmentCtrl.value}formValid(){let a=!1;return this.table?.agGrid?a=this.table.agGrid.api.getSelectedRows().length>0:a=this.manualStudentInputs.length>0,this.service.setFormState({isValid:a,tooltip:this.tooltip}),a}};s.\u0275fac=function(d){return new(d||s)(D(ge),D(X))},s.\u0275cmp=x({type:s,selectors:[["app-students-in-assessment"]],viewQuery:function(d,n){if(d&1&&(T(I,5),T(w,5)),d&2){let c;R(c=E())&&(n.assessmentDropdownComponent=c.first),R(c=E())&&(n.table=c.first)}},decls:7,vars:8,consts:[[3,"config"],["header","Select the students that were impacted by the incident",3,"step","stepTitle"],["id","nav-btns"],["id","incident-reporting-secondary-btn",3,"button"],["id","incident-reporting-primary-btn",3,"button","positionInput","visible","enabled","tooltip"],["header","Add affected students",3,"step","stepTitle"],[1,"free-text-student-entry"],[1,"input"],[3,"content","formControl"],[1,"add-remove-student-buttons"],[3,"button","enabled"],["id","delete-student",3,"button"],["header","Affected students"],[1,"no-students__container"],[1,"content-box"],[1,"no-students__icon"],[3,"content"],["id","no-students"],[1,"header"],[1,"heading"],[1,"affected-student",3,"student"],[1,"affected-student",3,"onRemove","student"],[3,"rowData","columnDefs","gridOptions","noRowsCopy"]],template:function(d,n){d&1&&(m(0,"fab-progress-indicator",0),o(1,"section"),g(2,Te,20,14)(3,Re,3,8,"app-question-section",1),i(),o(4,"section",2),m(5,"fab-button",3)(6,"fab-button",4),i()),d&2&&(l("config",n.config.progressIndicator),r(2),b(n.service.pathway==="UnableToSchedule"?2:3),r(3),l("button",n.service.genericBackButtonConfig),r(),l("button",n.nextBtn)("positionInput","left")("visible",!n.formValid())("enabled",n.formValid())("tooltip",n.tooltip))},dependencies:[de,re,pe,fe,w,W,_,xe,ve,ee,Y,te,Z,ae,I,ue,ce,me,le,oe,se,J],styles:[`:root{--aat-ui-grey-25: #bfbfbf;--aat-ui-grey-55: #737373;--aat-slate: #3a5066;--aat-ui-grey-05: #f2f2f2}#incident-reporting-layout #hero-container{background-color:#dce6f0;height:100px;padding:8px;text-align:center;display:flex;justify-content:center;align-items:center;border-bottom:1px solid #000000}
1#incident-reporting-layout #nav-btns{display:flex;flex-direction:row;justify-content:center}#incident-reporting-primary-btn{margin-left:auto}#router-content{margin:0 10%}@media (min-width: 768px){#router-content{margin:0 15%}}.free-text-student-entry{display:flex;flex-direction:column}.free-text-student-entry .input{width:100%}.affected-student{margin-bottom:15px}.add-remove-student-buttons{justify-content:flex-start;display:flex;margin-top:15px}.add-remove-student-buttons #delete-student{margin-left:15px;align-self:center}.content-box{padding:8px;margin-right:15px;display:grid;grid-template-rows:auto;width:100%}.content-box .header{display:grid;grid-template-columns:30% 20% 30% 20%}.content-box .header .heading{font-size:1rem;font-weight:400}.content-box .header .heading:first-of-type{padding-left:1rem}.no-students__container{display:flex;justify-content:center;flex-direction:column;align-items:center}.no-students__icon{height:35px;width:35px}@media (min-width: 992px){.no-students__icon{height:50px;width:50px}} 2`],encapsulation:2});let t=s;return t})();export{Je as StudentsInAssessmentComponent};
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.