@vue-skuilder/courseware 0.1.33 → 0.1.35
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/CourseWare-BTFRjgBR.js +305 -0
- package/dist/CourseWare-BTFRjgBR.js.map +1 -0
- package/dist/CourseWare-DSeyTAtH.cjs +2 -0
- package/dist/CourseWare-DSeyTAtH.cjs.map +1 -0
- package/dist/assets/CourseWare.css +1 -0
- package/dist/assets/chess.css +1 -0
- package/dist/assets/index.css +1 -1
- package/dist/assets/math.css +1 -0
- package/dist/assets/piano.css +1 -0
- package/dist/assets/sightsing.css +1 -0
- package/dist/assets/typing.css +1 -0
- package/dist/backend.cjs.js +1 -1
- package/dist/backend.cjs.js.map +1 -1
- package/dist/backend.mjs +4 -3
- package/dist/backend.mjs.map +1 -1
- package/dist/chess/components/ChessBoard.vue.d.ts.map +1 -1
- package/dist/chess/composables/useChessgroundBounds.d.ts +24 -0
- package/dist/chess/composables/useChessgroundBounds.d.ts.map +1 -0
- package/dist/chess/questions/puzzle/puzzle.vue.d.ts.map +1 -1
- package/dist/chess-BbHATAzk.js +2949 -0
- package/dist/chess-BbHATAzk.js.map +1 -0
- package/dist/chess-BsgVZARV.cjs +7 -0
- package/dist/chess-BsgVZARV.cjs.map +1 -0
- package/dist/chess-C_2RQEuq.cjs +1 -0
- package/dist/chess-X1bmWmh3.js +3 -0
- package/dist/french-Bxet7hJm.cjs +2 -0
- package/dist/french-Bxet7hJm.cjs.map +1 -0
- package/dist/french-Dk7YG8Td.js +140 -0
- package/dist/french-Dk7YG8Td.js.map +1 -0
- package/dist/french-evUMlbbq.js +3 -0
- package/dist/french-x9P8RRn8.cjs +1 -0
- package/dist/index.cjs.js +2 -170
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +172 -62021
- package/dist/index.mjs.map +1 -1
- package/dist/math-B1oDAkOy.cjs +34 -0
- package/dist/math-B1oDAkOy.cjs.map +1 -0
- package/dist/math-B4HbgYf6.js +13391 -0
- package/dist/math-B4HbgYf6.js.map +1 -0
- package/dist/math-BWlIa6-l.cjs +1 -0
- package/dist/math-DYni7rRl.js +3 -0
- package/dist/piano-BN5Btq91.js +3 -0
- package/dist/piano-Btvkzjfz.cjs +1 -0
- package/dist/piano-CefQUc72.cjs +2 -0
- package/dist/piano-CefQUc72.cjs.map +1 -0
- package/dist/piano-DF1g6yaX.js +3603 -0
- package/dist/piano-DF1g6yaX.js.map +1 -0
- package/dist/pitch-C-lh9ezH.cjs +2 -0
- package/dist/pitch-C-lh9ezH.cjs.map +1 -0
- package/dist/pitch-CgGJFkZ1.js +106 -0
- package/dist/pitch-CgGJFkZ1.js.map +1 -0
- package/dist/pitch-Dn0iNqiS.js +3 -0
- package/dist/pitch-DsopN5IR.cjs +1 -0
- package/dist/{shapes-nszfsx3o.js → shapes-BQUVJdp5.js} +3 -21
- package/dist/shapes-BQUVJdp5.js.map +1 -0
- package/dist/shapes-C_-mvrCc.cjs +2 -0
- package/dist/shapes-C_-mvrCc.cjs.map +1 -0
- package/dist/shapes-DRq8J94A.cjs +2 -0
- package/dist/shapes-DRq8J94A.cjs.map +1 -0
- package/dist/shapes-ICeg46lr.js +25 -0
- package/dist/shapes-ICeg46lr.js.map +1 -0
- package/dist/sightsing-BFQ7HRig.js +41061 -0
- package/dist/sightsing-BFQ7HRig.js.map +1 -0
- package/dist/sightsing-CJX3k0Fd.js +3 -0
- package/dist/sightsing-Cr_SJ5Vc.cjs +133 -0
- package/dist/sightsing-Cr_SJ5Vc.cjs.map +1 -0
- package/dist/sightsing-CtagQ0FJ.cjs +1 -0
- package/dist/typing-BevtfWlp.js +184 -0
- package/dist/typing-BevtfWlp.js.map +1 -0
- package/dist/typing-CBPjtwrg.cjs +1 -0
- package/dist/typing-CK-glKhm.cjs +2 -0
- package/dist/typing-CK-glKhm.cjs.map +1 -0
- package/dist/typing-k-ojjO7G.js +3 -0
- package/dist/word-work-BOnRlZgd.js +108 -0
- package/dist/word-work-BOnRlZgd.js.map +1 -0
- package/dist/word-work-C5MTSapy.cjs +1 -0
- package/dist/word-work-Dd6tIKrt.js +3 -0
- package/dist/word-work-fNbCLNuN.cjs +2 -0
- package/dist/word-work-fNbCLNuN.cjs.map +1 -0
- package/package.json +6 -5
- package/dist/shapes-DJ-ujuDr.cjs +0 -2
- package/dist/shapes-DJ-ujuDr.cjs.map +0 -1
- package/dist/shapes-nszfsx3o.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./shapes-C_-mvrCc.cjs`);const e=require(`./CourseWare-DSeyTAtH.cjs`);let t=require(`vue`),n=require(`@vue-skuilder/common-ui`),r=require(`@vue-skuilder/common`);var i=(0,t.defineComponent)({name:`IdentifyChroma`,components:{RadioMultipleChoice:n.RadioMultipleChoice},props:{data:{type:Array,required:!0},modifyDifficulty:{type:Number,required:!1,default:0}},setup(e,{emit:r}){let i=(0,n.useViewable)(e,r,`IdentifyChroma`),a=(0,n.useQuestionView)(i),o=(0,t.ref)(``),s=(0,t.ref)(new AudioContext);a.question.value=new l(e.data);let c=(0,t.computed)(()=>a.question.value),octaves=e=>{let t=[],n=e/2;for(;n>100;)t.push(n),n/=2;t.push(e);let r=e*2;for(;r<5e3;)t.push(r),r*=2;return t},tone=e=>{let t=s.value.createOscillator();t.type=`sine`,t.frequency.value=e;let n=s.value.createGain();console.log(`Max Gain: `+n.gain.maxValue),n.gain.setValueAtTime(0,0),n.gain.linearRampToValueAtTime(.5,15),t.connect(n),n.connect(s.value.destination),t.start(0),t.stop(14)};(0,t.onMounted)(()=>{octaves(295).forEach(e=>tone(e))});let submit=()=>{c.value&&c.value.isCorrect(o.value)};return{...i,...a,answer:o,question:c,submit}}}),a={"data-viewable":`IdentifyChroma`};function _sfc_render(e,n,r,i,o,s){let c=(0,t.resolveComponent)(`radio-multiple-choice`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,a,[e.question?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[n[0]||=(0,t.createTextVNode)(` What note is being played? `),(0,t.createVNode)(c,{"choice-list":e.question.choiceList},null,8,[`choice-list`])],64)):(0,t.createCommentVNode)(``,!0)])}var o=e.r(i,[[`render`,_sfc_render]]),s=function(e){return e.A=`A`,e.B=`B`,e.C=`C`,e.D=`D`,e.E=`E`,e.F=`F`,e.G=`G`,e}(s||{}),c=[{name:`Chroma`,type:r.FieldType.STRING,validator:{test:e=>Object.values(s).includes(e)?{status:r.Status.ok,msg:``}:{status:r.Status.error,msg:`That's not a chroma!`},instructions:`Enter a valid musical note (A-G)`}}],l=class ChromaQuestion extends n.Question{static dataShapes=[{fields:c,name:r.DataShapeName.PITCH_chroma}];static views=[o];chroma;constructor(e){super(e),this.chroma=e[0].Chroma}get baseFreq(){return this.chroma===`A`?440:this.chroma===`B`?440*2**(2/12):this.chroma===`C`?440*2**(3/12):440}get choiceList(){return e.s([this.chroma.toString(),`test`,`options`,`are`,`fun`])}isCorrect(e){return e.choiceList[e.selection]===this.chroma.toString()}dataShapes(){return ChromaQuestion.dataShapes}views(){return ChromaQuestion.views}},u=new e.t(`pitch`,[l]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
|
|
2
|
+
//# sourceMappingURL=pitch-C-lh9ezH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pitch-C-lh9ezH.cjs","names":[],"sources":["../src/pitch/questions/indentify/textBox.vue","../src/pitch/questions/indentify/textBox.vue","../src/pitch/questions/indentify/index.ts","../src/pitch/index.ts"],"sourcesContent":["<template>\n <div data-viewable=\"IdentifyChroma\">\n <template v-if=\"question\">\n What note is being played?\n <radio-multiple-choice :choice-list=\"question.choiceList\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, PropType } from 'vue';\nimport { ChromaQuestion } from './index';\nimport { useViewable, useQuestionView, RadioMultipleChoice } from '@vue-skuilder/common-ui';\nimport { ViewData } from '@vue-skuilder/common';\n\nexport default defineComponent({\n name: 'IdentifyChroma',\n\n components: {\n RadioMultipleChoice,\n },\n\n props: {\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n\n setup(props, { emit }) {\n const viewableUtils = useViewable(props, emit, 'IdentifyChroma');\n const questionUtils = useQuestionView<ChromaQuestion>(viewableUtils);\n\n const answer = ref('');\n const ctx = ref(new AudioContext());\n\n // Initialize question immediately\n questionUtils.question.value = new ChromaQuestion(props.data);\n\n // Expose the question directly for template access\n const question = computed(() => questionUtils.question.value);\n\n const octaves = (freq: number): number[] => {\n const ret: number[] = [];\n let lowerFreq: number = freq / 2;\n while (lowerFreq > 100) {\n ret.push(lowerFreq);\n lowerFreq /= 2;\n }\n ret.push(freq);\n let above: number = freq * 2;\n while (above < 5000) {\n ret.push(above);\n above *= 2;\n }\n return ret;\n };\n\n const tone = (freq: number) => {\n const osc = ctx.value.createOscillator();\n osc.type = 'sine';\n osc.frequency.value = freq;\n\n const g = ctx.value.createGain();\n console.log('Max Gain: ' + g.gain.maxValue);\n g.gain.setValueAtTime(0, 0);\n g.gain.linearRampToValueAtTime(0.5, 15);\n\n osc.connect(g);\n g.connect(ctx.value.destination);\n\n osc.start(0);\n osc.stop(14);\n };\n\n onMounted(() => {\n octaves(295).forEach((t) => tone(t));\n });\n\n const submit = () => {\n if (question.value) {\n question.value.isCorrect(answer.value);\n }\n };\n\n return {\n ...viewableUtils,\n ...questionUtils,\n answer,\n question,\n submit,\n };\n },\n});\n</script>\n","<template>\n <div data-viewable=\"IdentifyChroma\">\n <template v-if=\"question\">\n What note is being played?\n <radio-multiple-choice :choice-list=\"question.choiceList\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, PropType } from 'vue';\nimport { ChromaQuestion } from './index';\nimport { useViewable, useQuestionView, RadioMultipleChoice } from '@vue-skuilder/common-ui';\nimport { ViewData } from '@vue-skuilder/common';\n\nexport default defineComponent({\n name: 'IdentifyChroma',\n\n components: {\n RadioMultipleChoice,\n },\n\n props: {\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n\n setup(props, { emit }) {\n const viewableUtils = useViewable(props, emit, 'IdentifyChroma');\n const questionUtils = useQuestionView<ChromaQuestion>(viewableUtils);\n\n const answer = ref('');\n const ctx = ref(new AudioContext());\n\n // Initialize question immediately\n questionUtils.question.value = new ChromaQuestion(props.data);\n\n // Expose the question directly for template access\n const question = computed(() => questionUtils.question.value);\n\n const octaves = (freq: number): number[] => {\n const ret: number[] = [];\n let lowerFreq: number = freq / 2;\n while (lowerFreq > 100) {\n ret.push(lowerFreq);\n lowerFreq /= 2;\n }\n ret.push(freq);\n let above: number = freq * 2;\n while (above < 5000) {\n ret.push(above);\n above *= 2;\n }\n return ret;\n };\n\n const tone = (freq: number) => {\n const osc = ctx.value.createOscillator();\n osc.type = 'sine';\n osc.frequency.value = freq;\n\n const g = ctx.value.createGain();\n console.log('Max Gain: ' + g.gain.maxValue);\n g.gain.setValueAtTime(0, 0);\n g.gain.linearRampToValueAtTime(0.5, 15);\n\n osc.connect(g);\n g.connect(ctx.value.destination);\n\n osc.start(0);\n osc.stop(14);\n };\n\n onMounted(() => {\n octaves(295).forEach((t) => tone(t));\n });\n\n const submit = () => {\n if (question.value) {\n question.value.isCorrect(answer.value);\n }\n };\n\n return {\n ...viewableUtils,\n ...questionUtils,\n answer,\n question,\n submit,\n };\n },\n});\n</script>\n","import { Question } from '@vue-skuilder/common-ui';\nimport { DataShape, FieldDefinition } from '@vue-skuilder/common';\nimport { ViewData, DataShapeName, FieldType, Status, Answer } from '@vue-skuilder/common';\nimport TextBox from './textBox.vue';\nimport { shuffle } from '@courseware/math/utility';\n\nenum Chroma {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E',\n F = 'F',\n G = 'G',\n}\n\nconst fields: FieldDefinition[] = [\n {\n name: 'Chroma',\n type: FieldType.STRING,\n validator: {\n test: (value) => {\n // Check if the value is a valid Chroma enum value\n if (Object.values(Chroma).includes(value as Chroma)) {\n return {\n status: Status.ok,\n msg: '',\n };\n }\n return {\n status: Status.error,\n msg: \"That's not a chroma!\",\n };\n },\n instructions: 'Enter a valid musical note (A-G)',\n },\n },\n];\n\nexport class ChromaQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n fields,\n name: DataShapeName.PITCH_chroma,\n },\n ];\n\n public static views = [TextBox];\n\n public chroma: Chroma;\n\n constructor(data: ViewData[]) {\n super(data);\n\n this.chroma = data[0].Chroma as Chroma;\n }\n public get baseFreq(): number {\n const aFreq = 440;\n\n if (this.chroma === 'A') return aFreq;\n else if (this.chroma === 'B') return aFreq * Math.pow(2, 2 / 12);\n else if (this.chroma === 'C') {\n return aFreq * Math.pow(2, 3 / 12);\n }\n\n return aFreq;\n }\n\n public get choiceList(): string[] {\n return shuffle([this.chroma.toString(), 'test', 'options', 'are', 'fun']);\n }\n\n public isCorrect(answer: Answer): boolean {\n // alert(JSON.stringify(answer));\n return (answer as any).choiceList[(answer as any).selection] === this.chroma.toString();\n }\n public dataShapes(): DataShape[] {\n return ChromaQuestion.dataShapes;\n }\n public views() {\n return ChromaQuestion.views;\n }\n}\n","import { CourseWare } from '../CourseWare';\nimport { ChromaQuestion } from './questions/indentify';\n\nconst pitch: CourseWare = new CourseWare('pitch', [ChromaQuestion]);\n\nexport default pitch;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import "./shapes-BQUVJdp5.js";
|
|
2
|
+
import { r as e, s as t, t as n } from "./CourseWare-BTFRjgBR.js";
|
|
3
|
+
import { Fragment as r, computed as i, createCommentVNode as a, createElementBlock as o, createTextVNode as s, createVNode as c, defineComponent as l, onMounted as u, openBlock as d, ref as f, resolveComponent as p } from "vue";
|
|
4
|
+
import { Question as m, RadioMultipleChoice as h, useQuestionView as g, useViewable as _ } from "@vue-skuilder/common-ui";
|
|
5
|
+
import { DataShapeName as v, FieldType as y, Status as b } from "@vue-skuilder/common";
|
|
6
|
+
//#region src/pitch/questions/indentify/textBox.vue?vue&type=script&lang.ts
|
|
7
|
+
var x = l({
|
|
8
|
+
name: "IdentifyChroma",
|
|
9
|
+
components: { RadioMultipleChoice: h },
|
|
10
|
+
props: {
|
|
11
|
+
data: {
|
|
12
|
+
type: Array,
|
|
13
|
+
required: !0
|
|
14
|
+
},
|
|
15
|
+
modifyDifficulty: {
|
|
16
|
+
type: Number,
|
|
17
|
+
required: !1,
|
|
18
|
+
default: 0
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
setup(e, { emit: t }) {
|
|
22
|
+
let n = _(e, t, "IdentifyChroma"), r = g(n), a = f(""), o = f(new AudioContext());
|
|
23
|
+
r.question.value = new E(e.data);
|
|
24
|
+
let s = i(() => r.question.value), octaves = (e) => {
|
|
25
|
+
let t = [], n = e / 2;
|
|
26
|
+
for (; n > 100;) t.push(n), n /= 2;
|
|
27
|
+
t.push(e);
|
|
28
|
+
let r = e * 2;
|
|
29
|
+
for (; r < 5e3;) t.push(r), r *= 2;
|
|
30
|
+
return t;
|
|
31
|
+
}, tone = (e) => {
|
|
32
|
+
let t = o.value.createOscillator();
|
|
33
|
+
t.type = "sine", t.frequency.value = e;
|
|
34
|
+
let n = o.value.createGain();
|
|
35
|
+
console.log("Max Gain: " + n.gain.maxValue), n.gain.setValueAtTime(0, 0), n.gain.linearRampToValueAtTime(.5, 15), t.connect(n), n.connect(o.value.destination), t.start(0), t.stop(14);
|
|
36
|
+
};
|
|
37
|
+
u(() => {
|
|
38
|
+
octaves(295).forEach((e) => tone(e));
|
|
39
|
+
});
|
|
40
|
+
let submit = () => {
|
|
41
|
+
s.value && s.value.isCorrect(a.value);
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
...n,
|
|
45
|
+
...r,
|
|
46
|
+
answer: a,
|
|
47
|
+
question: s,
|
|
48
|
+
submit
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}), S = { "data-viewable": "IdentifyChroma" };
|
|
52
|
+
function _sfc_render(e, t, n, i, l, u) {
|
|
53
|
+
let f = p("radio-multiple-choice");
|
|
54
|
+
return d(), o("div", S, [e.question ? (d(), o(r, { key: 0 }, [t[0] ||= s(" What note is being played? "), c(f, { "choice-list": e.question.choiceList }, null, 8, ["choice-list"])], 64)) : a("", !0)]);
|
|
55
|
+
}
|
|
56
|
+
var C = /* @__PURE__ */ e(x, [["render", _sfc_render]]), w = /* @__PURE__ */ function(e) {
|
|
57
|
+
return e.A = "A", e.B = "B", e.C = "C", e.D = "D", e.E = "E", e.F = "F", e.G = "G", e;
|
|
58
|
+
}(w || {}), T = [{
|
|
59
|
+
name: "Chroma",
|
|
60
|
+
type: y.STRING,
|
|
61
|
+
validator: {
|
|
62
|
+
test: (e) => Object.values(w).includes(e) ? {
|
|
63
|
+
status: b.ok,
|
|
64
|
+
msg: ""
|
|
65
|
+
} : {
|
|
66
|
+
status: b.error,
|
|
67
|
+
msg: "That's not a chroma!"
|
|
68
|
+
},
|
|
69
|
+
instructions: "Enter a valid musical note (A-G)"
|
|
70
|
+
}
|
|
71
|
+
}], E = class ChromaQuestion extends m {
|
|
72
|
+
static dataShapes = [{
|
|
73
|
+
fields: T,
|
|
74
|
+
name: v.PITCH_chroma
|
|
75
|
+
}];
|
|
76
|
+
static views = [C];
|
|
77
|
+
chroma;
|
|
78
|
+
constructor(e) {
|
|
79
|
+
super(e), this.chroma = e[0].Chroma;
|
|
80
|
+
}
|
|
81
|
+
get baseFreq() {
|
|
82
|
+
return this.chroma === "A" ? 440 : this.chroma === "B" ? 440 * 2 ** (2 / 12) : this.chroma === "C" ? 440 * 2 ** (3 / 12) : 440;
|
|
83
|
+
}
|
|
84
|
+
get choiceList() {
|
|
85
|
+
return t([
|
|
86
|
+
this.chroma.toString(),
|
|
87
|
+
"test",
|
|
88
|
+
"options",
|
|
89
|
+
"are",
|
|
90
|
+
"fun"
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
93
|
+
isCorrect(e) {
|
|
94
|
+
return e.choiceList[e.selection] === this.chroma.toString();
|
|
95
|
+
}
|
|
96
|
+
dataShapes() {
|
|
97
|
+
return ChromaQuestion.dataShapes;
|
|
98
|
+
}
|
|
99
|
+
views() {
|
|
100
|
+
return ChromaQuestion.views;
|
|
101
|
+
}
|
|
102
|
+
}, D = new n("pitch", [E]);
|
|
103
|
+
//#endregion
|
|
104
|
+
export { D as t };
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=pitch-CgGJFkZ1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pitch-CgGJFkZ1.js","names":[],"sources":["../src/pitch/questions/indentify/textBox.vue","../src/pitch/questions/indentify/textBox.vue","../src/pitch/questions/indentify/index.ts","../src/pitch/index.ts"],"sourcesContent":["<template>\n <div data-viewable=\"IdentifyChroma\">\n <template v-if=\"question\">\n What note is being played?\n <radio-multiple-choice :choice-list=\"question.choiceList\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, PropType } from 'vue';\nimport { ChromaQuestion } from './index';\nimport { useViewable, useQuestionView, RadioMultipleChoice } from '@vue-skuilder/common-ui';\nimport { ViewData } from '@vue-skuilder/common';\n\nexport default defineComponent({\n name: 'IdentifyChroma',\n\n components: {\n RadioMultipleChoice,\n },\n\n props: {\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n\n setup(props, { emit }) {\n const viewableUtils = useViewable(props, emit, 'IdentifyChroma');\n const questionUtils = useQuestionView<ChromaQuestion>(viewableUtils);\n\n const answer = ref('');\n const ctx = ref(new AudioContext());\n\n // Initialize question immediately\n questionUtils.question.value = new ChromaQuestion(props.data);\n\n // Expose the question directly for template access\n const question = computed(() => questionUtils.question.value);\n\n const octaves = (freq: number): number[] => {\n const ret: number[] = [];\n let lowerFreq: number = freq / 2;\n while (lowerFreq > 100) {\n ret.push(lowerFreq);\n lowerFreq /= 2;\n }\n ret.push(freq);\n let above: number = freq * 2;\n while (above < 5000) {\n ret.push(above);\n above *= 2;\n }\n return ret;\n };\n\n const tone = (freq: number) => {\n const osc = ctx.value.createOscillator();\n osc.type = 'sine';\n osc.frequency.value = freq;\n\n const g = ctx.value.createGain();\n console.log('Max Gain: ' + g.gain.maxValue);\n g.gain.setValueAtTime(0, 0);\n g.gain.linearRampToValueAtTime(0.5, 15);\n\n osc.connect(g);\n g.connect(ctx.value.destination);\n\n osc.start(0);\n osc.stop(14);\n };\n\n onMounted(() => {\n octaves(295).forEach((t) => tone(t));\n });\n\n const submit = () => {\n if (question.value) {\n question.value.isCorrect(answer.value);\n }\n };\n\n return {\n ...viewableUtils,\n ...questionUtils,\n answer,\n question,\n submit,\n };\n },\n});\n</script>\n","<template>\n <div data-viewable=\"IdentifyChroma\">\n <template v-if=\"question\">\n What note is being played?\n <radio-multiple-choice :choice-list=\"question.choiceList\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, PropType } from 'vue';\nimport { ChromaQuestion } from './index';\nimport { useViewable, useQuestionView, RadioMultipleChoice } from '@vue-skuilder/common-ui';\nimport { ViewData } from '@vue-skuilder/common';\n\nexport default defineComponent({\n name: 'IdentifyChroma',\n\n components: {\n RadioMultipleChoice,\n },\n\n props: {\n data: {\n type: Array as PropType<ViewData[]>,\n required: true,\n },\n modifyDifficulty: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n\n setup(props, { emit }) {\n const viewableUtils = useViewable(props, emit, 'IdentifyChroma');\n const questionUtils = useQuestionView<ChromaQuestion>(viewableUtils);\n\n const answer = ref('');\n const ctx = ref(new AudioContext());\n\n // Initialize question immediately\n questionUtils.question.value = new ChromaQuestion(props.data);\n\n // Expose the question directly for template access\n const question = computed(() => questionUtils.question.value);\n\n const octaves = (freq: number): number[] => {\n const ret: number[] = [];\n let lowerFreq: number = freq / 2;\n while (lowerFreq > 100) {\n ret.push(lowerFreq);\n lowerFreq /= 2;\n }\n ret.push(freq);\n let above: number = freq * 2;\n while (above < 5000) {\n ret.push(above);\n above *= 2;\n }\n return ret;\n };\n\n const tone = (freq: number) => {\n const osc = ctx.value.createOscillator();\n osc.type = 'sine';\n osc.frequency.value = freq;\n\n const g = ctx.value.createGain();\n console.log('Max Gain: ' + g.gain.maxValue);\n g.gain.setValueAtTime(0, 0);\n g.gain.linearRampToValueAtTime(0.5, 15);\n\n osc.connect(g);\n g.connect(ctx.value.destination);\n\n osc.start(0);\n osc.stop(14);\n };\n\n onMounted(() => {\n octaves(295).forEach((t) => tone(t));\n });\n\n const submit = () => {\n if (question.value) {\n question.value.isCorrect(answer.value);\n }\n };\n\n return {\n ...viewableUtils,\n ...questionUtils,\n answer,\n question,\n submit,\n };\n },\n});\n</script>\n","import { Question } from '@vue-skuilder/common-ui';\nimport { DataShape, FieldDefinition } from '@vue-skuilder/common';\nimport { ViewData, DataShapeName, FieldType, Status, Answer } from '@vue-skuilder/common';\nimport TextBox from './textBox.vue';\nimport { shuffle } from '@courseware/math/utility';\n\nenum Chroma {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E',\n F = 'F',\n G = 'G',\n}\n\nconst fields: FieldDefinition[] = [\n {\n name: 'Chroma',\n type: FieldType.STRING,\n validator: {\n test: (value) => {\n // Check if the value is a valid Chroma enum value\n if (Object.values(Chroma).includes(value as Chroma)) {\n return {\n status: Status.ok,\n msg: '',\n };\n }\n return {\n status: Status.error,\n msg: \"That's not a chroma!\",\n };\n },\n instructions: 'Enter a valid musical note (A-G)',\n },\n },\n];\n\nexport class ChromaQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n fields,\n name: DataShapeName.PITCH_chroma,\n },\n ];\n\n public static views = [TextBox];\n\n public chroma: Chroma;\n\n constructor(data: ViewData[]) {\n super(data);\n\n this.chroma = data[0].Chroma as Chroma;\n }\n public get baseFreq(): number {\n const aFreq = 440;\n\n if (this.chroma === 'A') return aFreq;\n else if (this.chroma === 'B') return aFreq * Math.pow(2, 2 / 12);\n else if (this.chroma === 'C') {\n return aFreq * Math.pow(2, 3 / 12);\n }\n\n return aFreq;\n }\n\n public get choiceList(): string[] {\n return shuffle([this.chroma.toString(), 'test', 'options', 'are', 'fun']);\n }\n\n public isCorrect(answer: Answer): boolean {\n // alert(JSON.stringify(answer));\n return (answer as any).choiceList[(answer as any).selection] === this.chroma.toString();\n }\n public dataShapes(): DataShape[] {\n return ChromaQuestion.dataShapes;\n }\n public views() {\n return ChromaQuestion.views;\n }\n}\n","import { CourseWare } from '../CourseWare';\nimport { ChromaQuestion } from './questions/indentify';\n\nconst pitch: CourseWare = new CourseWare('pitch', [ChromaQuestion]);\n\nexport default pitch;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./CourseWare-DSeyTAtH.cjs`);const e=require(`./pitch-C-lh9ezH.cjs`);exports.default=e.t;
|
|
@@ -24,26 +24,8 @@ var n = Object.create, r = Object.defineProperty, __name = (e, t) => r(e, "name"
|
|
|
24
24
|
name: "Uploads",
|
|
25
25
|
type: t.MEDIA_UPLOADS
|
|
26
26
|
}]
|
|
27
|
-
}]
|
|
28
|
-
name: e.MATH_SingleDigitAddition,
|
|
29
|
-
fields: [{
|
|
30
|
-
name: "a",
|
|
31
|
-
type: t.INT
|
|
32
|
-
}, {
|
|
33
|
-
name: "b",
|
|
34
|
-
type: t.INT
|
|
35
|
-
}]
|
|
36
|
-
}, d = {
|
|
37
|
-
name: e.MATH_EqualityTest,
|
|
38
|
-
fields: [{
|
|
39
|
-
name: "a",
|
|
40
|
-
type: t.STRING
|
|
41
|
-
}, {
|
|
42
|
-
name: "b",
|
|
43
|
-
type: t.STRING
|
|
44
|
-
}]
|
|
45
|
-
};
|
|
27
|
+
}];
|
|
46
28
|
//#endregion
|
|
47
|
-
export {
|
|
29
|
+
export { __toESM as a, c as i, __commonJSMin as n, __name as r, l as t };
|
|
48
30
|
|
|
49
|
-
//# sourceMappingURL=shapes-
|
|
31
|
+
//# sourceMappingURL=shapes-BQUVJdp5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes-BQUVJdp5.js","names":[],"sources":["../src/default/questions/fillIn/shapes.ts"],"sourcesContent":["import { DataShape, FieldType, DataShapeName } from '@vue-skuilder/common';\n\nexport const BlanksCardDataShapes: DataShape[] = [\n {\n name: DataShapeName.Blanks,\n fields: [\n {\n name: 'Input',\n type: FieldType.MARKDOWN,\n },\n {\n name: 'Uploads',\n type: FieldType.MEDIA_UPLOADS,\n },\n ],\n },\n];"],"mappings":";;;;;;;;;;;;;;;;;IAEa,IAAoC,CAC/C;CACE,MAAM,EAAc;CACpB,QAAQ,CACN;EACE,MAAM;EACN,MAAM,EAAU;EACjB,EACD;EACE,MAAM;EACN,MAAM,EAAU;EACjB,CACF;CACF,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,__name=(e,n)=>t(e,`name`,{value:n,configurable:!0}),n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let o=require(`@vue-skuilder/common`);var s=[{name:o.DataShapeName.Blanks,fields:[{name:`Input`,type:o.FieldType.MARKDOWN},{name:`Uploads`,type:o.FieldType.MEDIA_UPLOADS}]}];Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return __toESM}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return __commonJSMin}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return __name}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
|
2
|
+
//# sourceMappingURL=shapes-C_-mvrCc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes-C_-mvrCc.cjs","names":[],"sources":["../src/default/questions/fillIn/shapes.ts"],"sourcesContent":["import { DataShape, FieldType, DataShapeName } from '@vue-skuilder/common';\n\nexport const BlanksCardDataShapes: DataShape[] = [\n {\n name: DataShapeName.Blanks,\n fields: [\n {\n name: 'Input',\n type: FieldType.MARKDOWN,\n },\n {\n name: 'Uploads',\n type: FieldType.MEDIA_UPLOADS,\n },\n ],\n },\n];"],"mappings":"wpBAEA,IAAa,EAAoC,CAC/C,CACE,KAAM,EAAA,cAAc,OACpB,OAAQ,CACN,CACE,KAAM,QACN,KAAM,EAAA,UAAU,SACjB,CACD,CACE,KAAM,UACN,KAAM,EAAA,UAAU,cACjB,CACF,CACF,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./shapes-C_-mvrCc.cjs`);let e=require(`@vue-skuilder/common`);var t={name:e.DataShapeName.MATH_SingleDigitAddition,fields:[{name:`a`,type:e.FieldType.INT},{name:`b`,type:e.FieldType.INT}]},n={name:e.DataShapeName.MATH_EqualityTest,fields:[{name:`a`,type:e.FieldType.STRING},{name:`b`,type:e.FieldType.STRING}]};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
|
|
2
|
+
//# sourceMappingURL=shapes-DRq8J94A.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes-DRq8J94A.cjs","names":[],"sources":["../src/math/questions/addition/shapes.ts","../src/math/questions/equalityTest/shapes.ts"],"sourcesContent":["import { DataShape, FieldType, DataShapeName } from '@vue-skuilder/common';\n\nexport const SingleDigitAdditionDataShape: DataShape = {\n name: DataShapeName.MATH_SingleDigitAddition,\n fields: [\n { name: 'a', type: FieldType.INT },\n { name: 'b', type: FieldType.INT },\n ],\n};","import { DataShape, FieldType, DataShapeName } from '@vue-skuilder/common';\n\nexport const EqualityTestDataShape: DataShape = {\n name: DataShapeName.MATH_EqualityTest,\n fields: [\n { name: 'a', type: FieldType.STRING },\n { name: 'b', type: FieldType.STRING },\n ],\n};"],"mappings":"uEAEA,IAAa,EAA0C,CACrD,KAAM,EAAA,cAAc,yBACpB,OAAQ,CACN,CAAE,KAAM,IAAK,KAAM,EAAA,UAAU,IAAK,CAClC,CAAE,KAAM,IAAK,KAAM,EAAA,UAAU,IAAK,CACnC,CACF,CCNY,EAAmC,CAC9C,KAAM,EAAA,cAAc,kBACpB,OAAQ,CACN,CAAE,KAAM,IAAK,KAAM,EAAA,UAAU,OAAQ,CACrC,CAAE,KAAM,IAAK,KAAM,EAAA,UAAU,OAAQ,CACtC,CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DataShapeName as e, FieldType as t } from "@vue-skuilder/common";
|
|
2
|
+
//#region src/math/questions/addition/shapes.ts
|
|
3
|
+
var n = {
|
|
4
|
+
name: e.MATH_SingleDigitAddition,
|
|
5
|
+
fields: [{
|
|
6
|
+
name: "a",
|
|
7
|
+
type: t.INT
|
|
8
|
+
}, {
|
|
9
|
+
name: "b",
|
|
10
|
+
type: t.INT
|
|
11
|
+
}]
|
|
12
|
+
}, r = {
|
|
13
|
+
name: e.MATH_EqualityTest,
|
|
14
|
+
fields: [{
|
|
15
|
+
name: "a",
|
|
16
|
+
type: t.STRING
|
|
17
|
+
}, {
|
|
18
|
+
name: "b",
|
|
19
|
+
type: t.STRING
|
|
20
|
+
}]
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { n, r as t };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=shapes-ICeg46lr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes-ICeg46lr.js","names":[],"sources":["../src/math/questions/addition/shapes.ts","../src/math/questions/equalityTest/shapes.ts"],"sourcesContent":["import { DataShape, FieldType, DataShapeName } from '@vue-skuilder/common';\n\nexport const SingleDigitAdditionDataShape: DataShape = {\n name: DataShapeName.MATH_SingleDigitAddition,\n fields: [\n { name: 'a', type: FieldType.INT },\n { name: 'b', type: FieldType.INT },\n ],\n};","import { DataShape, FieldType, DataShapeName } from '@vue-skuilder/common';\n\nexport const EqualityTestDataShape: DataShape = {\n name: DataShapeName.MATH_EqualityTest,\n fields: [\n { name: 'a', type: FieldType.STRING },\n { name: 'b', type: FieldType.STRING },\n ],\n};"],"mappings":";;AAEA,IAAa,IAA0C;CACrD,MAAM,EAAc;CACpB,QAAQ,CACN;EAAE,MAAM;EAAK,MAAM,EAAU;EAAK,EAClC;EAAE,MAAM;EAAK,MAAM,EAAU;EAAK,CACnC;CACF,ECNY,IAAmC;CAC9C,MAAM,EAAc;CACpB,QAAQ,CACN;EAAE,MAAM;EAAK,MAAM,EAAU;EAAQ,EACrC;EAAE,MAAM;EAAK,MAAM,EAAU;EAAQ,CACtC;CACF"}
|