@vue-skuilder/standalone-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.
Files changed (27) hide show
  1. package/dist/assets/{TagViewer-BPkaxyIU.js → TagViewer-DYPKSc3Z.js} +2 -2
  2. package/dist/assets/{TagViewer-BPkaxyIU.js.map → TagViewer-DYPKSc3Z.js.map} +1 -1
  3. package/dist/assets/common-ui.es-3rfUYt9S.js +1 -0
  4. package/dist/assets/{common-ui.es-DxZNthuJ.js → common-ui.es-DfgaTZ4z.js} +4 -4
  5. package/dist/assets/{common-ui.es-DxZNthuJ.js.map → common-ui.es-DfgaTZ4z.js.map} +1 -1
  6. package/dist/assets/{dist-BC_KquM-.js → dist-BcZ1gsNX.js} +33 -11
  7. package/dist/assets/dist-BcZ1gsNX.js.map +1 -0
  8. package/dist/assets/index-CwbD9tGY.css +1 -0
  9. package/dist/assets/{index-C6NB1IPv.js → index-e8XolFvR.js} +5 -5
  10. package/dist/assets/index-e8XolFvR.js.map +1 -0
  11. package/dist/index.html +4 -4
  12. package/dist-lib/assets/index.css +1 -1
  13. package/dist-lib/{common-ui.es-BndKNv1Z.js → common-ui.es-B8Tew0sr.js} +3 -3
  14. package/dist-lib/{common-ui.es-BndKNv1Z.js.map → common-ui.es-B8Tew0sr.js.map} +1 -1
  15. package/dist-lib/{common-ui.es-CXj4fGMG.js → common-ui.es-Be_EI6up.js} +2 -2
  16. package/dist-lib/{dist-D3TZHmH5.js → dist-BP0_sJdJ.js} +144 -34
  17. package/dist-lib/dist-BP0_sJdJ.js.map +1 -0
  18. package/dist-lib/questions.cjs.js +37 -15
  19. package/dist-lib/questions.cjs.js.map +1 -1
  20. package/dist-lib/questions.mjs +3 -3
  21. package/dist-lib/questions.mjs.map +1 -1
  22. package/package.json +6 -6
  23. package/dist/assets/common-ui.es-CWLWg2GC.js +0 -1
  24. package/dist/assets/dist-BC_KquM-.js.map +0 -1
  25. package/dist/assets/index-C6NB1IPv.js.map +0 -1
  26. package/dist/assets/index-DEb1MxOC.css +0 -1
  27. package/dist-lib/dist-D3TZHmH5.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"questions.mjs","names":["e","t","d","u","C","x","O","D","I","h","r","p","y","j","M","N","P","_sfc_render","_","m","o","i","a","n","g","s","v","b","l","c","F","S","w","E","T","t","ne","re","ie","ae","n","oe","se","ce","le","U","W","pe","G","K","q","J","Y","X","Z","k","T","p","v","o","g","_","l","a","y","b","u","f","S","d","m","ee","E","A","w","h","_sfc_render$1","x","c","s","O","C","D","$","i","a","r","D","j","b","k","A","C","w","y","M","S","P","e","V","F","H","z","p","ee","O","B"],"sources":["../../courseware/dist/shapes-BQUVJdp5.js","../../courseware/dist/CourseWare-BTFRjgBR.js","../../courseware/dist/piano-DF1g6yaX.js","../../courseware/dist/index.mjs","../src/questions/SimpleTextQuestionView.vue","../src/questions/SimpleTextQuestionView.vue","../src/questions/SimpleTextQuestion.ts","../src/questions/MultipleChoiceQuestionView.vue","../src/questions/MultipleChoiceQuestionView.vue","../src/questions/MultipleChoiceQuestion.ts","../src/questions/NumberRangeQuestionView.vue","../src/questions/NumberRangeQuestionView.vue","../src/questions/NumberRangeQuestion.ts","../src/questions/exampleCourse.ts","../src/questions/index.ts"],"sourcesContent":["import { DataShapeName as e, FieldType as t } from \"@vue-skuilder/common\";\n//#region \\0rolldown/runtime.js\nvar n = Object.create, r = Object.defineProperty, __name = (e, t) => r(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), i = Object.getOwnPropertyDescriptor, a = Object.getOwnPropertyNames, o = Object.getPrototypeOf, s = Object.prototype.hasOwnProperty, __commonJSMin = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), __copyProps = (e, t, n, o) => {\n\tif (t && typeof t == \"object\" || typeof t == \"function\") for (var c = a(t), l = 0, u = c.length, d; l < u; l++) d = c[l], !s.call(e, d) && d !== n && r(e, d, {\n\t\tget: ((e) => t[e]).bind(null, d),\n\t\tenumerable: !(o = i(t, d)) || o.enumerable\n\t});\n\treturn e;\n}, __toESM = (e, t, i) => (i = e == null ? {} : n(o(e)), __copyProps(t || !e || !e.__esModule ? r(i, \"default\", {\n\tvalue: e,\n\tenumerable: !0\n}) : i, e)), c = /* @__PURE__ */ ((e) => typeof require < \"u\" ? require : typeof Proxy < \"u\" ? new Proxy(e, { get: (e, t) => (typeof require < \"u\" ? require : e)[t] }) : e)(function(e) {\n\tif (typeof require < \"u\") return require.apply(this, arguments);\n\tthrow Error(\"Calling `require` for \\\"\" + e + \"\\\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.\");\n}), l = [{\n\tname: e.Blanks,\n\tfields: [{\n\t\tname: \"Input\",\n\t\ttype: t.MARKDOWN\n\t}, {\n\t\tname: \"Uploads\",\n\t\ttype: t.MEDIA_UPLOADS\n\t}]\n}];\n//#endregion\nexport { __toESM as a, c as i, __commonJSMin as n, __name as r, l as t };\n\n//# sourceMappingURL=shapes-BQUVJdp5.js.map","import { r as e, t } from \"./shapes-BQUVJdp5.js\";\nimport { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineAsyncComponent as u, defineComponent as d, onMounted as f, onUnmounted as p, openBlock as m, ref as h, renderList as g, resolveComponent as _, toDisplayString as v, watch as y, withCtx as b } from \"vue\";\nimport { AudioAutoPlayer as x, Question as S, RadioMultipleChoice as C, containsComponent as w, isInlineComponent as T, splitByDelimiters as E, useQuestionView as D, useViewable as O } from \"@vue-skuilder/common-ui\";\nimport \"@vue-skuilder/common\";\n//#region src/math/utility/index.ts\nfunction randomInt(e, t) {\n\treturn Math.floor(Math.random() * (t - e + 1)) + e;\n}\nfunction shuffle(e) {\n\tlet t = [...e];\n\tfor (let e = t.length - 1; e > 0; e--) {\n\t\tlet n = Math.floor(Math.random() * (e + 1));\n\t\t[t[e], t[n]] = [t[n], t[e]];\n\t}\n\treturn t;\n}\nfunction cos(e) {\n\treturn Math.cos(toRadians(e));\n}\nfunction sin(e) {\n\treturn Math.sin(toRadians(e));\n}\nfunction toRadians(e) {\n\treturn e / 360 * 2 * Math.PI;\n}\n//#endregion\n//#region src/default/questions/fillIn/blanksCorrection.ts\nfunction gradeSpellingAttempt(e, t) {\n\tlet n = Array(t.length).fill(\"_\"), r = e.split(\"\");\n\tconsole.log(e, t), console.log(\"Attempt char codes:\", e.split(\"\").map((e) => e.charCodeAt(0))), console.log(\"Answer char codes:\", t.split(\"\").map((e) => e.charCodeAt(0)));\n\tfor (let e = 0; e < t.length; e++) e < r.length && r[e] === t[e] && (n[e] = r[e], r[e] = \"\");\n\tfor (let e = t.length - 1; e >= 0; e--) if (n[e] === \"_\") {\n\t\tlet i = r.findIndex((n) => n === t[e]);\n\t\ti !== -1 && (n[e] = t[e], r[i] = \"\");\n\t}\n\treturn console.log(n.join(\" \")), n.join(\" \");\n}\n//#endregion\n//#region src/default/questions/fillIn/fillIn.vue?vue&type=script&lang.ts\nvar k = d({\n\tname: \"FillInView\",\n\tcomponents: {\n\t\tMarkdownRenderer: u(() => import(\"@vue-skuilder/common-ui\").then((e) => e.MarkdownRenderer)),\n\t\tRadioMultipleChoice: C,\n\t\tAudioAutoPlayer: x\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 = O(e, t, \"FillInView\"), i = D(n);\n\t\ti.question.value = new I(e.data);\n\t\tlet a = h(), o = r(() => {\n\t\t\tif (!i.question.value) throw n.logger.error(\"Question not initialized\"), Error(\"Question not initialized\");\n\t\t\treturn i.question.value;\n\t\t});\n\t\tf(() => {\n\t\t\ttry {\n\t\t\t\ti.question.value || (i.question.value = new I(e.data)), i.question.value.options && (a.value = shuffle(getTruncatedList()));\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize question:\", e);\n\t\t\t}\n\t\t}), p(() => {\n\t\t\ti.question.value = void 0;\n\t\t});\n\t\tlet s = r(() => a.value ?? []), c = r(() => !!e.data[0][\"image-1\"]), l = r(() => {\n\t\t\tif (!c.value) return [\"\"];\n\t\t\tlet t = [], n = 1;\n\t\t\tfor (; e.data[0][`image-${n}`];) t.push(URL.createObjectURL(e.data[0][`image-${n}`])), n++;\n\t\t\treturn t;\n\t\t}), u = r(() => !!e.data[0][\"audio-1\"]), d = r(() => o.value?.mdText || \"\"), m = r(() => {\n\t\t\tif (!u.value) return [\"\"];\n\t\t\tlet t = [], n = 1;\n\t\t\tfor (; e.data[0][`audio-${n}`];) t.push(URL.createObjectURL(e.data[0][`audio-${n}`])), n++;\n\t\t\treturn t;\n\t\t}), g = r(() => {\n\t\t\tif (o.value.answers) return o.value.answers[Math.floor(o.value.answers.length * Math.random())];\n\t\t\tthrow Error(\"No answers provided\");\n\t\t}), _ = r(() => {\n\t\t\tlet e = g.value;\n\t\t\tif (console.log(`Prior answers: ${i.priorAnswers.value}`), e && i.priorAnswers.value[0]?.[0] && i.priorAnswers.value[0][1] === \"UserInputString\") return gradeSpellingAttempt(i.priorAnswers.value[0][0], e);\n\t\t\tif (console.log(\"found no UserInputString\"), g.value) {\n\t\t\t\tlet e = \"\";\n\t\t\t\tfor (let t = 0; t < g.value.length; t++) e += \"_ \";\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t}), v = r(() => !!(o.value.answers && o.value.answers.length > 0)), getTruncatedList = () => {\n\t\t\tif (!o.value?.options) return;\n\t\t\tif (o.value.options.length <= 6) return o.value.options;\n\t\t\tlet t = [];\n\t\t\tt.push(o.value.answers[Math.floor(Math.random() * o.value.answers.length)]);\n\t\t\tlet n = shuffle(o.value.options.filter((e) => o.value.answers?.indexOf(e) === -1));\n\t\t\treturn e.modifyDifficulty && (console.log(`Modifying difficulty: ${e.modifyDifficulty}`), n = e.modifyDifficulty < -200 ? n.slice(0, 1) : e.modifyDifficulty < -150 ? n.slice(0, 2) : e.modifyDifficulty < -100 ? n.slice(0, 3) : e.modifyDifficulty < -50 ? n.slice(0, 4) : n.slice(0, 5)), t.push(...n.slice(0, 5)), t;\n\t\t}, handleNext = () => {\n\t\t\ti.submitAnswer(\"\");\n\t\t};\n\t\treturn y(() => e.data, (e) => {\n\t\t\ttry {\n\t\t\t\ti.question.value = new I(e), i.question.value?.options && (a.value = shuffle(getTruncatedList()));\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize/update question:\", e);\n\t\t\t}\n\t\t}, { deep: !0 }), {\n\t\t\t...n,\n\t\t\t...i,\n\t\t\tquestion: o,\n\t\t\ttruncatedOptions: s,\n\t\t\thasImage: c,\n\t\t\timageURLs: l,\n\t\t\thasAudio: u,\n\t\t\taudioURL: m,\n\t\t\tobscuredAnswer: _,\n\t\t\tsomeAnswer: g,\n\t\t\tisQuestion: v,\n\t\t\thandleNext,\n\t\t\tmarkdownText: d\n\t\t};\n\t}\n}), A = /* @__PURE__ */ e((e, t) => {\n\tlet n = e.__vccOpts || e;\n\tfor (let [e, r] of t) n[e] = r;\n\treturn n;\n}, \"default\"), j = { \"data-viewable\": \"FillInView\" }, M = [\"src\"], N = {\n\tkey: 4,\n\tclass: \"text-center text-h6\"\n}, P = {\n\tkey: 5,\n\tclass: \"text-center text-h6\"\n};\nfunction _sfc_render(e, t, r, u, d, f) {\n\tlet p = _(\"audio-auto-player\"), h = _(\"markdown-renderer\"), y = _(\"radio-multiple-choice\"), x = _(\"v-spacer\"), S = _(\"v-btn\"), C = _(\"v-card-actions\");\n\treturn m(), o(\"div\", j, [\n\t\te.hasAudio ? (m(), i(p, {\n\t\t\tkey: 0,\n\t\t\tsrc: e.audioURL\n\t\t}, null, 8, [\"src\"])) : a(\"\", !0),\n\t\te.hasImage ? (m(!0), o(n, { key: 1 }, g(e.imageURLs, (e, t) => (m(), o(\"img\", {\n\t\t\tkey: t,\n\t\t\tsrc: e\n\t\t}, null, 8, M))), 128)) : a(\"\", !0),\n\t\te.markdownText ? (m(), i(h, {\n\t\t\tkey: 2,\n\t\t\tmd: e.markdownText\n\t\t}, null, 8, [\"md\"])) : a(\"\", !0),\n\t\te.question?.options ? (m(), i(y, {\n\t\t\tkey: 3,\n\t\t\t\"choice-list\": e.truncatedOptions\n\t\t}, null, 8, [\"choice-list\"])) : e.priorAttempts == 1 ? (m(), o(\"div\", N, [s(\"span\", null, v(e.obscuredAnswer), 1)])) : e.priorAttempts == 2 ? (m(), o(\"div\", P, [s(\"span\", null, v(e.someAnswer), 1)])) : a(\"\", !0),\n\t\te.isQuestion ? a(\"\", !0) : (m(), i(C, { key: 6 }, {\n\t\t\tdefault: b(() => [l(x), l(S, {\n\t\t\t\tcolor: \"primary\",\n\t\t\t\tautofocus: \"autofocus\",\n\t\t\t\tonClick: e.handleNext\n\t\t\t}, {\n\t\t\t\tdefault: b(() => t[0] ||= [c(\" Next \")]),\n\t\t\t\t_: 1\n\t\t\t}, 8, [\"onClick\"])]),\n\t\t\t_: 1\n\t\t}))\n\t]);\n}\nvar F = /* @__PURE__ */ A(k, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f91502f8\"]]);\n//#endregion\n//#region src/default/questions/fillIn/index.ts\nfunction splitText(e, t, n) {\n\tlet r = e.split(t), i = r[0], a = r[1].split(n);\n\treturn {\n\t\tleft: i,\n\t\tmiddle: a[0],\n\t\tright: a[1]\n\t};\n}\nvar I = class BlanksCard extends S {\n\tstatic dataShapes = t;\n\tstatic views = [F];\n\tmdText = \"\";\n\tanswers = null;\n\toptions = null;\n\tsplitTextToken(e) {\n\t\tif (w(e)) {\n\t\t\tlet t = splitText(e.text, \"{{\", \"}}\"), n = splitText(e.raw, \"{{\", \"}}\"), r = [];\n\t\t\treturn n.left.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: n.left,\n\t\t\t\ttext: t.left\n\t\t\t}), n.middle.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: \"{{\" + n.middle + \"}}\",\n\t\t\t\ttext: \"{{\" + t.middle + \"}}\"\n\t\t\t}), n.right.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: n.right,\n\t\t\t\ttext: t.right\n\t\t\t}), r;\n\t\t} else return [e];\n\t}\n\toptionsFromString(e) {\n\t\tif (!e.startsWith(\"{{\") || !e.endsWith(\"}}\")) throw Error(`string ${e} is not fill-in text - must look like \"{{someText}}\"`);\n\t\te = e.substring(2, e.length - 2);\n\t\tlet t = e.split(\"||\");\n\t\tif (t.length > 1) {\n\t\t\tlet e = t[0].split(\"|\").map((e) => e.trim()), n = t[1].split(\"|\").map((e) => e.trim()).filter((t) => !e.includes(t));\n\t\t\treturn n.push(e[randomInt(0, e.length - 1)]), {\n\t\t\t\tanswers: e,\n\t\t\t\toptions: shuffle(n)\n\t\t\t};\n\t\t} else return {\n\t\t\tanswers: [e.trim()],\n\t\t\toptions: null\n\t\t};\n\t}\n\tconstructor(e) {\n\t\tsuper(e), this.mdText = e[0].Input, this.mdText === void 0 && (this.mdText = \"\");\n\t\tlet t = E(this.mdText, \"{{\", \"}}\"), n = [];\n\t\tfor (let e = 0; e < t.length; e++) {\n\t\t\tlet r = t[e], i = r.trim();\n\t\t\tif (i.startsWith(\"{{\") && i.endsWith(\"}}\")) if (T(i.slice(2, -2).trim())) n.push(r);\n\t\t\telse try {\n\t\t\t\tlet e = this.optionsFromString(r);\n\t\t\t\tthis.answers = e.answers, this.options = e.options, this.options?.length ? n.push(\"{{ || }}\") : n.push(\"{{ }}\");\n\t\t\t} catch {\n\t\t\t\tn.push(r);\n\t\t\t}\n\t\t\telse n.push(r);\n\t\t}\n\t\tthis.mdText = n.join(\"\");\n\t}\n\tisCorrect(e) {\n\t\tif (console.log(`answers:${this.answers}\\nuser answer: ${JSON.stringify(e)}`), typeof e == \"string\") {\n\t\t\tif (this.answers) return this.answers.includes(e);\n\t\t\tif (e === \"\") return !0;\n\t\t\tthrow Error(\"Question has no configured answers!\");\n\t\t} else if (Array.isArray(e)) {\n\t\t\tif (this.answers) return e.every((e) => this.answers.includes(e));\n\t\t\tthrow Error(\"Question has no configured answers!\");\n\t\t} else return this.isCorrectRadio(e);\n\t}\n\tdataShapes() {\n\t\treturn BlanksCard.dataShapes;\n\t}\n\tviews() {\n\t\treturn BlanksCard.views;\n\t}\n\tisCorrectRadio(e) {\n\t\treturn this.answers ? this.answers.includes(e.choiceList[e.selection]) : !1;\n\t}\n}, CourseWare = class {\n\tget questions() {\n\t\treturn this.questionList;\n\t}\n\tget allViews() {\n\t\tlet e = [];\n\t\treturn this.questionList.forEach((t) => {\n\t\t\tt.views.forEach((t) => {\n\t\t\t\te.push(t);\n\t\t\t});\n\t\t}), e;\n\t}\n\tget allViewsMap() {\n\t\tlet e = {};\n\t\treturn this.allViews.forEach((t) => {\n\t\t\tif (t.name) e[t.name] = t;\n\t\t\telse throw Error(\"View has no name\");\n\t\t}), e;\n\t}\n\tname;\n\tquestionList;\n\tconstructor(e, t) {\n\t\tthis.name = e, this.questionList = t, this.questionList = this.questionList.concat(this.getBaseQTypes());\n\t}\n\tgetQuestion(e) {\n\t\tlet t = e.replace(/^_/, \"\").replace(/\\d+$/, \"\"), n = this.questionList.map((e) => e.name), r = this.questionList.find((n) => {\n\t\t\tlet r = n.name.replace(/^_/, \"\").replace(/\\d+$/, \"\");\n\t\t\treturn n.name === e || r === t;\n\t\t});\n\t\tif (r) return r.name !== e && console.debug(`[CourseWare.getQuestion] stripped-exact: \"${e}\" → \"${r.name}\" (registered: ${n.join(\", \")})`), r;\n\t\tlet i = this.questionList.filter((n) => {\n\t\t\tlet r = n.name.replace(/^_/, \"\").replace(/\\d+$/, \"\");\n\t\t\treturn n.name.includes(t) || e.includes(r);\n\t\t});\n\t\tif (i.length === 0) {\n\t\t\tconsole.warn(`[CourseWare.getQuestion] NO MATCH: \"${e}\" (base: \"${t}\") not found in [${n.join(\", \")}]`);\n\t\t\treturn;\n\t\t}\n\t\ti.sort((t, n) => Math.abs(t.name.length - e.length) - Math.abs(n.name.length - e.length));\n\t\tlet a = i[0];\n\t\treturn console.warn(`[CourseWare.getQuestion] FUZZY: \"${e}\" → \"${a.name}\" (candidates: ${i.map((e) => e.name).join(\", \")}; registered: ${n.join(\", \")})`), a;\n\t}\n\tgetBaseQTypes() {\n\t\treturn [I];\n\t}\n};\n//#endregion\nexport { cos as a, sin as c, gradeSpellingAttempt as i, I as n, randomInt as o, A as r, shuffle as s, CourseWare as t };\n\n//# sourceMappingURL=CourseWare-BTFRjgBR.js.map","import { a as e, n as t, r as n } from \"./shapes-BQUVJdp5.js\";\nimport { r, t as i } from \"./CourseWare-BTFRjgBR.js\";\nimport { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, openBlock as _, ref as v, renderList as y, resolveComponent as b, toDisplayString as x, withCtx as S } from \"vue\";\nimport { Question as C, SkldrMouseTrap as w, alertUser as T, useQuestionView as E, useViewable as ee } from \"@vue-skuilder/common-ui\";\nimport { DataShapeName as D, FieldType as O, Status as k } from \"@vue-skuilder/common\";\nimport A from \"moment\";\n//#region ../../node_modules/webmidi/webmidi.min.js\nvar te = /* @__PURE__ */ t(((e, t) => {\n\t(function(e) {\n\t\tfunction WebMidi() {\n\t\t\tif (WebMidi.prototype._singleton) throw Error(\"WebMidi is a singleton, it cannot be instantiated directly.\");\n\t\t\t(WebMidi.prototype._singleton = this)._inputs = [], this._outputs = [], this._userHandlers = {}, this._stateChangeQueue = [], this._processingStateChange = !1, this._midiInterfaceEvents = [\"connected\", \"disconnected\"], this._nrpnBuffer = [\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[]\n\t\t\t], this._nrpnEventsEnabled = !0, this._nrpnTypes = [\n\t\t\t\t\"entry\",\n\t\t\t\t\"increment\",\n\t\t\t\t\"decrement\"\n\t\t\t], this._notes = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], this._semitones = {\n\t\t\t\tC: 0,\n\t\t\t\tD: 2,\n\t\t\t\tE: 4,\n\t\t\t\tF: 5,\n\t\t\t\tG: 7,\n\t\t\t\tA: 9,\n\t\t\t\tB: 11\n\t\t\t}, Object.defineProperties(this, {\n\t\t\t\tMIDI_SYSTEM_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tsysex: 240,\n\t\t\t\t\t\ttimecode: 241,\n\t\t\t\t\t\tsongposition: 242,\n\t\t\t\t\t\tsongselect: 243,\n\t\t\t\t\t\ttuningrequest: 246,\n\t\t\t\t\t\tsysexend: 247,\n\t\t\t\t\t\tclock: 248,\n\t\t\t\t\t\tstart: 250,\n\t\t\t\t\t\tcontinue: 251,\n\t\t\t\t\t\tstop: 252,\n\t\t\t\t\t\tactivesensing: 254,\n\t\t\t\t\t\treset: 255,\n\t\t\t\t\t\tmidimessage: 0,\n\t\t\t\t\t\tunknownsystemmessage: -1\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CHANNEL_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tnoteoff: 8,\n\t\t\t\t\t\tnoteon: 9,\n\t\t\t\t\t\tkeyaftertouch: 10,\n\t\t\t\t\t\tcontrolchange: 11,\n\t\t\t\t\t\tchannelmode: 11,\n\t\t\t\t\t\tnrpn: 11,\n\t\t\t\t\t\tprogramchange: 12,\n\t\t\t\t\t\tchannelaftertouch: 13,\n\t\t\t\t\t\tpitchbend: 14\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_REGISTERED_PARAMETER: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tpitchbendrange: [0, 0],\n\t\t\t\t\t\tchannelfinetuning: [0, 1],\n\t\t\t\t\t\tchannelcoarsetuning: [0, 2],\n\t\t\t\t\t\ttuningprogram: [0, 3],\n\t\t\t\t\t\ttuningbank: [0, 4],\n\t\t\t\t\t\tmodulationrange: [0, 5],\n\t\t\t\t\t\tazimuthangle: [61, 0],\n\t\t\t\t\t\televationangle: [61, 1],\n\t\t\t\t\t\tgain: [61, 2],\n\t\t\t\t\t\tdistanceratio: [61, 3],\n\t\t\t\t\t\tmaximumdistance: [61, 4],\n\t\t\t\t\t\tmaximumdistancegain: [61, 5],\n\t\t\t\t\t\treferencedistanceratio: [61, 6],\n\t\t\t\t\t\tpanspreadangle: [61, 7],\n\t\t\t\t\t\trollangle: [61, 8]\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CONTROL_CHANGE_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tbankselectcoarse: 0,\n\t\t\t\t\t\tmodulationwheelcoarse: 1,\n\t\t\t\t\t\tbreathcontrollercoarse: 2,\n\t\t\t\t\t\tfootcontrollercoarse: 4,\n\t\t\t\t\t\tportamentotimecoarse: 5,\n\t\t\t\t\t\tdataentrycoarse: 6,\n\t\t\t\t\t\tvolumecoarse: 7,\n\t\t\t\t\t\tbalancecoarse: 8,\n\t\t\t\t\t\tpancoarse: 10,\n\t\t\t\t\t\texpressioncoarse: 11,\n\t\t\t\t\t\teffectcontrol1coarse: 12,\n\t\t\t\t\t\teffectcontrol2coarse: 13,\n\t\t\t\t\t\tgeneralpurposeslider1: 16,\n\t\t\t\t\t\tgeneralpurposeslider2: 17,\n\t\t\t\t\t\tgeneralpurposeslider3: 18,\n\t\t\t\t\t\tgeneralpurposeslider4: 19,\n\t\t\t\t\t\tbankselectfine: 32,\n\t\t\t\t\t\tmodulationwheelfine: 33,\n\t\t\t\t\t\tbreathcontrollerfine: 34,\n\t\t\t\t\t\tfootcontrollerfine: 36,\n\t\t\t\t\t\tportamentotimefine: 37,\n\t\t\t\t\t\tdataentryfine: 38,\n\t\t\t\t\t\tvolumefine: 39,\n\t\t\t\t\t\tbalancefine: 40,\n\t\t\t\t\t\tpanfine: 42,\n\t\t\t\t\t\texpressionfine: 43,\n\t\t\t\t\t\teffectcontrol1fine: 44,\n\t\t\t\t\t\teffectcontrol2fine: 45,\n\t\t\t\t\t\tholdpedal: 64,\n\t\t\t\t\t\tportamento: 65,\n\t\t\t\t\t\tsustenutopedal: 66,\n\t\t\t\t\t\tsoftpedal: 67,\n\t\t\t\t\t\tlegatopedal: 68,\n\t\t\t\t\t\thold2pedal: 69,\n\t\t\t\t\t\tsoundvariation: 70,\n\t\t\t\t\t\tresonance: 71,\n\t\t\t\t\t\tsoundreleasetime: 72,\n\t\t\t\t\t\tsoundattacktime: 73,\n\t\t\t\t\t\tbrightness: 74,\n\t\t\t\t\t\tsoundcontrol6: 75,\n\t\t\t\t\t\tsoundcontrol7: 76,\n\t\t\t\t\t\tsoundcontrol8: 77,\n\t\t\t\t\t\tsoundcontrol9: 78,\n\t\t\t\t\t\tsoundcontrol10: 79,\n\t\t\t\t\t\tgeneralpurposebutton1: 80,\n\t\t\t\t\t\tgeneralpurposebutton2: 81,\n\t\t\t\t\t\tgeneralpurposebutton3: 82,\n\t\t\t\t\t\tgeneralpurposebutton4: 83,\n\t\t\t\t\t\treverblevel: 91,\n\t\t\t\t\t\ttremololevel: 92,\n\t\t\t\t\t\tchoruslevel: 93,\n\t\t\t\t\t\tcelestelevel: 94,\n\t\t\t\t\t\tphaserlevel: 95,\n\t\t\t\t\t\tdatabuttonincrement: 96,\n\t\t\t\t\t\tdatabuttondecrement: 97,\n\t\t\t\t\t\tnonregisteredparametercoarse: 98,\n\t\t\t\t\t\tnonregisteredparameterfine: 99,\n\t\t\t\t\t\tregisteredparametercoarse: 100,\n\t\t\t\t\t\tregisteredparameterfine: 101\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_NRPN_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tentrymsb: 6,\n\t\t\t\t\t\tentrylsb: 38,\n\t\t\t\t\t\tincrement: 96,\n\t\t\t\t\t\tdecrement: 97,\n\t\t\t\t\t\tparamlsb: 98,\n\t\t\t\t\t\tparammsb: 99,\n\t\t\t\t\t\tnullactiveparameter: 127\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CHANNEL_MODE_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tallsoundoff: 120,\n\t\t\t\t\t\tresetallcontrollers: 121,\n\t\t\t\t\t\tlocalcontrol: 122,\n\t\t\t\t\t\tallnotesoff: 123,\n\t\t\t\t\t\tomnimodeoff: 124,\n\t\t\t\t\t\tomnimodeon: 125,\n\t\t\t\t\t\tmonomodeon: 126,\n\t\t\t\t\t\tpolymodeon: 127\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\toctaveOffset: {\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\twritable: !0,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t}\n\t\t\t}), Object.defineProperties(this, {\n\t\t\t\tsupported: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn \"requestMIDIAccess\" in navigator;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this.interface !== void 0;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tinputs: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._inputs;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\toutputs: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._outputs;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tsysexEnabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn !(!this.interface || !this.interface.sysexEnabled);\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tnrpnEventsEnabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn !!this._nrpnEventsEnabled;\n\t\t\t\t\t}.bind(this),\n\t\t\t\t\tset: function(e) {\n\t\t\t\t\t\treturn this._nrpnEventsEnabled = e, this._nrpnEventsEnabled;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnrpnTypes: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._nrpnTypes;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\ttime: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn performance.now();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar n = new WebMidi();\n\t\tfunction Input(e) {\n\t\t\tvar t = this;\n\t\t\tthis._userHandlers = {\n\t\t\t\tchannel: {},\n\t\t\t\tsystem: {}\n\t\t\t}, this._midiInput = e, Object.defineProperties(this, {\n\t\t\t\tconnection: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.connection;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.id;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmanufacturer: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.manufacturer;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.name;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.state;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}), this._initializeUserHandlers(), this._midiInput.onmidimessage = this._onMidiMessage.bind(this);\n\t\t}\n\t\tfunction Output(e) {\n\t\t\tvar t = this;\n\t\t\tthis._midiOutput = e, Object.defineProperties(this, {\n\t\t\t\tconnection: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.connection;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.id;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmanufacturer: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.manufacturer;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.name;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.state;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tWebMidi.prototype.enable = function(e, t) {\n\t\t\tthis.enabled || (this.supported ? navigator.requestMIDIAccess({ sysex: t }).then(function(t) {\n\t\t\t\tvar n, r = [], i = [];\n\t\t\t\tthis.interface = t, this._resetInterfaceUserHandlers(), this.interface.onstatechange = function(e) {\n\t\t\t\t\tr.push(e);\n\t\t\t\t};\n\t\t\t\tfor (var a = t.inputs.values(), o = a.next(); o && !o.done; o = a.next()) i.push(o.value.open());\n\t\t\t\tfor (var s = t.outputs.values(), c = s.next(); c && !c.done; c = s.next()) i.push(c.value.open());\n\t\t\t\tfunction onPortsOpen() {\n\t\t\t\t\tclearTimeout(n), this._updateInputsAndOutputs(), this.interface.onstatechange = this._onInterfaceStateChange.bind(this), typeof e == \"function\" && e.call(this), r.forEach(function(e) {\n\t\t\t\t\t\tthis._onInterfaceStateChange(e);\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}\n\t\t\t\tn = setTimeout(onPortsOpen.bind(this), 200), Promise && Promise.all(i).catch(function(e) {}).then(onPortsOpen.bind(this));\n\t\t\t}.bind(this), function(t) {\n\t\t\t\ttypeof e == \"function\" && e.call(this, t);\n\t\t\t}.bind(this)) : typeof e == \"function\" && e(/* @__PURE__ */ Error(\"The Web MIDI API is not supported by your browser.\")));\n\t\t}, WebMidi.prototype.disable = function() {\n\t\t\tif (!this.supported) throw Error(\"The Web MIDI API is not supported by your browser.\");\n\t\t\tthis.enabled && (this.removeListener(), this.inputs.forEach(function(e) {\n\t\t\t\te.removeListener();\n\t\t\t})), this.interface && (this.interface.onstatechange = void 0), this.interface = void 0, this._inputs = [], this._outputs = [], this._nrpnEventsEnabled = !0, this._resetInterfaceUserHandlers();\n\t\t}, WebMidi.prototype.addListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before adding event listeners.\");\n\t\t\tif (typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (!(0 <= this._midiInterfaceEvents.indexOf(e))) throw TypeError(\"The specified event type is not supported.\");\n\t\t\treturn this._userHandlers[e].push(t), this;\n\t\t}, WebMidi.prototype.hasListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before checking event listeners.\");\n\t\t\tif (typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (!(0 <= this._midiInterfaceEvents.indexOf(e))) throw TypeError(\"The specified event type is not supported.\");\n\t\t\tfor (var n = 0; n < this._userHandlers[e].length; n++) if (this._userHandlers[e][n] === t) return !0;\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.removeListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before removing event listeners.\");\n\t\t\tif (t !== void 0 && typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (0 <= this._midiInterfaceEvents.indexOf(e)) if (t) for (var n = 0; n < this._userHandlers[e].length; n++) this._userHandlers[e][n] === t && this._userHandlers[e].splice(n, 1);\n\t\t\telse this._userHandlers[e] = [];\n\t\t\telse {\n\t\t\t\tif (e !== void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tthis._resetInterfaceUserHandlers();\n\t\t\t}\n\t\t\treturn this;\n\t\t}, WebMidi.prototype.toMIDIChannels = function(e) {\n\t\t\tvar t;\n\t\t\tif (e === \"all\" || e === void 0) t = [\"all\"];\n\t\t\telse {\n\t\t\t\tif (e === \"none\") return t = [];\n\t\t\t\tt = Array.isArray(e) ? e : [e];\n\t\t\t}\n\t\t\treturn -1 < t.indexOf(\"all\") && (t = [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t\t3,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t6,\n\t\t\t\t7,\n\t\t\t\t8,\n\t\t\t\t9,\n\t\t\t\t10,\n\t\t\t\t11,\n\t\t\t\t12,\n\t\t\t\t13,\n\t\t\t\t14,\n\t\t\t\t15,\n\t\t\t\t16\n\t\t\t]), t.map(function(e) {\n\t\t\t\treturn parseInt(e);\n\t\t\t}).filter(function(e) {\n\t\t\t\treturn 1 <= e && e <= 16;\n\t\t\t});\n\t\t}, WebMidi.prototype.getInputById = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\te = String(e);\n\t\t\tfor (var t = 0; t < this.inputs.length; t++) if (this.inputs[t].id === e) return this.inputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getOutputById = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\te = String(e);\n\t\t\tfor (var t = 0; t < this.outputs.length; t++) if (this.outputs[t].id === e) return this.outputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getInputByName = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\tfor (var t = 0; t < this.inputs.length; t++) if (~this.inputs[t].name.indexOf(e)) return this.inputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getOctave = function(e) {\n\t\t\tif (e != null && 0 <= e && e <= 127) return Math.floor(Math.floor(e) / 12 - 1) + Math.floor(n.octaveOffset);\n\t\t}, WebMidi.prototype.getOutputByName = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\tfor (var t = 0; t < this.outputs.length; t++) if (~this.outputs[t].name.indexOf(e)) return this.outputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.guessNoteNumber = function(e) {\n\t\t\tvar t = !1;\n\t\t\tif (e && e.toFixed && 0 <= e && e <= 127 ? t = Math.round(e) : 0 <= parseInt(e) && parseInt(e) <= 127 ? t = parseInt(e) : (typeof e == \"string\" || e instanceof String) && (t = this.noteNameToNumber(e)), !1 === t) throw Error(\"Invalid input value (\" + e + \").\");\n\t\t\treturn t;\n\t\t}, WebMidi.prototype.noteNameToNumber = function(e) {\n\t\t\ttypeof e != \"string\" && (e = \"\");\n\t\t\tvar t = e.match(/([CDEFGAB])(#{0,2}|b{0,2})(-?\\d+)/i);\n\t\t\tif (!t) throw RangeError(\"Invalid note name.\");\n\t\t\tvar r = n._semitones[t[1].toUpperCase()], i = 12 * (parseInt(t[3]) + 1 - Math.floor(n.octaveOffset)) + r;\n\t\t\tif (-1 < t[2].toLowerCase().indexOf(\"b\") ? i -= t[2].length : -1 < t[2].toLowerCase().indexOf(\"#\") && (i += t[2].length), i < 0 || 127 < i) throw RangeError(\"Invalid note name or note outside valid range.\");\n\t\t\treturn i;\n\t\t}, WebMidi.prototype._updateInputsAndOutputs = function() {\n\t\t\tthis._updateInputs(), this._updateOutputs();\n\t\t}, WebMidi.prototype._updateInputs = function() {\n\t\t\tfor (var e = 0; e < this._inputs.length; e++) {\n\t\t\t\tfor (var t = !0, n = this.interface.inputs.values(), r = n.next(); r && !r.done; r = n.next()) if (this._inputs[e]._midiInput === r.value) {\n\t\t\t\t\tt = !1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt && this._inputs.splice(e, 1);\n\t\t\t}\n\t\t\tthis.interface && this.interface.inputs.forEach(function(e) {\n\t\t\t\tfor (var t = !0, n = 0; n < this._inputs.length; n++) this._inputs[n]._midiInput === e && (t = !1);\n\t\t\t\tt && this._inputs.push(new Input(e));\n\t\t\t}.bind(this));\n\t\t}, WebMidi.prototype._updateOutputs = function() {\n\t\t\tfor (var e = 0; e < this._outputs.length; e++) {\n\t\t\t\tfor (var t = !0, n = this.interface.outputs.values(), r = n.next(); r && !r.done; r = n.next()) if (this._outputs[e]._midiOutput === r.value) {\n\t\t\t\t\tt = !1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt && this._outputs.splice(e, 1);\n\t\t\t}\n\t\t\tthis.interface && this.interface.outputs.forEach(function(e) {\n\t\t\t\tfor (var t = !0, n = 0; n < this._outputs.length; n++) this._outputs[n]._midiOutput === e && (t = !1);\n\t\t\t\tt && this._outputs.push(new Output(e));\n\t\t\t}.bind(this));\n\t\t}, WebMidi.prototype._onInterfaceStateChange = function(e) {\n\t\t\tthis._updateInputsAndOutputs();\n\t\t\tvar t = {\n\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\ttype: e.port.state\n\t\t\t};\n\t\t\tthis.interface && e.port.state === \"connected\" ? e.port.type === \"output\" ? t.port = this.getOutputById(e.port.id) : e.port.type === \"input\" && (t.port = this.getInputById(e.port.id)) : t.port = {\n\t\t\t\tconnection: \"closed\",\n\t\t\t\tid: e.port.id,\n\t\t\t\tmanufacturer: e.port.manufacturer,\n\t\t\t\tname: e.port.name,\n\t\t\t\tstate: e.port.state,\n\t\t\t\ttype: e.port.type\n\t\t\t}, this._userHandlers[e.port.state].forEach(function(e) {\n\t\t\t\te(t);\n\t\t\t});\n\t\t}, WebMidi.prototype._resetInterfaceUserHandlers = function() {\n\t\t\tfor (var e = 0; e < this._midiInterfaceEvents.length; e++) this._userHandlers[this._midiInterfaceEvents[e]] = [];\n\t\t}, Input.prototype.on = Input.prototype.addListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (t === void 0 && (t = \"all\"), Array.isArray(t) || (t = [t]), t.forEach(function(e) {\n\t\t\t\tif (e !== \"all\" && !(1 <= e && e <= 16)) throw RangeError(\"The 'channel' parameter is invalid.\");\n\t\t\t}), typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (n.MIDI_SYSTEM_MESSAGES[e] !== void 0) this._userHandlers.system[e] || (this._userHandlers.system[e] = []), this._userHandlers.system[e].push(r);\n\t\t\telse {\n\t\t\t\tif (n.MIDI_CHANNEL_MESSAGES[e] === void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var a = 1; a <= 16; a++) t.push(a);\n\t\t\t\t}\n\t\t\t\tthis._userHandlers.channel[e] || (this._userHandlers.channel[e] = []), t.forEach(function(t) {\n\t\t\t\t\ti._userHandlers.channel[e][t] || (i._userHandlers.channel[e][t] = []), i._userHandlers.channel[e][t].push(r);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Input.prototype.hasListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (t === void 0 && (t = \"all\"), t.constructor !== Array && (t = [t]), n.MIDI_SYSTEM_MESSAGES[e] !== void 0) {\n\t\t\t\tfor (var a = 0; a < this._userHandlers.system[e].length; a++) if (this._userHandlers.system[e][a] === r) return !0;\n\t\t\t} else if (n.MIDI_CHANNEL_MESSAGES[e] !== void 0) {\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var o = 1; o <= 16; o++) t.push(o);\n\t\t\t\t}\n\t\t\t\treturn !!this._userHandlers.channel[e] && t.every(function(t) {\n\t\t\t\t\tvar n = i._userHandlers.channel[e][t];\n\t\t\t\t\treturn n && -1 < n.indexOf(r);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn !1;\n\t\t}, Input.prototype.removeListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r !== void 0 && typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (t === void 0 && (t = \"all\"), t.constructor !== Array && (t = [t]), n.MIDI_SYSTEM_MESSAGES[e] !== void 0) if (r === void 0) this._userHandlers.system[e] = [];\n\t\t\telse for (var a = 0; a < this._userHandlers.system[e].length; a++) this._userHandlers.system[e][a] === r && this._userHandlers.system[e].splice(a, 1);\n\t\t\telse if (n.MIDI_CHANNEL_MESSAGES[e] !== void 0) {\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var o = 1; o <= 16; o++) t.push(o);\n\t\t\t\t}\n\t\t\t\tif (!this._userHandlers.channel[e]) return this;\n\t\t\t\tt.forEach(function(t) {\n\t\t\t\t\tvar n = i._userHandlers.channel[e][t];\n\t\t\t\t\tif (n) if (r === void 0) i._userHandlers.channel[e][t] = [];\n\t\t\t\t\telse for (var a = 0; a < n.length; a++) n[a] === r && n.splice(a, 1);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (e !== void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tthis._initializeUserHandlers();\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Input.prototype._initializeUserHandlers = function() {\n\t\t\tfor (var e in n.MIDI_CHANNEL_MESSAGES) Object.prototype.hasOwnProperty.call(n.MIDI_CHANNEL_MESSAGES, e) && (this._userHandlers.channel[e] = {});\n\t\t\tfor (var t in n.MIDI_SYSTEM_MESSAGES) Object.prototype.hasOwnProperty.call(n.MIDI_SYSTEM_MESSAGES, t) && (this._userHandlers.system[t] = []);\n\t\t}, Input.prototype._onMidiMessage = function(e) {\n\t\t\tif (0 < this._userHandlers.system.midimessage.length) {\n\t\t\t\tvar t = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\tdata: e.data,\n\t\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\t\ttype: \"midimessage\"\n\t\t\t\t};\n\t\t\t\tthis._userHandlers.system.midimessage.forEach(function(e) {\n\t\t\t\t\te(t);\n\t\t\t\t});\n\t\t\t}\n\t\t\te.data[0] < 240 ? (this._parseChannelEvent(e), this._parseNrpnEvent(e)) : e.data[0] <= 255 && this._parseSystemEvent(e);\n\t\t}, Input.prototype._parseNrpnEvent = function(e) {\n\t\t\tvar t, r, i = e.data[0] >> 4, a = 15 & e.data[0], o = 1 + a;\n\t\t\tif (1 < e.data.length && (t = e.data[1], r = 2 < e.data.length ? e.data[2] : void 0), n.nrpnEventsEnabled && i === n.MIDI_CHANNEL_MESSAGES.controlchange && (t >= n.MIDI_NRPN_MESSAGES.increment && t <= n.MIDI_NRPN_MESSAGES.parammsb || t === n.MIDI_NRPN_MESSAGES.entrymsb || t === n.MIDI_NRPN_MESSAGES.entrylsb)) {\n\t\t\t\tvar s = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttype: \"controlchange\",\n\t\t\t\t\tdata: e.data,\n\t\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\t\tchannel: o,\n\t\t\t\t\tcontroller: {\n\t\t\t\t\t\tnumber: t,\n\t\t\t\t\t\tname: this.getCcNameByNumber(t)\n\t\t\t\t\t},\n\t\t\t\t\tvalue: r\n\t\t\t\t};\n\t\t\t\tif (s.controller.number === n.MIDI_NRPN_MESSAGES.parammsb && s.value != n.MIDI_NRPN_MESSAGES.nullactiveparameter) n._nrpnBuffer[a] = [], n._nrpnBuffer[a][0] = s;\n\t\t\t\telse if (n._nrpnBuffer[a].length === 1 && s.controller.number === n.MIDI_NRPN_MESSAGES.paramlsb) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (n._nrpnBuffer[a].length !== 2 || s.controller.number !== n.MIDI_NRPN_MESSAGES.increment && s.controller.number !== n.MIDI_NRPN_MESSAGES.decrement && s.controller.number !== n.MIDI_NRPN_MESSAGES.entrymsb) if (n._nrpnBuffer[a].length === 3 && n._nrpnBuffer[a][2].number === n.MIDI_NRPN_MESSAGES.entrymsb && s.controller.number === n.MIDI_NRPN_MESSAGES.entrylsb) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (3 <= n._nrpnBuffer[a].length && n._nrpnBuffer[a].length <= 4 && s.controller.number === n.MIDI_NRPN_MESSAGES.parammsb && s.value === n.MIDI_NRPN_MESSAGES.nullactiveparameter) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (4 <= n._nrpnBuffer[a].length && n._nrpnBuffer[a].length <= 5 && s.controller.number === n.MIDI_NRPN_MESSAGES.paramlsb && s.value === n.MIDI_NRPN_MESSAGES.nullactiveparameter) {\n\t\t\t\t\tn._nrpnBuffer[a].push(s);\n\t\t\t\t\tvar c = [];\n\t\t\t\t\tn._nrpnBuffer[a].forEach(function(e) {\n\t\t\t\t\t\tc.push(e.data);\n\t\t\t\t\t});\n\t\t\t\t\tvar l = n._nrpnBuffer[a][0].value << 7 | n._nrpnBuffer[a][1].value, u = n._nrpnBuffer[a][2].value;\n\t\t\t\t\tn._nrpnBuffer[a].length === 6 && (u = n._nrpnBuffer[a][2].value << 7 | n._nrpnBuffer[a][3].value);\n\t\t\t\t\tvar d = \"\";\n\t\t\t\t\tswitch (n._nrpnBuffer[a][2].controller.number) {\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.entrymsb:\n\t\t\t\t\t\t\td = n._nrpnTypes[0];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.increment:\n\t\t\t\t\t\t\td = n._nrpnTypes[1];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.decrement:\n\t\t\t\t\t\t\td = n._nrpnTypes[2];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: throw Error(\"The NPRN type was unidentifiable.\");\n\t\t\t\t\t}\n\t\t\t\t\tvar f = {\n\t\t\t\t\t\ttimestamp: s.timestamp,\n\t\t\t\t\t\tchannel: s.channel,\n\t\t\t\t\t\ttype: \"nrpn\",\n\t\t\t\t\t\tdata: c,\n\t\t\t\t\t\tcontroller: {\n\t\t\t\t\t\t\tnumber: l,\n\t\t\t\t\t\t\ttype: d,\n\t\t\t\t\t\t\tname: \"Non-Registered Parameter \" + l\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalue: u\n\t\t\t\t\t};\n\t\t\t\t\tn._nrpnBuffer[a] = [], this._userHandlers.channel[f.type] && this._userHandlers.channel[f.type][f.channel] && this._userHandlers.channel[f.type][f.channel].forEach(function(e) {\n\t\t\t\t\t\te(f);\n\t\t\t\t\t});\n\t\t\t\t} else n._nrpnBuffer[a] = [];\n\t\t\t\telse n._nrpnBuffer[a].push(s);\n\t\t\t}\n\t\t}, Input.prototype._parseChannelEvent = function(e) {\n\t\t\tvar t, r, i = e.data[0] >> 4, a = 1 + (15 & e.data[0]);\n\t\t\t1 < e.data.length && (t = e.data[1], r = 2 < e.data.length ? e.data[2] : void 0);\n\t\t\tvar o = {\n\t\t\t\ttarget: this,\n\t\t\t\tdata: e.data,\n\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\tchannel: a\n\t\t\t};\n\t\t\ti === n.MIDI_CHANNEL_MESSAGES.noteoff || i === n.MIDI_CHANNEL_MESSAGES.noteon && r === 0 ? (o.type = \"noteoff\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.velocity = r / 127, o.rawVelocity = r) : i === n.MIDI_CHANNEL_MESSAGES.noteon ? (o.type = \"noteon\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.velocity = r / 127, o.rawVelocity = r) : i === n.MIDI_CHANNEL_MESSAGES.keyaftertouch ? (o.type = \"keyaftertouch\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.value = r / 127) : i === n.MIDI_CHANNEL_MESSAGES.controlchange && 0 <= t && t <= 119 ? (o.type = \"controlchange\", o.controller = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: this.getCcNameByNumber(t)\n\t\t\t}, o.value = r) : i === n.MIDI_CHANNEL_MESSAGES.channelmode && 120 <= t && t <= 127 ? (o.type = \"channelmode\", o.controller = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: this.getChannelModeByNumber(t)\n\t\t\t}, o.value = r) : i === n.MIDI_CHANNEL_MESSAGES.programchange ? (o.type = \"programchange\", o.value = t) : i === n.MIDI_CHANNEL_MESSAGES.channelaftertouch ? (o.type = \"channelaftertouch\", o.value = t / 127) : i === n.MIDI_CHANNEL_MESSAGES.pitchbend ? (o.type = \"pitchbend\", o.value = ((r << 7) + t - 8192) / 8192) : o.type = \"unknownchannelmessage\", this._userHandlers.channel[o.type] && this._userHandlers.channel[o.type][a] && this._userHandlers.channel[o.type][a].forEach(function(e) {\n\t\t\t\te(o);\n\t\t\t});\n\t\t}, Input.prototype.getCcNameByNumber = function(e) {\n\t\t\tif (!(0 <= (e = Math.floor(e)) && e <= 119)) throw RangeError(\"The control change number must be between 0 and 119.\");\n\t\t\tfor (var t in n.MIDI_CONTROL_CHANGE_MESSAGES) if (Object.prototype.hasOwnProperty.call(n.MIDI_CONTROL_CHANGE_MESSAGES, t) && e === n.MIDI_CONTROL_CHANGE_MESSAGES[t]) return t;\n\t\t}, Input.prototype.getChannelModeByNumber = function(e) {\n\t\t\tif (!(120 <= (e = Math.floor(e)) && status <= 127)) throw RangeError(\"The control change number must be between 120 and 127.\");\n\t\t\tfor (var t in n.MIDI_CHANNEL_MODE_MESSAGES) if (Object.prototype.hasOwnProperty.call(n.MIDI_CHANNEL_MODE_MESSAGES, t) && e === n.MIDI_CHANNEL_MODE_MESSAGES[t]) return t;\n\t\t}, Input.prototype._parseSystemEvent = function(e) {\n\t\t\tvar t = e.data[0], r = {\n\t\t\t\ttarget: this,\n\t\t\t\tdata: e.data,\n\t\t\t\ttimestamp: e.timeStamp\n\t\t\t};\n\t\t\tt === n.MIDI_SYSTEM_MESSAGES.sysex ? r.type = \"sysex\" : t === n.MIDI_SYSTEM_MESSAGES.timecode ? r.type = \"timecode\" : t === n.MIDI_SYSTEM_MESSAGES.songposition ? r.type = \"songposition\" : t === n.MIDI_SYSTEM_MESSAGES.songselect ? (r.type = \"songselect\", r.song = e.data[1]) : t === n.MIDI_SYSTEM_MESSAGES.tuningrequest ? r.type = \"tuningrequest\" : t === n.MIDI_SYSTEM_MESSAGES.clock ? r.type = \"clock\" : t === n.MIDI_SYSTEM_MESSAGES.start ? r.type = \"start\" : t === n.MIDI_SYSTEM_MESSAGES.continue ? r.type = \"continue\" : t === n.MIDI_SYSTEM_MESSAGES.stop ? r.type = \"stop\" : t === n.MIDI_SYSTEM_MESSAGES.activesensing ? r.type = \"activesensing\" : t === n.MIDI_SYSTEM_MESSAGES.reset ? r.type = \"reset\" : r.type = \"unknownsystemmessage\", this._userHandlers.system[r.type] && this._userHandlers.system[r.type].forEach(function(e) {\n\t\t\t\te(r);\n\t\t\t});\n\t\t}, Output.prototype.send = function(e, t, n) {\n\t\t\tif (!(128 <= e && e <= 255)) throw RangeError(\"The status byte must be an integer between 128 (0x80) and 255 (0xFF).\");\n\t\t\tt === void 0 && (t = []), Array.isArray(t) || (t = [t]);\n\t\t\tvar r = [];\n\t\t\treturn t.forEach(function(e) {\n\t\t\t\tvar t = Math.floor(e);\n\t\t\t\tif (!(0 <= t && t <= 255)) throw RangeError(\"Data bytes must be integers between 0 (0x00) and 255 (0xFF).\");\n\t\t\t\tr.push(t);\n\t\t\t}), this._midiOutput.send([e].concat(r), parseFloat(n) || 0), this;\n\t\t}, Output.prototype.sendSysex = function(e, t, r) {\n\t\t\tif (!n.sysexEnabled) throw Error(\"Sysex message support must first be activated.\");\n\t\t\treturn r ||= {}, e = [].concat(e), t.forEach(function(e) {\n\t\t\t\tif (e < 0 || 127 < e) throw RangeError(\"The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).\");\n\t\t\t}), t = e.concat(t, n.MIDI_SYSTEM_MESSAGES.sysexend), this.send(n.MIDI_SYSTEM_MESSAGES.sysex, t, this._parseTimeParameter(r.time)), this;\n\t\t}, Output.prototype.sendTimecodeQuarterFrame = function(e, t) {\n\t\t\treturn t ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.timecode, e, this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendSongPosition = function(e, t) {\n\t\t\tt ||= {};\n\t\t\tvar r = (e = Math.floor(e) || 0) >> 7 & 127, i = 127 & e;\n\t\t\treturn this.send(n.MIDI_SYSTEM_MESSAGES.songposition, [r, i], this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendSongSelect = function(e, t) {\n\t\t\tif (t ||= {}, !(0 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"The song number must be between 0 and 127.\");\n\t\t\treturn this.send(n.MIDI_SYSTEM_MESSAGES.songselect, [e], this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendTuningRequest = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.tuningrequest, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendClock = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.clock, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendStart = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.start, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendContinue = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.continue, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendStop = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.stop, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendActiveSensing = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.activesensing, [], this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendReset = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.reset, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.stopNote = function(e, t, r) {\n\t\t\tif (e === \"all\") return this.sendChannelMode(\"allnotesoff\", 0, t, r);\n\t\t\tvar i = 64;\n\t\t\treturn (r ||= {}).rawVelocity ? !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 127 && (i = r.velocity) : !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 1 && (i = 127 * r.velocity), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteoff << 4) + (t - 1), [e, Math.round(i)], this._parseTimeParameter(r.time));\n\t\t\t\t}.bind(this));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.playNote = function(e, t, r) {\n\t\t\tvar i, a = 64;\n\t\t\tif ((r ||= {}).rawVelocity ? !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 127 && (a = r.velocity) : !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 1 && (a = 127 * r.velocity), i = this._parseTimeParameter(r.time), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteon << 4) + (t - 1), [e, Math.round(a)], i);\n\t\t\t\t}.bind(this));\n\t\t\t}.bind(this)), !isNaN(r.duration)) {\n\t\t\t\tr.duration <= 0 && (r.duration = 0);\n\t\t\t\tvar o = 64;\n\t\t\t\tr.rawVelocity ? !isNaN(r.release) && 0 <= r.release && r.release <= 127 && (o = r.release) : !isNaN(r.release) && 0 <= r.release && r.release <= 1 && (o = 127 * r.release), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteoff << 4) + (t - 1), [e, Math.round(o)], (i || n.time) + r.duration);\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Output.prototype.sendKeyAftertouch = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, t < 1 || 16 < t) throw RangeError(\"The channel must be between 1 and 16.\");\n\t\t\t(isNaN(r) || r < 0 || 1 < r) && (r = .5);\n\t\t\tvar o = Math.round(127 * r);\n\t\t\treturn this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\ta.send((n.MIDI_CHANNEL_MESSAGES.keyaftertouch << 4) + (t - 1), [e, o], a._parseTimeParameter(i.time));\n\t\t\t\t});\n\t\t\t}), this;\n\t\t}, Output.prototype.sendControlChange = function(e, t, r, i) {\n\t\t\tif (i ||= {}, typeof e == \"string\") {\n\t\t\t\tif ((e = n.MIDI_CONTROL_CHANGE_MESSAGES[e]) === void 0) throw TypeError(\"Invalid controller name.\");\n\t\t\t} else if (!(0 <= (e = Math.floor(e)) && e <= 119)) throw RangeError(\"Controller numbers must be between 0 and 119.\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"Controller value must be between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function(r) {\n\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.controlchange << 4) + (r - 1), [e, t], this._parseTimeParameter(i.time));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype._selectRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (e[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The control65 value must be between 0 and 127\");\n\t\t\tif (e[1] = Math.floor(e[1]), !(0 <= e[1] && e[1] <= 127)) throw RangeError(\"The control64 value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(101, e[0], t, { time: r }), i.sendControlChange(100, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._selectNonRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (e[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The control63 value must be between 0 and 127\");\n\t\t\tif (e[1] = Math.floor(e[1]), !(0 <= e[1] && e[1] <= 127)) throw RangeError(\"The control62 value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(99, e[0], t, { time: r }), i.sendControlChange(98, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._setCurrentRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif ((e = [].concat(e))[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The msb value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(6, e[0], t, { time: r });\n\t\t\t}), e[1] = Math.floor(e[1]), 0 <= e[1] && e[1] <= 127 && n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(38, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._deselectRegisteredParameter = function(e, t) {\n\t\t\tvar r = this;\n\t\t\treturn n.toMIDIChannels(e).forEach(function() {\n\t\t\t\tr.sendControlChange(101, 127, e, { time: t }), r.sendControlChange(100, 127, e, { time: t });\n\t\t\t}), this;\n\t\t}, Output.prototype.setRegisteredParameter = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw Error(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta._selectRegisteredParameter(e, r, i.time), a._setCurrentRegisteredParameter(t, r, i.time), a._deselectRegisteredParameter(r, i.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.setNonRegisteredParameter = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= e[0] && e[0] <= 127 && 0 <= e[1] && e[1] <= 127)) throw Error(\"Position 0 and 1 of the 2-position parameter array must both be between 0 and 127.\");\n\t\t\treturn t = [].concat(t), n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta._selectNonRegisteredParameter(e, r, i.time), a._setCurrentRegisteredParameter(t, r, i.time), a._deselectRegisteredParameter(r, i.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.incrementRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw Error(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti._selectRegisteredParameter(e, t, r.time), i.sendControlChange(96, 0, t, { time: r.time }), i._deselectRegisteredParameter(t, r.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.decrementRegisteredParameter = function(e, t, r) {\n\t\t\tif (r ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw TypeError(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\tthis._selectRegisteredParameter(e, t, r.time), this.sendControlChange(97, 0, t, { time: r.time }), this._deselectRegisteredParameter(t, r.time);\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.setPitchBendRange = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The semitones value must be between 0 and 127\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"The cents value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta.setRegisteredParameter(\"pitchbendrange\", [e, t], r, { time: i.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setModulationRange = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The semitones value must be between 0 and 127\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"The cents value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta.setRegisteredParameter(\"modulationrange\", [e, t], r, { time: i.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setMasterTuning = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, (e = parseFloat(e) || 0) <= -65 || 64 <= e) throw RangeError(\"The value must be a decimal number larger than -65 and smaller than 64.\");\n\t\t\tvar a = Math.floor(e) + 64, o = e - Math.floor(e), s = (o = Math.round((o + 1) / 2 * 16383)) >> 7 & 127, c = 127 & o;\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"channelcoarsetuning\", a, t, { time: r.time }), i.setRegisteredParameter(\"channelfinetuning\", [s, c], t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setTuningProgram = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !(0 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"The program value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"tuningprogram\", e, t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setTuningBank = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The bank value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"tuningbank\", e, t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.sendChannelMode = function(e, t, r, i) {\n\t\t\tif (i ||= {}, typeof e == \"string\") {\n\t\t\t\tif (!(e = n.MIDI_CHANNEL_MODE_MESSAGES[e])) throw TypeError(\"Invalid channel mode message name.\");\n\t\t\t} else if (!(120 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"Channel mode numerical identifiers must be between 120 and 127.\");\n\t\t\tif ((t = Math.floor(t) || 0) < 0 || 127 < t) throw RangeError(\"Value must be an integer between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function(r) {\n\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.channelmode << 4) + (r - 1), [e, t], this._parseTimeParameter(i.time));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.sendProgramChange = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, e = Math.floor(e), isNaN(e) || e < 0 || 127 < e) throw RangeError(\"Program numbers must be between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.programchange << 4) + (t - 1), [e], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype.sendChannelAftertouch = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tr ||= {}, e = parseFloat(e), (isNaN(e) || e < 0 || 1 < e) && (e = .5);\n\t\t\tvar a = Math.round(127 * e);\n\t\t\treturn n.toMIDIChannels(t).forEach(function(e) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.channelaftertouch << 4) + (e - 1), [a], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype.sendPitchBend = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, isNaN(e) || e < -1 || 1 < e) throw RangeError(\"Pitch bend value must be between -1 and 1.\");\n\t\t\tvar a = Math.round((e + 1) / 2 * 16383), o = a >> 7 & 127, s = 127 & a;\n\t\t\treturn n.toMIDIChannels(t).forEach(function(e) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.pitchbend << 4) + (e - 1), [s, o], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype._parseTimeParameter = function(e) {\n\t\t\tvar t, r = parseFloat(e);\n\t\t\treturn typeof e == \"string\" && e.substring(0, 1) === \"+\" ? r && 0 < r && (t = n.time + r) : r > n.time && (t = r), t;\n\t\t}, Output.prototype._convertNoteToArray = function(e) {\n\t\t\tvar t = [];\n\t\t\treturn Array.isArray(e) || (e = [e]), e.forEach(function(e) {\n\t\t\t\tt.push(n.guessNoteNumber(e));\n\t\t\t}), t;\n\t\t}, typeof define == \"function\" && typeof define.amd == \"object\" ? define([], function() {\n\t\t\treturn n;\n\t\t}) : t !== void 0 && t.exports ? t.exports = n : e.WebMidi ||= n;\n\t})(e);\n})), fillStr = (e, t) => Array(Math.abs(t) + 1).join(e);\nfunction isNamed(e) {\n\treturn !!(typeof e == \"object\" && e && typeof e.name == \"string\");\n}\nfunction isPitch(e) {\n\treturn !!(typeof e == \"object\" && e && typeof e.step == \"number\" && typeof e.alt == \"number\");\n}\nvar j = [\n\t0,\n\t2,\n\t4,\n\t-1,\n\t1,\n\t3,\n\t5\n], ne = j.map((e) => Math.floor(e * 7 / 12));\nfunction encode(e) {\n\tlet { step: t, alt: n, oct: r, dir: i = 1 } = e, a = j[t] + 7 * n;\n\tif (r === void 0) return [i * a];\n\tlet o = r - ne[t] - 4 * n;\n\treturn [i * a, i * o];\n}\nvar re = [\n\t3,\n\t0,\n\t4,\n\t1,\n\t5,\n\t2,\n\t6\n];\nfunction decode(e) {\n\tlet [t, n, r] = e, i = re[unaltered(t)], a = Math.floor((t + 1) / 7);\n\treturn n === void 0 ? {\n\t\tstep: i,\n\t\talt: a,\n\t\tdir: r\n\t} : {\n\t\tstep: i,\n\t\talt: a,\n\t\toct: n + 4 * a + ne[i],\n\t\tdir: r\n\t};\n}\nfunction unaltered(e) {\n\tlet t = (e + 1) % 7;\n\treturn t < 0 ? 7 + t : t;\n}\nvar ie = {\n\tempty: !0,\n\tname: \"\",\n\tpc: \"\",\n\tacc: \"\"\n}, M = /* @__PURE__ */ new Map(), stepToLetter = (e) => \"CDEFGAB\".charAt(e), altToAcc = (e) => e < 0 ? fillStr(\"b\", -e) : fillStr(\"#\", e), accToAlt = (e) => e[0] === \"b\" ? -e.length : e.length;\nfunction note(e) {\n\tlet t = M.get(e);\n\tif (t) return t;\n\tlet n = typeof e == \"string\" ? parse$1(e) : isPitch(e) ? note(pitchName(e)) : isNamed(e) ? note(e.name) : ie;\n\treturn M.set(e, n), n;\n}\nvar ae = /^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\\d*)\\s*(.*)$/;\nfunction tokenizeNote(e) {\n\tlet t = ae.exec(e);\n\treturn [\n\t\tt[1].toUpperCase(),\n\t\tt[2].replace(/x/g, \"##\"),\n\t\tt[3],\n\t\tt[4]\n\t];\n}\nfunction coordToNote(e) {\n\treturn note(decode(e));\n}\nvar mod = (e, t) => (e % t + t) % t, N = [\n\t0,\n\t2,\n\t4,\n\t5,\n\t7,\n\t9,\n\t11\n];\nfunction parse$1(e) {\n\tlet t = tokenizeNote(e);\n\tif (t[0] === \"\" || t[3] !== \"\") return ie;\n\tlet n = t[0], r = t[1], i = t[2], a = (n.charCodeAt(0) + 3) % 7, o = accToAlt(r), s = i.length ? +i : void 0, c = encode({\n\t\tstep: a,\n\t\talt: o,\n\t\toct: s\n\t}), l = n + r + i, u = n + r, d = (N[a] + o + 120) % 12, f = s === void 0 ? mod(N[a] + o, 12) - 1188 : N[a] + o + 12 * (s + 1), p = f >= 0 && f <= 127 ? f : null;\n\treturn {\n\t\tempty: !1,\n\t\tacc: r,\n\t\talt: o,\n\t\tchroma: d,\n\t\tcoord: c,\n\t\tfreq: s === void 0 ? null : 2 ** ((f - 69) / 12) * 440,\n\t\theight: f,\n\t\tletter: n,\n\t\tmidi: p,\n\t\tname: l,\n\t\toct: s,\n\t\tpc: u,\n\t\tstep: a\n\t};\n}\nn(parse$1, \"parse\");\nfunction pitchName(e) {\n\tlet { step: t, alt: n, oct: r } = e, i = stepToLetter(t);\n\tif (!i) return \"\";\n\tlet a = i + altToAcc(n);\n\treturn r || r === 0 ? a + r : a;\n}\nvar P = {\n\tempty: !0,\n\tname: \"\",\n\tacc: \"\"\n}, oe = /* @__PURE__ */ RegExp(\"^([-+]?\\\\d+)(d{1,4}|m|M|P|A{1,4})|(AA|A|P|M|m|d|dd)([-+]?\\\\d+)$\");\nfunction tokenizeInterval(e) {\n\tlet t = oe.exec(`${e}`);\n\treturn t === null ? [\"\", \"\"] : t[1] ? [t[1], t[2]] : [t[4], t[3]];\n}\nvar F = {};\nfunction interval(e) {\n\treturn typeof e == \"string\" ? F[e] || (F[e] = parse$1$1(e)) : isPitch(e) ? interval(pitchName$1(e)) : isNamed(e) ? interval(e.name) : P;\n}\nvar I = [\n\t0,\n\t2,\n\t4,\n\t5,\n\t7,\n\t9,\n\t11\n], L = \"PMMPPMM\";\nfunction parse$1$1(e) {\n\tlet t = tokenizeInterval(e);\n\tif (t[0] === \"\") return P;\n\tlet n = +t[0], r = t[1], i = (Math.abs(n) - 1) % 7, a = L[i];\n\tif (a === \"M\" && r === \"P\") return P;\n\tlet o = a === \"M\" ? \"majorable\" : \"perfectable\", s = \"\" + n + r, c = n < 0 ? -1 : 1, l = n === 8 || n === -8 ? n : c * (i + 1), u = qToAlt(o, r), d = Math.floor((Math.abs(n) - 1) / 7);\n\treturn {\n\t\tempty: !1,\n\t\tname: s,\n\t\tnum: n,\n\t\tq: r,\n\t\tstep: i,\n\t\talt: u,\n\t\tdir: c,\n\t\ttype: o,\n\t\tsimple: l,\n\t\tsemitones: c * (I[i] + u + 12 * d),\n\t\tchroma: (c * (I[i] + u) % 12 + 12) % 12,\n\t\tcoord: encode({\n\t\t\tstep: i,\n\t\t\talt: u,\n\t\t\toct: d,\n\t\t\tdir: c\n\t\t}),\n\t\toct: d\n\t};\n}\nn(parse$1$1, \"parse$1\");\nfunction coordToInterval(e) {\n\tlet [t, n = 0] = e;\n\treturn interval(decode(t * 7 + n * 12 < 0 ? [\n\t\t-t,\n\t\t-n,\n\t\t-1\n\t] : [\n\t\tt,\n\t\tn,\n\t\t1\n\t]));\n}\nfunction qToAlt(e, t) {\n\treturn t === \"M\" && e === \"majorable\" || t === \"P\" && e === \"perfectable\" ? 0 : t === \"m\" && e === \"majorable\" ? -1 : /^A+$/.test(t) ? t.length : /^d+$/.test(t) ? -1 * (e === \"perfectable\" ? t.length : t.length + 1) : 0;\n}\nfunction pitchName$1(e) {\n\tlet { step: t, alt: n, oct: r = 0, dir: i } = e;\n\tif (!i) return \"\";\n\tlet a = t + 1 + 7 * r, o = i < 0 ? \"-\" : \"\", s = L[t] === \"M\" ? \"majorable\" : \"perfectable\";\n\treturn o + a + altToQ(s, n);\n}\nfunction altToQ(e, t) {\n\treturn t === 0 ? e === \"majorable\" ? \"M\" : \"P\" : t === -1 && e === \"majorable\" ? \"m\" : t > 0 ? fillStr(\"A\", t) : fillStr(\"d\", e === \"perfectable\" ? t : t + 1);\n}\nfunction transpose$2(e, t) {\n\tlet n = note(e), r = interval(t);\n\tif (n.empty || r.empty) return \"\";\n\tlet i = n.coord, a = r.coord;\n\treturn coordToNote(i.length === 1 ? [i[0] + a[0]] : [i[0] + a[0], i[1] + a[1]]).name;\n}\nn(transpose$2, \"transpose\");\nfunction distance$1(e, t) {\n\tlet n = note(e), r = note(t);\n\tif (n.empty || r.empty) return \"\";\n\tlet i = n.coord, a = r.coord, o = a[0] - i[0];\n\treturn coordToInterval([o, i.length === 2 && a.length === 2 ? a[1] - i[1] : -Math.floor(o * 7 / 12)]).name;\n}\nn(distance$1, \"distance\");\n//#endregion\n//#region ../../node_modules/@tonaljs/collection/dist/index.es.js\nfunction rotate(e, t) {\n\tlet n = t.length, r = (e % n + n) % n;\n\treturn t.slice(r, n).concat(t.slice(0, r));\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/pcset/dist/index.es.js\nvar R = {\n\tempty: !0,\n\tname: \"\",\n\tsetNum: 0,\n\tchroma: \"000000000000\",\n\tnormalized: \"000000000000\",\n\tintervals: []\n}, setNumToChroma = (e) => Number(e).toString(2), chromaToNumber = (e) => parseInt(e, 2), se = /^[01]{12}$/;\nfunction isChroma(e) {\n\treturn se.test(e);\n}\nvar isPcsetNum = (e) => typeof e == \"number\" && e >= 0 && e <= 4095, isPcset = (e) => e && isChroma(e.chroma), z = { [R.chroma]: R };\nfunction get$8(e) {\n\tlet t = isChroma(e) ? e : isPcsetNum(e) ? setNumToChroma(e) : Array.isArray(e) ? listToChroma(e) : isPcset(e) ? e.chroma : R.chroma;\n\treturn z[t] = z[t] || chromaToPcset(t);\n}\nn(get$8, \"get\");\nvar ce = [\n\t\"1P\",\n\t\"2m\",\n\t\"2M\",\n\t\"3m\",\n\t\"3M\",\n\t\"4P\",\n\t\"5d\",\n\t\"5P\",\n\t\"6m\",\n\t\"6M\",\n\t\"7m\",\n\t\"7M\"\n];\nfunction chromaToIntervals(e) {\n\tlet t = [];\n\tfor (let n = 0; n < 12; n++) e.charAt(n) === \"1\" && t.push(ce[n]);\n\treturn t;\n}\nfunction chromaRotations(e) {\n\tlet t = e.split(\"\");\n\treturn t.map((e, n) => rotate(n, t).join(\"\"));\n}\nfunction chromaToPcset(e) {\n\tlet t = chromaToNumber(e), n = chromaRotations(e).map(chromaToNumber).filter((e) => e >= 2048).sort()[0];\n\treturn {\n\t\tempty: !1,\n\t\tname: \"\",\n\t\tsetNum: t,\n\t\tchroma: e,\n\t\tnormalized: setNumToChroma(n),\n\t\tintervals: chromaToIntervals(e)\n\t};\n}\nfunction listToChroma(e) {\n\tif (e.length === 0) return R.chroma;\n\tlet t, n = [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tfor (let r = 0; r < e.length; r++) t = note(e[r]), t.empty && (t = interval(e[r])), t.empty || (n[t.chroma] = 1);\n\treturn n.join(\"\");\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/chord-type/dist/index.es.js\nvar le = [\n\t[\n\t\t\"1P 3M 5P\",\n\t\t\"major\",\n\t\t\"M ^ \"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M\",\n\t\t\"major seventh\",\n\t\t\"maj7 Δ ma7 M7 Maj7 ^7\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M\",\n\t\t\"major ninth\",\n\t\t\"maj9 Δ9 ^9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 13M\",\n\t\t\"major thirteenth\",\n\t\t\"maj13 Maj13 ^13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M\",\n\t\t\"sixth\",\n\t\t\"6 add6 add13 M6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 9M\",\n\t\t\"sixth/ninth\",\n\t\t\"6/9 69 M69\"\n\t],\n\t[\n\t\t\"1P 3M 6m 7M\",\n\t\t\"major seventh flat sixth\",\n\t\t\"M7b6 ^7b6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 11A\",\n\t\t\"major seventh sharp eleventh\",\n\t\t\"maj#4 Δ#4 Δ#11 M7#11 ^7#11 maj7#11\"\n\t],\n\t[\n\t\t\"1P 3m 5P\",\n\t\t\"minor\",\n\t\t\"m min -\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m\",\n\t\t\"minor seventh\",\n\t\t\"m7 min7 mi7 -7\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7M\",\n\t\t\"minor/major seventh\",\n\t\t\"m/ma7 m/maj7 mM7 mMaj7 m/M7 -Δ7 mΔ -^7\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6M\",\n\t\t\"minor sixth\",\n\t\t\"m6 -6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M\",\n\t\t\"minor ninth\",\n\t\t\"m9 -9\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7M 9M\",\n\t\t\"minor/major ninth\",\n\t\t\"mM9 mMaj9 -^9\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M 11P\",\n\t\t\"minor eleventh\",\n\t\t\"m11 -11\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M 13M\",\n\t\t\"minor thirteenth\",\n\t\t\"m13 -13\"\n\t],\n\t[\n\t\t\"1P 3m 5d\",\n\t\t\"diminished\",\n\t\t\"dim ° o\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7d\",\n\t\t\"diminished seventh\",\n\t\t\"dim7 °7 o7\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7m\",\n\t\t\"half-diminished\",\n\t\t\"m7b5 ø -7b5 h7 h\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m\",\n\t\t\"dominant seventh\",\n\t\t\"7 dom\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M\",\n\t\t\"dominant ninth\",\n\t\t\"9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 13M\",\n\t\t\"dominant thirteenth\",\n\t\t\"13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 11A\",\n\t\t\"lydian dominant seventh\",\n\t\t\"7#11 7#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m\",\n\t\t\"dominant flat ninth\",\n\t\t\"7b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A\",\n\t\t\"dominant sharp ninth\",\n\t\t\"7#9\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9m\",\n\t\t\"altered\",\n\t\t\"alt7\"\n\t],\n\t[\n\t\t\"1P 4P 5P\",\n\t\t\"suspended fourth\",\n\t\t\"sus4 sus\"\n\t],\n\t[\n\t\t\"1P 2M 5P\",\n\t\t\"suspended second\",\n\t\t\"sus2\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m\",\n\t\t\"suspended fourth seventh\",\n\t\t\"7sus4 7sus\"\n\t],\n\t[\n\t\t\"1P 5P 7m 9M 11P\",\n\t\t\"eleventh\",\n\t\t\"11\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9m\",\n\t\t\"suspended fourth flat ninth\",\n\t\t\"b9sus phryg 7b9sus 7b9sus4\"\n\t],\n\t[\n\t\t\"1P 5P\",\n\t\t\"fifth\",\n\t\t\"5\"\n\t],\n\t[\n\t\t\"1P 3M 5A\",\n\t\t\"augmented\",\n\t\t\"aug + +5 ^#5\"\n\t],\n\t[\n\t\t\"1P 3m 5A\",\n\t\t\"minor augmented\",\n\t\t\"m#5 -#5 m+\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7M\",\n\t\t\"augmented seventh\",\n\t\t\"maj7#5 maj7+5 +maj7 ^7#5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 11A\",\n\t\t\"major sharp eleventh (lydian)\",\n\t\t\"maj9#11 Δ9#11 ^9#11\"\n\t],\n\t[\n\t\t\"1P 2M 4P 5P\",\n\t\t\"\",\n\t\t\"sus24 sus4add9\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7M 9M\",\n\t\t\"\",\n\t\t\"maj9#5 Maj9#5\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m\",\n\t\t\"\",\n\t\t\"7#5 +7 7+ 7aug aug7\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9A\",\n\t\t\"\",\n\t\t\"7#5#9 7#9#5 7alt\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9M\",\n\t\t\"\",\n\t\t\"9#5 9+\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9M 11A\",\n\t\t\"\",\n\t\t\"9#5#11\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9m\",\n\t\t\"\",\n\t\t\"7#5b9 7b9#5\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9m 11A\",\n\t\t\"\",\n\t\t\"7#5b9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5A 9A\",\n\t\t\"\",\n\t\t\"+add#9\"\n\t],\n\t[\n\t\t\"1P 3M 5A 9M\",\n\t\t\"\",\n\t\t\"M#5add9 +add9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 11A\",\n\t\t\"\",\n\t\t\"M6#11 M6b5 6#11 6b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 7M 9M\",\n\t\t\"\",\n\t\t\"M7add13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 9M 11A\",\n\t\t\"\",\n\t\t\"69#11\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6M 9M\",\n\t\t\"\",\n\t\t\"m69 -69\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6m 7m\",\n\t\t\"\",\n\t\t\"7b6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9A 11A\",\n\t\t\"\",\n\t\t\"maj7#9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 11A 13M\",\n\t\t\"\",\n\t\t\"M13#11 maj13#11 M13+4 M13#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9m\",\n\t\t\"\",\n\t\t\"M7b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 11A 13m\",\n\t\t\"\",\n\t\t\"7#11b13 7b5b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 13M\",\n\t\t\"\",\n\t\t\"7add6 67 7add13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A\",\n\t\t\"\",\n\t\t\"7#9#11 7b5#9 7#9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A 13M\",\n\t\t\"\",\n\t\t\"13#9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A 13m\",\n\t\t\"\",\n\t\t\"7#9#11b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 13M\",\n\t\t\"\",\n\t\t\"13#9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 13m\",\n\t\t\"\",\n\t\t\"7#9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A\",\n\t\t\"\",\n\t\t\"9#11 9+4 9#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A 13M\",\n\t\t\"\",\n\t\t\"13#11 13+4 13#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A 13m\",\n\t\t\"\",\n\t\t\"9#11b13 9b5b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A\",\n\t\t\"\",\n\t\t\"7b9#11 7b5b9 7b9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A 13M\",\n\t\t\"\",\n\t\t\"13b9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A 13m\",\n\t\t\"\",\n\t\t\"7b9b13#11 7b9#11b13 7b5b9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 13M\",\n\t\t\"\",\n\t\t\"13b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 13m\",\n\t\t\"\",\n\t\t\"7b9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 9A\",\n\t\t\"\",\n\t\t\"7b9#9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 9M\",\n\t\t\"\",\n\t\t\"Madd9 2 add9 add2\"\n\t],\n\t[\n\t\t\"1P 3M 5P 9m\",\n\t\t\"\",\n\t\t\"Maddb9\"\n\t],\n\t[\n\t\t\"1P 3M 5d\",\n\t\t\"\",\n\t\t\"Mb5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 6M 7m 9M\",\n\t\t\"\",\n\t\t\"13b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7M\",\n\t\t\"\",\n\t\t\"M7b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7M 9M\",\n\t\t\"\",\n\t\t\"M9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7m\",\n\t\t\"\",\n\t\t\"7b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7m 9M\",\n\t\t\"\",\n\t\t\"9b5\"\n\t],\n\t[\n\t\t\"1P 3M 7m\",\n\t\t\"\",\n\t\t\"7no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 13m\",\n\t\t\"\",\n\t\t\"7b13\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M\",\n\t\t\"\",\n\t\t\"9no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M 13M\",\n\t\t\"\",\n\t\t\"13no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M 13m\",\n\t\t\"\",\n\t\t\"9b13\"\n\t],\n\t[\n\t\t\"1P 3m 4P 5P\",\n\t\t\"\",\n\t\t\"madd4\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6m 7M\",\n\t\t\"\",\n\t\t\"mMaj7b6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6m 7M 9M\",\n\t\t\"\",\n\t\t\"mMaj9b6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 11P\",\n\t\t\"\",\n\t\t\"m7add11 m7add4\"\n\t],\n\t[\n\t\t\"1P 3m 5P 9M\",\n\t\t\"\",\n\t\t\"madd9\"\n\t],\n\t[\n\t\t\"1P 3m 5d 6M 7M\",\n\t\t\"\",\n\t\t\"o7M7\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7M\",\n\t\t\"\",\n\t\t\"oM7\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7M\",\n\t\t\"\",\n\t\t\"mb6M7\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7m\",\n\t\t\"\",\n\t\t\"m7#5\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7m 9M\",\n\t\t\"\",\n\t\t\"m9#5\"\n\t],\n\t[\n\t\t\"1P 3m 5A 7m 9M 11P\",\n\t\t\"\",\n\t\t\"m11A\"\n\t],\n\t[\n\t\t\"1P 3m 6m 9m\",\n\t\t\"\",\n\t\t\"mb6b9\"\n\t],\n\t[\n\t\t\"1P 2M 3m 5d 7m\",\n\t\t\"\",\n\t\t\"m9b5\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7M\",\n\t\t\"\",\n\t\t\"M7#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7M 9M\",\n\t\t\"\",\n\t\t\"M9#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7m\",\n\t\t\"\",\n\t\t\"7#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7M\",\n\t\t\"\",\n\t\t\"M7sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7M 9M\",\n\t\t\"\",\n\t\t\"M9sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9M\",\n\t\t\"\",\n\t\t\"9sus4 9sus\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9M 13M\",\n\t\t\"\",\n\t\t\"13sus4 13sus\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9m 13m\",\n\t\t\"\",\n\t\t\"7sus4b9b13 7b9b13sus4\"\n\t],\n\t[\n\t\t\"1P 4P 7m 10m\",\n\t\t\"\",\n\t\t\"4 quartal\"\n\t],\n\t[\n\t\t\"1P 5P 7m 9m 11P\",\n\t\t\"\",\n\t\t\"11b9\"\n\t]\n], ue = {\n\t...R,\n\tname: \"\",\n\tquality: \"Unknown\",\n\tintervals: [],\n\taliases: []\n}, B = [], V = {};\nfunction get$7(e) {\n\treturn V[e] || ue;\n}\nn(get$7, \"get\");\nfunction all$2() {\n\treturn B.slice();\n}\nn(all$2, \"all\");\nfunction add$3(e, t, n) {\n\tlet r = getQuality(e), i = {\n\t\t...get$8(e),\n\t\tname: n || \"\",\n\t\tquality: r,\n\t\tintervals: e,\n\t\taliases: t\n\t};\n\tB.push(i), i.name && (V[i.name] = i), V[i.setNum] = i, V[i.chroma] = i, i.aliases.forEach((e) => addAlias$1(i, e));\n}\nn(add$3, \"add\");\nfunction addAlias$1(e, t) {\n\tV[t] = e;\n}\nn(addAlias$1, \"addAlias\");\nfunction getQuality(e) {\n\tlet has = (t) => e.indexOf(t) !== -1;\n\treturn has(\"5A\") ? \"Augmented\" : has(\"3M\") ? \"Major\" : has(\"5d\") ? \"Diminished\" : has(\"3m\") ? \"Minor\" : \"Unknown\";\n}\nle.forEach(([e, t, n]) => add$3(e.split(\" \"), n.split(\" \"), t)), B.sort((e, t) => e.setNum - t.setNum);\n//#endregion\n//#region ../../node_modules/@tonaljs/scale-type/dist/index.es.js\nvar de = [\n\t[\n\t\t\"1P 2M 3M 5P 6M\",\n\t\t\"major pentatonic\",\n\t\t\"pentatonic\"\n\t],\n\t[\"1P 3M 4P 5P 7M\", \"ionian pentatonic\"],\n\t[\n\t\t\"1P 3M 4P 5P 7m\",\n\t\t\"mixolydian pentatonic\",\n\t\t\"indian\"\n\t],\n\t[\"1P 2M 4P 5P 6M\", \"ritusen\"],\n\t[\"1P 2M 4P 5P 7m\", \"egyptian\"],\n\t[\"1P 3M 4P 5d 7m\", \"neopolitan major pentatonic\"],\n\t[\"1P 3m 4P 5P 6m\", \"vietnamese 1\"],\n\t[\"1P 2m 3m 5P 6m\", \"pelog\"],\n\t[\"1P 2m 4P 5P 6m\", \"kumoijoshi\"],\n\t[\"1P 2M 3m 5P 6m\", \"hirajoshi\"],\n\t[\"1P 2m 4P 5d 7m\", \"iwato\"],\n\t[\"1P 2m 4P 5P 7m\", \"in-sen\"],\n\t[\n\t\t\"1P 3M 4A 5P 7M\",\n\t\t\"lydian pentatonic\",\n\t\t\"chinese\"\n\t],\n\t[\"1P 3m 4P 6m 7m\", \"malkos raga\"],\n\t[\n\t\t\"1P 3m 4P 5d 7m\",\n\t\t\"locrian pentatonic\",\n\t\t\"minor seven flat five pentatonic\"\n\t],\n\t[\n\t\t\"1P 3m 4P 5P 7m\",\n\t\t\"minor pentatonic\",\n\t\t\"vietnamese 2\"\n\t],\n\t[\"1P 3m 4P 5P 6M\", \"minor six pentatonic\"],\n\t[\n\t\t\"1P 2M 3m 5P 6M\",\n\t\t\"flat three pentatonic\",\n\t\t\"kumoi\"\n\t],\n\t[\"1P 2M 3M 5P 6m\", \"flat six pentatonic\"],\n\t[\"1P 2m 3M 5P 6M\", \"scriabin\"],\n\t[\"1P 3M 5d 6m 7m\", \"whole tone pentatonic\"],\n\t[\"1P 3M 4A 5A 7M\", \"lydian #5P pentatonic\"],\n\t[\"1P 3M 4A 5P 7m\", \"lydian dominant pentatonic\"],\n\t[\"1P 3m 4P 5P 7M\", \"minor #7M pentatonic\"],\n\t[\"1P 3m 4d 5d 7m\", \"super locrian pentatonic\"],\n\t[\"1P 2M 3m 4P 5P 7M\", \"minor hexatonic\"],\n\t[\"1P 2A 3M 5P 5A 7M\", \"augmented\"],\n\t[\"1P 2M 3m 3M 5P 6M\", \"major blues\"],\n\t[\"1P 2M 4P 5P 6M 7m\", \"piongio\"],\n\t[\"1P 2m 3M 4A 6M 7m\", \"prometheus neopolitan\"],\n\t[\"1P 2M 3M 4A 6M 7m\", \"prometheus\"],\n\t[\"1P 2m 3M 5d 6m 7m\", \"mystery #1\"],\n\t[\"1P 2m 3M 4P 5A 6M\", \"six tone symmetric\"],\n\t[\n\t\t\"1P 2M 3M 4A 5A 7m\",\n\t\t\"whole tone\",\n\t\t\"messiaen's mode #1\"\n\t],\n\t[\"1P 2m 4P 4A 5P 7M\", \"messiaen's mode #5\"],\n\t[\n\t\t\"1P 3m 4P 5d 5P 7m\",\n\t\t\"minor blues\",\n\t\t\"blues\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4P 5d 6m 7m\",\n\t\t\"locrian major\",\n\t\t\"arabian\"\n\t],\n\t[\"1P 2m 3M 4A 5P 6m 7M\", \"double harmonic lydian\"],\n\t[\"1P 2M 3m 4P 5P 6m 7M\", \"harmonic minor\"],\n\t[\n\t\t\"1P 2m 3m 4d 5d 6m 7m\",\n\t\t\"altered\",\n\t\t\"super locrian\",\n\t\t\"diminished whole tone\",\n\t\t\"pomeroy\"\n\t],\n\t[\n\t\t\"1P 2M 3m 4P 5d 6m 7m\",\n\t\t\"locrian #2\",\n\t\t\"half-diminished\",\n\t\t\"aeolian b5\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6m 7m\",\n\t\t\"mixolydian b6\",\n\t\t\"melodic minor fifth mode\",\n\t\t\"hindu\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4A 5P 6M 7m\",\n\t\t\"lydian dominant\",\n\t\t\"lydian b7\",\n\t\t\"overtone\"\n\t],\n\t[\"1P 2M 3M 4A 5P 6M 7M\", \"lydian\"],\n\t[\"1P 2M 3M 4A 5A 6M 7M\", \"lydian augmented\"],\n\t[\n\t\t\"1P 2m 3m 4P 5P 6M 7m\",\n\t\t\"dorian b2\",\n\t\t\"phrygian #6\",\n\t\t\"melodic minor second mode\"\n\t],\n\t[\"1P 2M 3m 4P 5P 6M 7M\", \"melodic minor\"],\n\t[\"1P 2m 3m 4P 5d 6m 7m\", \"locrian\"],\n\t[\n\t\t\"1P 2m 3m 4d 5d 6m 7d\",\n\t\t\"ultralocrian\",\n\t\t\"superlocrian bb7\",\n\t\t\"·superlocrian diminished\"\n\t],\n\t[\n\t\t\"1P 2m 3m 4P 5d 6M 7m\",\n\t\t\"locrian 6\",\n\t\t\"locrian natural 6\",\n\t\t\"locrian sharp 6\"\n\t],\n\t[\"1P 2A 3M 4P 5P 5A 7M\", \"augmented heptatonic\"],\n\t[\"1P 2M 3m 5d 5P 6M 7m\", \"romanian minor\"],\n\t[\"1P 2M 3m 4A 5P 6M 7m\", \"dorian #4\"],\n\t[\"1P 2M 3m 4A 5P 6M 7M\", \"lydian diminished\"],\n\t[\"1P 2m 3m 4P 5P 6m 7m\", \"phrygian\"],\n\t[\"1P 2M 3M 4A 5A 7m 7M\", \"leading whole tone\"],\n\t[\"1P 2M 3M 4A 5P 6m 7m\", \"lydian minor\"],\n\t[\n\t\t\"1P 2m 3M 4P 5P 6m 7m\",\n\t\t\"phrygian dominant\",\n\t\t\"spanish\",\n\t\t\"phrygian major\"\n\t],\n\t[\"1P 2m 3m 4P 5P 6m 7M\", \"balinese\"],\n\t[\"1P 2m 3m 4P 5P 6M 7M\", \"neopolitan major\"],\n\t[\n\t\t\"1P 2M 3m 4P 5P 6m 7m\",\n\t\t\"aeolian\",\n\t\t\"minor\"\n\t],\n\t[\"1P 2M 3M 4P 5P 6m 7M\", \"harmonic major\"],\n\t[\n\t\t\"1P 2m 3M 4P 5P 6m 7M\",\n\t\t\"double harmonic major\",\n\t\t\"gypsy\"\n\t],\n\t[\"1P 2M 3m 4P 5P 6M 7m\", \"dorian\"],\n\t[\"1P 2M 3m 4A 5P 6m 7M\", \"hungarian minor\"],\n\t[\"1P 2A 3M 4A 5P 6M 7m\", \"hungarian major\"],\n\t[\"1P 2m 3M 4P 5d 6M 7m\", \"oriental\"],\n\t[\"1P 2m 3m 3M 4A 5P 7m\", \"flamenco\"],\n\t[\"1P 2m 3m 4A 5P 6m 7M\", \"todi raga\"],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6M 7m\",\n\t\t\"mixolydian\",\n\t\t\"dominant\"\n\t],\n\t[\"1P 2m 3M 4P 5d 6m 7M\", \"persian\"],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6M 7M\",\n\t\t\"major\",\n\t\t\"ionian\"\n\t],\n\t[\"1P 2m 3M 5d 6m 7m 7M\", \"enigmatic\"],\n\t[\n\t\t\"1P 2M 3M 4P 5A 6M 7M\",\n\t\t\"major augmented\",\n\t\t\"major #5\",\n\t\t\"ionian augmented\",\n\t\t\"ionian #5\"\n\t],\n\t[\"1P 2A 3M 4A 5P 6M 7M\", \"lydian #9\"],\n\t[\"1P 2m 2M 4P 4A 5P 6m 7M\", \"messiaen's mode #4\"],\n\t[\"1P 2m 3M 4P 4A 5P 6m 7M\", \"purvi raga\"],\n\t[\"1P 2m 3m 3M 4P 5P 6m 7m\", \"spanish heptatonic\"],\n\t[\"1P 2M 3M 4P 5P 6M 7m 7M\", \"bebop\"],\n\t[\"1P 2M 3m 3M 4P 5P 6M 7m\", \"bebop minor\"],\n\t[\"1P 2M 3M 4P 5P 5A 6M 7M\", \"bebop major\"],\n\t[\"1P 2m 3m 4P 5d 5P 6m 7m\", \"bebop locrian\"],\n\t[\"1P 2M 3m 4P 5P 6m 7m 7M\", \"minor bebop\"],\n\t[\n\t\t\"1P 2M 3m 4P 5d 6m 6M 7M\",\n\t\t\"diminished\",\n\t\t\"whole-half diminished\"\n\t],\n\t[\"1P 2M 3M 4P 5d 5P 6M 7M\", \"ichikosucho\"],\n\t[\"1P 2M 3m 4P 5P 6m 6M 7M\", \"minor six diminished\"],\n\t[\n\t\t\"1P 2m 3m 3M 4A 5P 6M 7m\",\n\t\t\"half-whole diminished\",\n\t\t\"dominant diminished\",\n\t\t\"messiaen's mode #2\"\n\t],\n\t[\"1P 3m 3M 4P 5P 6M 7m 7M\", \"kafi raga\"],\n\t[\"1P 2M 3M 4P 4A 5A 6A 7M\", \"messiaen's mode #6\"],\n\t[\"1P 2M 3m 3M 4P 5d 5P 6M 7m\", \"composite blues\"],\n\t[\"1P 2M 3m 3M 4A 5P 6m 7m 7M\", \"messiaen's mode #3\"],\n\t[\"1P 2m 2M 3m 4P 4A 5P 6m 6M 7M\", \"messiaen's mode #7\"],\n\t[\"1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M\", \"chromatic\"]\n], fe = {\n\t...R,\n\tintervals: [],\n\taliases: []\n}, H = [], U = {};\nfunction get$6(e) {\n\treturn U[e] || fe;\n}\nn(get$6, \"get\");\nfunction all$1() {\n\treturn H.slice();\n}\nn(all$1, \"all\");\nfunction add$2(e, t, n = []) {\n\tlet r = {\n\t\t...get$8(e),\n\t\tname: t,\n\t\tintervals: e,\n\t\taliases: n\n\t};\n\treturn H.push(r), U[r.name] = r, U[r.setNum] = r, U[r.chroma] = r, r.aliases.forEach((e) => addAlias(r, e)), r;\n}\nn(add$2, \"add\");\nfunction addAlias(e, t) {\n\tU[t] = e;\n}\nde.forEach(([e, t, ...n]) => add$2(e.split(\" \"), t, n));\n//#endregion\n//#region ../../node_modules/@tonaljs/chord/dist/index.es.js\nvar W = {\n\tempty: !0,\n\tname: \"\",\n\tsymbol: \"\",\n\troot: \"\",\n\trootDegree: 0,\n\ttype: \"\",\n\ttonic: null,\n\tsetNum: NaN,\n\tquality: \"Unknown\",\n\tchroma: \"\",\n\tnormalized: \"\",\n\taliases: [],\n\tnotes: [],\n\tintervals: []\n}, pe = /^(6|64|7|9|11|13)$/;\nfunction tokenize$2(e) {\n\tlet [t, n, r, i] = tokenizeNote(e);\n\treturn t === \"\" ? [\"\", e] : t === \"A\" && i === \"ug\" ? [\"\", \"aug\"] : !i && (r === \"4\" || r === \"5\") ? [t + n, r] : pe.test(r) ? [t + n, r + i] : [t + n + r, i];\n}\nn(tokenize$2, \"tokenize\");\nfunction get$5(e) {\n\tif (e === \"\") return W;\n\tif (Array.isArray(e) && e.length === 2) return getChord(e[1], e[0]);\n\t{\n\t\tlet [t, n] = tokenize$2(e), r = getChord(n, t);\n\t\treturn r.empty ? getChord(e) : r;\n\t}\n}\nn(get$5, \"get\");\nfunction getChord(e, t, n) {\n\tlet r = get$7(e), i = note(t || \"\"), a = note(n || \"\");\n\tif (r.empty || t && i.empty || n && a.empty) return W;\n\tlet o = distance$1(i.pc, a.pc), s = r.intervals.indexOf(o) + 1;\n\tif (!a.empty && !s) return W;\n\tlet c = Array.from(r.intervals);\n\tfor (let e = 1; e < s; e++) {\n\t\tlet e = c[0][0], t = c[0][1], n = parseInt(e, 10) + 7;\n\t\tc.push(`${n}${t}`), c.shift();\n\t}\n\tlet l = i.empty ? [] : c.map((e) => transpose$2(i, e));\n\te = r.aliases.indexOf(e) === -1 ? r.aliases[0] : e;\n\tlet u = `${i.empty ? \"\" : i.pc}${e}${a.empty || s <= 1 ? \"\" : \"/\" + a.pc}`, d = `${t ? i.pc + \" \" : \"\"}${r.name}${s > 1 && n ? \" over \" + a.pc : \"\"}`;\n\treturn {\n\t\t...r,\n\t\tname: d,\n\t\tsymbol: u,\n\t\ttype: r.name,\n\t\troot: a.name,\n\t\tintervals: c,\n\t\trootDegree: s,\n\t\ttonic: i.name,\n\t\tnotes: l\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/duration-value/dist/index.es.js\nvar me = [\n\t[\n\t\t.125,\n\t\t\"dl\",\n\t\t[\n\t\t\t\"large\",\n\t\t\t\"duplex longa\",\n\t\t\t\"maxima\",\n\t\t\t\"octuple\",\n\t\t\t\"octuple whole\"\n\t\t]\n\t],\n\t[\n\t\t.25,\n\t\t\"l\",\n\t\t[\"long\", \"longa\"]\n\t],\n\t[\n\t\t.5,\n\t\t\"d\",\n\t\t[\n\t\t\t\"double whole\",\n\t\t\t\"double\",\n\t\t\t\"breve\"\n\t\t]\n\t],\n\t[\n\t\t1,\n\t\t\"w\",\n\t\t[\"whole\", \"semibreve\"]\n\t],\n\t[\n\t\t2,\n\t\t\"h\",\n\t\t[\"half\", \"minim\"]\n\t],\n\t[\n\t\t4,\n\t\t\"q\",\n\t\t[\"quarter\", \"crotchet\"]\n\t],\n\t[\n\t\t8,\n\t\t\"e\",\n\t\t[\"eighth\", \"quaver\"]\n\t],\n\t[\n\t\t16,\n\t\t\"s\",\n\t\t[\"sixteenth\", \"semiquaver\"]\n\t],\n\t[\n\t\t32,\n\t\t\"t\",\n\t\t[\"thirty-second\", \"demisemiquaver\"]\n\t],\n\t[\n\t\t64,\n\t\t\"sf\",\n\t\t[\"sixty-fourth\", \"hemidemisemiquaver\"]\n\t],\n\t[\n\t\t128,\n\t\t\"h\",\n\t\t[\"hundred twenty-eighth\"]\n\t],\n\t[\n\t\t256,\n\t\t\"th\",\n\t\t[\"two hundred fifty-sixth\"]\n\t]\n], he = [];\nme.forEach(([e, t, n]) => add$1(e, t, n));\nfunction add$1(e, t, n) {\n\the.push({\n\t\tempty: !1,\n\t\tdots: \"\",\n\t\tname: \"\",\n\t\tvalue: 1 / e,\n\t\tfraction: e < 1 ? [1 / e, 1] : [1, e],\n\t\tshorthand: t,\n\t\tnames: n\n\t});\n}\nn(add$1, \"add\");\n//#endregion\n//#region ../../node_modules/@tonaljs/interval/dist/index.es.js\nfunction names$1() {\n\treturn \"1P 2M 3M 4P 5P 6m 7m\".split(\" \");\n}\nn(names$1, \"names\");\nvar ge = interval, _e = /* @__PURE__ */ n((e) => interval(e).name, \"name\"), semitones = (e) => interval(e).semitones, quality = (e) => interval(e).q, num = (e) => interval(e).num;\nfunction simplify$1(e) {\n\tlet t = interval(e);\n\treturn t.empty ? \"\" : t.simple + t.q;\n}\nn(simplify$1, \"simplify\");\nfunction invert(e) {\n\tlet t = interval(e);\n\treturn t.empty ? \"\" : interval({\n\t\tstep: (7 - t.step) % 7,\n\t\talt: t.type === \"perfectable\" ? -t.alt : -(t.alt + 1),\n\t\toct: t.oct,\n\t\tdir: t.dir\n\t}).name;\n}\nvar ve = [\n\t1,\n\t2,\n\t2,\n\t3,\n\t3,\n\t4,\n\t5,\n\t5,\n\t6,\n\t6,\n\t7,\n\t7\n], ye = \"P m M m M P d P m M m M\".split(\" \");\nfunction fromSemitones(e) {\n\tlet t = e < 0 ? -1 : 1, n = Math.abs(e), r = n % 12, i = Math.floor(n / 12);\n\treturn t * (ve[r] + 7 * i) + ye[r];\n}\nvar be = distance$1, xe = combinator((e, t) => [e[0] + t[0], e[1] + t[1]]), addTo = (e) => (t) => xe(e, t), Se = {\n\tnames: names$1,\n\tget: ge,\n\tname: _e,\n\tnum,\n\tsemitones,\n\tquality,\n\tfromSemitones,\n\tdistance: be,\n\tinvert,\n\tsimplify: simplify$1,\n\tadd: xe,\n\taddTo,\n\tsubstract: combinator((e, t) => [e[0] - t[0], e[1] - t[1]])\n};\nfunction combinator(e) {\n\treturn (t, n) => {\n\t\tlet r = interval(t).coord, i = interval(n).coord;\n\t\tif (r && i) return coordToInterval(e(r, i)).name;\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/midi/dist/index.es.js\nvar Ce = Math.log(2), we = Math.log(440);\nfunction freqToMidi(e) {\n\tlet t = 12 * (Math.log(e) - we) / Ce + 69;\n\treturn Math.round(t * 100) / 100;\n}\nvar Te = \"C C# D D# E F F# G G# A A# B\".split(\" \"), Ee = \"C Db D Eb E F Gb G Ab A Bb B\".split(\" \");\nfunction midiToNoteName(e, t = {}) {\n\tif (isNaN(e) || e === -Infinity || e === Infinity) return \"\";\n\te = Math.round(e);\n\tlet n = (t.sharps === !0 ? Te : Ee)[e % 12];\n\treturn t.pitchClass ? n : n + (Math.floor(e / 12) - 1);\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/note/dist/index.es.js\nvar De = [\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"A\",\n\t\"B\"\n], toName = (e) => e.name, onlyNotes = (e) => e.map(note).filter((e) => !e.empty);\nfunction names(e) {\n\treturn e === void 0 ? De.slice() : Array.isArray(e) ? onlyNotes(e).map(toName) : [];\n}\nvar G = note, name = (e) => G(e).name, pitchClass = (e) => G(e).pc, accidentals = (e) => G(e).acc, octave = (e) => G(e).oct, midi = (e) => G(e).midi, freq = (e) => G(e).freq, chroma = (e) => G(e).chroma;\nfunction fromMidi(e) {\n\treturn midiToNoteName(e);\n}\nfunction fromFreq(e) {\n\treturn midiToNoteName(freqToMidi(e));\n}\nfunction fromFreqSharps(e) {\n\treturn midiToNoteName(freqToMidi(e), { sharps: !0 });\n}\nfunction fromMidiSharps(e) {\n\treturn midiToNoteName(e, { sharps: !0 });\n}\nvar K = transpose$2, Oe = transpose$2, transposeBy = (e) => (t) => K(t, e), ke = transposeBy, transposeFrom = (e) => (t) => K(e, t), Ae = transposeFrom;\nfunction transposeFifths(e, t) {\n\tlet n = G(e);\n\tif (n.empty) return \"\";\n\tlet [r, i] = n.coord;\n\treturn coordToNote(i === void 0 ? [r + t] : [r + t, i]).name;\n}\nvar je = transposeFifths, ascending = (e, t) => e.height - t.height, descending = (e, t) => t.height - e.height;\nfunction sortedNames(e, t) {\n\treturn t ||= ascending, onlyNotes(e).sort(t).map(toName);\n}\nfunction sortedUniqNames(e) {\n\treturn sortedNames(e, ascending).filter((e, t, n) => t === 0 || e !== n[t - 1]);\n}\nvar Me = nameBuilder(!0), Ne = nameBuilder(!1);\nfunction nameBuilder(e) {\n\treturn (t) => {\n\t\tlet n = G(t);\n\t\tif (n.empty) return \"\";\n\t\tlet r = e ? n.alt > 0 : n.alt < 0, i = n.midi === null;\n\t\treturn midiToNoteName(n.midi || n.chroma, {\n\t\t\tsharps: r,\n\t\t\tpitchClass: i\n\t\t});\n\t};\n}\nvar q = {\n\tnames,\n\tget: G,\n\tname,\n\tpitchClass,\n\taccidentals,\n\toctave,\n\tmidi,\n\tascending,\n\tdescending,\n\tsortedNames,\n\tsortedUniqNames,\n\tfromMidi,\n\tfromMidiSharps,\n\tfreq,\n\tfromFreq,\n\tfromFreqSharps,\n\tchroma,\n\ttranspose: K,\n\ttr: Oe,\n\ttransposeBy,\n\ttrBy: ke,\n\ttransposeFrom,\n\ttrFrom: Ae,\n\ttransposeFifths,\n\ttrFifths: je,\n\tsimplify: Me,\n\tenharmonic: Ne\n}, Pe = {\n\tempty: !0,\n\tname: \"\",\n\tchordType: \"\"\n}, Fe = {};\nfunction get$2(e) {\n\treturn typeof e == \"string\" ? Fe[e] || (Fe[e] = parse(e)) : typeof e == \"number\" ? get$2(J[e] || \"\") : isPitch(e) ? fromPitch(e) : isNamed(e) ? get$2(e.name) : Pe;\n}\nn(get$2, \"get\");\nfunction fromPitch(e) {\n\treturn get$2(altToAcc(e.alt) + J[e.step]);\n}\nvar Ie = /^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;\nfunction tokenize$1(e) {\n\treturn Ie.exec(e) || [\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\"\n\t];\n}\nn(tokenize$1, \"tokenize\");\nvar Le = \"I II III IV V VI VII\", J = Le.split(\" \");\nLe.toLowerCase().split(\" \");\nfunction parse(e) {\n\tlet [t, n, r, i] = tokenize$1(e);\n\tif (!r) return Pe;\n\tlet a = r.toUpperCase(), o = J.indexOf(a), s = accToAlt(n);\n\treturn {\n\t\tempty: !1,\n\t\tname: t,\n\t\troman: r,\n\t\tinterval: interval({\n\t\t\tstep: o,\n\t\t\talt: s,\n\t\t\tdir: 1\n\t\t}).name,\n\t\tacc: n,\n\t\tchordType: i,\n\t\talt: s,\n\t\tstep: o,\n\t\tmajor: r === a,\n\t\toct: 0,\n\t\tdir: 1\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/key/dist/index.es.js\nvar Re = [\n\t[\n\t\t0,\n\t\t2773,\n\t\t0,\n\t\t\"ionian\",\n\t\t\"\",\n\t\t\"Maj7\",\n\t\t\"major\"\n\t],\n\t[\n\t\t1,\n\t\t2902,\n\t\t2,\n\t\t\"dorian\",\n\t\t\"m\",\n\t\t\"m7\"\n\t],\n\t[\n\t\t2,\n\t\t3418,\n\t\t4,\n\t\t\"phrygian\",\n\t\t\"m\",\n\t\t\"m7\"\n\t],\n\t[\n\t\t3,\n\t\t2741,\n\t\t-1,\n\t\t\"lydian\",\n\t\t\"\",\n\t\t\"Maj7\"\n\t],\n\t[\n\t\t4,\n\t\t2774,\n\t\t1,\n\t\t\"mixolydian\",\n\t\t\"\",\n\t\t\"7\"\n\t],\n\t[\n\t\t5,\n\t\t2906,\n\t\t3,\n\t\t\"aeolian\",\n\t\t\"m\",\n\t\t\"m7\",\n\t\t\"minor\"\n\t],\n\t[\n\t\t6,\n\t\t3434,\n\t\t5,\n\t\t\"locrian\",\n\t\t\"dim\",\n\t\t\"m7b5\"\n\t]\n], ze = {\n\t...R,\n\tname: \"\",\n\talt: 0,\n\tmodeNum: NaN,\n\ttriad: \"\",\n\tseventh: \"\",\n\taliases: []\n}, Be = Re.map(toMode), Y = {};\nBe.forEach((e) => {\n\tY[e.name] = e, e.aliases.forEach((t) => {\n\t\tY[t] = e;\n\t});\n});\nfunction get$1(e) {\n\treturn typeof e == \"string\" ? Y[e.toLowerCase()] || ze : e && e.name ? get$1(e.name) : ze;\n}\nn(get$1, \"get\");\nfunction toMode(e) {\n\tlet [t, n, r, i, a, o, s] = e, c = s ? [s] : [], l = Number(n).toString(2);\n\treturn {\n\t\tempty: !1,\n\t\tintervals: chromaToIntervals(l),\n\t\tmodeNum: t,\n\t\tchroma: l,\n\t\tnormalized: l,\n\t\tname: i,\n\t\tsetNum: n,\n\t\talt: r,\n\t\ttriad: a,\n\t\tseventh: o,\n\t\taliases: c\n\t};\n}\n//#endregion\n//#region src/piano/utility/midi.ts\nvar Ve = /* @__PURE__ */ e(te(), 1);\nfunction transpose(e, t) {\n\tlet n = { ...e }, r = q.transpose(e.note.name + e.note.octave, Se.fromSemitones(t));\n\treturn n.note = {\n\t\tname: q.pitchClass(r),\n\t\tnumber: e.note.number + t,\n\t\toctave: q.octave(r)\n\t}, n;\n}\nfunction transposeSyllableSeq(e, t) {\n\treturn e.map((e) => transpose(e, t));\n}\nfunction eventsToSyllableSequence(e) {\n\tlet t = [];\n\te = e.filter((e) => e.type === \"noteon\").sort((e, t) => e.timestamp - t.timestamp);\n\tfor (let n = 10; n > 0; n--) for (let r = 0; r < e.length - n + 1; r++) try {\n\t\tt.push(new X(e.slice(r, r + n))), e.splice(r, n), r = -1;\n\t} catch {}\n\treturn new He(t);\n}\nvar He = class SyllableSequence {\n\tsyllables;\n\trootNote;\n\tappend(e) {\n\t\tif (this.syllables.length) try {\n\t\t\tlet t = new X(this.syllables[this.syllables.length - 1].notes.map((e) => ({\n\t\t\t\tnote: e.note,\n\t\t\t\ttimestamp: e.timestamp,\n\t\t\t\ttype: e.type,\n\t\t\t\tvelocity: e.velocity\n\t\t\t})).concat(e));\n\t\t\tthis.syllables.splice(this.syllables.length - 1, 1, t);\n\t\t} catch {\n\t\t\tthis.syllables.push(new X([e]));\n\t\t}\n\t\telse this.syllables.push(new X([e])), this.rootNote = e.note;\n\t}\n\tconstructor(e) {\n\t\te.length > 0 ? (this.syllables = e.sort((e, t) => e.timestamp - t.timestamp), this.rootNote = this.syllables[0].notes.reduce((e, t) => t.note.number < e.note.number ? t : e).note) : (this.syllables = [], this.rootNote = {\n\t\t\tname: \"C\",\n\t\t\toctave: 4,\n\t\t\tnumber: 0\n\t\t});\n\t}\n\tgrade(e) {\n\t\tlet t = [];\n\t\tfor (let n = 0; n < this.syllables.length; n++) t.push(this.syllables[n].grade(e.syllables[n]));\n\t\treturn new SyllableSequence(t);\n\t}\n\ttoString() {\n\t\tlet e = \"\";\n\t\treturn this.syllables.forEach((t, n) => {\n\t\t\te += `Syllable ${n + 1}: {\\n`, t.notes.forEach((t) => {\n\t\t\t\te += `\\t${t.note.name}\\t${t.note.number}\\t${t.timestamp} ${t.isCorrect ? \"\" : \"(incorrect)\"} ${t.isMissing ? \"(missing)\" : \"\"}\\n`;\n\t\t\t}), e += `} - ${t.timestamp}, correct: ${t.isCorrect}\\n`;\n\t\t}), e;\n\t}\n\tisCorrect() {\n\t\tlet e = !0;\n\t\treturn this.syllables.forEach((t) => {\n\t\t\tt.isCorrect === !1 ? e = !1 : t.notes.forEach((t) => {\n\t\t\t\tt.isCorrect === !1 && (e = !1);\n\t\t\t});\n\t\t}), e;\n\t}\n}, X = class Syllable {\n\tnotes;\n\tisCorrect;\n\tget timestamp() {\n\t\tlet e = 0;\n\t\treturn this.notes.forEach((t) => {\n\t\t\tif (t.timestamp === 0) return 0;\n\t\t\te += t.timestamp;\n\t\t}), e /= this.notes.length, e;\n\t}\n\tconstructor(e) {\n\t\te = e.filter((e) => e.type === \"noteon\");\n\t\tlet t = e.reduce((e, t) => e.timestamp < t.timestamp ? e : t), n = e.reduce((e, t) => e.timestamp > t.timestamp ? e : t).timestamp - t.timestamp;\n\t\tif (Syllable.gracePeriod(e.length) < n) throw Error(`Notes ${e.toString()} are not close enough together to be a syllable`);\n\t\tthis.notes = e.map((e) => ({\n\t\t\t...e,\n\t\t\tisCorrect: !0,\n\t\t\tisMissing: !1\n\t\t})).sort((e, t) => e.note.number - t.note.number);\n\t}\n\tstatic gracePeriod(e) {\n\t\treturn 1.3 * 12 * e;\n\t}\n\tgrade(e) {\n\t\treturn this.notes.length !== e.notes.length && (e.isCorrect = !1), e.notes.forEach((t) => {\n\t\t\tlet n = q.fromMidi(t.note.number), r = q.fromMidiSharps(t.note.number);\n\t\t\tn = q.pitchClass(n), r = q.pitchClass(r), t.isCorrect = this.notes.filter((e) => q.chroma(n) === q.chroma(e.note.name) || q.chroma(r) === q.chroma(e.note.name)).length >= 1, t.isCorrect || (e.isCorrect = !1);\n\t\t}), this.notes.forEach((t) => {\n\t\t\tlet n = q.fromMidi(t.note.number);\n\t\t\tn = q.pitchClass(n), e.notes.some((e) => q.chroma(e.note.name) === q.chroma(n)) || e.notes.push({\n\t\t\t\t...t,\n\t\t\t\tisMissing: !0,\n\t\t\t\tisCorrect: !1\n\t\t\t});\n\t\t}), e;\n\t}\n}, Z = class SkMidi {\n\tstatic _instance;\n\tstatic OFFSET = 5;\n\trecording = [];\n\twebmidi = Ve.default;\n\tinput;\n\toutput;\n\t_noteonListeners = [];\n\t_noteoffListeners = [];\n\tstatic _initializedWithUserConfig = !1;\n\tmidiAccess;\n\t_state = \"initializing\";\n\tget state() {\n\t\treturn this._state;\n\t}\n\t_userLookup;\n\tconstructor(e) {\n\t\tthis._userLookup = e ?? null;\n\t}\n\tasync init() {\n\t\tif (!this.midiAccess) try {\n\t\t\tnavigator.requestMIDIAccess().then((e) => {\n\t\t\t\tthis.midiAccess = e, this.midiAccess.onstatechange = (e) => {\n\t\t\t\t\tT({\n\t\t\t\t\t\ttext: `Midi device ${e.port.name} is ${e.port.state}`,\n\t\t\t\t\t\tstatus: e.port.state === \"connected\" ? k.ok : k.error\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t\ttry {\n\t\t\tthis.webmidi.disable();\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t\treturn new Promise((e, t) => {\n\t\t\tthis.webmidi.enable(async (n) => {\n\t\t\t\tn ? (this._state = \"notsupported\", console.log(`Webmidi not enabled: ${n}`), t(n)) : (console.log(\"Webmidi enabled\"), console.log(`Inputs: ${JSON.stringify(this.webmidi.inputs)}`), console.log(`Outputs: ${JSON.stringify(this.webmidi.outputs)}`), this.output = this.webmidi.outputs[0], this.input = this.webmidi.inputs[0], SkMidi._initializedWithUserConfig ||= (await this.loadUserConfiguration(), !0), this.input && this.output ? (console.log(\"midi init state: ready\"), this._state = \"ready\", this.attachListeners()) : (console.log(\"midi init state: nodevice\"), this._state = \"nodevice\"), e(!0));\n\t\t\t});\n\t\t});\n\t}\n\tasync loadUserConfiguration() {\n\t\ttry {\n\t\t\tif (!this._userLookup) {\n\t\t\t\tconsole.log(\"User lookup function not provided - using default MIDI configuration\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet e = await this._userLookup();\n\t\t\tif (!e) {\n\t\t\t\tconsole.log(\"No user found, using default MIDI configuration\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet t = await e.getActiveCourses();\n\t\t\tfor (let n of t) {\n\t\t\t\tlet t = await (await e.getCourseInterface(n.courseID)).getCourseSettings();\n\t\t\t\tif (t?.midiinput || t?.midioutput) {\n\t\t\t\t\tt.midiinput && this.webmidi.getInputById(t.midiinput.toString()) && (this.selectInput(t.midiinput.toString()), console.log(`Loaded saved MIDI input: ${t.midiinput}`)), t.midioutput && this.webmidi.getOutputById(t.midioutput.toString()) && (this.selectOutput(t.midioutput.toString()), console.log(`Loaded saved MIDI output: ${t.midioutput}`));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Failed to load user MIDI configuration:\", e);\n\t\t}\n\t}\n\tsetStateChangeListener(e) {\n\t\tif (this.midiAccess) this.midiAccess.onstatechange = (t) => {\n\t\t\tthis.init().then(() => {\n\t\t\t\tconsole.log(`Midi state: ${this.state}`), e();\n\t\t\t}), T({\n\t\t\t\ttext: `Midi device ${t.port.name} is ${t.port.state}`,\n\t\t\t\tstatus: t.port.state === \"connected\" ? k.ok : k.error\n\t\t\t});\n\t\t};\n\t\telse try {\n\t\t\tnavigator.requestMIDIAccess().then((t) => {\n\t\t\t\tthis.midiAccess = t, this.midiAccess.onstatechange = (t) => {\n\t\t\t\t\tthis.init().then(() => {\n\t\t\t\t\t\tconsole.log(`Midi state: ${this.state}`), e();\n\t\t\t\t\t}), T({\n\t\t\t\t\t\ttext: `Midi device ${t.port.name} is ${t.port.state}`,\n\t\t\t\t\t\tstatus: t.port.state === \"connected\" ? k.ok : k.error\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t}\n\tattachListeners() {\n\t\tthis.input && (this._noteonListeners.forEach((e) => {\n\t\t\tthis.input?.on(\"noteon\", \"all\", e);\n\t\t}), this._noteoffListeners.forEach((e) => {\n\t\t\tthis.input?.on(\"noteoff\", \"all\", e);\n\t\t}));\n\t}\n\tget hasRecording() {\n\t\treturn this.record.length > 0;\n\t}\n\tget configuredInput() {\n\t\treturn this.input ? `${this.input.manufacturer}: ${this.input.name}` : \"(Not Sure!)\";\n\t}\n\teraseRecording() {\n\t\tthis.recording = [];\n\t}\n\tstopRecording() {\n\t\tthis.input?.removeListener();\n\t}\n\trecord() {\n\t\tlet e = 0;\n\t\tif (this.input === void 0) throw Error(\"Midi input not configured!\");\n\t\tthis.input.connection === \"open\" && (this.stopRecording(), this.eraseRecording(), this.input.on(\"noteon\", \"all\", (t) => {\n\t\t\tthis.recording.length === 0 && (e = t.timestamp), this.recording.push({\n\t\t\t\tnote: t.note,\n\t\t\t\ttype: t.type,\n\t\t\t\tvelocity: t.velocity,\n\t\t\t\ttimestamp: t.timestamp - e\n\t\t\t});\n\t\t}), this.input.on(\"noteoff\", \"all\", (t) => {\n\t\t\tthis.recording.length === 0 && (e = t.timestamp), this.recording.push({\n\t\t\t\tnote: t.note,\n\t\t\t\tvelocity: t.velocity,\n\t\t\t\ttype: t.type,\n\t\t\t\ttimestamp: t.timestamp - e\n\t\t\t});\n\t\t}));\n\t}\n\taddNoteonListenter(e) {\n\t\tthis._noteonListeners.push(e), this.input && this.input.on(\"noteon\", \"all\", e);\n\t}\n\taddNoteoffListenter(e) {\n\t\tthis._noteoffListeners.push(e), this.input && this.input.on(\"noteoff\", \"all\", e);\n\t}\n\tplay(e) {\n\t\tlet t = e || this.recording;\n\t\tt = t.map((e) => ({\n\t\t\t...e,\n\t\t\ttimestamp: e.timestamp + SkMidi.OFFSET\n\t\t})), t.forEach((e) => {\n\t\t\te.type === \"noteon\" ? this.output?.playNote(e.note.name + e.note.octave, 1, {\n\t\t\t\tvelocity: e.velocity,\n\t\t\t\ttime: `+${e.timestamp}`,\n\t\t\t\trawVelocity: !1\n\t\t\t}) : this.output?.stopNote(e.note.name + e.note.octave, 1, {\n\t\t\t\tvelocity: e.velocity,\n\t\t\t\ttime: `+${e.timestamp}`,\n\t\t\t\trawVelocity: !1\n\t\t\t});\n\t\t});\n\t}\n\tstatic async instance() {\n\t\treturn SkMidi._instance ? SkMidi._instance : (console.log(\"Buzz, whirr, Midi instance factory is at work\"), SkMidi._instance = new SkMidi(), await SkMidi._instance.init(), SkMidi._instance);\n\t}\n\tget inputs() {\n\t\treturn this.webmidi.inputs;\n\t}\n\tget outputs() {\n\t\treturn this.webmidi.outputs;\n\t}\n\tselectInput(e) {\n\t\tthis.webmidi.getInputById(e) === !1 ? this.webmidi.getInputByName(e) !== !1 && (this.input = this.webmidi.getInputByName(e)) : this.input = this.webmidi.getInputById(e);\n\t}\n\tselectOutput(e) {\n\t\tthis.webmidi.getOutputById(e) === !1 ? this.webmidi.getOutputByName(e) !== !1 && (this.output = this.webmidi.getOutputByName(e)) : this.output = this.webmidi.getOutputById(e);\n\t}\n}, Ue = p({\n\tname: \"SyllableSeqVis\",\n\tprops: {\n\t\tseq: {\n\t\t\ttype: Object,\n\t\t\trequired: !0\n\t\t},\n\t\tlastTSsuggestion: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = v(0), n = v(0), r = v(0), i = v(500), sayNote = (e) => {\n\t\t\tconsole.log(`${JSON.stringify(e)}`);\n\t\t}, a = o(() => {\n\t\t\tlet t = e.seq.syllables[e.seq.syllables.length - 1].timestamp;\n\t\t\treturn Math.max(1, t, e.lastTSsuggestion);\n\t\t}), s = o(() => {\n\t\t\tlet t = 0, n = 500;\n\t\t\treturn e.seq.syllables.forEach((e) => {\n\t\t\t\te.notes.forEach((e) => {\n\t\t\t\t\te.note.number > t && (t = e.note.number), e.note.number < n && (n = e.note.number);\n\t\t\t\t});\n\t\t\t}), Math.max(3 * (t - n) + 10, 0);\n\t\t}), updateBounds = () => {\n\t\t\ttry {\n\t\t\t\tt.value = e.seq.syllables[0].timestamp;\n\t\t\t\tlet r = e.seq.syllables[e.seq.syllables.length - 1].timestamp, i = t.value + e.lastTSsuggestion;\n\t\t\t\tn.value = Math.max(r, i);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(`[SyllableSeqVis] Error updating bounds: ${e}`);\n\t\t\t}\n\t\t\te.seq.syllables.forEach((e) => {\n\t\t\t\te.notes.forEach((e) => {\n\t\t\t\t\te.note.number > r.value && (r.value = e.note.number), e.note.number < i.value && (i.value = e.note.number);\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\treturn g(() => {\n\t\t\tconsole.log(`SyllableSeqVis created w/ input: \\n${e.seq}`), updateBounds();\n\t\t}), {\n\t\t\tfirstTS: t,\n\t\t\tlastTS: n,\n\t\t\thigh: r,\n\t\t\tlow: i,\n\t\t\tsayNote,\n\t\t\tgetLastTS: a,\n\t\t\tgetHeight: s,\n\t\t\tupdateBounds\n\t\t};\n\t}\n}), We = [\"height\"], Ge = [\n\t\"cx\",\n\t\"cy\",\n\t\"alt\",\n\t\"fill\",\n\t\"stroke\",\n\t\"onMouseenter\"\n];\nfunction _sfc_render$3(e, t, n, r, i, o) {\n\treturn _(), l(\"div\", null, [(_(), l(\"svg\", {\n\t\twidth: 510,\n\t\theight: Math.max(3 * (e.high - e.low) + 10, 0)\n\t}, [(_(!0), l(a, null, y(e.seq.syllables, (t) => (_(), l(a, null, [(_(!0), l(a, null, y(t.notes, (n) => (_(), l(\"circle\", {\n\t\tkey: t.timestamp + \"-\" + n.note.number,\n\t\tcx: (t.timestamp - e.firstTS) * 500 / (e.lastTS - e.firstTS) + 4,\n\t\tcy: 3 * (e.high - n.note.number) + 4,\n\t\talt: n.note.name,\n\t\tr: \"3\",\n\t\tfill: n.isCorrect ? \"black\" : n.isMissing ? \"none\" : \"red\",\n\t\tstroke: n.isMissing ? \"red\" : \"none\",\n\t\tonMouseenter: (t) => e.sayNote(n)\n\t}, null, 40, Ge))), 128))], 64))), 256))], 8, We))]);\n}\nn(_sfc_render$3, \"_sfc_render\");\nvar Ke = /* @__PURE__ */ r(Ue, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-2f79c080\"]]), qe = p({\n\tname: \"NoteDisplay\",\n\tprops: { chroma: {\n\t\ttype: Number,\n\t\trequired: !0\n\t} },\n\tsetup(e) {\n\t\tlet style = (t) => {\n\t\t\tlet n = \"#ffffff\";\n\t\t\treturn t === e.chroma ? n = \"#1976D2\" : (t === 1 || t === 3 || t === 6 || t === 8 || t === 10 || t === -2) && (n = \"#000000\"), {\n\t\t\t\tfill: n,\n\t\t\t\t\"fill-opacity\": 1,\n\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\"stroke-width\": .79375,\n\t\t\t\t\"stroke-miterlimit\": 4,\n\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\"stroke-opacity\": 1\n\t\t\t};\n\t\t};\n\t\treturn {\n\t\t\tstyle,\n\t\t\twhite: -1,\n\t\t\tblack: -2\n\t\t};\n\t}\n}), Je = {\n\tid: \"svg8\",\n\twidth: \"300px\",\n\theight: \"auto\",\n\t\"xmlns:dc\": \"http://purl.org/dc/elements/1.1/\",\n\t\"xmlns:cc\": \"http://creativecommons.org/ns#\",\n\t\"xmlns:rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n\t\"xmlns:svg\": \"http://www.w3.org/2000/svg\",\n\txmlns: \"http://www.w3.org/2000/svg\",\n\t\"xmlns:sodipodi\": \"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\n\t\"xmlns:inkscape\": \"http://www.inkscape.org/namespaces/inkscape\",\n\t\"sodipodi:docname\": \"keys.svg\",\n\t\"inkscape:version\": \"1.0rc1 (09960d6f05, 2020-04-09)\",\n\tversion: \"1.1\",\n\tviewBox: \"0 0 175.24936 73.594925\"\n}, Ye = { id: \"metadata5\" }, Xe = {\n\tid: \"layer1\",\n\ttransform: \"translate(167.75219,-151.96011)\",\n\t\"inkscape:groupmode\": \"layer\",\n\t\"inkscape:label\": \"Layer 1\"\n};\nfunction _sfc_render$2(e, t, n, r, i, a) {\n\tlet o = b(\"sodipodi:namedview\"), s = b(\"dc:format\"), c = b(\"dc:type\"), p = b(\"dc:title\"), h = b(\"cc:Work\"), g = b(\"rdf:RDF\");\n\treturn _(), l(\"svg\", Je, [\n\t\tt[1] ||= u(\"defs\", { id: \"defs2\" }, null, -1),\n\t\tf(o, {\n\t\t\tid: \"base\",\n\t\t\t\"inkscape:window-maximized\": \"1\",\n\t\t\t\"inkscape:window-y\": \"726\",\n\t\t\t\"inkscape:window-x\": \"1491\",\n\t\t\t\"inkscape:window-height\": \"1321\",\n\t\t\t\"inkscape:window-width\": \"2400\",\n\t\t\tshowborder: \"false\",\n\t\t\tshowgrid: \"false\",\n\t\t\t\"inkscape:document-rotation\": \"0\",\n\t\t\t\"inkscape:current-layer\": \"layer1\",\n\t\t\t\"inkscape:document-units\": \"mm\",\n\t\t\t\"inkscape:cy\": \"255.88343\",\n\t\t\t\"inkscape:cx\": \"754.94284\",\n\t\t\t\"inkscape:zoom\": \"0.98994949\",\n\t\t\t\"inkscape:pageshadow\": \"2\",\n\t\t\t\"inkscape:pageopacity\": \"0.0\",\n\t\t\tborderopacity: \"1.0\",\n\t\t\tbordercolor: \"#666666\",\n\t\t\tpagecolor: \"#ffffff\"\n\t\t}),\n\t\tu(\"metadata\", Ye, [f(g, null, {\n\t\t\tdefault: S(() => [f(h, { \"rdf:about\": \"\" }, {\n\t\t\t\tdefault: S(() => [\n\t\t\t\t\tf(s, null, {\n\t\t\t\t\t\tdefault: S(() => t[0] ||= [d(\"image/svg+xml\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}),\n\t\t\t\t\tf(c, { \"rdf:resource\": \"http://purl.org/dc/dcmitype/StillImage\" }),\n\t\t\t\t\tf(p)\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t})]),\n\t\tu(\"g\", Xe, [\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845\",\n\t\t\t\ty: \"152.19064\",\n\t\t\t\tx: \"-150.12129\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(0))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-9\",\n\t\t\t\tstyle: m(e.style(2)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-132.63466\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-6\",\n\t\t\t\tstyle: m(e.style(4)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-115.14803\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-4\",\n\t\t\t\tstyle: m(e.style(5)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-97.661407\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-92\",\n\t\t\t\tstyle: m(e.style(7)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-80.174782\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-3\",\n\t\t\t\tstyle: m(e.style(9)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-62.688156\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-0\",\n\t\t\t\tstyle: m(e.style(11)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-45.20153\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30\",\n\t\t\t\tstyle: m(e.style(e.white)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-27.714905\",\n\t\t\t\ty: \"152.10745\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898\",\n\t\t\t\try: \"0\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-138.43532\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\tstyle: m(e.style(1))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-3\",\n\t\t\t\tstyle: m(e.style(3)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-120.84978\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-7\",\n\t\t\t\tstyle: m(e.style(6)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-85.678711\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-8\",\n\t\t\t\tstyle: m(e.style(8)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-68.09317\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-1\",\n\t\t\t\tstyle: m(e.style(10)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-50.507633\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-1\",\n\t\t\t\ty: \"152.10745\",\n\t\t\t\tx: \"-10.228278\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(e.white))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-9\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(e.white))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-4\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-15.336554\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-74\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"4.4679713\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-10\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"5.1863246\",\n\t\t\t\theight: \"54.507248\",\n\t\t\t\tx: \"2.2092075\",\n\t\t\t\ty: \"152.06175\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4)\n\t\t])\n\t]);\n}\nn(_sfc_render$2, \"_sfc_render\");\n//#endregion\n//#region src/piano/questions/echo/Playback.vue?vue&type=script&lang.ts\nvar Ze = p({\n\tname: \"Playback\",\n\tcomponents: {\n\t\tSyllableSeqVis: Ke,\n\t\tNoteDisplay: /* @__PURE__ */ r(qe, [[\"render\", _sfc_render$2]])\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 = ee(e, t, \"Playback\"), r = E(n), i = v(), a = v(!1), s = v(\"notSet\"), c = v(!1), l = v(0), u = v(A.utc()), d = v(0), f = v(0), p = v(eventsToSyllableSequence([])), m = v(!1), _ = v(eventsToSyllableSequence([])), y = v(0), b = v(\"\"), x = v(0), S = v(0), C = v(), D = v();\n\t\tr.question.value = new Q(e.data);\n\t\tlet O = o(() => new Q(e.data)), te = o(() => eventsToSyllableSequence(O.value.midi).syllables[0].notes.length > 1 ? \"Lowest note of first chord:\" : \"First note:\"), j = o(() => a.value ? eventsToSyllableSequence(O.value.midi).rootNote.number % 12 : 0), init = () => {\n\t\t\ts.value ? s.value !== i.value?.state && (a.value = !1, s.value = i.value?.state || \"notSet\", a.value = !0) : (s.value = i.value?.state || \"notSet\", a.value = !0), n.logger.log(`Playback is running init with state: ${s.value}`), s.value === \"ready\" && (d.value = O.value.duration, play());\n\t\t}, runProgressBar = () => {\n\t\t\ttry {\n\t\t\t\tC.value && (C.value.style.animationName = \"\", requestAnimationFrame(() => {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tC.value && (C.value.style.animationDuration = d.value + \"ms\", C.value.style.animationName = \"progress\");\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t} catch {\n\t\t\t\tsetTimeout(runProgressBar, 50);\n\t\t\t}\n\t\t}, record = () => {\n\t\t\ti.value?.record(), c.value = !0, i.value?.addNoteonListenter((e) => {\n\t\t\t\tx.value++, _.value.append(e), D.value?.updateBounds(), x.value + S.value >= O.value.midi.length && submit();\n\t\t\t}), i.value?.addNoteoffListenter(() => {\n\t\t\t\tS.value++, x.value + S.value >= O.value.midi.length && submit();\n\t\t\t});\n\t\t}, play = () => {\n\t\t\ti.value?.stopRecording(), i.value?.eraseRecording(), u.value = A.utc(), x.value = 0, S.value = 0, c.value = !1, l.value = 0, runProgressBar(), i.value?.play(O.value.midi), setTimeout(() => {\n\t\t\t\tn.logger.log(\"done playback...\"), record();\n\t\t\t}, O.value.lastNoteOnTimestamp);\n\t\t}, submit = () => {\n\t\t\tif (!i.value?.recording) return !1;\n\t\t\tlet e = eventsToSyllableSequence(O.value.midi), t = eventsToSyllableSequence(i.value.recording);\n\t\t\treturn p.value = e.grade(t), _.value = eventsToSyllableSequence([]), r.submitAnswer(i.value.recording).isCorrect ? !0 : (f.value++, m.value = !0, f.value < r.maxAttemptsPerView.value && play(), !1);\n\t\t}, clearAttempt = () => {\n\t\t\tx.value > 0 ? submit() : play();\n\t\t};\n\t\treturn g(async () => {\n\t\t\ttry {\n\t\t\t\ti.value = await Z.instance(), i.value.setStateChangeListener(() => {\n\t\t\t\t\tinit();\n\t\t\t\t}), a.value = !0;\n\t\t\t} catch (e) {\n\t\t\t\tT({\n\t\t\t\t\tstatus: k.error,\n\t\t\t\t\ttext: \"Midi device not supported\"\n\t\t\t\t}), b.value = JSON.stringify(e), s.value = \"notsupported\", a.value = !0;\n\t\t\t}\n\t\t\tinit(), w.addBinding([{\n\t\t\t\thotkey: \"space\",\n\t\t\t\tcallback: clearAttempt,\n\t\t\t\tcommand: \"Clear attempt or play again\"\n\t\t\t}]);\n\t\t}), h(() => {\n\t\t\tw.removeBinding(\"space\");\n\t\t}), {\n\t\t\t...n,\n\t\t\t...r,\n\t\t\tinitialized: a,\n\t\t\tstate: s,\n\t\t\trecording: c,\n\t\t\tinputSeq: _,\n\t\t\tlastTSsuggestion: y,\n\t\t\tgradedSeq: p,\n\t\t\tgraded: m,\n\t\t\tpromptText: te,\n\t\t\tfirstNoteChroma: j,\n\t\t\tprogressBar: C,\n\t\t\tinputVisRef: D,\n\t\t\tclearAttempt,\n\t\t\tnotesOn: x\n\t\t};\n\t}\n}), Qe = {\n\tkey: 0,\n\t\"data-viewable\": \"Playback\"\n}, $e = { key: 0 }, et = { class: \"text-h4\" }, tt = { class: \"text-h5\" }, nt = { key: 0 }, rt = { class: \"progressContainer\" }, it = {\n\tid: \"progress\",\n\tref: \"progressBar\"\n}, at = { key: 1 }, ot = { key: 2 };\nfunction _sfc_render$1(e, t, n, r, i, a) {\n\tlet o = b(\"note-display\"), p = b(\"v-icon\"), m = b(\"v-btn\"), h = b(\"syllable-seq-vis\");\n\treturn e.initialized ? (_(), l(\"div\", Qe, [e.state === \"ready\" ? (_(), l(\"div\", $e, [\n\t\tu(\"div\", et, [d(x(e.promptText) + \" \", 1), f(o, { chroma: e.firstNoteChroma }, null, 8, [\"chroma\"])]),\n\t\tu(\"div\", tt, [t[0] ||= d(\"Listen...\"), e.recording ? (_(), l(\"span\", nt, \" and Repeat\")) : c(\"\", !0)]),\n\t\tu(\"div\", rt, [u(\"div\", it, null, 512)]),\n\t\tf(m, {\n\t\t\tcolor: \"primary\",\n\t\t\tautofocus: \"\",\n\t\t\tonClick: e.clearAttempt\n\t\t}, {\n\t\t\tdefault: S(() => [t[2] ||= d(\" Play again \"), f(p, { end: \"\" }, {\n\t\t\t\tdefault: S(() => t[1] ||= [d(\"volume_up\")]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t}, 8, [\"onClick\"]),\n\t\t(_(), s(h, {\n\t\t\tkey: 0,\n\t\t\tref: \"inputVisRef\",\n\t\t\tseq: e.inputSeq,\n\t\t\t\"last-t-ssuggestion\": e.lastTSsuggestion\n\t\t}, null, 8, [\"seq\", \"last-t-ssuggestion\"])),\n\t\te.graded ? (_(), s(h, {\n\t\t\tkey: 1,\n\t\t\tseq: e.gradedSeq\n\t\t}, null, 8, [\"seq\"])) : c(\"\", !0)\n\t])) : e.state === \"nodevice\" ? (_(), l(\"div\", at, \"No midi device detected. Please attach one!\")) : e.state === \"notsupported\" ? (_(), l(\"div\", ot, t[3] ||= [u(\"p\", null, \"This exercise requires a midi input device, which is not supported by this browser ☹\", -1), u(\"div\", null, [u(\"p\", null, \"Please try again with one of the following browsers:\"), u(\"ul\", null, [\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://www.google.com/chrome/\" }, \"Google Chrome\")]),\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://www.microsoft.com/edge\" }, \"Microsoft Edge\")]),\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://brave.com/\" }, \"Brave\")])\n\t])], -1)])) : c(\"\", !0)])) : c(\"\", !0);\n}\nn(_sfc_render$1, \"_sfc_render\");\nvar st = /* @__PURE__ */ r(Ze, [[\"render\", _sfc_render$1]]), ct = [{\n\tname: \"Melody\",\n\ttype: O.MIDI\n}], Q = class EchoQuestion extends C {\n\tstatic dataShapes = [{\n\t\tfields: ct,\n\t\tname: D.PIANO_Echo\n\t}];\n\tstatic views = [st];\n\tmidi;\n\tconstructor(e) {\n\t\tsuper(e), this.midi = e[0].Melody;\n\t}\n\tget duration() {\n\t\treturn this.midi.reduce((e, t) => t.timestamp > e.timestamp ? t : e).timestamp;\n\t}\n\tget lastNoteOnTimestamp() {\n\t\treturn this.midi.filter((e) => e.type === \"noteon\").reduce((e, t) => t.timestamp > e.timestamp ? t : e).timestamp;\n\t}\n\tisCorrect(e) {\n\t\tlet t = eventsToSyllableSequence(this.midi), n = eventsToSyllableSequence(e);\n\t\ttry {\n\t\t\treturn t.grade(n).isCorrect();\n\t\t} catch (e) {\n\t\t\treturn console.log(\"ERROR grading this midi sequence!\", e), !1;\n\t\t}\n\t}\n\tdataShapes() {\n\t\treturn EchoQuestion.dataShapes;\n\t}\n\tviews() {\n\t\treturn EchoQuestion.views;\n\t}\n}, lt = p({\n\tname: \"NotePlayback\",\n\tcomponents: {},\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 = ee(e, t, \"NotePlayback\"), r = E(n), i = v(), a = v(!1), s = v(!1), c = v(0), l = v(A.utc()), u = v(0), d = v(eventsToSyllableSequence([])), f = v(!1), p = v(eventsToSyllableSequence([])), m = v(\"\");\n\t\tr.question.value = new $(e.data);\n\t\tlet h = o(() => new $(e.data)), record = () => {\n\t\t\ti.value?.record(), s.value = !0, i.value?.addNoteonListenter((e) => {\n\t\t\t\tp.value.append(e);\n\t\t\t}), i.value?.addNoteoffListenter(() => {\n\t\t\t\ti.value?.recording?.length && i.value?.recording?.length >= 2 && submit();\n\t\t\t});\n\t\t}, play = () => {\n\t\t\ti.value?.stopRecording(), i.value?.eraseRecording(), l.value = A.utc(), s.value = !1, c.value = 0, record();\n\t\t}, submit = () => i.value?.recording ? (p.value = eventsToSyllableSequence([]), r.submitAnswer(i.value.recording).isCorrect ? !0 : (u.value++, f.value = !0, u.value < r.maxAttemptsPerView.value && play(), !1)) : !1;\n\t\treturn g(async () => {\n\t\t\ttry {\n\t\t\t\ti.value = await Z.instance(), m.value = h.value.note, play(), a.value = !0;\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize MIDI:\", e);\n\t\t\t}\n\t\t}), {\n\t\t\t...n,\n\t\t\t...r,\n\t\t\tinitialized: a,\n\t\t\trecording: s,\n\t\t\tinputSeq: p,\n\t\t\tgradedSeq: d,\n\t\t\tgraded: f,\n\t\t\tnote: m,\n\t\t\tattempts: u\n\t\t};\n\t}\n}), ut = { \"data-viewable\": \"NotePlayback\" }, dt = { class: \"text-h4\" }, ft = { class: \"font-weight-bold\" }, pt = {\n\tkey: 0,\n\tid: \"svg8\",\n\twidth: \"300px\",\n\theight: \"auto\",\n\t\"xmlns:dc\": \"http://purl.org/dc/elements/1.1/\",\n\t\"xmlns:cc\": \"http://creativecommons.org/ns#\",\n\t\"xmlns:rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n\t\"xmlns:svg\": \"http://www.w3.org/2000/svg\",\n\txmlns: \"http://www.w3.org/2000/svg\",\n\t\"xmlns:sodipodi\": \"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\n\t\"xmlns:inkscape\": \"http://www.inkscape.org/namespaces/inkscape\",\n\t\"sodipodi:docname\": \"keys.svg\",\n\t\"inkscape:version\": \"1.0rc1 (09960d6f05, 2020-04-09)\",\n\tversion: \"1.1\",\n\tviewBox: \"0 0 175.24936 73.594925\"\n}, mt = { id: \"metadata5\" };\nfunction _sfc_render(e, t, n, r, i, a) {\n\tlet o = b(\"sodipodi:namedview\"), s = b(\"dc:format\"), p = b(\"dc:type\"), m = b(\"dc:title\"), h = b(\"cc:Work\"), g = b(\"rdf:RDF\");\n\treturn _(), l(\"div\", ut, [u(\"div\", dt, [t[0] ||= d(\" Play the note: \"), u(\"span\", ft, x(e.note), 1)]), e.graded ? (_(), l(\"svg\", pt, [\n\t\tt[2] ||= u(\"defs\", { id: \"defs2\" }, null, -1),\n\t\tf(o, {\n\t\t\tid: \"base\",\n\t\t\t\"inkscape:window-maximized\": \"1\",\n\t\t\t\"inkscape:window-y\": \"726\",\n\t\t\t\"inkscape:window-x\": \"1491\",\n\t\t\t\"inkscape:window-height\": \"1321\",\n\t\t\t\"inkscape:window-width\": \"2400\",\n\t\t\tshowborder: \"false\",\n\t\t\tshowgrid: \"false\",\n\t\t\t\"inkscape:document-rotation\": \"0\",\n\t\t\t\"inkscape:current-layer\": \"layer1\",\n\t\t\t\"inkscape:document-units\": \"mm\",\n\t\t\t\"inkscape:cy\": \"255.88343\",\n\t\t\t\"inkscape:cx\": \"754.94284\",\n\t\t\t\"inkscape:zoom\": \"0.98994949\",\n\t\t\t\"inkscape:pageshadow\": \"2\",\n\t\t\t\"inkscape:pageopacity\": \"0.0\",\n\t\t\tborderopacity: \"1.0\",\n\t\t\tbordercolor: \"#666666\",\n\t\t\tpagecolor: \"#ffffff\"\n\t\t}),\n\t\tu(\"metadata\", mt, [f(g, null, {\n\t\t\tdefault: S(() => [f(h, { \"rdf:about\": \"\" }, {\n\t\t\t\tdefault: S(() => [\n\t\t\t\t\tf(s, null, {\n\t\t\t\t\t\tdefault: S(() => t[1] ||= [d(\"image/svg+xml\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}),\n\t\t\t\t\tf(p, { \"rdf:resource\": \"http://purl.org/dc/dcmitype/StillImage\" }),\n\t\t\t\t\tf(m)\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t})]),\n\t\tt[3] ||= u(\"g\", {\n\t\t\tid: \"layer1\",\n\t\t\ttransform: \"translate(167.75219,-151.96011)\",\n\t\t\t\"inkscape:groupmode\": \"layer\",\n\t\t\t\"inkscape:label\": \"Layer 1\"\n\t\t}, [\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845\",\n\t\t\t\ty: \"152.19064\",\n\t\t\t\tx: \"-150.12129\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-9\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-132.63466\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-6\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-115.14803\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-0\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-45.20153\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-92\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-80.174782\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-3\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-62.688156\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-4\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-97.661407\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-27.714905\",\n\t\t\t\ty: \"152.10745\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898\",\n\t\t\t\try: \"0\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-138.43532\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-3\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-120.84978\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-7\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-85.678711\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-8\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-68.09317\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-1\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-50.507633\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-1\",\n\t\t\t\ty: \"152.10745\",\n\t\t\t\tx: \"-10.228278\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-9\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-4\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-15.336554\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-74\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"4.4679713\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-10\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"5.1863246\",\n\t\t\t\theight: \"54.507248\",\n\t\t\t\tx: \"2.2092075\",\n\t\t\t\ty: \"152.06175\",\n\t\t\t\try: \"0\"\n\t\t\t})\n\t\t], -1)\n\t])) : c(\"\", !0)]);\n}\nvar ht = /* @__PURE__ */ r(lt, [[\"render\", _sfc_render]]), gt = [{\n\tname: \"Note\",\n\ttype: O.STRING\n}], _t = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"A♯\",\n\t\"C♯\",\n\t\"D♯\",\n\t\"F♯\",\n\t\"G♯\",\n\t\"D♭\",\n\t\"E♭\",\n\t\"G♭\",\n\t\"A♭\",\n\t\"B♭\"\n], $ = class PlayNote extends C {\n\tstatic dataShapes = [{\n\t\tfields: gt,\n\t\tname: D.PIANO_PlayNote\n\t}];\n\tstatic seedData = _t.map((e) => ({ Note: e }));\n\tstatic views = [ht];\n\tnote;\n\tconstructor(e) {\n\t\tsuper(e), this.note = e[0].Note;\n\t}\n\tisCorrect(e) {\n\t\treturn e[0].note.name === this.note;\n\t}\n\tdataShapes() {\n\t\treturn PlayNote.dataShapes;\n\t}\n\tviews() {\n\t\treturn PlayNote.views;\n\t}\n}, vt = new i(\"piano\", [Q, $]);\n//#endregion\nexport { eventsToSyllableSequence as a, He as i, Ke as n, transposeSyllableSeq as o, Z as r, vt as t };\n\n//# sourceMappingURL=piano-DF1g6yaX.js.map","import { r as e, t } from \"./shapes-BQUVJdp5.js\";\nimport { i as n, n as r, r as i, t as a } from \"./CourseWare-BTFRjgBR.js\";\nimport { t as o } from \"./chess-BbHATAzk.js\";\nimport { t as s } from \"./french-Dk7YG8Td.js\";\nimport { t as c } from \"./math-B4HbgYf6.js\";\nimport { a as l, i as u, n as d, o as f, r as p, t as m } from \"./piano-DF1g6yaX.js\";\nimport { t as h } from \"./pitch-CgGJFkZ1.js\";\nimport { t as g } from \"./sightsing-BFQ7HRig.js\";\nimport { t as _ } from \"./typing-BevtfWlp.js\";\nimport { t as v } from \"./word-work-BOnRlZgd.js\";\nimport { Fragment as y, computed as b, createBlock as x, createCommentVNode as S, createElementBlock as C, createElementVNode as w, createTextVNode as T, createVNode as E, defineComponent as D, markRaw as O, onMounted as k, openBlock as A, ref as j, renderList as M, resolveComponent as N, toDisplayString as P, watch as F, withCtx as I } from \"vue\";\nimport { Displayable as L, Question as R, alertUser as z, useQuestionView as ee, useViewable as te } from \"@vue-skuilder/common-ui\";\nimport { NameSpacer as B, Status as V } from \"@vue-skuilder/common\";\nimport { getDataLayer as H } from \"@vue-skuilder/db\";\n//#region src/default/index.ts\nvar U = new a(\"default\", [r]), W = D({\n\tname: \"PianoRangeVisualizer\",\n\tprops: {\n\t\tlowestNote: {\n\t\t\ttype: Number,\n\t\t\trequired: !0\n\t\t},\n\t\thighestNote: {\n\t\t\ttype: Number,\n\t\t\trequired: !0\n\t\t},\n\t\tmaxWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1e3\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = j(null), n = j(800), r = b(() => {\n\t\t\tlet e = 0;\n\t\t\tfor (let t = 21; t <= 108; t++) isWhiteKey(t) && e++;\n\t\t\treturn e;\n\t\t}), i = b(() => Math.min(22, n.value / Math.max(25, r.value))), a = b(() => i.value * .6), o = b(() => Math.min(e.maxWidth, i.value * r.value + 10)), isWhiteKey = (e) => {\n\t\t\tlet t = e % 12;\n\t\t\treturn [\n\t\t\t\t0,\n\t\t\t\t2,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t7,\n\t\t\t\t9,\n\t\t\t\t11\n\t\t\t].includes(t);\n\t\t}, getKeyPosition = (e) => {\n\t\t\tlet t = 0;\n\t\t\tfor (let n = 21; n < e; n++) isWhiteKey(n) && t++;\n\t\t\treturn isWhiteKey(e) ? t * i.value : t * i.value - a.value / 2;\n\t\t}, getNoteLabel = (e) => {\n\t\t\tlet t = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], n = e % 12, r = Math.floor(e / 12) - 1;\n\t\t\treturn `${t[n]}${r}`;\n\t\t};\n\t\treturn k(() => {\n\t\t\tt.value && (n.value = t.value.clientWidth, new ResizeObserver((e) => {\n\t\t\t\tfor (let t of e) n.value = t.contentRect.width;\n\t\t\t}).observe(t.value));\n\t\t}), {\n\t\t\tpianoWrapper: t,\n\t\t\tkeyHeight: 100,\n\t\t\tblackKeyHeight: 60,\n\t\t\twhiteKeyWidth: i,\n\t\t\tblackKeyWidth: a,\n\t\t\tsvgWidth: o,\n\t\t\tisWhiteKey,\n\t\t\tgetKeyPosition,\n\t\t\tgetNoteLabel\n\t\t};\n\t}\n}), G = { class: \"piano-range-container\" }, K = {\n\tclass: \"piano-wrapper\",\n\tref: \"pianoWrapper\"\n}, q = [\"width\", \"height\"], J = {\n\tclass: \"background-keys\",\n\topacity: \"0.15\"\n}, Y = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], X = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], Z = { class: \"selected-range\" }, ne = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], re = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], ie = { class: \"range-markers\" }, ae = [\"x\", \"height\"], oe = [\"x\", \"height\"], se = [\"x\", \"y\"], ce = [\"x\", \"y\"];\nfunction _sfc_render$1(e, t, n, r, i, a) {\n\treturn A(), C(\"div\", G, [w(\"div\", K, [(A(), C(\"svg\", {\n\t\twidth: e.svgWidth,\n\t\theight: e.keyHeight + 20,\n\t\tclass: \"piano-svg\"\n\t}, [\n\t\tw(\"g\", J, [(A(), C(y, null, M(88, (t) => (A(), C(y, { key: `bg-${t}` }, [e.isWhiteKey(t + 20) ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t + 20),\n\t\t\ty: \"0\",\n\t\t\twidth: e.whiteKeyWidth,\n\t\t\theight: e.keyHeight,\n\t\t\tclass: \"white-key\",\n\t\t\tstroke: \"#999\",\n\t\t\t\"stroke-width\": \"1\"\n\t\t}, null, 8, Y)) : S(\"\", !0)], 64))), 64)), (A(), C(y, null, M(88, (t) => (A(), C(y, { key: `bg-black-${t}` }, [e.isWhiteKey(t + 20) ? S(\"\", !0) : (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t + 20),\n\t\t\ty: \"0\",\n\t\t\twidth: e.blackKeyWidth,\n\t\t\theight: e.blackKeyHeight,\n\t\t\tclass: \"black-key\"\n\t\t}, null, 8, X))], 64))), 64))]),\n\t\tw(\"g\", Z, [(A(), C(y, null, M(128, (t) => (A(), C(y, { key: `white-${t}` }, [e.isWhiteKey(t) && t >= e.lowestNote && t <= e.highestNote ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t),\n\t\t\ty: \"0\",\n\t\t\twidth: e.whiteKeyWidth,\n\t\t\theight: e.keyHeight,\n\t\t\tclass: \"white-key active\",\n\t\t\tstroke: \"#666\",\n\t\t\t\"stroke-width\": \"1\"\n\t\t}, null, 8, ne)) : S(\"\", !0)], 64))), 64)), (A(), C(y, null, M(128, (t) => (A(), C(y, { key: `black-${t}` }, [!e.isWhiteKey(t) && t >= e.lowestNote && t <= e.highestNote ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t),\n\t\t\ty: \"0\",\n\t\t\twidth: e.blackKeyWidth,\n\t\t\theight: e.blackKeyHeight,\n\t\t\tclass: \"black-key active\"\n\t\t}, null, 8, re)) : S(\"\", !0)], 64))), 64))]),\n\t\tw(\"g\", ie, [w(\"rect\", {\n\t\t\tx: e.getKeyPosition(e.lowestNote) - 2,\n\t\t\ty: \"0\",\n\t\t\twidth: 4,\n\t\t\theight: e.keyHeight + 5,\n\t\t\tclass: \"range-marker start\"\n\t\t}, null, 8, ae), w(\"rect\", {\n\t\t\tx: e.getKeyPosition(e.highestNote) + e.whiteKeyWidth - 2,\n\t\t\ty: \"0\",\n\t\t\twidth: 4,\n\t\t\theight: e.keyHeight + 5,\n\t\t\tclass: \"range-marker end\"\n\t\t}, null, 8, oe)]),\n\t\tw(\"text\", {\n\t\t\tx: e.getKeyPosition(e.lowestNote) + 3,\n\t\t\ty: e.keyHeight + 12,\n\t\t\tclass: \"note-label\"\n\t\t}, P(e.getNoteLabel(e.lowestNote)), 9, se),\n\t\tw(\"text\", {\n\t\t\tx: e.getKeyPosition(e.highestNote) + e.whiteKeyWidth - 3,\n\t\t\ty: e.keyHeight + 12,\n\t\t\t\"text-anchor\": \"end\",\n\t\t\tclass: \"note-label\"\n\t\t}, P(e.getNoteLabel(e.highestNote)), 9, ce)\n\t], 8, q))], 512)]);\n}\ne(_sfc_render$1, \"_sfc_render\");\n//#endregion\n//#region src/piano/utility/MidiConfig.vue?vue&type=script&lang.ts\nvar le = D({\n\tname: \"MidiConfig\",\n\tcomponents: { PianoRangeVisualizer: /* @__PURE__ */ i(W, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-4b232a8b\"]]) },\n\tprops: {\n\t\t_id: {\n\t\t\ttype: String,\n\t\t\trequired: !0\n\t\t},\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: !0\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = j(), n = j(!0), r = j([]), i = j([]), a = j(\"\"), o = j(\"\"), s = j(!1), c = j(\"\"), l = j(\"\"), u = j(!1), d = j(\"full-88\"), f = j(21), m = j(108), h = j(\"\"), g = j(0), _ = j(0), v = j([]), initNoteOptions = () => {\n\t\t\tlet e = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], t = [];\n\t\t\tfor (let n = 0; n <= 127; n++) {\n\t\t\t\tlet r = Math.floor(n / 12) - 1, i = e[n % 12];\n\t\t\t\tt.push({\n\t\t\t\t\ttitle: `${i}${r} (${n})`,\n\t\t\t\t\tvalue: n\n\t\t\t\t});\n\t\t\t}\n\t\t\tv.value = t;\n\t\t}, y = j([\n\t\t\t{\n\t\t\t\ttitle: \"Full 88-key Piano (A0-C8)\",\n\t\t\t\tvalue: \"full-88\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"76-key Keyboard (E1-G7)\",\n\t\t\t\tvalue: \"76-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"61-key Keyboard (C2-C7)\",\n\t\t\t\tvalue: \"61-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"49-key Keyboard (C3-C7)\",\n\t\t\t\tvalue: \"49-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"37-key Keyboard (C3-C6)\",\n\t\t\t\tvalue: \"37-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"25-key Keyboard (C4-C6)\",\n\t\t\t\tvalue: \"25-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"Custom Range\",\n\t\t\t\tvalue: \"custom\"\n\t\t\t}\n\t\t]), checkConfigChanged = () => {\n\t\t\tu.value = a.value !== c.value || o.value !== l.value || d.value !== h.value || d.value === \"custom\" && (f.value !== g.value || m.value !== _.value);\n\t\t}, updateCustomRangeFromPreset = () => {\n\t\t\tswitch (d.value) {\n\t\t\t\tcase \"full-88\":\n\t\t\t\t\tf.value = 21, m.value = 108;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"76-key\":\n\t\t\t\t\tf.value = 28, m.value = 103;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"61-key\":\n\t\t\t\t\tf.value = 36, m.value = 96;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"49-key\":\n\t\t\t\t\tf.value = 48, m.value = 96;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"37-key\":\n\t\t\t\t\tf.value = 48, m.value = 84;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"25-key\":\n\t\t\t\t\tf.value = 60, m.value = 84;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcheckConfigChanged();\n\t\t}, updateRangeAndCheckChanges = () => {\n\t\t\tf.value >= m.value && (m.value = f.value + 12), checkConfigChanged();\n\t\t}, playSound = () => {\n\t\t\tt.value?.play([\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .4251968503937008,\n\t\t\t\t\ttimestamp: 0\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3779527559055118,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 511.90500000002794\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5275590551181102,\n\t\t\t\t\ttimestamp: 535.8800000001211\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .33858267716535434,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 674.9899999999907\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5590551181102362,\n\t\t\t\t\ttimestamp: 1070.8800000000047\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3464566929133858,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1214.8999999999069\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5118110236220472,\n\t\t\t\t\ttimestamp: 1424.9400000000605\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .2755905511811024,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1576.9150000000373\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 62,\n\t\t\t\t\t\tname: \"D\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .3937007874015748,\n\t\t\t\t\ttimestamp: 1756.9149999999208\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 62,\n\t\t\t\t\t\tname: \"D\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .36220472440944884,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1926.9899999998743\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5196850393700787,\n\t\t\t\t\ttimestamp: 1970.9600000000792\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .36220472440944884,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 2126.009999999893\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5984251968503937,\n\t\t\t\t\ttimestamp: 2502.0050000000047\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3858267716535433,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 2853.920000000042\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 67,\n\t\t\t\t\t\tname: \"G\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .6850393700787402,\n\t\t\t\t\ttimestamp: 2875.8649999999907\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 67,\n\t\t\t\t\t\tname: \"G\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .6377952755905512,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 4497.004999999888\n\t\t\t\t}\n\t\t\t]);\n\t\t}, indicateHeardNotes = (e) => {\n\t\t\tz({\n\t\t\t\ttext: `I hear a ${e.note.name}!`,\n\t\t\t\tstatus: V.ok\n\t\t\t});\n\t\t};\n\t\tF(a, () => {\n\t\t\tt.value?.selectInput(a.value), checkConfigChanged();\n\t\t}), F(o, () => {\n\t\t\tt.value?.selectOutput(o.value), checkConfigChanged();\n\t\t});\n\t\tlet retrieveSettings = async () => {\n\t\t\tlet t = await (await e.user.getCourseInterface(e._id)).getCourseSettings();\n\t\t\tif (t?.midiinput) {\n\t\t\t\tlet e = t.midiinput.toString();\n\t\t\t\tr.value.some((t) => t.value === e) && (a.value = e, c.value = e);\n\t\t\t}\n\t\t\tif (t?.midioutput) {\n\t\t\t\tlet e = t.midioutput.toString();\n\t\t\t\ti.value.some((t) => t.value === e) && (o.value = e, l.value = e);\n\t\t\t}\n\t\t\tt?.keyboardRange && (h.value = t.keyboardRange.toString(), d.value = h.value), t?.lowestNote && (g.value = parseInt(t.lowestNote.toString()), f.value = g.value), t?.highestNote && (_.value = parseInt(t.highestNote.toString()), m.value = _.value), t?.lowestNote && t?.highestNote && !t?.keyboardRange && (d.value = \"custom\"), u.value = !1;\n\t\t}, saveSettings = async () => {\n\t\t\ts.value = !0, (await H().getUserDB().getCourseInterface(e._id)).updateCourseSettings([\n\t\t\t\t{\n\t\t\t\t\tkey: \"midiinput\",\n\t\t\t\t\tvalue: a.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"midioutput\",\n\t\t\t\t\tvalue: o.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"keyboardRange\",\n\t\t\t\t\tvalue: d.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"lowestNote\",\n\t\t\t\t\tvalue: f.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"highestNote\",\n\t\t\t\t\tvalue: m.value\n\t\t\t\t}\n\t\t\t]), c.value = a.value, l.value = o.value, h.value = d.value, g.value = f.value, _.value = m.value, u.value = !1, s.value = !1, z({\n\t\t\t\ttext: \"Settings updated.\",\n\t\t\t\tstatus: V.ok\n\t\t\t});\n\t\t};\n\t\treturn k(async () => {\n\t\t\tinitNoteOptions();\n\t\t\ttry {\n\t\t\t\tt.value = await p.instance(), n.value = t.value.state === \"ready\" || t.value.state === \"nodevice\";\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(`Error on midi Init: ${e}`), n.value = !1;\n\t\t\t}\n\t\t\tn.value && (t.value?.addNoteonListenter(indicateHeardNotes), t.value ? (r.value = t.value.inputs.filter((e) => e.state === \"connected\").map((e) => ({\n\t\t\t\ttitle: `${e.manufacturer}: ${e.name}`,\n\t\t\t\tvalue: e.id\n\t\t\t})), i.value = t.value?.outputs.filter((e) => e.state === \"connected\").map((e) => ({\n\t\t\t\ttitle: `${e.manufacturer}: ${e.name}`,\n\t\t\t\tvalue: e.id\n\t\t\t}))) : (r.value = [{\n\t\t\t\ttitle: \"No inputs available\",\n\t\t\t\tvalue: \"\"\n\t\t\t}], i.value = [{\n\t\t\t\ttitle: \"No outputs available\",\n\t\t\t\tvalue: \"\"\n\t\t\t}]), await retrieveSettings(), !a.value && r.value.length > 0 && (a.value = r.value[0].value), !o.value && i.value.length > 0 && (o.value = i.value[0].value));\n\t\t}), {\n\t\t\tmidiSupported: n,\n\t\t\tinputs: r,\n\t\t\toutputs: i,\n\t\t\tselectedInput: a,\n\t\t\tselectedOutput: o,\n\t\t\tupdatePending: s,\n\t\t\tplaySound,\n\t\t\tsaveSettings,\n\t\t\tconfigChanged: u,\n\t\t\tlowestNote: f,\n\t\t\thighestNote: m,\n\t\t\tkeyboardRangeOptions: y,\n\t\t\tselectedKeyboardRange: d,\n\t\t\tnoteOptions: v,\n\t\t\tupdateCustomRangeFromPreset,\n\t\t\tupdateRangeAndCheckChanges\n\t\t};\n\t}\n}), Q = {\n\tkey: 0,\n\tclass: \"custom-range-inputs d-flex gap-4\"\n}, ue = { class: \"d-flex justify-space-between mt-3\" }, de = { key: 1 };\nfunction _sfc_render(e, t, n, r, i, a) {\n\tlet o = N(\"v-toolbar-title\"), s = N(\"v-toolbar\"), c = N(\"v-select\"), l = N(\"v-divider\"), u = N(\"piano-range-visualizer\"), d = N(\"v-btn\"), f = N(\"v-form\"), p = N(\"v-card-text\"), m = N(\"v-card\");\n\treturn A(), x(m, null, {\n\t\tdefault: I(() => [E(s, { dense: \"\" }, {\n\t\t\tdefault: I(() => [E(o, null, {\n\t\t\t\tdefault: I(() => t[5] ||= [T(\"Configure Midi Device\")]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t}), E(p, null, {\n\t\t\tdefault: I(() => [e.midiSupported ? (A(), x(f, {\n\t\t\t\tkey: 0,\n\t\t\t\tonsubmit: \"return false;\"\n\t\t\t}, {\n\t\t\t\tdefault: I(() => [\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedInput,\n\t\t\t\t\t\t\"onUpdate:modelValue\": t[0] ||= (t) => e.selectedInput = t,\n\t\t\t\t\t\titems: e.inputs,\n\t\t\t\t\t\tlabel: \"Select Input\",\n\t\t\t\t\t\thint: \"Play some notes on your input device to test the connection\"\n\t\t\t\t\t}, null, 8, [\"modelValue\", \"items\"]),\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedOutput,\n\t\t\t\t\t\t\"onUpdate:modelValue\": t[1] ||= (t) => e.selectedOutput = t,\n\t\t\t\t\t\titems: e.outputs,\n\t\t\t\t\t\tlabel: \"Select Output\"\n\t\t\t\t\t}, null, 8, [\"modelValue\", \"items\"]),\n\t\t\t\t\tE(l, { class: \"my-4\" }),\n\t\t\t\t\tt[8] ||= w(\"h3\", { class: \"text-subtitle-1 mb-2\" }, \"Keyboard Range\", -1),\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedKeyboardRange,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[2] ||= (t) => e.selectedKeyboardRange = t, e.updateCustomRangeFromPreset],\n\t\t\t\t\t\titems: e.keyboardRangeOptions,\n\t\t\t\t\t\tlabel: \"Select Keyboard Range\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t]),\n\t\t\t\t\te.selectedKeyboardRange === \"custom\" ? (A(), C(\"div\", Q, [E(c, {\n\t\t\t\t\t\tmodelValue: e.lowestNote,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[3] ||= (t) => e.lowestNote = t, e.updateRangeAndCheckChanges],\n\t\t\t\t\t\titems: e.noteOptions,\n\t\t\t\t\t\tlabel: \"Lowest Note\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t]), E(c, {\n\t\t\t\t\t\tmodelValue: e.highestNote,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[4] ||= (t) => e.highestNote = t, e.updateRangeAndCheckChanges],\n\t\t\t\t\t\titems: e.noteOptions,\n\t\t\t\t\t\tlabel: \"Highest Note\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t])])) : S(\"\", !0),\n\t\t\t\t\tE(u, {\n\t\t\t\t\t\t\"lowest-note\": e.lowestNote,\n\t\t\t\t\t\t\"highest-note\": e.highestNote\n\t\t\t\t\t}, null, 8, [\"lowest-note\", \"highest-note\"]),\n\t\t\t\t\tw(\"div\", ue, [E(d, {\n\t\t\t\t\t\tcolor: \"primary\",\n\t\t\t\t\t\tonClick: e.playSound\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: I(() => t[6] ||= [T(\"Test midi output\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}, 8, [\"onClick\"]), E(d, {\n\t\t\t\t\t\tloading: e.updatePending,\n\t\t\t\t\t\tdisabled: !e.configChanged && !e.updatePending,\n\t\t\t\t\t\tcolor: \"info\",\n\t\t\t\t\t\tclass: \"save-button\",\n\t\t\t\t\t\tonClick: e.saveSettings\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: I(() => t[7] ||= [T(\" Save these settings \")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}, 8, [\n\t\t\t\t\t\t\"loading\",\n\t\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\t\"onClick\"\n\t\t\t\t\t])])\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})) : (A(), C(\"div\", de, t[9] ||= [w(\"p\", null, \"This quilt requires a midi input device, which is not supported by this browser.\", -1), w(\"div\", null, [w(\"p\", null, \"Try one of the following browsers:\"), w(\"ul\", null, [\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://www.google.com/chrome/\" }, \"Google Chrome\")]),\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://www.microsoft.com/edge\" }, \"Microsoft Edge\")]),\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://brave.com/\" }, \"Brave\")])\n\t\t\t])], -1)]))]),\n\t\t\t_: 1\n\t\t})]),\n\t\t_: 1\n\t});\n}\nvar fe = /* @__PURE__ */ i(le, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6ee9020f\"]]), pe = ee;\nasync function loadSubcourse(e) {\n\tlet t;\n\tswitch (e) {\n\t\tcase \"chess\":\n\t\t\tt = await import(\"./chess-X1bmWmh3.js\");\n\t\t\tbreak;\n\t\tcase \"french\":\n\t\t\tt = await import(\"./french-evUMlbbq.js\");\n\t\t\tbreak;\n\t\tcase \"math\":\n\t\t\tt = await import(\"./math-DYni7rRl.js\");\n\t\t\tbreak;\n\t\tcase \"piano\":\n\t\t\tt = await import(\"./piano-BN5Btq91.js\");\n\t\t\tbreak;\n\t\tcase \"pitch\":\n\t\t\tt = await import(\"./pitch-Dn0iNqiS.js\");\n\t\t\tbreak;\n\t\tcase \"sightSing\":\n\t\t\tt = await import(\"./sightsing-CJX3k0Fd.js\");\n\t\t\tbreak;\n\t\tcase \"typing\":\n\t\t\tt = await import(\"./typing-k-ojjO7G.js\");\n\t\t\tbreak;\n\t\tcase \"wordWork\":\n\t\t\tt = await import(\"./word-work-Dd6tIKrt.js\");\n\t\t\tbreak;\n\t}\n\tlet n = t.default;\n\treturn $.courses.find((e) => e.name === n.name) || $.courses.push(n), n;\n}\nasync function loadAllSubcourses() {\n\tawait Promise.all([\n\t\t\"chess\",\n\t\t\"french\",\n\t\t\"math\",\n\t\t\"piano\",\n\t\t\"pitch\",\n\t\t\"sightSing\",\n\t\t\"typing\",\n\t\t\"wordWork\"\n\t].map((e) => loadSubcourse(e)));\n}\nvar AllCourseWare = class {\n\tcourseWareList;\n\tget courses() {\n\t\treturn this.courseWareList;\n\t}\n\tconstructor(e) {\n\t\tthis.courseWareList = e;\n\t}\n\tgetCourseWare(e) {\n\t\treturn this.courseWareList.find((t) => t.name === e);\n\t}\n\tcachedRawViews = null;\n\tallViewsRaw() {\n\t\tif (!this.cachedRawViews) {\n\t\t\tlet e = this.allViews();\n\t\t\tthis.cachedRawViews = Object.fromEntries(Object.entries(e).map(([e, t]) => [e, O(t)]));\n\t\t}\n\t\treturn this.cachedRawViews;\n\t}\n\tallViews() {\n\t\tlet e = {};\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tObject.assign(e, t.allViewsMap);\n\t\t}), e;\n\t}\n\tgetView(e) {\n\t\tlet t;\n\t\tt = typeof e == \"string\" ? B.getViewDescriptor(e) : e;\n\t\tlet n = this.getCourseWare(t.course);\n\t\tif (n) {\n\t\t\tlet e = n.getQuestion(t.questionType);\n\t\t\tif (e) {\n\t\t\t\tlet r = e.views.find((e) => e.name === t.view);\n\t\t\t\tif (r) return r;\n\t\t\t\tthrow console.error(`QuestionView ${t.view} not found in course ${t.course}\n\n descriptor: ${JSON.stringify(t)}\n\n course: ${n.name}\n question: ${e.name}\n views: ${e.views.map((e) => e.name).join(\", \")}\n `), Error(`view ${t.view} does not exist.`);\n\t\t\t} else throw console.error(`Question ${t.questionType} not found in course ${t.course}\n\n descriptor: ${JSON.stringify(t)}\n\n course: ${n.name}\n questions: ${n.questions.map((e) => e.name).join(\", \")}\n `), Error(`question ${t.questionType} does not exist.`);\n\t\t} else throw console.error(`Course ${t.course} not found.\n\n descriptor: ${JSON.stringify(t)}`), Error(`course ${t.course} does not exist.`);\n\t}\n\ttoString() {\n\t\tlet e = \"\";\n\t\treturn this.courses.forEach((t) => {\n\t\t\te += `Course: ${t.name}\\n`, t.questions.forEach((t) => {\n\t\t\t\te += ` Question: ${t.name}\\n`, t.views.forEach((t) => {\n\t\t\t\t\te += ` View: ${t.name}\\n`;\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tallDataShapesRaw() {\n\t\tlet e = [];\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tt.questions.forEach((t) => {\n\t\t\t\tt.dataShapes.forEach((t) => {\n\t\t\t\t\te.includes(t) || e.push(t);\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tallDataShapes() {\n\t\tlet e = [];\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tt.questions.forEach((n) => {\n\t\t\t\tn.dataShapes.forEach((r) => {\n\t\t\t\t\te.findIndex((e) => e.course === t.name && e.dataShape === r.name) === -1 && e.push({\n\t\t\t\t\t\tcourse: t.name,\n\t\t\t\t\t\tdataShape: r.name,\n\t\t\t\t\t\tdisplayable: n\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tgetDataShape(e) {\n\t\tlet t;\n\t\tif (this.getCourseWare(e.course).questions.forEach((n) => {\n\t\t\tn.dataShapes.forEach((n) => {\n\t\t\t\tn.name === e.dataShape && (t = n);\n\t\t\t});\n\t\t}), t) return t;\n\t\tthrow Error(`DataShape ${B.getDataShapeString(e)} not found`);\n\t}\n}, $ = new AllCourseWare([]);\n//#endregion\nexport { AllCourseWare, r as BlanksCard, t as BlanksCardDataShapes, a as CourseWare, L as Displayable, fe as MidiConfig, R as Question, p as SkMidi, d as SyllableSeqVis, u as SyllableSequence, $ as allCourseWare, o as chess, U as defaultCourse, l as eventsToSyllableSequence, s as french, n as gradeSpellingAttempt, loadAllSubcourses, loadSubcourse, c as math, m as piano, h as pitch, g as sightSing, f as transposeSyllableSeq, _ as typing, pe as useQuestionView, te as useViewable, v as wordWork };\n\n//# sourceMappingURL=index.mjs.map","<template>\n <div>\n <p>HELLO WORLD</p>\n <p>{{ questionText }}</p>\n <input v-model=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Your answer\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'SimpleTextQuestionView',\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'SimpleTextQuestionView');\nconst questionUtils = useQuestionView<SimpleTextQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new SimpleTextQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new SimpleTextQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n questionUtils.submitAnswer({ response: userAnswer.value });\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","<template>\n <div>\n <p>HELLO WORLD</p>\n <p>{{ questionText }}</p>\n <input v-model=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Your answer\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'SimpleTextQuestionView',\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'SimpleTextQuestionView');\nconst questionUtils = useQuestionView<SimpleTextQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new SimpleTextQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new SimpleTextQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n questionUtils.submitAnswer({ response: userAnswer.value });\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport SimpleTextQuestionView from './SimpleTextQuestionView.vue';\n\nexport class SimpleTextQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'SimpleTextQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'correctAnswer', type: FieldType.STRING },\n ],\n },\n ];\n\n public static views = [markRaw(SimpleTextQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private questionText: string;\n private correctAnswer: string;\n\n constructor(data: ViewData[]) {\n super(data);\n this.questionText = data[0].questionText as string;\n this.correctAnswer = data[0].correctAnswer as string;\n }\n\n public dataShapes(): DataShape[] {\n return SimpleTextQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return SimpleTextQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n return (answer.response as string).toLowerCase() === this.correctAnswer.toLowerCase();\n }\n}\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <div v-for=\"(option, index) in options\" :key=\"index\">\n <input type=\"radio\" :id=\"`option-${index}`\" :value=\"option\" v-model=\"selectedAnswer\" />\n <label :for=\"`option-${index}`\">{{ option }}</label>\n </div>\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'MultipleChoiceQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst selectedAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'MultipleChoiceQuestionView');\nconst questionUtils = useQuestionView<MultipleChoiceQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new MultipleChoiceQuestion(props.data);\n\n// Extract question text and options from the question instance\nconst questionText = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any)._questionText || '';\n});\n\nconst options = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any).options || [];\n});\n\nconst submitAnswer = () => {\n if (selectedAnswer.value) {\n questionUtils.submitAnswer({ response: selectedAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <div v-for=\"(option, index) in options\" :key=\"index\">\n <input type=\"radio\" :id=\"`option-${index}`\" :value=\"option\" v-model=\"selectedAnswer\" />\n <label :for=\"`option-${index}`\">{{ option }}</label>\n </div>\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'MultipleChoiceQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst selectedAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'MultipleChoiceQuestionView');\nconst questionUtils = useQuestionView<MultipleChoiceQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new MultipleChoiceQuestion(props.data);\n\n// Extract question text and options from the question instance\nconst questionText = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any)._questionText || '';\n});\n\nconst options = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any).options || [];\n});\n\nconst submitAnswer = () => {\n if (selectedAnswer.value) {\n questionUtils.submitAnswer({ response: selectedAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport MultipleChoiceQuestionView from './MultipleChoiceQuestionView.vue';\n\nexport class MultipleChoiceQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'MultipleChoiceQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'options', type: FieldType.STRING }, // Comma-separated string of options\n { name: 'correctAnswer', type: FieldType.STRING },\n ],\n },\n ];\n\n public static views = [markRaw(MultipleChoiceQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private _questionText: string;\n // @ts-expect-error TS6133: Used in Vue template\n private options: string[];\n private correctAnswer: string;\n\n constructor(data: ViewData[]) {\n super(data);\n this._questionText = data[0].questionText as string;\n this.options = (data[0].options as string).split(',').map((s) => s.trim());\n this.correctAnswer = data[0].correctAnswer as string;\n }\n\n public dataShapes(): DataShape[] {\n return MultipleChoiceQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return MultipleChoiceQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n return (answer.response as string) === this.correctAnswer;\n }\n}\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <input type=\"number\" v-model.number=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Enter a number\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'NumberRangeQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref<number | null>(null);\n\nconst viewableUtils = useViewable(props, emit, 'NumberRangeQuestionView');\nconst questionUtils = useQuestionView<NumberRangeQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new NumberRangeQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new NumberRangeQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n if (userAnswer.value !== null) {\n questionUtils.submitAnswer({ response: userAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <input type=\"number\" v-model.number=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Enter a number\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'NumberRangeQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref<number | null>(null);\n\nconst viewableUtils = useViewable(props, emit, 'NumberRangeQuestionView');\nconst questionUtils = useQuestionView<NumberRangeQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new NumberRangeQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new NumberRangeQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n if (userAnswer.value !== null) {\n questionUtils.submitAnswer({ response: userAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport NumberRangeQuestionView from './NumberRangeQuestionView.vue';\n\nexport class NumberRangeQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'NumberRangeQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'min', type: FieldType.NUMBER },\n { name: 'max', type: FieldType.NUMBER },\n ],\n },\n ];\n\n public static views = [markRaw(NumberRangeQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private questionText: string;\n private min: number;\n private max: number;\n\n constructor(data: ViewData[]) {\n super(data);\n this.questionText = data[0].questionText as string;\n this.min = data[0].min as number;\n this.max = data[0].max as number;\n }\n\n public dataShapes(): DataShape[] {\n return NumberRangeQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return NumberRangeQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n const userAnswer = answer.response as number;\n return userAnswer >= this.min && userAnswer <= this.max;\n }\n}\n","import { CourseWare } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\n\nexport const exampleCourse = new CourseWare('ExampleCourse', [\n SimpleTextQuestion,\n MultipleChoiceQuestion,\n NumberRangeQuestion,\n]);\n","// Library entry point for custom questions in standalone-ui\n// This file exports question types and components for consumption by studio-ui\n\nimport { CourseWare } from '@vue-skuilder/courseware';\nimport { DataShape } from '@vue-skuilder/common';\nimport { ViewComponent } from '@vue-skuilder/common-ui';\n\n// [ ] todo: simplify exports here. Only the final 'bundle' is strictly required.\n\n// Export individual question classes\nexport { SimpleTextQuestion } from './SimpleTextQuestion';\nexport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nexport { NumberRangeQuestion } from './NumberRangeQuestion';\n\n// Export example course\nexport { exampleCourse } from './exampleCourse';\n\n// Import components for re-export\nimport SimpleTextQuestionView from './SimpleTextQuestionView.vue';\nimport MultipleChoiceQuestionView from './MultipleChoiceQuestionView.vue';\nimport NumberRangeQuestionView from './NumberRangeQuestionView.vue';\n\n// Export Vue components\nexport { SimpleTextQuestionView, MultipleChoiceQuestionView, NumberRangeQuestionView };\n\n// Import classes for analysis\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { exampleCourse } from './exampleCourse';\n\n/**\n * Main function to export all custom questions for studio-ui consumption\n * This provides a standardized interface for the CLI to discover and integrate\n * custom question types into studio-ui builds\n */\nexport function allCustomQuestions() {\n // Collect all question classes\n const questionClasses = [SimpleTextQuestion, MultipleChoiceQuestion, NumberRangeQuestion];\n\n // Collect all data shapes from questions\n const dataShapes: DataShape[] = [];\n questionClasses.forEach((questionClass) => {\n if (questionClass.dataShapes) {\n questionClass.dataShapes.forEach((shape) => {\n // Avoid duplicates\n if (!dataShapes.find((existing) => existing.name === shape.name)) {\n dataShapes.push(shape);\n }\n });\n }\n });\n\n // Collect all view components from questions\n const views: Array<{ name: string; component: ViewComponent }> = [];\n questionClasses.forEach((questionClass) => {\n if (questionClass.views) {\n questionClass.views.forEach((view) => {\n const viewName = (view as any).name || (view as any).__name;\n if (viewName) {\n if (!views.find((existing) => existing.name === viewName)) {\n views.push({ name: viewName, component: view });\n }\n } else {\n console.warn('[allCustomQuestions] View component missing name property:', view);\n }\n });\n }\n });\n\n const courses = [exampleCourse];\n\n // Return structured data for studio-ui integration\n return {\n // CourseWare instances with question instances\n courses,\n\n // Question class constructors for registration\n questionClasses,\n\n // Available data shapes for studio-ui CreateCardView\n dataShapes,\n\n // Vue components for runtime registration\n views,\n\n // Metadata for debugging and analysis\n meta: {\n questionCount: questionClasses.length,\n dataShapeCount: dataShapes.length,\n viewCount: views.length,\n courseCount: courses.length,\n packageName: '@vue-skuilder/standalone-ui',\n sourceDirectory: 'src/questions',\n },\n };\n}\n\n/**\n * Type definitions for the custom questions export structure\n * This provides TypeScript support for CLI and studio-ui integration\n */\nexport interface CustomQuestionsExport {\n courses: CourseWare[];\n questionClasses: Array<\n typeof SimpleTextQuestion | typeof MultipleChoiceQuestion | typeof NumberRangeQuestion\n >;\n dataShapes: DataShape[];\n views: Array<{ name: string; component: ViewComponent }>;\n meta: {\n questionCount: number;\n dataShapeCount: number;\n viewCount: number;\n courseCount: number;\n packageName: string;\n sourceDirectory: string;\n };\n}\n\n// Default export for convenience\nexport default allCustomQuestions;\n"],"mappings":"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;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD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MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,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"}
1
+ {"version":3,"file":"questions.mjs","names":["e","t","d","u","C","x","O","D","I","h","r","p","y","j","M","N","P","_sfc_render","_","m","o","i","a","n","g","s","v","b","l","c","F","S","w","E","T","t","ne","re","ie","ae","n","oe","se","ce","le","U","W","pe","G","K","q","J","Y","X","Z","k","T","p","v","o","g","_","l","a","y","b","u","f","S","d","m","ee","E","A","w","h","_sfc_render$1","x","c","s","O","C","D","$","i","a","r","D","j","b","k","A","C","w","y","M","S","P","e","V","F","H","z","p","ee","O","B"],"sources":["../../courseware/dist/shapes-BQUVJdp5.js","../../courseware/dist/CourseWare-BTFRjgBR.js","../../courseware/dist/piano-DF1g6yaX.js","../../courseware/dist/index.mjs","../src/questions/SimpleTextQuestionView.vue","../src/questions/SimpleTextQuestionView.vue","../src/questions/SimpleTextQuestion.ts","../src/questions/MultipleChoiceQuestionView.vue","../src/questions/MultipleChoiceQuestionView.vue","../src/questions/MultipleChoiceQuestion.ts","../src/questions/NumberRangeQuestionView.vue","../src/questions/NumberRangeQuestionView.vue","../src/questions/NumberRangeQuestion.ts","../src/questions/exampleCourse.ts","../src/questions/index.ts"],"sourcesContent":["import { DataShapeName as e, FieldType as t } from \"@vue-skuilder/common\";\n//#region \\0rolldown/runtime.js\nvar n = Object.create, r = Object.defineProperty, __name = (e, t) => r(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), i = Object.getOwnPropertyDescriptor, a = Object.getOwnPropertyNames, o = Object.getPrototypeOf, s = Object.prototype.hasOwnProperty, __commonJSMin = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), __copyProps = (e, t, n, o) => {\n\tif (t && typeof t == \"object\" || typeof t == \"function\") for (var c = a(t), l = 0, u = c.length, d; l < u; l++) d = c[l], !s.call(e, d) && d !== n && r(e, d, {\n\t\tget: ((e) => t[e]).bind(null, d),\n\t\tenumerable: !(o = i(t, d)) || o.enumerable\n\t});\n\treturn e;\n}, __toESM = (e, t, i) => (i = e == null ? {} : n(o(e)), __copyProps(t || !e || !e.__esModule ? r(i, \"default\", {\n\tvalue: e,\n\tenumerable: !0\n}) : i, e)), c = /* @__PURE__ */ ((e) => typeof require < \"u\" ? require : typeof Proxy < \"u\" ? new Proxy(e, { get: (e, t) => (typeof require < \"u\" ? require : e)[t] }) : e)(function(e) {\n\tif (typeof require < \"u\") return require.apply(this, arguments);\n\tthrow Error(\"Calling `require` for \\\"\" + e + \"\\\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.\");\n}), l = [{\n\tname: e.Blanks,\n\tfields: [{\n\t\tname: \"Input\",\n\t\ttype: t.MARKDOWN\n\t}, {\n\t\tname: \"Uploads\",\n\t\ttype: t.MEDIA_UPLOADS\n\t}]\n}];\n//#endregion\nexport { __toESM as a, c as i, __commonJSMin as n, __name as r, l as t };\n\n//# sourceMappingURL=shapes-BQUVJdp5.js.map","import { r as e, t } from \"./shapes-BQUVJdp5.js\";\nimport { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineAsyncComponent as u, defineComponent as d, onMounted as f, onUnmounted as p, openBlock as m, ref as h, renderList as g, resolveComponent as _, toDisplayString as v, watch as y, withCtx as b } from \"vue\";\nimport { AudioAutoPlayer as x, Question as S, RadioMultipleChoice as C, containsComponent as w, isInlineComponent as T, splitByDelimiters as E, useQuestionView as D, useViewable as O } from \"@vue-skuilder/common-ui\";\nimport \"@vue-skuilder/common\";\nimport './assets/CourseWare.css';//#region src/math/utility/index.ts\nfunction randomInt(e, t) {\n\treturn Math.floor(Math.random() * (t - e + 1)) + e;\n}\nfunction shuffle(e) {\n\tlet t = [...e];\n\tfor (let e = t.length - 1; e > 0; e--) {\n\t\tlet n = Math.floor(Math.random() * (e + 1));\n\t\t[t[e], t[n]] = [t[n], t[e]];\n\t}\n\treturn t;\n}\nfunction cos(e) {\n\treturn Math.cos(toRadians(e));\n}\nfunction sin(e) {\n\treturn Math.sin(toRadians(e));\n}\nfunction toRadians(e) {\n\treturn e / 360 * 2 * Math.PI;\n}\n//#endregion\n//#region src/default/questions/fillIn/blanksCorrection.ts\nfunction gradeSpellingAttempt(e, t) {\n\tlet n = Array(t.length).fill(\"_\"), r = e.split(\"\");\n\tconsole.log(e, t), console.log(\"Attempt char codes:\", e.split(\"\").map((e) => e.charCodeAt(0))), console.log(\"Answer char codes:\", t.split(\"\").map((e) => e.charCodeAt(0)));\n\tfor (let e = 0; e < t.length; e++) e < r.length && r[e] === t[e] && (n[e] = r[e], r[e] = \"\");\n\tfor (let e = t.length - 1; e >= 0; e--) if (n[e] === \"_\") {\n\t\tlet i = r.findIndex((n) => n === t[e]);\n\t\ti !== -1 && (n[e] = t[e], r[i] = \"\");\n\t}\n\treturn console.log(n.join(\" \")), n.join(\" \");\n}\n//#endregion\n//#region src/default/questions/fillIn/fillIn.vue?vue&type=script&lang.ts\nvar k = d({\n\tname: \"FillInView\",\n\tcomponents: {\n\t\tMarkdownRenderer: u(() => import(\"@vue-skuilder/common-ui\").then((e) => e.MarkdownRenderer)),\n\t\tRadioMultipleChoice: C,\n\t\tAudioAutoPlayer: x\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 = O(e, t, \"FillInView\"), i = D(n);\n\t\ti.question.value = new I(e.data);\n\t\tlet a = h(), o = r(() => {\n\t\t\tif (!i.question.value) throw n.logger.error(\"Question not initialized\"), Error(\"Question not initialized\");\n\t\t\treturn i.question.value;\n\t\t});\n\t\tf(() => {\n\t\t\ttry {\n\t\t\t\ti.question.value || (i.question.value = new I(e.data)), i.question.value.options && (a.value = shuffle(getTruncatedList()));\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize question:\", e);\n\t\t\t}\n\t\t}), p(() => {\n\t\t\ti.question.value = void 0;\n\t\t});\n\t\tlet s = r(() => a.value ?? []), c = r(() => !!e.data[0][\"image-1\"]), l = r(() => {\n\t\t\tif (!c.value) return [\"\"];\n\t\t\tlet t = [], n = 1;\n\t\t\tfor (; e.data[0][`image-${n}`];) t.push(URL.createObjectURL(e.data[0][`image-${n}`])), n++;\n\t\t\treturn t;\n\t\t}), u = r(() => !!e.data[0][\"audio-1\"]), d = r(() => o.value?.mdText || \"\"), m = r(() => {\n\t\t\tif (!u.value) return [\"\"];\n\t\t\tlet t = [], n = 1;\n\t\t\tfor (; e.data[0][`audio-${n}`];) t.push(URL.createObjectURL(e.data[0][`audio-${n}`])), n++;\n\t\t\treturn t;\n\t\t}), g = r(() => {\n\t\t\tif (o.value.answers) return o.value.answers[Math.floor(o.value.answers.length * Math.random())];\n\t\t\tthrow Error(\"No answers provided\");\n\t\t}), _ = r(() => {\n\t\t\tlet e = g.value;\n\t\t\tif (console.log(`Prior answers: ${i.priorAnswers.value}`), e && i.priorAnswers.value[0]?.[0] && i.priorAnswers.value[0][1] === \"UserInputString\") return gradeSpellingAttempt(i.priorAnswers.value[0][0], e);\n\t\t\tif (console.log(\"found no UserInputString\"), g.value) {\n\t\t\t\tlet e = \"\";\n\t\t\t\tfor (let t = 0; t < g.value.length; t++) e += \"_ \";\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t}), v = r(() => !!(o.value.answers && o.value.answers.length > 0)), getTruncatedList = () => {\n\t\t\tif (!o.value?.options) return;\n\t\t\tif (o.value.options.length <= 6) return o.value.options;\n\t\t\tlet t = [];\n\t\t\tt.push(o.value.answers[Math.floor(Math.random() * o.value.answers.length)]);\n\t\t\tlet n = shuffle(o.value.options.filter((e) => o.value.answers?.indexOf(e) === -1));\n\t\t\treturn e.modifyDifficulty && (console.log(`Modifying difficulty: ${e.modifyDifficulty}`), n = e.modifyDifficulty < -200 ? n.slice(0, 1) : e.modifyDifficulty < -150 ? n.slice(0, 2) : e.modifyDifficulty < -100 ? n.slice(0, 3) : e.modifyDifficulty < -50 ? n.slice(0, 4) : n.slice(0, 5)), t.push(...n.slice(0, 5)), t;\n\t\t}, handleNext = () => {\n\t\t\ti.submitAnswer(\"\");\n\t\t};\n\t\treturn y(() => e.data, (e) => {\n\t\t\ttry {\n\t\t\t\ti.question.value = new I(e), i.question.value?.options && (a.value = shuffle(getTruncatedList()));\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize/update question:\", e);\n\t\t\t}\n\t\t}, { deep: !0 }), {\n\t\t\t...n,\n\t\t\t...i,\n\t\t\tquestion: o,\n\t\t\ttruncatedOptions: s,\n\t\t\thasImage: c,\n\t\t\timageURLs: l,\n\t\t\thasAudio: u,\n\t\t\taudioURL: m,\n\t\t\tobscuredAnswer: _,\n\t\t\tsomeAnswer: g,\n\t\t\tisQuestion: v,\n\t\t\thandleNext,\n\t\t\tmarkdownText: d\n\t\t};\n\t}\n}), A = /* @__PURE__ */ e((e, t) => {\n\tlet n = e.__vccOpts || e;\n\tfor (let [e, r] of t) n[e] = r;\n\treturn n;\n}, \"default\"), j = { \"data-viewable\": \"FillInView\" }, M = [\"src\"], N = {\n\tkey: 4,\n\tclass: \"text-center text-h6\"\n}, P = {\n\tkey: 5,\n\tclass: \"text-center text-h6\"\n};\nfunction _sfc_render(e, t, r, u, d, f) {\n\tlet p = _(\"audio-auto-player\"), h = _(\"markdown-renderer\"), y = _(\"radio-multiple-choice\"), x = _(\"v-spacer\"), S = _(\"v-btn\"), C = _(\"v-card-actions\");\n\treturn m(), o(\"div\", j, [\n\t\te.hasAudio ? (m(), i(p, {\n\t\t\tkey: 0,\n\t\t\tsrc: e.audioURL\n\t\t}, null, 8, [\"src\"])) : a(\"\", !0),\n\t\te.hasImage ? (m(!0), o(n, { key: 1 }, g(e.imageURLs, (e, t) => (m(), o(\"img\", {\n\t\t\tkey: t,\n\t\t\tsrc: e\n\t\t}, null, 8, M))), 128)) : a(\"\", !0),\n\t\te.markdownText ? (m(), i(h, {\n\t\t\tkey: 2,\n\t\t\tmd: e.markdownText\n\t\t}, null, 8, [\"md\"])) : a(\"\", !0),\n\t\te.question?.options ? (m(), i(y, {\n\t\t\tkey: 3,\n\t\t\t\"choice-list\": e.truncatedOptions\n\t\t}, null, 8, [\"choice-list\"])) : e.priorAttempts == 1 ? (m(), o(\"div\", N, [s(\"span\", null, v(e.obscuredAnswer), 1)])) : e.priorAttempts == 2 ? (m(), o(\"div\", P, [s(\"span\", null, v(e.someAnswer), 1)])) : a(\"\", !0),\n\t\te.isQuestion ? a(\"\", !0) : (m(), i(C, { key: 6 }, {\n\t\t\tdefault: b(() => [l(x), l(S, {\n\t\t\t\tcolor: \"primary\",\n\t\t\t\tautofocus: \"autofocus\",\n\t\t\t\tonClick: e.handleNext\n\t\t\t}, {\n\t\t\t\tdefault: b(() => t[0] ||= [c(\" Next \")]),\n\t\t\t\t_: 1\n\t\t\t}, 8, [\"onClick\"])]),\n\t\t\t_: 1\n\t\t}))\n\t]);\n}\nvar F = /* @__PURE__ */ A(k, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f91502f8\"]]);\n//#endregion\n//#region src/default/questions/fillIn/index.ts\nfunction splitText(e, t, n) {\n\tlet r = e.split(t), i = r[0], a = r[1].split(n);\n\treturn {\n\t\tleft: i,\n\t\tmiddle: a[0],\n\t\tright: a[1]\n\t};\n}\nvar I = class BlanksCard extends S {\n\tstatic dataShapes = t;\n\tstatic views = [F];\n\tmdText = \"\";\n\tanswers = null;\n\toptions = null;\n\tsplitTextToken(e) {\n\t\tif (w(e)) {\n\t\t\tlet t = splitText(e.text, \"{{\", \"}}\"), n = splitText(e.raw, \"{{\", \"}}\"), r = [];\n\t\t\treturn n.left.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: n.left,\n\t\t\t\ttext: t.left\n\t\t\t}), n.middle.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: \"{{\" + n.middle + \"}}\",\n\t\t\t\ttext: \"{{\" + t.middle + \"}}\"\n\t\t\t}), n.right.length > 0 && r.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\traw: n.right,\n\t\t\t\ttext: t.right\n\t\t\t}), r;\n\t\t} else return [e];\n\t}\n\toptionsFromString(e) {\n\t\tif (!e.startsWith(\"{{\") || !e.endsWith(\"}}\")) throw Error(`string ${e} is not fill-in text - must look like \"{{someText}}\"`);\n\t\te = e.substring(2, e.length - 2);\n\t\tlet t = e.split(\"||\");\n\t\tif (t.length > 1) {\n\t\t\tlet e = t[0].split(\"|\").map((e) => e.trim()), n = t[1].split(\"|\").map((e) => e.trim()).filter((t) => !e.includes(t));\n\t\t\treturn n.push(e[randomInt(0, e.length - 1)]), {\n\t\t\t\tanswers: e,\n\t\t\t\toptions: shuffle(n)\n\t\t\t};\n\t\t} else return {\n\t\t\tanswers: [e.trim()],\n\t\t\toptions: null\n\t\t};\n\t}\n\tconstructor(e) {\n\t\tsuper(e), this.mdText = e[0].Input, this.mdText === void 0 && (this.mdText = \"\");\n\t\tlet t = E(this.mdText, \"{{\", \"}}\"), n = [];\n\t\tfor (let e = 0; e < t.length; e++) {\n\t\t\tlet r = t[e], i = r.trim();\n\t\t\tif (i.startsWith(\"{{\") && i.endsWith(\"}}\")) if (T(i.slice(2, -2).trim())) n.push(r);\n\t\t\telse try {\n\t\t\t\tlet e = this.optionsFromString(r);\n\t\t\t\tthis.answers = e.answers, this.options = e.options, this.options?.length ? n.push(\"{{ || }}\") : n.push(\"{{ }}\");\n\t\t\t} catch {\n\t\t\t\tn.push(r);\n\t\t\t}\n\t\t\telse n.push(r);\n\t\t}\n\t\tthis.mdText = n.join(\"\");\n\t}\n\tisCorrect(e) {\n\t\tif (console.log(`answers:${this.answers}\\nuser answer: ${JSON.stringify(e)}`), typeof e == \"string\") {\n\t\t\tif (this.answers) return this.answers.includes(e);\n\t\t\tif (e === \"\") return !0;\n\t\t\tthrow Error(\"Question has no configured answers!\");\n\t\t} else if (Array.isArray(e)) {\n\t\t\tif (this.answers) return e.every((e) => this.answers.includes(e));\n\t\t\tthrow Error(\"Question has no configured answers!\");\n\t\t} else return this.isCorrectRadio(e);\n\t}\n\tdataShapes() {\n\t\treturn BlanksCard.dataShapes;\n\t}\n\tviews() {\n\t\treturn BlanksCard.views;\n\t}\n\tisCorrectRadio(e) {\n\t\treturn this.answers ? this.answers.includes(e.choiceList[e.selection]) : !1;\n\t}\n}, CourseWare = class {\n\tget questions() {\n\t\treturn this.questionList;\n\t}\n\tget allViews() {\n\t\tlet e = [];\n\t\treturn this.questionList.forEach((t) => {\n\t\t\tt.views.forEach((t) => {\n\t\t\t\te.push(t);\n\t\t\t});\n\t\t}), e;\n\t}\n\tget allViewsMap() {\n\t\tlet e = {};\n\t\treturn this.allViews.forEach((t) => {\n\t\t\tif (t.name) e[t.name] = t;\n\t\t\telse throw Error(\"View has no name\");\n\t\t}), e;\n\t}\n\tname;\n\tquestionList;\n\tconstructor(e, t) {\n\t\tthis.name = e, this.questionList = t, this.questionList = this.questionList.concat(this.getBaseQTypes());\n\t}\n\tgetQuestion(e) {\n\t\tlet t = e.replace(/^_/, \"\").replace(/\\d+$/, \"\"), n = this.questionList.map((e) => e.name), r = this.questionList.find((n) => {\n\t\t\tlet r = n.name.replace(/^_/, \"\").replace(/\\d+$/, \"\");\n\t\t\treturn n.name === e || r === t;\n\t\t});\n\t\tif (r) return r.name !== e && console.debug(`[CourseWare.getQuestion] stripped-exact: \"${e}\" → \"${r.name}\" (registered: ${n.join(\", \")})`), r;\n\t\tlet i = this.questionList.filter((n) => {\n\t\t\tlet r = n.name.replace(/^_/, \"\").replace(/\\d+$/, \"\");\n\t\t\treturn n.name.includes(t) || e.includes(r);\n\t\t});\n\t\tif (i.length === 0) {\n\t\t\tconsole.warn(`[CourseWare.getQuestion] NO MATCH: \"${e}\" (base: \"${t}\") not found in [${n.join(\", \")}]`);\n\t\t\treturn;\n\t\t}\n\t\ti.sort((t, n) => Math.abs(t.name.length - e.length) - Math.abs(n.name.length - e.length));\n\t\tlet a = i[0];\n\t\treturn console.warn(`[CourseWare.getQuestion] FUZZY: \"${e}\" → \"${a.name}\" (candidates: ${i.map((e) => e.name).join(\", \")}; registered: ${n.join(\", \")})`), a;\n\t}\n\tgetBaseQTypes() {\n\t\treturn [I];\n\t}\n};\n//#endregion\nexport { cos as a, sin as c, gradeSpellingAttempt as i, I as n, randomInt as o, A as r, shuffle as s, CourseWare as t };\n\n//# sourceMappingURL=CourseWare-BTFRjgBR.js.map","import { a as e, n as t, r as n } from \"./shapes-BQUVJdp5.js\";\nimport { r, t as i } from \"./CourseWare-BTFRjgBR.js\";\nimport { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeStyle as m, onBeforeUnmount as h, onMounted as g, openBlock as _, ref as v, renderList as y, resolveComponent as b, toDisplayString as x, withCtx as S } from \"vue\";\nimport { Question as C, SkldrMouseTrap as w, alertUser as T, useQuestionView as E, useViewable as ee } from \"@vue-skuilder/common-ui\";\nimport { DataShapeName as D, FieldType as O, Status as k } from \"@vue-skuilder/common\";\nimport A from \"moment\";\nimport './assets/piano.css';//#region ../../node_modules/webmidi/webmidi.min.js\nvar te = /* @__PURE__ */ t(((e, t) => {\n\t(function(e) {\n\t\tfunction WebMidi() {\n\t\t\tif (WebMidi.prototype._singleton) throw Error(\"WebMidi is a singleton, it cannot be instantiated directly.\");\n\t\t\t(WebMidi.prototype._singleton = this)._inputs = [], this._outputs = [], this._userHandlers = {}, this._stateChangeQueue = [], this._processingStateChange = !1, this._midiInterfaceEvents = [\"connected\", \"disconnected\"], this._nrpnBuffer = [\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[],\n\t\t\t\t[]\n\t\t\t], this._nrpnEventsEnabled = !0, this._nrpnTypes = [\n\t\t\t\t\"entry\",\n\t\t\t\t\"increment\",\n\t\t\t\t\"decrement\"\n\t\t\t], this._notes = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], this._semitones = {\n\t\t\t\tC: 0,\n\t\t\t\tD: 2,\n\t\t\t\tE: 4,\n\t\t\t\tF: 5,\n\t\t\t\tG: 7,\n\t\t\t\tA: 9,\n\t\t\t\tB: 11\n\t\t\t}, Object.defineProperties(this, {\n\t\t\t\tMIDI_SYSTEM_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tsysex: 240,\n\t\t\t\t\t\ttimecode: 241,\n\t\t\t\t\t\tsongposition: 242,\n\t\t\t\t\t\tsongselect: 243,\n\t\t\t\t\t\ttuningrequest: 246,\n\t\t\t\t\t\tsysexend: 247,\n\t\t\t\t\t\tclock: 248,\n\t\t\t\t\t\tstart: 250,\n\t\t\t\t\t\tcontinue: 251,\n\t\t\t\t\t\tstop: 252,\n\t\t\t\t\t\tactivesensing: 254,\n\t\t\t\t\t\treset: 255,\n\t\t\t\t\t\tmidimessage: 0,\n\t\t\t\t\t\tunknownsystemmessage: -1\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CHANNEL_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tnoteoff: 8,\n\t\t\t\t\t\tnoteon: 9,\n\t\t\t\t\t\tkeyaftertouch: 10,\n\t\t\t\t\t\tcontrolchange: 11,\n\t\t\t\t\t\tchannelmode: 11,\n\t\t\t\t\t\tnrpn: 11,\n\t\t\t\t\t\tprogramchange: 12,\n\t\t\t\t\t\tchannelaftertouch: 13,\n\t\t\t\t\t\tpitchbend: 14\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_REGISTERED_PARAMETER: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tpitchbendrange: [0, 0],\n\t\t\t\t\t\tchannelfinetuning: [0, 1],\n\t\t\t\t\t\tchannelcoarsetuning: [0, 2],\n\t\t\t\t\t\ttuningprogram: [0, 3],\n\t\t\t\t\t\ttuningbank: [0, 4],\n\t\t\t\t\t\tmodulationrange: [0, 5],\n\t\t\t\t\t\tazimuthangle: [61, 0],\n\t\t\t\t\t\televationangle: [61, 1],\n\t\t\t\t\t\tgain: [61, 2],\n\t\t\t\t\t\tdistanceratio: [61, 3],\n\t\t\t\t\t\tmaximumdistance: [61, 4],\n\t\t\t\t\t\tmaximumdistancegain: [61, 5],\n\t\t\t\t\t\treferencedistanceratio: [61, 6],\n\t\t\t\t\t\tpanspreadangle: [61, 7],\n\t\t\t\t\t\trollangle: [61, 8]\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CONTROL_CHANGE_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tbankselectcoarse: 0,\n\t\t\t\t\t\tmodulationwheelcoarse: 1,\n\t\t\t\t\t\tbreathcontrollercoarse: 2,\n\t\t\t\t\t\tfootcontrollercoarse: 4,\n\t\t\t\t\t\tportamentotimecoarse: 5,\n\t\t\t\t\t\tdataentrycoarse: 6,\n\t\t\t\t\t\tvolumecoarse: 7,\n\t\t\t\t\t\tbalancecoarse: 8,\n\t\t\t\t\t\tpancoarse: 10,\n\t\t\t\t\t\texpressioncoarse: 11,\n\t\t\t\t\t\teffectcontrol1coarse: 12,\n\t\t\t\t\t\teffectcontrol2coarse: 13,\n\t\t\t\t\t\tgeneralpurposeslider1: 16,\n\t\t\t\t\t\tgeneralpurposeslider2: 17,\n\t\t\t\t\t\tgeneralpurposeslider3: 18,\n\t\t\t\t\t\tgeneralpurposeslider4: 19,\n\t\t\t\t\t\tbankselectfine: 32,\n\t\t\t\t\t\tmodulationwheelfine: 33,\n\t\t\t\t\t\tbreathcontrollerfine: 34,\n\t\t\t\t\t\tfootcontrollerfine: 36,\n\t\t\t\t\t\tportamentotimefine: 37,\n\t\t\t\t\t\tdataentryfine: 38,\n\t\t\t\t\t\tvolumefine: 39,\n\t\t\t\t\t\tbalancefine: 40,\n\t\t\t\t\t\tpanfine: 42,\n\t\t\t\t\t\texpressionfine: 43,\n\t\t\t\t\t\teffectcontrol1fine: 44,\n\t\t\t\t\t\teffectcontrol2fine: 45,\n\t\t\t\t\t\tholdpedal: 64,\n\t\t\t\t\t\tportamento: 65,\n\t\t\t\t\t\tsustenutopedal: 66,\n\t\t\t\t\t\tsoftpedal: 67,\n\t\t\t\t\t\tlegatopedal: 68,\n\t\t\t\t\t\thold2pedal: 69,\n\t\t\t\t\t\tsoundvariation: 70,\n\t\t\t\t\t\tresonance: 71,\n\t\t\t\t\t\tsoundreleasetime: 72,\n\t\t\t\t\t\tsoundattacktime: 73,\n\t\t\t\t\t\tbrightness: 74,\n\t\t\t\t\t\tsoundcontrol6: 75,\n\t\t\t\t\t\tsoundcontrol7: 76,\n\t\t\t\t\t\tsoundcontrol8: 77,\n\t\t\t\t\t\tsoundcontrol9: 78,\n\t\t\t\t\t\tsoundcontrol10: 79,\n\t\t\t\t\t\tgeneralpurposebutton1: 80,\n\t\t\t\t\t\tgeneralpurposebutton2: 81,\n\t\t\t\t\t\tgeneralpurposebutton3: 82,\n\t\t\t\t\t\tgeneralpurposebutton4: 83,\n\t\t\t\t\t\treverblevel: 91,\n\t\t\t\t\t\ttremololevel: 92,\n\t\t\t\t\t\tchoruslevel: 93,\n\t\t\t\t\t\tcelestelevel: 94,\n\t\t\t\t\t\tphaserlevel: 95,\n\t\t\t\t\t\tdatabuttonincrement: 96,\n\t\t\t\t\t\tdatabuttondecrement: 97,\n\t\t\t\t\t\tnonregisteredparametercoarse: 98,\n\t\t\t\t\t\tnonregisteredparameterfine: 99,\n\t\t\t\t\t\tregisteredparametercoarse: 100,\n\t\t\t\t\t\tregisteredparameterfine: 101\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_NRPN_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tentrymsb: 6,\n\t\t\t\t\t\tentrylsb: 38,\n\t\t\t\t\t\tincrement: 96,\n\t\t\t\t\t\tdecrement: 97,\n\t\t\t\t\t\tparamlsb: 98,\n\t\t\t\t\t\tparammsb: 99,\n\t\t\t\t\t\tnullactiveparameter: 127\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\tMIDI_CHANNEL_MODE_MESSAGES: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tallsoundoff: 120,\n\t\t\t\t\t\tresetallcontrollers: 121,\n\t\t\t\t\t\tlocalcontrol: 122,\n\t\t\t\t\t\tallnotesoff: 123,\n\t\t\t\t\t\tomnimodeoff: 124,\n\t\t\t\t\t\tomnimodeon: 125,\n\t\t\t\t\t\tmonomodeon: 126,\n\t\t\t\t\t\tpolymodeon: 127\n\t\t\t\t\t},\n\t\t\t\t\twritable: !1,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t},\n\t\t\t\toctaveOffset: {\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\twritable: !0,\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tconfigurable: !1\n\t\t\t\t}\n\t\t\t}), Object.defineProperties(this, {\n\t\t\t\tsupported: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn \"requestMIDIAccess\" in navigator;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this.interface !== void 0;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tinputs: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._inputs;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\toutputs: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._outputs;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tsysexEnabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn !(!this.interface || !this.interface.sysexEnabled);\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\tnrpnEventsEnabled: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn !!this._nrpnEventsEnabled;\n\t\t\t\t\t}.bind(this),\n\t\t\t\t\tset: function(e) {\n\t\t\t\t\t\treturn this._nrpnEventsEnabled = e, this._nrpnEventsEnabled;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnrpnTypes: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn this._nrpnTypes;\n\t\t\t\t\t}.bind(this)\n\t\t\t\t},\n\t\t\t\ttime: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn performance.now();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar n = new WebMidi();\n\t\tfunction Input(e) {\n\t\t\tvar t = this;\n\t\t\tthis._userHandlers = {\n\t\t\t\tchannel: {},\n\t\t\t\tsystem: {}\n\t\t\t}, this._midiInput = e, Object.defineProperties(this, {\n\t\t\t\tconnection: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.connection;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.id;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmanufacturer: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.manufacturer;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.name;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.state;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiInput.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}), this._initializeUserHandlers(), this._midiInput.onmidimessage = this._onMidiMessage.bind(this);\n\t\t}\n\t\tfunction Output(e) {\n\t\t\tvar t = this;\n\t\t\tthis._midiOutput = e, Object.defineProperties(this, {\n\t\t\t\tconnection: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.connection;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.id;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmanufacturer: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.manufacturer;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.name;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstate: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.state;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\tenumerable: !0,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn t._midiOutput.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tWebMidi.prototype.enable = function(e, t) {\n\t\t\tthis.enabled || (this.supported ? navigator.requestMIDIAccess({ sysex: t }).then(function(t) {\n\t\t\t\tvar n, r = [], i = [];\n\t\t\t\tthis.interface = t, this._resetInterfaceUserHandlers(), this.interface.onstatechange = function(e) {\n\t\t\t\t\tr.push(e);\n\t\t\t\t};\n\t\t\t\tfor (var a = t.inputs.values(), o = a.next(); o && !o.done; o = a.next()) i.push(o.value.open());\n\t\t\t\tfor (var s = t.outputs.values(), c = s.next(); c && !c.done; c = s.next()) i.push(c.value.open());\n\t\t\t\tfunction onPortsOpen() {\n\t\t\t\t\tclearTimeout(n), this._updateInputsAndOutputs(), this.interface.onstatechange = this._onInterfaceStateChange.bind(this), typeof e == \"function\" && e.call(this), r.forEach(function(e) {\n\t\t\t\t\t\tthis._onInterfaceStateChange(e);\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}\n\t\t\t\tn = setTimeout(onPortsOpen.bind(this), 200), Promise && Promise.all(i).catch(function(e) {}).then(onPortsOpen.bind(this));\n\t\t\t}.bind(this), function(t) {\n\t\t\t\ttypeof e == \"function\" && e.call(this, t);\n\t\t\t}.bind(this)) : typeof e == \"function\" && e(/* @__PURE__ */ Error(\"The Web MIDI API is not supported by your browser.\")));\n\t\t}, WebMidi.prototype.disable = function() {\n\t\t\tif (!this.supported) throw Error(\"The Web MIDI API is not supported by your browser.\");\n\t\t\tthis.enabled && (this.removeListener(), this.inputs.forEach(function(e) {\n\t\t\t\te.removeListener();\n\t\t\t})), this.interface && (this.interface.onstatechange = void 0), this.interface = void 0, this._inputs = [], this._outputs = [], this._nrpnEventsEnabled = !0, this._resetInterfaceUserHandlers();\n\t\t}, WebMidi.prototype.addListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before adding event listeners.\");\n\t\t\tif (typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (!(0 <= this._midiInterfaceEvents.indexOf(e))) throw TypeError(\"The specified event type is not supported.\");\n\t\t\treturn this._userHandlers[e].push(t), this;\n\t\t}, WebMidi.prototype.hasListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before checking event listeners.\");\n\t\t\tif (typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (!(0 <= this._midiInterfaceEvents.indexOf(e))) throw TypeError(\"The specified event type is not supported.\");\n\t\t\tfor (var n = 0; n < this._userHandlers[e].length; n++) if (this._userHandlers[e][n] === t) return !0;\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.removeListener = function(e, t) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi must be enabled before removing event listeners.\");\n\t\t\tif (t !== void 0 && typeof t != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (0 <= this._midiInterfaceEvents.indexOf(e)) if (t) for (var n = 0; n < this._userHandlers[e].length; n++) this._userHandlers[e][n] === t && this._userHandlers[e].splice(n, 1);\n\t\t\telse this._userHandlers[e] = [];\n\t\t\telse {\n\t\t\t\tif (e !== void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tthis._resetInterfaceUserHandlers();\n\t\t\t}\n\t\t\treturn this;\n\t\t}, WebMidi.prototype.toMIDIChannels = function(e) {\n\t\t\tvar t;\n\t\t\tif (e === \"all\" || e === void 0) t = [\"all\"];\n\t\t\telse {\n\t\t\t\tif (e === \"none\") return t = [];\n\t\t\t\tt = Array.isArray(e) ? e : [e];\n\t\t\t}\n\t\t\treturn -1 < t.indexOf(\"all\") && (t = [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t\t3,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t6,\n\t\t\t\t7,\n\t\t\t\t8,\n\t\t\t\t9,\n\t\t\t\t10,\n\t\t\t\t11,\n\t\t\t\t12,\n\t\t\t\t13,\n\t\t\t\t14,\n\t\t\t\t15,\n\t\t\t\t16\n\t\t\t]), t.map(function(e) {\n\t\t\t\treturn parseInt(e);\n\t\t\t}).filter(function(e) {\n\t\t\t\treturn 1 <= e && e <= 16;\n\t\t\t});\n\t\t}, WebMidi.prototype.getInputById = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\te = String(e);\n\t\t\tfor (var t = 0; t < this.inputs.length; t++) if (this.inputs[t].id === e) return this.inputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getOutputById = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\te = String(e);\n\t\t\tfor (var t = 0; t < this.outputs.length; t++) if (this.outputs[t].id === e) return this.outputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getInputByName = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\tfor (var t = 0; t < this.inputs.length; t++) if (~this.inputs[t].name.indexOf(e)) return this.inputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.getOctave = function(e) {\n\t\t\tif (e != null && 0 <= e && e <= 127) return Math.floor(Math.floor(e) / 12 - 1) + Math.floor(n.octaveOffset);\n\t\t}, WebMidi.prototype.getOutputByName = function(e) {\n\t\t\tif (!this.enabled) throw Error(\"WebMidi is not enabled.\");\n\t\t\tfor (var t = 0; t < this.outputs.length; t++) if (~this.outputs[t].name.indexOf(e)) return this.outputs[t];\n\t\t\treturn !1;\n\t\t}, WebMidi.prototype.guessNoteNumber = function(e) {\n\t\t\tvar t = !1;\n\t\t\tif (e && e.toFixed && 0 <= e && e <= 127 ? t = Math.round(e) : 0 <= parseInt(e) && parseInt(e) <= 127 ? t = parseInt(e) : (typeof e == \"string\" || e instanceof String) && (t = this.noteNameToNumber(e)), !1 === t) throw Error(\"Invalid input value (\" + e + \").\");\n\t\t\treturn t;\n\t\t}, WebMidi.prototype.noteNameToNumber = function(e) {\n\t\t\ttypeof e != \"string\" && (e = \"\");\n\t\t\tvar t = e.match(/([CDEFGAB])(#{0,2}|b{0,2})(-?\\d+)/i);\n\t\t\tif (!t) throw RangeError(\"Invalid note name.\");\n\t\t\tvar r = n._semitones[t[1].toUpperCase()], i = 12 * (parseInt(t[3]) + 1 - Math.floor(n.octaveOffset)) + r;\n\t\t\tif (-1 < t[2].toLowerCase().indexOf(\"b\") ? i -= t[2].length : -1 < t[2].toLowerCase().indexOf(\"#\") && (i += t[2].length), i < 0 || 127 < i) throw RangeError(\"Invalid note name or note outside valid range.\");\n\t\t\treturn i;\n\t\t}, WebMidi.prototype._updateInputsAndOutputs = function() {\n\t\t\tthis._updateInputs(), this._updateOutputs();\n\t\t}, WebMidi.prototype._updateInputs = function() {\n\t\t\tfor (var e = 0; e < this._inputs.length; e++) {\n\t\t\t\tfor (var t = !0, n = this.interface.inputs.values(), r = n.next(); r && !r.done; r = n.next()) if (this._inputs[e]._midiInput === r.value) {\n\t\t\t\t\tt = !1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt && this._inputs.splice(e, 1);\n\t\t\t}\n\t\t\tthis.interface && this.interface.inputs.forEach(function(e) {\n\t\t\t\tfor (var t = !0, n = 0; n < this._inputs.length; n++) this._inputs[n]._midiInput === e && (t = !1);\n\t\t\t\tt && this._inputs.push(new Input(e));\n\t\t\t}.bind(this));\n\t\t}, WebMidi.prototype._updateOutputs = function() {\n\t\t\tfor (var e = 0; e < this._outputs.length; e++) {\n\t\t\t\tfor (var t = !0, n = this.interface.outputs.values(), r = n.next(); r && !r.done; r = n.next()) if (this._outputs[e]._midiOutput === r.value) {\n\t\t\t\t\tt = !1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt && this._outputs.splice(e, 1);\n\t\t\t}\n\t\t\tthis.interface && this.interface.outputs.forEach(function(e) {\n\t\t\t\tfor (var t = !0, n = 0; n < this._outputs.length; n++) this._outputs[n]._midiOutput === e && (t = !1);\n\t\t\t\tt && this._outputs.push(new Output(e));\n\t\t\t}.bind(this));\n\t\t}, WebMidi.prototype._onInterfaceStateChange = function(e) {\n\t\t\tthis._updateInputsAndOutputs();\n\t\t\tvar t = {\n\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\ttype: e.port.state\n\t\t\t};\n\t\t\tthis.interface && e.port.state === \"connected\" ? e.port.type === \"output\" ? t.port = this.getOutputById(e.port.id) : e.port.type === \"input\" && (t.port = this.getInputById(e.port.id)) : t.port = {\n\t\t\t\tconnection: \"closed\",\n\t\t\t\tid: e.port.id,\n\t\t\t\tmanufacturer: e.port.manufacturer,\n\t\t\t\tname: e.port.name,\n\t\t\t\tstate: e.port.state,\n\t\t\t\ttype: e.port.type\n\t\t\t}, this._userHandlers[e.port.state].forEach(function(e) {\n\t\t\t\te(t);\n\t\t\t});\n\t\t}, WebMidi.prototype._resetInterfaceUserHandlers = function() {\n\t\t\tfor (var e = 0; e < this._midiInterfaceEvents.length; e++) this._userHandlers[this._midiInterfaceEvents[e]] = [];\n\t\t}, Input.prototype.on = Input.prototype.addListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (t === void 0 && (t = \"all\"), Array.isArray(t) || (t = [t]), t.forEach(function(e) {\n\t\t\t\tif (e !== \"all\" && !(1 <= e && e <= 16)) throw RangeError(\"The 'channel' parameter is invalid.\");\n\t\t\t}), typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (n.MIDI_SYSTEM_MESSAGES[e] !== void 0) this._userHandlers.system[e] || (this._userHandlers.system[e] = []), this._userHandlers.system[e].push(r);\n\t\t\telse {\n\t\t\t\tif (n.MIDI_CHANNEL_MESSAGES[e] === void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var a = 1; a <= 16; a++) t.push(a);\n\t\t\t\t}\n\t\t\t\tthis._userHandlers.channel[e] || (this._userHandlers.channel[e] = []), t.forEach(function(t) {\n\t\t\t\t\ti._userHandlers.channel[e][t] || (i._userHandlers.channel[e][t] = []), i._userHandlers.channel[e][t].push(r);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Input.prototype.hasListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (t === void 0 && (t = \"all\"), t.constructor !== Array && (t = [t]), n.MIDI_SYSTEM_MESSAGES[e] !== void 0) {\n\t\t\t\tfor (var a = 0; a < this._userHandlers.system[e].length; a++) if (this._userHandlers.system[e][a] === r) return !0;\n\t\t\t} else if (n.MIDI_CHANNEL_MESSAGES[e] !== void 0) {\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var o = 1; o <= 16; o++) t.push(o);\n\t\t\t\t}\n\t\t\t\treturn !!this._userHandlers.channel[e] && t.every(function(t) {\n\t\t\t\t\tvar n = i._userHandlers.channel[e][t];\n\t\t\t\t\treturn n && -1 < n.indexOf(r);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn !1;\n\t\t}, Input.prototype.removeListener = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r !== void 0 && typeof r != \"function\") throw TypeError(\"The 'listener' parameter must be a function.\");\n\t\t\tif (t === void 0 && (t = \"all\"), t.constructor !== Array && (t = [t]), n.MIDI_SYSTEM_MESSAGES[e] !== void 0) if (r === void 0) this._userHandlers.system[e] = [];\n\t\t\telse for (var a = 0; a < this._userHandlers.system[e].length; a++) this._userHandlers.system[e][a] === r && this._userHandlers.system[e].splice(a, 1);\n\t\t\telse if (n.MIDI_CHANNEL_MESSAGES[e] !== void 0) {\n\t\t\t\tif (-1 < t.indexOf(\"all\")) {\n\t\t\t\t\tt = [];\n\t\t\t\t\tfor (var o = 1; o <= 16; o++) t.push(o);\n\t\t\t\t}\n\t\t\t\tif (!this._userHandlers.channel[e]) return this;\n\t\t\t\tt.forEach(function(t) {\n\t\t\t\t\tvar n = i._userHandlers.channel[e][t];\n\t\t\t\t\tif (n) if (r === void 0) i._userHandlers.channel[e][t] = [];\n\t\t\t\t\telse for (var a = 0; a < n.length; a++) n[a] === r && n.splice(a, 1);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (e !== void 0) throw TypeError(\"The specified event type is not supported.\");\n\t\t\t\tthis._initializeUserHandlers();\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Input.prototype._initializeUserHandlers = function() {\n\t\t\tfor (var e in n.MIDI_CHANNEL_MESSAGES) Object.prototype.hasOwnProperty.call(n.MIDI_CHANNEL_MESSAGES, e) && (this._userHandlers.channel[e] = {});\n\t\t\tfor (var t in n.MIDI_SYSTEM_MESSAGES) Object.prototype.hasOwnProperty.call(n.MIDI_SYSTEM_MESSAGES, t) && (this._userHandlers.system[t] = []);\n\t\t}, Input.prototype._onMidiMessage = function(e) {\n\t\t\tif (0 < this._userHandlers.system.midimessage.length) {\n\t\t\t\tvar t = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\tdata: e.data,\n\t\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\t\ttype: \"midimessage\"\n\t\t\t\t};\n\t\t\t\tthis._userHandlers.system.midimessage.forEach(function(e) {\n\t\t\t\t\te(t);\n\t\t\t\t});\n\t\t\t}\n\t\t\te.data[0] < 240 ? (this._parseChannelEvent(e), this._parseNrpnEvent(e)) : e.data[0] <= 255 && this._parseSystemEvent(e);\n\t\t}, Input.prototype._parseNrpnEvent = function(e) {\n\t\t\tvar t, r, i = e.data[0] >> 4, a = 15 & e.data[0], o = 1 + a;\n\t\t\tif (1 < e.data.length && (t = e.data[1], r = 2 < e.data.length ? e.data[2] : void 0), n.nrpnEventsEnabled && i === n.MIDI_CHANNEL_MESSAGES.controlchange && (t >= n.MIDI_NRPN_MESSAGES.increment && t <= n.MIDI_NRPN_MESSAGES.parammsb || t === n.MIDI_NRPN_MESSAGES.entrymsb || t === n.MIDI_NRPN_MESSAGES.entrylsb)) {\n\t\t\t\tvar s = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttype: \"controlchange\",\n\t\t\t\t\tdata: e.data,\n\t\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\t\tchannel: o,\n\t\t\t\t\tcontroller: {\n\t\t\t\t\t\tnumber: t,\n\t\t\t\t\t\tname: this.getCcNameByNumber(t)\n\t\t\t\t\t},\n\t\t\t\t\tvalue: r\n\t\t\t\t};\n\t\t\t\tif (s.controller.number === n.MIDI_NRPN_MESSAGES.parammsb && s.value != n.MIDI_NRPN_MESSAGES.nullactiveparameter) n._nrpnBuffer[a] = [], n._nrpnBuffer[a][0] = s;\n\t\t\t\telse if (n._nrpnBuffer[a].length === 1 && s.controller.number === n.MIDI_NRPN_MESSAGES.paramlsb) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (n._nrpnBuffer[a].length !== 2 || s.controller.number !== n.MIDI_NRPN_MESSAGES.increment && s.controller.number !== n.MIDI_NRPN_MESSAGES.decrement && s.controller.number !== n.MIDI_NRPN_MESSAGES.entrymsb) if (n._nrpnBuffer[a].length === 3 && n._nrpnBuffer[a][2].number === n.MIDI_NRPN_MESSAGES.entrymsb && s.controller.number === n.MIDI_NRPN_MESSAGES.entrylsb) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (3 <= n._nrpnBuffer[a].length && n._nrpnBuffer[a].length <= 4 && s.controller.number === n.MIDI_NRPN_MESSAGES.parammsb && s.value === n.MIDI_NRPN_MESSAGES.nullactiveparameter) n._nrpnBuffer[a].push(s);\n\t\t\t\telse if (4 <= n._nrpnBuffer[a].length && n._nrpnBuffer[a].length <= 5 && s.controller.number === n.MIDI_NRPN_MESSAGES.paramlsb && s.value === n.MIDI_NRPN_MESSAGES.nullactiveparameter) {\n\t\t\t\t\tn._nrpnBuffer[a].push(s);\n\t\t\t\t\tvar c = [];\n\t\t\t\t\tn._nrpnBuffer[a].forEach(function(e) {\n\t\t\t\t\t\tc.push(e.data);\n\t\t\t\t\t});\n\t\t\t\t\tvar l = n._nrpnBuffer[a][0].value << 7 | n._nrpnBuffer[a][1].value, u = n._nrpnBuffer[a][2].value;\n\t\t\t\t\tn._nrpnBuffer[a].length === 6 && (u = n._nrpnBuffer[a][2].value << 7 | n._nrpnBuffer[a][3].value);\n\t\t\t\t\tvar d = \"\";\n\t\t\t\t\tswitch (n._nrpnBuffer[a][2].controller.number) {\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.entrymsb:\n\t\t\t\t\t\t\td = n._nrpnTypes[0];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.increment:\n\t\t\t\t\t\t\td = n._nrpnTypes[1];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase n.MIDI_NRPN_MESSAGES.decrement:\n\t\t\t\t\t\t\td = n._nrpnTypes[2];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: throw Error(\"The NPRN type was unidentifiable.\");\n\t\t\t\t\t}\n\t\t\t\t\tvar f = {\n\t\t\t\t\t\ttimestamp: s.timestamp,\n\t\t\t\t\t\tchannel: s.channel,\n\t\t\t\t\t\ttype: \"nrpn\",\n\t\t\t\t\t\tdata: c,\n\t\t\t\t\t\tcontroller: {\n\t\t\t\t\t\t\tnumber: l,\n\t\t\t\t\t\t\ttype: d,\n\t\t\t\t\t\t\tname: \"Non-Registered Parameter \" + l\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalue: u\n\t\t\t\t\t};\n\t\t\t\t\tn._nrpnBuffer[a] = [], this._userHandlers.channel[f.type] && this._userHandlers.channel[f.type][f.channel] && this._userHandlers.channel[f.type][f.channel].forEach(function(e) {\n\t\t\t\t\t\te(f);\n\t\t\t\t\t});\n\t\t\t\t} else n._nrpnBuffer[a] = [];\n\t\t\t\telse n._nrpnBuffer[a].push(s);\n\t\t\t}\n\t\t}, Input.prototype._parseChannelEvent = function(e) {\n\t\t\tvar t, r, i = e.data[0] >> 4, a = 1 + (15 & e.data[0]);\n\t\t\t1 < e.data.length && (t = e.data[1], r = 2 < e.data.length ? e.data[2] : void 0);\n\t\t\tvar o = {\n\t\t\t\ttarget: this,\n\t\t\t\tdata: e.data,\n\t\t\t\ttimestamp: e.timeStamp,\n\t\t\t\tchannel: a\n\t\t\t};\n\t\t\ti === n.MIDI_CHANNEL_MESSAGES.noteoff || i === n.MIDI_CHANNEL_MESSAGES.noteon && r === 0 ? (o.type = \"noteoff\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.velocity = r / 127, o.rawVelocity = r) : i === n.MIDI_CHANNEL_MESSAGES.noteon ? (o.type = \"noteon\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.velocity = r / 127, o.rawVelocity = r) : i === n.MIDI_CHANNEL_MESSAGES.keyaftertouch ? (o.type = \"keyaftertouch\", o.note = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: n._notes[t % 12],\n\t\t\t\toctave: n.getOctave(t)\n\t\t\t}, o.value = r / 127) : i === n.MIDI_CHANNEL_MESSAGES.controlchange && 0 <= t && t <= 119 ? (o.type = \"controlchange\", o.controller = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: this.getCcNameByNumber(t)\n\t\t\t}, o.value = r) : i === n.MIDI_CHANNEL_MESSAGES.channelmode && 120 <= t && t <= 127 ? (o.type = \"channelmode\", o.controller = {\n\t\t\t\tnumber: t,\n\t\t\t\tname: this.getChannelModeByNumber(t)\n\t\t\t}, o.value = r) : i === n.MIDI_CHANNEL_MESSAGES.programchange ? (o.type = \"programchange\", o.value = t) : i === n.MIDI_CHANNEL_MESSAGES.channelaftertouch ? (o.type = \"channelaftertouch\", o.value = t / 127) : i === n.MIDI_CHANNEL_MESSAGES.pitchbend ? (o.type = \"pitchbend\", o.value = ((r << 7) + t - 8192) / 8192) : o.type = \"unknownchannelmessage\", this._userHandlers.channel[o.type] && this._userHandlers.channel[o.type][a] && this._userHandlers.channel[o.type][a].forEach(function(e) {\n\t\t\t\te(o);\n\t\t\t});\n\t\t}, Input.prototype.getCcNameByNumber = function(e) {\n\t\t\tif (!(0 <= (e = Math.floor(e)) && e <= 119)) throw RangeError(\"The control change number must be between 0 and 119.\");\n\t\t\tfor (var t in n.MIDI_CONTROL_CHANGE_MESSAGES) if (Object.prototype.hasOwnProperty.call(n.MIDI_CONTROL_CHANGE_MESSAGES, t) && e === n.MIDI_CONTROL_CHANGE_MESSAGES[t]) return t;\n\t\t}, Input.prototype.getChannelModeByNumber = function(e) {\n\t\t\tif (!(120 <= (e = Math.floor(e)) && status <= 127)) throw RangeError(\"The control change number must be between 120 and 127.\");\n\t\t\tfor (var t in n.MIDI_CHANNEL_MODE_MESSAGES) if (Object.prototype.hasOwnProperty.call(n.MIDI_CHANNEL_MODE_MESSAGES, t) && e === n.MIDI_CHANNEL_MODE_MESSAGES[t]) return t;\n\t\t}, Input.prototype._parseSystemEvent = function(e) {\n\t\t\tvar t = e.data[0], r = {\n\t\t\t\ttarget: this,\n\t\t\t\tdata: e.data,\n\t\t\t\ttimestamp: e.timeStamp\n\t\t\t};\n\t\t\tt === n.MIDI_SYSTEM_MESSAGES.sysex ? r.type = \"sysex\" : t === n.MIDI_SYSTEM_MESSAGES.timecode ? r.type = \"timecode\" : t === n.MIDI_SYSTEM_MESSAGES.songposition ? r.type = \"songposition\" : t === n.MIDI_SYSTEM_MESSAGES.songselect ? (r.type = \"songselect\", r.song = e.data[1]) : t === n.MIDI_SYSTEM_MESSAGES.tuningrequest ? r.type = \"tuningrequest\" : t === n.MIDI_SYSTEM_MESSAGES.clock ? r.type = \"clock\" : t === n.MIDI_SYSTEM_MESSAGES.start ? r.type = \"start\" : t === n.MIDI_SYSTEM_MESSAGES.continue ? r.type = \"continue\" : t === n.MIDI_SYSTEM_MESSAGES.stop ? r.type = \"stop\" : t === n.MIDI_SYSTEM_MESSAGES.activesensing ? r.type = \"activesensing\" : t === n.MIDI_SYSTEM_MESSAGES.reset ? r.type = \"reset\" : r.type = \"unknownsystemmessage\", this._userHandlers.system[r.type] && this._userHandlers.system[r.type].forEach(function(e) {\n\t\t\t\te(r);\n\t\t\t});\n\t\t}, Output.prototype.send = function(e, t, n) {\n\t\t\tif (!(128 <= e && e <= 255)) throw RangeError(\"The status byte must be an integer between 128 (0x80) and 255 (0xFF).\");\n\t\t\tt === void 0 && (t = []), Array.isArray(t) || (t = [t]);\n\t\t\tvar r = [];\n\t\t\treturn t.forEach(function(e) {\n\t\t\t\tvar t = Math.floor(e);\n\t\t\t\tif (!(0 <= t && t <= 255)) throw RangeError(\"Data bytes must be integers between 0 (0x00) and 255 (0xFF).\");\n\t\t\t\tr.push(t);\n\t\t\t}), this._midiOutput.send([e].concat(r), parseFloat(n) || 0), this;\n\t\t}, Output.prototype.sendSysex = function(e, t, r) {\n\t\t\tif (!n.sysexEnabled) throw Error(\"Sysex message support must first be activated.\");\n\t\t\treturn r ||= {}, e = [].concat(e), t.forEach(function(e) {\n\t\t\t\tif (e < 0 || 127 < e) throw RangeError(\"The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).\");\n\t\t\t}), t = e.concat(t, n.MIDI_SYSTEM_MESSAGES.sysexend), this.send(n.MIDI_SYSTEM_MESSAGES.sysex, t, this._parseTimeParameter(r.time)), this;\n\t\t}, Output.prototype.sendTimecodeQuarterFrame = function(e, t) {\n\t\t\treturn t ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.timecode, e, this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendSongPosition = function(e, t) {\n\t\t\tt ||= {};\n\t\t\tvar r = (e = Math.floor(e) || 0) >> 7 & 127, i = 127 & e;\n\t\t\treturn this.send(n.MIDI_SYSTEM_MESSAGES.songposition, [r, i], this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendSongSelect = function(e, t) {\n\t\t\tif (t ||= {}, !(0 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"The song number must be between 0 and 127.\");\n\t\t\treturn this.send(n.MIDI_SYSTEM_MESSAGES.songselect, [e], this._parseTimeParameter(t.time)), this;\n\t\t}, Output.prototype.sendTuningRequest = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.tuningrequest, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendClock = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.clock, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendStart = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.start, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendContinue = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.continue, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendStop = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.stop, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendActiveSensing = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.activesensing, [], this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.sendReset = function(e) {\n\t\t\treturn e ||= {}, this.send(n.MIDI_SYSTEM_MESSAGES.reset, void 0, this._parseTimeParameter(e.time)), this;\n\t\t}, Output.prototype.stopNote = function(e, t, r) {\n\t\t\tif (e === \"all\") return this.sendChannelMode(\"allnotesoff\", 0, t, r);\n\t\t\tvar i = 64;\n\t\t\treturn (r ||= {}).rawVelocity ? !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 127 && (i = r.velocity) : !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 1 && (i = 127 * r.velocity), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteoff << 4) + (t - 1), [e, Math.round(i)], this._parseTimeParameter(r.time));\n\t\t\t\t}.bind(this));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.playNote = function(e, t, r) {\n\t\t\tvar i, a = 64;\n\t\t\tif ((r ||= {}).rawVelocity ? !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 127 && (a = r.velocity) : !isNaN(r.velocity) && 0 <= r.velocity && r.velocity <= 1 && (a = 127 * r.velocity), i = this._parseTimeParameter(r.time), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteon << 4) + (t - 1), [e, Math.round(a)], i);\n\t\t\t\t}.bind(this));\n\t\t\t}.bind(this)), !isNaN(r.duration)) {\n\t\t\t\tr.duration <= 0 && (r.duration = 0);\n\t\t\t\tvar o = 64;\n\t\t\t\tr.rawVelocity ? !isNaN(r.release) && 0 <= r.release && r.release <= 127 && (o = r.release) : !isNaN(r.release) && 0 <= r.release && r.release <= 1 && (o = 127 * r.release), this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.noteoff << 4) + (t - 1), [e, Math.round(o)], (i || n.time) + r.duration);\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t\treturn this;\n\t\t}, Output.prototype.sendKeyAftertouch = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, t < 1 || 16 < t) throw RangeError(\"The channel must be between 1 and 16.\");\n\t\t\t(isNaN(r) || r < 0 || 1 < r) && (r = .5);\n\t\t\tvar o = Math.round(127 * r);\n\t\t\treturn this._convertNoteToArray(e).forEach(function(e) {\n\t\t\t\tn.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\t\ta.send((n.MIDI_CHANNEL_MESSAGES.keyaftertouch << 4) + (t - 1), [e, o], a._parseTimeParameter(i.time));\n\t\t\t\t});\n\t\t\t}), this;\n\t\t}, Output.prototype.sendControlChange = function(e, t, r, i) {\n\t\t\tif (i ||= {}, typeof e == \"string\") {\n\t\t\t\tif ((e = n.MIDI_CONTROL_CHANGE_MESSAGES[e]) === void 0) throw TypeError(\"Invalid controller name.\");\n\t\t\t} else if (!(0 <= (e = Math.floor(e)) && e <= 119)) throw RangeError(\"Controller numbers must be between 0 and 119.\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"Controller value must be between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function(r) {\n\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.controlchange << 4) + (r - 1), [e, t], this._parseTimeParameter(i.time));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype._selectRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (e[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The control65 value must be between 0 and 127\");\n\t\t\tif (e[1] = Math.floor(e[1]), !(0 <= e[1] && e[1] <= 127)) throw RangeError(\"The control64 value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(101, e[0], t, { time: r }), i.sendControlChange(100, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._selectNonRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (e[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The control63 value must be between 0 and 127\");\n\t\t\tif (e[1] = Math.floor(e[1]), !(0 <= e[1] && e[1] <= 127)) throw RangeError(\"The control62 value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(99, e[0], t, { time: r }), i.sendControlChange(98, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._setCurrentRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif ((e = [].concat(e))[0] = Math.floor(e[0]), !(0 <= e[0] && e[0] <= 127)) throw RangeError(\"The msb value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(6, e[0], t, { time: r });\n\t\t\t}), e[1] = Math.floor(e[1]), 0 <= e[1] && e[1] <= 127 && n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.sendControlChange(38, e[1], t, { time: r });\n\t\t\t}), this;\n\t\t}, Output.prototype._deselectRegisteredParameter = function(e, t) {\n\t\t\tvar r = this;\n\t\t\treturn n.toMIDIChannels(e).forEach(function() {\n\t\t\t\tr.sendControlChange(101, 127, e, { time: t }), r.sendControlChange(100, 127, e, { time: t });\n\t\t\t}), this;\n\t\t}, Output.prototype.setRegisteredParameter = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw Error(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta._selectRegisteredParameter(e, r, i.time), a._setCurrentRegisteredParameter(t, r, i.time), a._deselectRegisteredParameter(r, i.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.setNonRegisteredParameter = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= e[0] && e[0] <= 127 && 0 <= e[1] && e[1] <= 127)) throw Error(\"Position 0 and 1 of the 2-position parameter array must both be between 0 and 127.\");\n\t\t\treturn t = [].concat(t), n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta._selectNonRegisteredParameter(e, r, i.time), a._setCurrentRegisteredParameter(t, r, i.time), a._deselectRegisteredParameter(r, i.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.incrementRegisteredParameter = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw Error(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti._selectRegisteredParameter(e, t, r.time), i.sendControlChange(96, 0, t, { time: r.time }), i._deselectRegisteredParameter(t, r.time);\n\t\t\t}), this;\n\t\t}, Output.prototype.decrementRegisteredParameter = function(e, t, r) {\n\t\t\tif (r ||= {}, !Array.isArray(e)) {\n\t\t\t\tif (!n.MIDI_REGISTERED_PARAMETER[e]) throw TypeError(\"The specified parameter is not available.\");\n\t\t\t\te = n.MIDI_REGISTERED_PARAMETER[e];\n\t\t\t}\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\tthis._selectRegisteredParameter(e, t, r.time), this.sendControlChange(97, 0, t, { time: r.time }), this._deselectRegisteredParameter(t, r.time);\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.setPitchBendRange = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The semitones value must be between 0 and 127\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"The cents value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta.setRegisteredParameter(\"pitchbendrange\", [e, t], r, { time: i.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setModulationRange = function(e, t, r, i) {\n\t\t\tvar a = this;\n\t\t\tif (i ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The semitones value must be between 0 and 127\");\n\t\t\tif (!(0 <= (t = Math.floor(t) || 0) && t <= 127)) throw RangeError(\"The cents value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function() {\n\t\t\t\ta.setRegisteredParameter(\"modulationrange\", [e, t], r, { time: i.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setMasterTuning = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, (e = parseFloat(e) || 0) <= -65 || 64 <= e) throw RangeError(\"The value must be a decimal number larger than -65 and smaller than 64.\");\n\t\t\tvar a = Math.floor(e) + 64, o = e - Math.floor(e), s = (o = Math.round((o + 1) / 2 * 16383)) >> 7 & 127, c = 127 & o;\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"channelcoarsetuning\", a, t, { time: r.time }), i.setRegisteredParameter(\"channelfinetuning\", [s, c], t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setTuningProgram = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !(0 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"The program value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"tuningprogram\", e, t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.setTuningBank = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, !(0 <= (e = Math.floor(e) || 0) && e <= 127)) throw RangeError(\"The bank value must be between 0 and 127\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function() {\n\t\t\t\ti.setRegisteredParameter(\"tuningbank\", e, t, { time: r.time });\n\t\t\t}), this;\n\t\t}, Output.prototype.sendChannelMode = function(e, t, r, i) {\n\t\t\tif (i ||= {}, typeof e == \"string\") {\n\t\t\t\tif (!(e = n.MIDI_CHANNEL_MODE_MESSAGES[e])) throw TypeError(\"Invalid channel mode message name.\");\n\t\t\t} else if (!(120 <= (e = Math.floor(e)) && e <= 127)) throw RangeError(\"Channel mode numerical identifiers must be between 120 and 127.\");\n\t\t\tif ((t = Math.floor(t) || 0) < 0 || 127 < t) throw RangeError(\"Value must be an integer between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(r).forEach(function(r) {\n\t\t\t\tthis.send((n.MIDI_CHANNEL_MESSAGES.channelmode << 4) + (r - 1), [e, t], this._parseTimeParameter(i.time));\n\t\t\t}.bind(this)), this;\n\t\t}, Output.prototype.sendProgramChange = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, e = Math.floor(e), isNaN(e) || e < 0 || 127 < e) throw RangeError(\"Program numbers must be between 0 and 127.\");\n\t\t\treturn n.toMIDIChannels(t).forEach(function(t) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.programchange << 4) + (t - 1), [e], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype.sendChannelAftertouch = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tr ||= {}, e = parseFloat(e), (isNaN(e) || e < 0 || 1 < e) && (e = .5);\n\t\t\tvar a = Math.round(127 * e);\n\t\t\treturn n.toMIDIChannels(t).forEach(function(e) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.channelaftertouch << 4) + (e - 1), [a], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype.sendPitchBend = function(e, t, r) {\n\t\t\tvar i = this;\n\t\t\tif (r ||= {}, isNaN(e) || e < -1 || 1 < e) throw RangeError(\"Pitch bend value must be between -1 and 1.\");\n\t\t\tvar a = Math.round((e + 1) / 2 * 16383), o = a >> 7 & 127, s = 127 & a;\n\t\t\treturn n.toMIDIChannels(t).forEach(function(e) {\n\t\t\t\ti.send((n.MIDI_CHANNEL_MESSAGES.pitchbend << 4) + (e - 1), [s, o], i._parseTimeParameter(r.time));\n\t\t\t}), this;\n\t\t}, Output.prototype._parseTimeParameter = function(e) {\n\t\t\tvar t, r = parseFloat(e);\n\t\t\treturn typeof e == \"string\" && e.substring(0, 1) === \"+\" ? r && 0 < r && (t = n.time + r) : r > n.time && (t = r), t;\n\t\t}, Output.prototype._convertNoteToArray = function(e) {\n\t\t\tvar t = [];\n\t\t\treturn Array.isArray(e) || (e = [e]), e.forEach(function(e) {\n\t\t\t\tt.push(n.guessNoteNumber(e));\n\t\t\t}), t;\n\t\t}, typeof define == \"function\" && typeof define.amd == \"object\" ? define([], function() {\n\t\t\treturn n;\n\t\t}) : t !== void 0 && t.exports ? t.exports = n : e.WebMidi ||= n;\n\t})(e);\n})), fillStr = (e, t) => Array(Math.abs(t) + 1).join(e);\nfunction isNamed(e) {\n\treturn !!(typeof e == \"object\" && e && typeof e.name == \"string\");\n}\nfunction isPitch(e) {\n\treturn !!(typeof e == \"object\" && e && typeof e.step == \"number\" && typeof e.alt == \"number\");\n}\nvar j = [\n\t0,\n\t2,\n\t4,\n\t-1,\n\t1,\n\t3,\n\t5\n], ne = j.map((e) => Math.floor(e * 7 / 12));\nfunction encode(e) {\n\tlet { step: t, alt: n, oct: r, dir: i = 1 } = e, a = j[t] + 7 * n;\n\tif (r === void 0) return [i * a];\n\tlet o = r - ne[t] - 4 * n;\n\treturn [i * a, i * o];\n}\nvar re = [\n\t3,\n\t0,\n\t4,\n\t1,\n\t5,\n\t2,\n\t6\n];\nfunction decode(e) {\n\tlet [t, n, r] = e, i = re[unaltered(t)], a = Math.floor((t + 1) / 7);\n\treturn n === void 0 ? {\n\t\tstep: i,\n\t\talt: a,\n\t\tdir: r\n\t} : {\n\t\tstep: i,\n\t\talt: a,\n\t\toct: n + 4 * a + ne[i],\n\t\tdir: r\n\t};\n}\nfunction unaltered(e) {\n\tlet t = (e + 1) % 7;\n\treturn t < 0 ? 7 + t : t;\n}\nvar ie = {\n\tempty: !0,\n\tname: \"\",\n\tpc: \"\",\n\tacc: \"\"\n}, M = /* @__PURE__ */ new Map(), stepToLetter = (e) => \"CDEFGAB\".charAt(e), altToAcc = (e) => e < 0 ? fillStr(\"b\", -e) : fillStr(\"#\", e), accToAlt = (e) => e[0] === \"b\" ? -e.length : e.length;\nfunction note(e) {\n\tlet t = M.get(e);\n\tif (t) return t;\n\tlet n = typeof e == \"string\" ? parse$1(e) : isPitch(e) ? note(pitchName(e)) : isNamed(e) ? note(e.name) : ie;\n\treturn M.set(e, n), n;\n}\nvar ae = /^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\\d*)\\s*(.*)$/;\nfunction tokenizeNote(e) {\n\tlet t = ae.exec(e);\n\treturn [\n\t\tt[1].toUpperCase(),\n\t\tt[2].replace(/x/g, \"##\"),\n\t\tt[3],\n\t\tt[4]\n\t];\n}\nfunction coordToNote(e) {\n\treturn note(decode(e));\n}\nvar mod = (e, t) => (e % t + t) % t, N = [\n\t0,\n\t2,\n\t4,\n\t5,\n\t7,\n\t9,\n\t11\n];\nfunction parse$1(e) {\n\tlet t = tokenizeNote(e);\n\tif (t[0] === \"\" || t[3] !== \"\") return ie;\n\tlet n = t[0], r = t[1], i = t[2], a = (n.charCodeAt(0) + 3) % 7, o = accToAlt(r), s = i.length ? +i : void 0, c = encode({\n\t\tstep: a,\n\t\talt: o,\n\t\toct: s\n\t}), l = n + r + i, u = n + r, d = (N[a] + o + 120) % 12, f = s === void 0 ? mod(N[a] + o, 12) - 1188 : N[a] + o + 12 * (s + 1), p = f >= 0 && f <= 127 ? f : null;\n\treturn {\n\t\tempty: !1,\n\t\tacc: r,\n\t\talt: o,\n\t\tchroma: d,\n\t\tcoord: c,\n\t\tfreq: s === void 0 ? null : 2 ** ((f - 69) / 12) * 440,\n\t\theight: f,\n\t\tletter: n,\n\t\tmidi: p,\n\t\tname: l,\n\t\toct: s,\n\t\tpc: u,\n\t\tstep: a\n\t};\n}\nn(parse$1, \"parse\");\nfunction pitchName(e) {\n\tlet { step: t, alt: n, oct: r } = e, i = stepToLetter(t);\n\tif (!i) return \"\";\n\tlet a = i + altToAcc(n);\n\treturn r || r === 0 ? a + r : a;\n}\nvar P = {\n\tempty: !0,\n\tname: \"\",\n\tacc: \"\"\n}, oe = /* @__PURE__ */ RegExp(\"^([-+]?\\\\d+)(d{1,4}|m|M|P|A{1,4})|(AA|A|P|M|m|d|dd)([-+]?\\\\d+)$\");\nfunction tokenizeInterval(e) {\n\tlet t = oe.exec(`${e}`);\n\treturn t === null ? [\"\", \"\"] : t[1] ? [t[1], t[2]] : [t[4], t[3]];\n}\nvar F = {};\nfunction interval(e) {\n\treturn typeof e == \"string\" ? F[e] || (F[e] = parse$1$1(e)) : isPitch(e) ? interval(pitchName$1(e)) : isNamed(e) ? interval(e.name) : P;\n}\nvar I = [\n\t0,\n\t2,\n\t4,\n\t5,\n\t7,\n\t9,\n\t11\n], L = \"PMMPPMM\";\nfunction parse$1$1(e) {\n\tlet t = tokenizeInterval(e);\n\tif (t[0] === \"\") return P;\n\tlet n = +t[0], r = t[1], i = (Math.abs(n) - 1) % 7, a = L[i];\n\tif (a === \"M\" && r === \"P\") return P;\n\tlet o = a === \"M\" ? \"majorable\" : \"perfectable\", s = \"\" + n + r, c = n < 0 ? -1 : 1, l = n === 8 || n === -8 ? n : c * (i + 1), u = qToAlt(o, r), d = Math.floor((Math.abs(n) - 1) / 7);\n\treturn {\n\t\tempty: !1,\n\t\tname: s,\n\t\tnum: n,\n\t\tq: r,\n\t\tstep: i,\n\t\talt: u,\n\t\tdir: c,\n\t\ttype: o,\n\t\tsimple: l,\n\t\tsemitones: c * (I[i] + u + 12 * d),\n\t\tchroma: (c * (I[i] + u) % 12 + 12) % 12,\n\t\tcoord: encode({\n\t\t\tstep: i,\n\t\t\talt: u,\n\t\t\toct: d,\n\t\t\tdir: c\n\t\t}),\n\t\toct: d\n\t};\n}\nn(parse$1$1, \"parse$1\");\nfunction coordToInterval(e) {\n\tlet [t, n = 0] = e;\n\treturn interval(decode(t * 7 + n * 12 < 0 ? [\n\t\t-t,\n\t\t-n,\n\t\t-1\n\t] : [\n\t\tt,\n\t\tn,\n\t\t1\n\t]));\n}\nfunction qToAlt(e, t) {\n\treturn t === \"M\" && e === \"majorable\" || t === \"P\" && e === \"perfectable\" ? 0 : t === \"m\" && e === \"majorable\" ? -1 : /^A+$/.test(t) ? t.length : /^d+$/.test(t) ? -1 * (e === \"perfectable\" ? t.length : t.length + 1) : 0;\n}\nfunction pitchName$1(e) {\n\tlet { step: t, alt: n, oct: r = 0, dir: i } = e;\n\tif (!i) return \"\";\n\tlet a = t + 1 + 7 * r, o = i < 0 ? \"-\" : \"\", s = L[t] === \"M\" ? \"majorable\" : \"perfectable\";\n\treturn o + a + altToQ(s, n);\n}\nfunction altToQ(e, t) {\n\treturn t === 0 ? e === \"majorable\" ? \"M\" : \"P\" : t === -1 && e === \"majorable\" ? \"m\" : t > 0 ? fillStr(\"A\", t) : fillStr(\"d\", e === \"perfectable\" ? t : t + 1);\n}\nfunction transpose$2(e, t) {\n\tlet n = note(e), r = interval(t);\n\tif (n.empty || r.empty) return \"\";\n\tlet i = n.coord, a = r.coord;\n\treturn coordToNote(i.length === 1 ? [i[0] + a[0]] : [i[0] + a[0], i[1] + a[1]]).name;\n}\nn(transpose$2, \"transpose\");\nfunction distance$1(e, t) {\n\tlet n = note(e), r = note(t);\n\tif (n.empty || r.empty) return \"\";\n\tlet i = n.coord, a = r.coord, o = a[0] - i[0];\n\treturn coordToInterval([o, i.length === 2 && a.length === 2 ? a[1] - i[1] : -Math.floor(o * 7 / 12)]).name;\n}\nn(distance$1, \"distance\");\n//#endregion\n//#region ../../node_modules/@tonaljs/collection/dist/index.es.js\nfunction rotate(e, t) {\n\tlet n = t.length, r = (e % n + n) % n;\n\treturn t.slice(r, n).concat(t.slice(0, r));\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/pcset/dist/index.es.js\nvar R = {\n\tempty: !0,\n\tname: \"\",\n\tsetNum: 0,\n\tchroma: \"000000000000\",\n\tnormalized: \"000000000000\",\n\tintervals: []\n}, setNumToChroma = (e) => Number(e).toString(2), chromaToNumber = (e) => parseInt(e, 2), se = /^[01]{12}$/;\nfunction isChroma(e) {\n\treturn se.test(e);\n}\nvar isPcsetNum = (e) => typeof e == \"number\" && e >= 0 && e <= 4095, isPcset = (e) => e && isChroma(e.chroma), z = { [R.chroma]: R };\nfunction get$8(e) {\n\tlet t = isChroma(e) ? e : isPcsetNum(e) ? setNumToChroma(e) : Array.isArray(e) ? listToChroma(e) : isPcset(e) ? e.chroma : R.chroma;\n\treturn z[t] = z[t] || chromaToPcset(t);\n}\nn(get$8, \"get\");\nvar ce = [\n\t\"1P\",\n\t\"2m\",\n\t\"2M\",\n\t\"3m\",\n\t\"3M\",\n\t\"4P\",\n\t\"5d\",\n\t\"5P\",\n\t\"6m\",\n\t\"6M\",\n\t\"7m\",\n\t\"7M\"\n];\nfunction chromaToIntervals(e) {\n\tlet t = [];\n\tfor (let n = 0; n < 12; n++) e.charAt(n) === \"1\" && t.push(ce[n]);\n\treturn t;\n}\nfunction chromaRotations(e) {\n\tlet t = e.split(\"\");\n\treturn t.map((e, n) => rotate(n, t).join(\"\"));\n}\nfunction chromaToPcset(e) {\n\tlet t = chromaToNumber(e), n = chromaRotations(e).map(chromaToNumber).filter((e) => e >= 2048).sort()[0];\n\treturn {\n\t\tempty: !1,\n\t\tname: \"\",\n\t\tsetNum: t,\n\t\tchroma: e,\n\t\tnormalized: setNumToChroma(n),\n\t\tintervals: chromaToIntervals(e)\n\t};\n}\nfunction listToChroma(e) {\n\tif (e.length === 0) return R.chroma;\n\tlet t, n = [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tfor (let r = 0; r < e.length; r++) t = note(e[r]), t.empty && (t = interval(e[r])), t.empty || (n[t.chroma] = 1);\n\treturn n.join(\"\");\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/chord-type/dist/index.es.js\nvar le = [\n\t[\n\t\t\"1P 3M 5P\",\n\t\t\"major\",\n\t\t\"M ^ \"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M\",\n\t\t\"major seventh\",\n\t\t\"maj7 Δ ma7 M7 Maj7 ^7\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M\",\n\t\t\"major ninth\",\n\t\t\"maj9 Δ9 ^9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 13M\",\n\t\t\"major thirteenth\",\n\t\t\"maj13 Maj13 ^13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M\",\n\t\t\"sixth\",\n\t\t\"6 add6 add13 M6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 9M\",\n\t\t\"sixth/ninth\",\n\t\t\"6/9 69 M69\"\n\t],\n\t[\n\t\t\"1P 3M 6m 7M\",\n\t\t\"major seventh flat sixth\",\n\t\t\"M7b6 ^7b6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 11A\",\n\t\t\"major seventh sharp eleventh\",\n\t\t\"maj#4 Δ#4 Δ#11 M7#11 ^7#11 maj7#11\"\n\t],\n\t[\n\t\t\"1P 3m 5P\",\n\t\t\"minor\",\n\t\t\"m min -\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m\",\n\t\t\"minor seventh\",\n\t\t\"m7 min7 mi7 -7\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7M\",\n\t\t\"minor/major seventh\",\n\t\t\"m/ma7 m/maj7 mM7 mMaj7 m/M7 -Δ7 mΔ -^7\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6M\",\n\t\t\"minor sixth\",\n\t\t\"m6 -6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M\",\n\t\t\"minor ninth\",\n\t\t\"m9 -9\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7M 9M\",\n\t\t\"minor/major ninth\",\n\t\t\"mM9 mMaj9 -^9\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M 11P\",\n\t\t\"minor eleventh\",\n\t\t\"m11 -11\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 9M 13M\",\n\t\t\"minor thirteenth\",\n\t\t\"m13 -13\"\n\t],\n\t[\n\t\t\"1P 3m 5d\",\n\t\t\"diminished\",\n\t\t\"dim ° o\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7d\",\n\t\t\"diminished seventh\",\n\t\t\"dim7 °7 o7\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7m\",\n\t\t\"half-diminished\",\n\t\t\"m7b5 ø -7b5 h7 h\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m\",\n\t\t\"dominant seventh\",\n\t\t\"7 dom\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M\",\n\t\t\"dominant ninth\",\n\t\t\"9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 13M\",\n\t\t\"dominant thirteenth\",\n\t\t\"13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 11A\",\n\t\t\"lydian dominant seventh\",\n\t\t\"7#11 7#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m\",\n\t\t\"dominant flat ninth\",\n\t\t\"7b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A\",\n\t\t\"dominant sharp ninth\",\n\t\t\"7#9\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9m\",\n\t\t\"altered\",\n\t\t\"alt7\"\n\t],\n\t[\n\t\t\"1P 4P 5P\",\n\t\t\"suspended fourth\",\n\t\t\"sus4 sus\"\n\t],\n\t[\n\t\t\"1P 2M 5P\",\n\t\t\"suspended second\",\n\t\t\"sus2\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m\",\n\t\t\"suspended fourth seventh\",\n\t\t\"7sus4 7sus\"\n\t],\n\t[\n\t\t\"1P 5P 7m 9M 11P\",\n\t\t\"eleventh\",\n\t\t\"11\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9m\",\n\t\t\"suspended fourth flat ninth\",\n\t\t\"b9sus phryg 7b9sus 7b9sus4\"\n\t],\n\t[\n\t\t\"1P 5P\",\n\t\t\"fifth\",\n\t\t\"5\"\n\t],\n\t[\n\t\t\"1P 3M 5A\",\n\t\t\"augmented\",\n\t\t\"aug + +5 ^#5\"\n\t],\n\t[\n\t\t\"1P 3m 5A\",\n\t\t\"minor augmented\",\n\t\t\"m#5 -#5 m+\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7M\",\n\t\t\"augmented seventh\",\n\t\t\"maj7#5 maj7+5 +maj7 ^7#5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 11A\",\n\t\t\"major sharp eleventh (lydian)\",\n\t\t\"maj9#11 Δ9#11 ^9#11\"\n\t],\n\t[\n\t\t\"1P 2M 4P 5P\",\n\t\t\"\",\n\t\t\"sus24 sus4add9\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7M 9M\",\n\t\t\"\",\n\t\t\"maj9#5 Maj9#5\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m\",\n\t\t\"\",\n\t\t\"7#5 +7 7+ 7aug aug7\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9A\",\n\t\t\"\",\n\t\t\"7#5#9 7#9#5 7alt\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9M\",\n\t\t\"\",\n\t\t\"9#5 9+\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9M 11A\",\n\t\t\"\",\n\t\t\"9#5#11\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9m\",\n\t\t\"\",\n\t\t\"7#5b9 7b9#5\"\n\t],\n\t[\n\t\t\"1P 3M 5A 7m 9m 11A\",\n\t\t\"\",\n\t\t\"7#5b9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5A 9A\",\n\t\t\"\",\n\t\t\"+add#9\"\n\t],\n\t[\n\t\t\"1P 3M 5A 9M\",\n\t\t\"\",\n\t\t\"M#5add9 +add9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 11A\",\n\t\t\"\",\n\t\t\"M6#11 M6b5 6#11 6b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 7M 9M\",\n\t\t\"\",\n\t\t\"M7add13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6M 9M 11A\",\n\t\t\"\",\n\t\t\"69#11\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6M 9M\",\n\t\t\"\",\n\t\t\"m69 -69\"\n\t],\n\t[\n\t\t\"1P 3M 5P 6m 7m\",\n\t\t\"\",\n\t\t\"7b6\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9A 11A\",\n\t\t\"\",\n\t\t\"maj7#9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9M 11A 13M\",\n\t\t\"\",\n\t\t\"M13#11 maj13#11 M13+4 M13#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7M 9m\",\n\t\t\"\",\n\t\t\"M7b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 11A 13m\",\n\t\t\"\",\n\t\t\"7#11b13 7b5b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 13M\",\n\t\t\"\",\n\t\t\"7add6 67 7add13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A\",\n\t\t\"\",\n\t\t\"7#9#11 7b5#9 7#9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A 13M\",\n\t\t\"\",\n\t\t\"13#9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 11A 13m\",\n\t\t\"\",\n\t\t\"7#9#11b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 13M\",\n\t\t\"\",\n\t\t\"13#9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9A 13m\",\n\t\t\"\",\n\t\t\"7#9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A\",\n\t\t\"\",\n\t\t\"9#11 9+4 9#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A 13M\",\n\t\t\"\",\n\t\t\"13#11 13+4 13#4\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9M 11A 13m\",\n\t\t\"\",\n\t\t\"9#11b13 9b5b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A\",\n\t\t\"\",\n\t\t\"7b9#11 7b5b9 7b9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A 13M\",\n\t\t\"\",\n\t\t\"13b9#11\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 11A 13m\",\n\t\t\"\",\n\t\t\"7b9b13#11 7b9#11b13 7b5b9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 13M\",\n\t\t\"\",\n\t\t\"13b9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 13m\",\n\t\t\"\",\n\t\t\"7b9b13\"\n\t],\n\t[\n\t\t\"1P 3M 5P 7m 9m 9A\",\n\t\t\"\",\n\t\t\"7b9#9\"\n\t],\n\t[\n\t\t\"1P 3M 5P 9M\",\n\t\t\"\",\n\t\t\"Madd9 2 add9 add2\"\n\t],\n\t[\n\t\t\"1P 3M 5P 9m\",\n\t\t\"\",\n\t\t\"Maddb9\"\n\t],\n\t[\n\t\t\"1P 3M 5d\",\n\t\t\"\",\n\t\t\"Mb5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 6M 7m 9M\",\n\t\t\"\",\n\t\t\"13b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7M\",\n\t\t\"\",\n\t\t\"M7b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7M 9M\",\n\t\t\"\",\n\t\t\"M9b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7m\",\n\t\t\"\",\n\t\t\"7b5\"\n\t],\n\t[\n\t\t\"1P 3M 5d 7m 9M\",\n\t\t\"\",\n\t\t\"9b5\"\n\t],\n\t[\n\t\t\"1P 3M 7m\",\n\t\t\"\",\n\t\t\"7no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 13m\",\n\t\t\"\",\n\t\t\"7b13\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M\",\n\t\t\"\",\n\t\t\"9no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M 13M\",\n\t\t\"\",\n\t\t\"13no5\"\n\t],\n\t[\n\t\t\"1P 3M 7m 9M 13m\",\n\t\t\"\",\n\t\t\"9b13\"\n\t],\n\t[\n\t\t\"1P 3m 4P 5P\",\n\t\t\"\",\n\t\t\"madd4\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6m 7M\",\n\t\t\"\",\n\t\t\"mMaj7b6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 6m 7M 9M\",\n\t\t\"\",\n\t\t\"mMaj9b6\"\n\t],\n\t[\n\t\t\"1P 3m 5P 7m 11P\",\n\t\t\"\",\n\t\t\"m7add11 m7add4\"\n\t],\n\t[\n\t\t\"1P 3m 5P 9M\",\n\t\t\"\",\n\t\t\"madd9\"\n\t],\n\t[\n\t\t\"1P 3m 5d 6M 7M\",\n\t\t\"\",\n\t\t\"o7M7\"\n\t],\n\t[\n\t\t\"1P 3m 5d 7M\",\n\t\t\"\",\n\t\t\"oM7\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7M\",\n\t\t\"\",\n\t\t\"mb6M7\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7m\",\n\t\t\"\",\n\t\t\"m7#5\"\n\t],\n\t[\n\t\t\"1P 3m 6m 7m 9M\",\n\t\t\"\",\n\t\t\"m9#5\"\n\t],\n\t[\n\t\t\"1P 3m 5A 7m 9M 11P\",\n\t\t\"\",\n\t\t\"m11A\"\n\t],\n\t[\n\t\t\"1P 3m 6m 9m\",\n\t\t\"\",\n\t\t\"mb6b9\"\n\t],\n\t[\n\t\t\"1P 2M 3m 5d 7m\",\n\t\t\"\",\n\t\t\"m9b5\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7M\",\n\t\t\"\",\n\t\t\"M7#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7M 9M\",\n\t\t\"\",\n\t\t\"M9#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5A 7m\",\n\t\t\"\",\n\t\t\"7#5sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7M\",\n\t\t\"\",\n\t\t\"M7sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7M 9M\",\n\t\t\"\",\n\t\t\"M9sus4\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9M\",\n\t\t\"\",\n\t\t\"9sus4 9sus\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9M 13M\",\n\t\t\"\",\n\t\t\"13sus4 13sus\"\n\t],\n\t[\n\t\t\"1P 4P 5P 7m 9m 13m\",\n\t\t\"\",\n\t\t\"7sus4b9b13 7b9b13sus4\"\n\t],\n\t[\n\t\t\"1P 4P 7m 10m\",\n\t\t\"\",\n\t\t\"4 quartal\"\n\t],\n\t[\n\t\t\"1P 5P 7m 9m 11P\",\n\t\t\"\",\n\t\t\"11b9\"\n\t]\n], ue = {\n\t...R,\n\tname: \"\",\n\tquality: \"Unknown\",\n\tintervals: [],\n\taliases: []\n}, B = [], V = {};\nfunction get$7(e) {\n\treturn V[e] || ue;\n}\nn(get$7, \"get\");\nfunction all$2() {\n\treturn B.slice();\n}\nn(all$2, \"all\");\nfunction add$3(e, t, n) {\n\tlet r = getQuality(e), i = {\n\t\t...get$8(e),\n\t\tname: n || \"\",\n\t\tquality: r,\n\t\tintervals: e,\n\t\taliases: t\n\t};\n\tB.push(i), i.name && (V[i.name] = i), V[i.setNum] = i, V[i.chroma] = i, i.aliases.forEach((e) => addAlias$1(i, e));\n}\nn(add$3, \"add\");\nfunction addAlias$1(e, t) {\n\tV[t] = e;\n}\nn(addAlias$1, \"addAlias\");\nfunction getQuality(e) {\n\tlet has = (t) => e.indexOf(t) !== -1;\n\treturn has(\"5A\") ? \"Augmented\" : has(\"3M\") ? \"Major\" : has(\"5d\") ? \"Diminished\" : has(\"3m\") ? \"Minor\" : \"Unknown\";\n}\nle.forEach(([e, t, n]) => add$3(e.split(\" \"), n.split(\" \"), t)), B.sort((e, t) => e.setNum - t.setNum);\n//#endregion\n//#region ../../node_modules/@tonaljs/scale-type/dist/index.es.js\nvar de = [\n\t[\n\t\t\"1P 2M 3M 5P 6M\",\n\t\t\"major pentatonic\",\n\t\t\"pentatonic\"\n\t],\n\t[\"1P 3M 4P 5P 7M\", \"ionian pentatonic\"],\n\t[\n\t\t\"1P 3M 4P 5P 7m\",\n\t\t\"mixolydian pentatonic\",\n\t\t\"indian\"\n\t],\n\t[\"1P 2M 4P 5P 6M\", \"ritusen\"],\n\t[\"1P 2M 4P 5P 7m\", \"egyptian\"],\n\t[\"1P 3M 4P 5d 7m\", \"neopolitan major pentatonic\"],\n\t[\"1P 3m 4P 5P 6m\", \"vietnamese 1\"],\n\t[\"1P 2m 3m 5P 6m\", \"pelog\"],\n\t[\"1P 2m 4P 5P 6m\", \"kumoijoshi\"],\n\t[\"1P 2M 3m 5P 6m\", \"hirajoshi\"],\n\t[\"1P 2m 4P 5d 7m\", \"iwato\"],\n\t[\"1P 2m 4P 5P 7m\", \"in-sen\"],\n\t[\n\t\t\"1P 3M 4A 5P 7M\",\n\t\t\"lydian pentatonic\",\n\t\t\"chinese\"\n\t],\n\t[\"1P 3m 4P 6m 7m\", \"malkos raga\"],\n\t[\n\t\t\"1P 3m 4P 5d 7m\",\n\t\t\"locrian pentatonic\",\n\t\t\"minor seven flat five pentatonic\"\n\t],\n\t[\n\t\t\"1P 3m 4P 5P 7m\",\n\t\t\"minor pentatonic\",\n\t\t\"vietnamese 2\"\n\t],\n\t[\"1P 3m 4P 5P 6M\", \"minor six pentatonic\"],\n\t[\n\t\t\"1P 2M 3m 5P 6M\",\n\t\t\"flat three pentatonic\",\n\t\t\"kumoi\"\n\t],\n\t[\"1P 2M 3M 5P 6m\", \"flat six pentatonic\"],\n\t[\"1P 2m 3M 5P 6M\", \"scriabin\"],\n\t[\"1P 3M 5d 6m 7m\", \"whole tone pentatonic\"],\n\t[\"1P 3M 4A 5A 7M\", \"lydian #5P pentatonic\"],\n\t[\"1P 3M 4A 5P 7m\", \"lydian dominant pentatonic\"],\n\t[\"1P 3m 4P 5P 7M\", \"minor #7M pentatonic\"],\n\t[\"1P 3m 4d 5d 7m\", \"super locrian pentatonic\"],\n\t[\"1P 2M 3m 4P 5P 7M\", \"minor hexatonic\"],\n\t[\"1P 2A 3M 5P 5A 7M\", \"augmented\"],\n\t[\"1P 2M 3m 3M 5P 6M\", \"major blues\"],\n\t[\"1P 2M 4P 5P 6M 7m\", \"piongio\"],\n\t[\"1P 2m 3M 4A 6M 7m\", \"prometheus neopolitan\"],\n\t[\"1P 2M 3M 4A 6M 7m\", \"prometheus\"],\n\t[\"1P 2m 3M 5d 6m 7m\", \"mystery #1\"],\n\t[\"1P 2m 3M 4P 5A 6M\", \"six tone symmetric\"],\n\t[\n\t\t\"1P 2M 3M 4A 5A 7m\",\n\t\t\"whole tone\",\n\t\t\"messiaen's mode #1\"\n\t],\n\t[\"1P 2m 4P 4A 5P 7M\", \"messiaen's mode #5\"],\n\t[\n\t\t\"1P 3m 4P 5d 5P 7m\",\n\t\t\"minor blues\",\n\t\t\"blues\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4P 5d 6m 7m\",\n\t\t\"locrian major\",\n\t\t\"arabian\"\n\t],\n\t[\"1P 2m 3M 4A 5P 6m 7M\", \"double harmonic lydian\"],\n\t[\"1P 2M 3m 4P 5P 6m 7M\", \"harmonic minor\"],\n\t[\n\t\t\"1P 2m 3m 4d 5d 6m 7m\",\n\t\t\"altered\",\n\t\t\"super locrian\",\n\t\t\"diminished whole tone\",\n\t\t\"pomeroy\"\n\t],\n\t[\n\t\t\"1P 2M 3m 4P 5d 6m 7m\",\n\t\t\"locrian #2\",\n\t\t\"half-diminished\",\n\t\t\"aeolian b5\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6m 7m\",\n\t\t\"mixolydian b6\",\n\t\t\"melodic minor fifth mode\",\n\t\t\"hindu\"\n\t],\n\t[\n\t\t\"1P 2M 3M 4A 5P 6M 7m\",\n\t\t\"lydian dominant\",\n\t\t\"lydian b7\",\n\t\t\"overtone\"\n\t],\n\t[\"1P 2M 3M 4A 5P 6M 7M\", \"lydian\"],\n\t[\"1P 2M 3M 4A 5A 6M 7M\", \"lydian augmented\"],\n\t[\n\t\t\"1P 2m 3m 4P 5P 6M 7m\",\n\t\t\"dorian b2\",\n\t\t\"phrygian #6\",\n\t\t\"melodic minor second mode\"\n\t],\n\t[\"1P 2M 3m 4P 5P 6M 7M\", \"melodic minor\"],\n\t[\"1P 2m 3m 4P 5d 6m 7m\", \"locrian\"],\n\t[\n\t\t\"1P 2m 3m 4d 5d 6m 7d\",\n\t\t\"ultralocrian\",\n\t\t\"superlocrian bb7\",\n\t\t\"·superlocrian diminished\"\n\t],\n\t[\n\t\t\"1P 2m 3m 4P 5d 6M 7m\",\n\t\t\"locrian 6\",\n\t\t\"locrian natural 6\",\n\t\t\"locrian sharp 6\"\n\t],\n\t[\"1P 2A 3M 4P 5P 5A 7M\", \"augmented heptatonic\"],\n\t[\"1P 2M 3m 5d 5P 6M 7m\", \"romanian minor\"],\n\t[\"1P 2M 3m 4A 5P 6M 7m\", \"dorian #4\"],\n\t[\"1P 2M 3m 4A 5P 6M 7M\", \"lydian diminished\"],\n\t[\"1P 2m 3m 4P 5P 6m 7m\", \"phrygian\"],\n\t[\"1P 2M 3M 4A 5A 7m 7M\", \"leading whole tone\"],\n\t[\"1P 2M 3M 4A 5P 6m 7m\", \"lydian minor\"],\n\t[\n\t\t\"1P 2m 3M 4P 5P 6m 7m\",\n\t\t\"phrygian dominant\",\n\t\t\"spanish\",\n\t\t\"phrygian major\"\n\t],\n\t[\"1P 2m 3m 4P 5P 6m 7M\", \"balinese\"],\n\t[\"1P 2m 3m 4P 5P 6M 7M\", \"neopolitan major\"],\n\t[\n\t\t\"1P 2M 3m 4P 5P 6m 7m\",\n\t\t\"aeolian\",\n\t\t\"minor\"\n\t],\n\t[\"1P 2M 3M 4P 5P 6m 7M\", \"harmonic major\"],\n\t[\n\t\t\"1P 2m 3M 4P 5P 6m 7M\",\n\t\t\"double harmonic major\",\n\t\t\"gypsy\"\n\t],\n\t[\"1P 2M 3m 4P 5P 6M 7m\", \"dorian\"],\n\t[\"1P 2M 3m 4A 5P 6m 7M\", \"hungarian minor\"],\n\t[\"1P 2A 3M 4A 5P 6M 7m\", \"hungarian major\"],\n\t[\"1P 2m 3M 4P 5d 6M 7m\", \"oriental\"],\n\t[\"1P 2m 3m 3M 4A 5P 7m\", \"flamenco\"],\n\t[\"1P 2m 3m 4A 5P 6m 7M\", \"todi raga\"],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6M 7m\",\n\t\t\"mixolydian\",\n\t\t\"dominant\"\n\t],\n\t[\"1P 2m 3M 4P 5d 6m 7M\", \"persian\"],\n\t[\n\t\t\"1P 2M 3M 4P 5P 6M 7M\",\n\t\t\"major\",\n\t\t\"ionian\"\n\t],\n\t[\"1P 2m 3M 5d 6m 7m 7M\", \"enigmatic\"],\n\t[\n\t\t\"1P 2M 3M 4P 5A 6M 7M\",\n\t\t\"major augmented\",\n\t\t\"major #5\",\n\t\t\"ionian augmented\",\n\t\t\"ionian #5\"\n\t],\n\t[\"1P 2A 3M 4A 5P 6M 7M\", \"lydian #9\"],\n\t[\"1P 2m 2M 4P 4A 5P 6m 7M\", \"messiaen's mode #4\"],\n\t[\"1P 2m 3M 4P 4A 5P 6m 7M\", \"purvi raga\"],\n\t[\"1P 2m 3m 3M 4P 5P 6m 7m\", \"spanish heptatonic\"],\n\t[\"1P 2M 3M 4P 5P 6M 7m 7M\", \"bebop\"],\n\t[\"1P 2M 3m 3M 4P 5P 6M 7m\", \"bebop minor\"],\n\t[\"1P 2M 3M 4P 5P 5A 6M 7M\", \"bebop major\"],\n\t[\"1P 2m 3m 4P 5d 5P 6m 7m\", \"bebop locrian\"],\n\t[\"1P 2M 3m 4P 5P 6m 7m 7M\", \"minor bebop\"],\n\t[\n\t\t\"1P 2M 3m 4P 5d 6m 6M 7M\",\n\t\t\"diminished\",\n\t\t\"whole-half diminished\"\n\t],\n\t[\"1P 2M 3M 4P 5d 5P 6M 7M\", \"ichikosucho\"],\n\t[\"1P 2M 3m 4P 5P 6m 6M 7M\", \"minor six diminished\"],\n\t[\n\t\t\"1P 2m 3m 3M 4A 5P 6M 7m\",\n\t\t\"half-whole diminished\",\n\t\t\"dominant diminished\",\n\t\t\"messiaen's mode #2\"\n\t],\n\t[\"1P 3m 3M 4P 5P 6M 7m 7M\", \"kafi raga\"],\n\t[\"1P 2M 3M 4P 4A 5A 6A 7M\", \"messiaen's mode #6\"],\n\t[\"1P 2M 3m 3M 4P 5d 5P 6M 7m\", \"composite blues\"],\n\t[\"1P 2M 3m 3M 4A 5P 6m 7m 7M\", \"messiaen's mode #3\"],\n\t[\"1P 2m 2M 3m 4P 4A 5P 6m 6M 7M\", \"messiaen's mode #7\"],\n\t[\"1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M\", \"chromatic\"]\n], fe = {\n\t...R,\n\tintervals: [],\n\taliases: []\n}, H = [], U = {};\nfunction get$6(e) {\n\treturn U[e] || fe;\n}\nn(get$6, \"get\");\nfunction all$1() {\n\treturn H.slice();\n}\nn(all$1, \"all\");\nfunction add$2(e, t, n = []) {\n\tlet r = {\n\t\t...get$8(e),\n\t\tname: t,\n\t\tintervals: e,\n\t\taliases: n\n\t};\n\treturn H.push(r), U[r.name] = r, U[r.setNum] = r, U[r.chroma] = r, r.aliases.forEach((e) => addAlias(r, e)), r;\n}\nn(add$2, \"add\");\nfunction addAlias(e, t) {\n\tU[t] = e;\n}\nde.forEach(([e, t, ...n]) => add$2(e.split(\" \"), t, n));\n//#endregion\n//#region ../../node_modules/@tonaljs/chord/dist/index.es.js\nvar W = {\n\tempty: !0,\n\tname: \"\",\n\tsymbol: \"\",\n\troot: \"\",\n\trootDegree: 0,\n\ttype: \"\",\n\ttonic: null,\n\tsetNum: NaN,\n\tquality: \"Unknown\",\n\tchroma: \"\",\n\tnormalized: \"\",\n\taliases: [],\n\tnotes: [],\n\tintervals: []\n}, pe = /^(6|64|7|9|11|13)$/;\nfunction tokenize$2(e) {\n\tlet [t, n, r, i] = tokenizeNote(e);\n\treturn t === \"\" ? [\"\", e] : t === \"A\" && i === \"ug\" ? [\"\", \"aug\"] : !i && (r === \"4\" || r === \"5\") ? [t + n, r] : pe.test(r) ? [t + n, r + i] : [t + n + r, i];\n}\nn(tokenize$2, \"tokenize\");\nfunction get$5(e) {\n\tif (e === \"\") return W;\n\tif (Array.isArray(e) && e.length === 2) return getChord(e[1], e[0]);\n\t{\n\t\tlet [t, n] = tokenize$2(e), r = getChord(n, t);\n\t\treturn r.empty ? getChord(e) : r;\n\t}\n}\nn(get$5, \"get\");\nfunction getChord(e, t, n) {\n\tlet r = get$7(e), i = note(t || \"\"), a = note(n || \"\");\n\tif (r.empty || t && i.empty || n && a.empty) return W;\n\tlet o = distance$1(i.pc, a.pc), s = r.intervals.indexOf(o) + 1;\n\tif (!a.empty && !s) return W;\n\tlet c = Array.from(r.intervals);\n\tfor (let e = 1; e < s; e++) {\n\t\tlet e = c[0][0], t = c[0][1], n = parseInt(e, 10) + 7;\n\t\tc.push(`${n}${t}`), c.shift();\n\t}\n\tlet l = i.empty ? [] : c.map((e) => transpose$2(i, e));\n\te = r.aliases.indexOf(e) === -1 ? r.aliases[0] : e;\n\tlet u = `${i.empty ? \"\" : i.pc}${e}${a.empty || s <= 1 ? \"\" : \"/\" + a.pc}`, d = `${t ? i.pc + \" \" : \"\"}${r.name}${s > 1 && n ? \" over \" + a.pc : \"\"}`;\n\treturn {\n\t\t...r,\n\t\tname: d,\n\t\tsymbol: u,\n\t\ttype: r.name,\n\t\troot: a.name,\n\t\tintervals: c,\n\t\trootDegree: s,\n\t\ttonic: i.name,\n\t\tnotes: l\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/duration-value/dist/index.es.js\nvar me = [\n\t[\n\t\t.125,\n\t\t\"dl\",\n\t\t[\n\t\t\t\"large\",\n\t\t\t\"duplex longa\",\n\t\t\t\"maxima\",\n\t\t\t\"octuple\",\n\t\t\t\"octuple whole\"\n\t\t]\n\t],\n\t[\n\t\t.25,\n\t\t\"l\",\n\t\t[\"long\", \"longa\"]\n\t],\n\t[\n\t\t.5,\n\t\t\"d\",\n\t\t[\n\t\t\t\"double whole\",\n\t\t\t\"double\",\n\t\t\t\"breve\"\n\t\t]\n\t],\n\t[\n\t\t1,\n\t\t\"w\",\n\t\t[\"whole\", \"semibreve\"]\n\t],\n\t[\n\t\t2,\n\t\t\"h\",\n\t\t[\"half\", \"minim\"]\n\t],\n\t[\n\t\t4,\n\t\t\"q\",\n\t\t[\"quarter\", \"crotchet\"]\n\t],\n\t[\n\t\t8,\n\t\t\"e\",\n\t\t[\"eighth\", \"quaver\"]\n\t],\n\t[\n\t\t16,\n\t\t\"s\",\n\t\t[\"sixteenth\", \"semiquaver\"]\n\t],\n\t[\n\t\t32,\n\t\t\"t\",\n\t\t[\"thirty-second\", \"demisemiquaver\"]\n\t],\n\t[\n\t\t64,\n\t\t\"sf\",\n\t\t[\"sixty-fourth\", \"hemidemisemiquaver\"]\n\t],\n\t[\n\t\t128,\n\t\t\"h\",\n\t\t[\"hundred twenty-eighth\"]\n\t],\n\t[\n\t\t256,\n\t\t\"th\",\n\t\t[\"two hundred fifty-sixth\"]\n\t]\n], he = [];\nme.forEach(([e, t, n]) => add$1(e, t, n));\nfunction add$1(e, t, n) {\n\the.push({\n\t\tempty: !1,\n\t\tdots: \"\",\n\t\tname: \"\",\n\t\tvalue: 1 / e,\n\t\tfraction: e < 1 ? [1 / e, 1] : [1, e],\n\t\tshorthand: t,\n\t\tnames: n\n\t});\n}\nn(add$1, \"add\");\n//#endregion\n//#region ../../node_modules/@tonaljs/interval/dist/index.es.js\nfunction names$1() {\n\treturn \"1P 2M 3M 4P 5P 6m 7m\".split(\" \");\n}\nn(names$1, \"names\");\nvar ge = interval, _e = /* @__PURE__ */ n((e) => interval(e).name, \"name\"), semitones = (e) => interval(e).semitones, quality = (e) => interval(e).q, num = (e) => interval(e).num;\nfunction simplify$1(e) {\n\tlet t = interval(e);\n\treturn t.empty ? \"\" : t.simple + t.q;\n}\nn(simplify$1, \"simplify\");\nfunction invert(e) {\n\tlet t = interval(e);\n\treturn t.empty ? \"\" : interval({\n\t\tstep: (7 - t.step) % 7,\n\t\talt: t.type === \"perfectable\" ? -t.alt : -(t.alt + 1),\n\t\toct: t.oct,\n\t\tdir: t.dir\n\t}).name;\n}\nvar ve = [\n\t1,\n\t2,\n\t2,\n\t3,\n\t3,\n\t4,\n\t5,\n\t5,\n\t6,\n\t6,\n\t7,\n\t7\n], ye = \"P m M m M P d P m M m M\".split(\" \");\nfunction fromSemitones(e) {\n\tlet t = e < 0 ? -1 : 1, n = Math.abs(e), r = n % 12, i = Math.floor(n / 12);\n\treturn t * (ve[r] + 7 * i) + ye[r];\n}\nvar be = distance$1, xe = combinator((e, t) => [e[0] + t[0], e[1] + t[1]]), addTo = (e) => (t) => xe(e, t), Se = {\n\tnames: names$1,\n\tget: ge,\n\tname: _e,\n\tnum,\n\tsemitones,\n\tquality,\n\tfromSemitones,\n\tdistance: be,\n\tinvert,\n\tsimplify: simplify$1,\n\tadd: xe,\n\taddTo,\n\tsubstract: combinator((e, t) => [e[0] - t[0], e[1] - t[1]])\n};\nfunction combinator(e) {\n\treturn (t, n) => {\n\t\tlet r = interval(t).coord, i = interval(n).coord;\n\t\tif (r && i) return coordToInterval(e(r, i)).name;\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/midi/dist/index.es.js\nvar Ce = Math.log(2), we = Math.log(440);\nfunction freqToMidi(e) {\n\tlet t = 12 * (Math.log(e) - we) / Ce + 69;\n\treturn Math.round(t * 100) / 100;\n}\nvar Te = \"C C# D D# E F F# G G# A A# B\".split(\" \"), Ee = \"C Db D Eb E F Gb G Ab A Bb B\".split(\" \");\nfunction midiToNoteName(e, t = {}) {\n\tif (isNaN(e) || e === -Infinity || e === Infinity) return \"\";\n\te = Math.round(e);\n\tlet n = (t.sharps === !0 ? Te : Ee)[e % 12];\n\treturn t.pitchClass ? n : n + (Math.floor(e / 12) - 1);\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/note/dist/index.es.js\nvar De = [\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"A\",\n\t\"B\"\n], toName = (e) => e.name, onlyNotes = (e) => e.map(note).filter((e) => !e.empty);\nfunction names(e) {\n\treturn e === void 0 ? De.slice() : Array.isArray(e) ? onlyNotes(e).map(toName) : [];\n}\nvar G = note, name = (e) => G(e).name, pitchClass = (e) => G(e).pc, accidentals = (e) => G(e).acc, octave = (e) => G(e).oct, midi = (e) => G(e).midi, freq = (e) => G(e).freq, chroma = (e) => G(e).chroma;\nfunction fromMidi(e) {\n\treturn midiToNoteName(e);\n}\nfunction fromFreq(e) {\n\treturn midiToNoteName(freqToMidi(e));\n}\nfunction fromFreqSharps(e) {\n\treturn midiToNoteName(freqToMidi(e), { sharps: !0 });\n}\nfunction fromMidiSharps(e) {\n\treturn midiToNoteName(e, { sharps: !0 });\n}\nvar K = transpose$2, Oe = transpose$2, transposeBy = (e) => (t) => K(t, e), ke = transposeBy, transposeFrom = (e) => (t) => K(e, t), Ae = transposeFrom;\nfunction transposeFifths(e, t) {\n\tlet n = G(e);\n\tif (n.empty) return \"\";\n\tlet [r, i] = n.coord;\n\treturn coordToNote(i === void 0 ? [r + t] : [r + t, i]).name;\n}\nvar je = transposeFifths, ascending = (e, t) => e.height - t.height, descending = (e, t) => t.height - e.height;\nfunction sortedNames(e, t) {\n\treturn t ||= ascending, onlyNotes(e).sort(t).map(toName);\n}\nfunction sortedUniqNames(e) {\n\treturn sortedNames(e, ascending).filter((e, t, n) => t === 0 || e !== n[t - 1]);\n}\nvar Me = nameBuilder(!0), Ne = nameBuilder(!1);\nfunction nameBuilder(e) {\n\treturn (t) => {\n\t\tlet n = G(t);\n\t\tif (n.empty) return \"\";\n\t\tlet r = e ? n.alt > 0 : n.alt < 0, i = n.midi === null;\n\t\treturn midiToNoteName(n.midi || n.chroma, {\n\t\t\tsharps: r,\n\t\t\tpitchClass: i\n\t\t});\n\t};\n}\nvar q = {\n\tnames,\n\tget: G,\n\tname,\n\tpitchClass,\n\taccidentals,\n\toctave,\n\tmidi,\n\tascending,\n\tdescending,\n\tsortedNames,\n\tsortedUniqNames,\n\tfromMidi,\n\tfromMidiSharps,\n\tfreq,\n\tfromFreq,\n\tfromFreqSharps,\n\tchroma,\n\ttranspose: K,\n\ttr: Oe,\n\ttransposeBy,\n\ttrBy: ke,\n\ttransposeFrom,\n\ttrFrom: Ae,\n\ttransposeFifths,\n\ttrFifths: je,\n\tsimplify: Me,\n\tenharmonic: Ne\n}, Pe = {\n\tempty: !0,\n\tname: \"\",\n\tchordType: \"\"\n}, Fe = {};\nfunction get$2(e) {\n\treturn typeof e == \"string\" ? Fe[e] || (Fe[e] = parse(e)) : typeof e == \"number\" ? get$2(J[e] || \"\") : isPitch(e) ? fromPitch(e) : isNamed(e) ? get$2(e.name) : Pe;\n}\nn(get$2, \"get\");\nfunction fromPitch(e) {\n\treturn get$2(altToAcc(e.alt) + J[e.step]);\n}\nvar Ie = /^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;\nfunction tokenize$1(e) {\n\treturn Ie.exec(e) || [\n\t\t\"\",\n\t\t\"\",\n\t\t\"\",\n\t\t\"\"\n\t];\n}\nn(tokenize$1, \"tokenize\");\nvar Le = \"I II III IV V VI VII\", J = Le.split(\" \");\nLe.toLowerCase().split(\" \");\nfunction parse(e) {\n\tlet [t, n, r, i] = tokenize$1(e);\n\tif (!r) return Pe;\n\tlet a = r.toUpperCase(), o = J.indexOf(a), s = accToAlt(n);\n\treturn {\n\t\tempty: !1,\n\t\tname: t,\n\t\troman: r,\n\t\tinterval: interval({\n\t\t\tstep: o,\n\t\t\talt: s,\n\t\t\tdir: 1\n\t\t}).name,\n\t\tacc: n,\n\t\tchordType: i,\n\t\talt: s,\n\t\tstep: o,\n\t\tmajor: r === a,\n\t\toct: 0,\n\t\tdir: 1\n\t};\n}\n//#endregion\n//#region ../../node_modules/@tonaljs/key/dist/index.es.js\nvar Re = [\n\t[\n\t\t0,\n\t\t2773,\n\t\t0,\n\t\t\"ionian\",\n\t\t\"\",\n\t\t\"Maj7\",\n\t\t\"major\"\n\t],\n\t[\n\t\t1,\n\t\t2902,\n\t\t2,\n\t\t\"dorian\",\n\t\t\"m\",\n\t\t\"m7\"\n\t],\n\t[\n\t\t2,\n\t\t3418,\n\t\t4,\n\t\t\"phrygian\",\n\t\t\"m\",\n\t\t\"m7\"\n\t],\n\t[\n\t\t3,\n\t\t2741,\n\t\t-1,\n\t\t\"lydian\",\n\t\t\"\",\n\t\t\"Maj7\"\n\t],\n\t[\n\t\t4,\n\t\t2774,\n\t\t1,\n\t\t\"mixolydian\",\n\t\t\"\",\n\t\t\"7\"\n\t],\n\t[\n\t\t5,\n\t\t2906,\n\t\t3,\n\t\t\"aeolian\",\n\t\t\"m\",\n\t\t\"m7\",\n\t\t\"minor\"\n\t],\n\t[\n\t\t6,\n\t\t3434,\n\t\t5,\n\t\t\"locrian\",\n\t\t\"dim\",\n\t\t\"m7b5\"\n\t]\n], ze = {\n\t...R,\n\tname: \"\",\n\talt: 0,\n\tmodeNum: NaN,\n\ttriad: \"\",\n\tseventh: \"\",\n\taliases: []\n}, Be = Re.map(toMode), Y = {};\nBe.forEach((e) => {\n\tY[e.name] = e, e.aliases.forEach((t) => {\n\t\tY[t] = e;\n\t});\n});\nfunction get$1(e) {\n\treturn typeof e == \"string\" ? Y[e.toLowerCase()] || ze : e && e.name ? get$1(e.name) : ze;\n}\nn(get$1, \"get\");\nfunction toMode(e) {\n\tlet [t, n, r, i, a, o, s] = e, c = s ? [s] : [], l = Number(n).toString(2);\n\treturn {\n\t\tempty: !1,\n\t\tintervals: chromaToIntervals(l),\n\t\tmodeNum: t,\n\t\tchroma: l,\n\t\tnormalized: l,\n\t\tname: i,\n\t\tsetNum: n,\n\t\talt: r,\n\t\ttriad: a,\n\t\tseventh: o,\n\t\taliases: c\n\t};\n}\n//#endregion\n//#region src/piano/utility/midi.ts\nvar Ve = /* @__PURE__ */ e(te(), 1);\nfunction transpose(e, t) {\n\tlet n = { ...e }, r = q.transpose(e.note.name + e.note.octave, Se.fromSemitones(t));\n\treturn n.note = {\n\t\tname: q.pitchClass(r),\n\t\tnumber: e.note.number + t,\n\t\toctave: q.octave(r)\n\t}, n;\n}\nfunction transposeSyllableSeq(e, t) {\n\treturn e.map((e) => transpose(e, t));\n}\nfunction eventsToSyllableSequence(e) {\n\tlet t = [];\n\te = e.filter((e) => e.type === \"noteon\").sort((e, t) => e.timestamp - t.timestamp);\n\tfor (let n = 10; n > 0; n--) for (let r = 0; r < e.length - n + 1; r++) try {\n\t\tt.push(new X(e.slice(r, r + n))), e.splice(r, n), r = -1;\n\t} catch {}\n\treturn new He(t);\n}\nvar He = class SyllableSequence {\n\tsyllables;\n\trootNote;\n\tappend(e) {\n\t\tif (this.syllables.length) try {\n\t\t\tlet t = new X(this.syllables[this.syllables.length - 1].notes.map((e) => ({\n\t\t\t\tnote: e.note,\n\t\t\t\ttimestamp: e.timestamp,\n\t\t\t\ttype: e.type,\n\t\t\t\tvelocity: e.velocity\n\t\t\t})).concat(e));\n\t\t\tthis.syllables.splice(this.syllables.length - 1, 1, t);\n\t\t} catch {\n\t\t\tthis.syllables.push(new X([e]));\n\t\t}\n\t\telse this.syllables.push(new X([e])), this.rootNote = e.note;\n\t}\n\tconstructor(e) {\n\t\te.length > 0 ? (this.syllables = e.sort((e, t) => e.timestamp - t.timestamp), this.rootNote = this.syllables[0].notes.reduce((e, t) => t.note.number < e.note.number ? t : e).note) : (this.syllables = [], this.rootNote = {\n\t\t\tname: \"C\",\n\t\t\toctave: 4,\n\t\t\tnumber: 0\n\t\t});\n\t}\n\tgrade(e) {\n\t\tlet t = [];\n\t\tfor (let n = 0; n < this.syllables.length; n++) t.push(this.syllables[n].grade(e.syllables[n]));\n\t\treturn new SyllableSequence(t);\n\t}\n\ttoString() {\n\t\tlet e = \"\";\n\t\treturn this.syllables.forEach((t, n) => {\n\t\t\te += `Syllable ${n + 1}: {\\n`, t.notes.forEach((t) => {\n\t\t\t\te += `\\t${t.note.name}\\t${t.note.number}\\t${t.timestamp} ${t.isCorrect ? \"\" : \"(incorrect)\"} ${t.isMissing ? \"(missing)\" : \"\"}\\n`;\n\t\t\t}), e += `} - ${t.timestamp}, correct: ${t.isCorrect}\\n`;\n\t\t}), e;\n\t}\n\tisCorrect() {\n\t\tlet e = !0;\n\t\treturn this.syllables.forEach((t) => {\n\t\t\tt.isCorrect === !1 ? e = !1 : t.notes.forEach((t) => {\n\t\t\t\tt.isCorrect === !1 && (e = !1);\n\t\t\t});\n\t\t}), e;\n\t}\n}, X = class Syllable {\n\tnotes;\n\tisCorrect;\n\tget timestamp() {\n\t\tlet e = 0;\n\t\treturn this.notes.forEach((t) => {\n\t\t\tif (t.timestamp === 0) return 0;\n\t\t\te += t.timestamp;\n\t\t}), e /= this.notes.length, e;\n\t}\n\tconstructor(e) {\n\t\te = e.filter((e) => e.type === \"noteon\");\n\t\tlet t = e.reduce((e, t) => e.timestamp < t.timestamp ? e : t), n = e.reduce((e, t) => e.timestamp > t.timestamp ? e : t).timestamp - t.timestamp;\n\t\tif (Syllable.gracePeriod(e.length) < n) throw Error(`Notes ${e.toString()} are not close enough together to be a syllable`);\n\t\tthis.notes = e.map((e) => ({\n\t\t\t...e,\n\t\t\tisCorrect: !0,\n\t\t\tisMissing: !1\n\t\t})).sort((e, t) => e.note.number - t.note.number);\n\t}\n\tstatic gracePeriod(e) {\n\t\treturn 1.3 * 12 * e;\n\t}\n\tgrade(e) {\n\t\treturn this.notes.length !== e.notes.length && (e.isCorrect = !1), e.notes.forEach((t) => {\n\t\t\tlet n = q.fromMidi(t.note.number), r = q.fromMidiSharps(t.note.number);\n\t\t\tn = q.pitchClass(n), r = q.pitchClass(r), t.isCorrect = this.notes.filter((e) => q.chroma(n) === q.chroma(e.note.name) || q.chroma(r) === q.chroma(e.note.name)).length >= 1, t.isCorrect || (e.isCorrect = !1);\n\t\t}), this.notes.forEach((t) => {\n\t\t\tlet n = q.fromMidi(t.note.number);\n\t\t\tn = q.pitchClass(n), e.notes.some((e) => q.chroma(e.note.name) === q.chroma(n)) || e.notes.push({\n\t\t\t\t...t,\n\t\t\t\tisMissing: !0,\n\t\t\t\tisCorrect: !1\n\t\t\t});\n\t\t}), e;\n\t}\n}, Z = class SkMidi {\n\tstatic _instance;\n\tstatic OFFSET = 5;\n\trecording = [];\n\twebmidi = Ve.default;\n\tinput;\n\toutput;\n\t_noteonListeners = [];\n\t_noteoffListeners = [];\n\tstatic _initializedWithUserConfig = !1;\n\tmidiAccess;\n\t_state = \"initializing\";\n\tget state() {\n\t\treturn this._state;\n\t}\n\t_userLookup;\n\tconstructor(e) {\n\t\tthis._userLookup = e ?? null;\n\t}\n\tasync init() {\n\t\tif (!this.midiAccess) try {\n\t\t\tnavigator.requestMIDIAccess().then((e) => {\n\t\t\t\tthis.midiAccess = e, this.midiAccess.onstatechange = (e) => {\n\t\t\t\t\tT({\n\t\t\t\t\t\ttext: `Midi device ${e.port.name} is ${e.port.state}`,\n\t\t\t\t\t\tstatus: e.port.state === \"connected\" ? k.ok : k.error\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t\ttry {\n\t\t\tthis.webmidi.disable();\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t\treturn new Promise((e, t) => {\n\t\t\tthis.webmidi.enable(async (n) => {\n\t\t\t\tn ? (this._state = \"notsupported\", console.log(`Webmidi not enabled: ${n}`), t(n)) : (console.log(\"Webmidi enabled\"), console.log(`Inputs: ${JSON.stringify(this.webmidi.inputs)}`), console.log(`Outputs: ${JSON.stringify(this.webmidi.outputs)}`), this.output = this.webmidi.outputs[0], this.input = this.webmidi.inputs[0], SkMidi._initializedWithUserConfig ||= (await this.loadUserConfiguration(), !0), this.input && this.output ? (console.log(\"midi init state: ready\"), this._state = \"ready\", this.attachListeners()) : (console.log(\"midi init state: nodevice\"), this._state = \"nodevice\"), e(!0));\n\t\t\t});\n\t\t});\n\t}\n\tasync loadUserConfiguration() {\n\t\ttry {\n\t\t\tif (!this._userLookup) {\n\t\t\t\tconsole.log(\"User lookup function not provided - using default MIDI configuration\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet e = await this._userLookup();\n\t\t\tif (!e) {\n\t\t\t\tconsole.log(\"No user found, using default MIDI configuration\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet t = await e.getActiveCourses();\n\t\t\tfor (let n of t) {\n\t\t\t\tlet t = await (await e.getCourseInterface(n.courseID)).getCourseSettings();\n\t\t\t\tif (t?.midiinput || t?.midioutput) {\n\t\t\t\t\tt.midiinput && this.webmidi.getInputById(t.midiinput.toString()) && (this.selectInput(t.midiinput.toString()), console.log(`Loaded saved MIDI input: ${t.midiinput}`)), t.midioutput && this.webmidi.getOutputById(t.midioutput.toString()) && (this.selectOutput(t.midioutput.toString()), console.log(`Loaded saved MIDI output: ${t.midioutput}`));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Failed to load user MIDI configuration:\", e);\n\t\t}\n\t}\n\tsetStateChangeListener(e) {\n\t\tif (this.midiAccess) this.midiAccess.onstatechange = (t) => {\n\t\t\tthis.init().then(() => {\n\t\t\t\tconsole.log(`Midi state: ${this.state}`), e();\n\t\t\t}), T({\n\t\t\t\ttext: `Midi device ${t.port.name} is ${t.port.state}`,\n\t\t\t\tstatus: t.port.state === \"connected\" ? k.ok : k.error\n\t\t\t});\n\t\t};\n\t\telse try {\n\t\t\tnavigator.requestMIDIAccess().then((t) => {\n\t\t\t\tthis.midiAccess = t, this.midiAccess.onstatechange = (t) => {\n\t\t\t\t\tthis.init().then(() => {\n\t\t\t\t\t\tconsole.log(`Midi state: ${this.state}`), e();\n\t\t\t\t\t}), T({\n\t\t\t\t\t\ttext: `Midi device ${t.port.name} is ${t.port.state}`,\n\t\t\t\t\t\tstatus: t.port.state === \"connected\" ? k.ok : k.error\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(`Webmidi not enabled: ${e}`), this._state = \"notsupported\";\n\t\t}\n\t}\n\tattachListeners() {\n\t\tthis.input && (this._noteonListeners.forEach((e) => {\n\t\t\tthis.input?.on(\"noteon\", \"all\", e);\n\t\t}), this._noteoffListeners.forEach((e) => {\n\t\t\tthis.input?.on(\"noteoff\", \"all\", e);\n\t\t}));\n\t}\n\tget hasRecording() {\n\t\treturn this.record.length > 0;\n\t}\n\tget configuredInput() {\n\t\treturn this.input ? `${this.input.manufacturer}: ${this.input.name}` : \"(Not Sure!)\";\n\t}\n\teraseRecording() {\n\t\tthis.recording = [];\n\t}\n\tstopRecording() {\n\t\tthis.input?.removeListener();\n\t}\n\trecord() {\n\t\tlet e = 0;\n\t\tif (this.input === void 0) throw Error(\"Midi input not configured!\");\n\t\tthis.input.connection === \"open\" && (this.stopRecording(), this.eraseRecording(), this.input.on(\"noteon\", \"all\", (t) => {\n\t\t\tthis.recording.length === 0 && (e = t.timestamp), this.recording.push({\n\t\t\t\tnote: t.note,\n\t\t\t\ttype: t.type,\n\t\t\t\tvelocity: t.velocity,\n\t\t\t\ttimestamp: t.timestamp - e\n\t\t\t});\n\t\t}), this.input.on(\"noteoff\", \"all\", (t) => {\n\t\t\tthis.recording.length === 0 && (e = t.timestamp), this.recording.push({\n\t\t\t\tnote: t.note,\n\t\t\t\tvelocity: t.velocity,\n\t\t\t\ttype: t.type,\n\t\t\t\ttimestamp: t.timestamp - e\n\t\t\t});\n\t\t}));\n\t}\n\taddNoteonListenter(e) {\n\t\tthis._noteonListeners.push(e), this.input && this.input.on(\"noteon\", \"all\", e);\n\t}\n\taddNoteoffListenter(e) {\n\t\tthis._noteoffListeners.push(e), this.input && this.input.on(\"noteoff\", \"all\", e);\n\t}\n\tplay(e) {\n\t\tlet t = e || this.recording;\n\t\tt = t.map((e) => ({\n\t\t\t...e,\n\t\t\ttimestamp: e.timestamp + SkMidi.OFFSET\n\t\t})), t.forEach((e) => {\n\t\t\te.type === \"noteon\" ? this.output?.playNote(e.note.name + e.note.octave, 1, {\n\t\t\t\tvelocity: e.velocity,\n\t\t\t\ttime: `+${e.timestamp}`,\n\t\t\t\trawVelocity: !1\n\t\t\t}) : this.output?.stopNote(e.note.name + e.note.octave, 1, {\n\t\t\t\tvelocity: e.velocity,\n\t\t\t\ttime: `+${e.timestamp}`,\n\t\t\t\trawVelocity: !1\n\t\t\t});\n\t\t});\n\t}\n\tstatic async instance() {\n\t\treturn SkMidi._instance ? SkMidi._instance : (console.log(\"Buzz, whirr, Midi instance factory is at work\"), SkMidi._instance = new SkMidi(), await SkMidi._instance.init(), SkMidi._instance);\n\t}\n\tget inputs() {\n\t\treturn this.webmidi.inputs;\n\t}\n\tget outputs() {\n\t\treturn this.webmidi.outputs;\n\t}\n\tselectInput(e) {\n\t\tthis.webmidi.getInputById(e) === !1 ? this.webmidi.getInputByName(e) !== !1 && (this.input = this.webmidi.getInputByName(e)) : this.input = this.webmidi.getInputById(e);\n\t}\n\tselectOutput(e) {\n\t\tthis.webmidi.getOutputById(e) === !1 ? this.webmidi.getOutputByName(e) !== !1 && (this.output = this.webmidi.getOutputByName(e)) : this.output = this.webmidi.getOutputById(e);\n\t}\n}, Ue = p({\n\tname: \"SyllableSeqVis\",\n\tprops: {\n\t\tseq: {\n\t\t\ttype: Object,\n\t\t\trequired: !0\n\t\t},\n\t\tlastTSsuggestion: {\n\t\t\ttype: Number,\n\t\t\trequired: !1,\n\t\t\tdefault: 0\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = v(0), n = v(0), r = v(0), i = v(500), sayNote = (e) => {\n\t\t\tconsole.log(`${JSON.stringify(e)}`);\n\t\t}, a = o(() => {\n\t\t\tlet t = e.seq.syllables[e.seq.syllables.length - 1].timestamp;\n\t\t\treturn Math.max(1, t, e.lastTSsuggestion);\n\t\t}), s = o(() => {\n\t\t\tlet t = 0, n = 500;\n\t\t\treturn e.seq.syllables.forEach((e) => {\n\t\t\t\te.notes.forEach((e) => {\n\t\t\t\t\te.note.number > t && (t = e.note.number), e.note.number < n && (n = e.note.number);\n\t\t\t\t});\n\t\t\t}), Math.max(3 * (t - n) + 10, 0);\n\t\t}), updateBounds = () => {\n\t\t\ttry {\n\t\t\t\tt.value = e.seq.syllables[0].timestamp;\n\t\t\t\tlet r = e.seq.syllables[e.seq.syllables.length - 1].timestamp, i = t.value + e.lastTSsuggestion;\n\t\t\t\tn.value = Math.max(r, i);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(`[SyllableSeqVis] Error updating bounds: ${e}`);\n\t\t\t}\n\t\t\te.seq.syllables.forEach((e) => {\n\t\t\t\te.notes.forEach((e) => {\n\t\t\t\t\te.note.number > r.value && (r.value = e.note.number), e.note.number < i.value && (i.value = e.note.number);\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\treturn g(() => {\n\t\t\tconsole.log(`SyllableSeqVis created w/ input: \\n${e.seq}`), updateBounds();\n\t\t}), {\n\t\t\tfirstTS: t,\n\t\t\tlastTS: n,\n\t\t\thigh: r,\n\t\t\tlow: i,\n\t\t\tsayNote,\n\t\t\tgetLastTS: a,\n\t\t\tgetHeight: s,\n\t\t\tupdateBounds\n\t\t};\n\t}\n}), We = [\"height\"], Ge = [\n\t\"cx\",\n\t\"cy\",\n\t\"alt\",\n\t\"fill\",\n\t\"stroke\",\n\t\"onMouseenter\"\n];\nfunction _sfc_render$3(e, t, n, r, i, o) {\n\treturn _(), l(\"div\", null, [(_(), l(\"svg\", {\n\t\twidth: 510,\n\t\theight: Math.max(3 * (e.high - e.low) + 10, 0)\n\t}, [(_(!0), l(a, null, y(e.seq.syllables, (t) => (_(), l(a, null, [(_(!0), l(a, null, y(t.notes, (n) => (_(), l(\"circle\", {\n\t\tkey: t.timestamp + \"-\" + n.note.number,\n\t\tcx: (t.timestamp - e.firstTS) * 500 / (e.lastTS - e.firstTS) + 4,\n\t\tcy: 3 * (e.high - n.note.number) + 4,\n\t\talt: n.note.name,\n\t\tr: \"3\",\n\t\tfill: n.isCorrect ? \"black\" : n.isMissing ? \"none\" : \"red\",\n\t\tstroke: n.isMissing ? \"red\" : \"none\",\n\t\tonMouseenter: (t) => e.sayNote(n)\n\t}, null, 40, Ge))), 128))], 64))), 256))], 8, We))]);\n}\nn(_sfc_render$3, \"_sfc_render\");\nvar Ke = /* @__PURE__ */ r(Ue, [[\"render\", _sfc_render$3], [\"__scopeId\", \"data-v-2f79c080\"]]), qe = p({\n\tname: \"NoteDisplay\",\n\tprops: { chroma: {\n\t\ttype: Number,\n\t\trequired: !0\n\t} },\n\tsetup(e) {\n\t\tlet style = (t) => {\n\t\t\tlet n = \"#ffffff\";\n\t\t\treturn t === e.chroma ? n = \"#1976D2\" : (t === 1 || t === 3 || t === 6 || t === 8 || t === 10 || t === -2) && (n = \"#000000\"), {\n\t\t\t\tfill: n,\n\t\t\t\t\"fill-opacity\": 1,\n\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\"stroke-width\": .79375,\n\t\t\t\t\"stroke-miterlimit\": 4,\n\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\"stroke-opacity\": 1\n\t\t\t};\n\t\t};\n\t\treturn {\n\t\t\tstyle,\n\t\t\twhite: -1,\n\t\t\tblack: -2\n\t\t};\n\t}\n}), Je = {\n\tid: \"svg8\",\n\twidth: \"300px\",\n\theight: \"auto\",\n\t\"xmlns:dc\": \"http://purl.org/dc/elements/1.1/\",\n\t\"xmlns:cc\": \"http://creativecommons.org/ns#\",\n\t\"xmlns:rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n\t\"xmlns:svg\": \"http://www.w3.org/2000/svg\",\n\txmlns: \"http://www.w3.org/2000/svg\",\n\t\"xmlns:sodipodi\": \"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\n\t\"xmlns:inkscape\": \"http://www.inkscape.org/namespaces/inkscape\",\n\t\"sodipodi:docname\": \"keys.svg\",\n\t\"inkscape:version\": \"1.0rc1 (09960d6f05, 2020-04-09)\",\n\tversion: \"1.1\",\n\tviewBox: \"0 0 175.24936 73.594925\"\n}, Ye = { id: \"metadata5\" }, Xe = {\n\tid: \"layer1\",\n\ttransform: \"translate(167.75219,-151.96011)\",\n\t\"inkscape:groupmode\": \"layer\",\n\t\"inkscape:label\": \"Layer 1\"\n};\nfunction _sfc_render$2(e, t, n, r, i, a) {\n\tlet o = b(\"sodipodi:namedview\"), s = b(\"dc:format\"), c = b(\"dc:type\"), p = b(\"dc:title\"), h = b(\"cc:Work\"), g = b(\"rdf:RDF\");\n\treturn _(), l(\"svg\", Je, [\n\t\tt[1] ||= u(\"defs\", { id: \"defs2\" }, null, -1),\n\t\tf(o, {\n\t\t\tid: \"base\",\n\t\t\t\"inkscape:window-maximized\": \"1\",\n\t\t\t\"inkscape:window-y\": \"726\",\n\t\t\t\"inkscape:window-x\": \"1491\",\n\t\t\t\"inkscape:window-height\": \"1321\",\n\t\t\t\"inkscape:window-width\": \"2400\",\n\t\t\tshowborder: \"false\",\n\t\t\tshowgrid: \"false\",\n\t\t\t\"inkscape:document-rotation\": \"0\",\n\t\t\t\"inkscape:current-layer\": \"layer1\",\n\t\t\t\"inkscape:document-units\": \"mm\",\n\t\t\t\"inkscape:cy\": \"255.88343\",\n\t\t\t\"inkscape:cx\": \"754.94284\",\n\t\t\t\"inkscape:zoom\": \"0.98994949\",\n\t\t\t\"inkscape:pageshadow\": \"2\",\n\t\t\t\"inkscape:pageopacity\": \"0.0\",\n\t\t\tborderopacity: \"1.0\",\n\t\t\tbordercolor: \"#666666\",\n\t\t\tpagecolor: \"#ffffff\"\n\t\t}),\n\t\tu(\"metadata\", Ye, [f(g, null, {\n\t\t\tdefault: S(() => [f(h, { \"rdf:about\": \"\" }, {\n\t\t\t\tdefault: S(() => [\n\t\t\t\t\tf(s, null, {\n\t\t\t\t\t\tdefault: S(() => t[0] ||= [d(\"image/svg+xml\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}),\n\t\t\t\t\tf(c, { \"rdf:resource\": \"http://purl.org/dc/dcmitype/StillImage\" }),\n\t\t\t\t\tf(p)\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t})]),\n\t\tu(\"g\", Xe, [\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845\",\n\t\t\t\ty: \"152.19064\",\n\t\t\t\tx: \"-150.12129\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(0))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-9\",\n\t\t\t\tstyle: m(e.style(2)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-132.63466\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-6\",\n\t\t\t\tstyle: m(e.style(4)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-115.14803\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-4\",\n\t\t\t\tstyle: m(e.style(5)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-97.661407\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-92\",\n\t\t\t\tstyle: m(e.style(7)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-80.174782\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-3\",\n\t\t\t\tstyle: m(e.style(9)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-62.688156\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-0\",\n\t\t\t\tstyle: m(e.style(11)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-45.20153\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30\",\n\t\t\t\tstyle: m(e.style(e.white)),\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-27.714905\",\n\t\t\t\ty: \"152.10745\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898\",\n\t\t\t\try: \"0\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-138.43532\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\tstyle: m(e.style(1))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-3\",\n\t\t\t\tstyle: m(e.style(3)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-120.84978\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-7\",\n\t\t\t\tstyle: m(e.style(6)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-85.678711\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-8\",\n\t\t\t\tstyle: m(e.style(8)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-68.09317\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-1\",\n\t\t\t\tstyle: m(e.style(10)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-50.507633\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-1\",\n\t\t\t\ty: \"152.10745\",\n\t\t\t\tx: \"-10.228278\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(e.white))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-9\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: m(e.style(e.white))\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-4\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-15.336554\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-74\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"4.4679713\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-10\",\n\t\t\t\tstyle: m(e.style(e.black)),\n\t\t\t\twidth: \"5.1863246\",\n\t\t\t\theight: \"54.507248\",\n\t\t\t\tx: \"2.2092075\",\n\t\t\t\ty: \"152.06175\",\n\t\t\t\try: \"0\"\n\t\t\t}, null, 4)\n\t\t])\n\t]);\n}\nn(_sfc_render$2, \"_sfc_render\");\n//#endregion\n//#region src/piano/questions/echo/Playback.vue?vue&type=script&lang.ts\nvar Ze = p({\n\tname: \"Playback\",\n\tcomponents: {\n\t\tSyllableSeqVis: Ke,\n\t\tNoteDisplay: /* @__PURE__ */ r(qe, [[\"render\", _sfc_render$2]])\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 = ee(e, t, \"Playback\"), r = E(n), i = v(), a = v(!1), s = v(\"notSet\"), c = v(!1), l = v(0), u = v(A.utc()), d = v(0), f = v(0), p = v(eventsToSyllableSequence([])), m = v(!1), _ = v(eventsToSyllableSequence([])), y = v(0), b = v(\"\"), x = v(0), S = v(0), C = v(), D = v();\n\t\tr.question.value = new Q(e.data);\n\t\tlet O = o(() => new Q(e.data)), te = o(() => eventsToSyllableSequence(O.value.midi).syllables[0].notes.length > 1 ? \"Lowest note of first chord:\" : \"First note:\"), j = o(() => a.value ? eventsToSyllableSequence(O.value.midi).rootNote.number % 12 : 0), init = () => {\n\t\t\ts.value ? s.value !== i.value?.state && (a.value = !1, s.value = i.value?.state || \"notSet\", a.value = !0) : (s.value = i.value?.state || \"notSet\", a.value = !0), n.logger.log(`Playback is running init with state: ${s.value}`), s.value === \"ready\" && (d.value = O.value.duration, play());\n\t\t}, runProgressBar = () => {\n\t\t\ttry {\n\t\t\t\tC.value && (C.value.style.animationName = \"\", requestAnimationFrame(() => {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tC.value && (C.value.style.animationDuration = d.value + \"ms\", C.value.style.animationName = \"progress\");\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t} catch {\n\t\t\t\tsetTimeout(runProgressBar, 50);\n\t\t\t}\n\t\t}, record = () => {\n\t\t\ti.value?.record(), c.value = !0, i.value?.addNoteonListenter((e) => {\n\t\t\t\tx.value++, _.value.append(e), D.value?.updateBounds(), x.value + S.value >= O.value.midi.length && submit();\n\t\t\t}), i.value?.addNoteoffListenter(() => {\n\t\t\t\tS.value++, x.value + S.value >= O.value.midi.length && submit();\n\t\t\t});\n\t\t}, play = () => {\n\t\t\ti.value?.stopRecording(), i.value?.eraseRecording(), u.value = A.utc(), x.value = 0, S.value = 0, c.value = !1, l.value = 0, runProgressBar(), i.value?.play(O.value.midi), setTimeout(() => {\n\t\t\t\tn.logger.log(\"done playback...\"), record();\n\t\t\t}, O.value.lastNoteOnTimestamp);\n\t\t}, submit = () => {\n\t\t\tif (!i.value?.recording) return !1;\n\t\t\tlet e = eventsToSyllableSequence(O.value.midi), t = eventsToSyllableSequence(i.value.recording);\n\t\t\treturn p.value = e.grade(t), _.value = eventsToSyllableSequence([]), r.submitAnswer(i.value.recording).isCorrect ? !0 : (f.value++, m.value = !0, f.value < r.maxAttemptsPerView.value && play(), !1);\n\t\t}, clearAttempt = () => {\n\t\t\tx.value > 0 ? submit() : play();\n\t\t};\n\t\treturn g(async () => {\n\t\t\ttry {\n\t\t\t\ti.value = await Z.instance(), i.value.setStateChangeListener(() => {\n\t\t\t\t\tinit();\n\t\t\t\t}), a.value = !0;\n\t\t\t} catch (e) {\n\t\t\t\tT({\n\t\t\t\t\tstatus: k.error,\n\t\t\t\t\ttext: \"Midi device not supported\"\n\t\t\t\t}), b.value = JSON.stringify(e), s.value = \"notsupported\", a.value = !0;\n\t\t\t}\n\t\t\tinit(), w.addBinding([{\n\t\t\t\thotkey: \"space\",\n\t\t\t\tcallback: clearAttempt,\n\t\t\t\tcommand: \"Clear attempt or play again\"\n\t\t\t}]);\n\t\t}), h(() => {\n\t\t\tw.removeBinding(\"space\");\n\t\t}), {\n\t\t\t...n,\n\t\t\t...r,\n\t\t\tinitialized: a,\n\t\t\tstate: s,\n\t\t\trecording: c,\n\t\t\tinputSeq: _,\n\t\t\tlastTSsuggestion: y,\n\t\t\tgradedSeq: p,\n\t\t\tgraded: m,\n\t\t\tpromptText: te,\n\t\t\tfirstNoteChroma: j,\n\t\t\tprogressBar: C,\n\t\t\tinputVisRef: D,\n\t\t\tclearAttempt,\n\t\t\tnotesOn: x\n\t\t};\n\t}\n}), Qe = {\n\tkey: 0,\n\t\"data-viewable\": \"Playback\"\n}, $e = { key: 0 }, et = { class: \"text-h4\" }, tt = { class: \"text-h5\" }, nt = { key: 0 }, rt = { class: \"progressContainer\" }, it = {\n\tid: \"progress\",\n\tref: \"progressBar\"\n}, at = { key: 1 }, ot = { key: 2 };\nfunction _sfc_render$1(e, t, n, r, i, a) {\n\tlet o = b(\"note-display\"), p = b(\"v-icon\"), m = b(\"v-btn\"), h = b(\"syllable-seq-vis\");\n\treturn e.initialized ? (_(), l(\"div\", Qe, [e.state === \"ready\" ? (_(), l(\"div\", $e, [\n\t\tu(\"div\", et, [d(x(e.promptText) + \" \", 1), f(o, { chroma: e.firstNoteChroma }, null, 8, [\"chroma\"])]),\n\t\tu(\"div\", tt, [t[0] ||= d(\"Listen...\"), e.recording ? (_(), l(\"span\", nt, \" and Repeat\")) : c(\"\", !0)]),\n\t\tu(\"div\", rt, [u(\"div\", it, null, 512)]),\n\t\tf(m, {\n\t\t\tcolor: \"primary\",\n\t\t\tautofocus: \"\",\n\t\t\tonClick: e.clearAttempt\n\t\t}, {\n\t\t\tdefault: S(() => [t[2] ||= d(\" Play again \"), f(p, { end: \"\" }, {\n\t\t\t\tdefault: S(() => t[1] ||= [d(\"volume_up\")]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t}, 8, [\"onClick\"]),\n\t\t(_(), s(h, {\n\t\t\tkey: 0,\n\t\t\tref: \"inputVisRef\",\n\t\t\tseq: e.inputSeq,\n\t\t\t\"last-t-ssuggestion\": e.lastTSsuggestion\n\t\t}, null, 8, [\"seq\", \"last-t-ssuggestion\"])),\n\t\te.graded ? (_(), s(h, {\n\t\t\tkey: 1,\n\t\t\tseq: e.gradedSeq\n\t\t}, null, 8, [\"seq\"])) : c(\"\", !0)\n\t])) : e.state === \"nodevice\" ? (_(), l(\"div\", at, \"No midi device detected. Please attach one!\")) : e.state === \"notsupported\" ? (_(), l(\"div\", ot, t[3] ||= [u(\"p\", null, \"This exercise requires a midi input device, which is not supported by this browser ☹\", -1), u(\"div\", null, [u(\"p\", null, \"Please try again with one of the following browsers:\"), u(\"ul\", null, [\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://www.google.com/chrome/\" }, \"Google Chrome\")]),\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://www.microsoft.com/edge\" }, \"Microsoft Edge\")]),\n\t\tu(\"li\", null, [u(\"a\", { href: \"https://brave.com/\" }, \"Brave\")])\n\t])], -1)])) : c(\"\", !0)])) : c(\"\", !0);\n}\nn(_sfc_render$1, \"_sfc_render\");\nvar st = /* @__PURE__ */ r(Ze, [[\"render\", _sfc_render$1]]), ct = [{\n\tname: \"Melody\",\n\ttype: O.MIDI\n}], Q = class EchoQuestion extends C {\n\tstatic dataShapes = [{\n\t\tfields: ct,\n\t\tname: D.PIANO_Echo\n\t}];\n\tstatic views = [st];\n\tmidi;\n\tconstructor(e) {\n\t\tsuper(e), this.midi = e[0].Melody;\n\t}\n\tget duration() {\n\t\treturn this.midi.reduce((e, t) => t.timestamp > e.timestamp ? t : e).timestamp;\n\t}\n\tget lastNoteOnTimestamp() {\n\t\treturn this.midi.filter((e) => e.type === \"noteon\").reduce((e, t) => t.timestamp > e.timestamp ? t : e).timestamp;\n\t}\n\tisCorrect(e) {\n\t\tlet t = eventsToSyllableSequence(this.midi), n = eventsToSyllableSequence(e);\n\t\ttry {\n\t\t\treturn t.grade(n).isCorrect();\n\t\t} catch (e) {\n\t\t\treturn console.log(\"ERROR grading this midi sequence!\", e), !1;\n\t\t}\n\t}\n\tdataShapes() {\n\t\treturn EchoQuestion.dataShapes;\n\t}\n\tviews() {\n\t\treturn EchoQuestion.views;\n\t}\n}, lt = p({\n\tname: \"NotePlayback\",\n\tcomponents: {},\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 = ee(e, t, \"NotePlayback\"), r = E(n), i = v(), a = v(!1), s = v(!1), c = v(0), l = v(A.utc()), u = v(0), d = v(eventsToSyllableSequence([])), f = v(!1), p = v(eventsToSyllableSequence([])), m = v(\"\");\n\t\tr.question.value = new $(e.data);\n\t\tlet h = o(() => new $(e.data)), record = () => {\n\t\t\ti.value?.record(), s.value = !0, i.value?.addNoteonListenter((e) => {\n\t\t\t\tp.value.append(e);\n\t\t\t}), i.value?.addNoteoffListenter(() => {\n\t\t\t\ti.value?.recording?.length && i.value?.recording?.length >= 2 && submit();\n\t\t\t});\n\t\t}, play = () => {\n\t\t\ti.value?.stopRecording(), i.value?.eraseRecording(), l.value = A.utc(), s.value = !1, c.value = 0, record();\n\t\t}, submit = () => i.value?.recording ? (p.value = eventsToSyllableSequence([]), r.submitAnswer(i.value.recording).isCorrect ? !0 : (u.value++, f.value = !0, u.value < r.maxAttemptsPerView.value && play(), !1)) : !1;\n\t\treturn g(async () => {\n\t\t\ttry {\n\t\t\t\ti.value = await Z.instance(), m.value = h.value.note, play(), a.value = !0;\n\t\t\t} catch (e) {\n\t\t\t\tn.logger.error(\"Failed to initialize MIDI:\", e);\n\t\t\t}\n\t\t}), {\n\t\t\t...n,\n\t\t\t...r,\n\t\t\tinitialized: a,\n\t\t\trecording: s,\n\t\t\tinputSeq: p,\n\t\t\tgradedSeq: d,\n\t\t\tgraded: f,\n\t\t\tnote: m,\n\t\t\tattempts: u\n\t\t};\n\t}\n}), ut = { \"data-viewable\": \"NotePlayback\" }, dt = { class: \"text-h4\" }, ft = { class: \"font-weight-bold\" }, pt = {\n\tkey: 0,\n\tid: \"svg8\",\n\twidth: \"300px\",\n\theight: \"auto\",\n\t\"xmlns:dc\": \"http://purl.org/dc/elements/1.1/\",\n\t\"xmlns:cc\": \"http://creativecommons.org/ns#\",\n\t\"xmlns:rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n\t\"xmlns:svg\": \"http://www.w3.org/2000/svg\",\n\txmlns: \"http://www.w3.org/2000/svg\",\n\t\"xmlns:sodipodi\": \"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\n\t\"xmlns:inkscape\": \"http://www.inkscape.org/namespaces/inkscape\",\n\t\"sodipodi:docname\": \"keys.svg\",\n\t\"inkscape:version\": \"1.0rc1 (09960d6f05, 2020-04-09)\",\n\tversion: \"1.1\",\n\tviewBox: \"0 0 175.24936 73.594925\"\n}, mt = { id: \"metadata5\" };\nfunction _sfc_render(e, t, n, r, i, a) {\n\tlet o = b(\"sodipodi:namedview\"), s = b(\"dc:format\"), p = b(\"dc:type\"), m = b(\"dc:title\"), h = b(\"cc:Work\"), g = b(\"rdf:RDF\");\n\treturn _(), l(\"div\", ut, [u(\"div\", dt, [t[0] ||= d(\" Play the note: \"), u(\"span\", ft, x(e.note), 1)]), e.graded ? (_(), l(\"svg\", pt, [\n\t\tt[2] ||= u(\"defs\", { id: \"defs2\" }, null, -1),\n\t\tf(o, {\n\t\t\tid: \"base\",\n\t\t\t\"inkscape:window-maximized\": \"1\",\n\t\t\t\"inkscape:window-y\": \"726\",\n\t\t\t\"inkscape:window-x\": \"1491\",\n\t\t\t\"inkscape:window-height\": \"1321\",\n\t\t\t\"inkscape:window-width\": \"2400\",\n\t\t\tshowborder: \"false\",\n\t\t\tshowgrid: \"false\",\n\t\t\t\"inkscape:document-rotation\": \"0\",\n\t\t\t\"inkscape:current-layer\": \"layer1\",\n\t\t\t\"inkscape:document-units\": \"mm\",\n\t\t\t\"inkscape:cy\": \"255.88343\",\n\t\t\t\"inkscape:cx\": \"754.94284\",\n\t\t\t\"inkscape:zoom\": \"0.98994949\",\n\t\t\t\"inkscape:pageshadow\": \"2\",\n\t\t\t\"inkscape:pageopacity\": \"0.0\",\n\t\t\tborderopacity: \"1.0\",\n\t\t\tbordercolor: \"#666666\",\n\t\t\tpagecolor: \"#ffffff\"\n\t\t}),\n\t\tu(\"metadata\", mt, [f(g, null, {\n\t\t\tdefault: S(() => [f(h, { \"rdf:about\": \"\" }, {\n\t\t\t\tdefault: S(() => [\n\t\t\t\t\tf(s, null, {\n\t\t\t\t\t\tdefault: S(() => t[1] ||= [d(\"image/svg+xml\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}),\n\t\t\t\t\tf(p, { \"rdf:resource\": \"http://purl.org/dc/dcmitype/StillImage\" }),\n\t\t\t\t\tf(m)\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t})]),\n\t\tt[3] ||= u(\"g\", {\n\t\t\tid: \"layer1\",\n\t\t\ttransform: \"translate(167.75219,-151.96011)\",\n\t\t\t\"inkscape:groupmode\": \"layer\",\n\t\t\t\"inkscape:label\": \"Layer 1\"\n\t\t}, [\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845\",\n\t\t\t\ty: \"152.19064\",\n\t\t\t\tx: \"-150.12129\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-9\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-132.63466\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-6\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-115.14803\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-0\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-45.20153\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-92\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-80.174782\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-3\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-62.688156\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-4\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-97.661407\",\n\t\t\t\ty: \"152.19064\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\tx: \"-27.714905\",\n\t\t\t\ty: \"152.10745\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898\",\n\t\t\t\try: \"0\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-138.43532\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-3\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-120.84978\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-7\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-85.678711\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-8\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-68.09317\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-1\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-50.507633\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-1\",\n\t\t\t\ty: \"152.10745\",\n\t\t\t\tx: \"-10.228278\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect845-30-9\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\theight: \"73.220116\",\n\t\t\t\twidth: \"17.486626\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#ffffff\",\n\t\t\t\t\t\"fill-opacity\": \"0\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t}\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-4\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"10.466455\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-15.336554\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-74\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"4.4679713\",\n\t\t\t\theight: \"54.415863\",\n\t\t\t\tx: \"-167.60791\",\n\t\t\t\ty: \"152.10744\",\n\t\t\t\try: \"0\"\n\t\t\t}),\n\t\t\tu(\"rect\", {\n\t\t\t\tid: \"rect898-10\",\n\t\t\t\tstyle: {\n\t\t\t\t\tfill: \"#000000\",\n\t\t\t\t\t\"fill-opacity\": \"1\",\n\t\t\t\t\tstroke: \"#000000\",\n\t\t\t\t\t\"stroke-width\": \"0.79375\",\n\t\t\t\t\t\"stroke-miterlimit\": \"4\",\n\t\t\t\t\t\"stroke-dasharray\": \"none\",\n\t\t\t\t\t\"stroke-opacity\": \"1\"\n\t\t\t\t},\n\t\t\t\twidth: \"5.1863246\",\n\t\t\t\theight: \"54.507248\",\n\t\t\t\tx: \"2.2092075\",\n\t\t\t\ty: \"152.06175\",\n\t\t\t\try: \"0\"\n\t\t\t})\n\t\t], -1)\n\t])) : c(\"\", !0)]);\n}\nvar ht = /* @__PURE__ */ r(lt, [[\"render\", _sfc_render]]), gt = [{\n\tname: \"Note\",\n\ttype: O.STRING\n}], _t = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"A♯\",\n\t\"C♯\",\n\t\"D♯\",\n\t\"F♯\",\n\t\"G♯\",\n\t\"D♭\",\n\t\"E♭\",\n\t\"G♭\",\n\t\"A♭\",\n\t\"B♭\"\n], $ = class PlayNote extends C {\n\tstatic dataShapes = [{\n\t\tfields: gt,\n\t\tname: D.PIANO_PlayNote\n\t}];\n\tstatic seedData = _t.map((e) => ({ Note: e }));\n\tstatic views = [ht];\n\tnote;\n\tconstructor(e) {\n\t\tsuper(e), this.note = e[0].Note;\n\t}\n\tisCorrect(e) {\n\t\treturn e[0].note.name === this.note;\n\t}\n\tdataShapes() {\n\t\treturn PlayNote.dataShapes;\n\t}\n\tviews() {\n\t\treturn PlayNote.views;\n\t}\n}, vt = new i(\"piano\", [Q, $]);\n//#endregion\nexport { eventsToSyllableSequence as a, He as i, Ke as n, transposeSyllableSeq as o, Z as r, vt as t };\n\n//# sourceMappingURL=piano-DF1g6yaX.js.map","import { r as e, t } from \"./shapes-BQUVJdp5.js\";\nimport { i as n, n as r, r as i, t as a } from \"./CourseWare-BTFRjgBR.js\";\nimport { t as o } from \"./chess-BbHATAzk.js\";\nimport { t as s } from \"./french-Dk7YG8Td.js\";\nimport { t as c } from \"./math-B4HbgYf6.js\";\nimport { a as l, i as u, n as d, o as f, r as p, t as m } from \"./piano-DF1g6yaX.js\";\nimport { t as h } from \"./pitch-CgGJFkZ1.js\";\nimport { t as g } from \"./sightsing-BFQ7HRig.js\";\nimport { t as _ } from \"./typing-BevtfWlp.js\";\nimport { t as v } from \"./word-work-BOnRlZgd.js\";\nimport { Fragment as y, computed as b, createBlock as x, createCommentVNode as S, createElementBlock as C, createElementVNode as w, createTextVNode as T, createVNode as E, defineComponent as D, markRaw as O, onMounted as k, openBlock as A, ref as j, renderList as M, resolveComponent as N, toDisplayString as P, watch as F, withCtx as I } from \"vue\";\nimport { Displayable as L, Question as R, alertUser as z, useQuestionView as ee, useViewable as te } from \"@vue-skuilder/common-ui\";\nimport { NameSpacer as B, Status as V } from \"@vue-skuilder/common\";\nimport { getDataLayer as H } from \"@vue-skuilder/db\";\nimport './assets/index.css';//#region src/default/index.ts\nvar U = new a(\"default\", [r]), W = D({\n\tname: \"PianoRangeVisualizer\",\n\tprops: {\n\t\tlowestNote: {\n\t\t\ttype: Number,\n\t\t\trequired: !0\n\t\t},\n\t\thighestNote: {\n\t\t\ttype: Number,\n\t\t\trequired: !0\n\t\t},\n\t\tmaxWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1e3\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = j(null), n = j(800), r = b(() => {\n\t\t\tlet e = 0;\n\t\t\tfor (let t = 21; t <= 108; t++) isWhiteKey(t) && e++;\n\t\t\treturn e;\n\t\t}), i = b(() => Math.min(22, n.value / Math.max(25, r.value))), a = b(() => i.value * .6), o = b(() => Math.min(e.maxWidth, i.value * r.value + 10)), isWhiteKey = (e) => {\n\t\t\tlet t = e % 12;\n\t\t\treturn [\n\t\t\t\t0,\n\t\t\t\t2,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t7,\n\t\t\t\t9,\n\t\t\t\t11\n\t\t\t].includes(t);\n\t\t}, getKeyPosition = (e) => {\n\t\t\tlet t = 0;\n\t\t\tfor (let n = 21; n < e; n++) isWhiteKey(n) && t++;\n\t\t\treturn isWhiteKey(e) ? t * i.value : t * i.value - a.value / 2;\n\t\t}, getNoteLabel = (e) => {\n\t\t\tlet t = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], n = e % 12, r = Math.floor(e / 12) - 1;\n\t\t\treturn `${t[n]}${r}`;\n\t\t};\n\t\treturn k(() => {\n\t\t\tt.value && (n.value = t.value.clientWidth, new ResizeObserver((e) => {\n\t\t\t\tfor (let t of e) n.value = t.contentRect.width;\n\t\t\t}).observe(t.value));\n\t\t}), {\n\t\t\tpianoWrapper: t,\n\t\t\tkeyHeight: 100,\n\t\t\tblackKeyHeight: 60,\n\t\t\twhiteKeyWidth: i,\n\t\t\tblackKeyWidth: a,\n\t\t\tsvgWidth: o,\n\t\t\tisWhiteKey,\n\t\t\tgetKeyPosition,\n\t\t\tgetNoteLabel\n\t\t};\n\t}\n}), G = { class: \"piano-range-container\" }, K = {\n\tclass: \"piano-wrapper\",\n\tref: \"pianoWrapper\"\n}, q = [\"width\", \"height\"], J = {\n\tclass: \"background-keys\",\n\topacity: \"0.15\"\n}, Y = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], X = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], Z = { class: \"selected-range\" }, ne = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], re = [\n\t\"x\",\n\t\"width\",\n\t\"height\"\n], ie = { class: \"range-markers\" }, ae = [\"x\", \"height\"], oe = [\"x\", \"height\"], se = [\"x\", \"y\"], ce = [\"x\", \"y\"];\nfunction _sfc_render$1(e, t, n, r, i, a) {\n\treturn A(), C(\"div\", G, [w(\"div\", K, [(A(), C(\"svg\", {\n\t\twidth: e.svgWidth,\n\t\theight: e.keyHeight + 20,\n\t\tclass: \"piano-svg\"\n\t}, [\n\t\tw(\"g\", J, [(A(), C(y, null, M(88, (t) => (A(), C(y, { key: `bg-${t}` }, [e.isWhiteKey(t + 20) ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t + 20),\n\t\t\ty: \"0\",\n\t\t\twidth: e.whiteKeyWidth,\n\t\t\theight: e.keyHeight,\n\t\t\tclass: \"white-key\",\n\t\t\tstroke: \"#999\",\n\t\t\t\"stroke-width\": \"1\"\n\t\t}, null, 8, Y)) : S(\"\", !0)], 64))), 64)), (A(), C(y, null, M(88, (t) => (A(), C(y, { key: `bg-black-${t}` }, [e.isWhiteKey(t + 20) ? S(\"\", !0) : (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t + 20),\n\t\t\ty: \"0\",\n\t\t\twidth: e.blackKeyWidth,\n\t\t\theight: e.blackKeyHeight,\n\t\t\tclass: \"black-key\"\n\t\t}, null, 8, X))], 64))), 64))]),\n\t\tw(\"g\", Z, [(A(), C(y, null, M(128, (t) => (A(), C(y, { key: `white-${t}` }, [e.isWhiteKey(t) && t >= e.lowestNote && t <= e.highestNote ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t),\n\t\t\ty: \"0\",\n\t\t\twidth: e.whiteKeyWidth,\n\t\t\theight: e.keyHeight,\n\t\t\tclass: \"white-key active\",\n\t\t\tstroke: \"#666\",\n\t\t\t\"stroke-width\": \"1\"\n\t\t}, null, 8, ne)) : S(\"\", !0)], 64))), 64)), (A(), C(y, null, M(128, (t) => (A(), C(y, { key: `black-${t}` }, [!e.isWhiteKey(t) && t >= e.lowestNote && t <= e.highestNote ? (A(), C(\"rect\", {\n\t\t\tkey: 0,\n\t\t\tx: e.getKeyPosition(t),\n\t\t\ty: \"0\",\n\t\t\twidth: e.blackKeyWidth,\n\t\t\theight: e.blackKeyHeight,\n\t\t\tclass: \"black-key active\"\n\t\t}, null, 8, re)) : S(\"\", !0)], 64))), 64))]),\n\t\tw(\"g\", ie, [w(\"rect\", {\n\t\t\tx: e.getKeyPosition(e.lowestNote) - 2,\n\t\t\ty: \"0\",\n\t\t\twidth: 4,\n\t\t\theight: e.keyHeight + 5,\n\t\t\tclass: \"range-marker start\"\n\t\t}, null, 8, ae), w(\"rect\", {\n\t\t\tx: e.getKeyPosition(e.highestNote) + e.whiteKeyWidth - 2,\n\t\t\ty: \"0\",\n\t\t\twidth: 4,\n\t\t\theight: e.keyHeight + 5,\n\t\t\tclass: \"range-marker end\"\n\t\t}, null, 8, oe)]),\n\t\tw(\"text\", {\n\t\t\tx: e.getKeyPosition(e.lowestNote) + 3,\n\t\t\ty: e.keyHeight + 12,\n\t\t\tclass: \"note-label\"\n\t\t}, P(e.getNoteLabel(e.lowestNote)), 9, se),\n\t\tw(\"text\", {\n\t\t\tx: e.getKeyPosition(e.highestNote) + e.whiteKeyWidth - 3,\n\t\t\ty: e.keyHeight + 12,\n\t\t\t\"text-anchor\": \"end\",\n\t\t\tclass: \"note-label\"\n\t\t}, P(e.getNoteLabel(e.highestNote)), 9, ce)\n\t], 8, q))], 512)]);\n}\ne(_sfc_render$1, \"_sfc_render\");\n//#endregion\n//#region src/piano/utility/MidiConfig.vue?vue&type=script&lang.ts\nvar le = D({\n\tname: \"MidiConfig\",\n\tcomponents: { PianoRangeVisualizer: /* @__PURE__ */ i(W, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-4b232a8b\"]]) },\n\tprops: {\n\t\t_id: {\n\t\t\ttype: String,\n\t\t\trequired: !0\n\t\t},\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: !0\n\t\t}\n\t},\n\tsetup(e) {\n\t\tlet t = j(), n = j(!0), r = j([]), i = j([]), a = j(\"\"), o = j(\"\"), s = j(!1), c = j(\"\"), l = j(\"\"), u = j(!1), d = j(\"full-88\"), f = j(21), m = j(108), h = j(\"\"), g = j(0), _ = j(0), v = j([]), initNoteOptions = () => {\n\t\t\tlet e = [\n\t\t\t\t\"C\",\n\t\t\t\t\"C#\",\n\t\t\t\t\"D\",\n\t\t\t\t\"D#\",\n\t\t\t\t\"E\",\n\t\t\t\t\"F\",\n\t\t\t\t\"F#\",\n\t\t\t\t\"G\",\n\t\t\t\t\"G#\",\n\t\t\t\t\"A\",\n\t\t\t\t\"A#\",\n\t\t\t\t\"B\"\n\t\t\t], t = [];\n\t\t\tfor (let n = 0; n <= 127; n++) {\n\t\t\t\tlet r = Math.floor(n / 12) - 1, i = e[n % 12];\n\t\t\t\tt.push({\n\t\t\t\t\ttitle: `${i}${r} (${n})`,\n\t\t\t\t\tvalue: n\n\t\t\t\t});\n\t\t\t}\n\t\t\tv.value = t;\n\t\t}, y = j([\n\t\t\t{\n\t\t\t\ttitle: \"Full 88-key Piano (A0-C8)\",\n\t\t\t\tvalue: \"full-88\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"76-key Keyboard (E1-G7)\",\n\t\t\t\tvalue: \"76-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"61-key Keyboard (C2-C7)\",\n\t\t\t\tvalue: \"61-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"49-key Keyboard (C3-C7)\",\n\t\t\t\tvalue: \"49-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"37-key Keyboard (C3-C6)\",\n\t\t\t\tvalue: \"37-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"25-key Keyboard (C4-C6)\",\n\t\t\t\tvalue: \"25-key\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: \"Custom Range\",\n\t\t\t\tvalue: \"custom\"\n\t\t\t}\n\t\t]), checkConfigChanged = () => {\n\t\t\tu.value = a.value !== c.value || o.value !== l.value || d.value !== h.value || d.value === \"custom\" && (f.value !== g.value || m.value !== _.value);\n\t\t}, updateCustomRangeFromPreset = () => {\n\t\t\tswitch (d.value) {\n\t\t\t\tcase \"full-88\":\n\t\t\t\t\tf.value = 21, m.value = 108;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"76-key\":\n\t\t\t\t\tf.value = 28, m.value = 103;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"61-key\":\n\t\t\t\t\tf.value = 36, m.value = 96;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"49-key\":\n\t\t\t\t\tf.value = 48, m.value = 96;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"37-key\":\n\t\t\t\t\tf.value = 48, m.value = 84;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"25-key\":\n\t\t\t\t\tf.value = 60, m.value = 84;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcheckConfigChanged();\n\t\t}, updateRangeAndCheckChanges = () => {\n\t\t\tf.value >= m.value && (m.value = f.value + 12), checkConfigChanged();\n\t\t}, playSound = () => {\n\t\t\tt.value?.play([\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .4251968503937008,\n\t\t\t\t\ttimestamp: 0\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3779527559055118,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 511.90500000002794\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5275590551181102,\n\t\t\t\t\ttimestamp: 535.8800000001211\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .33858267716535434,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 674.9899999999907\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5590551181102362,\n\t\t\t\t\ttimestamp: 1070.8800000000047\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3464566929133858,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1214.8999999999069\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5118110236220472,\n\t\t\t\t\ttimestamp: 1424.9400000000605\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 64,\n\t\t\t\t\t\tname: \"E\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .2755905511811024,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1576.9150000000373\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 62,\n\t\t\t\t\t\tname: \"D\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .3937007874015748,\n\t\t\t\t\ttimestamp: 1756.9149999999208\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 62,\n\t\t\t\t\t\tname: \"D\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .36220472440944884,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 1926.9899999998743\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5196850393700787,\n\t\t\t\t\ttimestamp: 1970.9600000000792\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .36220472440944884,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 2126.009999999893\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .5984251968503937,\n\t\t\t\t\ttimestamp: 2502.0050000000047\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 60,\n\t\t\t\t\t\tname: \"C\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .3858267716535433,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 2853.920000000042\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 67,\n\t\t\t\t\t\tname: \"G\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"noteon\",\n\t\t\t\t\tvelocity: .6850393700787402,\n\t\t\t\t\ttimestamp: 2875.8649999999907\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnote: {\n\t\t\t\t\t\tnumber: 67,\n\t\t\t\t\t\tname: \"G\",\n\t\t\t\t\t\toctave: 4\n\t\t\t\t\t},\n\t\t\t\t\tvelocity: .6377952755905512,\n\t\t\t\t\ttype: \"noteoff\",\n\t\t\t\t\ttimestamp: 4497.004999999888\n\t\t\t\t}\n\t\t\t]);\n\t\t}, indicateHeardNotes = (e) => {\n\t\t\tz({\n\t\t\t\ttext: `I hear a ${e.note.name}!`,\n\t\t\t\tstatus: V.ok\n\t\t\t});\n\t\t};\n\t\tF(a, () => {\n\t\t\tt.value?.selectInput(a.value), checkConfigChanged();\n\t\t}), F(o, () => {\n\t\t\tt.value?.selectOutput(o.value), checkConfigChanged();\n\t\t});\n\t\tlet retrieveSettings = async () => {\n\t\t\tlet t = await (await e.user.getCourseInterface(e._id)).getCourseSettings();\n\t\t\tif (t?.midiinput) {\n\t\t\t\tlet e = t.midiinput.toString();\n\t\t\t\tr.value.some((t) => t.value === e) && (a.value = e, c.value = e);\n\t\t\t}\n\t\t\tif (t?.midioutput) {\n\t\t\t\tlet e = t.midioutput.toString();\n\t\t\t\ti.value.some((t) => t.value === e) && (o.value = e, l.value = e);\n\t\t\t}\n\t\t\tt?.keyboardRange && (h.value = t.keyboardRange.toString(), d.value = h.value), t?.lowestNote && (g.value = parseInt(t.lowestNote.toString()), f.value = g.value), t?.highestNote && (_.value = parseInt(t.highestNote.toString()), m.value = _.value), t?.lowestNote && t?.highestNote && !t?.keyboardRange && (d.value = \"custom\"), u.value = !1;\n\t\t}, saveSettings = async () => {\n\t\t\ts.value = !0, (await H().getUserDB().getCourseInterface(e._id)).updateCourseSettings([\n\t\t\t\t{\n\t\t\t\t\tkey: \"midiinput\",\n\t\t\t\t\tvalue: a.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"midioutput\",\n\t\t\t\t\tvalue: o.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"keyboardRange\",\n\t\t\t\t\tvalue: d.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"lowestNote\",\n\t\t\t\t\tvalue: f.value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: \"highestNote\",\n\t\t\t\t\tvalue: m.value\n\t\t\t\t}\n\t\t\t]), c.value = a.value, l.value = o.value, h.value = d.value, g.value = f.value, _.value = m.value, u.value = !1, s.value = !1, z({\n\t\t\t\ttext: \"Settings updated.\",\n\t\t\t\tstatus: V.ok\n\t\t\t});\n\t\t};\n\t\treturn k(async () => {\n\t\t\tinitNoteOptions();\n\t\t\ttry {\n\t\t\t\tt.value = await p.instance(), n.value = t.value.state === \"ready\" || t.value.state === \"nodevice\";\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(`Error on midi Init: ${e}`), n.value = !1;\n\t\t\t}\n\t\t\tn.value && (t.value?.addNoteonListenter(indicateHeardNotes), t.value ? (r.value = t.value.inputs.filter((e) => e.state === \"connected\").map((e) => ({\n\t\t\t\ttitle: `${e.manufacturer}: ${e.name}`,\n\t\t\t\tvalue: e.id\n\t\t\t})), i.value = t.value?.outputs.filter((e) => e.state === \"connected\").map((e) => ({\n\t\t\t\ttitle: `${e.manufacturer}: ${e.name}`,\n\t\t\t\tvalue: e.id\n\t\t\t}))) : (r.value = [{\n\t\t\t\ttitle: \"No inputs available\",\n\t\t\t\tvalue: \"\"\n\t\t\t}], i.value = [{\n\t\t\t\ttitle: \"No outputs available\",\n\t\t\t\tvalue: \"\"\n\t\t\t}]), await retrieveSettings(), !a.value && r.value.length > 0 && (a.value = r.value[0].value), !o.value && i.value.length > 0 && (o.value = i.value[0].value));\n\t\t}), {\n\t\t\tmidiSupported: n,\n\t\t\tinputs: r,\n\t\t\toutputs: i,\n\t\t\tselectedInput: a,\n\t\t\tselectedOutput: o,\n\t\t\tupdatePending: s,\n\t\t\tplaySound,\n\t\t\tsaveSettings,\n\t\t\tconfigChanged: u,\n\t\t\tlowestNote: f,\n\t\t\thighestNote: m,\n\t\t\tkeyboardRangeOptions: y,\n\t\t\tselectedKeyboardRange: d,\n\t\t\tnoteOptions: v,\n\t\t\tupdateCustomRangeFromPreset,\n\t\t\tupdateRangeAndCheckChanges\n\t\t};\n\t}\n}), Q = {\n\tkey: 0,\n\tclass: \"custom-range-inputs d-flex gap-4\"\n}, ue = { class: \"d-flex justify-space-between mt-3\" }, de = { key: 1 };\nfunction _sfc_render(e, t, n, r, i, a) {\n\tlet o = N(\"v-toolbar-title\"), s = N(\"v-toolbar\"), c = N(\"v-select\"), l = N(\"v-divider\"), u = N(\"piano-range-visualizer\"), d = N(\"v-btn\"), f = N(\"v-form\"), p = N(\"v-card-text\"), m = N(\"v-card\");\n\treturn A(), x(m, null, {\n\t\tdefault: I(() => [E(s, { dense: \"\" }, {\n\t\t\tdefault: I(() => [E(o, null, {\n\t\t\t\tdefault: I(() => t[5] ||= [T(\"Configure Midi Device\")]),\n\t\t\t\t_: 1\n\t\t\t})]),\n\t\t\t_: 1\n\t\t}), E(p, null, {\n\t\t\tdefault: I(() => [e.midiSupported ? (A(), x(f, {\n\t\t\t\tkey: 0,\n\t\t\t\tonsubmit: \"return false;\"\n\t\t\t}, {\n\t\t\t\tdefault: I(() => [\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedInput,\n\t\t\t\t\t\t\"onUpdate:modelValue\": t[0] ||= (t) => e.selectedInput = t,\n\t\t\t\t\t\titems: e.inputs,\n\t\t\t\t\t\tlabel: \"Select Input\",\n\t\t\t\t\t\thint: \"Play some notes on your input device to test the connection\"\n\t\t\t\t\t}, null, 8, [\"modelValue\", \"items\"]),\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedOutput,\n\t\t\t\t\t\t\"onUpdate:modelValue\": t[1] ||= (t) => e.selectedOutput = t,\n\t\t\t\t\t\titems: e.outputs,\n\t\t\t\t\t\tlabel: \"Select Output\"\n\t\t\t\t\t}, null, 8, [\"modelValue\", \"items\"]),\n\t\t\t\t\tE(l, { class: \"my-4\" }),\n\t\t\t\t\tt[8] ||= w(\"h3\", { class: \"text-subtitle-1 mb-2\" }, \"Keyboard Range\", -1),\n\t\t\t\t\tE(c, {\n\t\t\t\t\t\tmodelValue: e.selectedKeyboardRange,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[2] ||= (t) => e.selectedKeyboardRange = t, e.updateCustomRangeFromPreset],\n\t\t\t\t\t\titems: e.keyboardRangeOptions,\n\t\t\t\t\t\tlabel: \"Select Keyboard Range\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t]),\n\t\t\t\t\te.selectedKeyboardRange === \"custom\" ? (A(), C(\"div\", Q, [E(c, {\n\t\t\t\t\t\tmodelValue: e.lowestNote,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[3] ||= (t) => e.lowestNote = t, e.updateRangeAndCheckChanges],\n\t\t\t\t\t\titems: e.noteOptions,\n\t\t\t\t\t\tlabel: \"Lowest Note\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t]), E(c, {\n\t\t\t\t\t\tmodelValue: e.highestNote,\n\t\t\t\t\t\t\"onUpdate:modelValue\": [t[4] ||= (t) => e.highestNote = t, e.updateRangeAndCheckChanges],\n\t\t\t\t\t\titems: e.noteOptions,\n\t\t\t\t\t\tlabel: \"Highest Note\"\n\t\t\t\t\t}, null, 8, [\n\t\t\t\t\t\t\"modelValue\",\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\t\"onUpdate:modelValue\"\n\t\t\t\t\t])])) : S(\"\", !0),\n\t\t\t\t\tE(u, {\n\t\t\t\t\t\t\"lowest-note\": e.lowestNote,\n\t\t\t\t\t\t\"highest-note\": e.highestNote\n\t\t\t\t\t}, null, 8, [\"lowest-note\", \"highest-note\"]),\n\t\t\t\t\tw(\"div\", ue, [E(d, {\n\t\t\t\t\t\tcolor: \"primary\",\n\t\t\t\t\t\tonClick: e.playSound\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: I(() => t[6] ||= [T(\"Test midi output\")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}, 8, [\"onClick\"]), E(d, {\n\t\t\t\t\t\tloading: e.updatePending,\n\t\t\t\t\t\tdisabled: !e.configChanged && !e.updatePending,\n\t\t\t\t\t\tcolor: \"info\",\n\t\t\t\t\t\tclass: \"save-button\",\n\t\t\t\t\t\tonClick: e.saveSettings\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: I(() => t[7] ||= [T(\" Save these settings \")]),\n\t\t\t\t\t\t_: 1\n\t\t\t\t\t}, 8, [\n\t\t\t\t\t\t\"loading\",\n\t\t\t\t\t\t\"disabled\",\n\t\t\t\t\t\t\"onClick\"\n\t\t\t\t\t])])\n\t\t\t\t]),\n\t\t\t\t_: 1\n\t\t\t})) : (A(), C(\"div\", de, t[9] ||= [w(\"p\", null, \"This quilt requires a midi input device, which is not supported by this browser.\", -1), w(\"div\", null, [w(\"p\", null, \"Try one of the following browsers:\"), w(\"ul\", null, [\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://www.google.com/chrome/\" }, \"Google Chrome\")]),\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://www.microsoft.com/edge\" }, \"Microsoft Edge\")]),\n\t\t\t\tw(\"li\", null, [w(\"a\", { href: \"https://brave.com/\" }, \"Brave\")])\n\t\t\t])], -1)]))]),\n\t\t\t_: 1\n\t\t})]),\n\t\t_: 1\n\t});\n}\nvar fe = /* @__PURE__ */ i(le, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6ee9020f\"]]), pe = ee;\nasync function loadSubcourse(e) {\n\tlet t;\n\tswitch (e) {\n\t\tcase \"chess\":\n\t\t\tt = await import(\"./chess-X1bmWmh3.js\");\n\t\t\tbreak;\n\t\tcase \"french\":\n\t\t\tt = await import(\"./french-evUMlbbq.js\");\n\t\t\tbreak;\n\t\tcase \"math\":\n\t\t\tt = await import(\"./math-DYni7rRl.js\");\n\t\t\tbreak;\n\t\tcase \"piano\":\n\t\t\tt = await import(\"./piano-BN5Btq91.js\");\n\t\t\tbreak;\n\t\tcase \"pitch\":\n\t\t\tt = await import(\"./pitch-Dn0iNqiS.js\");\n\t\t\tbreak;\n\t\tcase \"sightSing\":\n\t\t\tt = await import(\"./sightsing-CJX3k0Fd.js\");\n\t\t\tbreak;\n\t\tcase \"typing\":\n\t\t\tt = await import(\"./typing-k-ojjO7G.js\");\n\t\t\tbreak;\n\t\tcase \"wordWork\":\n\t\t\tt = await import(\"./word-work-Dd6tIKrt.js\");\n\t\t\tbreak;\n\t}\n\tlet n = t.default;\n\treturn $.courses.find((e) => e.name === n.name) || $.courses.push(n), n;\n}\nasync function loadAllSubcourses() {\n\tawait Promise.all([\n\t\t\"chess\",\n\t\t\"french\",\n\t\t\"math\",\n\t\t\"piano\",\n\t\t\"pitch\",\n\t\t\"sightSing\",\n\t\t\"typing\",\n\t\t\"wordWork\"\n\t].map((e) => loadSubcourse(e)));\n}\nvar AllCourseWare = class {\n\tcourseWareList;\n\tget courses() {\n\t\treturn this.courseWareList;\n\t}\n\tconstructor(e) {\n\t\tthis.courseWareList = e;\n\t}\n\tgetCourseWare(e) {\n\t\treturn this.courseWareList.find((t) => t.name === e);\n\t}\n\tcachedRawViews = null;\n\tallViewsRaw() {\n\t\tif (!this.cachedRawViews) {\n\t\t\tlet e = this.allViews();\n\t\t\tthis.cachedRawViews = Object.fromEntries(Object.entries(e).map(([e, t]) => [e, O(t)]));\n\t\t}\n\t\treturn this.cachedRawViews;\n\t}\n\tallViews() {\n\t\tlet e = {};\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tObject.assign(e, t.allViewsMap);\n\t\t}), e;\n\t}\n\tgetView(e) {\n\t\tlet t;\n\t\tt = typeof e == \"string\" ? B.getViewDescriptor(e) : e;\n\t\tlet n = this.getCourseWare(t.course);\n\t\tif (n) {\n\t\t\tlet e = n.getQuestion(t.questionType);\n\t\t\tif (e) {\n\t\t\t\tlet r = e.views.find((e) => e.name === t.view);\n\t\t\t\tif (r) return r;\n\t\t\t\tthrow console.error(`QuestionView ${t.view} not found in course ${t.course}\n\n descriptor: ${JSON.stringify(t)}\n\n course: ${n.name}\n question: ${e.name}\n views: ${e.views.map((e) => e.name).join(\", \")}\n `), Error(`view ${t.view} does not exist.`);\n\t\t\t} else throw console.error(`Question ${t.questionType} not found in course ${t.course}\n\n descriptor: ${JSON.stringify(t)}\n\n course: ${n.name}\n questions: ${n.questions.map((e) => e.name).join(\", \")}\n `), Error(`question ${t.questionType} does not exist.`);\n\t\t} else throw console.error(`Course ${t.course} not found.\n\n descriptor: ${JSON.stringify(t)}`), Error(`course ${t.course} does not exist.`);\n\t}\n\ttoString() {\n\t\tlet e = \"\";\n\t\treturn this.courses.forEach((t) => {\n\t\t\te += `Course: ${t.name}\\n`, t.questions.forEach((t) => {\n\t\t\t\te += ` Question: ${t.name}\\n`, t.views.forEach((t) => {\n\t\t\t\t\te += ` View: ${t.name}\\n`;\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tallDataShapesRaw() {\n\t\tlet e = [];\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tt.questions.forEach((t) => {\n\t\t\t\tt.dataShapes.forEach((t) => {\n\t\t\t\t\te.includes(t) || e.push(t);\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tallDataShapes() {\n\t\tlet e = [];\n\t\treturn this.courseWareList.forEach((t) => {\n\t\t\tt.questions.forEach((n) => {\n\t\t\t\tn.dataShapes.forEach((r) => {\n\t\t\t\t\te.findIndex((e) => e.course === t.name && e.dataShape === r.name) === -1 && e.push({\n\t\t\t\t\t\tcourse: t.name,\n\t\t\t\t\t\tdataShape: r.name,\n\t\t\t\t\t\tdisplayable: n\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}), e;\n\t}\n\tgetDataShape(e) {\n\t\tlet t;\n\t\tif (this.getCourseWare(e.course).questions.forEach((n) => {\n\t\t\tn.dataShapes.forEach((n) => {\n\t\t\t\tn.name === e.dataShape && (t = n);\n\t\t\t});\n\t\t}), t) return t;\n\t\tthrow Error(`DataShape ${B.getDataShapeString(e)} not found`);\n\t}\n}, $ = new AllCourseWare([]);\n//#endregion\nexport { AllCourseWare, r as BlanksCard, t as BlanksCardDataShapes, a as CourseWare, L as Displayable, fe as MidiConfig, R as Question, p as SkMidi, d as SyllableSeqVis, u as SyllableSequence, $ as allCourseWare, o as chess, U as defaultCourse, l as eventsToSyllableSequence, s as french, n as gradeSpellingAttempt, loadAllSubcourses, loadSubcourse, c as math, m as piano, h as pitch, g as sightSing, f as transposeSyllableSeq, _ as typing, pe as useQuestionView, te as useViewable, v as wordWork };\n\n//# sourceMappingURL=index.mjs.map","<template>\n <div>\n <p>HELLO WORLD</p>\n <p>{{ questionText }}</p>\n <input v-model=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Your answer\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'SimpleTextQuestionView',\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'SimpleTextQuestionView');\nconst questionUtils = useQuestionView<SimpleTextQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new SimpleTextQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new SimpleTextQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n questionUtils.submitAnswer({ response: userAnswer.value });\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","<template>\n <div>\n <p>HELLO WORLD</p>\n <p>{{ questionText }}</p>\n <input v-model=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Your answer\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'SimpleTextQuestionView',\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'SimpleTextQuestionView');\nconst questionUtils = useQuestionView<SimpleTextQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new SimpleTextQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new SimpleTextQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n questionUtils.submitAnswer({ response: userAnswer.value });\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport SimpleTextQuestionView from './SimpleTextQuestionView.vue';\n\nexport class SimpleTextQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'SimpleTextQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'correctAnswer', type: FieldType.STRING },\n ],\n },\n ];\n\n public static views = [markRaw(SimpleTextQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private questionText: string;\n private correctAnswer: string;\n\n constructor(data: ViewData[]) {\n super(data);\n this.questionText = data[0].questionText as string;\n this.correctAnswer = data[0].correctAnswer as string;\n }\n\n public dataShapes(): DataShape[] {\n return SimpleTextQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return SimpleTextQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n return (answer.response as string).toLowerCase() === this.correctAnswer.toLowerCase();\n }\n}\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <div v-for=\"(option, index) in options\" :key=\"index\">\n <input type=\"radio\" :id=\"`option-${index}`\" :value=\"option\" v-model=\"selectedAnswer\" />\n <label :for=\"`option-${index}`\">{{ option }}</label>\n </div>\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'MultipleChoiceQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst selectedAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'MultipleChoiceQuestionView');\nconst questionUtils = useQuestionView<MultipleChoiceQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new MultipleChoiceQuestion(props.data);\n\n// Extract question text and options from the question instance\nconst questionText = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any)._questionText || '';\n});\n\nconst options = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any).options || [];\n});\n\nconst submitAnswer = () => {\n if (selectedAnswer.value) {\n questionUtils.submitAnswer({ response: selectedAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <div v-for=\"(option, index) in options\" :key=\"index\">\n <input type=\"radio\" :id=\"`option-${index}`\" :value=\"option\" v-model=\"selectedAnswer\" />\n <label :for=\"`option-${index}`\">{{ option }}</label>\n </div>\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'MultipleChoiceQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst selectedAnswer = ref('');\n\nconst viewableUtils = useViewable(props, emit, 'MultipleChoiceQuestionView');\nconst questionUtils = useQuestionView<MultipleChoiceQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new MultipleChoiceQuestion(props.data);\n\n// Extract question text and options from the question instance\nconst questionText = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any)._questionText || '';\n});\n\nconst options = computed(() => {\n const question = new MultipleChoiceQuestion(props.data);\n return (question as any).options || [];\n});\n\nconst submitAnswer = () => {\n if (selectedAnswer.value) {\n questionUtils.submitAnswer({ response: selectedAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport MultipleChoiceQuestionView from './MultipleChoiceQuestionView.vue';\n\nexport class MultipleChoiceQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'MultipleChoiceQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'options', type: FieldType.STRING }, // Comma-separated string of options\n { name: 'correctAnswer', type: FieldType.STRING },\n ],\n },\n ];\n\n public static views = [markRaw(MultipleChoiceQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private _questionText: string;\n // @ts-expect-error TS6133: Used in Vue template\n private options: string[];\n private correctAnswer: string;\n\n constructor(data: ViewData[]) {\n super(data);\n this._questionText = data[0].questionText as string;\n this.options = (data[0].options as string).split(',').map((s) => s.trim());\n this.correctAnswer = data[0].correctAnswer as string;\n }\n\n public dataShapes(): DataShape[] {\n return MultipleChoiceQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return MultipleChoiceQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n return (answer.response as string) === this.correctAnswer;\n }\n}\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <input type=\"number\" v-model.number=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Enter a number\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'NumberRangeQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref<number | null>(null);\n\nconst viewableUtils = useViewable(props, emit, 'NumberRangeQuestionView');\nconst questionUtils = useQuestionView<NumberRangeQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new NumberRangeQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new NumberRangeQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n if (userAnswer.value !== null) {\n questionUtils.submitAnswer({ response: userAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","<template>\n <div>\n <p>{{ questionText }}</p>\n <input type=\"number\" v-model.number=\"userAnswer\" @keyup.enter=\"submitAnswer\" placeholder=\"Enter a number\" />\n <button @click=\"submitAnswer\">Submit</button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, PropType, defineOptions } from 'vue';\nimport { useViewable, useQuestionView } from '@vue-skuilder/courseware';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { ViewData } from '@vue-skuilder/common';\n\ndefineOptions({\n name: 'NumberRangeQuestionView'\n});\n\nconst props = defineProps({\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\nconst emit = defineEmits(['emit-response']);\n\nconst userAnswer = ref<number | null>(null);\n\nconst viewableUtils = useViewable(props, emit, 'NumberRangeQuestionView');\nconst questionUtils = useQuestionView<NumberRangeQuestion>(viewableUtils);\n\n// Initialize question\nquestionUtils.question.value = new NumberRangeQuestion(props.data);\n\n// Extract question text from the question instance\nconst questionText = computed(() => {\n const question = new NumberRangeQuestion(props.data);\n return (question as any).questionText || '';\n});\n\nconst submitAnswer = () => {\n if (userAnswer.value !== null) {\n questionUtils.submitAnswer({ response: userAnswer.value });\n }\n};\n</script>\n\n<style scoped>\n/* Add some basic styling if needed */\n</style>\n","import { ViewData, Answer, Question } from '@vue-skuilder/courseware';\nimport { FieldType, DataShape, DataShapeName } from '@vue-skuilder/common';\nimport { markRaw } from 'vue';\nimport NumberRangeQuestionView from './NumberRangeQuestionView.vue';\n\nexport class NumberRangeQuestion extends Question {\n public static dataShapes: DataShape[] = [\n {\n name: 'NumberRangeQuestion' as DataShapeName,\n fields: [\n { name: 'questionText', type: FieldType.STRING },\n { name: 'min', type: FieldType.NUMBER },\n { name: 'max', type: FieldType.NUMBER },\n ],\n },\n ];\n\n public static views = [markRaw(NumberRangeQuestionView)];\n\n // @ts-expect-error TS6133: Used in Vue template\n private questionText: string;\n private min: number;\n private max: number;\n\n constructor(data: ViewData[]) {\n super(data);\n this.questionText = data[0].questionText as string;\n this.min = data[0].min as number;\n this.max = data[0].max as number;\n }\n\n public dataShapes(): DataShape[] {\n return NumberRangeQuestion.dataShapes;\n }\n\n public views() {\n // This will be dynamically populated or imported\n return NumberRangeQuestion.views;\n }\n\n protected isCorrect(answer: Answer): boolean {\n const userAnswer = answer.response as number;\n return userAnswer >= this.min && userAnswer <= this.max;\n }\n}\n","import { CourseWare } from '@vue-skuilder/courseware';\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\n\nexport const exampleCourse = new CourseWare('ExampleCourse', [\n SimpleTextQuestion,\n MultipleChoiceQuestion,\n NumberRangeQuestion,\n]);\n","// Library entry point for custom questions in standalone-ui\n// This file exports question types and components for consumption by studio-ui\n\nimport { CourseWare } from '@vue-skuilder/courseware';\nimport { DataShape } from '@vue-skuilder/common';\nimport { ViewComponent } from '@vue-skuilder/common-ui';\n\n// [ ] todo: simplify exports here. Only the final 'bundle' is strictly required.\n\n// Export individual question classes\nexport { SimpleTextQuestion } from './SimpleTextQuestion';\nexport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nexport { NumberRangeQuestion } from './NumberRangeQuestion';\n\n// Export example course\nexport { exampleCourse } from './exampleCourse';\n\n// Import components for re-export\nimport SimpleTextQuestionView from './SimpleTextQuestionView.vue';\nimport MultipleChoiceQuestionView from './MultipleChoiceQuestionView.vue';\nimport NumberRangeQuestionView from './NumberRangeQuestionView.vue';\n\n// Export Vue components\nexport { SimpleTextQuestionView, MultipleChoiceQuestionView, NumberRangeQuestionView };\n\n// Import classes for analysis\nimport { SimpleTextQuestion } from './SimpleTextQuestion';\nimport { MultipleChoiceQuestion } from './MultipleChoiceQuestion';\nimport { NumberRangeQuestion } from './NumberRangeQuestion';\nimport { exampleCourse } from './exampleCourse';\n\n/**\n * Main function to export all custom questions for studio-ui consumption\n * This provides a standardized interface for the CLI to discover and integrate\n * custom question types into studio-ui builds\n */\nexport function allCustomQuestions() {\n // Collect all question classes\n const questionClasses = [SimpleTextQuestion, MultipleChoiceQuestion, NumberRangeQuestion];\n\n // Collect all data shapes from questions\n const dataShapes: DataShape[] = [];\n questionClasses.forEach((questionClass) => {\n if (questionClass.dataShapes) {\n questionClass.dataShapes.forEach((shape) => {\n // Avoid duplicates\n if (!dataShapes.find((existing) => existing.name === shape.name)) {\n dataShapes.push(shape);\n }\n });\n }\n });\n\n // Collect all view components from questions\n const views: Array<{ name: string; component: ViewComponent }> = [];\n questionClasses.forEach((questionClass) => {\n if (questionClass.views) {\n questionClass.views.forEach((view) => {\n const viewName = (view as any).name || (view as any).__name;\n if (viewName) {\n if (!views.find((existing) => existing.name === viewName)) {\n views.push({ name: viewName, component: view });\n }\n } else {\n console.warn('[allCustomQuestions] View component missing name property:', view);\n }\n });\n }\n });\n\n const courses = [exampleCourse];\n\n // Return structured data for studio-ui integration\n return {\n // CourseWare instances with question instances\n courses,\n\n // Question class constructors for registration\n questionClasses,\n\n // Available data shapes for studio-ui CreateCardView\n dataShapes,\n\n // Vue components for runtime registration\n views,\n\n // Metadata for debugging and analysis\n meta: {\n questionCount: questionClasses.length,\n dataShapeCount: dataShapes.length,\n viewCount: views.length,\n courseCount: courses.length,\n packageName: '@vue-skuilder/standalone-ui',\n sourceDirectory: 'src/questions',\n },\n };\n}\n\n/**\n * Type definitions for the custom questions export structure\n * This provides TypeScript support for CLI and studio-ui integration\n */\nexport interface CustomQuestionsExport {\n courses: CourseWare[];\n questionClasses: Array<\n typeof SimpleTextQuestion | typeof MultipleChoiceQuestion | typeof NumberRangeQuestion\n >;\n dataShapes: DataShape[];\n views: Array<{ name: string; component: ViewComponent }>;\n meta: {\n questionCount: number;\n dataShapeCount: number;\n viewCount: number;\n courseCount: number;\n packageName: string;\n sourceDirectory: string;\n };\n}\n\n// Default export for convenience\nexport default allCustomQuestions;\n"],"mappings":"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;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD;EACC;EACA;EACA;EACA;CACD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MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,MAAM;KACN,UAAU;KACV,WAAW;KACX;IACD;KACC,MAAM;MACL,QAAQ;MACR,MAAM;MACN,QAAQ;MACR;KACD,UAAU;KACV,MAAM;KACN,WAAW;KACX;IACD,CAAC;KACA,sBAAsB,MAAM;AAC9B,KAAE;IACD,MAAM,YAAY,EAAE,KAAK,KAAK;IAC9B,QAAQW,EAAE;IACV,CAAC;;AAEH,KAAE,SAAS;AACV,KAAE,OAAO,YAAY,EAAE,MAAM,EAAE,oBAAoB;IAClD,EAAEC,GAAE,SAAS;AACd,KAAE,OAAO,aAAa,EAAE,MAAM,EAAE,oBAAoB;IACnD;EACF,IAAI,mBAAmB,YAAY;GAClC,IAAI,IAAI,OAAO,MAAM,EAAE,KAAK,mBAAmB,EAAE,IAAI,EAAE,mBAAmB;AAC1E,OAAI,GAAG,WAAW;IACjB,IAAI,IAAI,EAAE,UAAU,UAAU;AAC9B,MAAE,MAAM,MAAM,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,QAAQ;;AAE/D,OAAI,GAAG,YAAY;IAClB,IAAI,IAAI,EAAE,WAAW,UAAU;AAC/B,MAAE,MAAM,MAAM,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,QAAQ;;AAE/D,MAAG,kBAAkB,EAAE,QAAQ,EAAE,cAAc,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,QAAQ,SAAS,EAAE,WAAW,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,SAAS,EAAE,YAAY,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC,GAAG,kBAAkB,EAAE,QAAQ,WAAW,EAAE,QAAQ,CAAC;KAC9U,eAAe,YAAY;AAC7B,KAAE,QAAQ,CAAC,IAAI,MAAMC,IAAG,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,EAAE,qBAAqB;IACpF;KACC,KAAK;KACL,OAAO,EAAE;KACT;IACD;KACC,KAAK;KACL,OAAO,EAAE;KACT;IACD;KACC,KAAK;KACL,OAAO,EAAE;KACT;IACD;KACC,KAAK;KACL,OAAO,EAAE;KACT;IACD;KACC,KAAK;KACL,OAAO,EAAE;KACT;IACD,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAGC,EAAE;IAChI,MAAM;IACN,QAAQH,EAAE;IACV,CAAC;;AAEH,SAAOT,EAAE,YAAY;AACpB,oBAAiB;AACjB,OAAI;AACH,MAAE,QAAQ,MAAMa,GAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,UAAU,WAAW,EAAE,MAAM,UAAU;YAC/E,GAAG;AACX,YAAQ,IAAI,uBAAuB,IAAI,EAAE,EAAE,QAAQ,CAAC;;AAErD,KAAE,UAAU,EAAE,OAAO,mBAAmB,mBAAmB,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,QAAQ,MAAM,EAAE,UAAU,YAAY,CAAC,KAAK,OAAO;IACnJ,OAAO,GAAG,EAAE,aAAa,IAAI,EAAE;IAC/B,OAAO,EAAE;IACT,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,QAAQ,QAAQ,MAAM,EAAE,UAAU,YAAY,CAAC,KAAK,OAAO;IAClF,OAAO,GAAG,EAAE,aAAa,IAAI,EAAE;IAC/B,OAAO,EAAE;IACT,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClB,OAAO;IACP,OAAO;IACP,CAAC,EAAE,EAAE,QAAQ,CAAC;IACd,OAAO;IACP,OAAO;IACP,CAAC,GAAG,MAAM,kBAAkB,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IACtJ,EAAE;GACH,eAAe;GACf,QAAQ;GACR,SAAS;GACT,eAAe;GACf,gBAAgB;GAChB,eAAe;GACf;GACA;GACA,eAAe;GACf,YAAY;GACZ,aAAa;GACb,sBAAsB;GACtB,uBAAuB;GACvB,aAAa;GACb;GACA;GACA;;CAEF,CAAC;IAmG2F,KAAKC,GA4C9F,gBAAgB,MAAM;CAEzB,IAAI,UAAU;AACb,SAAO,KAAK;;CAEb,YAAY,GAAG;AACd,UALD,kBAAA,KAAA,EAAe,UAUf,kBAAiB,KAAK,EALrB,KAAK,iBAAiB;;CAEvB,cAAc,GAAG;AAChB,SAAO,KAAK,eAAe,MAAM,MAAM,EAAE,SAAS,EAAE;;CAGrD,cAAc;AACb,MAAI,CAAC,KAAK,gBAAgB;GACzB,IAAI,IAAI,KAAK,UAAU;AACvB,QAAK,iBAAiB,OAAO,YAAY,OAAO,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAGC,EAAE,EAAE,CAAC,CAAC,CAAC;;AAEvF,SAAO,KAAK;;CAEb,WAAW;EACV,IAAI,IAAI,EAAE;AACV,SAAO,KAAK,eAAe,SAAS,MAAM;AACzC,UAAO,OAAO,GAAG,EAAE,YAAY;IAC9B,EAAE;;CAEL,QAAQ,GAAG;EACV,IAAI;AACJ,MAAI,OAAO,KAAK,WAAWC,EAAE,kBAAkB,EAAE,GAAG;EACpD,IAAI,IAAI,KAAK,cAAc,EAAE,OAAO;AACpC,MAAI,GAAG;GACN,IAAI,IAAI,EAAE,YAAY,EAAE,aAAa;AACrC,OAAI,GAAG;IACN,IAAI,IAAI,EAAE,MAAM,MAAM,MAAM,EAAE,SAAS,EAAE,KAAK;AAC9C,QAAI,EAAG,QAAO;AACd,UAAM,QAAQ,MAAM,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,OAAO;;0BAErD,KAAK,UAAU,EAAE,CAAC;;sBAEtB,EAAE,KAAK;wBACL,EAAE,KAAK;qBACV,EAAE,MAAM,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC;cAC7C,EAAE,MAAM,QAAQ,EAAE,KAAK,kBAAkB;SAC7C,OAAM,QAAQ,MAAM,YAAY,EAAE,aAAa,uBAAuB,EAAE,OAAO;;wBAEjE,KAAK,UAAU,EAAE,CAAC;;oBAEtB,EAAE,KAAK;uBACJ,EAAE,UAAU,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC;YACrD,EAAE,MAAM,YAAY,EAAE,aAAa,kBAAkB;QACxD,OAAM,QAAQ,MAAM,UAAU,EAAE,OAAO;;sBAE1B,KAAK,UAAU,EAAE,GAAG,EAAE,MAAM,UAAU,EAAE,OAAO,kBAAkB;;CAEtF,WAAW;EACV,IAAI,IAAI;AACR,SAAO,KAAK,QAAQ,SAAS,MAAM;AAClC,QAAK,WAAW,EAAE,KAAK,KAAK,EAAE,UAAU,SAAS,MAAM;AACtD,SAAK,eAAe,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,MAAM;AACtD,UAAK,aAAa,EAAE,KAAK;MACxB;KACD;IACD,EAAE;;CAEL,mBAAmB;EAClB,IAAI,IAAI,EAAE;AACV,SAAO,KAAK,eAAe,SAAS,MAAM;AACzC,KAAE,UAAU,SAAS,MAAM;AAC1B,MAAE,WAAW,SAAS,MAAM;AAC3B,OAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;MACzB;KACD;IACD,EAAE;;CAEL,gBAAgB;EACf,IAAI,IAAI,EAAE;AACV,SAAO,KAAK,eAAe,SAAS,MAAM;AACzC,KAAE,UAAU,SAAS,MAAM;AAC1B,MAAE,WAAW,SAAS,MAAM;AAC3B,OAAE,WAAW,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,KAAK,MAAM,EAAE,KAAK;MAClF,QAAQ,EAAE;MACV,WAAW,EAAE;MACb,aAAa;MACb,CAAC;MACD;KACD;IACD,EAAE;;CAEL,aAAa,GAAG;EACf,IAAI;AACJ,MAAI,KAAK,cAAc,EAAE,OAAO,CAAC,UAAU,SAAS,MAAM;AACzD,KAAE,WAAW,SAAS,MAAM;AAC3B,MAAE,SAAS,EAAE,cAAc,IAAI;KAC9B;IACD,EAAE,EAAG,QAAO;AACd,QAAM,MAAM,aAAaA,EAAE,mBAAmB,EAAE,CAAC,YAAY;;;AAExD,IAAI,cAAc,EAAE,CAAC;;;;;;;;;;;;;;;;;;;EEnuB5B,IAAM,IAAQ,GAYR,IAAO,GAEP,IAAa,EAAI,GAAG,EAGpB,IAAgB,GADA,EAAY,GAAO,GAAM,yBAAyB,CACA;AAGxE,IAAc,SAAS,QAAQ,IAAI,EAAmB,EAAM,KAAK;EAGjE,IAAM,IAAe,QACF,IAAI,EAAmB,EAAM,KAAK,CAC1B,gBAAgB,GACzC,EAEI,qBAAqB;AACzB,KAAc,aAAa,EAAE,UAAU,EAAW,OAAO,CAAC;;;;;;;;;;;;;;;;;gFC3C/C,IAAb,MAAa,2BAA2B,EAAS;CAiB/C,YAAY,GAAkB;AAG5B,EAFA,MAAM,EAAK,UAJb,gBAAA,KAAA,EAAQ,UACR,iBAAA,KAAA,EAAQ,EAIN,KAAK,eAAe,EAAK,GAAG,cAC5B,KAAK,gBAAgB,EAAK,GAAG;;CAG/B,aAAiC;AAC/B,SAAO,mBAAmB;;CAG5B,QAAe;AAEb,SAAO,mBAAmB;;CAG5B,UAAoB,GAAyB;AAC3C,SAAQ,EAAO,SAAoB,aAAa,KAAK,KAAK,cAAc,aAAa;;;KAhCzE,cAA0B,CACtC;CACE,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAgB,MAAM,EAAU;EAAQ,EAChD;EAAE,MAAM;EAAiB,MAAM,EAAU;EAAQ,CAClD;CACF,CACF,CAAA,OAEa,SAAQ,CAAC,EAAQ,GAAuB,CAAC,CAAA;;;;;;;;;;;;;;;;;;;EEKzD,IAAM,IAAQ,GAYR,IAAO,GAEP,IAAiB,EAAI,GAAG,EAGxB,IAAgB,GADA,EAAY,GAAO,GAAM,6BAA6B,CACA;AAG5E,IAAc,SAAS,QAAQ,IAAI,EAAuB,EAAM,KAAK;EAGrE,IAAM,IAAe,QACF,IAAI,EAAuB,EAAM,KAAK,CAC9B,iBAAiB,GAC1C,EAEI,IAAU,QACG,IAAI,EAAuB,EAAM,KAAK,CAC9B,WAAW,EAAE,CACtC,EAEI,qBAAqB;AACzB,GAAI,EAAe,SACjB,EAAc,aAAa,EAAE,UAAU,EAAe,OAAO,CAAC;;;;;;;;;;;;;yCCnDrD,IAAb,MAAa,+BAA+B,EAAS;CAoBnD,YAAY,GAAkB;AAI5B,EAHA,MAAM,EAAK,UANb,iBAAA,KAAA,EAAQ,UAER,WAAA,KAAA,EAAQ,UACR,iBAAA,KAAA,EAAQ,EAIN,KAAK,gBAAgB,EAAK,GAAG,cAC7B,KAAK,UAAW,EAAK,GAAG,QAAmB,MAAM,IAAI,CAAC,KAAK,MAAM,EAAE,MAAM,CAAC,EAC1E,KAAK,gBAAgB,EAAK,GAAG;;CAG/B,aAAiC;AAC/B,SAAO,uBAAuB;;CAGhC,QAAe;AAEb,SAAO,uBAAuB;;CAGhC,UAAoB,GAAyB;AAC3C,SAAQ,EAAO,aAAwB,KAAK;;;KApChC,cAA0B,CACtC;CACE,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAgB,MAAM,EAAU;GAAQ;EAChD;GAAE,MAAM;GAAW,MAAM,EAAU;GAAQ;EAC3C;GAAE,MAAM;GAAiB,MAAM,EAAU;GAAQ;EAClD;CACF,CACF,CAAA,OAEa,SAAQ,CAAC,EAAQ,GAA2B,CAAC,CAAA;;;;;;;;;;;;;;;;;;;EEC7D,IAAM,IAAQ,GAYR,IAAO,GAEP,IAAa,EAAmB,KAAK,EAGrC,IAAgB,GADA,EAAY,GAAO,GAAM,0BAA0B,CACA;AAGzE,IAAc,SAAS,QAAQ,IAAI,EAAoB,EAAM,KAAK;EAGlE,IAAM,IAAe,QACF,IAAI,EAAoB,EAAM,KAAK,CAC3B,gBAAgB,GACzC,EAEI,qBAAqB;AACzB,GAAI,EAAW,UAAU,QACvB,EAAc,aAAa,EAAE,UAAU,EAAW,OAAO,CAAC;;;;;;;;;;;;;;;;;;yCC3CjD,IAAb,MAAa,4BAA4B,EAAS;CAmBhD,YAAY,GAAkB;AAI5B,EAHA,MAAM,EAAK,UALb,gBAAA,KAAA,EAAQ,UACR,OAAA,KAAA,EAAQ,UACR,OAAA,KAAA,EAAQ,EAIN,KAAK,eAAe,EAAK,GAAG,cAC5B,KAAK,MAAM,EAAK,GAAG,KACnB,KAAK,MAAM,EAAK,GAAG;;CAGrB,aAAiC;AAC/B,SAAO,oBAAoB;;CAG7B,QAAe;AAEb,SAAO,oBAAoB;;CAG7B,UAAoB,GAAyB;EAC3C,IAAM,IAAa,EAAO;AAC1B,SAAO,KAAc,KAAK,OAAO,KAAc,KAAK;;;KApCxC,cAA0B,CACtC;CACE,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAgB,MAAM,EAAU;GAAQ;EAChD;GAAE,MAAM;GAAO,MAAM,EAAU;GAAQ;EACvC;GAAE,MAAM;GAAO,MAAM,EAAU;GAAQ;EACxC;CACF,CACF,CAAA,OAEa,SAAQ,CAAC,EAAQ,GAAwB,CAAC,CAAA;;;ACZ1D,IAAa,KAAgB,IAAI,WAAW,iBAAiB;CAC3D;CACA;CACA;CACD,CAAC;;;AC2BF,SAAgB,qBAAqB;CAEnC,IAAM,IAAkB;EAAC;EAAoB;EAAwB;EAAoB,EAGnF,IAA0B,EAAE;AAClC,GAAgB,SAAS,MAAkB;AACzC,EAAI,EAAc,cAChB,EAAc,WAAW,SAAS,MAAU;AAE1C,GAAK,EAAW,MAAM,MAAa,EAAS,SAAS,EAAM,KAAK,IAC9D,EAAW,KAAK,EAAM;IAExB;GAEJ;CAGF,IAAM,IAA2D,EAAE;AACnE,GAAgB,SAAS,MAAkB;AACzC,EAAI,EAAc,SAChB,EAAc,MAAM,SAAS,MAAS;GACpC,IAAM,IAAY,EAAa,QAAS,EAAa;AACrD,GAAI,IACG,EAAM,MAAM,MAAa,EAAS,SAAS,EAAS,IACvD,EAAM,KAAK;IAAE,MAAM;IAAU,WAAW;IAAM,CAAC,GAGjD,QAAQ,KAAK,8DAA8D,EAAK;IAElF;GAEJ;CAEF,IAAM,IAAU,CAAC,GAAc;AAG/B,QAAO;EAEL;EAGA;EAGA;EAGA;EAGA,MAAM;GACJ,eAAe,EAAgB;GAC/B,gBAAgB,EAAW;GAC3B,WAAW,EAAM;GACjB,aAAa,EAAQ;GACrB,aAAa;GACb,iBAAiB;GAClB;EACF"}