1import{am as be,an as Je,b$ as P,ct as Ce,cu as U,a as oe,cv as Ie,p as M,c as g,I as ie,o,f as $,w,aa as Te,a9 as T,M as k,g as s,k as f,R as Ae,a8 as h,K as C,j as u,cs as De,bb as re,l as Me,Z as V,B as Y,ce as X,bh as ke,au as Se,h as ae,ca as Ne,cb as Ue,cc as ze,b3 as je,U as I,ai as W,A as Re,X as ge,Y as he,cw as Z,H as te,a1 as O,b1 as de,b4 as K,a0 as Le,ac as z,aB as Pe,cx as We,i as Be,bQ as xe,cy as le,at as Ge,cj as qe,as as me,bx as Oe,cz as He,az as Ve,cA as Ke,aE as Fe,by as N,bS as F,O as Ye,n as $e,c5 as Xe,cB as Qe,L as ce,cC as Ze,cD as et,cE as tt,cf as nt}from"./application-DqOcU3py.js";import{J as st}from"./JudgingSettingTabLayout-CEMCGna1.js";import{J as ve,_ as at,a as ot,C as it}from"./JudgingRoundState-CkKMv0t8.js";import{j as B,u as rt,a as ne}from"./use_collapsable-DXDggVxu.js";import{N as dt}from"./404-CzrVIhvG.js";import"./quill-DOA7X4PN.js";import"./CheckboxMultiSelect-CmJ4HzEB.js";import"./use_judge_table_helpers-B-BlOSMM.js";import"./UserMultiSelectRow-Bge5RA9a.js";const fe=2,ye=10,ut=be("judgingRoundSettingsStore",{state:()=>({maxRank:null,maxRankInEdit:null,scoreSheetType:null,scoreSheetTypeInEdit:null,saveRequestStatus:new Je,errors:{max_rank:[],score_sheet_type:[]}}),getters:{hasUnsavedMaxRankChanges(t){return t.maxRank!==t.maxRankInEdit},hasUnsavedScoreSheetTypeChanges(t){return t.scoreSheetType!==t.scoreSheetTypeInEdit},hasUnsavedChanges(){return this.hasUnsavedMaxRankChanges||this.hasUnsavedScoreSheetTypeChanges},hasErrors(t){return t.errors.max_rank.length>0||t.errors.score_sheet_type.length>0},rankedScoreSheetType(t){return t.scoreSheetTypeInEdit===U.RANKED}},actions:{initializeFromRound(t){t&&(this.maxRank=t.max_rank,this.maxRankInEdit=t.max_rank,this.scoreSheetType=t.score_sheet_type,this.scoreSheetTypeInEdit=t.score_sheet_type,this.errors.max_rank=[],this.errors.score_sheet_type=[])},async save(t,a){if(this.saveRequestStatus.isPending())return{success:!1};this.saveRequestStatus.setPending();const n={max_rank:this.maxRankInEdit,score_sheet_type:this.scoreSheetTypeInEdit};try{const e=await Ce.update(t,a,n);if(e.error)throw e;return this.applyResponse(e),this.errors.max_rank.length>0||this.errors.score_sheet_type.length>0?(this.saveRequestStatus.setFailure(),{success:!1,response:e}):(this.saveRequestStatus.setSuccess(),{success:!0,response:e})}catch(e){throw this.saveRequestStatus.setFailure(),e}},applyResponse(t){var l,_,r,p;const a=((l=t==null?void 0:t.judging_round)==null?void 0:l.errors)||{};if(this.errors.max_rank=a.max_rank||[],this.errors.score_sheet_type=a.score_sheet_type||[],this.hasErrors)return;const n=((_=t==null?void 0:t.judging_round)==null?void 0:_.max_rank)??null,e=((r=t==null?void 0:t.judging_round)==null?void 0:r.score_sheet_type)??null;this.maxRank=n,this.maxRankInEdit=n,this.scoreSheetType=e,this.scoreSheetTypeInEdit=e;const m=P().currentJudgingRound;m&&m.id===((p=t==null?void 0:t.judging_round)==null?void 0:p.id)&&(m.max_rank=n,m.score_sheet_type=e)},setMaxRankInEdit(t){this.maxRankInEdit=t},setScoreSheetTypeInEdit(t){this.scoreSheetTypeInEdit=t},reset(){this.maxRankInEdit=this.maxRank,this.scoreSheetTypeInEdit=this.scoreSheetType,this.errors.max_rank=[],this.errors.score_sheet_type=[]}}}),ct=s("h2",{class:"title is-2 mb-9"},"Judging round settings",-1),lt=s("p",{class:"content"},"These settings apply to all judging groups within this round.",-1),gt={class:"mb-7"},ht=s("label",{class:"label"},"Judging method*",-1),pt={key:0,class:"help is-danger mt-2"},_t={key:1,class:"mb-7"},mt=s("label",{class:"label"},"Number of rankings*",-1),vt={key:0,class:"help is-danger mt-2"},ft=s("p",{class:"is-size-4"},"You have unsaved changes that will be lost if you continue.",-1),yt={__name:"JudgingRoundSettingsSidePanel",setup(t){const{closeSidePanel:a}=oe(),n=P(),e=ut(),c=Ie(),m=M(!1),l=g(()=>e.hasUnsavedChanges),_=g(()=>n.currentJudgingRound),r=g(()=>{const d=_.value;return d&&!d.is_draft}),p=[];for(let d=fe;d<=ye;d+=1)p.push({name:`${d}`,value:d});const v=g(()=>[{label:"Scored judging",description:"judges score projects by criteria and scores are aggregated",value:U.UNRANKED,checked:e.scoreSheetTypeInEdit===U.UNRANKED,disabled:q.value},{label:"Ranked judging",description:"judges rank projects by preference and higher ranks count more",value:U.RANKED,checked:e.scoreSheetTypeInEdit===U.RANKED,disabled:q.value}]),j=g(()=>{const d=e.maxRankInEdit,i=e.rankedScoreSheetType;return d===null?i?"Select max rank":"Unlimited":`${d}`}),b=d=>{const i=e.scoreSheetTypeInEdit;if(e.setScoreSheetTypeInEdit(d.value),!(d.value===U.RANKED&&i!==U.RANKED))return;const x=e.maxRankInEdit;if(x===1){e.setMaxRankInEdit(fe);return}x===null&&e.setMaxRankInEdit(ye)},E=d=>{e.setMaxRankInEdit(d.value)},R=d=>e.maxRankInEdit===d.value,y=g(()=>e.errors.score_sheet_type),S=g(()=>e.errors.max_rank);ie(()=>{e.initializeFromRound(_.value)});const L=async()=>{const d=V(),i=_.value;if(!i){d.setAlert("No judging round found.");return}try{if(!(await e.save(n.hackathonId,i.id)).success)return}catch{d.setAlert("We couldn't save your judging settings. Please try again.");return}d.setNotice("Judging settings saved successfully."),c.unregisterCloseCallback(B),a(B)};c.registerCloseCallback(B,()=>l.value?(m.value=!0,!1):(J(),!0));const H=()=>{l.value?m.value=!0:G()},G=()=>{J(),a(B)},J=()=>{m.value=!1,e.reset()},D=()=>{m.value=!1},q=g(()=>e.saveRequestStatus.isPending()||r.value);return(d,i)=>(o(),$(Me,{"on-save":L,"on-cancel":H,"is-enter-action-disabled":!0},{default:w(()=>[ct,r.value?(o(),$(Te,{key:0,class:"mb-6","data-testid":"judging-settings-locked-message"},{default:w(()=>[T(" Scoresheet settings can't be changed once judging has started. ")]),_:1})):k("",!0),lt,s("div",gt,[ht,f(Ae,{name:"score-sheet-type",class:"mt-2",options:v.value,"option-wrapper-class":"mb-2",onChange:b},null,8,["options"]),y.value.length?(o(),h("p",pt,C(y.value[0]),1)):k("",!0)]),u(e).rankedScoreSheetType?(o(),h("div",_t,[mt,f(De,{"data-testid":"max-rank-dropdown",class:"mt-2",label:j.value,entries:p,"on-entry-selection":E,"is-entry-selected":R,"close-on-click":"",disabled:q.value,"main-button":{cssClasse
1s:"has-text-weight-normal"}},null,8,["label","disabled"]),S.value.length?(o(),h("p",vt,C(S.value[0]),1)):k("",!0)])):k("",!0),f(re,{"is-active":m.value,"onUpdate:isActive":i[0]||(i[0]=A=>m.value=A),"on-confirm-handler":G,"on-secondary-confirm-handler":D,"confirm-button-text":"Discard changes","cancel-button-text":"Continue customizing"},{title:w(()=>[T("Unsaved changes")]),default:w(()=>[ft]),_:1},8,["is-active"])]),_:1}))}},bt=t=>(ge("data-v-bedbf16f"),t=t(),he(),t),kt=["data-testid"],St=["src"],jt=["src"],Rt={class:"negative-margin-left is-hidden-mobile"},xt=bt(()=>s("div",{class:"is-hidden-mobile"},null,-1)),$t={key:2,class:"has-text-right"},wt=["value","name","disabled"],Et={key:3,class:"is-flex is-justify-content-right"},Jt=["href"],Ct={__name:"JudgingGroupsJudgesList",props:{judges:{type:Array,required:!0,default:()=>[]},hackathonId:{type:Number,required:!0},isUngrouped:{type:Boolean,default:!1},isJudgingLocked:{type:Boolean,default:!1}},setup(t){const a=t,n=Ne,e=X(),c=m=>Routes.organization_hackathon_hackathon_judge_judging_sheet_path({organization_slug:Re(),hackathon_judge_id:m.id,hackathon_id:a.hackathonId});return(m,l)=>{const _=ke("tippy");return o(!0),h(W,null,Se(t.judges,r=>(o(),h("div",{key:r.id,class:"is-grid table-row compact is-align-items-center","data-testid":`judge-${r.id}`},[r.user_is_judge_only?ae((o(),h("img",{key:0,src:u(Ue),alt:"Judge-only avatar","data-testid":"judge-only-avatar"},null,8,St)),[[_,u(n)]]):(o(),h("img",{key:1,src:r.user_avatar_url,alt:"Judge Avatar"},null,8,jt)),f(ze,{name:r.user_full_name||r.user_email,"is-deleted":r.user_is_deleted,"is-guest":r.user_is_guest&&!r.user_is_judge_only},null,8,["name","is-deleted","is-guest"]),s("span",Rt,C(t.isUngrouped?"0":""),1),xt,t.isUngrouped?(o(),h("span",$t,[ae(s("input",{"onUpdate:modelValue":l[0]||(l[0]=p=>u(e).selectedUngroupedJudgeIds=p),value:r.id,type:"checkbox",name:`judge-${r.id}-checkbox`,disabled:t.isJudgingLocked,class:"is-clickable"},null,8,wt),[[je,u(e).selectedUngroupedJudgeIds]])])):(o(),h("span",Et,[s("a",{target:"_blank",class:"has-text-weight-bold has-text-primary is-flex is-align-items-center",href:c(r)},[T(" View scoresheet "),f(I,{icon:"shareExternal",class:"ml-1 mr-0 is-weight-2"})],8,Jt)]))],8,kt))),128)}}},It=Y(Ct,[["__scopeId","data-v-bedbf16f"]]),ee="judging_group",Tt="judging_group_delete_initiated",At="judging_group_delete_modal_viewed",Dt="judging_group_delete_confirmed",Mt="judging_group_delete_cancelled",se={trackDeleteInitiated(t){return Z.track(ee,Tt,t)},trackDeleteModalViewed(t){return Z.track(ee,At,t)},trackDeleteConfirmed(t){return Z.track(ee,Dt,t)},trackDeleteCancelled(t){return Z.track(ee,Mt,t)}};function we({getTrackingProps:t,isActive:a}){const n=M(null),e=M(null),c=()=>n.value?Date.now()-n.value:null;ie(()=>{n.value=Date.now(),se.trackDeleteModalViewed(t())});const m=()=>{e.value="confirmed",se.trackDeleteConfirmed({...t(),time_on_modal_ms:c()})},l=r=>{se.trackDeleteCancelled({...t(),cancel_method:r,time_on_modal_ms:c()})},_=r=>{e.value||(e.value="cancelled",l(r))};return te(a,r=>{r||e.value||(e.value="dismissed",l("dismissed"))}),{trackConfirmed:m,cancel:_}}function pe(t,{hackathonId:a,organizationId:n}){const e=!!t.has_judge_activity;return{organization_id:n,hackathon_id:a,judging_group_id:t.id,has_scoring_data:e,judges_total:t.judges_total,judges_with_activity:e?t.judges_with_activity_count:0,judges_completed:e?t.judges_completed_count:0,projects_in_group:t.projects_count,scores_submitted_count:e?t.scores_submitted_count:0,modal_variant:e?"high_friction":"standard"}}const Nt=s("p",null,[T(" Are you sure you'd like to delete this judging group? "),s("br"),s("br"),T(" After deleting, please ensure the judges and projects from this group get reassigned, if necessary. ")],-1),Ut={__name:"DeleteJudgingGroupModal",props:{isActive:{type:Boolean,required:!0},hackathonId:{type:Number,required:!0},group:{type:Object,required:!0}},emits:["update:isActive","delete"],setup(t,{emit:a}){const n=t,e=X(),c=O(),m=g(()=>P().currentJudgingRound.round),l=de(n,a,"isActive"),_=()=>pe(n.group,{hackathonId:n.hackathonId,organizationId:c.hackathon.organization_id}),{trackConfirmed:r,cancel:p}=we({getTrackingProps:_,isActive:l}),v=async()=>{await e.delete(n.hackathonId,n.group.id,"judges",{round:m.value}),await e.fetchJudgingGroups(n.hackathonId),r(),l.value=!1};return(j,b)=>(o(),$(Le,{"is-active":u(l),"onUpdate:isActive":b[0]||(b[0]=E=>K(l)?l.value=E:null),"delete-button-text":"Yes, delete group",title:"Delete judging group?","can-delete":"","accept-button-handler":v,onCancel:b[1]||(b[1]=E=>u(p)("cancel_button")),onOverlayClick:b[2]||(b[2]=E=>u(p)("overlay_click")),onCloseIconClick:b[3]||(b[3]=E=>u(p)("close_icon"))},{message:w(()=>[Nt]),_:1},8,["is-active"]))}},ue=t=>(ge("data-v-097a75e0"),t=t(),he(),t),zt=ue(()=>s("p",{class:"mb-4"}
1," This group contains judging data. Deleting it will permanently remove all scores, comments, and judge assignments for this group. Projects will remain, but their judging results from this group cannot be recovered. ",-1)),Lt={class:"mb-4 is-flex is-align-items-flex-start"},Pt={"data-testid":"judges-with-activity-count"},Wt=ue(()=>s("p",{class:"mb-4"},[s("em",null," We recommend downloading the group data before deleting so you have a record of the scores and feedback. ")],-1)),Bt={class:"action mt-4 is-flex is-flex-wrap-wrap"},Gt=["onClick"],qt=ue(()=>s("span",null,"Yes, delete group",-1)),Ot=[qt],Ht=["onClick"],Vt=ue(()=>s("span",null,"No, cancel",-1)),Kt=[Vt],Ft={__name:"DeleteJudgingGroupWithActivityModal",props:{isActive:{type:Boolean,required:!0},hackathonId:{type:Number,required:!0},group:{type:Object,required:!0}},emits:["update:isActive"],setup(t,{emit:a}){const n=t,e=de(n,a,"isActive"),c=X(),m=O(),l=g(()=>P().currentJudgingRound.round),_=M(null),r=()=>pe(n.group,{hackathonId:n.hackathonId,organizationId:m.hackathon.organization_id}),{trackConfirmed:p,cancel:v}=we({getTrackingProps:r,isActive:e}),j=async()=>{await c.delete(n.hackathonId,n.group.id,"judges",{round:l.value}),await c.fetchJudgingGroups(n.hackathonId),p(),V().setNotice(`"${n.group.name}" has been deleted.`),e.value=!1},b=()=>{v("cancel_button"),e.value=!1},E=()=>{v("esc_key"),e.value=!1};return ie(()=>{var R;(R=_.value)==null||R.focus()}),(R,y)=>(o(),$(We,{"is-active":u(e),"onUpdate:isActive":y[0]||(y[0]=S=>K(e)?e.value=S:null),"data-testid":"delete-judging-group-with-activity-modal",class:"content",onKeydown:Pe(E,["esc"]),onOverlayClick:y[1]||(y[1]=S=>u(v)("overlay_click")),onCloseIconClick:y[2]||(y[2]=S=>u(v)("close_icon"))},{default:w(()=>[s("h2",null,"Delete â"+C(t.group.name)+"â?",1),s("div",null,[zt,s("p",Lt,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger","data-testid":"activity-warning-icon"}),s("strong",Pt,C(t.group.judges_with_activity_count)+"/"+C(t.group.judges_total)+" judges ",1),T(" Â have started or completed judging in this group ")]),Wt,s("div",Bt,[s("button",{class:"button is-large has-background-primary has-text-white delete-button mt-2 mr-4","data-testid":"confirm-delete-group-button",onClick:z(j,["prevent"])},Ot,8,Gt),s("button",{ref_key:"cancelButtonRef",ref:_,class:"button is-large is-primary is-outlined mt-2","data-testid":"cancel-delete-group-button",onClick:z(b,["prevent"])},Kt,8,Ht)])])]),_:1},8,["is-active","onKeydown"]))}},Yt=Y(Ft,[["__scopeId","data-v-097a75e0"]]),_e=t=>(ge("data-v-0eea4c66"),t=t(),he(),t),Xt={key:0,class:"has-text-centered my-6"},Qt={key:1},Zt=Oe('<div class="table mt-4 mb-0" data-testid="judging-groups-table-header" data-v-0eea4c66><div class="table-row is-grid heading is-size-8 pb-1 mb-5 pl-4" data-v-0eea4c66><div data-v-0eea4c66></div><div class="has-text-weight-medium" data-v-0eea4c66>Groups</div><div class="has-text-weight-medium ml-3 is-hidden-mobile" data-v-0eea4c66>Projects</div><div class="has-text-weight-medium ml-3" data-v-0eea4c66></div></div></div>',1),en={key:0,"data-testid":"judging-groups-list"},tn=["data-testid"],nn=["data-collapsable-trigger-id","onClick"],sn={class:"collapsable-arrow has-text-centered"},an={class:"is-flex is-flex-direction-column"},on={class:"is-flex is-align-items-center"},rn={class:"is-flex has-text-weight-bold"},dn={class:"is-flex ml-3 is-hidden-mobile"},un=_e(()=>s("div",{class:"is-hidden-mobile"},null,-1)),cn={class:"is-flex is-justify-content-flex-end"},ln={key:0},gn={key:1},hn={key:1},pn=["disabled","onClick"],_n=["data-collapsable-id"],mn={key:1,"data-testid":"judging-groups-empty-container"},vn={key:0,class:"is-flex is-justify-content-center"},fn={key:1,class:"has-text-centered mt-6"},yn=["src"],bn={class:"title is-4 mt-4","data-testid":"blank-state-message"},kn=_e(()=>s("p",{class:"has-text-weight-bold"},[T(" Judges will appear here,"),s("br"),T(" and you can create groups to assign projects. ")],-1)),Sn=["onClick"],jn=_e(()=>s("span",null,"Add judges",-1)),Rn={__name:"JudgingGroupsList",setup(t){const a=Be("hackathonId",null),n=P(),e=X(),c=O(),m=xe(),{toggleCollapsableState:l,initializeCollapsableStates:_}=rt();ie(()=>{te(()=>e.judgingGroups,async()=>{_()}),te(()=>n.currentJudgingRound,async(J,D)=>{D&&e.fetchJudgingGroups(a)}),te(()=>m.judges.map(J=>J.id),async()=>{e.fetchJudgingGroups(a)}),e.fetchJudgingGroups(a)});const{selectTabById:r}=le({}),p=()=>
1r(He),v=M(null),j=J=>{v.value=J,se.trackDeleteInitiated(pe(J,{hackathonId:a,organizationId:c.hackathon.organization_id})),b.value=!0},b=M(!1),E=J=>J.id===0,{openSidePanel:R}=oe(),y=g({get:()=>e.allUngroupedJudgesSelected,set:J=>e.toggleAllUngroupedJudges(J)}),S=J=>{e.setJudgingGroupInEdit(J),R(ne)},L=g(()=>!n.isJudgingGroupEditable),H=g(()=>c.isStateAfterJudging),G=g(()=>e.sortedJudgingGroups.length>0);return(J,D)=>{var d;const q=ke("tippy");return o(),h(W,null,[u(e).judgingGroupsFetched?(o(),h("div",Qt,[Zt,G.value?(o(),h("div",en,[(o(!0),h(W,null,Se(u(e).sortedJudgingGroups,i=>{var A;return o(),h("div",{key:i.id,class:"table collapsable","data-testid":`judging-group-${i.id}`},[s("div",{class:"table-row collapsable-heading is-grid is-size-6 pb-1 is-clickable","data-collapsable-trigger-id":i.id,onClick:z(x=>u(l)(i.id),["prevent"])},[s("div",sn,[f(I,{icon:"arrowDown","is-tiny":"",class:"scale-M","data-testid":"caret-group-icon"})]),s("div",an,[s("div",on,[f(I,{icon:"legalHammer",class:"mr-2","data-testid":"judges-group-icon"}),s("span",rn,C(i.name),1)])]),s("div",dn,C((i==null?void 0:i.projects_count)??"â"),1),un,s("div",cn,[E(i)?(o(),h("div",hn,[ae(s("input",{"onUpdate:modelValue":D[0]||(D[0]=x=>y.value=x),type:"checkbox",disabled:L.value,"data-testid":"ungrouped-judges",class:"is-clickable",onClick:z(x=>u(l)(i.id,!0),["stop"])},null,8,pn),[[je,y.value]])])):(o(),h(W,{key:0},[f(qe,{class:"mr-4","data-testid":`edit-judging-group-button-${i.id}`,onClick:z(x=>S(i),["prevent","stop"])},null,8,["data-testid","onClick"]),u(n).isJudgingGroupEditable?(o(),h("div",gn,[f(me,{"data-testid":`delete-judging-group-button-${i.id}`,onClick:z(x=>j(i),["prevent","stop"])},null,8,["data-testid","onClick"])])):ae((o(),h("div",ln,[f(me,{class:"disabled","data-testid":`delete-judging-group-button-${i.id}`},null,8,["data-testid"])])),[[q,{theme:"info",content:"Judging groups cannot be deleted once evaluation period has started.",placement:"bottom"}]])],64))])],8,nn),((A=i.judges)==null?void 0:A.length)>0?(o(),h("div",{key:0,class:"collapsable-content","data-collapsable-id":i.id},[f(It,{judges:i.judges,"is-ungrouped":E(i),"is-judging-locked":L.value,"hackathon-id":u(a)},null,8,["judges","is-ungrouped","is-judging-locked","hackathon-id"])],8,_n)):k("",!0)],8,tn)}),128))])):(o(),h("div",mn,[H.value?(o(),h("div",vn," You have ended evaluation for this hackathon without creating any judging groups. ")):(o(),h("div",fn,[s("img",{id:"not-found-image",src:u(dt),alt:""},null,8,yn),s("h4",bn,[kn,s("a",{href:"#tab=Judges",class:"button is-primary is-medium is-outlined is-slim mt-4",onClick:z(p,["prevent"])},[f(I,{icon:"add"}),jn],8,Sn)])]))]))])):(o(),h("div",Xt,[f(Ge)])),b.value?(o(),h(W,{key:2},[(d=v.value)!=null&&d.has_judge_activity?(o(),$(Yt,{key:0,"is-active":b.value,"onUpdate:isActive":D[1]||(D[1]=i=>b.value=i),group:v.value,"hackathon-id":u(a)},null,8,["is-active","group","hackathon-id"])):(o(),$(Ut,{key:1,"is-active":b.value,"onUpdate:isActive":D[2]||(D[2]=i=>b.value=i),group:v.value,"hackathon-id":u(a),"data-testid":"delete-judging-group-modal"},null,8,["is-active","group","hackathon-id"]))],64)):k("",!0)],64)}}},xn=Y(Rn,[["__scopeId","data-v-0eea4c66"]]),$n={fetch(t,a=1,n={}){return Ve(Routes.api_organization_hackathon_judging_judging_scores_summary_path({organization_slug:Re(),hackathon_id:t,round:a,format:"json",...n}))}},wn=be("judgingScoresSummaryStore",{state:()=>({summary:{nb_judge_scores_complete:null,nb_judges:null,nb_scores_complete:null,nb_scores:null},isFetched:!1}),getters:{judgesWithIncompleteScoresCount(){return this.summary.nb_judges-this.summary.nb_judge_scores_complete},unjudgedProjectsCount(){return this.summary.nb_scores-this.summary.nb_scores_complete},anyJudgeWithIncompleteScores(){return this.judgesWithIncompleteScoresCount>0},anyUnjudgedProject(){return this.unjudgedProjectsCount>0},isJudgingComplete(){return this.isFetched===!1?!0:!(this.anyJudgeWithIncompleteScores||this.anyUnjudgedProject)}},actions:{async fetch(t,a=1,n={}){const e=await $n.fetch(t,a,n);Ke(e.errors||e.error),this.summary=e,this.isFetched=!0}}}),En={key:0,class:"content"},Jn=s("p",null,"Ensure you're OK with these issues before ending judging:",-1),Cn={key:0,class:"is-flex is-align-items-center mb-1"},In=["innerHTML"],Tn={key:1,class:"is-flex is-align-items-center"},An=["innerHTML"],Dn={__name:"JudgingSettingsEndOfJudgingIssues",props:{hackathonId:{type:Number,required:!0}},setup(t){const a=t,n=P(),e=wn();Fe(()=>{e.fetch(a.hackathonId,n.currentJudgingRound.round)}),e.fetch(a.hackathonId,n.currentJudgingRound.round);const c=g(()=>e.summary),m=g(()=>{const _=`${e.judgesWithIncompleteScoresCount}/${c.value.nb_judges}`,r=N("judge",{count:c.value.nb_judges}),p=N("has",{count:c.value.nb_judges});return`<span class='has-text-weight-bold'>${_} ${r}</span> ${p} not completed judging`}),l=g(()=>{const _=`${e.unjudgedProjectsCount}/${c.value.nb_scores}`,r=N("project",{count:c.value.nb_scores}),p=N("has",{count:c.value.nb_scores});return`<span class='has-text-weight-bold'>${_} ${r}</span> ${p} not been judged`});return(_,r)=>u(e).isJudgingComplete?k("",!0):(o(),h("div",En,[Jn,s("p",null,[u(e).anyJudgeWithIncompleteScores?(o(),h("span",Cn,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger"}),s("span",{innerHTML:m.value},null,8,In)])):k("",!0),u(e).anyUnjudgedProject?(o(),h("span",Tn,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger"}),s("span",{innerHTML:l.value},null,8,An)])):k("",!0)])]))}},Mn=s("p",null," Ending this round will consolidate the judging results into an 'Export data' section on the Results tab. ",-1),Nn=s("p",null,null,-1),Un=s("p",null,"Would you like to end judging and select winners or start a new judging round?",-1),zn={__name:"EndJudgingRoundModal",props:{hackathonId:{type:Number,required:!0},judgingRound:{type:Object,required:!0}},emits:["end-round"],setup(t,{emit:a}){const n=t,e=M(!1),c=l=>{a("end-round",l)},m=`Create round ${n.judgingRound.round+1}`;return(l,_)=>(o(),$(re,{"is-active":e.value,"onUpdate:isActive":_[0]||(_[0]=r=>e.value=r),"confirm-button-text":"End judging & select winners","secondary-confirm-button-text":m,"on-confirm-handler":()=>c(!0),"on-secondary-confirm-handler":()=>c(!1),"custom-width":730},{title:w(()=>[T(" End judging? ")]),default:w(()=>[f(Dn,{"hackathon-id":t.hackathonId},null,8,["hackathon-id"]),Mn,Nn,Un]),_:1},8,["is-active","on-confirm-handler","on-secondary-confirm-handler"]))}},Ln={class:"b-1 b-grey-lighter p-4","data-testid":"judging-readiness"},Pn=s("h4",{class:"title is-3 is-flex is-align-items-center"},[s("span",{class:"step-number"},"1"),T(" Judging readiness ")],-1),Wn={class:"ml-6"},Bn={key:0,class:"is-flex is-align-items-center"},Gn=["innerHTML"],qn={key:1,class:"is-flex is-align-items-center mb-6"}
1,On=["innerHTML"],Hn={key:2,class:"is-flex mb-4"},Vn={__name:"JudgingRoundStartJudgingReadinessStep",props:{warningData:{type:Object,required:!1,default:()=>({})}},setup(t){const a=t,n=g(()=>a.warningData.unassigned_projects_count),e=g(()=>a.warningData.unassigned_judges_count),c=g(()=>a.warningData.judges_groups_count),m=g(()=>{const r=F("judge",e.value),p=N("it",{count:e.value}),v=N("is",{count:e.value});return` 2 <strong>${r}</strong> ${v} not added to a judging group - 3 ${p} will not judge any projects 4 `}),l=g(()=>{const r=F("project",n.value),p=N("it",{count:n.value}),v=N("is",{count:n.value});return` 5 <strong>${r}</strong> ${v} not added to a judging group - 6 ${p} will not be evaluated 7 `}),_=g(()=>c.value===0?"":"Assigned judges will be notified by email when the next round begins.");return(r,p)=>(o(),h("div",Ln,[Pn,s("div",Wn,[e.value>0?(o(),h("p",Bn,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger"}),s("span",{innerHTML:m.value},null,8,Gn)])):k("",!0),n.value>0?(o(),h("p",qn,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger"}),s("span",{innerHTML:l.value},null,8,On)])):k("",!0),_.value?(o(),h("div",Hn,[f(I,{icon:"informationCircle",class:"mr-2 mt-1 has-text-primary"}),s("p",null,C(_.value),1)])):k("",!0)])]))}},Kn={class:"b-1 b-grey-lighter p-4","data-testid":"round-settings"},Fn={class:"title is-3 is-flex is-align-items-center"},Yn=s("span",{class:"step-number"},"2",-1),Xn=s("p",null,"These settings will apply to the next round and can't be changed once it starts.",-1),Qn={class:"columns ml-6 is-multiline"},Zn={class:"column is-6-tablet pb-0-mobile"},es=s("strong",null,"Judging method:",-1),ts={key:0,class:"column is-6-tablet"},ns=s("strong",null,"Number of rankings:",-1),ss={class:"column is-12 pt-0"},as=["onClick"],os={__name:"JudgingRoundStartRoundSettingsStep",props:{roundNumber:{type:Number,required:!0}},setup(t){const{openSidePanel:a}=oe(),n=P(),e=g(()=>n.currentJudgingRound),c=g(()=>e.value.score_sheet_type===U.RANKED),m=()=>{a(B)};return(l,_)=>(o(),h("div",Kn,[s("h4",Fn,[Yn,T(" Settings for round "+C(t.roundNumber),1)]),Xn,s("div",Qn,[s("div",Zn,[es,T(" "+C(c.value?"Ranked judging":"Scored judging"),1)]),c.value?(o(),h("div",ts,[ns,T(" "+C(e.value.max_rank),1)])):k("",!0),s("div",ss,[s("a",{class:"is-flex is-flex-shrink-1 is-align-items-center",href:"#",onClick:z(m,["prevent"])},[T(" Edit judging round settings "),f(I,{icon:"shareExternal",class:"ml-2 has-text-primary"})],8,as)])])]))}},is=s("p",null," The following assignments are missing â consider assigning before you start the evaluation process: ",-1),rs={key:0,class:"is-flex is-align-items-center"},ds=["innerHTML"],us={key:1,class:"is-flex is-align-items-center mb-6"},cs=["innerHTML"],ls={key:1},gs={key:2,class:"is-flex mb-4"},hs={__name:"StartJudgingModalWithoutRankedJudging",props:{isActive:{type:Boolean,required:!0},warningData:{type:Object,required:!1,default:()=>({})}},emits:["start-evaluation","update:isActive"],setup(t,{emit:a}){const n=t,e=g(()=>n.warningData.unassigned_projects_count),c=g(()=>n.warningData.unassigned_judges_count),m=g(()=>n.warningData.judges_groups_count),l=g(()=>e.value>0||c.value>0),_=g(()=>l.value?"Start evaluation despite issues?":"Start evaluation and notify judges?"),r=g(()=>l.value?"Start evaluation anyway":"Start evaluation"),p=g(()=>{const R=F("judge",c.value),y=N("it",{count:c.value}),S=N("is",{count:c.value});return` 8 <strong>${R}</strong> ${S} not added to a judging group - 9 ${y} will not judge any projects 10 `}),v=g(()=>{const R=F("project",e.value),y=N("it",{count:e.value}),S=N("is",{count:e.value});return` 11 <strong>${R}</strong> ${S} not added to a judging group - 12 ${y} will not be evaluated 13 `}),j=g(()=>m.value===0?"":"All assigned judges will receive an email notification requesting that they score their assigned projects."),b=de(n,a,"isActive"),E=()=>{a("start-evaluation")};return(R,y)=>(o(),$(re,{"is-active":u(b),"onUpdate:isActive":y[0]||(y[0]=S=>K(b)?b.value=S:null),"confirm-button-text":r.value,"cancel-button-text":"Cancel","on-confirm-handler":E},{title:w(()=>[T(C(_.value),1)]),default:w(()=>[l.value?(o(),h(W,{key:0},[is,c.value>0?(o(),h("p",rs,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger"}),s("span",{innerHTML:p.value},null,8,ds)])):k("",!0),e.value>0?(o(),h("p",us,[f(I,{icon:"alertDiamond",class:"mr-2 has-text-danger"}),s("span",{innerHTML:v.value}
13,null,8,cs)])):k("",!0)],64)):k("",!0),l.value&&j.value?(o(),h("hr",ls)):k("",!0),j.value?(o(),h("div",gs,[f(I,{icon:"informationCircle",class:"mr-2 mt-1 has-text-primary"}),s("p",null,C(j.value),1)])):k("",!0)]),_:1},8,["is-active","confirm-button-text"]))}},ps={__name:"StartJudgingModal",props:{isActive:{type:Boolean,required:!0},warningData:{type:Object,required:!1,default:()=>({})}},emits:["start-evaluation","update:isActive"],setup(t,{emit:a}){const n=t,e=P(),c=g(()=>e.currentJudgingRound.round),m=g(()=>{const v=n.warningData.unassigned_projects_count,j=n.warningData.unassigned_judges_count;return v>0||j>0}),l=window.rankedJudgingEnabled,_=g(()=>l?`Start round ${c.value}`:m.value?"Start evaluation anyway":"Start evaluation"),r=de(n,a,"isActive"),p=()=>a("start-evaluation");return(v,j)=>u(l)?(o(),$(re,{key:1,"is-active":u(r),"onUpdate:isActive":j[1]||(j[1]=b=>K(r)?r.value=b:null),"confirm-button-text":_.value,"cancel-button-text":"Cancel","on-confirm-handler":p},{title:w(()=>[T(" Review before starting round "+C(c.value),1)]),default:w(()=>[f(Vn,{"warning-data":t.warningData,class:Ye([{"has-background-grey-lightest":!u($e)(t.warningData)},"my-6"])},null,8,["warning-data","class"]),f(os,{"round-number":c.value},null,8,["round-number"])]),_:1},8,["is-active","confirm-button-text"])):(o(),$(hs,{key:0,"is-active":u(r),"onUpdate:isActive":j[0]||(j[0]=b=>K(r)?r.value=b:null),"warning-data":t.warningData,onStartEvaluation:p},null,8,["is-active","warning-data"]))}},_s=Y(ps,[["__scopeId","data-v-c1661564"]]),ms={class:"is-flex is-align-self-center ctas-container"},vs={__name:"JudgingRoundCTAButton",setup(t){const a=O(),n=P(),e=Xe(),c=g(()=>e.value.judgingGroupsStepCompleted),m=g(()=>(a.isStateSubmissionsClosed||a.isStateJudging)&&e.value.judgingGroupsStepCompleted),l=M(!1),_=M(!1),r=M(null),p=g(()=>n.currentJudgingRound),v=g(()=>{if(!window.judgingStateRevertEnabled||a.isStateComplete)return null;const d=Qe(n.nonDraftJudgingRounds);return d!=null&&d.is_completed?d:null}),j=g(()=>{var d;return v.value&&v.value.id===((d=p.value)==null?void 0:d.id)}),b=g(()=>j.value?"Reopen judging":`Reopen round ${v.value.round}`),E=()=>{l.value=!0},R=d=>{r.value=d,_.value=!0},y=M(!1),S=M({}),L=async()=>{try{p.value.round===1?await a.validateStartEvaluation():await n.validateStartRound(a.id,p.value.id),S.value={}}catch(d){const i=G(d);if(i)S.value=i;else throw d}finally{y.value=!0}},H=async()=>{try{await n.startRound(a.id,p.value.id),y.value=!1,await ce.reload(),V().setNotice("Judging round started! Visit the results tab to track progress, or select winners.")}catch(d){const i=G(d);if(i)S.value=i,y.value=!0;else throw d}},G=d=>{const i=et(d,["unassigned_projects_count","unassigned_judges_count","participants_groups_count","judges_groups_count"]);return $e(i)?null:i},J=async d=>{if(await n.endRound(a.id,p.value.id,d),d){const{selectTabById:i}=le({hackathonId:a.id});await n.fetch(a.id,!0,{include_step_completions:!0}),await O().fetch(a.id),await ce.reload(),i(Ze)}D(d)},D=d=>{const i=v.value;if(!i)return;const A=V();if(d){const{selectTabById:Q}=le({hackathonId:a.id}),Ee=async()=>{await n.reopenRound(a.id,i.id),Q(tt)};A.setSuccess({message:"<strong>Judging is closed!</strong><br>You can reopen judging until winners are announced.<br>",isHtmlSafe:!0,actionLabel:"Undo â reopen judging",onAction:Ee,fadeAfter:6e3});return}const x=n.judgingRounds.find(Q=>Q.is_draft&&Q.round>i.round);x&&A.setSuccess({message:`<strong>Judging round ${i.round} ended!</strong><br>You can reopen round ${i.round} until round ${x.round} is started.<br>`,isHtmlSafe:!0,actionLabel:`Undo â reopen judging round ${i.round}`,onAction:()=>n.reopenRound(a.id,i.id),fadeAfter:6e3})},q=async()=>{r.value&&(await n.reopenRound(a.id,r.value.id),await ce.reload(),V().setSuccess({message:`<strong>Judging round ${r.value.round} reopened!</strong><br>Judging notification emails will <strong>not</strong> be re-sent, but scoresheets are open again.`,isHtmlSafe:!0,fadeAfter:5e3}))};return(d,i)=>{var A;return o(),h(W,null,[s("div",ms,[c.value?(o(),$(ve,{key:0,"judging-round":p.value,class:"is-flex is-align-self-center mr-4 state-left"},null,8,["judging-round"])):k("",!0),v.value?(o(),h("button",{key:1,class:"button is-secondary is-borderless mr-2","data-testid":"reopen-round-button",onClick:i[0]||(i[0]=z(x=>R(v.value),["prevent"]))},[f(I,{icon:"reload"}),s("span",null,C(b.value),1)])):k("",!0),j.value?k("",!0):(o(),$(at,{key:2,"judging-round":p.value,"can-start-round":m.value,onStartRound:L,onEndRound:E},null,8,["judging-round","can-start-round"])),c.value?(o(),$(ve,{key:3,"judging-round":p.value,class:"is-flex is-justify-content-center state-bottom"},null,8,["judging-round"])):k("",!0)]),y.value?(o(),$(_s,{key:0,"is-active":y.value,"onUpdate:isActive":i[1]||(i[1]=x=>y.value=x),"warning-data":S.value,"data-testid":"start-round-modal",onStartEvaluation:H},null,8,["is-active","warning-data"])):k("",!0),l.value?(o(),$(zn,{key:1,"is-active":l.value,"onUpdate:isActive":i[2]||(i[2]=x=>l.value=x),"hackathon-id":u(a).id,"judging-round":p.value,"data-testid":"end-round-modal",onEndRound:J},null,8,["is-active","hackathon-id","judging-round"])):k("",!0),_.value?(o(),$(ot,{key:2,"is-active":_.value,"onUpdate:isActive":i[3]||(i[3]=x=>_.value=x),"round-type":"judging","round-number":(A=r.value)==null?void 0:A.round,"data-testid":"reopen-round-modal",onReopenRound:q},null,8,["is-active","round-number"])):k("",!0)],64)}}},fs=Y(vs,[["__scopeId","data-v-48e26be3"]]),ys=s("p",null,"Create groups of projects and assign judges to score them.",-1),bs={class:"is-flex is-align-items-center is-flex-wrap-wrap"},ks={key:0,class:"mb-4 mb-6-tablet mr-4"},Ss={class:"has-text-grey-dark"},js={class:"is-flex is-align-items-center"},Rs=s("span",null,"Round settings",-1),xs=["disabled","onClick"],$s=s("span",null,"Create judging group",-1),Ns={__name:"JudgingSettingsJudgingGroupsTab",setup(t){const{isSidePanelOpen:a,openSidePanel:n,SidePanel:e,sidePanelSizeFullPage:c}
13=oe(),m=window.rankedJudgingEnabled,l=window.judgingStateRevertEnabled,_=X(),r=()=>{_.setNewJudgingGroupInEdit({type_of_evaluators:"judges"}),n(ne)},p=xe(),v=P(),j=O();p.fetchJudges(v.judging_settings.hackathon_id);const b=g(()=>j.isStateAfterJudging),E=g(()=>{const R=v.currentJudgingRound;if(!R)return"";const y=R.score_sheet_type,S=R.max_rank,L={[U.RANKED]:"Ranked judging",[U.UNRANKED]:"Scored judging"}[y];return L?y===U.RANKED&&S?`${L}, ${F("rank",S)} max`:`${L}`:""});return(R,y)=>(o(),h(W,null,[f(st,{"tab-heading":"Judging","table-row-classes":"judge-row","resources-fetched":!0,"is-blank-state":!1,"data-testid":"project-groups-container"},nt({mainContent:w(()=>[f(xn)]),_:2},[b.value?void 0:{name:"description",fn:w(()=>[ys]),key:"0"},u(v).isJudgingGroupEditable||u(l)?{name:"addResource",fn:w(()=>[f(fs)]),key:"1"}:void 0,u(v).isJudgingGroupEditable?{name:"secondaryButton",fn:w(()=>[s("div",bs,[u(m)?(o(),h("div",ks,[s("span",Ss,C(E.value),1)])):k("",!0),s("div",js,[u(m)?(o(),h("button",{key:0,class:"button is-primary is-medium is-outlined is-slim mb-6 mt-2-mobile","data-testid":"judging-settings-button",onClick:y[0]||(y[0]=z(S=>u(n)(u(B)),["prevent"]))},[f(I,{icon:"settings"}),Rs])):k("",!0),u(p).judgesFetched?(o(),h("button",{key:1,disabled:u(p).judges.length===0,class:"button is-primary is-medium is-outlined is-slim mb-6 ml-4 mt-2-mobile",onClick:z(r,["prevent"])},[f(I,{icon:"add"}),$s],8,xs)):k("",!0)])])]),key:"2"}:void 0]),1024),u(a)(u(ne))?(o(),$(u(e),{key:0,name:u(ne),size:u(c),"is-click-out-action-disabled":""},{default:w(()=>[f(it,{tab:"Judging"})]),_:1},8,["name","size"])):k("",!0),u(a)(u(B))?(o(),$(u(e),{key:1,name:u(B)},{default:w(()=>[f(yt)]),_:1},8,["name"])):k("",!0)],64))}};export{Ns as default};
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.