UNPKG

gradebook-base

Version:

Defines simple interfaces for gradebook projects.

3 lines (2 loc) 1.65 kB
function e(e,n,r){return{name:e,description:n,comment:r}}function n(e,n){return{name:e,value:n}}function r(e,n){return{name:e,level:n}}function t(e,n){return{name:e,order:n}}function s(e,n){return{grade:e,mastery:n}}function a(e,n,r,t=[]){return{name:e,skill:n,weight:r,gradeMastery:t}}function u(e,n){return{skill:e,mastery:n}}function l(e,n=[],r=[],t=[],s=[],a=[]){return{name:e,grade:n,weight:r,mastery:t,skillConfig:s,skillMastery:a}}function o(e,n){return{name:e,assessment:n}}function i(e){return e.reduce(((e,n)=>(n.gradeMastery.forEach((r=>{const t=e.findIndex((e=>e.grade.name===r.grade.name));if(-1===t){const n={grade:r.grade,score:r.mastery.level};e.push(n)}else e[t].score+=r.mastery.level*n.weight.value})),e)),[])}function c(e,n){return e.reduce(((e,r)=>e+=(n.find((e=>e.skill.name===r.skill.name))?.weight.value||0)*r.mastery.level),0)}function f(e,n){let r=null;for(let t=0;t<e.length;t++){let s=e[t];s.score<=n&&(null===r||n-s.score<=n-r.score)&&(r=s)}return r?.grade}function m(e){const n=function(e,n,r){return{assessment:e,grade:n,score:r}}(e,{name:"N/A",order:0},0),r=i(e.skillConfig),t=c(e.skillMastery,e.skillConfig),s=f(r,t);return s&&(n.grade=s,n.score=t),n}function d(e){const n=[];return e.assessment.forEach((e=>{n.push(m(e))})),n}export{m as calculateAssesmentResult,d as calculateCandidateAssesmentResults,f as calculateGrade,i as calculateGradeMasteryScore,c as calculateSkillMasteryScore,l as createAssessment,o as createCandidate,t as createGrade,s as createGradeMastery,r as createMastery,e as createSkill,a as createSkillConfig,u as createSkillMastery,n as createWeight}; //# sourceMappingURL=index.min.js.map