@elice/material-video-assessment 1.260527.1 → 1.260529.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/material-video-assessment/MaterialVideoAssessment.d.ts +17 -0
- package/cjs/components/material-video-assessment/MaterialVideoAssessment.js +1 -0
- package/cjs/components/material-video-assessment/MaterialVideoAssessmentContent.d.ts +2 -0
- package/cjs/components/material-video-assessment/MaterialVideoAssessmentContent.js +3 -1
- package/cjs/components/material-video-assessment/locales/en.json.js +1 -1
- package/cjs/components/material-video-assessment/locales/ja.json.js +1 -1
- package/cjs/components/material-video-assessment/locales/ko.json.js +1 -1
- package/cjs/components/material-video-assessment/locales/th.json.js +1 -1
- package/cjs/components/material-video-assessment/step/submitted/StepSubmitted.d.ts +6 -1
- package/cjs/components/material-video-assessment/step/submitted/StepSubmitted.js +7 -7
- package/cjs/hooks/useMaterialVideoAssessmentLastResponse.js +0 -1
- package/es/components/material-video-assessment/MaterialVideoAssessment.d.ts +17 -0
- package/es/components/material-video-assessment/MaterialVideoAssessment.js +1 -0
- package/es/components/material-video-assessment/MaterialVideoAssessmentContent.d.ts +2 -0
- package/es/components/material-video-assessment/MaterialVideoAssessmentContent.js +3 -1
- package/es/components/material-video-assessment/locales/en.json.js +1 -1
- package/es/components/material-video-assessment/locales/ja.json.js +1 -1
- package/es/components/material-video-assessment/locales/ko.json.js +1 -1
- package/es/components/material-video-assessment/locales/th.json.js +1 -1
- package/es/components/material-video-assessment/step/submitted/StepSubmitted.d.ts +6 -1
- package/es/components/material-video-assessment/step/submitted/StepSubmitted.js +7 -7
- package/es/hooks/useMaterialVideoAssessmentLastResponse.js +0 -1
- package/package.json +6 -6
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import type { ButtonProps } from '@mui/material';
|
|
1
2
|
import type React from 'react';
|
|
2
3
|
import type { MaterialVideoAssessmentAdapters } from './adapters';
|
|
3
4
|
import type { MaterialVideoAssessmentAdminContentProps } from './admin';
|
|
4
5
|
import type { VideoAssessmentSubmitResult } from './MaterialVideoAssessmentContent';
|
|
6
|
+
export interface MaterialVideoAssessmentSlotProps {
|
|
7
|
+
/**
|
|
8
|
+
* Props forwarded to the "다음" button on the submitted view.
|
|
9
|
+
* When omitted, the next button is not rendered. Pass at least `{}` to render
|
|
10
|
+
* with library defaults, or supply `onClick`/`disabled`/etc. to control behavior.
|
|
11
|
+
*/
|
|
12
|
+
nextButton?: ButtonProps;
|
|
13
|
+
}
|
|
5
14
|
interface BaseProps {
|
|
6
15
|
className?: string;
|
|
7
16
|
materialVideoAssessmentId: number;
|
|
@@ -27,6 +36,14 @@ export interface MaterialVideoAssessmentViewProps extends BaseProps {
|
|
|
27
36
|
* `{ status: 'failure', error }` carrying the original error for Sentry logging.
|
|
28
37
|
*/
|
|
29
38
|
onSubmit?: (result: VideoAssessmentSubmitResult) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Slot props for internal sub-components. Currently exposes the submitted-view
|
|
41
|
+
* "다음" button so hosts can wire `onClick`, `disabled`, `loading`, etc.
|
|
42
|
+
*
|
|
43
|
+
* Hosts that embed this material in a subject/test flow (테스트 과목 / 일반 과목)
|
|
44
|
+
* should pass `slotProps.nextButton` to advance to the next item.
|
|
45
|
+
*/
|
|
46
|
+
slotProps?: MaterialVideoAssessmentSlotProps;
|
|
30
47
|
}
|
|
31
48
|
export interface MaterialVideoAssessmentAdminProps extends BaseProps {
|
|
32
49
|
isTutoring: true;
|
|
@@ -57,6 +57,7 @@ var MaterialVideoAssessment = function MaterialVideoAssessment(props) {
|
|
|
57
57
|
children: jsxRuntime.jsx(MaterialVideoAssessmentContent.default, {
|
|
58
58
|
materialVideoAssessmentId: props.materialVideoAssessmentId,
|
|
59
59
|
userId: props.userId,
|
|
60
|
+
slotProps: props.slotProps,
|
|
60
61
|
onSubmit: props.onSubmit
|
|
61
62
|
})
|
|
62
63
|
})
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { MaterialVideoAssessmentSlotProps } from './MaterialVideoAssessment';
|
|
2
3
|
export type RecordingErrorReason = 'no_recording' | 'file_upload_fail';
|
|
3
4
|
export type VideoAssessmentFunnelStepMap = {
|
|
4
5
|
loading: Record<string, never>;
|
|
@@ -18,6 +19,7 @@ export interface MaterialVideoAssessmentContentProps {
|
|
|
18
19
|
materialVideoAssessmentId: number;
|
|
19
20
|
userId: number;
|
|
20
21
|
onSubmit?: (result: VideoAssessmentSubmitResult) => void;
|
|
22
|
+
slotProps?: MaterialVideoAssessmentSlotProps;
|
|
21
23
|
}
|
|
22
24
|
declare const MaterialVideoAssessmentContent: React.FC<MaterialVideoAssessmentContentProps>;
|
|
23
25
|
export default MaterialVideoAssessmentContent;
|
|
@@ -36,7 +36,8 @@ var RECORDING_ERROR_REASON_MAP = Object.freeze({
|
|
|
36
36
|
var MaterialVideoAssessmentContent = function MaterialVideoAssessmentContent(_ref) {
|
|
37
37
|
var materialVideoAssessmentId = _ref.materialVideoAssessmentId,
|
|
38
38
|
userId = _ref.userId,
|
|
39
|
-
onSubmit = _ref.onSubmit
|
|
39
|
+
onSubmit = _ref.onSubmit,
|
|
40
|
+
slotProps = _ref.slotProps;
|
|
40
41
|
var _a, _b, _c, _d;
|
|
41
42
|
var queryClient = reactQuery.useQueryClient();
|
|
42
43
|
var _useMaterialVideoAsse = MaterialVideoAssessmentContext.useMaterialVideoAssessmentState(),
|
|
@@ -200,6 +201,7 @@ var MaterialVideoAssessmentContent = function MaterialVideoAssessmentContent(_re
|
|
|
200
201
|
case 'submitted':
|
|
201
202
|
return jsxRuntime.jsx(StepSubmitted.default, {
|
|
202
203
|
userId: userId,
|
|
204
|
+
nextButtonProps: slotProps === null || slotProps === void 0 ? void 0 : slotProps.nextButton,
|
|
203
205
|
onReset: function onReset() {
|
|
204
206
|
recorder.reset();
|
|
205
207
|
void funnel.history.push('preparation', {});
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var messageEn = {"video_assessment.status.loading":"Loading video assessment...","video_assessment.status.error":"Error occurred while loading video assessment","video_assessment.preparation.title":"Get ready to record","video_assessment.preparation.cta":"Start answering","video_assessment.preparation.device_label.camera":"Camera","video_assessment.preparation.device_label.audio":"Audio","video_assessment.preparation.timer_label":"Time limit","video_assessment.preparation.bullet_with_limit_1":"Tapping ‘Start answering’ reveals the question and starts the countdown. When the time limit expires, recording stops and your answer is submitted automatically.","video_assessment.preparation.bullet_with_limit_2":"You can submit early by tapping ‘Submit’ before the countdown ends.","video_assessment.preparation.bullet_no_limit_1":"Tapping ‘Start answering’ reveals the question and starts recording.","video_assessment.preparation.bullet_no_limit_2":"When you finish, tap ‘Submit’ to upload your answer. Nothing is saved until you submit.","video_assessment.recording.stop":"Submit","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"Recording","video_assessment.recording.timer_label_with_limit":"Time limit","video_assessment.recording.timer_label_no_limit":"Elapsed time","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"When the time limit expires, you can no longer answer and your response is submitted automatically.","video_assessment.recording.help_text_no_limit":"There is no time limit. When you finish, tap ‘Submit’.","video_assessment.recording.recommendation_exceeded":"Recommended time exceeded","video_assessment.recording.imminent_warning":"Auto-submitting in {seconds}s","video_assessment.recording.auto_submitted":"Auto-submitted on time limit","video_assessment.recording.error.no_recording":"No recorded video found. Please record again.","video_assessment.recording.error.file_upload_fail":"Failed to submit the response video. Please try again.","video_assessment.review.uploading":"Uploading...","video_assessment.review.submit":"Submit","video_assessment.review.retake":"Retake","video_assessment.submitted.title":"Submitted","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"Answer again","video_assessment.submitted.next":"Next
|
|
5
|
+
var messageEn = {"video_assessment.status.loading":"Loading video assessment...","video_assessment.status.error":"Error occurred while loading video assessment","video_assessment.preparation.title":"Get ready to record","video_assessment.preparation.cta":"Start answering","video_assessment.preparation.device_label.camera":"Camera","video_assessment.preparation.device_label.audio":"Audio","video_assessment.preparation.timer_label":"Time limit","video_assessment.preparation.bullet_with_limit_1":"Tapping ‘Start answering’ reveals the question and starts the countdown. When the time limit expires, recording stops and your answer is submitted automatically.","video_assessment.preparation.bullet_with_limit_2":"You can submit early by tapping ‘Submit’ before the countdown ends.","video_assessment.preparation.bullet_no_limit_1":"Tapping ‘Start answering’ reveals the question and starts recording.","video_assessment.preparation.bullet_no_limit_2":"When you finish, tap ‘Submit’ to upload your answer. Nothing is saved until you submit.","video_assessment.recording.stop":"Submit","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"Recording","video_assessment.recording.timer_label_with_limit":"Time limit","video_assessment.recording.timer_label_no_limit":"Elapsed time","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"When the time limit expires, you can no longer answer and your response is submitted automatically.","video_assessment.recording.help_text_no_limit":"There is no time limit. When you finish, tap ‘Submit’.","video_assessment.recording.recommendation_exceeded":"Recommended time exceeded","video_assessment.recording.imminent_warning":"Auto-submitting in {seconds}s","video_assessment.recording.auto_submitted":"Auto-submitted on time limit","video_assessment.recording.error.no_recording":"No recorded video found. Please record again.","video_assessment.recording.error.file_upload_fail":"Failed to submit the response video. Please try again.","video_assessment.review.uploading":"Uploading...","video_assessment.review.submit":"Submit","video_assessment.review.retake":"Retake","video_assessment.submitted.title":"Submitted","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"Answer again","video_assessment.submitted.next":"Next","video_assessment.submitted.label.score":"Score","video_assessment.submitted.label.feedback":"Feedback","video_assessment.submitted.label.time_limit":"Time limit","video_assessment.submitted.label.duration":"Recording length","video_assessment.submitted.label.submitted_at":"Submitted at","video_assessment.submitted.value.score_points":"{score} pts","video_assessment.submitted.value.score_pending":"Score and feedback will be shown after the instructor grades your answer.","video_assessment.submitted.value.score_hidden":"Hidden","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"Camera/microphone permission required","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"Not submitted","video_assessment.admin.status.submitted":"Submitted","video_assessment.admin.status.graded":"Graded","video_assessment.admin.label.status":"Status","video_assessment.admin.label.duration":"Response time","video_assessment.admin.label.score":"Score","video_assessment.admin.label.feedback":"Feedback","video_assessment.admin.label.time_limit":"Time limit","video_assessment.admin.label.response_count":"Submissions","video_assessment.admin.label.submitted_at":"Submitted at","video_assessment.admin.value.score_points":"{score} pts","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"Grade","video_assessment.admin.cta.edit_grade":"Edit grade","video_assessment.admin.grade.title":"Grade","video_assessment.admin.grade.score":"Score","video_assessment.admin.grade.score_helper":"Enter an integer between {min} and {max}.","video_assessment.admin.grade.score_placeholder":"Enter score","video_assessment.admin.grade.feedback":"Feedback","video_assessment.admin.grade.feedback_placeholder":"Enter feedback","video_assessment.admin.grade.cancel":"Cancel","video_assessment.admin.grade.confirm":"Confirm","video_assessment.admin.grade.score.error.required":"Score is required.","video_assessment.admin.grade.score.error.range":"Score must be an integer between {min} and {max}.","video_assessment.admin.grade.feedback.error.max":"Feedback must be at most {max} characters."};
|
|
6
6
|
|
|
7
7
|
exports.default = messageEn;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var ja = {"video_assessment.status.loading":"ビデオ評価を読み込んでいます...","video_assessment.status.error":"ビデオ評価の読み込み中にエラーが発生しました。","video_assessment.preparation.title":"映像評価の準備","video_assessment.preparation.cta":"回答開始","video_assessment.preparation.device_label.camera":"カメラ","video_assessment.preparation.device_label.audio":"オーディオ","video_assessment.preparation.timer_label":"回答制限時間","video_assessment.preparation.bullet_with_limit_1":"「回答開始」を押すと質問が公開され、制限時間のタイマーが開始されます。制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.preparation.bullet_with_limit_2":"制限時間内に「提出」を押すと、事前に提出することもできます。","video_assessment.preparation.bullet_no_limit_1":"「回答開始」を押すと質問が公開され、録画が始まります。","video_assessment.preparation.bullet_no_limit_2":"回答が完了したら「提出」を押して最終提出してください。提出するまで回答は保存されません。","video_assessment.recording.stop":"提出する","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"録画中","video_assessment.recording.timer_label_with_limit":"回答制限時間","video_assessment.recording.timer_label_no_limit":"回答時間","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.recording.help_text_no_limit":"回答時間の制限はありません。終わったら「提出する」を押してください。","video_assessment.recording.recommendation_exceeded":"推奨時間を超過しました","video_assessment.recording.imminent_warning":"{seconds}秒後に自動提出されます","video_assessment.recording.auto_submitted":"制限時間に達したため自動提出されました","video_assessment.recording.error.no_recording":"録画された動画がありません。もう一度録画してください。","video_assessment.recording.error.file_upload_fail":"回答動画の提出に失敗しました。もう一度お試しください。","video_assessment.review.uploading":"アップロード中...","video_assessment.review.submit":"提出","video_assessment.review.retake":"再録画","video_assessment.submitted.title":"提出完了","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"再回答する","video_assessment.submitted.next":"
|
|
5
|
+
var ja = {"video_assessment.status.loading":"ビデオ評価を読み込んでいます...","video_assessment.status.error":"ビデオ評価の読み込み中にエラーが発生しました。","video_assessment.preparation.title":"映像評価の準備","video_assessment.preparation.cta":"回答開始","video_assessment.preparation.device_label.camera":"カメラ","video_assessment.preparation.device_label.audio":"オーディオ","video_assessment.preparation.timer_label":"回答制限時間","video_assessment.preparation.bullet_with_limit_1":"「回答開始」を押すと質問が公開され、制限時間のタイマーが開始されます。制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.preparation.bullet_with_limit_2":"制限時間内に「提出」を押すと、事前に提出することもできます。","video_assessment.preparation.bullet_no_limit_1":"「回答開始」を押すと質問が公開され、録画が始まります。","video_assessment.preparation.bullet_no_limit_2":"回答が完了したら「提出」を押して最終提出してください。提出するまで回答は保存されません。","video_assessment.recording.stop":"提出する","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"録画中","video_assessment.recording.timer_label_with_limit":"回答制限時間","video_assessment.recording.timer_label_no_limit":"回答時間","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.recording.help_text_no_limit":"回答時間の制限はありません。終わったら「提出する」を押してください。","video_assessment.recording.recommendation_exceeded":"推奨時間を超過しました","video_assessment.recording.imminent_warning":"{seconds}秒後に自動提出されます","video_assessment.recording.auto_submitted":"制限時間に達したため自動提出されました","video_assessment.recording.error.no_recording":"録画された動画がありません。もう一度録画してください。","video_assessment.recording.error.file_upload_fail":"回答動画の提出に失敗しました。もう一度お試しください。","video_assessment.review.uploading":"アップロード中...","video_assessment.review.submit":"提出","video_assessment.review.retake":"再録画","video_assessment.submitted.title":"提出完了","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"再回答する","video_assessment.submitted.next":"次へ","video_assessment.submitted.label.score":"点数","video_assessment.submitted.label.feedback":"フィードバック","video_assessment.submitted.label.time_limit":"回答制限時間","video_assessment.submitted.label.duration":"回答時間","video_assessment.submitted.label.submitted_at":"最終提出日時","video_assessment.submitted.value.score_points":"{score}点","video_assessment.submitted.value.score_pending":"点数とフィードバックは先生の採点完了後に表示されます。","video_assessment.submitted.value.score_hidden":"非公開","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"カメラ/マイクの権限が必要です","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"未提出","video_assessment.admin.status.submitted":"提出","video_assessment.admin.status.graded":"採点完了","video_assessment.admin.label.status":"状態","video_assessment.admin.label.duration":"回答時間","video_assessment.admin.label.score":"スコア","video_assessment.admin.label.feedback":"フィードバック","video_assessment.admin.label.time_limit":"回答制限時間","video_assessment.admin.label.response_count":"提出回数","video_assessment.admin.label.submitted_at":"最終提出日時","video_assessment.admin.value.score_points":"{score}点","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"採点する","video_assessment.admin.cta.edit_grade":"採点を編集","video_assessment.admin.grade.title":"採点","video_assessment.admin.grade.score":"スコア","video_assessment.admin.grade.score_helper":"{min}〜{max}の整数を入力してください。","video_assessment.admin.grade.score_placeholder":"スコアを入力してください。","video_assessment.admin.grade.feedback":"フィードバック","video_assessment.admin.grade.feedback_placeholder":"フィードバックを入力してください。","video_assessment.admin.grade.cancel":"キャンセル","video_assessment.admin.grade.confirm":"確定","video_assessment.admin.grade.score.error.required":"スコアを入力してください。","video_assessment.admin.grade.score.error.range":"{min}〜{max}の整数を入力してください。","video_assessment.admin.grade.feedback.error.max":"フィードバックは最大{max}文字まで入力可能です。"};
|
|
6
6
|
|
|
7
7
|
exports.default = ja;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var messageKo = {"video_assessment.status.loading":"{_termLibraryLecture} {_termLibraryLecturePage} 로딩 중...","video_assessment.status.error":"{_termLibraryLecture} {_termLibraryLecturePage}를 가져오는 중 문제가 발생하였습니다.","video_assessment.preparation.title":"영상 평가 준비","video_assessment.preparation.cta":"답변 시작","video_assessment.preparation.device_label.camera":"카메라","video_assessment.preparation.device_label.audio":"오디오","video_assessment.preparation.timer_label":"답변 제한 시간","video_assessment.preparation.bullet_with_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 답변 제한 시간 타이머가 시작됩니다. 답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 답변은 자동으로 제출됩니다.","video_assessment.preparation.bullet_with_limit_2":"답변 제한 시간 종료 전 ‘제출하기’를 누르면 답변을 미리 제출할 수 있습니다.","video_assessment.preparation.bullet_no_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 녹화가 시작됩니다.","video_assessment.preparation.bullet_no_limit_2":"답변이 완료되면 ‘제출하기’를 눌러 최종 제출해야 합니다. 제출 전까지는 답변이 저장되지 않습니다.","video_assessment.recording.stop":"제출하기","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"녹화 중","video_assessment.recording.timer_label_with_limit":"답변 제한 시간","video_assessment.recording.timer_label_no_limit":"답변 시간","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 자동으로 제출됩니다.","video_assessment.recording.help_text_no_limit":"답변 시간 제한이 없습니다. 답변이 끝나면, ‘제출하기’를 눌러주세요.","video_assessment.recording.recommendation_exceeded":"권장 시간 초과","video_assessment.recording.imminent_warning":"{seconds}초 후 자동 제출됩니다","video_assessment.recording.auto_submitted":"제한 시간 도달로 자동 제출되었습니다","video_assessment.recording.error.no_recording":"녹화된 영상이 없습니다. 다시 녹화해주세요.","video_assessment.recording.error.file_upload_fail":"답변 영상 제출에 실패했습니다. 다시 시도해주세요.","video_assessment.review.uploading":"업로드 중...","video_assessment.review.submit":"제출","video_assessment.review.retake":"재녹화","video_assessment.submitted.title":"제출 완료","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"다시 답변하기","video_assessment.submitted.next":"다음
|
|
5
|
+
var messageKo = {"video_assessment.status.loading":"{_termLibraryLecture} {_termLibraryLecturePage} 로딩 중...","video_assessment.status.error":"{_termLibraryLecture} {_termLibraryLecturePage}를 가져오는 중 문제가 발생하였습니다.","video_assessment.preparation.title":"영상 평가 준비","video_assessment.preparation.cta":"답변 시작","video_assessment.preparation.device_label.camera":"카메라","video_assessment.preparation.device_label.audio":"오디오","video_assessment.preparation.timer_label":"답변 제한 시간","video_assessment.preparation.bullet_with_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 답변 제한 시간 타이머가 시작됩니다. 답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 답변은 자동으로 제출됩니다.","video_assessment.preparation.bullet_with_limit_2":"답변 제한 시간 종료 전 ‘제출하기’를 누르면 답변을 미리 제출할 수 있습니다.","video_assessment.preparation.bullet_no_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 녹화가 시작됩니다.","video_assessment.preparation.bullet_no_limit_2":"답변이 완료되면 ‘제출하기’를 눌러 최종 제출해야 합니다. 제출 전까지는 답변이 저장되지 않습니다.","video_assessment.recording.stop":"제출하기","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"녹화 중","video_assessment.recording.timer_label_with_limit":"답변 제한 시간","video_assessment.recording.timer_label_no_limit":"답변 시간","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 자동으로 제출됩니다.","video_assessment.recording.help_text_no_limit":"답변 시간 제한이 없습니다. 답변이 끝나면, ‘제출하기’를 눌러주세요.","video_assessment.recording.recommendation_exceeded":"권장 시간 초과","video_assessment.recording.imminent_warning":"{seconds}초 후 자동 제출됩니다","video_assessment.recording.auto_submitted":"제한 시간 도달로 자동 제출되었습니다","video_assessment.recording.error.no_recording":"녹화된 영상이 없습니다. 다시 녹화해주세요.","video_assessment.recording.error.file_upload_fail":"답변 영상 제출에 실패했습니다. 다시 시도해주세요.","video_assessment.review.uploading":"업로드 중...","video_assessment.review.submit":"제출","video_assessment.review.retake":"재녹화","video_assessment.submitted.title":"제출 완료","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"다시 답변하기","video_assessment.submitted.next":"다음","video_assessment.submitted.label.score":"점수","video_assessment.submitted.label.feedback":"피드백","video_assessment.submitted.label.time_limit":"답변 제한 시간","video_assessment.submitted.label.duration":"답변 시간","video_assessment.submitted.label.submitted_at":"최종 제출 일시","video_assessment.submitted.value.score_points":"{score}점","video_assessment.submitted.value.score_pending":"점수 및 피드백은 선생님 채점 완료 후 표시됩니다.","video_assessment.submitted.value.score_hidden":"비공개","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"카메라/마이크 권한이 필요합니다","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"미제출","video_assessment.admin.status.submitted":"제출","video_assessment.admin.status.graded":"채점 완료","video_assessment.admin.label.status":"상태","video_assessment.admin.label.duration":"답변 시간","video_assessment.admin.label.score":"점수","video_assessment.admin.label.feedback":"피드백","video_assessment.admin.label.time_limit":"답변 제한 시간","video_assessment.admin.label.response_count":"제출 수","video_assessment.admin.label.submitted_at":"최종 제출 일시","video_assessment.admin.value.score_points":"{score}점","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"채점하기","video_assessment.admin.cta.edit_grade":"채점 수정","video_assessment.admin.grade.title":"채점","video_assessment.admin.grade.score":"점수","video_assessment.admin.grade.score_helper":"{min} ~ {max} 사이의 정수를 입력해주세요.","video_assessment.admin.grade.score_placeholder":"점수를 입력해주세요.","video_assessment.admin.grade.feedback":"피드백","video_assessment.admin.grade.feedback_placeholder":"피드백을 입력해주세요.","video_assessment.admin.grade.cancel":"취소","video_assessment.admin.grade.confirm":"확인","video_assessment.admin.grade.score.error.required":"점수를 입력해주세요.","video_assessment.admin.grade.score.error.range":"{min} ~ {max} 사이의 정수를 입력해주세요.","video_assessment.admin.grade.feedback.error.max":"피드백은 최대 {max}자까지 입력 가능합니다."};
|
|
6
6
|
|
|
7
7
|
exports.default = messageKo;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var th = {"video_assessment.status.loading":"กำลังโหลดการประเมินวิดีโอ...","video_assessment.status.error":"เกิดข้อผิดพลาดในขณะที่โหลดการประเมินวิดีโอ","video_assessment.preparation.title":"เตรียมบันทึกวิดีโอประเมิน","video_assessment.preparation.cta":"เริ่มตอบ","video_assessment.preparation.device_label.camera":"กล้อง","video_assessment.preparation.device_label.audio":"เสียง","video_assessment.preparation.timer_label":"เวลาจำกัด","video_assessment.preparation.bullet_with_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและตัวจับเวลาเริ่มต้น เมื่อหมดเวลา ระบบจะส่งคำตอบอัตโนมัติ","video_assessment.preparation.bullet_with_limit_2":"สามารถกด ‘ส่งคำตอบ’ ก่อนหมดเวลาได้","video_assessment.preparation.bullet_no_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและเริ่มบันทึก","video_assessment.preparation.bullet_no_limit_2":"เมื่อตอบเสร็จ ต้องกด ‘ส่งคำตอบ’ เพื่อส่ง ระบบจะบันทึกเมื่อส่งเท่านั้น","video_assessment.recording.stop":"ส่งคำตอบ","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"กำลังบันทึก","video_assessment.recording.timer_label_with_limit":"เวลาจำกัด","video_assessment.recording.timer_label_no_limit":"เวลาที่ผ่านไป","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"เมื่อหมดเวลา จะไม่สามารถตอบต่อได้และระบบจะส่งคำตอบอัตโนมัติ","video_assessment.recording.help_text_no_limit":"ไม่มีการจำกัดเวลา เมื่อตอบเสร็จ ให้กด ‘ส่งคำตอบ’","video_assessment.recording.recommendation_exceeded":"เกินเวลาที่แนะนำ","video_assessment.recording.imminent_warning":"จะส่งอัตโนมัติใน {seconds} วินาที","video_assessment.recording.auto_submitted":"ส่งอัตโนมัติเนื่องจากครบเวลา","video_assessment.recording.error.no_recording":"ไม่พบวิดีโอที่บันทึก โปรดบันทึกใหม่อีกครั้ง","video_assessment.recording.error.file_upload_fail":"ส่งวิดีโอคำตอบไม่สำเร็จ โปรดลองอีกครั้ง","video_assessment.review.uploading":"กำลังอัปโหลด...","video_assessment.review.submit":"ส่ง","video_assessment.review.retake":"บันทึกใหม่","video_assessment.submitted.title":"ส่งเรียบร้อย","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"ตอบใหม่","video_assessment.submitted.next":"
|
|
5
|
+
var th = {"video_assessment.status.loading":"กำลังโหลดการประเมินวิดีโอ...","video_assessment.status.error":"เกิดข้อผิดพลาดในขณะที่โหลดการประเมินวิดีโอ","video_assessment.preparation.title":"เตรียมบันทึกวิดีโอประเมิน","video_assessment.preparation.cta":"เริ่มตอบ","video_assessment.preparation.device_label.camera":"กล้อง","video_assessment.preparation.device_label.audio":"เสียง","video_assessment.preparation.timer_label":"เวลาจำกัด","video_assessment.preparation.bullet_with_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและตัวจับเวลาเริ่มต้น เมื่อหมดเวลา ระบบจะส่งคำตอบอัตโนมัติ","video_assessment.preparation.bullet_with_limit_2":"สามารถกด ‘ส่งคำตอบ’ ก่อนหมดเวลาได้","video_assessment.preparation.bullet_no_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและเริ่มบันทึก","video_assessment.preparation.bullet_no_limit_2":"เมื่อตอบเสร็จ ต้องกด ‘ส่งคำตอบ’ เพื่อส่ง ระบบจะบันทึกเมื่อส่งเท่านั้น","video_assessment.recording.stop":"ส่งคำตอบ","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"กำลังบันทึก","video_assessment.recording.timer_label_with_limit":"เวลาจำกัด","video_assessment.recording.timer_label_no_limit":"เวลาที่ผ่านไป","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"เมื่อหมดเวลา จะไม่สามารถตอบต่อได้และระบบจะส่งคำตอบอัตโนมัติ","video_assessment.recording.help_text_no_limit":"ไม่มีการจำกัดเวลา เมื่อตอบเสร็จ ให้กด ‘ส่งคำตอบ’","video_assessment.recording.recommendation_exceeded":"เกินเวลาที่แนะนำ","video_assessment.recording.imminent_warning":"จะส่งอัตโนมัติใน {seconds} วินาที","video_assessment.recording.auto_submitted":"ส่งอัตโนมัติเนื่องจากครบเวลา","video_assessment.recording.error.no_recording":"ไม่พบวิดีโอที่บันทึก โปรดบันทึกใหม่อีกครั้ง","video_assessment.recording.error.file_upload_fail":"ส่งวิดีโอคำตอบไม่สำเร็จ โปรดลองอีกครั้ง","video_assessment.review.uploading":"กำลังอัปโหลด...","video_assessment.review.submit":"ส่ง","video_assessment.review.retake":"บันทึกใหม่","video_assessment.submitted.title":"ส่งเรียบร้อย","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"ตอบใหม่","video_assessment.submitted.next":"ถัดไป","video_assessment.submitted.label.score":"คะแนน","video_assessment.submitted.label.feedback":"ฟีดแบ็ก","video_assessment.submitted.label.time_limit":"เวลาจำกัด","video_assessment.submitted.label.duration":"เวลาในการบันทึก","video_assessment.submitted.label.submitted_at":"ส่งล่าสุดเมื่อ","video_assessment.submitted.value.score_points":"{score} คะแนน","video_assessment.submitted.value.score_pending":"คะแนนและฟีดแบ็กจะแสดงหลังจากผู้สอนตรวจให้คะแนนแล้ว","video_assessment.submitted.value.score_hidden":"ไม่เปิดเผย","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"ต้องการสิทธิ์เข้าถึงกล้อง/ไมโครโฟน","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"ยังไม่ส่ง","video_assessment.admin.status.submitted":"ส่งแล้ว","video_assessment.admin.status.graded":"ให้คะแนนแล้ว","video_assessment.admin.label.status":"สถานะ","video_assessment.admin.label.duration":"เวลาตอบ","video_assessment.admin.label.score":"คะแนน","video_assessment.admin.label.feedback":"ฟีดแบ็ก","video_assessment.admin.label.time_limit":"เวลาจำกัด","video_assessment.admin.label.response_count":"จำนวนการส่ง","video_assessment.admin.label.submitted_at":"เวลาส่งล่าสุด","video_assessment.admin.value.score_points":"{score} คะแนน","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"ให้คะแนน","video_assessment.admin.cta.edit_grade":"แก้ไขคะแนน","video_assessment.admin.grade.title":"ให้คะแนน","video_assessment.admin.grade.score":"คะแนน","video_assessment.admin.grade.score_helper":"กรอกจำนวนเต็มระหว่าง {min} ถึง {max}","video_assessment.admin.grade.score_placeholder":"กรอกคะแนน","video_assessment.admin.grade.feedback":"ฟีดแบ็ก","video_assessment.admin.grade.feedback_placeholder":"กรอกฟีดแบ็ก","video_assessment.admin.grade.cancel":"ยกเลิก","video_assessment.admin.grade.confirm":"ยืนยัน","video_assessment.admin.grade.score.error.required":"กรุณากรอกคะแนน","video_assessment.admin.grade.score.error.range":"คะแนนต้องเป็นจำนวนเต็มระหว่าง {min} ถึง {max}","video_assessment.admin.grade.feedback.error.max":"ฟีดแบ็กยาวได้ไม่เกิน {max} ตัวอักษร"};
|
|
6
6
|
|
|
7
7
|
exports.default = th;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import 'dayjs/locale/ko';
|
|
2
|
+
import type { ButtonProps } from '@mui/material';
|
|
2
3
|
import type React from 'react';
|
|
3
4
|
interface StepSubmittedProps {
|
|
4
5
|
userId: number;
|
|
5
6
|
onReset: () => void;
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Slot props for the "다음" button. When omitted, the button is not rendered.
|
|
9
|
+
* Pass `{}` to render with library defaults, or supply props like `onClick`/`disabled`.
|
|
10
|
+
*/
|
|
11
|
+
nextButtonProps?: ButtonProps;
|
|
7
12
|
}
|
|
8
13
|
declare const StepSubmitted: React.FC<StepSubmittedProps>;
|
|
9
14
|
export default StepSubmitted;
|
|
@@ -32,8 +32,8 @@ var formatMmSs = function formatMmSs(totalSeconds) {
|
|
|
32
32
|
var StepSubmitted = function StepSubmitted(_ref) {
|
|
33
33
|
var userId = _ref.userId,
|
|
34
34
|
onReset = _ref.onReset,
|
|
35
|
-
|
|
36
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
35
|
+
nextButtonProps = _ref.nextButtonProps;
|
|
36
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
37
37
|
var intl$1 = intl.useRawEliceIntl();
|
|
38
38
|
var _useMaterialVideoAsse = MaterialVideoAssessmentContext.useMaterialVideoAssessmentState(),
|
|
39
39
|
materialVideoAssessment = _useMaterialVideoAsse.materialVideoAssessment,
|
|
@@ -174,13 +174,13 @@ var StepSubmitted = function StepSubmitted(_ref) {
|
|
|
174
174
|
children: intl$1.formatMessage({
|
|
175
175
|
id: 'video_assessment.submitted.retry'
|
|
176
176
|
})
|
|
177
|
-
}) : null,
|
|
178
|
-
variant: "contained"
|
|
179
|
-
|
|
180
|
-
children: intl$1.formatMessage({
|
|
177
|
+
}) : null, nextButtonProps ? jsxRuntime.jsx(material.Button, Object.assign({
|
|
178
|
+
variant: "contained"
|
|
179
|
+
}, nextButtonProps, {
|
|
180
|
+
children: (_q = nextButtonProps.children) !== null && _q !== void 0 ? _q : intl$1.formatMessage({
|
|
181
181
|
id: 'video_assessment.submitted.next'
|
|
182
182
|
})
|
|
183
|
-
}) : null]
|
|
183
|
+
})) : null]
|
|
184
184
|
})]
|
|
185
185
|
});
|
|
186
186
|
};
|
|
@@ -14,7 +14,6 @@ var getOrgMaterialVideoAssessmentLastResponseQueryOptions = function getOrgMater
|
|
|
14
14
|
return apiClient.getOrgMaterialVideoAssessmentResponseList({
|
|
15
15
|
materialVideoAssessmentId: params.materialVideoAssessmentId,
|
|
16
16
|
filterUserIds: [params.userId],
|
|
17
|
-
isContainOnlyLast: true,
|
|
18
17
|
offset: 0,
|
|
19
18
|
count: 1
|
|
20
19
|
}, {
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import type { ButtonProps } from '@mui/material';
|
|
1
2
|
import type React from 'react';
|
|
2
3
|
import type { MaterialVideoAssessmentAdapters } from './adapters';
|
|
3
4
|
import type { MaterialVideoAssessmentAdminContentProps } from './admin';
|
|
4
5
|
import type { VideoAssessmentSubmitResult } from './MaterialVideoAssessmentContent';
|
|
6
|
+
export interface MaterialVideoAssessmentSlotProps {
|
|
7
|
+
/**
|
|
8
|
+
* Props forwarded to the "다음" button on the submitted view.
|
|
9
|
+
* When omitted, the next button is not rendered. Pass at least `{}` to render
|
|
10
|
+
* with library defaults, or supply `onClick`/`disabled`/etc. to control behavior.
|
|
11
|
+
*/
|
|
12
|
+
nextButton?: ButtonProps;
|
|
13
|
+
}
|
|
5
14
|
interface BaseProps {
|
|
6
15
|
className?: string;
|
|
7
16
|
materialVideoAssessmentId: number;
|
|
@@ -27,6 +36,14 @@ export interface MaterialVideoAssessmentViewProps extends BaseProps {
|
|
|
27
36
|
* `{ status: 'failure', error }` carrying the original error for Sentry logging.
|
|
28
37
|
*/
|
|
29
38
|
onSubmit?: (result: VideoAssessmentSubmitResult) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Slot props for internal sub-components. Currently exposes the submitted-view
|
|
41
|
+
* "다음" button so hosts can wire `onClick`, `disabled`, `loading`, etc.
|
|
42
|
+
*
|
|
43
|
+
* Hosts that embed this material in a subject/test flow (테스트 과목 / 일반 과목)
|
|
44
|
+
* should pass `slotProps.nextButton` to advance to the next item.
|
|
45
|
+
*/
|
|
46
|
+
slotProps?: MaterialVideoAssessmentSlotProps;
|
|
30
47
|
}
|
|
31
48
|
export interface MaterialVideoAssessmentAdminProps extends BaseProps {
|
|
32
49
|
isTutoring: true;
|
|
@@ -49,6 +49,7 @@ var MaterialVideoAssessment = function MaterialVideoAssessment(props) {
|
|
|
49
49
|
children: jsx(MaterialVideoAssessmentContent, {
|
|
50
50
|
materialVideoAssessmentId: props.materialVideoAssessmentId,
|
|
51
51
|
userId: props.userId,
|
|
52
|
+
slotProps: props.slotProps,
|
|
52
53
|
onSubmit: props.onSubmit
|
|
53
54
|
})
|
|
54
55
|
})
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { MaterialVideoAssessmentSlotProps } from './MaterialVideoAssessment';
|
|
2
3
|
export type RecordingErrorReason = 'no_recording' | 'file_upload_fail';
|
|
3
4
|
export type VideoAssessmentFunnelStepMap = {
|
|
4
5
|
loading: Record<string, never>;
|
|
@@ -18,6 +19,7 @@ export interface MaterialVideoAssessmentContentProps {
|
|
|
18
19
|
materialVideoAssessmentId: number;
|
|
19
20
|
userId: number;
|
|
20
21
|
onSubmit?: (result: VideoAssessmentSubmitResult) => void;
|
|
22
|
+
slotProps?: MaterialVideoAssessmentSlotProps;
|
|
21
23
|
}
|
|
22
24
|
declare const MaterialVideoAssessmentContent: React.FC<MaterialVideoAssessmentContentProps>;
|
|
23
25
|
export default MaterialVideoAssessmentContent;
|
|
@@ -28,7 +28,8 @@ var RECORDING_ERROR_REASON_MAP = Object.freeze({
|
|
|
28
28
|
var MaterialVideoAssessmentContent = function MaterialVideoAssessmentContent(_ref) {
|
|
29
29
|
var materialVideoAssessmentId = _ref.materialVideoAssessmentId,
|
|
30
30
|
userId = _ref.userId,
|
|
31
|
-
onSubmit = _ref.onSubmit
|
|
31
|
+
onSubmit = _ref.onSubmit,
|
|
32
|
+
slotProps = _ref.slotProps;
|
|
32
33
|
var _a, _b, _c, _d;
|
|
33
34
|
var queryClient = useQueryClient();
|
|
34
35
|
var _useMaterialVideoAsse = useMaterialVideoAssessmentState(),
|
|
@@ -192,6 +193,7 @@ var MaterialVideoAssessmentContent = function MaterialVideoAssessmentContent(_re
|
|
|
192
193
|
case 'submitted':
|
|
193
194
|
return jsx(StepSubmitted, {
|
|
194
195
|
userId: userId,
|
|
196
|
+
nextButtonProps: slotProps === null || slotProps === void 0 ? void 0 : slotProps.nextButton,
|
|
195
197
|
onReset: function onReset() {
|
|
196
198
|
recorder.reset();
|
|
197
199
|
void funnel.history.push('preparation', {});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var messageEn = {"video_assessment.status.loading":"Loading video assessment...","video_assessment.status.error":"Error occurred while loading video assessment","video_assessment.preparation.title":"Get ready to record","video_assessment.preparation.cta":"Start answering","video_assessment.preparation.device_label.camera":"Camera","video_assessment.preparation.device_label.audio":"Audio","video_assessment.preparation.timer_label":"Time limit","video_assessment.preparation.bullet_with_limit_1":"Tapping ‘Start answering’ reveals the question and starts the countdown. When the time limit expires, recording stops and your answer is submitted automatically.","video_assessment.preparation.bullet_with_limit_2":"You can submit early by tapping ‘Submit’ before the countdown ends.","video_assessment.preparation.bullet_no_limit_1":"Tapping ‘Start answering’ reveals the question and starts recording.","video_assessment.preparation.bullet_no_limit_2":"When you finish, tap ‘Submit’ to upload your answer. Nothing is saved until you submit.","video_assessment.recording.stop":"Submit","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"Recording","video_assessment.recording.timer_label_with_limit":"Time limit","video_assessment.recording.timer_label_no_limit":"Elapsed time","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"When the time limit expires, you can no longer answer and your response is submitted automatically.","video_assessment.recording.help_text_no_limit":"There is no time limit. When you finish, tap ‘Submit’.","video_assessment.recording.recommendation_exceeded":"Recommended time exceeded","video_assessment.recording.imminent_warning":"Auto-submitting in {seconds}s","video_assessment.recording.auto_submitted":"Auto-submitted on time limit","video_assessment.recording.error.no_recording":"No recorded video found. Please record again.","video_assessment.recording.error.file_upload_fail":"Failed to submit the response video. Please try again.","video_assessment.review.uploading":"Uploading...","video_assessment.review.submit":"Submit","video_assessment.review.retake":"Retake","video_assessment.submitted.title":"Submitted","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"Answer again","video_assessment.submitted.next":"Next
|
|
1
|
+
var messageEn = {"video_assessment.status.loading":"Loading video assessment...","video_assessment.status.error":"Error occurred while loading video assessment","video_assessment.preparation.title":"Get ready to record","video_assessment.preparation.cta":"Start answering","video_assessment.preparation.device_label.camera":"Camera","video_assessment.preparation.device_label.audio":"Audio","video_assessment.preparation.timer_label":"Time limit","video_assessment.preparation.bullet_with_limit_1":"Tapping ‘Start answering’ reveals the question and starts the countdown. When the time limit expires, recording stops and your answer is submitted automatically.","video_assessment.preparation.bullet_with_limit_2":"You can submit early by tapping ‘Submit’ before the countdown ends.","video_assessment.preparation.bullet_no_limit_1":"Tapping ‘Start answering’ reveals the question and starts recording.","video_assessment.preparation.bullet_no_limit_2":"When you finish, tap ‘Submit’ to upload your answer. Nothing is saved until you submit.","video_assessment.recording.stop":"Submit","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"Recording","video_assessment.recording.timer_label_with_limit":"Time limit","video_assessment.recording.timer_label_no_limit":"Elapsed time","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"When the time limit expires, you can no longer answer and your response is submitted automatically.","video_assessment.recording.help_text_no_limit":"There is no time limit. When you finish, tap ‘Submit’.","video_assessment.recording.recommendation_exceeded":"Recommended time exceeded","video_assessment.recording.imminent_warning":"Auto-submitting in {seconds}s","video_assessment.recording.auto_submitted":"Auto-submitted on time limit","video_assessment.recording.error.no_recording":"No recorded video found. Please record again.","video_assessment.recording.error.file_upload_fail":"Failed to submit the response video. Please try again.","video_assessment.review.uploading":"Uploading...","video_assessment.review.submit":"Submit","video_assessment.review.retake":"Retake","video_assessment.submitted.title":"Submitted","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"Answer again","video_assessment.submitted.next":"Next","video_assessment.submitted.label.score":"Score","video_assessment.submitted.label.feedback":"Feedback","video_assessment.submitted.label.time_limit":"Time limit","video_assessment.submitted.label.duration":"Recording length","video_assessment.submitted.label.submitted_at":"Submitted at","video_assessment.submitted.value.score_points":"{score} pts","video_assessment.submitted.value.score_pending":"Score and feedback will be shown after the instructor grades your answer.","video_assessment.submitted.value.score_hidden":"Hidden","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"Camera/microphone permission required","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"Not submitted","video_assessment.admin.status.submitted":"Submitted","video_assessment.admin.status.graded":"Graded","video_assessment.admin.label.status":"Status","video_assessment.admin.label.duration":"Response time","video_assessment.admin.label.score":"Score","video_assessment.admin.label.feedback":"Feedback","video_assessment.admin.label.time_limit":"Time limit","video_assessment.admin.label.response_count":"Submissions","video_assessment.admin.label.submitted_at":"Submitted at","video_assessment.admin.value.score_points":"{score} pts","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"Grade","video_assessment.admin.cta.edit_grade":"Edit grade","video_assessment.admin.grade.title":"Grade","video_assessment.admin.grade.score":"Score","video_assessment.admin.grade.score_helper":"Enter an integer between {min} and {max}.","video_assessment.admin.grade.score_placeholder":"Enter score","video_assessment.admin.grade.feedback":"Feedback","video_assessment.admin.grade.feedback_placeholder":"Enter feedback","video_assessment.admin.grade.cancel":"Cancel","video_assessment.admin.grade.confirm":"Confirm","video_assessment.admin.grade.score.error.required":"Score is required.","video_assessment.admin.grade.score.error.range":"Score must be an integer between {min} and {max}.","video_assessment.admin.grade.feedback.error.max":"Feedback must be at most {max} characters."};
|
|
2
2
|
|
|
3
3
|
export { messageEn as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var ja = {"video_assessment.status.loading":"ビデオ評価を読み込んでいます...","video_assessment.status.error":"ビデオ評価の読み込み中にエラーが発生しました。","video_assessment.preparation.title":"映像評価の準備","video_assessment.preparation.cta":"回答開始","video_assessment.preparation.device_label.camera":"カメラ","video_assessment.preparation.device_label.audio":"オーディオ","video_assessment.preparation.timer_label":"回答制限時間","video_assessment.preparation.bullet_with_limit_1":"「回答開始」を押すと質問が公開され、制限時間のタイマーが開始されます。制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.preparation.bullet_with_limit_2":"制限時間内に「提出」を押すと、事前に提出することもできます。","video_assessment.preparation.bullet_no_limit_1":"「回答開始」を押すと質問が公開され、録画が始まります。","video_assessment.preparation.bullet_no_limit_2":"回答が完了したら「提出」を押して最終提出してください。提出するまで回答は保存されません。","video_assessment.recording.stop":"提出する","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"録画中","video_assessment.recording.timer_label_with_limit":"回答制限時間","video_assessment.recording.timer_label_no_limit":"回答時間","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.recording.help_text_no_limit":"回答時間の制限はありません。終わったら「提出する」を押してください。","video_assessment.recording.recommendation_exceeded":"推奨時間を超過しました","video_assessment.recording.imminent_warning":"{seconds}秒後に自動提出されます","video_assessment.recording.auto_submitted":"制限時間に達したため自動提出されました","video_assessment.recording.error.no_recording":"録画された動画がありません。もう一度録画してください。","video_assessment.recording.error.file_upload_fail":"回答動画の提出に失敗しました。もう一度お試しください。","video_assessment.review.uploading":"アップロード中...","video_assessment.review.submit":"提出","video_assessment.review.retake":"再録画","video_assessment.submitted.title":"提出完了","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"再回答する","video_assessment.submitted.next":"
|
|
1
|
+
var ja = {"video_assessment.status.loading":"ビデオ評価を読み込んでいます...","video_assessment.status.error":"ビデオ評価の読み込み中にエラーが発生しました。","video_assessment.preparation.title":"映像評価の準備","video_assessment.preparation.cta":"回答開始","video_assessment.preparation.device_label.camera":"カメラ","video_assessment.preparation.device_label.audio":"オーディオ","video_assessment.preparation.timer_label":"回答制限時間","video_assessment.preparation.bullet_with_limit_1":"「回答開始」を押すと質問が公開され、制限時間のタイマーが開始されます。制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.preparation.bullet_with_limit_2":"制限時間内に「提出」を押すと、事前に提出することもできます。","video_assessment.preparation.bullet_no_limit_1":"「回答開始」を押すと質問が公開され、録画が始まります。","video_assessment.preparation.bullet_no_limit_2":"回答が完了したら「提出」を押して最終提出してください。提出するまで回答は保存されません。","video_assessment.recording.stop":"提出する","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"録画中","video_assessment.recording.timer_label_with_limit":"回答制限時間","video_assessment.recording.timer_label_no_limit":"回答時間","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"制限時間が経過すると、それ以上回答できず自動的に提出されます。","video_assessment.recording.help_text_no_limit":"回答時間の制限はありません。終わったら「提出する」を押してください。","video_assessment.recording.recommendation_exceeded":"推奨時間を超過しました","video_assessment.recording.imminent_warning":"{seconds}秒後に自動提出されます","video_assessment.recording.auto_submitted":"制限時間に達したため自動提出されました","video_assessment.recording.error.no_recording":"録画された動画がありません。もう一度録画してください。","video_assessment.recording.error.file_upload_fail":"回答動画の提出に失敗しました。もう一度お試しください。","video_assessment.review.uploading":"アップロード中...","video_assessment.review.submit":"提出","video_assessment.review.retake":"再録画","video_assessment.submitted.title":"提出完了","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"再回答する","video_assessment.submitted.next":"次へ","video_assessment.submitted.label.score":"点数","video_assessment.submitted.label.feedback":"フィードバック","video_assessment.submitted.label.time_limit":"回答制限時間","video_assessment.submitted.label.duration":"回答時間","video_assessment.submitted.label.submitted_at":"最終提出日時","video_assessment.submitted.value.score_points":"{score}点","video_assessment.submitted.value.score_pending":"点数とフィードバックは先生の採点完了後に表示されます。","video_assessment.submitted.value.score_hidden":"非公開","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"カメラ/マイクの権限が必要です","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"未提出","video_assessment.admin.status.submitted":"提出","video_assessment.admin.status.graded":"採点完了","video_assessment.admin.label.status":"状態","video_assessment.admin.label.duration":"回答時間","video_assessment.admin.label.score":"スコア","video_assessment.admin.label.feedback":"フィードバック","video_assessment.admin.label.time_limit":"回答制限時間","video_assessment.admin.label.response_count":"提出回数","video_assessment.admin.label.submitted_at":"最終提出日時","video_assessment.admin.value.score_points":"{score}点","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"採点する","video_assessment.admin.cta.edit_grade":"採点を編集","video_assessment.admin.grade.title":"採点","video_assessment.admin.grade.score":"スコア","video_assessment.admin.grade.score_helper":"{min}〜{max}の整数を入力してください。","video_assessment.admin.grade.score_placeholder":"スコアを入力してください。","video_assessment.admin.grade.feedback":"フィードバック","video_assessment.admin.grade.feedback_placeholder":"フィードバックを入力してください。","video_assessment.admin.grade.cancel":"キャンセル","video_assessment.admin.grade.confirm":"確定","video_assessment.admin.grade.score.error.required":"スコアを入力してください。","video_assessment.admin.grade.score.error.range":"{min}〜{max}の整数を入力してください。","video_assessment.admin.grade.feedback.error.max":"フィードバックは最大{max}文字まで入力可能です。"};
|
|
2
2
|
|
|
3
3
|
export { ja as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var messageKo = {"video_assessment.status.loading":"{_termLibraryLecture} {_termLibraryLecturePage} 로딩 중...","video_assessment.status.error":"{_termLibraryLecture} {_termLibraryLecturePage}를 가져오는 중 문제가 발생하였습니다.","video_assessment.preparation.title":"영상 평가 준비","video_assessment.preparation.cta":"답변 시작","video_assessment.preparation.device_label.camera":"카메라","video_assessment.preparation.device_label.audio":"오디오","video_assessment.preparation.timer_label":"답변 제한 시간","video_assessment.preparation.bullet_with_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 답변 제한 시간 타이머가 시작됩니다. 답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 답변은 자동으로 제출됩니다.","video_assessment.preparation.bullet_with_limit_2":"답변 제한 시간 종료 전 ‘제출하기’를 누르면 답변을 미리 제출할 수 있습니다.","video_assessment.preparation.bullet_no_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 녹화가 시작됩니다.","video_assessment.preparation.bullet_no_limit_2":"답변이 완료되면 ‘제출하기’를 눌러 최종 제출해야 합니다. 제출 전까지는 답변이 저장되지 않습니다.","video_assessment.recording.stop":"제출하기","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"녹화 중","video_assessment.recording.timer_label_with_limit":"답변 제한 시간","video_assessment.recording.timer_label_no_limit":"답변 시간","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 자동으로 제출됩니다.","video_assessment.recording.help_text_no_limit":"답변 시간 제한이 없습니다. 답변이 끝나면, ‘제출하기’를 눌러주세요.","video_assessment.recording.recommendation_exceeded":"권장 시간 초과","video_assessment.recording.imminent_warning":"{seconds}초 후 자동 제출됩니다","video_assessment.recording.auto_submitted":"제한 시간 도달로 자동 제출되었습니다","video_assessment.recording.error.no_recording":"녹화된 영상이 없습니다. 다시 녹화해주세요.","video_assessment.recording.error.file_upload_fail":"답변 영상 제출에 실패했습니다. 다시 시도해주세요.","video_assessment.review.uploading":"업로드 중...","video_assessment.review.submit":"제출","video_assessment.review.retake":"재녹화","video_assessment.submitted.title":"제출 완료","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"다시 답변하기","video_assessment.submitted.next":"다음
|
|
1
|
+
var messageKo = {"video_assessment.status.loading":"{_termLibraryLecture} {_termLibraryLecturePage} 로딩 중...","video_assessment.status.error":"{_termLibraryLecture} {_termLibraryLecturePage}를 가져오는 중 문제가 발생하였습니다.","video_assessment.preparation.title":"영상 평가 준비","video_assessment.preparation.cta":"답변 시작","video_assessment.preparation.device_label.camera":"카메라","video_assessment.preparation.device_label.audio":"오디오","video_assessment.preparation.timer_label":"답변 제한 시간","video_assessment.preparation.bullet_with_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 답변 제한 시간 타이머가 시작됩니다. 답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 답변은 자동으로 제출됩니다.","video_assessment.preparation.bullet_with_limit_2":"답변 제한 시간 종료 전 ‘제출하기’를 누르면 답변을 미리 제출할 수 있습니다.","video_assessment.preparation.bullet_no_limit_1":"‘답변 시작’을 누르면 질문이 공개되며, 녹화가 시작됩니다.","video_assessment.preparation.bullet_no_limit_2":"답변이 완료되면 ‘제출하기’를 눌러 최종 제출해야 합니다. 제출 전까지는 답변이 저장되지 않습니다.","video_assessment.recording.stop":"제출하기","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"녹화 중","video_assessment.recording.timer_label_with_limit":"답변 제한 시간","video_assessment.recording.timer_label_no_limit":"답변 시간","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"답변 제한 시간이 종료되면 더 이상 답변할 수 없으며, 자동으로 제출됩니다.","video_assessment.recording.help_text_no_limit":"답변 시간 제한이 없습니다. 답변이 끝나면, ‘제출하기’를 눌러주세요.","video_assessment.recording.recommendation_exceeded":"권장 시간 초과","video_assessment.recording.imminent_warning":"{seconds}초 후 자동 제출됩니다","video_assessment.recording.auto_submitted":"제한 시간 도달로 자동 제출되었습니다","video_assessment.recording.error.no_recording":"녹화된 영상이 없습니다. 다시 녹화해주세요.","video_assessment.recording.error.file_upload_fail":"답변 영상 제출에 실패했습니다. 다시 시도해주세요.","video_assessment.review.uploading":"업로드 중...","video_assessment.review.submit":"제출","video_assessment.review.retake":"재녹화","video_assessment.submitted.title":"제출 완료","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"다시 답변하기","video_assessment.submitted.next":"다음","video_assessment.submitted.label.score":"점수","video_assessment.submitted.label.feedback":"피드백","video_assessment.submitted.label.time_limit":"답변 제한 시간","video_assessment.submitted.label.duration":"답변 시간","video_assessment.submitted.label.submitted_at":"최종 제출 일시","video_assessment.submitted.value.score_points":"{score}점","video_assessment.submitted.value.score_pending":"점수 및 피드백은 선생님 채점 완료 후 표시됩니다.","video_assessment.submitted.value.score_hidden":"비공개","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"카메라/마이크 권한이 필요합니다","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"미제출","video_assessment.admin.status.submitted":"제출","video_assessment.admin.status.graded":"채점 완료","video_assessment.admin.label.status":"상태","video_assessment.admin.label.duration":"답변 시간","video_assessment.admin.label.score":"점수","video_assessment.admin.label.feedback":"피드백","video_assessment.admin.label.time_limit":"답변 제한 시간","video_assessment.admin.label.response_count":"제출 수","video_assessment.admin.label.submitted_at":"최종 제출 일시","video_assessment.admin.value.score_points":"{score}점","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"채점하기","video_assessment.admin.cta.edit_grade":"채점 수정","video_assessment.admin.grade.title":"채점","video_assessment.admin.grade.score":"점수","video_assessment.admin.grade.score_helper":"{min} ~ {max} 사이의 정수를 입력해주세요.","video_assessment.admin.grade.score_placeholder":"점수를 입력해주세요.","video_assessment.admin.grade.feedback":"피드백","video_assessment.admin.grade.feedback_placeholder":"피드백을 입력해주세요.","video_assessment.admin.grade.cancel":"취소","video_assessment.admin.grade.confirm":"확인","video_assessment.admin.grade.score.error.required":"점수를 입력해주세요.","video_assessment.admin.grade.score.error.range":"{min} ~ {max} 사이의 정수를 입력해주세요.","video_assessment.admin.grade.feedback.error.max":"피드백은 최대 {max}자까지 입력 가능합니다."};
|
|
2
2
|
|
|
3
3
|
export { messageKo as default };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var th = {"video_assessment.status.loading":"กำลังโหลดการประเมินวิดีโอ...","video_assessment.status.error":"เกิดข้อผิดพลาดในขณะที่โหลดการประเมินวิดีโอ","video_assessment.preparation.title":"เตรียมบันทึกวิดีโอประเมิน","video_assessment.preparation.cta":"เริ่มตอบ","video_assessment.preparation.device_label.camera":"กล้อง","video_assessment.preparation.device_label.audio":"เสียง","video_assessment.preparation.timer_label":"เวลาจำกัด","video_assessment.preparation.bullet_with_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและตัวจับเวลาเริ่มต้น เมื่อหมดเวลา ระบบจะส่งคำตอบอัตโนมัติ","video_assessment.preparation.bullet_with_limit_2":"สามารถกด ‘ส่งคำตอบ’ ก่อนหมดเวลาได้","video_assessment.preparation.bullet_no_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและเริ่มบันทึก","video_assessment.preparation.bullet_no_limit_2":"เมื่อตอบเสร็จ ต้องกด ‘ส่งคำตอบ’ เพื่อส่ง ระบบจะบันทึกเมื่อส่งเท่านั้น","video_assessment.recording.stop":"ส่งคำตอบ","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"กำลังบันทึก","video_assessment.recording.timer_label_with_limit":"เวลาจำกัด","video_assessment.recording.timer_label_no_limit":"เวลาที่ผ่านไป","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"เมื่อหมดเวลา จะไม่สามารถตอบต่อได้และระบบจะส่งคำตอบอัตโนมัติ","video_assessment.recording.help_text_no_limit":"ไม่มีการจำกัดเวลา เมื่อตอบเสร็จ ให้กด ‘ส่งคำตอบ’","video_assessment.recording.recommendation_exceeded":"เกินเวลาที่แนะนำ","video_assessment.recording.imminent_warning":"จะส่งอัตโนมัติใน {seconds} วินาที","video_assessment.recording.auto_submitted":"ส่งอัตโนมัติเนื่องจากครบเวลา","video_assessment.recording.error.no_recording":"ไม่พบวิดีโอที่บันทึก โปรดบันทึกใหม่อีกครั้ง","video_assessment.recording.error.file_upload_fail":"ส่งวิดีโอคำตอบไม่สำเร็จ โปรดลองอีกครั้ง","video_assessment.review.uploading":"กำลังอัปโหลด...","video_assessment.review.submit":"ส่ง","video_assessment.review.retake":"บันทึกใหม่","video_assessment.submitted.title":"ส่งเรียบร้อย","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"ตอบใหม่","video_assessment.submitted.next":"
|
|
1
|
+
var th = {"video_assessment.status.loading":"กำลังโหลดการประเมินวิดีโอ...","video_assessment.status.error":"เกิดข้อผิดพลาดในขณะที่โหลดการประเมินวิดีโอ","video_assessment.preparation.title":"เตรียมบันทึกวิดีโอประเมิน","video_assessment.preparation.cta":"เริ่มตอบ","video_assessment.preparation.device_label.camera":"กล้อง","video_assessment.preparation.device_label.audio":"เสียง","video_assessment.preparation.timer_label":"เวลาจำกัด","video_assessment.preparation.bullet_with_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและตัวจับเวลาเริ่มต้น เมื่อหมดเวลา ระบบจะส่งคำตอบอัตโนมัติ","video_assessment.preparation.bullet_with_limit_2":"สามารถกด ‘ส่งคำตอบ’ ก่อนหมดเวลาได้","video_assessment.preparation.bullet_no_limit_1":"เมื่อกด ‘เริ่มตอบ’ คำถามจะปรากฏและเริ่มบันทึก","video_assessment.preparation.bullet_no_limit_2":"เมื่อตอบเสร็จ ต้องกด ‘ส่งคำตอบ’ เพื่อส่ง ระบบจะบันทึกเมื่อส่งเท่านั้น","video_assessment.recording.stop":"ส่งคำตอบ","video_assessment.recording.prompt":"<q>Q.</q> {prompt}","video_assessment.recording.recording_tag":"กำลังบันทึก","video_assessment.recording.timer_label_with_limit":"เวลาจำกัด","video_assessment.recording.timer_label_no_limit":"เวลาที่ผ่านไป","video_assessment.recording.timer_value_with_total":"{remaining} <dim>/ {total}</dim>","video_assessment.recording.help_text_with_limit":"เมื่อหมดเวลา จะไม่สามารถตอบต่อได้และระบบจะส่งคำตอบอัตโนมัติ","video_assessment.recording.help_text_no_limit":"ไม่มีการจำกัดเวลา เมื่อตอบเสร็จ ให้กด ‘ส่งคำตอบ’","video_assessment.recording.recommendation_exceeded":"เกินเวลาที่แนะนำ","video_assessment.recording.imminent_warning":"จะส่งอัตโนมัติใน {seconds} วินาที","video_assessment.recording.auto_submitted":"ส่งอัตโนมัติเนื่องจากครบเวลา","video_assessment.recording.error.no_recording":"ไม่พบวิดีโอที่บันทึก โปรดบันทึกใหม่อีกครั้ง","video_assessment.recording.error.file_upload_fail":"ส่งวิดีโอคำตอบไม่สำเร็จ โปรดลองอีกครั้ง","video_assessment.review.uploading":"กำลังอัปโหลด...","video_assessment.review.submit":"ส่ง","video_assessment.review.retake":"บันทึกใหม่","video_assessment.submitted.title":"ส่งเรียบร้อย","video_assessment.submitted.prompt":"<q>Q.</q> {prompt}","video_assessment.submitted.retry":"ตอบใหม่","video_assessment.submitted.next":"ถัดไป","video_assessment.submitted.label.score":"คะแนน","video_assessment.submitted.label.feedback":"ฟีดแบ็ก","video_assessment.submitted.label.time_limit":"เวลาจำกัด","video_assessment.submitted.label.duration":"เวลาในการบันทึก","video_assessment.submitted.label.submitted_at":"ส่งล่าสุดเมื่อ","video_assessment.submitted.value.score_points":"{score} คะแนน","video_assessment.submitted.value.score_pending":"คะแนนและฟีดแบ็กจะแสดงหลังจากผู้สอนตรวจให้คะแนนแล้ว","video_assessment.submitted.value.score_hidden":"ไม่เปิดเผย","video_assessment.submitted.value.empty":"-","video_assessment.error.permission_denied":"ต้องการสิทธิ์เข้าถึงกล้อง/ไมโครโฟน","video_assessment.admin.prompt":"<q>Q.</q> {prompt}","video_assessment.admin.status.unsubmitted":"ยังไม่ส่ง","video_assessment.admin.status.submitted":"ส่งแล้ว","video_assessment.admin.status.graded":"ให้คะแนนแล้ว","video_assessment.admin.label.status":"สถานะ","video_assessment.admin.label.duration":"เวลาตอบ","video_assessment.admin.label.score":"คะแนน","video_assessment.admin.label.feedback":"ฟีดแบ็ก","video_assessment.admin.label.time_limit":"เวลาจำกัด","video_assessment.admin.label.response_count":"จำนวนการส่ง","video_assessment.admin.label.submitted_at":"เวลาส่งล่าสุด","video_assessment.admin.value.score_points":"{score} คะแนน","video_assessment.admin.value.empty":"-","video_assessment.admin.cta.grade":"ให้คะแนน","video_assessment.admin.cta.edit_grade":"แก้ไขคะแนน","video_assessment.admin.grade.title":"ให้คะแนน","video_assessment.admin.grade.score":"คะแนน","video_assessment.admin.grade.score_helper":"กรอกจำนวนเต็มระหว่าง {min} ถึง {max}","video_assessment.admin.grade.score_placeholder":"กรอกคะแนน","video_assessment.admin.grade.feedback":"ฟีดแบ็ก","video_assessment.admin.grade.feedback_placeholder":"กรอกฟีดแบ็ก","video_assessment.admin.grade.cancel":"ยกเลิก","video_assessment.admin.grade.confirm":"ยืนยัน","video_assessment.admin.grade.score.error.required":"กรุณากรอกคะแนน","video_assessment.admin.grade.score.error.range":"คะแนนต้องเป็นจำนวนเต็มระหว่าง {min} ถึง {max}","video_assessment.admin.grade.feedback.error.max":"ฟีดแบ็กยาวได้ไม่เกิน {max} ตัวอักษร"};
|
|
2
2
|
|
|
3
3
|
export { th as default };
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import 'dayjs/locale/ko';
|
|
2
|
+
import type { ButtonProps } from '@mui/material';
|
|
2
3
|
import type React from 'react';
|
|
3
4
|
interface StepSubmittedProps {
|
|
4
5
|
userId: number;
|
|
5
6
|
onReset: () => void;
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Slot props for the "다음" button. When omitted, the button is not rendered.
|
|
9
|
+
* Pass `{}` to render with library defaults, or supply props like `onClick`/`disabled`.
|
|
10
|
+
*/
|
|
11
|
+
nextButtonProps?: ButtonProps;
|
|
7
12
|
}
|
|
8
13
|
declare const StepSubmitted: React.FC<StepSubmittedProps>;
|
|
9
14
|
export default StepSubmitted;
|
|
@@ -24,8 +24,8 @@ var formatMmSs = function formatMmSs(totalSeconds) {
|
|
|
24
24
|
var StepSubmitted = function StepSubmitted(_ref) {
|
|
25
25
|
var userId = _ref.userId,
|
|
26
26
|
onReset = _ref.onReset,
|
|
27
|
-
|
|
28
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
27
|
+
nextButtonProps = _ref.nextButtonProps;
|
|
28
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
29
29
|
var intl = useRawEliceIntl();
|
|
30
30
|
var _useMaterialVideoAsse = useMaterialVideoAssessmentState(),
|
|
31
31
|
materialVideoAssessment = _useMaterialVideoAsse.materialVideoAssessment,
|
|
@@ -166,13 +166,13 @@ var StepSubmitted = function StepSubmitted(_ref) {
|
|
|
166
166
|
children: intl.formatMessage({
|
|
167
167
|
id: 'video_assessment.submitted.retry'
|
|
168
168
|
})
|
|
169
|
-
}) : null,
|
|
170
|
-
variant: "contained"
|
|
171
|
-
|
|
172
|
-
children: intl.formatMessage({
|
|
169
|
+
}) : null, nextButtonProps ? jsx(Button, Object.assign({
|
|
170
|
+
variant: "contained"
|
|
171
|
+
}, nextButtonProps, {
|
|
172
|
+
children: (_q = nextButtonProps.children) !== null && _q !== void 0 ? _q : intl.formatMessage({
|
|
173
173
|
id: 'video_assessment.submitted.next'
|
|
174
174
|
})
|
|
175
|
-
}) : null]
|
|
175
|
+
})) : null]
|
|
176
176
|
})]
|
|
177
177
|
});
|
|
178
178
|
};
|
|
@@ -12,7 +12,6 @@ var getOrgMaterialVideoAssessmentLastResponseQueryOptions = function getOrgMater
|
|
|
12
12
|
return getOrgMaterialVideoAssessmentResponseList({
|
|
13
13
|
materialVideoAssessmentId: params.materialVideoAssessmentId,
|
|
14
14
|
filterUserIds: [params.userId],
|
|
15
|
-
isContainOnlyLast: true,
|
|
16
15
|
offset: 0,
|
|
17
16
|
count: 1
|
|
18
17
|
}, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elice/material-video-assessment",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.260529.0",
|
|
4
4
|
"description": "User view and editing components of Elice material video assessment",
|
|
5
5
|
"repository": "https://git.elicer.io/elice/frontend/library/elice-material",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"dayjs": "^1.11.0",
|
|
34
34
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
35
35
|
"react-use": "^17.0.0",
|
|
36
|
-
"@elice/material-shared-types": "1.
|
|
37
|
-
"@elice/material-shared-utils": "1.
|
|
36
|
+
"@elice/material-shared-types": "1.260529.0",
|
|
37
|
+
"@elice/material-shared-utils": "1.260529.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@hookform/resolvers": "^3",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@azure/storage-blob": "^12.31.0",
|
|
49
|
-
"@elice/api-client": "1.
|
|
49
|
+
"@elice/api-client": "1.260529.0",
|
|
50
50
|
"@elice/blocks": "1.260404.0",
|
|
51
51
|
"@elice/design-tokens": "^1.220803.0",
|
|
52
52
|
"@elice/icons": "^1.230814.0",
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"rollup": "^4.0.0",
|
|
82
82
|
"typescript": "~5.9.3",
|
|
83
83
|
"vite": "^4.4.9",
|
|
84
|
-
"@elice/material-shared-types": "1.
|
|
85
|
-
"@elice/material-shared-utils": "1.
|
|
84
|
+
"@elice/material-shared-types": "1.260529.0",
|
|
85
|
+
"@elice/material-shared-utils": "1.260529.0"
|
|
86
86
|
},
|
|
87
87
|
"scripts": {
|
|
88
88
|
"start": "run-s watch",
|