touchstudy-core 0.1.175 → 0.1.176
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/dist/containers/PreparedTextbook/components/PreparedTextbookForm.d.ts +3 -1
- package/dist/containers/PreparedTextbook/configs/constants.d.ts +2 -0
- package/dist/containers/PreparedTextbook/configs/enums.d.ts +5 -0
- package/dist/containers/PreparedTextbook/hooks/useTextbookManagement.d.ts +2 -1
- package/dist/index.css +13 -0
- package/dist/index.js +773 -25
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +776 -28
- package/dist/index.modern.js.map +1 -1
- package/dist/layouts/Header.d.ts +1 -1
- package/dist/layouts/TimerCountItem.d.ts +9 -0
- package/dist/layouts/TimerItem.d.ts +11 -0
- package/dist/services/subjectService.d.ts +4 -0
- package/dist/theme/palette.d.ts +1 -0
- package/dist/utils/enums/index.d.ts +1 -0
- package/dist/utils/enums/subject.d.ts +5 -0
- package/dist/utils/functions/times.d.ts +1 -0
- package/dist/utils/types/index.d.ts +1 -0
- package/dist/utils/types/subjects.d.ts +17 -0
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
@@ -18,7 +18,7 @@ import moment from 'moment';
|
|
18
18
|
export { default as moment } from 'moment';
|
19
19
|
import { FaSave, FaCaretDown, FaTimes, FaTrash, FaSortUp, FaSortDown, FaPlusCircle, FaEye, FaPlus, FaCalendar, FaUser, FaBookOpen, FaUpload, FaPencilAlt, FaCheckCircle, FaShare, FaExchangeAlt, FaBell } from 'react-icons/fa';
|
20
20
|
import { IoMdArrowBack, IoMdSync, IoIosAlert, IoIosArrowDown, IoIosSearch, IoIosArrowUp, IoIosAdd, IoMdAdd } from 'react-icons/io';
|
21
|
-
import { IoClose, IoSearch, IoCloseOutline, IoTime, IoChevronUp, IoChevronDown, IoChatbubbleEllipsesSharp, IoPrint, IoCheckmarkCircle, IoChevronUpOutline, IoChevronDownOutline, IoReceiptSharp, IoBook, IoWarning, IoCalendarClear, IoPerson, IoInformationCircle, IoTrash, IoAddCircle, IoCloseCircle, IoLogOut } from 'react-icons/io5';
|
21
|
+
import { IoClose, IoSearch, IoCloseOutline, IoTime, IoChevronUp, IoChevronDown, IoChatbubbleEllipsesSharp, IoPrint, IoCheckmarkCircle, IoChevronUpOutline, IoChevronDownOutline, IoReceiptSharp, IoBook, IoWarning, IoCalendarClear, IoPerson, IoInformationCircle, IoTrash, IoAddCircle, IoCheckmark, IoCloseCircle, IoLogOut, IoPlayCircleSharp, IoTimer } from 'react-icons/io5';
|
22
22
|
import MButton from '@mui/material/Button';
|
23
23
|
import DialogTitle$1 from '@mui/material/DialogTitle';
|
24
24
|
import DialogContent$1 from '@mui/material/DialogContent';
|
@@ -48,7 +48,7 @@ import CardMedia from '@mui/material/CardMedia';
|
|
48
48
|
import { object, string, number, date as date$2, array, mixed } from 'yup';
|
49
49
|
import { blue, grey as grey$1, yellow as yellow$1 } from '@mui/material/colors';
|
50
50
|
import { GoogleReCaptcha, GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';
|
51
|
-
import { MdVisibilityOff, MdVisibility, MdAutorenew, MdMoreHoriz, MdDownload, MdExpandMore } from 'react-icons/md';
|
51
|
+
import { MdVisibilityOff, MdVisibility, MdAutorenew, MdMoreHoriz, MdDownload, MdExpandMore, MdError } from 'react-icons/md';
|
52
52
|
import { gapi } from 'gapi-script';
|
53
53
|
import Pusher from 'pusher-js/with-encryption';
|
54
54
|
import { BiSolidError } from 'react-icons/bi';
|
@@ -73,6 +73,7 @@ import { useForm } from 'react-hook-form';
|
|
73
73
|
import { yupResolver } from '@hookform/resolvers/yup';
|
74
74
|
import { PiDotsNineLight } from 'react-icons/pi';
|
75
75
|
import Container$1 from '@mui/material/Container';
|
76
|
+
import { AiOutlineLoading3Quarters } from 'react-icons/ai';
|
76
77
|
import { BsCheckAll } from 'react-icons/bs';
|
77
78
|
import Popover$1 from '@mui/material/Popover';
|
78
79
|
import MenuItem from '@mui/material/MenuItem';
|
@@ -540,6 +541,7 @@ var teacher_in_charge = "담당 교사";
|
|
540
541
|
var counselor = "상담교사";
|
541
542
|
var new_question = "새로운 질문";
|
542
543
|
var hour = "시간";
|
544
|
+
var hour_h = "시간";
|
543
545
|
var minute = "분";
|
544
546
|
var second = "두번째";
|
545
547
|
var question_order = "{{number}} 번";
|
@@ -1033,6 +1035,7 @@ var teacher_required = "선생님은 필수입니다";
|
|
1033
1035
|
var total_users = "총 사용자";
|
1034
1036
|
var added_date = "추가된 날짜";
|
1035
1037
|
var sync_exam_results = "시험 결과 동기화";
|
1038
|
+
var sync_textbook_results = "교재 결과 동기화";
|
1036
1039
|
var update_data_fail = "데이터 업데이트 실패";
|
1037
1040
|
var add_students_to_class = "수업에 학생 추가";
|
1038
1041
|
var add_teachers_to_class = "수업에 교사 추가";
|
@@ -1043,9 +1046,13 @@ var question_management = "질문 관리";
|
|
1043
1046
|
var student_data = "학생 데이터";
|
1044
1047
|
var problem_number_question_chart = "문제 {{number}}번";
|
1045
1048
|
var are_you_sure_to_sync_exam_results_to_academy = "시험 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까(백그라운드에서 실행되며 시간이 다소 소요됨)";
|
1049
|
+
var are_you_sure_to_sync_textbook_results_to_academy = "교재 학습 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까? (백그라운드에서 실행되며 시간이 다소 소요됨)";
|
1046
1050
|
var messages = {
|
1047
|
-
exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다"
|
1051
|
+
exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다",
|
1052
|
+
textbook_sessions_are_being_synchronized: "{{ total }} 개의 교재 학습 세션이 동기화되고 있습니다"
|
1048
1053
|
};
|
1054
|
+
var sync_exam = "시험 동기화";
|
1055
|
+
var sync_textbook = "교재 동기화";
|
1049
1056
|
var submit = "제출하다";
|
1050
1057
|
var must_select_a_teacher_first = "먼저 교사를 선택해야 합니다";
|
1051
1058
|
var student_grade_is_invalid = "학생 등급은 1에서 12 사이여야 합니다";
|
@@ -1109,6 +1116,7 @@ var academy_invite_detail = "아카데미 초대 세부정보";
|
|
1109
1116
|
var are_you_sure_to_delete_academy_invite = "이 아카데미 초대를 삭제하시겠습니까?";
|
1110
1117
|
var day = "낮";
|
1111
1118
|
var days = "날";
|
1119
|
+
var month = "월";
|
1112
1120
|
var emails = "이메일";
|
1113
1121
|
var is_accepted = "승인됨";
|
1114
1122
|
var re_send = "다시 보내기";
|
@@ -1492,6 +1500,8 @@ var order_matters = "순서 상관 있음";
|
|
1492
1500
|
var order_does_not_matter = "순서 상관 없음";
|
1493
1501
|
var synonym_processing = "답 이음동의어 처리";
|
1494
1502
|
var compare_type = "비교 유형";
|
1503
|
+
var all_changes_saved = "모든 변경 사항이 저장되었습니다";
|
1504
|
+
var saving = "절약";
|
1495
1505
|
var textbook_name = "교재 이름";
|
1496
1506
|
var korean_language = "국어";
|
1497
1507
|
var answer_cannot_be_empty = "답변은 비워둘 수 없습니다";
|
@@ -1538,6 +1548,13 @@ var admin_to_teachers = "관리자에서 교사들에게";
|
|
1538
1548
|
var teacher_to_teachers = "교사에서 교사들에게";
|
1539
1549
|
var student_required = "학생은 필수입니다";
|
1540
1550
|
var teachers_required = "교사가 필요합니다";
|
1551
|
+
var all_changes_are_not_saved_yet = "아직 모든 변경 사항이 저장되지 않았습니다";
|
1552
|
+
var pause = "일시정지";
|
1553
|
+
var press_to_start = "눌러서 시작하기";
|
1554
|
+
var study_timer = "순공 타이머";
|
1555
|
+
var show_timer = "타이머 표시";
|
1556
|
+
var failed_to_pause_the_subject_name = "과목 '{{name}}'를 일시 중지하는 데 실패했습니다";
|
1557
|
+
var failed_to_start_the_subject_name = "과목 '{{name}}'를 시작하는 데 실패했습니다";
|
1541
1558
|
var lang_ko = {
|
1542
1559
|
problem_solving: problem_solving,
|
1543
1560
|
my_story: my_story,
|
@@ -1729,6 +1746,7 @@ var lang_ko = {
|
|
1729
1746
|
counselor: counselor,
|
1730
1747
|
new_question: new_question,
|
1731
1748
|
hour: hour,
|
1749
|
+
hour_h: hour_h,
|
1732
1750
|
minute: minute,
|
1733
1751
|
second: second,
|
1734
1752
|
question_order: question_order,
|
@@ -2217,6 +2235,7 @@ var lang_ko = {
|
|
2217
2235
|
total_users: total_users,
|
2218
2236
|
added_date: added_date,
|
2219
2237
|
sync_exam_results: sync_exam_results,
|
2238
|
+
sync_textbook_results: sync_textbook_results,
|
2220
2239
|
update_data_fail: update_data_fail,
|
2221
2240
|
add_students_to_class: add_students_to_class,
|
2222
2241
|
add_teachers_to_class: add_teachers_to_class,
|
@@ -2227,7 +2246,10 @@ var lang_ko = {
|
|
2227
2246
|
student_data: student_data,
|
2228
2247
|
problem_number_question_chart: problem_number_question_chart,
|
2229
2248
|
are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy,
|
2249
|
+
are_you_sure_to_sync_textbook_results_to_academy: are_you_sure_to_sync_textbook_results_to_academy,
|
2230
2250
|
messages: messages,
|
2251
|
+
sync_exam: sync_exam,
|
2252
|
+
sync_textbook: sync_textbook,
|
2231
2253
|
submit: submit,
|
2232
2254
|
must_select_a_teacher_first: must_select_a_teacher_first,
|
2233
2255
|
student_grade_is_invalid: student_grade_is_invalid,
|
@@ -2291,6 +2313,7 @@ var lang_ko = {
|
|
2291
2313
|
are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite,
|
2292
2314
|
day: day,
|
2293
2315
|
days: days,
|
2316
|
+
month: month,
|
2294
2317
|
emails: emails,
|
2295
2318
|
is_accepted: is_accepted,
|
2296
2319
|
re_send: re_send,
|
@@ -2662,6 +2685,8 @@ var lang_ko = {
|
|
2662
2685
|
order_does_not_matter: order_does_not_matter,
|
2663
2686
|
synonym_processing: synonym_processing,
|
2664
2687
|
compare_type: compare_type,
|
2688
|
+
all_changes_saved: all_changes_saved,
|
2689
|
+
saving: saving,
|
2665
2690
|
textbook_name: textbook_name,
|
2666
2691
|
korean_language: korean_language,
|
2667
2692
|
answer_cannot_be_empty: answer_cannot_be_empty,
|
@@ -2707,7 +2732,14 @@ var lang_ko = {
|
|
2707
2732
|
admin_to_teachers: admin_to_teachers,
|
2708
2733
|
teacher_to_teachers: teacher_to_teachers,
|
2709
2734
|
student_required: student_required,
|
2710
|
-
teachers_required: teachers_required
|
2735
|
+
teachers_required: teachers_required,
|
2736
|
+
all_changes_are_not_saved_yet: all_changes_are_not_saved_yet,
|
2737
|
+
pause: pause,
|
2738
|
+
press_to_start: press_to_start,
|
2739
|
+
study_timer: study_timer,
|
2740
|
+
show_timer: show_timer,
|
2741
|
+
failed_to_pause_the_subject_name: failed_to_pause_the_subject_name,
|
2742
|
+
failed_to_start_the_subject_name: failed_to_start_the_subject_name
|
2711
2743
|
};
|
2712
2744
|
|
2713
2745
|
var problem_solving$1 = "Problem Solving";
|
@@ -2926,6 +2958,7 @@ var counselor$1 = "Counselor";
|
|
2926
2958
|
var new_question$1 = "New Question";
|
2927
2959
|
var hour$1 = "hr";
|
2928
2960
|
var hours = "hrs";
|
2961
|
+
var hour_h$1 = "h";
|
2929
2962
|
var minute$1 = "min";
|
2930
2963
|
var second$1 = "second";
|
2931
2964
|
var question_order$1 = "Number {{number}}";
|
@@ -3394,6 +3427,7 @@ var teacher_required$1 = "Teacher is required";
|
|
3394
3427
|
var total_users$1 = "Total users";
|
3395
3428
|
var added_date$1 = "Added date";
|
3396
3429
|
var sync_exam_results$1 = "Sync exam results";
|
3430
|
+
var sync_textbook_results$1 = "Sync textbook results";
|
3397
3431
|
var update_data_fail$1 = "Update data fail";
|
3398
3432
|
var add_students_to_class$1 = "Add students to class";
|
3399
3433
|
var add_teachers_to_class$1 = "Add teachers to class";
|
@@ -3404,9 +3438,13 @@ var question_management$1 = "Question Management";
|
|
3404
3438
|
var student_data$1 = "Student Data";
|
3405
3439
|
var problem_number_question_chart$1 = "Q. {{number}}";
|
3406
3440
|
var are_you_sure_to_sync_exam_results_to_academy$1 = "Are you sure to sync exam results to academy \"{{ academyName }}\" (it will run in the background and take a while)";
|
3441
|
+
var are_you_sure_to_sync_textbook_results_to_academy$1 = "Are you sure to sync textbook results to academy \"{{ academyName }}\" (it will run in the background and take a while)";
|
3407
3442
|
var messages$1 = {
|
3408
|
-
exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized"
|
3443
|
+
exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized",
|
3444
|
+
textbook_sessions_are_being_synchronized: "{{ total }} textbook sessions are being synchronized"
|
3409
3445
|
};
|
3446
|
+
var sync_exam$1 = "Sync Exam";
|
3447
|
+
var sync_textbook$1 = "Sync Textbook";
|
3410
3448
|
var submit$1 = "Submit";
|
3411
3449
|
var must_select_a_teacher_first$1 = "Must select a teacher first";
|
3412
3450
|
var student_grade_is_invalid$1 = "Student grade must be from 1 to 12";
|
@@ -3470,6 +3508,7 @@ var academy_invite_detail$1 = "Academy Invite Detail";
|
|
3470
3508
|
var are_you_sure_to_delete_academy_invite$1 = "Are you sure to delete this academy invite?";
|
3471
3509
|
var day$1 = "day";
|
3472
3510
|
var days$1 = "days";
|
3511
|
+
var month$1 = "month";
|
3473
3512
|
var emails$1 = "Emails";
|
3474
3513
|
var is_accepted$1 = "Is Accepted";
|
3475
3514
|
var re_send$1 = "Resend";
|
@@ -3854,6 +3893,8 @@ var order_matters$1 = "Order matters";
|
|
3854
3893
|
var order_does_not_matter$1 = "Order doesn't matter";
|
3855
3894
|
var synonym_processing$1 = "Answer Synonym processing";
|
3856
3895
|
var compare_type$1 = "Compare Type";
|
3896
|
+
var all_changes_saved$1 = "All changes saved";
|
3897
|
+
var saving$1 = "Saving";
|
3857
3898
|
var textbook_name$1 = "Textbook name";
|
3858
3899
|
var korean_language$1 = "Korean";
|
3859
3900
|
var answer_cannot_be_empty$1 = "Answer cannot be empty";
|
@@ -3900,6 +3941,13 @@ var admin_to_teachers$1 = "Admin to teachers";
|
|
3900
3941
|
var teacher_to_teachers$1 = "Teacher to teachers";
|
3901
3942
|
var student_required$1 = "Student is required";
|
3902
3943
|
var teachers_required$1 = "Teachers are required";
|
3944
|
+
var all_changes_are_not_saved_yet$1 = "All changes are not saved yet";
|
3945
|
+
var pause$1 = "Pause";
|
3946
|
+
var press_to_start$1 = "Press to start";
|
3947
|
+
var study_timer$1 = "Focused Study Timer";
|
3948
|
+
var show_timer$1 = "Show timer";
|
3949
|
+
var failed_to_pause_the_subject_name$1 = "Failed to pause the subject '{{name}}'";
|
3950
|
+
var failed_to_start_the_subject_name$1 = "Failed to start the subject '{{name}}'";
|
3903
3951
|
var lang_en = {
|
3904
3952
|
problem_solving: problem_solving$1,
|
3905
3953
|
my_story: my_story$1,
|
@@ -4117,6 +4165,7 @@ var lang_en = {
|
|
4117
4165
|
new_question: new_question$1,
|
4118
4166
|
hour: hour$1,
|
4119
4167
|
hours: hours,
|
4168
|
+
hour_h: hour_h$1,
|
4120
4169
|
minute: minute$1,
|
4121
4170
|
second: second$1,
|
4122
4171
|
question_order: question_order$1,
|
@@ -4580,6 +4629,7 @@ var lang_en = {
|
|
4580
4629
|
total_users: total_users$1,
|
4581
4630
|
added_date: added_date$1,
|
4582
4631
|
sync_exam_results: sync_exam_results$1,
|
4632
|
+
sync_textbook_results: sync_textbook_results$1,
|
4583
4633
|
update_data_fail: update_data_fail$1,
|
4584
4634
|
add_students_to_class: add_students_to_class$1,
|
4585
4635
|
add_teachers_to_class: add_teachers_to_class$1,
|
@@ -4590,7 +4640,10 @@ var lang_en = {
|
|
4590
4640
|
student_data: student_data$1,
|
4591
4641
|
problem_number_question_chart: problem_number_question_chart$1,
|
4592
4642
|
are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy$1,
|
4643
|
+
are_you_sure_to_sync_textbook_results_to_academy: are_you_sure_to_sync_textbook_results_to_academy$1,
|
4593
4644
|
messages: messages$1,
|
4645
|
+
sync_exam: sync_exam$1,
|
4646
|
+
sync_textbook: sync_textbook$1,
|
4594
4647
|
submit: submit$1,
|
4595
4648
|
must_select_a_teacher_first: must_select_a_teacher_first$1,
|
4596
4649
|
student_grade_is_invalid: student_grade_is_invalid$1,
|
@@ -4654,6 +4707,7 @@ var lang_en = {
|
|
4654
4707
|
are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite$1,
|
4655
4708
|
day: day$1,
|
4656
4709
|
days: days$1,
|
4710
|
+
month: month$1,
|
4657
4711
|
emails: emails$1,
|
4658
4712
|
is_accepted: is_accepted$1,
|
4659
4713
|
re_send: re_send$1,
|
@@ -5026,6 +5080,8 @@ var lang_en = {
|
|
5026
5080
|
order_does_not_matter: order_does_not_matter$1,
|
5027
5081
|
synonym_processing: synonym_processing$1,
|
5028
5082
|
compare_type: compare_type$1,
|
5083
|
+
all_changes_saved: all_changes_saved$1,
|
5084
|
+
saving: saving$1,
|
5029
5085
|
textbook_name: textbook_name$1,
|
5030
5086
|
korean_language: korean_language$1,
|
5031
5087
|
answer_cannot_be_empty: answer_cannot_be_empty$1,
|
@@ -5071,7 +5127,14 @@ var lang_en = {
|
|
5071
5127
|
admin_to_teachers: admin_to_teachers$1,
|
5072
5128
|
teacher_to_teachers: teacher_to_teachers$1,
|
5073
5129
|
student_required: student_required$1,
|
5074
|
-
teachers_required: teachers_required$1
|
5130
|
+
teachers_required: teachers_required$1,
|
5131
|
+
all_changes_are_not_saved_yet: all_changes_are_not_saved_yet$1,
|
5132
|
+
pause: pause$1,
|
5133
|
+
press_to_start: press_to_start$1,
|
5134
|
+
study_timer: study_timer$1,
|
5135
|
+
show_timer: show_timer$1,
|
5136
|
+
failed_to_pause_the_subject_name: failed_to_pause_the_subject_name$1,
|
5137
|
+
failed_to_start_the_subject_name: failed_to_start_the_subject_name$1
|
5075
5138
|
};
|
5076
5139
|
|
5077
5140
|
i18n.use(initReactI18next).init({
|
@@ -5529,7 +5592,7 @@ var PrintExamView2 = function PrintExamView2(_ref) {
|
|
5529
5592
|
}, t("print_pdf"))));
|
5530
5593
|
};
|
5531
5594
|
|
5532
|
-
var styles = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","btn-login-google":"_2HqmH","math-jax":"_3Pfdk","block-login":"_wWIyO","box-login":"_38Lo1","btn-primary":"_rd4Uy","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw","truncate":"_3NJzN","headers":"_3xnI5","logo-container":"_3YG70","tabBox":"_1CQPn","routerBox":"_3hx2T","tabText":"_3UyhW","router-link-active":"_1TGKA","router-link":"_1AqMh","userImg":"_2RI6G","disabled-link":"_3aVHg","line-clamp":"_3fpky"};
|
5595
|
+
var styles = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","btn-login-google":"_2HqmH","math-jax":"_3Pfdk","block-login":"_wWIyO","box-login":"_38Lo1","btn-primary":"_rd4Uy","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw","truncate":"_3NJzN","headers":"_3xnI5","logo-container":"_3YG70","tabBox":"_1CQPn","routerBox":"_3hx2T","tabText":"_3UyhW","router-link-active":"_1TGKA","router-link":"_1AqMh","userImg":"_2RI6G","disabled-link":"_3aVHg","line-clamp":"_3fpky","timer-menu":"_3bvVg","timer-menu-item":"_z624V","subject-name":"_2KJX4","duration":"_1mwlk","icon-start":"_maff_"};
|
5533
5596
|
|
5534
5597
|
var config = {
|
5535
5598
|
loader: {
|
@@ -6278,6 +6341,12 @@ var TextbookEditorType;
|
|
6278
6341
|
TextbookEditorType[TextbookEditorType["Korea"] = 1] = "Korea";
|
6279
6342
|
TextbookEditorType[TextbookEditorType["Math"] = 2] = "Math";
|
6280
6343
|
})(TextbookEditorType || (TextbookEditorType = {}));
|
6344
|
+
var PrintStatus;
|
6345
|
+
(function (PrintStatus) {
|
6346
|
+
PrintStatus[PrintStatus["Idle"] = 0] = "Idle";
|
6347
|
+
PrintStatus[PrintStatus["Saving"] = 1] = "Saving";
|
6348
|
+
PrintStatus[PrintStatus["Saved"] = 2] = "Saved";
|
6349
|
+
})(PrintStatus || (PrintStatus = {}));
|
6281
6350
|
|
6282
6351
|
var SchoolType$1;
|
6283
6352
|
(function (SchoolType) {
|
@@ -6287,6 +6356,13 @@ var SchoolType$1;
|
|
6287
6356
|
SchoolType[SchoolType["High"] = 3] = "High";
|
6288
6357
|
})(SchoolType$1 || (SchoolType$1 = {}));
|
6289
6358
|
|
6359
|
+
var SubjectTimerStatus;
|
6360
|
+
(function (SubjectTimerStatus) {
|
6361
|
+
SubjectTimerStatus[SubjectTimerStatus["NotStarted"] = 0] = "NotStarted";
|
6362
|
+
SubjectTimerStatus[SubjectTimerStatus["Started"] = 1] = "Started";
|
6363
|
+
SubjectTimerStatus[SubjectTimerStatus["Paused"] = 2] = "Paused";
|
6364
|
+
})(SubjectTimerStatus || (SubjectTimerStatus = {}));
|
6365
|
+
|
6290
6366
|
var canAccess = function canAccess(userRoles, componentRoles) {
|
6291
6367
|
if (!Array.isArray(userRoles)) {
|
6292
6368
|
return false;
|
@@ -6536,6 +6612,11 @@ var getRemainTime = function getRemainTime(startTime, duration) {
|
|
6536
6612
|
if (timePass > durationInNumber) return 0;
|
6537
6613
|
return durationInNumber - timePass;
|
6538
6614
|
};
|
6615
|
+
var getCountTime = function getCountTime(startTime, duration) {
|
6616
|
+
var timePass = diffFromNow(startTime, "second");
|
6617
|
+
if (typeof timePass !== "number") return null;
|
6618
|
+
return duration + timePass;
|
6619
|
+
};
|
6539
6620
|
|
6540
6621
|
var formatDateTime = function formatDateTime(inputDate) {
|
6541
6622
|
var date = new Date(inputDate);
|
@@ -8262,6 +8343,27 @@ var getSubjectListApi = function getSubjectListApi(textSearch) {
|
|
8262
8343
|
return Promise.reject(e);
|
8263
8344
|
}
|
8264
8345
|
};
|
8346
|
+
var getStudentSubjectListApi = function getStudentSubjectListApi() {
|
8347
|
+
try {
|
8348
|
+
return Promise.resolve(api.get(SUBJECT_URL + "/timers"));
|
8349
|
+
} catch (e) {
|
8350
|
+
return Promise.reject(e);
|
8351
|
+
}
|
8352
|
+
};
|
8353
|
+
var startStudentSubjectTimerApi = function startStudentSubjectTimerApi(subjectId) {
|
8354
|
+
try {
|
8355
|
+
return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers"));
|
8356
|
+
} catch (e) {
|
8357
|
+
return Promise.reject(e);
|
8358
|
+
}
|
8359
|
+
};
|
8360
|
+
var pauseStudentSubjectApi = function pauseStudentSubjectApi(subjectId, recordId, data) {
|
8361
|
+
try {
|
8362
|
+
return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers/" + recordId, data));
|
8363
|
+
} catch (e) {
|
8364
|
+
return Promise.reject(e);
|
8365
|
+
}
|
8366
|
+
};
|
8265
8367
|
|
8266
8368
|
var SubjectSelector = function SubjectSelector(_ref) {
|
8267
8369
|
var value = _ref.value,
|
@@ -10331,6 +10433,7 @@ var grey = {
|
|
10331
10433
|
var green = {
|
10332
10434
|
0: '#FFFFFF',
|
10333
10435
|
100: '#F0FFF6',
|
10436
|
+
200: '#D2FFE4',
|
10334
10437
|
300: '#89F0B2',
|
10335
10438
|
500: '#3DC674',
|
10336
10439
|
700: '#349056',
|
@@ -33880,11 +33983,11 @@ var TextbookRow = function TextbookRow(_ref) {
|
|
33880
33983
|
});
|
33881
33984
|
var _useTranslation = useTranslation(),
|
33882
33985
|
t = _useTranslation.t;
|
33883
|
-
var isEditable =
|
33986
|
+
var isEditable = !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && (((_data$createdBy = data.createdBy) === null || _data$createdBy === void 0 ? void 0 : _data$createdBy.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) || ((_data$textbookOwners = data.textbookOwners) === null || _data$textbookOwners === void 0 ? void 0 : _data$textbookOwners.some(function (i) {
|
33884
33987
|
var _infoUser$email, _infoUser$email$trim;
|
33885
33988
|
return (i === null || i === void 0 ? void 0 : i.email.trim().toUpperCase()) === (infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$email = infoUser.email) === null || _infoUser$email === void 0 ? void 0 : (_infoUser$email$trim = _infoUser$email.trim()) === null || _infoUser$email$trim === void 0 ? void 0 : _infoUser$email$trim.toUpperCase()) && (i === null || i === void 0 ? void 0 : i.academyId) === (academy === null || academy === void 0 ? void 0 : academy.id);
|
33886
|
-
})))
|
33887
|
-
var isDeleteAble = !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && ((_data$createdBy2 = data.createdBy) === null || _data$createdBy2 === void 0 ? void 0 : _data$createdBy2.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id)
|
33989
|
+
})));
|
33990
|
+
var isDeleteAble = !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && ((_data$createdBy2 = data.createdBy) === null || _data$createdBy2 === void 0 ? void 0 : _data$createdBy2.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id);
|
33888
33991
|
var isSharable = !data.isPublic && data.isShared && onAcademy && (isAdminSite || isSuperAdminUser || !isAdmin && data.createdBy.id === infoUser.id);
|
33889
33992
|
var handleUpdateTextbook = function handleUpdateTextbook() {
|
33890
33993
|
onUpdateTextbook(data);
|
@@ -34905,10 +35008,10 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
34905
35008
|
var isAdminSite = role === Role.Admin;
|
34906
35009
|
var onAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
|
34907
35010
|
var isSuperAdminUser = !!user && user.isSuperAdmin;
|
34908
|
-
var isEditable = !selectedTextbook ||
|
35011
|
+
var isEditable = !selectedTextbook || !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && selectedTextbook.isShared && (((_selectedTextbook$cre = selectedTextbook.createdBy) === null || _selectedTextbook$cre === void 0 ? void 0 : _selectedTextbook$cre.id) === (user === null || user === void 0 ? void 0 : user.id) || selectedTextbook.textbookOwners.some(function (i) {
|
34909
35012
|
var _user$email, _user$email$trim;
|
34910
35013
|
return i.email.trim().toUpperCase() === (user === null || user === void 0 ? void 0 : (_user$email = user.email) === null || _user$email === void 0 ? void 0 : (_user$email$trim = _user$email.trim()) === null || _user$email$trim === void 0 ? void 0 : _user$email$trim.toUpperCase()) && i.academyId === (academy === null || academy === void 0 ? void 0 : academy.id);
|
34911
|
-
}))
|
35014
|
+
}));
|
34912
35015
|
var disabledTextbookOwners = !selectedTextbook && isAdmin || selectedTextbook && (!isEditable || isTeacher && ((_selectedTextbook$cre2 = selectedTextbook.createdBy) === null || _selectedTextbook$cre2 === void 0 ? void 0 : _selectedTextbook$cre2.id) !== (user === null || user === void 0 ? void 0 : user.id) || isAdmin && !isSuperAdminUser);
|
34913
35016
|
var handleOpenConfirmDeleteChapterDialog = function handleOpenConfirmDeleteChapterDialog(chapter) {
|
34914
35017
|
setSelectedChapter(chapter);
|
@@ -35010,6 +35113,24 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
35010
35113
|
return Promise.reject(e);
|
35011
35114
|
}
|
35012
35115
|
};
|
35116
|
+
var handleSaveData = useCallback(function (values) {
|
35117
|
+
try {
|
35118
|
+
if (!coverImage && !(values !== null && values !== void 0 && values.coverImage)) {
|
35119
|
+
return Promise.resolve();
|
35120
|
+
}
|
35121
|
+
return Promise.resolve(_catch(function () {
|
35122
|
+
var coverImg = coverImage || (values === null || values === void 0 ? void 0 : values.coverImage);
|
35123
|
+
return Promise.resolve(updateTextbookApi$1(_extends({}, values, {
|
35124
|
+
coverImage: coverImg
|
35125
|
+
}), (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.id) || 0, isSuperAdmin)).then(function () {});
|
35126
|
+
}, function (error) {
|
35127
|
+
toast.error(getErrorMessage(t, error));
|
35128
|
+
throw error;
|
35129
|
+
}));
|
35130
|
+
} catch (e) {
|
35131
|
+
return Promise.reject(e);
|
35132
|
+
}
|
35133
|
+
}, [coverImage, isSuperAdmin, JSON.stringify(selectedTextbook)]);
|
35013
35134
|
useEffect(function () {
|
35014
35135
|
if (!textbookId) return;
|
35015
35136
|
handleGetTextbookDetail();
|
@@ -35028,6 +35149,7 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
35028
35149
|
isSuperAdminUser: isSuperAdminUser,
|
35029
35150
|
openDialog: openDialog,
|
35030
35151
|
handleSubmit: handleSubmit,
|
35152
|
+
handleSaveData: handleSaveData,
|
35031
35153
|
selectedTextbook: selectedTextbook,
|
35032
35154
|
handleOpenDialog: handleOpenDialog,
|
35033
35155
|
handleCloseDialog: handleCloseDialog,
|
@@ -35321,6 +35443,8 @@ var CompareTypeOptions = [{
|
|
35321
35443
|
label: "synonym_processing",
|
35322
35444
|
value: QuestionAnswerType.SynonymProcessing
|
35323
35445
|
}];
|
35446
|
+
var SAVE_TIME_INTERVAL_IN_MILLISECONDS = 60 * 1000;
|
35447
|
+
var SAVE_TIME_MAX_DIFF_IN_MILLISECONDS = 1000;
|
35324
35448
|
|
35325
35449
|
var CustomTextbookTab = function CustomTextbookTab(props) {
|
35326
35450
|
var children = props.children,
|
@@ -38496,8 +38620,9 @@ var TextbookOwnersTab = function TextbookOwnersTab(_ref) {
|
|
38496
38620
|
}));
|
38497
38621
|
};
|
38498
38622
|
|
38499
|
-
var _excluded$m = ["isCreatedByAdmin", "isSuperAdminUser", "isSuperAdmin", "isAdmin", "textbookId", "selected", "coverImage", "disabled", "ownersDisabled", "onChangeTab", "onUploadImage"];
|
38623
|
+
var _excluded$m = ["isCreatedByAdmin", "isSuperAdminUser", "isSuperAdmin", "isAdmin", "textbookId", "selected", "coverImage", "disabled", "ownersDisabled", "selectedTextbook", "handleSaveData", "onChangeTab", "onUploadImage"];
|
38500
38624
|
var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
38625
|
+
var _valuesTextbook$curre;
|
38501
38626
|
var isCreatedByAdmin = _ref.isCreatedByAdmin,
|
38502
38627
|
isSuperAdminUser = _ref.isSuperAdminUser,
|
38503
38628
|
isSuperAdmin = _ref.isSuperAdmin,
|
@@ -38507,6 +38632,8 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38507
38632
|
coverImage = _ref.coverImage,
|
38508
38633
|
disabled = _ref.disabled,
|
38509
38634
|
ownersDisabled = _ref.ownersDisabled,
|
38635
|
+
selectedTextbook = _ref.selectedTextbook,
|
38636
|
+
handleSaveData = _ref.handleSaveData,
|
38510
38637
|
onChangeTab = _ref.onChangeTab,
|
38511
38638
|
onUploadImage = _ref.onUploadImage,
|
38512
38639
|
formikProps = _objectWithoutPropertiesLoose(_ref, _excluded$m);
|
@@ -38515,6 +38642,20 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38515
38642
|
dirty = formikProps.dirty,
|
38516
38643
|
submitCount = formikProps.submitCount,
|
38517
38644
|
setValues = formikProps.setValues;
|
38645
|
+
var theme = useTheme();
|
38646
|
+
var savedRunRef = useRef(Date.now());
|
38647
|
+
var runTimeRef = useRef(Date.now());
|
38648
|
+
var valuesTextbook = useRef(null);
|
38649
|
+
var isFirstLoadRef = useRef(true);
|
38650
|
+
var _React$useState = React__default.useState(PrintStatus.Idle),
|
38651
|
+
saveStatus = _React$useState[0],
|
38652
|
+
setSaveStatus = _React$useState[1];
|
38653
|
+
var timeoutRef = useRef(null);
|
38654
|
+
var isProcessingRef = useRef(false);
|
38655
|
+
var pendingValuesRef = useRef(null);
|
38656
|
+
var _useState = useState(),
|
38657
|
+
lastEdited = _useState[0],
|
38658
|
+
setLastEdited = _useState[1];
|
38518
38659
|
useEffect(function () {
|
38519
38660
|
var handleBeforeUnload = function handleBeforeUnload(event) {
|
38520
38661
|
var message = t$1("are_you_sure_you_want_to_quit_yours_changes_may_not_be_saved");
|
@@ -38535,9 +38676,99 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38535
38676
|
var newValues = _resetAllCategoriesAndQuestionTypesBySubject(values, val);
|
38536
38677
|
setValues(newValues);
|
38537
38678
|
};
|
38679
|
+
useEffect(function () {
|
38680
|
+
if (!valuesTextbook.current && isFirstLoadRef.current && !_$8.isEqual(values, DEFAULT_TEXTBOOK_REQUEST)) {
|
38681
|
+
valuesTextbook.current = _$8.cloneDeep(values);
|
38682
|
+
isFirstLoadRef.current = false;
|
38683
|
+
}
|
38684
|
+
}, [values]);
|
38685
|
+
var _handleSave = function handleSave(valuesProps) {
|
38686
|
+
try {
|
38687
|
+
var _temp = _finallyRethrows(function () {
|
38688
|
+
return _catch(function () {
|
38689
|
+
isProcessingRef.current = true;
|
38690
|
+
setSaveStatus(PrintStatus.Saving);
|
38691
|
+
var valuesToSave = valuesProps || values;
|
38692
|
+
return Promise.resolve(handleSaveData(valuesToSave)).then(function () {
|
38693
|
+
valuesTextbook.current = _$8.cloneDeep(valuesToSave);
|
38694
|
+
var now = Date.now();
|
38695
|
+
savedRunRef.current = now;
|
38696
|
+
runTimeRef.current = now;
|
38697
|
+
setSaveStatus(PrintStatus.Saved);
|
38698
|
+
});
|
38699
|
+
}, function (error) {
|
38700
|
+
setSaveStatus(PrintStatus.Idle);
|
38701
|
+
console.error(error);
|
38702
|
+
});
|
38703
|
+
}, function (_wasThrown, _result) {
|
38704
|
+
isProcessingRef.current = false;
|
38705
|
+
if (pendingValuesRef.current) {
|
38706
|
+
if (timeoutRef.current) {
|
38707
|
+
clearTimeout(timeoutRef.current);
|
38708
|
+
}
|
38709
|
+
timeoutRef.current = setTimeout(function () {
|
38710
|
+
timeoutRef.current = null;
|
38711
|
+
var pendingValues = pendingValuesRef.current;
|
38712
|
+
if (pendingValues) {
|
38713
|
+
_handleSave(pendingValues);
|
38714
|
+
pendingValuesRef.current = null;
|
38715
|
+
}
|
38716
|
+
}, SAVE_TIME_INTERVAL_IN_MILLISECONDS);
|
38717
|
+
}
|
38718
|
+
if (_wasThrown) throw _result;
|
38719
|
+
return _result;
|
38720
|
+
});
|
38721
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
38722
|
+
} catch (e) {
|
38723
|
+
return Promise.reject(e);
|
38724
|
+
}
|
38725
|
+
};
|
38726
|
+
useEffect(function () {
|
38727
|
+
var now = Date.now();
|
38728
|
+
if (valuesTextbook.current && !_$8.isEqual(values, valuesTextbook.current)) setLastEdited(now);
|
38729
|
+
if (!_$8.isEmpty(errors) || !valuesTextbook.current || !(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id)) return;
|
38730
|
+
if (valuesTextbook.current && _$8.isEqual(values, valuesTextbook.current)) return;
|
38731
|
+
if (isProcessingRef.current) {
|
38732
|
+
pendingValuesRef.current = _$8.cloneDeep(values);
|
38733
|
+
return;
|
38734
|
+
}
|
38735
|
+
var timeSinceLastRun = now - runTimeRef.current;
|
38736
|
+
var maxTime = SAVE_TIME_INTERVAL_IN_MILLISECONDS + SAVE_TIME_MAX_DIFF_IN_MILLISECONDS;
|
38737
|
+
if (timeSinceLastRun > maxTime) {
|
38738
|
+
runTimeRef.current = now;
|
38739
|
+
timeSinceLastRun = 0;
|
38740
|
+
}
|
38741
|
+
if (timeSinceLastRun >= SAVE_TIME_INTERVAL_IN_MILLISECONDS) {
|
38742
|
+
if (timeoutRef.current) {
|
38743
|
+
clearTimeout(timeoutRef.current);
|
38744
|
+
timeoutRef.current = null;
|
38745
|
+
pendingValuesRef.current = null;
|
38746
|
+
}
|
38747
|
+
_handleSave();
|
38748
|
+
} else {
|
38749
|
+
pendingValuesRef.current = _$8.cloneDeep(values);
|
38750
|
+
var intevalTime = SAVE_TIME_INTERVAL_IN_MILLISECONDS - timeSinceLastRun;
|
38751
|
+
timeoutRef.current = setTimeout(function () {
|
38752
|
+
timeoutRef.current = null;
|
38753
|
+
var pendingValues = pendingValuesRef.current;
|
38754
|
+
if (pendingValues) {
|
38755
|
+
clearTimeout(timeoutRef.current);
|
38756
|
+
_handleSave(pendingValues);
|
38757
|
+
pendingValuesRef.current = null;
|
38758
|
+
}
|
38759
|
+
}, intevalTime);
|
38760
|
+
}
|
38761
|
+
return function () {
|
38762
|
+
if (timeoutRef.current) {
|
38763
|
+
clearTimeout(timeoutRef.current);
|
38764
|
+
}
|
38765
|
+
};
|
38766
|
+
}, [values, errors]);
|
38538
38767
|
var inforErrors = errors.coverImage || errors.grade || errors.isbn || errors.preparedType || errors.publicationDate || errors.publisher;
|
38539
38768
|
var contentsErrors = errors.chapters;
|
38540
38769
|
var textbookOwnersErrors = errors.textbookOwners;
|
38770
|
+
var hasError = !_$8.isEmpty(errors);
|
38771
|
+
var isSaved = !lastEdited || _$8.isEqual(values, (_valuesTextbook$curre = valuesTextbook.current) != null ? _valuesTextbook$curre : {});
|
38541
38772
|
return React__default.createElement(Form, null, React__default.createElement(Stack, {
|
38542
38773
|
direction: "column",
|
38543
38774
|
gap: 3
|
@@ -38625,7 +38856,45 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38625
38856
|
}), React__default.createElement(FormLabel, {
|
38626
38857
|
htmlFor: "type",
|
38627
38858
|
className: "text-center"
|
38628
|
-
}, t$1("math"))))), React__default.createElement(
|
38859
|
+
}, t$1("math"))))), React__default.createElement(Stack, {
|
38860
|
+
flexDirection: "row",
|
38861
|
+
gap: "8px"
|
38862
|
+
}, React__default.createElement(Stack, {
|
38863
|
+
padding: "6px 12px",
|
38864
|
+
sx: {
|
38865
|
+
transition: "opacity 0.3s ease",
|
38866
|
+
opacity: saveStatus === PrintStatus.Idle && isSaved ? 0 : 1,
|
38867
|
+
pointerEvents: "none",
|
38868
|
+
gap: "8px",
|
38869
|
+
flexDirection: "row",
|
38870
|
+
justifyContent: "center",
|
38871
|
+
alignItems: "center"
|
38872
|
+
}
|
38873
|
+
}, saveStatus === PrintStatus.Saving && React__default.createElement(AiOutlineLoading3Quarters, {
|
38874
|
+
style: {
|
38875
|
+
animation: "spin 1s linear infinite"
|
38876
|
+
}
|
38877
|
+
}), saveStatus === PrintStatus.Saved && isSaved && React__default.createElement(IoCheckmark, null), saveStatus !== PrintStatus.Saving && !isSaved && React__default.createElement(Fragment$1, null, hasError ? React__default.createElement(MdError, {
|
38878
|
+
color: red[900]
|
38879
|
+
}) : React__default.createElement(FaClockRotateLeft, {
|
38880
|
+
size: "14px"
|
38881
|
+
})), React__default.createElement(Typography, {
|
38882
|
+
sx: {
|
38883
|
+
color: theme.palette.grey[700],
|
38884
|
+
fontSize: "14px",
|
38885
|
+
display: "flex",
|
38886
|
+
alignItems: "center",
|
38887
|
+
gap: 1,
|
38888
|
+
"@keyframes spin": {
|
38889
|
+
"0%": {
|
38890
|
+
transform: "rotate(0deg)"
|
38891
|
+
},
|
38892
|
+
"100%": {
|
38893
|
+
transform: "rotate(360deg)"
|
38894
|
+
}
|
38895
|
+
}
|
38896
|
+
}
|
38897
|
+
}, saveStatus === PrintStatus.Saving && t$1("saving"), saveStatus === PrintStatus.Saved && isSaved && t$1("all_changes_saved"), saveStatus !== PrintStatus.Saving && (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.id) && !isSaved && t$1("all_changes_are_not_saved_yet"))), React__default.createElement(Button, {
|
38629
38898
|
type: "submit",
|
38630
38899
|
sx: {
|
38631
38900
|
width: "fit-content"
|
@@ -38732,6 +39001,7 @@ var PreparedTextbookView = function PreparedTextbookView(_ref) {
|
|
38732
39001
|
isSuperAdminUser = _useTextbookManagemen.isSuperAdminUser,
|
38733
39002
|
isAdmin = _useTextbookManagemen.isAdmin,
|
38734
39003
|
coverImage = _useTextbookManagemen.coverImage,
|
39004
|
+
handleSaveData = _useTextbookManagemen.handleSaveData,
|
38735
39005
|
selectedTextbook = _useTextbookManagemen.selectedTextbook,
|
38736
39006
|
handleSubmit = _useTextbookManagemen.handleSubmit,
|
38737
39007
|
handleUploadImage = _useTextbookManagemen.handleUploadImage;
|
@@ -38754,7 +39024,9 @@ var PreparedTextbookView = function PreparedTextbookView(_ref) {
|
|
38754
39024
|
isAdmin: isAdmin,
|
38755
39025
|
isSuperAdmin: isSuperAdmin,
|
38756
39026
|
selected: selected,
|
39027
|
+
handleSaveData: handleSaveData,
|
38757
39028
|
textbookId: textbookId,
|
39029
|
+
selectedTextbook: selectedTextbook,
|
38758
39030
|
onChangeTab: handleChangeTab,
|
38759
39031
|
onUploadImage: handleUploadImage,
|
38760
39032
|
coverImage: coverImage,
|
@@ -39617,7 +39889,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
39617
39889
|
var handleGoToMainPage = function handleGoToMainPage() {
|
39618
39890
|
if (!user) return;
|
39619
39891
|
var isAcademy = user.academyDomain || user.isLearningSpace;
|
39620
|
-
var mainUrl =
|
39892
|
+
var mainUrl = isAcademy ? homeAcademyUrl : homeUrl;
|
39621
39893
|
pushTo(history, mainUrl);
|
39622
39894
|
};
|
39623
39895
|
var handleImageError = function handleImageError() {
|
@@ -40272,6 +40544,491 @@ var singleLogo = function singleLogo(_ref) {
|
|
40272
40544
|
}))));
|
40273
40545
|
};
|
40274
40546
|
|
40547
|
+
var TimerItem = function TimerItem(_ref) {
|
40548
|
+
var data = _ref.data,
|
40549
|
+
seconds = _ref.seconds,
|
40550
|
+
loading = _ref.loading,
|
40551
|
+
activeTimerId = _ref.activeTimerId,
|
40552
|
+
onStartOrPauseTimer = _ref.onStartOrPauseTimer;
|
40553
|
+
var theme = useTheme();
|
40554
|
+
var _useTranslation = useTranslation(),
|
40555
|
+
t = _useTranslation.t;
|
40556
|
+
var handleStartOrPauseTimer = function handleStartOrPauseTimer() {
|
40557
|
+
onStartOrPauseTimer(data);
|
40558
|
+
};
|
40559
|
+
var isStarted = activeTimerId === data.id && data.status === SubjectTimerStatus.Started;
|
40560
|
+
var displayedTime = useMemo(function () {
|
40561
|
+
switch (data.status) {
|
40562
|
+
case SubjectTimerStatus.Started:
|
40563
|
+
return activeTimerId !== data.id ? formatTime$2(Math.floor(data.duration / 1000), t) : formatTime$2(seconds != null ? seconds : 0, t);
|
40564
|
+
case SubjectTimerStatus.NotStarted:
|
40565
|
+
return t("press_to_start");
|
40566
|
+
default:
|
40567
|
+
return formatTime$2(Math.floor(data.duration / 1000), t);
|
40568
|
+
}
|
40569
|
+
}, [data.id, data.status, data.duration, seconds, activeTimerId, t]);
|
40570
|
+
return React__default.createElement(MenuItem, {
|
40571
|
+
className: "" + styles["timer-menu-item"],
|
40572
|
+
sx: {
|
40573
|
+
py: 1,
|
40574
|
+
bgcolor: theme.palette.background.paper,
|
40575
|
+
borderRadius: 0.75,
|
40576
|
+
minHeight: "52px"
|
40577
|
+
},
|
40578
|
+
disabled: loading,
|
40579
|
+
onClick: handleStartOrPauseTimer
|
40580
|
+
}, React__default.createElement(Stack, {
|
40581
|
+
direction: "row",
|
40582
|
+
gap: 1,
|
40583
|
+
sx: {
|
40584
|
+
justifyContent: "space-between",
|
40585
|
+
alignItems: "center",
|
40586
|
+
width: "100%"
|
40587
|
+
}
|
40588
|
+
}, React__default.createElement(Typography, {
|
40589
|
+
className: styles["subject-name"] + " " + styles["truncate"],
|
40590
|
+
fontSize: "14px",
|
40591
|
+
fontWeight: 600
|
40592
|
+
}, data.name), React__default.createElement(Box, {
|
40593
|
+
sx: {
|
40594
|
+
display: "flex",
|
40595
|
+
alignItems: "center",
|
40596
|
+
gap: 1.5
|
40597
|
+
}
|
40598
|
+
}, React__default.createElement(Typography, {
|
40599
|
+
className: "" + styles["duration"],
|
40600
|
+
sx: {
|
40601
|
+
color: isStarted ? theme.palette.common.black : theme.palette.success.light,
|
40602
|
+
fontSize: "14px",
|
40603
|
+
fontWeight: 700
|
40604
|
+
}
|
40605
|
+
}, displayedTime), !isStarted && React__default.createElement(Box, {
|
40606
|
+
className: "" + styles["icon-start"]
|
40607
|
+
}, React__default.createElement(IoPlayCircleSharp, {
|
40608
|
+
size: 20
|
40609
|
+
})))));
|
40610
|
+
};
|
40611
|
+
var TOTAL_SECONDS_IN_A_MINUTE = 60;
|
40612
|
+
var TOTAL_SECONDS_IN_AN_HOUR = 60 * 60;
|
40613
|
+
var formatTime$2 = function formatTime(totalSeconds, t) {
|
40614
|
+
var hours = Math.floor(totalSeconds / TOTAL_SECONDS_IN_AN_HOUR);
|
40615
|
+
var minutes = Math.floor(totalSeconds % TOTAL_SECONDS_IN_AN_HOUR / TOTAL_SECONDS_IN_A_MINUTE);
|
40616
|
+
var seconds = totalSeconds % TOTAL_SECONDS_IN_A_MINUTE;
|
40617
|
+
if (hours > 0) {
|
40618
|
+
return "" + hours.toString().padStart(2, "0") + t("hour_h") + " " + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
|
40619
|
+
}
|
40620
|
+
if (minutes > 0) {
|
40621
|
+
return "" + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
|
40622
|
+
}
|
40623
|
+
return "" + seconds.toString().padStart(2, "0") + t("seconds");
|
40624
|
+
};
|
40625
|
+
|
40626
|
+
var TimerCountItem = function TimerCountItem(_ref) {
|
40627
|
+
var data = _ref.data,
|
40628
|
+
activeTimerId = _ref.activeTimerId,
|
40629
|
+
onChangeTime = _ref.onChangeTime;
|
40630
|
+
var requestAnimationRef = useRef(null);
|
40631
|
+
var user = useSelector(function (state) {
|
40632
|
+
var _state$common;
|
40633
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
40634
|
+
});
|
40635
|
+
useEffect(function () {
|
40636
|
+
if (data.status !== SubjectTimerStatus.Started || !(user !== null && user !== void 0 && user.academyDomain) && !(user !== null && user !== void 0 && user.isLearningSpace) || data.id !== activeTimerId) return;
|
40637
|
+
var _animate = function animate() {
|
40638
|
+
var startTime = data.startTime,
|
40639
|
+
lastResumeTime = data.lastResumeTime,
|
40640
|
+
duration = data.duration;
|
40641
|
+
var startOfTime = lastResumeTime !== DATE_TIME_MIN_VALUE ? lastResumeTime : startTime;
|
40642
|
+
if (startOfTime === DATE_TIME_MIN_VALUE) return;
|
40643
|
+
var time = getCountTime(startOfTime, Math.floor(duration / 1000));
|
40644
|
+
if (typeof time !== "number") {
|
40645
|
+
onChangeTime(data, undefined);
|
40646
|
+
return;
|
40647
|
+
}
|
40648
|
+
onChangeTime(data, time);
|
40649
|
+
requestAnimationRef.current = requestAnimationFrame(_animate);
|
40650
|
+
};
|
40651
|
+
requestAnimationRef.current = requestAnimationFrame(_animate);
|
40652
|
+
return function () {
|
40653
|
+
!!requestAnimationRef.current && cancelAnimationFrame(requestAnimationRef.current);
|
40654
|
+
};
|
40655
|
+
}, [JSON.stringify(data), user === null || user === void 0 ? void 0 : user.id, user === null || user === void 0 ? void 0 : user.academyDomain, user === null || user === void 0 ? void 0 : user.isLearningSpace, activeTimerId]);
|
40656
|
+
return React__default.createElement(Fragment$1, null);
|
40657
|
+
};
|
40658
|
+
|
40659
|
+
var formatDate = function formatDate(t, date) {
|
40660
|
+
return utcToLocalTime(date, t("date_format"));
|
40661
|
+
};
|
40662
|
+
var TimerDropdown = function TimerDropdown() {
|
40663
|
+
var _user$academyDomain$t, _user$academyDomain, _user$academyDomain$t2;
|
40664
|
+
var _useTranslation = useTranslation(),
|
40665
|
+
t = _useTranslation.t;
|
40666
|
+
var theme = useTheme();
|
40667
|
+
var user = useSelector(function (state) {
|
40668
|
+
var _state$common;
|
40669
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
40670
|
+
});
|
40671
|
+
var _useState = useState(null),
|
40672
|
+
open = _useState[0],
|
40673
|
+
setOpen = _useState[1];
|
40674
|
+
var _useState2 = useState([]),
|
40675
|
+
timers = _useState2[0],
|
40676
|
+
setTimers = _useState2[1];
|
40677
|
+
var _useState3 = useState(),
|
40678
|
+
seconds = _useState3[0],
|
40679
|
+
setSeconds = _useState3[1];
|
40680
|
+
var _useState4 = useState(),
|
40681
|
+
activeTimerId = _useState4[0],
|
40682
|
+
setActiveTimerId = _useState4[1];
|
40683
|
+
var _useState5 = useState(false),
|
40684
|
+
loadingItem = _useState5[0],
|
40685
|
+
setLoadingItem = _useState5[1];
|
40686
|
+
var _useState6 = useState(false),
|
40687
|
+
isFetching = _useState6[0],
|
40688
|
+
setFetching = _useState6[1];
|
40689
|
+
var fetchedRef = useRef();
|
40690
|
+
var academyDomain = (_user$academyDomain$t = user === null || user === void 0 ? void 0 : (_user$academyDomain = user.academyDomain) === null || _user$academyDomain === void 0 ? void 0 : (_user$academyDomain$t2 = _user$academyDomain.toLowerCase) === null || _user$academyDomain$t2 === void 0 ? void 0 : _user$academyDomain$t2.call(_user$academyDomain)) != null ? _user$academyDomain$t : "";
|
40691
|
+
var handleChangeTime = function handleChangeTime(data, time) {
|
40692
|
+
if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return;
|
40693
|
+
if (academyDomain !== fetchedRef.current && data.id !== activeTimerId) return;
|
40694
|
+
setSeconds(time);
|
40695
|
+
var key = user.id + "-" + data.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
|
40696
|
+
saveDuration(key, time * 1000);
|
40697
|
+
};
|
40698
|
+
var handleOpen = function handleOpen(event) {
|
40699
|
+
setOpen(event.currentTarget);
|
40700
|
+
};
|
40701
|
+
var handleClose = function handleClose() {
|
40702
|
+
setOpen(null);
|
40703
|
+
};
|
40704
|
+
var handleStartOrPauseTimer = function handleStartOrPauseTimer(data) {
|
40705
|
+
try {
|
40706
|
+
var _temp2 = function _temp2(_result3) {
|
40707
|
+
if (_exit) return _result3;
|
40708
|
+
setLoadingItem(false);
|
40709
|
+
};
|
40710
|
+
var _exit = false;
|
40711
|
+
var isActive = activeTimerId === data.id;
|
40712
|
+
var isPaused = data.status === SubjectTimerStatus.Paused;
|
40713
|
+
setLoadingItem(true);
|
40714
|
+
var _temp = _catch(function () {
|
40715
|
+
return Promise.resolve(handlePauseAllTimers(data.id)).then(function () {
|
40716
|
+
return function () {
|
40717
|
+
if (data.recordId) {
|
40718
|
+
return function () {
|
40719
|
+
if (!isActive && !isPaused) {
|
40720
|
+
setActiveTimerId(data.id);
|
40721
|
+
setTimers(function (timers) {
|
40722
|
+
return timers.map(function (timer) {
|
40723
|
+
return timer.id === data.id ? _extends({}, timer, {
|
40724
|
+
lastResumeTime: moment().utc().toISOString()
|
40725
|
+
}) : timer;
|
40726
|
+
});
|
40727
|
+
});
|
40728
|
+
setLoadingItem(false);
|
40729
|
+
_exit = true;
|
40730
|
+
} else {
|
40731
|
+
return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
|
40732
|
+
status: isPaused ? SubjectTimerStatus.Started : SubjectTimerStatus.Paused,
|
40733
|
+
startTime: isPaused ? moment().utc().valueOf() : 0,
|
40734
|
+
pauseTime: !isPaused ? moment().utc().valueOf() : 0,
|
40735
|
+
duration: isActive && seconds ? seconds * 1000 : data.duration
|
40736
|
+
})).then(function (res) {
|
40737
|
+
setTimers(function (timers) {
|
40738
|
+
return timers.map(function (timer) {
|
40739
|
+
return timer.id === data.id ? res.data : timer;
|
40740
|
+
});
|
40741
|
+
});
|
40742
|
+
setActiveTimerId(!isPaused && isActive ? undefined : data.id);
|
40743
|
+
});
|
40744
|
+
}
|
40745
|
+
}();
|
40746
|
+
} else {
|
40747
|
+
return Promise.resolve(startStudentSubjectTimerApi(data.id)).then(function (res) {
|
40748
|
+
setTimers(function (timers) {
|
40749
|
+
return timers.map(function (timer) {
|
40750
|
+
return timer.id === data.id ? res.data : timer;
|
40751
|
+
});
|
40752
|
+
});
|
40753
|
+
setActiveTimerId(!isPaused && isActive ? undefined : data.id);
|
40754
|
+
});
|
40755
|
+
}
|
40756
|
+
}();
|
40757
|
+
});
|
40758
|
+
}, function () {
|
40759
|
+
toast.error(t(isPaused ? "failed_to_start_the_subject_name" : "failed_to_pause_the_subject_name", {
|
40760
|
+
name: data.name
|
40761
|
+
}));
|
40762
|
+
});
|
40763
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
40764
|
+
} catch (e) {
|
40765
|
+
return Promise.reject(e);
|
40766
|
+
}
|
40767
|
+
};
|
40768
|
+
var handlePauseAllTimers = function handlePauseAllTimers(exceptId) {
|
40769
|
+
try {
|
40770
|
+
!exceptId && setLoadingItem(true);
|
40771
|
+
var tasks = timers.filter(function (i) {
|
40772
|
+
return i.status === SubjectTimerStatus.Started && i.id !== exceptId;
|
40773
|
+
}).map(function (i) {
|
40774
|
+
return handlePauseTimer(i);
|
40775
|
+
});
|
40776
|
+
return Promise.resolve(Promise.all(tasks)).then(function () {
|
40777
|
+
!exceptId && setLoadingItem(false);
|
40778
|
+
});
|
40779
|
+
} catch (e) {
|
40780
|
+
return Promise.reject(e);
|
40781
|
+
}
|
40782
|
+
};
|
40783
|
+
var handlePauseTimer = function handlePauseTimer(data, updateState) {
|
40784
|
+
if (updateState === void 0) {
|
40785
|
+
updateState = true;
|
40786
|
+
}
|
40787
|
+
try {
|
40788
|
+
if (data.status === SubjectTimerStatus.Paused) return Promise.resolve(data);
|
40789
|
+
return Promise.resolve(_catch(function () {
|
40790
|
+
return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
|
40791
|
+
status: SubjectTimerStatus.Paused,
|
40792
|
+
duration: activeTimerId === data.id && seconds ? seconds * 1000 : data.duration,
|
40793
|
+
pauseTime: moment().utc().valueOf()
|
40794
|
+
})).then(function (res) {
|
40795
|
+
if (updateState) setTimers(function (state) {
|
40796
|
+
return state.map(function (i) {
|
40797
|
+
return i.id === data.id ? res.data : i;
|
40798
|
+
});
|
40799
|
+
});
|
40800
|
+
return res.data;
|
40801
|
+
});
|
40802
|
+
}, function () {
|
40803
|
+
activeTimerId === data.id && toast.error(t("failed_to_pause_the_subject_name", {
|
40804
|
+
name: data.name
|
40805
|
+
}));
|
40806
|
+
}));
|
40807
|
+
} catch (e) {
|
40808
|
+
return Promise.reject(e);
|
40809
|
+
}
|
40810
|
+
};
|
40811
|
+
var getDataFromLocalStorage = useCallback(function (items) {
|
40812
|
+
if (fetchedRef.current !== academyDomain) return [];
|
40813
|
+
return items.map(function (item) {
|
40814
|
+
var key = (user === null || user === void 0 ? void 0 : user.id) + "-" + item.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
|
40815
|
+
var duration = getLocalDuration(key, item);
|
40816
|
+
var lastResumeTime = moment().utc().toISOString();
|
40817
|
+
return _extends({}, item, {
|
40818
|
+
duration: duration !== null ? duration : item.duration,
|
40819
|
+
lastResumeTime: lastResumeTime
|
40820
|
+
});
|
40821
|
+
});
|
40822
|
+
}, [user === null || user === void 0 ? void 0 : user.id, academyDomain]);
|
40823
|
+
useEffect(function () {
|
40824
|
+
var fetchData = function fetchData() {
|
40825
|
+
try {
|
40826
|
+
var _temp4 = function _temp4() {
|
40827
|
+
setFetching(false);
|
40828
|
+
};
|
40829
|
+
if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return Promise.resolve();
|
40830
|
+
if (fetchedRef.current == academyDomain && !open) return Promise.resolve();
|
40831
|
+
setFetching(true);
|
40832
|
+
var _temp3 = _catch(function () {
|
40833
|
+
return Promise.resolve(getStudentSubjectListApi()).then(function (res) {
|
40834
|
+
var _items$find;
|
40835
|
+
var _res$data$items = res.data.items,
|
40836
|
+
items = _res$data$items === void 0 ? [] : _res$data$items;
|
40837
|
+
fetchedRef.current = academyDomain;
|
40838
|
+
setTimers(getDataFromLocalStorage(items));
|
40839
|
+
setActiveTimerId((_items$find = items.find(function (i) {
|
40840
|
+
return i.status === SubjectTimerStatus.Started;
|
40841
|
+
})) === null || _items$find === void 0 ? void 0 : _items$find.id);
|
40842
|
+
});
|
40843
|
+
}, function (error) {
|
40844
|
+
toast.error(getErrorMessage(t, error));
|
40845
|
+
});
|
40846
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
40847
|
+
} catch (e) {
|
40848
|
+
return Promise.reject(e);
|
40849
|
+
}
|
40850
|
+
};
|
40851
|
+
fetchData();
|
40852
|
+
}, [t, getDataFromLocalStorage, user === null || user === void 0 ? void 0 : user.isLearningSpace, open]);
|
40853
|
+
var today = formatDate(t);
|
40854
|
+
var isRunning = timers.some(function (timer) {
|
40855
|
+
return timer.status === SubjectTimerStatus.Started;
|
40856
|
+
});
|
40857
|
+
var selectedTimer = timers.find(function (i) {
|
40858
|
+
return i.id === activeTimerId;
|
40859
|
+
});
|
40860
|
+
return React__default.createElement(Fragment$1, null, React__default.createElement(IconButton$1, {
|
40861
|
+
onClick: handleOpen,
|
40862
|
+
sx: {
|
40863
|
+
width: 44,
|
40864
|
+
height: 44,
|
40865
|
+
mx: 1,
|
40866
|
+
borderRadius: "6px",
|
40867
|
+
padding: "8px",
|
40868
|
+
background: !isRunning ? grey[50] : green[100],
|
40869
|
+
"&: hover": {
|
40870
|
+
background: !isRunning ? grey[200] : green[200]
|
40871
|
+
}
|
40872
|
+
}
|
40873
|
+
}, React__default.createElement(Stack, {
|
40874
|
+
justifyContent: "center",
|
40875
|
+
alignItems: "center",
|
40876
|
+
width: "100%",
|
40877
|
+
height: "100%",
|
40878
|
+
sx: {
|
40879
|
+
borderRadius: "50%",
|
40880
|
+
backgroundColor: "#FFF"
|
40881
|
+
}
|
40882
|
+
}, React__default.createElement(IoTimer, {
|
40883
|
+
color: !isRunning ? grey[700] : green[500],
|
40884
|
+
size: "16.25px"
|
40885
|
+
}))), selectedTimer && React__default.createElement(TimerCountItem, {
|
40886
|
+
data: selectedTimer,
|
40887
|
+
activeTimerId: activeTimerId,
|
40888
|
+
onChangeTime: handleChangeTime
|
40889
|
+
}), React__default.createElement(Popover$1, {
|
40890
|
+
open: !!open,
|
40891
|
+
anchorEl: open,
|
40892
|
+
onClose: handleClose,
|
40893
|
+
anchorOrigin: {
|
40894
|
+
vertical: "bottom",
|
40895
|
+
horizontal: "right"
|
40896
|
+
},
|
40897
|
+
transformOrigin: {
|
40898
|
+
vertical: "top",
|
40899
|
+
horizontal: "right"
|
40900
|
+
},
|
40901
|
+
slotProps: {
|
40902
|
+
paper: {
|
40903
|
+
sx: {
|
40904
|
+
px: 2,
|
40905
|
+
mt: 1,
|
40906
|
+
ml: 0.75,
|
40907
|
+
width: 320,
|
40908
|
+
borderRadius: 2,
|
40909
|
+
boxShadow: 3,
|
40910
|
+
bgcolor: theme.palette.grey[50]
|
40911
|
+
}
|
40912
|
+
}
|
40913
|
+
}
|
40914
|
+
}, React__default.createElement(Box, {
|
40915
|
+
sx: {
|
40916
|
+
py: 2,
|
40917
|
+
display: "flex",
|
40918
|
+
alignItems: "center",
|
40919
|
+
justifyContent: "space-between"
|
40920
|
+
}
|
40921
|
+
}, React__default.createElement(Box, {
|
40922
|
+
sx: {
|
40923
|
+
display: "flex",
|
40924
|
+
gap: 1,
|
40925
|
+
alignItems: "center"
|
40926
|
+
}
|
40927
|
+
}, React__default.createElement(Box, {
|
40928
|
+
display: "flex",
|
40929
|
+
alignItems: "center"
|
40930
|
+
}, React__default.createElement(IoTimer, null)), React__default.createElement(Typography, {
|
40931
|
+
variant: "subtitle1",
|
40932
|
+
fontWeight: "bold",
|
40933
|
+
fontSize: "14px"
|
40934
|
+
}, t("study_timer"))), React__default.createElement(Typography, {
|
40935
|
+
color: "textSecondary",
|
40936
|
+
whiteSpace: "nowrap",
|
40937
|
+
fontSize: "14px"
|
40938
|
+
}, today)), React__default.createElement(Divider, {
|
40939
|
+
sx: {
|
40940
|
+
bgcolor: theme.palette.grey[700]
|
40941
|
+
}
|
40942
|
+
}), React__default.createElement(Stack, {
|
40943
|
+
className: "" + styles["timer-menu"],
|
40944
|
+
gap: 1.5,
|
40945
|
+
flexDirection: "column",
|
40946
|
+
sx: {
|
40947
|
+
py: 2,
|
40948
|
+
maxHeight: "360px"
|
40949
|
+
}
|
40950
|
+
}, !isFetching && React__default.createElement(ListView, {
|
40951
|
+
data: timers,
|
40952
|
+
render: function render(item, index) {
|
40953
|
+
return React__default.createElement(TimerItem, {
|
40954
|
+
key: index,
|
40955
|
+
data: item,
|
40956
|
+
loading: loadingItem,
|
40957
|
+
seconds: activeTimerId === item.id ? seconds : undefined,
|
40958
|
+
activeTimerId: activeTimerId,
|
40959
|
+
onStartOrPauseTimer: handleStartOrPauseTimer
|
40960
|
+
});
|
40961
|
+
}
|
40962
|
+
}), isFetching && React__default.createElement(Stack, {
|
40963
|
+
sx: {
|
40964
|
+
width: "100%",
|
40965
|
+
py: 2
|
40966
|
+
},
|
40967
|
+
justifyContent: "center",
|
40968
|
+
alignItems: "center"
|
40969
|
+
}, React__default.createElement(Typography, {
|
40970
|
+
className: "text-muted"
|
40971
|
+
}, React__default.createElement(CircularProgress, {
|
40972
|
+
size: "16px",
|
40973
|
+
color: "success"
|
40974
|
+
}))), !timers.length && !isFetching && React__default.createElement(Box, null, React__default.createElement(Typography, {
|
40975
|
+
className: "text-muted"
|
40976
|
+
}, t("no_data")))), React__default.createElement(Divider, {
|
40977
|
+
sx: {
|
40978
|
+
bgcolor: theme.palette.grey[700]
|
40979
|
+
}
|
40980
|
+
}), React__default.createElement(Box, {
|
40981
|
+
sx: {
|
40982
|
+
p: 2,
|
40983
|
+
textAlign: "right"
|
40984
|
+
}
|
40985
|
+
}, React__default.createElement(Button, {
|
40986
|
+
disableTouchRipple: true,
|
40987
|
+
onClick: function onClick() {
|
40988
|
+
return handlePauseAllTimers();
|
40989
|
+
},
|
40990
|
+
disabled: loadingItem,
|
40991
|
+
sx: {
|
40992
|
+
fontWeight: 700,
|
40993
|
+
color: theme.palette.success.main,
|
40994
|
+
padding: "8px 12px",
|
40995
|
+
bgcolor: theme.palette.background.paper,
|
40996
|
+
"&:hover": {
|
40997
|
+
bgcolor: theme.palette.grey[200]
|
40998
|
+
},
|
40999
|
+
"&:disabled": {
|
41000
|
+
opacity: 0.5
|
41001
|
+
}
|
41002
|
+
}
|
41003
|
+
}, loadingItem ? t("saving") : t("pause")))));
|
41004
|
+
};
|
41005
|
+
var SUBJECT_TIMER_KEY = "stk";
|
41006
|
+
var saveDuration = function saveDuration(key, duration) {
|
41007
|
+
localStorage.setItem(key, "" + duration);
|
41008
|
+
};
|
41009
|
+
var getLocalDuration = function getLocalDuration(key, timer) {
|
41010
|
+
try {
|
41011
|
+
var res = localStorage.getItem(key);
|
41012
|
+
var duration = +(res != null ? res : "");
|
41013
|
+
if (!duration || Number.isNaN(duration) || duration <= timer.duration) return null;
|
41014
|
+
return duration;
|
41015
|
+
} catch (error) {
|
41016
|
+
return null;
|
41017
|
+
}
|
41018
|
+
};
|
41019
|
+
|
41020
|
+
var HeaderLink = function HeaderLink(_ref) {
|
41021
|
+
var data = _ref.data,
|
41022
|
+
render = _ref.render;
|
41023
|
+
var activePaths = data.activePaths,
|
41024
|
+
path = data.path;
|
41025
|
+
var pathname = window.location.pathname.toLowerCase();
|
41026
|
+
var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
|
41027
|
+
return pathname.startsWith(a);
|
41028
|
+
})) || pathname.startsWith(path);
|
41029
|
+
return React__default.createElement(Fragment$1, null, render(data, isActive));
|
41030
|
+
};
|
41031
|
+
|
40275
41032
|
var Header = function Header(_ref) {
|
40276
41033
|
var academyListRoute = _ref.academyListRoute,
|
40277
41034
|
homeRoute = _ref.homeRoute,
|
@@ -40394,7 +41151,9 @@ var Header = function Header(_ref) {
|
|
40394
41151
|
justifyContent: "center",
|
40395
41152
|
height: "100%",
|
40396
41153
|
className: styles["logo"] + " d-flex d-lg-none"
|
40397
|
-
}, React__default.createElement(singleLogo, null))), React__default.createElement(Stack, {
|
41154
|
+
}, React__default.createElement(singleLogo, null))), !isTeacherSide && React__default.createElement(Stack, {
|
41155
|
+
className: "me-2 ms-2"
|
41156
|
+
}, React__default.createElement(TimerDropdown, null)), React__default.createElement(Stack, {
|
40398
41157
|
className: "me-2",
|
40399
41158
|
display: "none"
|
40400
41159
|
}, React__default.createElement(TheLanguageDropdown, null)), showAnnouncement && renderNotificationLink && React__default.createElement(AnnouncementContainer, {
|
@@ -40403,17 +41162,6 @@ var Header = function Header(_ref) {
|
|
40403
41162
|
renderViewNoteLink: renderViewNoteLink
|
40404
41163
|
})));
|
40405
41164
|
};
|
40406
|
-
var HeaderLink = function HeaderLink(_ref3) {
|
40407
|
-
var data = _ref3.data,
|
40408
|
-
render = _ref3.render;
|
40409
|
-
var activePaths = data.activePaths,
|
40410
|
-
path = data.path;
|
40411
|
-
var pathname = location.pathname.toLowerCase();
|
40412
|
-
var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
|
40413
|
-
return pathname.startsWith(a);
|
40414
|
-
})) || pathname.startsWith(path);
|
40415
|
-
return React__default.createElement(Fragment$1, null, render(data, isActive));
|
40416
|
-
};
|
40417
41165
|
|
40418
41166
|
var useLayoutContext = function useLayoutContext(role, showLoadingAcademy, domain) {
|
40419
41167
|
var _currentPusher$connec2;
|
@@ -40578,5 +41326,5 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
40578
41326
|
});else return React__default.createElement(Fragment$1, null, children);
|
40579
41327
|
};
|
40580
41328
|
|
40581
|
-
export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AcceptNoAcademy, ActionButtons, AnnouncementContainer, AnnouncementType, AnswerCountSelector, ArticleCategorySelector, ArticleDialog, ArticleGroupView, AttendanceFormDialog, BASE_URL, BRIEF_GRADE_OPTIONS, _ChapterBox as ChapterBox, ChatContainer, types as ChatTypes, ClassDetail, ClassList, ClassNoteDialog, ClassSelector, CommonCreateNewQuestionDialog, CommonDialog, ConfirmDeleteDialog, ConfirmDialog, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_NOTE_FILTER, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, ExamDetailView, ExamEvent, ExamNoteDialog, ExamResultV2, ExamStatus, GOOGLE_CLIENT_ID, GOOGLE_RECAPTCHA_ID, GOOGLE_RECAPTCHA_KEY, GOOGLE_RECAPTCHA_SECRET, GRADE_OPTIONS, Header, InputText, LANGUAGE, LEARNING_SPACE, Language, LanguageHeaders, LayoutContext, LessonTooltip, ListView, Loading, LoadingComponent, Login, LoginQRCode, LoginWithEmail, SignIn as LoginWithPassword, MathJaxContainer, MathTinyEditor, NewNoteButton, NoAcademyHeaders, NotFound, NoteDrawer, NoteTabs, NoteType, NotesContainer, NotificationDetail, NotificationList, OrderBy, OrderType, PRE_REDIRECT_URL, PUSHER_CONFIG, PassCodeCheck, PassCodeDialog, PreparedItem, PreparedTextbookList, PreparedTextbookView, PreparedType, PrintContainerClassName, PrintContentClassName, PrintExamResultView, PrintExamView2, PrintHeaderClassName, PrintTitleClassName, QRCodeConfirmation, QuestionAnswerType, QuestionCountSelector, REDIRECT_URL, RELEASE_DATE, RecentUserAction, RecentUserActionNames, RecentUserActionSortBy, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, SchoolType$1 as SchoolType, ScoreSelector, SearchInput, ShareToTeacherDialog, StudentInfoDrawer, StudentSelector, SubjectSelector, TextbookActionButtons, TextbookViewDetail as TextbookDetail, TextbookDrawer, TextbookEditorType, TextbookList, TheAcademyDropdown, TheLanguageDropdown, TinyEditor, UserList, UserSortColumn, VirtualListView, VirtualTableView, api, apiUpload, canAccess as canAccessRoute, cleanRichText, convertHHMMSStoSeconds, createRecentUserActionListApi, diffFromNow, ellipsisText, encodeParams, formatDataMyAnswer, formatDateTime, formatPhoneNumber, formatRole, formatTextbookDataMyAnswer, formatTime, formatTimeSecond, getAcademyDomain, getAccessToken, getErrorMessage, getLanguage, getLearningSpace, getLocalDayOfWeek, getOrdinalSuffix, getRecentUserActionListApi, getRedirectUrl, getRemainTime, getRole, getUtcDayOfWeek, i18n, includePathname, isLocalHost, isTextType, minutesToTimeSpan, pushTo, reset, setAcademies, setAcademy, setAlert, setConcurrentConnectionPusher, setLanguage, setLoading, setReFetchUserAcademies, setTotalUnreadMessages, setUser, store, timAgo, timeSpanToLocalMoment, toISOString, toLocalTime, totalSolveTimeCategories, totalTextbookSolveTimeCategories, useAutoAcademyDomain, useChatContainer, useCountDownTimer, useGoogleSignOut, useKeyboardVisible, useLanguage, useList, useLoadMore, useLogin, useNotes, usePusherConversation, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
|
41329
|
+
export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AcceptNoAcademy, ActionButtons, AnnouncementContainer, AnnouncementType, AnswerCountSelector, ArticleCategorySelector, ArticleDialog, ArticleGroupView, AttendanceFormDialog, BASE_URL, BRIEF_GRADE_OPTIONS, _ChapterBox as ChapterBox, ChatContainer, types as ChatTypes, ClassDetail, ClassList, ClassNoteDialog, ClassSelector, CommonCreateNewQuestionDialog, CommonDialog, ConfirmDeleteDialog, ConfirmDialog, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_NOTE_FILTER, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, ExamDetailView, ExamEvent, ExamNoteDialog, ExamResultV2, ExamStatus, GOOGLE_CLIENT_ID, GOOGLE_RECAPTCHA_ID, GOOGLE_RECAPTCHA_KEY, GOOGLE_RECAPTCHA_SECRET, GRADE_OPTIONS, Header, InputText, LANGUAGE, LEARNING_SPACE, Language, LanguageHeaders, LayoutContext, LessonTooltip, ListView, Loading, LoadingComponent, Login, LoginQRCode, LoginWithEmail, SignIn as LoginWithPassword, MathJaxContainer, MathTinyEditor, NewNoteButton, NoAcademyHeaders, NotFound, NoteDrawer, NoteTabs, NoteType, NotesContainer, NotificationDetail, NotificationList, OrderBy, OrderType, PRE_REDIRECT_URL, PUSHER_CONFIG, PassCodeCheck, PassCodeDialog, PreparedItem, PreparedTextbookList, PreparedTextbookView, PreparedType, PrintContainerClassName, PrintContentClassName, PrintExamResultView, PrintExamView2, PrintHeaderClassName, PrintTitleClassName, QRCodeConfirmation, QuestionAnswerType, QuestionCountSelector, REDIRECT_URL, RELEASE_DATE, RecentUserAction, RecentUserActionNames, RecentUserActionSortBy, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, SchoolType$1 as SchoolType, ScoreSelector, SearchInput, ShareToTeacherDialog, StudentInfoDrawer, StudentSelector, SubjectSelector, SubjectTimerStatus, TextbookActionButtons, TextbookViewDetail as TextbookDetail, TextbookDrawer, TextbookEditorType, TextbookList, TheAcademyDropdown, TheLanguageDropdown, TinyEditor, UserList, UserSortColumn, VirtualListView, VirtualTableView, api, apiUpload, canAccess as canAccessRoute, cleanRichText, convertHHMMSStoSeconds, createRecentUserActionListApi, diffFromNow, ellipsisText, encodeParams, formatDataMyAnswer, formatDateTime, formatPhoneNumber, formatRole, formatTextbookDataMyAnswer, formatTime, formatTimeSecond, getAcademyDomain, getAccessToken, getCountTime, getErrorMessage, getLanguage, getLearningSpace, getLocalDayOfWeek, getOrdinalSuffix, getRecentUserActionListApi, getRedirectUrl, getRemainTime, getRole, getUtcDayOfWeek, i18n, includePathname, isLocalHost, isTextType, minutesToTimeSpan, pushTo, reset, setAcademies, setAcademy, setAlert, setConcurrentConnectionPusher, setLanguage, setLoading, setReFetchUserAcademies, setTotalUnreadMessages, setUser, store, timAgo, timeSpanToLocalMoment, toISOString, toLocalTime, totalSolveTimeCategories, totalTextbookSolveTimeCategories, useAutoAcademyDomain, useChatContainer, useCountDownTimer, useGoogleSignOut, useKeyboardVisible, useLanguage, useList, useLoadMore, useLogin, useNotes, usePusherConversation, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
|
40582
41330
|
//# sourceMappingURL=index.modern.js.map
|