{"version":3,"sources":["webpack:///./src/components/ExamCheckBox.vue?fa10","webpack:///./src/components/ExamCheckBox.vue","webpack:///./src/components/ExamCheckBox.vue?35f2","webpack:///./src/components/ExamCheckBox.vue?b2f9","webpack:///./src/models/entry/Choice.ts","webpack:///./src/models/entry/QuestionResources.ts","webpack:///./src/common/Messages.ts","webpack:///./src/components/ExamTimer.vue?ce6d","webpack:///./src/components/ExamTimer.vue","webpack:///./src/components/ExamTimer.vue?2dbc","webpack:///./src/components/ExamTimer.vue?b902","webpack:///./src/models/entry/Answer.ts","webpack:///./src/views/test_exam/TestExam.vue?ff1a","webpack:///./src/models/entry/TrialChoice.ts","webpack:///./src/models/entry/TrialSubQuestion.ts","webpack:///./src/models/entry/TrialQuestion.ts","webpack:///./src/views/test_exam/TestExam.vue","webpack:///./src/views/test_exam/TestExam.vue?e818","webpack:///./src/views/test_exam/TestExam.vue?e31b","webpack:///./src/components/ExamRadio.vue?8031","webpack:///./src/components/ExamRadio.vue","webpack:///./src/components/ExamRadio.vue?2f75","webpack:///./src/components/ExamRadio.vue?d114","webpack:///./src/components/ExamSelect.vue?3660","webpack:///./src/components/ExamSelect.vue","webpack:///./src/components/ExamSelect.vue?a103","webpack:///./src/components/ExamSelect.vue?76eb"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_l","choice","index","key","class","isSelectedCheck","choiceCode","on","$event","select","domProps","_s","choiceTitle","staticRenderFns","code","answer","findIndex","selectedCode","splice","push","type","Array","ExamCheckbox","component","order","Choice","resourceUri","resourceFileName","alternativeText","undefined","contents","contentType","localSrcUri","QuestionResources","generateMessage","item","template","generateLengthMessage","length","TEMPLATE_REQUIRED_INPUT","TEMPLATE_REQUIRED_SELECT","INVALID_CREDENTIALS","INVALID_RESPONSE","CONFLICT","SEND_MAIL_FAILURE","UPDATE_PASSWORD_FAILURE","PRE_REGISTER_FAILURE","LOGIN_FAILURE","RESET_PASSWORD_FAILURE","INVALID_TOKEN_OR_BIRTHDAY","INVALID_GOODS_QUANTITY","REQUIRED_GOODS_OPTION","REQUIRED_MAIL_ADDRESS","REQUIRED_MAIL_ADDRESS_CONFIRM","REQUIRED_LOGIN_ID","REQUIRED_PASSWORD","REQUIRED_PASSWORD_CONFIRM","REQUIRED_CURRENT_PASSWORD","REQUIRED_GENDER","REQUIRED_BIRTHDAY","REQUIRED_LAST_NAME","REQUIRED_FIRST_NAME","REQUIRED_LAST_NAME_KANA","REQUIRED_FIRST_NAME_KANA","REQUIRED_POSTAL_CODE","REQUIRED_PREFECTURE","REQUIRED_CITY","REQUIRED_STREET","REQUIRED_PHONE_NUMBER","LOGIN_ID_LENGTH","PASSWORD_LENGTH","NAME_LENGTH","NAME_KANA_LENGTH","POSTAL_CODE_LENGTH","PREFECTURE_LENGTH","CITY_LENGTH","STREET_LENGTH","BUILDING_NAME_LENGTH","PHONE_NUMBER_LENGTH","LOGIN_ID_STRING_TYPE","PASSWORD_STRING_TYPE","NAME_STRING_TYPE","NAME_KANA_STRING_TYPE","POSTAL_CODE_STRING_TYPE","PHONE_NUMBER_STRING_TYPE","EXISTS_ID","ILLEGAL_MAIL_ADDRESS","MAIL_ADDRESS_MISMATCH","PASSWORD_MISMATCH","NEW_PASSWORD_MISMATCH","MAIL_NO_CHANGE","INVALID_TOKEN_OR_PASSWORD","INVALID_BIRTHDAY","INCLUDE_INVALID_STRING","_v","isNotification","min","secFormat","sec","strSec","substring","switch","timerStart","start","stop","clearInterval","timer","time","Math","trunc","window","setInterval","countDown","$emit","notificationMin","notificationSec","default","ExamTimer","questionCode","version","choiceCodes","String","Answer","attrs","directives","name","rawName","value","expression","timerSec","isTimerStart","examEnd","moveCurrent","current","questionNumber","questions","q","check","isBookMark","isAnswer","staticStyle","setCurrent","_m","questionTitle","questionStatement","getVideoInfo","_e","getAudioInfo","subQ","subQIdx","subQuestionTitle","subQuestionType","choices","$set","target","composing","bookMark","disable","answeredAllQuestions","isEndConfirm","copyright","isExamStart","examStart","isReady","progressPercent","style","isIndicatorDisplay","collectType","TrialChoice","TrialSubQuestion","answerType","isFixed","subQuestions","questionResources","i","TrialQuestion","totalDownloadDataCount","nowLoadingCount","EntryRepo","RepositoryFactory","get","entry","RankRepo","rank","retryMsg","contentsReload","$nextTick","videoTag","document","getElementById","load","audioTag","mounted","addEventListener","getCopyright","CommonCss","createElement","rel","href","$el","appendChild","ExamIndexCss","getExamConfigCss","then","cssElement","CommonJs","src","ExamIndexJs","getTestExam","getQuestions","resourceDownLoad","firstData","$router","replace","paths","TOP","beforeDestroy","encodeRankCode","StringUtil","getRankInfo","response","status","data","time_limit","notification_limit","e","Error","catch","rejected","getTrialQuestions","convert","deserializeArray","forEach","question","MarkdownToHTML","subQuestion","c","confirm","ExamRepository","exam","getExamDesignResource","DesignCode","display_text","downloadInfo","questionValue","resourceData","resource","uri","execDownload","rejectInfo","results","info","createDownLoadPromise","Promise","all","a","responseType","headers","split","blob","Blob","srcUrl","URL","createObjectURL","indexOf","targetSubq","targetChoice","round","correctCount","targetQuestions","filter","some","sub","idx","subCorrectCount","selectTypeQuestions","correctAnswers","map","inputAnswers","diff","correctRate","path","TEST_EXAM_FINISH","query","rate","vector","nextIndex","next","getResourceInfo","find","contentsType","width","every","Exam","components","ExamRadio","ExamCheckBox","ExamSelect","IndicatorModal","BaseView","choiceIdx","isSeletBodyVisible","currentChoice","init","selectChoice","display","top","deep"],"mappings":"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","file":"js/test_exam_main.b6dca4d6.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"exam-checkbox\"},[_c('ul',_vm._l((_vm.choices),function(choice,index){return _c('li',{key:index,class:{ 'on': _vm.isSelectedCheck(choice.choiceCode) > -1 },on:{\"click\":function($event){return _vm.select(choice.choiceCode)}}},[_c('div',[_c('p',[_c('span',{domProps:{\"innerHTML\":_vm._s(choice.choiceTitle)}})])])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component, Prop, PropSync, Vue,\n} from 'vue-property-decorator';\nimport Choice from '@/models/entry/Choice';\n\n@Component\nexport default class ExamCheckbox extends Vue {\n @Prop()\n private choices: Choice[];\n\n @PropSync('choiceCodes', { type: Array })\n private answer: string[];\n\n isSelectedCheck(code: string) {\n return this.answer.findIndex((selectedCode) => selectedCode === code);\n }\n\n select(code: string) {\n const index = this.isSelectedCheck(code);\n if (index > -1) {\n this.answer.splice(index, 1);\n return;\n }\n this.answer.push(code);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamCheckBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamCheckBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExamCheckBox.vue?vue&type=template&id=534831b1&\"\nimport script from \"./ExamCheckBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExamCheckBox.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 { JsonObject, JsonProperty } from 'json2typescript';\n\n@JsonObject('Choice')\nexport default class Choice {\n constructor() {\n this.choiceCode = '';\n this.choiceTitle = '';\n this.order = 0;\n }\n\n @JsonProperty('choice_code')\n public choiceCode: string;\n\n @JsonProperty('choice_title')\n public choiceTitle: string;\n\n @JsonProperty('order')\n public order: number;\n}\n","import { JsonObject, JsonProperty } from 'json2typescript';\n\n@JsonObject('QuestionResources')\nexport default class QuestionResources {\n constructor() {\n this.resourceUri = '';\n this.resourceFileName = '';\n this.alternativeText = undefined;\n this.contents = undefined;\n this.contentType = '';\n this.localSrcUri = '';\n }\n\n @JsonProperty('resource_uri')\n public resourceUri: string;\n\n @JsonProperty('resource_file_name')\n public resourceFileName: string;\n\n @JsonProperty('alternative_text', null, true)\n public alternativeText?: string;\n\n public contents?: Blob;\n\n public contentType: string;\n\n public localSrcUri: string;\n}\n","function generateMessage(item: string, template: string) {\n return `${item}${template}`;\n}\n\nexport function generateLengthMessage(item: string, length: string) {\n return `${item}は${length}で入力してください`;\n}\n\n// テンプレート\nexport const TEMPLATE_REQUIRED_INPUT = 'を入力してください';\nexport const TEMPLATE_REQUIRED_SELECT = 'を選択してください';\n\n// 処理失敗\nexport const INVALID_CREDENTIALS = '認証情報が不正なため処理を中断しました';\nexport const INVALID_RESPONSE = 'サーバーからのレスポンスが不正なため処理を中断しました';\nexport const CONFLICT = '対象のデータが変更されているため画面を更新して下さい';\nexport const SEND_MAIL_FAILURE = 'メールの送信に失敗しました';\nexport const UPDATE_PASSWORD_FAILURE = 'パスワードの更新に失敗しました';\nexport const PRE_REGISTER_FAILURE = '仮会員登録に失敗しました';\nexport const LOGIN_FAILURE = 'IDまたはパスワードが違います';\nexport const RESET_PASSWORD_FAILURE = 'パスワードの再設定に失敗しました';\nexport const INVALID_TOKEN_OR_BIRTHDAY = '生年月日が違うかトークンが無効なため再設定に失敗しました';\nexport const INVALID_GOODS_QUANTITY = '個数が適正範囲外です。1~100 の数字を指定してください';\nexport const REQUIRED_GOODS_OPTION = '選択してください';\n\n// アカウント バリデーションエラー\nexport const REQUIRED_MAIL_ADDRESS = generateMessage('メールアドレス', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_MAIL_ADDRESS_CONFIRM = generateMessage('メールアドレス(確認)', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_LOGIN_ID = generateMessage('ID', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_PASSWORD = generateMessage('パスワード', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_PASSWORD_CONFIRM = generateMessage('パスワード(確認)', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_CURRENT_PASSWORD = generateMessage('現在のパスワード', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_GENDER = generateMessage('性別', TEMPLATE_REQUIRED_SELECT);\nexport const REQUIRED_BIRTHDAY = generateMessage('生年月日', TEMPLATE_REQUIRED_SELECT);\nexport const REQUIRED_LAST_NAME = generateMessage('氏名(姓)', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_FIRST_NAME = generateMessage('氏名(名)', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_LAST_NAME_KANA = generateMessage('氏名フリガナ(姓)', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_FIRST_NAME_KANA = generateMessage('氏名フリガナ(名)', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_POSTAL_CODE = generateMessage('郵便番号', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_PREFECTURE = generateMessage('都道府県', TEMPLATE_REQUIRED_SELECT);\nexport const REQUIRED_CITY = generateMessage('市区町村', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_STREET = generateMessage('番地', TEMPLATE_REQUIRED_INPUT);\nexport const REQUIRED_PHONE_NUMBER = generateMessage('電話番号', TEMPLATE_REQUIRED_INPUT);\n\nexport const LOGIN_ID_LENGTH = generateLengthMessage('ID', '3文字以上、30文字以下');\nexport const PASSWORD_LENGTH = generateLengthMessage('パスワード', '8文字以上');\nexport const NAME_LENGTH = generateLengthMessage('氏名', '合計20文字以内');\nexport const NAME_KANA_LENGTH = generateLengthMessage('氏名フリガナ', '合計20文字以内');\nexport const POSTAL_CODE_LENGTH = generateLengthMessage('郵便番号', '7文字以下');\nexport const PREFECTURE_LENGTH = generateLengthMessage('都道府県', '4文字以下');\nexport const CITY_LENGTH = generateLengthMessage('市区町村', '255文字以下');\nexport const STREET_LENGTH = generateLengthMessage('番地', '255文字以下');\nexport const BUILDING_NAME_LENGTH = generateLengthMessage('建物名・部屋番号', '255文字以下');\nexport const PHONE_NUMBER_LENGTH = generateLengthMessage('電話番号', '各4文字以下');\n\nexport const LOGIN_ID_STRING_TYPE = 'IDは半角英小文字、半角数字、アンダースコア(_)のみ使用できます';\nexport const PASSWORD_STRING_TYPE = 'パスワードは「英大文字」「英小文字」「数字または記号」のみ使用でき、すべてを含む必要があります';\nexport const NAME_STRING_TYPE = '氏名は全角で入力してください';\nexport const NAME_KANA_STRING_TYPE = '氏名フリガナは全角カタカナで入力してください';\nexport const POSTAL_CODE_STRING_TYPE = '郵便番号はハイフンなしの半角数字で入力してください';\nexport const PHONE_NUMBER_STRING_TYPE = '電話番号は半角数字で入力してください';\n\nexport const EXISTS_ID = 'すでにIDが使われています';\nexport const ILLEGAL_MAIL_ADDRESS = 'メールアドレスの形式が不正です';\nexport const MAIL_ADDRESS_MISMATCH = 'メールアドレスとメールアドレス(確認)が一致していません';\nexport const PASSWORD_MISMATCH = 'パスワードとパスワード(確認)が一致していません';\nexport const NEW_PASSWORD_MISMATCH = '新しいパスワードと新しいパスワード(確認)が一致していません';\nexport const MAIL_NO_CHANGE = '現在のメールアドレスと同一のメールアドレスです';\nexport const INVALID_TOKEN_OR_PASSWORD = 'パスワードが違うかトークンが無効なため更新に失敗しました';\nexport const INVALID_BIRTHDAY = '生年月日が不正な日付です';\nexport const INCLUDE_INVALID_STRING = '使用できない文字が含まれています';\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"exam-header-timer\"},[_c('p',[_vm._v(\" 残り \"),_c('span',{class:{ 'color-alert': _vm.isNotification }},[_vm._v(_vm._s(_vm.min)+\":\"+_vm._s(_vm.secFormat(_vm.sec)))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport {\n Component, Prop, Watch, Vue,\n} from 'vue-property-decorator';\nimport { warn } from 'vue-class-component/lib/util';\n\n@Component\nexport default class ExamTimer extends Vue {\n @Prop({ default: 0 })\n time: number;\n\n @Prop({ default: 0 })\n notificationSec: number;\n\n @Prop({ default: false })\n timerStart: boolean;\n\n @Watch('timerStart')\n switch() {\n if (this.timerStart) {\n this.start();\n return;\n }\n this.stop();\n }\n\n /**\n * 分\n */\n min = 0 ;\n\n /**\n * 秒\n */\n sec = 0;\n\n /**\n * 制限時間強調フラグ\n */\n isNotification = false;\n\n /**\n * 実行中タイマー\n */\n timer: number;\n\n start() {\n clearInterval(this.timer);\n if (this.time > 0) {\n this.min = Math.trunc(this.time / 60);\n this.sec = this.time % 60;\n this.timer = window.setInterval(this.countDown, 1000);\n } else {\n this.$emit('forceEnd');\n }\n }\n\n stop() {\n clearInterval(this.timer);\n this.$emit('end');\n }\n\n countDown() {\n if (this.min === 0 && this.sec === 0) {\n this.stop();\n return;\n }\n\n if (this.sec === 0) {\n this.min -= 1;\n this.sec = 59;\n } else {\n this.sec -= 1;\n }\n\n const notificationMin = this.notificationSec / 60;\n if ((this.min === notificationMin && this.sec === 0)\n || this.min < notificationMin) {\n this.isNotification = true;\n }\n }\n\n secFormat = (sec: number) => {\n const strSec = `00${sec}`;\n return strSec.substring(strSec.length - 2, strSec.length);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamTimer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamTimer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExamTimer.vue?vue&type=template&id=6eb2f782&\"\nimport script from \"./ExamTimer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExamTimer.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 { JsonObject, JsonProperty } from 'json2typescript';\n\n@JsonObject('Answer')\nexport default class Answer {\n constructor() {\n this.questionCode = undefined;\n this.version = undefined;\n this.order = undefined;\n this.choiceCodes = [];\n this.answer = '';\n }\n\n @JsonProperty('question_code')\n public questionCode?: string;\n\n @JsonProperty('question_version')\n public version?: number;\n\n @JsonProperty('order')\n public order?: number;\n\n @JsonProperty('choice_codes', [String])\n public choiceCodes: string[];\n\n @JsonProperty('answer', null, true)\n public answer: string;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"test-exam-wrapper\",attrs:{\"id\":\"wrapper\"}},[_c('main',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isReady),expression:\"isReady\"}]},[_c('article',[_c('div',{staticClass:\"exam-header bg-base border-ex\"},[_c('e-timer',{attrs:{\"time\":_vm.timerSec,\"notificationSec\":_vm.notificationSec,\"timerStart\":_vm.isTimerStart},on:{\"end\":_vm.examEnd}}),_c('div',{staticClass:\"exam-header-menu\"},[_c('a',{staticClass:\"btn back\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.moveCurrent(-1)}}},[_c('span',[_vm._v(\"前の問題\")])]),_c('div',{staticClass:\"exam-header-progress\"},[_c('span',[_vm._v(_vm._s(_vm.current.questionNumber)+\"/\"+_vm._s(_vm.questions.length))]),_vm._v(\"問中 \")]),_c('a',{staticClass:\"btn\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.moveCurrent(1)}}},[_c('span',[_vm._v(\"次の問題\")])])])],1),_c('section',{staticClass:\"exam-section\"},[_c('div',{staticClass:\"contents-body full\"},[_c('div',{staticClass:\"exam-wrapper\"},[_c('div',{staticClass:\"exam-list\"},[_c('dl',{staticClass:\"border-ex\"},[_c('dt',[_vm._v(\"問題一覧\")]),_c('dd',[_c('ul',_vm._l((_vm.questions),function(q,index){return _c('li',{key:index,class:{ current: q.questionNumber === _vm.current.questionNumber, check: q.isBookMark, on: q.isAnswer() }},[_c('a',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.setCurrent(q)}}},[_vm._v(_vm._s(q.questionNumber))])])}),0)]),_vm._m(0)])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.current),expression:\"current\"}],staticClass:\"exam-main\"},[_c('p',{staticClass:\"exam-title border-ex\"},[_vm._v(\"第 \"+_vm._s(_vm.current.questionNumber)+\" 問 \"+_vm._s(_vm.current.questionTitle))]),_c('p',{staticClass:\"exam-text\",domProps:{\"innerHTML\":_vm._s(_vm.current.questionStatement)}}),_c('div',{staticClass:\"exam-pic\"},[(_vm.getVideoInfo())?_c('video',{staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"video\",\"src\":_vm.getVideoInfo().localSrcUri,\"type\":_vm.getVideoInfo().contentType,\"controls\":\"\",\"controlslist\":\"nodownload\",\"preload\":\"\",\"disablepictureinpicture\":\"\",\"playsinline\":\"\"}},[_c('p',[_vm._v(\"映像を再生するには、videoタグをサポートしたブラウザが必要です。\")])]):_vm._e(),(_vm.getAudioInfo())?_c('audio',{staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"audio\",\"src\":_vm.getAudioInfo().localSrcUri,\"type\":_vm.getAudioInfo().contentType,\"controls\":\"\",\"controlslist\":\"nodownload\",\"preload\":\"\"}},[_c('p',[_vm._v(\"音声を再生するには、audioタグをサポートしたブラウザが必要です。\")])]):_vm._e()]),_vm._l((_vm.current.subQuestions),function(subQ,subQIdx){return _c('div',{key:subQIdx},[_c('p',{staticClass:\"exam-text\",domProps:{\"innerHTML\":_vm._s(subQ.subQuestionTitle)}}),(subQ.subQuestionType === 'choice')?_c('e-radio',{attrs:{\"choices\":subQ.choices,\"choiceCodes\":subQ.answer.choiceCodes},on:{\"update:choiceCodes\":function($event){return _vm.$set(subQ.answer, \"choiceCodes\", $event)},\"update:choice-codes\":function($event){return _vm.$set(subQ.answer, \"choiceCodes\", $event)}}}):_vm._e(),(subQ.subQuestionType === 'multiple')?_c('e-checkBox',{attrs:{\"choices\":subQ.choices,\"choiceCodes\":subQ.answer.choiceCodes},on:{\"update:choiceCodes\":function($event){return _vm.$set(subQ.answer, \"choiceCodes\", $event)},\"update:choice-codes\":function($event){return _vm.$set(subQ.answer, \"choiceCodes\", $event)}}}):_vm._e(),(subQ.subQuestionType === 'dropdown')?_c('e-select',{attrs:{\"choices\":subQ.choices,\"choiceCodes\":subQ.answer.choiceCodes},on:{\"update:choiceCodes\":function($event){return _vm.$set(subQ.answer, \"choiceCodes\", $event)},\"update:choice-codes\":function($event){return _vm.$set(subQ.answer, \"choiceCodes\", $event)}}}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(subQ.subQuestionType === 'describe'),expression:\"subQ.subQuestionType === 'describe'\"}],staticClass:\"exam-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(subQ.answer.answer),expression:\"subQ.answer.answer\"}],attrs:{\"type\":\"text\",\"placeholder\":\"解答を入力\",\"maxlength\":\"1000\"},domProps:{\"value\":(subQ.answer.answer)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(subQ.answer, \"answer\", $event.target.value)}}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(subQ.subQuestionType === 'area'),expression:\"subQ.subQuestionType === 'area'\"}],staticClass:\"exam-textarea\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(subQ.answer.answer),expression:\"subQ.answer.answer\"}],attrs:{\"name\":\"\",\"id\":\"\",\"cols\":\"30\",\"rows\":\"10\",\"placeholder\":\"解答を入力\",\"maxlength\":\"1000\"},domProps:{\"value\":(subQ.answer.answer)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(subQ.answer, \"answer\", $event.target.value)}}})])],1)}),_c('div',{staticClass:\"exam-check\"},[_c('a',{staticClass:\"btn\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":_vm.bookMark}},[_c('span',[_vm._v(\"あとで見直す\")])])]),_c('div',{staticClass:\"exam-pager\"},[_c('a',{staticClass:\"btn back\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.moveCurrent(-1)}}},[_c('span',[_vm._v(\"前の問題\")])]),_c('div',{staticClass:\"exam-pager-progress\"},[_c('span',[_vm._v(_vm._s(_vm.current.questionNumber)+\"/\"+_vm._s(_vm.questions.length))]),_vm._v(\"問中 \")]),_c('a',{staticClass:\"btn\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.moveCurrent(1)}}},[_c('span',[_vm._v(\"次の問題\")])])])],2)])])]),_c('div',{staticClass:\"exam-footer\"},[_vm._m(1),_c('a',{staticClass:\"btn-strong modal-open\",class:{disable: !_vm.answeredAllQuestions},attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){_vm.isEndConfirm = true}}},[_c('span',[_vm._v(\"クイズを終了する\")])]),_c('p',[_vm._v(_vm._s(_vm.copyright))])])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isExamStart),expression:\"!isExamStart\"}],staticClass:\"modal\",attrs:{\"id\":\"modal-load\"}},[_c('div',{staticClass:\"modal-bg\"}),_c('div',{staticClass:\"modal-contents\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isReady),expression:\"isReady\"}],staticClass:\"modal-contents-body\"},[_c('p',{staticClass:\"modal-title\"},[_vm._v(\"ロードが完了しました\")]),_c('p',{staticClass:\"modal-text\"},[_vm._v(\"下記のボタンからクイズを開始してください\")]),_c('a',{staticClass:\"btn-strong modal-close\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":_vm.examStart}},[_c('span',[_vm._v(\"クイズを開始\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isReady),expression:\"!isReady\"}],staticClass:\"modal-contents-body\"},[_c('p',{staticClass:\"modal-title\"},[_vm._v(\"問題をロード中です\")]),_c('p',{staticClass:\"modal-text\"},[_vm._v(\"このままお待ちください\")]),_c('div',{staticClass:\"exam-load-progress\"},[_c('p',{staticClass:\"color-ex\"},[_c('span',[_vm._v(_vm._s(_vm.progressPercent))]),_vm._v(\"% \")]),_c('div',{staticClass:\"exam-load-progress-bar\"},[_c('div',{staticClass:\"bg-ex\",style:(_vm.progress)})])])])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isEndConfirm),expression:\"isEndConfirm\"}],staticClass:\"modal\",attrs:{\"id\":\"modal-end\"}},[_c('div',{staticClass:\"modal-bg\"}),_c('div',{staticClass:\"modal-contents\"},[_c('div',{staticClass:\"modal-contents-body\"},[_c('p',{staticClass:\"modal-title\"},[_vm._v(\"本当に終了しますか?\")]),_c('p',{staticClass:\"modal-text\"},[_vm._v(\"一度クイズを終了すると、再開することはできません。\")]),_c('a',{staticClass:\"btn modal-close\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){_vm.isEndConfirm = false}}},[_c('span',[_vm._v(\"キャンセル\")])]),_c('a',{staticClass:\"btn-strong\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.examEnd}},[_c('span',[_vm._v(\"終了する\")])])])])]),_c('e-indicator',{staticStyle:{\"z-index\":\"5000\",\"position\":\"fixed\"},attrs:{\"display\":_vm.isIndicatorDisplay}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"btn\",attrs:{\"href\":\"javascript:void(0);\"}},[_c('span',[_vm._v(\"閉じる\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"btn btn-exam-list\",attrs:{\"href\":\"javascript:void(0);\"}},[_c('span',[_vm._v(\"問題一覧\")])])}]\n\nexport { render, staticRenderFns }","import { JsonObject, JsonProperty } from 'json2typescript';\n\n/**\n * 体験版 問題選択肢クラス\n */\n@JsonObject('TrialChoice')\nexport default class TrialChoice {\n constructor() {\n this.choiceCode = '';\n this.choiceTitle = '';\n this.collectType = '';\n this.order = 0;\n }\n\n @JsonProperty('choice_code')\n public choiceCode: string;\n\n @JsonProperty('choice_title')\n public choiceTitle: string;\n\n @JsonProperty('collect_type')\n public collectType: string;\n\n @JsonProperty('order')\n public order: number;\n}\n","import { JsonObject, JsonProperty } from 'json2typescript';\nimport { isEmpty } from '@/common/StringUtil';\nimport TrialChoice from '@/models/entry/TrialChoice';\nimport Answer from './Answer';\n\n/**\n * 体験版 設問クラス\n */\n@JsonObject('TrialSubQuestion')\nexport default class TrialSubQuestion {\n constructor() {\n this.questionCode = '';\n this.version = 0;\n this.subQuestionTitle = '';\n this.subQuestionType = '';\n this.order = 0;\n this.choices = [];\n this.answer = new Answer();\n }\n\n @JsonProperty('question_code')\n public questionCode: string;\n\n @JsonProperty('question_version')\n public version: number;\n\n @JsonProperty('sub_question_title')\n public subQuestionTitle: string;\n\n @JsonProperty('sub_question_type')\n public subQuestionType: string;\n\n @JsonProperty('order')\n public order: number;\n\n @JsonProperty('choices', [TrialChoice], true)\n public choices: TrialChoice[];\n\n public answer: Answer;\n\n isAnswer() {\n return this.answer.choiceCodes.length > 0 || !isEmpty(this.answer.answer);\n }\n}\n","import { JsonObject, JsonProperty } from 'json2typescript';\nimport TrialSubQuestion from '@/models/entry/TrialSubQuestion';\nimport QuestionResources from '@/models/entry/QuestionResources';\n\n/**\n * 体験版 問題クラス\n */\n@JsonObject('TrialQuestion')\nexport default class TrialQuestion {\n constructor() {\n this.questionCode = '';\n this.questionTitle = '';\n this.questionStatement = '';\n this.answerType = '';\n this.isFixed = false;\n this.subQuestions = [];\n this.questionResources = [];\n this.questionNumber = 0;\n this.isBookMark = false;\n }\n\n @JsonProperty('question_code')\n public questionCode: string;\n\n @JsonProperty('question_title')\n public questionTitle: string;\n\n @JsonProperty('question_statement')\n public questionStatement: string;\n\n @JsonProperty('answer_type')\n public answerType: string;\n\n @JsonProperty('is_fixed')\n public isFixed: boolean;\n\n @JsonProperty('sub_questions', [TrialSubQuestion], true)\n public subQuestions: TrialSubQuestion[];\n\n @JsonProperty('question_resources', [QuestionResources], true)\n public questionResources: QuestionResources[];\n\n /**\n * 問題番号\n */\n public questionNumber: number;\n\n /**\n * ブックマークフラグ\n */\n public isBookMark: boolean;\n\n isAnswer() {\n // 設問すべての解答データ有無をチェックし1個でもない場合未回答とする\n for (let i = 0; i < this.subQuestions.length; i += 1) {\n if (!this.subQuestions[i].isAnswer()) {\n return false;\n }\n }\n return true;\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\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\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\nimport { Component, Watch } from 'vue-property-decorator';\nimport axios from 'axios';\nimport * as StringUtil from '@/common/StringUtil';\nimport MarkdownToHTML from '@/common/MarkdownToHTML';\nimport RepositoryFactory from '@/repository/RepositoryFactory';\nimport BaseView from '@/views/BaseView.vue';\nimport TrialQuestion from '@/models/entry/TrialQuestion';\nimport QuestionResources from '@/models/entry/QuestionResources';\n\nimport * as Msgs from '@/common/Messages';\n\nimport ExamRadio from '@/components/ExamRadio.vue';\nimport ExamCheckBox from '@/components/ExamCheckBox.vue';\nimport ExamSelect from '@/components/ExamSelect.vue';\nimport ExamTimer from '@/components/ExamTimer.vue';\nimport IndicatorModal from '@/components/IndicatorModal.vue';\nimport * as DesignCode from '@/classification/DesignCode';\n\n/**\n * リソースダウンロード情報まとめ\n */\ninterface DownloadInfo {\n uri: string;\n question: TrialQuestion;\n resource: QuestionResources;\n}\n\n/**\n * video、audioのロード\n */\ninterface ControlsFunction {\n load: () => void;\n}\n\n@Component({\n components: {\n 'e-radio': ExamRadio,\n 'e-checkBox': ExamCheckBox,\n 'e-select': ExamSelect,\n 'e-timer': ExamTimer,\n 'e-indicator': IndicatorModal,\n },\n})\nexport default class Exam extends BaseView {\n /**\n * コピーライト\n */\n copyright = '';\n\n /**\n * 制限時間\n */\n timerSec = 0;\n\n /**\n * 通知時間\n */\n notificationSec = 0;\n\n /**\n * 問題情報格納用\n */\n questions: TrialQuestion[] = [];\n\n /**\n * 現在表示中の問題格納用\n */\n current = new TrialQuestion();\n\n /**\n * 試験開始準備完了フラグ\n */\n isReady = false;\n\n /**\n * 試験開始フラグ\n */\n isExamStart = false;\n\n /**\n * タイマー起動フラグ\n */\n isTimerStart = false;\n\n /**\n * 試験終了確認モーダル表示フラグ\n */\n isEndConfirm = false;\n\n /**\n * インジケーターフラグ\n */\n isIndicatorDisplay = false;\n\n progressPercent = 0;\n\n /**\n * 解答データ、リソースデータのダウンロード総数保存用\n */\n totalDownloadDataCount = 0;\n\n /**\n * 現在ダウンロード完了している個数カウント\n */\n nowLoadingCount = 0;\n\n EntryRepo = RepositoryFactory.get().entry;\n\n RankRepo = RepositoryFactory.get().rank;\n\n retryMsg = 'に失敗しました。\\n再実行しますか?\\n※何度も発生する場合はお問合せページよりご連絡ください。';\n\n @Watch('current')\n contentsReload() {\n if (this.getVideoInfo()) {\n this.$nextTick(() => {\n const videoTag = document.getElementById('video') as HTMLElement & ControlsFunction;\n if (videoTag) {\n videoTag.load();\n }\n });\n }\n\n if (this.getAudioInfo()) {\n this.$nextTick(() => {\n const audioTag = document.getElementById('audio') as HTMLElement & ControlsFunction;\n if (audioTag) {\n audioTag.load();\n }\n });\n }\n }\n\n async mounted() {\n document.addEventListener('contextmenu', () => false);\n\n await this.getCopyright();\n\n const CommonCss = document.createElement('link');\n CommonCss.rel = 'stylesheet';\n CommonCss.href = '/css/common.css';\n this.$el.appendChild(CommonCss);\n\n const ExamIndexCss = document.createElement('link');\n ExamIndexCss.rel = 'stylesheet';\n ExamIndexCss.href = '/exam/css/index.css';\n this.$el.appendChild(ExamIndexCss);\n\n this.getExamConfigCss().then((cssElement: HTMLLinkElement) => {\n this.$el.appendChild(cssElement);\n });\n\n const CommonJs = document.createElement('script');\n CommonJs.src = '/js/common.js';\n this.$el.appendChild(CommonJs);\n\n const ExamIndexJs = document.createElement('script');\n ExamIndexJs.src = '/exam/js/index.js';\n this.$el.appendChild(ExamIndexJs);\n\n try {\n // 体験版ランク情報取得\n await this.getTestExam();\n // 検定問題検索\n await this.getQuestions();\n // リソース取得\n await this.resourceDownLoad();\n\n // 問題配列1番目を初期表示\n const [firstData] = this.questions;\n this.current = firstData;\n\n // 試験開始準備完了\n this.isReady = true;\n } catch (e) {\n this.$router.replace(this.paths.TOP);\n }\n }\n\n /* eslint-disable class-methods-use-this */\n beforeDestroy() {\n document.addEventListener('contextmenu', () => true);\n }\n\n /**\n * 体験版ランク情報取得\n */\n private async getTestExam() {\n const encodeRankCode = StringUtil.encodeToBase64Url('TRIAL');\n try {\n await this.RankRepo.getRankInfo(encodeRankCode).then((response) => {\n if (response.status === 200) {\n try {\n this.timerSec = response.data.time_limit * 60;\n this.notificationSec = response.data.notification_limit * 60;\n } catch (e) {\n throw Error(Msgs.INVALID_RESPONSE);\n }\n }\n }).catch(() => {\n this.$router.replace(this.paths.TOP);\n });\n } catch (_) {\n this.$router.replace(this.paths.TOP);\n }\n }\n\n /**\n * 問題情報取得\n */\n async getQuestions() {\n let rejected = false;\n await this.RankRepo.getTrialQuestions()\n .then((response) => {\n this.questions = this.RankRepo.convert.deserializeArray(response.data.questions, TrialQuestion);\n\n if (this.questions.length > 0) {\n this.questions.forEach((q, index) => {\n const question = q;\n // 出題順番号付与\n question.questionNumber = index + 1;\n // 問題文のMarkdownパース\n question.questionStatement = MarkdownToHTML(question.questionStatement);\n question.subQuestions.forEach((subQuestion) => {\n const subQ = subQuestion;\n // 設問タイトルのMarkdownパース\n subQ.subQuestionTitle = MarkdownToHTML(subQ.subQuestionTitle);\n // 取得された設問情報を解答情報にセット\n subQ.answer.questionCode = subQ.questionCode;\n subQ.answer.version = subQ.version;\n subQ.answer.order = subQ.order;\n subQ.choices.forEach((choice) => {\n // 設問選択肢のMarkdownパース\n const c = choice;\n c.choiceTitle = MarkdownToHTML(c.choiceTitle);\n });\n });\n });\n } else {\n rejected = true;\n }\n }).catch(() => {\n rejected = true;\n });\n\n // エラー時の再実行確認\n if (rejected) {\n // eslint-disable-next-line no-alert\n if (window.confirm(`問題の取得${this.retryMsg}`)) {\n await this.getQuestions();\n } else {\n this.$router.replace(this.paths.TOP);\n }\n }\n }\n\n /**\n * コピーライト文言取得\n */\n async getCopyright() {\n const ExamRepository = RepositoryFactory.get().exam;\n ExamRepository.getExamDesignResource(DesignCode.COPY_RIGHT).then((response) => {\n if (response.status === 200 && response.data !== undefined) {\n this.copyright = response.data.display_text;\n }\n });\n }\n\n /**\n * 問題リソースダウンロード\n */\n async resourceDownLoad() {\n // 取得失敗時の情報保持用配列\n const downloadInfo: DownloadInfo[] = [];\n this.questions.forEach((questionValue, index) => {\n const question = questionValue;\n question.questionNumber = index + 1;\n question.questionResources.forEach((resourceData) => {\n this.totalDownloadDataCount += 1;\n const resource = resourceData;\n const uri = `${process.env.VUE_APP_DESIGN_RESOURCE_BASE}${resource.resourceUri}`;\n downloadInfo.push({ uri, question, resource });\n });\n });\n this.totalDownloadDataCount = downloadInfo.length;\n // ダウンロード実行\n await this.execDownload(downloadInfo);\n }\n\n /**\n * ダウンロード実行処理(再帰呼び出し対応)\n */\n async execDownload(downloadInfo: DownloadInfo[]) {\n const rejectInfo: DownloadInfo[] = [];\n const results: Promise[] = [];\n\n // ダウンロード処理生成\n downloadInfo.forEach((info) => {\n results.push(this.createDownLoadPromise(info).catch(() => {\n rejectInfo.push(info);\n }));\n });\n\n // 一括実行\n await Promise.all(results);\n\n // エラー時の再実行確認\n if (rejectInfo.length !== 0) {\n // eslint-disable-next-line no-alert\n if (window.confirm(`問題の取得${this.retryMsg}`)) {\n this.execDownload(rejectInfo);\n } else {\n this.$router.replace(this.paths.TOP);\n }\n }\n }\n\n /**\n * リソースダウンロード処理Promise生成\n */\n createDownLoadPromise(downloadInfo: DownloadInfo) {\n const { uri, question, resource } = downloadInfo;\n // arraybuffer オプション必須\n return axios.get(uri, { responseType: 'arraybuffer' })\n .then((response) => {\n const contentType = response.headers['content-type'].split(';')[0];\n const blob = new Blob([response.data], { type: contentType });\n const srcUrl = URL.createObjectURL(blob);\n // ダウンロードされたファイルの実体を保持\n resource.contents = blob;\n resource.contentType = contentType;\n resource.localSrcUri = srcUrl;\n\n // 画像の場合、各所の対応する独自タグを置換\n if (contentType.indexOf('image') !== -1) {\n const replaceTag = `{{${resource.resourceFileName}}}`;\n const imgTagString = `\"${resource.alternativeText}\"`;\n // 問題本文\n question.questionStatement = question.questionStatement.replace(replaceTag, imgTagString);\n\n const { subQuestions } = question;\n subQuestions.forEach((subQ) => {\n const targetSubq = subQ;\n // 設問タイトル\n targetSubq.subQuestionTitle = targetSubq.subQuestionTitle.replace(replaceTag, imgTagString);\n targetSubq.choices.forEach((choice) => {\n const targetChoice = choice;\n // 問題選択肢\n targetChoice.choiceTitle = targetChoice.choiceTitle.replace(replaceTag, imgTagString);\n });\n });\n }\n\n // プログレスバー計算\n this.nowLoadingCount += 1;\n this.progressPercent = Math.round((this.nowLoadingCount / this.totalDownloadDataCount) * 100);\n });\n }\n\n /**\n * 試験開始\n */\n async examStart() {\n this.isExamStart = true;\n this.isTimerStart = true;\n }\n\n /**\n * 解答終了\n * ※採点対象は選択形式の設問のみ\n * 入力形式は運用上設定しない想定。万が一設定されていた場合、正答率の算出に影響しない\n */\n async examEnd() {\n this.isIndicatorDisplay = true;\n\n let correctCount = 0;\n\n // 選択形式の設問(subQuestion)を含む問題(question)のみ対象とする\n // eslint-disable-next-line arrow-body-style\n const targetQuestions = this.questions.filter((question) => {\n return question.subQuestions.some((sub) => (sub.choices.length > 0));\n });\n\n targetQuestions.forEach((question, idx) => {\n let subCorrectCount = 0;\n\n // 選択形式の設問のみの配列を生成\n const selectTypeQuestions = question.subQuestions.filter((sub) => (sub.choices.length > 0));\n selectTypeQuestions.forEach((subQ) => {\n // 選択肢から正答のみ抜き出し→正答のコードの配列を生成\n const correctAnswers = subQ.choices.filter((choice) => (choice.collectType === 'collect' || choice.collectType === 'correct')).map((choice) => choice.choiceCode);\n // 入力された解答配列\n const inputAnswers = subQ.answer.choiceCodes;\n\n // 正答数と解答数が一致しない場合NG\n if (correctAnswers.length !== inputAnswers.length) return;\n\n // 入力選択肢と正答選択肢の中身が一致する(=差分が発生しない)場合のみOK\n const diff = correctAnswers.filter((i) => inputAnswers.indexOf(i) === -1);\n if (diff.length === 0) {\n subCorrectCount += 1;\n }\n });\n\n // 選択形式すべて正解の場合のみ、正答として扱う\n if (selectTypeQuestions.length === subCorrectCount) {\n correctCount += 1;\n }\n });\n\n // 対象の問題数と正解数で正答率を算出\n const correctRate = Math.trunc((correctCount / targetQuestions.length) * 100);\n this.$router.replace({ path: this.paths.TEST_EXAM_FINISH, query: { rate: String(correctRate) } });\n }\n\n /**\n * 後で見直す押下時\n */\n bookMark() {\n this.current.isBookMark = !this.current.isBookMark;\n }\n\n /**\n * 次へ/前へ\n */\n moveCurrent(vector: number) {\n const nextIndex = this.current.questionNumber - 1 + vector;\n const next = this.questions[nextIndex];\n\n if (next) {\n this.setCurrent(next);\n }\n }\n\n /**\n * 選択中問題のセット\n */\n setCurrent(question: TrialQuestion) {\n this.current = question;\n }\n\n /**\n * content-type に該当するリソースURIを返す\n */\n getResourceInfo(type: string) {\n const resource = this.current.questionResources.find((value) => {\n if (!StringUtil.isEmpty(value.contentType)) {\n const contentsType = value.contentType;\n if (contentsType.indexOf(type) !== -1) return true;\n }\n return false;\n });\n\n if (resource) {\n const { localSrcUri, contentType } = resource;\n return { localSrcUri, contentType };\n }\n return null;\n }\n\n /**\n * 動画リソース情報取得\n */\n getVideoInfo() {\n return this.getResourceInfo('video');\n }\n\n /**\n * 音声リソース情報取得\n */\n getAudioInfo() {\n return this.getResourceInfo('audio');\n }\n\n /**\n * ロード中プログレスバーstyle\n */\n get progress() {\n return { width: `${this.progressPercent}%` };\n }\n\n /**\n * 全問題に回答したか否か\n */\n get answeredAllQuestions(): boolean {\n return this.questions.every((question) => question.isAnswer());\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/ts-loader/index.js??ref--13-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestExam.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/ts-loader/index.js??ref--13-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestExam.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TestExam.vue?vue&type=template&id=74cc31fe&\"\nimport script from \"./TestExam.vue?vue&type=script&lang=ts&\"\nexport * from \"./TestExam.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',{staticClass:\"exam-radio\"},[_c('ul',_vm._l((_vm.choices),function(choice,choiceIdx){return _c('li',{key:choiceIdx,class:{ 'on': _vm.isSelectedCheck(choice.choiceCode) },on:{\"click\":function($event){return _vm.select(choice.choiceCode)}}},[_c('div',[_c('p',[_c('span',{domProps:{\"innerHTML\":_vm._s(choice.choiceTitle)}})])])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component, Prop, PropSync, Watch, Vue,\n} from 'vue-property-decorator';\nimport Choice from '@/models/entry/Choice';\n\n@Component\nexport default class ExamRadio extends Vue {\n @Prop()\n private choices: Choice[];\n\n @PropSync('choiceCodes', { type: Array })\n private answer: string[];\n\n isSelectedCheck(code: string) {\n return !!this.answer.find((selectedCode) => selectedCode === code);\n }\n\n select(code: string) {\n this.answer.length = 0;\n this.answer.push(code);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamRadio.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamRadio.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExamRadio.vue?vue&type=template&id=4c1ca776&\"\nimport script from \"./ExamRadio.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExamRadio.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',{staticClass:\"exam-select\"},[_c('div',{staticClass:\"select\",class:{ 'on': _vm.isSeletBodyVisible },style:(_vm.selectStyle)},[(_vm.isSeletBodyVisible)?_c('div',{staticClass:\"select-bg\",on:{\"click\":function($event){_vm.isSeletBodyVisible = false}}}):_vm._e(),_c('dl',[_c('dt',{on:{\"click\":function($event){_vm.isSeletBodyVisible = !_vm.isSeletBodyVisible}}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.currentChoice.choiceTitle)}})]),(_vm.isSeletBodyVisible)?_c('dd',{style:(_vm.selectBodyStyle)},[_c('ul',_vm._l((_vm.choices),function(choice,index){return _c('li',{key:index,domProps:{\"innerHTML\":_vm._s(choice.choiceTitle)},on:{\"click\":function($event){return _vm.select(choice)}}})}),0)]):_vm._e()])])])}\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\nimport {\n Component, Prop, PropSync, Watch, Vue,\n} from 'vue-property-decorator';\nimport Choice from '@/models/entry/Choice';\n\n@Component\nexport default class ExamRadio extends Vue {\n @Prop()\n private choices: Choice[];\n\n @PropSync('choiceCodes')\n private answer: string[];\n\n private currentChoice: Choice = new Choice();\n\n // UI制御フラグ\n private isSeletBodyVisible = false;\n\n mounted() {\n this.init();\n }\n\n @Watch('answer', { deep: true })\n init() {\n if (this.answer.length > 0) {\n const code = this.answer[0];\n const selectChoice = this.choices.find((choice) => choice.choiceCode === code) as Choice;\n this.currentChoice = selectChoice;\n return;\n }\n this.currentChoice = new Choice();\n }\n\n isSelectedCheck(code: string) {\n return !!this.answer.find((selectedCode) => selectedCode === code);\n }\n\n select(code: Choice) {\n this.answer.length = 0;\n this.answer.push(code.choiceCode);\n this.currentChoice = code;\n this.isSeletBodyVisible = false;\n }\n\n get selectStyle() {\n if (this.isSeletBodyVisible) {\n return { 'z-index': 500 };\n }\n return {};\n }\n\n get selectBodyStyle() {\n if (this.isSeletBodyVisible) {\n return { display: 'block', top: '63px' };\n }\n return {};\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExamSelect.vue?vue&type=template&id=59a6a128&\"\nimport script from \"./ExamSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExamSelect.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":""}