touchstudy-core 0.1.177 → 0.1.178
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 +772 -24
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +775 -27
- package/dist/index.modern.js.map +1 -1
- package/dist/layouts/Header.d.ts +1 -1
- 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/functions/times.d.ts +1 -0
- package/dist/utils/types/index.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -70,6 +70,7 @@ var reactHookForm = require('react-hook-form');
|
|
70
70
|
var yup$1 = require('@hookform/resolvers/yup');
|
71
71
|
var pi = require('react-icons/pi');
|
72
72
|
var Container = _interopDefault(require('@mui/material/Container'));
|
73
|
+
var ai = require('react-icons/ai');
|
73
74
|
var bs = require('react-icons/bs');
|
74
75
|
var Popover = _interopDefault(require('@mui/material/Popover'));
|
75
76
|
var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
|
@@ -536,6 +537,7 @@ var teacher_in_charge = "담당 교사";
|
|
536
537
|
var counselor = "상담교사";
|
537
538
|
var new_question = "새로운 질문";
|
538
539
|
var hour = "시간";
|
540
|
+
var hour_h = "시간";
|
539
541
|
var minute = "분";
|
540
542
|
var second = "두번째";
|
541
543
|
var question_order = "{{number}} 번";
|
@@ -1029,6 +1031,7 @@ var teacher_required = "선생님은 필수입니다";
|
|
1029
1031
|
var total_users = "총 사용자";
|
1030
1032
|
var added_date = "추가된 날짜";
|
1031
1033
|
var sync_exam_results = "시험 결과 동기화";
|
1034
|
+
var sync_textbook_results = "교재 결과 동기화";
|
1032
1035
|
var update_data_fail = "데이터 업데이트 실패";
|
1033
1036
|
var add_students_to_class = "수업에 학생 추가";
|
1034
1037
|
var add_teachers_to_class = "수업에 교사 추가";
|
@@ -1039,9 +1042,13 @@ var question_management = "질문 관리";
|
|
1039
1042
|
var student_data = "학생 데이터";
|
1040
1043
|
var problem_number_question_chart = "문제 {{number}}번";
|
1041
1044
|
var are_you_sure_to_sync_exam_results_to_academy = "시험 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까(백그라운드에서 실행되며 시간이 다소 소요됨)";
|
1045
|
+
var are_you_sure_to_sync_textbook_results_to_academy = "교재 학습 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까? (백그라운드에서 실행되며 시간이 다소 소요됨)";
|
1042
1046
|
var messages = {
|
1043
|
-
exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다"
|
1047
|
+
exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다",
|
1048
|
+
textbook_sessions_are_being_synchronized: "{{ total }} 개의 교재 학습 세션이 동기화되고 있습니다"
|
1044
1049
|
};
|
1050
|
+
var sync_exam = "시험 동기화";
|
1051
|
+
var sync_textbook = "교재 동기화";
|
1045
1052
|
var submit = "제출하다";
|
1046
1053
|
var must_select_a_teacher_first = "먼저 교사를 선택해야 합니다";
|
1047
1054
|
var student_grade_is_invalid = "학생 등급은 1에서 12 사이여야 합니다";
|
@@ -1105,6 +1112,7 @@ var academy_invite_detail = "아카데미 초대 세부정보";
|
|
1105
1112
|
var are_you_sure_to_delete_academy_invite = "이 아카데미 초대를 삭제하시겠습니까?";
|
1106
1113
|
var day = "낮";
|
1107
1114
|
var days = "날";
|
1115
|
+
var month = "월";
|
1108
1116
|
var emails = "이메일";
|
1109
1117
|
var is_accepted = "승인됨";
|
1110
1118
|
var re_send = "다시 보내기";
|
@@ -1488,6 +1496,8 @@ var order_matters = "순서 상관 있음";
|
|
1488
1496
|
var order_does_not_matter = "순서 상관 없음";
|
1489
1497
|
var synonym_processing = "답 이음동의어 처리";
|
1490
1498
|
var compare_type = "비교 유형";
|
1499
|
+
var all_changes_saved = "모든 변경 사항이 저장되었습니다";
|
1500
|
+
var saving = "절약";
|
1491
1501
|
var textbook_name = "교재 이름";
|
1492
1502
|
var korean_language = "국어";
|
1493
1503
|
var answer_cannot_be_empty = "답변은 비워둘 수 없습니다";
|
@@ -1534,6 +1544,13 @@ var admin_to_teachers = "관리자에서 교사들에게";
|
|
1534
1544
|
var teacher_to_teachers = "교사에서 교사들에게";
|
1535
1545
|
var student_required = "학생은 필수입니다";
|
1536
1546
|
var teachers_required = "교사가 필요합니다";
|
1547
|
+
var all_changes_are_not_saved_yet = "아직 모든 변경 사항이 저장되지 않았습니다";
|
1548
|
+
var pause = "일시정지";
|
1549
|
+
var press_to_start = "눌러서 시작하기";
|
1550
|
+
var study_timer = "순공 타이머";
|
1551
|
+
var show_timer = "타이머 표시";
|
1552
|
+
var failed_to_pause_the_subject_name = "과목 '{{name}}'를 일시 중지하는 데 실패했습니다";
|
1553
|
+
var failed_to_start_the_subject_name = "과목 '{{name}}'를 시작하는 데 실패했습니다";
|
1537
1554
|
var lang_ko = {
|
1538
1555
|
problem_solving: problem_solving,
|
1539
1556
|
my_story: my_story,
|
@@ -1725,6 +1742,7 @@ var lang_ko = {
|
|
1725
1742
|
counselor: counselor,
|
1726
1743
|
new_question: new_question,
|
1727
1744
|
hour: hour,
|
1745
|
+
hour_h: hour_h,
|
1728
1746
|
minute: minute,
|
1729
1747
|
second: second,
|
1730
1748
|
question_order: question_order,
|
@@ -2213,6 +2231,7 @@ var lang_ko = {
|
|
2213
2231
|
total_users: total_users,
|
2214
2232
|
added_date: added_date,
|
2215
2233
|
sync_exam_results: sync_exam_results,
|
2234
|
+
sync_textbook_results: sync_textbook_results,
|
2216
2235
|
update_data_fail: update_data_fail,
|
2217
2236
|
add_students_to_class: add_students_to_class,
|
2218
2237
|
add_teachers_to_class: add_teachers_to_class,
|
@@ -2223,7 +2242,10 @@ var lang_ko = {
|
|
2223
2242
|
student_data: student_data,
|
2224
2243
|
problem_number_question_chart: problem_number_question_chart,
|
2225
2244
|
are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy,
|
2245
|
+
are_you_sure_to_sync_textbook_results_to_academy: are_you_sure_to_sync_textbook_results_to_academy,
|
2226
2246
|
messages: messages,
|
2247
|
+
sync_exam: sync_exam,
|
2248
|
+
sync_textbook: sync_textbook,
|
2227
2249
|
submit: submit,
|
2228
2250
|
must_select_a_teacher_first: must_select_a_teacher_first,
|
2229
2251
|
student_grade_is_invalid: student_grade_is_invalid,
|
@@ -2287,6 +2309,7 @@ var lang_ko = {
|
|
2287
2309
|
are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite,
|
2288
2310
|
day: day,
|
2289
2311
|
days: days,
|
2312
|
+
month: month,
|
2290
2313
|
emails: emails,
|
2291
2314
|
is_accepted: is_accepted,
|
2292
2315
|
re_send: re_send,
|
@@ -2658,6 +2681,8 @@ var lang_ko = {
|
|
2658
2681
|
order_does_not_matter: order_does_not_matter,
|
2659
2682
|
synonym_processing: synonym_processing,
|
2660
2683
|
compare_type: compare_type,
|
2684
|
+
all_changes_saved: all_changes_saved,
|
2685
|
+
saving: saving,
|
2661
2686
|
textbook_name: textbook_name,
|
2662
2687
|
korean_language: korean_language,
|
2663
2688
|
answer_cannot_be_empty: answer_cannot_be_empty,
|
@@ -2703,7 +2728,14 @@ var lang_ko = {
|
|
2703
2728
|
admin_to_teachers: admin_to_teachers,
|
2704
2729
|
teacher_to_teachers: teacher_to_teachers,
|
2705
2730
|
student_required: student_required,
|
2706
|
-
teachers_required: teachers_required
|
2731
|
+
teachers_required: teachers_required,
|
2732
|
+
all_changes_are_not_saved_yet: all_changes_are_not_saved_yet,
|
2733
|
+
pause: pause,
|
2734
|
+
press_to_start: press_to_start,
|
2735
|
+
study_timer: study_timer,
|
2736
|
+
show_timer: show_timer,
|
2737
|
+
failed_to_pause_the_subject_name: failed_to_pause_the_subject_name,
|
2738
|
+
failed_to_start_the_subject_name: failed_to_start_the_subject_name
|
2707
2739
|
};
|
2708
2740
|
|
2709
2741
|
var problem_solving$1 = "Problem Solving";
|
@@ -2922,6 +2954,7 @@ var counselor$1 = "Counselor";
|
|
2922
2954
|
var new_question$1 = "New Question";
|
2923
2955
|
var hour$1 = "hr";
|
2924
2956
|
var hours = "hrs";
|
2957
|
+
var hour_h$1 = "h";
|
2925
2958
|
var minute$1 = "min";
|
2926
2959
|
var second$1 = "second";
|
2927
2960
|
var question_order$1 = "Number {{number}}";
|
@@ -3390,6 +3423,7 @@ var teacher_required$1 = "Teacher is required";
|
|
3390
3423
|
var total_users$1 = "Total users";
|
3391
3424
|
var added_date$1 = "Added date";
|
3392
3425
|
var sync_exam_results$1 = "Sync exam results";
|
3426
|
+
var sync_textbook_results$1 = "Sync textbook results";
|
3393
3427
|
var update_data_fail$1 = "Update data fail";
|
3394
3428
|
var add_students_to_class$1 = "Add students to class";
|
3395
3429
|
var add_teachers_to_class$1 = "Add teachers to class";
|
@@ -3400,9 +3434,13 @@ var question_management$1 = "Question Management";
|
|
3400
3434
|
var student_data$1 = "Student Data";
|
3401
3435
|
var problem_number_question_chart$1 = "Q. {{number}}";
|
3402
3436
|
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)";
|
3437
|
+
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)";
|
3403
3438
|
var messages$1 = {
|
3404
|
-
exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized"
|
3439
|
+
exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized",
|
3440
|
+
textbook_sessions_are_being_synchronized: "{{ total }} textbook sessions are being synchronized"
|
3405
3441
|
};
|
3442
|
+
var sync_exam$1 = "Sync Exam";
|
3443
|
+
var sync_textbook$1 = "Sync Textbook";
|
3406
3444
|
var submit$1 = "Submit";
|
3407
3445
|
var must_select_a_teacher_first$1 = "Must select a teacher first";
|
3408
3446
|
var student_grade_is_invalid$1 = "Student grade must be from 1 to 12";
|
@@ -3466,6 +3504,7 @@ var academy_invite_detail$1 = "Academy Invite Detail";
|
|
3466
3504
|
var are_you_sure_to_delete_academy_invite$1 = "Are you sure to delete this academy invite?";
|
3467
3505
|
var day$1 = "day";
|
3468
3506
|
var days$1 = "days";
|
3507
|
+
var month$1 = "month";
|
3469
3508
|
var emails$1 = "Emails";
|
3470
3509
|
var is_accepted$1 = "Is Accepted";
|
3471
3510
|
var re_send$1 = "Resend";
|
@@ -3850,6 +3889,8 @@ var order_matters$1 = "Order matters";
|
|
3850
3889
|
var order_does_not_matter$1 = "Order doesn't matter";
|
3851
3890
|
var synonym_processing$1 = "Answer Synonym processing";
|
3852
3891
|
var compare_type$1 = "Compare Type";
|
3892
|
+
var all_changes_saved$1 = "All changes saved";
|
3893
|
+
var saving$1 = "Saving";
|
3853
3894
|
var textbook_name$1 = "Textbook name";
|
3854
3895
|
var korean_language$1 = "Korean";
|
3855
3896
|
var answer_cannot_be_empty$1 = "Answer cannot be empty";
|
@@ -3896,6 +3937,13 @@ var admin_to_teachers$1 = "Admin to teachers";
|
|
3896
3937
|
var teacher_to_teachers$1 = "Teacher to teachers";
|
3897
3938
|
var student_required$1 = "Student is required";
|
3898
3939
|
var teachers_required$1 = "Teachers are required";
|
3940
|
+
var all_changes_are_not_saved_yet$1 = "All changes are not saved yet";
|
3941
|
+
var pause$1 = "Pause";
|
3942
|
+
var press_to_start$1 = "Press to start";
|
3943
|
+
var study_timer$1 = "Focused Study Timer";
|
3944
|
+
var show_timer$1 = "Show timer";
|
3945
|
+
var failed_to_pause_the_subject_name$1 = "Failed to pause the subject '{{name}}'";
|
3946
|
+
var failed_to_start_the_subject_name$1 = "Failed to start the subject '{{name}}'";
|
3899
3947
|
var lang_en = {
|
3900
3948
|
problem_solving: problem_solving$1,
|
3901
3949
|
my_story: my_story$1,
|
@@ -4113,6 +4161,7 @@ var lang_en = {
|
|
4113
4161
|
new_question: new_question$1,
|
4114
4162
|
hour: hour$1,
|
4115
4163
|
hours: hours,
|
4164
|
+
hour_h: hour_h$1,
|
4116
4165
|
minute: minute$1,
|
4117
4166
|
second: second$1,
|
4118
4167
|
question_order: question_order$1,
|
@@ -4576,6 +4625,7 @@ var lang_en = {
|
|
4576
4625
|
total_users: total_users$1,
|
4577
4626
|
added_date: added_date$1,
|
4578
4627
|
sync_exam_results: sync_exam_results$1,
|
4628
|
+
sync_textbook_results: sync_textbook_results$1,
|
4579
4629
|
update_data_fail: update_data_fail$1,
|
4580
4630
|
add_students_to_class: add_students_to_class$1,
|
4581
4631
|
add_teachers_to_class: add_teachers_to_class$1,
|
@@ -4586,7 +4636,10 @@ var lang_en = {
|
|
4586
4636
|
student_data: student_data$1,
|
4587
4637
|
problem_number_question_chart: problem_number_question_chart$1,
|
4588
4638
|
are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy$1,
|
4639
|
+
are_you_sure_to_sync_textbook_results_to_academy: are_you_sure_to_sync_textbook_results_to_academy$1,
|
4589
4640
|
messages: messages$1,
|
4641
|
+
sync_exam: sync_exam$1,
|
4642
|
+
sync_textbook: sync_textbook$1,
|
4590
4643
|
submit: submit$1,
|
4591
4644
|
must_select_a_teacher_first: must_select_a_teacher_first$1,
|
4592
4645
|
student_grade_is_invalid: student_grade_is_invalid$1,
|
@@ -4650,6 +4703,7 @@ var lang_en = {
|
|
4650
4703
|
are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite$1,
|
4651
4704
|
day: day$1,
|
4652
4705
|
days: days$1,
|
4706
|
+
month: month$1,
|
4653
4707
|
emails: emails$1,
|
4654
4708
|
is_accepted: is_accepted$1,
|
4655
4709
|
re_send: re_send$1,
|
@@ -5022,6 +5076,8 @@ var lang_en = {
|
|
5022
5076
|
order_does_not_matter: order_does_not_matter$1,
|
5023
5077
|
synonym_processing: synonym_processing$1,
|
5024
5078
|
compare_type: compare_type$1,
|
5079
|
+
all_changes_saved: all_changes_saved$1,
|
5080
|
+
saving: saving$1,
|
5025
5081
|
textbook_name: textbook_name$1,
|
5026
5082
|
korean_language: korean_language$1,
|
5027
5083
|
answer_cannot_be_empty: answer_cannot_be_empty$1,
|
@@ -5067,7 +5123,14 @@ var lang_en = {
|
|
5067
5123
|
admin_to_teachers: admin_to_teachers$1,
|
5068
5124
|
teacher_to_teachers: teacher_to_teachers$1,
|
5069
5125
|
student_required: student_required$1,
|
5070
|
-
teachers_required: teachers_required$1
|
5126
|
+
teachers_required: teachers_required$1,
|
5127
|
+
all_changes_are_not_saved_yet: all_changes_are_not_saved_yet$1,
|
5128
|
+
pause: pause$1,
|
5129
|
+
press_to_start: press_to_start$1,
|
5130
|
+
study_timer: study_timer$1,
|
5131
|
+
show_timer: show_timer$1,
|
5132
|
+
failed_to_pause_the_subject_name: failed_to_pause_the_subject_name$1,
|
5133
|
+
failed_to_start_the_subject_name: failed_to_start_the_subject_name$1
|
5071
5134
|
};
|
5072
5135
|
|
5073
5136
|
i18n__default.use(reactI18next.initReactI18next).init({
|
@@ -5523,7 +5586,7 @@ var PrintExamView2 = function PrintExamView2(_ref) {
|
|
5523
5586
|
}, t("print_pdf"))));
|
5524
5587
|
};
|
5525
5588
|
|
5526
|
-
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"};
|
5589
|
+
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_"};
|
5527
5590
|
|
5528
5591
|
var config = {
|
5529
5592
|
loader: {
|
@@ -6265,6 +6328,12 @@ var HighSchoolGrade;
|
|
6265
6328
|
TextbookEditorType[TextbookEditorType["Korea"] = 1] = "Korea";
|
6266
6329
|
TextbookEditorType[TextbookEditorType["Math"] = 2] = "Math";
|
6267
6330
|
})(exports.TextbookEditorType || (exports.TextbookEditorType = {}));
|
6331
|
+
var PrintStatus;
|
6332
|
+
(function (PrintStatus) {
|
6333
|
+
PrintStatus[PrintStatus["Idle"] = 0] = "Idle";
|
6334
|
+
PrintStatus[PrintStatus["Saving"] = 1] = "Saving";
|
6335
|
+
PrintStatus[PrintStatus["Saved"] = 2] = "Saved";
|
6336
|
+
})(PrintStatus || (PrintStatus = {}));
|
6268
6337
|
|
6269
6338
|
(function (SchoolType) {
|
6270
6339
|
SchoolType[SchoolType["Default"] = 0] = "Default";
|
@@ -6273,6 +6342,12 @@ var HighSchoolGrade;
|
|
6273
6342
|
SchoolType[SchoolType["High"] = 3] = "High";
|
6274
6343
|
})(exports.SchoolType || (exports.SchoolType = {}));
|
6275
6344
|
|
6345
|
+
(function (SubjectTimerStatus) {
|
6346
|
+
SubjectTimerStatus[SubjectTimerStatus["NotStarted"] = 0] = "NotStarted";
|
6347
|
+
SubjectTimerStatus[SubjectTimerStatus["Started"] = 1] = "Started";
|
6348
|
+
SubjectTimerStatus[SubjectTimerStatus["Paused"] = 2] = "Paused";
|
6349
|
+
})(exports.SubjectTimerStatus || (exports.SubjectTimerStatus = {}));
|
6350
|
+
|
6276
6351
|
var canAccess = function canAccess(userRoles, componentRoles) {
|
6277
6352
|
if (!Array.isArray(userRoles)) {
|
6278
6353
|
return false;
|
@@ -6522,6 +6597,11 @@ var getRemainTime = function getRemainTime(startTime, duration) {
|
|
6522
6597
|
if (timePass > durationInNumber) return 0;
|
6523
6598
|
return durationInNumber - timePass;
|
6524
6599
|
};
|
6600
|
+
var getCountTime = function getCountTime(startTime, duration) {
|
6601
|
+
var timePass = diffFromNow(startTime, "second");
|
6602
|
+
if (typeof timePass !== "number") return null;
|
6603
|
+
return duration + timePass;
|
6604
|
+
};
|
6525
6605
|
|
6526
6606
|
var formatDateTime = function formatDateTime(inputDate) {
|
6527
6607
|
var date = new Date(inputDate);
|
@@ -8246,6 +8326,27 @@ var getSubjectListApi = function getSubjectListApi(textSearch) {
|
|
8246
8326
|
return Promise.reject(e);
|
8247
8327
|
}
|
8248
8328
|
};
|
8329
|
+
var getStudentSubjectListApi = function getStudentSubjectListApi() {
|
8330
|
+
try {
|
8331
|
+
return Promise.resolve(api.get(SUBJECT_URL + "/timers"));
|
8332
|
+
} catch (e) {
|
8333
|
+
return Promise.reject(e);
|
8334
|
+
}
|
8335
|
+
};
|
8336
|
+
var startStudentSubjectTimerApi = function startStudentSubjectTimerApi(subjectId) {
|
8337
|
+
try {
|
8338
|
+
return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers"));
|
8339
|
+
} catch (e) {
|
8340
|
+
return Promise.reject(e);
|
8341
|
+
}
|
8342
|
+
};
|
8343
|
+
var pauseStudentSubjectApi = function pauseStudentSubjectApi(subjectId, recordId, data) {
|
8344
|
+
try {
|
8345
|
+
return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers/" + recordId, data));
|
8346
|
+
} catch (e) {
|
8347
|
+
return Promise.reject(e);
|
8348
|
+
}
|
8349
|
+
};
|
8249
8350
|
|
8250
8351
|
var SubjectSelector = function SubjectSelector(_ref) {
|
8251
8352
|
var value = _ref.value,
|
@@ -10315,6 +10416,7 @@ var grey = {
|
|
10315
10416
|
var green = {
|
10316
10417
|
0: '#FFFFFF',
|
10317
10418
|
100: '#F0FFF6',
|
10419
|
+
200: '#D2FFE4',
|
10318
10420
|
300: '#89F0B2',
|
10319
10421
|
500: '#3DC674',
|
10320
10422
|
700: '#349056',
|
@@ -33911,11 +34013,11 @@ var TextbookRow = function TextbookRow(_ref) {
|
|
33911
34013
|
});
|
33912
34014
|
var _useTranslation = reactI18next.useTranslation(),
|
33913
34015
|
t = _useTranslation.t;
|
33914
|
-
var isEditable =
|
34016
|
+
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) {
|
33915
34017
|
var _infoUser$email, _infoUser$email$trim;
|
33916
34018
|
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);
|
33917
|
-
})))
|
33918
|
-
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)
|
34019
|
+
})));
|
34020
|
+
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);
|
33919
34021
|
var isSharable = !data.isPublic && data.isShared && onAcademy && (isAdminSite || isSuperAdminUser || !isAdmin && data.createdBy.id === infoUser.id);
|
33920
34022
|
var handleUpdateTextbook = function handleUpdateTextbook() {
|
33921
34023
|
onUpdateTextbook(data);
|
@@ -34936,10 +35038,10 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
34936
35038
|
var isAdminSite = role === exports.Role.Admin;
|
34937
35039
|
var onAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
|
34938
35040
|
var isSuperAdminUser = !!user && user.isSuperAdmin;
|
34939
|
-
var isEditable = !selectedTextbook ||
|
35041
|
+
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) {
|
34940
35042
|
var _user$email, _user$email$trim;
|
34941
35043
|
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);
|
34942
|
-
}))
|
35044
|
+
}));
|
34943
35045
|
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);
|
34944
35046
|
var handleOpenConfirmDeleteChapterDialog = function handleOpenConfirmDeleteChapterDialog(chapter) {
|
34945
35047
|
setSelectedChapter(chapter);
|
@@ -35041,6 +35143,24 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
35041
35143
|
return Promise.reject(e);
|
35042
35144
|
}
|
35043
35145
|
};
|
35146
|
+
var handleSaveData = React.useCallback(function (values) {
|
35147
|
+
try {
|
35148
|
+
if (!coverImage && !(values !== null && values !== void 0 && values.coverImage)) {
|
35149
|
+
return Promise.resolve();
|
35150
|
+
}
|
35151
|
+
return Promise.resolve(_catch(function () {
|
35152
|
+
var coverImg = coverImage || (values === null || values === void 0 ? void 0 : values.coverImage);
|
35153
|
+
return Promise.resolve(updateTextbookApi$1(_extends({}, values, {
|
35154
|
+
coverImage: coverImg
|
35155
|
+
}), (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.id) || 0, isSuperAdmin)).then(function () {});
|
35156
|
+
}, function (error) {
|
35157
|
+
reactToastify.toast.error(getErrorMessage(t, error));
|
35158
|
+
throw error;
|
35159
|
+
}));
|
35160
|
+
} catch (e) {
|
35161
|
+
return Promise.reject(e);
|
35162
|
+
}
|
35163
|
+
}, [coverImage, isSuperAdmin, JSON.stringify(selectedTextbook)]);
|
35044
35164
|
React.useEffect(function () {
|
35045
35165
|
if (!textbookId) return;
|
35046
35166
|
handleGetTextbookDetail();
|
@@ -35059,6 +35179,7 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
35059
35179
|
isSuperAdminUser: isSuperAdminUser,
|
35060
35180
|
openDialog: openDialog,
|
35061
35181
|
handleSubmit: handleSubmit,
|
35182
|
+
handleSaveData: handleSaveData,
|
35062
35183
|
selectedTextbook: selectedTextbook,
|
35063
35184
|
handleOpenDialog: handleOpenDialog,
|
35064
35185
|
handleCloseDialog: handleCloseDialog,
|
@@ -35352,6 +35473,8 @@ var CompareTypeOptions = [{
|
|
35352
35473
|
label: "synonym_processing",
|
35353
35474
|
value: exports.QuestionAnswerType.SynonymProcessing
|
35354
35475
|
}];
|
35476
|
+
var SAVE_TIME_INTERVAL_IN_MILLISECONDS = 60 * 1000;
|
35477
|
+
var SAVE_TIME_MAX_DIFF_IN_MILLISECONDS = 1000;
|
35355
35478
|
|
35356
35479
|
var CustomTextbookTab = function CustomTextbookTab(props) {
|
35357
35480
|
var children = props.children,
|
@@ -38527,8 +38650,9 @@ var TextbookOwnersTab = function TextbookOwnersTab(_ref) {
|
|
38527
38650
|
}));
|
38528
38651
|
};
|
38529
38652
|
|
38530
|
-
var _excluded$n = ["isCreatedByAdmin", "isSuperAdminUser", "isSuperAdmin", "isAdmin", "textbookId", "selected", "coverImage", "disabled", "ownersDisabled", "onChangeTab", "onUploadImage"];
|
38653
|
+
var _excluded$n = ["isCreatedByAdmin", "isSuperAdminUser", "isSuperAdmin", "isAdmin", "textbookId", "selected", "coverImage", "disabled", "ownersDisabled", "selectedTextbook", "handleSaveData", "onChangeTab", "onUploadImage"];
|
38531
38654
|
var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
38655
|
+
var _valuesTextbook$curre;
|
38532
38656
|
var isCreatedByAdmin = _ref.isCreatedByAdmin,
|
38533
38657
|
isSuperAdminUser = _ref.isSuperAdminUser,
|
38534
38658
|
isSuperAdmin = _ref.isSuperAdmin,
|
@@ -38538,6 +38662,8 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38538
38662
|
coverImage = _ref.coverImage,
|
38539
38663
|
disabled = _ref.disabled,
|
38540
38664
|
ownersDisabled = _ref.ownersDisabled,
|
38665
|
+
selectedTextbook = _ref.selectedTextbook,
|
38666
|
+
handleSaveData = _ref.handleSaveData,
|
38541
38667
|
onChangeTab = _ref.onChangeTab,
|
38542
38668
|
onUploadImage = _ref.onUploadImage,
|
38543
38669
|
formikProps = _objectWithoutPropertiesLoose(_ref, _excluded$n);
|
@@ -38546,6 +38672,20 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38546
38672
|
dirty = formikProps.dirty,
|
38547
38673
|
submitCount = formikProps.submitCount,
|
38548
38674
|
setValues = formikProps.setValues;
|
38675
|
+
var theme = material.useTheme();
|
38676
|
+
var savedRunRef = React.useRef(Date.now());
|
38677
|
+
var runTimeRef = React.useRef(Date.now());
|
38678
|
+
var valuesTextbook = React.useRef(null);
|
38679
|
+
var isFirstLoadRef = React.useRef(true);
|
38680
|
+
var _React$useState = React__default.useState(PrintStatus.Idle),
|
38681
|
+
saveStatus = _React$useState[0],
|
38682
|
+
setSaveStatus = _React$useState[1];
|
38683
|
+
var timeoutRef = React.useRef(null);
|
38684
|
+
var isProcessingRef = React.useRef(false);
|
38685
|
+
var pendingValuesRef = React.useRef(null);
|
38686
|
+
var _useState = React.useState(),
|
38687
|
+
lastEdited = _useState[0],
|
38688
|
+
setLastEdited = _useState[1];
|
38549
38689
|
React.useEffect(function () {
|
38550
38690
|
var handleBeforeUnload = function handleBeforeUnload(event) {
|
38551
38691
|
var message = i18n.t("are_you_sure_you_want_to_quit_yours_changes_may_not_be_saved");
|
@@ -38566,9 +38706,99 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38566
38706
|
var newValues = _resetAllCategoriesAndQuestionTypesBySubject(values, val);
|
38567
38707
|
setValues(newValues);
|
38568
38708
|
};
|
38709
|
+
React.useEffect(function () {
|
38710
|
+
if (!valuesTextbook.current && isFirstLoadRef.current && !_$8.isEqual(values, DEFAULT_TEXTBOOK_REQUEST)) {
|
38711
|
+
valuesTextbook.current = _$8.cloneDeep(values);
|
38712
|
+
isFirstLoadRef.current = false;
|
38713
|
+
}
|
38714
|
+
}, [values]);
|
38715
|
+
var _handleSave = function handleSave(valuesProps) {
|
38716
|
+
try {
|
38717
|
+
var _temp = _finallyRethrows(function () {
|
38718
|
+
return _catch(function () {
|
38719
|
+
isProcessingRef.current = true;
|
38720
|
+
setSaveStatus(PrintStatus.Saving);
|
38721
|
+
var valuesToSave = valuesProps || values;
|
38722
|
+
return Promise.resolve(handleSaveData(valuesToSave)).then(function () {
|
38723
|
+
valuesTextbook.current = _$8.cloneDeep(valuesToSave);
|
38724
|
+
var now = Date.now();
|
38725
|
+
savedRunRef.current = now;
|
38726
|
+
runTimeRef.current = now;
|
38727
|
+
setSaveStatus(PrintStatus.Saved);
|
38728
|
+
});
|
38729
|
+
}, function (error) {
|
38730
|
+
setSaveStatus(PrintStatus.Idle);
|
38731
|
+
console.error(error);
|
38732
|
+
});
|
38733
|
+
}, function (_wasThrown, _result) {
|
38734
|
+
isProcessingRef.current = false;
|
38735
|
+
if (pendingValuesRef.current) {
|
38736
|
+
if (timeoutRef.current) {
|
38737
|
+
clearTimeout(timeoutRef.current);
|
38738
|
+
}
|
38739
|
+
timeoutRef.current = setTimeout(function () {
|
38740
|
+
timeoutRef.current = null;
|
38741
|
+
var pendingValues = pendingValuesRef.current;
|
38742
|
+
if (pendingValues) {
|
38743
|
+
_handleSave(pendingValues);
|
38744
|
+
pendingValuesRef.current = null;
|
38745
|
+
}
|
38746
|
+
}, SAVE_TIME_INTERVAL_IN_MILLISECONDS);
|
38747
|
+
}
|
38748
|
+
if (_wasThrown) throw _result;
|
38749
|
+
return _result;
|
38750
|
+
});
|
38751
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
38752
|
+
} catch (e) {
|
38753
|
+
return Promise.reject(e);
|
38754
|
+
}
|
38755
|
+
};
|
38756
|
+
React.useEffect(function () {
|
38757
|
+
var now = Date.now();
|
38758
|
+
if (valuesTextbook.current && !_$8.isEqual(values, valuesTextbook.current)) setLastEdited(now);
|
38759
|
+
if (!_$8.isEmpty(errors) || !valuesTextbook.current || !(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id)) return;
|
38760
|
+
if (valuesTextbook.current && _$8.isEqual(values, valuesTextbook.current)) return;
|
38761
|
+
if (isProcessingRef.current) {
|
38762
|
+
pendingValuesRef.current = _$8.cloneDeep(values);
|
38763
|
+
return;
|
38764
|
+
}
|
38765
|
+
var timeSinceLastRun = now - runTimeRef.current;
|
38766
|
+
var maxTime = SAVE_TIME_INTERVAL_IN_MILLISECONDS + SAVE_TIME_MAX_DIFF_IN_MILLISECONDS;
|
38767
|
+
if (timeSinceLastRun > maxTime) {
|
38768
|
+
runTimeRef.current = now;
|
38769
|
+
timeSinceLastRun = 0;
|
38770
|
+
}
|
38771
|
+
if (timeSinceLastRun >= SAVE_TIME_INTERVAL_IN_MILLISECONDS) {
|
38772
|
+
if (timeoutRef.current) {
|
38773
|
+
clearTimeout(timeoutRef.current);
|
38774
|
+
timeoutRef.current = null;
|
38775
|
+
pendingValuesRef.current = null;
|
38776
|
+
}
|
38777
|
+
_handleSave();
|
38778
|
+
} else {
|
38779
|
+
pendingValuesRef.current = _$8.cloneDeep(values);
|
38780
|
+
var intevalTime = SAVE_TIME_INTERVAL_IN_MILLISECONDS - timeSinceLastRun;
|
38781
|
+
timeoutRef.current = setTimeout(function () {
|
38782
|
+
timeoutRef.current = null;
|
38783
|
+
var pendingValues = pendingValuesRef.current;
|
38784
|
+
if (pendingValues) {
|
38785
|
+
clearTimeout(timeoutRef.current);
|
38786
|
+
_handleSave(pendingValues);
|
38787
|
+
pendingValuesRef.current = null;
|
38788
|
+
}
|
38789
|
+
}, intevalTime);
|
38790
|
+
}
|
38791
|
+
return function () {
|
38792
|
+
if (timeoutRef.current) {
|
38793
|
+
clearTimeout(timeoutRef.current);
|
38794
|
+
}
|
38795
|
+
};
|
38796
|
+
}, [values, errors]);
|
38569
38797
|
var inforErrors = errors.coverImage || errors.grade || errors.isbn || errors.preparedType || errors.publicationDate || errors.publisher;
|
38570
38798
|
var contentsErrors = errors.chapters;
|
38571
38799
|
var textbookOwnersErrors = errors.textbookOwners;
|
38800
|
+
var hasError = !_$8.isEmpty(errors);
|
38801
|
+
var isSaved = !lastEdited || _$8.isEqual(values, (_valuesTextbook$curre = valuesTextbook.current) != null ? _valuesTextbook$curre : {});
|
38572
38802
|
return React__default.createElement(formik.Form, null, React__default.createElement(material.Stack, {
|
38573
38803
|
direction: "column",
|
38574
38804
|
gap: 3
|
@@ -38656,7 +38886,45 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38656
38886
|
}), React__default.createElement(material.FormLabel, {
|
38657
38887
|
htmlFor: "type",
|
38658
38888
|
className: "text-center"
|
38659
|
-
}, i18n.t("math"))))), React__default.createElement(material.
|
38889
|
+
}, i18n.t("math"))))), React__default.createElement(material.Stack, {
|
38890
|
+
flexDirection: "row",
|
38891
|
+
gap: "8px"
|
38892
|
+
}, !!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id) && React__default.createElement(material.Stack, {
|
38893
|
+
padding: "6px 12px",
|
38894
|
+
sx: {
|
38895
|
+
transition: "opacity 0.3s ease",
|
38896
|
+
opacity: saveStatus === PrintStatus.Idle && isSaved ? 0 : 1,
|
38897
|
+
pointerEvents: "none",
|
38898
|
+
gap: "8px",
|
38899
|
+
flexDirection: "row",
|
38900
|
+
justifyContent: "center",
|
38901
|
+
alignItems: "center"
|
38902
|
+
}
|
38903
|
+
}, saveStatus === PrintStatus.Saving && React__default.createElement(ai.AiOutlineLoading3Quarters, {
|
38904
|
+
style: {
|
38905
|
+
animation: "spin 1s linear infinite"
|
38906
|
+
}
|
38907
|
+
}), saveStatus === PrintStatus.Saved && isSaved && React__default.createElement(io5.IoCheckmark, null), saveStatus !== PrintStatus.Saving && !isSaved && React__default.createElement(React.Fragment, null, hasError ? React__default.createElement(md.MdError, {
|
38908
|
+
color: red[900]
|
38909
|
+
}) : React__default.createElement(fa6.FaClockRotateLeft, {
|
38910
|
+
size: "14px"
|
38911
|
+
})), React__default.createElement(material.Typography, {
|
38912
|
+
sx: {
|
38913
|
+
color: theme.palette.grey[700],
|
38914
|
+
fontSize: "14px",
|
38915
|
+
display: "flex",
|
38916
|
+
alignItems: "center",
|
38917
|
+
gap: 1,
|
38918
|
+
"@keyframes spin": {
|
38919
|
+
"0%": {
|
38920
|
+
transform: "rotate(0deg)"
|
38921
|
+
},
|
38922
|
+
"100%": {
|
38923
|
+
transform: "rotate(360deg)"
|
38924
|
+
}
|
38925
|
+
}
|
38926
|
+
}
|
38927
|
+
}, saveStatus === PrintStatus.Saving && i18n.t("saving"), saveStatus === PrintStatus.Saved && isSaved && i18n.t("all_changes_saved"), saveStatus !== PrintStatus.Saving && !isSaved && i18n.t("all_changes_are_not_saved_yet"))), React__default.createElement(material.Button, {
|
38660
38928
|
type: "submit",
|
38661
38929
|
sx: {
|
38662
38930
|
width: "fit-content"
|
@@ -38763,6 +39031,7 @@ var PreparedTextbookView = function PreparedTextbookView(_ref) {
|
|
38763
39031
|
isSuperAdminUser = _useTextbookManagemen.isSuperAdminUser,
|
38764
39032
|
isAdmin = _useTextbookManagemen.isAdmin,
|
38765
39033
|
coverImage = _useTextbookManagemen.coverImage,
|
39034
|
+
handleSaveData = _useTextbookManagemen.handleSaveData,
|
38766
39035
|
selectedTextbook = _useTextbookManagemen.selectedTextbook,
|
38767
39036
|
handleSubmit = _useTextbookManagemen.handleSubmit,
|
38768
39037
|
handleUploadImage = _useTextbookManagemen.handleUploadImage;
|
@@ -38785,7 +39054,9 @@ var PreparedTextbookView = function PreparedTextbookView(_ref) {
|
|
38785
39054
|
isAdmin: isAdmin,
|
38786
39055
|
isSuperAdmin: isSuperAdmin,
|
38787
39056
|
selected: selected,
|
39057
|
+
handleSaveData: handleSaveData,
|
38788
39058
|
textbookId: textbookId,
|
39059
|
+
selectedTextbook: selectedTextbook,
|
38789
39060
|
onChangeTab: handleChangeTab,
|
38790
39061
|
onUploadImage: handleUploadImage,
|
38791
39062
|
coverImage: coverImage,
|
@@ -40302,6 +40573,491 @@ var singleLogo = function singleLogo(_ref) {
|
|
40302
40573
|
}))));
|
40303
40574
|
};
|
40304
40575
|
|
40576
|
+
var TimerItem = function TimerItem(_ref) {
|
40577
|
+
var data = _ref.data,
|
40578
|
+
seconds = _ref.seconds,
|
40579
|
+
loading = _ref.loading,
|
40580
|
+
activeTimerId = _ref.activeTimerId,
|
40581
|
+
onStartOrPauseTimer = _ref.onStartOrPauseTimer;
|
40582
|
+
var theme = material.useTheme();
|
40583
|
+
var _useTranslation = reactI18next.useTranslation(),
|
40584
|
+
t = _useTranslation.t;
|
40585
|
+
var handleStartOrPauseTimer = function handleStartOrPauseTimer() {
|
40586
|
+
onStartOrPauseTimer(data);
|
40587
|
+
};
|
40588
|
+
var isStarted = activeTimerId === data.id && data.status === exports.SubjectTimerStatus.Started;
|
40589
|
+
var displayedTime = React.useMemo(function () {
|
40590
|
+
switch (data.status) {
|
40591
|
+
case exports.SubjectTimerStatus.Started:
|
40592
|
+
return activeTimerId !== data.id ? formatTime$2(Math.floor(data.duration / 1000), t) : formatTime$2(seconds != null ? seconds : 0, t);
|
40593
|
+
case exports.SubjectTimerStatus.NotStarted:
|
40594
|
+
return t("press_to_start");
|
40595
|
+
default:
|
40596
|
+
return formatTime$2(Math.floor(data.duration / 1000), t);
|
40597
|
+
}
|
40598
|
+
}, [data.id, data.status, data.duration, seconds, activeTimerId, t]);
|
40599
|
+
return React__default.createElement(MenuItem, {
|
40600
|
+
className: "" + styles["timer-menu-item"],
|
40601
|
+
sx: {
|
40602
|
+
py: 1,
|
40603
|
+
bgcolor: theme.palette.background.paper,
|
40604
|
+
borderRadius: 0.75,
|
40605
|
+
minHeight: "52px"
|
40606
|
+
},
|
40607
|
+
disabled: loading,
|
40608
|
+
onClick: handleStartOrPauseTimer
|
40609
|
+
}, React__default.createElement(material.Stack, {
|
40610
|
+
direction: "row",
|
40611
|
+
gap: 1,
|
40612
|
+
sx: {
|
40613
|
+
justifyContent: "space-between",
|
40614
|
+
alignItems: "center",
|
40615
|
+
width: "100%"
|
40616
|
+
}
|
40617
|
+
}, React__default.createElement(material.Typography, {
|
40618
|
+
className: styles["subject-name"] + " " + styles["truncate"],
|
40619
|
+
fontSize: "14px",
|
40620
|
+
fontWeight: 600
|
40621
|
+
}, data.name), React__default.createElement(material.Box, {
|
40622
|
+
sx: {
|
40623
|
+
display: "flex",
|
40624
|
+
alignItems: "center",
|
40625
|
+
gap: 1.5
|
40626
|
+
}
|
40627
|
+
}, React__default.createElement(material.Typography, {
|
40628
|
+
className: "" + styles["duration"],
|
40629
|
+
sx: {
|
40630
|
+
color: isStarted ? theme.palette.common.black : theme.palette.success.light,
|
40631
|
+
fontSize: "14px",
|
40632
|
+
fontWeight: 700
|
40633
|
+
}
|
40634
|
+
}, displayedTime), !isStarted && React__default.createElement(material.Box, {
|
40635
|
+
className: "" + styles["icon-start"]
|
40636
|
+
}, React__default.createElement(io5.IoPlayCircleSharp, {
|
40637
|
+
size: 20
|
40638
|
+
})))));
|
40639
|
+
};
|
40640
|
+
var TOTAL_SECONDS_IN_A_MINUTE = 60;
|
40641
|
+
var TOTAL_SECONDS_IN_AN_HOUR = 60 * 60;
|
40642
|
+
var formatTime$2 = function formatTime(totalSeconds, t) {
|
40643
|
+
var hours = Math.floor(totalSeconds / TOTAL_SECONDS_IN_AN_HOUR);
|
40644
|
+
var minutes = Math.floor(totalSeconds % TOTAL_SECONDS_IN_AN_HOUR / TOTAL_SECONDS_IN_A_MINUTE);
|
40645
|
+
var seconds = totalSeconds % TOTAL_SECONDS_IN_A_MINUTE;
|
40646
|
+
if (hours > 0) {
|
40647
|
+
return "" + hours.toString().padStart(2, "0") + t("hour_h") + " " + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
|
40648
|
+
}
|
40649
|
+
if (minutes > 0) {
|
40650
|
+
return "" + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
|
40651
|
+
}
|
40652
|
+
return "" + seconds.toString().padStart(2, "0") + t("seconds");
|
40653
|
+
};
|
40654
|
+
|
40655
|
+
var TimerCountItem = function TimerCountItem(_ref) {
|
40656
|
+
var data = _ref.data,
|
40657
|
+
activeTimerId = _ref.activeTimerId,
|
40658
|
+
onChangeTime = _ref.onChangeTime;
|
40659
|
+
var requestAnimationRef = React.useRef(null);
|
40660
|
+
var user = reactRedux.useSelector(function (state) {
|
40661
|
+
var _state$common;
|
40662
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
40663
|
+
});
|
40664
|
+
React.useEffect(function () {
|
40665
|
+
if (data.status !== exports.SubjectTimerStatus.Started || !(user !== null && user !== void 0 && user.academyDomain) && !(user !== null && user !== void 0 && user.isLearningSpace) || data.id !== activeTimerId) return;
|
40666
|
+
var _animate = function animate() {
|
40667
|
+
var startTime = data.startTime,
|
40668
|
+
lastResumeTime = data.lastResumeTime,
|
40669
|
+
duration = data.duration;
|
40670
|
+
var startOfTime = lastResumeTime !== DATE_TIME_MIN_VALUE ? lastResumeTime : startTime;
|
40671
|
+
if (startOfTime === DATE_TIME_MIN_VALUE) return;
|
40672
|
+
var time = getCountTime(startOfTime, Math.floor(duration / 1000));
|
40673
|
+
if (typeof time !== "number") {
|
40674
|
+
onChangeTime(data, undefined);
|
40675
|
+
return;
|
40676
|
+
}
|
40677
|
+
onChangeTime(data, time);
|
40678
|
+
requestAnimationRef.current = requestAnimationFrame(_animate);
|
40679
|
+
};
|
40680
|
+
requestAnimationRef.current = requestAnimationFrame(_animate);
|
40681
|
+
return function () {
|
40682
|
+
!!requestAnimationRef.current && cancelAnimationFrame(requestAnimationRef.current);
|
40683
|
+
};
|
40684
|
+
}, [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]);
|
40685
|
+
return React__default.createElement(React.Fragment, null);
|
40686
|
+
};
|
40687
|
+
|
40688
|
+
var formatDate = function formatDate(t, date) {
|
40689
|
+
return utcToLocalTime(date, t("date_format"));
|
40690
|
+
};
|
40691
|
+
var TimerDropdown = function TimerDropdown() {
|
40692
|
+
var _user$academyDomain$t, _user$academyDomain, _user$academyDomain$t2;
|
40693
|
+
var _useTranslation = reactI18next.useTranslation(),
|
40694
|
+
t = _useTranslation.t;
|
40695
|
+
var theme = material.useTheme();
|
40696
|
+
var user = reactRedux.useSelector(function (state) {
|
40697
|
+
var _state$common;
|
40698
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
40699
|
+
});
|
40700
|
+
var _useState = React.useState(null),
|
40701
|
+
open = _useState[0],
|
40702
|
+
setOpen = _useState[1];
|
40703
|
+
var _useState2 = React.useState([]),
|
40704
|
+
timers = _useState2[0],
|
40705
|
+
setTimers = _useState2[1];
|
40706
|
+
var _useState3 = React.useState(),
|
40707
|
+
seconds = _useState3[0],
|
40708
|
+
setSeconds = _useState3[1];
|
40709
|
+
var _useState4 = React.useState(),
|
40710
|
+
activeTimerId = _useState4[0],
|
40711
|
+
setActiveTimerId = _useState4[1];
|
40712
|
+
var _useState5 = React.useState(false),
|
40713
|
+
loadingItem = _useState5[0],
|
40714
|
+
setLoadingItem = _useState5[1];
|
40715
|
+
var _useState6 = React.useState(false),
|
40716
|
+
isFetching = _useState6[0],
|
40717
|
+
setFetching = _useState6[1];
|
40718
|
+
var fetchedRef = React.useRef();
|
40719
|
+
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 : "";
|
40720
|
+
var handleChangeTime = function handleChangeTime(data, time) {
|
40721
|
+
if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return;
|
40722
|
+
if (academyDomain !== fetchedRef.current && data.id !== activeTimerId) return;
|
40723
|
+
setSeconds(time);
|
40724
|
+
var key = user.id + "-" + data.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
|
40725
|
+
saveDuration(key, time * 1000);
|
40726
|
+
};
|
40727
|
+
var handleOpen = function handleOpen(event) {
|
40728
|
+
setOpen(event.currentTarget);
|
40729
|
+
};
|
40730
|
+
var handleClose = function handleClose() {
|
40731
|
+
setOpen(null);
|
40732
|
+
};
|
40733
|
+
var handleStartOrPauseTimer = function handleStartOrPauseTimer(data) {
|
40734
|
+
try {
|
40735
|
+
var _temp2 = function _temp2(_result3) {
|
40736
|
+
if (_exit) return _result3;
|
40737
|
+
setLoadingItem(false);
|
40738
|
+
};
|
40739
|
+
var _exit = false;
|
40740
|
+
var isActive = activeTimerId === data.id;
|
40741
|
+
var isPaused = data.status === exports.SubjectTimerStatus.Paused;
|
40742
|
+
setLoadingItem(true);
|
40743
|
+
var _temp = _catch(function () {
|
40744
|
+
return Promise.resolve(handlePauseAllTimers(data.id)).then(function () {
|
40745
|
+
return function () {
|
40746
|
+
if (data.recordId) {
|
40747
|
+
return function () {
|
40748
|
+
if (!isActive && !isPaused) {
|
40749
|
+
setActiveTimerId(data.id);
|
40750
|
+
setTimers(function (timers) {
|
40751
|
+
return timers.map(function (timer) {
|
40752
|
+
return timer.id === data.id ? _extends({}, timer, {
|
40753
|
+
lastResumeTime: moment().utc().toISOString()
|
40754
|
+
}) : timer;
|
40755
|
+
});
|
40756
|
+
});
|
40757
|
+
setLoadingItem(false);
|
40758
|
+
_exit = true;
|
40759
|
+
} else {
|
40760
|
+
return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
|
40761
|
+
status: isPaused ? exports.SubjectTimerStatus.Started : exports.SubjectTimerStatus.Paused,
|
40762
|
+
startTime: isPaused ? moment().utc().valueOf() : 0,
|
40763
|
+
pauseTime: !isPaused ? moment().utc().valueOf() : 0,
|
40764
|
+
duration: isActive && seconds ? seconds * 1000 : data.duration
|
40765
|
+
})).then(function (res) {
|
40766
|
+
setTimers(function (timers) {
|
40767
|
+
return timers.map(function (timer) {
|
40768
|
+
return timer.id === data.id ? res.data : timer;
|
40769
|
+
});
|
40770
|
+
});
|
40771
|
+
setActiveTimerId(!isPaused && isActive ? undefined : data.id);
|
40772
|
+
});
|
40773
|
+
}
|
40774
|
+
}();
|
40775
|
+
} else {
|
40776
|
+
return Promise.resolve(startStudentSubjectTimerApi(data.id)).then(function (res) {
|
40777
|
+
setTimers(function (timers) {
|
40778
|
+
return timers.map(function (timer) {
|
40779
|
+
return timer.id === data.id ? res.data : timer;
|
40780
|
+
});
|
40781
|
+
});
|
40782
|
+
setActiveTimerId(!isPaused && isActive ? undefined : data.id);
|
40783
|
+
});
|
40784
|
+
}
|
40785
|
+
}();
|
40786
|
+
});
|
40787
|
+
}, function () {
|
40788
|
+
reactToastify.toast.error(t(isPaused ? "failed_to_start_the_subject_name" : "failed_to_pause_the_subject_name", {
|
40789
|
+
name: data.name
|
40790
|
+
}));
|
40791
|
+
});
|
40792
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
40793
|
+
} catch (e) {
|
40794
|
+
return Promise.reject(e);
|
40795
|
+
}
|
40796
|
+
};
|
40797
|
+
var handlePauseAllTimers = function handlePauseAllTimers(exceptId) {
|
40798
|
+
try {
|
40799
|
+
!exceptId && setLoadingItem(true);
|
40800
|
+
var tasks = timers.filter(function (i) {
|
40801
|
+
return i.status === exports.SubjectTimerStatus.Started && i.id !== exceptId;
|
40802
|
+
}).map(function (i) {
|
40803
|
+
return handlePauseTimer(i);
|
40804
|
+
});
|
40805
|
+
return Promise.resolve(Promise.all(tasks)).then(function () {
|
40806
|
+
!exceptId && setLoadingItem(false);
|
40807
|
+
});
|
40808
|
+
} catch (e) {
|
40809
|
+
return Promise.reject(e);
|
40810
|
+
}
|
40811
|
+
};
|
40812
|
+
var handlePauseTimer = function handlePauseTimer(data, updateState) {
|
40813
|
+
if (updateState === void 0) {
|
40814
|
+
updateState = true;
|
40815
|
+
}
|
40816
|
+
try {
|
40817
|
+
if (data.status === exports.SubjectTimerStatus.Paused) return Promise.resolve(data);
|
40818
|
+
return Promise.resolve(_catch(function () {
|
40819
|
+
return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
|
40820
|
+
status: exports.SubjectTimerStatus.Paused,
|
40821
|
+
duration: activeTimerId === data.id && seconds ? seconds * 1000 : data.duration,
|
40822
|
+
pauseTime: moment().utc().valueOf()
|
40823
|
+
})).then(function (res) {
|
40824
|
+
if (updateState) setTimers(function (state) {
|
40825
|
+
return state.map(function (i) {
|
40826
|
+
return i.id === data.id ? res.data : i;
|
40827
|
+
});
|
40828
|
+
});
|
40829
|
+
return res.data;
|
40830
|
+
});
|
40831
|
+
}, function () {
|
40832
|
+
activeTimerId === data.id && reactToastify.toast.error(t("failed_to_pause_the_subject_name", {
|
40833
|
+
name: data.name
|
40834
|
+
}));
|
40835
|
+
}));
|
40836
|
+
} catch (e) {
|
40837
|
+
return Promise.reject(e);
|
40838
|
+
}
|
40839
|
+
};
|
40840
|
+
var getDataFromLocalStorage = React.useCallback(function (items) {
|
40841
|
+
if (fetchedRef.current !== academyDomain) return [];
|
40842
|
+
return items.map(function (item) {
|
40843
|
+
var key = (user === null || user === void 0 ? void 0 : user.id) + "-" + item.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
|
40844
|
+
var duration = getLocalDuration(key, item);
|
40845
|
+
var lastResumeTime = moment().utc().toISOString();
|
40846
|
+
return _extends({}, item, {
|
40847
|
+
duration: duration !== null ? duration : item.duration,
|
40848
|
+
lastResumeTime: lastResumeTime
|
40849
|
+
});
|
40850
|
+
});
|
40851
|
+
}, [user === null || user === void 0 ? void 0 : user.id, academyDomain]);
|
40852
|
+
React.useEffect(function () {
|
40853
|
+
var fetchData = function fetchData() {
|
40854
|
+
try {
|
40855
|
+
var _temp4 = function _temp4() {
|
40856
|
+
setFetching(false);
|
40857
|
+
};
|
40858
|
+
if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return Promise.resolve();
|
40859
|
+
if (fetchedRef.current == academyDomain && !open) return Promise.resolve();
|
40860
|
+
setFetching(true);
|
40861
|
+
var _temp3 = _catch(function () {
|
40862
|
+
return Promise.resolve(getStudentSubjectListApi()).then(function (res) {
|
40863
|
+
var _items$find;
|
40864
|
+
var _res$data$items = res.data.items,
|
40865
|
+
items = _res$data$items === void 0 ? [] : _res$data$items;
|
40866
|
+
fetchedRef.current = academyDomain;
|
40867
|
+
setTimers(getDataFromLocalStorage(items));
|
40868
|
+
setActiveTimerId((_items$find = items.find(function (i) {
|
40869
|
+
return i.status === exports.SubjectTimerStatus.Started;
|
40870
|
+
})) === null || _items$find === void 0 ? void 0 : _items$find.id);
|
40871
|
+
});
|
40872
|
+
}, function (error) {
|
40873
|
+
reactToastify.toast.error(getErrorMessage(t, error));
|
40874
|
+
});
|
40875
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
40876
|
+
} catch (e) {
|
40877
|
+
return Promise.reject(e);
|
40878
|
+
}
|
40879
|
+
};
|
40880
|
+
fetchData();
|
40881
|
+
}, [t, getDataFromLocalStorage, user === null || user === void 0 ? void 0 : user.isLearningSpace, open]);
|
40882
|
+
var today = formatDate(t);
|
40883
|
+
var isRunning = timers.some(function (timer) {
|
40884
|
+
return timer.status === exports.SubjectTimerStatus.Started;
|
40885
|
+
});
|
40886
|
+
var selectedTimer = timers.find(function (i) {
|
40887
|
+
return i.id === activeTimerId;
|
40888
|
+
});
|
40889
|
+
return React__default.createElement(React.Fragment, null, React__default.createElement(IconButton, {
|
40890
|
+
onClick: handleOpen,
|
40891
|
+
sx: {
|
40892
|
+
width: 44,
|
40893
|
+
height: 44,
|
40894
|
+
mx: 1,
|
40895
|
+
borderRadius: "6px",
|
40896
|
+
padding: "8px",
|
40897
|
+
background: !isRunning ? grey[50] : green[100],
|
40898
|
+
"&: hover": {
|
40899
|
+
background: !isRunning ? grey[200] : green[200]
|
40900
|
+
}
|
40901
|
+
}
|
40902
|
+
}, React__default.createElement(material.Stack, {
|
40903
|
+
justifyContent: "center",
|
40904
|
+
alignItems: "center",
|
40905
|
+
width: "100%",
|
40906
|
+
height: "100%",
|
40907
|
+
sx: {
|
40908
|
+
borderRadius: "50%",
|
40909
|
+
backgroundColor: "#FFF"
|
40910
|
+
}
|
40911
|
+
}, React__default.createElement(io5.IoTimer, {
|
40912
|
+
color: !isRunning ? grey[700] : green[500],
|
40913
|
+
size: "16.25px"
|
40914
|
+
}))), selectedTimer && React__default.createElement(TimerCountItem, {
|
40915
|
+
data: selectedTimer,
|
40916
|
+
activeTimerId: activeTimerId,
|
40917
|
+
onChangeTime: handleChangeTime
|
40918
|
+
}), React__default.createElement(Popover, {
|
40919
|
+
open: !!open,
|
40920
|
+
anchorEl: open,
|
40921
|
+
onClose: handleClose,
|
40922
|
+
anchorOrigin: {
|
40923
|
+
vertical: "bottom",
|
40924
|
+
horizontal: "right"
|
40925
|
+
},
|
40926
|
+
transformOrigin: {
|
40927
|
+
vertical: "top",
|
40928
|
+
horizontal: "right"
|
40929
|
+
},
|
40930
|
+
slotProps: {
|
40931
|
+
paper: {
|
40932
|
+
sx: {
|
40933
|
+
px: 2,
|
40934
|
+
mt: 1,
|
40935
|
+
ml: 0.75,
|
40936
|
+
width: 320,
|
40937
|
+
borderRadius: 2,
|
40938
|
+
boxShadow: 3,
|
40939
|
+
bgcolor: theme.palette.grey[50]
|
40940
|
+
}
|
40941
|
+
}
|
40942
|
+
}
|
40943
|
+
}, React__default.createElement(material.Box, {
|
40944
|
+
sx: {
|
40945
|
+
py: 2,
|
40946
|
+
display: "flex",
|
40947
|
+
alignItems: "center",
|
40948
|
+
justifyContent: "space-between"
|
40949
|
+
}
|
40950
|
+
}, React__default.createElement(material.Box, {
|
40951
|
+
sx: {
|
40952
|
+
display: "flex",
|
40953
|
+
gap: 1,
|
40954
|
+
alignItems: "center"
|
40955
|
+
}
|
40956
|
+
}, React__default.createElement(material.Box, {
|
40957
|
+
display: "flex",
|
40958
|
+
alignItems: "center"
|
40959
|
+
}, React__default.createElement(io5.IoTimer, null)), React__default.createElement(material.Typography, {
|
40960
|
+
variant: "subtitle1",
|
40961
|
+
fontWeight: "bold",
|
40962
|
+
fontSize: "14px"
|
40963
|
+
}, t("study_timer"))), React__default.createElement(material.Typography, {
|
40964
|
+
color: "textSecondary",
|
40965
|
+
whiteSpace: "nowrap",
|
40966
|
+
fontSize: "14px"
|
40967
|
+
}, today)), React__default.createElement(material.Divider, {
|
40968
|
+
sx: {
|
40969
|
+
bgcolor: theme.palette.grey[700]
|
40970
|
+
}
|
40971
|
+
}), React__default.createElement(material.Stack, {
|
40972
|
+
className: "" + styles["timer-menu"],
|
40973
|
+
gap: 1.5,
|
40974
|
+
flexDirection: "column",
|
40975
|
+
sx: {
|
40976
|
+
py: 2,
|
40977
|
+
maxHeight: "360px"
|
40978
|
+
}
|
40979
|
+
}, !isFetching && React__default.createElement(ListView, {
|
40980
|
+
data: timers,
|
40981
|
+
render: function render(item, index) {
|
40982
|
+
return React__default.createElement(TimerItem, {
|
40983
|
+
key: index,
|
40984
|
+
data: item,
|
40985
|
+
loading: loadingItem,
|
40986
|
+
seconds: activeTimerId === item.id ? seconds : undefined,
|
40987
|
+
activeTimerId: activeTimerId,
|
40988
|
+
onStartOrPauseTimer: handleStartOrPauseTimer
|
40989
|
+
});
|
40990
|
+
}
|
40991
|
+
}), isFetching && React__default.createElement(material.Stack, {
|
40992
|
+
sx: {
|
40993
|
+
width: "100%",
|
40994
|
+
py: 2
|
40995
|
+
},
|
40996
|
+
justifyContent: "center",
|
40997
|
+
alignItems: "center"
|
40998
|
+
}, React__default.createElement(material.Typography, {
|
40999
|
+
className: "text-muted"
|
41000
|
+
}, React__default.createElement(material.CircularProgress, {
|
41001
|
+
size: "16px",
|
41002
|
+
color: "success"
|
41003
|
+
}))), !timers.length && !isFetching && React__default.createElement(material.Box, null, React__default.createElement(material.Typography, {
|
41004
|
+
className: "text-muted"
|
41005
|
+
}, t("no_data")))), React__default.createElement(material.Divider, {
|
41006
|
+
sx: {
|
41007
|
+
bgcolor: theme.palette.grey[700]
|
41008
|
+
}
|
41009
|
+
}), React__default.createElement(material.Box, {
|
41010
|
+
sx: {
|
41011
|
+
p: 2,
|
41012
|
+
textAlign: "right"
|
41013
|
+
}
|
41014
|
+
}, React__default.createElement(material.Button, {
|
41015
|
+
disableTouchRipple: true,
|
41016
|
+
onClick: function onClick() {
|
41017
|
+
return handlePauseAllTimers();
|
41018
|
+
},
|
41019
|
+
disabled: loadingItem,
|
41020
|
+
sx: {
|
41021
|
+
fontWeight: 700,
|
41022
|
+
color: theme.palette.success.main,
|
41023
|
+
padding: "8px 12px",
|
41024
|
+
bgcolor: theme.palette.background.paper,
|
41025
|
+
"&:hover": {
|
41026
|
+
bgcolor: theme.palette.grey[200]
|
41027
|
+
},
|
41028
|
+
"&:disabled": {
|
41029
|
+
opacity: 0.5
|
41030
|
+
}
|
41031
|
+
}
|
41032
|
+
}, loadingItem ? t("saving") : t("pause")))));
|
41033
|
+
};
|
41034
|
+
var SUBJECT_TIMER_KEY = "stk";
|
41035
|
+
var saveDuration = function saveDuration(key, duration) {
|
41036
|
+
localStorage.setItem(key, "" + duration);
|
41037
|
+
};
|
41038
|
+
var getLocalDuration = function getLocalDuration(key, timer) {
|
41039
|
+
try {
|
41040
|
+
var res = localStorage.getItem(key);
|
41041
|
+
var duration = +(res != null ? res : "");
|
41042
|
+
if (!duration || Number.isNaN(duration) || duration <= timer.duration) return null;
|
41043
|
+
return duration;
|
41044
|
+
} catch (error) {
|
41045
|
+
return null;
|
41046
|
+
}
|
41047
|
+
};
|
41048
|
+
|
41049
|
+
var HeaderLink = function HeaderLink(_ref) {
|
41050
|
+
var data = _ref.data,
|
41051
|
+
render = _ref.render;
|
41052
|
+
var activePaths = data.activePaths,
|
41053
|
+
path = data.path;
|
41054
|
+
var pathname = window.location.pathname.toLowerCase();
|
41055
|
+
var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
|
41056
|
+
return pathname.startsWith(a);
|
41057
|
+
})) || pathname.startsWith(path);
|
41058
|
+
return React__default.createElement(React.Fragment, null, render(data, isActive));
|
41059
|
+
};
|
41060
|
+
|
40305
41061
|
var Header = function Header(_ref) {
|
40306
41062
|
var academyListRoute = _ref.academyListRoute,
|
40307
41063
|
homeRoute = _ref.homeRoute,
|
@@ -40424,7 +41180,9 @@ var Header = function Header(_ref) {
|
|
40424
41180
|
justifyContent: "center",
|
40425
41181
|
height: "100%",
|
40426
41182
|
className: styles["logo"] + " d-flex d-lg-none"
|
40427
|
-
}, React__default.createElement(singleLogo, null))), React__default.createElement(material.Stack, {
|
41183
|
+
}, React__default.createElement(singleLogo, null))), !isTeacherSide && React__default.createElement(material.Stack, {
|
41184
|
+
className: "me-2 ms-2"
|
41185
|
+
}, React__default.createElement(TimerDropdown, null)), React__default.createElement(material.Stack, {
|
40428
41186
|
className: "me-2",
|
40429
41187
|
display: "none"
|
40430
41188
|
}, React__default.createElement(TheLanguageDropdown, null)), showAnnouncement && renderNotificationLink && React__default.createElement(AnnouncementContainer, {
|
@@ -40433,17 +41191,6 @@ var Header = function Header(_ref) {
|
|
40433
41191
|
renderViewNoteLink: renderViewNoteLink
|
40434
41192
|
})));
|
40435
41193
|
};
|
40436
|
-
var HeaderLink = function HeaderLink(_ref3) {
|
40437
|
-
var data = _ref3.data,
|
40438
|
-
render = _ref3.render;
|
40439
|
-
var activePaths = data.activePaths,
|
40440
|
-
path = data.path;
|
40441
|
-
var pathname = location.pathname.toLowerCase();
|
40442
|
-
var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
|
40443
|
-
return pathname.startsWith(a);
|
40444
|
-
})) || pathname.startsWith(path);
|
40445
|
-
return React__default.createElement(React.Fragment, null, render(data, isActive));
|
40446
|
-
};
|
40447
41194
|
|
40448
41195
|
var useLayoutContext = function useLayoutContext(role, showLoadingAcademy, domain) {
|
40449
41196
|
var _currentPusher$connec2;
|
@@ -40828,6 +41575,7 @@ exports.formatTime = formatTime;
|
|
40828
41575
|
exports.formatTimeSecond = formatTimeSecond;
|
40829
41576
|
exports.getAcademyDomain = getAcademyDomain;
|
40830
41577
|
exports.getAccessToken = getAccessToken;
|
41578
|
+
exports.getCountTime = getCountTime;
|
40831
41579
|
exports.getErrorMessage = getErrorMessage;
|
40832
41580
|
exports.getLanguage = getLanguage;
|
40833
41581
|
exports.getLearningSpace = getLearningSpace;
|