PageSourceSearch

https://buildersacademynz.web.app/chunk-MFDL7U5Z.js

js buildersacademynz.web.app collected 2026-10-03 12:19:58 UTC 24,144 bytes, 1 lines download raw bytes

1import{a as yt}from"./chunk-B75HGZZC.js";import{a as gt}from"./chunk-HSYDSHIN.js";import{D as it,P as nt,U as ot,V as at,Z as rt,_ as lt,b as W,c as J,da as st,h as Q,i as R,ia as dt,j as q,k as X,l as Y,q as Z,u as tt,y as et}from"./chunk-KMXQE4KL.js";import{B as pt,Ca as St,G as ft,Ja as xt,P as ht,a as ut,b as mt,da as _t}from"./chunk-R5WJRIHB.js";import{a as ct}from"./chunk-NFYWOYC5.js";import"./chunk-ITMFNP22.js";import"./chunk-GUZO7ZNK.js";import{Aa as b,Db as D,Ga as I,Ha as _,Ia as c,Ic as U,J as E,Lc as $,Ma as K,N as f,Na as L,O as h,Oa as H,Ra as z,Rb as B,Ua as r,Va as k,Vc as j,Wa as w,Xa as A,Z as T,aa as l,ab as P,bb as G,cb as O,fa as V,j as M,ka as C,ub as N,vb as F,xa as u,ya as a,za as o}from"./chunk-3RYB6SVN.js";import"./chunk-QYJGY2IR.js";import"./chunk-YGHZJLBQ.js";import"./chunk-G35TH3HO.js";import"./chunk-QUJFQN2Y.js";import"./chunk-TQCPDUT3.js";import"./chunk-USX6FYMP.js";import"./chunk-LPZTKJWE.js";import"./chunk-PW6GA5NL.js";import"./chunk-S5XOBH6Y.js";import"./chunk-MKFP4TZ3.js";import"./chunk-JQVI6FS2.js";import"./chunk-BCFU56ZB.js";import"./chunk-PT3YUHTI.js";import"./chunk-MTEZNQW4.js";import"./chunk-PTASOGFN.js";import"./chunk-4K53T7NJ.js";import"./chunk-MTHZ7MWU.js";import"./chunk-WI5MSH4N.js";import"./chunk-N2ITJEWR.js";import"./chunk-CKP3SGE2.js";import"./chunk-RFGOEN6H.js";import"./chunk-Y7EQJLOB.js";import"./chunk-4EXU7QX3.js";import"./chunk-YG5PFMJ7.js";import"./chunk-NER57BGA.js";import"./chunk-DSHYVPZD.js";import"./chunk-PD2PSGYJ.js";import"./chunk-YGDXWWXH.js";import"./chunk-JNMFIV4M.js";import"./chunk-DXRS3GW7.js";import"./chunk-ZDL7X67C.js";import"./chunk-CLVRMGG4.js";import{g as y}from"./chunk-NMDLJX5Q.js";var bt=["goalEditor"];function Ct(s,g){if(s&1&&(a(0,"div",17)(1,"ion-badge",18),r(2),o(),a(3,"span",19),r(4),o()()),s&2){let i=g.$implicit,t=c();l(),u("color",t.getSlotBadgeColor(t.getSlotStatus(i))),l(),w(" ",t.getSlotBadgeLabel(t.getSlotStatus(i))," "),l(2),k(i)}}function wt(s,g){s&1&&(a(0,"div",20),r(1,"No goals saved yet."),o())}function vt(s,g){if(s&1&&(a(0,"div",35),r(1),o()),s&2){let i=c().$implicit,t=c(2);l(),w(" ",t.getSubCategoryMainName(i.subCategoryId)," ")}}function Et(s,g){s&1&&(a(0,"span",36),r(1,"Student marked complete \u2713"),o())}function Mt(s,g){s&1&&(a(0,"span",37),r(1,"Not yet completed by student"),o())}function kt(s,g){if(s&1){let i=I();a(0,"div",23)(1,"div",24)(2,"strong"),r(3),o(),a(4,"span",25),r(5),o()(),C(6,vt,2,1,"div",26),b(7,"div",27),a(8,"div",28),C(9,Et,2,0,"span",29)(10,Mt,2,0,"span",30),o(),a(11,"div",31)(12,"ion-button",32),_("click",function(){let e=f(i).$implicit,n=c(2);return h(n.startEdit(e))}),r(13,"Edit"),o(),a(14,"ion-button",33),_("click",function(){let e=f(i).$implicit,n=c(2);return h(n.clearGoal(e))}),r(15,"Clear Goal"),o(),a(16,"button",34),_("click",function(){let e=f(i).$implicit,n=c(2);return h(n.toggleTutorConfirmed(e))}),r(17),o()()()}if(s&2){let i=g.$implicit,t=c(2);l(3),k(t.getSubCategoryName(i.subCategoryId)),l(2),k(t.getGoalChipLabel(i)),l(),u("ngIf",t.getSubCategoryMainName(i.subCategoryId)),l(),u("innerHTML",i.instructionsHtml,T),l(2),u("ngIf",t.isStudentCompleted(i)),l(),u("ngIf",!t.isStudentCompleted(i)),l(6),z("confirmed",t.isTutorConfirmed(i)),u("disabled",t.isSaving),l(),w(" ",t.isTutorConfirmed(i)?"\u2713 Confirmed":"Confirm Completion"," ")}}function It(s,g){if(s&1&&(a(0,"div",21),C(1,kt,18,10,"div",22),o()),s&2){let i=c();l(),u("ngForOf",i.existingGoals)}}function Pt(s,g){if(s&1&&(a(0,"ion-select-option",60),r(1),o()),s&2){let i=g.$implicit;u("value",i.cat.toString()),l(),w(" ",i.name," ")}}function Gt(s,g){if(s&1&&(a(0,"ion-select-option",60),r(1),o()),s&2){let i=g.$implicit;u("value",i.list_id.toString()),l(),w(" ",i.name," ")}}function Ot(s,g){if(s&1){let i=I();a(0,"ion-header")(1,"ion-toolbar")(2,"ion-title"),r(3),o(),a(4,"ion-buttons",38)(5,"ion-button",39),_("click",function(){f(i);let e=c();return h(e.closeEditorModal())}),b(6,"ion-icon",40),o()()()(),a(7,"ion-content",41)(8,"p",42),r(9),o(),a(10,"ion-item")(11,"ion-label",43),b(12,"ion-icon",44),r(13," Main Category "),o(),a(14,"ion-select",45),O("ngModelChange",function(e){f(i);let n=c();return G(n.selectedMainCategoryId,e)||(n.selectedMainCategoryId=e),h(e)}),_("ionChange",function(){f(i);let e=c();return h(e.onMainCategoryChange())}),C(15,Pt,2,2,"ion-select-option",46),o()(),a(16,"ion-item")(17,"ion-label",43),b(18,"ion-icon",47),r(19," Subcategory "),o(),a(20,"ion-select",48),O("ngModelChange",function(e){f(i);let n=c();return G(n.selectedSubCategoryId,e)||(n.selectedSubCategoryId=e),h(e)}),C(21,Gt,2,2,"ion-select-option",46),o()(),a(22,"div",49)(23,"div",50)(24,"h3"),b(25,"ion-icon",51),r(26," Goal Instructions "),o(),a(27,"div",52)(28,"button",53),_("click",function(){f(i);let e=c();return h(e.formatText("bold"))}),a(29,"strong"),r(30,"B"),o()(),a(31,"button",53),_("click",function(){f(i);let e=c();return h(e.formatText("italic"))}),a(32,"em"),r(33,"I"),o()(),a(34,"button",53),_("click",function(){f(i);let e=c();return h(e.formatText("underline"))}),a(35,"u"),r(36,"U"),o()(),a(37,"button",53),_("click",function(){f(i);let e=c();return h(e.formatText("insertUnorderedList"))}),r(38,"\u2022 List"),o(),a(39,"button",53),_("click",function(){f(i);let e=c();return h(e.formatText("insertOrderedList"))}),r(40,"1. List"),o()()(),a(41,"div",54,0),_("input",function(){f(i);let e=c();return h(e.onEditorInput())}),o()(),a(43,"div",55)(44,"ion-button",56),_("click",function(){f(i);let e=c();return h(e.saveGoal())}),b(45,"ion-icon",57),r(46," Save "),o(),a(47,"ion-button",58),_("click",function(){f(i);let e=c();return h(e.closeEditorModal())}),b(48,"ion-icon",59),r(49," Cancel "),o()()()}if(s&2){let i=c();l(3),k(i.editingSlotKey?"Edit Goal":"Add Goal"),l(6),A("",i.student==null?null:i.student.user_firstname," ",i.student==null?null:i.student.user_lastname),l(5),P("ngModel",i.selectedMainCategoryId),l(),u("ngForOf",i.mainCategories),l(5),P("ngModel",i.selectedSubCategoryId),u("disabled",!i.selectedMainCategoryId),l(),u("ngForOf",i.filteredSubCategories),l(23),u("disabled",i.isSaving),l(3),u("disabled",i.isSaving)}}var Qt=(()=>{let g=class g{constructor(){this.uncategorizedGoalSubCategoryId="0",this.router=E(B),this.api=E(yt),this.global=E(ct),this.goals=E(gt),this.alertCtrl=E(rt),this.loadingCtrl=E(lt),this.student=null,this.mainCategories=[],this.allSubCategories=[],this.filteredSubCategories=[],this.existingGoals=[],this.selectedMainCategoryId="",this.selectedSubCategoryId="",this.goalHtml="",this.editingSlotKey="",this.isSaving=!1,this.editorModalOpen=!1,this.goalSlotNumbers=[1,2,3,4,5,6],ut({addOutline:mt,listOutline:_t,textOutline:xt,saveOutline:St,closeOutline:pt,flagOutline:ht,createOutline:ft})}ngOnInit(){return y(this,null,function*(){yield this.loadStudentContext(),yield this.loadCategories(),this.refreshExistingGoals()})}onMainCategoryChange(){return y(this,null,function*(){this.filteredSubCategories=this.allSubCategories.filter(t=>String(t?.main??t?.cat??t?.main_category??"").trim()===this.selectedMainCategoryId),this.filteredSubCategories.some(t=>String(t.list_id)===this.selectedSubCategoryId)||(this.selectedSubCategoryId="")})}onEditorInput(){this.goalHtml=String(this.goalEditor?.nativeElement?.innerHTML||"").trim()}formatText(t){let e=this.goalEditor?.nativeElement;e&&(e.focus(),document.execCommand(t,!1),this.onEditorInput())}getSubCategoryName(t){let e=String(t??"").trim();return!e||e===this.uncategorizedGoalSubCategoryId?"General Goal":this.allSubCategories.find(d=>
1String(d.list_id)===String(t))?.name||`Subcategory #${t}`}getSubCategoryMainName(t){let e=this.allSubCategories.find(p=>String(p.list_id)===String(t));if(!e)return"";let n=String(e.main??e.cat??e.main_category??"").trim();return this.mainCategories.find(p=>String(p.cat)===n)?.name||""}startEdit(t){this.editingSlotKey=t.slotKey,this.selectedSubCategoryId=t.subCategoryId;let e=this.allSubCategories.find(n=>String(n.list_id)===t.subCategoryId);this.selectedMainCategoryId=String(e?.main??e?.cat??e?.main_category??"").trim(),this.onMainCategoryChange(),this.goalHtml=t.instructionsHtml,this.goalEditor?.nativeElement&&(this.goalEditor.nativeElement.innerHTML=this.goalHtml),this.editorModalOpen=!0}getSlotStatus(t){let e=`keyword${t}`,n=this.existingGoals.find(d=>d.slotKey===e);return n?n.tutorConfirmed?"confirmed":n.studentCompleted?"student-done":"set":"empty"}getSlotBadgeColor(t){switch(t){case"confirmed":return"success";case"student-done":return"warning";case"set":return"primary";default:return"medium"}}getSlotBadgeLabel(t){switch(t){case"confirmed":return"\u2713";case"student-done":return"Done";case"set":return"Set";default:return"\u2014"}}getGoalChipLabel(t){let e=String(t?.slotKey||"").toLowerCase().match(/(\d+)$/),n=e?Number(e[1]):0;return n>0?`Goal ${n}`:"Goal"}isStudentCompleted(t){return t.studentCompleted}isTutorConfirmed(t){return t.tutorConfirmed}toggleTutorConfirmed(t){return y(this,null,function*(){if(this.isSaving||!this.student?.user_id)return;let e=!t.tutorConfirmed,n=this.goals.buildUpdatedCompletion(t,t.studentCompleted,e),d=this.buildKeywordPayload();d[t.slotKey]=n,this.isSaving=!0;try{let p=yield M(this.api.updateUserKeywords(d));this.student[t.slotKey]=n;let S=p?.user||null;if(S)for(let m of this.goals.goalKeys)Object.prototype.hasOwnProperty.call(S,m)&&(this.student[m]=String(S[m]??""));localStorage.setItem("currentTutorItem",JSON.stringify(this.student)),this.refreshExistingGoals()}catch{}this.isSaving=!1})}clearEditor(){this.goalHtml="",this.goalEditor?.nativeElement&&(this.goalEditor.nativeElement.innerHTML="")}saveGoal(){return y(this,null,function*(){if(this.isSaving||!this.student?.user_id)return;let t=this.goals.sanitizeGoalHtml(this.goalHtml||this.goalEditor?.nativeElement?.innerHTML||"");if(!this.extractText(t)){yield this.showAlert("Goal text required","Please enter goal instructions before saving.");return}let n=this.resolveSlotForSave();if(!n){yield this.showAlert("All 6 goals are used","Edit an existing goal to replace it, or clear a slot first.");return}let d=String(this.selectedSubCategoryId||this.uncategorizedGoalSubCategoryId);if(d===this.uncategorizedGoalSubCategoryId&&!(yield this.confirmGeneralGoalSave()))return;let p={user_id:this.student.user_id,keyword1:String(this.student?.keyword1??""),keyword2:String(this.student?.keyword2??""),keyword3:String(this.student?.keyword3??""),keyword4:String(this.student?.keyword4??""),keyword5:String(this.student?.keyword5??""),keyword6:String(this.student?.keyword6??"")};p[n]=this.goals.buildGoalPayload(d,t);let S=yield this.loadingCtrl.create({message:"Saving goal...",spinner:"crescent"});this.isSaving=!0,yield S.present();try{let x=(yield M(this.api.updateUserKeywords(p)))?.user||null;for(let v of this.goals.goalKeys)this.student[v]=String(p[v]??this.student[v]??"");if(x)for(let v of this.goals.goalKeys)Object.prototype.hasOwnProperty.call(x,v)&&(this.student[v]=String(x[v]??""));localStorage.setItem("currentTutorItem",JSON.stringify(this.student)),this.refreshExistingGoals(),this.editingSlotKey="",this.editorModalOpen=!1,yield this.showAlert("Goal saved","Student goal has been saved successfully.")}catch{yield this.showAlert("Save failed","Could not save the student goal. Please try again.")}finally{this.isSaving=!1,yield S.dismiss()}})}confirmGeneralGoalSave(){return y(this,null,function*(){let t=yield this.alertCtrl.create({header:"Save as General Goal?",message:"This goal will appear on the student's Goals page only. It will not show as a reminder when making an entry.",buttons:[{text:"Cancel",role:"cancel"},{text:"Save General Goal",role:"confirm"}]});return yield t.present(),(yield t.onDidDismiss()).role==="confirm"})}openEditorModal(){this.editingSlotKey="",this.selectedMainCategoryId="",this.selectedSubCategoryId="",this.filteredSubCategories=[],this.goalHtml="",this.goalEditor?.nativeElement&&(this.goalEditor.nativeElement.innerHTML=""),this.editorModalOpen=!0}onEditorModalPresent(){this.goalEditor?.nativeElement&&(this.goalEditor.nativeElement.innerHTML=this.goalHtml)}closeEditorModal(){this.editorModalOpen=!1}onEditorModalDismiss(){this.editingSlotKey="",this.selectedMainCategoryId="",this.selectedSubCategoryId="",this.filteredSubCategories=[],this.goalHtml="",this.goalEditor?.nativeElement&&(this.goalEditor.nativeElement.innerHTML="")}cancel(){this.router.navigate(["/student-menu"])}clearGoal(t){return y(this,null,function*(){if(this.isSaving||!this.student?.user_id)return;let e=yield this.alertCtrl.create({header:"Clear goal?",message:"This will delete the selected goal from its keyword column.",buttons:[{text:"Cancel",role:"cancel"},{text:"Clear Goal",role:"confirm"}]});
1if(yield e.present(),(yield e.onDidDismiss()).role!=="confirm")return;let d=this.buildKeywordPayload();d[t.slotKey]="";let p=yield this.loadingCtrl.create({message:"Clearing goal...",spinner:"crescent"});this.isSaving=!0,yield p.present();try{let m=(yield M(this.api.updateUserKeywords(d)))?.user||null;for(let x of this.goals.goalKeys)this.student[x]=String(d[x]??this.student[x]??"");if(m)for(let x of this.goals.goalKeys)Object.prototype.hasOwnProperty.call(m,x)&&(this.student[x]=String(m[x]??""));this.editingSlotKey===t.slotKey&&(this.editorModalOpen=!1),localStorage.setItem("currentTutorItem",JSON.stringify(this.student)),this.refreshExistingGoals(),yield this.showAlert("Goal cleared","The goal was removed successfully.")}catch{yield this.showAlert("Clear failed","Could not clear the goal. Please try again.")}finally{this.isSaving=!1,yield p.dismiss()}})}clearAllGoals(){return y(this,null,function*(){if(this.isSaving||!this.student?.user_id)return;let t=yield this.alertCtrl.create({header:"Clear all goals?",message:"This will delete all six goal slots for this student.",buttons:[{text:"Cancel",role:"cancel"},{text:"Clear All Goals",role:"confirm"}]});if(yield t.present(),(yield t.onDidDismiss()).role!=="confirm")return;let n=this.buildKeywordPayload();for(let p of this.goals.goalKeys)n[p]="";let d=yield this.loadingCtrl.create({message:"Clearing all goals...",spinner:"crescent"});this.isSaving=!0,yield d.present();try{let S=(yield M(this.api.updateUserKeywords(n)))?.user||null;for(let m of this.goals.goalKeys)this.student[m]=String(n[m]??this.student[m]??"");if(S)for(let m of this.goals.goalKeys)Object.prototype.hasOwnProperty.call(S,m)&&(this.student[m]=String(S[m]??""));this.editorModalOpen=!1,localStorage.setItem("currentTutorItem",JSON.stringify(this.student)),this.refreshExistingGoals(),yield this.showAlert("Goals cleared","All goals were removed successfully.")}catch{yield this.showAlert("Clear failed","Could not clear all goals. Please try again.")}finally{this.isSaving=!1,yield d.dismiss()}})}resolveSlotForSave(){if(this.editingSlotKey)return this.editingSlotKey;let t=String(this.selectedSubCategoryId||"").trim();if(t&&t!==this.uncategorizedGoalSubCategoryId){let e=this.existingGoals.find(n=>n.subCategoryId===t);if(e)return e.slotKey}for(let e of this.goals.goalKeys)if(!String(this.student?.[e]??"").trim())return e;return""}buildKeywordPayload(){return{user_id:this.student.user_id,keyword1:String(this.student?.keyword1??""),keyword2:String(this.student?.keyword2??""),keyword3:String(this.student?.keyword3??""),keyword4:String(this.student?.keyword4??""),keyword5:String(this.student?.keyword5??""),keyword6:String(this.student?.keyword6??"")}}refreshExistingGoals(){this.existingGoals=this.goals.parseGoalSlots(this.student)}loadStudentContext(){return y(this,null,function*(){let t=localStorage.getItem("currentTutorItem");if(!t){yield this.showAlert("No student selected","Please select a student first."),this.router.navigate(["/managed-students"]);return}try{this.student=JSON.parse(t)}catch{this.student=null}this.student?.user_id||(yield this.showAlert("Student missing","Please select a valid student first."),this.router.navigate(["/managed-students"]))})}loadCategories(){return y(this,null,function*(){this.student?.user_id&&((this.global.allMaincategoryList||[]).length===0&&(yield this.global.loadMainCategories()),(this.global.allSubcategoryList||[]).length===0&&(yield this.global.loadSubCategories()),this.mainCategories=[...this.global.allMaincategoryList||[]].sort((t,e)=>String(t.name).localeCompare(String(e.name))),this.allSubCategories=[...this.global.allSubcategoryList||[]].sort((t,e)=>String(t.name).localeCompare(String(e.name))))})}extractText(t){let e=document.createElement("div");return e.innerHTML=t,String(e.textContent||e.innerText||"").trim()}showAlert(t,e){return y(this,null,function*(){yield(yield this.alertCtrl.create({header:t,message:e,buttons:["OK"]})).present()})}};g.\u0275fac=function(e){return new(e||g)},g.\u0275cmp=V({type:g,selectors:[["app-set-student-goals"]],viewQuery:function(e,n){if(e&1&&K(bt,5),e&2){let d;L(d=H())&&(n.goalEditor=d.first)}},decls:39,vars:7,consts:[["goalEditor",""],["slot","start"],["defaultHref","/student-menu"],[1,"goals-content"],["expand","block","fill","outline",3,"click","disabled"],["name","add-outline","slot","start"],[1,"section-title"],[1,"goal-badge-progress"],["class","goal-badge-slot",4,"ngFor","ngForOf"],[1,"goal-badge-legend"],["color","medium"],["color","primary"],["color","warning"],["color","success"],["class","empty-hint",4,"ngIf"],["class","goal-list",4,"ngIf"],[3,"didPresent","didDismiss","isOpen"],[1,"goal-badge-slot"],[3,"color"],[1,"goal-badge-num"],[1,"empty-hint"],[1,"goal-list"],["class","goal-item",4,"ngFor","ngForOf"],[1,"goal-item"],[1,"goal-item-header"],[1,"slot-chip"],["class","goal-main-name",4,"ngIf"],[1,"goal-preview",3,"innerHTML"],[1,"goal-completion-info"],["class","student-completed-badge",4,"ngIf"],["class","student-incomplete-hint",4,"ngIf"],[1,"goal-actions"],["size","small","fill","clear",3,"click"],["size","small","fill","clear","color","danger",3,"click"],["type","button",1,"tutor-confirm-btn",3,"click","disabled"],[1,"goal-main-name"],[1,"student-completed-badge"],[1,"student-incomplete-hint"],["slot","end"],[3,"click"],["name","close-outline","slot","icon-only"],[1,"ion-padding"],[1,"student-name"],["position","stacked"],["name","list-outline"],["placeholder","Select main category",3,"ngModelChange","ionChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["name","flag-outline"],["placeholder","Select subcategory",3,"ngModelChange","ngModel","disabled"],[1,"editor-wrap"],[1,"editor-header"],["name","create-outline"],[1,"toolbar"],["type","button",3,"click"],["contenteditable","true","data-placeholder","Enter goal instructions...",1,"goal-editor",3,"input"],[1,"action-row"],["color","primary",3,"click","disabled"],["name","save-outline","slot","start"],["fill","outline","color","medium",3,"click","disabled"],["name","close-outline","slot","start"],[3,"value"]],template:function(e,n){e&1&&(a(0,"ion-header")(1,"ion-toolbar")(2,"ion-buttons",1),b(3,"ion-back-button",2),o(),a(4,"ion-title"),r(5,"Set Student Goals"),o()()(),a(6,"ion-content",3)(7,"ion-card")(8,"ion-card-content")(9,"ion-button",4),_("click",function(){return n.openEditorModal()}),b(10,"ion-icon",5),r(11),o()()(),a(12,"ion-card")(13,"ion-card-content")(14,"h2",6),r(15),o(),a(16,"div",7),C(17,Ct,5,3,"div",8),o(),a(18,"div",9)(19,"span")(20,"ion-badge",10),r(21,"\u2014"),o(),r(22," Empty"),o(),a(23,"span")(24,"ion-badge",11),r(25,"Set"),o(),r(26," Goal set"),o(),a(27,"span")(28,"ion-badge",12),r(29,"Done"),o(),r(30," Student done"),o(),a(31,"span")(32,"ion-badge",13),r(33,"\u2713"),o(),r(34," Confirmed"),o()(),C(35,wt,2,0,"div",14)(36,It,2,1,"div",15),o()()(),a(37,"ion-modal",16),_("didPresent",function(){return n.onEditorModalPresent()})("didDismiss",function(){return n.onEditorModalDismiss()}),C(38,Ot,50,10,"ng-template"),o()),e&2&&(l(9),u("disabled",n.existingGoals.length>=6),l(2),w(" ",n.existingGoals.length>=6?"All 6 goals filled":"Add Goal"," "),l(4),w("Existing Goals (",n.existingGoals.length,"/6)"),l(2),u("ngForOf",n.goalSlotNumbers),l(18),u("ngIf",n.existingGoals.length===0),l(),u("ngIf",n.existingGoals.length>0),l(),u("isOpen",n.editorModalOpen))},dependencies:[D,N,F,j,U,$,tt,at,q,W,ot,Z,X,Y,et,it,J,dt,nt,Q,R,st],styles:[".goals-content[_ngcontent-%COMP%]{--background: var(--ion-background-color, #f4f6f8);background:var(--ion-background-color, #f4f6f8);--padding-start: 12px;--padding-end: 12px;--padding-top: 12px;--padding-bottom: 20px}ion-card[_ngcontent-%COMP%]{--background: var(--ion-card-background, var(--ion-item-background, #fff));background:var(--ion-card-background, var(--ion-item-background, #fff))}.section-title[_ngcontent-%COMP%]{margin:0 0 8px;font-size:1rem;font-weight:700}
1.student-name[_ngcontent-%COMP%]{margin:0 0 12px;color:var(--ion-text-color-step-600, #334155)}.editor-wrap[_ngcontent-%COMP%]{margin-top:14px}.editor-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.editor-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:6px}.toolbar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.toolbar[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{border:1px solid var(--ion-color-step-200, #cbd5e1);background:var(--ion-color-step-50, #f8fafc);color:var(--ion-text-color, #1f2937);padding:6px 10px;border-radius:8px;font-size:.82rem;cursor:pointer}.goal-editor[_ngcontent-%COMP%]{min-height:170px;border:1px solid var(--ion-color-step-200, #cbd5e1);border-radius:10px;margin-top:10px;padding:10px;background:var(--ion-item-background, #ffffff);color:var(--ion-text-color, #1f2937);caret-color:var(--ion-text-color, #1f2937);line-height:1.5;overflow-y:auto}.goal-editor[_ngcontent-%COMP%]:empty:before{content:attr(data-placeholder);color:#94a3b8}.action-row[_ngcontent-%COMP%]{margin-top:14px;display:flex;gap:10px}.empty-hint[_ngcontent-%COMP%]{color:var(--ion-color-medium, #64748b);font-size:.9rem}.goal-badge-progress[_ngcontent-%COMP%]{display:flex;gap:8px;margin:10px 0 6px}.goal-badge-slot[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1}.goal-badge-slot[_ngcontent-%COMP%]   ion-badge[_ngcontent-%COMP%]{width:100%;text-align:center;font-size:.75rem;padding:4px 2px;border-radius:6px}.goal-badge-num[_ngcontent-%COMP%]{font-size:.65rem;color:var(--ion-color-medium, #94a3b8)}.goal-badge-legend[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:.75rem;color:var(--ion-color-medium, #64748b)}.goal-badge-legend[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.goal-badge-legend[_ngcontent-%COMP%]   ion-badge[_ngcontent-%COMP%]{font-size:.65rem;padding:2px 5px}.goal-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.goal-item[_ngcontent-%COMP%]{border:1px solid var(--ion-color-step-150, #e2e8f0);border-radius:10px;padding:10px;background:var(--ion-card-background, var(--ion-item-background, #f8fafc))}.goal-item-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px}.slot-chip[_ngcontent-%COMP%]{border:1px solid var(--ion-color-step-400, #94a3b8);color:var(--ion-text-color-step-600, #334155);border-radius:999px;padding:2px 8px;font-size:.75rem;text-transform:uppercase}.goal-main-name[_ngcontent-%COMP%]{margin-top:4px;color:var(--ion-color-medium, #64748b);font-size:.82rem}.goal-preview[_ngcontent-%COMP%]{margin-top:8px;color:var(--ion-text-color, #1f2937);font-size:.9rem}.goal-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;gap:4px;flex-wrap:wrap}.goal-completion-info[_ngcontent-%COMP%]{margin:6px 0 4px}.student-completed-badge[_ngcontent-%COMP%]{font-size:.78rem;font-weight:600;color:#15803d;background:#dcfce7;border-radius:12px;padding:3px 10px}.student-incomplete-hint[_ngcontent-%COMP%]{font-size:.75rem;color:var(--ion-color-medium, #94a3b8)}.tutor-confirm-btn[_ngcontent-%COMP%]{padding:5px 12px;border-radius:20px;border:2px solid #0369a1;background:transparent;color:#0369a1;font-size:.8rem;font-weight:600;cursor:pointer}.tutor-confirm-btn.confirmed[_ngcontent-%COMP%]{background:#0369a1;color:#fff}.tutor-confirm-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}"]});let s=g;return s})();export{Qt as SetStudentGoalsPage};

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.