Files
2026-08-01 15:00:14 +00:00

2 lines
7.8 KiB
JavaScript

"use strict";(self.webpackChunkWebComponents=self.webpackChunkWebComponents||[]).push([[662],{10662:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});var n=i(98098),s=i(78673),o=i(34089);class l extends s.A{constructor(e){super(e),this.origOpts=e,this.questions=(0,o.Qt)(e.orig,"questionlist"),this.proficiency=(0,o.Qt)(e.orig,"proficiency"),this.minDifficulty=(0,o.Qt)(e.orig,"min-difficulty"),this.maxDifficulty=(0,o.Qt)(e.orig,"max-difficulty"),this.points=(0,o.Qt)(e.orig,"points"),this.autogradable=(0,o.Qt)(e.orig,"autogradable"),this.not_seen_ever=(0,o.Qt)(e.orig,"not_seen_ever"),this.selector_id=e.orig.getAttribute("id"),this.primaryOnly=(0,o.Qt)(e.orig,"primary"),this.ABExperiment=(0,o.Qt)(e.orig,"ab"),this.toggleOptions=(0,o.Qt)(e.orig,"toggleoptions"),this.toggleLabels=(0,o.Qt)(e.orig,"togglelabels"),this.limitBaseCourse=(0,o.Qt)(e.orig,"limit-basecourse"),e.orig.id=this.selector_id}async initialize(){let e=this,t={selector_id:this.selector_id};this.questions?t.questions=this.questions:this.proficiency&&(t.proficiency=this.proficiency),this.minDifficulty&&(t.minDifficulty=this.minDifficulty),this.maxDifficulty&&(t.maxDifficulty=this.maxDifficulty),this.points&&(t.points=this.points),this.autogradable&&(t.autogradable=this.autogradable),this.not_seen_ever&&(t.not_seen_ever=this.not_seen_ever),this.primaryOnly&&(t.primary=this.primaryOnly),this.ABExperiment&&(t.AB=this.ABExperiment),this.timedWrapper&&(t.timedWrapper=this.timedWrapper),this.toggleOptions&&(t.toggleOptions=this.toggleOptions),this.toggleLabels&&(t.toggleLabels=this.toggleLabels),this.limitBaseCourse&&(t.limitBaseCourse=eBookConfig.basecourse);let i=this.origOpts,s=this.selector_id;console.log("getting question source");let o,l=new Request(`${eBookConfig.new_server_prefix}/assessment/get_question_source`,{method:"POST",headers:this.jsonHeaders,body:JSON.stringify(t)}),a=await fetch(l),c=await a.json();if(c=c.detail,c.indexOf("No preview")>=0)throw alert(`Error: Not able to find a question for ${s} based on the criteria`),new Error(`Unable to find a question for ${s}`);if(i.timed){o=(0,n.$y)(c,{timed:!0,selector_id:s,assessmentTaken:i.assessmentTaken});for(let t of i.rqa)if(t.question==e){t.question=o.question;break}e.realComponent=o.question,e.containerDiv=o.question.containerDiv,e.realComponent.selectorId=s}else{if(t.toggleOptions){var g=t.toggleLabels;if(g){g=(g=g.replace("togglelabels:","").trim()).split(",");for(var d=0;d<g.length;d++)g[d]=g[d].trim()}var p,u,m,h=this.questions.split(", "),f="";document.getElementById("component-preview")||(f+='<div id="component-preview" class="col-md-6 toggle-preview" style="z-index: 999;"><div id="toggle-buttons"></div><div id="toggle-preview"></div></div>'),f+='<label for="'+s+'-toggleQuestion" style="margin-left: 10px">Toggle Question:</label><select id="'+s+'-toggleQuestion">';var v=[];for(p=0;p<h.length;p++){switch((u=(await this.getToggleSrc(h[p])).split('data-component="')[1]).slice(0,u.indexOf('"'))){case"activecode":m="Active Write Code";break;case"clickablearea":m="Clickable Area";break;case"dragndrop":m="Drag n Drop";break;case"fillintheblank":m="Fill in the Blank";break;case"multiplechoice":m="Multiple Choice";break;case"parsons":m="Parsons Mixed-Up Code";break;case"shortanswer":m="Short Answer"}v[p]=m,f+='<option value="'+h[p]+'">',g&&g[p]?f+=g[p]:f+=m+" - "+h[p],0==p&&t.toggleOptions.includes("lock")&&(f+=" (only this question will be graded)"),f+="</option>"}f+='</select><div id="'+s+'-toggleSelectedQuestion">';var y=c.split('id="')[1];y=y.split('"')[0],c=f+c+"</div>"}if(await(0,n.JK)(c,s,{selector_id:s,is_toggle:this.toggleOptions,is_select:!0,useRunestoneServices:!0}),t.toggleOptions){r(document.getElementById("component-preview"));var w=document.getElementById(s+"-toggleQuestion");for(p=0;p<w.options.length;p++)if(w.options[p].value==y){w.value=y;let e=document.getElementById(s);e.dataset.toggleCurrent=y,e.dataset.toggleCurrentType=v[0];break}w.addEventListener("change",async function(){await this.togglePreview(w.parentElement.id,t.toggleOptions,v),this.logBookEvent({event:"view_toggle",act:w.value,div_id:w.parentElement.id})}.bind(this))}}return a}async getToggleSrc(e){let t=new Request(`${eBookConfig.new_server_prefix}/assessment/htmlsrc?acid=${e}`,{method:"GET"}),i=await fetch(t);return(await i.json()).detail}async togglePreview(e,t,i){const s=document.getElementById("toggle-buttons");s.innerHTML="";var o=document.getElementById(e).getElementsByTagName("select")[0],l=o.options[o.selectedIndex].value,a=await this.getToggleSrc(l);(0,n.JK)(a,"toggle-preview",{selector_id:"toggle-preview",is_toggle:this.toggleOptions,is_select:!0,useRunestoneServices:!0});let c=document.createElement("button");if(c.textContent="Close Preview",c.classList.add("btn","btn-default"),c.addEventListener("click",function(){document.getElementById("toggle-preview").innerHTML="",o.value=document.getElementById(e).dataset.toggleCurrent,r(document.getElementById("component-preview")),this.logBookEvent({event:"close_toggle",act:o.value,div_id:o.parentElement.id})}.bind(this)),s.appendChild(c),!t.includes("lock")){let n=document.createElement("button");if(n.textContent="Select this Problem",n.classList.add("btn","btn-primary"),n.addEventListener("click",async function(){await this.toggleSet(e,l,a,i),r(document.getElementById("component-preview")),this.logBookEvent({event:"select_toggle",act:l,div_id:e})}.bind(this)),s.appendChild(n),t.includes("transfer")){var g=document.getElementById(e).dataset.toggleCurrentType,d=i[o.selectedIndex];if("Parsons Mixed-Up Code"==g&&"Active Write Code"==d){let t=document.createElement("button");t.textContent="Transfer Response",t.classList.add("btn","btn-primary"),t.addEventListener("click",async function(){await this.toggleTransfer(e,l,a,i)}.bind(this)),s.appendChild(t)}}}var p;(p=document.getElementById("component-preview"))&&(p.style.display="")}async toggleSet(e,t,i,s){var o=e+"-toggleSelectedQuestion",l=document.getElementById(e).getElementsByTagName("select")[0];document.getElementById(o).innerHTML="",document.getElementById("toggle-preview").innerHTML="",await(0,n.JK)(i,o,{selector_id:o,is_toggle:this.toggleOptions,is_select:!0,useRunestoneServices:!0});let r=new Request(`${eBookConfig.new_server_prefix}/assessment/set_selected_question?metaid=${e}&selected=${t}`,{});await fetch(r);let a=document.getElementById(e);a.dataset.toggleCurrent=t,a.dataset.toggleCurrentType=s[l.selectedIndex]}async toggleTransfer(e,t,i,n){for(var s,o,l,a,c,g,d=document.getElementById(e+"-toggleSelectedQuestion").querySelectorAll("div[class^='answer']")[0].getElementsByClassName("prettyprint lang-py"),p="",u=0;u<d.length;u++){l=0,a="",(s=d[u].classList[2])&&s.includes("indent")&&(l=parseInt(l)+parseInt(s.slice(6,s.length))),(o=d[u].parentElement.parentElement.style.left)&&(l=parseInt(l)+parseInt(o.slice(0,o.indexOf("px"))/30));for(var m=0;m<l;m++)a+=" ";c=d[u].getElementsByTagName("span"),g=0;for(var h=0;h<c.length;h++)"#text"==c[h].childNodes[0].nodeName&&(0==u&&0==g?(p+=a+c[h].innerHTML,g++):0!=g?(p+=c[h].innerHTML,g++):(p=(p=p+"\n "+a+c[h].innerHTML).replace(" ",""),g++))}var f=i.slice(0,i.indexOf("<textarea")+i.split("<textarea")[1].indexOf(">")+10),v=i.slice(i.indexOf("</textarea>"),i.length);i=f+p+v,await this.toggleSet(e,t,i,n),r(document.getElementById("component-preview"))}}function r(e){e&&(e.style.display="none")}void 0===window.component_factory&&(window.component_factory={}),window.component_factory.selectquestion=function(e){return new l(e)},document.addEventListener("runestone:login-complete",(async function(){let e=document.querySelectorAll("[data-component=selectquestion]");for(let t of e)try{if(!t.closest("[data-component=timedAssessment]")){let e=new l({orig:t});await e.initialize()}}catch(e){console.log(`Error rendering New Exercise ${t.id}\n Details: ${e}`),console.log(e.stack)}}))}}]);
//# sourceMappingURL=662.054322cea578175f.js.map