{"version":3,"sources":["webpack:///./src/views/seminars/components/ElementControls.vue?ccc4","webpack:///./src/views/seminars/components/ElementControls.vue","webpack:///./src/views/seminars/components/ElementControls.vue?2da1","webpack:///./src/views/seminars/components/ElementControls.vue?04ac","webpack:///./src/views/seminars/components/Categorize.vue?a6f9","webpack:///./src/views/seminars/components/SubmissionFooter.vue?5218","webpack:///./src/views/seminars/components/SubmissionFooter.vue","webpack:///./src/views/seminars/components/SubmissionFooter.vue?bb34","webpack:///./src/views/seminars/components/SubmissionFooter.vue?6832","webpack:///./src/views/seminars/components/CategorizeSubmission.vue?f738","webpack:///./src/views/seminars/components/Categorize.vue?6d95","webpack:///./src/views/seminars/components/Categorize.vue","webpack:///./src/views/seminars/components/Categorize.vue?e687","webpack:///./src/views/seminars/components/Categorize.vue?02dd","webpack:///./src/views/seminars/components/CategorizeSubmission.vue?d07c","webpack:///./src/views/seminars/components/CategorizeSubmission.vue","webpack:///./src/views/seminars/components/CategorizeSubmission.vue?125c","webpack:///./src/views/seminars/components/CategorizeSubmission.vue?0acf"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","VBtn","attrs","loading","on","prev","VIcon","_v","_s","$t","VSpacer","callNext","isLast","VDialog","model","value","callback","$$v","endDialog","expression","VCard","toDash","$event","_e","staticRenderFns","emptySubmissionElements","Map","ElementControls","elementStatus","element","seminar","submissions","filter","x","elementId","id","displaySnackbar","isComplete","next","type","reqScore","requiredScore","bestScore","subs","map","score","sort","a","b","some","skipped","msg","i18n","t","toString","numReq","requiredSubmissions","numSub","length","numReqShared","rateableSubmissions","requiredNumShared","numShared","isShared","sharedSubmissions","m","has","submitEmpty","submit","console","log","route","$router","push","Vue","__decorate","Prop","default","Getter","Action","Component","component","class","marginTop","user","submission","userId","_f","createdAt","SubmissionFooter","one","users","find","username","email","VDivider","_l","i","key","staticStyle","phrase","phrases","category","input","j","removePhrase","CategorizeElement","submitting","dragged","Math","random","Error","data","answers","seminarId","api","post","addSubmission","description","Array","categories","fill","words","onChanged","document","addEventListener","ev","preventDefault","target","idx","Number","dataset","isNaN","classList","contains","Watch","components","CategorizeSubmission","isCorrect","VTooltip","scopedSlots","_u","fn","ref","_g","correctCategory","solutions","onChange","includes","ci"],"mappings":"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","file":"assets/js/chunk-73c8449e.4281d42e.js","sourcesContent":["import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex mt-12 mb-4\"},[_c(VBtn,{attrs:{\"elevation\":\"0\",\"disabled\":_vm.loading},on:{\"click\":_vm.prev}},[_c(VIcon,{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-chevron-left\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"seminars.prev\")))])],1),_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\",\"color\":\"primary\",\"loading\":_vm.loading,\"disabled\":_vm.loading},on:{\"click\":_vm.callNext}},[_c('span',[_vm._v(_vm._s(_vm.isLast ? _vm.$t(\"seminars.finish\") : _vm.$t(\"seminars.next\")))]),_c(VIcon,{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.isLast ? \"mdi-check\" : \"mdi-chevron-right\")+\" \")])],1)],1),(_vm.isLast)?_c(VDialog,{attrs:{\"max-width\":\"400px\"},model:{value:(_vm.endDialog),callback:function ($$v) {_vm.endDialog=$$v},expression:\"endDialog\"}},[_c(VCard,{attrs:{\"outlined\":\"\"}},[_c(VCardTitle,[_vm._v(_vm._s(_vm.$t(\"seminars.done\")))]),_c(VCardText,[_vm._v(\" \"+_vm._s(_vm.$t(\"seminars.doneText\"))+\" \")]),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.toDash}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"seminars.back\")))])]),_c(VBtn,{attrs:{\"color\":\"primary\",\"elevation\":\"0\"},on:{\"click\":function($event){_vm.endDialog = false}}},[_c('span',[_vm._v(\"OK\")])])],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\n\r\nimport { Seminar, SeminarElement } from \"@/core/models\";\r\nimport { elementStatus } from \"@/core/utils/seminars\";\r\nimport i18n from \"@/core/plugins/i18n\";\r\n\r\nconst emptySubmissionElements = new Map([\r\n [\"read_text\", \"/api/Submissions/ReadText\"],\r\n [\"watch_video\", \"/api/Submissions/WatchVideo\"],\r\n]);\r\n\r\n@Component\r\nexport default class ElementControls extends Vue {\r\n @Prop({ default: () => false }) isLast!: boolean;\r\n @Prop({ default: () => {} }) submit!: () => Promise;\r\n\r\n @Getter(\"seminars/selected\") seminar?: Seminar;\r\n @Getter(\"seminars/element\") element!: SeminarElement;\r\n\r\n @Getter(\"profile/id\") userId!: string;\r\n\r\n @Action(\"seminars/next\") next!: () => void;\r\n @Action(\"seminars/prev\") prev!: () => void;\r\n @Action(\"seminars/skip\") skip!: (el: SeminarElement) => void;\r\n @Action(\"seminars/submitEmpty\") submitEmpty!: (el: SeminarElement) => void;\r\n\r\n @Action(\"displaySnackbar\") displaySnackbar!: (m: string) => void;\r\n\r\n loading = false;\r\n endDialog = false;\r\n\r\n get isComplete() {\r\n return elementStatus(this.element, this.seminar) === \"completed\";\r\n }\r\n\r\n get subs() {\r\n return (\r\n this.seminar?.submissions?.filter(x => x.elementId === this.element.id) ||\r\n []\r\n );\r\n }\r\n\r\n async callNext() {\r\n // no element\r\n if (!this.element) return this.displaySnackbar(\"Element not found\");\r\n\r\n // element completed\r\n if (this.isComplete) {\r\n if (this.isLast) this.endDialog = true;\r\n return this.next();\r\n }\r\n\r\n // specific to vr_training\r\n if (this.element.type === \"vr_training\") {\r\n const reqScore = this.element.requiredScore;\r\n const bestScore =\r\n this.subs\r\n .map(x => (x as any).score as number)\r\n .sort((a, b) => b - a)[0] || 0;\r\n if (bestScore < reqScore)\r\n return this.displaySnackbar(\r\n \"You need to reach the required score in order to proceed\",\r\n );\r\n else return this.next();\r\n }\r\n\r\n // specific to give_feedback\r\n if (this.element.type === \"give_feedback\") {\r\n if (this.subs.some(x => !x.skipped)) return this.next();\r\n\r\n const msg = i18n.t(\"seminars.submissions.giveFeedbackInfo\").toString();\r\n return this.displaySnackbar(msg);\r\n }\r\n\r\n // specific to video_presentations\r\n if (this.element.type === \"video_presentation\") {\r\n const subs = this.subs.filter(x => !x.skipped);\r\n const numReq = this.element.requiredSubmissions || 1;\r\n const numSub = subs?.length || 0;\r\n const numReqShared = this.element.rateableSubmissions\r\n ? this.element.requiredNumShared || 0\r\n : -1;\r\n const numShared = subs?.filter(x => x.isShared).length || 0;\r\n\r\n // requirements not met\r\n if (numReq > numSub || numReqShared > numShared) {\r\n const submissions = numReq - numSub;\r\n const sharedSubmissions =\r\n numReqShared === -1 ? 0 : numReqShared - numShared;\r\n const m = this.$t(\"seminars.video_presentation.error\", {\r\n submissions,\r\n sharedSubmissions,\r\n }).toString();\r\n this.displaySnackbar(m);\r\n return;\r\n }\r\n // req. met\r\n else {\r\n if (this.isLast) this.endDialog = true;\r\n return this.next();\r\n }\r\n }\r\n\r\n // elements that require empty submissions\r\n if (emptySubmissionElements.has(this.element.type)) {\r\n this.submitEmpty(this.element);\r\n this.next();\r\n }\r\n // elements that need to be submitted\r\n else {\r\n this.loading = true;\r\n try {\r\n await this.submit();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n this.loading = false;\r\n }\r\n\r\n // if is last - show dialog\r\n if (this.isLast) this.endDialog = true;\r\n }\r\n\r\n toDash() {\r\n const id = this.seminar?.id;\r\n if (!id) return this.displaySnackbar(\"Could not go back to dashboard\");\r\n const route = `/seminars/dashboard/${id}`;\r\n this.$router.push(route);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElementControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElementControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElementControls.vue?vue&type=template&id=2aa2dd0e&\"\nimport script from \"./ElementControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElementControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Categorize.vue?vue&type=style&index=0&id=4da5e353&prod&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-right text-body-2\",class:{ 'mt-4': _vm.marginTop ? true : false }},[(_vm.isOwner)?_c('div',[_vm._v(\" Submitted by: \"),_c('b',[_vm._v(_vm._s(_vm.user(_vm.submission.userId)))])]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(\"seminars.submittedOn\"))+\": \"),_c('b',[_vm._v(_vm._s(_vm._f(\"formatwithtime\")(_vm.submission.createdAt)))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { SimpleUser, Submission } from \"@/core/models\";\r\n\r\n@Component\r\nexport default class SubmissionFooter extends Vue {\r\n @Getter(\"seminars/isOwner\") isOwner!: boolean;\r\n @Getter(\"seminars/users\") users!: SimpleUser[];\r\n\r\n user(id: string) {\r\n const one = this.users.find(x => x.id === id);\r\n if (!one) return \"You\";\r\n return `${one.username} (${one.email})`;\r\n }\r\n\r\n @Prop({ default: () => undefined }) submission?: Submission;\r\n @Prop({ default: () => true }) marginTop?: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionFooter.vue?vue&type=template&id=70f11129&\"\nimport script from \"./SubmissionFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategorizeSubmission.vue?vue&type=style&index=0&id=4caee073&prod&scoped=true&lang=css&\"","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c(VDivider,{staticClass:\"my-4\"}),(_vm.submissions.length > 0)?_c('div',_vm._l((_vm.submissions),function(submission,i){return _c('CategorizeSubmission',{key:i,staticClass:\"mt-4\",attrs:{\"element\":_vm.element,\"submission\":submission}})}),1):_c('div',{staticClass:\"d-flex align-stretch my-4\"},[_c('div',{staticClass:\"pr-4 mr-2\",staticStyle:{\"max-height\":\"500px\",\"overflow\":\"auto\"}},[_c('h3',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t(\"seminars.categorize.phrases\")))]),_c('div',{staticClass:\"phrases-container\"},[_vm._l((_vm.randomPhrases),function(phrase,i){return _c('div',{key:i,staticClass:\"phrase\",attrs:{\"draggable\":\"\",\"data-phrase\":i}},[_c('div',{staticClass:\"mr-4 flex-1\"},[_vm._v(_vm._s(phrase))]),_c(VIcon,[_vm._v(\"mdi-drag\")])],1)}),(!_vm.phrases.length)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"seminars.categorize.noMore\"))+\" \")]):_vm._e()],2)]),_c('div',{staticClass:\"flex-1\",staticStyle:{\"max-height\":\"500px\",\"overflow\":\"auto\"}},[_c('h3',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t(\"seminars.categorize.categories\")))]),_c('div',_vm._l((_vm.element.categories),function(category,i){return _c('div',{key:i,staticClass:\"category-container\"},[_c('h5',[_vm._v(_vm._s(category))]),_c('div',{staticClass:\"dropzone-container\"},[_vm._l((_vm.input[i]),function(phrase,j){return _c('div',{key:j,staticClass:\"dropzone-phrase\"},[_c('div',[_vm._v(_vm._s(phrase))]),_c(VBtn,{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removePhrase(i, j)}}},[_c(VIcon,{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)}),_c('div',{staticClass:\"dropzone\",attrs:{\"data-category\":i}},[_vm._v(\" \"+_vm._s(_vm.$t(\"seminars.categorize.dnd\"))+\" \")])],2)])}),0)])]),(_vm.skipped)?_c('div',[_c('h4',{staticClass:\"mt-4\"},[_vm._v(\" This task was skipped on \"+_vm._s(_vm._f(\"formatwithtime\")(_vm.skipped.createdAt))+\". \")])]):_vm._e(),_c('ElementControls',{attrs:{\"submit\":_vm.submit}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Action } from \"vuex-class\";\r\nimport { Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\nimport api from \"@/core/utils/api\";\r\nimport { Seminar, Submission, SeminarElement } from \"@/core/models\";\r\n\r\nimport CategorizeSubmission from \"./CategorizeSubmission.vue\";\r\nimport ElementControls from \"./ElementControls.vue\";\r\n\r\n@Component({ components: { CategorizeSubmission, ElementControls } })\r\nexport default class CategorizeElement extends Vue {\r\n @Prop({ default: () => undefined }) seminar?: Seminar;\r\n @Prop({ default: () => ({} as SeminarElement) }) element!: SeminarElement;\r\n @Action(\"seminars/addSubmission\") addSubmission!: (s: Submission) => void;\r\n @Action(\"displaySnackbar\") displaySnackbar!: (m: string) => void;\r\n\r\n get submissions() {\r\n return (\r\n this.seminar?.submissions?.filter(\r\n x => x.elementId === this.element.id && !x.skipped,\r\n ) || []\r\n );\r\n }\r\n\r\n get skipped() {\r\n return this.seminar?.submissions?.find(\r\n x => x.skipped && x.elementId === this.element.id,\r\n );\r\n }\r\n\r\n get randomPhrases() {\r\n return this.phrases.sort(function () {\r\n return 0.5 - Math.random();\r\n });\r\n }\r\n\r\n submitting = false;\r\n input: string[][] = [];\r\n phrases: string[] = [];\r\n\r\n async submit() {\r\n if (this.submitting) throw new Error(\"submitting\");\r\n\r\n if (this.phrases.length > 0) {\r\n this.displaySnackbar(this.$t(\"seminars.categorize.error\").toString());\r\n throw new Error(\"invalid\");\r\n }\r\n\r\n this.submitting = true;\r\n try {\r\n const data = {\r\n elementId: this.element.id,\r\n answers: this.input,\r\n seminarId: this.element.seminarId,\r\n };\r\n const submission = (await api.post(\r\n \"/api/Submissions/Categorize\",\r\n data,\r\n )) as Submission;\r\n this.addSubmission(submission);\r\n } catch (error) {\r\n this.displaySnackbar(error.description);\r\n }\r\n this.submitting = false;\r\n }\r\n\r\n removePhrase(i: number, j: number) {\r\n const phrase = this.input[i][j];\r\n this.input[i] = this.input[i].filter(x => x !== phrase);\r\n this.phrases = [...this.phrases, phrase];\r\n }\r\n\r\n onChanged() {\r\n if (this.element.type !== \"categorize\") return;\r\n this.input = new Array(this.element.categories.length).fill([]);\r\n this.phrases = this.element.words || [];\r\n }\r\n\r\n @Watch(\"element\")\r\n elementChanged() {\r\n this.onChanged();\r\n }\r\n\r\n dragged: string | null = null;\r\n created() {\r\n this.onChanged();\r\n\r\n document.addEventListener(\"dragover\", ev => {\r\n ev.preventDefault();\r\n });\r\n document.addEventListener(\"dragstart\", ev => {\r\n if (!ev.target) return;\r\n const idx = Number((ev.target as HTMLDivElement).dataset.phrase);\r\n if (isNaN(idx)) return;\r\n this.dragged = this.phrases[idx];\r\n });\r\n document.addEventListener(\"dragenter\", ev => {\r\n // @ts-ignore\r\n if (!ev.target?.classList?.contains(\"dropzone\")) return;\r\n const idx = Number((ev.target as HTMLDivElement).dataset.category);\r\n if (isNaN(idx)) return;\r\n });\r\n document.addEventListener(\"dragleave\", ev => {\r\n // @ts-ignore\r\n if (!ev.target?.classList?.contains(\"dropzone\")) return;\r\n const idx = Number((ev.target as HTMLDivElement).dataset.category);\r\n if (isNaN(idx)) return;\r\n });\r\n document.addEventListener(\"drop\", ev => {\r\n ev.preventDefault();\r\n // @ts-ignore\r\n if (!ev.target?.classList?.contains(\"dropzone\")) return;\r\n const idx = Number((ev.target as HTMLDivElement).dataset.category);\r\n if (!this.dragged || isNaN(idx)) return;\r\n this.phrases = this.phrases.filter(x => x !== this.dragged);\r\n this.input[idx] = [...this.input[idx], this.dragged];\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Categorize.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Categorize.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Categorize.vue?vue&type=template&id=4da5e353&scoped=true&\"\nimport script from \"./Categorize.vue?vue&type=script&lang=ts&\"\nexport * from \"./Categorize.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Categorize.vue?vue&type=style&index=0&id=4da5e353&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4da5e353\",\n null\n \n)\n\nexport default component.exports","import { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"flex-1\",staticStyle:{\"max-height\":\"500px\",\"overflow\":\"auto\"}},[_c('h3',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t(\"seminars.categorize.categories\")))]),_c('div',_vm._l((_vm.categories),function(category,i){return _c('div',{key:i,staticClass:\"category-container\"},[_c('h5',[_vm._v(_vm._s(category))]),_c('div',{staticClass:\"answers-container\"},_vm._l((_vm.answers[i]),function(phrase,j){return _c('div',{key:j,staticClass:\"phrase submitted\",class:{ isCorrect: _vm.isCorrect(i, j) }},[_c('div',[_vm._v(_vm._s(phrase))]),(!_vm.isCorrect(i, j))?_c(VTooltip,{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VIcon,_vm._g({},on),[_vm._v(\"mdi-information-outline\")])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"seminars.categorize.correct\"))+\": \"),_c('b',[_vm._v(_vm._s(_vm.correctCategory(i, j)))])])]):_vm._e()],1)}),0)])}),0)]),_c('SubmissionFooter',{attrs:{\"submission\":_vm.submission}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\nimport { SeminarElement, Submission } from \"@/core/models\";\r\nimport SubmissionFooter from \"./SubmissionFooter.vue\";\r\n\r\n@Component({ components: { SubmissionFooter } })\r\nexport default class CategorizeSubmission extends Vue {\r\n @Prop({ default: () => undefined }) element?: SeminarElement;\r\n @Prop({ default: () => undefined }) submission?: Submission;\r\n\r\n categories: string[] = [];\r\n solutions: string[][] = [];\r\n answers: string[][] = [];\r\n onChange() {\r\n if (\r\n this.element?.type !== \"categorize\" ||\r\n this.submission?.type !== \"categorize\"\r\n )\r\n return;\r\n this.categories = this.element.categories;\r\n this.solutions = this.element.answers;\r\n this.answers = (this.submission as any).answers;\r\n }\r\n created() {\r\n this.onChange();\r\n }\r\n\r\n @Watch(\"element\")\r\n elementChanged() {\r\n if (!this.element) return;\r\n this.onChange();\r\n }\r\n\r\n isCorrect(i: number, j: number) {\r\n const phrase = this.answers[i][j];\r\n return this.solutions[i].includes(phrase);\r\n }\r\n\r\n correctCategory(i: number, j: number) {\r\n if (this.element?.type !== \"categorize\") return \"<>\";\r\n const phrase = this.answers[i][j];\r\n for (let ci = 0; ci < this.element.answers.length; ci++)\r\n if (this.element.answers[ci].some(x => x === phrase))\r\n return this.element.categories[ci];\r\n return \"<>\";\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategorizeSubmission.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategorizeSubmission.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategorizeSubmission.vue?vue&type=template&id=4caee073&scoped=true&\"\nimport script from \"./CategorizeSubmission.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategorizeSubmission.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategorizeSubmission.vue?vue&type=style&index=0&id=4caee073&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4caee073\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}