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.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: {
|
@@ -6263,6 +6326,12 @@ var HighSchoolGrade;
|
|
6263
6326
|
TextbookEditorType[TextbookEditorType["Korea"] = 1] = "Korea";
|
6264
6327
|
TextbookEditorType[TextbookEditorType["Math"] = 2] = "Math";
|
6265
6328
|
})(exports.TextbookEditorType || (exports.TextbookEditorType = {}));
|
6329
|
+
var PrintStatus;
|
6330
|
+
(function (PrintStatus) {
|
6331
|
+
PrintStatus[PrintStatus["Idle"] = 0] = "Idle";
|
6332
|
+
PrintStatus[PrintStatus["Saving"] = 1] = "Saving";
|
6333
|
+
PrintStatus[PrintStatus["Saved"] = 2] = "Saved";
|
6334
|
+
})(PrintStatus || (PrintStatus = {}));
|
6266
6335
|
|
6267
6336
|
(function (SchoolType) {
|
6268
6337
|
SchoolType[SchoolType["Default"] = 0] = "Default";
|
@@ -6271,6 +6340,12 @@ var HighSchoolGrade;
|
|
6271
6340
|
SchoolType[SchoolType["High"] = 3] = "High";
|
6272
6341
|
})(exports.SchoolType || (exports.SchoolType = {}));
|
6273
6342
|
|
6343
|
+
(function (SubjectTimerStatus) {
|
6344
|
+
SubjectTimerStatus[SubjectTimerStatus["NotStarted"] = 0] = "NotStarted";
|
6345
|
+
SubjectTimerStatus[SubjectTimerStatus["Started"] = 1] = "Started";
|
6346
|
+
SubjectTimerStatus[SubjectTimerStatus["Paused"] = 2] = "Paused";
|
6347
|
+
})(exports.SubjectTimerStatus || (exports.SubjectTimerStatus = {}));
|
6348
|
+
|
6274
6349
|
var canAccess = function canAccess(userRoles, componentRoles) {
|
6275
6350
|
if (!Array.isArray(userRoles)) {
|
6276
6351
|
return false;
|
@@ -6520,6 +6595,11 @@ var getRemainTime = function getRemainTime(startTime, duration) {
|
|
6520
6595
|
if (timePass > durationInNumber) return 0;
|
6521
6596
|
return durationInNumber - timePass;
|
6522
6597
|
};
|
6598
|
+
var getCountTime = function getCountTime(startTime, duration) {
|
6599
|
+
var timePass = diffFromNow(startTime, "second");
|
6600
|
+
if (typeof timePass !== "number") return null;
|
6601
|
+
return duration + timePass;
|
6602
|
+
};
|
6523
6603
|
|
6524
6604
|
var formatDateTime = function formatDateTime(inputDate) {
|
6525
6605
|
var date = new Date(inputDate);
|
@@ -8244,6 +8324,27 @@ var getSubjectListApi = function getSubjectListApi(textSearch) {
|
|
8244
8324
|
return Promise.reject(e);
|
8245
8325
|
}
|
8246
8326
|
};
|
8327
|
+
var getStudentSubjectListApi = function getStudentSubjectListApi() {
|
8328
|
+
try {
|
8329
|
+
return Promise.resolve(api.get(SUBJECT_URL + "/timers"));
|
8330
|
+
} catch (e) {
|
8331
|
+
return Promise.reject(e);
|
8332
|
+
}
|
8333
|
+
};
|
8334
|
+
var startStudentSubjectTimerApi = function startStudentSubjectTimerApi(subjectId) {
|
8335
|
+
try {
|
8336
|
+
return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers"));
|
8337
|
+
} catch (e) {
|
8338
|
+
return Promise.reject(e);
|
8339
|
+
}
|
8340
|
+
};
|
8341
|
+
var pauseStudentSubjectApi = function pauseStudentSubjectApi(subjectId, recordId, data) {
|
8342
|
+
try {
|
8343
|
+
return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers/" + recordId, data));
|
8344
|
+
} catch (e) {
|
8345
|
+
return Promise.reject(e);
|
8346
|
+
}
|
8347
|
+
};
|
8247
8348
|
|
8248
8349
|
var SubjectSelector = function SubjectSelector(_ref) {
|
8249
8350
|
var value = _ref.value,
|
@@ -10313,6 +10414,7 @@ var grey = {
|
|
10313
10414
|
var green = {
|
10314
10415
|
0: '#FFFFFF',
|
10315
10416
|
100: '#F0FFF6',
|
10417
|
+
200: '#D2FFE4',
|
10316
10418
|
300: '#89F0B2',
|
10317
10419
|
500: '#3DC674',
|
10318
10420
|
700: '#349056',
|
@@ -33862,11 +33964,11 @@ var TextbookRow = function TextbookRow(_ref) {
|
|
33862
33964
|
});
|
33863
33965
|
var _useTranslation = reactI18next.useTranslation(),
|
33864
33966
|
t = _useTranslation.t;
|
33865
|
-
var isEditable =
|
33967
|
+
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) {
|
33866
33968
|
var _infoUser$email, _infoUser$email$trim;
|
33867
33969
|
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);
|
33868
|
-
})))
|
33869
|
-
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)
|
33970
|
+
})));
|
33971
|
+
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);
|
33870
33972
|
var isSharable = !data.isPublic && data.isShared && onAcademy && (isAdminSite || isSuperAdminUser || !isAdmin && data.createdBy.id === infoUser.id);
|
33871
33973
|
var handleUpdateTextbook = function handleUpdateTextbook() {
|
33872
33974
|
onUpdateTextbook(data);
|
@@ -34887,10 +34989,10 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
34887
34989
|
var isAdminSite = role === exports.Role.Admin;
|
34888
34990
|
var onAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
|
34889
34991
|
var isSuperAdminUser = !!user && user.isSuperAdmin;
|
34890
|
-
var isEditable = !selectedTextbook ||
|
34992
|
+
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) {
|
34891
34993
|
var _user$email, _user$email$trim;
|
34892
34994
|
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);
|
34893
|
-
}))
|
34995
|
+
}));
|
34894
34996
|
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);
|
34895
34997
|
var handleOpenConfirmDeleteChapterDialog = function handleOpenConfirmDeleteChapterDialog(chapter) {
|
34896
34998
|
setSelectedChapter(chapter);
|
@@ -34992,6 +35094,24 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
34992
35094
|
return Promise.reject(e);
|
34993
35095
|
}
|
34994
35096
|
};
|
35097
|
+
var handleSaveData = React.useCallback(function (values) {
|
35098
|
+
try {
|
35099
|
+
if (!coverImage && !(values !== null && values !== void 0 && values.coverImage)) {
|
35100
|
+
return Promise.resolve();
|
35101
|
+
}
|
35102
|
+
return Promise.resolve(_catch(function () {
|
35103
|
+
var coverImg = coverImage || (values === null || values === void 0 ? void 0 : values.coverImage);
|
35104
|
+
return Promise.resolve(updateTextbookApi$1(_extends({}, values, {
|
35105
|
+
coverImage: coverImg
|
35106
|
+
}), (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.id) || 0, isSuperAdmin)).then(function () {});
|
35107
|
+
}, function (error) {
|
35108
|
+
reactToastify.toast.error(getErrorMessage(t, error));
|
35109
|
+
throw error;
|
35110
|
+
}));
|
35111
|
+
} catch (e) {
|
35112
|
+
return Promise.reject(e);
|
35113
|
+
}
|
35114
|
+
}, [coverImage, isSuperAdmin, JSON.stringify(selectedTextbook)]);
|
34995
35115
|
React.useEffect(function () {
|
34996
35116
|
if (!textbookId) return;
|
34997
35117
|
handleGetTextbookDetail();
|
@@ -35010,6 +35130,7 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
35010
35130
|
isSuperAdminUser: isSuperAdminUser,
|
35011
35131
|
openDialog: openDialog,
|
35012
35132
|
handleSubmit: handleSubmit,
|
35133
|
+
handleSaveData: handleSaveData,
|
35013
35134
|
selectedTextbook: selectedTextbook,
|
35014
35135
|
handleOpenDialog: handleOpenDialog,
|
35015
35136
|
handleCloseDialog: handleCloseDialog,
|
@@ -35303,6 +35424,8 @@ var CompareTypeOptions = [{
|
|
35303
35424
|
label: "synonym_processing",
|
35304
35425
|
value: exports.QuestionAnswerType.SynonymProcessing
|
35305
35426
|
}];
|
35427
|
+
var SAVE_TIME_INTERVAL_IN_MILLISECONDS = 60 * 1000;
|
35428
|
+
var SAVE_TIME_MAX_DIFF_IN_MILLISECONDS = 1000;
|
35306
35429
|
|
35307
35430
|
var CustomTextbookTab = function CustomTextbookTab(props) {
|
35308
35431
|
var children = props.children,
|
@@ -38478,8 +38601,9 @@ var TextbookOwnersTab = function TextbookOwnersTab(_ref) {
|
|
38478
38601
|
}));
|
38479
38602
|
};
|
38480
38603
|
|
38481
|
-
var _excluded$m = ["isCreatedByAdmin", "isSuperAdminUser", "isSuperAdmin", "isAdmin", "textbookId", "selected", "coverImage", "disabled", "ownersDisabled", "onChangeTab", "onUploadImage"];
|
38604
|
+
var _excluded$m = ["isCreatedByAdmin", "isSuperAdminUser", "isSuperAdmin", "isAdmin", "textbookId", "selected", "coverImage", "disabled", "ownersDisabled", "selectedTextbook", "handleSaveData", "onChangeTab", "onUploadImage"];
|
38482
38605
|
var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
38606
|
+
var _valuesTextbook$curre;
|
38483
38607
|
var isCreatedByAdmin = _ref.isCreatedByAdmin,
|
38484
38608
|
isSuperAdminUser = _ref.isSuperAdminUser,
|
38485
38609
|
isSuperAdmin = _ref.isSuperAdmin,
|
@@ -38489,6 +38613,8 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38489
38613
|
coverImage = _ref.coverImage,
|
38490
38614
|
disabled = _ref.disabled,
|
38491
38615
|
ownersDisabled = _ref.ownersDisabled,
|
38616
|
+
selectedTextbook = _ref.selectedTextbook,
|
38617
|
+
handleSaveData = _ref.handleSaveData,
|
38492
38618
|
onChangeTab = _ref.onChangeTab,
|
38493
38619
|
onUploadImage = _ref.onUploadImage,
|
38494
38620
|
formikProps = _objectWithoutPropertiesLoose(_ref, _excluded$m);
|
@@ -38497,6 +38623,20 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38497
38623
|
dirty = formikProps.dirty,
|
38498
38624
|
submitCount = formikProps.submitCount,
|
38499
38625
|
setValues = formikProps.setValues;
|
38626
|
+
var theme = material.useTheme();
|
38627
|
+
var savedRunRef = React.useRef(Date.now());
|
38628
|
+
var runTimeRef = React.useRef(Date.now());
|
38629
|
+
var valuesTextbook = React.useRef(null);
|
38630
|
+
var isFirstLoadRef = React.useRef(true);
|
38631
|
+
var _React$useState = React__default.useState(PrintStatus.Idle),
|
38632
|
+
saveStatus = _React$useState[0],
|
38633
|
+
setSaveStatus = _React$useState[1];
|
38634
|
+
var timeoutRef = React.useRef(null);
|
38635
|
+
var isProcessingRef = React.useRef(false);
|
38636
|
+
var pendingValuesRef = React.useRef(null);
|
38637
|
+
var _useState = React.useState(),
|
38638
|
+
lastEdited = _useState[0],
|
38639
|
+
setLastEdited = _useState[1];
|
38500
38640
|
React.useEffect(function () {
|
38501
38641
|
var handleBeforeUnload = function handleBeforeUnload(event) {
|
38502
38642
|
var message = i18n.t("are_you_sure_you_want_to_quit_yours_changes_may_not_be_saved");
|
@@ -38517,9 +38657,99 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38517
38657
|
var newValues = _resetAllCategoriesAndQuestionTypesBySubject(values, val);
|
38518
38658
|
setValues(newValues);
|
38519
38659
|
};
|
38660
|
+
React.useEffect(function () {
|
38661
|
+
if (!valuesTextbook.current && isFirstLoadRef.current && !_$8.isEqual(values, DEFAULT_TEXTBOOK_REQUEST)) {
|
38662
|
+
valuesTextbook.current = _$8.cloneDeep(values);
|
38663
|
+
isFirstLoadRef.current = false;
|
38664
|
+
}
|
38665
|
+
}, [values]);
|
38666
|
+
var _handleSave = function handleSave(valuesProps) {
|
38667
|
+
try {
|
38668
|
+
var _temp = _finallyRethrows(function () {
|
38669
|
+
return _catch(function () {
|
38670
|
+
isProcessingRef.current = true;
|
38671
|
+
setSaveStatus(PrintStatus.Saving);
|
38672
|
+
var valuesToSave = valuesProps || values;
|
38673
|
+
return Promise.resolve(handleSaveData(valuesToSave)).then(function () {
|
38674
|
+
valuesTextbook.current = _$8.cloneDeep(valuesToSave);
|
38675
|
+
var now = Date.now();
|
38676
|
+
savedRunRef.current = now;
|
38677
|
+
runTimeRef.current = now;
|
38678
|
+
setSaveStatus(PrintStatus.Saved);
|
38679
|
+
});
|
38680
|
+
}, function (error) {
|
38681
|
+
setSaveStatus(PrintStatus.Idle);
|
38682
|
+
console.error(error);
|
38683
|
+
});
|
38684
|
+
}, function (_wasThrown, _result) {
|
38685
|
+
isProcessingRef.current = false;
|
38686
|
+
if (pendingValuesRef.current) {
|
38687
|
+
if (timeoutRef.current) {
|
38688
|
+
clearTimeout(timeoutRef.current);
|
38689
|
+
}
|
38690
|
+
timeoutRef.current = setTimeout(function () {
|
38691
|
+
timeoutRef.current = null;
|
38692
|
+
var pendingValues = pendingValuesRef.current;
|
38693
|
+
if (pendingValues) {
|
38694
|
+
_handleSave(pendingValues);
|
38695
|
+
pendingValuesRef.current = null;
|
38696
|
+
}
|
38697
|
+
}, SAVE_TIME_INTERVAL_IN_MILLISECONDS);
|
38698
|
+
}
|
38699
|
+
if (_wasThrown) throw _result;
|
38700
|
+
return _result;
|
38701
|
+
});
|
38702
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
38703
|
+
} catch (e) {
|
38704
|
+
return Promise.reject(e);
|
38705
|
+
}
|
38706
|
+
};
|
38707
|
+
React.useEffect(function () {
|
38708
|
+
var now = Date.now();
|
38709
|
+
if (valuesTextbook.current && !_$8.isEqual(values, valuesTextbook.current)) setLastEdited(now);
|
38710
|
+
if (!_$8.isEmpty(errors) || !valuesTextbook.current || !(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id)) return;
|
38711
|
+
if (valuesTextbook.current && _$8.isEqual(values, valuesTextbook.current)) return;
|
38712
|
+
if (isProcessingRef.current) {
|
38713
|
+
pendingValuesRef.current = _$8.cloneDeep(values);
|
38714
|
+
return;
|
38715
|
+
}
|
38716
|
+
var timeSinceLastRun = now - runTimeRef.current;
|
38717
|
+
var maxTime = SAVE_TIME_INTERVAL_IN_MILLISECONDS + SAVE_TIME_MAX_DIFF_IN_MILLISECONDS;
|
38718
|
+
if (timeSinceLastRun > maxTime) {
|
38719
|
+
runTimeRef.current = now;
|
38720
|
+
timeSinceLastRun = 0;
|
38721
|
+
}
|
38722
|
+
if (timeSinceLastRun >= SAVE_TIME_INTERVAL_IN_MILLISECONDS) {
|
38723
|
+
if (timeoutRef.current) {
|
38724
|
+
clearTimeout(timeoutRef.current);
|
38725
|
+
timeoutRef.current = null;
|
38726
|
+
pendingValuesRef.current = null;
|
38727
|
+
}
|
38728
|
+
_handleSave();
|
38729
|
+
} else {
|
38730
|
+
pendingValuesRef.current = _$8.cloneDeep(values);
|
38731
|
+
var intevalTime = SAVE_TIME_INTERVAL_IN_MILLISECONDS - timeSinceLastRun;
|
38732
|
+
timeoutRef.current = setTimeout(function () {
|
38733
|
+
timeoutRef.current = null;
|
38734
|
+
var pendingValues = pendingValuesRef.current;
|
38735
|
+
if (pendingValues) {
|
38736
|
+
clearTimeout(timeoutRef.current);
|
38737
|
+
_handleSave(pendingValues);
|
38738
|
+
pendingValuesRef.current = null;
|
38739
|
+
}
|
38740
|
+
}, intevalTime);
|
38741
|
+
}
|
38742
|
+
return function () {
|
38743
|
+
if (timeoutRef.current) {
|
38744
|
+
clearTimeout(timeoutRef.current);
|
38745
|
+
}
|
38746
|
+
};
|
38747
|
+
}, [values, errors]);
|
38520
38748
|
var inforErrors = errors.coverImage || errors.grade || errors.isbn || errors.preparedType || errors.publicationDate || errors.publisher;
|
38521
38749
|
var contentsErrors = errors.chapters;
|
38522
38750
|
var textbookOwnersErrors = errors.textbookOwners;
|
38751
|
+
var hasError = !_$8.isEmpty(errors);
|
38752
|
+
var isSaved = !lastEdited || _$8.isEqual(values, (_valuesTextbook$curre = valuesTextbook.current) != null ? _valuesTextbook$curre : {});
|
38523
38753
|
return React__default.createElement(formik.Form, null, React__default.createElement(material.Stack, {
|
38524
38754
|
direction: "column",
|
38525
38755
|
gap: 3
|
@@ -38607,7 +38837,45 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
38607
38837
|
}), React__default.createElement(material.FormLabel, {
|
38608
38838
|
htmlFor: "type",
|
38609
38839
|
className: "text-center"
|
38610
|
-
}, i18n.t("math"))))), React__default.createElement(material.
|
38840
|
+
}, i18n.t("math"))))), React__default.createElement(material.Stack, {
|
38841
|
+
flexDirection: "row",
|
38842
|
+
gap: "8px"
|
38843
|
+
}, React__default.createElement(material.Stack, {
|
38844
|
+
padding: "6px 12px",
|
38845
|
+
sx: {
|
38846
|
+
transition: "opacity 0.3s ease",
|
38847
|
+
opacity: saveStatus === PrintStatus.Idle && isSaved ? 0 : 1,
|
38848
|
+
pointerEvents: "none",
|
38849
|
+
gap: "8px",
|
38850
|
+
flexDirection: "row",
|
38851
|
+
justifyContent: "center",
|
38852
|
+
alignItems: "center"
|
38853
|
+
}
|
38854
|
+
}, saveStatus === PrintStatus.Saving && React__default.createElement(ai.AiOutlineLoading3Quarters, {
|
38855
|
+
style: {
|
38856
|
+
animation: "spin 1s linear infinite"
|
38857
|
+
}
|
38858
|
+
}), 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, {
|
38859
|
+
color: red[900]
|
38860
|
+
}) : React__default.createElement(fa6.FaClockRotateLeft, {
|
38861
|
+
size: "14px"
|
38862
|
+
})), React__default.createElement(material.Typography, {
|
38863
|
+
sx: {
|
38864
|
+
color: theme.palette.grey[700],
|
38865
|
+
fontSize: "14px",
|
38866
|
+
display: "flex",
|
38867
|
+
alignItems: "center",
|
38868
|
+
gap: 1,
|
38869
|
+
"@keyframes spin": {
|
38870
|
+
"0%": {
|
38871
|
+
transform: "rotate(0deg)"
|
38872
|
+
},
|
38873
|
+
"100%": {
|
38874
|
+
transform: "rotate(360deg)"
|
38875
|
+
}
|
38876
|
+
}
|
38877
|
+
}
|
38878
|
+
}, saveStatus === PrintStatus.Saving && i18n.t("saving"), saveStatus === PrintStatus.Saved && isSaved && i18n.t("all_changes_saved"), saveStatus !== PrintStatus.Saving && (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.id) && !isSaved && i18n.t("all_changes_are_not_saved_yet"))), React__default.createElement(material.Button, {
|
38611
38879
|
type: "submit",
|
38612
38880
|
sx: {
|
38613
38881
|
width: "fit-content"
|
@@ -38714,6 +38982,7 @@ var PreparedTextbookView = function PreparedTextbookView(_ref) {
|
|
38714
38982
|
isSuperAdminUser = _useTextbookManagemen.isSuperAdminUser,
|
38715
38983
|
isAdmin = _useTextbookManagemen.isAdmin,
|
38716
38984
|
coverImage = _useTextbookManagemen.coverImage,
|
38985
|
+
handleSaveData = _useTextbookManagemen.handleSaveData,
|
38717
38986
|
selectedTextbook = _useTextbookManagemen.selectedTextbook,
|
38718
38987
|
handleSubmit = _useTextbookManagemen.handleSubmit,
|
38719
38988
|
handleUploadImage = _useTextbookManagemen.handleUploadImage;
|
@@ -38736,7 +39005,9 @@ var PreparedTextbookView = function PreparedTextbookView(_ref) {
|
|
38736
39005
|
isAdmin: isAdmin,
|
38737
39006
|
isSuperAdmin: isSuperAdmin,
|
38738
39007
|
selected: selected,
|
39008
|
+
handleSaveData: handleSaveData,
|
38739
39009
|
textbookId: textbookId,
|
39010
|
+
selectedTextbook: selectedTextbook,
|
38740
39011
|
onChangeTab: handleChangeTab,
|
38741
39012
|
onUploadImage: handleUploadImage,
|
38742
39013
|
coverImage: coverImage,
|
@@ -39598,7 +39869,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
39598
39869
|
var handleGoToMainPage = function handleGoToMainPage() {
|
39599
39870
|
if (!user) return;
|
39600
39871
|
var isAcademy = user.academyDomain || user.isLearningSpace;
|
39601
|
-
var mainUrl =
|
39872
|
+
var mainUrl = isAcademy ? homeAcademyUrl : homeUrl;
|
39602
39873
|
pushTo(history, mainUrl);
|
39603
39874
|
};
|
39604
39875
|
var handleImageError = function handleImageError() {
|
@@ -40253,6 +40524,491 @@ var singleLogo = function singleLogo(_ref) {
|
|
40253
40524
|
}))));
|
40254
40525
|
};
|
40255
40526
|
|
40527
|
+
var TimerItem = function TimerItem(_ref) {
|
40528
|
+
var data = _ref.data,
|
40529
|
+
seconds = _ref.seconds,
|
40530
|
+
loading = _ref.loading,
|
40531
|
+
activeTimerId = _ref.activeTimerId,
|
40532
|
+
onStartOrPauseTimer = _ref.onStartOrPauseTimer;
|
40533
|
+
var theme = material.useTheme();
|
40534
|
+
var _useTranslation = reactI18next.useTranslation(),
|
40535
|
+
t = _useTranslation.t;
|
40536
|
+
var handleStartOrPauseTimer = function handleStartOrPauseTimer() {
|
40537
|
+
onStartOrPauseTimer(data);
|
40538
|
+
};
|
40539
|
+
var isStarted = activeTimerId === data.id && data.status === exports.SubjectTimerStatus.Started;
|
40540
|
+
var displayedTime = React.useMemo(function () {
|
40541
|
+
switch (data.status) {
|
40542
|
+
case exports.SubjectTimerStatus.Started:
|
40543
|
+
return activeTimerId !== data.id ? formatTime$2(Math.floor(data.duration / 1000), t) : formatTime$2(seconds != null ? seconds : 0, t);
|
40544
|
+
case exports.SubjectTimerStatus.NotStarted:
|
40545
|
+
return t("press_to_start");
|
40546
|
+
default:
|
40547
|
+
return formatTime$2(Math.floor(data.duration / 1000), t);
|
40548
|
+
}
|
40549
|
+
}, [data.id, data.status, data.duration, seconds, activeTimerId, t]);
|
40550
|
+
return React__default.createElement(MenuItem, {
|
40551
|
+
className: "" + styles["timer-menu-item"],
|
40552
|
+
sx: {
|
40553
|
+
py: 1,
|
40554
|
+
bgcolor: theme.palette.background.paper,
|
40555
|
+
borderRadius: 0.75,
|
40556
|
+
minHeight: "52px"
|
40557
|
+
},
|
40558
|
+
disabled: loading,
|
40559
|
+
onClick: handleStartOrPauseTimer
|
40560
|
+
}, React__default.createElement(material.Stack, {
|
40561
|
+
direction: "row",
|
40562
|
+
gap: 1,
|
40563
|
+
sx: {
|
40564
|
+
justifyContent: "space-between",
|
40565
|
+
alignItems: "center",
|
40566
|
+
width: "100%"
|
40567
|
+
}
|
40568
|
+
}, React__default.createElement(material.Typography, {
|
40569
|
+
className: styles["subject-name"] + " " + styles["truncate"],
|
40570
|
+
fontSize: "14px",
|
40571
|
+
fontWeight: 600
|
40572
|
+
}, data.name), React__default.createElement(material.Box, {
|
40573
|
+
sx: {
|
40574
|
+
display: "flex",
|
40575
|
+
alignItems: "center",
|
40576
|
+
gap: 1.5
|
40577
|
+
}
|
40578
|
+
}, React__default.createElement(material.Typography, {
|
40579
|
+
className: "" + styles["duration"],
|
40580
|
+
sx: {
|
40581
|
+
color: isStarted ? theme.palette.common.black : theme.palette.success.light,
|
40582
|
+
fontSize: "14px",
|
40583
|
+
fontWeight: 700
|
40584
|
+
}
|
40585
|
+
}, displayedTime), !isStarted && React__default.createElement(material.Box, {
|
40586
|
+
className: "" + styles["icon-start"]
|
40587
|
+
}, React__default.createElement(io5.IoPlayCircleSharp, {
|
40588
|
+
size: 20
|
40589
|
+
})))));
|
40590
|
+
};
|
40591
|
+
var TOTAL_SECONDS_IN_A_MINUTE = 60;
|
40592
|
+
var TOTAL_SECONDS_IN_AN_HOUR = 60 * 60;
|
40593
|
+
var formatTime$2 = function formatTime(totalSeconds, t) {
|
40594
|
+
var hours = Math.floor(totalSeconds / TOTAL_SECONDS_IN_AN_HOUR);
|
40595
|
+
var minutes = Math.floor(totalSeconds % TOTAL_SECONDS_IN_AN_HOUR / TOTAL_SECONDS_IN_A_MINUTE);
|
40596
|
+
var seconds = totalSeconds % TOTAL_SECONDS_IN_A_MINUTE;
|
40597
|
+
if (hours > 0) {
|
40598
|
+
return "" + hours.toString().padStart(2, "0") + t("hour_h") + " " + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
|
40599
|
+
}
|
40600
|
+
if (minutes > 0) {
|
40601
|
+
return "" + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
|
40602
|
+
}
|
40603
|
+
return "" + seconds.toString().padStart(2, "0") + t("seconds");
|
40604
|
+
};
|
40605
|
+
|
40606
|
+
var TimerCountItem = function TimerCountItem(_ref) {
|
40607
|
+
var data = _ref.data,
|
40608
|
+
activeTimerId = _ref.activeTimerId,
|
40609
|
+
onChangeTime = _ref.onChangeTime;
|
40610
|
+
var requestAnimationRef = React.useRef(null);
|
40611
|
+
var user = reactRedux.useSelector(function (state) {
|
40612
|
+
var _state$common;
|
40613
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
40614
|
+
});
|
40615
|
+
React.useEffect(function () {
|
40616
|
+
if (data.status !== exports.SubjectTimerStatus.Started || !(user !== null && user !== void 0 && user.academyDomain) && !(user !== null && user !== void 0 && user.isLearningSpace) || data.id !== activeTimerId) return;
|
40617
|
+
var _animate = function animate() {
|
40618
|
+
var startTime = data.startTime,
|
40619
|
+
lastResumeTime = data.lastResumeTime,
|
40620
|
+
duration = data.duration;
|
40621
|
+
var startOfTime = lastResumeTime !== DATE_TIME_MIN_VALUE ? lastResumeTime : startTime;
|
40622
|
+
if (startOfTime === DATE_TIME_MIN_VALUE) return;
|
40623
|
+
var time = getCountTime(startOfTime, Math.floor(duration / 1000));
|
40624
|
+
if (typeof time !== "number") {
|
40625
|
+
onChangeTime(data, undefined);
|
40626
|
+
return;
|
40627
|
+
}
|
40628
|
+
onChangeTime(data, time);
|
40629
|
+
requestAnimationRef.current = requestAnimationFrame(_animate);
|
40630
|
+
};
|
40631
|
+
requestAnimationRef.current = requestAnimationFrame(_animate);
|
40632
|
+
return function () {
|
40633
|
+
!!requestAnimationRef.current && cancelAnimationFrame(requestAnimationRef.current);
|
40634
|
+
};
|
40635
|
+
}, [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]);
|
40636
|
+
return React__default.createElement(React.Fragment, null);
|
40637
|
+
};
|
40638
|
+
|
40639
|
+
var formatDate = function formatDate(t, date) {
|
40640
|
+
return utcToLocalTime(date, t("date_format"));
|
40641
|
+
};
|
40642
|
+
var TimerDropdown = function TimerDropdown() {
|
40643
|
+
var _user$academyDomain$t, _user$academyDomain, _user$academyDomain$t2;
|
40644
|
+
var _useTranslation = reactI18next.useTranslation(),
|
40645
|
+
t = _useTranslation.t;
|
40646
|
+
var theme = material.useTheme();
|
40647
|
+
var user = reactRedux.useSelector(function (state) {
|
40648
|
+
var _state$common;
|
40649
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
40650
|
+
});
|
40651
|
+
var _useState = React.useState(null),
|
40652
|
+
open = _useState[0],
|
40653
|
+
setOpen = _useState[1];
|
40654
|
+
var _useState2 = React.useState([]),
|
40655
|
+
timers = _useState2[0],
|
40656
|
+
setTimers = _useState2[1];
|
40657
|
+
var _useState3 = React.useState(),
|
40658
|
+
seconds = _useState3[0],
|
40659
|
+
setSeconds = _useState3[1];
|
40660
|
+
var _useState4 = React.useState(),
|
40661
|
+
activeTimerId = _useState4[0],
|
40662
|
+
setActiveTimerId = _useState4[1];
|
40663
|
+
var _useState5 = React.useState(false),
|
40664
|
+
loadingItem = _useState5[0],
|
40665
|
+
setLoadingItem = _useState5[1];
|
40666
|
+
var _useState6 = React.useState(false),
|
40667
|
+
isFetching = _useState6[0],
|
40668
|
+
setFetching = _useState6[1];
|
40669
|
+
var fetchedRef = React.useRef();
|
40670
|
+
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 : "";
|
40671
|
+
var handleChangeTime = function handleChangeTime(data, time) {
|
40672
|
+
if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return;
|
40673
|
+
if (academyDomain !== fetchedRef.current && data.id !== activeTimerId) return;
|
40674
|
+
setSeconds(time);
|
40675
|
+
var key = user.id + "-" + data.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
|
40676
|
+
saveDuration(key, time * 1000);
|
40677
|
+
};
|
40678
|
+
var handleOpen = function handleOpen(event) {
|
40679
|
+
setOpen(event.currentTarget);
|
40680
|
+
};
|
40681
|
+
var handleClose = function handleClose() {
|
40682
|
+
setOpen(null);
|
40683
|
+
};
|
40684
|
+
var handleStartOrPauseTimer = function handleStartOrPauseTimer(data) {
|
40685
|
+
try {
|
40686
|
+
var _temp2 = function _temp2(_result3) {
|
40687
|
+
if (_exit) return _result3;
|
40688
|
+
setLoadingItem(false);
|
40689
|
+
};
|
40690
|
+
var _exit = false;
|
40691
|
+
var isActive = activeTimerId === data.id;
|
40692
|
+
var isPaused = data.status === exports.SubjectTimerStatus.Paused;
|
40693
|
+
setLoadingItem(true);
|
40694
|
+
var _temp = _catch(function () {
|
40695
|
+
return Promise.resolve(handlePauseAllTimers(data.id)).then(function () {
|
40696
|
+
return function () {
|
40697
|
+
if (data.recordId) {
|
40698
|
+
return function () {
|
40699
|
+
if (!isActive && !isPaused) {
|
40700
|
+
setActiveTimerId(data.id);
|
40701
|
+
setTimers(function (timers) {
|
40702
|
+
return timers.map(function (timer) {
|
40703
|
+
return timer.id === data.id ? _extends({}, timer, {
|
40704
|
+
lastResumeTime: moment().utc().toISOString()
|
40705
|
+
}) : timer;
|
40706
|
+
});
|
40707
|
+
});
|
40708
|
+
setLoadingItem(false);
|
40709
|
+
_exit = true;
|
40710
|
+
} else {
|
40711
|
+
return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
|
40712
|
+
status: isPaused ? exports.SubjectTimerStatus.Started : exports.SubjectTimerStatus.Paused,
|
40713
|
+
startTime: isPaused ? moment().utc().valueOf() : 0,
|
40714
|
+
pauseTime: !isPaused ? moment().utc().valueOf() : 0,
|
40715
|
+
duration: isActive && seconds ? seconds * 1000 : data.duration
|
40716
|
+
})).then(function (res) {
|
40717
|
+
setTimers(function (timers) {
|
40718
|
+
return timers.map(function (timer) {
|
40719
|
+
return timer.id === data.id ? res.data : timer;
|
40720
|
+
});
|
40721
|
+
});
|
40722
|
+
setActiveTimerId(!isPaused && isActive ? undefined : data.id);
|
40723
|
+
});
|
40724
|
+
}
|
40725
|
+
}();
|
40726
|
+
} else {
|
40727
|
+
return Promise.resolve(startStudentSubjectTimerApi(data.id)).then(function (res) {
|
40728
|
+
setTimers(function (timers) {
|
40729
|
+
return timers.map(function (timer) {
|
40730
|
+
return timer.id === data.id ? res.data : timer;
|
40731
|
+
});
|
40732
|
+
});
|
40733
|
+
setActiveTimerId(!isPaused && isActive ? undefined : data.id);
|
40734
|
+
});
|
40735
|
+
}
|
40736
|
+
}();
|
40737
|
+
});
|
40738
|
+
}, function () {
|
40739
|
+
reactToastify.toast.error(t(isPaused ? "failed_to_start_the_subject_name" : "failed_to_pause_the_subject_name", {
|
40740
|
+
name: data.name
|
40741
|
+
}));
|
40742
|
+
});
|
40743
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
40744
|
+
} catch (e) {
|
40745
|
+
return Promise.reject(e);
|
40746
|
+
}
|
40747
|
+
};
|
40748
|
+
var handlePauseAllTimers = function handlePauseAllTimers(exceptId) {
|
40749
|
+
try {
|
40750
|
+
!exceptId && setLoadingItem(true);
|
40751
|
+
var tasks = timers.filter(function (i) {
|
40752
|
+
return i.status === exports.SubjectTimerStatus.Started && i.id !== exceptId;
|
40753
|
+
}).map(function (i) {
|
40754
|
+
return handlePauseTimer(i);
|
40755
|
+
});
|
40756
|
+
return Promise.resolve(Promise.all(tasks)).then(function () {
|
40757
|
+
!exceptId && setLoadingItem(false);
|
40758
|
+
});
|
40759
|
+
} catch (e) {
|
40760
|
+
return Promise.reject(e);
|
40761
|
+
}
|
40762
|
+
};
|
40763
|
+
var handlePauseTimer = function handlePauseTimer(data, updateState) {
|
40764
|
+
if (updateState === void 0) {
|
40765
|
+
updateState = true;
|
40766
|
+
}
|
40767
|
+
try {
|
40768
|
+
if (data.status === exports.SubjectTimerStatus.Paused) return Promise.resolve(data);
|
40769
|
+
return Promise.resolve(_catch(function () {
|
40770
|
+
return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
|
40771
|
+
status: exports.SubjectTimerStatus.Paused,
|
40772
|
+
duration: activeTimerId === data.id && seconds ? seconds * 1000 : data.duration,
|
40773
|
+
pauseTime: moment().utc().valueOf()
|
40774
|
+
})).then(function (res) {
|
40775
|
+
if (updateState) setTimers(function (state) {
|
40776
|
+
return state.map(function (i) {
|
40777
|
+
return i.id === data.id ? res.data : i;
|
40778
|
+
});
|
40779
|
+
});
|
40780
|
+
return res.data;
|
40781
|
+
});
|
40782
|
+
}, function () {
|
40783
|
+
activeTimerId === data.id && reactToastify.toast.error(t("failed_to_pause_the_subject_name", {
|
40784
|
+
name: data.name
|
40785
|
+
}));
|
40786
|
+
}));
|
40787
|
+
} catch (e) {
|
40788
|
+
return Promise.reject(e);
|
40789
|
+
}
|
40790
|
+
};
|
40791
|
+
var getDataFromLocalStorage = React.useCallback(function (items) {
|
40792
|
+
if (fetchedRef.current !== academyDomain) return [];
|
40793
|
+
return items.map(function (item) {
|
40794
|
+
var key = (user === null || user === void 0 ? void 0 : user.id) + "-" + item.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
|
40795
|
+
var duration = getLocalDuration(key, item);
|
40796
|
+
var lastResumeTime = moment().utc().toISOString();
|
40797
|
+
return _extends({}, item, {
|
40798
|
+
duration: duration !== null ? duration : item.duration,
|
40799
|
+
lastResumeTime: lastResumeTime
|
40800
|
+
});
|
40801
|
+
});
|
40802
|
+
}, [user === null || user === void 0 ? void 0 : user.id, academyDomain]);
|
40803
|
+
React.useEffect(function () {
|
40804
|
+
var fetchData = function fetchData() {
|
40805
|
+
try {
|
40806
|
+
var _temp4 = function _temp4() {
|
40807
|
+
setFetching(false);
|
40808
|
+
};
|
40809
|
+
if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return Promise.resolve();
|
40810
|
+
if (fetchedRef.current == academyDomain && !open) return Promise.resolve();
|
40811
|
+
setFetching(true);
|
40812
|
+
var _temp3 = _catch(function () {
|
40813
|
+
return Promise.resolve(getStudentSubjectListApi()).then(function (res) {
|
40814
|
+
var _items$find;
|
40815
|
+
var _res$data$items = res.data.items,
|
40816
|
+
items = _res$data$items === void 0 ? [] : _res$data$items;
|
40817
|
+
fetchedRef.current = academyDomain;
|
40818
|
+
setTimers(getDataFromLocalStorage(items));
|
40819
|
+
setActiveTimerId((_items$find = items.find(function (i) {
|
40820
|
+
return i.status === exports.SubjectTimerStatus.Started;
|
40821
|
+
})) === null || _items$find === void 0 ? void 0 : _items$find.id);
|
40822
|
+
});
|
40823
|
+
}, function (error) {
|
40824
|
+
reactToastify.toast.error(getErrorMessage(t, error));
|
40825
|
+
});
|
40826
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
40827
|
+
} catch (e) {
|
40828
|
+
return Promise.reject(e);
|
40829
|
+
}
|
40830
|
+
};
|
40831
|
+
fetchData();
|
40832
|
+
}, [t, getDataFromLocalStorage, user === null || user === void 0 ? void 0 : user.isLearningSpace, open]);
|
40833
|
+
var today = formatDate(t);
|
40834
|
+
var isRunning = timers.some(function (timer) {
|
40835
|
+
return timer.status === exports.SubjectTimerStatus.Started;
|
40836
|
+
});
|
40837
|
+
var selectedTimer = timers.find(function (i) {
|
40838
|
+
return i.id === activeTimerId;
|
40839
|
+
});
|
40840
|
+
return React__default.createElement(React.Fragment, null, React__default.createElement(IconButton, {
|
40841
|
+
onClick: handleOpen,
|
40842
|
+
sx: {
|
40843
|
+
width: 44,
|
40844
|
+
height: 44,
|
40845
|
+
mx: 1,
|
40846
|
+
borderRadius: "6px",
|
40847
|
+
padding: "8px",
|
40848
|
+
background: !isRunning ? grey[50] : green[100],
|
40849
|
+
"&: hover": {
|
40850
|
+
background: !isRunning ? grey[200] : green[200]
|
40851
|
+
}
|
40852
|
+
}
|
40853
|
+
}, React__default.createElement(material.Stack, {
|
40854
|
+
justifyContent: "center",
|
40855
|
+
alignItems: "center",
|
40856
|
+
width: "100%",
|
40857
|
+
height: "100%",
|
40858
|
+
sx: {
|
40859
|
+
borderRadius: "50%",
|
40860
|
+
backgroundColor: "#FFF"
|
40861
|
+
}
|
40862
|
+
}, React__default.createElement(io5.IoTimer, {
|
40863
|
+
color: !isRunning ? grey[700] : green[500],
|
40864
|
+
size: "16.25px"
|
40865
|
+
}))), selectedTimer && React__default.createElement(TimerCountItem, {
|
40866
|
+
data: selectedTimer,
|
40867
|
+
activeTimerId: activeTimerId,
|
40868
|
+
onChangeTime: handleChangeTime
|
40869
|
+
}), React__default.createElement(Popover, {
|
40870
|
+
open: !!open,
|
40871
|
+
anchorEl: open,
|
40872
|
+
onClose: handleClose,
|
40873
|
+
anchorOrigin: {
|
40874
|
+
vertical: "bottom",
|
40875
|
+
horizontal: "right"
|
40876
|
+
},
|
40877
|
+
transformOrigin: {
|
40878
|
+
vertical: "top",
|
40879
|
+
horizontal: "right"
|
40880
|
+
},
|
40881
|
+
slotProps: {
|
40882
|
+
paper: {
|
40883
|
+
sx: {
|
40884
|
+
px: 2,
|
40885
|
+
mt: 1,
|
40886
|
+
ml: 0.75,
|
40887
|
+
width: 320,
|
40888
|
+
borderRadius: 2,
|
40889
|
+
boxShadow: 3,
|
40890
|
+
bgcolor: theme.palette.grey[50]
|
40891
|
+
}
|
40892
|
+
}
|
40893
|
+
}
|
40894
|
+
}, React__default.createElement(material.Box, {
|
40895
|
+
sx: {
|
40896
|
+
py: 2,
|
40897
|
+
display: "flex",
|
40898
|
+
alignItems: "center",
|
40899
|
+
justifyContent: "space-between"
|
40900
|
+
}
|
40901
|
+
}, React__default.createElement(material.Box, {
|
40902
|
+
sx: {
|
40903
|
+
display: "flex",
|
40904
|
+
gap: 1,
|
40905
|
+
alignItems: "center"
|
40906
|
+
}
|
40907
|
+
}, React__default.createElement(material.Box, {
|
40908
|
+
display: "flex",
|
40909
|
+
alignItems: "center"
|
40910
|
+
}, React__default.createElement(io5.IoTimer, null)), React__default.createElement(material.Typography, {
|
40911
|
+
variant: "subtitle1",
|
40912
|
+
fontWeight: "bold",
|
40913
|
+
fontSize: "14px"
|
40914
|
+
}, t("study_timer"))), React__default.createElement(material.Typography, {
|
40915
|
+
color: "textSecondary",
|
40916
|
+
whiteSpace: "nowrap",
|
40917
|
+
fontSize: "14px"
|
40918
|
+
}, today)), React__default.createElement(material.Divider, {
|
40919
|
+
sx: {
|
40920
|
+
bgcolor: theme.palette.grey[700]
|
40921
|
+
}
|
40922
|
+
}), React__default.createElement(material.Stack, {
|
40923
|
+
className: "" + styles["timer-menu"],
|
40924
|
+
gap: 1.5,
|
40925
|
+
flexDirection: "column",
|
40926
|
+
sx: {
|
40927
|
+
py: 2,
|
40928
|
+
maxHeight: "360px"
|
40929
|
+
}
|
40930
|
+
}, !isFetching && React__default.createElement(ListView, {
|
40931
|
+
data: timers,
|
40932
|
+
render: function render(item, index) {
|
40933
|
+
return React__default.createElement(TimerItem, {
|
40934
|
+
key: index,
|
40935
|
+
data: item,
|
40936
|
+
loading: loadingItem,
|
40937
|
+
seconds: activeTimerId === item.id ? seconds : undefined,
|
40938
|
+
activeTimerId: activeTimerId,
|
40939
|
+
onStartOrPauseTimer: handleStartOrPauseTimer
|
40940
|
+
});
|
40941
|
+
}
|
40942
|
+
}), isFetching && React__default.createElement(material.Stack, {
|
40943
|
+
sx: {
|
40944
|
+
width: "100%",
|
40945
|
+
py: 2
|
40946
|
+
},
|
40947
|
+
justifyContent: "center",
|
40948
|
+
alignItems: "center"
|
40949
|
+
}, React__default.createElement(material.Typography, {
|
40950
|
+
className: "text-muted"
|
40951
|
+
}, React__default.createElement(material.CircularProgress, {
|
40952
|
+
size: "16px",
|
40953
|
+
color: "success"
|
40954
|
+
}))), !timers.length && !isFetching && React__default.createElement(material.Box, null, React__default.createElement(material.Typography, {
|
40955
|
+
className: "text-muted"
|
40956
|
+
}, t("no_data")))), React__default.createElement(material.Divider, {
|
40957
|
+
sx: {
|
40958
|
+
bgcolor: theme.palette.grey[700]
|
40959
|
+
}
|
40960
|
+
}), React__default.createElement(material.Box, {
|
40961
|
+
sx: {
|
40962
|
+
p: 2,
|
40963
|
+
textAlign: "right"
|
40964
|
+
}
|
40965
|
+
}, React__default.createElement(material.Button, {
|
40966
|
+
disableTouchRipple: true,
|
40967
|
+
onClick: function onClick() {
|
40968
|
+
return handlePauseAllTimers();
|
40969
|
+
},
|
40970
|
+
disabled: loadingItem,
|
40971
|
+
sx: {
|
40972
|
+
fontWeight: 700,
|
40973
|
+
color: theme.palette.success.main,
|
40974
|
+
padding: "8px 12px",
|
40975
|
+
bgcolor: theme.palette.background.paper,
|
40976
|
+
"&:hover": {
|
40977
|
+
bgcolor: theme.palette.grey[200]
|
40978
|
+
},
|
40979
|
+
"&:disabled": {
|
40980
|
+
opacity: 0.5
|
40981
|
+
}
|
40982
|
+
}
|
40983
|
+
}, loadingItem ? t("saving") : t("pause")))));
|
40984
|
+
};
|
40985
|
+
var SUBJECT_TIMER_KEY = "stk";
|
40986
|
+
var saveDuration = function saveDuration(key, duration) {
|
40987
|
+
localStorage.setItem(key, "" + duration);
|
40988
|
+
};
|
40989
|
+
var getLocalDuration = function getLocalDuration(key, timer) {
|
40990
|
+
try {
|
40991
|
+
var res = localStorage.getItem(key);
|
40992
|
+
var duration = +(res != null ? res : "");
|
40993
|
+
if (!duration || Number.isNaN(duration) || duration <= timer.duration) return null;
|
40994
|
+
return duration;
|
40995
|
+
} catch (error) {
|
40996
|
+
return null;
|
40997
|
+
}
|
40998
|
+
};
|
40999
|
+
|
41000
|
+
var HeaderLink = function HeaderLink(_ref) {
|
41001
|
+
var data = _ref.data,
|
41002
|
+
render = _ref.render;
|
41003
|
+
var activePaths = data.activePaths,
|
41004
|
+
path = data.path;
|
41005
|
+
var pathname = window.location.pathname.toLowerCase();
|
41006
|
+
var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
|
41007
|
+
return pathname.startsWith(a);
|
41008
|
+
})) || pathname.startsWith(path);
|
41009
|
+
return React__default.createElement(React.Fragment, null, render(data, isActive));
|
41010
|
+
};
|
41011
|
+
|
40256
41012
|
var Header = function Header(_ref) {
|
40257
41013
|
var academyListRoute = _ref.academyListRoute,
|
40258
41014
|
homeRoute = _ref.homeRoute,
|
@@ -40375,7 +41131,9 @@ var Header = function Header(_ref) {
|
|
40375
41131
|
justifyContent: "center",
|
40376
41132
|
height: "100%",
|
40377
41133
|
className: styles["logo"] + " d-flex d-lg-none"
|
40378
|
-
}, React__default.createElement(singleLogo, null))), React__default.createElement(material.Stack, {
|
41134
|
+
}, React__default.createElement(singleLogo, null))), !isTeacherSide && React__default.createElement(material.Stack, {
|
41135
|
+
className: "me-2 ms-2"
|
41136
|
+
}, React__default.createElement(TimerDropdown, null)), React__default.createElement(material.Stack, {
|
40379
41137
|
className: "me-2",
|
40380
41138
|
display: "none"
|
40381
41139
|
}, React__default.createElement(TheLanguageDropdown, null)), showAnnouncement && renderNotificationLink && React__default.createElement(AnnouncementContainer, {
|
@@ -40384,17 +41142,6 @@ var Header = function Header(_ref) {
|
|
40384
41142
|
renderViewNoteLink: renderViewNoteLink
|
40385
41143
|
})));
|
40386
41144
|
};
|
40387
|
-
var HeaderLink = function HeaderLink(_ref3) {
|
40388
|
-
var data = _ref3.data,
|
40389
|
-
render = _ref3.render;
|
40390
|
-
var activePaths = data.activePaths,
|
40391
|
-
path = data.path;
|
40392
|
-
var pathname = location.pathname.toLowerCase();
|
40393
|
-
var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
|
40394
|
-
return pathname.startsWith(a);
|
40395
|
-
})) || pathname.startsWith(path);
|
40396
|
-
return React__default.createElement(React.Fragment, null, render(data, isActive));
|
40397
|
-
};
|
40398
41145
|
|
40399
41146
|
var useLayoutContext = function useLayoutContext(role, showLoadingAcademy, domain) {
|
40400
41147
|
var _currentPusher$connec2;
|
@@ -40779,6 +41526,7 @@ exports.formatTime = formatTime;
|
|
40779
41526
|
exports.formatTimeSecond = formatTimeSecond;
|
40780
41527
|
exports.getAcademyDomain = getAcademyDomain;
|
40781
41528
|
exports.getAccessToken = getAccessToken;
|
41529
|
+
exports.getCountTime = getCountTime;
|
40782
41530
|
exports.getErrorMessage = getErrorMessage;
|
40783
41531
|
exports.getLanguage = getLanguage;
|
40784
41532
|
exports.getLearningSpace = getLearningSpace;
|