touchstudy-core 0.1.33 → 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 +280 -51
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1868 -1195
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1871 -1199
- package/dist/index.modern.js.map +1 -1
- package/dist/layouts/Header.d.ts +13 -0
- package/dist/layouts/TheAcademyDropdown.d.ts +1 -0
- package/dist/utils/types/tab.d.ts +8 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -39,6 +39,7 @@ var DialogTitle = _interopDefault(require('@mui/material/DialogTitle'));
|
|
39
39
|
var DialogContent = _interopDefault(require('@mui/material/DialogContent'));
|
40
40
|
var DialogActions = _interopDefault(require('@mui/material/DialogActions'));
|
41
41
|
var Typography = _interopDefault(require('@mui/material/Typography'));
|
42
|
+
var reactRouterDom = require('react-router-dom');
|
42
43
|
|
43
44
|
var setLoading = toolkit.createAction("common/setLoading");
|
44
45
|
var setAlert = toolkit.createAction("common/setAlert");
|
@@ -138,7 +139,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
138
139
|
return target;
|
139
140
|
}
|
140
141
|
|
141
|
-
var
|
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"};
|
142
143
|
|
143
144
|
var AuthenticationMessage;
|
144
145
|
(function (AuthenticationMessage) {
|
@@ -464,18 +465,18 @@ var BlockLogin = function BlockLogin(_ref) {
|
|
464
465
|
var handleSubmit = formikProps.handleSubmit;
|
465
466
|
return React__default.createElement(material.Grid, {
|
466
467
|
container: true,
|
467
|
-
className: "" +
|
468
|
+
className: "" + styles["box-login"]
|
468
469
|
}, React__default.createElement(material.Grid, {
|
469
470
|
item: true,
|
470
471
|
className: "p-0 d-flex justify-content-center"
|
471
472
|
}, React__default.createElement("form", {
|
472
|
-
className: "" +
|
473
|
+
className: "" + styles["block-login"],
|
473
474
|
onSubmit: handleSubmit
|
474
475
|
}, React__default.createElement("div", {
|
475
|
-
className: "" +
|
476
|
+
className: "" + styles["block-form"]
|
476
477
|
}, React__default.createElement("img", {
|
477
478
|
src: "/images/logo.jpeg",
|
478
|
-
className: "" +
|
479
|
+
className: "" + styles["img-login-rectangle"]
|
479
480
|
}), React__default.createElement("div", {
|
480
481
|
className: "p-0 mt-1 mb-4"
|
481
482
|
}, React__default.createElement(GoogleLogin__default, {
|
@@ -484,7 +485,7 @@ var BlockLogin = function BlockLogin(_ref) {
|
|
484
485
|
onSuccess: onSuccessGoogle,
|
485
486
|
onFailure: onFailureGoogle,
|
486
487
|
cookiePolicy: "single_host_origin",
|
487
|
-
className: "" +
|
488
|
+
className: "" + styles["btn-login-google"],
|
488
489
|
isSignedIn: true
|
489
490
|
}))))));
|
490
491
|
});
|
@@ -548,7 +549,7 @@ var Login = function Login(_ref) {
|
|
548
549
|
var _useLogin = useLogin$1(onNavigate),
|
549
550
|
defaultInfo = _useLogin.defaultInfo;
|
550
551
|
return React__default.createElement("div", {
|
551
|
-
className:
|
552
|
+
className: styles["login"] + " container-fluid font-family-lato"
|
552
553
|
}, React__default.createElement(material.Grid, {
|
553
554
|
container: true,
|
554
555
|
spacing: 3,
|
@@ -880,6 +881,7 @@ var switchAcademy = function switchAcademy(academyId) {
|
|
880
881
|
};
|
881
882
|
|
882
883
|
var LayoutContext = function LayoutContext(_ref) {
|
884
|
+
var _currentPusher$connec, _currentPusher$connec3;
|
883
885
|
var children = _ref.children,
|
884
886
|
role = _ref.role,
|
885
887
|
_ref$pusherRegisterUr = _ref.pusherRegisterUrls,
|
@@ -904,6 +906,7 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
904
906
|
var _state$common3;
|
905
907
|
return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : _state$common3.concurrentConnectionPusher;
|
906
908
|
});
|
909
|
+
var currentPusher = concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.pusher;
|
907
910
|
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
908
911
|
var academyDomain = user === null || user === void 0 ? void 0 : user.academyDomain;
|
909
912
|
var pathname = window.location.pathname;
|
@@ -970,31 +973,41 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
970
973
|
return Promise.reject(e);
|
971
974
|
}
|
972
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
|
+
});
|
973
981
|
var registerPusher = React.useCallback(function () {
|
974
|
-
if (pusherRegisterUrls.includes(pathname.toLocaleLowerCase())
|
975
|
-
var
|
976
|
-
if (concurrentConnectionPusher.
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
var pusher = new Pusher(PUSHER_CONFIG.key, {
|
981
|
-
cluster: PUSHER_CONFIG.cluster,
|
982
|
-
authEndpoint: BASE_URL + "/api/auth/pusher",
|
983
|
-
auth: {
|
984
|
-
params: {},
|
985
|
-
headers: (_headers = {
|
986
|
-
Authorization: "Bearer " + token
|
987
|
-
}, _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();
|
988
988
|
}
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
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
|
+
}
|
994
1007
|
}
|
995
|
-
if (
|
996
|
-
if (
|
997
|
-
|
1008
|
+
if (!pusherRegisterUrls.includes(pathname.toLocaleLowerCase()) && !!currentPusher) {
|
1009
|
+
if (currentPusher) {
|
1010
|
+
currentPusher.disconnect();
|
998
1011
|
}
|
999
1012
|
dispatch(setConcurrentConnectionPusher({
|
1000
1013
|
pusher: null,
|
@@ -1004,7 +1017,7 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
1004
1017
|
if (!pusherRegisterUrls.includes(pathname.toLocaleLowerCase()) && isReadyRegisterPusher) {
|
1005
1018
|
dispatch(setReadyRegisterPusher(false));
|
1006
1019
|
}
|
1007
|
-
}, [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]);
|
1008
1021
|
React.useEffect(function () {
|
1009
1022
|
!user && loadInfo();
|
1010
1023
|
!!user && checkRoleUser();
|
@@ -1015,8 +1028,8 @@ var LayoutContext = function LayoutContext(_ref) {
|
|
1015
1028
|
React.useEffect(function () {
|
1016
1029
|
registerPusher();
|
1017
1030
|
return function () {
|
1018
|
-
if (
|
1019
|
-
|
1031
|
+
if (currentPusher) {
|
1032
|
+
currentPusher.disconnect();
|
1020
1033
|
}
|
1021
1034
|
};
|
1022
1035
|
}, [registerPusher]);
|
@@ -1304,6 +1317,7 @@ var recent_exam_results = "최근 시험 결과";
|
|
1304
1317
|
var instructor_name = "강사이름";
|
1305
1318
|
var academy_name = "학원 이름";
|
1306
1319
|
var total_students = "총 학생수";
|
1320
|
+
var total_class = "반 수";
|
1307
1321
|
var total_number_students = "총 학생수";
|
1308
1322
|
var student = "학생";
|
1309
1323
|
var students = "재학생";
|
@@ -1320,8 +1334,9 @@ var mins_mins_seconds_seconds = "{{mins}}분 {{seconds}}초";
|
|
1320
1334
|
var mins_mins = "{{mins}}분";
|
1321
1335
|
var class_name = "반 이름";
|
1322
1336
|
var create_new_exam = "새 시험 생성";
|
1337
|
+
var live_exam = "시험 생성";
|
1323
1338
|
var there_are_no_recent_exams = "최근 시험이 없습니다";
|
1324
|
-
var
|
1339
|
+
var you_have_started_an_exam_with_code_code_do_you_want_to_continue = "{{code}} 코드로 시험을 시작했습니다. 계속하시겠습니까?";
|
1325
1340
|
var here = "여기";
|
1326
1341
|
var do_you_want_to_complete_the_exam = "시험을 완료처리 하시겠습니까?";
|
1327
1342
|
var are_you_sure_you_want_to_delete_the_exam = "시험을 삭제하시겠습니까?";
|
@@ -1560,6 +1575,7 @@ var course = "진로";
|
|
1560
1575
|
var etc = "그 외";
|
1561
1576
|
var consultation_category = "상담 카테고리";
|
1562
1577
|
var points = "{{number}} 점";
|
1578
|
+
var noun_number_of_people = "인원 수";
|
1563
1579
|
var number_of_people = "{{ number }} 명";
|
1564
1580
|
var total_classes = "반수";
|
1565
1581
|
var number_of_classes = "{{ number }} 개";
|
@@ -1578,6 +1594,30 @@ var comparison_of_top_rankings_and_problem_solving_order = "상위권과 문제
|
|
1578
1594
|
var my_answers = "내 해답";
|
1579
1595
|
var request_for_consultation = "상담요청";
|
1580
1596
|
var ask_a_question_with_a_problem = "문제로 질문하기";
|
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 = "수업";
|
1581
1621
|
var lang_ko = {
|
1582
1622
|
problem_solving: problem_solving,
|
1583
1623
|
my_story: my_story,
|
@@ -1595,6 +1635,7 @@ var lang_ko = {
|
|
1595
1635
|
instructor_name: instructor_name,
|
1596
1636
|
academy_name: academy_name,
|
1597
1637
|
total_students: total_students,
|
1638
|
+
total_class: total_class,
|
1598
1639
|
total_number_students: total_number_students,
|
1599
1640
|
student: student,
|
1600
1641
|
students: students,
|
@@ -1613,8 +1654,9 @@ var lang_ko = {
|
|
1613
1654
|
mins_mins: mins_mins,
|
1614
1655
|
class_name: class_name,
|
1615
1656
|
create_new_exam: create_new_exam,
|
1657
|
+
live_exam: live_exam,
|
1616
1658
|
there_are_no_recent_exams: there_are_no_recent_exams,
|
1617
|
-
|
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,
|
1618
1660
|
here: here,
|
1619
1661
|
do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam,
|
1620
1662
|
are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam,
|
@@ -1850,6 +1892,7 @@ var lang_ko = {
|
|
1850
1892
|
etc: etc,
|
1851
1893
|
consultation_category: consultation_category,
|
1852
1894
|
points: points,
|
1895
|
+
noun_number_of_people: noun_number_of_people,
|
1853
1896
|
number_of_people: number_of_people,
|
1854
1897
|
total_classes: total_classes,
|
1855
1898
|
number_of_classes: number_of_classes,
|
@@ -1867,7 +1910,21 @@ var lang_ko = {
|
|
1867
1910
|
comparison_of_top_rankings_and_problem_solving_order: comparison_of_top_rankings_and_problem_solving_order,
|
1868
1911
|
my_answers: my_answers,
|
1869
1912
|
request_for_consultation: request_for_consultation,
|
1870
|
-
ask_a_question_with_a_problem: ask_a_question_with_a_problem
|
1913
|
+
ask_a_question_with_a_problem: ask_a_question_with_a_problem,
|
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
|
1871
1928
|
};
|
1872
1929
|
|
1873
1930
|
var problem_solving$1 = "Problem Solving";
|
@@ -1886,6 +1943,7 @@ var recent_exam_results$1 = "Recent exam";
|
|
1886
1943
|
var instructor_name$1 = "Instructor name";
|
1887
1944
|
var academy_name$1 = "Academy name";
|
1888
1945
|
var total_students$1 = "Total students";
|
1946
|
+
var total_class$1 = "Total Class";
|
1889
1947
|
var total_number_students$1 = "Total number of students";
|
1890
1948
|
var students$1 = "Students";
|
1891
1949
|
var student$1 = "Student";
|
@@ -1902,8 +1960,9 @@ var mins_mins_seconds_seconds$1 = "{{mins}}m {{seconds}}s";
|
|
1902
1960
|
var mins_mins$1 = "{{mins}}m";
|
1903
1961
|
var class_name$1 = "Class name";
|
1904
1962
|
var create_new_exam$1 = "Create exam";
|
1963
|
+
var live_exam$1 = "Live exam";
|
1905
1964
|
var there_are_no_recent_exams$1 = "There are no recent exams";
|
1906
|
-
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?";
|
1907
1966
|
var here$1 = "here";
|
1908
1967
|
var do_you_want_to_complete_the_exam$1 = "Do you want to complete the exam?";
|
1909
1968
|
var are_you_sure_you_want_to_delete_the_exam$1 = "Are you sure you want to delete the exam?";
|
@@ -2177,6 +2236,7 @@ var course$1 = "Course";
|
|
2177
2236
|
var etc$1 = "Etc";
|
2178
2237
|
var consultation_category$1 = "Consultation Category";
|
2179
2238
|
var points$1 = "{{number}} points";
|
2239
|
+
var noun_number_of_people$1 = "Number of people";
|
2180
2240
|
var number_of_people$1 = "{{ number }} students";
|
2181
2241
|
var total_classes$1 = "Total classes";
|
2182
2242
|
var number_of_classes$1 = "{{ number }} classes";
|
@@ -2195,6 +2255,30 @@ var comparison_of_top_rankings_and_problem_solving_order$1 = "Comparison of top
|
|
2195
2255
|
var my_answers$1 = "My answers";
|
2196
2256
|
var request_for_consultation$1 = "Request for consultation";
|
2197
2257
|
var ask_a_question_with_a_problem$1 = "Ask a question with a problem";
|
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";
|
2198
2282
|
var lang_en = {
|
2199
2283
|
problem_solving: problem_solving$1,
|
2200
2284
|
my_story: my_story$1,
|
@@ -2212,6 +2296,7 @@ var lang_en = {
|
|
2212
2296
|
instructor_name: instructor_name$1,
|
2213
2297
|
academy_name: academy_name$1,
|
2214
2298
|
total_students: total_students$1,
|
2299
|
+
total_class: total_class$1,
|
2215
2300
|
total_number_students: total_number_students$1,
|
2216
2301
|
students: students$1,
|
2217
2302
|
student: student$1,
|
@@ -2230,8 +2315,9 @@ var lang_en = {
|
|
2230
2315
|
mins_mins: mins_mins$1,
|
2231
2316
|
class_name: class_name$1,
|
2232
2317
|
create_new_exam: create_new_exam$1,
|
2318
|
+
live_exam: live_exam$1,
|
2233
2319
|
there_are_no_recent_exams: there_are_no_recent_exams$1,
|
2234
|
-
|
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,
|
2235
2321
|
here: here$1,
|
2236
2322
|
do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam$1,
|
2237
2323
|
are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam$1,
|
@@ -2502,6 +2588,7 @@ var lang_en = {
|
|
2502
2588
|
etc: etc$1,
|
2503
2589
|
consultation_category: consultation_category$1,
|
2504
2590
|
points: points$1,
|
2591
|
+
noun_number_of_people: noun_number_of_people$1,
|
2505
2592
|
number_of_people: number_of_people$1,
|
2506
2593
|
total_classes: total_classes$1,
|
2507
2594
|
number_of_classes: number_of_classes$1,
|
@@ -2519,7 +2606,21 @@ var lang_en = {
|
|
2519
2606
|
comparison_of_top_rankings_and_problem_solving_order: comparison_of_top_rankings_and_problem_solving_order$1,
|
2520
2607
|
my_answers: my_answers$1,
|
2521
2608
|
request_for_consultation: request_for_consultation$1,
|
2522
|
-
ask_a_question_with_a_problem: ask_a_question_with_a_problem$1
|
2609
|
+
ask_a_question_with_a_problem: ask_a_question_with_a_problem$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
|
2523
2624
|
};
|
2524
2625
|
|
2525
2626
|
i18n.use(reactI18next.initReactI18next).init({
|
@@ -2800,7 +2901,8 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
2800
2901
|
var role = _ref.role,
|
2801
2902
|
navigate = _ref.navigate,
|
2802
2903
|
homeAcademyUrl = _ref.homeAcademyUrl,
|
2803
|
-
homeUrl = _ref.homeUrl
|
2904
|
+
homeUrl = _ref.homeUrl,
|
2905
|
+
hideAcademyName = _ref.hideAcademyName;
|
2804
2906
|
var _useSwitchAcademy = useSwitchAcademy(role, navigate, homeAcademyUrl, homeUrl),
|
2805
2907
|
academyList = _useSwitchAcademy.academyList,
|
2806
2908
|
handleSwitchAcademy = _useSwitchAcademy.handleSwitchAcademy,
|
@@ -2834,15 +2936,15 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
2834
2936
|
};
|
2835
2937
|
return React__default.createElement(React.Fragment, null, React__default.createElement(material.Button, {
|
2836
2938
|
onClick: handleOpen,
|
2837
|
-
className: "" +
|
2939
|
+
className: "" + styles["academy-btn"],
|
2838
2940
|
sx: _extends({}, popoverStyle)
|
2839
2941
|
}, React__default.createElement("div", {
|
2840
|
-
className: "" +
|
2942
|
+
className: styles["image-academy"] + " me-0 me-lg-2"
|
2841
2943
|
}, selectedAcademy !== null && selectedAcademy !== void 0 && selectedAcademy.image ? React__default.createElement("img", {
|
2842
2944
|
src: selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.image,
|
2843
2945
|
alt: selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.name
|
2844
|
-
}) : React__default.createElement("span", null, firstLetter)), React__default.createElement(material.Typography, {
|
2845
|
-
className: "text-start",
|
2946
|
+
}) : React__default.createElement("span", null, firstLetter)), !hideAcademyName && React__default.createElement(material.Typography, {
|
2947
|
+
className: "text-start d-none d-lg-block",
|
2846
2948
|
sx: {
|
2847
2949
|
fontSize: 14,
|
2848
2950
|
fontWeight: 600,
|
@@ -2850,7 +2952,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
2850
2952
|
minWidth: 150
|
2851
2953
|
}
|
2852
2954
|
}, (selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.name) || t(role === exports.Role.Admin ? "switch_academy_admin" : "switch_academy")), React__default.createElement("div", {
|
2853
|
-
className: "" +
|
2955
|
+
className: styles["switch-icon"] + " d-none d-lg-flex"
|
2854
2956
|
}, React__default.createElement(go.GoArrowSwitch, {
|
2855
2957
|
size: 14
|
2856
2958
|
}))), (isSuperAdmin || !isAdmin) && React__default.createElement(Popover, {
|
@@ -2871,7 +2973,10 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
2871
2973
|
p: 0.5,
|
2872
2974
|
mt: 1,
|
2873
2975
|
ml: 0.75,
|
2874
|
-
width:
|
2976
|
+
width: {
|
2977
|
+
xs: 200,
|
2978
|
+
lg: 300
|
2979
|
+
},
|
2875
2980
|
minWidth: "unset!important"
|
2876
2981
|
}
|
2877
2982
|
}
|
@@ -2892,7 +2997,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
2892
2997
|
fontWeight: 600
|
2893
2998
|
}
|
2894
2999
|
}, React__default.createElement("div", {
|
2895
|
-
className: "" +
|
3000
|
+
className: styles["image-academy"] + " " + styles["image-academy--item"]
|
2896
3001
|
}, option.image ? React__default.createElement(Box, {
|
2897
3002
|
component: "img",
|
2898
3003
|
alt: option.name,
|
@@ -3002,7 +3107,7 @@ var CustomSelect = function CustomSelect(_ref) {
|
|
3002
3107
|
}, rest));
|
3003
3108
|
};
|
3004
3109
|
|
3005
|
-
var styles = {"header__avatar":"_2oGcJ","header__select":"_2y2XV","body":"_ntGyI","list":"_m7Fwt","list__item__header":"_3BM8N","list__item__avatar":"_1ReOK","list__item__avatar-container":"_2qbld","list__item__message":"_3s01i","list__item__message--reply-from":"_2Qxi3","list__item__message--reply-from-right":"_34Vx4","list__item__message--reply":"_3uheq","list__item__message--reply-right":"_2iBr7","reply-text":"_3ZPjO","container-custom":"_38A9k","student-row-col-1":"_Jt5t0","student-row-col-1-active":"_14DKj","row-col-2":"_qHGiR","inputBox":"_2iY67","inputBoxTable":"_3pCw0","background-chat":"_zILbw","wrap-content":"_38gsM","name-sender":"_Lfzyw","content-chat-sender":"_1X73E","content-chat-receiver":"_32V7T","custom-scroll":"_2Uul2","btn-send":"_395lb","btn-chat":"_gDYwm","input-chat":"_22TX5","btn-cancel":"_1u-eg","btn-register":"_22r6_","form-label-dialog":"_jADIA","form-select-width":"_WncPd","padding-content":"_3hz3H","form-label":"_MMQxP","form-control":"_1mJfc"};
|
3110
|
+
var styles$1 = {"header__avatar":"_2oGcJ","header__select":"_2y2XV","body":"_ntGyI","list":"_m7Fwt","list__item__header":"_3BM8N","list__item__avatar":"_1ReOK","list__item__avatar-container":"_2qbld","list__item__message":"_3s01i","list__item__message--reply-from":"_2Qxi3","list__item__message--reply-from-right":"_34Vx4","list__item__message--reply":"_3uheq","list__item__message--reply-right":"_2iBr7","reply-text":"_3ZPjO","container-custom":"_38A9k","student-row-col-1":"_Jt5t0","student-row-col-1-active":"_14DKj","row-col-2":"_qHGiR","inputBox":"_2iY67","inputBoxTable":"_3pCw0","background-chat":"_zILbw","wrap-content":"_38gsM","name-sender":"_Lfzyw","content-chat-sender":"_1X73E","content-chat-receiver":"_32V7T","custom-scroll":"_2Uul2","btn-send":"_395lb","btn-chat":"_gDYwm","input-chat":"_22TX5","btn-cancel":"_1u-eg","btn-register":"_22r6_","form-label-dialog":"_jADIA","form-select-width":"_WncPd","padding-content":"_3hz3H","form-label":"_MMQxP","form-control":"_1mJfc"};
|
3006
3111
|
|
3007
3112
|
var iconPersonNoActive = function iconPersonNoActive(_ref) {
|
3008
3113
|
var _ref$width = _ref.width,
|
@@ -3148,7 +3253,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
3148
3253
|
padding: "4px 0"
|
3149
3254
|
}, React__default.createElement(material.Box, null, showName && isStudent && React__default.createElement(material.Box, {
|
3150
3255
|
gap: "8px",
|
3151
|
-
className: " " + styles["name-sender"],
|
3256
|
+
className: " " + styles$1["name-sender"],
|
3152
3257
|
display: "flex",
|
3153
3258
|
alignItems: "center",
|
3154
3259
|
flexDirection: "row"
|
@@ -3203,7 +3308,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
3203
3308
|
objectFit: "contain"
|
3204
3309
|
}
|
3205
3310
|
})) : React__default.createElement("div", {
|
3206
|
-
className: styles["wrap-content"] + " " + styles["content-chat-receiver"],
|
3311
|
+
className: styles$1["wrap-content"] + " " + styles$1["content-chat-receiver"],
|
3207
3312
|
style: {
|
3208
3313
|
"float": "inline-end"
|
3209
3314
|
}
|
@@ -3241,7 +3346,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
3241
3346
|
display: "flex",
|
3242
3347
|
padding: "4px",
|
3243
3348
|
flexDirection: "row",
|
3244
|
-
className: "" + styles["name-sender"]
|
3349
|
+
className: "" + styles$1["name-sender"]
|
3245
3350
|
}, isStudent ? React__default.createElement(React.Fragment, null, React__default.createElement(material.Typography, {
|
3246
3351
|
fontWeight: 500,
|
3247
3352
|
fontSize: 14,
|
@@ -3281,7 +3386,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
3281
3386
|
objectFit: "contain"
|
3282
3387
|
}
|
3283
3388
|
})) : React__default.createElement("div", {
|
3284
|
-
className: styles["wrap-content"] + " " + styles["content-chat-sender"]
|
3389
|
+
className: styles$1["wrap-content"] + " " + styles$1["content-chat-sender"]
|
3285
3390
|
}, React__default.createElement(material.Typography, {
|
3286
3391
|
fontWeight: 500,
|
3287
3392
|
fontSize: "14px",
|
@@ -3494,7 +3599,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
3494
3599
|
_objectDestructuringEmpty(_ref2);
|
3495
3600
|
return React__default.createElement(formik.Form, null, React__default.createElement("label", {
|
3496
3601
|
htmlFor: "content",
|
3497
|
-
className: styles['form-label'] + " " + styles['form-label-dialog']
|
3602
|
+
className: styles$1['form-label'] + " " + styles$1['form-label-dialog']
|
3498
3603
|
}, "\uC9C8\uBB38\uD560 \uBB38\uC81C"), React__default.createElement(formik.Field, {
|
3499
3604
|
id: "content",
|
3500
3605
|
style: {
|
@@ -3503,7 +3608,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
3503
3608
|
name: "content",
|
3504
3609
|
validate: validate,
|
3505
3610
|
placeholder: "\uBB38\uC81C\uAC00 \uC5B4\uB824\uC6CC\uC694",
|
3506
|
-
className: styles['form-control']
|
3611
|
+
className: styles$1['form-control']
|
3507
3612
|
}), React__default.createElement(material.DialogActions, {
|
3508
3613
|
sx: {
|
3509
3614
|
display: 'flex',
|
@@ -3512,14 +3617,14 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
3512
3617
|
padding: '12px'
|
3513
3618
|
}
|
3514
3619
|
}, React__default.createElement(material.Button, {
|
3515
|
-
className: styles['btn-cancel'],
|
3620
|
+
className: styles$1['btn-cancel'],
|
3516
3621
|
onClick: onClose
|
3517
3622
|
}, React__default.createElement(material.Typography, {
|
3518
3623
|
fontWeight: 700,
|
3519
3624
|
fontSize: '14px',
|
3520
3625
|
lineHeight: '16.71px'
|
3521
3626
|
}, "\uCDE8\uC18C")), React__default.createElement(material.Button, {
|
3522
|
-
className: styles['btn-register'],
|
3627
|
+
className: styles$1['btn-register'],
|
3523
3628
|
type: "submit"
|
3524
3629
|
}, React__default.createElement(material.Typography, {
|
3525
3630
|
fontWeight: 700,
|
@@ -3568,14 +3673,14 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
3568
3673
|
padding: '12px'
|
3569
3674
|
}
|
3570
3675
|
}, React__default.createElement(material.Button, {
|
3571
|
-
className: styles['btn-cancel'],
|
3676
|
+
className: styles$1['btn-cancel'],
|
3572
3677
|
onClick: onClose
|
3573
3678
|
}, React__default.createElement(material.Typography, {
|
3574
3679
|
fontWeight: 700,
|
3575
3680
|
fontSize: '14px',
|
3576
3681
|
lineHeight: '16.71px'
|
3577
3682
|
}, "\uCDE8\uC18C")), React__default.createElement(material.Button, {
|
3578
|
-
className: styles['btn-register'],
|
3683
|
+
className: styles$1['btn-register'],
|
3579
3684
|
sx: {
|
3580
3685
|
bgcolor: !(selectedFile !== null && selectedFile !== void 0 && selectedFile.content) ? "#EBEBFF !important" : "#5458D5 !important"
|
3581
3686
|
},
|
@@ -3748,7 +3853,7 @@ var ChatList = function ChatList(_ref) {
|
|
3748
3853
|
var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Roles$1.Student);
|
3749
3854
|
return React__default.createElement("ul", {
|
3750
3855
|
ref: listItemRef,
|
3751
|
-
className: styles["list"] + " " + styles["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
|
3856
|
+
className: styles$1["list"] + " " + styles$1["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
|
3752
3857
|
}, !(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && React__default.createElement("li", {
|
3753
3858
|
className: "text-muted text-center fst-italic fs-6"
|
3754
3859
|
}, "No message"), !!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && filterMessage.map(function (message) {
|
@@ -3855,7 +3960,7 @@ var InputChat = function InputChat(_ref) {
|
|
3855
3960
|
color: "#fff",
|
3856
3961
|
size: 30
|
3857
3962
|
}))), React__default.createElement("input", {
|
3858
|
-
className: styles["input-chat"],
|
3963
|
+
className: styles$1["input-chat"],
|
3859
3964
|
style: {
|
3860
3965
|
border: "none"
|
3861
3966
|
},
|
@@ -3882,7 +3987,7 @@ var InputChat = function InputChat(_ref) {
|
|
3882
3987
|
sx: {
|
3883
3988
|
bgcolor: isCompleted ? "#EBEBFF !important" : "#5458D5 !important"
|
3884
3989
|
},
|
3885
|
-
className: styles["btn-send"],
|
3990
|
+
className: styles$1["btn-send"],
|
3886
3991
|
disabled: isCompleted,
|
3887
3992
|
onClick: handleSubmit
|
3888
3993
|
}, React__default.createElement(iconSendMessage, null), React__default.createElement(material.Typography, {
|
@@ -3937,7 +4042,8 @@ var iconChecked = function iconChecked(_ref) {
|
|
3937
4042
|
};
|
3938
4043
|
|
3939
4044
|
var ellipsisText = function ellipsisText(text, maxLength) {
|
3940
|
-
|
4045
|
+
if (!text) return text;
|
4046
|
+
return (text === null || text === void 0 ? void 0 : text.length) > maxLength ? text.slice(0, maxLength) + " ..." : text;
|
3941
4047
|
};
|
3942
4048
|
var formatDataMyAnswer = function formatDataMyAnswer(inputData, categories) {
|
3943
4049
|
var uniqueCategories = new Set();
|
@@ -3986,7 +4092,8 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
3986
4092
|
handleConfirm = _useDialog.handleConfirm;
|
3987
4093
|
var _useTranslation = reactI18next.useTranslation(),
|
3988
4094
|
t = _useTranslation.t;
|
3989
|
-
var
|
4095
|
+
var theme = material.useTheme();
|
4096
|
+
var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
|
3990
4097
|
var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Roles$1.Student);
|
3991
4098
|
var filterDurationExam = React.useMemo(function () {
|
3992
4099
|
if (!durationExam) return;
|
@@ -4035,7 +4142,7 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
4035
4142
|
fontWeight: 600,
|
4036
4143
|
fontSize: "12px",
|
4037
4144
|
lineHeight: "14.32px"
|
4038
|
-
}, ellipsisText(examTitle, 15)), React__default.createElement(material.Box, {
|
4145
|
+
}, ellipsisText(examTitle || "", 15)), React__default.createElement(material.Box, {
|
4039
4146
|
display: "flex",
|
4040
4147
|
flexDirection: "row",
|
4041
4148
|
gap: "4px"
|
@@ -4115,7 +4222,7 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
4115
4222
|
alignItems: "center",
|
4116
4223
|
gap: "24px",
|
4117
4224
|
color: "#5458D5"
|
4118
|
-
}, React__default.createElement(material.Box, {
|
4225
|
+
}, isTabletUp && React__default.createElement(material.Box, {
|
4119
4226
|
display: "flex",
|
4120
4227
|
justifyContent: "space-between",
|
4121
4228
|
alignItems: "center",
|
@@ -4128,7 +4235,7 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
4128
4235
|
fontWeight: 700,
|
4129
4236
|
fontSize: "14px",
|
4130
4237
|
lineHeight: "16.71px"
|
4131
|
-
}, fullName)), React__default.createElement(material.Box, {
|
4238
|
+
}, ellipsisText(fullName || "", 10))), React__default.createElement(material.Box, {
|
4132
4239
|
display: "flex",
|
4133
4240
|
alignItems: "center",
|
4134
4241
|
gap: "24px",
|
@@ -4137,7 +4244,7 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
4137
4244
|
fontWeight: 600,
|
4138
4245
|
fontSize: "12px",
|
4139
4246
|
lineHeight: "14.32px"
|
4140
|
-
}, examTitle) : React__default.createElement(material.Box, {
|
4247
|
+
}, ellipsisText(examTitle || "", 10)) : React__default.createElement(material.Box, {
|
4141
4248
|
display: "flex",
|
4142
4249
|
alignItems: "end",
|
4143
4250
|
gap: "16px",
|
@@ -4282,7 +4389,7 @@ var ChatContainer = function ChatContainer(_ref) {
|
|
4282
4389
|
container: true
|
4283
4390
|
}, React__default.createElement(ChatHeader, Object.assign({}, chatHeaderProps)), React__default.createElement("div", {
|
4284
4391
|
ref: listRef,
|
4285
|
-
className: "flex-grow-1 " + styles["body"],
|
4392
|
+
className: "flex-grow-1 " + styles$1["body"],
|
4286
4393
|
style: {
|
4287
4394
|
height: "60vh",
|
4288
4395
|
overflowY: "scroll",
|
@@ -4787,7 +4894,7 @@ var InputText = function InputText(props) {
|
|
4787
4894
|
}, props));
|
4788
4895
|
};
|
4789
4896
|
|
4790
|
-
var styles$
|
4897
|
+
var styles$2 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question--active":"_3IHYm","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
|
4791
4898
|
|
4792
4899
|
var SCORE_OPTIONS = Array.from({
|
4793
4900
|
length: 10
|
@@ -4844,12 +4951,15 @@ var QuestionView = function QuestionView(_ref) {
|
|
4844
4951
|
var handleChangeCorrectAnswer = function handleChangeCorrectAnswer(e) {
|
4845
4952
|
return onChangeCorrectAnswers(e.target.value, index);
|
4846
4953
|
};
|
4847
|
-
return React__default.createElement(
|
4848
|
-
|
4849
|
-
|
4850
|
-
|
4954
|
+
return React__default.createElement(material.Grid, {
|
4955
|
+
container: true,
|
4956
|
+
spacing: "16px"
|
4957
|
+
}, React__default.createElement(material.Grid, {
|
4958
|
+
item: true,
|
4959
|
+
xs: 12,
|
4960
|
+
lg: 9
|
4851
4961
|
}, React__default.createElement("div", {
|
4852
|
-
className: styles$
|
4962
|
+
className: styles$2["question-title"] + " me-2 text-nowrap"
|
4853
4963
|
}, t("problem_number_question", {
|
4854
4964
|
number: question.questionOrder + 1
|
4855
4965
|
})), React__default.createElement(material.FormControl, {
|
@@ -4865,7 +4975,7 @@ var QuestionView = function QuestionView(_ref) {
|
|
4865
4975
|
}).map(function (i) {
|
4866
4976
|
return React__default.createElement(material.FormControlLabel, {
|
4867
4977
|
key: i,
|
4868
|
-
className: styles$
|
4978
|
+
className: styles$2["question-label"] + " w-fit",
|
4869
4979
|
labelPlacement: "top",
|
4870
4980
|
value: i,
|
4871
4981
|
onChange: handleChangeCorrectAnswer,
|
@@ -4877,10 +4987,12 @@ var QuestionView = function QuestionView(_ref) {
|
|
4877
4987
|
number: i
|
4878
4988
|
})
|
4879
4989
|
});
|
4880
|
-
})))), React__default.createElement(
|
4881
|
-
|
4990
|
+
})))), React__default.createElement(material.Grid, {
|
4991
|
+
item: true,
|
4992
|
+
xs: 12,
|
4993
|
+
lg: 3,
|
4994
|
+
mb: "16px"
|
4882
4995
|
}, React__default.createElement(material.FormControl, {
|
4883
|
-
className: "mx-3",
|
4884
4996
|
style: {
|
4885
4997
|
width: "140px"
|
4886
4998
|
}
|
@@ -5084,6 +5196,8 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
|
|
5084
5196
|
subjectId: defaultCategoryOptions === undefined ? selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id : undefined
|
5085
5197
|
}),
|
5086
5198
|
categoryOptions = _useCategorySelect.categoryOptions;
|
5199
|
+
var theme = material.useTheme();
|
5200
|
+
var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
|
5087
5201
|
var handleChangeQuestionCount = function handleChangeQuestionCount(value) {
|
5088
5202
|
onChangeQuestionCount(article, value === null || value === void 0 ? void 0 : value.value, answerCount);
|
5089
5203
|
};
|
@@ -5103,7 +5217,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
|
|
5103
5217
|
onDelete === null || onDelete === void 0 ? void 0 : onDelete(article);
|
5104
5218
|
};
|
5105
5219
|
return React__default.createElement("div", {
|
5106
|
-
className: "d-flex " + styles$
|
5220
|
+
className: "d-flex " + styles$2["question"] + " " + (isActive ? styles$2["question--active"] : "")
|
5107
5221
|
}, React__default.createElement("div", {
|
5108
5222
|
className: "py-1"
|
5109
5223
|
}, React__default.createElement(pi.PiDotsNineLight, {
|
@@ -5111,20 +5225,30 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
|
|
5111
5225
|
})), React__default.createElement("div", {
|
5112
5226
|
className: "px-4"
|
5113
5227
|
}, React__default.createElement("p", {
|
5114
|
-
className: "mb-0 " + styles$
|
5228
|
+
className: "mb-0 " + styles$2["question-article"]
|
5115
5229
|
}, t("article_number")), React__default.createElement("p", {
|
5116
|
-
className: "text-center " + styles$
|
5230
|
+
className: "text-center " + styles$2["question-article"]
|
5117
5231
|
}, article)), React__default.createElement("div", {
|
5118
5232
|
className: "flex-grow-1"
|
5119
5233
|
}, React__default.createElement(material.Grid, {
|
5120
5234
|
container: true,
|
5121
5235
|
spacing: 3
|
5122
|
-
}, React__default.createElement(material.Grid, {
|
5236
|
+
}, !isTabletUp && React__default.createElement(material.Grid, {
|
5237
|
+
item: true,
|
5238
|
+
xs: 12,
|
5239
|
+
className: "d-flex justify-content-end"
|
5240
|
+
}, isDeletable && !isDisabled && React__default.createElement("div", null, React__default.createElement(material.IconButton, {
|
5241
|
+
onClick: handleDelete
|
5242
|
+
}, React__default.createElement(fa.FaTrash, {
|
5243
|
+
size: 16,
|
5244
|
+
className: "text-danger"
|
5245
|
+
})))), React__default.createElement(material.Grid, {
|
5123
5246
|
item: true,
|
5124
|
-
xs:
|
5247
|
+
xs: 12,
|
5248
|
+
lg: 3
|
5125
5249
|
}, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
|
5126
5250
|
htmlFor: "question_count",
|
5127
|
-
className: styles$
|
5251
|
+
className: styles$2["question-label"] + " form-label"
|
5128
5252
|
}, t("question_count")), React__default.createElement(QuestionCountSelector, {
|
5129
5253
|
id: "question_count",
|
5130
5254
|
value: questionCount,
|
@@ -5132,10 +5256,11 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
|
|
5132
5256
|
isDisabled: isDisabled
|
5133
5257
|
}))), React__default.createElement(material.Grid, {
|
5134
5258
|
item: true,
|
5135
|
-
xs:
|
5259
|
+
xs: 12,
|
5260
|
+
lg: 3
|
5136
5261
|
}, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
|
5137
5262
|
htmlFor: "category",
|
5138
|
-
className: styles$
|
5263
|
+
className: styles$2["question-label"] + " form-label"
|
5139
5264
|
}, t("category")), React__default.createElement(ArticleCategorySelector, {
|
5140
5265
|
id: "category",
|
5141
5266
|
value: categoryId,
|
@@ -5145,16 +5270,17 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
|
|
5145
5270
|
placeholder: t("select_category")
|
5146
5271
|
}))), React__default.createElement(material.Grid, {
|
5147
5272
|
item: true,
|
5148
|
-
xs:
|
5273
|
+
xs: 12,
|
5274
|
+
lg: 3
|
5149
5275
|
}, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
|
5150
5276
|
htmlFor: "answer_count",
|
5151
|
-
className: styles$
|
5277
|
+
className: styles$2["question-label"] + " form-label"
|
5152
5278
|
}, t("answer_count")), React__default.createElement(AnswerCountSelector, {
|
5153
5279
|
id: "answer_count",
|
5154
5280
|
value: answerCount,
|
5155
5281
|
onChange: handleChangeAnswerCount,
|
5156
5282
|
isDisabled: isDisabled
|
5157
|
-
}))), React__default.createElement(material.Grid, {
|
5283
|
+
}))), isTabletUp && React__default.createElement(material.Grid, {
|
5158
5284
|
item: true,
|
5159
5285
|
xs: 3,
|
5160
5286
|
className: "d-flex justify-content-end"
|
@@ -5191,6 +5317,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5191
5317
|
onChangePageTo = _ref.onChangePageTo,
|
5192
5318
|
onAddArticle = _ref.onAddArticle,
|
5193
5319
|
onRemoveArticle = _ref.onRemoveArticle,
|
5320
|
+
handleCheckArticle = _ref.handleCheckArticle,
|
5194
5321
|
onUpdateArticleQuestionCount = _ref.onUpdateArticleQuestionCount,
|
5195
5322
|
onUpdateArticleCategory = _ref.onUpdateArticleCategory,
|
5196
5323
|
onUpdateArticleQuestionAnswerCount = _ref.onUpdateArticleQuestionAnswerCount,
|
@@ -5246,6 +5373,8 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5246
5373
|
var handleUpdateArticleQuestionScore = function handleUpdateArticleQuestionScore(article, index, score) {
|
5247
5374
|
onUpdateArticleQuestion === null || onUpdateArticleQuestion === void 0 ? void 0 : onUpdateArticleQuestion(article, index, score, "score", data.articles, data.id, parentChapterId);
|
5248
5375
|
};
|
5376
|
+
var theme = material.useTheme();
|
5377
|
+
var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
|
5249
5378
|
var handleChangeName = function handleChangeName(e) {
|
5250
5379
|
var text = e.target.value;
|
5251
5380
|
onChangeName === null || onChangeName === void 0 ? void 0 : onChangeName(text, data.id, parentChapterId);
|
@@ -5293,17 +5422,52 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5293
5422
|
className: "text-danger"
|
5294
5423
|
}))), React__default.createElement("div", {
|
5295
5424
|
className: "p-3 d-flex justify-content-between"
|
5425
|
+
}, React__default.createElement(material.Grid, {
|
5426
|
+
container: true
|
5427
|
+
}, React__default.createElement(material.Grid, {
|
5428
|
+
item: true,
|
5429
|
+
xs: 12
|
5430
|
+
}, React__default.createElement(material.Grid, {
|
5431
|
+
container: true,
|
5432
|
+
spacing: 2
|
5433
|
+
}, !isTabletUp && React__default.createElement(material.Grid, {
|
5434
|
+
item: true,
|
5435
|
+
xs: 12
|
5296
5436
|
}, React__default.createElement(material.Stack, {
|
5297
|
-
|
5298
|
-
|
5299
|
-
|
5437
|
+
direction: "row",
|
5438
|
+
justifyContent: "end",
|
5439
|
+
spacing: 2
|
5440
|
+
}, !parentChapterId && !data.articles.length && React__default.createElement(material.Button, {
|
5441
|
+
className: "mx-1",
|
5442
|
+
variant: "contained",
|
5443
|
+
color: "primary",
|
5444
|
+
disabled: isReadonly,
|
5445
|
+
startIcon: React__default.createElement(fa.FaPlus, {
|
5446
|
+
size: 12
|
5447
|
+
}),
|
5448
|
+
onClick: handleClickAddSubchapter
|
5449
|
+
}, t("add_subchapter")), data.subChapters.length === 0 && React__default.createElement(material.Button, {
|
5450
|
+
className: "mx-1",
|
5451
|
+
variant: "contained",
|
5452
|
+
color: "success",
|
5453
|
+
disabled: isReadonly,
|
5454
|
+
startIcon: React__default.createElement(fa.FaPlus, {
|
5455
|
+
size: 12
|
5456
|
+
}),
|
5457
|
+
onClick: handleAddArticle
|
5458
|
+
}, t("add_article")))), React__default.createElement(material.Grid, {
|
5459
|
+
item: true,
|
5460
|
+
xs: 12,
|
5461
|
+
lg: 4,
|
5300
5462
|
sx: {
|
5301
5463
|
display: "flex",
|
5302
5464
|
alignItems: "center",
|
5303
|
-
marginRight: "16px",
|
5304
5465
|
width: "50%"
|
5305
5466
|
}
|
5306
5467
|
}, React__default.createElement("label", {
|
5468
|
+
style: {
|
5469
|
+
minWidth: "90px"
|
5470
|
+
},
|
5307
5471
|
className: "fw-bold text-nowrap me-2"
|
5308
5472
|
}, t("page.from"), ":"), React__default.createElement(InputText, {
|
5309
5473
|
type: "number",
|
@@ -5313,13 +5477,19 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5313
5477
|
onChange: handleChangePageFrom,
|
5314
5478
|
placeholder: t("page.from_placeholder"),
|
5315
5479
|
error: data.pageFrom > data.pageTo || data.pageFrom < 0
|
5316
|
-
})), React__default.createElement(material.
|
5480
|
+
})), React__default.createElement(material.Grid, {
|
5481
|
+
item: true,
|
5482
|
+
xs: 12,
|
5483
|
+
lg: 4,
|
5317
5484
|
sx: {
|
5318
5485
|
display: "flex",
|
5319
5486
|
alignItems: "center",
|
5320
5487
|
width: "50%"
|
5321
5488
|
}
|
5322
5489
|
}, React__default.createElement("label", {
|
5490
|
+
style: {
|
5491
|
+
minWidth: "90px"
|
5492
|
+
},
|
5323
5493
|
className: "fw-bold text-nowrap me-2"
|
5324
5494
|
}, t("page.to"), ":"), React__default.createElement(InputText, {
|
5325
5495
|
type: "number",
|
@@ -5329,7 +5499,10 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5329
5499
|
onChange: handleChangePageTo,
|
5330
5500
|
placeholder: t("page.to_placeholder"),
|
5331
5501
|
error: data.pageTo < data.pageFrom
|
5332
|
-
}))
|
5502
|
+
})), isTabletUp && React__default.createElement(material.Grid, {
|
5503
|
+
item: true,
|
5504
|
+
lg: 4
|
5505
|
+
}, React__default.createElement(material.Stack, {
|
5333
5506
|
direction: "row",
|
5334
5507
|
justifyContent: "end",
|
5335
5508
|
spacing: 2
|
@@ -5351,7 +5524,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5351
5524
|
size: 12
|
5352
5525
|
}),
|
5353
5526
|
onClick: handleAddArticle
|
5354
|
-
}, t("add_article")))), React__default.createElement("div", {
|
5527
|
+
}, t("add_article")))))))), React__default.createElement("div", {
|
5355
5528
|
className: "p-3"
|
5356
5529
|
}, React__default.createElement(material.Stack, {
|
5357
5530
|
spacing: 2
|
@@ -5366,6 +5539,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5366
5539
|
onChangeName: onChangeName,
|
5367
5540
|
onChangePageFrom: onChangePageFrom,
|
5368
5541
|
onChangePageTo: onChangePageTo,
|
5542
|
+
handleCheckArticle: handleCheckArticle,
|
5369
5543
|
onAddArticle: onAddArticle,
|
5370
5544
|
onRemoveArticle: onRemoveArticle,
|
5371
5545
|
onUpdateArticleQuestionCount: onUpdateArticleQuestionCount,
|
@@ -5376,7 +5550,24 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5376
5550
|
});
|
5377
5551
|
}), data.subChapters.length === 0 && data.articles.map(function (article) {
|
5378
5552
|
var _article$category;
|
5379
|
-
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, {
|
5380
5571
|
key: article.id,
|
5381
5572
|
categoryOptions: categoryOptions,
|
5382
5573
|
article: article.articleNumber,
|
@@ -5393,7 +5584,7 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
5393
5584
|
onChangeScoreAnswer: handleUpdateArticleQuestionScore,
|
5394
5585
|
onDelete: handleRemoveArticle,
|
5395
5586
|
isDeletable: true
|
5396
|
-
});
|
5587
|
+
}));
|
5397
5588
|
}))));
|
5398
5589
|
};
|
5399
5590
|
|
@@ -5453,6 +5644,25 @@ var TextbookSortBy;
|
|
5453
5644
|
TextbookSortBy["Title"] = "Name";
|
5454
5645
|
TextbookSortBy["SubjectName"] = "Subject.Name";
|
5455
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 = {}));
|
5456
5666
|
|
5457
5667
|
var TEXTBOOK_HEADERS = [{
|
5458
5668
|
title: "#"
|
@@ -5470,6 +5680,19 @@ var TEXTBOOK_HEADERS = [{
|
|
5470
5680
|
}, {
|
5471
5681
|
title: "actions"
|
5472
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
|
+
};
|
5473
5696
|
var TEXTBOOK_PAGE_TITLE = "textbooks";
|
5474
5697
|
var TEXT_BOOK_SEARCH_PLACEHOLDER = "enter_student_name_to_search";
|
5475
5698
|
var TextbookDefaultQuery = {
|
@@ -5536,6 +5759,133 @@ var deleteArticleApi = function deleteArticleApi(articleId, role) {
|
|
5536
5759
|
});
|
5537
5760
|
};
|
5538
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
|
+
|
5539
5889
|
var useTextbookDetail = function useTextbookDetail(props) {
|
5540
5890
|
var role = props.role,
|
5541
5891
|
isReadonlyParam = props.isReadonlyParam,
|
@@ -5559,18 +5909,31 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5559
5909
|
var _useState5 = React.useState(),
|
5560
5910
|
parentChapter = _useState5[0],
|
5561
5911
|
setParentChapter = _useState5[1];
|
5562
|
-
var _useState6 = React.useState(),
|
5563
|
-
|
5564
|
-
|
5912
|
+
var _useState6 = React.useState([]),
|
5913
|
+
articlesSelected = _useState6[0],
|
5914
|
+
setArticlesSelected = _useState6[1];
|
5565
5915
|
var _useState7 = React.useState(),
|
5566
|
-
|
5567
|
-
|
5916
|
+
selectedChapter = _useState7[0],
|
5917
|
+
setSelectedChapter = _useState7[1];
|
5918
|
+
var _useState8 = React.useState(),
|
5919
|
+
selectedDeleteItem = _useState8[0],
|
5920
|
+
setSelectedDeleteItem = _useState8[1];
|
5568
5921
|
var updateChapterRef = React.useRef();
|
5569
5922
|
var updateArticleRef = React.useRef();
|
5570
|
-
var
|
5571
|
-
isEditedTitle =
|
5572
|
-
setEditedTitle =
|
5923
|
+
var _useState9 = React.useState(false),
|
5924
|
+
isEditedTitle = _useState9[0],
|
5925
|
+
setEditedTitle = _useState9[1];
|
5573
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;
|
5574
5937
|
var handleOpenAddArticleDialog = function handleOpenAddArticleDialog(chapter) {
|
5575
5938
|
setSelectedChapter(chapter);
|
5576
5939
|
};
|
@@ -5821,7 +6184,6 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5821
6184
|
}
|
5822
6185
|
};
|
5823
6186
|
return Promise.resolve(handleCreateArticle(newArticle, function (article) {
|
5824
|
-
console.log("created article: ", article);
|
5825
6187
|
handleUpdateChapterValue([].concat(articles, [article]), "articles", selectedChapter.id, selectedChapter.parentChapterId);
|
5826
6188
|
setSelectedChapter(undefined);
|
5827
6189
|
})).then(function () {});
|
@@ -5911,12 +6273,14 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5911
6273
|
};
|
5912
6274
|
});
|
5913
6275
|
newArticle = _extends({}, thisArticles, {
|
6276
|
+
chapterId: chapterId,
|
5914
6277
|
questions: [].concat(thisQuestions, additionalQuestionArticles)
|
5915
6278
|
});
|
5916
6279
|
newArticles = [].concat(articles.slice(0, articleNumber - 1), [newArticle], articles.slice(articleNumber));
|
5917
6280
|
}
|
5918
6281
|
if (questionCount < thisQuestions.length) {
|
5919
6282
|
newArticle = _extends({}, thisArticles, {
|
6283
|
+
chapterId: chapterId,
|
5920
6284
|
questions: [].concat(thisQuestions.slice(0, questionCount))
|
5921
6285
|
});
|
5922
6286
|
newArticles = [].concat(articles.slice(0, articleNumber - 1), [newArticle], articles.slice(articleNumber));
|
@@ -5928,6 +6292,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5928
6292
|
};
|
5929
6293
|
var handleUpdateArticleCategory = function handleUpdateArticleCategory(articleNumber, categoryId, articles, chapterId, parentChapterId) {
|
5930
6294
|
var newArticle = _extends({}, articles[articleNumber - 1], {
|
6295
|
+
chapterId: chapterId,
|
5931
6296
|
category: {
|
5932
6297
|
id: categoryId
|
5933
6298
|
}
|
@@ -5944,6 +6309,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5944
6309
|
if (newAnswerCount > answerCount) {
|
5945
6310
|
newArticle = _extends({}, articles[articleNumber - 1], {
|
5946
6311
|
answerCount: newAnswerCount,
|
6312
|
+
chapterId: chapterId,
|
5947
6313
|
questions: articles[articleNumber - 1].questions.map(function (i) {
|
5948
6314
|
return _extends({}, i, {
|
5949
6315
|
numberOfAnswers: newAnswerCount
|
@@ -5953,6 +6319,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5953
6319
|
} else if (newAnswerCount < answerCount) {
|
5954
6320
|
newArticle = _extends({}, articles[articleNumber - 1], {
|
5955
6321
|
answerCount: newAnswerCount,
|
6322
|
+
chapterId: chapterId,
|
5956
6323
|
questions: articles[articleNumber - 1].questions.map(function (i) {
|
5957
6324
|
return _extends({}, i, {
|
5958
6325
|
numberOfAnswers: newAnswerCount,
|
@@ -5972,6 +6339,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
5972
6339
|
var _extends4;
|
5973
6340
|
var thisQuestions = articles[articleNumber - 1].questions;
|
5974
6341
|
var newArticle = _extends({}, articles[articleNumber - 1], {
|
6342
|
+
chapterId: chapterId,
|
5975
6343
|
questions: [].concat(thisQuestions.slice(0, index), [_extends({}, thisQuestions[index], (_extends4 = {}, _extends4[key] = value, _extends4))], thisQuestions.slice(index + 1))
|
5976
6344
|
});
|
5977
6345
|
var newArticles = [].concat(articles.slice(0, articleNumber - 1), [newArticle], articles.slice(articleNumber));
|
@@ -6132,6 +6500,19 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6132
6500
|
replace: true
|
6133
6501
|
});
|
6134
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
|
+
};
|
6135
6516
|
React.useEffect(function () {
|
6136
6517
|
var getTextbookDetail = function getTextbookDetail() {
|
6137
6518
|
try {
|
@@ -6156,6 +6537,53 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6156
6537
|
};
|
6157
6538
|
if (id) getTextbookDetail();
|
6158
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
|
+
};
|
6159
6587
|
React.useEffect(function () {
|
6160
6588
|
document.title = t("textbooks") + " | " + t(id ? "textbook_detail" : "create_textbook");
|
6161
6589
|
}, [id, t]);
|
@@ -6175,6 +6603,15 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
6175
6603
|
selectedDeleteItem: selectedDeleteItem,
|
6176
6604
|
isEditedTitle: isEditedTitle,
|
6177
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,
|
6178
6615
|
handleChangeTextbookTitle: handleChangeTextbookTitle,
|
6179
6616
|
handleCreateOrUpdateTextbook: handleCreateOrUpdateTextbook,
|
6180
6617
|
handleChangeTextbookSubject: handleChangeTextbookSubject,
|
@@ -6614,9 +7051,9 @@ var SubjectSelector = function SubjectSelector(_ref) {
|
|
6614
7051
|
!minimumTextSearchLength && defaultValueAtFirst && options.length && onChange(options[0], subjects[0]);
|
6615
7052
|
}, [JSON.stringify(options), JSON.stringify(subjects), defaultValueAtFirst, minimumTextSearchLength]);
|
6616
7053
|
return React__default.createElement(material.FormGroup, {
|
6617
|
-
className: "" +
|
7054
|
+
className: "" + styles["filter-item"]
|
6618
7055
|
}, !!title && React__default.createElement("label", {
|
6619
|
-
className: "" +
|
7056
|
+
className: "" + styles["title-form"]
|
6620
7057
|
}, title), React__default.createElement(CustomSelectOption, {
|
6621
7058
|
options: options,
|
6622
7059
|
inputValue: searchString,
|
@@ -6632,1036 +7069,1115 @@ var SubjectSelector = function SubjectSelector(_ref) {
|
|
6632
7069
|
}));
|
6633
7070
|
};
|
6634
7071
|
|
6635
|
-
var
|
6636
|
-
var _textbook$chapters;
|
6637
|
-
var _useTextbookDetail = useTextbookDetail(props),
|
6638
|
-
id = _useTextbookDetail.id,
|
6639
|
-
t = _useTextbookDetail.t,
|
6640
|
-
textbook = _useTextbookDetail.textbook,
|
6641
|
-
textbookSubject = _useTextbookDetail.textbookSubject,
|
6642
|
-
isReadonly = _useTextbookDetail.isReadonly,
|
6643
|
-
isNotFound = _useTextbookDetail.isNotFound,
|
6644
|
-
parentChapter = _useTextbookDetail.parentChapter,
|
6645
|
-
textbookId = _useTextbookDetail.textbookId,
|
6646
|
-
selectedChapter = _useTextbookDetail.selectedChapter,
|
6647
|
-
selectedDeleteItem = _useTextbookDetail.selectedDeleteItem,
|
6648
|
-
isEditedTitle = _useTextbookDetail.isEditedTitle,
|
6649
|
-
handleChangeTextbookTitle = _useTextbookDetail.handleChangeTextbookTitle,
|
6650
|
-
handleChangeTextbookSubject = _useTextbookDetail.handleChangeTextbookSubject,
|
6651
|
-
handleGoToTextbookList = _useTextbookDetail.handleGoToTextbookList,
|
6652
|
-
handleCreateOrUpdateTextbook = _useTextbookDetail.handleCreateOrUpdateTextbook,
|
6653
|
-
handleCloseChapterNameDialog = _useTextbookDetail.handleCloseChapterNameDialog,
|
6654
|
-
handleCreateChapter = _useTextbookDetail.handleCreateChapter,
|
6655
|
-
handleAddChapterToTextbook = _useTextbookDetail.handleAddChapterToTextbook,
|
6656
|
-
handleAddChapterToParentSubchapter = _useTextbookDetail.handleAddChapterToParentSubchapter,
|
6657
|
-
handleChangeChapterName = _useTextbookDetail.handleChangeChapterName,
|
6658
|
-
handleChangeChapterPageFrom = _useTextbookDetail.handleChangeChapterPageFrom,
|
6659
|
-
handleChangeChapterPageTo = _useTextbookDetail.handleChangeChapterPageTo,
|
6660
|
-
handleAddArticleToChapter = _useTextbookDetail.handleAddArticleToChapter,
|
6661
|
-
handleUpdateArticleQuestionCountFromChapter = _useTextbookDetail.handleUpdateArticleQuestionCountFromChapter,
|
6662
|
-
handleUpdateArticleCategory = _useTextbookDetail.handleUpdateArticleCategory,
|
6663
|
-
handleUpdateArticleAnswerCount = _useTextbookDetail.handleUpdateArticleAnswerCount,
|
6664
|
-
handleUpdateArticleQuestion = _useTextbookDetail.handleUpdateArticleQuestion,
|
6665
|
-
handleCloseArticleDialog = _useTextbookDetail.handleCloseArticleDialog,
|
6666
|
-
handleOpenAddArticleDialog = _useTextbookDetail.handleOpenAddArticleDialog,
|
6667
|
-
handleOpenRemoveArticleConfirmDialog = _useTextbookDetail.handleOpenRemoveArticleConfirmDialog,
|
6668
|
-
handleCloseConfirmDeleteDialog = _useTextbookDetail.handleCloseConfirmDeleteDialog,
|
6669
|
-
handleRemoveSelectedItem = _useTextbookDetail.handleRemoveSelectedItem,
|
6670
|
-
handleOpenRemoveChapterConfirmDialog = _useTextbookDetail.handleOpenRemoveChapterConfirmDialog;
|
6671
|
-
var _useCategorySelect = useCategorySelect({
|
6672
|
-
subjectId: id ? textbookSubject === null || textbookSubject === void 0 ? void 0 : textbookSubject.value : undefined
|
6673
|
-
}),
|
6674
|
-
categoryOptions = _useCategorySelect.categoryOptions;
|
6675
|
-
if (isNotFound) return React__default.createElement(NotFound, null);
|
6676
|
-
return React__default.createElement(material.Container, {
|
6677
|
-
maxWidth: "xl",
|
6678
|
-
className: "bg-white py-5 p-4 rounded-4 h-100 d-flex flex-column"
|
6679
|
-
}, React__default.createElement(material.Stack, {
|
6680
|
-
direction: "row",
|
6681
|
-
alignItems: "center",
|
6682
|
-
justifyContent: "space-between",
|
6683
|
-
mb: 2
|
6684
|
-
}, React__default.createElement(material.Typography, {
|
6685
|
-
variant: "h3"
|
6686
|
-
}, t(id ? isReadonly ? "view_textbook" : "update_textbook" : "create_textbook"))), React__default.createElement(material.Grid, {
|
6687
|
-
container: true,
|
6688
|
-
spacing: 3
|
6689
|
-
}, React__default.createElement(material.Grid, {
|
6690
|
-
item: true,
|
6691
|
-
xs: 4,
|
6692
|
-
className: "d-flex align-items-center"
|
6693
|
-
}, React__default.createElement(material.Table, null, React__default.createElement(material.TableBody, null, React__default.createElement(material.TableRow, {
|
6694
|
-
sx: {
|
6695
|
-
"& td": {
|
6696
|
-
border: 0
|
6697
|
-
}
|
6698
|
-
}
|
6699
|
-
}, React__default.createElement(material.TableCell, {
|
6700
|
-
className: "p-2 pe-0",
|
6701
|
-
sx: {
|
6702
|
-
width: "15%"
|
6703
|
-
}
|
6704
|
-
}, React__default.createElement(material.InputLabel, null, React__default.createElement("span", {
|
6705
|
-
className: "fw-bold"
|
6706
|
-
}, t("name")), React__default.createElement("span", {
|
6707
|
-
className: "text-danger"
|
6708
|
-
}, "*"))), React__default.createElement(material.TableCell, {
|
6709
|
-
sx: {
|
6710
|
-
width: 0,
|
6711
|
-
px: 1
|
6712
|
-
}
|
6713
|
-
}, ":"), React__default.createElement(material.TableCell, {
|
6714
|
-
className: "p-2"
|
6715
|
-
}, React__default.createElement(InputText, {
|
6716
|
-
className: "w-100",
|
6717
|
-
value: textbook === null || textbook === void 0 ? void 0 : textbook.name,
|
6718
|
-
placeholder: t("enter_textbook_title"),
|
6719
|
-
onChange: handleChangeTextbookTitle,
|
6720
|
-
disabled: isReadonly
|
6721
|
-
}))), React__default.createElement(material.TableRow, {
|
6722
|
-
sx: {
|
6723
|
-
"& td": {
|
6724
|
-
border: 0
|
6725
|
-
}
|
6726
|
-
}
|
6727
|
-
}, React__default.createElement(material.TableCell, {
|
6728
|
-
className: "p-2 pe-0"
|
6729
|
-
}, React__default.createElement(material.InputLabel, null, React__default.createElement("span", {
|
6730
|
-
className: "fw-bold"
|
6731
|
-
}, t("subject")), React__default.createElement("span", {
|
6732
|
-
className: "text-danger"
|
6733
|
-
}, "*"))), React__default.createElement(material.TableCell, {
|
6734
|
-
sx: {
|
6735
|
-
width: 0,
|
6736
|
-
px: 1
|
6737
|
-
}
|
6738
|
-
}, ":"), React__default.createElement(material.TableCell, {
|
6739
|
-
className: "p-2"
|
6740
|
-
}, React__default.createElement(SubjectSelector, {
|
6741
|
-
value: textbookSubject,
|
6742
|
-
onChange: handleChangeTextbookSubject,
|
6743
|
-
isDisabled: isReadonly || !!id
|
6744
|
-
})))))), React__default.createElement(material.Grid, {
|
6745
|
-
item: true,
|
6746
|
-
xs: 8,
|
6747
|
-
className: "d-flex justify-content-end"
|
6748
|
-
}, React__default.createElement("div", null, React__default.createElement(TextbookActionButtons, {
|
6749
|
-
isReadonly: isReadonly,
|
6750
|
-
textbook: textbook,
|
6751
|
-
onBack: handleGoToTextbookList,
|
6752
|
-
onSave: handleCreateOrUpdateTextbook,
|
6753
|
-
hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin
|
6754
|
-
}))), React__default.createElement(material.Grid, {
|
6755
|
-
item: true,
|
6756
|
-
xs: 12,
|
6757
|
-
className: "d-flex justify-content-end"
|
6758
|
-
}, !!id && React__default.createElement(material.Button, {
|
6759
|
-
className: "mx-1",
|
6760
|
-
variant: "contained",
|
6761
|
-
color: "primary",
|
6762
|
-
startIcon: React__default.createElement(fa.FaPlus, {
|
6763
|
-
size: 12
|
6764
|
-
}),
|
6765
|
-
onClick: handleAddChapterToTextbook,
|
6766
|
-
disabled: isReadonly
|
6767
|
-
}, t("add_chapter"))), React__default.createElement(material.Grid, {
|
6768
|
-
item: true,
|
6769
|
-
xs: 12
|
6770
|
-
}, React__default.createElement(material.Stack, {
|
6771
|
-
spacing: 3
|
6772
|
-
}, !!(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) {
|
6773
|
-
return React__default.createElement(ChapterBox, {
|
6774
|
-
key: chapter.id,
|
6775
|
-
subject: textbook.subject,
|
6776
|
-
data: chapter,
|
6777
|
-
categoryOptions: categoryOptions || [],
|
6778
|
-
onClickAddSubchapter: handleAddChapterToParentSubchapter,
|
6779
|
-
onChangeName: handleChangeChapterName,
|
6780
|
-
onChangePageFrom: handleChangeChapterPageFrom,
|
6781
|
-
onChangePageTo: handleChangeChapterPageTo,
|
6782
|
-
onAddArticle: handleOpenAddArticleDialog,
|
6783
|
-
onRemoveArticle: handleOpenRemoveArticleConfirmDialog,
|
6784
|
-
onUpdateArticleQuestionCount: handleUpdateArticleQuestionCountFromChapter,
|
6785
|
-
onUpdateArticleCategory: handleUpdateArticleCategory,
|
6786
|
-
onUpdateArticleQuestionAnswerCount: handleUpdateArticleAnswerCount,
|
6787
|
-
onUpdateArticleQuestion: handleUpdateArticleQuestion,
|
6788
|
-
onRemoveChapter: handleOpenRemoveChapterConfirmDialog,
|
6789
|
-
isReadonly: isReadonly
|
6790
|
-
});
|
6791
|
-
}))))), React__default.createElement(ChapterNameDialog, {
|
6792
|
-
open: !!(parentChapter !== null && parentChapter !== void 0 && parentChapter.id) || !!textbookId,
|
6793
|
-
chapter: parentChapter,
|
6794
|
-
onClose: handleCloseChapterNameDialog,
|
6795
|
-
onSubmitForm: handleCreateChapter
|
6796
|
-
}), React__default.createElement(ArticleDialog, {
|
6797
|
-
open: !!selectedChapter,
|
6798
|
-
chapter: selectedChapter,
|
6799
|
-
categoryOptions: categoryOptions || [],
|
6800
|
-
onClose: handleCloseArticleDialog,
|
6801
|
-
onSubmitForm: handleAddArticleToChapter
|
6802
|
-
}), selectedDeleteItem && React__default.createElement(ConfirmDialog, {
|
6803
|
-
open: true,
|
6804
|
-
toggle: handleCloseConfirmDeleteDialog,
|
6805
|
-
text: selectedDeleteItem.confirmText,
|
6806
|
-
confirmText: selectedDeleteItem.name,
|
6807
|
-
onConfirm: handleRemoveSelectedItem,
|
6808
|
-
isDelete: true
|
6809
|
-
}));
|
6810
|
-
};
|
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"};
|
6811
7073
|
|
6812
|
-
var
|
6813
|
-
|
6814
|
-
|
6815
|
-
|
6816
|
-
|
6817
|
-
|
6818
|
-
|
6819
|
-
|
6820
|
-
|
6821
|
-
|
6822
|
-
|
6823
|
-
|
6824
|
-
|
6825
|
-
|
6826
|
-
|
6827
|
-
|
6828
|
-
|
6829
|
-
|
6830
|
-
|
6831
|
-
|
6832
|
-
|
6833
|
-
|
6834
|
-
|
6835
|
-
|
6836
|
-
|
6837
|
-
|
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
|
6838
7118
|
});
|
6839
|
-
}
|
7119
|
+
}));
|
7120
|
+
onChangeExam(_extends({}, exam, {
|
7121
|
+
questions: [].concat(newQuestions)
|
7122
|
+
}));
|
6840
7123
|
} else {
|
6841
|
-
|
6842
|
-
|
6843
|
-
|
6844
|
-
|
6845
|
-
pathname: homeAcademyUrl,
|
6846
|
-
search: ""
|
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
|
6847
7128
|
});
|
6848
|
-
}
|
6849
|
-
|
6850
|
-
|
6851
|
-
}
|
6852
|
-
if (!paramAcademyDomain && academyDomain) {
|
6853
|
-
searchParams.append("domain", academyDomain);
|
6854
|
-
pushTo(_extends({}, window.location, {
|
6855
|
-
search: searchParams.toString()
|
6856
|
-
}));
|
6857
|
-
}
|
7129
|
+
}));
|
7130
|
+
onChangeExam(_extends({}, exam, {
|
7131
|
+
questions: [].concat(_newQuestions)
|
7132
|
+
}));
|
6858
7133
|
}
|
6859
7134
|
};
|
6860
|
-
var
|
6861
|
-
if (
|
6862
|
-
|
6863
|
-
|
6864
|
-
|
6865
|
-
|
6866
|
-
|
6867
|
-
|
6868
|
-
|
6869
|
-
|
6870
|
-
|
6871
|
-
|
6872
|
-
|
6873
|
-
|
6874
|
-
|
6875
|
-
|
6876
|
-
var _useState3 = React.useState([]),
|
6877
|
-
data = _useState3[0],
|
6878
|
-
setData = _useState3[1];
|
6879
|
-
var _useState4 = React.useState(),
|
6880
|
-
selectedItem = _useState4[0],
|
6881
|
-
setSelectedItem = _useState4[1];
|
6882
|
-
var textSearchRef = React.useRef(null);
|
6883
|
-
var isFirstLoadRef = React.useRef(true);
|
6884
|
-
var handleChangeSelectedItem = function handleChangeSelectedItem(item) {
|
6885
|
-
setSelectedItem(item);
|
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;
|
7140
|
+
});
|
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
|
+
}))
|
7150
|
+
}));
|
6886
7151
|
};
|
6887
|
-
var
|
6888
|
-
if (
|
6889
|
-
|
6890
|
-
|
6891
|
-
|
6892
|
-
|
6893
|
-
|
6894
|
-
|
6895
|
-
|
6896
|
-
|
6897
|
-
|
6898
|
-
|
6899
|
-
|
6900
|
-
|
6901
|
-
items = _res$data$items === void 0 ? [] : _res$data$items,
|
6902
|
-
_res$data$totalPages = _res$data.totalPages,
|
6903
|
-
totalPages = _res$data$totalPages === void 0 ? 0 : _res$data$totalPages;
|
6904
|
-
setTotalPages(totalPages);
|
6905
|
-
setData(items);
|
6906
|
-
});
|
6907
|
-
}, function (error) {
|
6908
|
-
var _error$response, _error$response$data;
|
6909
|
-
setTotalPages(0);
|
6910
|
-
setData([]);
|
6911
|
-
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");
|
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
|
6912
7166
|
});
|
6913
|
-
|
6914
|
-
}
|
6915
|
-
|
7167
|
+
});
|
7168
|
+
onChangeExam(_extends({}, exam, {
|
7169
|
+
questions: [].concat(examQuestions)
|
7170
|
+
}));
|
7171
|
+
};
|
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;
|
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
|
+
}));
|
6916
7202
|
}
|
6917
7203
|
};
|
6918
|
-
var
|
6919
|
-
|
6920
|
-
|
6921
|
-
|
6922
|
-
|
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;
|
6923
7209
|
});
|
6924
|
-
|
6925
|
-
|
6926
|
-
|
6927
|
-
|
6928
|
-
|
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))
|
6929
7218
|
}));
|
6930
7219
|
};
|
6931
|
-
var
|
6932
|
-
if (!
|
6933
|
-
|
6934
|
-
|
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
|
+
}));
|
6935
7236
|
};
|
6936
|
-
var
|
6937
|
-
|
6938
|
-
|
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
|
6939
7241
|
}));
|
6940
7242
|
};
|
6941
|
-
var
|
6942
|
-
|
6943
|
-
|
7243
|
+
var handleChangeTitle = function handleChangeTitle(e) {
|
7244
|
+
if (!exam) return;
|
7245
|
+
onChangeExam(_extends({}, exam, {
|
7246
|
+
title: e.target.value
|
7247
|
+
}));
|
6944
7248
|
};
|
6945
|
-
var
|
6946
|
-
var
|
6947
|
-
|
6948
|
-
|
6949
|
-
|
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
|
+
}])
|
6950
7262
|
}));
|
6951
|
-
}
|
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
|
7280
|
+
});
|
7281
|
+
}
|
7282
|
+
}
|
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]);
|
6952
7298
|
React.useEffect(function () {
|
6953
|
-
|
6954
|
-
|
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]);
|
6955
7303
|
return {
|
6956
|
-
|
6957
|
-
|
6958
|
-
|
6959
|
-
|
6960
|
-
|
6961
|
-
|
6962
|
-
|
6963
|
-
|
6964
|
-
|
6965
|
-
|
6966
|
-
|
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
|
6967
7316
|
};
|
6968
7317
|
};
|
6969
7318
|
|
6970
|
-
|
6971
|
-
|
6972
|
-
|
6973
|
-
|
6974
|
-
|
6975
|
-
|
6976
|
-
|
6977
|
-
|
6978
|
-
|
6979
|
-
|
6980
|
-
|
6981
|
-
|
6982
|
-
|
6983
|
-
|
6984
|
-
|
6985
|
-
|
6986
|
-
|
6987
|
-
|
6988
|
-
|
6989
|
-
|
6990
|
-
|
6991
|
-
|
6992
|
-
|
6993
|
-
|
6994
|
-
|
6995
|
-
|
6996
|
-
|
6997
|
-
|
6998
|
-
|
6999
|
-
|
7000
|
-
|
7001
|
-
|
7002
|
-
}
|
7003
|
-
|
7004
|
-
|
7005
|
-
|
7006
|
-
|
7007
|
-
|
7008
|
-
|
7009
|
-
|
7010
|
-
|
7011
|
-
|
7012
|
-
|
7013
|
-
|
7014
|
-
|
7015
|
-
|
7016
|
-
|
7017
|
-
|
7018
|
-
|
7019
|
-
|
7020
|
-
|
7021
|
-
|
7022
|
-
|
7023
|
-
|
7024
|
-
|
7025
|
-
|
7026
|
-
|
7027
|
-
|
7028
|
-
|
7029
|
-
|
7030
|
-
|
7031
|
-
|
7032
|
-
|
7033
|
-
|
7034
|
-
|
7035
|
-
|
7036
|
-
|
7037
|
-
|
7038
|
-
|
7039
|
-
|
7040
|
-
|
7041
|
-
|
7042
|
-
|
7043
|
-
|
7044
|
-
|
7045
|
-
|
7046
|
-
|
7047
|
-
|
7048
|
-
|
7049
|
-
|
7050
|
-
|
7051
|
-
|
7052
|
-
|
7053
|
-
|
7054
|
-
|
7055
|
-
|
7056
|
-
|
7057
|
-
|
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")));
|
7058
7419
|
};
|
7059
7420
|
|
7060
|
-
var
|
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);
|
7061
7427
|
var _useTranslation = reactI18next.useTranslation(),
|
7062
7428
|
t = _useTranslation.t;
|
7063
|
-
|
7064
|
-
|
7065
|
-
|
7066
|
-
|
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)))));
|
7067
7465
|
};
|
7068
7466
|
|
7069
|
-
var
|
7070
|
-
var
|
7071
|
-
|
7072
|
-
|
7073
|
-
|
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"
|
7074
7520
|
}, React__default.createElement(material.Stack, {
|
7075
7521
|
direction: "row",
|
7076
7522
|
alignItems: "center",
|
7077
7523
|
justifyContent: "space-between",
|
7078
7524
|
mb: 2
|
7079
7525
|
}, React__default.createElement(material.Typography, {
|
7080
|
-
variant:
|
7081
|
-
},
|
7082
|
-
|
7083
|
-
|
7084
|
-
|
7085
|
-
|
7086
|
-
|
7087
|
-
|
7088
|
-
|
7089
|
-
onClick: onClick
|
7090
|
-
}, React__default.createElement(fa.FaSortUp, {
|
7091
|
-
className: isAscending === true ? styleGlobal["active"] : ""
|
7092
|
-
}), React__default.createElement(fa.FaSortDown, {
|
7093
|
-
className: isAscending === false ? styleGlobal["active"] : ""
|
7094
|
-
}));
|
7095
|
-
};
|
7096
|
-
|
7097
|
-
var TableHeader = function TableHeader(_ref) {
|
7098
|
-
var headerTemplates = _ref.headerTemplates,
|
7099
|
-
filter = _ref.filter,
|
7100
|
-
onSort = _ref.onSort;
|
7101
|
-
var _useTranslation = reactI18next.useTranslation(),
|
7102
|
-
t = _useTranslation.t;
|
7103
|
-
return React__default.createElement(material.TableHead, null, React__default.createElement(material.TableRow, null, headerTemplates.map(function (i, index$1) {
|
7104
|
-
return React__default.createElement(material.TableCell, {
|
7105
|
-
key: index$1,
|
7106
|
-
className: "" + (!!i.sortKey && "pointer"),
|
7107
|
-
onClick: !!i.sortKey ? function () {
|
7108
|
-
return onSort === null || onSort === void 0 ? void 0 : onSort(i.sortKey);
|
7109
|
-
} : undefined
|
7110
|
-
}, React__default.createElement("div", {
|
7111
|
-
className: "d-flex justify-content-between align-items-center text-nowrap"
|
7112
|
-
}, t(i.title), !!i.sortKey && React__default.createElement(SortIcon, {
|
7113
|
-
isAscending: filter.sortColumnName !== i.sortKey ? undefined : filter.sortColumnDirection === OrderType.ASC
|
7114
|
-
})));
|
7115
|
-
})));
|
7116
|
-
};
|
7117
|
-
|
7118
|
-
var SearchInput = function SearchInput(_ref) {
|
7119
|
-
var textSearchRef = _ref.textSearchRef,
|
7120
|
-
_ref$placeholder = _ref.placeholder,
|
7121
|
-
placeholder = _ref$placeholder === void 0 ? "Search for..." : _ref$placeholder,
|
7122
|
-
onChange = _ref.onChange,
|
7123
|
-
_ref$fit = _ref.fit,
|
7124
|
-
fit = _ref$fit === void 0 ? true : _ref$fit;
|
7125
|
-
return React__default.createElement(material.Paper, {
|
7126
|
-
component: "div",
|
7127
|
-
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, {
|
7128
7535
|
sx: {
|
7129
|
-
|
7130
|
-
|
7131
|
-
alignItems: "center",
|
7132
|
-
width: 400,
|
7133
|
-
transition: "border 0.2s ease",
|
7134
|
-
outline: "1px solid transparent",
|
7135
|
-
":focus-within": {
|
7136
|
-
outlineColor: function outlineColor(theme) {
|
7137
|
-
return theme.palette.primary.main;
|
7138
|
-
}
|
7536
|
+
"& td": {
|
7537
|
+
border: 0
|
7139
7538
|
}
|
7140
7539
|
}
|
7141
|
-
}, React__default.createElement(material.
|
7540
|
+
}, React__default.createElement(material.TableCell, {
|
7541
|
+
className: "p-2 pe-0",
|
7142
7542
|
sx: {
|
7143
|
-
|
7144
|
-
}
|
7145
|
-
|
7146
|
-
|
7147
|
-
|
7148
|
-
className: "
|
7149
|
-
})), React__default.createElement(material.
|
7150
|
-
id: "searchText",
|
7151
|
-
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, {
|
7152
7550
|
sx: {
|
7153
|
-
|
7154
|
-
|
7155
|
-
|
7156
|
-
|
7157
|
-
|
7158
|
-
|
7159
|
-
|
7160
|
-
|
7161
|
-
|
7162
|
-
|
7163
|
-
|
7164
|
-
|
7165
|
-
|
7166
|
-
|
7167
|
-
|
7168
|
-
|
7169
|
-
|
7170
|
-
|
7171
|
-
|
7172
|
-
|
7173
|
-
|
7174
|
-
|
7175
|
-
|
7176
|
-
|
7177
|
-
|
7178
|
-
|
7179
|
-
|
7180
|
-
|
7181
|
-
|
7182
|
-
|
7183
|
-
|
7184
|
-
|
7185
|
-
|
7186
|
-
|
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, {
|
7187
7586
|
item: true,
|
7188
|
-
xs:
|
7189
|
-
|
7190
|
-
|
7191
|
-
|
7192
|
-
|
7193
|
-
|
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, {
|
7194
7596
|
item: true,
|
7195
|
-
xs:
|
7196
|
-
|
7197
|
-
|
7597
|
+
xs: 12,
|
7598
|
+
gap: "8px",
|
7599
|
+
className: "d-flex justify-content-end"
|
7198
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,
|
7199
7610
|
startIcon: React__default.createElement(fa.FaPlus, {
|
7200
7611
|
size: 12
|
7201
|
-
})
|
7612
|
+
})
|
7613
|
+
}, React__default.createElement(material.Typography, null, t("create_new_exam"))), !!id && React__default.createElement(material.Button, {
|
7614
|
+
className: "mx-1",
|
7202
7615
|
variant: "contained",
|
7203
7616
|
color: "primary",
|
7204
|
-
|
7205
|
-
}, t("create_textbook")))), React__default.createElement(material.Grid, {
|
7206
|
-
item: true,
|
7207
|
-
xs: 12,
|
7208
|
-
className: "mt-3"
|
7209
|
-
}, React__default.createElement(material.Table, null, React__default.createElement(TableHeader, {
|
7210
|
-
headerTemplates: TEXTBOOK_HEADERS,
|
7211
|
-
filter: filter,
|
7212
|
-
onSort: handleSort
|
7213
|
-
}), React__default.createElement(material.TableBody, null, textbooks.map(function (i, index) {
|
7214
|
-
return React__default.createElement(material.TableRow, {
|
7215
|
-
key: i.id
|
7216
|
-
}, 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, {
|
7217
|
-
direction: "row",
|
7218
|
-
spacing: 1,
|
7219
|
-
alignItems: "center"
|
7220
|
-
}, !i.isCreatedByAdmin && React__default.createElement(material.IconButton, {
|
7221
|
-
color: "default",
|
7222
|
-
className: "bg-warning text-white",
|
7223
|
-
onClick: function onClick() {
|
7224
|
-
return handleUpdateTextbook(i.id);
|
7225
|
-
}
|
7226
|
-
}, React__default.createElement(fa6.FaPencil, {
|
7227
|
-
size: 12
|
7228
|
-
})), React__default.createElement(material.IconButton, {
|
7229
|
-
color: "default",
|
7230
|
-
className: "bg-primary text-white",
|
7231
|
-
onClick: function onClick() {
|
7232
|
-
return handleViewTextbook(i.id);
|
7233
|
-
}
|
7234
|
-
}, React__default.createElement(fa.FaEye, {
|
7235
|
-
size: 12
|
7236
|
-
})), !i.isCreatedByAdmin && React__default.createElement(material.IconButton, {
|
7237
|
-
color: "default",
|
7238
|
-
className: "bg-danger text-white",
|
7239
|
-
onClick: function onClick() {
|
7240
|
-
return handleSelectDeleteTextbook(i);
|
7241
|
-
}
|
7242
|
-
}, React__default.createElement(fa.FaTrash, {
|
7617
|
+
startIcon: React__default.createElement(fa.FaPlus, {
|
7243
7618
|
size: 12
|
7244
|
-
})
|
7245
|
-
|
7246
|
-
|
7247
|
-
},
|
7248
|
-
|
7249
|
-
|
7250
|
-
|
7251
|
-
|
7252
|
-
|
7253
|
-
|
7254
|
-
|
7255
|
-
|
7256
|
-
|
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,
|
7257
7671
|
isDelete: true
|
7258
7672
|
}));
|
7259
7673
|
};
|
7260
7674
|
|
7261
|
-
|
7262
|
-
|
7263
|
-
var
|
7264
|
-
|
7265
|
-
|
7266
|
-
TextbookDetail: TextbookViewDetail
|
7267
|
-
};
|
7268
|
-
|
7269
|
-
var _excluded$4 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
|
7270
|
-
var CustomCreatable = function CustomCreatable(_ref) {
|
7271
|
-
var options = _ref.options,
|
7272
|
-
isDisabled = _ref.isDisabled,
|
7273
|
-
scrollBottom = _ref.scrollBottom,
|
7274
|
-
value = _ref.value,
|
7275
|
-
isMulti = _ref.isMulti,
|
7276
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
7277
|
-
var initialValues = Array.isArray(value) ? options.filter(function (i) {
|
7278
|
-
return value.includes(i.value);
|
7279
|
-
}) : isMulti ? options.filter(function (i) {
|
7280
|
-
return i.value == value;
|
7281
|
-
}) : options.find(function (i) {
|
7282
|
-
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;
|
7283
7680
|
});
|
7284
|
-
|
7285
|
-
|
7286
|
-
|
7287
|
-
|
7288
|
-
|
7289
|
-
|
7290
|
-
|
7291
|
-
|
7292
|
-
|
7293
|
-
|
7294
|
-
|
7295
|
-
|
7296
|
-
|
7297
|
-
options = _ref.options,
|
7298
|
-
isDisabled = _ref.isDisabled,
|
7299
|
-
scrollBottom = _ref.scrollBottom,
|
7300
|
-
value = _ref.value,
|
7301
|
-
isMulti = _ref.isMulti,
|
7302
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
7303
|
-
var initialValues = Array.isArray(value) ? options.filter(function (i) {
|
7304
|
-
return value.includes(i.value);
|
7305
|
-
}) : isMulti ? options.filter(function (i) {
|
7306
|
-
return i.value == value;
|
7307
|
-
}) : options.find(function (i) {
|
7308
|
-
return i.value == value;
|
7309
|
-
});
|
7310
|
-
return React__default.createElement(Select__default, Object.assign({
|
7311
|
-
isDisabled: isDisabled,
|
7312
|
-
options: options,
|
7313
|
-
value: !isDefault ? initialValues : undefined,
|
7314
|
-
defaultValue: isDefault ? initialValues : undefined,
|
7315
|
-
menuPlacement: scrollBottom ? "top" : "auto",
|
7316
|
-
isMulti: isMulti
|
7317
|
-
}, rest));
|
7318
|
-
};
|
7319
|
-
|
7320
|
-
var DURATION_OPTIONS = Array.from({
|
7321
|
-
length: 120
|
7322
|
-
}, function (_, i) {
|
7323
|
-
return i + 1;
|
7324
|
-
});
|
7325
|
-
var DEFAULT_ANSWER_COUNT = 5;
|
7326
|
-
|
7327
|
-
var useExamDetailView = function useExamDetailView(props) {
|
7328
|
-
var exam = props.exam,
|
7329
|
-
selectedSubject = props.selectedSubject,
|
7330
|
-
onChangeExam = props.onChangeExam;
|
7331
|
-
var _useTranslation = reactI18next.useTranslation(),
|
7332
|
-
t = _useTranslation.t;
|
7333
|
-
var handleChangeQuestionCount = function handleChangeQuestionCount(article, questionCount, answerCount) {
|
7334
|
-
if (!exam) return;
|
7335
|
-
var examQuestions = exam.questions;
|
7336
|
-
var questions = examQuestions.filter(function (i) {
|
7337
|
-
return i.article === +article;
|
7338
|
-
});
|
7339
|
-
var prevQuestions = examQuestions.filter(function (i) {
|
7340
|
-
return i.article < +article;
|
7341
|
-
});
|
7342
|
-
var nextQuestions = examQuestions.filter(function (i) {
|
7343
|
-
return i.article > +article;
|
7344
|
-
});
|
7345
|
-
var lastOrder = questions[questions.length - 1].questionOrder;
|
7346
|
-
if (questions.length === questionCount) return;
|
7347
|
-
if (questions.length < questionCount) {
|
7348
|
-
var additionalQuestions = Array.from({
|
7349
|
-
length: questionCount - questions.length
|
7350
|
-
}).map(function (_, index) {
|
7351
|
-
var _questions$;
|
7352
|
-
return {
|
7353
|
-
article: +article,
|
7354
|
-
correctAnswers: [1],
|
7355
|
-
numberOfAnswers: answerCount,
|
7356
|
-
categoryId: (_questions$ = questions[0]) === null || _questions$ === void 0 ? void 0 : _questions$.categoryId,
|
7357
|
-
score: DEFAULT_SCORE,
|
7358
|
-
questionOrder: lastOrder + index + 1
|
7359
|
-
};
|
7360
|
-
});
|
7361
|
-
var newQuestions = [].concat(prevQuestions, questions, additionalQuestions, nextQuestions.map(function (i) {
|
7362
|
-
return _extends({}, i, {
|
7363
|
-
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: ""
|
7364
7694
|
});
|
7365
|
-
}
|
7366
|
-
|
7367
|
-
|
7368
|
-
|
7695
|
+
}
|
7696
|
+
if (domain) {
|
7697
|
+
searchParams.append("domain", domain);
|
7698
|
+
pushTo({
|
7699
|
+
pathname: homeUrl,
|
7700
|
+
search: ""
|
7701
|
+
});
|
7702
|
+
}
|
7369
7703
|
} else {
|
7370
|
-
|
7371
|
-
|
7372
|
-
|
7373
|
-
|
7704
|
+
if (superUrls.some(function (i) {
|
7705
|
+
return pathname.startsWith(i);
|
7706
|
+
})) {
|
7707
|
+
pushTo({
|
7708
|
+
pathname: homeAcademyUrl,
|
7709
|
+
search: ""
|
7374
7710
|
});
|
7375
|
-
}
|
7376
|
-
|
7377
|
-
|
7378
|
-
}
|
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
|
+
}
|
7379
7721
|
}
|
7380
7722
|
};
|
7381
|
-
var
|
7382
|
-
if (
|
7383
|
-
var examQuestions = exam.questions;
|
7384
|
-
var questions = examQuestions.filter(function (i) {
|
7385
|
-
return i.article === +article;
|
7386
|
-
});
|
7387
|
-
var otherQuestions = examQuestions.filter(function (i) {
|
7388
|
-
return i.article !== +article;
|
7389
|
-
});
|
7390
|
-
onChangeExam(_extends({}, exam, {
|
7391
|
-
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7392
|
-
return _extends({}, q, {
|
7393
|
-
categoryId: categoryId
|
7394
|
-
});
|
7395
|
-
}))
|
7396
|
-
}));
|
7723
|
+
var pushTo = function pushTo(data) {
|
7724
|
+
if (history.push) history.push(data);else history(data);
|
7397
7725
|
};
|
7398
|
-
|
7399
|
-
|
7400
|
-
|
7401
|
-
|
7402
|
-
|
7403
|
-
|
7404
|
-
|
7405
|
-
|
7406
|
-
|
7407
|
-
|
7408
|
-
|
7409
|
-
|
7410
|
-
|
7411
|
-
|
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");
|
7412
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
|
7413
7786
|
});
|
7414
|
-
|
7415
|
-
|
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
|
7416
7792
|
}));
|
7417
7793
|
};
|
7418
|
-
var
|
7419
|
-
if (!
|
7420
|
-
|
7421
|
-
|
7422
|
-
var questions = examQuestions.filter(function (i) {
|
7423
|
-
return i.article === +article;
|
7424
|
-
});
|
7425
|
-
var otherQuestions = examQuestions.filter(function (i) {
|
7426
|
-
return i.article !== +article;
|
7427
|
-
});
|
7428
|
-
if (answerCount < newAnswerCount) {
|
7429
|
-
onChangeExam(_extends({}, exam, {
|
7430
|
-
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7431
|
-
return _extends({}, q, {
|
7432
|
-
numberOfAnswers: newAnswerCount
|
7433
|
-
});
|
7434
|
-
}))
|
7435
|
-
}));
|
7436
|
-
} else {
|
7437
|
-
onChangeExam(_extends({}, exam, {
|
7438
|
-
questions: [].concat(otherQuestions, questions.map(function (q) {
|
7439
|
-
var _q$correctAnswers;
|
7440
|
-
return _extends({}, q, {
|
7441
|
-
numberOfAnswers: newAnswerCount,
|
7442
|
-
correctAnswers: (_q$correctAnswers = q.correctAnswers) === null || _q$correctAnswers === void 0 ? void 0 : _q$correctAnswers.filter(function (i) {
|
7443
|
-
return i <= newAnswerCount;
|
7444
|
-
})
|
7445
|
-
});
|
7446
|
-
}))
|
7447
|
-
}));
|
7448
|
-
}
|
7794
|
+
var handleChangeSearchText = function handleChangeSearchText(e) {
|
7795
|
+
if (!textSearchRef.current) return;
|
7796
|
+
textSearchRef.current.value = e.target.value.trim();
|
7797
|
+
debounceSearch();
|
7449
7798
|
};
|
7450
|
-
var
|
7451
|
-
|
7452
|
-
|
7453
|
-
var questions = examQuestions.filter(function (i) {
|
7454
|
-
return i.article === +article;
|
7455
|
-
});
|
7456
|
-
var otherQuestions = examQuestions.filter(function (i) {
|
7457
|
-
return i.article !== +article;
|
7458
|
-
});
|
7459
|
-
var selectedQuestion = questions[index];
|
7460
|
-
onChangeExam(_extends({}, exam, {
|
7461
|
-
questions: [].concat(otherQuestions, questions.slice(0, index), [_extends({}, selectedQuestion, {
|
7462
|
-
correctAnswers: [answer]
|
7463
|
-
})], questions.slice(index + 1))
|
7799
|
+
var handleChangePage = function handleChangePage(_, page) {
|
7800
|
+
setFilter(_extends({}, filter, {
|
7801
|
+
currentPage: page
|
7464
7802
|
}));
|
7465
7803
|
};
|
7466
|
-
var
|
7467
|
-
|
7468
|
-
|
7469
|
-
|
7470
|
-
|
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
|
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
|
7471
7864
|
});
|
7472
|
-
|
7473
|
-
|
7865
|
+
};
|
7866
|
+
var handleUpdateTextbook = function handleUpdateTextbook(id) {
|
7867
|
+
navigate(textbookUrl + "/" + id, {
|
7868
|
+
replace: true
|
7474
7869
|
});
|
7475
|
-
var selectedQuestion = questions[index];
|
7476
|
-
if (score === selectedQuestion.score) return;
|
7477
|
-
onChangeExam(_extends({}, exam, {
|
7478
|
-
questions: [].concat(otherQuestions, questions.slice(0, index), [_extends({}, selectedQuestion, {
|
7479
|
-
score: score
|
7480
|
-
})], questions.slice(index + 1))
|
7481
|
-
}));
|
7482
7870
|
};
|
7483
|
-
var
|
7484
|
-
|
7485
|
-
|
7486
|
-
|
7487
|
-
}));
|
7871
|
+
var handleCreateTextbook = function handleCreateTextbook() {
|
7872
|
+
navigate(textbookUrl + "/create", {
|
7873
|
+
replace: true
|
7874
|
+
});
|
7488
7875
|
};
|
7489
|
-
var
|
7490
|
-
|
7491
|
-
onChangeExam(_extends({}, exam, {
|
7492
|
-
title: e.target.value
|
7493
|
-
}));
|
7876
|
+
var toggleConfirmDialog = function toggleConfirmDialog() {
|
7877
|
+
handleChangeSelectedItem(undefined);
|
7494
7878
|
};
|
7495
|
-
var
|
7496
|
-
|
7497
|
-
if (!exam) return;
|
7498
|
-
var maxArticle = ((_$maxBy = _.maxBy(exam.questions, "article")) === null || _$maxBy === void 0 ? void 0 : _$maxBy.article) || 0;
|
7499
|
-
var maxOrder = ((_$maxBy2 = _.maxBy(exam.questions, "questionOrder")) === null || _$maxBy2 === void 0 ? void 0 : _$maxBy2.questionOrder) || 0;
|
7500
|
-
onChangeExam(_extends({}, exam, {
|
7501
|
-
questions: [].concat(exam.questions, [{
|
7502
|
-
article: maxArticle + 1,
|
7503
|
-
correctAnswers: [1],
|
7504
|
-
numberOfAnswers: DEFAULT_ANSWER_COUNT,
|
7505
|
-
score: DEFAULT_SCORE,
|
7506
|
-
questionOrder: maxOrder + 1
|
7507
|
-
}])
|
7508
|
-
}));
|
7879
|
+
var handleSelectDeleteTextbook = function handleSelectDeleteTextbook(textbook) {
|
7880
|
+
return [handleChangeSelectedItem(textbook)];
|
7509
7881
|
};
|
7510
|
-
var
|
7511
|
-
|
7512
|
-
|
7513
|
-
|
7514
|
-
|
7515
|
-
if (
|
7516
|
-
|
7517
|
-
|
7518
|
-
|
7519
|
-
|
7520
|
-
|
7521
|
-
|
7522
|
-
})) === null || _questions$find === void 0 ? void 0 : _questions$find.categoryId,
|
7523
|
-
answerCount: ((_$maxBy3 = _.maxBy(questions, "numberOfAnswers")) === null || _$maxBy3 === void 0 ? void 0 : _$maxBy3.numberOfAnswers) || DEFAULT_ANSWER_COUNT,
|
7524
|
-
questionCount: questions.length,
|
7525
|
-
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
|
+
});
|
7526
7894
|
});
|
7527
|
-
}
|
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);
|
7528
7902
|
}
|
7529
|
-
|
7530
|
-
}, [JSON.stringify(exam)]);
|
7531
|
-
var durationOptions = React.useMemo(function () {
|
7532
|
-
var options = DURATION_OPTIONS.map(function (i) {
|
7533
|
-
return {
|
7534
|
-
label: i + "\uBD84",
|
7535
|
-
value: i
|
7536
|
-
};
|
7537
|
-
});
|
7538
|
-
if (!!exam.duration && exam.duration > DURATION_OPTIONS[DURATION_OPTIONS.length - 1]) return [].concat(options, [{
|
7539
|
-
label: exam.duration + "\uBD84",
|
7540
|
-
value: exam.duration
|
7541
|
-
}]);
|
7542
|
-
return options;
|
7543
|
-
}, [exam.duration]);
|
7544
|
-
React.useEffect(function () {
|
7545
|
-
if ((selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) !== exam.subjectId) onChangeExam(_extends({}, exam, {
|
7546
|
-
subjectId: (selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) || 0
|
7547
|
-
}));
|
7548
|
-
}, [selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id, exam.subjectId]);
|
7903
|
+
};
|
7549
7904
|
return {
|
7550
|
-
|
7551
|
-
|
7552
|
-
|
7553
|
-
|
7554
|
-
|
7555
|
-
|
7556
|
-
|
7557
|
-
|
7558
|
-
|
7559
|
-
|
7560
|
-
|
7561
|
-
|
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
|
7562
7920
|
};
|
7563
7921
|
};
|
7564
7922
|
|
7565
|
-
var
|
7566
|
-
var
|
7567
|
-
|
7568
|
-
|
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
|
8049
|
+
}, React__default.createElement(material.Grid, {
|
8050
|
+
item: true,
|
8051
|
+
xs: 6
|
8052
|
+
}, React__default.createElement(SearchInput, {
|
8053
|
+
textSearchRef: textSearchRef,
|
8054
|
+
onChange: handleChangeSearchText,
|
8055
|
+
placeholder: t(TEXT_BOOK_SEARCH_PLACEHOLDER)
|
8056
|
+
})), React__default.createElement(material.Grid, {
|
8057
|
+
item: true,
|
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, {
|
8069
|
+
item: true,
|
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,
|
7569
8135
|
isDisabled = _ref.isDisabled,
|
7570
|
-
|
7571
|
-
|
7572
|
-
|
7573
|
-
|
7574
|
-
|
7575
|
-
|
7576
|
-
|
7577
|
-
|
7578
|
-
|
7579
|
-
|
7580
|
-
|
7581
|
-
|
7582
|
-
|
7583
|
-
|
7584
|
-
|
7585
|
-
|
7586
|
-
|
7587
|
-
|
7588
|
-
|
7589
|
-
|
7590
|
-
|
7591
|
-
|
7592
|
-
|
7593
|
-
|
7594
|
-
|
7595
|
-
|
7596
|
-
|
7597
|
-
|
7598
|
-
|
7599
|
-
|
7600
|
-
|
7601
|
-
|
7602
|
-
|
7603
|
-
|
7604
|
-
}
|
7605
|
-
|
7606
|
-
|
7607
|
-
|
7608
|
-
|
7609
|
-
|
7610
|
-
|
7611
|
-
|
7612
|
-
|
7613
|
-
|
7614
|
-
|
7615
|
-
}, React__default.createElement("label", {
|
7616
|
-
className: styleGlobal["form-label"] + " " + styles$1["question-label"],
|
7617
|
-
htmlFor: "duration"
|
7618
|
-
}, t("duration")), React__default.createElement(CustomSelect, {
|
7619
|
-
inputId: "duration",
|
7620
|
-
value: exam.duration,
|
7621
|
-
options: durationOptions,
|
7622
|
-
onChange: handleChangeDuration,
|
7623
|
-
isDisabled: isDisabled
|
7624
|
-
})), React__default.createElement(material.Grid, {
|
7625
|
-
item: true,
|
7626
|
-
xs: 3,
|
7627
|
-
className: 'mb-2'
|
7628
|
-
}, React__default.createElement("label", {
|
7629
|
-
className: styleGlobal["form-label"] + " " + styles$1["question-label"],
|
7630
|
-
htmlFor: "duration"
|
7631
|
-
}, t("subject"), " ", selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.name), React__default.createElement(CustomSelect, {
|
7632
|
-
inputId: "subject",
|
7633
|
-
value: selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id,
|
7634
|
-
options: subjectOptions,
|
7635
|
-
onChange: handleChangeSubject,
|
7636
|
-
isDisabled: isDisabled || isEdit
|
7637
|
-
})), examGroupByArticle.map(function (i, index) {
|
7638
|
-
return React__default.createElement(material.Grid, {
|
7639
|
-
item: true,
|
7640
|
-
key: i.article,
|
7641
|
-
xs: 12,
|
7642
|
-
className: index === examGroupByArticle.length - 1 ? "mb-2" : ''
|
7643
|
-
}, React__default.createElement(ArticleGroupView, Object.assign({}, i, {
|
7644
|
-
isActive: index === examGroupByArticle.length - 1,
|
7645
|
-
onChangeQuestionCount: handleChangeQuestionCount,
|
7646
|
-
onChangeCategory: handleChangeCategory,
|
7647
|
-
onChangeAnswerCount: handleChangeAnswerCount,
|
7648
|
-
onChangeCorrectAnswers: handleChangeCorrectAnswers,
|
7649
|
-
onChangeScoreAnswer: handleChangeScoreAnswer,
|
7650
|
-
onDelete: handleDeleteArticle,
|
7651
|
-
isDisabled: isDisabled,
|
7652
|
-
selectedSubject: selectedSubject,
|
7653
|
-
isDeletable: examGroupByArticle.length > 1
|
7654
|
-
})));
|
7655
|
-
}), React__default.createElement(material.Grid, {
|
7656
|
-
item: true,
|
7657
|
-
xs: 12
|
7658
|
-
}, React__default.createElement("button", {
|
7659
|
-
disabled: isDisabled,
|
7660
|
-
className: styleGlobal["btn-outline-primary"] + " w-100 d-flex justify-content-center align-items-center " + styles$1["question-btn"] + " mt-3",
|
7661
|
-
onClick: handleAddArticle
|
7662
|
-
}, React__default.createElement(fa.FaPlusCircle, {
|
7663
|
-
className: "me-2"
|
7664
|
-
}), "\uBB38\uD56D \uCD94\uAC00\uD558\uAE30")));
|
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));
|
7665
8181
|
};
|
7666
8182
|
|
7667
8183
|
var EXAM_SESSION_URL = BASE_URL + "/api/examSession";
|
@@ -7719,16 +8235,16 @@ var ORDER_NUMBERS = {
|
|
7719
8235
|
10: "the_tenth"
|
7720
8236
|
};
|
7721
8237
|
var TabList = [{
|
7722
|
-
label: "
|
8238
|
+
label: "comprehensive_analysis",
|
7723
8239
|
value: 0
|
7724
8240
|
}, {
|
7725
|
-
label: "
|
8241
|
+
label: "solution_order",
|
7726
8242
|
value: 1
|
7727
8243
|
}, {
|
7728
|
-
label: "
|
8244
|
+
label: "compare_solution",
|
7729
8245
|
value: 2
|
7730
8246
|
}, {
|
7731
|
-
label: "
|
8247
|
+
label: "problem_analysis",
|
7732
8248
|
value: 3
|
7733
8249
|
}];
|
7734
8250
|
var Roles$2;
|
@@ -8590,7 +9106,7 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
|
|
8590
9106
|
var questions = ((_timelyOrderQuestion$ = timelyOrderQuestion[dataChartIndex]) === null || _timelyOrderQuestion$ === void 0 ? void 0 : _timelyOrderQuestion$.questions) || null;
|
8591
9107
|
var questionLength = (_questions$length = questions === null || questions === void 0 ? void 0 : questions.length) != null ? _questions$length : 0;
|
8592
9108
|
return val != null ? t("problem_number_question", {
|
8593
|
-
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
|
8594
9110
|
}) : t("no_data");
|
8595
9111
|
}
|
8596
9112
|
return null;
|
@@ -8657,7 +9173,7 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
|
|
8657
9173
|
var questions = ((_timelyOrderQuestion$2 = timelyOrderQuestion[dataChartIndex]) === null || _timelyOrderQuestion$2 === void 0 ? void 0 : _timelyOrderQuestion$2.questions) || null;
|
8658
9174
|
var questionLength = (_questions$length2 = questions === null || questions === void 0 ? void 0 : questions.length) != null ? _questions$length2 : 0;
|
8659
9175
|
return val != null ? t("problem_number_question", {
|
8660
|
-
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
|
8661
9177
|
}) : t("no_data");
|
8662
9178
|
},
|
8663
9179
|
style: {
|
@@ -8685,15 +9201,23 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
|
|
8685
9201
|
topAnswerOrder: i.topAnswerOrder == null ? 0 : i.topAnswerOrder
|
8686
9202
|
});
|
8687
9203
|
});
|
8688
|
-
var mySeriesData = [null].concat(questionsData.
|
8689
|
-
return
|
8690
|
-
}).map(function (item) {
|
8691
|
-
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;
|
8692
9212
|
}), [null]);
|
8693
|
-
var topSeriesData = [null].concat(questionsData.
|
8694
|
-
return
|
8695
|
-
}).map(function (item) {
|
8696
|
-
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;
|
8697
9221
|
}), [null]);
|
8698
9222
|
return [{
|
8699
9223
|
name: t("my_problem_solving_order"),
|
@@ -9859,7 +10383,7 @@ Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==t
|
|
9859
10383
|
|
9860
10384
|
var ReactApexChart = unwrapExports(reactApexcharts_min);
|
9861
10385
|
|
9862
|
-
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"};
|
9863
10387
|
|
9864
10388
|
var iconStarQuestion = function iconStarQuestion(_ref) {
|
9865
10389
|
var _ref$width = _ref.width,
|
@@ -10150,7 +10674,7 @@ function CreateNewQuestionDialog(_ref) {
|
|
10150
10674
|
padding: "24px 24px 40px 24px"
|
10151
10675
|
}, React__default.createElement(material.Stack, null, React__default.createElement("label", {
|
10152
10676
|
htmlFor: "questions",
|
10153
|
-
className:
|
10677
|
+
className: styles['form-label'] + " " + styles$4['form-label-dialog']
|
10154
10678
|
}, "\uC9C8\uBB38\uD560 \uBB38\uC81C"), React__default.createElement(formik.Field, {
|
10155
10679
|
as: "select",
|
10156
10680
|
id: "questions",
|
@@ -10158,7 +10682,7 @@ function CreateNewQuestionDialog(_ref) {
|
|
10158
10682
|
style: {
|
10159
10683
|
width: "100%"
|
10160
10684
|
},
|
10161
|
-
className: "" +
|
10685
|
+
className: "" + styles['form-select']
|
10162
10686
|
}, questions === null || questions === void 0 ? void 0 : questions.map(function (question) {
|
10163
10687
|
return React__default.createElement("option", {
|
10164
10688
|
value: question === null || question === void 0 ? void 0 : question.id
|
@@ -10167,7 +10691,7 @@ function CreateNewQuestionDialog(_ref) {
|
|
10167
10691
|
}));
|
10168
10692
|
}))), React__default.createElement(material.Stack, null, React__default.createElement("label", {
|
10169
10693
|
htmlFor: "content-question",
|
10170
|
-
className:
|
10694
|
+
className: styles['form-label'] + " " + styles$4['form-label-dialog']
|
10171
10695
|
}, "\uC9C8\uBB38 \uB0B4\uC6A9"), React__default.createElement(material.Box, {
|
10172
10696
|
position: 'relative',
|
10173
10697
|
display: 'flex',
|
@@ -10180,7 +10704,7 @@ function CreateNewQuestionDialog(_ref) {
|
|
10180
10704
|
},
|
10181
10705
|
name: "content",
|
10182
10706
|
placeholder: "\uBB38\uC81C\uAC00 \uC5B4\uB824\uC6CC\uC694",
|
10183
|
-
className:
|
10707
|
+
className: styles['form-control']
|
10184
10708
|
}), (errors === null || errors === void 0 ? void 0 : errors.content) && React__default.createElement(material.Box, {
|
10185
10709
|
position: 'absolute',
|
10186
10710
|
right: 0,
|
@@ -10203,14 +10727,14 @@ function CreateNewQuestionDialog(_ref) {
|
|
10203
10727
|
borderTop: "1px solid #CED2DA"
|
10204
10728
|
}
|
10205
10729
|
}, React__default.createElement(Button, {
|
10206
|
-
className: styles$
|
10730
|
+
className: styles$4['btn-cancel'],
|
10207
10731
|
onClick: toggleCreateQuestion
|
10208
10732
|
}, React__default.createElement(Typography, {
|
10209
10733
|
fontWeight: 700,
|
10210
10734
|
fontSize: '14px',
|
10211
10735
|
lineHeight: '16.71px'
|
10212
10736
|
}, "\uCDE8\uC18C")), React__default.createElement(Button, {
|
10213
|
-
className: styles$
|
10737
|
+
className: styles$4['btn-register'],
|
10214
10738
|
type: "submit"
|
10215
10739
|
}, React__default.createElement(Typography, {
|
10216
10740
|
fontWeight: 700,
|
@@ -10242,7 +10766,7 @@ function MyAnswer(_ref) {
|
|
10242
10766
|
toggleCreateQuestion();
|
10243
10767
|
};
|
10244
10768
|
return React__default.createElement("div", {
|
10245
|
-
className: styles$
|
10769
|
+
className: styles$4["myanswer"]
|
10246
10770
|
}, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
|
10247
10771
|
return React__default.createElement("div", {
|
10248
10772
|
key: item.category.id
|
@@ -10250,9 +10774,9 @@ function MyAnswer(_ref) {
|
|
10250
10774
|
bgcolor: "#F9FAFB",
|
10251
10775
|
flexDirection: "row",
|
10252
10776
|
padding: "12px",
|
10253
|
-
className: styles$
|
10777
|
+
className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
|
10254
10778
|
}, React__default.createElement("div", {
|
10255
|
-
className:
|
10779
|
+
className: styles["custom-col-2"],
|
10256
10780
|
style: {
|
10257
10781
|
display: "flex",
|
10258
10782
|
gap: "4px"
|
@@ -10264,7 +10788,7 @@ function MyAnswer(_ref) {
|
|
10264
10788
|
color: "#97A1AF"
|
10265
10789
|
}
|
10266
10790
|
}, "\uBB38\uC81C \uBC88\uD638")), React__default.createElement("div", {
|
10267
|
-
className:
|
10791
|
+
className: styles["custom-col-2"],
|
10268
10792
|
style: {
|
10269
10793
|
display: "flex",
|
10270
10794
|
gap: "4px"
|
@@ -10276,7 +10800,7 @@ function MyAnswer(_ref) {
|
|
10276
10800
|
color: "#97A1AF"
|
10277
10801
|
}
|
10278
10802
|
}, "\uC815\uB2F5")), React__default.createElement("div", {
|
10279
|
-
className:
|
10803
|
+
className: styles["custom-col-2"],
|
10280
10804
|
style: {
|
10281
10805
|
display: "flex",
|
10282
10806
|
gap: "4px"
|
@@ -10288,7 +10812,7 @@ function MyAnswer(_ref) {
|
|
10288
10812
|
color: "#97A1AF"
|
10289
10813
|
}
|
10290
10814
|
}, "\uD480\uC774 \uC2DC\uAC04")), React__default.createElement("div", {
|
10291
|
-
className:
|
10815
|
+
className: styles["custom-col-2"],
|
10292
10816
|
style: {
|
10293
10817
|
display: "flex",
|
10294
10818
|
alignItems: "center",
|
@@ -10301,7 +10825,7 @@ function MyAnswer(_ref) {
|
|
10301
10825
|
color: "#97A1AF"
|
10302
10826
|
}
|
10303
10827
|
}, "\uC0C1\uC704\uAD8C \uBE44\uAD50")), React__default.createElement("div", {
|
10304
|
-
className:
|
10828
|
+
className: styles["custom-col-2"],
|
10305
10829
|
style: {
|
10306
10830
|
display: "flex",
|
10307
10831
|
alignItems: "center",
|
@@ -10314,7 +10838,7 @@ function MyAnswer(_ref) {
|
|
10314
10838
|
color: "#97A1AF"
|
10315
10839
|
}
|
10316
10840
|
}, "\uC804\uCCB4 \uC815\uB2F5\uB960"))), React__default.createElement("div", {
|
10317
|
-
className: styles$
|
10841
|
+
className: styles$4["titleMyAnswer2"]
|
10318
10842
|
}, React__default.createElement(material.Typography, {
|
10319
10843
|
sx: {
|
10320
10844
|
color: "#97A1AF",
|
@@ -10327,7 +10851,7 @@ function MyAnswer(_ref) {
|
|
10327
10851
|
fontWeight: 700
|
10328
10852
|
}
|
10329
10853
|
}, item.category.name)), React__default.createElement("div", {
|
10330
|
-
className: styles$
|
10854
|
+
className: styles$4["contentMyAnswer"]
|
10331
10855
|
}, item.questions.map(function (question, index) {
|
10332
10856
|
return React__default.createElement("div", {
|
10333
10857
|
style: isOpenTime[question.id] ? {
|
@@ -10336,9 +10860,9 @@ function MyAnswer(_ref) {
|
|
10336
10860
|
} : {},
|
10337
10861
|
key: question.id
|
10338
10862
|
}, React__default.createElement("div", {
|
10339
|
-
className: styles$
|
10863
|
+
className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
|
10340
10864
|
}, React__default.createElement("div", {
|
10341
|
-
className:
|
10865
|
+
className: styles["custom-col-2"],
|
10342
10866
|
style: {
|
10343
10867
|
display: "flex",
|
10344
10868
|
alignItems: "center",
|
@@ -10346,22 +10870,22 @@ function MyAnswer(_ref) {
|
|
10346
10870
|
padding: "4px 8px"
|
10347
10871
|
}
|
10348
10872
|
}, question.isStar ? React__default.createElement(iconStarQuestion, null) : React__default.createElement(iconNoStarQuestion, null), React__default.createElement("span", {
|
10349
|
-
className: styles$
|
10873
|
+
className: styles$4["questionOrder"]
|
10350
10874
|
}, question.questionOrder + 1, "\uBC88")), React__default.createElement("div", {
|
10351
|
-
className:
|
10875
|
+
className: styles["custom-col-2"],
|
10352
10876
|
style: {
|
10353
10877
|
display: "flex",
|
10354
10878
|
alignItems: "center",
|
10355
10879
|
gap: "4px"
|
10356
10880
|
}
|
10357
10881
|
}, question.isCorrect && question.selectedAnswers !== "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
|
10358
|
-
className: styles$
|
10882
|
+
className: styles$4["answerCorrect"]
|
10359
10883
|
}, "\uC815\uB2F5")), !question.isCorrect && question.selectedAnswers !== "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
|
10360
|
-
className: styles$
|
10884
|
+
className: styles$4["answerIncorrect"]
|
10361
10885
|
}, "\uC624\uB2F5")), question.selectedAnswers === "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
|
10362
|
-
className: styles$
|
10886
|
+
className: styles$4["answerNograss"]
|
10363
10887
|
}, "\uD480\uC774 \uC5C6\uC74C"))), React__default.createElement("div", {
|
10364
|
-
className:
|
10888
|
+
className: styles["custom-col-2"],
|
10365
10889
|
style: {
|
10366
10890
|
display: "flex",
|
10367
10891
|
alignItems: "center"
|
@@ -10370,14 +10894,14 @@ function MyAnswer(_ref) {
|
|
10370
10894
|
style: {
|
10371
10895
|
margin: 0
|
10372
10896
|
},
|
10373
|
-
className: styles$
|
10897
|
+
className: styles$4["answer-response"] + " " + styles$4["answer-response-" + question.answerResponseSignal]
|
10374
10898
|
}, formatTimeSecond(Math.round(question.duration), t)) : React__default.createElement("p", {
|
10375
10899
|
style: {
|
10376
10900
|
margin: 0
|
10377
10901
|
},
|
10378
|
-
className: styles$
|
10902
|
+
className: styles$4["answerNoTime"]
|
10379
10903
|
}, "\uC2DC\uAC04 \uC5C6\uC74C")), React__default.createElement("div", {
|
10380
|
-
className:
|
10904
|
+
className: styles["custom-col-2"],
|
10381
10905
|
style: {
|
10382
10906
|
display: "flex",
|
10383
10907
|
alignItems: "center"
|
@@ -10386,15 +10910,15 @@ function MyAnswer(_ref) {
|
|
10386
10910
|
style: {
|
10387
10911
|
margin: 0
|
10388
10912
|
},
|
10389
|
-
className: styles$
|
10913
|
+
className: styles$4["answer-response"] + " " + styles$4["answer-response-" + question.answerResponseSignal]
|
10390
10914
|
}, formatTimeSecond(Math.round(question.topDuration - question.duration), t)) : React__default.createElement("p", {
|
10391
10915
|
style: {
|
10392
10916
|
margin: 0,
|
10393
10917
|
textAlign: "center"
|
10394
10918
|
},
|
10395
|
-
className: styles$
|
10919
|
+
className: styles$4["answerNoTime"]
|
10396
10920
|
}, "-")), React__default.createElement("div", {
|
10397
|
-
className:
|
10921
|
+
className: styles["custom-col-2"],
|
10398
10922
|
style: {
|
10399
10923
|
display: "flex",
|
10400
10924
|
alignItems: "center"
|
@@ -10403,14 +10927,14 @@ function MyAnswer(_ref) {
|
|
10403
10927
|
style: {
|
10404
10928
|
margin: 0
|
10405
10929
|
},
|
10406
|
-
className: styles$
|
10407
|
-
}, 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", {
|
10408
10932
|
style: {
|
10409
10933
|
margin: 0
|
10410
10934
|
},
|
10411
|
-
className: styles$
|
10935
|
+
className: styles$4["answerNoTime"]
|
10412
10936
|
}, "\uC2DC\uAC04 \uC5C6\uC74C")), isStudent && React__default.createElement("div", {
|
10413
|
-
className:
|
10937
|
+
className: styles["custom-col-2"],
|
10414
10938
|
style: {
|
10415
10939
|
display: "flex",
|
10416
10940
|
alignItems: "center",
|
@@ -10479,11 +11003,11 @@ var iconBtnNextChart = function iconBtnNextChart(_ref) {
|
|
10479
11003
|
function CompareGrass(_ref) {
|
10480
11004
|
var effectSize = _ref.effectSize;
|
10481
11005
|
return React__default.createElement("div", {
|
10482
|
-
className: styles$
|
11006
|
+
className: styles$4["compareGrass"]
|
10483
11007
|
}, React__default.createElement("div", {
|
10484
|
-
className: styles$
|
11008
|
+
className: styles$4["tableCompareGrass"]
|
10485
11009
|
}, React__default.createElement("div", {
|
10486
|
-
className: styles$
|
11010
|
+
className: styles$4["table-responsive"]
|
10487
11011
|
}, React__default.createElement(material.Table, {
|
10488
11012
|
style: {
|
10489
11013
|
width: "100%"
|
@@ -10493,7 +11017,7 @@ function CompareGrass(_ref) {
|
|
10493
11017
|
borderBottom: "1px solid #E4E7EC"
|
10494
11018
|
}
|
10495
11019
|
}, React__default.createElement("tr", null, React__default.createElement("th", {
|
10496
|
-
className: styles$
|
11020
|
+
className: styles$4["thcolumn1"]
|
10497
11021
|
}, "\uBB38\uC81C \uBC88\uD638"), React__default.createElement("th", {
|
10498
11022
|
style: {
|
10499
11023
|
textAlign: "center"
|
@@ -10517,14 +11041,14 @@ function CompareGrass(_ref) {
|
|
10517
11041
|
borderBottom: "1px solid #e4e7ec"
|
10518
11042
|
} : {}
|
10519
11043
|
}, React__default.createElement("td", {
|
10520
|
-
className: styles$
|
11044
|
+
className: styles$4["tdcolumn1"]
|
10521
11045
|
}, "\uBB38\uC81C ", item.questionOrder + 1), React__default.createElement("td", {
|
10522
11046
|
style: {
|
10523
11047
|
textAlign: "center",
|
10524
11048
|
color: "#202B37"
|
10525
11049
|
}
|
10526
11050
|
}, item.correctAnswers, "\uBC88"), React__default.createElement("td", {
|
10527
|
-
className: styles$
|
11051
|
+
className: styles$4["tdcolumn3"],
|
10528
11052
|
style: {
|
10529
11053
|
color: item.isCorrect ? "#1EE288" : "#F34B4B"
|
10530
11054
|
}
|
@@ -10534,7 +11058,7 @@ function CompareGrass(_ref) {
|
|
10534
11058
|
color: "#414E62"
|
10535
11059
|
}
|
10536
11060
|
}, item.mostSelectedAnswers ? item.mostSelectedAnswers + "\uBC88" : ""), React__default.createElement("td", null, React__default.createElement("div", {
|
10537
|
-
className: styles$
|
11061
|
+
className: styles$4["classification"]
|
10538
11062
|
}, item.problemCategories.map(function (problem, index) {
|
10539
11063
|
return React__default.createElement("div", {
|
10540
11064
|
key: index
|
@@ -10661,9 +11185,9 @@ function TrickyProblem(_ref) {
|
|
10661
11185
|
return i.isStar && i.isCorrect;
|
10662
11186
|
});
|
10663
11187
|
return React__default.createElement("div", {
|
10664
|
-
className: styles$
|
11188
|
+
className: styles$4["wrapperProblem"]
|
10665
11189
|
}, React__default.createElement("div", {
|
10666
|
-
className: !openProblem.problem1 ? styles$
|
11190
|
+
className: !openProblem.problem1 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10667
11191
|
onClick: function onClick() {
|
10668
11192
|
return changeOpen(_extends({}, openProblem, {
|
10669
11193
|
problem1: !openProblem.problem1
|
@@ -10676,27 +11200,27 @@ function TrickyProblem(_ref) {
|
|
10676
11200
|
fontWeight: 700
|
10677
11201
|
}
|
10678
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", {
|
10679
|
-
className: styles$
|
11203
|
+
className: styles$4["titleTrickyProblem"]
|
10680
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", {
|
10681
|
-
className: styles$
|
11205
|
+
className: styles$4["wrongQuestions"]
|
10682
11206
|
}, !!inCorrectQuestions.length && inCorrectQuestions.map(function (question) {
|
10683
11207
|
return React__default.createElement("span", {
|
10684
11208
|
key: question.id,
|
10685
|
-
className: styles$
|
11209
|
+
className: styles$4["question"]
|
10686
11210
|
}, question.questionOrder + 1, "\uBC88");
|
10687
11211
|
}), !data.questions.length && React__default.createElement("div", {
|
10688
|
-
className: styles$
|
11212
|
+
className: styles$4["noData"]
|
10689
11213
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C")), React__default.createElement("div", {
|
10690
|
-
className: styles$
|
11214
|
+
className: styles$4["titleTrickyProblem"]
|
10691
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", {
|
10692
|
-
className: styles$
|
11216
|
+
className: styles$4["assignedQuestions"]
|
10693
11217
|
}, !!correctQuestions.length && correctQuestions.map(function (question) {
|
10694
11218
|
return React__default.createElement("div", {
|
10695
11219
|
key: question.id,
|
10696
|
-
className: styles$
|
11220
|
+
className: styles$4["question"]
|
10697
11221
|
}, question.questionOrder + 1, "\uBC88");
|
10698
11222
|
}), !data.questions.length && React__default.createElement("div", {
|
10699
|
-
className: styles$
|
11223
|
+
className: styles$4["noData"]
|
10700
11224
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
|
10701
11225
|
}
|
10702
11226
|
|
@@ -10707,9 +11231,9 @@ function ProtractedProblem(_ref) {
|
|
10707
11231
|
var _useTranslation = reactI18next.useTranslation(),
|
10708
11232
|
t = _useTranslation.t;
|
10709
11233
|
return React__default.createElement("div", {
|
10710
|
-
className: styles$
|
11234
|
+
className: styles$4["wrapperProblem"]
|
10711
11235
|
}, React__default.createElement("div", {
|
10712
|
-
className: !openProblem.problem2 ? styles$
|
11236
|
+
className: !openProblem.problem2 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10713
11237
|
onClick: function onClick() {
|
10714
11238
|
return changeOpen(_extends({}, openProblem, {
|
10715
11239
|
problem2: !openProblem.problem2
|
@@ -10722,30 +11246,30 @@ function ProtractedProblem(_ref) {
|
|
10722
11246
|
fontWeight: 700
|
10723
11247
|
}
|
10724
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", {
|
10725
|
-
className: styles$
|
11249
|
+
className: styles$4["wrapperContent"]
|
10726
11250
|
}, data.length ? data.map(function (item) {
|
10727
11251
|
return React__default.createElement("div", {
|
10728
|
-
className: styles$
|
11252
|
+
className: styles$4["content"],
|
10729
11253
|
key: item.id
|
10730
11254
|
}, React__default.createElement("div", {
|
10731
|
-
className: styles$
|
11255
|
+
className: styles$4["contentColumn1"]
|
10732
11256
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10733
|
-
className: styles$
|
11257
|
+
className: styles$4["span1"]
|
10734
11258
|
}, "\uBB38\uC81C"), React__default.createElement("span", {
|
10735
|
-
className: styles$
|
11259
|
+
className: styles$4["span2"]
|
10736
11260
|
}, item.questionOrder + 1, "\uBC88"))), React__default.createElement("div", {
|
10737
|
-
className: styles$
|
11261
|
+
className: styles$4["contentColumn2"]
|
10738
11262
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10739
|
-
className: styles$
|
11263
|
+
className: styles$4["span1"]
|
10740
11264
|
}, "\uB098\uC758 \uC2DC\uAC04"), React__default.createElement("span", {
|
10741
|
-
className: styles$
|
11265
|
+
className: styles$4["span2"]
|
10742
11266
|
}, "\uC0C1\uC704\uAD8C \uC2DC\uAC04")), React__default.createElement("div", null, React__default.createElement("span", {
|
10743
|
-
className: styles$
|
11267
|
+
className: styles$4["duration"]
|
10744
11268
|
}, formatTimeSecond(item.duration, t)), React__default.createElement("span", {
|
10745
|
-
className: styles$
|
11269
|
+
className: styles$4["topDuration"]
|
10746
11270
|
}, formatTimeSecond(item.topDuration, t)))));
|
10747
11271
|
}) : React__default.createElement("div", {
|
10748
|
-
className: styles$
|
11272
|
+
className: styles$4["noData"]
|
10749
11273
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
|
10750
11274
|
}
|
10751
11275
|
|
@@ -10759,9 +11283,9 @@ function Vulnerable(_ref) {
|
|
10759
11283
|
return q2.overallCorrectRate === q1.overallCorrectRate ? q1.questionOrder - q2.questionOrder : q2.overallCorrectRate - q1.overallCorrectRate;
|
10760
11284
|
});
|
10761
11285
|
return React__default.createElement("div", {
|
10762
|
-
className: styles$
|
11286
|
+
className: styles$4["wrapperProblem"]
|
10763
11287
|
}, React__default.createElement("div", {
|
10764
|
-
className: !openProblem.problem3 ? styles$
|
11288
|
+
className: !openProblem.problem3 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10765
11289
|
onClick: function onClick() {
|
10766
11290
|
return changeOpen(_extends({}, openProblem, {
|
10767
11291
|
problem3: !openProblem.problem3
|
@@ -10774,30 +11298,30 @@ function Vulnerable(_ref) {
|
|
10774
11298
|
fontWeight: 700
|
10775
11299
|
}
|
10776
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", {
|
10777
|
-
className: styles$
|
11301
|
+
className: styles$4["wrapperContent"]
|
10778
11302
|
}, incorrectQuestions.length ? React__default.createElement(React.Fragment, null, incorrectQuestions.map(function (question) {
|
10779
11303
|
return React__default.createElement("div", {
|
10780
|
-
className: styles$
|
11304
|
+
className: styles$4["content"],
|
10781
11305
|
key: question.id
|
10782
11306
|
}, React__default.createElement("div", {
|
10783
|
-
className: styles$
|
11307
|
+
className: styles$4["contentColumn1"]
|
10784
11308
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10785
|
-
className: styles$
|
11309
|
+
className: styles$4["span1"]
|
10786
11310
|
}, "\uBB38\uC81C"), React__default.createElement("span", {
|
10787
|
-
className: styles$
|
11311
|
+
className: styles$4["span2"]
|
10788
11312
|
}, question.questionOrder + 1, "\uBC88"))), React__default.createElement("div", {
|
10789
|
-
className: styles$
|
11313
|
+
className: styles$4["contentColumn2"]
|
10790
11314
|
}, React__default.createElement("div", null, React__default.createElement("span", {
|
10791
|
-
className: styles$
|
11315
|
+
className: styles$4["span1"]
|
10792
11316
|
}, "\uC804\uCCB4 \uC815\uB2F5\uB960"), React__default.createElement("span", {
|
10793
|
-
className: styles$
|
11317
|
+
className: styles$4["span2"]
|
10794
11318
|
}, "\uB098\uC758 \uC624\uB2F5")), React__default.createElement("div", null, React__default.createElement("span", {
|
10795
|
-
className: styles$
|
11319
|
+
className: styles$4["overallCorrectRate"]
|
10796
11320
|
}, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
|
10797
|
-
className: styles$
|
11321
|
+
className: styles$4["answer"]
|
10798
11322
|
}, question.selectedAnswers, "\uBC88 (\uC815\uB2F5", " ", question.correctAnswers, "\uBC88)"))));
|
10799
11323
|
})) : React__default.createElement("div", {
|
10800
|
-
className: styles$
|
11324
|
+
className: styles$4["noData"]
|
10801
11325
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
|
10802
11326
|
}
|
10803
11327
|
|
@@ -10806,9 +11330,9 @@ function GradesByTerritory(_ref) {
|
|
10806
11330
|
openProblem = _ref.openProblem,
|
10807
11331
|
changeOpen = _ref.changeOpen;
|
10808
11332
|
return React__default.createElement("div", {
|
10809
|
-
className: styles$
|
11333
|
+
className: styles$4["wrapperProblem"]
|
10810
11334
|
}, React__default.createElement("div", {
|
10811
|
-
className: !openProblem.problem4 ? styles$
|
11335
|
+
className: !openProblem.problem4 ? styles$4["titleProblemClose"] : styles$4["titleProblem"],
|
10812
11336
|
onClick: function onClick() {
|
10813
11337
|
return changeOpen(_extends({}, openProblem, {
|
10814
11338
|
problem4: !openProblem.problem4
|
@@ -10821,27 +11345,27 @@ function GradesByTerritory(_ref) {
|
|
10821
11345
|
fontWeight: 700
|
10822
11346
|
}
|
10823
11347
|
}, "\uC601\uC5ED\uBCC4 \uC131\uC801"), openProblem.problem4 ? React__default.createElement(iconUpArrow, null) : React__default.createElement(iconDownArrow, null)), openProblem.problem4 && React__default.createElement("div", {
|
10824
|
-
className: styles$
|
11348
|
+
className: styles$4["wrappContentProblem"]
|
10825
11349
|
}, data.length && data.map(function (item) {
|
10826
11350
|
return React__default.createElement("div", {
|
10827
|
-
className: styles$
|
11351
|
+
className: styles$4["contentProblem"],
|
10828
11352
|
key: item.id
|
10829
11353
|
}, React__default.createElement("div", {
|
10830
|
-
className: styles$
|
11354
|
+
className: styles$4["labelProblem"]
|
10831
11355
|
}, React__default.createElement("span", {
|
10832
|
-
className: styles$
|
11356
|
+
className: styles$4["name"]
|
10833
11357
|
}, item.name), React__default.createElement("div", {
|
10834
|
-
className: styles$
|
11358
|
+
className: styles$4["percent"]
|
10835
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", {
|
10836
|
-
className: styles$
|
11360
|
+
className: styles$4["slider"]
|
10837
11361
|
}, React__default.createElement("span", {
|
10838
|
-
className: styles$
|
11362
|
+
className: styles$4["track"],
|
10839
11363
|
style: {
|
10840
11364
|
left: item.percentageAmongStudents + "%"
|
10841
11365
|
}
|
10842
11366
|
})));
|
10843
11367
|
}), openProblem.problem4 && !data.length && React__default.createElement("div", {
|
10844
|
-
className: styles$
|
11368
|
+
className: styles$4["noData"]
|
10845
11369
|
}, "\uB370\uC774\uD130 \uC5C6\uC74C")));
|
10846
11370
|
}
|
10847
11371
|
|
@@ -10934,7 +11458,7 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
10934
11458
|
var errors = _ref2.errors;
|
10935
11459
|
return React__default.createElement(formik.Form, null, React__default.createElement("label", {
|
10936
11460
|
htmlFor: "content-question",
|
10937
|
-
className:
|
11461
|
+
className: styles['form-label'] + " " + styles$4['form-label-dialog']
|
10938
11462
|
}, "\uC9C8\uBB38 \uB0B4\uC6A9"), React__default.createElement(material.Box, {
|
10939
11463
|
position: 'relative',
|
10940
11464
|
display: 'flex',
|
@@ -10947,7 +11471,7 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
10947
11471
|
},
|
10948
11472
|
name: "content",
|
10949
11473
|
placeholder: "\uBB38\uC81C\uAC00 \uC5B4\uB824\uC6CC\uC694",
|
10950
|
-
className:
|
11474
|
+
className: styles['form-control']
|
10951
11475
|
}), (errors === null || errors === void 0 ? void 0 : errors.content) && React__default.createElement(material.Box, {
|
10952
11476
|
position: 'absolute',
|
10953
11477
|
right: 0,
|
@@ -10969,14 +11493,14 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
10969
11493
|
padding: '12px'
|
10970
11494
|
}
|
10971
11495
|
}, React__default.createElement(Button, {
|
10972
|
-
className: styles$
|
11496
|
+
className: styles$4['btn-cancel'],
|
10973
11497
|
onClick: toggleCreateQuestion
|
10974
11498
|
}, React__default.createElement(Typography, {
|
10975
11499
|
fontWeight: 700,
|
10976
11500
|
fontSize: '14px',
|
10977
11501
|
lineHeight: '16.71px'
|
10978
11502
|
}, "\uCDE8\uC18C")), React__default.createElement(Button, {
|
10979
|
-
className: styles$
|
11503
|
+
className: styles$4['btn-register'],
|
10980
11504
|
type: "submit"
|
10981
11505
|
}, React__default.createElement(Typography, {
|
10982
11506
|
fontWeight: 700,
|
@@ -10987,12 +11511,12 @@ function CreateNewQuestionDialog$1(_ref) {
|
|
10987
11511
|
})));
|
10988
11512
|
}
|
10989
11513
|
|
10990
|
-
var _excluded$
|
11514
|
+
var _excluded$7 = ["children", "value", "index"];
|
10991
11515
|
var CustomTabPanel = function CustomTabPanel(props) {
|
10992
11516
|
var children = props.children,
|
10993
11517
|
value = props.value,
|
10994
11518
|
index = props.index,
|
10995
|
-
other = _objectWithoutPropertiesLoose(props, _excluded$
|
11519
|
+
other = _objectWithoutPropertiesLoose(props, _excluded$7);
|
10996
11520
|
return React__default.createElement("div", Object.assign({
|
10997
11521
|
role: "tabpanel",
|
10998
11522
|
hidden: value !== index,
|
@@ -11065,6 +11589,7 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11065
11589
|
var _useTab = useTab(),
|
11066
11590
|
selected = _useTab.selected,
|
11067
11591
|
handleChangeTab = _useTab.handleChangeTab;
|
11592
|
+
var isTabletUp = material.useMediaQuery('(min-width:900px)');
|
11068
11593
|
return React__default.createElement(React.Fragment, null, timelyOrderQuestion[dataChartIndex] && longTimeSpend && resultDatas && effectSize ? React__default.createElement("div", {
|
11069
11594
|
style: {
|
11070
11595
|
width: "100%"
|
@@ -11162,7 +11687,28 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11162
11687
|
container: true,
|
11163
11688
|
padding: "24px",
|
11164
11689
|
className: "position-relative overflow-hidden"
|
11165
|
-
}, React__default.createElement(material.Grid, {
|
11690
|
+
}, !isTabletUp && React__default.createElement(material.Grid, {
|
11691
|
+
item: true,
|
11692
|
+
xs: 12
|
11693
|
+
}, React__default.createElement(material.Box, {
|
11694
|
+
padding: "16px 24px",
|
11695
|
+
flexDirection: "row",
|
11696
|
+
justifyContent: "end",
|
11697
|
+
alignItems: "center",
|
11698
|
+
display: "flex",
|
11699
|
+
bgcolor: "#F9FAFB",
|
11700
|
+
borderTop: "1px solid #E4E7EC",
|
11701
|
+
borderBottom: "1px solid #E4E7EC"
|
11702
|
+
}, React__default.createElement(material.Stack, {
|
11703
|
+
padding: '12px 24px',
|
11704
|
+
alignItems: "end",
|
11705
|
+
bgcolor: "#F9FAFB"
|
11706
|
+
}, React__default.createElement("div", {
|
11707
|
+
className: styles$4["pdfBtnBox"]
|
11708
|
+
}, React__default.createElement("button", {
|
11709
|
+
className: styles$4["pdfBtn"] + " " + styles["truncate"],
|
11710
|
+
onClick: handleExportPdf
|
11711
|
+
}, React__default.createElement(iconPrintFill, null), React__default.createElement("p", null, t("print"))))))), React__default.createElement(material.Grid, {
|
11166
11712
|
item: true,
|
11167
11713
|
xs: 12
|
11168
11714
|
}, React__default.createElement(material.Box, {
|
@@ -11182,7 +11728,7 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11182
11728
|
var label = _ref2.label,
|
11183
11729
|
value = _ref2.value;
|
11184
11730
|
return React__default.createElement(material.Button, {
|
11185
|
-
className:
|
11731
|
+
className: styles["truncate"],
|
11186
11732
|
disableTouchRipple: true,
|
11187
11733
|
sx: {
|
11188
11734
|
fontSize: "14px",
|
@@ -11195,14 +11741,14 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11195
11741
|
return handleChangeTab(value);
|
11196
11742
|
}
|
11197
11743
|
}, label);
|
11198
|
-
})), React__default.createElement(material.Stack, {
|
11744
|
+
})), isTabletUp && React__default.createElement(material.Stack, {
|
11199
11745
|
padding: '12px 24px',
|
11200
11746
|
alignItems: "end",
|
11201
11747
|
bgcolor: "#F9FAFB"
|
11202
11748
|
}, React__default.createElement("div", {
|
11203
|
-
className: styles$
|
11749
|
+
className: styles$4["pdfBtnBox"]
|
11204
11750
|
}, React__default.createElement("button", {
|
11205
|
-
className: styles$
|
11751
|
+
className: styles$4["pdfBtn"] + " " + styles["truncate"],
|
11206
11752
|
onClick: handleExportPdf
|
11207
11753
|
}, React__default.createElement(iconPrintFill, null), React__default.createElement("p", null, t("print"))))))), React__default.createElement(material.Grid, {
|
11208
11754
|
item: true,
|
@@ -11218,18 +11764,18 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11218
11764
|
value: selected,
|
11219
11765
|
index: 1
|
11220
11766
|
}, React__default.createElement("div", {
|
11221
|
-
className: styles$
|
11767
|
+
className: styles$4["compareChart"]
|
11222
11768
|
}, React__default.createElement("div", {
|
11223
|
-
className: styles$
|
11769
|
+
className: styles$4["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
|
11224
11770
|
onClick: handlePrevChart
|
11225
11771
|
}, React__default.createElement(iconBtnPrevChart, null)), React__default.createElement("div", {
|
11226
|
-
className: styles$
|
11772
|
+
className: styles$4["chart"] + " sr-line-chart"
|
11227
11773
|
}, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
|
11228
11774
|
height: 389,
|
11229
11775
|
options: chartOptions,
|
11230
11776
|
series: series
|
11231
11777
|
}))), React__default.createElement("div", {
|
11232
|
-
className: styles$
|
11778
|
+
className: styles$4["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
|
11233
11779
|
onClick: handleNextChart
|
11234
11780
|
}, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(CustomTabPanel, {
|
11235
11781
|
value: selected,
|
@@ -11264,39 +11810,70 @@ var ExamResultV2 = function ExamResultV2(_ref) {
|
|
11264
11810
|
width: "100%"
|
11265
11811
|
},
|
11266
11812
|
id: "canvas"
|
11267
|
-
}, React__default.createElement(
|
11268
|
-
|
11269
|
-
|
11270
|
-
|
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, {
|
11271
11824
|
data: resultDatas,
|
11272
11825
|
categories: categoryResponses,
|
11273
11826
|
isStudent: isStudent
|
11274
|
-
})), React__default.createElement(
|
11275
|
-
|
11276
|
-
|
11277
|
-
|
11278
|
-
|
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"]
|
11279
11840
|
}, React__default.createElement("div", {
|
11280
|
-
className: styles$
|
11841
|
+
className: styles$4["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
|
11281
11842
|
onClick: handlePrevChart
|
11282
11843
|
}, React__default.createElement(iconBtnPrevChart, null)), React__default.createElement("div", {
|
11283
|
-
className: styles$
|
11844
|
+
className: styles$4["chart"] + " sr-line-chart"
|
11284
11845
|
}, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
|
11285
11846
|
height: 389,
|
11286
11847
|
options: chartOptions,
|
11287
11848
|
series: series
|
11288
11849
|
}))), React__default.createElement("div", {
|
11289
|
-
className: styles$
|
11850
|
+
className: styles$4["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
|
11290
11851
|
onClick: handleNextChart
|
11291
|
-
}, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(
|
11292
|
-
|
11293
|
-
|
11294
|
-
|
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, {
|
11295
11864
|
effectSize: effectSize
|
11296
|
-
})), React__default.createElement(
|
11297
|
-
|
11298
|
-
|
11299
|
-
|
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, {
|
11300
11877
|
data: resultDatas,
|
11301
11878
|
openProblem: _extends({}, openProblem, {
|
11302
11879
|
problem1: true
|
@@ -11362,6 +11939,101 @@ var times = {
|
|
11362
11939
|
timeSpanToLocalMoment: timeSpanToLocalMoment
|
11363
11940
|
};
|
11364
11941
|
|
11942
|
+
var Header = function Header(_ref) {
|
11943
|
+
var academyListRoute = _ref.academyListRoute,
|
11944
|
+
homeRoute = _ref.homeRoute,
|
11945
|
+
headerTabs = _ref.headerTabs,
|
11946
|
+
role = _ref.role,
|
11947
|
+
navigate = _ref.navigate,
|
11948
|
+
onSignOut = _ref.onSignOut;
|
11949
|
+
var _useTranslation = reactI18next.useTranslation(),
|
11950
|
+
t = _useTranslation.t;
|
11951
|
+
var location = reactRouterDom.useLocation();
|
11952
|
+
var theme = material.useTheme();
|
11953
|
+
var user = reactRedux.useSelector(function (state) {
|
11954
|
+
var _state$common;
|
11955
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
11956
|
+
});
|
11957
|
+
var isLargerThanXL = material.useMediaQuery(theme.breakpoints.up("xl"));
|
11958
|
+
var academyDomain = reactRedux.useSelector(function (state) {
|
11959
|
+
var _state$common2, _state$common2$user;
|
11960
|
+
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : (_state$common2$user = _state$common2.user) === null || _state$common2$user === void 0 ? void 0 : _state$common2$user.academyDomain;
|
11961
|
+
});
|
11962
|
+
var pathname = location.pathname.toLowerCase();
|
11963
|
+
return React__default.createElement("div", {
|
11964
|
+
className: "col-sm-12 col-xl-12 " + styles["tabBox"] + " " + styles["headers"]
|
11965
|
+
}, React__default.createElement(reactRouterDom.Link, {
|
11966
|
+
"aria-current": "page",
|
11967
|
+
to: homeRoute.path,
|
11968
|
+
className: "border-none " + styles["logo-container"]
|
11969
|
+
}, React__default.createElement("img", {
|
11970
|
+
className: styles["logo"] + " d-none d-lg-block",
|
11971
|
+
src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAABNCAYAAAA2N/+4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAfmSURBVHgB7ZzLktvGFYbPaZBKNOWKmSpnG3GfVHm09UbUE5hDJ4usTD2BrU22op5gRvtUifI20Qz0BKKfINQThHbWqWA2li0SfXwamJFBEAABojkX6/+qKIq4dJPA36fPpTFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAatHrjXsEgAeY9kSnM54QyRNmWojwnJlD/fxmuZzOCYCG7EWolyIt2R1ptzMV8Ez//y2EC+rgXahbRFqEE65aXApF6M1qNZ0RADm8CnUHkZaQWNy5CvfVRx/RPIqmEYEPGm9C9SfSdZhlvFx+84LAB02HPBAE46mK9EvyjkwgUuBobVGdSNXq7UWkq9U3TwkAJaAW1BHpwcEn9Oc//Y0+/t0f6eDuH6jbPaDV6geydllxFkQK1tnZotYV6Wef/V0F+snGvqWK9Tz6byLa8/Pvk9fbt/+j6Pz7aRy/eEQAZNhJqG1FWoWQGZyd8bfkib8O3x0K8UaF7F9hd0Z7YKj9GTKH2W2WlrMwvLugHRkOpWcoHma36Y2LXoadkPZAk/6+OLKvhWSQ3VZ2D0fD1Ti/7TTsTKkGjYOpfYrUN3rB+zHbf2/sEJrqv7OK83oByxk1wBKf6M15ZSj4XO/qJLsvkO5Y3xajYXysFbrDJu2+PDMP9a2n6Y/n2e2i7elbpVCb9ici89MweFzV33C4GhriTzPb+/l2WOxY+x5cfrZknoUhR/k2L5hSDRoJ9TaJ1BEYOdZc7Bruggu92+b/9vJWYhtG7HTbMU40TdttQ9P+hGTrMSpSNxDH2bM2O87u13M4EWOrXHhtoWqe9HhbCuomidRNM2ohhvntum3SZhoG14Ope6CWNh+vVvx7PWWgQ2aim2Zqrd6PkpskUjd1E5uN4oOzpmHYQV72FtLQR51GqxU5J9m9kumz2x0fWsv3VKThTRCpwxj7taqyn9+uAUFvdGT/k9kwPz01RwVNRHr+hBoQk31Du5D6ywvaAyL2hStH1z6+xvewJK+McHKcMA94I5DiOYus+c5W6Jxa0roydbH6aX5w9x/lBzGHOuWeq1D2UBhYxwVQJLaglOsuru4j+SUDoGJ2wUFYGD3Ld9SIeCcfTNhMfWY5srhIvY7fmfk2W3/zxbVKrtdoFPfzzRuR6csweEae8VJC3Ya6CH0RtVwsn+oIbBT1NqUogHJY+ekh82+e5y2ABhzHKu5ZEpX+Qq8kQi3vVyP7vwyXfVsQBV8bbL6iBsEUC82Gw7cLTU0NamUuhQf5YCqmeC+DrraP2gYnTp2On4jwUWrZ9kNZAKVTTxJAicRPN7+bE5b1spjGsnmdj3hvG4buPKkzSJOZK5mh8ucHX2lq6rl7kUeuRKgJQmMV69gKu7zgfpbtlQZQQSLQUJP8UuCzafrka5eoJ1Cb1OoW4AbqxcvnNb2Sqf89Qk8M2ciKPDLMjRLq21B/aaI+Rn+jS01HrX/mR5oLdkWAtWoVc0fTb/SQyomoYoBZDiLWUOMWsCjbwWQiquvTGn6w7dCAggf65uUJjqsVqoPpWIOd+1aCieFmkXUZZQGU+qrzfDpKfVFXITrJV4+c76qB1Zdl6StXtTkLO1VCptFRTDcdLW+Oq4K32lN2gX+62Ze/eOTqpv5spxy8Jnr3Qn/JCXnA+b9F27UCVZR6Skp6VGAd1cqfJDnYHXE1buJ6JcGbSkDxM/0dw6pjyvzTDdiJ2Q9Xb1FTesx3Xlsx98MzfkwtGA6XA7HJRZtltztftKwC5SJ8dRWe6nmfb+51vlew03TlLFVS497bs73755/hnbkKMeKK31CUFVCXaqYulbOg2YHedwM/l1HZiesSahptpws/HlILwnQV1IwacnoaOGteaNFTi1FNanl/7AXU1Xq6uzl8z5JtlZpxbXbJpbhM37XnFnxcLBLZG5qO6neoo31yn4k/dr9FPe3q6l2Bf2pIQm2DNtN/5PzUV9SSaxOqI/UL4+Owxc24FAx547eFo98t8PhiZM/U7z1MiwZWX3fW7lcgPG6SXk8Qe6LVst5lm/HmWnbPQpVJ2p8bXOmAvAwBL777Qv9TLdSS/KmRQI0PDbLbWaz7fLuF6nCpIZ0uv1PLsZO/2qHVoVU3gnwhdqIWrehG9YpytG1Ri3NYO9L20V/L1VvpbGP7uc1RqC6D5rEPN1yChssay7iWYGoDzQQ4X5PAjacwfyppbtpSMMvv8lWJ9CZUtTazba+q8w2bM+cv0e1k4VJhceP1AdvarL5mnnEuj077W/p0/mkOFWNyjkv90WY2pTcayT1qibepn7ev0nF+0aBqv8sE6NRy30eU6BEnQk3mJ4taFpwkzE1kmRbu72qdnvKaONWNeVCjzbR4IDzPthnT8o0x3f/n2/RApj/r/jKN9mkW+htcdD+3ls6z17wymNxS31dffpZ3kdgmVrjV8kovQk2ehfGQvE8zAeQec6gdPa+oM+fqAdAIvQVOJJGWY/u7CMb5t5zLQmiwkiwBjNO1DrTDQIySHG32e8py69K5ffSnab9x3g/VYPh9Oi+2/FjFuhZv2PSaUr7NJnjJ+KVrPGskgGvg++E+8OugtY+aPlnoR6QAlNFaqMxm74uhAWglVOd0X+VTleDDpZVQyxaDAOCbVlG/iJkS+V0t5P6YLwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/Yn4G8GJySAUVr9kAAAAASUVORK5CYII=",
|
11972
|
+
alt: ""
|
11973
|
+
}), React__default.createElement("img", {
|
11974
|
+
className: styles["logo"] + " d-block d-lg-none",
|
11975
|
+
src: "/images/logo-sm.png",
|
11976
|
+
alt: ""
|
11977
|
+
})), React__default.createElement("div", {
|
11978
|
+
className: styles["routerBox"] + " d-flex flex-grow-1 flex-nowrap px-3"
|
11979
|
+
}, headerTabs.map(function (_ref2) {
|
11980
|
+
var path = _ref2.path,
|
11981
|
+
icon = _ref2.icon,
|
11982
|
+
label = _ref2.label,
|
11983
|
+
isMain = _ref2.isMain,
|
11984
|
+
activePaths = _ref2.activePaths;
|
11985
|
+
return React__default.createElement(reactRouterDom.Link, {
|
11986
|
+
key: path,
|
11987
|
+
"aria-current": "page",
|
11988
|
+
to: !academyDomain && !isMain ? "#" : path,
|
11989
|
+
className: "text-decoration-none " + ((activePaths !== null && activePaths !== void 0 && activePaths.length ? activePaths.some(function (a) {
|
11990
|
+
return pathname.startsWith(a);
|
11991
|
+
}) : pathname.startsWith(path)) ? styles["router-link-active"] + " " + styles["router-link-exact-active"] : "") + " " + styles["tabText"] + " " + (!academyDomain && !isMain ? styles["disabled-link"] : "")
|
11992
|
+
}, React__default.createElement(material.Stack, {
|
11993
|
+
sx: {
|
11994
|
+
justifyContent: "center",
|
11995
|
+
flexDirection: "row",
|
11996
|
+
alignItems: "center",
|
11997
|
+
textOverflow: "ellipsis",
|
11998
|
+
overflow: "hidden",
|
11999
|
+
display: "flex",
|
12000
|
+
flexWrap: "nowrap"
|
12001
|
+
}
|
12002
|
+
}, icon, React__default.createElement("span", {
|
12003
|
+
className: "text-nowrap"
|
12004
|
+
}, isLargerThanXL || headerTabs.length < 4 ? t(label) : ellipsisText(t(label), 4))));
|
12005
|
+
})), React__default.createElement(material.Stack, {
|
12006
|
+
direction: "row",
|
12007
|
+
alignItems: "center"
|
12008
|
+
}, React__default.createElement(material.Typography, {
|
12009
|
+
className: "fw-bold text-primary me-2 text-nowrap",
|
12010
|
+
sx: {
|
12011
|
+
maxWidth: "120px",
|
12012
|
+
overflow: "hidden",
|
12013
|
+
textOverflow: "ellipsis"
|
12014
|
+
}
|
12015
|
+
}, user === null || user === void 0 ? void 0 : user.fullName), React__default.createElement("div", null, React__default.createElement(TheAcademyDropdown, {
|
12016
|
+
homeAcademyUrl: academyListRoute.path,
|
12017
|
+
homeUrl: homeRoute.path,
|
12018
|
+
role: role,
|
12019
|
+
navigate: navigate,
|
12020
|
+
hideAcademyName: !isLargerThanXL && headerTabs.length > 6
|
12021
|
+
})), React__default.createElement("div", {
|
12022
|
+
className: "me-2"
|
12023
|
+
}, React__default.createElement(TheLanguageDropdown, null)), React__default.createElement("div", {
|
12024
|
+
className: styles["userImg"] + " d-none d-md-none d-lg-block",
|
12025
|
+
onClick: onSignOut
|
12026
|
+
}, React__default.createElement("p", {
|
12027
|
+
className: "text-nowrap mb-0"
|
12028
|
+
}, t("logout"))), React__default.createElement("div", {
|
12029
|
+
className: styles["userImg"] + " d-block d-md-block d-lg-none",
|
12030
|
+
onClick: onSignOut
|
12031
|
+
}, React__default.createElement(io.IoIosLogOut, {
|
12032
|
+
size: 24,
|
12033
|
+
color: "#959595"
|
12034
|
+
}))));
|
12035
|
+
};
|
12036
|
+
|
11365
12037
|
exports.moment = moment;
|
11366
12038
|
Object.defineProperty(exports, 'I18nextProvider', {
|
11367
12039
|
enumerable: true,
|
@@ -11411,6 +12083,7 @@ exports.EXAM_STUDENT_CHANNEL = EXAM_STUDENT_CHANNEL;
|
|
11411
12083
|
exports.Enums = index;
|
11412
12084
|
exports.ExamDetailView = ExamDetailView;
|
11413
12085
|
exports.ExamResultV2 = ExamResultV2;
|
12086
|
+
exports.Header = Header;
|
11414
12087
|
exports.InputText = InputText;
|
11415
12088
|
exports.LANGUAGES = LANGUAGES;
|
11416
12089
|
exports.LayoutContext = LayoutContext;
|