@vue-skuilder/platform-ui 0.1.35 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{About-CYoEhp5l.js → About-eVevEMqh.js} +2 -2
- package/dist/assets/{About-CYoEhp5l.js.map → About-eVevEMqh.js.map} +1 -1
- package/dist/assets/AdminDashboard-C_oJ8NGZ.js +2 -0
- package/dist/assets/{AdminDashboard-DO3Mo6_x.js.map → AdminDashboard-C_oJ8NGZ.js.map} +1 -1
- package/dist/assets/{ClassroomCtrlPanel-DkBMgZJU.js → ClassroomCtrlPanel-DanEeAZ0.js} +2 -2
- package/dist/assets/{ClassroomCtrlPanel-DkBMgZJU.js.map → ClassroomCtrlPanel-DanEeAZ0.js.map} +1 -1
- package/dist/assets/{Classrooms-BRwjFo6r.js → Classrooms-OrG6VOnx.js} +2 -2
- package/dist/assets/{Classrooms-BRwjFo6r.js.map → Classrooms-OrG6VOnx.js.map} +1 -1
- package/dist/assets/{CourseRouter-BrofD0lZ.js → CourseRouter-CK8Xh2h2.js} +2 -2
- package/dist/assets/{CourseRouter-BrofD0lZ.js.map → CourseRouter-CK8Xh2h2.js.map} +1 -1
- package/dist/assets/CourseWare-BTFRjgBR-D750E7i0.css +1 -0
- package/dist/assets/{CourseWare-BTFRjgBR-ca7as3tn.js → CourseWare-BTFRjgBR-OzjKW1B2.js} +3 -3
- package/dist/assets/{CourseWare-BTFRjgBR-ca7as3tn.js.map → CourseWare-BTFRjgBR-OzjKW1B2.js.map} +1 -1
- package/dist/assets/{Courses-DyZS7Cle.js → Courses-DB0JFz1Q.js} +2 -2
- package/dist/assets/{Courses-DyZS7Cle.js.map → Courses-DB0JFz1Q.js.map} +1 -1
- package/dist/assets/EloModeration-BmU0CqZt.js +2 -0
- package/dist/assets/{EloModeration-B8hFSqwy.js.map → EloModeration-BmU0CqZt.js.map} +1 -1
- package/dist/assets/{JoinCode-DOLzN-p-.js → JoinCode-KoSLXpUy.js} +2 -2
- package/dist/assets/{JoinCode-DOLzN-p-.js.map → JoinCode-KoSLXpUy.js.map} +1 -1
- package/dist/assets/{NewCourseDialog-CjeJyyc3.js → NewCourseDialog-BXxQ1cvK.js} +2 -2
- package/dist/assets/{NewCourseDialog-CjeJyyc3.js.map → NewCourseDialog-BXxQ1cvK.js.map} +1 -1
- package/dist/assets/{ReleaseNotes-D9KhPUiR.js → ReleaseNotes-CERYwZro.js} +2 -2
- package/dist/assets/{ReleaseNotes-D9KhPUiR.js.map → ReleaseNotes-CERYwZro.js.map} +1 -1
- package/dist/assets/{RequestPasswordReset-CdzOhOXs.js → RequestPasswordReset-Bc4FHaYS.js} +2 -2
- package/dist/assets/{RequestPasswordReset-CdzOhOXs.js.map → RequestPasswordReset-Bc4FHaYS.js.map} +1 -1
- package/dist/assets/{ResetPassword-Cu62zkXq.js → ResetPassword-CeR_bmOz.js} +2 -2
- package/dist/assets/{ResetPassword-Cu62zkXq.js.map → ResetPassword-CeR_bmOz.js.map} +1 -1
- package/dist/assets/Study-voro05GB.js +2 -0
- package/dist/assets/{Study-DYkoX3oR.js.map → Study-voro05GB.js.map} +1 -1
- package/dist/assets/TagInformation-1urKQaI-.js +2 -0
- package/dist/assets/{TagInformation-PbQDPmpb.js.map → TagInformation-1urKQaI-.js.map} +1 -1
- package/dist/assets/{User-CIFHdgrZ.js → User-26Hebdw-.js} +2 -2
- package/dist/assets/{User-CIFHdgrZ.js.map → User-26Hebdw-.js.map} +1 -1
- package/dist/assets/{UserStats-DSyaFn7j.js → UserStats-DbWUnAPD.js} +2 -2
- package/dist/assets/{UserStats-DSyaFn7j.js.map → UserStats-DbWUnAPD.js.map} +1 -1
- package/dist/assets/{VerifyEmail-DWS9S3tV.js → VerifyEmail-uix17ueS.js} +2 -2
- package/dist/assets/{VerifyEmail-DWS9S3tV.js.map → VerifyEmail-uix17ueS.js.map} +1 -1
- package/dist/assets/{chess-BbHATAzk-DOhLaMTg.js → chess-BbHATAzk-BhFAwbgX.js} +2 -2
- package/dist/assets/chess-BbHATAzk-BhFAwbgX.js.map +1 -0
- package/dist/assets/chess-BbHATAzk-DB7z_kWx.css +1 -0
- package/dist/assets/chess-X1bmWmh3-C7B3mHa1.js +1 -0
- package/dist/assets/common-ui.es-C18SEA_L.js +1 -0
- package/dist/assets/{common-ui.es-ConLKYrk.js → common-ui.es-p3cgaI_b.js} +4 -4
- package/dist/assets/{common-ui.es-ConLKYrk.js.map → common-ui.es-p3cgaI_b.js.map} +1 -1
- package/dist/assets/dist-CszlUrrD.js +1 -0
- package/dist/assets/dist-D2Tzeiyw.js +1 -0
- package/dist/assets/{dist-DKtzwGWn.js → dist-DA7EuQY2.js} +33 -11
- package/dist/assets/dist-DA7EuQY2.js.map +1 -0
- package/dist/assets/{dist-Daq3OiEc.js → dist-DCY40cJ7.js} +3 -3
- package/dist/assets/dist-DCY40cJ7.js.map +1 -0
- package/dist/assets/{edit-ui.es-DNDxRLE6.js → edit-ui.es-BIV0deYk.js} +2 -2
- package/dist/assets/{edit-ui.es-DNDxRLE6.js.map → edit-ui.es-BIV0deYk.js.map} +1 -1
- package/dist/assets/edit-ui.es-BLMFpJm1.js +1 -0
- package/dist/assets/{french-Dk7YG8Td-Bzxo0iir.js → french-Dk7YG8Td-YK4jNZUN.js} +2 -2
- package/dist/assets/{french-Dk7YG8Td-Bzxo0iir.js.map → french-Dk7YG8Td-YK4jNZUN.js.map} +1 -1
- package/dist/assets/french-evUMlbbq-BbJDdRqK.js +1 -0
- package/dist/assets/index-B-cSF0fq.js +4 -0
- package/dist/assets/{index-B4di3I6o.js.map → index-B-cSF0fq.js.map} +1 -1
- package/dist/assets/{math-B4HbgYf6-DW4In8a5.js → math-B4HbgYf6-CLJIZTjv.js} +2 -2
- package/dist/assets/math-B4HbgYf6-CLJIZTjv.js.map +1 -0
- package/dist/assets/math-B4HbgYf6-CZyvKZtp.css +1 -0
- package/dist/assets/math-DYni7rRl-C6a4BDoN.js +1 -0
- package/dist/assets/piano-BN5Btq91-Cdn8kuW5.js +1 -0
- package/dist/assets/{piano-DF1g6yaX-C9jL6jej.js → piano-DF1g6yaX-AR14jqWm.js} +2 -2
- package/dist/assets/piano-DF1g6yaX-AR14jqWm.js.map +1 -0
- package/dist/assets/piano-DF1g6yaX-BLvDAgl1.css +1 -0
- package/dist/assets/{pitch-CgGJFkZ1-B4qiD-od.js → pitch-CgGJFkZ1-DYkp_AV0.js} +2 -2
- package/dist/assets/{pitch-CgGJFkZ1-B4qiD-od.js.map → pitch-CgGJFkZ1-DYkp_AV0.js.map} +1 -1
- package/dist/assets/pitch-Dn0iNqiS-CJ_97iB4.js +1 -0
- package/dist/assets/{server-RYtUROqF.js → server-Bq50faqp.js} +2 -2
- package/dist/assets/{server-RYtUROqF.js.map → server-Bq50faqp.js.map} +1 -1
- package/dist/assets/{sightsing-BFQ7HRig-gi-f6Gjx.js → sightsing-BFQ7HRig-BNrrORP_.js} +2 -2
- package/dist/assets/sightsing-BFQ7HRig-BNrrORP_.js.map +1 -0
- package/dist/assets/sightsing-BFQ7HRig-DkUGf5Yf.css +1 -0
- package/dist/assets/sightsing-CJX3k0Fd-l4fhB1Aj.js +1 -0
- package/dist/assets/typing-BevtfWlp-B7ZMUAQJ.css +1 -0
- package/dist/assets/{typing-BevtfWlp-a9gMsGkx.js → typing-BevtfWlp-Cl6jtRmX.js} +2 -2
- package/dist/assets/typing-BevtfWlp-Cl6jtRmX.js.map +1 -0
- package/dist/assets/typing-k-ojjO7G-CHgxm7Rx.js +1 -0
- package/dist/assets/{word-work-BOnRlZgd-DhZkqecP.js → word-work-BOnRlZgd-CGV2xRx9.js} +2 -2
- package/dist/assets/{word-work-BOnRlZgd-DhZkqecP.js.map → word-work-BOnRlZgd-CGV2xRx9.js.map} +1 -1
- package/dist/assets/word-work-Dd6tIKrt-BjF3-3lq.js +1 -0
- package/dist/index.html +3 -3
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/package.json +7 -7
- package/src/dev/Playtest.vue +254 -0
- package/dist/assets/AdminDashboard-DO3Mo6_x.js +0 -2
- package/dist/assets/EloModeration-B8hFSqwy.js +0 -2
- package/dist/assets/Study-DYkoX3oR.js +0 -2
- package/dist/assets/TagInformation-PbQDPmpb.js +0 -2
- package/dist/assets/chess-BbHATAzk-DOhLaMTg.js.map +0 -1
- package/dist/assets/chess-X1bmWmh3-C3HyTLIE.js +0 -1
- package/dist/assets/common-ui.es-BmXCkW19.js +0 -1
- package/dist/assets/dist-DKtzwGWn.js.map +0 -1
- package/dist/assets/dist-Daq3OiEc.js.map +0 -1
- package/dist/assets/dist-EH1RSdAN.js +0 -1
- package/dist/assets/dist-huY4PEit.js +0 -1
- package/dist/assets/edit-ui.es-C6Itr3tP.js +0 -1
- package/dist/assets/french-evUMlbbq-D88z2AaV.js +0 -1
- package/dist/assets/index-B4di3I6o.js +0 -4
- package/dist/assets/math-B4HbgYf6-DW4In8a5.js.map +0 -1
- package/dist/assets/math-DYni7rRl-BLRdDTmX.js +0 -1
- package/dist/assets/piano-BN5Btq91-D1ljSgCc.js +0 -1
- package/dist/assets/piano-DF1g6yaX-C9jL6jej.js.map +0 -1
- package/dist/assets/pitch-Dn0iNqiS-Vbm_Ue9p.js +0 -1
- package/dist/assets/sightsing-BFQ7HRig-gi-f6Gjx.js.map +0 -1
- package/dist/assets/sightsing-CJX3k0Fd-CLDxoSv_.js +0 -1
- package/dist/assets/typing-BevtfWlp-a9gMsGkx.js.map +0 -1
- package/dist/assets/typing-k-ojjO7G-CHVzRXi1.js +0 -1
- package/dist/assets/word-work-Dd6tIKrt-CVY1zayr.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#abc{width:100%;height:100%}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./vue.runtime.esm-bundler-C3q8JS9f.js";import"./common-ui.es-p3cgaI_b.js";import"./dist-leWgtXBf.js";import"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import"./dist-DA7EuQY2.js";import"./CourseWare-BTFRjgBR-OzjKW1B2.js";import{t as e}from"./sightsing-BFQ7HRig-BNrrORP_.js";export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.letter-display[data-v-4ae4db54]{color:#333;text-transform:uppercase;background-color:#f8f9fa;border:2px solid #dee2e6;border-radius:8px;justify-content:center;align-items:center;width:80px;height:80px;margin:20px auto;font-family:monospace;font-size:48px;font-weight:700;display:flex;box-shadow:0 2px #dee2e6,0 3px 3px #0003}.letter-display.pressed[data-v-4ae4db54]{transform:translateY(2px);box-shadow:0 0 #dee2e6,0 1px 2px #0003}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-D6hFPZc3.js";import{B as e,H as t,T as n,Vt as r,_ as i,b as a,f as o,g as s,lt as c,y as l,z as u}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{m as d}from"./common-ui.es-
|
|
2
|
-
//# sourceMappingURL=typing-BevtfWlp-
|
|
1
|
+
import"./chunk-D6hFPZc3.js";import{B as e,H as t,T as n,Vt as r,_ as i,b as a,f as o,g as s,lt as c,y as l,z as u}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{m as d}from"./common-ui.es-p3cgaI_b.js";import{S as f,T as p,n as m,y as h}from"./dist-leWgtXBf.js";import{S as g,x as _}from"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import{n as v,t as y,u as b}from"./CourseWare-BTFRjgBR-OzjKW1B2.js";var x,S,C=n({name:`LetterQuestionView`,props:{data:{type:Array,required:!0},modifyDifficulty:{type:Number,required:!1,default:0}},setup(t,{emit:n}){let r=g(t,n,`LetterQuestionView`),i=_(r),a=c(null);i.question.value=new D(t.data);let o=s(()=>i.question.value),handleKeyPress=e=>{if(!o.value)return;let t=e.key.toLowerCase(),n=o.value.letter.toLowerCase();if(t===n){a.value?.classList.add(`pressed`);let handleKeyUp=e=>{e.key.toLowerCase()===n&&(a.value?.classList.remove(`pressed`),i.submitAnswer(t),window.removeEventListener(`keyup`,handleKeyUp))};window.addEventListener(`keyup`,handleKeyUp)}else i.submitAnswer(t)};return u(()=>{window.addEventListener(`keypress`,handleKeyPress)}),e(()=>{window.removeEventListener(`keypress`,handleKeyPress)}),{...i,...r,letterDisplay:a,question:o}}}),w={"data-viewable":`LetterQuestionView`};function _sfc_render(e,n,s,c,u,d){return t(),a(`div`,w,[e.question?(t(),a(o,{key:0},[n[0]||(n[0]=i(`p`,{class:`text-h5`},`Type this letter!`,-1)),i(`div`,{ref:`letterDisplay`,class:`letter-display`},r(e.question.letter),513)],64)):l(``,!0)])}var T=y(C,[[`render`,_sfc_render],[`__scopeId`,`data-v-4ae4db54`]]),E=b(function(){let e=[];for(let t=0;t<26;t++)e.push({letter:String.fromCharCode(65+t)});return e},`data`),D=(x=class TypeLetterQuestion extends d{constructor(e){var _super=(...e)=>(super(...e),h(this,`letter`,void 0),this);_super(e),this.letter=e[0].letter}evaluate(e,t){return{isCorrect:this.isCorrect(e),performance:this.displayedSkill(e,t)}}displayedSkill(e,t){if(this.isCorrect(e)){if(t<3e3)return 1;{let e=1-(t-3e3)/7e3*.75;return Math.max(.25,e)}}return 0}dataShapes(){return TypeLetterQuestion.dataShapes}views(){return TypeLetterQuestion.views}isCorrect(e){let t=e.toLowerCase()===this.letter.toLowerCase();return console.log(`singleLetter Q isCorrect: ${t}`),t}},h(x,`dataShapes`,[{name:m.TYPING_singleLetter,fields:[{name:`letter`,type:f.STRING,validator:{instructions:`Enter a single letter`,test:function(e){return!e||e.length!==1||!/[a-zA-Z]/.test(e)?{status:p.error,msg:`Input must be a single letter`}:{status:p.ok,msg:``}}}}]}]),h(x,`views`,[T]),h(x,`acceptsUserData`,!0),h(x,`seedData`,E()),x),data=function(){return[{gameLength:30,initialSpeed:2,acceleration:.1,spawnInterval:1}]},O=new v(`typing`,[D,(S=class FallingLettersQuestion extends d{constructor(e){var _super2=(...e)=>(super(...e),h(this,`gameLength`,void 0),h(this,`initialSpeed`,void 0),h(this,`acceleration`,void 0),h(this,`spawnInterval`,void 0),this);_super2(e),this.gameLength=e[0].gameLength,this.initialSpeed=e[0].initialSpeed,this.acceleration=e[0].acceleration,this.spawnInterval=e[0].spawnInterval}evaluate(e){return{isCorrect:this.isCorrect(e),performance:this.displayedSkill(e)}}displayedSkill(e){return e.win?1:e.percentage}dataShapes(){return FallingLettersQuestion.dataShapes}views(){return FallingLettersQuestion.views}isCorrect(e){return e.win}},h(S,`dataShapes`,[{name:m.TYPING_fallingLetters,fields:[{name:`gameLength`,type:f.NUMBER},{name:`initialSpeed`,type:f.NUMBER},{name:`acceleration`,type:f.NUMBER},{name:`spawnInterval`,type:f.NUMBER,validator:{instructions:`How often should a new letter spawn? (in seconds)`,test:e=>typeof e==`string`?parseFloat(e)>0?{status:p.ok,msg:``}:{status:p.error,msg:`Must be greater than 0`}:{status:p.error,msg:`Unexpected non-string input.`},placeholder:`1`}}]}]),h(S,`views`,[]),h(S,`acceptsUserData`,!0),h(S,`seedData`,data()),S)]);export{O as t};
|
|
2
|
+
//# sourceMappingURL=typing-BevtfWlp-Cl6jtRmX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-BevtfWlp-Cl6jtRmX.js","names":["c","g","h","f","i","l","u","d","o","r","s","p","a","t","e","m","_","v","y","n"],"sources":["../../../courseware/dist/typing-BevtfWlp.js"],"sourcesContent":["import { r as e } from \"./shapes-BQUVJdp5.js\";\nimport { r as t, t as n } from \"./CourseWare-BTFRjgBR.js\";\nimport { Fragment as r, computed as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, defineComponent as c, onMounted as l, onUnmounted as u, openBlock as d, ref as f, toDisplayString as p } from \"vue\";\nimport { Question as m, useQuestionView as h, useViewable as g } from \"@vue-skuilder/common-ui\";\nimport { DataShapeName as _, FieldType as v, Status as y } from \"@vue-skuilder/common\";\nimport './assets/typing.css';//#region src/typing/questions/single-letter/typeSingleLetter.vue?vue&type=script&lang.ts\nvar b = c({\n\tname: \"LetterQuestionView\",\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Array,\n\t\t\trequired: !0\n\t\t},\n\t\tmodifyDifficulty: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e, { emit: t }) {\n\t\tlet n = g(e, t, \"LetterQuestionView\"), r = h(n), a = f(null);\n\t\tr.question.value = new w(e.data);\n\t\tlet o = i(() => r.question.value), handleKeyPress = (e) => {\n\t\t\tif (!o.value) return;\n\t\t\tlet t = e.key.toLowerCase(), n = o.value.letter.toLowerCase();\n\t\t\tif (t === n) {\n\t\t\t\ta.value?.classList.add(\"pressed\");\n\t\t\t\tlet handleKeyUp = (e) => {\n\t\t\t\t\te.key.toLowerCase() === n && (a.value?.classList.remove(\"pressed\"), r.submitAnswer(t), window.removeEventListener(\"keyup\", handleKeyUp));\n\t\t\t\t};\n\t\t\t\twindow.addEventListener(\"keyup\", handleKeyUp);\n\t\t\t} else r.submitAnswer(t);\n\t\t};\n\t\treturn l(() => {\n\t\t\twindow.addEventListener(\"keypress\", handleKeyPress);\n\t\t}), u(() => {\n\t\t\twindow.removeEventListener(\"keypress\", handleKeyPress);\n\t\t}), {\n\t\t\t...r,\n\t\t\t...n,\n\t\t\tletterDisplay: a,\n\t\t\tquestion: o\n\t\t};\n\t}\n}), x = { \"data-viewable\": \"LetterQuestionView\" };\nfunction _sfc_render(e, t, n, i, c, l) {\n\treturn d(), o(\"div\", x, [e.question ? (d(), o(r, { key: 0 }, [t[0] ||= s(\"p\", { class: \"text-h5\" }, \"Type this letter!\", -1), s(\"div\", {\n\t\tref: \"letterDisplay\",\n\t\tclass: \"letter-display\"\n\t}, p(e.question.letter), 513)], 64)) : a(\"\", !0)]);\n}\nvar S = /* @__PURE__ */ t(b, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-4ae4db54\"]]), C = /* @__PURE__ */ e(function() {\n\tlet e = [];\n\tfor (let t = 0; t < 26; t++) e.push({ letter: String.fromCharCode(65 + t) });\n\treturn e;\n}, \"data\"), w = class TypeLetterQuestion extends m {\n\tstatic dataShapes = [{\n\t\tname: _.TYPING_singleLetter,\n\t\tfields: [{\n\t\t\tname: \"letter\",\n\t\t\ttype: v.STRING,\n\t\t\tvalidator: {\n\t\t\t\tinstructions: \"Enter a single letter\",\n\t\t\t\ttest: function(e) {\n\t\t\t\t\treturn !e || e.length !== 1 || !/[a-zA-Z]/.test(e) ? {\n\t\t\t\t\t\tstatus: y.error,\n\t\t\t\t\t\tmsg: \"Input must be a single letter\"\n\t\t\t\t\t} : {\n\t\t\t\t\t\tstatus: y.ok,\n\t\t\t\t\t\tmsg: \"\"\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}]\n\t}];\n\tstatic views = [S];\n\tstatic acceptsUserData = !0;\n\tletter;\n\tstatic seedData = C();\n\tconstructor(e) {\n\t\tsuper(e), this.letter = e[0].letter;\n\t}\n\tevaluate(e, t) {\n\t\treturn {\n\t\t\tisCorrect: this.isCorrect(e),\n\t\t\tperformance: this.displayedSkill(e, t)\n\t\t};\n\t}\n\tdisplayedSkill(e, t) {\n\t\tif (this.isCorrect(e)) {\n\t\t\tif (t < 3e3) return 1;\n\t\t\t{\n\t\t\t\tlet e = 1 - (t - 3e3) / 7e3 * .75;\n\t\t\t\treturn Math.max(.25, e);\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\tdataShapes() {\n\t\treturn TypeLetterQuestion.dataShapes;\n\t}\n\tviews() {\n\t\treturn TypeLetterQuestion.views;\n\t}\n\tisCorrect(e) {\n\t\tlet t = e.toLowerCase() === this.letter.toLowerCase();\n\t\treturn console.log(`singleLetter Q isCorrect: ${t}`), t;\n\t}\n}, data = function() {\n\treturn [{\n\t\tgameLength: 30,\n\t\tinitialSpeed: 2,\n\t\tacceleration: .1,\n\t\tspawnInterval: 1\n\t}];\n}, T = new n(\"typing\", [w, class FallingLettersQuestion extends m {\n\tstatic dataShapes = [{\n\t\tname: _.TYPING_fallingLetters,\n\t\tfields: [\n\t\t\t{\n\t\t\t\tname: \"gameLength\",\n\t\t\t\ttype: v.NUMBER\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"initialSpeed\",\n\t\t\t\ttype: v.NUMBER\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"acceleration\",\n\t\t\t\ttype: v.NUMBER\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"spawnInterval\",\n\t\t\t\ttype: v.NUMBER,\n\t\t\t\tvalidator: {\n\t\t\t\t\tinstructions: \"How often should a new letter spawn? (in seconds)\",\n\t\t\t\t\ttest: (e) => typeof e == \"string\" ? parseFloat(e) > 0 ? {\n\t\t\t\t\t\tstatus: y.ok,\n\t\t\t\t\t\tmsg: \"\"\n\t\t\t\t\t} : {\n\t\t\t\t\t\tstatus: y.error,\n\t\t\t\t\t\tmsg: \"Must be greater than 0\"\n\t\t\t\t\t} : {\n\t\t\t\t\t\tstatus: y.error,\n\t\t\t\t\t\tmsg: \"Unexpected non-string input.\"\n\t\t\t\t\t},\n\t\t\t\t\tplaceholder: \"1\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}];\n\tstatic views = [];\n\tstatic acceptsUserData = !0;\n\tstatic seedData = data();\n\tgameLength;\n\tinitialSpeed;\n\tacceleration;\n\tspawnInterval;\n\tconstructor(e) {\n\t\tsuper(e), this.gameLength = e[0].gameLength, this.initialSpeed = e[0].initialSpeed, this.acceleration = e[0].acceleration, this.spawnInterval = e[0].spawnInterval;\n\t}\n\tevaluate(e) {\n\t\treturn {\n\t\t\tisCorrect: this.isCorrect(e),\n\t\t\tperformance: this.displayedSkill(e)\n\t\t};\n\t}\n\tdisplayedSkill(e) {\n\t\treturn e.win ? 1 : e.percentage;\n\t}\n\tdataShapes() {\n\t\treturn FallingLettersQuestion.dataShapes;\n\t}\n\tviews() {\n\t\treturn FallingLettersQuestion.views;\n\t}\n\tisCorrect(e) {\n\t\treturn e.win;\n\t}\n}]);\n//#endregion\nexport { T as t };\n\n//# sourceMappingURL=typing-BevtfWlp.js.map"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./vue.runtime.esm-bundler-C3q8JS9f.js";import"./common-ui.es-p3cgaI_b.js";import"./dist-leWgtXBf.js";import"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import"./dist-DA7EuQY2.js";import"./CourseWare-BTFRjgBR-OzjKW1B2.js";import{t as e}from"./typing-BevtfWlp-Cl6jtRmX.js";export{e as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,T as i,Vt as a,_ as o,b as s,f as c,g as l,lt as u,y as d}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{m as f}from"./common-ui.es-
|
|
2
|
-
//# sourceMappingURL=word-work-BOnRlZgd-
|
|
1
|
+
import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,T as i,Vt as a,_ as o,b as s,f as c,g as l,lt as u,y as d}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{m as f}from"./common-ui.es-p3cgaI_b.js";import{S as p,d as m,n as h,y as g}from"./dist-leWgtXBf.js";import{C as _,S as v,s as y,x as b}from"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import{n as x,t as S}from"./CourseWare-BTFRjgBR-OzjKW1B2.js";var C,w=i({name:`IdentifyVocab`,components:{AudioAutoPlayer:_,UserInputString:y},props:{data:{type:Array,required:!0},modifyDifficulty:{type:Number,required:!1,default:0}},setup(e,{emit:t}){let n=v(e,t,`IdentifyVocab`),r=b(n),i=u(``);r.question.value=new k(e.data);let a=l(()=>r.question.value),submit=()=>{a.value&&r.submitAnswer(i.value)};return{...n,...r,answer:i,question:a,submit}}}),T={"data-viewable":`IdentifyVocab`},E={key:0,class:`text-h6`};function _sfc_render(i,l,u,f,p,m){let h=r(`UserInputString`),g=r(`center`),_=r(`audio-auto-player`);return n(),s(`div`,T,[i.question?(n(),s(c,{key:0},[l[1]||(l[1]=o(`span`,{class:`text-h5`},` Spell the word: `,-1)),t(h,{modelValue:i.answer,"onUpdate:modelValue":l[0]||(l[0]=e=>i.answer=e)},null,8,[`modelValue`]),t(g,null,{default:e(()=>[i.priorAttempts?(n(),s(`span`,E,a(i.question.word),1)):d(``,!0)]),_:1}),t(g,null,{default:e(()=>[t(_,{src:[i.getURL(`WordAudio`),i.getURL(`SentenceAudio`),i.getURL(`WordAudio`)]},null,8,[`src`])]),_:1})],64)):d(``,!0)])}var D=S(w,[[`render`,_sfc_render]]),O=[{name:`Word`,type:p.STRING,validator:m.NonEmptyString},{name:`ExampleSentence`,type:p.STRING},{name:`WordAudio`,type:p.AUDIO},{name:`SentenceAudio`,type:p.AUDIO}],k=(C=class SpellingQuestion extends f{constructor(e){var _super=(...e)=>(super(...e),g(this,`word`,void 0),g(this,`sentence`,void 0),g(this,`audio_word`,void 0),g(this,`audio_sentence`,void 0),this);_super(e),this.word=e[0].Word,this.sentence=e[0].Sentence,this.audio_word=e[0].WordAudio,this.audio_sentence=e[0].SentenceAudio}isCorrect(e){return e===this.word}dataShapes(){return SpellingQuestion.dataShapes}views(){return SpellingQuestion.views}},g(C,`dataShapes`,[{fields:O,name:h.WORDWORK_Spelling}]),g(C,`views`,[D]),C),A=new x(`wordWork`,[k]);export{A as t};
|
|
2
|
+
//# sourceMappingURL=word-work-BOnRlZgd-CGV2xRx9.js.map
|
package/dist/assets/{word-work-BOnRlZgd-DhZkqecP.js.map → word-work-BOnRlZgd-CGV2xRx9.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"word-work-BOnRlZgd-
|
|
1
|
+
{"version":3,"file":"word-work-BOnRlZgd-CGV2xRx9.js","names":["c","m","g","v","_","u","r","d","l","a","n","o","s","p","f","i","e","b","x","h","y","t"],"sources":["../../../courseware/dist/word-work-BOnRlZgd.js"],"sourcesContent":["import \"./shapes-BQUVJdp5.js\";\nimport { r as e, t } from \"./CourseWare-BTFRjgBR.js\";\nimport { Fragment as n, computed as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, openBlock as l, ref as u, resolveComponent as d, toDisplayString as f, withCtx as p } from \"vue\";\nimport { AudioAutoPlayer as m, Question as h, UserInputString as g, useQuestionView as _, useViewable as v } from \"@vue-skuilder/common-ui\";\nimport { DataShapeName as y, FieldType as b, Validators as x } from \"@vue-skuilder/common\";\n//#region src/word-work/questions/spelling/textBox.vue?vue&type=script&lang.ts\nvar S = c({\n\tname: \"IdentifyVocab\",\n\tcomponents: {\n\t\tAudioAutoPlayer: m,\n\t\tUserInputString: g\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Array,\n\t\t\trequired: !0\n\t\t},\n\t\tmodifyDifficulty: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e, { emit: t }) {\n\t\tlet n = v(e, t, \"IdentifyVocab\"), i = _(n), a = u(\"\");\n\t\ti.question.value = new D(e.data);\n\t\tlet o = r(() => i.question.value), submit = () => {\n\t\t\to.value && i.submitAnswer(a.value);\n\t\t};\n\t\treturn {\n\t\t\t...n,\n\t\t\t...i,\n\t\t\tanswer: a,\n\t\t\tquestion: o,\n\t\t\tsubmit\n\t\t};\n\t}\n}), C = { \"data-viewable\": \"IdentifyVocab\" }, w = {\n\tkey: 0,\n\tclass: \"text-h6\"\n};\nfunction _sfc_render(e, t, r, c, u, m) {\n\tlet h = d(\"UserInputString\"), g = d(\"center\"), _ = d(\"audio-auto-player\");\n\treturn l(), a(\"div\", C, [e.question ? (l(), a(n, { key: 0 }, [\n\t\tt[1] ||= o(\"span\", { class: \"text-h5\" }, \" Spell the word: \", -1),\n\t\ts(h, {\n\t\t\tmodelValue: e.answer,\n\t\t\t\"onUpdate:modelValue\": t[0] ||= (t) => e.answer = t\n\t\t}, null, 8, [\"modelValue\"]),\n\t\ts(g, null, {\n\t\t\tdefault: p(() => [e.priorAttempts ? (l(), a(\"span\", w, f(e.question.word), 1)) : i(\"\", !0)]),\n\t\t\t_: 1\n\t\t}),\n\t\ts(g, null, {\n\t\t\tdefault: p(() => [s(_, { src: [\n\t\t\t\te.getURL(\"WordAudio\"),\n\t\t\t\te.getURL(\"SentenceAudio\"),\n\t\t\t\te.getURL(\"WordAudio\")\n\t\t\t] }, null, 8, [\"src\"])]),\n\t\t\t_: 1\n\t\t})\n\t], 64)) : i(\"\", !0)]);\n}\nvar T = /* @__PURE__ */ e(S, [[\"render\", _sfc_render]]), E = [\n\t{\n\t\tname: \"Word\",\n\t\ttype: b.STRING,\n\t\tvalidator: x.NonEmptyString\n\t},\n\t{\n\t\tname: \"ExampleSentence\",\n\t\ttype: b.STRING\n\t},\n\t{\n\t\tname: \"WordAudio\",\n\t\ttype: b.AUDIO\n\t},\n\t{\n\t\tname: \"SentenceAudio\",\n\t\ttype: b.AUDIO\n\t}\n], D = class SpellingQuestion extends h {\n\tstatic dataShapes = [{\n\t\tfields: E,\n\t\tname: y.WORDWORK_Spelling\n\t}];\n\tstatic views = [T];\n\tword;\n\tsentence;\n\taudio_word;\n\taudio_sentence;\n\tconstructor(e) {\n\t\tsuper(e), this.word = e[0].Word, this.sentence = e[0].Sentence, this.audio_word = e[0].WordAudio, this.audio_sentence = e[0].SentenceAudio;\n\t}\n\tisCorrect(e) {\n\t\treturn e === this.word;\n\t}\n\tdataShapes() {\n\t\treturn SpellingQuestion.dataShapes;\n\t}\n\tviews() {\n\t\treturn SpellingQuestion.views;\n\t}\n}, O = new t(\"wordWork\", [D]);\n//#endregion\nexport { O as t };\n\n//# sourceMappingURL=word-work-BOnRlZgd.js.map"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./vue.runtime.esm-bundler-C3q8JS9f.js";import"./common-ui.es-p3cgaI_b.js";import"./dist-leWgtXBf.js";import"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import"./dist-DA7EuQY2.js";import"./CourseWare-BTFRjgBR-OzjKW1B2.js";import{t as e}from"./word-work-BOnRlZgd-CGV2xRx9.js";export{e as default};
|
package/dist/index.html
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
9
9
|
<link rel="shortcut icon" href="/favicon.ico" />
|
|
10
10
|
<title>eduQuilt</title>
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-B-cSF0fq.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/chunk-D6hFPZc3.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/dist-leWgtXBf.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-DA7EuQY2.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/vue.runtime.esm-bundler-C3q8JS9f.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/MarkdownRenderer-DoVbFpA6-CvaBjTS8.js">
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/common-ui.es-
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/common-ui.es-p3cgaI_b.js">
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/common-ui-BY2Ut5jf.css">
|
|
19
19
|
<link rel="stylesheet" crossorigin href="/assets/index-CmEEzdUX.css">
|
|
20
20
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
package/dist/sw.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(i,r)=>{const
|
|
1
|
+
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(i,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let o={};const u=s=>l(s,n),t={module:{uri:n},exports:o,require:u};e[n]=Promise.all(i.map((s=>t[s]||u(s)))).then((s=>(r(...s),o)))}}define(["./workbox-1be04862"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/About-eVevEMqh.js",revision:null},{url:"assets/AdminDashboard-C_oJ8NGZ.js",revision:null},{url:"assets/AdminDashboard-CWnC_vEI.css",revision:null},{url:"assets/chess-BbHATAzk-BhFAwbgX.js",revision:null},{url:"assets/chess-BbHATAzk-DB7z_kWx.css",revision:null},{url:"assets/chess-X1bmWmh3-C7B3mHa1.js",revision:null},{url:"assets/chunk-D6hFPZc3.js",revision:null},{url:"assets/ClassroomCtrlPanel-DanEeAZ0.js",revision:null},{url:"assets/Classrooms-OrG6VOnx.js",revision:null},{url:"assets/common-ui-BY2Ut5jf.css",revision:null},{url:"assets/common-ui.es-C18SEA_L.js",revision:null},{url:"assets/common-ui.es-p3cgaI_b.js",revision:null},{url:"assets/CourseRouter-CK8Xh2h2.js",revision:null},{url:"assets/CourseRouter-DvfjFpWl.css",revision:null},{url:"assets/Courses-CsGfVDf9.css",revision:null},{url:"assets/Courses-DB0JFz1Q.js",revision:null},{url:"assets/CourseWare-BTFRjgBR-D750E7i0.css",revision:null},{url:"assets/CourseWare-BTFRjgBR-OzjKW1B2.js",revision:null},{url:"assets/dist-CszlUrrD.js",revision:null},{url:"assets/dist-D2Tzeiyw.js",revision:null},{url:"assets/dist-DA7EuQY2.js",revision:null},{url:"assets/dist-DCY40cJ7.js",revision:null},{url:"assets/dist-leWgtXBf.js",revision:null},{url:"assets/edit-ui.es-BIV0deYk.js",revision:null},{url:"assets/edit-ui.es-BLMFpJm1.js",revision:null},{url:"assets/EloModeration-BmU0CqZt.js",revision:null},{url:"assets/EloModeration-DgUqPPoO.css",revision:null},{url:"assets/french-Dk7YG8Td-YK4jNZUN.js",revision:null},{url:"assets/french-evUMlbbq-BbJDdRqK.js",revision:null},{url:"assets/index-B-cSF0fq.js",revision:null},{url:"assets/index-CmEEzdUX.css",revision:null},{url:"assets/JoinCode-DPSfXf5z.css",revision:null},{url:"assets/JoinCode-KoSLXpUy.js",revision:null},{url:"assets/MarkdownRenderer-DoVbFpA6-CvaBjTS8.js",revision:null},{url:"assets/MarkdownRenderer-DoVbFpA6-DZdbKtns.js",revision:null},{url:"assets/materialdesignicons-webfont-Dp5v-WZN.woff2",revision:null},{url:"assets/math-B4HbgYf6-CLJIZTjv.js",revision:null},{url:"assets/math-B4HbgYf6-CZyvKZtp.css",revision:null},{url:"assets/math-DYni7rRl-C6a4BDoN.js",revision:null},{url:"assets/NewCourseDialog-BXxQ1cvK.js",revision:null},{url:"assets/piano-BN5Btq91-Cdn8kuW5.js",revision:null},{url:"assets/piano-DF1g6yaX-AR14jqWm.js",revision:null},{url:"assets/piano-DF1g6yaX-BLvDAgl1.css",revision:null},{url:"assets/pitch-CgGJFkZ1-DYkp_AV0.js",revision:null},{url:"assets/pitch-Dn0iNqiS-CJ_97iB4.js",revision:null},{url:"assets/ReleaseNotes-CERYwZro.js",revision:null},{url:"assets/RequestPasswordReset-Bc4FHaYS.js",revision:null},{url:"assets/RequestPasswordReset-Du5-awJG.css",revision:null},{url:"assets/ResetPassword-CeR_bmOz.js",revision:null},{url:"assets/Roboto-Black-VhoA2qKx.woff2",revision:null},{url:"assets/Roboto-BlackItalic-D4yie1YO.woff2",revision:null},{url:"assets/Roboto-Bold-hN3duQhD.woff2",revision:null},{url:"assets/Roboto-BoldItalic-BWDm51uc.woff2",revision:null},{url:"assets/Roboto-Light-DHTugVNA.woff2",revision:null},{url:"assets/Roboto-LightItalic-JQyp2Y3P.woff2",revision:null},{url:"assets/Roboto-Medium-ByKogCTi.woff2",revision:null},{url:"assets/Roboto-MediumItalic-i1eR0KbF.woff2",revision:null},{url:"assets/Roboto-Regular-C6rbFxYz.woff2",revision:null},{url:"assets/Roboto-RegularItalic-CvPUdkvM.woff2",revision:null},{url:"assets/Roboto-Thin-NicBC1pN.woff2",revision:null},{url:"assets/Roboto-ThinItalic-CKlCjrO_.woff2",revision:null},{url:"assets/server-Bq50faqp.js",revision:null},{url:"assets/sightsing-BFQ7HRig-BNrrORP_.js",revision:null},{url:"assets/sightsing-BFQ7HRig-DkUGf5Yf.css",revision:null},{url:"assets/sightsing-CJX3k0Fd-l4fhB1Aj.js",revision:null},{url:"assets/Study-R4LCAP7J.css",revision:null},{url:"assets/Study-voro05GB.js",revision:null},{url:"assets/TagInformation-1urKQaI-.js",revision:null},{url:"assets/typing-BevtfWlp-B7ZMUAQJ.css",revision:null},{url:"assets/typing-BevtfWlp-Cl6jtRmX.js",revision:null},{url:"assets/typing-k-ojjO7G-CHgxm7Rx.js",revision:null},{url:"assets/User-26Hebdw-.js",revision:null},{url:"assets/UserStats-DbWUnAPD.js",revision:null},{url:"assets/VerifyEmail-uix17ueS.js",revision:null},{url:"assets/vue.runtime.esm-bundler-C3q8JS9f.js",revision:null},{url:"assets/word-work-BOnRlZgd-CGV2xRx9.js",revision:null},{url:"assets/word-work-Dd6tIKrt-BjF3-3lq.js",revision:null},{url:"assets/workbox-window.prod.es5-DBwpKi3B.js",revision:null},{url:"favicon.ico",revision:"b71387b4508120b59615e43d5e103706"},{url:"img/icons/safari-pinned-tab.svg",revision:"f22d501a35a87d9f21701cb031f6ea17"},{url:"index.html",revision:"2d74e67693c07ab49c1cd655f61a595f"},{url:"manifest.json",revision:"14a155103e25199244cdda503219c3e1"},{url:"robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"manifest.webmanifest",revision:"0ad80257ac95729a8c88588d23a396c1"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{allowlist:[/^(?!\/(couch|express)).*$/]}))}));
|
|
2
2
|
//# sourceMappingURL=sw.js.map
|
package/dist/sw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sw.js","sources":["../../../../../../../tmp/8748fa0583258fc5f50dc28dc3dff3d8/sw.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/About-CYoEhp5l.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-CWnC_vEI.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-DO3Mo6_x.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-BbHATAzk-DOhLaMTg.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-X1bmWmh3-C3HyTLIE.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chunk-D6hFPZc3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ClassroomCtrlPanel-DkBMgZJU.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Classrooms-BRwjFo6r.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui-BY2Ut5jf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-BmXCkW19.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-ConLKYrk.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-BrofD0lZ.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-DvfjFpWl.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-CsGfVDf9.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-DyZS7Cle.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-ca7as3tn.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-Daq3OiEc.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-DKtzwGWn.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-EH1RSdAN.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-huY4PEit.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-leWgtXBf.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-C6Itr3tP.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-DNDxRLE6.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-B8hFSqwy.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-DgUqPPoO.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-Dk7YG8Td-Bzxo0iir.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-evUMlbbq-D88z2AaV.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-B4di3I6o.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-CmEEzdUX.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-DOLzN-p-.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-DPSfXf5z.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-DoVbFpA6-CvaBjTS8.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-DoVbFpA6-DZdbKtns.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/materialdesignicons-webfont-Dp5v-WZN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-DW4In8a5.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-DYni7rRl-BLRdDTmX.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/NewCourseDialog-CjeJyyc3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-BN5Btq91-D1ljSgCc.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-C9jL6jej.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-CgGJFkZ1-B4qiD-od.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-Dn0iNqiS-Vbm_Ue9p.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ReleaseNotes-D9KhPUiR.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-CdzOhOXs.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-Du5-awJG.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ResetPassword-Cu62zkXq.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Black-VhoA2qKx.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BlackItalic-D4yie1YO.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Bold-hN3duQhD.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BoldItalic-BWDm51uc.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Light-DHTugVNA.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-LightItalic-JQyp2Y3P.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Medium-ByKogCTi.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-MediumItalic-i1eR0KbF.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Regular-C6rbFxYz.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-RegularItalic-CvPUdkvM.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Thin-NicBC1pN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-ThinItalic-CKlCjrO_.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/server-RYtUROqF.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-gi-f6Gjx.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-CJX3k0Fd-CLDxoSv_.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-DYkoX3oR.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-R4LCAP7J.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/TagInformation-PbQDPmpb.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-a9gMsGkx.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-k-ojjO7G-CHVzRXi1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/User-CIFHdgrZ.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/UserStats-DSyaFn7j.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/VerifyEmail-DWS9S3tV.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/vue.runtime.esm-bundler-C3q8JS9f.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-BOnRlZgd-DhZkqecP.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-Dd6tIKrt-CVY1zayr.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-DBwpKi3B.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"b71387b4508120b59615e43d5e103706\"\n },\n {\n \"url\": \"img/icons/safari-pinned-tab.svg\",\n \"revision\": \"f22d501a35a87d9f21701cb031f6ea17\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"8722fd160e8da9c3e306bb37ce274c7d\"\n },\n {\n \"url\": \"manifest.json\",\n \"revision\": \"14a155103e25199244cdda503219c3e1\"\n },\n {\n \"url\": \"robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"0ad80257ac95729a8c88588d23a396c1\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"/index.html\"), {\n allowlist: [/^(?!\\/(couch|express)).*$/],\n \n}));\n\n\n\n\n\n\n"],"names":["self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL","allowlist"],"mappings":"0nBAwBAA,KAAKC,cAELC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,4CACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C,eAAgB,CAC3HC,UAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"sw.js","sources":["../../../../../../../tmp/349a1c64ac676ca07ca32c252e837879/sw.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/About-eVevEMqh.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-C_oJ8NGZ.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-CWnC_vEI.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-BbHATAzk-BhFAwbgX.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-BbHATAzk-DB7z_kWx.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-X1bmWmh3-C7B3mHa1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chunk-D6hFPZc3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ClassroomCtrlPanel-DanEeAZ0.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Classrooms-OrG6VOnx.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui-BY2Ut5jf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-C18SEA_L.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-p3cgaI_b.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-CK8Xh2h2.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-DvfjFpWl.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-CsGfVDf9.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-DB0JFz1Q.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-D750E7i0.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-OzjKW1B2.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-CszlUrrD.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-D2Tzeiyw.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-DA7EuQY2.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-DCY40cJ7.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-leWgtXBf.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-BIV0deYk.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-BLMFpJm1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-BmU0CqZt.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-DgUqPPoO.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-Dk7YG8Td-YK4jNZUN.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-evUMlbbq-BbJDdRqK.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-B-cSF0fq.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-CmEEzdUX.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-DPSfXf5z.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-KoSLXpUy.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-DoVbFpA6-CvaBjTS8.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-DoVbFpA6-DZdbKtns.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/materialdesignicons-webfont-Dp5v-WZN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-CLJIZTjv.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-CZyvKZtp.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-DYni7rRl-C6a4BDoN.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/NewCourseDialog-BXxQ1cvK.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-BN5Btq91-Cdn8kuW5.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-AR14jqWm.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-BLvDAgl1.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-CgGJFkZ1-DYkp_AV0.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-Dn0iNqiS-CJ_97iB4.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ReleaseNotes-CERYwZro.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-Bc4FHaYS.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-Du5-awJG.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ResetPassword-CeR_bmOz.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Black-VhoA2qKx.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BlackItalic-D4yie1YO.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Bold-hN3duQhD.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BoldItalic-BWDm51uc.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Light-DHTugVNA.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-LightItalic-JQyp2Y3P.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Medium-ByKogCTi.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-MediumItalic-i1eR0KbF.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Regular-C6rbFxYz.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-RegularItalic-CvPUdkvM.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Thin-NicBC1pN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-ThinItalic-CKlCjrO_.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/server-Bq50faqp.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-BNrrORP_.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-DkUGf5Yf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-CJX3k0Fd-l4fhB1Aj.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-R4LCAP7J.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-voro05GB.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/TagInformation-1urKQaI-.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-B7ZMUAQJ.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-Cl6jtRmX.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-k-ojjO7G-CHgxm7Rx.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/User-26Hebdw-.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/UserStats-DbWUnAPD.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/VerifyEmail-uix17ueS.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/vue.runtime.esm-bundler-C3q8JS9f.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-BOnRlZgd-CGV2xRx9.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-Dd6tIKrt-BjF3-3lq.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-DBwpKi3B.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"b71387b4508120b59615e43d5e103706\"\n },\n {\n \"url\": \"img/icons/safari-pinned-tab.svg\",\n \"revision\": \"f22d501a35a87d9f21701cb031f6ea17\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"2d74e67693c07ab49c1cd655f61a595f\"\n },\n {\n \"url\": \"manifest.json\",\n \"revision\": \"14a155103e25199244cdda503219c3e1\"\n },\n {\n \"url\": \"robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"0ad80257ac95729a8c88588d23a396c1\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"/index.html\"), {\n allowlist: [/^(?!\\/(couch|express)).*$/],\n \n}));\n\n\n\n\n\n\n"],"names":["self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL","allowlist"],"mappings":"0nBAwBAA,KAAKC,cAELC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,4CACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C,eAAgB,CAC3HC,UAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.1.
|
|
6
|
+
"version": "0.1.36",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"dev": "vite",
|
|
9
9
|
"build": "vite build",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@mdi/font": "^7.3.67",
|
|
27
27
|
"@tonaljs/tonal": "^3.6.0",
|
|
28
|
-
"@vue-skuilder/common": "0.1.
|
|
29
|
-
"@vue-skuilder/common-ui": "0.1.
|
|
30
|
-
"@vue-skuilder/courseware": "0.1.
|
|
31
|
-
"@vue-skuilder/db": "0.1.
|
|
32
|
-
"@vue-skuilder/edit-ui": "0.1.
|
|
28
|
+
"@vue-skuilder/common": "0.1.36",
|
|
29
|
+
"@vue-skuilder/common-ui": "0.1.36",
|
|
30
|
+
"@vue-skuilder/courseware": "0.1.36",
|
|
31
|
+
"@vue-skuilder/db": "0.1.36",
|
|
32
|
+
"@vue-skuilder/edit-ui": "0.1.36",
|
|
33
33
|
"@vue/compiler-sfc": "^3.5.13",
|
|
34
34
|
"abcjs": "^6.2.2",
|
|
35
35
|
"canvas-confetti": "^1.9.3",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"engines": {
|
|
92
92
|
"node": ">=18"
|
|
93
93
|
},
|
|
94
|
-
"stableVersion": "0.1.
|
|
94
|
+
"stableVersion": "0.1.36"
|
|
95
95
|
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="playtest pa-4">
|
|
3
|
+
<!-- Index mode: no question selected -->
|
|
4
|
+
<template v-if="!slug">
|
|
5
|
+
<h1 class="text-h4 mb-4">Playtest</h1>
|
|
6
|
+
<p class="text-body-2 mb-4">
|
|
7
|
+
Render any question type from <code>@vue-skuilder/courseware</code> with author-input
|
|
8
|
+
and/or self-generation. Dev-only route. Bypasses the <code>allCourseWare</code> registry —
|
|
9
|
+
unregistered prototypes (e.g. forks) are loadable here.
|
|
10
|
+
</p>
|
|
11
|
+
<div v-for="group in grouped" :key="group.domain" class="mb-4">
|
|
12
|
+
<h2 class="text-h6">{{ group.domain }}</h2>
|
|
13
|
+
<ul>
|
|
14
|
+
<li v-for="q in group.questions" :key="q.slug">
|
|
15
|
+
<router-link :to="`/play/${q.slug}`">{{ q.slug }}</router-link>
|
|
16
|
+
</li>
|
|
17
|
+
</ul>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<!-- Loading / error -->
|
|
22
|
+
<template v-else-if="loadError">
|
|
23
|
+
<router-link to="/play">← back to index</router-link>
|
|
24
|
+
<v-alert type="error" class="mt-4">{{ loadError }}</v-alert>
|
|
25
|
+
</template>
|
|
26
|
+
<template v-else-if="!QClass">
|
|
27
|
+
<v-progress-circular indeterminate />
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<!-- Question mode -->
|
|
31
|
+
<template v-else>
|
|
32
|
+
<div class="d-flex align-center mb-3">
|
|
33
|
+
<router-link to="/play">← index</router-link>
|
|
34
|
+
<h1 class="text-h5 mx-4">{{ slug }}</h1>
|
|
35
|
+
<v-chip size="small" :color="QClass.acceptsUserData ? 'primary' : 'secondary'">
|
|
36
|
+
{{ QClass.acceptsUserData ? 'authored' : 'self-gen' }}
|
|
37
|
+
</v-chip>
|
|
38
|
+
<v-spacer />
|
|
39
|
+
<v-btn size="small" color="primary" @click="reroll">Reroll</v-btn>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<v-row>
|
|
43
|
+
<!-- Author input + DataInputForm's own preview -->
|
|
44
|
+
<v-col v-if="dataShape" cols="12" lg="6">
|
|
45
|
+
<h3 class="text-subtitle-1 mb-2">Author input</h3>
|
|
46
|
+
<DataInputForm
|
|
47
|
+
:key="`form-${rerollKey}`"
|
|
48
|
+
:data-shape="dataShape"
|
|
49
|
+
:preview-component="QClass"
|
|
50
|
+
:course-cfg="fakeCourseCfg"
|
|
51
|
+
/>
|
|
52
|
+
</v-col>
|
|
53
|
+
|
|
54
|
+
<!-- Direct CardViewer + response log -->
|
|
55
|
+
<v-col :cols="dataShape ? 12 : 12" :lg="dataShape ? 6 : 12">
|
|
56
|
+
<h3 class="text-subtitle-1 mb-2">Render & capture</h3>
|
|
57
|
+
<div v-if="renderData">
|
|
58
|
+
<CardViewer
|
|
59
|
+
:key="`view-${rerollKey}`"
|
|
60
|
+
:view="QClass.views[0]"
|
|
61
|
+
:data="renderData"
|
|
62
|
+
card_id="playtest"
|
|
63
|
+
course_id="playtest"
|
|
64
|
+
@emit-response="onResponse"
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
<v-alert v-else type="info" density="compact">
|
|
68
|
+
Fill in the author form on the left to populate render data.
|
|
69
|
+
</v-alert>
|
|
70
|
+
|
|
71
|
+
<h3 class="text-subtitle-1 mt-4 mb-2">
|
|
72
|
+
Response log ({{ responseLog.length }})
|
|
73
|
+
<v-btn v-if="responseLog.length" size="x-small" variant="text" @click="responseLog = []">
|
|
74
|
+
clear
|
|
75
|
+
</v-btn>
|
|
76
|
+
</h3>
|
|
77
|
+
<pre v-if="responseLog.length" class="response-log">{{
|
|
78
|
+
JSON.stringify(responseLog, null, 2)
|
|
79
|
+
}}</pre>
|
|
80
|
+
<div v-else class="text-caption text-grey">No responses captured yet.</div>
|
|
81
|
+
</v-col>
|
|
82
|
+
</v-row>
|
|
83
|
+
</template>
|
|
84
|
+
</div>
|
|
85
|
+
</template>
|
|
86
|
+
|
|
87
|
+
<script lang="ts">
|
|
88
|
+
import { defineComponent } from 'vue';
|
|
89
|
+
import { useRoute } from 'vue-router';
|
|
90
|
+
import { DataInputForm, useDataInputFormStore } from '@vue-skuilder/edit-ui';
|
|
91
|
+
import { CardViewer, Question } from '@vue-skuilder/common-ui';
|
|
92
|
+
import type { DataShape, CourseConfig, ViewData } from '@vue-skuilder/common';
|
|
93
|
+
import type { CardRecord } from '@vue-skuilder/db';
|
|
94
|
+
|
|
95
|
+
type QClass = typeof Question;
|
|
96
|
+
|
|
97
|
+
// Discover every question module under @vue-skuilder/courseware.
|
|
98
|
+
// import.meta.glob is resolved at build time; in dev these are real
|
|
99
|
+
// filesystem paths across the yarn workspace.
|
|
100
|
+
const questionModules = import.meta.glob('../../../courseware/src/**/questions/**/index.ts');
|
|
101
|
+
|
|
102
|
+
const PREFIX = '../../../courseware/src/';
|
|
103
|
+
const SUFFIX = '/index.ts';
|
|
104
|
+
|
|
105
|
+
function pathToSlug(path: string): string {
|
|
106
|
+
// path: ../../../courseware/src/chess/questions/puzzle/index.ts
|
|
107
|
+
// slug: chess/puzzle
|
|
108
|
+
return path.slice(PREFIX.length, -SUFFIX.length).replace('/questions/', '/');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function slugToPath(slug: string): string {
|
|
112
|
+
// slug: chess/puzzle → path: chess/questions/puzzle
|
|
113
|
+
const [domain, ...rest] = slug.split('/');
|
|
114
|
+
return `${PREFIX}${domain}/questions/${rest.join('/')}${SUFFIX}`;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const allSlugs = Object.keys(questionModules).map(pathToSlug).sort();
|
|
118
|
+
|
|
119
|
+
const groupedSlugs = allSlugs.reduce<{ domain: string; questions: { slug: string }[] }[]>(
|
|
120
|
+
(acc, slug) => {
|
|
121
|
+
const domain = slug.split('/')[0];
|
|
122
|
+
let group = acc.find((g) => g.domain === domain);
|
|
123
|
+
if (!group) {
|
|
124
|
+
group = { domain, questions: [] };
|
|
125
|
+
acc.push(group);
|
|
126
|
+
}
|
|
127
|
+
group.questions.push({ slug });
|
|
128
|
+
return acc;
|
|
129
|
+
},
|
|
130
|
+
[]
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
const fakeCourseCfg: CourseConfig = {
|
|
134
|
+
courseID: 'playtest',
|
|
135
|
+
name: 'Playtest',
|
|
136
|
+
description: 'Dev playtest harness — not a real course.',
|
|
137
|
+
admins: ['admin'],
|
|
138
|
+
creator: 'admin',
|
|
139
|
+
deleted: false,
|
|
140
|
+
moderators: [],
|
|
141
|
+
public: false,
|
|
142
|
+
disambiguator: 'playtest',
|
|
143
|
+
questionTypes: [],
|
|
144
|
+
dataShapes: [],
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
export default defineComponent({
|
|
148
|
+
name: 'PlaytestViewer',
|
|
149
|
+
components: { DataInputForm, CardViewer },
|
|
150
|
+
|
|
151
|
+
setup() {
|
|
152
|
+
return { route: useRoute(), dataInputFormStore: useDataInputFormStore() };
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
data() {
|
|
156
|
+
return {
|
|
157
|
+
QClass: null as QClass | null,
|
|
158
|
+
dataShape: null as DataShape | null,
|
|
159
|
+
loadError: '' as string,
|
|
160
|
+
rerollKey: 0,
|
|
161
|
+
responseLog: [] as CardRecord[],
|
|
162
|
+
grouped: groupedSlugs,
|
|
163
|
+
fakeCourseCfg,
|
|
164
|
+
};
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
computed: {
|
|
168
|
+
slug(): string {
|
|
169
|
+
const raw = this.route.params.pathMatch;
|
|
170
|
+
const s = Array.isArray(raw) ? raw.join('/') : raw || '';
|
|
171
|
+
return s.replace(/^\/+|\/+$/g, '');
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Reactive view-data assembled from the DataInputForm store.
|
|
176
|
+
*
|
|
177
|
+
* Returns `[previewInput]` when the form's validation passes — this is
|
|
178
|
+
* the same shape `card-browser` consumes inside DataInputForm, so the
|
|
179
|
+
* two panels stay in sync. If the dataShape has no fields (rare;
|
|
180
|
+
* fully self-generating types), fall back to `[{}]` so the view can
|
|
181
|
+
* still mount.
|
|
182
|
+
*/
|
|
183
|
+
renderData(): ViewData[] | null {
|
|
184
|
+
if (!this.dataShape) return null;
|
|
185
|
+
if (this.dataShape.fields.length === 0) return [{}];
|
|
186
|
+
const preview = this.dataInputFormStore.dataInputForm.fieldStore.getPreview;
|
|
187
|
+
if (!preview || Object.keys(preview).length === 0) return null;
|
|
188
|
+
return [preview as ViewData];
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
watch: {
|
|
193
|
+
slug: {
|
|
194
|
+
immediate: true,
|
|
195
|
+
handler(s: string) {
|
|
196
|
+
this.load(s);
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
methods: {
|
|
202
|
+
async load(slug: string) {
|
|
203
|
+
this.QClass = null;
|
|
204
|
+
this.dataShape = null;
|
|
205
|
+
this.loadError = '';
|
|
206
|
+
this.responseLog = [];
|
|
207
|
+
if (!slug) return;
|
|
208
|
+
|
|
209
|
+
const path = slugToPath(slug);
|
|
210
|
+
const loader = questionModules[path];
|
|
211
|
+
if (!loader) {
|
|
212
|
+
this.loadError = `No module at ${path}. Known slugs: ${allSlugs.join(', ')}`;
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
try {
|
|
217
|
+
const mod = (await loader()) as Record<string, unknown>;
|
|
218
|
+
const found = Object.values(mod).find(
|
|
219
|
+
(v) => typeof v === 'function' && (v as { prototype: unknown }).prototype instanceof Question
|
|
220
|
+
) as QClass | undefined;
|
|
221
|
+
if (!found) {
|
|
222
|
+
this.loadError = `Module ${path} exports no Question subclass.`;
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
this.QClass = found;
|
|
226
|
+
this.dataShape = found.dataShapes?.[0] ?? null;
|
|
227
|
+
} catch (e) {
|
|
228
|
+
this.loadError = `Failed to load ${path}: ${(e as Error).message}`;
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
|
|
232
|
+
reroll() {
|
|
233
|
+
this.rerollKey++;
|
|
234
|
+
this.responseLog = [];
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
onResponse(r: CardRecord) {
|
|
238
|
+
this.responseLog.push(r);
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
</script>
|
|
243
|
+
|
|
244
|
+
<style scoped>
|
|
245
|
+
.response-log {
|
|
246
|
+
background: rgba(0, 0, 0, 0.04);
|
|
247
|
+
padding: 8px;
|
|
248
|
+
border-radius: 4px;
|
|
249
|
+
font-size: 12px;
|
|
250
|
+
max-height: 320px;
|
|
251
|
+
overflow: auto;
|
|
252
|
+
white-space: pre-wrap;
|
|
253
|
+
}
|
|
254
|
+
</style>
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,S as i,T as a,Vt as o,_ as s,b as c,v as l,y as u}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{B as d,T as f,b as p,c as m,p as h}from"./common-ui.es-ConLKYrk.js";import"./dist-leWgtXBf.js";import"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import{k as g,n as _}from"./dist-DKtzwGWn.js";import{t as v}from"./index-B4di3I6o.js";import{t as y}from"./dist-Daq3OiEc.js";var b=a({name:`AdminDashboard`,components:{CardSearch:m,CardSearchResults:h,CardHistoryViewer:p,CardLoader:d},data(){return{query:``,selectedCard:null,userId:``,userDB:null,dataLayer:null,adminDB:null,selectedUserId:``,selectedUserReader:null,selectedCourseId:null,userOptions:[],courseOptions:[]}},async created(){this.userDB=await f(),this.userId=this.userDB.getUsername(),this.dataLayer=await g(),this.adminDB=this.dataLayer.getAdminDB(),await this.loadUsers(),await this.loadCourses()},methods:{async loadUsers(){try{this.userOptions=(await this.adminDB.getUsers()).filter(e=>e.name&&!e.name.startsWith(`Guest_`)).map(e=>({label:e.name||`Unknown User`,value:e.name||``})).filter(e=>e.value!==``)}catch(e){console.error(`Failed to load users:`,e)}},async onUserSelected(e){if(!e){this.selectedUserReader=null;return}try{this.selectedUserReader=await this.dataLayer.createUserReaderForUser(e)}catch(e){console.error(`Failed to create user reader:`,e),this.selectedUserReader=null}},onSearch(e){this.query=e},onCardSelected(e){this.selectedCard=e},async loadCourses(){try{this.courseOptions=(await _.allCourseWare()).filter(e=>e._id).map(e=>{let t=e.name&&e.name.trim(),n,r;return t&&t!==e._id&&t!==``?(n=t,r=t.toLowerCase()):(n=e._id,r=e._id.toLowerCase()),{label:`📚 ${n}`,value:e._id,sortKey:r}}).sort((e,t)=>e.sortKey.localeCompare(t.sortKey)),console.log(`Loaded ${this.courseOptions.length} courses for filtering (lightweight mode)`)}catch(e){console.error(`Failed to load courses (lightweight):`,e),await this.loadCoursesExpensive()}},async loadCoursesExpensive(){try{console.log(`Using expensive course loading (full configs)...`),this.courseOptions=(await this.dataLayer.getAdminDB().getCourses()).filter(e=>e.courseID).map(e=>{let t=e.name&&e.name.trim(),n=e.creator?` (${e.creator})`:``,r,i;return t&&t!==e.courseID?(r=t,i=t.toLowerCase()):(r=e.courseID,i=e.courseID.toLowerCase()),{label:`${e.public?`🌐`:`🔒`} ${r}${n}`,value:e.courseID,sortKey:i}}).sort((e,t)=>e.sortKey.localeCompare(t.sortKey)),console.log(`Loaded ${this.courseOptions.length} courses for filtering (expensive mode)`)}catch(e){console.error(`Failed to load courses (expensive):`,e),this.loadCoursesBasic()}},async loadCoursesBasic(){try{console.log(`Using fallback course loading (IDs only)`),this.courseOptions=[{label:`⚠️ Course names not available - using IDs only`,value:``}]}catch(e){console.error(`Failed to load basic courses:`,e)}},onCourseFilterChanged(){this.query},getCourseNameById(e){let t=this.courseOptions.find(t=>t.value===e);return t?t.label:e},getSelectedCourseDetails(){return this.selectedCourseId?`ID: ${this.selectedCourseId}`:``},viewLookup(e){return y.getView(e)}}}),x={class:`admin-dashboard`},S={key:0,class:`mt-2`},C={key:0,class:`text-caption text-grey-darken-1`};function _sfc_render(a,d,f,p,m,h){let g=r(`v-card-title`),_=r(`v-select`),v=r(`v-chip`),y=r(`v-card-text`),b=r(`v-card`),w=r(`card-search`),T=r(`card-search-results`),E=r(`v-col`),D=r(`card-loader`),O=r(`v-row`),k=r(`card-history-viewer`);return n(),c(`div`,x,[d[4]||(d[4]=s(`h1`,null,`Admin Dashboard`,-1)),t(b,{class:`mb-4`},{default:e(()=>[t(g,null,{default:e(()=>d[2]||(d[2]=[i(`User Selection`)])),_:1}),t(y,null,{default:e(()=>[t(_,{modelValue:a.selectedUserId,"onUpdate:modelValue":[d[0]||(d[0]=e=>a.selectedUserId=e),a.onUserSelected],items:a.userOptions,"item-title":`label`,"item-value":`value`,label:`Select User`},null,8,[`modelValue`,`items`,`onUpdate:modelValue`]),a.selectedUserId?(n(),l(v,{key:0,color:`primary`,class:`mt-2`},{default:e(()=>[i(` Viewing data for: `+o(a.selectedUserId),1)]),_:1})):u(``,!0)]),_:1})]),_:1}),t(b,{class:`mb-4`},{default:e(()=>[t(g,null,{default:e(()=>d[3]||(d[3]=[i(`Search Filters`)])),_:1}),t(y,null,{default:e(()=>[t(_,{modelValue:a.selectedCourseId,"onUpdate:modelValue":[d[1]||(d[1]=e=>a.selectedCourseId=e),a.onCourseFilterChanged],items:a.courseOptions,"item-title":`label`,"item-value":`value`,label:`Filter by Course (optional)`,clearable:``},null,8,[`modelValue`,`items`,`onUpdate:modelValue`]),a.selectedCourseId?(n(),c(`div`,S,[t(v,{color:`info`,class:`mb-1`},{default:e(()=>[i(` 🎯 `+o(a.getCourseNameById(a.selectedCourseId)),1)]),_:1}),a.getSelectedCourseDetails()?(n(),c(`div`,C,o(a.getSelectedCourseDetails()),1)):u(``,!0)])):(n(),l(v,{key:1,color:`warning`,class:`mt-2`},{default:e(()=>[i(` ⚠️ Searching ALL `+o(a.courseOptions.length)+` courses (may be slow) `,1)]),_:1}))]),_:1})]),_:1}),t(w,{onSearch:a.onSearch},null,8,[`onSearch`]),t(O,null,{default:e(()=>[t(E,{cols:`6`},{default:e(()=>[a.query?(n(),l(T,{key:0,query:a.query,"data-layer":a.dataLayer,"course-filter":a.selectedCourseId,onCardSelected:a.onCardSelected},null,8,[`query`,`data-layer`,`course-filter`,`onCardSelected`])):u(``,!0)]),_:1}),t(E,{cols:`6`},{default:e(()=>[a.selectedCard?(n(),l(D,{key:0,qualified_id:{courseID:a.selectedCard.courseId,cardID:a.selectedCard.cardId},"view-lookup":a.viewLookup},null,8,[`qualified_id`,`view-lookup`])):u(``,!0)]),_:1})]),_:1}),a.selectedCard&&a.selectedUserReader?(n(),l(k,{key:0,"card-id":a.selectedCard.cardId,"course-id":a.selectedCard.courseId,"user-id":a.selectedUserId,"user-d-b":a.selectedUserReader},null,8,[`card-id`,`course-id`,`user-id`,`user-d-b`])):u(``,!0)])}var w=v(b,[[`render`,_sfc_render],[`__scopeId`,`data-v-7409c94e`]]);export{w as default};
|
|
2
|
-
//# sourceMappingURL=AdminDashboard-DO3Mo6_x.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,S as i,T as a,_ as o,v as s,y as c}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{B as l}from"./common-ui.es-ConLKYrk.js";import{m as u}from"./dist-leWgtXBf.js";import"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import{k as d}from"./dist-DKtzwGWn.js";import{t as f}from"./index-B4di3I6o.js";import{t as p}from"./dist-Daq3OiEc.js";var m=a({name:`ELOModerator`,components:{CardLoader:l},props:{courseId:{type:String,required:!0}},data(){return{courseDB:null,updatePending:!0,courseConfig:null,cards:[],id1:null,id2:null,elo1:null,elo2:null,viewLookup:p.getView}},async created(){this.courseDB=d().getCourseDB(this.courseId),this.courseConfig=await this.courseDB.getCourseConfig(),await this.getNewCards()},methods:{vote(e){if(!this.elo1||!this.elo2)return;let t=u(this.elo1,this.elo2,e===`a`?1:0,{globalOnly:!0});this.courseDB.updateCardElo(this.cards[0].cardId,t.userElo),this.courseDB.updateCardElo(this.cards[1].cardId,t.cardElo),this.getNewCards()},async getNewCards(){this.courseDB&&(this.updatePending=!0,this.cards=await this.courseDB.getInexperiencedCards(),this.id1=null,this.id2=null,this.id1={courseID:this.courseId,cardID:this.cards[0].cardId},this.id2={courseID:this.courseId,cardID:this.cards[1].cardId},this.elo1=this.cards[0].elo,this.elo2=this.cards[1].elo,this.updatePending=!1)}}});function _sfc_render(a,l,u,d,f,p){let m=r(`v-col`),h=r(`v-row`),g=r(`v-icon`),_=r(`v-btn`),v=r(`card-loader`),y=r(`v-container`);return a.updatePending?c(``,!0):(n(),s(y,{key:0},{default:e(()=>[t(h,null,{default:e(()=>[t(m,{cols:`12`},{default:e(()=>l[2]||(l[2]=[o(`h1`,null,[i(`Which seems `),o(`em`,null,`harder`),i(`?`)],-1)])),_:1})]),_:1}),t(h,null,{default:e(()=>[t(m,null,{default:e(()=>[t(_,{color:`success`,class:`ma-5`,onClick:l[0]||(l[0]=e=>a.vote(`a`))},{default:e(()=>[t(g,null,{default:e(()=>l[3]||(l[3]=[i(`mdi-check`)])),_:1})]),_:1}),t(v,{class:`ma-2`,qualified_id:a.id1,"view-lookup":a.viewLookup},null,8,[`qualified_id`,`view-lookup`])]),_:1})]),_:1}),t(h,null,{default:e(()=>[t(m,null,{default:e(()=>[t(_,{color:`success`,class:`ma-5`,onClick:l[1]||(l[1]=e=>a.vote(`b`))},{default:e(()=>[t(g,null,{default:e(()=>l[4]||(l[4]=[i(`mdi-check`)])),_:1})]),_:1}),t(v,{class:`ma-2`,qualified_id:a.id2,"view-lookup":a.viewLookup},null,8,[`qualified_id`,`view-lookup`])]),_:1})]),_:1})]),_:1}))}var h=f(m,[[`render`,_sfc_render],[`__scopeId`,`data-v-df68b8b6`]]);export{h as default};
|
|
2
|
-
//# sourceMappingURL=EloModeration-B8hFSqwy.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./chunk-D6hFPZc3.js";import{$ as t,C as n,H as r,It as i,K as a,S as o,T as s,Vt as c,W as l,_ as u,b as d,f,v as p,y as m}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{I as h,M as g,T as _,o as v,z as y}from"./common-ui.es-ConLKYrk.js";import{o as b}from"./dist-leWgtXBf.js";import{n as x}from"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import{k as S}from"./dist-DKtzwGWn.js";import{t as C}from"./index-B4di3I6o.js";import{t as w}from"./dist-Daq3OiEc.js";import{i as T}from"./edit-ui.es-DNDxRLE6.js";var E=s({name:`SessionConfiguration`,components:{SkMouseTrapToolTip:v,CourseTagFilterWidget:y},props:{initialTimeLimit:{type:Number,required:!0,default:5}},emits:[`initStudySession`],data(){return{registeredHotkeys:[],allSelected:!0,activeCourses:[],activeClasses:[],hasRegistrations:!0,user:null,timeLimit:this.initialTimeLimit,courseLoadError:!1,classroomLoadError:!1,expandedFilters:{}}},computed:{hasSelectedSources(){return this.activeCourses.some(e=>e.selected)||this.activeClasses.some(e=>e.selected)},hasAnyActiveFilter(){return this.activeCourses.some(e=>e.selected&&this.hasActiveTagFilter(e))},activeFilterCount(){return this.activeCourses.filter(e=>e.selected&&this.hasActiveTagFilter(e)).length}},watch:{timeLimit:{handler(){this.timeLimit<=0&&(this.timeLimit=1)}}},beforeUnmount(){this.registeredHotkeys&&this.registeredHotkeys.forEach(e=>{x.removeBinding(e)})},async created(){this.user=await _(),this.timeLimit=this.initialTimeLimit,this.setHotkeys();let[e,t]=await Promise.allSettled([this.getActiveCourses(),this.getActiveClassrooms()]);e.status===`rejected`&&(console.error(`Failed to load courses:`,e.reason),this.courseLoadError=!0),t.status===`rejected`&&(console.error(`Failed to load classrooms:`,t.reason),this.classroomLoadError=!0),this.activeCourses.length===0&&this.activeClasses.length===0&&!this.courseLoadError&&!this.classroomLoadError&&(this.hasRegistrations=!1)},mounted(){document.getElementById(`SelectAll`)?.focus()},unmounted(){this.registeredHotkeys&&this.registeredHotkeys.forEach(e=>{x.removeBinding(e)})},methods:{inc(){this.timeLimit+=1,console.log(`inc to ${this.timeLimit}`)},dec(){this.timeLimit--,console.log(`dec to ${this.timeLimit}`)},update(){console.log(JSON.stringify(this.activeCourses)),console.log(JSON.stringify(this.activeClasses))},toggleAll(){console.log(`Toggling all courses`),this.activeCourses.forEach(e=>{e.selected=this.allSelected}),this.activeClasses.forEach(e=>{e.selected=this.allSelected}),console.log(JSON.stringify(this.activeCourses))},toggleTagFilter(e){this.expandedFilters[e]=!this.expandedFilters[e]},hasActiveTagFilter(e){return b(e.tagFilter)},startSession(){this.registeredHotkeys&&this.registeredHotkeys.forEach(e=>{x.removeBinding(e)});let e=this.activeCourses.filter(e=>e.selected).map(e=>{let t={type:`course`,id:e.courseID};return b(e.tagFilter)&&(t.tagFilter=e.tagFilter),t}),t=this.activeClasses.filter(e=>e.selected).map(e=>({type:`classroom`,id:e.classID})),n=[...e,...t];this.$emit(`initStudySession`,n,this.timeLimit)},async getActiveClassrooms(){let e=await(await _()).getActiveClasses(),t=[];console.log(`Active classes: ${JSON.stringify(e)}`),await Promise.all(e.map(e=>(async e=>{let n=await S().getClassroomDB(e,`student`);t.push({classID:e,name:n.getConfig().name,selected:!0,reviews:0})})(e))),this.activeClasses=t},async getActiveCourses(){this.activeCourses=(await this.user.getActiveCourses()).map(e=>({...e,selected:!0,name:``,reviews:0,tagFilter:void 0})),Promise.all(this.activeCourses.map(async(e,t)=>{let n=await S().getCoursesDB().getCourseConfig(e.courseID),r=await this.user?.getCourseInterface(e.courseID);return(async()=>Promise.all([this.activeCourses[t].name=n.name,this.activeCourses[t].reviews=await r.getScheduledReviewCount()]))()}))},setHotkeys(){let e=[{hotkey:`right`,callback:()=>{this.timeLimit++},command:`Increase time limit`},{hotkey:`left`,callback:()=>{this.timeLimit--},command:`Decrease time limit`}];x.addBinding(e),this.registeredHotkeys=e.map(e=>e.hotkey)}}}),D={key:0},O={class:`session-layout`},k={class:`course-selection-container`},A={class:`course-row-header`},j={class:`course-row-header`},M={class:`course-row-actions`},N={class:`reviews-count`},P={key:0,class:`tag-filter-container`},F={class:`select-all-row mt-3`},I={class:`fixed-controls-container`},L={class:`fixed-controls`},R={class:`mb-5`},z={key:0,class:`filter-summary mb-4`},B={class:`text-caption`},V={key:1,class:`text-h4`},H={key:2,class:`text-h4`};function _sfc_render$1(e,i,s,h,g,_){let v=a(`v-alert`),y=a(`v-checkbox`),b=a(`v-icon`),x=a(`v-btn`),S=a(`CourseTagFilterWidget`),C=a(`v-expand-transition`),w=a(`v-text-field`),T=a(`SkMouseTrapToolTip`),E=a(`router-link`);return e.hasRegistrations||e.courseLoadError||e.classroomLoadError?(r(),d(`div`,D,[i[11]||(i[11]=u(`div`,{"data-cy":`select-quilts-header`,class:`text-h4 mb-4`},`Study Session Setup`,-1)),e.courseLoadError?(r(),p(v,{key:0,type:`warning`,class:`mb-4`},{default:t(()=>i[2]||(i[2]=[o(` Unable to load course data. Some features may be unavailable. `)])),_:1})):m(``,!0),e.classroomLoadError?(r(),p(v,{key:1,type:`warning`,class:`mb-4`},{default:t(()=>i[3]||(i[3]=[o(` Unable to load classroom data. You can still study individual courses. `)])),_:1})):m(``,!0),u(`div`,O,[u(`div`,k,[i[6]||(i[6]=u(`div`,{class:`text-h6 mb-3`},`Select Quilts to Study`,-1)),(r(!0),d(f,null,l(e.activeClasses,t=>(r(),d(`div`,{key:t.classID,class:`course-row`},[u(`div`,A,[n(y,{modelValue:t.selected,"onUpdate:modelValue":e=>t.selected=e,label:`Class: ${t.name}`,"hide-details":``,onClickCapture:e.update},null,8,[`modelValue`,`onUpdate:modelValue`,`label`,`onClickCapture`]),i[4]||(i[4]=u(`span`,{class:`reviews-count`},`-`,-1))])]))),128)),(r(!0),d(f,null,l(e.activeCourses,a=>(r(),d(`div`,{key:a.courseID,class:`course-row`},[u(`div`,j,[n(y,{modelValue:a.selected,"onUpdate:modelValue":e=>a.selected=e,"data-cy":`course-checkbox`,label:`q/${a.name}`,"hide-details":``,onClickCapture:e.update},null,8,[`modelValue`,`onUpdate:modelValue`,`label`,`onClickCapture`]),u(`div`,M,[u(`span`,N,c(a.reviews),1),a.selected?(r(),p(x,{key:0,variant:`text`,size:`small`,color:e.hasActiveTagFilter(a)?`primary`:`default`,onClick:t=>e.toggleTagFilter(a.courseID)},{default:t(()=>[n(b,{start:``,size:`small`},{default:t(()=>i[5]||(i[5]=[o(`mdi-filter-variant`)])),_:1}),o(` `+c(e.hasActiveTagFilter(a)?`Filtered`:`Filter`)+` `,1),n(b,{end:``,size:`small`},{default:t(()=>[o(c(e.expandedFilters[a.courseID]?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:2},1024)]),_:2},1032,[`color`,`onClick`])):m(``,!0)])]),n(C,null,{default:t(()=>[a.selected&&e.expandedFilters[a.courseID]?(r(),d(`div`,P,[n(S,{modelValue:a.tagFilter,"onUpdate:modelValue":e=>a.tagFilter=e,"course-id":a.courseID},null,8,[`modelValue`,`onUpdate:modelValue`,`course-id`])])):m(``,!0)]),_:2},1024)]))),128)),u(`div`,F,[n(y,{id:`SelectAll`,ref:`selectAll`,modelValue:e.allSelected,"onUpdate:modelValue":[i[0]||(i[0]=t=>e.allSelected=t),e.toggleAll],autofocus:``,label:`Select All`,"hide-details":``},null,8,[`modelValue`,`onUpdate:modelValue`])])]),u(`div`,I,[u(`div`,L,[i[10]||(i[10]=u(`div`,{class:`text-h6 mb-3`},`Session Settings`,-1)),u(`div`,R,[n(w,{ref:`numberField`,modelValue:e.timeLimit,"onUpdate:modelValue":i[1]||(i[1]=t=>e.timeLimit=t),class:`time-limit-field`,variant:`outlined`,label:`Study Session Timelimit`,"prepend-inner-icon":`mdi-clock-outline`,"prepend-icon":`mdi-minus`,"append-icon":`mdi-plus`,suffix:e.timeLimit>1?`minutes`:`minute`,mask:`##`,type:`number`,"onClick:prepend":e.dec,"onClick:append":e.inc},null,8,[`modelValue`,`suffix`,`onClick:prepend`,`onClick:append`])]),e.hasAnyActiveFilter?(r(),d(`div`,z,[n(b,{size:`small`,color:`primary`,class:`mr-1`},{default:t(()=>i[7]||(i[7]=[o(`mdi-filter`)])),_:1}),u(`span`,B,c(e.activeFilterCount)+` course`+c(e.activeFilterCount>1?`s`:``)+` with tag filters `,1)])):m(``,!0),n(T,{hotkey:`enter`,command:`Start Session`,disabled:!e.hasSelectedSources,"highlight-effect":`scale`},{default:t(()=>[n(x,{"data-cy":`start-studying-button`,color:`success`,size:`large`,block:``,class:`start-btn`,disabled:!e.hasSelectedSources,onClick:e.startSession},{default:t(()=>[n(b,{start:``},{default:t(()=>i[8]||(i[8]=[o(`mdi-play`)])),_:1}),i[9]||(i[9]=o(` Start! `))]),_:1},8,[`disabled`,`onClick`])]),_:1},8,[`disabled`])])])])])):!e.courseLoadError&&!e.classroomLoadError?(r(),d(`div`,V,[i[15]||(i[15]=u(`p`,null,`You don't have anything to study!`,-1)),u(`p`,null,[i[13]||(i[13]=o(`Head over to the `)),n(E,{to:`/quilts`},{default:t(()=>i[12]||(i[12]=[o(`Quilts`)])),_:1}),i[14]||(i[14]=o(` page to find something for you.`))])])):(r(),d(`div`,H,i[16]||(i[16]=[u(`p`,null,`Unable to load study data due to technical issues.`,-1),u(`p`,null,`Please try refreshing the page or contact support if the problem persists.`,-1)])))}e(_sfc_render$1,`_sfc_render`);var U=C(E,[[`render`,_sfc_render$1],[`__scopeId`,`data-v-c5ff4b5f`]]);function randomInt(e,t){return Math.floor(Math.random()*(t-e+1))+e}var W=s({name:`StudyView`,components:{SessionConfiguration:U,StudySession:g},inject:{router:{from:`router`}},props:{previewCourseID:{type:String,required:!1,default:``},randomPreview:{type:Boolean,required:!1},focusCourseID:{type:String,required:!1,default:``}},data(){return{user:null,studySessionConfig:void 0,previewCourseConfig:void 0,previewMode:!1,sessionTimeLimit:5,inSession:!1,sessionPrepared:!1,sessionError:!1,errorMessage:``,sessionContentSources:[],dataInputFormStore:T(),getViewComponent:e=>w.getView(e),dataLayer:S()}},async created(){this.user=await _(),this.studySessionConfig={likesConfetti:h().config.likesConfetti};let e=``;if(this.randomPreview){let t=await this.user.getCourseRegistrationsDoc(),n=(await S().getCoursesDB().getCourseList()).map(e=>e.courseID),r=n.filter(e=>!t.courses.some(t=>t.courseID===e));e=r.length>0?r[randomInt(0,r.length)]:n[randomInt(0,n.length)]}if(this.previewCourseID&&(this.previewMode=!0,S().getCoursesDB().getCourseList().then(e=>{e.forEach(e=>{e.courseID===this.previewCourseID&&(this.previewCourseConfig=e,this.previewCourseConfig.courseID=e.courseID)})}),console.log(`[Study] COURSE PREVIEW MODE FOR ${this.previewCourseID}`),await this.user.registerForCourse(this.previewCourseID,!0),e=this.previewCourseID),this.focusCourseID&&(console.log(`[Study] FOCUS study session: ${this.focusCourseID}`),e=this.focusCourseID),e){let t=this.parseTagFilterFromQuery(),n={type:`course`,id:e};b(t)&&(n.tagFilter=t,console.log(`[Study] Tag filter from query params:`,t)),this.initStudySession([n],this.sessionTimeLimit)}},methods:{refreshRoute(){this.router.go(0)},async initStudySession(e,t){console.log(`[Study] starting study session w/ sources: ${JSON.stringify(e)}`),this.sessionContentSources=e,this.sessionTimeLimit=t,this.inSession=!0,this.sessionPrepared=!1,console.log(`[Study] Waiting for session-prepared event from StudySession component`)},registerUserForPreviewCourse(){this.user.registerForCourse(this.previewCourseConfig.courseID).then(()=>this.router.push(`/quilts/${this.previewCourseConfig.courseID}`))},handleSessionFinished(){this.refreshRoute()},handleSessionPrepared(){console.log(`[Study] Session preparation complete - received session-prepared event`),this.sessionPrepared=!0,this.sessionError=!1,this.errorMessage=``},handleSessionError({message:e,error:t}){console.error(`[Study] Session error:`,e,t),this.sessionError=!0,this.errorMessage=e||`An error occurred while preparing your study session.`,this.sessionPrepared=!1},parseTagFilterFromQuery(){let e=this.$route.query.include,t=this.$route.query.exclude,parseParam=e=>e?Array.isArray(e)?e.flatMap(e=>e?e.split(`,`).map(e=>e.trim()):[]).filter(Boolean):e.split(`,`).map(e=>e.trim()).filter(Boolean):[];return{include:parseParam(e),exclude:parseParam(t)}}}}),G={key:0},K={key:1},q={key:0,align:`center`},J={class:`text-h5`},Y={key:1},X={key:2},Z={key:0,class:`session-loading`},Q={key:1,class:`session-error`},$={class:`text-subtitle-1 mt-2`};function _sfc_render(e,s,l,f,p,h){let g=a(`SessionConfiguration`),_=a(`v-btn`),v=a(`router-link`),y=a(`v-spacer`),b=a(`v-col`),x=a(`v-row`),S=a(`v-progress-circular`),C=a(`v-container`),w=a(`v-icon`),T=a(`StudySession`);return e.inSession?(r(),d(`div`,K,[e.previewMode&&e.previewCourseConfig?(r(),d(`div`,q,[n(x,null,{default:t(()=>[n(b,null,{default:t(()=>[u(`span`,J,[s[1]||(s[1]=o(` Quilt preview for `)),u(`em`,null,c(e.previewCourseConfig.name),1)]),n(_,{size:`small`,color:`primary`,onClick:e.registerUserForPreviewCourse},{default:t(()=>s[2]||(s[2]=[o(`Join`)])),_:1},8,[`onClick`]),n(v,{to:`/quilts/${e.previewCourseConfig.courseID}`},{default:t(()=>[n(_,{size:`small`,color:`secondary`},{default:t(()=>s[3]||(s[3]=[o(`More info`)])),_:1})]),_:1},8,[`to`]),n(y)]),_:1})]),_:1})])):e.previewMode?(r(),d(`div`,Y,[n(x,null,{default:t(()=>[n(b,null,{default:t(()=>s[4]||(s[4]=[u(`span`,{class:`text-h5`},`... No course was specified for the preview.`,-1),u(`div`,null,`(this shouldn't happen)...`,-1)])),_:1})]),_:1})])):m(``,!0),e.inSession?(r(),d(`div`,X,[!e.sessionPrepared&&!e.sessionError?(r(),d(`div`,Z,[n(C,{class:`text-center`},{default:t(()=>[n(x,{justify:`center`,align:`center`,style:{"min-height":`50vh`}},{default:t(()=>[n(b,{cols:`12`},{default:t(()=>[n(S,{size:`70`,width:`7`,color:`primary`,indeterminate:``}),s[5]||(s[5]=u(`div`,{class:`text-h5 mt-4`},`Preparing your study session...`,-1)),s[6]||(s[6]=u(`div`,{class:`text-subtitle-1 mt-2`},`Getting your learning materials ready`,-1))]),_:1})]),_:1})]),_:1})])):m(``,!0),e.sessionError?(r(),d(`div`,Q,[n(C,{class:`text-center`},{default:t(()=>[n(x,{justify:`center`,align:`center`,style:{"min-height":`50vh`}},{default:t(()=>[n(b,{cols:`12`},{default:t(()=>[n(w,{size:`64`,color:`error`},{default:t(()=>s[7]||(s[7]=[o(`mdi-alert-circle`)])),_:1}),s[9]||(s[9]=u(`div`,{class:`text-h5 mt-4 text-error`},`Session Preparation Failed`,-1)),u(`div`,$,c(e.errorMessage||`There was a problem preparing your study session.`),1),n(_,{color:`primary`,class:`mt-6`,onClick:e.refreshRoute},{default:t(()=>s[8]||(s[8]=[o(`Try Again`)])),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1})])):m(``,!0),n(T,{"content-sources":e.sessionContentSources,"session-time-limit":e.sessionTimeLimit,user:e.user,"session-config":e.studySessionConfig,"data-layer":e.dataLayer,"get-view-component":e.getViewComponent,class:i({"hidden-session":!e.sessionPrepared}),onSessionFinished:e.handleSessionFinished,onSessionPrepared:e.handleSessionPrepared,onSessionError:e.handleSessionError},null,8,[`content-sources`,`session-time-limit`,`user`,`session-config`,`data-layer`,`get-view-component`,`class`,`onSessionFinished`,`onSessionPrepared`,`onSessionError`])])):m(``,!0)])):(r(),d(`div`,G,[n(g,{"initial-time-limit":e.sessionTimeLimit,onInitStudySession:s[0]||(s[0]=(t,n)=>e.initStudySession(t,n))},null,8,[`initial-time-limit`])]))}var ee=C(W,[[`render`,_sfc_render],[`__scopeId`,`data-v-dcbc1fde`]]);export{ee as default};
|
|
2
|
-
//# sourceMappingURL=Study-DYkoX3oR.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,S as i,T as a,Vt as o,_ as s,b as c,v as l,y as u}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{P as d,v as f}from"./common-ui.es-ConLKYrk.js";import{T as p}from"./dist-leWgtXBf.js";import"./MarkdownRenderer-DoVbFpA6-CvaBjTS8.js";import{k as m,r as h}from"./dist-DKtzwGWn.js";import{t as g}from"./index-B4di3I6o.js";import{t as _}from"./dist-Daq3OiEc.js";var v=a({name:`TagInformation`,components:{CourseCardBrowser:d},props:{tagId:{type:String,required:!0},courseId:{type:String,required:!0}},data(){return{snippetModel:``,editingSnippet:!1,snippetSaving:!1,wikiModel:``,editingWiki:!1,wikiSaving:!1,courseDB:null,tag:{course:this.courseId,name:this.tagId,snippet:``,wiki:``,taggedCards:[],docType:h.TAG},course:{courseID:this.courseId,name:``,description:``,public:!1,deleted:!1,dataShapes:[],questionTypes:[],creator:``,admins:[],moderators:[]}}},async created(){this.courseDB=m().getCourseDB(this.courseId),this.tag=await this.courseDB.getTag(this.tagId),this.snippetModel=this.tag.snippet,this.wikiModel=this.tag.wiki,this.course=await this.courseDB.getCourseConfig()},methods:{viewLookup(e){return _.getView(e)},editSnippet(){console.log(`[TagInformation] EditSnip`),this.editingSnippet=!0,this.$refs.snippetEditor.focus()},editWiki(){console.log(`[TagInformation] EditWiki`),this.editingWiki=!0,this.$refs.wikiEditor.focus()},async saveSnippet(){this.snippetSaving=!0,(await this.courseDB.updateTag({...this.tag,snippet:this.snippetModel})).ok?(console.log(`[TagInformation] OK`),this.tag.snippet=this.snippetModel,f({text:`Updated applied - thanks!`,status:p.ok})):f({text:`error in applying update!`,status:p.error}),this.editingSnippet=!1,this.snippetSaving=!1},async saveWiki(){this.wikiSaving=!0,(await this.courseDB.updateTag({...this.tag,wiki:this.wikiModel})).ok?(this.tag.wiki=this.wikiModel,f({text:`Updated applied - thanks!`,status:p.ok})):f({text:`error in applying update!`,status:p.error}),this.editingWiki=!1,this.wikiSaving=!1},cancelEditSnippet(){console.log(`[TagInformation] Cancelling EditSnip`),this.editingSnippet=!1,this.snippetModel=this.tag.snippet},cancelEditWiki(){this.editingWiki=!1,this.wikiModel=this.tag.wiki}}}),y={key:0},b={key:0};function _sfc_render(a,d,f,p,m,h){let g=r(`router-link`),_=r(`v-icon`),v=r(`v-progress-circular`),x=r(`v-fade-transition`),S=r(`v-text-field`),C=r(`course-card-browser`);return n(),c(`div`,null,[s(`h1`,null,[t(g,{to:`/q/${a.course.name}`},{default:e(()=>[i(o(a.course.name),1)]),_:1},8,[`to`]),i(` > Tag: `+o(a.tag.name),1)]),d[8]||(d[8]=s(`br`,null,null,-1)),s(`p`,null,o(a.tag.taggedCards.length)+` card`+o(a.tag.taggedCards.length===1?``:`s`),1),t(S,{ref:`snippetEditor`,modelValue:a.snippetModel,"onUpdate:modelValue":d[0]||(d[0]=e=>a.snippetModel=e),variant:`outlined`,readonly:!a.editingSnippet,counter:a.editingSnippet,label:`Brief tag description:`,placeholder:`No snippet yet - add one!`,type:`text`},{prepend:e(()=>[a.editingSnippet?(n(),c(`span`,y,[t(_,{color:`primary`,onClick:a.saveSnippet},{default:e(()=>d[2]||(d[2]=[i(`mdi-content-save`)])),_:1},8,[`onClick`])])):(n(),l(_,{key:1,color:`primary`,onClick:a.editSnippet},{default:e(()=>d[3]||(d[3]=[i(`mdi-pencil`)])),_:1},8,[`onClick`]))]),append:e(()=>[a.editingSnippet?(n(),l(_,{key:0,onClick:a.cancelEditSnippet},{default:e(()=>d[4]||(d[4]=[i(`mdi-cancel`)])),_:1},8,[`onClick`])):u(``,!0),t(x,{"leave-absolute":``},{default:e(()=>[a.snippetSaving?(n(),l(v,{key:0,size:`20`,color:`info`,indeterminate:``})):u(``,!0)]),_:1})]),_:1},8,[`modelValue`,`readonly`,`counter`]),t(S,{ref:`wikiEditor`,modelValue:a.wikiModel,"onUpdate:modelValue":d[1]||(d[1]=e=>a.wikiModel=e),variant:`outlined`,readonly:!a.editingWiki,counter:a.editingWiki,label:`Extended tag description:`,placeholder:`No wiki yet - consider adding one!`,textarea:``},{prepend:e(()=>[a.editingWiki?(n(),c(`span`,b,[t(_,{color:`primary`,onClick:a.saveWiki},{default:e(()=>d[5]||(d[5]=[i(`mdi-content-save`)])),_:1},8,[`onClick`])])):(n(),l(_,{key:1,color:`primary`,onClick:a.editWiki},{default:e(()=>d[6]||(d[6]=[i(`mdi-pencil`)])),_:1},8,[`onClick`]))]),append:e(()=>[a.editingWiki?(n(),l(_,{key:0,onClick:a.cancelEditWiki},{default:e(()=>d[7]||(d[7]=[i(`mdi-cancel`)])),_:1},8,[`onClick`])):u(``,!0),t(x,{"leave-absolute":``},{default:e(()=>[a.wikiSaving?(n(),l(v,{key:0,size:`20`,color:`info`,indeterminate:``})):u(``,!0)]),_:1})]),_:1},8,[`modelValue`,`readonly`,`counter`]),t(C,{"course-id":a.courseId,"tag-id":a.tagId,"view-lookup-function":a.viewLookup},null,8,[`course-id`,`tag-id`,`view-lookup-function`])])}var x=g(v,[[`render`,_sfc_render]]);export{x as default};
|
|
2
|
-
//# sourceMappingURL=TagInformation-PbQDPmpb.js.map
|