@vue-skuilder/platform-ui 0.1.32-e → 0.1.33-vite8-4

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 (125) hide show
  1. package/dist/assets/About-Cn1neCCj.js +2 -0
  2. package/dist/assets/About-Cn1neCCj.js.map +1 -0
  3. package/dist/assets/AdminDashboard-DTchULBJ.js +2 -0
  4. package/dist/assets/AdminDashboard-DTchULBJ.js.map +1 -0
  5. package/dist/assets/ClassroomCtrlPanel-DKAuUBiJ.js +2 -0
  6. package/dist/assets/ClassroomCtrlPanel-DKAuUBiJ.js.map +1 -0
  7. package/dist/assets/Classrooms-02kNrMSi.js +3 -0
  8. package/dist/assets/Classrooms-02kNrMSi.js.map +1 -0
  9. package/dist/assets/CourseRouter-BZltWUZu.js +7 -0
  10. package/dist/assets/CourseRouter-BZltWUZu.js.map +1 -0
  11. package/dist/assets/{CourseRouter-DuzvSsqI.css → CourseRouter-DvfjFpWl.css} +1 -1
  12. package/dist/assets/Courses-CsGfVDf9.css +1 -0
  13. package/dist/assets/Courses-DXogQnRx.js +3 -0
  14. package/dist/assets/Courses-DXogQnRx.js.map +1 -0
  15. package/dist/assets/DataInputFormTester-DJMfu7N5.js +2 -0
  16. package/dist/assets/DataInputFormTester-DJMfu7N5.js.map +1 -0
  17. package/dist/assets/EloModeration-DgUqPPoO.css +1 -0
  18. package/dist/assets/EloModeration-_LmeCIiL.js +2 -0
  19. package/dist/assets/EloModeration-_LmeCIiL.js.map +1 -0
  20. package/dist/assets/JoinCode-CF6mm6NH.js +3 -0
  21. package/dist/assets/JoinCode-CF6mm6NH.js.map +1 -0
  22. package/dist/assets/JoinCode-DPSfXf5z.css +1 -0
  23. package/dist/assets/MarkdownRenderer-DoVbFpA6-BIbDxYC4.js +53 -0
  24. package/dist/assets/MarkdownRenderer-DoVbFpA6-BIbDxYC4.js.map +1 -0
  25. package/dist/assets/MarkdownRenderer-DoVbFpA6-CQGwEJFh.js +1 -0
  26. package/dist/assets/NewCourseDialog-B-cDpg0K.js +2 -0
  27. package/dist/assets/NewCourseDialog-B-cDpg0K.js.map +1 -0
  28. package/dist/assets/ReleaseNotes-CvavalAs.js +2 -0
  29. package/dist/assets/ReleaseNotes-CvavalAs.js.map +1 -0
  30. package/dist/assets/RequestPasswordReset-DnDd7bH-.js +2 -0
  31. package/dist/assets/RequestPasswordReset-DnDd7bH-.js.map +1 -0
  32. package/dist/assets/ResetPassword-CFprFdME.js +2 -0
  33. package/dist/assets/ResetPassword-CFprFdME.js.map +1 -0
  34. package/dist/assets/Study-CtVLBlBT.js +2 -0
  35. package/dist/assets/Study-CtVLBlBT.js.map +1 -0
  36. package/dist/assets/Study-R4LCAP7J.css +1 -0
  37. package/dist/assets/TagInformation-Bh29OlI-.js +2 -0
  38. package/dist/assets/TagInformation-Bh29OlI-.js.map +1 -0
  39. package/dist/assets/User-wvs_GwJK.js +3 -0
  40. package/dist/assets/User-wvs_GwJK.js.map +1 -0
  41. package/dist/assets/UserStats-CIIaWWET.js +2 -0
  42. package/dist/assets/UserStats-CIIaWWET.js.map +1 -0
  43. package/dist/assets/VerifyEmail-Bew0NJ4X.js +2 -0
  44. package/dist/assets/VerifyEmail-Bew0NJ4X.js.map +1 -0
  45. package/dist/assets/chunk-D6hFPZc3.js +1 -0
  46. package/dist/assets/common-ui-BY2Ut5jf.css +1 -0
  47. package/dist/assets/common-ui.es-B_e3elP3.js +38 -0
  48. package/dist/assets/common-ui.es-B_e3elP3.js.map +1 -0
  49. package/dist/assets/common-ui.es-dzB_fBsD.js +1 -0
  50. package/dist/assets/dist-C-y8dDrx.js +352 -0
  51. package/dist/assets/dist-C-y8dDrx.js.map +1 -0
  52. package/dist/assets/dist-CqNtVEuW.js +1 -0
  53. package/dist/assets/dist-CrcJCHFk.js +12 -0
  54. package/dist/assets/dist-CrcJCHFk.js.map +1 -0
  55. package/dist/assets/dist-D_IucGmu.js +186 -0
  56. package/dist/assets/dist-D_IucGmu.js.map +1 -0
  57. package/dist/assets/dist-cpQNrI1L.js +1 -0
  58. package/dist/assets/edit-ui.es-CjoAxEz0.js +1 -0
  59. package/dist/assets/edit-ui.es-RNTfoe8x.js +36 -0
  60. package/dist/assets/edit-ui.es-RNTfoe8x.js.map +1 -0
  61. package/dist/assets/index-DTRBt3VN.js +4 -0
  62. package/dist/assets/index-DTRBt3VN.js.map +1 -0
  63. package/dist/assets/index-DfnEGrjy.css +1 -0
  64. package/dist/assets/server-DeMBRVDR.js +2 -0
  65. package/dist/assets/server-DeMBRVDR.js.map +1 -0
  66. package/dist/assets/vue.runtime.esm-bundler-C3q8JS9f.js +4 -0
  67. package/dist/assets/vue.runtime.esm-bundler-C3q8JS9f.js.map +1 -0
  68. package/dist/assets/workbox-window.prod.es5-DBwpKi3B.js +3 -0
  69. package/dist/assets/workbox-window.prod.es5-DBwpKi3B.js.map +1 -0
  70. package/dist/index.html +9 -2
  71. package/dist/sw.js +1 -1
  72. package/dist/sw.js.map +1 -1
  73. package/package.json +9 -11
  74. package/dist/assets/About-C3u52t0d.js +0 -2
  75. package/dist/assets/About-C3u52t0d.js.map +0 -1
  76. package/dist/assets/AdminDashboard-Dz5u2cex.js +0 -2
  77. package/dist/assets/AdminDashboard-Dz5u2cex.js.map +0 -1
  78. package/dist/assets/ClassroomCtrlPanel-Dk6oR2Ns.js +0 -2
  79. package/dist/assets/ClassroomCtrlPanel-Dk6oR2Ns.js.map +0 -1
  80. package/dist/assets/Classrooms-vb9OkpYQ.js +0 -2
  81. package/dist/assets/Classrooms-vb9OkpYQ.js.map +0 -1
  82. package/dist/assets/CourseRouter-Blm2dYn-.js +0 -2
  83. package/dist/assets/CourseRouter-Blm2dYn-.js.map +0 -1
  84. package/dist/assets/Courses-CEw9ARaf.js +0 -2
  85. package/dist/assets/Courses-CEw9ARaf.js.map +0 -1
  86. package/dist/assets/Courses-DQW3kca9.css +0 -1
  87. package/dist/assets/DataInputFormTester-CGzywVuh.js +0 -2
  88. package/dist/assets/DataInputFormTester-CGzywVuh.js.map +0 -1
  89. package/dist/assets/EloModeration-B90G61YI.css +0 -1
  90. package/dist/assets/EloModeration-DAmUYf5F.js +0 -2
  91. package/dist/assets/EloModeration-DAmUYf5F.js.map +0 -1
  92. package/dist/assets/JoinCode-B3oyqgv9.js +0 -2
  93. package/dist/assets/JoinCode-B3oyqgv9.js.map +0 -1
  94. package/dist/assets/JoinCode-DFiral3R.css +0 -1
  95. package/dist/assets/NewCourseDialog-5K53pY-W.js +0 -2
  96. package/dist/assets/NewCourseDialog-5K53pY-W.js.map +0 -1
  97. package/dist/assets/ReleaseNotes-DJQ5CKxz.js +0 -2
  98. package/dist/assets/ReleaseNotes-DJQ5CKxz.js.map +0 -1
  99. package/dist/assets/RequestPasswordReset-1bvNIeyh.js +0 -2
  100. package/dist/assets/RequestPasswordReset-1bvNIeyh.js.map +0 -1
  101. package/dist/assets/ResetPassword-CDlcjyGc.js +0 -2
  102. package/dist/assets/ResetPassword-CDlcjyGc.js.map +0 -1
  103. package/dist/assets/Study-Ci2qFB3t.js +0 -2
  104. package/dist/assets/Study-Ci2qFB3t.js.map +0 -1
  105. package/dist/assets/Study-Cxxw_AYM.css +0 -1
  106. package/dist/assets/TagInformation-CtiIiC9l.js +0 -2
  107. package/dist/assets/TagInformation-CtiIiC9l.js.map +0 -1
  108. package/dist/assets/User-CWCez7if.js +0 -2
  109. package/dist/assets/User-CWCez7if.js.map +0 -1
  110. package/dist/assets/UserStats-BDj614VL.js +0 -2
  111. package/dist/assets/UserStats-BDj614VL.js.map +0 -1
  112. package/dist/assets/VerifyEmail-Bt6Mb6Q3.js +0 -2
  113. package/dist/assets/VerifyEmail-Bt6Mb6Q3.js.map +0 -1
  114. package/dist/assets/edit-ui.es-BE3brRCi.js +0 -2
  115. package/dist/assets/edit-ui.es-BE3brRCi.js.map +0 -1
  116. package/dist/assets/index-C8n-yF4Q.js +0 -3
  117. package/dist/assets/index-C8n-yF4Q.js.map +0 -1
  118. package/dist/assets/index-CfcuevG4.js +0 -3
  119. package/dist/assets/index-CfcuevG4.js.map +0 -1
  120. package/dist/assets/index-DpBS80zR.css +0 -1
  121. package/dist/assets/mousetrap-Ca0hLdT-.js +0 -2
  122. package/dist/assets/mousetrap-Ca0hLdT-.js.map +0 -1
  123. package/dist/assets/workbox-window.prod.es5-p40uij6f.js +0 -2
  124. package/dist/assets/workbox-window.prod.es5-p40uij6f.js.map +0 -1
  125. package/dist/manifest.webmanifest +0 -1
