touchstudy-core 0.1.34 → 0.1.35
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/Textbooks/apiClient/examService.d.ts +6 -0
- package/dist/containers/Textbooks/apiClient/examSessionService.d.ts +10 -0
- package/dist/containers/Textbooks/components/dialog/ChapterNameDialog.d.ts +10 -0
- package/dist/containers/Textbooks/components/dialog/CreateExamDrawer.d.ts +11 -0
- package/dist/containers/Textbooks/configs/constants.d.ts +4 -0
- package/dist/containers/Textbooks/configs/interfaces.d.ts +2 -0
- package/dist/containers/Textbooks/configs/types.d.ts +36 -0
- package/dist/containers/Textbooks/hooks/useExam.d.ts +16 -0
- package/dist/containers/Textbooks/hooks/useTextbookDetail.d.ts +9 -0
- package/dist/index.css +147 -0
- package/dist/index.js +1599 -1119
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1601 -1121
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -139,7 +139,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
139
139
|
return target;
|
140
140
|
}
|
141
141
|
|
142
|
-
var styles = {"btn-login-google":"_2HqmH","block-login":"_wWIyO","box-login":"_38Lo1","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","image-academy--item":"_3RDWF","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"};
|
142
|
+
var styles = {"btn-login-google":"_2HqmH","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","image-academy--item":"_3RDWF","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"};
|
143
143
|
|
144
144
|
var AuthenticationMessage;
|
145
145
|
(function (AuthenticationMessage) {
|
@@ -881,6 +881,7 @@ var switchAcademy = function switchAcademy(academyId) {
|
|
881
881
|
};
|
882
882
|
|
883
883
|
var LayoutContext = function LayoutContext(_ref) {
|
884
|
+
var _currentPusher$connec, _currentPusher$connec3;
|
884
885
|
var children = _ref.children,
|
885
886
|
role = _ref.role,
|
886
887
|
_ref$pusherRegisterUr = _ref.pusherRegisterUrls,
|
@@ -905,6 +906,7 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
905
906
|
var _state$common3;
|
906
907
|
return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : _state$common3.concurrentConnectionPusher;
|
907
908
|
});
|
909
|
+
var currentPusher = concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.pusher;
|
908
910
|
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
909
911
|
var academyDomain = user === null || user === void 0 ? void 0 : user.academyDomain;
|
910
912
|
var pathname = window.location.pathname;
|
@@ -971,31 +973,41 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
971
973
|
return Promise.reject(e);
|
972
974
|
}
|
973
975
|
};
|
976
|
+
console.log({
|
977
|
+
connection: currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec = currentPusher.connection) === null || _currentPusher$connec === void 0 ? void 0 : _currentPusher$connec.state,
|
978
|
+
pusherRegisterUrls: pusherRegisterUrls,
|
979
|
+
pathname: pathname
|
980
|
+
});
|
974
981
|
var registerPusher = React.useCallback(function () {
|
975
|
-
if (pusherRegisterUrls.includes(pathname.toLocaleLowerCase())
|
976
|
-
var
|
977
|
-
if (concurrentConnectionPusher.
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
var pusher = new Pusher(PUSHER_CONFIG.key, {
|
982
|
-
cluster: PUSHER_CONFIG.cluster,
|
983
|
-
authEndpoint: BASE_URL + "/api/auth/pusher",
|
984
|
-
auth: {
|
985
|
-
params: {},
|
986
|
-
headers: (_headers = {
|
987
|
-
Authorization: "Bearer " + token
|
988
|
-
}, _headers[AcademyHeaders] = academyDomain, _headers)
|
982
|
+
if (pusherRegisterUrls.includes(pathname.toLocaleLowerCase())) {
|
983
|
+
var _currentPusher$connec2;
|
984
|
+
if (academyDomain && academyDomain !== (concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain) && isReadyRegisterPusher) {
|
985
|
+
var _headers;
|
986
|
+
if (currentPusher) {
|
987
|
+
currentPusher.disconnect();
|
989
988
|
}
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
989
|
+
var token = getAccessToken();
|
990
|
+
var pusher = new Pusher(PUSHER_CONFIG.key, {
|
991
|
+
cluster: PUSHER_CONFIG.cluster,
|
992
|
+
authEndpoint: BASE_URL + "/api/auth/pusher",
|
993
|
+
auth: {
|
994
|
+
params: {},
|
995
|
+
headers: (_headers = {
|
996
|
+
Authorization: "Bearer " + token
|
997
|
+
}, _headers[AcademyHeaders] = academyDomain, _headers)
|
998
|
+
}
|
999
|
+
});
|
1000
|
+
dispatch(setConcurrentConnectionPusher({
|
1001
|
+
pusher: pusher,
|
1002
|
+
academyDomain: academyDomain
|
1003
|
+
}));
|
1004
|
+
} else if ((currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec2 = currentPusher.connection) === null || _currentPusher$connec2 === void 0 ? void 0 : _currentPusher$connec2.state) === "disconnected") {
|
1005
|
+
currentPusher.connect();
|
1006
|
+
}
|
995
1007
|
}
|
996
|
-
if (
|
997
|
-
if (
|
998
|
-
|
1008
|
+
if (!pusherRegisterUrls.includes(pathname.toLocaleLowerCase()) && !!currentPusher) {
|
1009
|
+
if (currentPusher) {
|
1010
|
+
currentPusher.disconnect();
|
999
1011
|
}
|
1000
1012
|
dispatch(setConcurrentConnectionPusher({
|
1001
1013
|
pusher: null,
|
@@ -1005,7 +1017,7 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
1005
1017
|
if (!pusherRegisterUrls.includes(pathname.toLocaleLowerCase()) && isReadyRegisterPusher) {
|
1006
1018
|
dispatch(setReadyRegisterPusher(false));
|
1007
1019
|
}
|
1008
|
-
}, [pusherRegisterUrls.join(","), academyDomain, pathname, isReadyRegisterPusher]);
|
1020
|
+
}, [pusherRegisterUrls.join(","), academyDomain, pathname, isReadyRegisterPusher, currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec3 = currentPusher.connection) === null || _currentPusher$connec3 === void 0 ? void 0 : _currentPusher$connec3.state]);
|
1009
1021
|
React.useEffect(function () {
|
1010
1022
|
!user && loadInfo();
|
1011
1023
|
!!user && checkRoleUser();
|
@@ -1016,8 +1028,8 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
1016
1028
|
React.useEffect(function () {
|
1017
1029
|
registerPusher();
|
1018
1030
|
return function () {
|
1019
|
-
if (
|
1020
|
-
|
1031
|
+
if (currentPusher) {
|
1032
|
+
currentPusher.disconnect();
|
1021
1033
|
}
|
1022
1034
|
};
|
1023
1035
|
}, [registerPusher]);
|
@@ -1305,6 +1317,7 @@ var recent_exam_results = "최근 시험 결과";
|
|
1305
1317
|
var instructor_name = "강사이름";
|
1306
1318
|
var academy_name = "학원 이름";
|
1307
1319
|
var total_students = "총 학생수";
|
1320
|
+
var total_class = "반 수";
|
1308
1321
|
var total_number_students = "총 학생수";
|
1309
1322
|
var student = "학생";
|
1310
1323
|
var students = "재학생";
|
@@ -1321,8 +1334,9 @@ var mins_mins_seconds_seconds = "{{mins}}분 {{seconds}}초";
|
|
1321
1334
|
var mins_mins = "{{mins}}분";
|
1322
1335
|
var class_name = "반 이름";
|
1323
1336
|
var create_new_exam = "새 시험 생성";
|
1337
|
+
var live_exam = "시험 생성";
|
1324
1338
|
var there_are_no_recent_exams = "최근 시험이 없습니다";
|
1325
|
-
var
|
1339
|
+
var you_have_started_an_exam_with_code_code_do_you_want_to_continue = "{{code}} 코드로 시험을 시작했습니다. 계속하시겠습니까?";
|
1326
1340
|
var here = "여기";
|
1327
1341
|
var do_you_want_to_complete_the_exam = "시험을 완료처리 하시겠습니까?";
|
1328
1342
|
var are_you_sure_you_want_to_delete_the_exam = "시험을 삭제하시겠습니까?";
|
@@ -1561,6 +1575,7 @@ var course = "진로";
|
|
1561
1575
|
var etc = "그 외";
|
1562
1576
|
var consultation_category = "상담 카테고리";
|
1563
1577
|
var points = "{{number}} 점";
|
1578
|
+
var noun_number_of_people = "인원 수";
|
1564
1579
|
var number_of_people = "{{ number }} 명";
|
1565
1580
|
var total_classes = "반수";
|
1566
1581
|
var number_of_classes = "{{ number }} 개";
|
@@ -1580,6 +1595,29 @@ var my_answers = "내 해답";
|
|
1580
1595
|
var request_for_consultation = "상담요청";
|
1581
1596
|
var ask_a_question_with_a_problem = "문제로 질문하기";
|
1582
1597
|
var live = "살다";
|
1598
|
+
var user_email = "사용자 이메일";
|
1599
|
+
var user_academy = {
|
1600
|
+
add: "사용자 추가",
|
1601
|
+
update_user_roles: "사용자 역할 업데이트",
|
1602
|
+
add_failed: "아카데미에 사용자 추가 실패",
|
1603
|
+
add_successfully: "사용자를 아카데미에 추가했습니다",
|
1604
|
+
remove_failed: "아카데미에서 사용자를 제거하지 못했습니다",
|
1605
|
+
remove_successfully: "아카데미에서 사용자를 성공적으로 제거했습니다",
|
1606
|
+
update_user_roles_failed: "아카데미 사용자 역할 업데이트에 실패했습니다",
|
1607
|
+
update_user_roles__successfully: "아카데미 사용자 역할을 성공적으로 제거했습니다",
|
1608
|
+
get_failed: "아카데미 사용자 가져오기 실패"
|
1609
|
+
};
|
1610
|
+
var get_users_failed = "사용자 가져오기 실패";
|
1611
|
+
var status_of_each_class = "각 반별 현황";
|
1612
|
+
var attendance_rate = "출석률";
|
1613
|
+
var select_article_create_exam = "시험을 만들 기사를 선택하세요.";
|
1614
|
+
var comprehensive_analysis = "내 해답";
|
1615
|
+
var solution_order = "풀이 순서";
|
1616
|
+
var compare_solution = "풀이 비교";
|
1617
|
+
var problem_analysis = "문제 분석";
|
1618
|
+
var class_information = "수업정보";
|
1619
|
+
var teachers = "교사";
|
1620
|
+
var lessons = "수업";
|
1583
1621
|
var lang_ko = {
|
1584
1622
|
problem_solving: problem_solving,
|
1585
1623
|
my_story: my_story,
|
@@ -1597,6 +1635,7 @@ var lang_ko = {
|
|
1597
1635
|
instructor_name: instructor_name,
|
1598
1636
|
academy_name: academy_name,
|
1599
1637
|
total_students: total_students,
|
1638
|
+
total_class: total_class,
|
1600
1639
|
total_number_students: total_number_students,
|
1601
1640
|
student: student,
|
1602
1641
|
students: students,
|
@@ -1615,8 +1654,9 @@ var lang_ko = {
|
|
1615
1654
|
mins_mins: mins_mins,
|
1616
1655
|
class_name: class_name,
|
1617
1656
|
create_new_exam: create_new_exam,
|
1657
|
+
live_exam: live_exam,
|
1618
1658
|
there_are_no_recent_exams: there_are_no_recent_exams,
|
1619
|
-
|
1659
|
+
you_have_started_an_exam_with_code_code_do_you_want_to_continue: you_have_started_an_exam_with_code_code_do_you_want_to_continue,
|
1620
1660
|
here: here,
|
1621
1661
|
do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam,
|
1622
1662
|
are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam,
|
@@ -1852,6 +1892,7 @@ var lang_ko = {
|
|
1852
1892
|
etc: etc,
|
1853
1893
|
consultation_category: consultation_category,
|
1854
1894
|
points: points,
|
1895
|
+
noun_number_of_people: noun_number_of_people,
|
1855
1896
|
number_of_people: number_of_people,
|
1856
1897
|
total_classes: total_classes,
|
1857
1898
|
number_of_classes: number_of_classes,
|
@@ -1870,7 +1911,20 @@ var lang_ko = {
|
|
1870
1911
|
my_answers: my_answers,
|
1871
1912
|
request_for_consultation: request_for_consultation,
|
1872
1913
|
ask_a_question_with_a_problem: ask_a_question_with_a_problem,
|
1873
|
-
live: live
|
1914
|
+
live: live,
|
1915
|
+
user_email: user_email,
|
1916
|
+
user_academy: user_academy,
|
1917
|
+
get_users_failed: get_users_failed,
|
1918
|
+
status_of_each_class: status_of_each_class,
|
1919
|
+
attendance_rate: attendance_rate,
|
1920
|
+
select_article_create_exam: select_article_create_exam,
|
1921
|
+
comprehensive_analysis: comprehensive_analysis,
|
1922
|
+
solution_order: solution_order,
|
1923
|
+
compare_solution: compare_solution,
|
1924
|
+
problem_analysis: problem_analysis,
|
1925
|
+
class_information: class_information,
|
1926
|
+
teachers: teachers,
|
1927
|
+
lessons: lessons
|
1874
1928
|
};
|
1875
1929
|
|
1876
1930
|
var problem_solving$1 = "Problem Solving";
|
@@ -1889,6 +1943,7 @@ var recent_exam_results$1 = "Recent exam";
|
|
1889
1943
|
var instructor_name$1 = "Instructor name";
|
1890
1944
|
var academy_name$1 = "Academy name";
|
1891
1945
|
var total_students$1 = "Total students";
|
1946
|
+
var total_class$1 = "Total Class";
|
1892
1947
|
var total_number_students$1 = "Total number of students";
|
1893
1948
|
var students$1 = "Students";
|
1894
1949
|
var student$1 = "Student";
|
@@ -1905,8 +1960,9 @@ var mins_mins_seconds_seconds$1 = "{{mins}}m {{seconds}}s";
|
|
1905
1960
|
var mins_mins$1 = "{{mins}}m";
|
1906
1961
|
var class_name$1 = "Class name";
|
1907
1962
|
var create_new_exam$1 = "Create exam";
|
1963
|
+
var live_exam$1 = "Live exam";
|
1908
1964
|
var there_are_no_recent_exams$1 = "There are no recent exams";
|
1909
|
-
var
|
1965
|
+
var you_have_started_an_exam_with_code_code_do_you_want_to_continue$1 = "You have started an exam with code {{code}}, do you want to continue?";
|
1910
1966
|
var here$1 = "here";
|
1911
1967
|
var do_you_want_to_complete_the_exam$1 = "Do you want to complete the exam?";
|
1912
1968
|
var are_you_sure_you_want_to_delete_the_exam$1 = "Are you sure you want to delete the exam?";
|
@@ -2180,6 +2236,7 @@ var course$1 = "Course";
|
|
2180
2236
|
var etc$1 = "Etc";
|
2181
2237
|
var consultation_category$1 = "Consultation Category";
|
2182
2238
|
var points$1 = "{{number}} points";
|
2239
|
+
var noun_number_of_people$1 = "Number of people";
|
2183
2240
|
var number_of_people$1 = "{{ number }} students";
|
2184
2241
|
var total_classes$1 = "Total classes";
|
2185
2242
|
var number_of_classes$1 = "{{ number }} classes";
|
@@ -2199,6 +2256,29 @@ var my_answers$1 = "My answers";
|
|
2199
2256
|
var request_for_consultation$1 = "Request for consultation";
|
2200
2257
|
var ask_a_question_with_a_problem$1 = "Ask a question with a problem";
|
2201
2258
|
var live$1 = "live";
|
2259
|
+
var user_email$1 = "User email";
|
2260
|
+
var user_academy$1 = {
|
2261
|
+
add: "Add user",
|
2262
|
+
update_user_roles: "Update user roles",
|
2263
|
+
add_failed: "Add user to academy failed",
|
2264
|
+
add_successfully: "Add user to academy successfully",
|
2265
|
+
remove_failed: "Remove user from academy failed",
|
2266
|
+
remove_successfully: "Remove user from academy successfully",
|
2267
|
+
update_user_roles_failed: "Update academy user roles failed",
|
2268
|
+
update_user_roles_successfully: "Update academy user roles successfully",
|
2269
|
+
get_failed: "Get academy users failed"
|
2270
|
+
};
|
2271
|
+
var get_users_failed$1 = "Get users failed";
|
2272
|
+
var status_of_each_class$1 = "Status of each class";
|
2273
|
+
var attendance_rate$1 = "Attendance Rate";
|
2274
|
+
var select_article_create_exam$1 = "Select article to create exam";
|
2275
|
+
var comprehensive_analysis$1 = "Comprehensive analysis";
|
2276
|
+
var solution_order$1 = "Solution order";
|
2277
|
+
var compare_solution$1 = "Compare solution";
|
2278
|
+
var problem_analysis$1 = "Problem analysis";
|
2279
|
+
var class_information$1 = "Class Information";
|
2280
|
+
var teachers$1 = "Teachers";
|
2281
|
+
var lessons$1 = "Lessons";
|
2202
2282
|
var lang_en = {
|
2203
2283
|
problem_solving: problem_solving$1,
|
2204
2284
|
my_story: my_story$1,
|
@@ -2216,6 +2296,7 @@ var lang_en = {
|
|
2216
2296
|
instructor_name: instructor_name$1,
|
2217
2297
|
academy_name: academy_name$1,
|
2218
2298
|
total_students: total_students$1,
|
2299
|
+
total_class: total_class$1,
|
2219
2300
|
total_number_students: total_number_students$1,
|
2220
2301
|
students: students$1,
|
2221
2302
|
student: student$1,
|
@@ -2234,8 +2315,9 @@ var lang_en = {
|
|
2234
2315
|
mins_mins: mins_mins$1,
|
2235
2316
|
class_name: class_name$1,
|
2236
2317
|
create_new_exam: create_new_exam$1,
|
2318
|
+
live_exam: live_exam$1,
|
2237
2319
|
there_are_no_recent_exams: there_are_no_recent_exams$1,
|
2238
|
-
|
2320
|
+
you_have_started_an_exam_with_code_code_do_you_want_to_continue: you_have_started_an_exam_with_code_code_do_you_want_to_continue$1,
|
2239
2321
|
here: here$1,
|
2240
2322
|
do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam$1,
|
2241
2323
|
are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam$1,
|
@@ -2506,6 +2588,7 @@ var lang_en = {
|
|
2506
2588
|
etc: etc$1,
|
2507
2589
|
consultation_category: consultation_category$1,
|
2508
2590
|
points: points$1,
|
2591
|
+
noun_number_of_people: noun_number_of_people$1,
|
2509
2592
|
number_of_people: number_of_people$1,
|
2510
2593
|
total_classes: total_classes$1,
|
2511
2594
|
number_of_classes: number_of_classes$1,
|
@@ -2524,7 +2607,20 @@ var lang_en = {
|
|
2524
2607
|
my_answers: my_answers$1,
|
2525
2608
|
request_for_consultation: request_for_consultation$1,
|
2526
2609
|
ask_a_question_with_a_problem: ask_a_question_with_a_problem$1,
|
2527
|
-
live: live$1
|
2610
|
+
live: live$1,
|
2611
|
+
user_email: user_email$1,
|
2612
|
+
user_academy: user_academy$1,
|
2613
|
+
get_users_failed: get_users_failed$1,
|
2614
|
+
status_of_each_class: status_of_each_class$1,
|
2615
|
+
attendance_rate: attendance_rate$1,
|
2616
|
+
select_article_create_exam: select_article_create_exam$1,
|
2617
|
+
comprehensive_analysis: comprehensive_analysis$1,
|
2618
|
+
solution_order: solution_order$1,
|
2619
|
+
compare_solution: compare_solution$1,
|
2620
|
+
problem_analysis: problem_analysis$1,
|
2621
|
+
class_information: class_information$1,
|
2622
|
+
teachers: teachers$1,
|
2623
|
+
lessons: lessons$1
|
2528
2624
|
};
|
2529
2625
|
|
2530
2626
|
i18n.use(reactI18next.initReactI18next).init({
|
@@ -3996,7 +4092,8 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
3996
4092
|
handleConfirm = _useDialog.handleConfirm;
|
3997
4093
|
var _useTranslation = reactI18next.useTranslation(),
|
3998
4094
|
t = _useTranslation.t;
|
3999
|
-
var
|
4095
|
+
var theme = material.useTheme();
|
4096
|
+
var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
|
4000
4097
|
var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Roles$1.Student);
|
4001
4098
|
var filterDurationExam = React.useMemo(function () {
|
4002
4099
|
if (!durationExam) return;
|
@@ -5220,6 +5317,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5220
5317
|
onChangePageTo = _ref.onChangePageTo,
|
5221
5318
|
onAddArticle = _ref.onAddArticle,
|
5222
5319
|
onRemoveArticle = _ref.onRemoveArticle,
|
5320
|
+
handleCheckArticle = _ref.handleCheckArticle,
|
5223
5321
|
onUpdateArticleQuestionCount = _ref.onUpdateArticleQuestionCount,
|
5224
5322
|
onUpdateArticleCategory = _ref.onUpdateArticleCategory,
|
5225
5323
|
onUpdateArticleQuestionAnswerCount = _ref.onUpdateArticleQuestionAnswerCount,
|
@@ -5441,6 +5539,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5441
5539
|
onChangeName: onChangeName,
|
5442
5540
|
onChangePageFrom: onChangePageFrom,
|
5443
5541
|
onChangePageTo: onChangePageTo,
|
5542
|
+
handleCheckArticle: handleCheckArticle,
|
5444
5543
|
onAddArticle: onAddArticle,
|
5445
5544
|
onRemoveArticle: onRemoveArticle,
|
5446
5545
|
onUpdateArticleQuestionCount: onUpdateArticleQuestionCount,
|
@@ -5451,7 +5550,24 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5451
5550
|
});
|
5452
5551
|
}), data.subChapters.length === 0 && data.articles.map(function (article) {
|
5453
5552
|
var _article$category;
|
5454
|
-
return React__default.createElement(
|
5553
|
+
return React__default.createElement(material.Stack, null, React__default.createElement(material.Stack, {
|
5554
|
+
display: "flex",
|
5555
|
+
flexDirection: "row",
|
5556
|
+
gap: "8px",
|
5557
|
+
alignItems: "center"
|
5558
|
+
}, React__default.createElement(material.Checkbox, {
|
5559
|
+
id: "textbook",
|
5560
|
+
sx: {
|
5561
|
+
display: "flex",
|
5562
|
+
justifyContent: "start",
|
5563
|
+
width: "fit-content"
|
5564
|
+
},
|
5565
|
+
onChange: function onChange(e) {
|
5566
|
+
return handleCheckArticle(e, article);
|
5567
|
+
}
|
5568
|
+
}), React__default.createElement("label", {
|
5569
|
+
htmlFor: "textbook"
|
5570
|
+
}, t("select_article_create_exam"))), React__default.createElement(ArticleGroupView, {
|
5455
5571
|
key: article.id,
|
5456
5572
|
categoryOptions: categoryOptions,
|
5457
5573
|
article: article.articleNumber,
|
@@ -5468,7 +5584,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5468
5584
|
onChangeScoreAnswer: handleUpdateArticleQuestionScore,
|
5469
5585
|
onDelete: handleRemoveArticle,
|
5470
5586
|
isDeletable: true
|
5471
|
-
});
|
5587
|
+
}));
|
5472
5588
|
}))));
|
5473
5589
|
};
|
5474
5590
|
|
@@ -5528,6 +5644,25 @@ var TextbookSortBy;
|
|
5528
5644
|
TextbookSortBy["Title"] = "Name";
|
5529
5645
|
TextbookSortBy["SubjectName"] = "Subject.Name";
|
5530
5646
|
})(TextbookSortBy || (TextbookSortBy = {}));
|
5647
|
+
var ExamType;
|
5648
|
+
(function (ExamType) {
|
5649
|
+
ExamType["Normal"] = "Normal";
|
5650
|
+
ExamType["Standard"] = "Standard";
|
5651
|
+
})(ExamType || (ExamType = {}));
|
5652
|
+
var ExamStatus$1;
|
5653
|
+
(function (ExamStatus) {
|
5654
|
+
ExamStatus["Default"] = "Default";
|
5655
|
+
ExamStatus["Pending"] = "Pending";
|
5656
|
+
ExamStatus["InProgress"] = "InProgress";
|
5657
|
+
ExamStatus["Completed"] = "Completed";
|
5658
|
+
})(ExamStatus$1 || (ExamStatus$1 = {}));
|
5659
|
+
var ExamStatusNumber;
|
5660
|
+
(function (ExamStatusNumber) {
|
5661
|
+
ExamStatusNumber[ExamStatusNumber["Default"] = 0] = "Default";
|
5662
|
+
ExamStatusNumber[ExamStatusNumber["Pending"] = 1] = "Pending";
|
5663
|
+
ExamStatusNumber[ExamStatusNumber["InProgress"] = 2] = "InProgress";
|
5664
|
+
ExamStatusNumber[ExamStatusNumber["Completed"] = 3] = "Completed";
|
5665
|
+
})(ExamStatusNumber || (ExamStatusNumber = {}));
|
5531
5666
|
|
5532
5667
|
var TEXTBOOK_HEADERS = [{
|
5533
5668
|
title: "#"
|
@@ -5545,6 +5680,19 @@ var TEXTBOOK_HEADERS = [{
|
|
5545
5680
|
}, {
|
5546
5681
|
title: "actions"
|
5547
5682
|
}];
|
5683
|
+
var DEFAULT_ANSWER_COUNT = 5;
|
5684
|
+
var DEFAULT_EXAM_REQUEST = {
|
5685
|
+
questions: [{
|
5686
|
+
article: 1,
|
5687
|
+
correctAnswers: [1],
|
5688
|
+
numberOfAnswers: DEFAULT_ANSWER_COUNT,
|
5689
|
+
score: 2,
|
5690
|
+
questionOrder: 0
|
5691
|
+
}],
|
5692
|
+
title: "",
|
5693
|
+
duration: 10,
|
5694
|
+
subjectId: 0
|
5695
|
+
};
|
5548
5696
|
var TEXTBOOK_PAGE_TITLE = "textbooks";
|
5549
5697
|
var TEXT_BOOK_SEARCH_PLACEHOLDER = "enter_student_name_to_search";
|
5550
5698
|
var TextbookDefaultQuery = {
|
@@ -5611,6 +5759,133 @@ var deleteArticleApi = function deleteArticleApi(articleId, role) {
|
|
5611
5759
|
});
|
5612
5760
|
};
|
5613
5761
|
|
5762
|
+
var EXAM_URL = BASE_URL + "/api/exam";
|
5763
|
+
var createExam = function createExam(data) {
|
5764
|
+
return api.post("" + EXAM_URL, data, {
|
5765
|
+
params: {
|
5766
|
+
roles: [exports.Role.Teacher]
|
5767
|
+
}
|
5768
|
+
});
|
5769
|
+
};
|
5770
|
+
var apiCreateExamSession = function apiCreateExamSession(examId) {
|
5771
|
+
return api.post(EXAM_URL + "/" + examId);
|
5772
|
+
};
|
5773
|
+
|
5774
|
+
var useExam = function useExam(props) {
|
5775
|
+
var callback = props.callback,
|
5776
|
+
navigate = props.navigate;
|
5777
|
+
var dispatch = reactRedux.useDispatch();
|
5778
|
+
var _useState = React.useState(false),
|
5779
|
+
isOpenDialog = _useState[0],
|
5780
|
+
setOpenDialog = _useState[1];
|
5781
|
+
var _useState2 = React.useState(DEFAULT_EXAM_REQUEST),
|
5782
|
+
examRequest = _useState2[0],
|
5783
|
+
setExamRequest = _useState2[1];
|
5784
|
+
var isTeacher = reactRedux.useSelector(function (state) {
|
5785
|
+
var _state$common, _state$common$user;
|
5786
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.roles.includes(Roles.Teacher);
|
5787
|
+
});
|
5788
|
+
var _useTranslation = reactI18next.useTranslation(),
|
5789
|
+
t = _useTranslation.t;
|
5790
|
+
var handleChangeExamRequest = function handleChangeExamRequest(value) {
|
5791
|
+
setExamRequest(value);
|
5792
|
+
};
|
5793
|
+
var handleOpenCreateExamDialog = function handleOpenCreateExamDialog() {
|
5794
|
+
setOpenDialog(true);
|
5795
|
+
};
|
5796
|
+
var handleCloseDialog = function handleCloseDialog() {
|
5797
|
+
setExamRequest(DEFAULT_EXAM_REQUEST);
|
5798
|
+
setOpenDialog(false);
|
5799
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
5800
|
+
};
|
5801
|
+
var validateExam = function validateExam(exam) {
|
5802
|
+
if (!exam.subjectId) return t("Please select an exam subject");
|
5803
|
+
if (!exam.title.trim().length) return t("Please enter exam title");
|
5804
|
+
if (!exam.questions.length) return t("Exam required at least one question");
|
5805
|
+
for (var i = 0; i < exam.questions.length; i++) {
|
5806
|
+
var question = exam.questions[i];
|
5807
|
+
if (!question.categoryId) return t("Please select category for article " + question.article);
|
5808
|
+
}
|
5809
|
+
return false;
|
5810
|
+
};
|
5811
|
+
var handleCreateExam = function handleCreateExam() {
|
5812
|
+
try {
|
5813
|
+
var _temp3 = function _temp3() {
|
5814
|
+
dispatch(setLoading(false));
|
5815
|
+
};
|
5816
|
+
if (!examRequest) return Promise.resolve();
|
5817
|
+
var errorMessage = validateExam(examRequest);
|
5818
|
+
if (errorMessage) {
|
5819
|
+
reactToastify.toast.error(errorMessage);
|
5820
|
+
return Promise.resolve();
|
5821
|
+
}
|
5822
|
+
dispatch(setLoading(true));
|
5823
|
+
var _temp2 = _catch(function () {
|
5824
|
+
return Promise.resolve(createExam(_extends({}, examRequest, {
|
5825
|
+
duration: minutesToTimeSpan(examRequest.duration || 0)
|
5826
|
+
}))).then(function (res) {
|
5827
|
+
var _temp = function (_res$data, _res$data$data) {
|
5828
|
+
if (!((_res$data = res.data) !== null && _res$data !== void 0 && (_res$data$data = _res$data.data) !== null && _res$data$data !== void 0 && _res$data$data.id)) {
|
5829
|
+
reactToastify.toast.error("Create exam failed");
|
5830
|
+
} else {
|
5831
|
+
var _res$data2, _res$data2$data;
|
5832
|
+
return Promise.resolve(apiCreateExamSession((_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : (_res$data2$data = _res$data2.data) === null || _res$data2$data === void 0 ? void 0 : _res$data2$data.id)).then(function () {
|
5833
|
+
setExamRequest(DEFAULT_EXAM_REQUEST);
|
5834
|
+
reactToastify.toast.success("Create exam successfully");
|
5835
|
+
});
|
5836
|
+
}
|
5837
|
+
}();
|
5838
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
5839
|
+
});
|
5840
|
+
}, function (error) {
|
5841
|
+
var _error$response;
|
5842
|
+
reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || "Create exam failed");
|
5843
|
+
});
|
5844
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
|
5845
|
+
} catch (e) {
|
5846
|
+
return Promise.reject(e);
|
5847
|
+
}
|
5848
|
+
};
|
5849
|
+
var handleSaveExam = function handleSaveExam() {
|
5850
|
+
try {
|
5851
|
+
var _temp5 = function _temp5() {
|
5852
|
+
dispatch(setLoading(false));
|
5853
|
+
};
|
5854
|
+
if (!examRequest) return Promise.resolve();
|
5855
|
+
var errorMessage = validateExam(examRequest);
|
5856
|
+
if (errorMessage) {
|
5857
|
+
reactToastify.toast.error(errorMessage);
|
5858
|
+
return Promise.resolve();
|
5859
|
+
}
|
5860
|
+
dispatch(setLoading(true));
|
5861
|
+
var _temp4 = _catch(function () {
|
5862
|
+
return Promise.resolve(createExam(_extends({}, examRequest, {
|
5863
|
+
duration: minutesToTimeSpan(examRequest.duration || 0)
|
5864
|
+
}))).then(function () {
|
5865
|
+
handleCloseDialog();
|
5866
|
+
reactToastify.toast.success("Save exam successfully");
|
5867
|
+
isTeacher ? navigate('/teacher/exam-list') : navigate('/exams');
|
5868
|
+
});
|
5869
|
+
}, function (error) {
|
5870
|
+
var _error$response2;
|
5871
|
+
reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || "Save exam failed");
|
5872
|
+
});
|
5873
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
5874
|
+
} catch (e) {
|
5875
|
+
return Promise.reject(e);
|
5876
|
+
}
|
5877
|
+
};
|
5878
|
+
return {
|
5879
|
+
isOpenDialog: isOpenDialog,
|
5880
|
+
examRequest: examRequest,
|
5881
|
+
handleChangeExamRequest: handleChangeExamRequest,
|
5882
|
+
handleOpenCreateExamDialog: handleOpenCreateExamDialog,
|
5883
|
+
handleSaveExam: handleSaveExam,
|
5884
|
+
handleCloseDialog: handleCloseDialog,
|
5885
|
+
handleCreateExam: handleCreateExam
|
5886
|
+
};
|
5887
|
+
};
|
5888
|
+
|
5614
5889
|
var useTextbookDetail = function useTextbookDetail(props) {
|
5615
5890
|
var role = props.role,
|
5616
5891
|
isReadonlyParam = props.isReadonlyParam,
|
@@ -5634,18 +5909,31 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5634
5909
|
var _useState5 = React.useState(),
|
5635
5910
|
parentChapter = _useState5[0],
|
5636
5911
|
setParentChapter = _useState5[1];
|
5637
|
-
var _useState6 = React.useState(),
|
5638
|
-
|
5639
|
-
|
5912
|
+
var _useState6 = React.useState([]),
|
5913
|
+
articlesSelected = _useState6[0],
|
5914
|
+
setArticlesSelected = _useState6[1];
|
5640
5915
|
var _useState7 = React.useState(),
|
5641
|
-
|
5642
|
-
|
5916
|
+
selectedChapter = _useState7[0],
|
5917
|
+
setSelectedChapter = _useState7[1];
|
5918
|
+
var _useState8 = React.useState(),
|
5919
|
+
selectedDeleteItem = _useState8[0],
|
5920
|
+
setSelectedDeleteItem = _useState8[1];
|
5643
5921
|
var updateChapterRef = React.useRef();
|
5644
5922
|
var updateArticleRef = React.useRef();
|
5645
|
-
var
|
5646
|
-
isEditedTitle =
|
5647
|
-
setEditedTitle =
|
5923
|
+
var _useState9 = React.useState(false),
|
5924
|
+
isEditedTitle = _useState9[0],
|
5925
|
+
setEditedTitle = _useState9[1];
|
5648
5926
|
var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
5927
|
+
var _useExam = useExam({
|
5928
|
+
navigate: navigate
|
5929
|
+
}),
|
5930
|
+
isOpenDialog = _useExam.isOpenDialog,
|
5931
|
+
examRequest = _useExam.examRequest,
|
5932
|
+
handleChangeExamRequest = _useExam.handleChangeExamRequest,
|
5933
|
+
handleOpenCreateExamDialog = _useExam.handleOpenCreateExamDialog,
|
5934
|
+
handleSaveExam = _useExam.handleSaveExam,
|
5935
|
+
handleCloseDialog = _useExam.handleCloseDialog,
|
5936
|
+
handleCreateExam = _useExam.handleCreateExam;
|
5649
5937
|
var handleOpenAddArticleDialog = function handleOpenAddArticleDialog(chapter) {
|
5650
5938
|
setSelectedChapter(chapter);
|
5651
5939
|
};
|
@@ -5896,7 +6184,6 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5896
6184
|
}
|
5897
6185
|
};
|
5898
6186
|
return Promise.resolve(handleCreateArticle(newArticle, function (article) {
|
5899
|
-
console.log("created article: ", article);
|
5900
6187
|
handleUpdateChapterValue([].concat(articles, [article]), "articles", selectedChapter.id, selectedChapter.parentChapterId);
|
5901
6188
|
setSelectedChapter(undefined);
|
5902
6189
|
})).then(function () {});
|
@@ -5986,12 +6273,14 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5986
6273
|
};
|
5987
6274
|
});
|
5988
6275
|
newArticle = _extends({}, thisArticles, {
|
6276
|
+
chapterId: chapterId,
|
5989
6277
|
questions: [].concat(thisQuestions, additionalQuestionArticles)
|
5990
6278
|
});
|
5991
6279
|
newArticles = [].concat(articles.slice(0, articleNumber - 1), [newArticle], articles.slice(articleNumber));
|
5992
6280
|
}
|
5993
6281
|
if (questionCount < thisQuestions.length) {
|
5994
6282
|
newArticle = _extends({}, thisArticles, {
|
6283
|
+
chapterId: chapterId,
|
5995
6284
|
questions: [].concat(thisQuestions.slice(0, questionCount))
|
5996
6285
|
});
|
5997
6286
|
newArticles = [].concat(articles.slice(0, articleNumber - 1), [newArticle], articles.slice(articleNumber));
|
@@ -6003,6 +6292,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6003
6292
|
};
|
6004
6293
|
var handleUpdateArticleCategory = function handleUpdateArticleCategory(articleNumber, categoryId, articles, chapterId, parentChapterId) {
|
6005
6294
|
var newArticle = _extends({}, articles[articleNumber - 1], {
|
6295
|
+
chapterId: chapterId,
|
6006
6296
|
category: {
|
6007
6297
|
id: categoryId
|
6008
6298
|
}
|
@@ -6019,6 +6309,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6019
6309
|
if (newAnswerCount > answerCount) {
|
6020
6310
|
newArticle = _extends({}, articles[articleNumber - 1], {
|
6021
6311
|
answerCount: newAnswerCount,
|
6312
|
+
chapterId: chapterId,
|
6022
6313
|
questions: articles[articleNumber - 1].questions.map(function (i) {
|
6023
6314
|
return _extends({}, i, {
|
6024
6315
|
numberOfAnswers: newAnswerCount
|
@@ -6028,6 +6319,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6028
6319
|
} else if (newAnswerCount < answerCount) {
|
6029
6320
|
newArticle = _extends({}, articles[articleNumber - 1], {
|
6030
6321
|
answerCount: newAnswerCount,
|
6322
|
+
chapterId: chapterId,
|
6031
6323
|
questions: articles[articleNumber - 1].questions.map(function (i) {
|
6032
6324
|
return _extends({}, i, {
|
6033
6325
|
numberOfAnswers: newAnswerCount,
|
@@ -6047,6 +6339,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6047
6339
|
var _extends4;
|
6048
6340
|
var thisQuestions = articles[articleNumber - 1].questions;
|
6049
6341
|
var newArticle = _extends({}, articles[articleNumber - 1], {
|
6342
|
+
chapterId: chapterId,
|
6050
6343
|
questions: [].concat(thisQuestions.slice(0, index), [_extends({}, thisQuestions[index], (_extends4 = {}, _extends4[key] = value, _extends4))], thisQuestions.slice(index + 1))
|
6051
6344
|
});
|
6052
6345
|
var newArticles = [].concat(articles.slice(0, articleNumber - 1), [newArticle], articles.slice(articleNumber));
|
@@ -6207,6 +6500,19 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6207
6500
|
replace: true
|
6208
6501
|
});
|
6209
6502
|
};
|
6503
|
+
var handleCheckArticle = function handleCheckArticle(e, article) {
|
6504
|
+
var checked = e.target.checked;
|
6505
|
+
if (!(article !== null && article !== void 0 && article.id)) return;
|
6506
|
+
if (!checked) {
|
6507
|
+
var _newArticles = articlesSelected.filter(function (item) {
|
6508
|
+
return item !== article.id;
|
6509
|
+
});
|
6510
|
+
setArticlesSelected(_newArticles);
|
6511
|
+
return;
|
6512
|
+
}
|
6513
|
+
var newArticles = [].concat(articlesSelected, [article.id]);
|
6514
|
+
setArticlesSelected(newArticles);
|
6515
|
+
};
|
6210
6516
|
React.useEffect(function () {
|
6211
6517
|
var getTextbookDetail = function getTextbookDetail() {
|
6212
6518
|
try {
|
@@ -6231,6 +6537,53 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6231
6537
|
};
|
6232
6538
|
if (id) getTextbookDetail();
|
6233
6539
|
}, [dispatch, id]);
|
6540
|
+
var handleChangeExamRequestBeforeOpenDialog = function handleChangeExamRequestBeforeOpenDialog() {
|
6541
|
+
var _textbookSubject$valu;
|
6542
|
+
handleOpenCreateExamDialog();
|
6543
|
+
var articles = textbook.chapters.map(function (chapter) {
|
6544
|
+
var isSubChapters = !!chapter.subChapters.length;
|
6545
|
+
if (isSubChapters) {
|
6546
|
+
var _articles = chapter.subChapters.map(function (chapter) {
|
6547
|
+
return chapter.articles;
|
6548
|
+
});
|
6549
|
+
return _articles.filter(Boolean).flat();
|
6550
|
+
}
|
6551
|
+
return chapter.articles;
|
6552
|
+
});
|
6553
|
+
var articlesAfterFlat = articles.flat();
|
6554
|
+
var questionCount = 0;
|
6555
|
+
var articleCount = 1;
|
6556
|
+
var questions = articlesAfterFlat.map(function (article) {
|
6557
|
+
if (articlesSelected.findIndex(function (item) {
|
6558
|
+
return item === article.id;
|
6559
|
+
}) !== -1) {
|
6560
|
+
var _questions = article.questions.map(function (question) {
|
6561
|
+
var _article$category3;
|
6562
|
+
var newQuestion = {
|
6563
|
+
article: articleCount,
|
6564
|
+
id: question === null || question === void 0 ? void 0 : question.id,
|
6565
|
+
correctAnswers: question.correctAnswers,
|
6566
|
+
numberOfAnswers: question.numberOfAnswers,
|
6567
|
+
score: question.score,
|
6568
|
+
questionOrder: questionCount,
|
6569
|
+
categoryId: (_article$category3 = article.category) === null || _article$category3 === void 0 ? void 0 : _article$category3.id
|
6570
|
+
};
|
6571
|
+
questionCount++;
|
6572
|
+
return newQuestion;
|
6573
|
+
});
|
6574
|
+
articleCount++;
|
6575
|
+
return _questions;
|
6576
|
+
}
|
6577
|
+
return [];
|
6578
|
+
});
|
6579
|
+
var exam = {
|
6580
|
+
title: "",
|
6581
|
+
duration: 10,
|
6582
|
+
subjectId: (_textbookSubject$valu = textbookSubject === null || textbookSubject === void 0 ? void 0 : textbookSubject.value) != null ? _textbookSubject$valu : 0,
|
6583
|
+
questions: questions.flat().filter(Boolean)
|
6584
|
+
};
|
6585
|
+
handleChangeExamRequest(exam);
|
6586
|
+
};
|
6234
6587
|
React.useEffect(function () {
|
6235
6588
|
document.title = t("textbooks") + " | " + t(id ? "textbook_detail" : "create_textbook");
|
6236
6589
|
}, [id, t]);
|
@@ -6250,6 +6603,15 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6250
6603
|
selectedDeleteItem: selectedDeleteItem,
|
6251
6604
|
isEditedTitle: isEditedTitle,
|
6252
6605
|
isReadonlyParam: isReadonlyParam,
|
6606
|
+
articlesSelected: articlesSelected,
|
6607
|
+
isOpenDialog: isOpenDialog,
|
6608
|
+
examRequest: examRequest,
|
6609
|
+
handleChangeExamRequest: handleChangeExamRequest,
|
6610
|
+
handleCheckArticle: handleCheckArticle,
|
6611
|
+
handleOpenCreateExamDialog: handleChangeExamRequestBeforeOpenDialog,
|
6612
|
+
handleSaveExam: handleSaveExam,
|
6613
|
+
handleCloseDialog: handleCloseDialog,
|
6614
|
+
handleCreateExam: handleCreateExam,
|
6253
6615
|
handleChangeTextbookTitle: handleChangeTextbookTitle,
|
6254
6616
|
handleCreateOrUpdateTextbook: handleCreateOrUpdateTextbook,
|
6255
6617
|
handleChangeTextbookSubject: handleChangeTextbookSubject,
|
@@ -6707,1036 +7069,1115 @@ var SubjectSelector = function SubjectSelector(_ref) {
|
|
6707
7069
|
}));
|
6708
7070
|
};
|
6709
7071
|
|
6710
|
-
var
|
6711
|
-
|
6712
|
-
|
6713
|
-
|
6714
|
-
|
6715
|
-
|
6716
|
-
|
6717
|
-
|
6718
|
-
|
6719
|
-
|
6720
|
-
|
6721
|
-
|
6722
|
-
|
6723
|
-
|
6724
|
-
|
6725
|
-
|
6726
|
-
|
6727
|
-
|
6728
|
-
|
6729
|
-
|
6730
|
-
|
6731
|
-
|
6732
|
-
|
6733
|
-
|
6734
|
-
|
6735
|
-
|
6736
|
-
|
6737
|
-
|
6738
|
-
|
6739
|
-
|
6740
|
-
|
6741
|
-
|
6742
|
-
|
6743
|
-
|
6744
|
-
|
6745
|
-
|
6746
|
-
|
6747
|
-
|
6748
|
-
|
6749
|
-
|
6750
|
-
|
6751
|
-
|
6752
|
-
|
6753
|
-
|
6754
|
-
|
6755
|
-
|
6756
|
-
|
6757
|
-
|
6758
|
-
|
6759
|
-
|
6760
|
-
|
6761
|
-
|
6762
|
-
|
6763
|
-
|
6764
|
-
|
6765
|
-
|
6766
|
-
|
6767
|
-
|
6768
|
-
|
6769
|
-
|
6770
|
-
|
6771
|
-
border: 0
|
6772
|
-
}
|
6773
|
-
}
|
6774
|
-
}, React__default.createElement(material.TableCell, {
|
6775
|
-
className: "p-2 pe-0",
|
6776
|
-
sx: {
|
6777
|
-
width: "15%"
|
6778
|
-
}
|
6779
|
-
}, React__default.createElement(material.InputLabel, null, React__default.createElement("span", {
|
6780
|
-
className: "fw-bold"
|
6781
|
-
}, t("name")), React__default.createElement("span", {
|
6782
|
-
className: "text-danger"
|
6783
|
-
}, "*"))), React__default.createElement(material.TableCell, {
|
6784
|
-
sx: {
|
6785
|
-
width: 0,
|
6786
|
-
px: 1
|
6787
|
-
}
|
6788
|
-
}, ":"), React__default.createElement(material.TableCell, {
|
6789
|
-
className: "p-2"
|
6790
|
-
}, React__default.createElement(InputText, {
|
6791
|
-
className: "w-100",
|
6792
|
-
value: textbook === null || textbook === void 0 ? void 0 : textbook.name,
|
6793
|
-
placeholder: t("enter_textbook_title"),
|
6794
|
-
onChange: handleChangeTextbookTitle,
|
6795
|
-
disabled: isReadonly
|
6796
|
-
}))), React__default.createElement(material.TableRow, {
|
6797
|
-
sx: {
|
6798
|
-
"& td": {
|
6799
|
-
border: 0
|
6800
|
-
}
|
6801
|
-
}
|
6802
|
-
}, React__default.createElement(material.TableCell, {
|
6803
|
-
className: "p-2 pe-0"
|
6804
|
-
}, React__default.createElement(material.InputLabel, null, React__default.createElement("span", {
|
6805
|
-
className: "fw-bold"
|
6806
|
-
}, t("subject")), React__default.createElement("span", {
|
6807
|
-
className: "text-danger"
|
6808
|
-
}, "*"))), React__default.createElement(material.TableCell, {
|
6809
|
-
sx: {
|
6810
|
-
width: 0,
|
6811
|
-
px: 1
|
6812
|
-
}
|
6813
|
-
}, ":"), React__default.createElement(material.TableCell, {
|
6814
|
-
className: "p-2"
|
6815
|
-
}, React__default.createElement(SubjectSelector, {
|
6816
|
-
value: textbookSubject,
|
6817
|
-
onChange: handleChangeTextbookSubject,
|
6818
|
-
isDisabled: isReadonly || !!id
|
6819
|
-
})))))), React__default.createElement(material.Grid, {
|
6820
|
-
item: true,
|
6821
|
-
xs: 8,
|
6822
|
-
className: "d-flex justify-content-end"
|
6823
|
-
}, React__default.createElement("div", null, React__default.createElement(TextbookActionButtons, {
|
6824
|
-
isReadonly: isReadonly,
|
6825
|
-
textbook: textbook,
|
6826
|
-
onBack: handleGoToTextbookList,
|
6827
|
-
onSave: handleCreateOrUpdateTextbook,
|
6828
|
-
hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin
|
6829
|
-
}))), React__default.createElement(material.Grid, {
|
6830
|
-
item: true,
|
6831
|
-
xs: 12,
|
6832
|
-
className: "d-flex justify-content-end"
|
6833
|
-
}, !!id && React__default.createElement(material.Button, {
|
6834
|
-
className: "mx-1",
|
6835
|
-
variant: "contained",
|
6836
|
-
color: "primary",
|
6837
|
-
startIcon: React__default.createElement(fa.FaPlus, {
|
6838
|
-
size: 12
|
6839
|
-
}),
|
6840
|
-
onClick: handleAddChapterToTextbook,
|
6841
|
-
disabled: isReadonly
|
6842
|
-
}, t("add_chapter"))), React__default.createElement(material.Grid, {
|
6843
|
-
item: true,
|
6844
|
-
xs: 12
|
6845
|
-
}, React__default.createElement(material.Stack, {
|
6846
|
-
spacing: 3
|
6847
|
-
}, !!(textbook !== null && textbook !== void 0 && textbook.subject) && (textbook === null || textbook === void 0 ? void 0 : (_textbook$chapters = textbook.chapters) === null || _textbook$chapters === void 0 ? void 0 : _textbook$chapters.map(function (chapter) {
|
6848
|
-
return React__default.createElement(ChapterBox, {
|
6849
|
-
key: chapter.id,
|
6850
|
-
subject: textbook.subject,
|
6851
|
-
data: chapter,
|
6852
|
-
categoryOptions: categoryOptions || [],
|
6853
|
-
onClickAddSubchapter: handleAddChapterToParentSubchapter,
|
6854
|
-
onChangeName: handleChangeChapterName,
|
6855
|
-
onChangePageFrom: handleChangeChapterPageFrom,
|
6856
|
-
onChangePageTo: handleChangeChapterPageTo,
|
6857
|
-
onAddArticle: handleOpenAddArticleDialog,
|
6858
|
-
onRemoveArticle: handleOpenRemoveArticleConfirmDialog,
|
6859
|
-
onUpdateArticleQuestionCount: handleUpdateArticleQuestionCountFromChapter,
|
6860
|
-
onUpdateArticleCategory: handleUpdateArticleCategory,
|
6861
|
-
onUpdateArticleQuestionAnswerCount: handleUpdateArticleAnswerCount,
|
6862
|
-
onUpdateArticleQuestion: handleUpdateArticleQuestion,
|
6863
|
-
onRemoveChapter: handleOpenRemoveChapterConfirmDialog,
|
6864
|
-
isReadonly: isReadonly
|
6865
|
-
});
|
6866
|
-
}))))), React__default.createElement(ChapterNameDialog, {
|
6867
|
-
open: !!(parentChapter !== null && parentChapter !== void 0 && parentChapter.id) || !!textbookId,
|
6868
|
-
chapter: parentChapter,
|
6869
|
-
onClose: handleCloseChapterNameDialog,
|
6870
|
-
onSubmitForm: handleCreateChapter
|
6871
|
-
}), React__default.createElement(ArticleDialog, {
|
6872
|
-
open: !!selectedChapter,
|
6873
|
-
chapter: selectedChapter,
|
6874
|
-
categoryOptions: categoryOptions || [],
|
6875
|
-
onClose: handleCloseArticleDialog,
|
6876
|
-
onSubmitForm: handleAddArticleToChapter
|
6877
|
-
}), selectedDeleteItem && React__default.createElement(ConfirmDialog, {
|
6878
|
-
open: true,
|
6879
|
-
toggle: handleCloseConfirmDeleteDialog,
|
6880
|
-
text: selectedDeleteItem.confirmText,
|
6881
|
-
confirmText: selectedDeleteItem.name,
|
6882
|
-
onConfirm: handleRemoveSelectedItem,
|
6883
|
-
isDelete: true
|
6884
|
-
}));
|
6885
|
-
};
|
6886
|
-
|
6887
|
-
var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superUrls, homeUrl, homeAcademyUrl) {
|
6888
|
-
var searchParams = new URLSearchParams(window.location.search);
|
6889
|
-
var user = reactRedux.useSelector(function (state) {
|
6890
|
-
var _state$common;
|
6891
|
-
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
6892
|
-
});
|
6893
|
-
var initialAcademySearchParam = function initialAcademySearchParam() {
|
6894
|
-
var paramAcademyDomain = searchParams.get("domain");
|
6895
|
-
var domain = getAcademyDomain();
|
6896
|
-
var pathname = window.location.pathname.toLowerCase();
|
6897
|
-
if (!user) return;
|
6898
|
-
var academyDomain = user.academyDomain;
|
6899
|
-
if (!academyDomain) {
|
6900
|
-
if (!superUrls.some(function (i) {
|
6901
|
-
return pathname.startsWith(i);
|
6902
|
-
})) {
|
6903
|
-
pushTo({
|
6904
|
-
pathname: homeUrl,
|
6905
|
-
search: ""
|
6906
|
-
});
|
6907
|
-
}
|
6908
|
-
if (domain) {
|
6909
|
-
searchParams.append("domain", domain);
|
6910
|
-
pushTo({
|
6911
|
-
pathname: homeUrl,
|
6912
|
-
search: ""
|
6913
|
-
});
|
6914
|
-
}
|
6915
|
-
} else {
|
6916
|
-
if (superUrls.some(function (i) {
|
6917
|
-
return pathname.startsWith(i);
|
6918
|
-
})) {
|
6919
|
-
pushTo({
|
6920
|
-
pathname: homeAcademyUrl,
|
6921
|
-
search: ""
|
6922
|
-
});
|
6923
|
-
}
|
6924
|
-
if (paramAcademyDomain && academyDomain.trim().toLocaleLowerCase() != (paramAcademyDomain === null || paramAcademyDomain === void 0 ? void 0 : paramAcademyDomain.trim().toLocaleLowerCase())) {
|
6925
|
-
logout();
|
6926
|
-
}
|
6927
|
-
if (!paramAcademyDomain && academyDomain) {
|
6928
|
-
searchParams.append("domain", academyDomain);
|
6929
|
-
pushTo(_extends({}, window.location, {
|
6930
|
-
search: searchParams.toString()
|
6931
|
-
}));
|
6932
|
-
}
|
7072
|
+
var styles$3 = {"drawer":"_11aYm","open":"_3Ydwm","drawer-overlay":"_3SQDf","drawer-header":"_2BwOx","drawer-form":"_2Zo7R","dropdown-content-academy":"_1lzjD","dropdown-change":"_1y7K9","dropdown-academy-item":"_1Y-55","dropdown-content-language":"_1fBXY","dropdown-item-language":"_3Szun","dropdown-item-language-active":"_2HhLb","item-address":"_3WYHC","item-logout":"_2-9ix","title-address":"_1r4pn","image-academy":"_2ZozT"};
|
7073
|
+
|
7074
|
+
var DURATION_OPTIONS = Array.from({
|
7075
|
+
length: 120
|
7076
|
+
}, function (_, i) {
|
7077
|
+
return i + 1;
|
7078
|
+
});
|
7079
|
+
var DEFAULT_ANSWER_COUNT$1 = 5;
|
7080
|
+
|
7081
|
+
var useExamDetailView = function useExamDetailView(props) {
|
7082
|
+
var exam = props.exam,
|
7083
|
+
selectedSubject = props.selectedSubject,
|
7084
|
+
onChangeExam = props.onChangeExam;
|
7085
|
+
var _useTranslation = reactI18next.useTranslation(),
|
7086
|
+
t = _useTranslation.t;
|
7087
|
+
var handleChangeQuestionCount = function handleChangeQuestionCount(article, questionCount, answerCount) {
|
7088
|
+
if (!exam) return;
|
7089
|
+
var examQuestions = exam.questions;
|
7090
|
+
var questions = examQuestions.filter(function (i) {
|
7091
|
+
return i.article === +article;
|
7092
|
+
});
|
7093
|
+
var prevQuestions = examQuestions.filter(function (i) {
|
7094
|
+
return i.article < +article;
|
7095
|
+
});
|
7096
|
+
var nextQuestions = examQuestions.filter(function (i) {
|
7097
|
+
return i.article > +article;
|
7098
|
+
});
|
7099
|
+
var lastOrder = questions[questions.length - 1].questionOrder;
|
7100
|
+
if (questions.length === questionCount) return;
|
7101
|
+
if (questions.length < questionCount) {
|
7102
|
+
var additionalQuestions = Array.from({
|
7103
|
+
length: questionCount - questions.length
|
7104
|
+
}).map(function (_, index) {
|
7105
|
+
var _questions$;
|
7106
|
+
return {
|
7107
|
+
article: +article,
|
7108
|
+
correctAnswers: [1],
|
7109
|
+
numberOfAnswers: answerCount,
|
7110
|
+
categoryId: (_questions$ = questions[0]) === null || _questions$ === void 0 ? void 0 : _questions$.categoryId,
|
7111
|
+
score: DEFAULT_SCORE,
|
7112
|
+
questionOrder: lastOrder + index + 1
|
7113
|
+
};
|
7114
|
+
});
|
7115
|
+
var newQuestions = [].concat(prevQuestions, questions, additionalQuestions, nextQuestions.map(function (i) {
|
7116
|
+
return _extends({}, i, {
|
7117
|
+
questionOrder: i.questionOrder + questionCount - questions.length
|
7118
|
+
});
|
7119
|
+
}));
|
7120
|
+
onChangeExam(_extends({}, exam, {
|
7121
|
+
questions: [].concat(newQuestions)
|
7122
|
+
}));
|
7123
|
+
} else {
|
7124
|
+
var remainQuestions = questions.slice(0, questionCount);
|
7125
|
+
var _newQuestions = [].concat(prevQuestions, remainQuestions, nextQuestions.map(function (i) {
|
7126
|
+
return _extends({}, i, {
|
7127
|
+
questionOrder: i.questionOrder - questions.length + questionCount
|
7128
|
+
});
|
7129
|
+
}));
|
7130
|
+
onChangeExam(_extends({}, exam, {
|
7131
|
+
questions: [].concat(_newQuestions)
|
7132
|
+
}));
|
6933
7133
|
}
|
6934
7134
|
};
|
6935
|
-
var
|
6936
|
-
if (
|
6937
|
-
|
6938
|
-
|
6939
|
-
|
6940
|
-
}, [window.location.pathname, user === null || user === void 0 ? void 0 : user.academyDomain]);
|
6941
|
-
};
|
6942
|
-
|
6943
|
-
var useList = function useList(fetchData, defaultQuery) {
|
6944
|
-
var dispatch = reactRedux.useDispatch();
|
6945
|
-
var _useState = React.useState(defaultQuery),
|
6946
|
-
filter = _useState[0],
|
6947
|
-
setFilter = _useState[1];
|
6948
|
-
var _useState2 = React.useState(0),
|
6949
|
-
totalPages = _useState2[0],
|
6950
|
-
setTotalPages = _useState2[1];
|
6951
|
-
var _useState3 = React.useState([]),
|
6952
|
-
data = _useState3[0],
|
6953
|
-
setData = _useState3[1];
|
6954
|
-
var _useState4 = React.useState(),
|
6955
|
-
selectedItem = _useState4[0],
|
6956
|
-
setSelectedItem = _useState4[1];
|
6957
|
-
var textSearchRef = React.useRef(null);
|
6958
|
-
var isFirstLoadRef = React.useRef(true);
|
6959
|
-
var handleChangeSelectedItem = function handleChangeSelectedItem(item) {
|
6960
|
-
setSelectedItem(item);
|
6961
|
-
};
|
6962
|
-
var getData = function getData(isLoading) {
|
6963
|
-
if (isLoading === void 0) {
|
6964
|
-
isLoading = false;
|
6965
|
-
}
|
6966
|
-
try {
|
6967
|
-
var _temp2 = function _temp2() {
|
6968
|
-
isLoading && dispatch(setLoading(false));
|
6969
|
-
};
|
6970
|
-
if (isFirstLoadRef.current) isFirstLoadRef.current = false;
|
6971
|
-
isLoading && dispatch(setLoading(true));
|
6972
|
-
var _temp = _catch(function () {
|
6973
|
-
return Promise.resolve(fetchData(filter)).then(function (res) {
|
6974
|
-
var _res$data = res.data,
|
6975
|
-
_res$data$items = _res$data.items,
|
6976
|
-
items = _res$data$items === void 0 ? [] : _res$data$items,
|
6977
|
-
_res$data$totalPages = _res$data.totalPages,
|
6978
|
-
totalPages = _res$data$totalPages === void 0 ? 0 : _res$data$totalPages;
|
6979
|
-
setTotalPages(totalPages);
|
6980
|
-
setData(items);
|
6981
|
-
});
|
6982
|
-
}, function (error) {
|
6983
|
-
var _error$response, _error$response$data;
|
6984
|
-
setTotalPages(0);
|
6985
|
-
setData([]);
|
6986
|
-
reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.title) || "Get data failed");
|
6987
|
-
});
|
6988
|
-
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
6989
|
-
} catch (e) {
|
6990
|
-
return Promise.reject(e);
|
6991
|
-
}
|
6992
|
-
};
|
6993
|
-
var handleSort = function handleSort(sortColumnName) {
|
6994
|
-
var sortColumnDirection = OrderType.ASC;
|
6995
|
-
console.log({
|
6996
|
-
sortColumnName: typeof sortColumnName,
|
6997
|
-
filter: typeof filter.sortColumnName
|
7135
|
+
var handleChangeCategory = function handleChangeCategory(article, categoryId) {
|
7136
|
+
if (!exam) return;
|
7137
|
+
var examQuestions = exam.questions;
|
7138
|
+
var questions = examQuestions.filter(function (i) {
|
7139
|
+
return i.article === +article;
|
6998
7140
|
});
|
6999
|
-
|
7000
|
-
|
7001
|
-
|
7002
|
-
|
7003
|
-
|
7004
|
-
|
7005
|
-
|
7006
|
-
|
7007
|
-
|
7008
|
-
textSearchRef.current.value = e.target.value.trim();
|
7009
|
-
debounceSearch();
|
7010
|
-
};
|
7011
|
-
var handleChangePage = function handleChangePage(_, page) {
|
7012
|
-
setFilter(_extends({}, filter, {
|
7013
|
-
currentPage: page
|
7014
|
-
}));
|
7015
|
-
};
|
7016
|
-
var calcOrderNumber = function calcOrderNumber(index) {
|
7017
|
-
var _filter$currentPage, _filter$pageSize;
|
7018
|
-
return (((_filter$currentPage = filter.currentPage) != null ? _filter$currentPage : 0) - 1) * ((_filter$pageSize = filter.pageSize) != null ? _filter$pageSize : 0) + index + 1;
|
7019
|
-
};
|
7020
|
-
var debounceSearch = _.debounce(function () {
|
7021
|
-
var _textSearchRef$curren;
|
7022
|
-
setFilter(_extends({}, filter, {
|
7023
|
-
currentPage: 1,
|
7024
|
-
textSearch: (_textSearchRef$curren = textSearchRef.current) === null || _textSearchRef$curren === void 0 ? void 0 : _textSearchRef$curren.value
|
7141
|
+
var otherQuestions = examQuestions.filter(function (i) {
|
7142
|
+
return i.article !== +article;
|
7143
|
+
});
|
7144
|
+
onChangeExam(_extends({}, exam, {
|
7145
|
+
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7146
|
+
return _extends({}, q, {
|
7147
|
+
categoryId: categoryId
|
7148
|
+
});
|
7149
|
+
}))
|
7025
7150
|
}));
|
7026
|
-
}, 500);
|
7027
|
-
React.useEffect(function () {
|
7028
|
-
getData(isFirstLoadRef.current);
|
7029
|
-
}, [JSON.stringify(filter)]);
|
7030
|
-
return {
|
7031
|
-
filter: filter,
|
7032
|
-
textSearchRef: textSearchRef,
|
7033
|
-
totalPages: totalPages,
|
7034
|
-
data: data,
|
7035
|
-
selectedItem: selectedItem,
|
7036
|
-
handleSort: handleSort,
|
7037
|
-
handleChangeSearchText: handleChangeSearchText,
|
7038
|
-
handleChangePage: handleChangePage,
|
7039
|
-
calcOrderNumber: calcOrderNumber,
|
7040
|
-
handleChangeSelectedItem: handleChangeSelectedItem,
|
7041
|
-
getData: getData
|
7042
7151
|
};
|
7043
|
-
|
7044
|
-
|
7045
|
-
|
7046
|
-
|
7047
|
-
|
7048
|
-
|
7049
|
-
|
7050
|
-
|
7051
|
-
|
7052
|
-
|
7053
|
-
|
7054
|
-
|
7055
|
-
|
7056
|
-
|
7057
|
-
|
7058
|
-
return getTextbookListApi(search, role);
|
7059
|
-
}, TextbookDefaultQuery),
|
7060
|
-
filter = _useList.filter,
|
7061
|
-
textSearchRef = _useList.textSearchRef,
|
7062
|
-
totalPages = _useList.totalPages,
|
7063
|
-
textbooks = _useList.data,
|
7064
|
-
selectedTextbook = _useList.selectedItem,
|
7065
|
-
handleSort = _useList.handleSort,
|
7066
|
-
handleChangeSearchText = _useList.handleChangeSearchText,
|
7067
|
-
handleChangePage = _useList.handleChangePage,
|
7068
|
-
calcOrderNumber = _useList.calcOrderNumber,
|
7069
|
-
handleChangeSelectedItem = _useList.handleChangeSelectedItem,
|
7070
|
-
getData = _useList.getData;
|
7071
|
-
var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
7072
|
-
var dispatch = reactRedux.useDispatch();
|
7073
|
-
var handleViewTextbook = function handleViewTextbook(id) {
|
7074
|
-
navigate(textbookUrl + "/" + id + "?readonly=true", {
|
7075
|
-
replace: true
|
7152
|
+
var handleDeleteArticle = function handleDeleteArticle(article) {
|
7153
|
+
if (!exam) return;
|
7154
|
+
var removedQuestions = exam.questions.filter(function (i) {
|
7155
|
+
return i.article === +article;
|
7156
|
+
}).map(function (i) {
|
7157
|
+
return i.questionOrder;
|
7158
|
+
});
|
7159
|
+
var max = Math.max.apply(Math, removedQuestions);
|
7160
|
+
var examQuestions = exam.questions.filter(function (i) {
|
7161
|
+
return i.article !== +article;
|
7162
|
+
}).map(function (i) {
|
7163
|
+
return _extends({}, i, {
|
7164
|
+
article: i.article > article ? i.article - 1 : i.article,
|
7165
|
+
questionOrder: i.questionOrder > max ? i.questionOrder - removedQuestions.length : i.questionOrder
|
7166
|
+
});
|
7076
7167
|
});
|
7168
|
+
onChangeExam(_extends({}, exam, {
|
7169
|
+
questions: [].concat(examQuestions)
|
7170
|
+
}));
|
7077
7171
|
};
|
7078
|
-
var
|
7079
|
-
|
7080
|
-
|
7172
|
+
var handleChangeAnswerCount = function handleChangeAnswerCount(article, newAnswerCount, answerCount) {
|
7173
|
+
if (!exam) return;
|
7174
|
+
if (newAnswerCount === answerCount) return;
|
7175
|
+
var examQuestions = exam.questions;
|
7176
|
+
var questions = examQuestions.filter(function (i) {
|
7177
|
+
return i.article === +article;
|
7081
7178
|
});
|
7179
|
+
var otherQuestions = examQuestions.filter(function (i) {
|
7180
|
+
return i.article !== +article;
|
7181
|
+
});
|
7182
|
+
if (answerCount < newAnswerCount) {
|
7183
|
+
onChangeExam(_extends({}, exam, {
|
7184
|
+
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7185
|
+
return _extends({}, q, {
|
7186
|
+
numberOfAnswers: newAnswerCount
|
7187
|
+
});
|
7188
|
+
}))
|
7189
|
+
}));
|
7190
|
+
} else {
|
7191
|
+
onChangeExam(_extends({}, exam, {
|
7192
|
+
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7193
|
+
var _q$correctAnswers;
|
7194
|
+
return _extends({}, q, {
|
7195
|
+
numberOfAnswers: newAnswerCount,
|
7196
|
+
correctAnswers: (_q$correctAnswers = q.correctAnswers) === null || _q$correctAnswers === void 0 ? void 0 : _q$correctAnswers.filter(function (i) {
|
7197
|
+
return i <= newAnswerCount;
|
7198
|
+
})
|
7199
|
+
});
|
7200
|
+
}))
|
7201
|
+
}));
|
7202
|
+
}
|
7082
7203
|
};
|
7083
|
-
var
|
7084
|
-
|
7085
|
-
|
7204
|
+
var handleChangeCorrectAnswers = function handleChangeCorrectAnswers(article, index, answer) {
|
7205
|
+
if (!exam) return;
|
7206
|
+
var examQuestions = exam.questions;
|
7207
|
+
var questions = examQuestions.filter(function (i) {
|
7208
|
+
return i.article === +article;
|
7086
7209
|
});
|
7210
|
+
var otherQuestions = examQuestions.filter(function (i) {
|
7211
|
+
return i.article !== +article;
|
7212
|
+
});
|
7213
|
+
var selectedQuestion = questions[index];
|
7214
|
+
onChangeExam(_extends({}, exam, {
|
7215
|
+
questions: [].concat(otherQuestions, questions.slice(0, index), [_extends({}, selectedQuestion, {
|
7216
|
+
correctAnswers: [answer]
|
7217
|
+
})], questions.slice(index + 1))
|
7218
|
+
}));
|
7087
7219
|
};
|
7088
|
-
var
|
7089
|
-
|
7220
|
+
var handleChangeScoreAnswer = function handleChangeScoreAnswer(article, index, score) {
|
7221
|
+
if (!exam) return;
|
7222
|
+
var examQuestions = exam.questions;
|
7223
|
+
var questions = examQuestions.filter(function (i) {
|
7224
|
+
return i.article === +article;
|
7225
|
+
});
|
7226
|
+
var otherQuestions = examQuestions.filter(function (i) {
|
7227
|
+
return i.article !== +article;
|
7228
|
+
});
|
7229
|
+
var selectedQuestion = questions[index];
|
7230
|
+
if (score === selectedQuestion.score) return;
|
7231
|
+
onChangeExam(_extends({}, exam, {
|
7232
|
+
questions: [].concat(otherQuestions, questions.slice(0, index), [_extends({}, selectedQuestion, {
|
7233
|
+
score: score
|
7234
|
+
})], questions.slice(index + 1))
|
7235
|
+
}));
|
7090
7236
|
};
|
7091
|
-
var
|
7092
|
-
|
7237
|
+
var handleChangeDuration = function handleChangeDuration(value) {
|
7238
|
+
if (!exam) return;
|
7239
|
+
onChangeExam(_extends({}, exam, {
|
7240
|
+
duration: value === null || value === void 0 ? void 0 : value.value
|
7241
|
+
}));
|
7093
7242
|
};
|
7094
|
-
var
|
7095
|
-
|
7096
|
-
|
7097
|
-
|
7098
|
-
|
7099
|
-
|
7100
|
-
|
7101
|
-
|
7102
|
-
|
7103
|
-
|
7104
|
-
|
7105
|
-
|
7243
|
+
var handleChangeTitle = function handleChangeTitle(e) {
|
7244
|
+
if (!exam) return;
|
7245
|
+
onChangeExam(_extends({}, exam, {
|
7246
|
+
title: e.target.value
|
7247
|
+
}));
|
7248
|
+
};
|
7249
|
+
var handleAddArticle = function handleAddArticle() {
|
7250
|
+
var _$maxBy, _$maxBy2;
|
7251
|
+
if (!exam) return;
|
7252
|
+
var maxArticle = ((_$maxBy = _.maxBy(exam.questions, "article")) === null || _$maxBy === void 0 ? void 0 : _$maxBy.article) || 0;
|
7253
|
+
var maxOrder = ((_$maxBy2 = _.maxBy(exam.questions, "questionOrder")) === null || _$maxBy2 === void 0 ? void 0 : _$maxBy2.questionOrder) || 0;
|
7254
|
+
onChangeExam(_extends({}, exam, {
|
7255
|
+
questions: [].concat(exam.questions, [{
|
7256
|
+
article: maxArticle + 1,
|
7257
|
+
correctAnswers: [1],
|
7258
|
+
numberOfAnswers: DEFAULT_ANSWER_COUNT$1,
|
7259
|
+
score: DEFAULT_SCORE,
|
7260
|
+
questionOrder: maxOrder + 1
|
7261
|
+
}])
|
7262
|
+
}));
|
7263
|
+
};
|
7264
|
+
var examGroupByArticle = React.useMemo(function () {
|
7265
|
+
if (!exam) return [];
|
7266
|
+
var articles = [];
|
7267
|
+
var groupedArticle = _.groupBy(exam.questions, "article");
|
7268
|
+
for (var key in groupedArticle) {
|
7269
|
+
if (Object.prototype.hasOwnProperty.call(groupedArticle, key)) {
|
7270
|
+
var _questions$find, _$maxBy3;
|
7271
|
+
var questions = groupedArticle[key];
|
7272
|
+
articles.push({
|
7273
|
+
article: +key,
|
7274
|
+
categoryId: (_questions$find = questions.find(function (i) {
|
7275
|
+
return !!i.categoryId;
|
7276
|
+
})) === null || _questions$find === void 0 ? void 0 : _questions$find.categoryId,
|
7277
|
+
answerCount: ((_$maxBy3 = _.maxBy(questions, "numberOfAnswers")) === null || _$maxBy3 === void 0 ? void 0 : _$maxBy3.numberOfAnswers) || DEFAULT_ANSWER_COUNT$1,
|
7278
|
+
questionCount: questions.length,
|
7279
|
+
questions: questions
|
7106
7280
|
});
|
7107
|
-
}
|
7108
|
-
var _error$response, _error$response$data;
|
7109
|
-
reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.title) || "Textbook deleted failed");
|
7110
|
-
});
|
7111
|
-
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
7112
|
-
} catch (e) {
|
7113
|
-
return Promise.reject(e);
|
7281
|
+
}
|
7114
7282
|
}
|
7115
|
-
|
7283
|
+
return _.sortBy(articles, "article");
|
7284
|
+
}, [JSON.stringify(exam)]);
|
7285
|
+
var durationOptions = React.useMemo(function () {
|
7286
|
+
var options = DURATION_OPTIONS.map(function (i) {
|
7287
|
+
return {
|
7288
|
+
label: i + "\uBD84",
|
7289
|
+
value: i
|
7290
|
+
};
|
7291
|
+
});
|
7292
|
+
if (!!exam.duration && exam.duration > DURATION_OPTIONS[DURATION_OPTIONS.length - 1]) return [].concat(options, [{
|
7293
|
+
label: exam.duration + "\uBD84",
|
7294
|
+
value: exam.duration
|
7295
|
+
}]);
|
7296
|
+
return options;
|
7297
|
+
}, [exam.duration]);
|
7298
|
+
React.useEffect(function () {
|
7299
|
+
if ((selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) !== exam.subjectId) onChangeExam(_extends({}, exam, {
|
7300
|
+
subjectId: (selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) || 0
|
7301
|
+
}));
|
7302
|
+
}, [selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id, exam.subjectId]);
|
7116
7303
|
return {
|
7117
|
-
|
7118
|
-
|
7119
|
-
|
7120
|
-
|
7121
|
-
|
7122
|
-
|
7123
|
-
|
7124
|
-
|
7125
|
-
|
7126
|
-
|
7127
|
-
|
7128
|
-
|
7129
|
-
toggleConfirmDialog: toggleConfirmDialog,
|
7130
|
-
handleDeleteTextbook: handleDeleteTextbook,
|
7131
|
-
handleSelectDeleteTextbook: handleSelectDeleteTextbook
|
7304
|
+
t: t,
|
7305
|
+
durationOptions: durationOptions,
|
7306
|
+
examGroupByArticle: examGroupByArticle,
|
7307
|
+
handleAddArticle: handleAddArticle,
|
7308
|
+
handleChangeScoreAnswer: handleChangeScoreAnswer,
|
7309
|
+
handleChangeTitle: handleChangeTitle,
|
7310
|
+
handleChangeDuration: handleChangeDuration,
|
7311
|
+
handleChangeCorrectAnswers: handleChangeCorrectAnswers,
|
7312
|
+
handleChangeAnswerCount: handleChangeAnswerCount,
|
7313
|
+
handleChangeQuestionCount: handleChangeQuestionCount,
|
7314
|
+
handleChangeCategory: handleChangeCategory,
|
7315
|
+
handleDeleteArticle: handleDeleteArticle
|
7132
7316
|
};
|
7133
7317
|
};
|
7134
7318
|
|
7135
|
-
var
|
7319
|
+
var ExamDetailView = function ExamDetailView(_ref) {
|
7320
|
+
var _ref$className = _ref.className,
|
7321
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
7322
|
+
exam = _ref.exam,
|
7323
|
+
isDisabled = _ref.isDisabled,
|
7324
|
+
isEdit = _ref.isEdit,
|
7325
|
+
onChangeExam = _ref.onChangeExam;
|
7326
|
+
var _useSubjectSelect = useSubjectSelect(),
|
7327
|
+
subjectOptions = _useSubjectSelect.subjectOptions,
|
7328
|
+
selectedSubject = _useSubjectSelect.selectedSubject,
|
7329
|
+
handleChangeSubject = _useSubjectSelect.handleChangeSubject;
|
7330
|
+
var _useExamDetailView = useExamDetailView({
|
7331
|
+
exam: exam,
|
7332
|
+
onChangeExam: onChangeExam,
|
7333
|
+
selectedSubject: selectedSubject
|
7334
|
+
}),
|
7335
|
+
t = _useExamDetailView.t,
|
7336
|
+
durationOptions = _useExamDetailView.durationOptions,
|
7337
|
+
examGroupByArticle = _useExamDetailView.examGroupByArticle,
|
7338
|
+
handleAddArticle = _useExamDetailView.handleAddArticle,
|
7339
|
+
handleChangeScoreAnswer = _useExamDetailView.handleChangeScoreAnswer,
|
7340
|
+
handleChangeTitle = _useExamDetailView.handleChangeTitle,
|
7341
|
+
handleChangeDuration = _useExamDetailView.handleChangeDuration,
|
7342
|
+
handleChangeCorrectAnswers = _useExamDetailView.handleChangeCorrectAnswers,
|
7343
|
+
handleChangeAnswerCount = _useExamDetailView.handleChangeAnswerCount,
|
7344
|
+
handleChangeQuestionCount = _useExamDetailView.handleChangeQuestionCount,
|
7345
|
+
handleChangeCategory = _useExamDetailView.handleChangeCategory,
|
7346
|
+
handleDeleteArticle = _useExamDetailView.handleDeleteArticle;
|
7347
|
+
return React__default.createElement(material.Grid, {
|
7348
|
+
container: true,
|
7349
|
+
spacing: 3,
|
7350
|
+
className: className + " " + styles["custom-row"]
|
7351
|
+
}, React__default.createElement(material.Grid, {
|
7352
|
+
item: true,
|
7353
|
+
xs: 5,
|
7354
|
+
className: 'mb-2'
|
7355
|
+
}, React__default.createElement("label", {
|
7356
|
+
className: styles["form-label"] + " " + styles$2["question-label"],
|
7357
|
+
htmlFor: "title"
|
7358
|
+
}, t("title")), React__default.createElement("input", {
|
7359
|
+
disabled: isDisabled,
|
7360
|
+
className: "" + styles["form-control"],
|
7361
|
+
value: exam.title,
|
7362
|
+
id: "title",
|
7363
|
+
placeholder: t("enter_title"),
|
7364
|
+
onChange: handleChangeTitle
|
7365
|
+
})), React__default.createElement(material.Grid, {
|
7366
|
+
item: true,
|
7367
|
+
xs: 3,
|
7368
|
+
className: 'mb-2'
|
7369
|
+
}, React__default.createElement("label", {
|
7370
|
+
className: styles["form-label"] + " " + styles$2["question-label"],
|
7371
|
+
htmlFor: "duration"
|
7372
|
+
}, t("duration")), React__default.createElement(CustomSelect, {
|
7373
|
+
inputId: "duration",
|
7374
|
+
value: exam.duration,
|
7375
|
+
options: durationOptions,
|
7376
|
+
onChange: handleChangeDuration,
|
7377
|
+
isDisabled: isDisabled
|
7378
|
+
})), React__default.createElement(material.Grid, {
|
7379
|
+
item: true,
|
7380
|
+
xs: 3,
|
7381
|
+
className: 'mb-2'
|
7382
|
+
}, React__default.createElement("label", {
|
7383
|
+
className: styles["form-label"] + " " + styles$2["question-label"],
|
7384
|
+
htmlFor: "duration"
|
7385
|
+
}, t("subject"), " ", selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.name), React__default.createElement(CustomSelect, {
|
7386
|
+
inputId: "subject",
|
7387
|
+
value: selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id,
|
7388
|
+
options: subjectOptions,
|
7389
|
+
onChange: handleChangeSubject,
|
7390
|
+
isDisabled: isDisabled || isEdit
|
7391
|
+
})), examGroupByArticle.map(function (i, index) {
|
7392
|
+
return React__default.createElement(material.Grid, {
|
7393
|
+
item: true,
|
7394
|
+
key: i.article,
|
7395
|
+
xs: 12,
|
7396
|
+
className: index === examGroupByArticle.length - 1 ? "mb-2" : ''
|
7397
|
+
}, React__default.createElement(ArticleGroupView, Object.assign({}, i, {
|
7398
|
+
isActive: index === examGroupByArticle.length - 1,
|
7399
|
+
onChangeQuestionCount: handleChangeQuestionCount,
|
7400
|
+
onChangeCategory: handleChangeCategory,
|
7401
|
+
onChangeAnswerCount: handleChangeAnswerCount,
|
7402
|
+
onChangeCorrectAnswers: handleChangeCorrectAnswers,
|
7403
|
+
onChangeScoreAnswer: handleChangeScoreAnswer,
|
7404
|
+
onDelete: handleDeleteArticle,
|
7405
|
+
isDisabled: isDisabled,
|
7406
|
+
selectedSubject: selectedSubject,
|
7407
|
+
isDeletable: examGroupByArticle.length > 1
|
7408
|
+
})));
|
7409
|
+
}), React__default.createElement(material.Grid, {
|
7410
|
+
item: true,
|
7411
|
+
xs: 12
|
7412
|
+
}, React__default.createElement("button", {
|
7413
|
+
disabled: isDisabled,
|
7414
|
+
className: styles["btn-outline-primary"] + " w-100 d-flex justify-content-center align-items-center " + styles$2["question-btn"] + " mt-3",
|
7415
|
+
onClick: handleAddArticle
|
7416
|
+
}, React__default.createElement(fa.FaPlusCircle, {
|
7417
|
+
className: "me-2"
|
7418
|
+
}), "\uBB38\uD56D \uCD94\uAC00\uD558\uAE30")));
|
7419
|
+
};
|
7420
|
+
|
7421
|
+
var _excluded$4 = ["isOpen", "onClose", "handleSaveExam"];
|
7422
|
+
var CreateExamDrawer = function CreateExamDrawer(props) {
|
7423
|
+
var isOpen = props.isOpen,
|
7424
|
+
onClose = props.onClose,
|
7425
|
+
handleSaveExam = props.handleSaveExam,
|
7426
|
+
examDetailViewProps = _objectWithoutPropertiesLoose(props, _excluded$4);
|
7136
7427
|
var _useTranslation = reactI18next.useTranslation(),
|
7137
7428
|
t = _useTranslation.t;
|
7138
|
-
|
7139
|
-
|
7140
|
-
|
7141
|
-
|
7429
|
+
var theme = material.useTheme();
|
7430
|
+
var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
|
7431
|
+
return React__default.createElement("div", null, React__default.createElement("div", {
|
7432
|
+
className: styles$3["drawer-overlay"] + " " + (isOpen && styles$3["open"]),
|
7433
|
+
onClick: function onClick() {
|
7434
|
+
return onClose();
|
7435
|
+
}
|
7436
|
+
}), React__default.createElement("div", {
|
7437
|
+
className: styles$3["drawer"] + " bg-white " + (isOpen && styles$3["open"]),
|
7438
|
+
style: {
|
7439
|
+
width: "" + (isTabletUp ? "70vw" : "100vw")
|
7440
|
+
}
|
7441
|
+
}, React__default.createElement("div", {
|
7442
|
+
className: styles$3["drawer-header"] + " d-flex justify-content-between align-items-center"
|
7443
|
+
}, React__default.createElement("div", {
|
7444
|
+
style: {
|
7445
|
+
color: "#5458D5",
|
7446
|
+
cursor: "pointer",
|
7447
|
+
padding: "0.5rem 1rem",
|
7448
|
+
border: "1px solid #5458D5",
|
7449
|
+
backgroundColor: "white",
|
7450
|
+
justifyContent: "center",
|
7451
|
+
alignItems: "center",
|
7452
|
+
borderRadius: "6px"
|
7453
|
+
},
|
7454
|
+
onClick: handleSaveExam
|
7455
|
+
}, t("live_exam")), React__default.createElement("span", {
|
7456
|
+
className: "p-1 pointer",
|
7457
|
+
onClick: function onClick() {
|
7458
|
+
return onClose();
|
7459
|
+
}
|
7460
|
+
}, React__default.createElement(fa.FaTimes, {
|
7461
|
+
size: 18
|
7462
|
+
}))), React__default.createElement("div", {
|
7463
|
+
className: "" + styles$3["drawer-form"]
|
7464
|
+
}, React__default.createElement(ExamDetailView, Object.assign({}, examDetailViewProps)))));
|
7142
7465
|
};
|
7143
7466
|
|
7144
|
-
var
|
7145
|
-
var
|
7146
|
-
|
7147
|
-
|
7148
|
-
|
7467
|
+
var TextbookViewDetail = function TextbookViewDetail(props) {
|
7468
|
+
var _textbook$chapters;
|
7469
|
+
var _useTextbookDetail = useTextbookDetail(props),
|
7470
|
+
id = _useTextbookDetail.id,
|
7471
|
+
t = _useTextbookDetail.t,
|
7472
|
+
textbook = _useTextbookDetail.textbook,
|
7473
|
+
textbookSubject = _useTextbookDetail.textbookSubject,
|
7474
|
+
isReadonly = _useTextbookDetail.isReadonly,
|
7475
|
+
isNotFound = _useTextbookDetail.isNotFound,
|
7476
|
+
parentChapter = _useTextbookDetail.parentChapter,
|
7477
|
+
textbookId = _useTextbookDetail.textbookId,
|
7478
|
+
selectedChapter = _useTextbookDetail.selectedChapter,
|
7479
|
+
articlesSelected = _useTextbookDetail.articlesSelected,
|
7480
|
+
selectedDeleteItem = _useTextbookDetail.selectedDeleteItem,
|
7481
|
+
isEditedTitle = _useTextbookDetail.isEditedTitle,
|
7482
|
+
isOpenDialog = _useTextbookDetail.isOpenDialog,
|
7483
|
+
examRequest = _useTextbookDetail.examRequest,
|
7484
|
+
handleChangeExamRequest = _useTextbookDetail.handleChangeExamRequest,
|
7485
|
+
handleSaveExam = _useTextbookDetail.handleSaveExam,
|
7486
|
+
handleCloseDialog = _useTextbookDetail.handleCloseDialog,
|
7487
|
+
handleCreateExam = _useTextbookDetail.handleCreateExam,
|
7488
|
+
handleCheckArticle = _useTextbookDetail.handleCheckArticle,
|
7489
|
+
handleChangeTextbookTitle = _useTextbookDetail.handleChangeTextbookTitle,
|
7490
|
+
handleOpenCreateExamDialog = _useTextbookDetail.handleOpenCreateExamDialog,
|
7491
|
+
handleChangeTextbookSubject = _useTextbookDetail.handleChangeTextbookSubject,
|
7492
|
+
handleGoToTextbookList = _useTextbookDetail.handleGoToTextbookList,
|
7493
|
+
handleCreateOrUpdateTextbook = _useTextbookDetail.handleCreateOrUpdateTextbook,
|
7494
|
+
handleCloseChapterNameDialog = _useTextbookDetail.handleCloseChapterNameDialog,
|
7495
|
+
handleCreateChapter = _useTextbookDetail.handleCreateChapter,
|
7496
|
+
handleAddChapterToTextbook = _useTextbookDetail.handleAddChapterToTextbook,
|
7497
|
+
handleAddChapterToParentSubchapter = _useTextbookDetail.handleAddChapterToParentSubchapter,
|
7498
|
+
handleChangeChapterName = _useTextbookDetail.handleChangeChapterName,
|
7499
|
+
handleChangeChapterPageFrom = _useTextbookDetail.handleChangeChapterPageFrom,
|
7500
|
+
handleChangeChapterPageTo = _useTextbookDetail.handleChangeChapterPageTo,
|
7501
|
+
handleAddArticleToChapter = _useTextbookDetail.handleAddArticleToChapter,
|
7502
|
+
handleUpdateArticleQuestionCountFromChapter = _useTextbookDetail.handleUpdateArticleQuestionCountFromChapter,
|
7503
|
+
handleUpdateArticleCategory = _useTextbookDetail.handleUpdateArticleCategory,
|
7504
|
+
handleUpdateArticleAnswerCount = _useTextbookDetail.handleUpdateArticleAnswerCount,
|
7505
|
+
handleUpdateArticleQuestion = _useTextbookDetail.handleUpdateArticleQuestion,
|
7506
|
+
handleCloseArticleDialog = _useTextbookDetail.handleCloseArticleDialog,
|
7507
|
+
handleOpenAddArticleDialog = _useTextbookDetail.handleOpenAddArticleDialog,
|
7508
|
+
handleOpenRemoveArticleConfirmDialog = _useTextbookDetail.handleOpenRemoveArticleConfirmDialog,
|
7509
|
+
handleCloseConfirmDeleteDialog = _useTextbookDetail.handleCloseConfirmDeleteDialog,
|
7510
|
+
handleRemoveSelectedItem = _useTextbookDetail.handleRemoveSelectedItem,
|
7511
|
+
handleOpenRemoveChapterConfirmDialog = _useTextbookDetail.handleOpenRemoveChapterConfirmDialog;
|
7512
|
+
var _useCategorySelect = useCategorySelect({
|
7513
|
+
subjectId: id ? textbookSubject === null || textbookSubject === void 0 ? void 0 : textbookSubject.value : undefined
|
7514
|
+
}),
|
7515
|
+
categoryOptions = _useCategorySelect.categoryOptions;
|
7516
|
+
if (isNotFound) return React__default.createElement(NotFound, null);
|
7517
|
+
return React__default.createElement(material.Container, {
|
7518
|
+
maxWidth: "xl",
|
7519
|
+
className: "bg-white py-5 p-4 rounded-4 h-100 d-flex flex-column"
|
7149
7520
|
}, React__default.createElement(material.Stack, {
|
7150
7521
|
direction: "row",
|
7151
7522
|
alignItems: "center",
|
7152
7523
|
justifyContent: "space-between",
|
7153
7524
|
mb: 2
|
7154
7525
|
}, React__default.createElement(material.Typography, {
|
7155
|
-
variant:
|
7156
|
-
},
|
7157
|
-
|
7158
|
-
|
7159
|
-
|
7160
|
-
|
7161
|
-
|
7162
|
-
|
7163
|
-
|
7164
|
-
onClick: onClick
|
7165
|
-
}, React__default.createElement(fa.FaSortUp, {
|
7166
|
-
className: isAscending === true ? styles["active"] : ""
|
7167
|
-
}), React__default.createElement(fa.FaSortDown, {
|
7168
|
-
className: isAscending === false ? styles["active"] : ""
|
7169
|
-
}));
|
7170
|
-
};
|
7171
|
-
|
7172
|
-
var TableHeader = function TableHeader(_ref) {
|
7173
|
-
var headerTemplates = _ref.headerTemplates,
|
7174
|
-
filter = _ref.filter,
|
7175
|
-
onSort = _ref.onSort;
|
7176
|
-
var _useTranslation = reactI18next.useTranslation(),
|
7177
|
-
t = _useTranslation.t;
|
7178
|
-
return React__default.createElement(material.TableHead, null, React__default.createElement(material.TableRow, null, headerTemplates.map(function (i, index$1) {
|
7179
|
-
return React__default.createElement(material.TableCell, {
|
7180
|
-
key: index$1,
|
7181
|
-
className: "" + (!!i.sortKey && "pointer"),
|
7182
|
-
onClick: !!i.sortKey ? function () {
|
7183
|
-
return onSort === null || onSort === void 0 ? void 0 : onSort(i.sortKey);
|
7184
|
-
} : undefined
|
7185
|
-
}, React__default.createElement("div", {
|
7186
|
-
className: "d-flex justify-content-between align-items-center text-nowrap"
|
7187
|
-
}, t(i.title), !!i.sortKey && React__default.createElement(SortIcon, {
|
7188
|
-
isAscending: filter.sortColumnName !== i.sortKey ? undefined : filter.sortColumnDirection === OrderType.ASC
|
7189
|
-
})));
|
7190
|
-
})));
|
7191
|
-
};
|
7192
|
-
|
7193
|
-
var SearchInput = function SearchInput(_ref) {
|
7194
|
-
var textSearchRef = _ref.textSearchRef,
|
7195
|
-
_ref$placeholder = _ref.placeholder,
|
7196
|
-
placeholder = _ref$placeholder === void 0 ? "Search for..." : _ref$placeholder,
|
7197
|
-
onChange = _ref.onChange,
|
7198
|
-
_ref$fit = _ref.fit,
|
7199
|
-
fit = _ref$fit === void 0 ? true : _ref$fit;
|
7200
|
-
return React__default.createElement(material.Paper, {
|
7201
|
-
component: "div",
|
7202
|
-
className: "bg-light w-100 " + (fit && "h-100"),
|
7526
|
+
variant: "h3"
|
7527
|
+
}, t(id ? isReadonly ? "view_textbook" : "update_textbook" : "create_textbook"))), React__default.createElement(material.Grid, {
|
7528
|
+
container: true,
|
7529
|
+
spacing: 3
|
7530
|
+
}, React__default.createElement(material.Grid, {
|
7531
|
+
item: true,
|
7532
|
+
xs: 4,
|
7533
|
+
className: "d-flex align-items-center"
|
7534
|
+
}, React__default.createElement(material.Table, null, React__default.createElement(material.TableBody, null, React__default.createElement(material.TableRow, {
|
7203
7535
|
sx: {
|
7204
|
-
|
7205
|
-
|
7206
|
-
alignItems: "center",
|
7207
|
-
width: 400,
|
7208
|
-
transition: "border 0.2s ease",
|
7209
|
-
outline: "1px solid transparent",
|
7210
|
-
":focus-within": {
|
7211
|
-
outlineColor: function outlineColor(theme) {
|
7212
|
-
return theme.palette.primary.main;
|
7213
|
-
}
|
7536
|
+
"& td": {
|
7537
|
+
border: 0
|
7214
7538
|
}
|
7215
7539
|
}
|
7216
|
-
}, React__default.createElement(material.
|
7540
|
+
}, React__default.createElement(material.TableCell, {
|
7541
|
+
className: "p-2 pe-0",
|
7217
7542
|
sx: {
|
7218
|
-
|
7219
|
-
}
|
7220
|
-
|
7221
|
-
|
7222
|
-
|
7223
|
-
className: "
|
7224
|
-
})), React__default.createElement(material.
|
7225
|
-
id: "searchText",
|
7226
|
-
className: "" + (fit && "h-100"),
|
7543
|
+
width: "15%"
|
7544
|
+
}
|
7545
|
+
}, React__default.createElement(material.InputLabel, null, React__default.createElement("span", {
|
7546
|
+
className: "fw-bold"
|
7547
|
+
}, t("name")), React__default.createElement("span", {
|
7548
|
+
className: "text-danger"
|
7549
|
+
}, "*"))), React__default.createElement(material.TableCell, {
|
7227
7550
|
sx: {
|
7228
|
-
|
7229
|
-
|
7230
|
-
|
7231
|
-
|
7232
|
-
|
7233
|
-
|
7234
|
-
|
7235
|
-
|
7236
|
-
|
7237
|
-
|
7238
|
-
|
7239
|
-
|
7240
|
-
|
7241
|
-
|
7242
|
-
|
7243
|
-
|
7244
|
-
|
7245
|
-
|
7246
|
-
|
7247
|
-
|
7248
|
-
|
7249
|
-
|
7250
|
-
|
7251
|
-
|
7252
|
-
|
7253
|
-
|
7254
|
-
|
7255
|
-
|
7256
|
-
|
7257
|
-
|
7258
|
-
|
7259
|
-
|
7260
|
-
|
7261
|
-
|
7551
|
+
width: 0,
|
7552
|
+
px: 1
|
7553
|
+
}
|
7554
|
+
}, ":"), React__default.createElement(material.TableCell, {
|
7555
|
+
className: "p-2"
|
7556
|
+
}, React__default.createElement(InputText, {
|
7557
|
+
className: "w-100",
|
7558
|
+
value: textbook === null || textbook === void 0 ? void 0 : textbook.name,
|
7559
|
+
placeholder: t("enter_textbook_title"),
|
7560
|
+
onChange: handleChangeTextbookTitle,
|
7561
|
+
disabled: isReadonly
|
7562
|
+
}))), React__default.createElement(material.TableRow, {
|
7563
|
+
sx: {
|
7564
|
+
"& td": {
|
7565
|
+
border: 0
|
7566
|
+
}
|
7567
|
+
}
|
7568
|
+
}, React__default.createElement(material.TableCell, {
|
7569
|
+
className: "p-2 pe-0"
|
7570
|
+
}, React__default.createElement(material.InputLabel, null, React__default.createElement("span", {
|
7571
|
+
className: "fw-bold"
|
7572
|
+
}, t("subject")), React__default.createElement("span", {
|
7573
|
+
className: "text-danger"
|
7574
|
+
}, "*"))), React__default.createElement(material.TableCell, {
|
7575
|
+
sx: {
|
7576
|
+
width: 0,
|
7577
|
+
px: 1
|
7578
|
+
}
|
7579
|
+
}, ":"), React__default.createElement(material.TableCell, {
|
7580
|
+
className: "p-2"
|
7581
|
+
}, React__default.createElement(SubjectSelector, {
|
7582
|
+
value: textbookSubject,
|
7583
|
+
onChange: handleChangeTextbookSubject,
|
7584
|
+
isDisabled: isReadonly || !!id
|
7585
|
+
})))))), React__default.createElement(material.Grid, {
|
7262
7586
|
item: true,
|
7263
|
-
xs:
|
7264
|
-
|
7265
|
-
|
7266
|
-
|
7267
|
-
|
7268
|
-
|
7587
|
+
xs: 8,
|
7588
|
+
className: "d-flex justify-content-end"
|
7589
|
+
}, React__default.createElement("div", null, React__default.createElement(TextbookActionButtons, {
|
7590
|
+
isReadonly: isReadonly,
|
7591
|
+
textbook: textbook,
|
7592
|
+
onBack: handleGoToTextbookList,
|
7593
|
+
onSave: handleCreateOrUpdateTextbook,
|
7594
|
+
hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin
|
7595
|
+
}))), React__default.createElement(material.Grid, {
|
7269
7596
|
item: true,
|
7270
|
-
xs:
|
7271
|
-
|
7272
|
-
|
7597
|
+
xs: 12,
|
7598
|
+
gap: "8px",
|
7599
|
+
className: "d-flex justify-content-end"
|
7273
7600
|
}, React__default.createElement(material.Button, {
|
7601
|
+
variant: "outlined",
|
7602
|
+
sx: {
|
7603
|
+
borderColor: "#5458D5",
|
7604
|
+
color: "#5458D5"
|
7605
|
+
},
|
7606
|
+
onClick: function onClick() {
|
7607
|
+
return handleOpenCreateExamDialog();
|
7608
|
+
},
|
7609
|
+
disabled: isReadonly || !articlesSelected.length,
|
7274
7610
|
startIcon: React__default.createElement(fa.FaPlus, {
|
7275
7611
|
size: 12
|
7276
|
-
})
|
7612
|
+
})
|
7613
|
+
}, React__default.createElement(material.Typography, null, t("create_new_exam"))), !!id && React__default.createElement(material.Button, {
|
7614
|
+
className: "mx-1",
|
7277
7615
|
variant: "contained",
|
7278
7616
|
color: "primary",
|
7279
|
-
|
7280
|
-
}, t("create_textbook")))), React__default.createElement(material.Grid, {
|
7281
|
-
item: true,
|
7282
|
-
xs: 12,
|
7283
|
-
className: "mt-3"
|
7284
|
-
}, React__default.createElement(material.Table, null, React__default.createElement(TableHeader, {
|
7285
|
-
headerTemplates: TEXTBOOK_HEADERS,
|
7286
|
-
filter: filter,
|
7287
|
-
onSort: handleSort
|
7288
|
-
}), React__default.createElement(material.TableBody, null, textbooks.map(function (i, index) {
|
7289
|
-
return React__default.createElement(material.TableRow, {
|
7290
|
-
key: i.id
|
7291
|
-
}, React__default.createElement(material.TableCell, null, calcOrderNumber(index)), React__default.createElement(material.TableCell, null, i.name), React__default.createElement(material.TableCell, null, i.subject.name), React__default.createElement(material.TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(material.TableCell, null, i.totalChapters), React__default.createElement(material.TableCell, null, React__default.createElement(material.Stack, {
|
7292
|
-
direction: "row",
|
7293
|
-
spacing: 1,
|
7294
|
-
alignItems: "center"
|
7295
|
-
}, !i.isCreatedByAdmin && React__default.createElement(material.IconButton, {
|
7296
|
-
color: "default",
|
7297
|
-
className: "bg-warning text-white",
|
7298
|
-
onClick: function onClick() {
|
7299
|
-
return handleUpdateTextbook(i.id);
|
7300
|
-
}
|
7301
|
-
}, React__default.createElement(fa6.FaPencil, {
|
7302
|
-
size: 12
|
7303
|
-
})), React__default.createElement(material.IconButton, {
|
7304
|
-
color: "default",
|
7305
|
-
className: "bg-primary text-white",
|
7306
|
-
onClick: function onClick() {
|
7307
|
-
return handleViewTextbook(i.id);
|
7308
|
-
}
|
7309
|
-
}, React__default.createElement(fa.FaEye, {
|
7310
|
-
size: 12
|
7311
|
-
})), !i.isCreatedByAdmin && React__default.createElement(material.IconButton, {
|
7312
|
-
color: "default",
|
7313
|
-
className: "bg-danger text-white",
|
7314
|
-
onClick: function onClick() {
|
7315
|
-
return handleSelectDeleteTextbook(i);
|
7316
|
-
}
|
7317
|
-
}, React__default.createElement(fa.FaTrash, {
|
7617
|
+
startIcon: React__default.createElement(fa.FaPlus, {
|
7318
7618
|
size: 12
|
7319
|
-
})
|
7320
|
-
|
7321
|
-
|
7322
|
-
},
|
7323
|
-
|
7324
|
-
|
7325
|
-
|
7326
|
-
|
7327
|
-
|
7328
|
-
|
7329
|
-
|
7330
|
-
|
7331
|
-
|
7619
|
+
}),
|
7620
|
+
onClick: handleAddChapterToTextbook,
|
7621
|
+
disabled: isReadonly
|
7622
|
+
}, t("add_chapter"))), React__default.createElement(material.Grid, {
|
7623
|
+
item: true,
|
7624
|
+
xs: 12
|
7625
|
+
}, React__default.createElement(material.Stack, {
|
7626
|
+
spacing: 3
|
7627
|
+
}, !!(textbook !== null && textbook !== void 0 && textbook.subject) && (textbook === null || textbook === void 0 ? void 0 : (_textbook$chapters = textbook.chapters) === null || _textbook$chapters === void 0 ? void 0 : _textbook$chapters.map(function (chapter) {
|
7628
|
+
return React__default.createElement(ChapterBox, {
|
7629
|
+
key: chapter.id,
|
7630
|
+
subject: textbook.subject,
|
7631
|
+
data: chapter,
|
7632
|
+
categoryOptions: categoryOptions || [],
|
7633
|
+
onClickAddSubchapter: handleAddChapterToParentSubchapter,
|
7634
|
+
onChangeName: handleChangeChapterName,
|
7635
|
+
onChangePageFrom: handleChangeChapterPageFrom,
|
7636
|
+
onChangePageTo: handleChangeChapterPageTo,
|
7637
|
+
handleCheckArticle: handleCheckArticle,
|
7638
|
+
onAddArticle: handleOpenAddArticleDialog,
|
7639
|
+
onRemoveArticle: handleOpenRemoveArticleConfirmDialog,
|
7640
|
+
onUpdateArticleQuestionCount: handleUpdateArticleQuestionCountFromChapter,
|
7641
|
+
onUpdateArticleCategory: handleUpdateArticleCategory,
|
7642
|
+
onUpdateArticleQuestionAnswerCount: handleUpdateArticleAnswerCount,
|
7643
|
+
onUpdateArticleQuestion: handleUpdateArticleQuestion,
|
7644
|
+
onRemoveChapter: handleOpenRemoveChapterConfirmDialog,
|
7645
|
+
isReadonly: isReadonly
|
7646
|
+
});
|
7647
|
+
}))))), React__default.createElement(ChapterNameDialog, {
|
7648
|
+
open: !!(parentChapter !== null && parentChapter !== void 0 && parentChapter.id) || !!textbookId,
|
7649
|
+
chapter: parentChapter,
|
7650
|
+
onClose: handleCloseChapterNameDialog,
|
7651
|
+
onSubmitForm: handleCreateChapter
|
7652
|
+
}), React__default.createElement(CreateExamDrawer, {
|
7653
|
+
isOpen: isOpenDialog,
|
7654
|
+
onClose: handleCloseDialog,
|
7655
|
+
onSubmit: handleCreateExam,
|
7656
|
+
handleSaveExam: handleSaveExam,
|
7657
|
+
exam: examRequest,
|
7658
|
+
onChangeExam: handleChangeExamRequest
|
7659
|
+
}), React__default.createElement(ArticleDialog, {
|
7660
|
+
open: !!selectedChapter,
|
7661
|
+
chapter: selectedChapter,
|
7662
|
+
categoryOptions: categoryOptions || [],
|
7663
|
+
onClose: handleCloseArticleDialog,
|
7664
|
+
onSubmitForm: handleAddArticleToChapter
|
7665
|
+
}), selectedDeleteItem && React__default.createElement(ConfirmDialog, {
|
7666
|
+
open: true,
|
7667
|
+
toggle: handleCloseConfirmDeleteDialog,
|
7668
|
+
text: selectedDeleteItem.confirmText,
|
7669
|
+
confirmText: selectedDeleteItem.name,
|
7670
|
+
onConfirm: handleRemoveSelectedItem,
|
7332
7671
|
isDelete: true
|
7333
7672
|
}));
|
7334
7673
|
};
|
7335
7674
|
|
7336
|
-
|
7337
|
-
|
7338
|
-
var
|
7339
|
-
|
7340
|
-
|
7341
|
-
TextbookDetail: TextbookViewDetail
|
7342
|
-
};
|
7343
|
-
|
7344
|
-
var _excluded$4 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
|
7345
|
-
var CustomCreatable = function CustomCreatable(_ref) {
|
7346
|
-
var options = _ref.options,
|
7347
|
-
isDisabled = _ref.isDisabled,
|
7348
|
-
scrollBottom = _ref.scrollBottom,
|
7349
|
-
value = _ref.value,
|
7350
|
-
isMulti = _ref.isMulti,
|
7351
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
7352
|
-
var initialValues = Array.isArray(value) ? options.filter(function (i) {
|
7353
|
-
return value.includes(i.value);
|
7354
|
-
}) : isMulti ? options.filter(function (i) {
|
7355
|
-
return i.value == value;
|
7356
|
-
}) : options.find(function (i) {
|
7357
|
-
return i.value == value;
|
7358
|
-
});
|
7359
|
-
return React__default.createElement(CreatableSelect, Object.assign({
|
7360
|
-
isClearable: true,
|
7361
|
-
isDisabled: isDisabled,
|
7362
|
-
options: options,
|
7363
|
-
value: initialValues,
|
7364
|
-
menuPlacement: scrollBottom ? "top" : "auto",
|
7365
|
-
isMulti: isMulti
|
7366
|
-
}, rest));
|
7367
|
-
};
|
7368
|
-
|
7369
|
-
var _excluded$5 = ["isDefault", "defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
|
7370
|
-
var CustomAsyncSelect = function CustomAsyncSelect(_ref) {
|
7371
|
-
var isDefault = _ref.isDefault,
|
7372
|
-
options = _ref.options,
|
7373
|
-
isDisabled = _ref.isDisabled,
|
7374
|
-
scrollBottom = _ref.scrollBottom,
|
7375
|
-
value = _ref.value,
|
7376
|
-
isMulti = _ref.isMulti,
|
7377
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
7378
|
-
var initialValues = Array.isArray(value) ? options.filter(function (i) {
|
7379
|
-
return value.includes(i.value);
|
7380
|
-
}) : isMulti ? options.filter(function (i) {
|
7381
|
-
return i.value == value;
|
7382
|
-
}) : options.find(function (i) {
|
7383
|
-
return i.value == value;
|
7675
|
+
var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superUrls, homeUrl, homeAcademyUrl) {
|
7676
|
+
var searchParams = new URLSearchParams(window.location.search);
|
7677
|
+
var user = reactRedux.useSelector(function (state) {
|
7678
|
+
var _state$common;
|
7679
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
7384
7680
|
});
|
7385
|
-
|
7386
|
-
|
7387
|
-
|
7388
|
-
|
7389
|
-
|
7390
|
-
|
7391
|
-
|
7392
|
-
|
7393
|
-
|
7394
|
-
|
7395
|
-
|
7396
|
-
|
7397
|
-
|
7398
|
-
|
7399
|
-
}
|
7400
|
-
|
7401
|
-
|
7402
|
-
|
7403
|
-
|
7404
|
-
|
7405
|
-
onChangeExam = props.onChangeExam;
|
7406
|
-
var _useTranslation = reactI18next.useTranslation(),
|
7407
|
-
t = _useTranslation.t;
|
7408
|
-
var handleChangeQuestionCount = function handleChangeQuestionCount(article, questionCount, answerCount) {
|
7409
|
-
if (!exam) return;
|
7410
|
-
var examQuestions = exam.questions;
|
7411
|
-
var questions = examQuestions.filter(function (i) {
|
7412
|
-
return i.article === +article;
|
7413
|
-
});
|
7414
|
-
var prevQuestions = examQuestions.filter(function (i) {
|
7415
|
-
return i.article < +article;
|
7416
|
-
});
|
7417
|
-
var nextQuestions = examQuestions.filter(function (i) {
|
7418
|
-
return i.article > +article;
|
7419
|
-
});
|
7420
|
-
var lastOrder = questions[questions.length - 1].questionOrder;
|
7421
|
-
if (questions.length === questionCount) return;
|
7422
|
-
if (questions.length < questionCount) {
|
7423
|
-
var additionalQuestions = Array.from({
|
7424
|
-
length: questionCount - questions.length
|
7425
|
-
}).map(function (_, index) {
|
7426
|
-
var _questions$;
|
7427
|
-
return {
|
7428
|
-
article: +article,
|
7429
|
-
correctAnswers: [1],
|
7430
|
-
numberOfAnswers: answerCount,
|
7431
|
-
categoryId: (_questions$ = questions[0]) === null || _questions$ === void 0 ? void 0 : _questions$.categoryId,
|
7432
|
-
score: DEFAULT_SCORE,
|
7433
|
-
questionOrder: lastOrder + index + 1
|
7434
|
-
};
|
7435
|
-
});
|
7436
|
-
var newQuestions = [].concat(prevQuestions, questions, additionalQuestions, nextQuestions.map(function (i) {
|
7437
|
-
return _extends({}, i, {
|
7438
|
-
questionOrder: i.questionOrder + questionCount - questions.length
|
7681
|
+
var initialAcademySearchParam = function initialAcademySearchParam() {
|
7682
|
+
var paramAcademyDomain = searchParams.get("domain");
|
7683
|
+
var domain = getAcademyDomain();
|
7684
|
+
var pathname = window.location.pathname.toLowerCase();
|
7685
|
+
if (!user) return;
|
7686
|
+
var academyDomain = user.academyDomain;
|
7687
|
+
if (!academyDomain) {
|
7688
|
+
if (!superUrls.some(function (i) {
|
7689
|
+
return pathname.startsWith(i);
|
7690
|
+
})) {
|
7691
|
+
pushTo({
|
7692
|
+
pathname: homeUrl,
|
7693
|
+
search: ""
|
7694
|
+
});
|
7695
|
+
}
|
7696
|
+
if (domain) {
|
7697
|
+
searchParams.append("domain", domain);
|
7698
|
+
pushTo({
|
7699
|
+
pathname: homeUrl,
|
7700
|
+
search: ""
|
7439
7701
|
});
|
7440
|
-
}
|
7441
|
-
onChangeExam(_extends({}, exam, {
|
7442
|
-
questions: [].concat(newQuestions)
|
7443
|
-
}));
|
7702
|
+
}
|
7444
7703
|
} else {
|
7445
|
-
|
7446
|
-
|
7447
|
-
|
7448
|
-
|
7704
|
+
if (superUrls.some(function (i) {
|
7705
|
+
return pathname.startsWith(i);
|
7706
|
+
})) {
|
7707
|
+
pushTo({
|
7708
|
+
pathname: homeAcademyUrl,
|
7709
|
+
search: ""
|
7449
7710
|
});
|
7450
|
-
}
|
7451
|
-
|
7452
|
-
|
7453
|
-
}
|
7711
|
+
}
|
7712
|
+
if (paramAcademyDomain && academyDomain.trim().toLocaleLowerCase() != (paramAcademyDomain === null || paramAcademyDomain === void 0 ? void 0 : paramAcademyDomain.trim().toLocaleLowerCase())) {
|
7713
|
+
logout();
|
7714
|
+
}
|
7715
|
+
if (!paramAcademyDomain && academyDomain) {
|
7716
|
+
searchParams.append("domain", academyDomain);
|
7717
|
+
pushTo(_extends({}, window.location, {
|
7718
|
+
search: searchParams.toString()
|
7719
|
+
}));
|
7720
|
+
}
|
7454
7721
|
}
|
7455
7722
|
};
|
7456
|
-
var
|
7457
|
-
if (
|
7458
|
-
var examQuestions = exam.questions;
|
7459
|
-
var questions = examQuestions.filter(function (i) {
|
7460
|
-
return i.article === +article;
|
7461
|
-
});
|
7462
|
-
var otherQuestions = examQuestions.filter(function (i) {
|
7463
|
-
return i.article !== +article;
|
7464
|
-
});
|
7465
|
-
onChangeExam(_extends({}, exam, {
|
7466
|
-
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7467
|
-
return _extends({}, q, {
|
7468
|
-
categoryId: categoryId
|
7469
|
-
});
|
7470
|
-
}))
|
7471
|
-
}));
|
7723
|
+
var pushTo = function pushTo(data) {
|
7724
|
+
if (history.push) history.push(data);else history(data);
|
7472
7725
|
};
|
7473
|
-
|
7474
|
-
|
7475
|
-
|
7476
|
-
|
7477
|
-
|
7478
|
-
|
7479
|
-
|
7480
|
-
|
7481
|
-
|
7482
|
-
|
7483
|
-
|
7484
|
-
|
7485
|
-
|
7486
|
-
|
7726
|
+
React.useEffect(function () {
|
7727
|
+
initialAcademySearchParam();
|
7728
|
+
}, [window.location.pathname, user === null || user === void 0 ? void 0 : user.academyDomain]);
|
7729
|
+
};
|
7730
|
+
|
7731
|
+
var useList = function useList(fetchData, defaultQuery) {
|
7732
|
+
var dispatch = reactRedux.useDispatch();
|
7733
|
+
var _useState = React.useState(defaultQuery),
|
7734
|
+
filter = _useState[0],
|
7735
|
+
setFilter = _useState[1];
|
7736
|
+
var _useState2 = React.useState(0),
|
7737
|
+
totalPages = _useState2[0],
|
7738
|
+
setTotalPages = _useState2[1];
|
7739
|
+
var _useState3 = React.useState([]),
|
7740
|
+
data = _useState3[0],
|
7741
|
+
setData = _useState3[1];
|
7742
|
+
var _useState4 = React.useState(),
|
7743
|
+
selectedItem = _useState4[0],
|
7744
|
+
setSelectedItem = _useState4[1];
|
7745
|
+
var textSearchRef = React.useRef(null);
|
7746
|
+
var isFirstLoadRef = React.useRef(true);
|
7747
|
+
var handleChangeSelectedItem = function handleChangeSelectedItem(item) {
|
7748
|
+
setSelectedItem(item);
|
7749
|
+
};
|
7750
|
+
var getData = function getData(isLoading) {
|
7751
|
+
if (isLoading === void 0) {
|
7752
|
+
isLoading = false;
|
7753
|
+
}
|
7754
|
+
try {
|
7755
|
+
var _temp2 = function _temp2() {
|
7756
|
+
isLoading && dispatch(setLoading(false));
|
7757
|
+
};
|
7758
|
+
if (isFirstLoadRef.current) isFirstLoadRef.current = false;
|
7759
|
+
isLoading && dispatch(setLoading(true));
|
7760
|
+
var _temp = _catch(function () {
|
7761
|
+
return Promise.resolve(fetchData(filter)).then(function (res) {
|
7762
|
+
var _res$data = res.data,
|
7763
|
+
_res$data$items = _res$data.items,
|
7764
|
+
items = _res$data$items === void 0 ? [] : _res$data$items,
|
7765
|
+
_res$data$totalPages = _res$data.totalPages,
|
7766
|
+
totalPages = _res$data$totalPages === void 0 ? 0 : _res$data$totalPages;
|
7767
|
+
setTotalPages(totalPages);
|
7768
|
+
setData(items);
|
7769
|
+
});
|
7770
|
+
}, function (error) {
|
7771
|
+
var _error$response, _error$response$data;
|
7772
|
+
setTotalPages(0);
|
7773
|
+
setData([]);
|
7774
|
+
reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.title) || "Get data failed");
|
7487
7775
|
});
|
7776
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
7777
|
+
} catch (e) {
|
7778
|
+
return Promise.reject(e);
|
7779
|
+
}
|
7780
|
+
};
|
7781
|
+
var handleSort = function handleSort(sortColumnName) {
|
7782
|
+
var sortColumnDirection = OrderType.ASC;
|
7783
|
+
console.log({
|
7784
|
+
sortColumnName: typeof sortColumnName,
|
7785
|
+
filter: typeof filter.sortColumnName
|
7488
7786
|
});
|
7489
|
-
|
7490
|
-
|
7787
|
+
if (filter.sortColumnName == sortColumnName && filter.sortColumnDirection === OrderType.ASC) sortColumnDirection = OrderType.DESC;
|
7788
|
+
setFilter(_extends({}, filter, {
|
7789
|
+
sortColumnName: sortColumnName,
|
7790
|
+
sortColumnDirection: sortColumnDirection,
|
7791
|
+
currentPage: 1
|
7491
7792
|
}));
|
7492
7793
|
};
|
7493
|
-
var
|
7494
|
-
if (!
|
7495
|
-
|
7496
|
-
|
7497
|
-
var questions = examQuestions.filter(function (i) {
|
7498
|
-
return i.article === +article;
|
7499
|
-
});
|
7500
|
-
var otherQuestions = examQuestions.filter(function (i) {
|
7501
|
-
return i.article !== +article;
|
7502
|
-
});
|
7503
|
-
if (answerCount < newAnswerCount) {
|
7504
|
-
onChangeExam(_extends({}, exam, {
|
7505
|
-
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7506
|
-
return _extends({}, q, {
|
7507
|
-
numberOfAnswers: newAnswerCount
|
7508
|
-
});
|
7509
|
-
}))
|
7510
|
-
}));
|
7511
|
-
} else {
|
7512
|
-
onChangeExam(_extends({}, exam, {
|
7513
|
-
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7514
|
-
var _q$correctAnswers;
|
7515
|
-
return _extends({}, q, {
|
7516
|
-
numberOfAnswers: newAnswerCount,
|
7517
|
-
correctAnswers: (_q$correctAnswers = q.correctAnswers) === null || _q$correctAnswers === void 0 ? void 0 : _q$correctAnswers.filter(function (i) {
|
7518
|
-
return i <= newAnswerCount;
|
7519
|
-
})
|
7520
|
-
});
|
7521
|
-
}))
|
7522
|
-
}));
|
7523
|
-
}
|
7794
|
+
var handleChangeSearchText = function handleChangeSearchText(e) {
|
7795
|
+
if (!textSearchRef.current) return;
|
7796
|
+
textSearchRef.current.value = e.target.value.trim();
|
7797
|
+
debounceSearch();
|
7524
7798
|
};
|
7525
|
-
var
|
7526
|
-
|
7527
|
-
|
7528
|
-
var questions = examQuestions.filter(function (i) {
|
7529
|
-
return i.article === +article;
|
7530
|
-
});
|
7531
|
-
var otherQuestions = examQuestions.filter(function (i) {
|
7532
|
-
return i.article !== +article;
|
7533
|
-
});
|
7534
|
-
var selectedQuestion = questions[index];
|
7535
|
-
onChangeExam(_extends({}, exam, {
|
7536
|
-
questions: [].concat(otherQuestions, questions.slice(0, index), [_extends({}, selectedQuestion, {
|
7537
|
-
correctAnswers: [answer]
|
7538
|
-
})], questions.slice(index + 1))
|
7799
|
+
var handleChangePage = function handleChangePage(_, page) {
|
7800
|
+
setFilter(_extends({}, filter, {
|
7801
|
+
currentPage: page
|
7539
7802
|
}));
|
7540
7803
|
};
|
7541
|
-
var
|
7542
|
-
|
7543
|
-
|
7544
|
-
|
7545
|
-
|
7546
|
-
|
7547
|
-
|
7548
|
-
|
7549
|
-
|
7550
|
-
var selectedQuestion = questions[index];
|
7551
|
-
if (score === selectedQuestion.score) return;
|
7552
|
-
onChangeExam(_extends({}, exam, {
|
7553
|
-
questions: [].concat(otherQuestions, questions.slice(0, index), [_extends({}, selectedQuestion, {
|
7554
|
-
score: score
|
7555
|
-
})], questions.slice(index + 1))
|
7804
|
+
var calcOrderNumber = function calcOrderNumber(index) {
|
7805
|
+
var _filter$currentPage, _filter$pageSize;
|
7806
|
+
return (((_filter$currentPage = filter.currentPage) != null ? _filter$currentPage : 0) - 1) * ((_filter$pageSize = filter.pageSize) != null ? _filter$pageSize : 0) + index + 1;
|
7807
|
+
};
|
7808
|
+
var debounceSearch = _.debounce(function () {
|
7809
|
+
var _textSearchRef$curren;
|
7810
|
+
setFilter(_extends({}, filter, {
|
7811
|
+
currentPage: 1,
|
7812
|
+
textSearch: (_textSearchRef$curren = textSearchRef.current) === null || _textSearchRef$curren === void 0 ? void 0 : _textSearchRef$curren.value
|
7556
7813
|
}));
|
7814
|
+
}, 500);
|
7815
|
+
React.useEffect(function () {
|
7816
|
+
getData(isFirstLoadRef.current);
|
7817
|
+
}, [JSON.stringify(filter)]);
|
7818
|
+
return {
|
7819
|
+
filter: filter,
|
7820
|
+
textSearchRef: textSearchRef,
|
7821
|
+
totalPages: totalPages,
|
7822
|
+
data: data,
|
7823
|
+
selectedItem: selectedItem,
|
7824
|
+
handleSort: handleSort,
|
7825
|
+
handleChangeSearchText: handleChangeSearchText,
|
7826
|
+
handleChangePage: handleChangePage,
|
7827
|
+
calcOrderNumber: calcOrderNumber,
|
7828
|
+
handleChangeSelectedItem: handleChangeSelectedItem,
|
7829
|
+
getData: getData
|
7830
|
+
};
|
7831
|
+
};
|
7832
|
+
|
7833
|
+
|
7834
|
+
|
7835
|
+
var index$1 = {
|
7836
|
+
__proto__: null,
|
7837
|
+
useLogin: useLogin,
|
7838
|
+
useAutoAcademyDomain: useAutoAcademyDomain,
|
7839
|
+
useList: useList
|
7840
|
+
};
|
7841
|
+
|
7842
|
+
var useTextbookList = function useTextbookList(props) {
|
7843
|
+
var role = props.role,
|
7844
|
+
navigate = props.navigate;
|
7845
|
+
var _useList = useList(function (search) {
|
7846
|
+
return getTextbookListApi(search, role);
|
7847
|
+
}, TextbookDefaultQuery),
|
7848
|
+
filter = _useList.filter,
|
7849
|
+
textSearchRef = _useList.textSearchRef,
|
7850
|
+
totalPages = _useList.totalPages,
|
7851
|
+
textbooks = _useList.data,
|
7852
|
+
selectedTextbook = _useList.selectedItem,
|
7853
|
+
handleSort = _useList.handleSort,
|
7854
|
+
handleChangeSearchText = _useList.handleChangeSearchText,
|
7855
|
+
handleChangePage = _useList.handleChangePage,
|
7856
|
+
calcOrderNumber = _useList.calcOrderNumber,
|
7857
|
+
handleChangeSelectedItem = _useList.handleChangeSelectedItem,
|
7858
|
+
getData = _useList.getData;
|
7859
|
+
var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
7860
|
+
var dispatch = reactRedux.useDispatch();
|
7861
|
+
var handleViewTextbook = function handleViewTextbook(id) {
|
7862
|
+
navigate(textbookUrl + "/" + id + "?readonly=true", {
|
7863
|
+
replace: true
|
7864
|
+
});
|
7865
|
+
};
|
7866
|
+
var handleUpdateTextbook = function handleUpdateTextbook(id) {
|
7867
|
+
navigate(textbookUrl + "/" + id, {
|
7868
|
+
replace: true
|
7869
|
+
});
|
7557
7870
|
};
|
7558
|
-
var
|
7559
|
-
|
7560
|
-
|
7561
|
-
|
7562
|
-
}));
|
7871
|
+
var handleCreateTextbook = function handleCreateTextbook() {
|
7872
|
+
navigate(textbookUrl + "/create", {
|
7873
|
+
replace: true
|
7874
|
+
});
|
7563
7875
|
};
|
7564
|
-
var
|
7565
|
-
|
7566
|
-
onChangeExam(_extends({}, exam, {
|
7567
|
-
title: e.target.value
|
7568
|
-
}));
|
7876
|
+
var toggleConfirmDialog = function toggleConfirmDialog() {
|
7877
|
+
handleChangeSelectedItem(undefined);
|
7569
7878
|
};
|
7570
|
-
var
|
7571
|
-
|
7572
|
-
if (!exam) return;
|
7573
|
-
var maxArticle = ((_$maxBy = _.maxBy(exam.questions, "article")) === null || _$maxBy === void 0 ? void 0 : _$maxBy.article) || 0;
|
7574
|
-
var maxOrder = ((_$maxBy2 = _.maxBy(exam.questions, "questionOrder")) === null || _$maxBy2 === void 0 ? void 0 : _$maxBy2.questionOrder) || 0;
|
7575
|
-
onChangeExam(_extends({}, exam, {
|
7576
|
-
questions: [].concat(exam.questions, [{
|
7577
|
-
article: maxArticle + 1,
|
7578
|
-
correctAnswers: [1],
|
7579
|
-
numberOfAnswers: DEFAULT_ANSWER_COUNT,
|
7580
|
-
score: DEFAULT_SCORE,
|
7581
|
-
questionOrder: maxOrder + 1
|
7582
|
-
}])
|
7583
|
-
}));
|
7879
|
+
var handleSelectDeleteTextbook = function handleSelectDeleteTextbook(textbook) {
|
7880
|
+
return [handleChangeSelectedItem(textbook)];
|
7584
7881
|
};
|
7585
|
-
var
|
7586
|
-
|
7587
|
-
|
7588
|
-
|
7589
|
-
|
7590
|
-
if (
|
7591
|
-
|
7592
|
-
|
7593
|
-
|
7594
|
-
|
7595
|
-
|
7596
|
-
|
7597
|
-
})) === null || _questions$find === void 0 ? void 0 : _questions$find.categoryId,
|
7598
|
-
answerCount: ((_$maxBy3 = _.maxBy(questions, "numberOfAnswers")) === null || _$maxBy3 === void 0 ? void 0 : _$maxBy3.numberOfAnswers) || DEFAULT_ANSWER_COUNT,
|
7599
|
-
questionCount: questions.length,
|
7600
|
-
questions: questions
|
7882
|
+
var handleDeleteTextbook = function handleDeleteTextbook() {
|
7883
|
+
try {
|
7884
|
+
var _temp2 = function _temp2() {
|
7885
|
+
dispatch(setLoading(false));
|
7886
|
+
};
|
7887
|
+
if (!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id)) return Promise.resolve();
|
7888
|
+
dispatch(setLoading(true));
|
7889
|
+
var _temp = _catch(function () {
|
7890
|
+
return Promise.resolve(deleteTextbookApi(selectedTextbook.id, role)).then(function () {
|
7891
|
+
return Promise.resolve(getData(false)).then(function () {
|
7892
|
+
toggleConfirmDialog();
|
7893
|
+
});
|
7601
7894
|
});
|
7602
|
-
}
|
7895
|
+
}, function (error) {
|
7896
|
+
var _error$response, _error$response$data;
|
7897
|
+
reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.title) || "Textbook deleted failed");
|
7898
|
+
});
|
7899
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
7900
|
+
} catch (e) {
|
7901
|
+
return Promise.reject(e);
|
7603
7902
|
}
|
7604
|
-
|
7605
|
-
}, [JSON.stringify(exam)]);
|
7606
|
-
var durationOptions = React.useMemo(function () {
|
7607
|
-
var options = DURATION_OPTIONS.map(function (i) {
|
7608
|
-
return {
|
7609
|
-
label: i + "\uBD84",
|
7610
|
-
value: i
|
7611
|
-
};
|
7612
|
-
});
|
7613
|
-
if (!!exam.duration && exam.duration > DURATION_OPTIONS[DURATION_OPTIONS.length - 1]) return [].concat(options, [{
|
7614
|
-
label: exam.duration + "\uBD84",
|
7615
|
-
value: exam.duration
|
7616
|
-
}]);
|
7617
|
-
return options;
|
7618
|
-
}, [exam.duration]);
|
7619
|
-
React.useEffect(function () {
|
7620
|
-
if ((selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) !== exam.subjectId) onChangeExam(_extends({}, exam, {
|
7621
|
-
subjectId: (selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) || 0
|
7622
|
-
}));
|
7623
|
-
}, [selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id, exam.subjectId]);
|
7903
|
+
};
|
7624
7904
|
return {
|
7625
|
-
|
7626
|
-
|
7627
|
-
|
7628
|
-
|
7629
|
-
|
7630
|
-
|
7631
|
-
|
7632
|
-
|
7633
|
-
|
7634
|
-
|
7635
|
-
|
7636
|
-
|
7905
|
+
filter: filter,
|
7906
|
+
textSearchRef: textSearchRef,
|
7907
|
+
totalPages: totalPages,
|
7908
|
+
textbooks: textbooks,
|
7909
|
+
selectedTextbook: selectedTextbook,
|
7910
|
+
handleSort: handleSort,
|
7911
|
+
handleChangeSearchText: handleChangeSearchText,
|
7912
|
+
handleChangePage: handleChangePage,
|
7913
|
+
calcOrderNumber: calcOrderNumber,
|
7914
|
+
handleViewTextbook: handleViewTextbook,
|
7915
|
+
handleUpdateTextbook: handleUpdateTextbook,
|
7916
|
+
handleCreateTextbook: handleCreateTextbook,
|
7917
|
+
toggleConfirmDialog: toggleConfirmDialog,
|
7918
|
+
handleDeleteTextbook: handleDeleteTextbook,
|
7919
|
+
handleSelectDeleteTextbook: handleSelectDeleteTextbook
|
7637
7920
|
};
|
7638
7921
|
};
|
7639
7922
|
|
7640
|
-
var
|
7641
|
-
var
|
7642
|
-
|
7643
|
-
|
7644
|
-
|
7645
|
-
|
7646
|
-
|
7647
|
-
|
7648
|
-
|
7649
|
-
|
7650
|
-
|
7651
|
-
|
7652
|
-
|
7653
|
-
|
7654
|
-
|
7655
|
-
|
7656
|
-
|
7657
|
-
|
7658
|
-
|
7659
|
-
|
7660
|
-
|
7661
|
-
|
7662
|
-
|
7663
|
-
|
7664
|
-
|
7665
|
-
|
7666
|
-
|
7667
|
-
|
7668
|
-
|
7669
|
-
|
7670
|
-
|
7671
|
-
className:
|
7923
|
+
var EmptyRow = function EmptyRow() {
|
7924
|
+
var _useTranslation = reactI18next.useTranslation(),
|
7925
|
+
t = _useTranslation.t;
|
7926
|
+
return React__default.createElement(material.TableRow, null, React__default.createElement(material.TableCell, {
|
7927
|
+
colSpan: 12,
|
7928
|
+
className: "text-center text-muted"
|
7929
|
+
}, t("no_data")));
|
7930
|
+
};
|
7931
|
+
|
7932
|
+
var LayoutList = function LayoutList(_ref) {
|
7933
|
+
var children = _ref.children,
|
7934
|
+
title = _ref.title;
|
7935
|
+
return React__default.createElement(material.Box, {
|
7936
|
+
className: 'bg-white p-3'
|
7937
|
+
}, React__default.createElement(material.Stack, {
|
7938
|
+
direction: "row",
|
7939
|
+
alignItems: "center",
|
7940
|
+
justifyContent: "space-between",
|
7941
|
+
mb: 2
|
7942
|
+
}, React__default.createElement(material.Typography, {
|
7943
|
+
variant: 'h4'
|
7944
|
+
}, title)), React__default.createElement(material.Box, null, children));
|
7945
|
+
};
|
7946
|
+
|
7947
|
+
var SortIcon = function SortIcon(_ref) {
|
7948
|
+
var isAscending = _ref.isAscending,
|
7949
|
+
onClick = _ref.onClick;
|
7950
|
+
return React__default.createElement("div", {
|
7951
|
+
className: "d-flex flex-column " + styles["sort-icons"],
|
7952
|
+
onClick: onClick
|
7953
|
+
}, React__default.createElement(fa.FaSortUp, {
|
7954
|
+
className: isAscending === true ? styles["active"] : ""
|
7955
|
+
}), React__default.createElement(fa.FaSortDown, {
|
7956
|
+
className: isAscending === false ? styles["active"] : ""
|
7957
|
+
}));
|
7958
|
+
};
|
7959
|
+
|
7960
|
+
var TableHeader = function TableHeader(_ref) {
|
7961
|
+
var headerTemplates = _ref.headerTemplates,
|
7962
|
+
filter = _ref.filter,
|
7963
|
+
onSort = _ref.onSort;
|
7964
|
+
var _useTranslation = reactI18next.useTranslation(),
|
7965
|
+
t = _useTranslation.t;
|
7966
|
+
return React__default.createElement(material.TableHead, null, React__default.createElement(material.TableRow, null, headerTemplates.map(function (i, index$1) {
|
7967
|
+
return React__default.createElement(material.TableCell, {
|
7968
|
+
key: index$1,
|
7969
|
+
className: "" + (!!i.sortKey && "pointer"),
|
7970
|
+
onClick: !!i.sortKey ? function () {
|
7971
|
+
return onSort === null || onSort === void 0 ? void 0 : onSort(i.sortKey);
|
7972
|
+
} : undefined
|
7973
|
+
}, React__default.createElement("div", {
|
7974
|
+
className: "d-flex justify-content-between align-items-center text-nowrap"
|
7975
|
+
}, t(i.title), !!i.sortKey && React__default.createElement(SortIcon, {
|
7976
|
+
isAscending: filter.sortColumnName !== i.sortKey ? undefined : filter.sortColumnDirection === OrderType.ASC
|
7977
|
+
})));
|
7978
|
+
})));
|
7979
|
+
};
|
7980
|
+
|
7981
|
+
var SearchInput = function SearchInput(_ref) {
|
7982
|
+
var textSearchRef = _ref.textSearchRef,
|
7983
|
+
_ref$placeholder = _ref.placeholder,
|
7984
|
+
placeholder = _ref$placeholder === void 0 ? "Search for..." : _ref$placeholder,
|
7985
|
+
onChange = _ref.onChange,
|
7986
|
+
_ref$fit = _ref.fit,
|
7987
|
+
fit = _ref$fit === void 0 ? true : _ref$fit;
|
7988
|
+
return React__default.createElement(material.Paper, {
|
7989
|
+
component: "div",
|
7990
|
+
className: "bg-light w-100 " + (fit && "h-100"),
|
7991
|
+
sx: {
|
7992
|
+
p: "2px 4px",
|
7993
|
+
display: "flex",
|
7994
|
+
alignItems: "center",
|
7995
|
+
width: 400,
|
7996
|
+
transition: "border 0.2s ease",
|
7997
|
+
outline: "1px solid transparent",
|
7998
|
+
":focus-within": {
|
7999
|
+
outlineColor: function outlineColor(theme) {
|
8000
|
+
return theme.palette.primary.main;
|
8001
|
+
}
|
8002
|
+
}
|
8003
|
+
}
|
8004
|
+
}, React__default.createElement(material.Box, {
|
8005
|
+
sx: {
|
8006
|
+
p: "10px"
|
8007
|
+
},
|
8008
|
+
"aria-label": "search"
|
8009
|
+
}, React__default.createElement(io5.IoSearch, {
|
8010
|
+
size: 24,
|
8011
|
+
className: "pb-1"
|
8012
|
+
})), React__default.createElement(material.InputBase, {
|
8013
|
+
id: "searchText",
|
8014
|
+
className: "" + (fit && "h-100"),
|
8015
|
+
sx: {
|
8016
|
+
ml: 1,
|
8017
|
+
flex: 1,
|
8018
|
+
lineHeight: 1
|
8019
|
+
},
|
8020
|
+
placeholder: placeholder,
|
8021
|
+
ref: textSearchRef,
|
8022
|
+
onChange: onChange
|
8023
|
+
}));
|
8024
|
+
};
|
8025
|
+
|
8026
|
+
var TextbookList = function TextbookList(props) {
|
8027
|
+
var _useTranslation = reactI18next.useTranslation(),
|
8028
|
+
t = _useTranslation.t;
|
8029
|
+
var _useTextbookList = useTextbookList(props),
|
8030
|
+
filter = _useTextbookList.filter,
|
8031
|
+
textbooks = _useTextbookList.textbooks,
|
8032
|
+
totalPages = _useTextbookList.totalPages,
|
8033
|
+
textSearchRef = _useTextbookList.textSearchRef,
|
8034
|
+
selectedTextbook = _useTextbookList.selectedTextbook,
|
8035
|
+
handleChangeSearchText = _useTextbookList.handleChangeSearchText,
|
8036
|
+
handleSort = _useTextbookList.handleSort,
|
8037
|
+
handleChangePage = _useTextbookList.handleChangePage,
|
8038
|
+
calcOrderNumber = _useTextbookList.calcOrderNumber,
|
8039
|
+
handleViewTextbook = _useTextbookList.handleViewTextbook,
|
8040
|
+
handleUpdateTextbook = _useTextbookList.handleUpdateTextbook,
|
8041
|
+
handleCreateTextbook = _useTextbookList.handleCreateTextbook,
|
8042
|
+
toggleConfirmDialog = _useTextbookList.toggleConfirmDialog,
|
8043
|
+
handleDeleteTextbook = _useTextbookList.handleDeleteTextbook,
|
8044
|
+
handleSelectDeleteTextbook = _useTextbookList.handleSelectDeleteTextbook;
|
8045
|
+
return React__default.createElement(LayoutList, {
|
8046
|
+
title: t(TEXTBOOK_PAGE_TITLE)
|
8047
|
+
}, React__default.createElement(material.Grid, {
|
8048
|
+
container: true
|
7672
8049
|
}, React__default.createElement(material.Grid, {
|
7673
8050
|
item: true,
|
7674
|
-
xs:
|
7675
|
-
|
7676
|
-
|
7677
|
-
|
7678
|
-
|
7679
|
-
}, t("title")), React__default.createElement("input", {
|
7680
|
-
disabled: isDisabled,
|
7681
|
-
className: "" + styles["form-control"],
|
7682
|
-
value: exam.title,
|
7683
|
-
id: "title",
|
7684
|
-
placeholder: t("enter_title"),
|
7685
|
-
onChange: handleChangeTitle
|
7686
|
-
})), React__default.createElement(material.Grid, {
|
7687
|
-
item: true,
|
7688
|
-
xs: 3,
|
7689
|
-
className: 'mb-2'
|
7690
|
-
}, React__default.createElement("label", {
|
7691
|
-
className: styles["form-label"] + " " + styles$2["question-label"],
|
7692
|
-
htmlFor: "duration"
|
7693
|
-
}, t("duration")), React__default.createElement(CustomSelect, {
|
7694
|
-
inputId: "duration",
|
7695
|
-
value: exam.duration,
|
7696
|
-
options: durationOptions,
|
7697
|
-
onChange: handleChangeDuration,
|
7698
|
-
isDisabled: isDisabled
|
8051
|
+
xs: 6
|
8052
|
+
}, React__default.createElement(SearchInput, {
|
8053
|
+
textSearchRef: textSearchRef,
|
8054
|
+
onChange: handleChangeSearchText,
|
8055
|
+
placeholder: t(TEXT_BOOK_SEARCH_PLACEHOLDER)
|
7699
8056
|
})), React__default.createElement(material.Grid, {
|
7700
8057
|
item: true,
|
7701
|
-
xs:
|
7702
|
-
|
7703
|
-
|
7704
|
-
|
7705
|
-
|
7706
|
-
|
7707
|
-
|
7708
|
-
|
7709
|
-
|
7710
|
-
|
7711
|
-
|
7712
|
-
})), examGroupByArticle.map(function (i, index) {
|
7713
|
-
return React__default.createElement(material.Grid, {
|
7714
|
-
item: true,
|
7715
|
-
key: i.article,
|
7716
|
-
xs: 12,
|
7717
|
-
className: index === examGroupByArticle.length - 1 ? "mb-2" : ''
|
7718
|
-
}, React__default.createElement(ArticleGroupView, Object.assign({}, i, {
|
7719
|
-
isActive: index === examGroupByArticle.length - 1,
|
7720
|
-
onChangeQuestionCount: handleChangeQuestionCount,
|
7721
|
-
onChangeCategory: handleChangeCategory,
|
7722
|
-
onChangeAnswerCount: handleChangeAnswerCount,
|
7723
|
-
onChangeCorrectAnswers: handleChangeCorrectAnswers,
|
7724
|
-
onChangeScoreAnswer: handleChangeScoreAnswer,
|
7725
|
-
onDelete: handleDeleteArticle,
|
7726
|
-
isDisabled: isDisabled,
|
7727
|
-
selectedSubject: selectedSubject,
|
7728
|
-
isDeletable: examGroupByArticle.length > 1
|
7729
|
-
})));
|
7730
|
-
}), React__default.createElement(material.Grid, {
|
8058
|
+
xs: 6
|
8059
|
+
}, React__default.createElement(material.Stack, {
|
8060
|
+
alignItems: "end"
|
8061
|
+
}, React__default.createElement(material.Button, {
|
8062
|
+
startIcon: React__default.createElement(fa.FaPlus, {
|
8063
|
+
size: 12
|
8064
|
+
}),
|
8065
|
+
variant: "contained",
|
8066
|
+
color: "primary",
|
8067
|
+
onClick: handleCreateTextbook
|
8068
|
+
}, t("create_textbook")))), React__default.createElement(material.Grid, {
|
7731
8069
|
item: true,
|
7732
|
-
xs: 12
|
7733
|
-
|
7734
|
-
|
7735
|
-
|
7736
|
-
|
7737
|
-
|
7738
|
-
|
7739
|
-
|
8070
|
+
xs: 12,
|
8071
|
+
className: "mt-3"
|
8072
|
+
}, React__default.createElement(material.Table, null, React__default.createElement(TableHeader, {
|
8073
|
+
headerTemplates: TEXTBOOK_HEADERS,
|
8074
|
+
filter: filter,
|
8075
|
+
onSort: handleSort
|
8076
|
+
}), React__default.createElement(material.TableBody, null, textbooks.map(function (i, index) {
|
8077
|
+
return React__default.createElement(material.TableRow, {
|
8078
|
+
key: i.id
|
8079
|
+
}, React__default.createElement(material.TableCell, null, calcOrderNumber(index)), React__default.createElement(material.TableCell, null, i.name), React__default.createElement(material.TableCell, null, i.subject.name), React__default.createElement(material.TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(material.TableCell, null, i.totalChapters), React__default.createElement(material.TableCell, null, React__default.createElement(material.Stack, {
|
8080
|
+
direction: "row",
|
8081
|
+
spacing: 1,
|
8082
|
+
alignItems: "center"
|
8083
|
+
}, !i.isCreatedByAdmin && React__default.createElement(material.IconButton, {
|
8084
|
+
color: "default",
|
8085
|
+
className: "bg-warning text-white",
|
8086
|
+
onClick: function onClick() {
|
8087
|
+
return handleUpdateTextbook(i.id);
|
8088
|
+
}
|
8089
|
+
}, React__default.createElement(fa6.FaPencil, {
|
8090
|
+
size: 12
|
8091
|
+
})), React__default.createElement(material.IconButton, {
|
8092
|
+
color: "default",
|
8093
|
+
className: "bg-primary text-white",
|
8094
|
+
onClick: function onClick() {
|
8095
|
+
return handleViewTextbook(i.id);
|
8096
|
+
}
|
8097
|
+
}, React__default.createElement(fa.FaEye, {
|
8098
|
+
size: 12
|
8099
|
+
})), !i.isCreatedByAdmin && React__default.createElement(material.IconButton, {
|
8100
|
+
color: "default",
|
8101
|
+
className: "bg-danger text-white",
|
8102
|
+
onClick: function onClick() {
|
8103
|
+
return handleSelectDeleteTextbook(i);
|
8104
|
+
}
|
8105
|
+
}, React__default.createElement(fa.FaTrash, {
|
8106
|
+
size: 12
|
8107
|
+
})))));
|
8108
|
+
}), !textbooks.length && React__default.createElement(EmptyRow, null))), React__default.createElement("div", {
|
8109
|
+
className: "d-flex justify-content-end mt-3"
|
8110
|
+
}, !!totalPages && React__default.createElement(material.Pagination, {
|
8111
|
+
count: totalPages,
|
8112
|
+
page: filter.currentPage,
|
8113
|
+
onChange: handleChangePage
|
8114
|
+
})))), React__default.createElement(ConfirmDialog, {
|
8115
|
+
open: !!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id),
|
8116
|
+
toggle: toggleConfirmDialog,
|
8117
|
+
text: "" + t("are_you_sure_you_want_to_delete_the_textbook"),
|
8118
|
+
onConfirm: handleDeleteTextbook,
|
8119
|
+
confirmText: selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.name,
|
8120
|
+
isDelete: true
|
8121
|
+
}));
|
8122
|
+
};
|
8123
|
+
|
8124
|
+
|
8125
|
+
|
8126
|
+
var index$2 = {
|
8127
|
+
__proto__: null,
|
8128
|
+
TextbookList: TextbookList,
|
8129
|
+
TextbookDetail: TextbookViewDetail
|
8130
|
+
};
|
8131
|
+
|
8132
|
+
var _excluded$5 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
|
8133
|
+
var CustomCreatable = function CustomCreatable(_ref) {
|
8134
|
+
var options = _ref.options,
|
8135
|
+
isDisabled = _ref.isDisabled,
|
8136
|
+
scrollBottom = _ref.scrollBottom,
|
8137
|
+
value = _ref.value,
|
8138
|
+
isMulti = _ref.isMulti,
|
8139
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
8140
|
+
var initialValues = Array.isArray(value) ? options.filter(function (i) {
|
8141
|
+
return value.includes(i.value);
|
8142
|
+
}) : isMulti ? options.filter(function (i) {
|
8143
|
+
return i.value == value;
|
8144
|
+
}) : options.find(function (i) {
|
8145
|
+
return i.value == value;
|
8146
|
+
});
|
8147
|
+
return React__default.createElement(CreatableSelect, Object.assign({
|
8148
|
+
isClearable: true,
|
8149
|
+
isDisabled: isDisabled,
|
8150
|
+
options: options,
|
8151
|
+
value: initialValues,
|
8152
|
+
menuPlacement: scrollBottom ? "top" : "auto",
|
8153
|
+
isMulti: isMulti
|
8154
|
+
}, rest));
|
8155
|
+
};
|
8156
|
+
|
8157
|
+
var _excluded$6 = ["isDefault", "defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
|
8158
|
+
var CustomAsyncSelect = function CustomAsyncSelect(_ref) {
|
8159
|
+
var isDefault = _ref.isDefault,
|
8160
|
+
options = _ref.options,
|
8161
|
+
isDisabled = _ref.isDisabled,
|
8162
|
+
scrollBottom = _ref.scrollBottom,
|
8163
|
+
value = _ref.value,
|
8164
|
+
isMulti = _ref.isMulti,
|
8165
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
8166
|
+
var initialValues = Array.isArray(value) ? options.filter(function (i) {
|
8167
|
+
return value.includes(i.value);
|
8168
|
+
}) : isMulti ? options.filter(function (i) {
|
8169
|
+
return i.value == value;
|
8170
|
+
}) : options.find(function (i) {
|
8171
|
+
return i.value == value;
|
8172
|
+
});
|
8173
|
+
return React__default.createElement(Select__default, Object.assign({
|
8174
|
+
isDisabled: isDisabled,
|
8175
|
+
options: options,
|
8176
|
+
value: !isDefault ? initialValues : undefined,
|
8177
|
+
defaultValue: isDefault ? initialValues : undefined,
|
8178
|
+
menuPlacement: scrollBottom ? "top" : "auto",
|
8179
|
+
isMulti: isMulti
|
8180
|
+
}, rest));
|
7740
8181
|
};
|
7741
8182
|
|
7742
8183
|
var EXAM_SESSION_URL = BASE_URL + "/api/examSession";
|
@@ -7794,16 +8235,16 @@ var ORDER_NUMBERS = {
|
|
7794
8235
|
10: "the_tenth"
|
7795
8236
|
};
|
7796
8237
|
var TabList = [{
|
7797
|
-
label: "
|
8238
|
+
label: "comprehensive_analysis",
|
7798
8239
|
value: 0
|
7799
8240
|
}, {
|
7800
|
-
label: "
|
8241
|
+
label: "solution_order",
|
7801
8242
|
value: 1
|
7802
8243
|
}, {
|
7803
|
-
label: "
|
8244
|
+
label: "compare_solution",
|
7804
8245
|
value: 2
|
7805
8246
|
}, {
|
7806
|
-
label: "
|
8247
|
+
label: "problem_analysis",
|
7807
8248
|
value: 3
|
7808
8249
|
}];
|
7809
8250
|
var Roles$2;
|
@@ -8665,7 +9106,7 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
|
|
8665
9106
|
var questions = ((_timelyOrderQuestion$ = timelyOrderQuestion[dataChartIndex]) === null || _timelyOrderQuestion$ === void 0 ? void 0 : _timelyOrderQuestion$.questions) || null;
|
8666
9107
|
var questionLength = (_questions$length = questions === null || questions === void 0 ? void 0 : questions.length) != null ? _questions$length : 0;
|
8667
9108
|
return val != null ? t("problem_number_question", {
|
8668
|
-
number: questions !== null ? ((_questions = questions[questionLength - val]) === null || _questions === void 0 ? void 0 : _questions.questionOrder) + 1 : val
|
9109
|
+
number: questions !== null ? (((_questions = questions[questionLength - val]) === null || _questions === void 0 ? void 0 : _questions.questionOrder) || 0) + 1 : val
|
8669
9110
|
}) : t("no_data");
|
8670
9111
|
}
|
8671
9112
|
return null;
|
@@ -8732,7 +9173,7 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
|
|
8732
9173
|
var questions = ((_timelyOrderQuestion$2 = timelyOrderQuestion[dataChartIndex]) === null || _timelyOrderQuestion$2 === void 0 ? void 0 : _timelyOrderQuestion$2.questions) || null;
|
8733
9174
|
var questionLength = (_questions$length2 = questions === null || questions === void 0 ? void 0 : questions.length) != null ? _questions$length2 : 0;
|
8734
9175
|
return val != null ? t("problem_number_question", {
|
8735
|
-
number: questions !== null ? ((_questions2 = questions[questionLength - val]) === null || _questions2 === void 0 ? void 0 : _questions2.questionOrder) + 1 : val
|
9176
|
+
number: questions !== null ? (((_questions2 = questions[questionLength - val]) === null || _questions2 === void 0 ? void 0 : _questions2.questionOrder) || 0) + 1 : val
|
8736
9177
|
}) : t("no_data");
|
8737
9178
|
},
|
8738
9179
|
style: {
|
@@ -8760,15 +9201,23 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
|
|
8760
9201
|
topAnswerOrder: i.topAnswerOrder == null ? 0 : i.topAnswerOrder
|
8761
9202
|
});
|
8762
9203
|
});
|
8763
|
-
var mySeriesData = [null].concat(questionsData.
|
8764
|
-
return
|
8765
|
-
}).map(function (item) {
|
8766
|
-
return
|
9204
|
+
var mySeriesData = [null].concat(_.sortBy(questionsData.filter(function (i) {
|
9205
|
+
return i.answerOrder !== 0;
|
9206
|
+
}), ["answerOrder", "questionOrder"]).map(function (item) {
|
9207
|
+
return data.questions.length - item.questionOrder;
|
9208
|
+
}), questionsData.filter(function (i) {
|
9209
|
+
return i.answerOrder === 0;
|
9210
|
+
}).map(function () {
|
9211
|
+
return null;
|
8767
9212
|
}), [null]);
|
8768
|
-
var topSeriesData = [null].concat(questionsData.
|
8769
|
-
return
|
8770
|
-
}).map(function (item) {
|
8771
|
-
return
|
9213
|
+
var topSeriesData = [null].concat(_.sortBy(questionsData.filter(function (i) {
|
9214
|
+
return i.topAnswerOrder !== 0;
|
9215
|
+
}), ["topAnswerOrder", "questionOrder"]).map(function (item) {
|
9216
|
+
return data.questions.length - item.questionOrder;
|
9217
|
+
}), questionsData.filter(function (i) {
|
9218
|
+
return i.topAnswerOrder === 0;
|
9219
|
+
}).map(function () {
|
9220
|
+
return null;
|
8772
9221
|
}), [null]);
|
8773
9222
|
return [{
|
8774
9223
|
name: t("my_problem_solving_order"),
|
@@ -9934,7 +10383,7 @@ Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==t
|
|
9934
10383
|
|
9935
10384
|
var ReactApexChart = unwrapExports(reactApexcharts_min);
|
9936
10385
|
|
9937
|
-
var styles$
|
10386
|
+
var styles$4 = {"titleBox":"_1dveO","title":"_mxRxf","point":"_2fD-F","buttonGroup":"_2DGl3","btnFeedback":"_xGW1x","btnTerminate":"_3mLu2","myanswer":"_eDBpS","titleMyAnswer1":"_2fMq3","titleMyAnswer2":"_3gEYh","contentMyAnswer":"_2K_sx","myAnswerItem":"_2qiLh","time":"_6TCOK","timeCol":"_hmseC","answer-response":"_3GfJt","answer-response-0":"_3ut64","answer-response-1":"_2VtpD","answer-response-2":"_58lQU","answer-response-3":"_1ucMY","answer-response-4":"_1qkxy","answerCorrect":"_2jIeT","answerIncorrect":"_to2v0","answerNograss":"_1JSte","answerEasy":"_2_uTU","answerDiscrimination":"_1DBoA","answerTrap":"_1q3tD","answerNoTime":"_3iItu","questionOrder":"_1fNkS","myTimeLabel":"_1Z_F3","myPoolTime":"_4KwG0","topTimeLabel":"_245H-","topTime":"_3tZqw","meanTimeLabel":"_PlPLY","meanTime":"_12a7R","compareChart":"_3MW16","prevChart":"_1fNkb","chart":"_3K4oY","nextChart":"_3YKBp","titleChart":"_13BVP","compareGrass":"_1_fJu","titleCompareGrass":"_o1txm","tableCompareGrass":"_bT5nf","thcolumn1":"_3Umg0","tdcolumn1":"_3dRMF","tdcolumn3":"_2tcBP","classification":"_1AFeb","wrapperProblem":"_oTqG7","titleProblem":"_35eIx","titleProblemClose":"_3t4HO","titleTrickyProblem":"_1-oxK","wrongQuestions":"_2dpMR","question":"_1lSOX","assignedQuestions":"_1ONUt","wrapperContent":"_nPoR0","content":"_2zmZn","contentColumn1":"_334SY","span1":"_3Lf-U","span2":"_ZpMot","contentColumn2":"_16P3l","duration":"_1kT28","topDuration":"_1fVRi","overallCorrectRate":"_3jLGe","answer":"_VsZ0K","contentVulnerable":"_QxKMy","wrappContentProblem":"_nnqpW","contentProblem":"_3Z1nV","labelProblem":"_36Xpx","name":"_3ZJQW","percent":"_2J3MK","slider":"_1MPdO","track":"_3CV_y","noData":"__g-ff","loading":"_3j485","table-responsive":"_2O6RX","form-label":"_1RYOQ","form-control":"_3VRVT","form-label-dialog":"_3oCSh","btn-cancel":"_3USKq","btn-register":"_3y_iD","pdfBtnBox":"_3xZHo","pdfBtn":"_1DtWq","form-select":"_1a_vw"};
|
9938
10387
|
|
9939
10388
|
var iconStarQuestion = function iconStarQuestion(_ref) {
|
9940
10389
|
var _ref$width = _ref.width,
|
@@ -10225,7 +10674,7 @@ function CreateNewQuestionDialog(_ref) {
|
|
10225
10674
|
padding: "24px 24px 40px 24px"
|
10226
10675
|
}, React__default.createElement(material.Stack, null, React__default.createElement("label", {
|
10227
10676
|
htmlFor: "questions",
|
10228
|
-
className: styles['form-label'] + " " + styles$
|
10677
|
+
className: styles['form-label'] + " " + styles$4['form-label-dialog']
|
10229
10678
|
}, "\uC9C8\uBB38\uD560 \uBB38\uC81C"), React__default.createElement(formik.Field, {
|
10230
10679
|
as: "select",
|
10231
10680
|
id: "questions",
|
@@ -10242,7 +10691,7 @@ function CreateNewQuestionDialog(_ref) {
|
|
10242
10691
|
}));
|
10243
10692
|
}))), React__default.createElement(material.Stack, null, React__default.createElement("label", {
|
10244
10693
|
htmlFor: "content-question",
|
10245
|
-
className: styles['form-label'] + " " + styles$
|
10694
|
+
className: styles['form-label'] + " " + styles$4['form-label-dialog']
|
10246
10695
|
}, "\uC9C8\uBB38 \uB0B4\uC6A9"), React__default.createElement(material.Box, {
|
10247
10696
|
position: 'relative',
|
10248
10697
|
display: 'flex',
|
@@ -10278,14 +10727,14 @@ function CreateNewQuestionDialog(_ref) {
|
|
10278
10727
|
borderTop: "1px solid #CED2DA"
|
10279
10728
|
}
|
10280
10729
|
}, React__default.createElement(Button, {
|
10281
|
-
className: styles$
|
10730
|
+
className: styles$4['btn-cancel'],
|
10282
10731
|
onClick: toggleCreateQuestion
|
10283
10732
|
}, React__default.createElement(Typography, {
|
10284
10733
|
fontWeight: 700,
|
10285
10734
|
fontSize: '14px',
|
10286
10735
|
lineHeight: '16.71px'
|
10287
10736
|
}, "\uCDE8\uC18C")), React__default.createElement(Button, {
|
10288
|
-
className: styles$
|
10737
|
+
className: styles$4['btn-register'],
|
10289
10738
|
type: "submit"
|
10290
10739
|
}, React__default.createElement(Typography, {
|
10291
10740
|
fontWeight: 700,
|
@@ -10317,7 +10766,7 @@ function MyAnswer(_ref) {
|
|
10317
10766
|
toggleCreateQuestion();
|
10318
10767
|
};
|
10319
10768
|
return React__default.createElement("div", {
|
10320
|
-
className: styles$
|
10769
|
+
className: styles$4["myanswer"]
|
10321
10770
|
}, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
|
10322
10771
|
return React__default.createElement("div", {
|
10323
10772
|
key: item.category.id
|
@@ -10325,7 +10774,7 @@ function MyAnswer(_ref) {
|
|
10325
10774
|
bgcolor: "#F9FAFB",
|
10326
10775
|
flexDirection: "row",
|
10327
10776
|
padding: "12px",
|
10328
|
-
className: styles$
|
10777
|
+
className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
|
10329
10778
|
}, React__default.createElement("div", {
|
10330
10779
|
className: styles["custom-col-2"],
|
10331
10780
|
style: {
|
@@ -10389,7 +10838,7 @@ function MyAnswer(_ref) {
|
|
10389
10838
|
color: "#97A1AF"
|
10390
10839
|
}
|
10391
10840
|
}, "\uC804\uCCB4 \uC815\uB2F5\uB960"))), React__default.createElement("div", {
|
10392
|
-
className: styles$
|
10841
|
+
className: styles$4["titleMyAnswer2"]
|
10393
10842
|
}, React__default.createElement(material.Typography, {
|
10394
10843
|
sx: {
|
10395
10844
|
color: "#97A1AF",
|
@@ -10402,7 +10851,7 @@ function MyAnswer(_ref) {
|
|
10402
10851
|
fontWeight: 700
|
10403
10852
|
}
|
10404
10853
|
}, item.category.name)), React__default.createElement("div", {
|
10405
|
-
className: styles$
|
10854
|
+
className: styles$4["contentMyAnswer"]
|
10406
10855
|
}, item.questions.map(function (question, index) {
|
10407
10856
|
return React__default.createElement("div", {
|
10408
10857
|
style: isOpenTime[question.id] ? {
|
@@ -10411,7 +10860,7 @@ function MyAnswer(_ref) {
|
|
10411
10860
|
} : {},
|
10412
10861
|
key: question.id
|
10413
10862
|
}, React__default.createElement("div", {
|
10414
|
-
className: styles$
|
10863
|
+
className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
|
10415
10864
|
}, React__default.createElement("div", {
|
10416
10865
|
className: styles["custom-col-2"],
|
10417
10866
|
style: {
|
@@ -10421,7 +10870,7 @@ function MyAnswer(_ref) {
|
|
10421
10870
|
padding: "4px 8px"
|
10422
10871
|
}
|
10423
10872
|
}, question.isStar ? React__default.createElement(iconStarQuestion, null) : React__default.createElement(iconNoStarQuestion, null), React__default.createElement("span", {
|
10424
|
-
className: styles$
|
10873
|
+
className: styles$4["questionOrder"]
|
10425
10874
|
}, question.questionOrder + 1, "\uBC88")), React__default.createElement("div", {
|
10426
10875
|
className: styles["custom-col-2"],
|
10427
10876
|
style: {
|
@@ -10430,11 +10879,11 @@ function MyAnswer(_ref) {
|
|
10430
10879
|
gap: "4px"
|
10431
10880
|
}
|
10432
10881
|
}, question.isCorrect && question.selectedAnswers !== "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
|
10433
|
-
className: styles$
|
10882
|
+
className: styles$4["answerCorrect"]
|
10434
10883
|
}, "\uC815\uB2F5")), !question.isCorrect && question.selectedAnswers !== "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
|
10435
|
-
className: styles$
|
10884
|
+
className: styles$4["answerIncorrect"]
|
10436
10885
|
}, "\uC624\uB2F5")), question.selectedAnswers === "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
|
10437
|
-
className: styles$
|
10886
|
+
className: styles$4["answerNograss"]
|
10438
10887
|
}, "\uD480\uC774 \uC5C6\uC74C"))), React__default.createElement("div", {
|
10439
10888
|
className: styles["custom-col-2"],
|
10440
10889
|
style: {
|
@@ -10445,12 +10894,12 @@ function MyAnswer(_ref) {
|
|
10445
10894
|
style: {
|
10446
10895
|
margin: 0
|
10447
10896
|
},
|
10448
|
-
className: styles$
|
10897
|
+
className: styles$4["answer-response"] + " " + styles$4["answer-response-" + question.answerResponseSignal]
|
10449
10898
|
}, formatTimeSecond(Math.round(question.duration), t)) : React__default.createElement("p", {
|
10450
10899
|
style: {
|
10451
10900
|
margin: 0
|
10452
10901
|
},
|
10453
|
-
className: styles$
|
10902
|
+
className: styles$4["answerNoTime"]
|
10454
10903
|
}, "\uC2DC\uAC04 \uC5C6\uC74C")), React__default.createElement("div", {
|
10455
10904
|
className: styles["custom-col-2"],
|
10456
10905
|
style: {
|
@@ -10461,13 +10910,13 @@ function MyAnswer(_ref) {
|
|
10461
10910
|
style: {
|
10462
10911
|
margin: 0
|
10463
10912
|
},
|
10464
|
-
className: styles$
|
10913
|
+
className: styles$4["answer-response"] + " " + styles$4["answer-response-" + question.answerResponseSignal]
|
10465
10914
|
}, formatTimeSecond(Math.round(question.topDuration - question.duration), t)) : React__default.createElement("p", {
|
10466
10915
|
style: {
|
10467
10916
|
margin: 0,
|
10468
10917
|
textAlign: "center"
|
10469
10918
|
},
|
10470
|
-
className: styles$
|
10919
|
+
className: styles$4["answerNoTime"]
|
10471
10920
|
}, "-")), React__default.createElement("div", {
|
10472
10921
|
className: styles["custom-col-2"],
|
10473
10922
|
style: {
|
@@ -10478,12 +10927,12 @@ function MyAnswer(_ref) {
|
|
10478
10927
|
style: {
|
10479
10928
|
margin: 0
|
10480
10929
|
},
|
10481
|
-
className: styles$
|
10482
|
-
}, question.overallCorrectRate + "%") : React__default.createElement("p", {
|
10930
|
+
className: styles$4["answer-response"] + " " + styles$4["answer-response-" + question.answerResponseSignal]
|
10931
|
+
}, question.overallCorrectRate.toFixed(2) + "%") : React__default.createElement("p", {
|
10483
10932
|
style: {
|
10484
10933
|
margin: 0
|
10485
10934
|
},
|
10486
|
-
className: styles$
|
10935
|
+
className: styles$4["answerNoTime"]
|
10487
10936
|
}, "\uC2DC\uAC04 \uC5C6\uC74C")), isStudent && React__default.createElement("div", {
|
10488
10937
|
className: styles["custom-col-2"],
|
10489
10938
|
style: {
|
@@ -10554,11 +11003,11 @@ var iconBtnNextChart = function iconBtnNextChart(_ref) {
|
|
10554
11003
|
function CompareGrass(_ref) {
|
10555
11004
|
var effectSize = _ref.effectSize;
|
10556
11005
|
return React__default.createElement("div", {
|
10557
|
-
className: styles$
|
11006
|
+
className: styles$4["compareGrass"]
|
10558
11007
|
}, React__default.createElement("div", {
|
10559
|
-
className: styles$
|
11008
|
+
className: styles$4["tableCompareGrass"]
|
10560
11009
|
}, React__default.createElement("div", {
|
10561
|
-
className: styles$
|
11010
|
+
className: styles$4["table-responsive"]
|
10562
11011
|
}, React__default.createElement(material.Table, {
|
10563
11012
|
style: {
|
10564
11013
|
width: "100%"
|
@@ -10568,7 +11017,7 @@ function CompareGrass(_ref) {
|
|
10568
11017
|
borderBottom: "1px solid #E4E7EC"
|
10569
11018
|
}
|
10570
11019
|
}, React__default.createElement("tr", null, React__default.createElement("th", {
|
10571
|
-
className: styles$
|
11020
|
+
className: styles$4["thcolumn1"]
|
10572
11021
|
}, "\uBB38\uC81C \uBC88\uD638"), React__default.createElement("th", {
|
10573
11022
|
style: {
|
10574
11023
|
textAlign: "center"
|
@@ -10592,14 +11041,14 @@ function CompareGrass(_ref) {
|
|
10592
11041
|
borderBottom: "1px solid #e4e7ec"
|
10593
11042
|
} : {}
|
10594
11043
|
}, React__default.createElement("td", {
|
10595
|
-
className: styles$
|
11044
|
+
className: styles$4["tdcolumn1"]
|
10596
11045
|
}, "\uBB38\uC81C ", item.questionOrder + 1), React__default.createElement("td", {
|
10597
11046
|
style: {
|
10598
11047
|
textAlign: "center",
|
10599
11048
|
color: "#202B37"
|
10600
11049
|
}
|
10601
11050
|
}, item.correctAnswers, "\uBC88"), React__default.createElement("td", {
|
10602
|
-
className: styles$
|
11051
|
+
className: styles$4["tdcolumn3"],
|
10603
11052
|
style: {
|
10604
11053
|
color: item.isCorrect ? "#1EE288" : "#F34B4B"
|
10605
11054
|
}
|
@@ -10609,7 +11058,7 @@ function CompareGrass(_ref) {
|
|
10609
11058
|
color: "#414E62"
|
10610
11059
|
}
|
10611
11060
|
}, item.mostSelectedAnswers ? item.mostSelectedAnswers + "\uBC88" : ""), React__default.createElement("td", null, React__default.createElement("div", {
|
10612
|
-
className: styles$
|
11061
|
+
className: styles$4["classification"]
|
10613
11062
|
}, item.problemCategories.map(function (problem, index) {
|
10614
11063
|
return React__default.createElement("div", {
|
10615
11064
|
key: index
|
@@ -10736,9 +11185,9 @@ function TrickyProblem(_ref) {
|
|
10736
11185
|
return i.isStar && i.isCorrect;
|
10737
11186
|
});
|
10738
11187
|
return React__default.createElement("div", {
|
10739
|
-
className: styles$
|
11188
|
+
className: styles$4["wrapperProblem"]
|
10740
11189
|
}, React__default.createElement("div", {
|
10741
|
-
className: !openProblem.problem1 ? styles$
|
11190
|
+
className: !openProblem.problem1 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10742
11191
|
onClick: function onClick() {
|
10743
11192
|
return changeOpen(_extends({}, openProblem, {
|
10744
11193
|
problem1: !openProblem.problem1
|
@@ -10751,27 +11200,27 @@ function TrickyProblem(_ref) {
|
|
10751
11200
|
fontWeight: 700
|
10752
11201
|
}
|
10753
11202
|
}, "\uAE4C\uB2E4\uB85C\uC6E0\uB358 \uBB38\uC81C"), openProblem.problem1 ? React__default.createElement(iconUpArrow, null) : React__default.createElement(iconDownArrow, null)), openProblem.problem1 && React__default.createElement(React.Fragment, null, React__default.createElement("div", {
|
10754
|
-
className: styles$
|
11203
|
+
className: styles$4["titleTrickyProblem"]
|
10755
11204
|
}, React__default.createElement(iconX, null), React__default.createElement("span", null, "\uBCC4\uD45C \uCE5C \uBB38\uC81C \uC911 \uD2C0\uB9B0 \uBB38\uC81C")), React__default.createElement("div", {
|
10756
|
-
className: styles$
|
11205
|
+
className: styles$4["wrongQuestions"]
|
10757
11206
|
}, !!inCorrectQuestions.length && inCorrectQuestions.map(function (question) {
|
10758
11207
|
return React__default.createElement("span", {
|
10759
11208
|
key: question.id,
|
10760
|
-
className: styles$
|
11209
|
+
className: styles$4["question"]
|
10761
11210
|
}, question.questionOrder + 1, "\uBC88");
|
10762
11211
|
}), !data.questions.length && React__default.createElement("div", {
|
10763
|
-
className: styles$
|
11212
|
+
className: styles$4["noData"]
|
10764
11213
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C")), React__default.createElement("div", {
|
10765
|
-
className: styles$
|
11214
|
+
className: styles$4["titleTrickyProblem"]
|
10766
11215
|
}, React__default.createElement(iconAssignedQuestions, null), React__default.createElement("span", null, "\uBCC4\uD45C \uCE5C \uBB38\uC81C \uC911 \uB9DE\uCD98 \uBB38\uC81C")), React__default.createElement("div", {
|
10767
|
-
className: styles$
|
11216
|
+
className: styles$4["assignedQuestions"]
|
10768
11217
|
}, !!correctQuestions.length && correctQuestions.map(function (question) {
|
10769
11218
|
return React__default.createElement("div", {
|
10770
11219
|
key: question.id,
|
10771
|
-
className: styles$
|
11220
|
+
className: styles$4["question"]
|
10772
11221
|
}, question.questionOrder + 1, "\uBC88");
|
10773
11222
|
}), !data.questions.length && React__default.createElement("div", {
|
10774
|
-
className: styles$
|
11223
|
+
className: styles$4["noData"]
|
10775
11224
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
|
10776
11225
|
}
|
10777
11226
|
|
@@ -10782,9 +11231,9 @@ function ProtractedProblem(_ref) {
|
|
10782
11231
|
var _useTranslation = reactI18next.useTranslation(),
|
10783
11232
|
t = _useTranslation.t;
|
10784
11233
|
return React__default.createElement("div", {
|
10785
|
-
className: styles$
|
11234
|
+
className: styles$4["wrapperProblem"]
|
10786
11235
|
}, React__default.createElement("div", {
|
10787
|
-
className: !openProblem.problem2 ? styles$
|
11236
|
+
className: !openProblem.problem2 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10788
11237
|
onClick: function onClick() {
|
10789
11238
|
return changeOpen(_extends({}, openProblem, {
|
10790
11239
|
problem2: !openProblem.problem2
|
@@ -10797,30 +11246,30 @@ function ProtractedProblem(_ref) {
|
|
10797
11246
|
fontWeight: 700
|
10798
11247
|
}
|
10799
11248
|
}, "\uC2DC\uAC04\uC774 \uC624\uB798 \uAC78\uB9B0 \uBB38\uC81C"), openProblem.problem2 ? React__default.createElement(iconUpArrow, null) : React__default.createElement(iconDownArrow, null)), openProblem.problem2 && React__default.createElement(React.Fragment, null, React__default.createElement("div", {
|
10800
|
-
className: styles$
|
11249
|
+
className: styles$4["wrapperContent"]
|
10801
11250
|
}, data.length ? data.map(function (item) {
|
10802
11251
|
return React__default.createElement("div", {
|
10803
|
-
className: styles$
|
11252
|
+
className: styles$4["content"],
|
10804
11253
|
key: item.id
|
10805
11254
|
}, React__default.createElement("div", {
|
10806
|
-
className: styles$
|
11255
|
+
className: styles$4["contentColumn1"]
|
10807
11256
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10808
|
-
className: styles$
|
11257
|
+
className: styles$4["span1"]
|
10809
11258
|
}, "\uBB38\uC81C"), React__default.createElement("span", {
|
10810
|
-
className: styles$
|
11259
|
+
className: styles$4["span2"]
|
10811
11260
|
}, item.questionOrder + 1, "\uBC88"))), React__default.createElement("div", {
|
10812
|
-
className: styles$
|
11261
|
+
className: styles$4["contentColumn2"]
|
10813
11262
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10814
|
-
className: styles$
|
11263
|
+
className: styles$4["span1"]
|
10815
11264
|
}, "\uB098\uC758 \uC2DC\uAC04"), React__default.createElement("span", {
|
10816
|
-
className: styles$
|
11265
|
+
className: styles$4["span2"]
|
10817
11266
|
}, "\uC0C1\uC704\uAD8C \uC2DC\uAC04")), React__default.createElement("div", null, React__default.createElement("span", {
|
10818
|
-
className: styles$
|
11267
|
+
className: styles$4["duration"]
|
10819
11268
|
}, formatTimeSecond(item.duration, t)), React__default.createElement("span", {
|
10820
|
-
className: styles$
|
11269
|
+
className: styles$4["topDuration"]
|
10821
11270
|
}, formatTimeSecond(item.topDuration, t)))));
|
10822
11271
|
}) : React__default.createElement("div", {
|
10823
|
-
className: styles$
|
11272
|
+
className: styles$4["noData"]
|
10824
11273
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
|
10825
11274
|
}
|
10826
11275
|
|
@@ -10834,9 +11283,9 @@ function Vulnerable(_ref) {
|
|
10834
11283
|
return q2.overallCorrectRate === q1.overallCorrectRate ? q1.questionOrder - q2.questionOrder : q2.overallCorrectRate - q1.overallCorrectRate;
|
10835
11284
|
});
|
10836
11285
|
return React__default.createElement("div", {
|
10837
|
-
className: styles$
|
11286
|
+
className: styles$4["wrapperProblem"]
|
10838
11287
|
}, React__default.createElement("div", {
|
10839
|
-
className: !openProblem.problem3 ? styles$
|
11288
|
+
className: !openProblem.problem3 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10840
11289
|
onClick: function onClick() {
|
10841
11290
|
return changeOpen(_extends({}, openProblem, {
|
10842
11291
|
problem3: !openProblem.problem3
|
@@ -10849,30 +11298,30 @@ function Vulnerable(_ref) {
|
|
10849
11298
|
fontWeight: 700
|
10850
11299
|
}
|
10851
11300
|
}, "\uB0B4\uAC00 \uCDE8\uC57D\uD55C \uBB38\uC81C"), openProblem.problem3 ? React__default.createElement(iconUpArrow, null) : React__default.createElement(iconDownArrow, null)), openProblem.problem3 && React__default.createElement(React.Fragment, null, React__default.createElement("div", {
|
10852
|
-
className: styles$
|
11301
|
+
className: styles$4["wrapperContent"]
|
10853
11302
|
}, incorrectQuestions.length ? React__default.createElement(React.Fragment, null, incorrectQuestions.map(function (question) {
|
10854
11303
|
return React__default.createElement("div", {
|
10855
|
-
className: styles$
|
11304
|
+
className: styles$4["content"],
|
10856
11305
|
key: question.id
|
10857
11306
|
}, React__default.createElement("div", {
|
10858
|
-
className: styles$
|
11307
|
+
className: styles$4["contentColumn1"]
|
10859
11308
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10860
|
-
className: styles$
|
11309
|
+
className: styles$4["span1"]
|
10861
11310
|
}, "\uBB38\uC81C"), React__default.createElement("span", {
|
10862
|
-
className: styles$
|
11311
|
+
className: styles$4["span2"]
|
10863
11312
|
}, question.questionOrder + 1, "\uBC88"))), React__default.createElement("div", {
|
10864
|
-
className: styles$
|
11313
|
+
className: styles$4["contentColumn2"]
|
10865
11314
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10866
|
-
className: styles$
|
11315
|
+
className: styles$4["span1"]
|
10867
11316
|
}, "\uC804\uCCB4 \uC815\uB2F5\uB960"), React__default.createElement("span", {
|
10868
|
-
className: styles$
|
11317
|
+
className: styles$4["span2"]
|
10869
11318
|
}, "\uB098\uC758 \uC624\uB2F5")), React__default.createElement("div", null, React__default.createElement("span", {
|
10870
|
-
className: styles$
|
11319
|
+
className: styles$4["overallCorrectRate"]
|
10871
11320
|
}, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
|
10872
|
-
className: styles$
|
11321
|
+
className: styles$4["answer"]
|
10873
11322
|
}, question.selectedAnswers, "\uBC88 (\uC815\uB2F5", " ", question.correctAnswers, "\uBC88)"))));
|
10874
11323
|
})) : React__default.createElement("div", {
|
10875
|
-
className: styles$
|
11324
|
+
className: styles$4["noData"]
|
10876
11325
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
|
10877
11326
|
}
|
10878
11327
|
|
@@ -10881,9 +11330,9 @@ function GradesByTerritory(_ref) {
|
|
10881
11330
|
openProblem = _ref.openProblem,
|
10882
11331
|
changeOpen = _ref.changeOpen;
|
10883
11332
|
return React__default.createElement("div", {
|
10884
|
-
className: styles$
|
11333
|
+
className: styles$4["wrapperProblem"]
|
10885
11334
|
}, React__default.createElement("div", {
|
10886
|
-
className: !openProblem.problem4 ? styles$
|
11335
|
+
className: !openProblem.problem4 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10887
11336
|
onClick: function onClick() {
|
10888
11337
|
return changeOpen(_extends({}, openProblem, {
|
10889
11338
|
problem4: !openProblem.problem4
|
@@ -10896,27 +11345,27 @@ function GradesByTerritory(_ref) {
|
|
10896
11345
|
fontWeight: 700
|
10897
11346
|
}
|
10898
11347
|
}, "\uC601\uC5ED\uBCC4 \uC131\uC801"), openProblem.problem4 ? React__default.createElement(iconUpArrow, null) : React__default.createElement(iconDownArrow, null)), openProblem.problem4 && React__default.createElement("div", {
|
10899
|
-
className: styles$
|
11348
|
+
className: styles$4["wrappContentProblem"]
|
10900
11349
|
}, data.length && data.map(function (item) {
|
10901
11350
|
return React__default.createElement("div", {
|
10902
|
-
className: styles$
|
11351
|
+
className: styles$4["contentProblem"],
|
10903
11352
|
key: item.id
|
10904
11353
|
}, React__default.createElement("div", {
|
10905
|
-
className: styles$
|
11354
|
+
className: styles$4["labelProblem"]
|
10906
11355
|
}, React__default.createElement("span", {
|
10907
|
-
className: styles$
|
11356
|
+
className: styles$4["name"]
|
10908
11357
|
}, item.name), React__default.createElement("div", {
|
10909
|
-
className: styles$
|
11358
|
+
className: styles$4["percent"]
|
10910
11359
|
}, React__default.createElement("span", null, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("span", null, item.totalCorrectQuestions, "/", item.totalQuestions, "\uBB38\uC81C"))), React__default.createElement("div", {
|
10911
|
-
className: styles$
|
11360
|
+
className: styles$4["slider"]
|
10912
11361
|
}, React__default.createElement("span", {
|
10913
|
-
className: styles$
|
11362
|
+
className: styles$4["track"],
|
10914
11363
|
style: {
|
10915
11364
|
left: item.percentageAmongStudents + "%"
|
10916
11365
|
}
|
10917
11366
|
})));
|
10918
11367
|
}), openProblem.problem4 && !data.length && React__default.createElement("div", {
|
10919
|
-
className: styles$
|
11368
|
+
className: styles$4["noData"]
|
10920
11369
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C")));
|
10921
11370
|
}
|
10922
11371
|
|
@@ -11009,7 +11458,7 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
11009
11458
|
var errors = _ref2.errors;
|
11010
11459
|
return React__default.createElement(formik.Form, null, React__default.createElement("label", {
|
11011
11460
|
htmlFor: "content-question",
|
11012
|
-
className: styles['form-label'] + " " + styles$
|
11461
|
+
className: styles['form-label'] + " " + styles$4['form-label-dialog']
|
11013
11462
|
}, "\uC9C8\uBB38 \uB0B4\uC6A9"), React__default.createElement(material.Box, {
|
11014
11463
|
position: 'relative',
|
11015
11464
|
display: 'flex',
|
@@ -11044,14 +11493,14 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
11044
11493
|
padding: '12px'
|
11045
11494
|
}
|
11046
11495
|
}, React__default.createElement(Button, {
|
11047
|
-
className: styles$
|
11496
|
+
className: styles$4['btn-cancel'],
|
11048
11497
|
onClick: toggleCreateQuestion
|
11049
11498
|
}, React__default.createElement(Typography, {
|
11050
11499
|
fontWeight: 700,
|
11051
11500
|
fontSize: '14px',
|
11052
11501
|
lineHeight: '16.71px'
|
11053
11502
|
}, "\uCDE8\uC18C")), React__default.createElement(Button, {
|
11054
|
-
className: styles$
|
11503
|
+
className: styles$4['btn-register'],
|
11055
11504
|
type: "submit"
|
11056
11505
|
}, React__default.createElement(Typography, {
|
11057
11506
|
fontWeight: 700,
|
@@ -11062,12 +11511,12 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
11062
11511
|
})));
|
11063
11512
|
}
|
11064
11513
|
|
11065
|
-
var _excluded$
|
11514
|
+
var _excluded$7 = ["children", "value", "index"];
|
11066
11515
|
var CustomTabPanel = function CustomTabPanel(props) {
|
11067
11516
|
var children = props.children,
|
11068
11517
|
value = props.value,
|
11069
11518
|
index = props.index,
|
11070
|
-
other = _objectWithoutPropertiesLoose(props, _excluded$
|
11519
|
+
other = _objectWithoutPropertiesLoose(props, _excluded$7);
|
11071
11520
|
return React__default.createElement("div", Object.assign({
|
11072
11521
|
role: "tabpanel",
|
11073
11522
|
hidden: value !== index,
|
@@ -11255,9 +11704,9 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11255
11704
|
alignItems: "end",
|
11256
11705
|
bgcolor: "#F9FAFB"
|
11257
11706
|
}, React__default.createElement("div", {
|
11258
|
-
className: styles$
|
11707
|
+
className: styles$4["pdfBtnBox"]
|
11259
11708
|
}, React__default.createElement("button", {
|
11260
|
-
className: styles$
|
11709
|
+
className: styles$4["pdfBtn"] + " " + styles["truncate"],
|
11261
11710
|
onClick: handleExportPdf
|
11262
11711
|
}, React__default.createElement(iconPrintFill, null), React__default.createElement("p", null, t("print"))))))), React__default.createElement(material.Grid, {
|
11263
11712
|
item: true,
|
@@ -11297,9 +11746,9 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11297
11746
|
alignItems: "end",
|
11298
11747
|
bgcolor: "#F9FAFB"
|
11299
11748
|
}, React__default.createElement("div", {
|
11300
|
-
className: styles$
|
11749
|
+
className: styles$4["pdfBtnBox"]
|
11301
11750
|
}, React__default.createElement("button", {
|
11302
|
-
className: styles$
|
11751
|
+
className: styles$4["pdfBtn"] + " " + styles["truncate"],
|
11303
11752
|
onClick: handleExportPdf
|
11304
11753
|
}, React__default.createElement(iconPrintFill, null), React__default.createElement("p", null, t("print"))))))), React__default.createElement(material.Grid, {
|
11305
11754
|
item: true,
|
@@ -11315,18 +11764,18 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11315
11764
|
value: selected,
|
11316
11765
|
index: 1
|
11317
11766
|
}, React__default.createElement("div", {
|
11318
|
-
className: styles$
|
11767
|
+
className: styles$4["compareChart"]
|
11319
11768
|
}, React__default.createElement("div", {
|
11320
|
-
className: styles$
|
11769
|
+
className: styles$4["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
|
11321
11770
|
onClick: handlePrevChart
|
11322
11771
|
}, React__default.createElement(iconBtnPrevChart, null)), React__default.createElement("div", {
|
11323
|
-
className: styles$
|
11772
|
+
className: styles$4["chart"] + " sr-line-chart"
|
11324
11773
|
}, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
|
11325
11774
|
height: 389,
|
11326
11775
|
options: chartOptions,
|
11327
11776
|
series: series
|
11328
11777
|
}))), React__default.createElement("div", {
|
11329
|
-
className: styles$
|
11778
|
+
className: styles$4["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
|
11330
11779
|
onClick: handleNextChart
|
11331
11780
|
}, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(CustomTabPanel, {
|
11332
11781
|
value: selected,
|
@@ -11361,39 +11810,70 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11361
11810
|
width: "100%"
|
11362
11811
|
},
|
11363
11812
|
id: "canvas"
|
11364
|
-
}, React__default.createElement(
|
11365
|
-
|
11366
|
-
|
11367
|
-
|
11813
|
+
}, React__default.createElement(material.Stack, {
|
11814
|
+
display: "flex",
|
11815
|
+
flexDirection: "column",
|
11816
|
+
gap: "12px"
|
11817
|
+
}, React__default.createElement(material.Typography, {
|
11818
|
+
sx: {
|
11819
|
+
fontSize: "16px",
|
11820
|
+
fontWeight: 700,
|
11821
|
+
color: "#414E62"
|
11822
|
+
}
|
11823
|
+
}, t(TabList[0].label)), React__default.createElement(MyAnswer, {
|
11368
11824
|
data: resultDatas,
|
11369
11825
|
categories: categoryResponses,
|
11370
11826
|
isStudent: isStudent
|
11371
|
-
})), React__default.createElement(
|
11372
|
-
|
11373
|
-
|
11374
|
-
|
11375
|
-
|
11827
|
+
})), React__default.createElement(material.Stack, {
|
11828
|
+
display: "flex",
|
11829
|
+
flexDirection: "column",
|
11830
|
+
gap: "12px",
|
11831
|
+
marginTop: "24px"
|
11832
|
+
}, React__default.createElement(material.Typography, {
|
11833
|
+
sx: {
|
11834
|
+
fontSize: "16px",
|
11835
|
+
fontWeight: 700,
|
11836
|
+
color: "#414E62"
|
11837
|
+
}
|
11838
|
+
}, t(TabList[1].label)), React__default.createElement("div", {
|
11839
|
+
className: styles$4["compareChart"]
|
11376
11840
|
}, React__default.createElement("div", {
|
11377
|
-
className: styles$
|
11841
|
+
className: styles$4["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
|
11378
11842
|
onClick: handlePrevChart
|
11379
11843
|
}, React__default.createElement(iconBtnPrevChart, null)), React__default.createElement("div", {
|
11380
|
-
className: styles$
|
11844
|
+
className: styles$4["chart"] + " sr-line-chart"
|
11381
11845
|
}, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
|
11382
11846
|
height: 389,
|
11383
11847
|
options: chartOptions,
|
11384
11848
|
series: series
|
11385
11849
|
}))), React__default.createElement("div", {
|
11386
|
-
className: styles$
|
11850
|
+
className: styles$4["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
|
11387
11851
|
onClick: handleNextChart
|
11388
|
-
}, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(
|
11389
|
-
|
11390
|
-
|
11391
|
-
|
11852
|
+
}, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(material.Stack, {
|
11853
|
+
display: "flex",
|
11854
|
+
flexDirection: "column",
|
11855
|
+
gap: "12px",
|
11856
|
+
marginTop: "24px"
|
11857
|
+
}, React__default.createElement(material.Typography, {
|
11858
|
+
sx: {
|
11859
|
+
fontSize: "16px",
|
11860
|
+
fontWeight: 700,
|
11861
|
+
color: "#414E62"
|
11862
|
+
}
|
11863
|
+
}, t(TabList[2].label)), React__default.createElement(CompareGrass, {
|
11392
11864
|
effectSize: effectSize
|
11393
|
-
})), React__default.createElement(
|
11394
|
-
|
11395
|
-
|
11396
|
-
|
11865
|
+
})), React__default.createElement(material.Stack, {
|
11866
|
+
display: "flex",
|
11867
|
+
flexDirection: "column",
|
11868
|
+
gap: "12px",
|
11869
|
+
marginTop: "24px"
|
11870
|
+
}, React__default.createElement(material.Typography, {
|
11871
|
+
sx: {
|
11872
|
+
fontSize: "16px",
|
11873
|
+
fontWeight: 700,
|
11874
|
+
color: "#414E62"
|
11875
|
+
}
|
11876
|
+
}, t(TabList[3].label)), React__default.createElement(TrickyProblem, {
|
11397
11877
|
data: resultDatas,
|
11398
11878
|
openProblem: _extends({}, openProblem, {
|
11399
11879
|
problem1: true
|