{"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/GapTextSubmission.vue?a928","webpack:///./src/views/seminars/components/GapTextSubmission.vue","webpack:///./src/views/seminars/components/GapTextSubmission.vue?f664","webpack:///./src/views/seminars/components/GapTextSubmission.vue?9b03","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","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/GapText.vue?2967","webpack:///./src/views/seminars/components/GapText.vue","webpack:///./src/views/seminars/components/GapText.vue?8772","webpack:///./src/views/seminars/components/GapText.vue?1a47"],"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","domProps","formattedText","submission","GapTextSubmission","answers","Array","fill","base","text","replaceAll","forEach","i","replace","components","SubmissionFooter","$","requireObjectCoercible","isRegExp","getRegExpFlags","wellKnownSymbol","IS_PURE","REPLACE","RegExpPrototype","RegExp","prototype","target","proto","searchValue","replaceValue","IS_REG_EXP","flags","replacer","string","searchString","template","result","position","index","O","String","call","indexOf","TypeError","undefined","split","join","class","marginTop","user","userId","_f","createdAt","one","users","find","username","email","VDivider","_l","key","line","part","j","VTextField","staticStyle","inputs","$set","GapTextElement","submitting","parts","gapCount","reduce","cum","cur","Error","y","trim","data","flat","seminarId","api","post","addSubmission","description","Watch","immediate"],"mappings":"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","file":"assets/js/chunk-083463ba.791902cd.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.formattedText)}}),_c('SubmissionFooter',{attrs:{\"submission\":_vm.submission}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop } 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 GapTextSubmission extends Vue {\r\n @Prop({ default: () => undefined }) element?: SeminarElement;\r\n @Prop({ default: () => undefined }) submission?: Submission;\r\n\r\n get formattedText() {\r\n if (this.element?.type !== \"gap_text\") return \"<>\";\r\n const answers =\r\n this.submission?.type !== \"gap_text\"\r\n ? new Array(this.element.answers.length).fill(\"\")\r\n : this.submission.answers;\r\n\r\n let base = this.element.text.replaceAll(/[\\n\\r+]/g, \"
\");\r\n this.element.answers.forEach(\r\n (x, i) =>\r\n (base = base.replace(\"__\", `${x} (${answers[i]})`)),\r\n );\r\n return base;\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!./GapTextSubmission.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!./GapTextSubmission.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GapTextSubmission.vue?vue&type=template&id=00bc1113&\"\nimport script from \"./GapTextSubmission.vue?vue&type=script&lang=ts&\"\nexport * from \"./GapTextSubmission.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","'use strict';\nvar $ = require('../internals/export');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\n\n// `String.prototype.replaceAll` method\n// https://github.com/tc39/proposal-string-replace-all\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, template, result, position, index;\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = String(requireObjectCoercible('flags' in RegExpPrototype\n ? searchValue.flags\n : getRegExpFlags.call(searchValue)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = searchValue[REPLACE];\n if (replacer !== undefined) {\n return replacer.call(searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return String(O).replace(searchValue, replaceValue);\n }\n }\n string = String(O);\n searchString = String(searchValue);\n if (searchString === '') return replaceAll.call(string, /(?:)/g, replaceValue);\n template = string.split(searchString);\n if (typeof replaceValue !== 'function') {\n return template.join(String(replaceValue));\n }\n result = template[0];\n position = result.length;\n for (index = 1; index < template.length; index++) {\n result += String(replaceValue(searchString, position, string));\n position += searchString.length + template[index].length;\n result += template[index];\n }\n return result;\n }\n});\n","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","import { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\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('GapTextSubmission',{key:i,staticClass:\"mt-4\",attrs:{\"element\":_vm.element,\"submission\":submission}})}),1):_c('div',[_c('div',[_c('div',_vm._l((_vm.parts),function(line,i){return _c('div',{key:i,staticClass:\"d-flex flex-wrap align-baseline\"},_vm._l((line),function(part,j){return _c('div',{key:j,staticClass:\"d-flex flex-wrap align-baseline\"},[_c('span',[_vm._v(_vm._s(part))]),(j !== line.length - 1)?_c(VTextField,{staticStyle:{\"max-width\":\"100px\",\"padding\":\"0px 10px\",\"margin\":\"0\"},attrs:{\"hide-details\":\"\",\"autocomplete\":\"prezp\"},model:{value:(_vm.inputs[i][j]),callback:function ($$v) {_vm.$set(_vm.inputs[i], j, $$v)},expression:\"inputs[i][j]\"}}):_vm._e()],1)}),0)}),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\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, SeminarElement, Submission } from \"@/core/models\";\r\n\r\nimport GapTextSubmission from \"./GapTextSubmission.vue\";\r\nimport ElementControls from \"./ElementControls.vue\";\r\n\r\n@Component({ components: { GapTextSubmission, ElementControls } })\r\nexport default class GapTextElement 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 inputs: string[][] = [];\r\n get parts() {\r\n if (this.element.type !== \"gap_text\") return [];\r\n return this.element.text.split(\"\\n\").map(x => x.split(\"__\"));\r\n }\r\n @Watch(\"element\", { immediate: true })\r\n elementChanged() {\r\n if (this.element.type !== \"gap_text\") return;\r\n this.parts.forEach(x => {\r\n const gapCount = x\r\n .map(x => x.split(\"__\").length)\r\n .reduce((cum, cur) => cum + cur);\r\n this.inputs.push(new Array(gapCount - 1).fill(\"\"));\r\n });\r\n }\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 submitting = false;\r\n async submit() {\r\n if (this.element.type !== \"gap_text\") throw new Error(\"invalid\");\r\n\r\n if (this.inputs.some(x => x.some(y => y.trim().length === 0))) {\r\n this.displaySnackbar(this.$t(\"seminars.gap_text.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.inputs.flat(),\r\n seminarId: this.element.seminarId,\r\n };\r\n const submission = (await api.post(\r\n \"/api/Submissions/GapText\",\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","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!./GapText.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!./GapText.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GapText.vue?vue&type=template&id=37102781&\"\nimport script from \"./GapText.vue?vue&type=script&lang=ts&\"\nexport * from \"./GapText.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"],"sourceRoot":""}