@@ -0,0 +1,3 @@
1
+ import{i as e}from"./chunk-D6hFPZc3.js";import{$ as t,C as n,H as r,K as i,M as a,S as o,T as s,Vt as c,W as l,Y as u,_ as d,b as f,f as p,v as m,y as h}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{T as g,v as _}from"./common-ui.es-B_e3elP3.js";import{T as v,f as y,w as b}from"./dist-CrcJCHFk.js";import"./MarkdownRenderer-DoVbFpA6-BIbDxYC4.js";import{k as x}from"./dist-C-y8dDrx.js";import{t as S}from"./index-DTRBt3VN.js";import{t as C}from"./server-DeMBRVDR.js";import{t as w}from"./NewCourseDialog-B-cDpg0K.js";var T=s({name:`CourseStubCard`,props:{courseId:{type:String,required:!0}},emits:[`refresh`],data(){return{courseConfig:null,questionCount:0,isPrivate:!1,updatePending:!0,addingCourse:!1}},async created(){try{let e=x().getCourseDB(this.courseId);this.courseConfig=await e.getCourseConfig(),this.isPrivate=!this.courseConfig.public,this.questionCount=(await e.getCourseInfo()).cardCount,this.updatePending=!1}catch(e){console.error(`Error loading course ${this.courseId}: ${e}`)}},methods:{async registerForCourse(){this.addingCourse=!0,y(`Attempting to register for ${this.courseId}.`),await(await g()).registerForCourse(this.courseId),this.$emit(`refresh`)},navigateToInfo(){let e=`/q/${this.courseConfig?.name.replaceAll(` `,`_`)}`;this.$router.push(e)}}});function _sfc_render$1(e,a,s,l,u,f){let p=i(`v-icon`),g=i(`v-card-title`),_=i(`v-card-item`),v=i(`v-card-text`),y=i(`v-btn`),b=i(`v-card-actions`),x=i(`v-card`);return!e.updatePending&&e.courseConfig?(r(),m(x,{key:0,"data-cy":`available-course-card`},{default:t(()=>[n(_,null,{default:t(()=>[n(g,{"data-cy":`course-title`},{default:t(()=>[o(c(e.courseConfig.name)+` `,1),e.isPrivate?(r(),m(p,{key:0,icon:`mdi-eye-off`,class:`ml-2`})):h(``,!0)]),_:1})]),_:1}),n(v,null,{default:t(()=>[o(` Questions: `+c(e.questionCount)+` `,1),d(`p`,null,c(e.courseConfig.description),1)]),_:1}),n(b,null,{default:t(()=>[n(y,{color:`primary`,onClick:e.navigateToInfo},{default:t(()=>a[0]||(a[0]=[o(`More Info`)])),_:1},8,[`onClick`]),n(y,{"data-cy":`register-course-button`,loading:e.addingCourse,color:`primary`,onClick:e.registerForCourse},{default:t(()=>a[1]||(a[1]=[o(` Register `)])),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})):h(``,!0)}e(_sfc_render$1,`_sfc_render`);var E=s({name:`CoursesView`,components:{NewCourseDialog:w,CourseStubCard:S(T,[[`render`,_sfc_render$1]])},data(){return{existingCourses:[],registeredCourses:[],awaitingCreateCourse:!1,spinnerMap:{},newCourseDialog:!1,user:null,myQuiltsPanel:0,showAllCourses:!1,coursesPerPage:8}},computed:{availableCourses(){let e=this.existingCourses.filter(e=>!this.registeredCourses.includes(e)),t=this.user?.getUsername();return e.filter(e=>t?e.public||e.creator===t||e.admins.indexOf(t)!==-1||e.moderators.indexOf(t)!==-1:!1)},displayedAvailableCourses(){return this.showAllCourses?this.availableCourses:this.availableCourses.slice(0,this.coursesPerPage)},hasMoreCourses(){return this.availableCourses.length>this.coursesPerPage},newCourseAttrs(){return{attrs:{"aria-label":`Create new quilt`},on:{click:()=>this.newCourseDialog=!0}}}},async created(){this.user=await g(),this.refreshData()},methods:{processResponse(){this.newCourseDialog=!1,this.refreshData()},toggleShowMore(){this.showAllCourses=!this.showAllCourses},async refreshData(){console.log(`Pulling user course data...`);try{let e=(await this.user.getCourseRegistrationsDoc()).courses.filter(e=>e.status===`active`||e.status===`maintenance-mode`||e.status===void 0).map(e=>e.courseID);console.log(`userCourseIDs: ${e}`),this.existingCourses=await x().getCoursesDB().getCourseList(),console.log(`existingCourses: \n\t${this.existingCourses.map(e=>e.name).join(`,
2
+ `)}`),this.registeredCourses=this.existingCourses.filter(t=>{let n=!1;return e.forEach(e=>{t.courseID===e&&(n=!0)}),n})}catch(e){console.error(`Error refreshing course data:`,e),_({status:v.error,text:`Failed to load courses: ${e||`Database access error`}`})}},async createCourse(){this.awaitingCreateCourse=!0;let e=await C({type:b.CREATE_COURSE,data:{name:`testCourseName`,description:`All of these courses will be the same!`,public:!0,deleted:!1,creator:this.user.getUsername(),admins:[this.user.getUsername()],moderators:[],dataShapes:[],questionTypes:[]},user:this.user.getUsername(),response:null});_({status:e.response,text:`Course ${JSON.stringify(e)} created`}),this.awaitingCreateCourse=!1},async addCourse(e){this.spinnerMap[e]=!0,console.log(`Attempting to register for ${e}.`),await this.user?.registerForCourse(e),delete this.spinnerMap[e],this.refreshData()},async dropCourse(e){this.spinnerMap[e]=!0,console.log(`Attempting to drop ${e}.`),await this.user?.dropCourse(e),delete this.spinnerMap[e],this.refreshData()}}}),D={class:`d-flex align-center justify-space-between`},O={"data-cy":`registered-course`,class:`d-flex align-center`};function _sfc_render(e,s,g,_,v,y){let b=i(`v-btn`),x=i(`v-expansion-panel-title`),S=i(`router-link`),C=i(`v-icon`),w=i(`v-card`),T=i(`v-col`),E=i(`v-row`),k=i(`v-expansion-panel-text`),A=i(`v-expansion-panel`),j=i(`v-expansion-panels`),M=i(`course-stub-card`),N=i(`new-course-dialog`),P=i(`v-dialog`),F=i(`v-container`);return r(),m(F,{fluid:``},{default:t(()=>[n(b,a({color:`primary`,fixed:``,location:`bottom right`,icon:`mdi-plus`,size:`large`,class:`mb-4 mr-4`,"data-cy":`create-course-fab`},e.newCourseAttrs,u(e.newCourseAttrs.on)),null,16),n(E,null,{default:t(()=>[n(T,{cols:`12`},{default:t(()=>[n(j,{modelValue:e.myQuiltsPanel,"onUpdate:modelValue":s[0]||(s[0]=t=>e.myQuiltsPanel=t)},{default:t(()=>[n(A,null,{default:t(()=>[n(x,{"data-cy":`registered-quilts-panel`},{default:t(()=>s[3]||(s[3]=[o(`My Registered Quilts`)])),_:1}),n(k,null,{default:t(()=>[n(E,null,{default:t(()=>[(r(!0),f(p,null,l(e.registeredCourses,i=>(r(),m(T,{key:i.courseID,cols:`12`,sm:`6`,md:`4`,lg:`3`},{default:t(()=>[n(w,{variant:`outlined`,density:`compact`,class:`pa-2`},{default:t(()=>[d(`div`,D,[d(`div`,O,[n(S,{to:`/q/${i.name.replaceAll(` `,`_`)}`,class:`text-subtitle-2`,"data-cy":`registered-course-title`},{default:t(()=>[o(c(i.name),1)]),_:2},1032,[`to`]),i.public?h(``,!0):(r(),m(C,{key:0,size:`x-small`,class:`ml-1`},{default:t(()=>s[4]||(s[4]=[o(`mdi-eye-off`)])),_:1}))]),n(b,{size:`x-small`,variant:`text`,color:`error`,"data-cy":`drop-course-button`,loading:e.spinnerMap[i.courseID]!==void 0,onClick:t=>e.dropCourse(i.courseID)},{default:t(()=>s[5]||(s[5]=[o(` Drop `)])),_:2},1032,[`loading`,`onClick`])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}),n(T,{cols:`12`,class:`mt-4`},{default:t(()=>[s[6]||(s[6]=d(`h2`,{class:`text-h5 mb-3`},`Available Quilts`,-1)),n(E,null,{default:t(()=>[(r(!0),f(p,null,l(e.displayedAvailableCourses,i=>(r(),m(T,{key:i.courseID,cols:`12`,sm:`6`,md:`4`,lg:`3`},{default:t(()=>[n(M,{"data-cy":`available-course-card`,"course-id":i.courseID,onRefresh:e.refreshData},null,8,[`course-id`,`onRefresh`])]),_:2},1024))),128))]),_:1}),e.hasMoreCourses?(r(),m(E,{key:0,justify:`center`,class:`mt-2`},{default:t(()=>[n(b,{variant:`text`,color:`primary`,"data-cy":`courses-show-more-button`,onClick:e.toggleShowMore},{default:t(()=>[o(c(e.showAllCourses?`Show Less`:`Show More`),1)]),_:1},8,[`onClick`])]),_:1})):h(``,!0)]),_:1})]),_:1}),n(P,{modelValue:e.newCourseDialog,"onUpdate:modelValue":s[2]||(s[2]=t=>e.newCourseDialog=t),fullscreen:``,transition:`dialog-bottom-transition`,scrim:!1},{default:t(()=>[n(N,{onCourseEditingComplete:s[1]||(s[1]=t=>e.processResponse())})]),_:1},8,[`modelValue`])]),_:1})}var k=S(E,[[`render`,_sfc_render],[`__scopeId`,`data-v-ba0ad091`]]);export{k as default};
3
+ //# sourceMappingURL=Courses-DXogQnRx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Courses-DXogQnRx.js","names":[],"sources":["../../src/components/Courses/CourseStubCard.vue","../../src/components/Courses/CourseStubCard.vue","../../src/views/Courses.vue","../../src/views/Courses.vue"],"sourcesContent":["<template>\n <v-card v-if=\"!updatePending && courseConfig\" data-cy=\"available-course-card\">\n <v-card-item>\n <v-card-title data-cy=\"course-title\">\n {{ courseConfig.name }}\n <v-icon v-if=\"isPrivate\" icon=\"mdi-eye-off\" class=\"ml-2\"></v-icon>\n </v-card-title>\n </v-card-item>\n\n <v-card-text>\n Questions: {{ questionCount }}\n <p>{{ courseConfig.description }}</p>\n </v-card-text>\n\n <v-card-actions>\n <v-btn color=\"primary\" @click=\"navigateToInfo\">More Info</v-btn>\n <v-btn data-cy=\"register-course-button\" :loading=\"addingCourse\" color=\"primary\" @click=\"registerForCourse\">\n Register\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script lang=\"ts\">\nimport { getCurrentUser } from '@vue-skuilder/common-ui';\nimport { CourseConfig, log } from '@vue-skuilder/common';\nimport { getDataLayer } from '@vue-skuilder/db';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'CourseStubCard',\n\n props: {\n courseId: {\n type: String,\n required: true,\n },\n },\n emits: ['refresh'],\n\n data() {\n return {\n courseConfig: null as CourseConfig | null,\n questionCount: 0,\n isPrivate: false,\n updatePending: true,\n addingCourse: false,\n };\n },\n\n async created() {\n try {\n const db = getDataLayer().getCourseDB(this.courseId);\n this.courseConfig = (await db.getCourseConfig())!;\n this.isPrivate = !this.courseConfig.public;\n this.questionCount = (await db.getCourseInfo()).cardCount;\n this.updatePending = false;\n } catch (e) {\n console.error(`Error loading course ${this.courseId}: ${e}`);\n }\n },\n\n methods: {\n async registerForCourse() {\n this.addingCourse = true;\n log(`Attempting to register for ${this.courseId}.`);\n await (await getCurrentUser()).registerForCourse(this.courseId);\n this.$emit('refresh');\n },\n navigateToInfo() {\n const path = `/q/${this.courseConfig?.name.replaceAll(' ', '_')}`;\n this.$router.push(path);\n },\n },\n});\n</script>\n","<template>\n <v-card v-if=\"!updatePending && courseConfig\" data-cy=\"available-course-card\">\n <v-card-item>\n <v-card-title data-cy=\"course-title\">\n {{ courseConfig.name }}\n <v-icon v-if=\"isPrivate\" icon=\"mdi-eye-off\" class=\"ml-2\"></v-icon>\n </v-card-title>\n </v-card-item>\n\n <v-card-text>\n Questions: {{ questionCount }}\n <p>{{ courseConfig.description }}</p>\n </v-card-text>\n\n <v-card-actions>\n <v-btn color=\"primary\" @click=\"navigateToInfo\">More Info</v-btn>\n <v-btn data-cy=\"register-course-button\" :loading=\"addingCourse\" color=\"primary\" @click=\"registerForCourse\">\n Register\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script lang=\"ts\">\nimport { getCurrentUser } from '@vue-skuilder/common-ui';\nimport { CourseConfig, log } from '@vue-skuilder/common';\nimport { getDataLayer } from '@vue-skuilder/db';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'CourseStubCard',\n\n props: {\n courseId: {\n type: String,\n required: true,\n },\n },\n emits: ['refresh'],\n\n data() {\n return {\n courseConfig: null as CourseConfig | null,\n questionCount: 0,\n isPrivate: false,\n updatePending: true,\n addingCourse: false,\n };\n },\n\n async created() {\n try {\n const db = getDataLayer().getCourseDB(this.courseId);\n this.courseConfig = (await db.getCourseConfig())!;\n this.isPrivate = !this.courseConfig.public;\n this.questionCount = (await db.getCourseInfo()).cardCount;\n this.updatePending = false;\n } catch (e) {\n console.error(`Error loading course ${this.courseId}: ${e}`);\n }\n },\n\n methods: {\n async registerForCourse() {\n this.addingCourse = true;\n log(`Attempting to register for ${this.courseId}.`);\n await (await getCurrentUser()).registerForCourse(this.courseId);\n this.$emit('refresh');\n },\n navigateToInfo() {\n const path = `/q/${this.courseConfig?.name.replaceAll(' ', '_')}`;\n this.$router.push(path);\n },\n },\n});\n</script>\n","<template>\n <v-container fluid>\n <!-- Fixed Action Button - Updated position classes -->\n <v-btn\n color=\"primary\"\n fixed\n location=\"bottom right\"\n icon=\"mdi-plus\"\n size=\"large\"\n class=\"mb-4 mr-4\"\n data-cy=\"create-course-fab\"\n v-bind=\"newCourseAttrs\"\n v-on=\"newCourseAttrs.on\"\n />\n\n <!-- Main Content Area -->\n <v-row>\n <!-- My Quilts Panel -->\n <v-col cols=\"12\">\n <v-expansion-panels v-model=\"myQuiltsPanel\">\n <v-expansion-panel>\n <v-expansion-panel-title data-cy=\"registered-quilts-panel\">My Registered Quilts</v-expansion-panel-title>\n <v-expansion-panel-text>\n <v-row>\n <v-col v-for=\"course in registeredCourses\" :key=\"course.courseID\" cols=\"12\" sm=\"6\" md=\"4\" lg=\"3\">\n <v-card variant=\"outlined\" density=\"compact\" class=\"pa-2\">\n <div class=\"d-flex align-center justify-space-between\">\n <div data-cy=\"registered-course\" class=\"d-flex align-center\">\n <router-link\n :to=\"`/q/${course.name.replaceAll(' ', '_')}`\"\n class=\"text-subtitle-2\"\n data-cy=\"registered-course-title\"\n >\n {{ course.name }}\n </router-link>\n <v-icon v-if=\"!course.public\" size=\"x-small\" class=\"ml-1\">mdi-eye-off</v-icon>\n </div>\n <v-btn\n size=\"x-small\"\n variant=\"text\"\n color=\"error\"\n data-cy=\"drop-course-button\"\n :loading=\"spinnerMap[course.courseID] !== undefined\"\n @click=\"dropCourse(course.courseID)\"\n >\n Drop\n </v-btn>\n </div>\n </v-card>\n </v-col>\n </v-row>\n </v-expansion-panel-text>\n </v-expansion-panel>\n </v-expansion-panels>\n </v-col>\n\n <!-- Available Quilts Section -->\n <v-col cols=\"12\" class=\"mt-4\">\n <h2 class=\"text-h5 mb-3\">Available Quilts</h2>\n <v-row>\n <v-col v-for=\"course in displayedAvailableCourses\" :key=\"course.courseID\" cols=\"12\" sm=\"6\" md=\"4\" lg=\"3\">\n <course-stub-card data-cy=\"available-course-card\" :course-id=\"course.courseID\" @refresh=\"refreshData\" />\n </v-col>\n </v-row>\n\n <!-- Show More Button -->\n <v-row v-if=\"hasMoreCourses\" justify=\"center\" class=\"mt-2\">\n <v-btn variant=\"text\" color=\"primary\" data-cy=\"courses-show-more-button\" @click=\"toggleShowMore\">\n {{ showAllCourses ? 'Show Less' : 'Show More' }}\n </v-btn>\n </v-row>\n </v-col>\n </v-row>\n\n <!-- New Course Dialog -->\n <v-dialog v-model=\"newCourseDialog\" fullscreen transition=\"dialog-bottom-transition\" :scrim=\"false\">\n <new-course-dialog @course-editing-complete=\"processResponse()\" />\n </v-dialog>\n </v-container>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport NewCourseDialog from '@pui/components/Courses/NewCourseDialog.vue';\nimport CourseStubCard from '@pui/components/Courses/CourseStubCard.vue';\n\nimport serverRequest from '../server';\nimport { ServerRequestType, CourseConfig, Status } from '@vue-skuilder/common';\nimport { alertUser, getCurrentUser } from '@vue-skuilder/common-ui';\nimport { UserDBInterface, getDataLayer } from '@vue-skuilder/db';\n\ntype DBCourseConfig = CourseConfig & {\n courseID: string;\n};\n\nexport default defineComponent({\n name: 'CoursesView',\n\n components: {\n NewCourseDialog,\n CourseStubCard,\n },\n\n data() {\n return {\n existingCourses: [] as DBCourseConfig[],\n registeredCourses: [] as DBCourseConfig[],\n awaitingCreateCourse: false,\n spinnerMap: {} as { [key: string]: boolean },\n newCourseDialog: false,\n user: null as UserDBInterface | null,\n myQuiltsPanel: 0, // Controls expansion panel\n showAllCourses: false,\n coursesPerPage: 8,\n };\n },\n\n computed: {\n availableCourses(): DBCourseConfig[] {\n const availableCourses = this.existingCourses.filter((c) => !this.registeredCourses.includes(c));\n const user = this.user?.getUsername();\n\n const viewableCourses = availableCourses.filter((course) => {\n if (!user) {\n return false;\n }\n const viewable: boolean =\n course.public ||\n course.creator === user ||\n course.admins.indexOf(user) !== -1 ||\n course.moderators.indexOf(user) !== -1;\n\n return viewable;\n });\n\n return viewableCourses;\n },\n displayedAvailableCourses(): DBCourseConfig[] {\n if (this.showAllCourses) {\n return this.availableCourses;\n }\n return this.availableCourses.slice(0, this.coursesPerPage);\n },\n\n hasMoreCourses(): boolean {\n return this.availableCourses.length > this.coursesPerPage;\n },\n\n newCourseAttrs() {\n return {\n attrs: {\n 'aria-label': 'Create new quilt',\n },\n on: {\n click: () => (this.newCourseDialog = true),\n },\n };\n },\n },\n\n async created() {\n this.user = await getCurrentUser();\n this.refreshData();\n },\n\n methods: {\n processResponse(): void {\n this.newCourseDialog = false;\n this.refreshData();\n },\n\n toggleShowMore() {\n this.showAllCourses = !this.showAllCourses;\n },\n\n async refreshData(): Promise<void> {\n console.log(`Pulling user course data...`);\n try {\n const userCourseIDs = (await this.user!.getCourseRegistrationsDoc()).courses\n .filter((c) => {\n return c.status === 'active' || c.status === 'maintenance-mode' || c.status === undefined;\n })\n .map((c) => {\n return c.courseID;\n });\n console.log(`userCourseIDs: ${userCourseIDs}`);\n\n this.existingCourses = (await getDataLayer().getCoursesDB().getCourseList()) as DBCourseConfig[];\n console.log(`existingCourses: \\n\\t${this.existingCourses.map((c) => c.name).join(',\\n\\t')}`);\n\n this.registeredCourses = this.existingCourses.filter((course) => {\n let match: boolean = false;\n userCourseIDs.forEach((id: string) => {\n if (course.courseID === id) {\n match = true;\n }\n });\n return match;\n });\n } catch (e) {\n console.error(`Error refreshing course data:`, e);\n alertUser({\n status: Status.error,\n text: `Failed to load courses: ${e || 'Database access error'}`,\n });\n }\n },\n async createCourse(): Promise<void> {\n this.awaitingCreateCourse = true;\n const resp = await serverRequest({\n type: ServerRequestType.CREATE_COURSE,\n data: {\n name: 'testCourseName',\n description: 'All of these courses will be the same!',\n public: true,\n deleted: false,\n creator: this.user!.getUsername(),\n admins: [this.user!.getUsername()],\n moderators: [],\n dataShapes: [],\n questionTypes: [],\n },\n user: this.user!.getUsername(),\n response: null,\n });\n\n alertUser({\n status: resp.response!,\n text: `Course ${JSON.stringify(resp)} created`,\n });\n this.awaitingCreateCourse = false;\n },\n\n async addCourse(course: string): Promise<void> {\n this.spinnerMap[course] = true;\n console.log(`Attempting to register for ${course}.`);\n await this.user?.registerForCourse(course);\n delete this.spinnerMap[course];\n this.refreshData();\n },\n\n async dropCourse(course: string): Promise<void> {\n this.spinnerMap[course] = true;\n console.log(`Attempting to drop ${course}.`);\n await this.user?.dropCourse(course);\n delete this.spinnerMap[course];\n this.refreshData();\n },\n },\n});\n</script>\n\n<style scoped>\n.component-fade-enter-active,\n.component-fade-leave-active {\n transition: all 0.65s ease;\n}\n.component-fade-enter,\n.component-fade-leave-to {\n opacity: 0;\n}\n.componnent-fade-move {\n transition: transform 1s;\n}\n</style>\n","<template>\n <v-container fluid>\n <!-- Fixed Action Button - Updated position classes -->\n <v-btn\n color=\"primary\"\n fixed\n location=\"bottom right\"\n icon=\"mdi-plus\"\n size=\"large\"\n class=\"mb-4 mr-4\"\n data-cy=\"create-course-fab\"\n v-bind=\"newCourseAttrs\"\n v-on=\"newCourseAttrs.on\"\n />\n\n <!-- Main Content Area -->\n <v-row>\n <!-- My Quilts Panel -->\n <v-col cols=\"12\">\n <v-expansion-panels v-model=\"myQuiltsPanel\">\n <v-expansion-panel>\n <v-expansion-panel-title data-cy=\"registered-quilts-panel\">My Registered Quilts</v-expansion-panel-title>\n <v-expansion-panel-text>\n <v-row>\n <v-col v-for=\"course in registeredCourses\" :key=\"course.courseID\" cols=\"12\" sm=\"6\" md=\"4\" lg=\"3\">\n <v-card variant=\"outlined\" density=\"compact\" class=\"pa-2\">\n <div class=\"d-flex align-center justify-space-between\">\n <div data-cy=\"registered-course\" class=\"d-flex align-center\">\n <router-link\n :to=\"`/q/${course.name.replaceAll(' ', '_')}`\"\n class=\"text-subtitle-2\"\n data-cy=\"registered-course-title\"\n >\n {{ course.name }}\n </router-link>\n <v-icon v-if=\"!course.public\" size=\"x-small\" class=\"ml-1\">mdi-eye-off</v-icon>\n </div>\n <v-btn\n size=\"x-small\"\n variant=\"text\"\n color=\"error\"\n data-cy=\"drop-course-button\"\n :loading=\"spinnerMap[course.courseID] !== undefined\"\n @click=\"dropCourse(course.courseID)\"\n >\n Drop\n </v-btn>\n </div>\n </v-card>\n </v-col>\n </v-row>\n </v-expansion-panel-text>\n </v-expansion-panel>\n </v-expansion-panels>\n </v-col>\n\n <!-- Available Quilts Section -->\n <v-col cols=\"12\" class=\"mt-4\">\n <h2 class=\"text-h5 mb-3\">Available Quilts</h2>\n <v-row>\n <v-col v-for=\"course in displayedAvailableCourses\" :key=\"course.courseID\" cols=\"12\" sm=\"6\" md=\"4\" lg=\"3\">\n <course-stub-card data-cy=\"available-course-card\" :course-id=\"course.courseID\" @refresh=\"refreshData\" />\n </v-col>\n </v-row>\n\n <!-- Show More Button -->\n <v-row v-if=\"hasMoreCourses\" justify=\"center\" class=\"mt-2\">\n <v-btn variant=\"text\" color=\"primary\" data-cy=\"courses-show-more-button\" @click=\"toggleShowMore\">\n {{ showAllCourses ? 'Show Less' : 'Show More' }}\n </v-btn>\n </v-row>\n </v-col>\n </v-row>\n\n <!-- New Course Dialog -->\n <v-dialog v-model=\"newCourseDialog\" fullscreen transition=\"dialog-bottom-transition\" :scrim=\"false\">\n <new-course-dialog @course-editing-complete=\"processResponse()\" />\n </v-dialog>\n </v-container>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport NewCourseDialog from '@pui/components/Courses/NewCourseDialog.vue';\nimport CourseStubCard from '@pui/components/Courses/CourseStubCard.vue';\n\nimport serverRequest from '../server';\nimport { ServerRequestType, CourseConfig, Status } from '@vue-skuilder/common';\nimport { alertUser, getCurrentUser } from '@vue-skuilder/common-ui';\nimport { UserDBInterface, getDataLayer } from '@vue-skuilder/db';\n\ntype DBCourseConfig = CourseConfig & {\n courseID: string;\n};\n\nexport default defineComponent({\n name: 'CoursesView',\n\n components: {\n NewCourseDialog,\n CourseStubCard,\n },\n\n data() {\n return {\n existingCourses: [] as DBCourseConfig[],\n registeredCourses: [] as DBCourseConfig[],\n awaitingCreateCourse: false,\n spinnerMap: {} as { [key: string]: boolean },\n newCourseDialog: false,\n user: null as UserDBInterface | null,\n myQuiltsPanel: 0, // Controls expansion panel\n showAllCourses: false,\n coursesPerPage: 8,\n };\n },\n\n computed: {\n availableCourses(): DBCourseConfig[] {\n const availableCourses = this.existingCourses.filter((c) => !this.registeredCourses.includes(c));\n const user = this.user?.getUsername();\n\n const viewableCourses = availableCourses.filter((course) => {\n if (!user) {\n return false;\n }\n const viewable: boolean =\n course.public ||\n course.creator === user ||\n course.admins.indexOf(user) !== -1 ||\n course.moderators.indexOf(user) !== -1;\n\n return viewable;\n });\n\n return viewableCourses;\n },\n displayedAvailableCourses(): DBCourseConfig[] {\n if (this.showAllCourses) {\n return this.availableCourses;\n }\n return this.availableCourses.slice(0, this.coursesPerPage);\n },\n\n hasMoreCourses(): boolean {\n return this.availableCourses.length > this.coursesPerPage;\n },\n\n newCourseAttrs() {\n return {\n attrs: {\n 'aria-label': 'Create new quilt',\n },\n on: {\n click: () => (this.newCourseDialog = true),\n },\n };\n },\n },\n\n async created() {\n this.user = await getCurrentUser();\n this.refreshData();\n },\n\n methods: {\n processResponse(): void {\n this.newCourseDialog = false;\n this.refreshData();\n },\n\n toggleShowMore() {\n this.showAllCourses = !this.showAllCourses;\n },\n\n async refreshData(): Promise<void> {\n console.log(`Pulling user course data...`);\n try {\n const userCourseIDs = (await this.user!.getCourseRegistrationsDoc()).courses\n .filter((c) => {\n return c.status === 'active' || c.status === 'maintenance-mode' || c.status === undefined;\n })\n .map((c) => {\n return c.courseID;\n });\n console.log(`userCourseIDs: ${userCourseIDs}`);\n\n this.existingCourses = (await getDataLayer().getCoursesDB().getCourseList()) as DBCourseConfig[];\n console.log(`existingCourses: \\n\\t${this.existingCourses.map((c) => c.name).join(',\\n\\t')}`);\n\n this.registeredCourses = this.existingCourses.filter((course) => {\n let match: boolean = false;\n userCourseIDs.forEach((id: string) => {\n if (course.courseID === id) {\n match = true;\n }\n });\n return match;\n });\n } catch (e) {\n console.error(`Error refreshing course data:`, e);\n alertUser({\n status: Status.error,\n text: `Failed to load courses: ${e || 'Database access error'}`,\n });\n }\n },\n async createCourse(): Promise<void> {\n this.awaitingCreateCourse = true;\n const resp = await serverRequest({\n type: ServerRequestType.CREATE_COURSE,\n data: {\n name: 'testCourseName',\n description: 'All of these courses will be the same!',\n public: true,\n deleted: false,\n creator: this.user!.getUsername(),\n admins: [this.user!.getUsername()],\n moderators: [],\n dataShapes: [],\n questionTypes: [],\n },\n user: this.user!.getUsername(),\n response: null,\n });\n\n alertUser({\n status: resp.response!,\n text: `Course ${JSON.stringify(resp)} created`,\n });\n this.awaitingCreateCourse = false;\n },\n\n async addCourse(course: string): Promise<void> {\n this.spinnerMap[course] = true;\n console.log(`Attempting to register for ${course}.`);\n await this.user?.registerForCourse(course);\n delete this.spinnerMap[course];\n this.refreshData();\n },\n\n async dropCourse(course: string): Promise<void> {\n this.spinnerMap[course] = true;\n console.log(`Attempting to drop ${course}.`);\n await this.user?.dropCourse(course);\n delete this.spinnerMap[course];\n this.refreshData();\n },\n },\n});\n</script>\n\n<style scoped>\n.component-fade-enter-active,\n.component-fade-leave-active {\n transition: all 0.65s ease;\n}\n.component-fade-enter,\n.component-fade-leave-to {\n opacity: 0;\n}\n.componnent-fade-move {\n transition: transform 1s;\n}\n</style>\n"],"mappings":"0gBC6BA,IAAA,EAAe,EAAgB,CAC7B,KAAM,iBAEN,MAAO,CACL,SAAU,CACR,KAAM,OACN,SAAU,GACX,CACF,CACD,MAAO,CAAC,UAAU,CAElB,MAAO,CACL,MAAO,CACL,aAAc,KACd,cAAe,EACf,UAAW,GACX,cAAe,GACf,aAAc,GACf,EAGH,MAAM,SAAU,CACd,GAAI,CACF,IAAM,EAAK,GAAc,CAAC,YAAY,KAAK,SAAS,CACpD,KAAK,aAAgB,MAAM,EAAG,iBAAiB,CAC/C,KAAK,UAAY,CAAC,KAAK,aAAa,OACpC,KAAK,eAAiB,MAAM,EAAG,eAAe,EAAE,UAChD,KAAK,cAAgB,SACd,EAAG,CACV,QAAQ,MAAM,wBAAwB,KAAK,SAAS,IAAI,IAAI,GAIhE,QAAS,CACP,MAAM,mBAAoB,CACxB,KAAK,aAAe,GACpB,EAAI,8BAA8B,KAAK,SAAS,GAAG,CACnD,MAAO,MAAM,GAAgB,EAAE,kBAAkB,KAAK,SAAS,CAC/D,KAAK,MAAM,UAAU,EAEvB,gBAAiB,CACf,IAAM,EAAO,MAAM,KAAK,cAAc,KAAK,WAAW,IAAK,IAAI,GAC/D,KAAK,QAAQ,KAAK,EAAK,EAE1B,CACF,CAAC,yKAzEe,EAAA,eAAiB,EAAA,cAAA,GAAA,CAAhC,EAmBS,EAAA,CApBX,IAAA,EACgD,UAAQ,0BADxD,QAAA,MAOkB,CALd,EAKc,EAAA,KAAA,CAPlB,QAAA,MAMqB,CAHf,EAGe,EAAA,CAHD,UAAQ,eAAc,CAAA,CAH1C,QAAA,MAI+B,CAJ/B,EAAA,EAIW,EAAA,aAAa,KAAI,CAAG,IACvB,EAAA,CAAc,EAAA,WAAA,GAAA,CAAd,EAAkE,EAAA,CAL1E,IAAA,EAKiC,KAAK,cAAc,MAAM,UAL1D,EAAA,GAAA,GAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,IASI,EAGc,EAAA,KAAA,CAZlB,QAAA,MAUiB,CAVjB,EASiB,eACA,EAAG,EAAA,cAAa,CAAG,IAC9B,EAAA,CAAA,EAAqC,IAAA,KAAA,EAA/B,EAAA,aAAa,YAAW,CAAA,EAAA,CAAA,CAAA,CAXpC,EAAA,IAcI,EAKiB,EAAA,KAAA,CAnBrB,QAAA,MAesE,CAAhE,EAAgE,EAAA,CAAzD,MAAM,UAAW,QAAO,EAAA,iBAfrC,QAAA,MAe8D,EAAA,KAAA,EAAA,GAAA,CAf9D,EAeqD,YAAS,CAAA,EAAA,CAf9D,EAAA,kBAgBM,EAEQ,EAAA,CAFD,UAAQ,yBAA0B,QAAS,EAAA,aAAc,MAAM,UAAW,QAAO,EAAA,oBAhB9F,QAAA,MAkBM,EAAA,KAAA,EAAA,GAAA,CAlBN,EAgBiH,aAE3G,CAAA,EAAA,CAlBN,EAAA,8BAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,GAAA,gCE+FA,IAAA,EAAe,EAAgB,CAC7B,KAAM,cAEN,WAAY,CACV,gBAAA,EACA,+CACD,CAED,MAAO,CACL,MAAO,CACL,gBAAiB,EAAC,CAClB,kBAAmB,EAAC,CACpB,qBAAsB,GACtB,WAAY,EAAC,CACb,gBAAiB,GACjB,KAAM,KACN,cAAe,EACf,eAAgB,GAChB,eAAgB,EACjB,EAGH,SAAU,CACR,kBAAqC,CACnC,IAAM,EAAmB,KAAK,gBAAgB,OAAQ,GAAM,CAAC,KAAK,kBAAkB,SAAS,EAAE,CAAC,CAC1F,EAAO,KAAK,MAAM,aAAa,CAerC,OAbwB,EAAiB,OAAQ,GAC1C,EAIH,EAAO,QACP,EAAO,UAAY,GACnB,EAAO,OAAO,QAAQ,EAAI,GAAM,IAChC,EAAO,WAAW,QAAQ,EAAI,GAAM,GAN7B,GAST,EAIJ,2BAA8C,CAI5C,OAHI,KAAK,eACA,KAAK,iBAEP,KAAK,iBAAiB,MAAM,EAAG,KAAK,eAAe,EAG5D,gBAA0B,CACxB,OAAO,KAAK,iBAAiB,OAAS,KAAK,gBAG7C,gBAAiB,CACf,MAAO,CACL,MAAO,CACL,aAAc,mBACf,CACD,GAAI,CACF,UAAc,KAAK,gBAAkB,GACtC,CACF,EAEJ,CAED,MAAM,SAAU,CACd,KAAK,KAAO,MAAM,GAAgB,CAClC,KAAK,aAAa,EAGpB,QAAS,CACP,iBAAwB,CACtB,KAAK,gBAAkB,GACvB,KAAK,aAAa,EAGpB,gBAAiB,CACf,KAAK,eAAiB,CAAC,KAAK,gBAG9B,MAAM,aAA6B,CACjC,QAAQ,IAAI,8BAA8B,CAC1C,GAAI,CACF,IAAM,GAAiB,MAAM,KAAK,KAAM,2BAA2B,EAAE,QAClE,OAAQ,GACA,EAAE,SAAW,UAAY,EAAE,SAAW,oBAAsB,EAAE,SAAW,IAAA,GACjF,CACA,IAAK,GACG,EAAE,SACT,CACJ,QAAQ,IAAI,kBAAkB,IAAgB,CAE9C,KAAK,gBAAmB,MAAM,GAAc,CAAC,cAAc,CAAC,eAAe,CAC3E,QAAQ,IAAI,wBAAwB,KAAK,gBAAgB,IAAK,GAAM,EAAE,KAAK,CAAC,KAAK;GAAQ,GAAG,CAE5F,KAAK,kBAAoB,KAAK,gBAAgB,OAAQ,GAAW,CAC/D,IAAI,EAAiB,GAMrB,OALA,EAAc,QAAS,GAAe,CAChC,EAAO,WAAa,IACtB,EAAQ,KAEV,CACK,GACP,OACK,EAAG,CACV,QAAQ,MAAM,gCAAiC,EAAE,CACjD,EAAU,CACR,OAAQ,EAAO,MACf,KAAM,2BAA2B,GAAK,0BACvC,CAAC,GAGN,MAAM,cAA8B,CAClC,KAAK,qBAAuB,GAC5B,IAAM,EAAO,MAAM,EAAc,CAC/B,KAAM,EAAkB,cACxB,KAAM,CACJ,KAAM,iBACN,YAAa,yCACb,OAAQ,GACR,QAAS,GACT,QAAS,KAAK,KAAM,aAAa,CACjC,OAAQ,CAAC,KAAK,KAAM,aAAa,CAAC,CAClC,WAAY,EAAE,CACd,WAAY,EAAE,CACd,cAAe,EAAE,CAClB,CACD,KAAM,KAAK,KAAM,aAAa,CAC9B,SAAU,KACX,CAAC,CAEF,EAAU,CACR,OAAQ,EAAK,SACb,KAAM,UAAU,KAAK,UAAU,EAAK,CAAA,UACrC,CAAC,CACF,KAAK,qBAAuB,IAG9B,MAAM,UAAU,EAA+B,CAC7C,KAAK,WAAW,GAAU,GAC1B,QAAQ,IAAI,8BAA8B,EAAO,GAAG,CACpD,MAAM,KAAK,MAAM,kBAAkB,EAAO,CAC1C,OAAO,KAAK,WAAW,GACvB,KAAK,aAAa,EAGpB,MAAM,WAAW,EAA+B,CAC9C,KAAK,WAAW,GAAU,GAC1B,QAAQ,IAAI,sBAAsB,EAAO,GAAG,CAC5C,MAAM,KAAK,MAAM,WAAW,EAAO,CACnC,OAAO,KAAK,WAAW,GACvB,KAAK,aAAa,EAErB,CACF,CAAC,IA/NuB,MAAM,4CAA2C,IAC/C,UAAQ,oBAAoB,MAAM,kWA1B3D,EA6Ec,EAAA,CA7ED,MAAA,GAAK,CAAA,CADpB,QAAA,MAaM,CAVF,EAUE,EAVF,EAUE,CATA,MAAM,UACN,MAAA,GACA,SAAS,eACT,KAAK,WACL,KAAK,QACL,MAAM,YACN,UAAQ,qBACA,EAAA,eACR,EAAwB,EAAlB,eAAe,GAAE,CAAA,CAAA,KAAA,GAAA,CAIzB,EAwDQ,EAAA,KAAA,CAxEZ,QAAA,MAsDc,CApCR,EAoCQ,EAAA,CApCD,KAAK,KAAI,CAAA,CAlBtB,QAAA,MAqD6B,CAlCrB,EAkCqB,EAAA,CArD7B,WAmBqC,EAAA,cAnBrC,sBAAA,EAAA,KAAA,EAAA,GAAA,GAAA,EAmBqC,cAAa,KAnBlD,QAAA,MAoD8B,CAhCpB,EAgCoB,EAAA,KAAA,CApD9B,QAAA,MAqBqH,CAAzG,EAAyG,EAAA,CAAhF,UAAQ,0BAAyB,CAAA,CArBtE,QAAA,MAqB2F,EAAA,KAAA,EAAA,GAAA,CArB3F,EAqBuE,uBAAoB,CAAA,EAAA,CArB3F,EAAA,IAsBY,EA6ByB,EAAA,KAAA,CAnDrC,QAAA,MAkDsB,CA3BR,EA2BQ,EAAA,KAAA,CAlDtB,QAAA,MAwB0D,EAAA,EAAA,GAAA,CAA1C,EAyBQ,EAAA,KAjDxB,EAwBwC,EAAA,kBAAV,QAAd,EAyBQ,EAAA,CAzBoC,IAAK,EAAO,SAAU,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MAxB7G,QAAA,MAgD2B,CAvBT,EAuBS,EAAA,CAvBD,QAAQ,WAAW,QAAQ,UAAU,MAAM,SAzBrE,QAAA,MA+C0B,CArBN,EAqBM,MArBN,EAqBM,CApBJ,EASM,MATN,EASM,CARJ,EAMc,EAAA,CALX,GAAE,MAAQ,EAAO,KAAK,WAAU,IAAA,IAAA,GACjC,MAAM,kBACN,UAAQ,4BA/BlC,QAAA,MAiC2C,CAjC3C,EAAA,EAiC6B,EAAO,KAAI,CAAA,EAAA,CAAA,CAAA,CAjCxC,EAAA,gBAmCuC,EAAO,OAnC9C,EAAA,GAAA,GAAA,EAmC8C,GAAA,CAAtB,EAA8E,EAAA,CAnCtG,IAAA,EAmCsD,KAAK,UAAU,MAAM,SAnC3E,QAAA,MAmC6F,EAAA,KAAA,EAAA,GAAA,CAnC7F,EAmCkF,cAAW,CAAA,EAAA,CAnC7F,EAAA,KAAA,CAAA,CAqCsB,EASQ,EAAA,CARN,KAAK,UACL,QAAQ,OACR,MAAM,QACN,UAAQ,qBACP,QAAS,EAAA,WAAW,EAAO,YAAc,IAAA,GACzC,QAAK,GAAE,EAAA,WAAW,EAAO,SAAQ,GA3C1D,QAAA,MA8CsB,EAAA,KAAA,EAAA,GAAA,CA9CtB,EA4CuB,SAED,CAAA,EAAA,CA9CtB,EAAA,mCAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,IAyDM,EAcQ,EAAA,CAdD,KAAK,KAAK,MAAM,SAzD7B,QAAA,MA0DsD,aAA9C,EAA8C,KAAA,CAA1C,MAAM,eAAc,CAAC,mBAAgB,GAAA,EACzC,EAIQ,EAAA,KAAA,CA/DhB,QAAA,MA4D4D,EAAA,EAAA,GAAA,CAAlD,EAEQ,EAAA,KA9DlB,EA4DkC,EAAA,0BAAV,QAAd,EAEQ,EAAA,CAF4C,IAAK,EAAO,SAAU,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MA5D/G,QAAA,MA6DoH,CAAxG,EAAwG,EAAA,CAAtF,UAAQ,wBAAyB,YAAW,EAAO,SAAW,UAAS,EAAA,iDA7DrG,EAAA,mBAAA,EAAA,IAkEqB,EAAA,gBAAA,GAAA,CAAb,EAIQ,EAAA,CAtEhB,IAAA,EAkEqC,QAAQ,SAAS,MAAM,SAlE5D,QAAA,MAqEkB,CAFR,EAEQ,EAAA,CAFD,QAAQ,OAAO,MAAM,UAAU,UAAQ,2BAA4B,QAAO,EAAA,iBAnE3F,QAAA,MAoE4D,CApE5D,EAAA,EAoEe,EAAA,eAAc,YAAA,YAAA,CAAA,EAAA,CAAA,CAAA,CApE7B,EAAA,oBAAA,EAAA,KAAA,EAAA,GAAA,GAAA,GAAA,EAAA,MAAA,EAAA,IA2EI,EAEW,EAAA,CA7Ef,WA2EuB,EAAA,gBA3EvB,sBAAA,EAAA,KAAA,EAAA,GAAA,GAAA,EA2EuB,gBAAe,GAAE,WAAA,GAAW,WAAW,2BAA4B,MAAO,KA3EjG,QAAA,MA4EwE,CAAlE,EAAkE,EAAA,CAA9C,wBAAuB,EAAA,KAAA,EAAA,GAAA,GAAE,EAAA,iBAAe,EAAA,CAAA,CAAA,CAAA,CA5ElE,EAAA,uBAAA,EAAA"}
@@ -0,0 +1,2 @@
1
+ import"./chunk-D6hFPZc3.js";import{H as e,K as t,T as n,b as r,v as i}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{G as a,m as o}from"./common-ui.es-B_e3elP3.js";import"./dist-CrcJCHFk.js";import"./MarkdownRenderer-DoVbFpA6-BIbDxYC4.js";import"./dist-C-y8dDrx.js";import{t as s}from"./index-DTRBt3VN.js";import"./dist-D_IucGmu.js";import{n as c}from"./edit-ui.es-RNTfoe8x.js";var l=Object.assign({}),u=n({name:`DataInputFormTester`,components:{DataInputForm:c},setup(){return{route:a()}},data(){return{dataShape:null,cds:null,component:null}},async created(){try{let e=`../${this.route.params.pathMatch}/index.ts`;if(console.log(`Looking for module:`,e),console.log(`Available paths:`,Object.keys(l)),e in l){let t=await l[e](),n=Object.entries(t).find(([e,t])=>{let n=typeof t==`function`,r=n&&t.prototype instanceof o;return console.log(`Checking export "${e}":`,{isClass:n,extendsQuestion:r,type:typeof t}),r});if(!n)throw Error(`No export found extending Question class`);this.component=n[1];let r=this.component?.dataShapes[0];r&&(this.dataShape=r)}else throw Error(`No module found at path: ${e}`)}catch(e){console.log(`[difTester] Error loading component`,e)}}}),d={key:1};function _sfc_render(n,a,o,s,c,l){let u=t(`data-input-form`);return e(),r(`div`,null,[n.component&&n.dataShape?(e(),i(u,{key:0,"data-shape":n.dataShape,"course-cfg":{courseID:`testCourse`,name:`testCourseName`,description:`All of these courses will be the same!`,admins:[`admin`],creator:`admin`,deleted:!1,moderators:[],public:!0,disambiguator:`testCourseName`,questionTypes:[],dataShapes:[]},"preview-component":n.component},null,8,[`data-shape`,`preview-component`])):(e(),r(`div`,d,` No component loaded :/ `))])}var f=s(u,[[`render`,_sfc_render]]);export{f as default};
2
+ //# sourceMappingURL=DataInputFormTester-DJMfu7N5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataInputFormTester-DJMfu7N5.js","names":[],"sources":["../../src/dev/DataInputFormTester.vue","../../src/dev/DataInputFormTester.vue"],"sourcesContent":["<template>\n <div>\n <data-input-form\n v-if=\"component && dataShape\"\n :data-shape=\"dataShape\"\n :course-cfg=\"{\n courseID: 'testCourse',\n name: 'testCourseName',\n description: 'All of these courses will be the same!',\n admins: ['admin'],\n creator: 'admin',\n deleted: false,\n moderators: [],\n public: true,\n disambiguator: 'testCourseName',\n questionTypes: [],\n dataShapes: [],\n }\"\n :preview-component=\"component\"\n />\n <div v-else>\n No component loaded :/\n <!--\n\n todo: provide list of Question type components, with router links\n to their DataInputFormTester loaders.\n\n --></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { DataInputForm } from '@vue-skuilder/edit-ui';\nimport { DataShape } from '../../src/base-course/Interfaces/DataShape';\nimport { useRoute } from 'vue-router';\nimport { Question } from '@vue-skuilder/common-ui';\n\ntype CourseShapes = {\n courseID: string;\n dataShapes: DataShape[];\n};\n\nconst questionModules = import.meta.glob('../**/questions/**/index.ts', {\n // Adding eager: false ensures lazy loading\n eager: false,\n});\n\ntype ModuleExports = {\n [key: string]: unknown;\n};\n\nexport default defineComponent({\n name: 'DataInputFormTester',\n\n components: {\n DataInputForm,\n },\n\n setup() {\n return {\n route: useRoute(),\n };\n },\n\n data() {\n return {\n dataShape: null as DataShape | null,\n cds: null as CourseShapes[] | null,\n component: null as typeof Question | null,\n };\n },\n\n async created() {\n try {\n const q = this.route.params.pathMatch;\n const modulePath = `../${q}/index.ts`;\n\n console.log('Looking for module:', modulePath);\n console.log('Available paths:', Object.keys(questionModules));\n\n if (modulePath in questionModules) {\n const module = (await questionModules[modulePath]()) as ModuleExports;\n\n // Find the Question implementation\n const matchingExport = Object.entries(module).find(([name, exportValue]) => {\n const isClass = typeof exportValue === 'function';\n const extendsQuestion = isClass && exportValue.prototype instanceof Question;\n\n console.log(`Checking export \"${name}\":`, {\n isClass,\n extendsQuestion,\n type: typeof exportValue,\n });\n\n return extendsQuestion;\n });\n\n if (!matchingExport) {\n throw new Error('No export found extending Question class');\n }\n\n this.component = matchingExport[1] as typeof Question;\n\n const ds = this.component?.dataShapes[0];\n if (ds) {\n this.dataShape = ds;\n }\n } else {\n throw new Error(`No module found at path: ${modulePath}`);\n }\n } catch (e) {\n console.log('[difTester] Error loading component', e);\n }\n },\n});\n</script>\n","<template>\n <div>\n <data-input-form\n v-if=\"component && dataShape\"\n :data-shape=\"dataShape\"\n :course-cfg=\"{\n courseID: 'testCourse',\n name: 'testCourseName',\n description: 'All of these courses will be the same!',\n admins: ['admin'],\n creator: 'admin',\n deleted: false,\n moderators: [],\n public: true,\n disambiguator: 'testCourseName',\n questionTypes: [],\n dataShapes: [],\n }\"\n :preview-component=\"component\"\n />\n <div v-else>\n No component loaded :/\n <!--\n\n todo: provide list of Question type components, with router links\n to their DataInputFormTester loaders.\n\n --></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { DataInputForm } from '@vue-skuilder/edit-ui';\nimport { DataShape } from '../../src/base-course/Interfaces/DataShape';\nimport { useRoute } from 'vue-router';\nimport { Question } from '@vue-skuilder/common-ui';\n\ntype CourseShapes = {\n courseID: string;\n dataShapes: DataShape[];\n};\n\nconst questionModules = import.meta.glob('../**/questions/**/index.ts', {\n // Adding eager: false ensures lazy loading\n eager: false,\n});\n\ntype ModuleExports = {\n [key: string]: unknown;\n};\n\nexport default defineComponent({\n name: 'DataInputFormTester',\n\n components: {\n DataInputForm,\n },\n\n setup() {\n return {\n route: useRoute(),\n };\n },\n\n data() {\n return {\n dataShape: null as DataShape | null,\n cds: null as CourseShapes[] | null,\n component: null as typeof Question | null,\n };\n },\n\n async created() {\n try {\n const q = this.route.params.pathMatch;\n const modulePath = `../${q}/index.ts`;\n\n console.log('Looking for module:', modulePath);\n console.log('Available paths:', Object.keys(questionModules));\n\n if (modulePath in questionModules) {\n const module = (await questionModules[modulePath]()) as ModuleExports;\n\n // Find the Question implementation\n const matchingExport = Object.entries(module).find(([name, exportValue]) => {\n const isClass = typeof exportValue === 'function';\n const extendsQuestion = isClass && exportValue.prototype instanceof Question;\n\n console.log(`Checking export \"${name}\":`, {\n isClass,\n extendsQuestion,\n type: typeof exportValue,\n });\n\n return extendsQuestion;\n });\n\n if (!matchingExport) {\n throw new Error('No export found extending Question class');\n }\n\n this.component = matchingExport[1] as typeof Question;\n\n const ds = this.component?.dataShapes[0];\n if (ds) {\n this.dataShape = ds;\n }\n } else {\n throw new Error(`No module found at path: ${modulePath}`);\n }\n } catch (e) {\n console.log('[difTester] Error loading component', e);\n }\n },\n});\n</script>\n"],"mappings":"8XC2CA,IAAM,EAAkB,OAAA,OAAA,EAAA,CAGtB,CAMF,EAAe,EAAgB,CAC7B,KAAM,sBAEN,WAAY,CACV,cAAA,EACD,CAED,OAAQ,CACN,MAAO,CACL,MAAO,GAAU,CAClB,EAGH,MAAO,CACL,MAAO,CACL,UAAW,KACX,IAAK,KACL,UAAW,KACZ,EAGH,MAAM,SAAU,CACd,GAAI,CAEF,IAAM,EAAa,MADT,KAAK,MAAM,OAAO,UACD,WAK3B,GAHA,QAAQ,IAAI,sBAAuB,EAAW,CAC9C,QAAQ,IAAI,mBAAoB,OAAO,KAAK,EAAgB,CAAC,CAEzD,KAAc,EAAiB,CACjC,IAAM,EAAU,MAAM,EAAgB,IAAa,CAG7C,EAAiB,OAAO,QAAQ,EAAO,CAAC,MAAM,CAAC,EAAM,KAAiB,CAC1E,IAAM,EAAU,OAAO,GAAgB,WACjC,EAAkB,GAAW,EAAY,qBAAqB,EAQpE,OANA,QAAQ,IAAI,oBAAoB,EAAK,IAAK,CACxC,UACA,kBACA,KAAM,OAAO,EACd,CAAC,CAEK,GACP,CAEF,GAAI,CAAC,EACH,MAAU,MAAM,2CAA2C,CAG7D,KAAK,UAAY,EAAe,GAEhC,IAAM,EAAK,KAAK,WAAW,WAAW,GAClC,IACF,KAAK,UAAY,QAGnB,MAAU,MAAM,4BAA4B,IAAa,OAEpD,EAAG,CACV,QAAQ,IAAI,sCAAuC,EAAE,GAG1D,CAAC,IAnHF,IAAA,EAAA,yEACE,EA2BM,MAAA,KAAA,CAzBI,EAAA,WAAa,EAAA,WAAA,GAAA,CADrB,EAiBE,EAAA,CAnBN,IAAA,EAIO,aAAY,EAAA,UACZ,aAAY,oOAYZ,CACA,oBAAmB,EAAA,4DAEtB,EAOS,MA3Bb,EAoBgB,2BAEV,EAAA,CAAA"}
@@ -0,0 +1 @@
1
+ .component-fade-enter-active[data-v-df68b8b6],.component-fade-leave-active[data-v-df68b8b6]{transition:opacity .5s}.component-fade-enter[data-v-df68b8b6],.component-fade-leave-to[data-v-df68b8b6]{opacity:0}
@@ -0,0 +1,2 @@
1
+ import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,S as i,T as a,_ as o,v as s,y as c}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{B as l}from"./common-ui.es-B_e3elP3.js";import{m as u}from"./dist-CrcJCHFk.js";import"./MarkdownRenderer-DoVbFpA6-BIbDxYC4.js";import{k as d}from"./dist-C-y8dDrx.js";import{t as f}from"./index-DTRBt3VN.js";import{g as p}from"./dist-D_IucGmu.js";var m=a({name:`ELOModerator`,components:{CardLoader:l},props:{courseId:{type:String,required:!0}},data(){return{courseDB:null,updatePending:!0,courseConfig:null,cards:[],id1:null,id2:null,elo1:null,elo2:null,viewLookup:p.getView}},async created(){this.courseDB=d().getCourseDB(this.courseId),this.courseConfig=await this.courseDB.getCourseConfig(),await this.getNewCards()},methods:{vote(e){if(!this.elo1||!this.elo2)return;let t=u(this.elo1,this.elo2,e===`a`?1:0,{globalOnly:!0});this.courseDB.updateCardElo(this.cards[0].cardId,t.userElo),this.courseDB.updateCardElo(this.cards[1].cardId,t.cardElo),this.getNewCards()},async getNewCards(){this.courseDB&&(this.updatePending=!0,this.cards=await this.courseDB.getInexperiencedCards(),this.id1=null,this.id2=null,this.id1={courseID:this.courseId,cardID:this.cards[0].cardId},this.id2={courseID:this.courseId,cardID:this.cards[1].cardId},this.elo1=this.cards[0].elo,this.elo2=this.cards[1].elo,this.updatePending=!1)}}});function _sfc_render(a,l,u,d,f,p){let m=r(`v-col`),h=r(`v-row`),g=r(`v-icon`),_=r(`v-btn`),v=r(`card-loader`),y=r(`v-container`);return a.updatePending?c(``,!0):(n(),s(y,{key:0},{default:e(()=>[t(h,null,{default:e(()=>[t(m,{cols:`12`},{default:e(()=>l[2]||(l[2]=[o(`h1`,null,[i(`Which seems `),o(`em`,null,`harder`),i(`?`)],-1)])),_:1})]),_:1}),t(h,null,{default:e(()=>[t(m,null,{default:e(()=>[t(_,{color:`success`,class:`ma-5`,onClick:l[0]||(l[0]=e=>a.vote(`a`))},{default:e(()=>[t(g,null,{default:e(()=>l[3]||(l[3]=[i(`mdi-check`)])),_:1})]),_:1}),t(v,{class:`ma-2`,qualified_id:a.id1,"view-lookup":a.viewLookup},null,8,[`qualified_id`,`view-lookup`])]),_:1})]),_:1}),t(h,null,{default:e(()=>[t(m,null,{default:e(()=>[t(_,{color:`success`,class:`ma-5`,onClick:l[1]||(l[1]=e=>a.vote(`b`))},{default:e(()=>[t(g,null,{default:e(()=>l[4]||(l[4]=[i(`mdi-check`)])),_:1})]),_:1}),t(v,{class:`ma-2`,qualified_id:a.id2,"view-lookup":a.viewLookup},null,8,[`qualified_id`,`view-lookup`])]),_:1})]),_:1})]),_:1}))}var h=f(m,[[`render`,_sfc_render],[`__scopeId`,`data-v-df68b8b6`]]);export{h as default};
2
+ //# sourceMappingURL=EloModeration-_LmeCIiL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EloModeration-_LmeCIiL.js","names":[],"sources":["../../src/components/Courses/EloModeration.vue","../../src/components/Courses/EloModeration.vue"],"sourcesContent":["<template>\n <v-container v-if=\"!updatePending\">\n <v-row>\n <v-col cols=\"12\">\n <h1>Which seems <em>harder</em>?</h1>\n </v-col>\n </v-row>\n\n <v-row>\n <v-col>\n <v-btn color=\"success\" class=\"ma-5\" @click=\"vote('a')\">\n <v-icon>mdi-check</v-icon>\n </v-btn>\n <card-loader class=\"ma-2\" :qualified_id=\"id1\" :view-lookup=\"viewLookup\" />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col>\n <v-btn color=\"success\" class=\"ma-5\" @click=\"vote('b')\">\n <v-icon>mdi-check</v-icon>\n </v-btn>\n <card-loader class=\"ma-2\" :qualified_id=\"id2\" :view-lookup=\"viewLookup\" />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script lang=\"ts\">\nimport { CardLoader } from '@vue-skuilder/common-ui';\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { CourseElo, adjustCourseScores, CourseConfig } from '@vue-skuilder/common';\nimport { CourseDBInterface, getDataLayer, QualifiedCardID } from '@vue-skuilder/db';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'ELOModerator',\n\n components: {\n CardLoader,\n },\n\n props: {\n courseId: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n courseDB: null as CourseDBInterface | null,\n updatePending: true,\n courseConfig: null as CourseConfig | null,\n cards: [] as {\n courseId: string;\n cardId: string;\n elo: CourseElo;\n count: number;\n }[],\n id1: null as QualifiedCardID | null,\n id2: null as QualifiedCardID | null,\n elo1: null as CourseElo | null,\n elo2: null as CourseElo | null,\n viewLookup: allCourseWare.getView,\n };\n },\n\n async created() {\n this.courseDB = getDataLayer().getCourseDB(this.courseId);\n\n this.courseConfig = (await this.courseDB!.getCourseConfig())!;\n await this.getNewCards();\n },\n\n methods: {\n vote(x: 'a' | 'b') {\n if (!this.elo1 || !this.elo2) return;\n\n const scores = adjustCourseScores(this.elo1, this.elo2, x === 'a' ? 1 : 0, {\n globalOnly: true,\n });\n\n this.courseDB!.updateCardElo(this.cards[0].cardId, scores.userElo);\n this.courseDB!.updateCardElo(this.cards[1].cardId, scores.cardElo);\n\n this.getNewCards();\n },\n\n async getNewCards() {\n if (!this.courseDB) return;\n\n this.updatePending = true;\n this.cards = await this.courseDB!.getInexperiencedCards();\n\n // console.log('Comparing:\\n\\t' + JSON.stringify(this.cards));\n\n this.id1 = null;\n this.id2 = null;\n\n this.id1 = {\n courseID: this.courseId,\n cardID: this.cards[0].cardId,\n };\n this.id2 = {\n courseID: this.courseId,\n cardID: this.cards[1].cardId,\n };\n\n this.elo1 = this.cards[0].elo;\n this.elo2 = this.cards[1].elo;\n\n this.updatePending = false;\n },\n },\n});\n</script>\n\n<style scoped>\n.component-fade-enter-active,\n.component-fade-leave-active {\n transition: opacity 0.5s ease;\n}\n.component-fade-enter, .component-fade-leave-to\n/* .component-fade-leave-active below version 2.1.8 */ {\n opacity: 0;\n}\n</style>\n","<template>\n <v-container v-if=\"!updatePending\">\n <v-row>\n <v-col cols=\"12\">\n <h1>Which seems <em>harder</em>?</h1>\n </v-col>\n </v-row>\n\n <v-row>\n <v-col>\n <v-btn color=\"success\" class=\"ma-5\" @click=\"vote('a')\">\n <v-icon>mdi-check</v-icon>\n </v-btn>\n <card-loader class=\"ma-2\" :qualified_id=\"id1\" :view-lookup=\"viewLookup\" />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col>\n <v-btn color=\"success\" class=\"ma-5\" @click=\"vote('b')\">\n <v-icon>mdi-check</v-icon>\n </v-btn>\n <card-loader class=\"ma-2\" :qualified_id=\"id2\" :view-lookup=\"viewLookup\" />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script lang=\"ts\">\nimport { CardLoader } from '@vue-skuilder/common-ui';\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { CourseElo, adjustCourseScores, CourseConfig } from '@vue-skuilder/common';\nimport { CourseDBInterface, getDataLayer, QualifiedCardID } from '@vue-skuilder/db';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'ELOModerator',\n\n components: {\n CardLoader,\n },\n\n props: {\n courseId: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n courseDB: null as CourseDBInterface | null,\n updatePending: true,\n courseConfig: null as CourseConfig | null,\n cards: [] as {\n courseId: string;\n cardId: string;\n elo: CourseElo;\n count: number;\n }[],\n id1: null as QualifiedCardID | null,\n id2: null as QualifiedCardID | null,\n elo1: null as CourseElo | null,\n elo2: null as CourseElo | null,\n viewLookup: allCourseWare.getView,\n };\n },\n\n async created() {\n this.courseDB = getDataLayer().getCourseDB(this.courseId);\n\n this.courseConfig = (await this.courseDB!.getCourseConfig())!;\n await this.getNewCards();\n },\n\n methods: {\n vote(x: 'a' | 'b') {\n if (!this.elo1 || !this.elo2) return;\n\n const scores = adjustCourseScores(this.elo1, this.elo2, x === 'a' ? 1 : 0, {\n globalOnly: true,\n });\n\n this.courseDB!.updateCardElo(this.cards[0].cardId, scores.userElo);\n this.courseDB!.updateCardElo(this.cards[1].cardId, scores.cardElo);\n\n this.getNewCards();\n },\n\n async getNewCards() {\n if (!this.courseDB) return;\n\n this.updatePending = true;\n this.cards = await this.courseDB!.getInexperiencedCards();\n\n // console.log('Comparing:\\n\\t' + JSON.stringify(this.cards));\n\n this.id1 = null;\n this.id2 = null;\n\n this.id1 = {\n courseID: this.courseId,\n cardID: this.cards[0].cardId,\n };\n this.id2 = {\n courseID: this.courseId,\n cardID: this.cards[1].cardId,\n };\n\n this.elo1 = this.cards[0].elo;\n this.elo2 = this.cards[1].elo;\n\n this.updatePending = false;\n },\n },\n});\n</script>\n\n<style scoped>\n.component-fade-enter-active,\n.component-fade-leave-active {\n transition: opacity 0.5s ease;\n}\n.component-fade-enter, .component-fade-leave-to\n/* .component-fade-leave-active below version 2.1.8 */ {\n opacity: 0;\n}\n</style>\n"],"mappings":"0YCmCA,IAAA,EAAe,EAAgB,CAC7B,KAAM,eAEN,WAAY,CACV,WAAA,EACD,CAED,MAAO,CACL,SAAU,CACR,KAAM,OACN,SAAU,GACX,CACF,CAED,MAAO,CACL,MAAO,CACL,SAAU,KACV,cAAe,GACf,aAAc,KACd,MAAO,EAAC,CAMR,IAAK,KACL,IAAK,KACL,KAAM,KACN,KAAM,KACN,WAAY,EAAc,QAC3B,EAGH,MAAM,SAAU,CACd,KAAK,SAAW,GAAc,CAAC,YAAY,KAAK,SAAS,CAEzD,KAAK,aAAgB,MAAM,KAAK,SAAU,iBAAiB,CAC3D,MAAM,KAAK,aAAa,EAG1B,QAAS,CACP,KAAK,EAAc,CACjB,GAAI,CAAC,KAAK,MAAQ,CAAC,KAAK,KAAM,OAE9B,IAAM,EAAS,EAAmB,KAAK,KAAM,KAAK,KAAM,IAAM,IAAM,EAAI,EAAG,CACzE,WAAY,GACb,CAAC,CAEF,KAAK,SAAU,cAAc,KAAK,MAAM,GAAG,OAAQ,EAAO,QAAQ,CAClE,KAAK,SAAU,cAAc,KAAK,MAAM,GAAG,OAAQ,EAAO,QAAQ,CAElE,KAAK,aAAa,EAGpB,MAAM,aAAc,CACb,KAAK,WAEV,KAAK,cAAgB,GACrB,KAAK,MAAQ,MAAM,KAAK,SAAU,uBAAuB,CAIzD,KAAK,IAAM,KACX,KAAK,IAAM,KAEX,KAAK,IAAM,CACT,SAAU,KAAK,SACf,OAAQ,KAAK,MAAM,GAAG,OACvB,CACD,KAAK,IAAM,CACT,SAAU,KAAK,SACf,OAAQ,KAAK,MAAM,GAAG,OACvB,CAED,KAAK,KAAO,KAAK,MAAM,GAAG,IAC1B,KAAK,KAAO,KAAK,MAAM,GAAG,IAE1B,KAAK,cAAgB,KAExB,CACF,CAAC,yIAlHoB,EAAA,cADtB,EAAA,GAAA,GAAA,EACsB,GAAA,CAApB,EAwBc,EAAA,CAzBhB,IAAA,EAAA,CAAA,CAAA,QAAA,MAMY,CAJR,EAIQ,EAAA,KAAA,CANZ,QAAA,MAKc,CAFR,EAEQ,EAAA,CAFD,KAAK,KAAI,CAAA,CAHtB,QAAA,MAI6C,EAAA,KAAA,EAAA,GAAA,CAArC,EAAqC,KAAA,KAAA,CAJ7C,EAIY,eAAY,CAAA,EAAe,KAAA,KAAX,SAAM,CAJlC,EAIuC,IAAC,SAJxC,EAAA,MAAA,EAAA,IAQI,EAOQ,EAAA,KAAA,CAfZ,QAAA,MAcc,CALR,EAKQ,EAAA,KAAA,CAdd,QAAA,MAYgB,CAFR,EAEQ,EAAA,CAFD,MAAM,UAAU,MAAM,OAAQ,QAAK,EAAA,KAAA,EAAA,GAAA,GAAE,EAAA,KAAI,IAAA,IAVxD,QAAA,MAWoC,CAA1B,EAA0B,EAAA,KAAA,CAXpC,QAAA,MAW2B,EAAA,KAAA,EAAA,GAAA,CAX3B,EAWkB,YAAS,CAAA,EAAA,CAX3B,EAAA,MAAA,EAAA,IAaQ,EAA0E,EAAA,CAA7D,MAAM,OAAQ,aAAc,EAAA,IAAM,cAAa,EAAA,qDAbpE,EAAA,MAAA,EAAA,IAiBI,EAOQ,EAAA,KAAA,CAxBZ,QAAA,MAuBc,CALR,EAKQ,EAAA,KAAA,CAvBd,QAAA,MAqBgB,CAFR,EAEQ,EAAA,CAFD,MAAM,UAAU,MAAM,OAAQ,QAAK,EAAA,KAAA,EAAA,GAAA,GAAE,EAAA,KAAI,IAAA,IAnBxD,QAAA,MAoBoC,CAA1B,EAA0B,EAAA,KAAA,CApBpC,QAAA,MAoB2B,EAAA,KAAA,EAAA,GAAA,CApB3B,EAoBkB,YAAS,CAAA,EAAA,CApB3B,EAAA,MAAA,EAAA,IAsBQ,EAA0E,EAAA,CAA7D,MAAM,OAAQ,aAAc,EAAA,IAAM,cAAa,EAAA,qDAtBpE,EAAA,MAAA,EAAA,MAAA,EAAA"}
@@ -0,0 +1,3 @@
1
+ import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,T as i,Vt as a,b as o,v as s}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{f as c}from"./dist-CrcJCHFk.js";import{k as l}from"./dist-C-y8dDrx.js";import{t as u}from"./index-DTRBt3VN.js";var d=i({name:`JoinCode`,props:{classroomId:{type:String,required:!0}},data(){return{classroomCfg:null,classroomDB:null,updatePending:!0}},async created(){this.classroomDB=await l().getClassroomDB(this.classroomId,`teacher`),this.classroomCfg=this.classroomDB.getConfig(),await Promise.all([]),c(`Route loaded w/ (prop) _id: ${this.classroomId}`),c(`Config:
2
+ ${JSON.stringify(this.classroomCfg)}`),this.updatePending=!1},methods:{close(){this.$router.back()}}}),f={key:0,class:`join-code`};function _sfc_render(i,c,l,u,d,p){let m=r(`v-btn`),h=r(`v-progress-circular`),g=r(`v-col`),_=r(`v-row`),v=r(`v-container`);return n(),s(v,{fluid:``,class:`fill-height pa-0`},{default:e(()=>[t(m,{icon:`mdi-close`,color:`red`,variant:`elevated`,class:`close-btn`,onClick:i.close},null,8,[`onClick`]),t(_,{align:`center`,justify:`center`,class:`fill-height`},{default:e(()=>[t(g,{cols:`12`,class:`text-center`},{default:e(()=>[i.updatePending?(n(),s(h,{key:1,indeterminate:``,size:`64`})):(n(),o(`div`,f,a(i.classroomCfg?.joinCode),1))]),_:1})]),_:1})]),_:1})}var p=u(d,[[`render`,_sfc_render]]);export{p as default};
3
+ //# sourceMappingURL=JoinCode-CF6mm6NH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoinCode-CF6mm6NH.js","names":[],"sources":["../../src/components/Classrooms/JoinCode.vue","../../src/components/Classrooms/JoinCode.vue"],"sourcesContent":["<template>\n <v-container fluid class=\"fill-height pa-0\">\n <!-- Close button in top-right corner -->\n <v-btn icon=\"mdi-close\" color=\"red\" variant=\"elevated\" class=\"close-btn\" @click=\"close\"> </v-btn>\n\n <!-- Main content -->\n <v-row align=\"center\" justify=\"center\" class=\"fill-height\">\n <v-col cols=\"12\" class=\"text-center\">\n <div v-if=\"!updatePending\" class=\"join-code\">\n {{ classroomCfg?.joinCode }}\n </div>\n <v-progress-circular v-else indeterminate size=\"64\"></v-progress-circular>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script lang=\"ts\">\nimport { log } from '@vue-skuilder/common';\nimport { TeacherClassroomDBInterface, getDataLayer } from '@vue-skuilder/db';\nimport { ClassroomConfig } from '@vue-skuilder/common';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'JoinCode',\n\n props: {\n classroomId: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n classroomCfg: null as ClassroomConfig | null,\n classroomDB: null as TeacherClassroomDBInterface | null,\n updatePending: true,\n };\n },\n\n async created() {\n const dl = getDataLayer();\n\n this.classroomDB = await dl.getClassroomDB(this.classroomId, 'teacher');\n this.classroomCfg = this.classroomDB.getConfig();\n await Promise.all([]);\n log(`Route loaded w/ (prop) _id: ${this.classroomId}`);\n log(`Config:\n ${JSON.stringify(this.classroomCfg)}`);\n this.updatePending = false;\n },\n\n methods: {\n close() {\n this.$router.back();\n },\n },\n});\n</script>\n\n<style>\n.close-btn {\n position: fixed;\n top: 80px;\n right: 16px;\n z-index: 100;\n}\n\n.join-code {\n font-size: 8rem;\n font-weight: bold;\n line-height: 1.2;\n letter-spacing: 0.1em;\n}\n\n/* Responsive adjustments */\n@media (max-width: 600px) {\n .join-code {\n font-size: 4rem;\n }\n}\n</style>\n","<template>\n <v-container fluid class=\"fill-height pa-0\">\n <!-- Close button in top-right corner -->\n <v-btn icon=\"mdi-close\" color=\"red\" variant=\"elevated\" class=\"close-btn\" @click=\"close\"> </v-btn>\n\n <!-- Main content -->\n <v-row align=\"center\" justify=\"center\" class=\"fill-height\">\n <v-col cols=\"12\" class=\"text-center\">\n <div v-if=\"!updatePending\" class=\"join-code\">\n {{ classroomCfg?.joinCode }}\n </div>\n <v-progress-circular v-else indeterminate size=\"64\"></v-progress-circular>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script lang=\"ts\">\nimport { log } from '@vue-skuilder/common';\nimport { TeacherClassroomDBInterface, getDataLayer } from '@vue-skuilder/db';\nimport { ClassroomConfig } from '@vue-skuilder/common';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'JoinCode',\n\n props: {\n classroomId: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n classroomCfg: null as ClassroomConfig | null,\n classroomDB: null as TeacherClassroomDBInterface | null,\n updatePending: true,\n };\n },\n\n async created() {\n const dl = getDataLayer();\n\n this.classroomDB = await dl.getClassroomDB(this.classroomId, 'teacher');\n this.classroomCfg = this.classroomDB.getConfig();\n await Promise.all([]);\n log(`Route loaded w/ (prop) _id: ${this.classroomId}`);\n log(`Config:\n ${JSON.stringify(this.classroomCfg)}`);\n this.updatePending = false;\n },\n\n methods: {\n close() {\n this.$router.back();\n },\n },\n});\n</script>\n\n<style>\n.close-btn {\n position: fixed;\n top: 80px;\n right: 16px;\n z-index: 100;\n}\n\n.join-code {\n font-size: 8rem;\n font-weight: bold;\n line-height: 1.2;\n letter-spacing: 0.1em;\n}\n\n/* Responsive adjustments */\n@media (max-width: 600px) {\n .join-code {\n font-size: 4rem;\n }\n}\n</style>\n"],"mappings":"8PCuBA,IAAA,EAAe,EAAgB,CAC7B,KAAM,WAEN,MAAO,CACL,YAAa,CACX,KAAM,OACN,SAAU,GACX,CACF,CAED,MAAO,CACL,MAAO,CACL,aAAc,KACd,YAAa,KACb,cAAe,GAChB,EAGH,MAAM,SAAU,CAGd,KAAK,YAAc,MAFR,GAAc,CAEG,eAAe,KAAK,YAAa,UAAU,CACvE,KAAK,aAAe,KAAK,YAAY,WAAW,CAChD,MAAM,QAAQ,IAAI,EAAE,CAAC,CACrB,EAAI,+BAA+B,KAAK,cAAc,CACtD,EAAI;MACF,KAAK,UAAU,KAAK,aAAa,GAAG,CACtC,KAAK,cAAgB,IAGvB,QAAS,CACP,OAAQ,CACN,KAAK,QAAQ,MAAM,EAEtB,CACF,CAAC,IA1DF,IAAA,EAQmC,MAAM,mJAPvC,EAac,EAAA,CAbD,MAAA,GAAM,MAAM,qBAD3B,QAAA,MAGqG,CAAjG,EAAiG,EAAA,CAA1F,KAAK,YAAY,MAAM,MAAM,QAAQ,WAAW,MAAM,YAAa,QAAO,EAAA,2BAGjF,EAOQ,EAAA,CAPD,MAAM,SAAS,QAAQ,SAAS,MAAM,gBANjD,QAAA,MAYc,CALR,EAKQ,EAAA,CALD,KAAK,KAAK,MAAM,gBAP7B,QAAA,MAUc,CAFM,EAAA,eACe,GAAA,CAE3B,EAA0E,EAAA,CAXlF,IAAA,EAWoC,cAAA,GAAc,KAAK,SAHnC,GAAA,CAAZ,EAEM,MAFN,EAEM,EADD,EAAA,cAAc,SAAQ,CAAA,EAAA,IATnC,EAAA,MAAA,EAAA,MAAA,EAAA"}
@@ -0,0 +1 @@
1
+ .close-btn{z-index:100;position:fixed;top:80px;right:16px}.join-code{letter-spacing:.1em;font-size:8rem;font-weight:700;line-height:1.2}@media (max-width:600px){.join-code{font-size:4rem}}
@@ -0,0 +1,53 @@
1
+ import"./chunk-D6hFPZc3.js";import{$ as e,A as t,C as n,E as r,H as i,I as a,It as o,J as s,K as c,M as l,N as u,O as d,S as f,T as p,Vt as m,W as h,Z as g,_,at as v,b as y,et as b,f as x,ft as S,g as C,it as w,k as T,l as E,lt as D,mt as O,nt as k,ot as A,rt as ee,s as j,st as te,tt as M,v as N,y as P,z as ne}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{E as re,f as ie}from"./dist-CrcJCHFk.js";var ae,setActivePinia=e=>ae=e,oe=Symbol();function isPlainObject(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var F;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(F||(F={}));var se=typeof window<`u`,ce=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof window==`object`&&window.global===window?window:typeof globalThis==`object`?globalThis:{HTMLElement:null};function bom(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function download(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){ue(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function corsEnabled(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function click(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var I=typeof navigator==`object`?navigator:{userAgent:``},le=/Macintosh/.test(I.userAgent)&&/AppleWebKit/.test(I.userAgent)&&!/Safari/.test(I.userAgent),ue=se?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!le?downloadSaveAs:`msSaveOrOpenBlob`in I?msSaveAs:fileSaverSaveAs:()=>{};function downloadSaveAs(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?click(r):corsEnabled(r.href)?download(e,t,n):(r.target=`_blank`,click(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){click(r)},0))}function msSaveAs(e,t=`download`,n){if(typeof e==`string`)if(corsEnabled(e))download(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){click(t)})}else navigator.msSaveOrOpenBlob(bom(e,n),t)}function fileSaverSaveAs(e,t,n,r){if(r=r||open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return download(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(ce.HTMLElement))||`safari`in ce,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||le)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:de}=Object;function createPinia(){let e=M(!0),t=e.run(()=>D({})),n=[],r=[],i=v({install(e){setActivePinia(i),i._a=e,e.provide(oe,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var noop=()=>{};function addSubscription(e,t,n,r=noop){e.push(t);let removeSubscription=()=>{let n=e.indexOf(t);n>-1&&(e.splice(n,1),r())};return!n&&k()&&A(removeSubscription),removeSubscription}function triggerSubscriptions(e,...t){e.slice().forEach(e=>{e(...t)})}var fallbackRunWithContext=e=>e(),fe=Symbol(),pe=Symbol();function mergeReactiveObjects(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];isPlainObject(i)&&isPlainObject(r)&&e.hasOwnProperty(n)&&!w(r)&&!ee(r)?e[n]=mergeReactiveObjects(i,r):e[n]=r}return e}var me=Symbol();function shouldHydrate(e){return!isPlainObject(e)||!e.hasOwnProperty(me)}var{assign:L}=Object;function isComputed(e){return!!(w(e)&&e.effect)}function createOptionsStore(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function setup(){return s||(n.state.value[e]=i?i():{}),L(O(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=v(C(()=>{setActivePinia(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=createSetupStore(e,setup,t,n,r,!0),c}function createSetupStore(e,t,n={},r,i,a){let o,s=L({actions:{}},n),c={deep:!0},l,d,f=[],p=[],m=r.state.value[e];!a&&!m&&(r.state.value[e]={}),D({});let h;function $patch(t){let n;l=d=!1,typeof t==`function`?(t(r.state.value[e]),n={type:F.patchFunction,storeId:e,events:void 0}):(mergeReactiveObjects(r.state.value[e],t),n={type:F.patchObject,payload:t,storeId:e,events:void 0});let i=h=Symbol();u().then(()=>{h===i&&(l=!0)}),d=!0,triggerSubscriptions(f,n,r.state.value[e])}let _=a?function $reset(){let{state:e}=n,t=e?e():{};this.$patch(e=>{L(e,t)})}:noop;function $dispose(){o.stop(),f=[],p=[],r._s.delete(e)}let action=(t,n=``)=>{if(fe in t)return t[pe]=n,t;let wrappedAction=function(){setActivePinia(r);let n=Array.from(arguments),i=[],a=[];function after(e){i.push(e)}function onError(e){a.push(e)}triggerSubscriptions(p,{args:n,name:wrappedAction[pe],store:v,after,onError});let o;try{o=t.apply(this&&this.$id===e?this:v,n)}catch(e){throw triggerSubscriptions(a,e),e}return o instanceof Promise?o.then(e=>(triggerSubscriptions(i,e),e)).catch(e=>(triggerSubscriptions(a,e),Promise.reject(e))):(triggerSubscriptions(i,o),o)};return wrappedAction[fe]=!0,wrappedAction[pe]=n,wrappedAction},v=te({_p:r,$id:e,$onAction:addSubscription.bind(null,p),$patch,$reset:_,$subscribe(t,n={}){let i=addSubscription(f,t,n.detached,()=>a()),a=o.run(()=>g(()=>r.state.value[e],r=>{(n.flush===`sync`?d:l)&&t({storeId:e,type:F.direct,events:void 0},r)},L({},c,n)));return i},$dispose});r._s.set(e,v);let y=(r._a&&r._a.runWithContext||fallbackRunWithContext)(()=>r._e.run(()=>(o=M()).run(()=>t({action}))));for(let t in y){let n=y[t];w(n)&&!isComputed(n)||ee(n)?a||(m&&shouldHydrate(n)&&(w(n)?n.value=m[t]:mergeReactiveObjects(n,m[t])),r.state.value[e][t]=n):typeof n==`function`&&(y[t]=action(n,t),s.actions[t]=n)}return L(v,y),L(S(v),y),Object.defineProperty(v,`$state`,{get:()=>r.state.value[e],set:e=>{$patch(t=>{L(t,e)})}}),r._p.forEach(e=>{L(v,o.run(()=>e({store:v,app:r._a,pinia:r,options:s})))}),m&&a&&n.hydrate&&n.hydrate(v.$state,m),l=!0,d=!0,v}function defineStore(e,n,r){let i,a,o=typeof n==`function`;typeof e==`string`?(i=e,a=o?r:n):(a=e,i=e.id);function useStore(e,r){let s=T();return e=e||(s?t(oe,null):null),e&&setActivePinia(e),e=ae,e._s.has(i)||(o?createSetupStore(i,n,a,e):createOptionsStore(i,a,e)),e._s.get(i)}return useStore.$id=i,useStore}var he=Object.create,R=Object.defineProperty,__name=(e,t)=>R(e,`name`,{value:t,configurable:!0}),ge=Object.getOwnPropertyDescriptor,_e=Object.getOwnPropertyNames,ve=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),__exportAll=(e,t)=>{let n={};for(var r in e)R(n,r,{get:e[r],enumerable:!0});return t||R(n,Symbol.toStringTag,{value:`Module`}),n},__copyProps=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=_e(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ye.call(e,s)&&s!==n&&R(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ge(t,s))||r.enumerable});return e},__toESM=(e,t,n)=>(n=e==null?{}:he(ve(e)),__copyProps(t||!e||!e.__esModule?R(n,`default`,{value:e,enumerable:!0}):n,e)),z=__name((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},`default`),be=__commonJSMin(((e,t)=>{(function(e,n,r){if(!e)return;for(var i={8:`backspace`,9:`tab`,13:`enter`,16:`shift`,17:`ctrl`,18:`alt`,20:`capslock`,27:`esc`,32:`space`,33:`pageup`,34:`pagedown`,35:`end`,36:`home`,37:`left`,38:`up`,39:`right`,40:`down`,45:`ins`,46:`del`,91:`meta`,93:`meta`,224:`meta`},a={106:`*`,107:`+`,109:`-`,110:`.`,111:`/`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`},o={"~":"`","!":`1`,"@":`2`,"#":`3`,$:`4`,"%":`5`,"^":`6`,"&":`7`,"*":`8`,"(":`9`,")":`0`,_:`-`,"+":`=`,":":`;`,'"':`'`,"<":`,`,">":`.`,"?":`/`,"|":`\\`},s={option:`alt`,command:`meta`,return:`enter`,escape:`esc`,plus:`+`,mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?`meta`:`ctrl`},c,l=1;l<20;++l)i[111+l]=`f`+l;for(l=0;l<=9;++l)i[l+96]=l.toString();function _addEvent(e,t,n){if(e.addEventListener){e.addEventListener(t,n,!1);return}e.attachEvent(`on`+t,n)}function _characterFromEvent(e){if(e.type==`keypress`){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return i[e.which]?i[e.which]:a[e.which]?a[e.which]:String.fromCharCode(e.which).toLowerCase()}function _modifiersMatch(e,t){return e.sort().join(`,`)===t.sort().join(`,`)}function _eventModifiers(e){var t=[];return e.shiftKey&&t.push(`shift`),e.altKey&&t.push(`alt`),e.ctrlKey&&t.push(`ctrl`),e.metaKey&&t.push(`meta`),t}function _preventDefault(e){if(e.preventDefault){e.preventDefault();return}e.returnValue=!1}function _stopPropagation(e){if(e.stopPropagation){e.stopPropagation();return}e.cancelBubble=!0}function _isModifier(e){return e==`shift`||e==`ctrl`||e==`alt`||e==`meta`}function _getReverseMap(){if(!c)for(var e in c={},i)e>95&&e<112||i.hasOwnProperty(e)&&(c[i[e]]=e);return c}function _pickBestAction(e,t,n){return n||(n=_getReverseMap()[e]?`keydown`:`keypress`),n==`keypress`&&t.length&&(n=`keydown`),n}function _keysFromString(e){return e===`+`?[`+`]:(e=e.replace(/\+{2}/g,`+plus`),e.split(`+`))}function _getKeyInfo(e,t){var n,r,i,a=[];for(n=_keysFromString(e),i=0;i<n.length;++i)r=n[i],s[r]&&(r=s[r]),t&&t!=`keypress`&&o[r]&&(r=o[r],a.push(`shift`)),_isModifier(r)&&a.push(r);return t=_pickBestAction(r,a,t),{key:r,modifiers:a,action:t}}function _belongsTo(e,t){return e===null||e===n?!1:e===t?!0:_belongsTo(e.parentNode,t)}function Mousetrap(e){var t=this;if(e=e||n,!(t instanceof Mousetrap))return new Mousetrap(e);t.target=e,t._callbacks={},t._directMap={};var r={},i,a=!1,o=!1,s=!1;function _resetSequences(e){e=e||{};var t=!1,n;for(n in r){if(e[n]){t=!0;continue}r[n]=0}t||(s=!1)}function _getMatches(e,n,i,a,o,s){var c,l,u=[],d=i.type;if(!t._callbacks[e])return[];for(d==`keyup`&&_isModifier(e)&&(n=[e]),c=0;c<t._callbacks[e].length;++c)if(l=t._callbacks[e][c],!(!a&&l.seq&&r[l.seq]!=l.level)&&d==l.action&&(d==`keypress`&&!i.metaKey&&!i.ctrlKey||_modifiersMatch(n,l.modifiers))){var f=!a&&l.combo==o,p=a&&l.seq==a&&l.level==s;(f||p)&&t._callbacks[e].splice(c,1),u.push(l)}return u}function _fireCallback(e,n,r,i){t.stopCallback(n,n.target||n.srcElement,r,i)||e(n,r)===!1&&(_preventDefault(n),_stopPropagation(n))}t._handleKey=function(e,t,n){var r=_getMatches(e,t,n),i,a={},c=0,l=!1;for(i=0;i<r.length;++i)r[i].seq&&(c=Math.max(c,r[i].level));for(i=0;i<r.length;++i){if(r[i].seq){if(r[i].level!=c)continue;l=!0,a[r[i].seq]=1,_fireCallback(r[i].callback,n,r[i].combo,r[i].seq);continue}l||_fireCallback(r[i].callback,n,r[i].combo)}var u=n.type==`keypress`&&o;n.type==s&&!_isModifier(e)&&!u&&_resetSequences(a),o=l&&n.type==`keydown`};function _handleKeyEvent(e){typeof e.which!=`number`&&(e.which=e.keyCode);var n=_characterFromEvent(e);if(n){if(e.type==`keyup`&&a===n){a=!1;return}t.handleKey(n,_eventModifiers(e),e)}}function _resetSequenceTimer(){clearTimeout(i),i=setTimeout(_resetSequences,1e3)}function _bindSequence(e,t,n,i){r[e]=0;function _increaseSequence(t){return function(){s=t,++r[e],_resetSequenceTimer()}}function _callbackAndReset(t){_fireCallback(n,t,e),i!==`keyup`&&(a=_characterFromEvent(t)),setTimeout(_resetSequences,10)}for(var o=0;o<t.length;++o){var c=o+1===t.length?_callbackAndReset:_increaseSequence(i||_getKeyInfo(t[o+1]).action);_bindSingle(t[o],c,i,e,o)}}function _bindSingle(e,n,r,i,a){t._directMap[e+`:`+r]=n,e=e.replace(/\s+/g,` `);var o=e.split(` `),s;if(o.length>1){_bindSequence(e,o,n,r);return}s=_getKeyInfo(e,r),t._callbacks[s.key]=t._callbacks[s.key]||[],_getMatches(s.key,s.modifiers,{type:s.action},i,e,a),t._callbacks[s.key][i?`unshift`:`push`]({callback:n,modifiers:s.modifiers,action:s.action,seq:i,level:a,combo:e})}t._bindMultiple=function(e,t,n){for(var r=0;r<e.length;++r)_bindSingle(e[r],t,n)},_addEvent(e,`keypress`,_handleKeyEvent),_addEvent(e,`keydown`,_handleKeyEvent),_addEvent(e,`keyup`,_handleKeyEvent)}Mousetrap.prototype.bind=function(e,t,n){var r=this;return e=e instanceof Array?e:[e],r._bindMultiple.call(r,e,t,n),r},Mousetrap.prototype.unbind=function(e,t){var n=this;return n.bind.call(n,e,function(){},t)},Mousetrap.prototype.trigger=function(e,t){var n=this;return n._directMap[e+`:`+t]&&n._directMap[e+`:`+t]({},e),n},Mousetrap.prototype.reset=function(){var e=this;return e._callbacks={},e._directMap={},e},Mousetrap.prototype.stopCallback=function(e,t){var n=this;if((` `+t.className+` `).indexOf(` mousetrap `)>-1||_belongsTo(t,n.target))return!1;if(`composedPath`in e&&typeof e.composedPath==`function`){var r=e.composedPath()[0];r!==e.target&&(t=r)}return t.tagName==`INPUT`||t.tagName==`SELECT`||t.tagName==`TEXTAREA`||t.isContentEditable},Mousetrap.prototype.handleKey=function(){var e=this;return e._handleKey.apply(e,arguments)},Mousetrap.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(i[t]=e[t]);c=null},Mousetrap.init=function(){var e=Mousetrap(n);for(var t in e)t.charAt(0)!==`_`&&(Mousetrap[t]=function(t){return function(){return e[t].apply(e,arguments)}}(t))},Mousetrap.init(),e.Mousetrap=Mousetrap,t!==void 0&&t.exports&&(t.exports=Mousetrap),typeof define==`function`&&define.amd&&define(function(){return Mousetrap})})(typeof window<`u`?window:null,typeof window<`u`?document:null)}));function _typeof(e){"@babel/helpers - typeof";return _typeof=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof(e)}function toPrimitive(e,t){if(_typeof(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(_typeof(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function toPropertyKey(e){var t=toPrimitive(e,`string`);return _typeof(t)==`symbol`?t:t+``}function _defineProperty(e,t,n){return(t=toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var xe=__toESM(be());function inputElementIsFocused(){let e=document.activeElement;return e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`)?!1:e instanceof HTMLElement&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.tagName===`SELECT`||e.isContentEditable)}var B=class SkldrMouseTrap{constructor(){_defineProperty(this,`mouseTrap`,void 0),_defineProperty(this,`hotkeys`,void 0),this.mouseTrap=new xe.default,this.mouseTrap.stopCallback=()=>!1,this.hotkeys=[]}static get commands(){return SkldrMouseTrap.instance().hotkeys.map(e=>({command:e.command,hotkey:e.hotkey}))}static addBinding(e){let t=Array.isArray(e)?e:[e],n=SkldrMouseTrap.instance();n.hotkeys=[...n.hotkeys,...t],t.forEach(e=>{n.mouseTrap.bind(e.hotkey,(t,n)=>{if(inputElementIsFocused()){console.log(`Ignoring hotkey ${e.hotkey} while input element is focused`);return}e.callback(t,n)})})}static removeBinding(e){let t=SkldrMouseTrap.instance(),n=[...t.hotkeys];Array.isArray(e)&&!e.every(e=>typeof e==`string`||typeof e==`number`)?e.forEach(e=>{t.hotkeys=t.hotkeys.filter(t=>JSON.stringify(t.hotkey)!==JSON.stringify(e)),t.mouseTrap.unbind(e)}):(t.hotkeys=n.filter(t=>JSON.stringify(t.hotkey)!==JSON.stringify(e)),t.mouseTrap.unbind(e))}static reset(){console.warn(`SkldrMouseTrap.reset() may affect hotkeys registered by other components. Consider using removeBinding() with specific hotkeys for better component isolation.`),SkldrMouseTrap.instance().mouseTrap.reset(),SkldrMouseTrap.instance().hotkeys=[]}static instance(){return SkldrMouseTrap._instance||(SkldrMouseTrap._instance=new SkldrMouseTrap),SkldrMouseTrap._instance}};_defineProperty(B,`_instance`,void 0);function useViewable(e,t,n){let r=D(re.utc()),i=D([]),a={log:(e,...t)=>console.log(`[${n}]: `,e,...t),error:(e,...t)=>console.error(`[${n}]: `,e,...t),warn:(e,...t)=>console.warn(`[${n}]: `,e,...t)},o=C(()=>Math.abs(re.utc().diff(r.value,`milliseconds`))),getURL=(t,n=0)=>{try{if(e.data[n]?.[t])return URL.createObjectURL(e.data[n][t])}catch(e){a.error(`Error creating URL for item:`,t,e)}return``},emitResponse=e=>{t(`emitResponse`,e)};return{startTime:r,hotKeys:i,timeSpent:o,logger:a,getURL,emitResponse}}function useQuestionView(e){let t=D(0),n=D(0),r=D([]),i=D(3),a=D(2),o=D(),submitAnswer=(t,i,a)=>{if(e.logger.log(`submitAnswer called...`),!o.value)throw Error(`Question not initialized`);r.value.push([t,i??``]);let s=o.value.evaluate(t,e.timeSpent.value);e.logger.log(`evaluation of answer ${t}:`,s);let c={...s,priorAttemps:n.value,courseID:``,cardID:``,timeSpent:e.timeSpent.value,timeStamp:e.startTime.value,userAnswer:t};return a?.deferAdvance!==void 0&&(c.deferAdvance=a.deferAdvance),s.isCorrect||n.value++,e.emitResponse(c),c};return{priorSessionViews:t,priorAttempts:n,priorAnswers:r,maxAttemptsPerView:i,maxSessionViews:a,question:o,submitAnswer}}function isQuestionView(e){return typeof e==`object`&&!!e&&`submitAnswer`in e&&`priorAttempts`in e}var Se=null,setPinia=e=>{Se=e},getPinia=()=>Se,Ce={install(e,t){let n=t?.pinia;n&&setPinia(n)}},useCardPreviewModeStore=()=>{let e=getPinia();return e&&setActivePinia(e),defineStore(`previewMode`,{state:()=>({previewMode:!1}),actions:{setPreviewMode(e){this.previewMode=e}},getters:{isPreviewMode(){return this.previewMode}}})()},we=p({name:`UserInput`,data(){return{answer:``,previewModeStore:null}},mounted(){this.previewModeStore=useCardPreviewModeStore()},computed:{autofocus(){return!this.previewModeStore?.previewMode},autoFocus(){return this.autofocus}},methods:{submitAnswer(e){return this.submit(e)},submit(e){return this.getQuestionViewAncestor().submitAnswer(e,this.$options.name??`UserInput`)},getQuestionViewAncestor(){let e=this.$parent,t=0;for(;e&&!isQuestionView(e);){let n=e.$parent;if(!n){let e=`
2
+ UserInput.submit() has failed.
3
+ The input element has no QuestionView ancestor element.`;throw ie(e),Error(e)}if(e=n,t++,t>100){let e=`
4
+ UserInput.submit() has failed.
5
+ Exceeded maximum ancestor lookup depth.`;throw ie(e),Error(e)}}if(!e)throw Error(`No QuestionView ancestor found`);return e}}}),Te=p({name:`UserInputString`,extends:we,props:{icon:{type:Boolean,required:!1}},computed:{prependIcon(){return this.icon?`edit`:``}},mounted(){this.$refs.input?.focus()},methods:{}}),Ee={class:`user-input-container`},De=[`autofocus`];function _sfc_render$2(e,t,n,r,a,o){return i(),y(`span`,Ee,[b(_(`input`,{"onUpdate:modelValue":t[0]||(t[0]=t=>e.answer=t),autofocus:e.autofocus,type:`text`,class:`user-input-string`,ref:`input`,onKeyup:t[1]||(t[1]=E(t=>e.submitAnswer(e.answer),[`enter`]))},null,40,De),[[j,e.answer]])])}__name(_sfc_render$2,`_sfc_render`);var Oe=z(Te,[[`render`,_sfc_render$2],[`__scopeId`,`data-v-aa14961f`]]),ke=p({name:`FillInInput`,components:{UserInputString:Oe},props:{text:{type:String,required:!0}},setup(e){let t=D(`text`),n=D(``),r=C(()=>e.text.split(`||`).length>1);return ne(()=>{console.log(`fillinCreated w/ text: ${e.text}`),n.value=e.text.substring(2,e.text.length-2),console.log(`fillin text trimmed to: ${n.value}`),n.value.split(`||`).length>1&&(t.value=`radio`)}),{inputType:t,radioType:r,processedText:n}}}),Ae={key:0,class:`text-h5 underline`};function _sfc_render$1(e,t,n,r,a,o){let s=c(`user-input-string`);return e.radioType?(i(),y(`span`,Ae,`\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0`)):(i(),N(s,{key:1,id:`input`,icon:!1,type:`text`,value:e.processedText},null,8,[`value`]))}__name(_sfc_render$1,`_sfc_render`);var je=z(ke,[[`render`,_sfc_render$1],[`__scopeId`,`data-v-486ac035`]]);function _getDefaults(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var V=_getDefaults();function changeDefaults(e){V=e}var H={exec:()=>null};function edit(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(U.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var U={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`)},Me=/^(?:[ \t]*(?:\n|$))+/,Ne=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Pe=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,W=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Fe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ie=/(?:[*+-]|\d{1,9}[.)])/,Le=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Re=edit(Le).replace(/bull/g,Ie).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),ze=edit(Le).replace(/bull/g,Ie).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Be=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Ve=/^[^\n]+/,He=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Ue=edit(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,He).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),We=edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ie).getRegex(),G=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Ge=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ke=edit(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,Ge).replace(`tag`,G).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),qe=edit(Be).replace(`hr`,W).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,G).getRegex(),Je={blockquote:edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,qe).getRegex(),code:Ne,def:Ue,fences:Pe,heading:Fe,hr:W,html:Ke,lheading:Re,list:We,newline:Me,paragraph:qe,table:H,text:Ve},Ye=edit(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,W).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,G).getRegex(),Xe={...Je,lheading:ze,table:Ye,paragraph:edit(Be).replace(`hr`,W).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Ye).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,G).getRegex()},Ze={...Je,html:edit(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Ge).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:H,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:edit(Be).replace(`hr`,W).replace(`heading`,` *#{1,6} *[^
6
+ ]`).replace(`lheading`,Re).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},Qe=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,$e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,et=/^( {2,}|\\)\n(?!\s*$)/,tt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,K=/[\p{P}\p{S}]/u,nt=/[\s\p{P}\p{S}]/u,rt=/[^\s\p{P}\p{S}]/u,it=edit(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,nt).getRegex(),at=/(?!~)[\p{P}\p{S}]/u,ot=/(?!~)[\s\p{P}\p{S}]/u,st=/(?:[^\s\p{P}\p{S}]|~)/u,ct=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,lt=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,ut=edit(lt,`u`).replace(/punct/g,K).getRegex(),dt=edit(lt,`u`).replace(/punct/g,at).getRegex(),ft=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,pt=edit(ft,`gu`).replace(/notPunctSpace/g,rt).replace(/punctSpace/g,nt).replace(/punct/g,K).getRegex(),mt=edit(ft,`gu`).replace(/notPunctSpace/g,st).replace(/punctSpace/g,ot).replace(/punct/g,at).getRegex(),ht=edit(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,rt).replace(/punctSpace/g,nt).replace(/punct/g,K).getRegex(),gt=edit(/\\(punct)/,`gu`).replace(/punct/g,K).getRegex(),_t=edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),vt=edit(Ge).replace(`(?:-->|$)`,`-->`).getRegex(),yt=edit(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,vt).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),q=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,bt=edit(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace(`label`,q).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),xt=edit(/^!?\[(label)\]\[(ref)\]/).replace(`label`,q).replace(`ref`,He).getRegex(),St=edit(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,He).getRegex(),Ct={_backpedal:H,anyPunctuation:gt,autolink:_t,blockSkip:ct,br:et,code:$e,del:H,emStrongLDelim:ut,emStrongRDelimAst:pt,emStrongRDelimUnd:ht,escape:Qe,link:bt,nolink:St,punctuation:it,reflink:xt,reflinkSearch:edit(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,xt).replace(`nolink`,St).getRegex(),tag:yt,text:tt,url:H},wt={...Ct,link:edit(/^!?\[(label)\]\((.*?)\)/).replace(`label`,q).getRegex(),reflink:edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,q).getRegex()},Tt={...Ct,emStrongRDelimAst:mt,emStrongLDelim:dt,url:edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,`i`).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},Et={...Tt,br:edit(et).replace(`{2,}`,`*`).getRegex(),text:edit(Tt.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},J={normal:Je,gfm:Xe,pedantic:Ze},Y={normal:Ct,gfm:Tt,breaks:Et,pedantic:wt},Dt={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},getEscapeReplacement=e=>Dt[e];function escape(e,t){if(t){if(U.escapeTest.test(e))return e.replace(U.escapeReplace,getEscapeReplacement)}else if(U.escapeTestNoEncode.test(e))return e.replace(U.escapeReplaceNoEncode,getEscapeReplacement);return e}function cleanUrl(e){try{e=encodeURI(e).replace(U.percentDecode,`%`)}catch{return null}return e}function splitCells(e,t){let n=e.replace(U.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(U.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(U.slashPipe,`|`);return n}function rtrim(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r&&e.charAt(r-i-1)===t;)i++;return e.slice(0,r-i)}function findClosingBracket(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}function outputLink(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;let e={type:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,e}return{type:`image`,raw:n,href:a,title:o,text:s}}function indentCodeCompensation(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
7
+ `).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
8
+ `)}var _Tokenizer=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`rules`,void 0),_defineProperty(this,`lexer`,void 0),this.options=e||V}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:rtrim(e,`
9
+ `)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=indentCodeCompensation(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=rtrim(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:rtrim(t[0],`
10
+ `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=rtrim(t[0],`
11
+ `).split(`
12
+ `),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o;for(o=0;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
13
+ `),c=s.replace(this.rules.other.blockquoteSetextReplace,`
14
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}\n${s}`:s,r=r?`${r}\n${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=t.raw+`
15
+ `+e.join(`
16
+ `),o=this.blockquote(a);i[i.length-1]=o,n=n.substring(0,n.length-t.raw.length)+o.raw,r=r.substring(0,r.length-t.text.length)+o.text;break}else if(u?.type===`list`){let t=u,a=t.raw+`
17
+ `+e.join(`
18
+ `),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
19
+ `);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=t[2].split(`
20
+ `,1)[0].replace(this.rules.other.listReplaceTabs,e=>` `.repeat(3*e.length)),l=e.split(`
21
+ `,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=t[2].search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
22
+ `,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d);for(;e;){let f=e.split(`
23
+ `,1)[0],p;if(l=f,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),p=l):p=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||t.test(l)||n.test(l))break;if(p.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
24
+ `+p.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
25
+ `+l}!u&&!l.trim()&&(u=!0),r+=f+`
26
+ `,e=e.substring(f.length+1),c=p.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0));let f=null,p;this.options.gfm&&(f=this.rules.other.listIsTask.exec(s),f&&(p=f[0]!==`[ ] `,s=s.replace(this.rules.other.listReplaceTask,``))),i.items.push({type:`list_item`,raw:r,task:!!f,checked:p,loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e=0;e<i.items.length;e++)if(this.lexer.state.top=!1,i.items[e].tokens=this.lexer.blockTokens(i.items[e].text,[]),!i.loose){let t=i.items[e].tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}if(i.loose)for(let e=0;e<i.items.length;e++)i.items[e].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=splitCells(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
27
+ `):[],a={type:`table`,raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(splitCells(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:`heading`,raw:t[0],depth:t[2].charAt(0)===`=`?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
28
+ `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=rtrim(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=findClosingBracket(t[2],`()`);if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),outputLink(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return outputLink(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(r&&!(r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}else if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},X=class _Lexer{constructor(e){_defineProperty(this,`tokens`,void 0),_defineProperty(this,`options`,void 0),_defineProperty(this,`state`,void 0),_defineProperty(this,`tokenizer`,void 0),_defineProperty(this,`inlineQueue`,void 0),this.tokens=[],this.tokens.links=Object.create(null),this.options=e||V,this.options.tokenizer=this.options.tokenizer||new _Tokenizer,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:U,block:J.normal,inline:Y.normal};this.options.pedantic?(t.block=J.pedantic,t.inline=Y.pedantic):this.options.gfm&&(t.block=J.gfm,this.options.breaks?t.inline=Y.breaks:t.inline=Y.gfm),this.tokenizer.rules=t}static get rules(){return{block:J,inline:Y}}static lex(e,t){return new _Lexer(t).lex(e)}static lexInline(e,t){return new _Lexer(t).inlineTokens(e)}lex(e){e=e.replace(U.carriageReturn,`
29
+ `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(U.tabCharGlobal,` `).replace(U.spaceLine,``));e;){let r;if(this.options.extensions?.block?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let n=t.at(-1);r.raw.length===1&&n!==void 0?n.raw+=`
30
+ `:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=`
31
+ `+r.raw,n.text+=`
32
+ `+r.text,this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=`
33
+ `+r.raw,n.text+=`
34
+ `+r.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let a=t.at(-1);n&&a?.type===`paragraph`?(a.raw+=`
35
+ `+r.raw,a.text+=`
36
+ `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=`
37
+ `+r.raw,n.text+=`
38
+ `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)e.includes(r[0].slice(r[0].lastIndexOf(`[`)+1,-1))&&(n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,r.index)+`[`+`a`.repeat(r[0].length-2)+`]`+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+`++`+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i=!1,a=``;for(;e;){i||(a=``),i=!1;let r;if(this.options.extensions?.inline?.some(n=>(r=n.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);let n=t.at(-1);r.type===`text`&&n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,a)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let o=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(o=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(o)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(a=r.raw.slice(-1)),i=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return t}},_Renderer=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`parser`,void 0),this.options=e||V}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(U.notSpaceStart)?.[0],i=e.replace(U.endingNewline,``)+`
39
+ `;return r?`<pre><code class="language-`+escape(r)+`">`+(n?i:escape(i,!0))+`</code></pre>
40
+ `:`<pre><code>`+(n?i:escape(i,!0))+`</code></pre>
41
+ `}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>
42
+ `}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
43
+ `+r+`</`+i+`>
44
+ `}listitem(e){let t=``;if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type===`paragraph`?(e.tokens[0].text=n+` `+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type===`text`&&(e.tokens[0].tokens[0].text=n+` `+escape(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:`text`,raw:n+` `,text:n+` `,escaped:!0}):t+=n+` `}return t+=this.parser.parse(e.tokens,!!e.loose),`<li>${t}</li>\n`}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox">`}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
45
+ <thead>
46
+ `+t+`</thead>
47
+ `+r+`</table>
48
+ `}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${escape(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=cleanUrl(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+escape(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n}){let r=cleanUrl(e);if(r===null)return escape(n);e=r;let i=`<img src="${e}" alt="${n}"`;return t&&(i+=` title="${escape(t)}"`),i+=`>`,i}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:escape(e.text)}},_TextRenderer=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}},Z=class _Parser{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`renderer`,void 0),_defineProperty(this,`textRenderer`,void 0),this.options=e||V,this.options.renderer=this.options.renderer||new _Renderer,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _TextRenderer}static parse(e,t){return new _Parser(t).parse(e)}static parseInline(e,t){return new _Parser(t).parseInline(e)}parse(e,t=!0){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=i,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(t!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`paragraph`,`text`].includes(e.type)){n+=t||``;continue}}let a=i;switch(a.type){case`space`:n+=this.renderer.space(a);continue;case`hr`:n+=this.renderer.hr(a);continue;case`heading`:n+=this.renderer.heading(a);continue;case`code`:n+=this.renderer.code(a);continue;case`table`:n+=this.renderer.table(a);continue;case`blockquote`:n+=this.renderer.blockquote(a);continue;case`list`:n+=this.renderer.list(a);continue;case`html`:n+=this.renderer.html(a);continue;case`paragraph`:n+=this.renderer.paragraph(a);continue;case`text`:{let i=a,o=this.renderer.text(i);for(;r+1<e.length&&e[r+1].type===`text`;)i=e[++r],o+=`
49
+ `+this.renderer.text(i);t?n+=this.renderer.paragraph({type:`paragraph`,raw:o,text:o,tokens:[{type:`text`,raw:o,text:o,escaped:!0}]}):n+=o;continue}default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t=this.renderer){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},_Hooks=class{constructor(e){_defineProperty(this,`options`,void 0),_defineProperty(this,`block`,void 0),this.options=e||V}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?X.lex:X.lexInline}provideParser(){return this.block?Z.parse:Z.parseInline}};_defineProperty(_Hooks,`passThroughHooks`,new Set([`preprocess`,`postprocess`,`processAllTokens`]));var Marked=class{constructor(...e){_defineProperty(this,`defaults`,_getDefaults()),_defineProperty(this,`options`,this.setOptions),_defineProperty(this,`parse`,this.parseMarkdown(!0)),_defineProperty(this,`parseInline`,this.parseMarkdown(!1)),_defineProperty(this,`Parser`,Z),_defineProperty(this,`Renderer`,_Renderer),_defineProperty(this,`TextRenderer`,_TextRenderer),_defineProperty(this,`Lexer`,X),_defineProperty(this,`Tokenizer`,_Tokenizer),_defineProperty(this,`Hooks`,_Hooks),this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new _Renderer(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new _Tokenizer(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new _Hooks;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];_Hooks.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async)return Promise.resolve(i.call(t,e)).then(e=>a.call(t,e));let n=i.call(t,e);return a.call(t,n)}:t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return X.lex(e,t??this.defaults)}parser(e,t){return Z.parse(e,t??this.defaults)}parseMarkdown(e){let parse=(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(t==null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));i.hooks&&(i.hooks.options=i,i.hooks.block=e);let o=i.hooks?i.hooks.provideLexer():e?X.lex:X.lexInline,s=i.hooks?i.hooks.provideParser():e?Z.parse:Z.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then(e=>o(e,i)).then(e=>i.hooks?i.hooks.processAllTokens(e):e).then(e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then(()=>e):e).then(e=>s(e,i)).then(e=>i.hooks?i.hooks.postprocess(e):e).catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let e=o(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=s(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(e){return a(e)}};return parse}onError(e,t){return n=>{if(n.message+=`
50
+ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+escape(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},Q=new Marked;function marked(e,t){return Q.parse(e,t)}marked.options=marked.setOptions=function(e){return Q.setOptions(e),marked.defaults=Q.defaults,changeDefaults(marked.defaults),marked},marked.getDefaults=_getDefaults,marked.defaults=V,marked.use=function(...e){return Q.use(...e),marked.defaults=Q.defaults,changeDefaults(marked.defaults),marked},marked.walkTokens=function(e,t){return Q.walkTokens(e,t)},marked.parseInline=Q.parseInline,marked.Parser=Z,marked.parser=Z.parse,marked.Renderer=_Renderer,marked.TextRenderer=_TextRenderer,marked.Lexer=X,marked.lexer=X.lex,marked.Tokenizer=_Tokenizer,marked.Hooks=_Hooks,marked.parse=marked,marked.options,marked.setOptions,marked.use,marked.walkTokens,marked.parseInline,Z.parse;var Ot=X.lex;function splitByDelimiters(e,t,n){if(e.length===0)return[];let r=[],i=e.indexOf(t),a=e.indexOf(n,i);if(i>=0&&a>i)r.push(e.substring(0,i)),r.push(e.substring(i,a+n.length)),r=r.concat(splitByDelimiters(e.substring(a+n.length),t,n));else return[e];return r}function splitTextToken(e){if(containsComponent(e)){let t=splitByDelimiters(e.text,`{{`,`}}`),n=splitByDelimiters(e.raw,`{{`,`}}`);if(t.length===n.length)return t.map((e,r)=>({type:`text`,text:t[r],raw:n[r]}));throw Error(`Error parsing markdown`)}else return[e]}function splitParagraphToken(e){let t=[];if(containsComponent(e)){let n=splitByDelimiters(e.text,`{{`,`}}`),r=splitByDelimiters(e.raw,`{{`,`}}`);if(n.length===r.length){for(let e=0;e<n.length;e++){let i={type:`text`,text:n[e],raw:r[e]};isComponent(i)?t.push(i):Ot(r[e]).forEach(e=>{e.type===`paragraph`?t=t.concat(e.tokens):t.push(e)})}return t}else throw Error(`Error parsing Markdown`)}else t.push(e);return t}function containsComponent(e){if(e.type===`text`||e.type===`paragraph`){let t=e.raw.indexOf(`{{`),n=e.raw.indexOf(`}}`);return t!==-1&&n!==-1&&n>t}else return!1}function isComponent(e){return e.type===`text`&&e.text.startsWith(`{{`)&&e.text.endsWith(`}}`)}function parseComponentSyntax(e){if(e.length>1e4)return null;let t=e.match(/^\{\{\s*<([\w-]+)((?:\s+[\w-]+="[^"]*")*)\s*\/>\s*\}\}$/);if(!t)return null;let n=t[1],r=t[2],i={};if(r){let e=/\s+([\w-]+)="([^"]*)"/g,t;for(;(t=e.exec(r))!==null;)i[t[1]]=t[2]}return{componentName:n,props:i}}function isInlineComponent(e){if(e.length>1e4)return!1;let t=e.trim();return/^<[\w-]+(?:\s+[\w-]+="[^"]*")*\s*\/?>$/.test(t)}var kt=500,At=z(p({__name:`AudioAutoPlayer`,props:{src:{}},setup(t){let s=t,l=D([]),u=D([]),d=D(!1),p=null,stop=()=>{d.value=!1,setTimeout(()=>{p=null},kt),u.value.forEach(clearTimeout),console.log(`Audio stopping...`),l.value.forEach(e=>{e.paused||(e.pause(),e.currentTime=0)})},downloadFinished=e=>{try{return!isNaN(l.value[e].duration)}catch(e){throw Error(`AudioPlayer does not have an element at this index:`,e)}},playByIndex=e=>{if(downloadFinished(e))if(l.value[e].play(),e+1<l.value.length){let t=(l.value[e].duration+.7)*1e3;u.value.push(setTimeout(()=>{d.value&&playByIndex(e+1)},t))}else setTimeout(()=>{d.value=!1},l.value[e].duration*1e3),setTimeout(()=>{p=null},l.value[e].duration*1e3+kt);else setTimeout(playByIndex,100,e)},play=()=>{p===null||p===r()?(p=r(),d.value=!0,playByIndex(0)):setTimeout(play,100)};return ne(()=>{p=null,typeof s.src==`string`?l.value.push(new Audio(s.src)):s.src.forEach(e=>{l.value.push(new Audio(e))});let e=[{hotkey:`up`,callback:play,command:`Replay Audio`}];B.addBinding(e),play()}),a(()=>{B.removeBinding(`up`),stop()}),(t,r)=>{let a=c(`v-icon`),s=c(`v-btn`);return i(),N(s,{size:`large`,icon:``,color:d.value?`primary lighten-3`:`primary`,class:o({playing:d.value}),onClick:play},{default:e(()=>[n(a,null,{default:e(()=>r[0]||(r[0]=[f(`mdi-volume-high`)])),_:1})]),_:1},8,[`color`,`class`])}}}),[[`__scopeId`,`data-v-e1a0f62c`]]),$=__toESM(__commonJSMin(((e,t)=>{function deepFreeze(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw Error(`map is read-only`)}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw Error(`set is read-only`)}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let n=e[t],r=typeof n;(r===`object`||r===`function`)&&!Object.isFrozen(n)&&deepFreeze(n)}),e}var Response=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function escapeHTML(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`)}function inherit$1(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}var n=`</span>`,emitsWrappingTags=e=>!!e.scope,scopeToCSSClass=(e,{prefix:t})=>{if(e.startsWith(`language:`))return e.replace(`language:`,`language-`);if(e.includes(`.`)){let n=e.split(`.`);return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${`_`.repeat(t+1)}`)].join(` `)}return`${t}${e}`},HTMLRenderer=class{constructor(e,t){this.buffer=``,this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=escapeHTML(e)}openNode(e){if(!emitsWrappingTags(e))return;let t=scopeToCSSClass(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){emitsWrappingTags(e)&&(this.buffer+=n)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}},newNode=(e={})=>{let t={children:[]};return Object.assign(t,e),t},r=class TokenTree{constructor(){this.rootNode=newNode(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=newNode({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t==`string`?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){typeof e!=`string`&&e.children&&(e.children.every(e=>typeof e==`string`)?e.children=[e.children.join(``)]:e.children.forEach(e=>{TokenTree._collapse(e)}))}},TokenTreeEmitter=class extends r{constructor(e){super(),this.options=e}addText(e){e!==``&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new HTMLRenderer(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function source(e){return e?typeof e==`string`?e:e.source:null}function lookahead(e){return concat(`(?=`,e,`)`)}function anyNumberOfTimes(e){return concat(`(?:`,e,`)*`)}function optional(e){return concat(`(?:`,e,`)?`)}function concat(...e){return e.map(e=>source(e)).join(``)}function stripOptionsFromArgs(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function either(...e){return`(`+(stripOptionsFromArgs(e).capture?``:`?:`)+e.map(e=>source(e)).join(`|`)+`)`}function countMatchGroups(e){return RegExp(e.toString()+`|`).exec(``).length-1}function startsWith(e,t){let n=e&&e.exec(t);return n&&n.index===0}var i=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _rewriteBackreferences(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;let t=n,r=source(e),a=``;for(;r.length>0;){let e=i.exec(r);if(!e){a+=r;break}a+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),e[0][0]===`\\`&&e[1]?a+=`\\`+String(Number(e[1])+t):(a+=e[0],e[0]===`(`&&n++)}return a}).map(e=>`(${e})`).join(t)}var a=/\b\B/,o=`[a-zA-Z]\\w*`,s=`[a-zA-Z_]\\w*`,c=`\\b\\d+(\\.\\d+)?`,l=`(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)`,u=`\\b(0b[01]+)`,d=`!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~`,SHEBANG=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=concat(t,/.*\b/,e.binary,/\b.*/)),inherit$1({scope:`meta`,begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},f={begin:`\\\\[\\s\\S]`,relevance:0},p={scope:`string`,begin:`'`,end:`'`,illegal:`\\n`,contains:[f]},m={scope:`string`,begin:`"`,end:`"`,illegal:`\\n`,contains:[f]},h={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT=function(e,t,n={}){let r=inherit$1({scope:`comment`,begin:e,end:t,contains:[]},n);r.contains.push({scope:`doctag`,begin:`[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)`,end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=either(`I`,`a`,`is`,`so`,`us`,`to`,`at`,`if`,`in`,`it`,`on`,/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:concat(/[ ]+/,`(`,i,/[.]?[:]?([.][ ]|[ ])/,`){3}`)}),r},g=COMMENT(`//`,`$`),_=COMMENT(`/\\*`,`\\*/`),v=COMMENT(`#`,`$`),y={scope:`number`,begin:c,relevance:0},b={scope:`number`,begin:l,relevance:0},x={scope:`number`,begin:u,relevance:0},S={scope:`regexp`,begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[f,{begin:/\[/,end:/\]/,relevance:0,contains:[f]}]},C={scope:`title`,begin:o,relevance:0},w={scope:`title`,begin:s,relevance:0},T={begin:`\\.\\s*`+s,relevance:0},END_SAME_AS_BEGIN=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},E=Object.freeze({__proto__:null,APOS_STRING_MODE:p,BACKSLASH_ESCAPE:f,BINARY_NUMBER_MODE:x,BINARY_NUMBER_RE:u,COMMENT,C_BLOCK_COMMENT_MODE:_,C_LINE_COMMENT_MODE:g,C_NUMBER_MODE:b,C_NUMBER_RE:l,END_SAME_AS_BEGIN,HASH_COMMENT_MODE:v,IDENT_RE:o,MATCH_NOTHING_RE:a,METHOD_GUARD:T,NUMBER_MODE:y,NUMBER_RE:c,PHRASAL_WORDS_MODE:h,QUOTE_STRING_MODE:m,REGEXP_MODE:S,RE_STARTERS_RE:d,SHEBANG,TITLE_MODE:C,UNDERSCORE_IDENT_RE:s,UNDERSCORE_TITLE_MODE:w});function skipIfHasPrecedingDot(e,t){e.input[e.index-1]===`.`&&t.ignoreMatch()}function scopeClassName(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function beginKeywords(e,t){t&&e.beginKeywords&&(e.begin=`\\b(`+e.beginKeywords.split(` `).join(`|`)+`)(?!\\.)(?=\\b|\\s)`,e.__beforeBegin=skipIfHasPrecedingDot,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function compileIllegal(e,t){Array.isArray(e.illegal)&&(e.illegal=either(...e.illegal))}function compileMatch(e,t){if(e.match){if(e.begin||e.end)throw Error(`begin & end are not supported with match`);e.begin=e.match,delete e.match}}function compileRelevance(e,t){e.relevance===void 0&&(e.relevance=1)}var beforeMatchExt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error(`beforeMatch cannot be used with starts`);let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=concat(n.beforeMatch,lookahead(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},D=[`of`,`and`,`for`,`in`,`not`,`or`,`if`,`then`,`parent`,`list`,`value`],O=`keyword`;function compileKeywords(e,t,n=O){let r=Object.create(null);return typeof e==`string`?compileList(n,e.split(` `)):Array.isArray(e)?compileList(n,e):Object.keys(e).forEach(function(n){Object.assign(r,compileKeywords(e[n],t,n))}),r;function compileList(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){let n=t.split(`|`);r[n[0]]=[e,scoreForKeyword(n[0],n[1])]})}}function scoreForKeyword(e,t){return t?Number(t):commonKeyword(e)?0:1}function commonKeyword(e){return D.includes(e.toLowerCase())}var k={},error=e=>{console.error(e)},warn=(e,...t)=>{console.log(`WARN: ${e}`,...t)},deprecated=(e,t)=>{k[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),k[`${e}/${t}`]=!0)},A=Error();function remapScopeNames(e,t,{key:n}){let r=0,i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=countMatchGroups(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function beginMultiClass(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw error(`skip, excludeBegin, returnBegin not compatible with beginScope: {}`),A;if(typeof e.beginScope!=`object`||e.beginScope===null)throw error(`beginScope must be object`),A;remapScopeNames(e,e.begin,{key:`beginScope`}),e.begin=_rewriteBackreferences(e.begin,{joinWith:``})}}function endMultiClass(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw error(`skip, excludeEnd, returnEnd not compatible with endScope: {}`),A;if(typeof e.endScope!=`object`||e.endScope===null)throw error(`endScope must be object`),A;remapScopeNames(e,e.end,{key:`endScope`}),e.end=_rewriteBackreferences(e.end,{joinWith:``})}}function scopeSugar(e){e.scope&&typeof e.scope==`object`&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function MultiClass(e){scopeSugar(e),typeof e.beginScope==`string`&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope==`string`&&(e.endScope={_wrap:e.endScope}),beginMultiClass(e),endMultiClass(e)}function compileLanguage(e){function langRe(t,n){return new RegExp(source(t),`m`+(e.case_insensitive?`i`:``)+(e.unicodeRegex?`u`:``)+(n?`g`:``))}class MultiRegex{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=countMatchGroups(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null),this.matcherRe=langRe(_rewriteBackreferences(this.regexes.map(e=>e[1]),{joinWith:`|`}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&e!==void 0),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class ResumableMultiRegex{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new MultiRegex;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type===`begin`&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()&&!(n&&n.index===this.lastIndex)){let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function buildModeRegex(e){let t=new ResumableMultiRegex;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:`begin`})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:`end`}),e.illegal&&t.addRule(e.illegal,{type:`illegal`}),t}function compileMode(t,n){let r=t;if(t.isCompiled)return r;[scopeClassName,compileMatch,MultiClass,beforeMatchExt].forEach(e=>e(t,n)),e.compilerExtensions.forEach(e=>e(t,n)),t.__beforeBegin=null,[beginKeywords,compileIllegal,compileRelevance].forEach(e=>e(t,n)),t.isCompiled=!0;let i=null;return typeof t.keywords==`object`&&t.keywords.$pattern&&(t.keywords=Object.assign({},t.keywords),i=t.keywords.$pattern,delete t.keywords.$pattern),i=i||/\w+/,t.keywords&&(t.keywords=compileKeywords(t.keywords,e.case_insensitive)),r.keywordPatternRe=langRe(i,!0),n&&(t.begin||(t.begin=/\B|\b/),r.beginRe=langRe(r.begin),!t.end&&!t.endsWithParent&&(t.end=/\B|\b/),t.end&&(r.endRe=langRe(r.end)),r.terminatorEnd=source(r.end)||``,t.endsWithParent&&n.terminatorEnd&&(r.terminatorEnd+=(t.end?`|`:``)+n.terminatorEnd)),t.illegal&&(r.illegalRe=langRe(t.illegal)),t.contains||(t.contains=[]),t.contains=[].concat(...t.contains.map(function(e){return expandOrCloneMode(e===`self`?t:e)})),t.contains.forEach(function(e){compileMode(e,r)}),t.starts&&compileMode(t.starts,n),r.matcher=buildModeRegex(r),r}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes(`self`))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=inherit$1(e.classNameAliases||{}),compileMode(e)}function dependencyOnParent(e){return e?e.endsWithParent||dependencyOnParent(e.starts):!1}function expandOrCloneMode(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return inherit$1(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:dependencyOnParent(e)?inherit$1(e,{starts:e.starts?inherit$1(e.starts):null}):Object.isFrozen(e)?inherit$1(e):e}var ee=`11.11.1`,HTMLInjectionError=class extends Error{constructor(e,t){super(e),this.name=`HTMLInjectionError`,this.html=t}},j=escapeHTML,te=inherit$1,M=Symbol(`nomatch`),N=7,HLJS=function(e){let t=Object.create(null),n=Object.create(null),r=[],i=!0,a=`Could not find the language '{}', did you forget to load/include a language module?`,o={disableAutodetect:!0,name:`Plain text`,contains:[]},s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:`hljs-`,cssSelector:`pre code`,languages:null,__emitter:TokenTreeEmitter};function shouldNotHighlight(e){return s.noHighlightRe.test(e)}function blockLanguage(e){let t=e.className+` `;t+=e.parentNode?e.parentNode.className:``;let n=s.languageDetectRe.exec(t);if(n){let t=getLanguage(n[1]);return t||(warn(a.replace(`{}`,n[1])),warn(`Falling back to no-highlight mode for this block.`,e)),t?n[1]:`no-highlight`}return t.split(/\s+/).find(e=>shouldNotHighlight(e)||getLanguage(e))}function highlight(e,t,n){let r=``,i=``;typeof t==`object`?(r=e,n=t.ignoreIllegals,i=t.language):(deprecated(`10.7.0`,`highlight(lang, code, ...args) has been deprecated.`),deprecated(`10.7.0`,`Please use highlight(code, options) instead.
51
+ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};fire(`before:highlight`,a);let o=a.result?a.result:_highlight(a.language,a.code,n);return o.code=a.code,fire(`after:highlight`,o),o}function _highlight(e,n,r,o){let c=Object.create(null);function keywordData(e,t){return e.keywords[t]}function processKeywords(){if(!p.keywords){h.addText(g);return}let e=0;p.keywordPatternRe.lastIndex=0;let t=p.keywordPatternRe.exec(g),n=``;for(;t;){n+=g.substring(e,t.index);let r=u.case_insensitive?t[0].toLowerCase():t[0],i=keywordData(p,r);if(i){let[e,a]=i;if(h.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=N&&(_+=a),e.startsWith(`_`))n+=t[0];else{let n=u.classNameAliases[e]||e;emitKeyword(t[0],n)}}else n+=t[0];e=p.keywordPatternRe.lastIndex,t=p.keywordPatternRe.exec(g)}n+=g.substring(e),h.addText(n)}function processSubLanguage(){if(g===``)return;let e=null;if(typeof p.subLanguage==`string`){if(!t[p.subLanguage]){h.addText(g);return}e=_highlight(p.subLanguage,g,!0,m[p.subLanguage]),m[p.subLanguage]=e._top}else e=highlightAuto(g,p.subLanguage.length?p.subLanguage:null);p.relevance>0&&(_+=e.relevance),h.__addSublanguage(e._emitter,e.language)}function processBuffer(){p.subLanguage==null?processKeywords():processSubLanguage(),g=``}function emitKeyword(e,t){e!==``&&(h.startScope(t),h.addText(e),h.endScope())}function emitMultiClass(e,t){let n=1,r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}let r=u.classNameAliases[e[n]]||e[n],i=t[n];r?emitKeyword(i,r):(g=i,processKeywords(),g=``),n++}}function startNewMode(e,t){return e.scope&&typeof e.scope==`string`&&h.openNode(u.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(emitKeyword(g,u.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),g=``):e.beginScope._multi&&(emitMultiClass(e.beginScope,t),g=``)),p=Object.create(e,{parent:{value:p}}),p}function endOfMode(e,t,n){let r=startsWith(e.endRe,n);if(r){if(e[`on:end`]){let n=new Response(e);e[`on:end`](t,n),n.isMatchIgnored&&(r=!1)}if(r){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return endOfMode(e.parent,t,n)}function doIgnore(e){return p.matcher.regexIndex===0?(g+=e[0],1):(b=!0,0)}function doBeginMatch(e){let t=e[0],n=e.rule,r=new Response(n),i=[n.__beforeBegin,n[`on:begin`]];for(let n of i)if(n&&(n(e,r),r.isMatchIgnored))return doIgnore(t);return n.skip?g+=t:(n.excludeBegin&&(g+=t),processBuffer(),!n.returnBegin&&!n.excludeBegin&&(g=t)),startNewMode(n,e),n.returnBegin?0:t.length}function doEndMatch(e){let t=e[0],r=n.substring(e.index),i=endOfMode(p,e,r);if(!i)return M;let a=p;p.endScope&&p.endScope._wrap?(processBuffer(),emitKeyword(t,p.endScope._wrap)):p.endScope&&p.endScope._multi?(processBuffer(),emitMultiClass(p.endScope,e)):a.skip?g+=t:(a.returnEnd||a.excludeEnd||(g+=t),processBuffer(),a.excludeEnd&&(g=t));do p.scope&&h.closeNode(),!p.skip&&!p.subLanguage&&(_+=p.relevance),p=p.parent;while(p!==i.parent);return i.starts&&startNewMode(i.starts,e),a.returnEnd?0:t.length}function processContinuations(){let e=[];for(let t=p;t!==u;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>h.openNode(e))}let l={};function processLexeme(t,a){let o=a&&a[0];if(g+=t,o==null)return processBuffer(),0;if(l.type===`begin`&&a.type===`end`&&l.index===a.index&&o===``){if(g+=n.slice(a.index,a.index+1),!i){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=l.rule,t}return 1}if(l=a,a.type===`begin`)return doBeginMatch(a);if(a.type===`illegal`&&!r){let e=Error(`Illegal lexeme "`+o+`" for mode "`+(p.scope||`<unnamed>`)+`"`);throw e.mode=p,e}else if(a.type===`end`){let e=doEndMatch(a);if(e!==M)return e}if(a.type===`illegal`&&o===``)return g+=`
52
+ `,1;if(y>1e5&&y>a.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return g+=o,o.length}let u=getLanguage(e);if(!u)throw error(a.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let d=compileLanguage(u),f=``,p=o||d,m={},h=new s.__emitter(s);processContinuations();let g=``,_=0,v=0,y=0,b=!1;try{if(u.__emitTokens)u.__emitTokens(n,h);else{for(p.matcher.considerAll();;){y++,b?b=!1:p.matcher.considerAll(),p.matcher.lastIndex=v;let e=p.matcher.exec(n);if(!e)break;let t=processLexeme(n.substring(v,e.index),e);v=e.index+t}processLexeme(n.substring(v))}return h.finalize(),f=h.toHTML(),{language:e,value:f,relevance:_,illegal:!1,_emitter:h,_top:p}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:j(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:v,context:n.slice(v-100,v+100),mode:t.mode,resultSoFar:f},_emitter:h};if(i)return{language:e,value:j(n),illegal:!1,relevance:0,errorRaised:t,_emitter:h,_top:p};throw t}}function justTextHighlightResult(e){let t={value:j(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}function highlightAuto(e,n){n=n||s.languages||Object.keys(t);let r=justTextHighlightResult(e),i=n.filter(getLanguage).filter(autoDetection).map(t=>_highlight(t,e,!1));i.unshift(r);let[a,o]=i.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(getLanguage(e.language).supersetOf===t.language)return 1;if(getLanguage(t.language).supersetOf===e.language)return-1}return 0}),c=a;return c.secondBest=o,c}function updateClassName(e,t,r){let i=t&&n[t]||r;e.classList.add(`hljs`),e.classList.add(`language-${i}`)}function highlightElement(e){let t=null,n=blockLanguage(e);if(shouldNotHighlight(n))return;if(fire(`before:highlightElement`,{el:e,language:n}),e.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);return}if(e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn(`One of your code blocks includes unescaped HTML. This is a potentially serious security risk.`),console.warn(`https://github.com/highlightjs/highlight.js/wiki/security`),console.warn(`The element with unescaped HTML:`),console.warn(e)),s.throwUnescapedHTML))throw new HTMLInjectionError(`One of your code blocks includes unescaped HTML.`,e.innerHTML);t=e;let r=t.textContent,i=n?highlight(r,{language:n,ignoreIllegals:!0}):highlightAuto(r);e.innerHTML=i.value,e.dataset.highlighted=`yes`,updateClassName(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),fire(`after:highlightElement`,{el:e,result:i,text:r})}function configure(e){s=te(s,e)}let initHighlighting=()=>{highlightAll(),deprecated(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function initHighlightingOnLoad(){highlightAll(),deprecated(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let c=!1;function highlightAll(){function boot(){highlightAll()}if(document.readyState===`loading`){c||window.addEventListener(`DOMContentLoaded`,boot,!1),c=!0;return}document.querySelectorAll(s.cssSelector).forEach(highlightElement)}function registerLanguage(n,r){let a=null;try{a=r(e)}catch(e){if(error(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),i)error(e);else throw e;a=o}a.name||(a.name=n),t[n]=a,a.rawDefinition=r.bind(null,e),a.aliases&&registerAliases(a.aliases,{languageName:n})}function unregisterLanguage(e){delete t[e];for(let t of Object.keys(n))n[t]===e&&delete n[t]}function listLanguages(){return Object.keys(t)}function getLanguage(e){return e=(e||``).toLowerCase(),t[e]||t[n[e]]}function registerAliases(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{n[e.toLowerCase()]=t})}function autoDetection(e){let t=getLanguage(e);return t&&!t.disableAutodetect}function upgradePluginAPI(e){e[`before:highlightBlock`]&&!e[`before:highlightElement`]&&(e[`before:highlightElement`]=t=>{e[`before:highlightBlock`](Object.assign({block:t.el},t))}),e[`after:highlightBlock`]&&!e[`after:highlightElement`]&&(e[`after:highlightElement`]=t=>{e[`after:highlightBlock`](Object.assign({block:t.el},t))})}function addPlugin(e){upgradePluginAPI(e),r.push(e)}function removePlugin(e){let t=r.indexOf(e);t!==-1&&r.splice(t,1)}function fire(e,t){let n=e;r.forEach(function(e){e[n]&&e[n](t)})}function deprecateHighlightBlock(e){return deprecated(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),deprecated(`10.7.0`,`Please use highlightElement now.`),highlightElement(e)}Object.assign(e,{highlight,highlightAuto,highlightAll,highlightElement,highlightBlock:deprecateHighlightBlock,configure,initHighlighting,initHighlightingOnLoad,registerLanguage,unregisterLanguage,listLanguages,getLanguage,registerAliases,autoDetection,inherit:te,addPlugin,removePlugin}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=ee,e.regex={concat,lookahead,either,optional,anyNumberOfTimes};for(let e in E)typeof E[e]==`object`&&deepFreeze(E[e]);return Object.assign(e,E),e},P=HLJS({});P.newInstance=()=>HLJS({}),t.exports=P,P.HighlightJS=P,P.default=P}))()).default,jt=p({props:{code:{type:String,required:!0},language:{type:String,default:``},autodetect:{type:Boolean,default:!0},ignoreIllegals:{type:Boolean,default:!0}},setup:function(e){var t=D(e.language);g((function(){return e.language}),(function(e){t.value=e}));var n=C((function(){return e.autodetect||!t.value})),r=C((function(){return!n.value&&!$.getLanguage(t.value)}));return{className:C((function(){return r.value?``:`hljs `+t.value})),highlightedCode:C((function(){if(r.value)return console.warn(`The language "`+t.value+`" you specified could not be found.`),e.code.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`);if(n.value){var i=$.highlightAuto(e.code);return t.value=i.language??``,i.value}return(i=$.highlight(e.code,{language:t.value,ignoreIllegals:e.ignoreIllegals})).value}))}},render:function(){return d(`pre`,{},[d(`code`,{class:this.className,innerHTML:this.highlightedCode,tabindex:`0`})])}}),Mt={install:function(e){e.component(`highlightjs`,jt)},component:jt},Nt=`[A-Za-z$_][0-9A-Za-z$_]*`,Pt=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),Ft=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],It=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),Lt=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],Rt=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],zt=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],Bt=[].concat(Rt,It,Lt);function javascript$1(e){let t=e.regex,hasClosingTag=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},n=Nt,r={begin:`<>`,end:`</>`},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(hasClosingTag(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},o={$pattern:Nt,keyword:Pt,literal:Ft,built_in:Bt,"variable.language":zt},s=`[0-9](_?[0-9])*`,c=`\\.(${s})`,l=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,u={className:`number`,variants:[{begin:`(\\b(${l})((${c})|\\.)?|(${c}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},d={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:o,contains:[]},f={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`xml`}},p={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`css`}},m={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`graphql`}},h={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},g={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:n+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,{match:/\$\d+/},u];d.contains=_.concat({begin:/\{/,end:/\}/,keywords:o,contains:[`self`].concat(_)});let v=[].concat(g,d.contains),y=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:[`self`].concat(v)}]),b={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y},x={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,`(`,t.concat(/\./,n),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,n],scope:{1:`keyword`,3:`title.class`}}]},S={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...It,...Lt]}},C={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[b],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function noneOf(e){return t.concat(`(?!`,e.join(`|`),`)`)}let E={match:t.concat(/\b/,noneOf([...Rt,`super`,`import`].map(e=>`${e}\\s*\\(`)),n,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},O={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},b]},k=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(k)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[b]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:o,exports:{PARAMS_CONTAINS:y,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,g,{match:/\$\d+/},u,S,{scope:`attr`,match:n+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[g,e.REGEXP_MODE,{className:`function`,begin:k,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:`xml`,contains:[{begin:a.begin,end:a.end,skip:!0,contains:[`self`]}]}]},w,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:`title.function`})]},{match:/\.\.\./,relevance:0},D,{match:`\\$`+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[b]},E,T,x,O,{match:/\$[(.]/}]}}__name(javascript$1,`javascript`);var Vt=`[A-Za-z$_][0-9A-Za-z$_]*`,Ht=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),Ut=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],Wt=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),Gt=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],Kt=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],qt=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],Jt=[].concat(Kt,Wt,Gt);function javascript(e){let t=e.regex,hasClosingTag=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},n=Vt,r={begin:`<>`,end:`</>`},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(hasClosingTag(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},o={$pattern:Vt,keyword:Ht,literal:Ut,built_in:Jt,"variable.language":qt},s=`[0-9](_?[0-9])*`,c=`\\.(${s})`,l=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,u={className:`number`,variants:[{begin:`(\\b(${l})((${c})|\\.)?|(${c}))[eE][+-]?(${s})\\b`},{begin:`\\b(${l})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},d={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:o,contains:[]},f={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`xml`}},p={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`css`}},m={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,d],subLanguage:`graphql`}},h={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,d]},g={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:n+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,{match:/\$\d+/},u];d.contains=_.concat({begin:/\{/,end:/\}/,keywords:o,contains:[`self`].concat(_)});let v=[].concat(g,d.contains),y=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:[`self`].concat(v)}]),b={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y},x={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,`(`,t.concat(/\./,n),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,n],scope:{1:`keyword`,3:`title.class`}}]},S={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...Wt,...Gt]}},C={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[b],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function noneOf(e){return t.concat(`(?!`,e.join(`|`),`)`)}let E={match:t.concat(/\b/,noneOf([...Kt,`super`,`import`].map(e=>`${e}\\s*\\(`)),n,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},O={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},b]},k=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(k)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[b]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:o,exports:{PARAMS_CONTAINS:y,CLASS_REFERENCE:S},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,f,p,m,h,g,{match:/\$\d+/},u,S,{scope:`attr`,match:n+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[g,e.REGEXP_MODE,{className:`function`,begin:k,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:`xml`,contains:[{begin:a.begin,end:a.end,skip:!0,contains:[`self`]}]}]},w,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[b,e.inherit(e.TITLE_MODE,{begin:n,className:`title.function`})]},{match:/\.\.\./,relevance:0},D,{match:`\\$`+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[b]},E,T,x,O,{match:/\$[(.]/}]}}function typescript(e){let t=e.regex,n=javascript(e),r=Vt,i=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],a={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},o={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:i},contains:[n.exports.CLASS_REFERENCE]},s={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:Vt,keyword:Ht.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:Ut,built_in:Jt.concat(i),"variable.language":qt},l={className:`meta`,begin:`@`+r},swapMode=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(l);let u=n.contains.find(e=>e.scope===`attr`),d=Object.assign({},u,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,u,d]),n.contains=n.contains.concat([l,a,o,d]),swapMode(n,`shebang`,e.SHEBANG()),swapMode(n,`use_strict`,s);let f=n.contains.find(e=>e.label===`func.def`);return f.relevance=0,Object.assign(n,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),n}var MODES=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Yt=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),Xt=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),Zt=[...Yt,...Xt],Qt=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),$t=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),en=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),tn=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function css(e){let t=e.regex,n=MODES(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i=/@-?\w[\w]*(-\w+)*/,a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+$t.join(`|`)+`)`},{begin:`:(:)?(`+en.join(`|`)+`)`}]},n.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+tn.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:Qt.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,n.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+Zt.join(`|`)+`)\\b`}]}}function xml(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:`string`}),c=e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,s,o,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[a,o,c,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:[`css`,`xml`]}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:[`javascript`,`handlebars`,`xml`]}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:n,relevance:0,starts:l}]},{className:`tag`,begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:`name`,begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function bash(e){let t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[n]}]};Object.assign(n,{className:`variable`,variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},r]});let i={className:`subst`,begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},s={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(s);let c={match:/\\"/},l={className:`string`,begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},e.NUMBER_MODE,n]},f=e.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),p={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],h=[`true`,`false`],g={match:/(\/[a-z._-]+)+/},_=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],v=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],y=`autoload.bg.bindkey.bye.cap.chdir.clone.comparguments.compcall.compctl.compdescribe.compfiles.compgroups.compquote.comptags.comptry.compvalues.dirs.disable.disown.echotc.echoti.emulate.fc.fg.float.functions.getcap.getln.history.integer.jobs.kill.limit.log.noglob.popd.print.pushd.pushln.rehash.sched.setcap.setopt.stat.suspend.ttyctl.unfunction.unhash.unlimit.unsetopt.vared.wait.whence.where.which.zcompile.zformat.zftp.zle.zmodload.zparseopts.zprof.zpty.zregexparse.zsocket.zstyle.ztcp`.split(`.`),b=`chcon.chgrp.chown.chmod.cp.dd.df.dir.dircolors.ln.ls.mkdir.mkfifo.mknod.mktemp.mv.realpath.rm.rmdir.shred.sync.touch.truncate.vdir.b2sum.base32.base64.cat.cksum.comm.csplit.cut.expand.fmt.fold.head.join.md5sum.nl.numfmt.od.paste.ptx.pr.sha1sum.sha224sum.sha256sum.sha384sum.sha512sum.shuf.sort.split.sum.tac.tail.tr.tsort.unexpand.uniq.wc.arch.basename.chroot.date.dirname.du.echo.env.expr.factor.groups.hostid.id.link.logname.nice.nohup.nproc.pathchk.pinky.printenv.printf.pwd.readlink.runcon.seq.sleep.stat.stdbuf.stty.tee.test.timeout.tty.uname.unlink.uptime.users.who.whoami.yes`.split(`.`);return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:h,built_in:[..._,...v,`set`,`shopt`,...y,...b]},contains:[f,e.SHEBANG(),p,d,a,o,g,s,c,l,u,n]}}function json(e){let t={className:`attr`,begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:`punctuation`,relevance:0},r=[`true`,`false`,`null`],i={scope:`literal`,beginKeywords:r.join(` `)};return{name:`JSON`,aliases:[`jsonc`],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}function go(e){let t={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:t,illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[e.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}function python(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}var nn={class:`code-block-wrapper pa-2`},rn={key:0,class:`language-indicator`},an=p({__name:`CodeBlockRenderer`,props:{code:{type:String,required:!0},language:{type:String,default:``}},setup(e){$.registerLanguage(`js`,javascript$1),$.registerLanguage(`javascript`,javascript$1),$.registerLanguage(`ts`,typescript),$.registerLanguage(`typescript`,typescript),$.registerLanguage(`css`,css),$.registerLanguage(`html`,xml),$.registerLanguage(`bash`,bash),$.registerLanguage(`sh`,bash),$.registerLanguage(`json`,json),$.registerLanguage(`go`,go),$.registerLanguage(`golang`,go),$.registerLanguage(`python`,python);let t=r();return t&&t.appContext.app.component(`highlightjs`,Mt.component),(t,r)=>{let a=c(`highlightjs`);return i(),y(`div`,nn,[e.language?(i(),y(`div`,rn,m(e.language),1)):P(``,!0),n(a,{language:e.language,code:e.code},null,8,[`language`,`code`])])}}}),on={key:0},sn={key:0},cn={key:0},ln={key:1,class:`error--text`},un={key:1},dn={key:2},fn={key:1},pn={key:1},mn={key:0,class:`text-h2`},hn={key:1,class:`text-h3`},gn={key:2,class:`text-h4`},_n={key:3},vn={key:4},yn={key:5},bn={key:2},xn={key:3,class:`text-h5`},Sn={key:0},Cn=[`href`,`title`],wn={key:5},Tn={key:6},En={key:7},Dn=[`src`,`alt`],On={key:9},kn={key:10},An={key:11},jn=[`align`],Mn=[`innerHTML`],Nn=[`innerHTML`],Pn={key:16},Fn={key:17},In={key:18},Ln=z(p({__name:`MdTokenRenderer`,props:{token:{type:Object,required:!0},last:{type:Boolean,required:!1,default:!1}},setup(e,{expose:n}){let r=t(`markdownComponents`,{}),a={fillIn:v(je),...r};function isComponent$1(e){return isComponent(e)}__name(isComponent$1,`isComponent`);function containsComponent$1(e){return containsComponent(e)}__name(containsComponent$1,`containsComponent`);function splitTextToken$1(e){return splitTextToken(e)}__name(splitTextToken$1,`splitTextToken`);function splitParagraphToken$1(e){return splitParagraphToken(e)}__name(splitParagraphToken$1,`splitParagraphToken`);function parsedComponent(e){let t=``;`text`in e&&typeof e.text==`string`?t=e.text:`raw`in e&&typeof e.raw==`string`&&(t=e.raw);let n=parseComponentSyntax(t);return n?{is:n.componentName,text:``,props:n.props}:{is:`fillIn`,text:t,props:{}}}function getComponent(e){return a[e]||(console.warn(`[MarkdownRenderer] Unknown component: "${e}". Available components: ${Object.keys(a).join(`, `)}`),null)}function decodeBasicEntities(e){return e.replace(/&#39;/g,`'`).replace(/&quot;/g,`"`).replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`)}function isText(e){return e.inLink===void 0&&e.type===`text`}return n({isComponent:isComponent$1,containsComponent:containsComponent$1,splitTextToken:splitTextToken$1,splitParagraphToken:splitParagraphToken$1,parsedComponent,decodeBasicEntities,isText,components:a,getComponent}),(t,n)=>{let r=c(`md-token-renderer`,!0);return isText(e.token)?(i(),y(`span`,on,[!e.token.tokens||e.token.tokens.length===0?(i(),y(`span`,sn,[isComponent$1(e.token)?(i(),y(`span`,cn,[!e.last&&getComponent(parsedComponent(e.token).is)?(i(),N(s(getComponent(parsedComponent(e.token).is)),l({key:0,text:parsedComponent(e.token).text},parsedComponent(e.token).props),null,16,[`text`])):!e.last&&!getComponent(parsedComponent(e.token).is)?(i(),y(`span`,ln,` [Unknown component: `+m(parsedComponent(e.token).is)+`] `,1)):P(``,!0)])):containsComponent$1(e.token)?(i(),y(`span`,un,[(i(!0),y(x,null,h(splitTextToken$1(e.token),(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):(i(),y(`span`,dn,m(decodeBasicEntities(e.token.text)),1))])):e.token.tokens&&e.token.tokens.length!==0?(i(),y(`span`,fn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):P(``,!0)])):e.token.type===`heading`?(i(),y(`span`,pn,[e.token.depth===1?(i(),y(`h1`,mn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.depth===2?(i(),y(`h2`,hn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.depth===3?(i(),y(`h3`,gn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.depth===4?(i(),y(`h4`,_n,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.depth===5?(i(),y(`h5`,vn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.depth===6?(i(),y(`h6`,yn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):P(``,!0)])):e.token.type===`strong`?(i(),y(`strong`,bn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.type===`paragraph`?(i(),y(`p`,xn,[containsComponent$1(e.token)?(i(),y(`span`,Sn,[(i(!0),y(x,null,h(splitParagraphToken$1(e.token),(t,n)=>(i(),N(r,{key:n,token:t,last:e.last&&e.token.tokens.length===1&&n===splitParagraphToken$1(e.token).length-1},null,8,[`token`,`last`]))),128))])):(i(!0),y(x,{key:1},h(e.token.tokens,(t,n)=>(i(),N(r,{key:n,token:t,last:e.last&&e.token.tokens.length===1},null,8,[`token`,`last`]))),128))])):e.token.type===`link`?(i(),y(`a`,{key:4,href:e.token.href,title:e.token.title},[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))],8,Cn)):e.token.type===`list`&&e.token.ordered===!1?(i(),y(`ul`,wn,[(i(!0),y(x,null,h(e.token.items,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.type===`list`&&e.token.ordered===!0?(i(),y(`ol`,Tn,[(i(!0),y(x,null,h(e.token.items,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.type===`list_item`?(i(),y(`li`,En,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.type===`image`?(i(),y(`img`,{key:8,src:e.token.href,alt:e.token.title},null,8,Dn)):e.token.type===`hr`?(i(),y(`hr`,On)):e.token.type===`br`?(i(),y(`br`,kn)):e.token.type===`del`?(i(),y(`del`,An)):e.token.type===`table`?(i(),y(`table`,{key:12,align:e.token.align},[_(`thead`,null,[(i(!0),y(x,null,h(e.token.header,(e,t)=>(i(),y(`th`,{key:t},m(e.text),1))),128))]),_(`tbody`,null,[(i(!0),y(x,null,h(e.token.rows,(e,t)=>(i(),y(`tr`,{key:t},[(i(!0),y(x,null,h(e,(e,t)=>(i(),y(`td`,{key:t},m(e.text),1))),128))]))),128))])],8,jn)):e.token.type===`html`?(i(),y(`span`,{key:13,innerHTML:e.token.raw},null,8,Mn)):e.token.type===`code`?(i(),N(an,{key:14,code:e.token.text,language:e.token.lang},null,8,[`code`,`language`])):e.token.type===`codespan`?(i(),y(`code`,{key:15,class:`codespan`,innerHTML:e.token.text},null,8,Nn)):e.token.type===`blockquote`?(i(),y(`blockquote`,Pn,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):e.token.type===`escape`?(i(),y(`span`,Fn,m(e.token.text),1)):e.token.type===`em`?(i(),y(`em`,In,[(i(!0),y(x,null,h(e.token.tokens,(e,t)=>(i(),N(r,{key:t,token:e},null,8,[`token`]))),128))])):P(``,!0)}}}),[[`__scopeId`,`data-v-de3eebd6`]]),Rn=p({name:`MarkdownRenderer`,components:{MdTokenRenderer:Ln,AudioAutoPlayer:At},props:{md:{type:String,required:!0}},computed:{tokens(){return Ot(this.md)}}}),zn=__exportAll({default:()=>Bn});function _sfc_render(e,t,n,r,a,o){let s=c(`md-token-renderer`),l=c(`audio-auto-player`);return i(),y(`div`,null,[(i(!0),y(x,null,h(e.tokens,(t,n)=>(i(),y(`span`,{key:n},[t.type?(i(),N(s,{key:0,token:t,last:n===e.tokens.length-1},null,8,[`token`,`last`])):t.audio?(i(),N(l,{key:1,src:t.audio},null,8,[`src`])):P(``,!0)]))),128))])}var Bn=z(Rn,[[`render`,_sfc_render]]);export{At as C,defineStore as D,createPinia as E,setActivePinia as O,useViewable as S,Bn as T,splitByDelimiters as _,_defineProperty as a,useCardPreviewModeStore as b,getPinia as c,isInlineComponent as d,isQuestionView as f,we as g,parseComponentSyntax as h,__name as i,Ln as l,Ce as m,B as n,containsComponent as o,je as p,an as r,Oe as s,z as t,isComponent as u,splitParagraphToken as v,zn as w,useQuestionView as x,splitTextToken as y};
53
+ //# sourceMappingURL=MarkdownRenderer-DoVbFpA6-BIbDxYC4.js.map