mario-core 2.9.127-admin → 2.9.128-all

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/index.js CHANGED
@@ -51,7 +51,7 @@ var cancel = "Cancel";
51
51
  var hey = "Hey";
52
52
  var readiness_to_learn = "Readiness to Learn";
53
53
  var high_impact_learning_strategies = "High Impact Learning Strategies";
54
- var check_in = "Check In";
54
+ var check_in = "Check-in";
55
55
  var reflection = "Reflection";
56
56
  var conferences = "Conferences";
57
57
  var safety = "Safety";
@@ -74,7 +74,7 @@ var tooltip_content_safety_chart = "The visual represenation of all the response
74
74
  var tooltip_content_student_by_age_chart = "The specific representation of students by gender and grade level at your school.";
75
75
  var tooltip_content_students_by_designation = "The composite representation of students by individual grades in your school with specific designations.";
76
76
  var total_1_to_1 = "Total 1-to-1";
77
- var total_check_in = "Total Check In";
77
+ var total_check_in = "Total Check-in";
78
78
  var total_1_to_1_time = "Total 1-to-1 Time";
79
79
  var total_conferences = "Total Conferences";
80
80
  var total_conferences_time = "Total Conferences Time";
@@ -223,7 +223,7 @@ var edit_designation = "Edit Designation";
223
223
  var confirm = "Confirm";
224
224
  var hello = "Hello";
225
225
  var todays_1_1 = "Today’s 1-1";
226
- var todays_check_in = "Today’s Check In";
226
+ var todays_check_in = "Today’s Check-in";
227
227
  var todays_Conferences = "Today’s Conferences";
228
228
  var next_meeting = "Next Meeting";
229
229
  var next_conference = "Next Conference";
@@ -252,7 +252,7 @@ var import_csv = "Import CSV";
252
252
  var add_new = "Add New";
253
253
  var show_only_work_as_assistant = "Show only work as assistant";
254
254
  var last_1_to_1 = "Last 1-TO-1";
255
- var last_check_in = "Last Check In";
255
+ var last_check_in = "Last Check-in";
256
256
  var last_conference = "Last conference";
257
257
  var total_time = "Total time";
258
258
  var assistant_name = "Assistant Name";
@@ -272,7 +272,7 @@ var change_date = "Change date";
272
272
  var change_time = "Change time";
273
273
  var apply = "Apply";
274
274
  var new_1_to_1 = "New 1-to-1";
275
- var new_check_in = "New Check In";
275
+ var new_check_in = "New Check-in";
276
276
  var do_you_want_to_talk_with_teacher = "Do you want to talk with teacher";
277
277
  var start_now = "Start now";
278
278
  var book_for_later = "Book for later";
@@ -282,7 +282,7 @@ var no_question = "No question";
282
282
  var select_question = "Select question";
283
283
  var select_student = "Select student";
284
284
  var select_teacher = "Select teacher";
285
- var do_you_want_to_talk_with = "Do you want to talk with";
285
+ var do_you_want_to_talk_with = "Who would you like to check-in with?";
286
286
  var please_select_a_student = "Please select a student";
287
287
  var please_select_a_teacher = "Please select a teacher";
288
288
  var please_provide_a_valid_student = "Please provide a valid student";
@@ -292,7 +292,7 @@ var you_have_no_teacher = "You have no teacher";
292
292
  var search_teacher = "Search teacher";
293
293
  var select_date_time = "Select Date & Time";
294
294
  var book_1_to_1 = "Book 1-to-1";
295
- var book_new_check_in = "Book new Check In";
295
+ var book_new_check_in = "Book new Check-in";
296
296
  var schedule = "Schedule";
297
297
  var sessions_are_booked_as_10_minute_slots = "Sessions are booked as 10 minute slots";
298
298
  var does_not_reoccur = "Does not reoccur";
@@ -308,7 +308,7 @@ var no_data = "No Data";
308
308
  var schedule_detail = "Schedule Detail";
309
309
  var are_you_sure_you_want_to_cancel_this_schedule = "Are you sure you want to Cancel this schedule?";
310
310
  var completed_1_to_1 = "Completed 1-1 Conversation";
311
- var completed_check_in = "Completed Check In";
311
+ var completed_check_in = "Completed Check-in";
312
312
  var done = "Done";
313
313
  var what_do_you_want_to_talk_about = "What do you want to talk about?";
314
314
  var session_type = "Session Type";
@@ -323,7 +323,7 @@ var how_much_did_you_learn_from_this_session = "How much did you learn from this
323
323
  var what_is_the_most_important_thing_you_learned_from_this_session = "What is the most important thing you learned from this session?";
324
324
  var your_next_meeting = "Your next meeting";
325
325
  var today_at = "Today at";
326
- var choose_if_you_want_to_do_it_now_or_if_you_would_like_to_book_for_later = "Choose if you want to do it now or if you would like to book for later";
326
+ var choose_if_you_want_to_do_it_now_or_if_you_would_like_to_book_for_later = "Choose if you want to start the check-in now or book a time with your teacher or counselor for later.";
327
327
  var edit = "Edit";
328
328
  var phone_number = "Phone number";
329
329
  var second_phone_number = "Second phone number";
@@ -334,7 +334,7 @@ var note = "Note";
334
334
  var no_schedule = "No Schedule";
335
335
  var my_notes = "My Notes";
336
336
  var private_note = "Private Note";
337
- var goal_process = "Goal Process";
337
+ var goal_process = "Goal Progress";
338
338
  var view_all_goals = "View all goals";
339
339
  var completed = "Completed";
340
340
  var student_information = "Student Information";
@@ -430,7 +430,7 @@ var student_request = "Student Request";
430
430
  var overview = "Overview";
431
431
  var plp = "PLP";
432
432
  var my_student_1_to_1 = "My Student 1-to-1";
433
- var my_student_check_in = "My Student Check In";
433
+ var my_student_check_in = "My Student Check-in";
434
434
  var my_student_conference = "My Student Conference";
435
435
  var received_date = "Received Date";
436
436
  var class_impact_score = "Class Impact Score";
@@ -633,6 +633,7 @@ var learning_process = "Learning Process";
633
633
  var survey_dashboard = "Survey Dashboard";
634
634
  var response_rate = "Response Rate";
635
635
  var top_5_most_survey_used = "Top 5 Survey's Used";
636
+ var question_intervention = "Question Intervention";
636
637
  var lang_us = {
637
638
  dashboard: dashboard,
638
639
  user: user,
@@ -1238,7 +1239,8 @@ var lang_us = {
1238
1239
  learning_process: learning_process,
1239
1240
  survey_dashboard: survey_dashboard,
1240
1241
  response_rate: response_rate,
1241
- top_5_most_survey_used: top_5_most_survey_used
1242
+ top_5_most_survey_used: top_5_most_survey_used,
1243
+ question_intervention: question_intervention
1242
1244
  };
1243
1245
 
1244
1246
  var dashboard$1 = "Dashboard";
@@ -1256,7 +1258,7 @@ var cancel$1 = "Cancel";
1256
1258
  var hey$1 = "Hey";
1257
1259
  var readiness_to_learn$1 = "Readiness to Learn";
1258
1260
  var high_impact_learning_strategies$1 = "High Impact Learning Strategies";
1259
- var check_in$1 = "Check In";
1261
+ var check_in$1 = "Check-in";
1260
1262
  var reflection$1 = "Reflection";
1261
1263
  var conferences$1 = "Conferences";
1262
1264
  var safety$1 = "Safety";
@@ -1279,7 +1281,7 @@ var tooltip_content_safety_chart$1 = "The visual represenation of all the respon
1279
1281
  var tooltip_content_student_by_age_chart$1 = "The specific representation of students by gender and grade level at your school.";
1280
1282
  var tooltip_content_students_by_designation$1 = "The composite representation of students by individual grades in your school with specific designations.";
1281
1283
  var total_1_to_1$1 = "Total 1-to-1";
1282
- var total_check_in$1 = "Total Check In";
1284
+ var total_check_in$1 = "Total Check-in";
1283
1285
  var total_1_to_1_time$1 = "Total 1-to-1 Time";
1284
1286
  var total_conferences$1 = "Total Conferences";
1285
1287
  var total_conferences_time$1 = "Total Conferences Time";
@@ -1430,7 +1432,7 @@ var edit_designation$1 = "Edit Designation";
1430
1432
  var confirm$1 = "Confirm";
1431
1433
  var hello$1 = "Hello";
1432
1434
  var todays_1_1$1 = "Today’s 1-1";
1433
- var todays_check_in$1 = "Today’s Check In";
1435
+ var todays_check_in$1 = "Today’s Check-in";
1434
1436
  var todays_Conferences$1 = "Today’s Conferences";
1435
1437
  var next_meeting$1 = "Next Meeting";
1436
1438
  var next_conference$1 = "Next Conference";
@@ -1459,7 +1461,7 @@ var import_csv$1 = "Import CSV";
1459
1461
  var add_new$1 = "Add New";
1460
1462
  var show_only_work_as_assistant$1 = "Show only work as assistant";
1461
1463
  var last_1_to_1$1 = "Last 1-TO-1";
1462
- var last_check_in$1 = "Last Check In";
1464
+ var last_check_in$1 = "Last Check-in";
1463
1465
  var last_conference$1 = "Last conference";
1464
1466
  var total_time$1 = "Total time";
1465
1467
  var assistant_name$1 = "Assistant Name";
@@ -1479,7 +1481,7 @@ var change_date$1 = "Change date";
1479
1481
  var change_time$1 = "Change time";
1480
1482
  var apply$1 = "Apply";
1481
1483
  var new_1_to_1$1 = "New 1-to-1";
1482
- var new_check_in$1 = "New Check In";
1484
+ var new_check_in$1 = "New Check-in";
1483
1485
  var do_you_want_to_talk_with_teacher$1 = "Do you want to talk with teacher";
1484
1486
  var start_now$1 = "Start now";
1485
1487
  var book_for_later$1 = "Book for later";
@@ -1489,7 +1491,7 @@ var no_question$1 = "No question";
1489
1491
  var select_question$1 = "Select question";
1490
1492
  var select_student$1 = "Select student";
1491
1493
  var select_teacher$1 = "Select teacher";
1492
- var do_you_want_to_talk_with$1 = "Do you want to talk with";
1494
+ var do_you_want_to_talk_with$1 = "Who would you like to check-in with?";
1493
1495
  var please_select_a_student$1 = "Please select a student";
1494
1496
  var please_select_a_teacher$1 = "Please select a teacher";
1495
1497
  var please_provide_a_valid_student$1 = "Please provide a valid student";
@@ -1499,7 +1501,7 @@ var you_have_no_teacher$1 = "You have no teacher";
1499
1501
  var search_teacher$1 = "Search teacher";
1500
1502
  var select_date_time$1 = "Select Date & Time";
1501
1503
  var book_1_to_1$1 = "Book 1-to-1";
1502
- var book_new_check_in$1 = "Book new Check In";
1504
+ var book_new_check_in$1 = "Book new Check-in";
1503
1505
  var schedule$1 = "Schedule";
1504
1506
  var sessions_are_booked_as_10_minute_slots$1 = "Sessions are booked as 10 minute slots";
1505
1507
  var does_not_reoccur$1 = "Does not reoccur";
@@ -1515,7 +1517,7 @@ var no_data$1 = "No Data";
1515
1517
  var schedule_detail$1 = "Schedule Detail";
1516
1518
  var are_you_sure_you_want_to_cancel_this_schedule$1 = "Are you sure you want to Cancel this schedule?";
1517
1519
  var completed_1_to_1$1 = "Completed 1-1 Conversation";
1518
- var completed_check_in$1 = "Completed Check In";
1520
+ var completed_check_in$1 = "Completed Check-in";
1519
1521
  var done$1 = "Done";
1520
1522
  var what_do_you_want_to_talk_about$1 = "What do you want to talk about?";
1521
1523
  var session_type$1 = "Session Type";
@@ -1530,7 +1532,7 @@ var how_much_did_you_learn_from_this_session$1 = "How much did you learn from th
1530
1532
  var what_is_the_most_important_thing_you_learned_from_this_session$1 = "What is the most important thing you learned from this session?";
1531
1533
  var your_next_meeting$1 = "Your next meeting";
1532
1534
  var today_at$1 = "Today at";
1533
- var choose_if_you_want_to_do_it_now_or_if_you_would_like_to_book_for_later$1 = "Choose if you want to do it now or if you would like to book for later";
1535
+ var choose_if_you_want_to_do_it_now_or_if_you_would_like_to_book_for_later$1 = "Choose if you want to start the check-in now or book a time with your teacher or counselor for later.";
1534
1536
  var edit$1 = "Edit";
1535
1537
  var phone_number$1 = "Phone number";
1536
1538
  var second_phone_number$1 = "Second phone number";
@@ -1541,7 +1543,7 @@ var note$1 = "Note";
1541
1543
  var no_schedule$1 = "No Schedule";
1542
1544
  var my_notes$1 = "My Notes";
1543
1545
  var private_note$1 = "Private Note";
1544
- var goal_process$1 = "Goal Process";
1546
+ var goal_process$1 = "Goal Progress";
1545
1547
  var view_all_goals$1 = "View all goals";
1546
1548
  var completed$1 = "Completed";
1547
1549
  var student_information$1 = "Student Information";
@@ -1637,7 +1639,7 @@ var student_request$1 = "Student Request";
1637
1639
  var overview$1 = "Overview";
1638
1640
  var plp$1 = "PLP";
1639
1641
  var my_student_1_to_1$1 = "My Student 1-to-1";
1640
- var my_student_check_in$1 = "My Student Check In";
1642
+ var my_student_check_in$1 = "My Student Check-in";
1641
1643
  var my_student_conference$1 = "My Student Conference";
1642
1644
  var received_date$1 = "Received Date";
1643
1645
  var class_impact_score$1 = "Class Impact Score";
@@ -1840,6 +1842,7 @@ var learning_process$1 = "Learning Process";
1840
1842
  var survey_dashboard$1 = "Survey Dashboard";
1841
1843
  var response_rate$1 = "Response Rate";
1842
1844
  var top_5_most_survey_used$1 = "Top 5 Survey's Used";
1845
+ var question_intervention$1 = "Question Intervention";
1843
1846
  var lang_uk = {
1844
1847
  dashboard: dashboard$1,
1845
1848
  user: user$1,
@@ -2445,7 +2448,8 @@ var lang_uk = {
2445
2448
  learning_process: learning_process$1,
2446
2449
  survey_dashboard: survey_dashboard$1,
2447
2450
  response_rate: response_rate$1,
2448
- top_5_most_survey_used: top_5_most_survey_used$1
2451
+ top_5_most_survey_used: top_5_most_survey_used$1,
2452
+ question_intervention: question_intervention$1
2449
2453
  };
2450
2454
 
2451
2455
  var DEFAULT_LANGUAGE = localStorage.getItem("language") !== null ? localStorage.getItem("language") : "uk";
@@ -6874,89 +6878,8 @@ var SkillList = function SkillList() {
6874
6878
  }))));
6875
6879
  };
6876
6880
 
6877
- var MAX_FILE_SIZE = 20097152;
6878
-
6879
- var UploadFileButton = function UploadFileButton(_ref) {
6880
- var fileName = _ref.fileName,
6881
- maxWidth = _ref.maxWidth,
6882
- maxHeight = _ref.maxHeight,
6883
- setFile = _ref.setFile,
6884
- canDelete = _ref.canDelete,
6885
- onDelete = _ref.onDelete,
6886
- isCheckFeedBack = _ref.isCheckFeedBack,
6887
- onAddImage = _ref.onAddImage;
6888
- var dispatch = reactRedux.useDispatch();
6889
-
6890
- var _useState = React.useState(""),
6891
- imagePreviewUrl = _useState[0],
6892
- setImagePreviewUrl = _useState[1];
6893
-
6894
- var imageStyle = {
6895
- maxWidth: maxWidth || "100%",
6896
- maxHeight: maxHeight || "100%"
6897
- };
6898
- var imageSrc = imagePreviewUrl || getFileUrl(fileName);
6899
-
6900
- var handleImageChange = function handleImageChange(e) {
6901
- e.preventDefault();
6902
- var reader = new FileReader();
6903
- var newFile = e.target.files[0];
6904
-
6905
- if (newFile.size > MAX_FILE_SIZE) {
6906
- dispatch(setAlert({
6907
- type: "danger",
6908
- message: "File can't be larger than 2MB"
6909
- }));
6910
- return;
6911
- }
6912
-
6913
- reader.onloadend = function () {
6914
- setFile(newFile);
6915
- setImagePreviewUrl(reader.result);
6916
- };
6917
-
6918
- if (newFile) {
6919
- reader.readAsDataURL(newFile);
6920
- }
6921
-
6922
- !!onAddImage && onAddImage();
6923
- };
6924
-
6925
- var imagePreviewContainer = imagePreviewUrl || fileName ? React__default.createElement("img", {
6926
- style: imageStyle,
6927
- src: imageSrc,
6928
- alt: "image"
6929
- }) : null;
6930
- return React__default.createElement("div", {
6931
- className: "mb-2"
6932
- }, React__default.createElement(reactstrap.Form, {
6933
- className: "mb-2"
6934
- }, React__default.createElement(reactstrap.Input, {
6935
- className: "d-none",
6936
- type: "file",
6937
- id: "uploadFile",
6938
- onChange: handleImageChange,
6939
- accept: "image/*"
6940
- }), React__default.createElement("div", {
6941
- className: "d-flex align-items-center"
6942
- }, React__default.createElement(reactstrap.Label, {
6943
- htmlFor: "uploadFile",
6944
- role: "button",
6945
- tabIndex: 0,
6946
- className: styles["input-file-label"]
6947
- }, isCheckFeedBack == true ? React__default.createElement(md.MdAttachFile, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("i", {
6948
- className: "fa fa-paperclip mr-1",
6949
- "aria-hidden": "true"
6950
- }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React__default.createElement(reactstrap.Button, {
6951
- size: "sm",
6952
- color: "danger",
6953
- className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
6954
- onClick: function onClick() {
6955
- setImagePreviewUrl(null);
6956
- onDelete && onDelete();
6957
- }
6958
- }, React__default.createElement(fa.FaTrashAlt, null)))), imagePreviewContainer);
6959
- };
6881
+ var setUserList = toolkit.createAction("users/setUserList");
6882
+ var setStudentList = toolkit.createAction("users/setStudentList");
6960
6883
 
6961
6884
  var USER_URL$1 = BASE_URL + "/api/user";
6962
6885
  var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
@@ -6989,58 +6912,38 @@ var switchAccountUser = function switchAccountUser(id) {
6989
6912
  return api.post(EDU_USER_URL + "/switch-user/" + id);
6990
6913
  };
6991
6914
 
6992
- var initValue$3 = {
6993
- id: "",
6994
- firstName: "",
6995
- lastName: "",
6996
- email: "",
6997
- dateOfBirth: "",
6998
- roles: [],
6999
- isActive: true,
7000
- profileImageFileName: ""
7001
- };
7002
- var USER_LIST_URL = "/admin/user";
7003
- var TITLE$7 = "User detail";
6915
+ var USER_URL$2 = "/admin/user";
6916
+ var CREATE_USER_URL = "/admin/create-user";
6917
+ var TITLE$7 = "User list";
6918
+ var HOMEPAGE_TEACHER$1 = "/home";
6919
+ var HOMEPAGE_STUDENT$1 = "/home";
6920
+ var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
6921
+ var HOMEPAGE_PARENT$1 = "/parent";
6922
+ var HOMEPAGE_DISTRICT$1 = "/admin/schools";
6923
+ var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
7004
6924
 
7005
- var useUserDetail = function useUserDetail(id) {
7006
- var dispatch = reactRedux.useDispatch();
6925
+ var useUserList = function useUserList() {
7007
6926
  var history = reactRouterDom.useHistory();
6927
+ var query = new URLSearchParams(location.search);
6928
+ var queryName = query.get("query");
6929
+ var userList = reactRedux.useSelector(function (state) {
6930
+ return state.users.userList;
6931
+ });
6932
+ var totalItems = reactRedux.useSelector(function (state) {
6933
+ return state.users.totalItems;
6934
+ });
7008
6935
 
7009
- var _useState = React.useState(initValue$3),
7010
- userDetail = _useState[0],
7011
- setUserDetail = _useState[1];
7012
-
7013
- var _useState2 = React.useState(null),
7014
- file = _useState2[0],
7015
- setFile = _useState2[1];
7016
-
7017
- var _useState3 = React.useState(false),
7018
- edited = _useState3[0],
7019
- setEdited = _useState3[1];
7020
-
7021
- var setEditedTrue = function setEditedTrue() {
7022
- try {
7023
- localStorage.setItem(window.location.href, "true");
7024
- setEdited(true);
7025
- return Promise.resolve();
7026
- } catch (e) {
7027
- return Promise.reject(e);
7028
- }
7029
- };
6936
+ var _useFilters = useFilters(),
6937
+ filters = _useFilters.filters,
6938
+ changeFilters = _useFilters.changeFilters;
7030
6939
 
7031
- var _useState4 = React.useState([]),
7032
- currentRoles = _useState4[0],
7033
- setCurrentRoles = _useState4[1];
6940
+ var _useState = React.useState(!!queryName ? queryName : ""),
6941
+ fullName = _useState[0],
6942
+ setFullName = _useState[1];
7034
6943
 
7035
- React.useEffect(function () {
7036
- document.title = TITLE$7;
7037
- setEdited(false);
7038
- if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
7039
- }, []);
7040
- React.useEffect(function () {
7041
- !!id && getData();
7042
- }, [id]);
7043
- var getData = React.useCallback(function () {
6944
+ var isDistrict = window.location.host.includes("-district");
6945
+ var dispatch = reactRedux.useDispatch();
6946
+ var getData = React.useCallback(function (fullName) {
7044
6947
  try {
7045
6948
  var _temp3 = function _temp3() {
7046
6949
  dispatch(setLoading(false));
@@ -7049,15 +6952,22 @@ var useUserDetail = function useUserDetail(id) {
7049
6952
  dispatch(setLoading(true));
7050
6953
 
7051
6954
  var _temp4 = _catch(function () {
7052
- return Promise.resolve(getById$3(id)).then(function (res) {
7053
- var _res$data$roles, _res$data, _res$data2;
6955
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
6956
+ searchString: fullName
6957
+ })) : get$5(filters)).then(function (res) {
6958
+ var _res$data = res.data,
6959
+ items = _res$data.items,
6960
+ totalItems = _res$data.totalItems;
7054
6961
 
7055
- setUserDetail(_extends({}, res.data, {
7056
- dateOfBirth: dateFns.format(new Date(res.data.dateOfBirth), DATE_FORMAT),
7057
- roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
6962
+ for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
6963
+ var user = _step.value;
6964
+ user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
6965
+ }
6966
+
6967
+ dispatch(setUserList({
6968
+ userList: items,
6969
+ totalItems: totalItems
7058
6970
  }));
7059
- setCurrentRoles((_res$data$roles = res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.roles) != null ? _res$data$roles : []);
7060
- document.title = (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.fullName;
7061
6971
  });
7062
6972
  }, function (err) {
7063
6973
  var _err$response, _err$response$data;
@@ -7072,191 +6982,713 @@ var useUserDetail = function useUserDetail(id) {
7072
6982
  } catch (e) {
7073
6983
  return Promise.reject(e);
7074
6984
  }
7075
- }, [id]);
7076
- var backToList = React.useCallback(function (user) {
7077
- !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
6985
+ }, [dispatch, filters]);
6986
+ React.useEffect(function () {
6987
+ document.title = TITLE$7;
7078
6988
  }, []);
7079
- var confirmData = React.useCallback(function (data) {
7080
- try {
7081
- var _temp9 = function _temp9() {
7082
- dispatch(setLoading(false));
7083
- };
7084
-
7085
- dispatch(setLoading(true));
6989
+ React.useEffect(function () {
6990
+ if (!!fullName) {
6991
+ getData(fullName);
6992
+ setFullName(null);
6993
+ } else {
6994
+ getData();
6995
+ }
6996
+ }, [filters]);
6997
+ var removeData = React.useCallback(function (id) {
6998
+ dispatch(setLoading(true));
7086
6999
 
7087
- var _temp10 = _catch(function () {
7088
- function _temp6() {
7089
- var next = !!id ? update$5 : create$5;
7090
- !id && delete data.id;
7091
- return Promise.resolve(next(data)).then(function (result) {
7092
- if (!!result) {
7093
- getById$3(result.data.id).then(function (e) {
7094
- backToList(e.data.fullName);
7000
+ try {
7001
+ dispatch(setModal({
7002
+ isOpen: true,
7003
+ type: "warning",
7004
+ message: "Do you want to remove this user?",
7005
+ onConfirm: function () {
7006
+ try {
7007
+ return Promise.resolve(remove$3(id)).then(function () {
7008
+ dispatch(setAlert({
7009
+ type: "success",
7010
+ message: "Remove user successfully"
7011
+ }));
7012
+ changeFilters({
7013
+ currentPage: 1
7095
7014
  });
7096
- }
7097
-
7098
- if (!id) {
7099
- alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7100
- }
7101
-
7102
- dispatch(setAlert({
7103
- type: "success",
7104
- message: (!!id ? "Update" : "Create") + " user successfully"
7105
- }));
7106
- });
7107
- }
7108
-
7109
- var _temp5 = function () {
7110
- if (!!file) {
7111
- var formData = new FormData();
7112
- var name = file.name;
7113
- formData.append("file", file, name);
7114
- return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7115
- var _res$data3;
7116
-
7117
- var imageUrl = res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.key;
7118
- data.profileImageFileName = imageUrl;
7119
7015
  });
7016
+ } catch (e) {
7017
+ return Promise.reject(e);
7120
7018
  }
7121
- }();
7019
+ }
7020
+ }));
7021
+ } catch (err) {
7022
+ var _err$response2, _err$response2$data;
7122
7023
 
7123
- return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
7124
- }, function (err) {
7125
- var _err$response2, _err$response2$data;
7126
-
7127
- dispatch(setAlert({
7128
- type: "danger",
7129
- message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
7130
- }));
7131
- });
7132
-
7133
- return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7134
- } catch (e) {
7135
- return Promise.reject(e);
7024
+ dispatch(setAlert({
7025
+ type: "danger",
7026
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
7027
+ }));
7136
7028
  }
7137
- }, [id, file]);
7138
-
7139
- var handleDisableRoles = function handleDisableRoles(currentRoles) {
7140
- return ["Student", "Parent", "EduTeacher"].includes(currentRoles);
7141
- };
7142
-
7143
- var confirmChangePassword = function confirmChangePassword(data) {
7144
- try {
7145
- var _temp13 = function _temp13() {
7146
- dispatch(setLoading(false));
7147
- };
7148
-
7149
- dispatch(setLoading(true));
7150
7029
 
7151
- var _temp14 = _catch(function () {
7152
- return Promise.resolve(changePassword(data)).then(function () {
7153
- dispatch(setAlert({
7154
- type: "success",
7155
- message: "Change password successfully"
7156
- }));
7157
- });
7158
- }, function (e) {
7159
- var _e$response, _e$response$data;
7030
+ dispatch(setLoading(false));
7031
+ }, [filters]);
7160
7032
 
7161
- dispatch(setAlert({
7162
- type: "danger",
7163
- message: ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : (_e$response$data = _e$response.data) === null || _e$response$data === void 0 ? void 0 : _e$response$data.title) || e.message
7164
- }));
7165
- });
7033
+ var redirectLoginUser = function redirectLoginUser(res) {
7034
+ var _res$data2 = res.data,
7035
+ token = _res$data2.token,
7036
+ id = _res$data2.id,
7037
+ firstName = _res$data2.firstName,
7038
+ lastName = _res$data2.lastName,
7039
+ roles = _res$data2.roles,
7040
+ email = _res$data2.email,
7041
+ profileImageFileName = _res$data2.profileImageFileName;
7042
+ localStorage.setItem(ACCESS_TOKEN, token);
7043
+ localStorage.removeItem(NOTIFICATION_ALERT_KEY);
7044
+ dispatch(setUser({
7045
+ id: id,
7046
+ firstName: firstName,
7047
+ lastName: lastName,
7048
+ roles: roles,
7049
+ email: email,
7050
+ profileImageFileName: profileImageFileName
7051
+ }));
7166
7052
 
7167
- return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7168
- } catch (e) {
7169
- return Promise.reject(e);
7053
+ if (isDistrict) {
7054
+ history.push(HOMEPAGE_DISTRICT$1);
7055
+ } else if (roles.includes("Admin")) {
7056
+ history.push(HOMEPAGE_ADMIN$1);
7057
+ } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
7058
+ history.push(HOMEPAGE_TEACHER$1);
7059
+ } else if (roles.includes("Student")) {
7060
+ history.push(HOMEPAGE_STUDENT$1);
7061
+ } else if (roles.includes("Parent")) {
7062
+ history.push(HOMEPAGE_PARENT$1);
7063
+ } else if (roles.includes("EduTeacher")) {
7064
+ history.push(HOMEPAGE_EDU_TEACHER$1);
7065
+ } else if (roles.includes("Counselor") || roles.includes("SecondaryTeacher")) {
7066
+ history.push(HOMEPAGE_TEACHER$1);
7170
7067
  }
7171
7068
  };
7172
7069
 
7173
- var forgotPasswordRequest = React.useCallback(function (data) {
7070
+ var swicthUser = React.useCallback(function (id) {
7174
7071
  try {
7175
- var _temp17 = function _temp17() {
7176
- dispatch(setLoading(false));
7177
- };
7072
+ var _temp6 = _catch(function () {
7073
+ return Promise.resolve(switchAccountUser(id)).then(function (res) {
7074
+ var data = res.data;
7075
+ dispatch(setModal({
7076
+ isOpen: true,
7077
+ type: "warning",
7078
+ message: "Do you want to impersonate this user?",
7079
+ onConfirm: function () {
7080
+ try {
7081
+ var _temp9 = function _temp9() {
7082
+ dispatch(setLoading(false));
7083
+ };
7178
7084
 
7179
- dispatch(setLoading(true));
7085
+ dispatch(setLoading(true));
7180
7086
 
7181
- var _temp18 = _catch(function () {
7182
- return Promise.resolve(forgotChangePassword(data)).then(function () {
7183
- dispatch(setAlert({
7184
- type: "success",
7185
- message: "Send forgot password link successfully"
7087
+ var _temp10 = _catch(function () {
7088
+ var req = {
7089
+ email: data.email,
7090
+ password: "default",
7091
+ accessToken: data.token
7092
+ };
7093
+ return Promise.resolve(logIn(req)).then(function (res) {
7094
+ localStorage.clear();
7095
+ redirectLoginUser(res);
7096
+ });
7097
+ }, function (err) {
7098
+ var _err$response3, _err$response3$data;
7099
+
7100
+ setAlert({
7101
+ type: "danger",
7102
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message
7103
+ });
7104
+ });
7105
+
7106
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7107
+ } catch (e) {
7108
+ return Promise.reject(e);
7109
+ }
7110
+ }
7186
7111
  }));
7187
7112
  });
7188
7113
  }, function (err) {
7189
- var _err$response3, _err$response3$data;
7114
+ var _err$response4, _err$response4$data;
7190
7115
 
7191
7116
  dispatch(setAlert({
7192
7117
  type: "danger",
7193
- message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message || "Error occured"
7118
+ message: ((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.title) || err.message
7194
7119
  }));
7195
7120
  });
7196
7121
 
7197
- return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7122
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
7198
7123
  } catch (e) {
7199
7124
  return Promise.reject(e);
7200
7125
  }
7201
- }, []);
7126
+ }, [filters]);
7127
+
7128
+ var reDirectDetailPage = function reDirectDetailPage(id) {
7129
+ var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
7130
+ history.push(url);
7131
+ };
7132
+
7202
7133
  return {
7203
- userDetail: userDetail,
7204
- backToList: backToList,
7205
- confirmData: confirmData,
7206
- file: file,
7207
- setFile: setFile,
7208
- edited: edited,
7209
- setEdited: setEdited,
7210
- setEditedTrue: setEditedTrue,
7211
- confirmChangePassword: confirmChangePassword,
7212
- forgotPasswordRequest: forgotPasswordRequest,
7213
- currentRoles: currentRoles,
7214
- handleDisableRoles: handleDisableRoles
7134
+ userList: userList,
7135
+ totalItems: totalItems,
7136
+ filters: filters,
7137
+ queryName: queryName,
7138
+ getData: getData,
7139
+ removeData: removeData,
7140
+ changeFilters: changeFilters,
7141
+ reDirectDetailPage: reDirectDetailPage,
7142
+ swicthUser: swicthUser
7215
7143
  };
7216
7144
  };
7217
7145
 
7218
- var userSchema = yup.object({
7219
- firstName: yup.string().required("First name is required"),
7220
- lastName: yup.string().required("Last name is required"),
7221
- dateOfBirth: yup.string().required("Date of birth is required"),
7222
- email: yup.string().email("Email is invalid").required("Email is required"),
7223
- roles: yup.array().of(yup.string()).min(1, "Role is required")
7224
- });
7146
+ var SearchBox = function SearchBox(_ref) {
7147
+ var initValue = _ref.initValue,
7148
+ onSearch = _ref.onSearch,
7149
+ placeholder = _ref.placeholder,
7150
+ className = _ref.className,
7151
+ style = _ref.style;
7225
7152
 
7226
- var changePasswordSchema = yup.object({
7227
- oldPassword: yup.string().required("Current password is required"),
7228
- newPassword: yup.string().required("New password is required"),
7229
- confirmedNewPassword: yup.string().required("Confirm password is required")
7230
- });
7153
+ var _useState = React.useState(initValue),
7154
+ searchString = _useState[0],
7155
+ setSearchString = _useState[1];
7231
7156
 
7232
- var CREATE_USER = "create_user";
7233
- var EDIT_USER_HEADER = "edit_user";
7234
- var CHANGE_PASSWORD$1 = "change_password";
7157
+ React.useEffect(function () {
7158
+ setSearchString(initValue);
7159
+ }, [initValue]);
7160
+ var onKeyUp = React.useCallback(function (e) {
7161
+ e.key === "Enter" && onSearch(searchString);
7162
+ }, [searchString, onSearch]);
7163
+ return React__default.createElement(reactstrap.Input, {
7164
+ placeholder: placeholder,
7165
+ value: searchString,
7166
+ onChange: function onChange(e) {
7167
+ return setSearchString(e.target.value);
7168
+ },
7169
+ onKeyUp: onKeyUp,
7170
+ className: className,
7171
+ style: style
7172
+ });
7173
+ };
7235
7174
 
7236
- var UserDetail = function UserDetail() {
7237
- var _useParams = reactRouterDom.useParams(),
7238
- id = _useParams.id;
7175
+ SearchBox.defaultProps = {
7176
+ placeholder: "Type something to search",
7177
+ className: "",
7178
+ style: {}
7179
+ };
7180
+ var SearchBox$1 = React.memo(SearchBox);
7239
7181
 
7240
- var user = reactRedux.useSelector(function (state) {
7241
- return state.common.user;
7242
- });
7182
+ var searchInputStyle = {
7183
+ height: 38
7184
+ };
7243
7185
 
7244
- var _useTranslation = reactI18next.useTranslation(),
7245
- t = _useTranslation.t;
7186
+ var SearchBoxContainer = function SearchBoxContainer(_ref) {
7187
+ var text = _ref.text,
7188
+ initValue = _ref.initValue,
7189
+ onClick = _ref.onClick,
7190
+ onSearch = _ref.onSearch,
7191
+ placeholder = _ref.placeholder;
7192
+ return React__default.createElement("div", {
7193
+ className: "d-flex align-items-center"
7194
+ }, React__default.createElement("div", null, React__default.createElement(AddButton, {
7195
+ text: text,
7196
+ onClick: onClick
7197
+ })), React__default.createElement("div", {
7198
+ className: "flex-grow-1 ml-2"
7199
+ }, React__default.createElement(SearchBox$1, {
7200
+ initValue: initValue,
7201
+ onSearch: onSearch,
7202
+ placeholder: placeholder,
7203
+ style: searchInputStyle
7204
+ })));
7205
+ };
7246
7206
 
7247
- var _useUserDetail = useUserDetail(id),
7248
- userDetail = _useUserDetail.userDetail,
7249
- backToList = _useUserDetail.backToList,
7250
- confirmData = _useUserDetail.confirmData,
7251
- file = _useUserDetail.file,
7252
- setFile = _useUserDetail.setFile,
7253
- edited = _useUserDetail.edited,
7254
- setEdited = _useUserDetail.setEdited,
7255
- setEditedTrue = _useUserDetail.setEditedTrue,
7256
- confirmChangePassword = _useUserDetail.confirmChangePassword,
7257
- forgotPasswordRequest = _useUserDetail.forgotPasswordRequest,
7258
- currentRoles = _useUserDetail.currentRoles,
7259
- handleDisableRoles = _useUserDetail.handleDisableRoles;
7207
+ SearchBoxContainer.defaultProps = {
7208
+ placeholder: "Type something to search"
7209
+ };
7210
+
7211
+ var utcToLocalTime = (function (time, FORMAT) {
7212
+ if (time === DATE_MIN_VALUE) return "";
7213
+
7214
+ try {
7215
+ return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7216
+ } catch (_unused) {
7217
+ return "";
7218
+ }
7219
+ });
7220
+
7221
+ var header$2 = "User";
7222
+
7223
+ var UserList = function UserList() {
7224
+ var _useUserList = useUserList(),
7225
+ queryName = _useUserList.queryName,
7226
+ userList = _useUserList.userList,
7227
+ totalItems = _useUserList.totalItems,
7228
+ filters = _useUserList.filters,
7229
+ removeData = _useUserList.removeData,
7230
+ changeFilters = _useUserList.changeFilters,
7231
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
7232
+ swicthUser = _useUserList.swicthUser;
7233
+
7234
+ var _useTranslation = reactI18next.useTranslation(),
7235
+ t = _useTranslation.t;
7236
+
7237
+ return React__default.createElement("div", {
7238
+ className: "fadeIn animated"
7239
+ }, React__default.createElement("h5", {
7240
+ className: "mb-2"
7241
+ }, t("" + header$2)), React__default.createElement(reactstrap.Row, {
7242
+ className: "my-2"
7243
+ }, React__default.createElement(reactstrap.Col, {
7244
+ md: 8
7245
+ }, React__default.createElement(SearchBoxContainer, {
7246
+ text: t("create_user"),
7247
+ onClick: function onClick() {
7248
+ return reDirectDetailPage();
7249
+ },
7250
+ initValue: !!queryName ? queryName : "",
7251
+ onSearch: function onSearch(searchString) {
7252
+ return changeFilters({
7253
+ searchString: searchString
7254
+ });
7255
+ },
7256
+ placeholder: t("type_something_to_search_by_user_name")
7257
+ })), React__default.createElement(reactstrap.Col, {
7258
+ md: 4,
7259
+ className: "d-flex justify-content-end align-items-center"
7260
+ }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
7261
+ className: "mb-2"
7262
+ }, React__default.createElement(reactstrap.Col, {
7263
+ md: 12
7264
+ }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
7265
+ bordered: true,
7266
+ hover: true,
7267
+ striped: true,
7268
+ responsive: true,
7269
+ size: "sm"
7270
+ }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
7271
+ className: "align-top"
7272
+ }, t("name")), React__default.createElement("th", {
7273
+ className: "align-top"
7274
+ }, t("email")), React__default.createElement("th", {
7275
+ className: "align-top"
7276
+ }, t("age")), React__default.createElement("th", {
7277
+ className: "align-top"
7278
+ }, t("role")), React__default.createElement("th", {
7279
+ className: "align-top"
7280
+ }, t("active_status")), React__default.createElement("th", {
7281
+ className: "align-top"
7282
+ }, t("created_time")), React__default.createElement("th", {
7283
+ className: "text-center"
7284
+ }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
7285
+ return React__default.createElement("tr", {
7286
+ key: record.id
7287
+ }, React__default.createElement("td", {
7288
+ className: "align-middle"
7289
+ }, React__default.createElement(LinkEditButton, {
7290
+ label: "" + record.fullName,
7291
+ onClick: function onClick() {
7292
+ return reDirectDetailPage(record.id);
7293
+ }
7294
+ })), React__default.createElement("td", {
7295
+ className: "align-middle"
7296
+ }, record.email), React__default.createElement("td", {
7297
+ className: "align-middle"
7298
+ }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
7299
+ className: "align-middle"
7300
+ }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
7301
+ className: "align-middle"
7302
+ }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
7303
+ className: "align-middle"
7304
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
7305
+ className: "text-center align-middle"
7306
+ }, React__default.createElement(fa.FaUsersCog, {
7307
+ style: {
7308
+ fontSize: "18px",
7309
+ marginRight: "10px",
7310
+ cursor: "pointer"
7311
+ },
7312
+ onClick: function onClick() {
7313
+ return swicthUser(record.id);
7314
+ }
7315
+ }), React__default.createElement(DeleteButtonIcon, {
7316
+ onClick: function onClick() {
7317
+ return removeData(record.id);
7318
+ }
7319
+ })));
7320
+ })))) : React__default.createElement(EmptyDataAlert, {
7321
+ label: t("user")
7322
+ })), React__default.createElement(reactstrap.Col, {
7323
+ md: 12
7324
+ }, React__default.createElement(CustomPagination, {
7325
+ filters: filters,
7326
+ totalRecordCount: totalItems,
7327
+ changePageSize: function changePageSize(pageSize) {
7328
+ return changeFilters({
7329
+ pageSize: pageSize
7330
+ });
7331
+ },
7332
+ changePage: function changePage(currentPage) {
7333
+ return changeFilters({
7334
+ currentPage: currentPage
7335
+ });
7336
+ }
7337
+ }))));
7338
+ };
7339
+
7340
+ var MAX_FILE_SIZE = 20097152;
7341
+
7342
+ var UploadFileButton = function UploadFileButton(_ref) {
7343
+ var fileName = _ref.fileName,
7344
+ maxWidth = _ref.maxWidth,
7345
+ maxHeight = _ref.maxHeight,
7346
+ setFile = _ref.setFile,
7347
+ canDelete = _ref.canDelete,
7348
+ onDelete = _ref.onDelete,
7349
+ isCheckFeedBack = _ref.isCheckFeedBack,
7350
+ onAddImage = _ref.onAddImage;
7351
+ var dispatch = reactRedux.useDispatch();
7352
+
7353
+ var _useState = React.useState(""),
7354
+ imagePreviewUrl = _useState[0],
7355
+ setImagePreviewUrl = _useState[1];
7356
+
7357
+ var imageStyle = {
7358
+ maxWidth: maxWidth || "100%",
7359
+ maxHeight: maxHeight || "100%"
7360
+ };
7361
+ var imageSrc = imagePreviewUrl || getFileUrl(fileName);
7362
+
7363
+ var handleImageChange = function handleImageChange(e) {
7364
+ e.preventDefault();
7365
+ var reader = new FileReader();
7366
+ var newFile = e.target.files[0];
7367
+
7368
+ if (newFile.size > MAX_FILE_SIZE) {
7369
+ dispatch(setAlert({
7370
+ type: "danger",
7371
+ message: "File can't be larger than 2MB"
7372
+ }));
7373
+ return;
7374
+ }
7375
+
7376
+ reader.onloadend = function () {
7377
+ setFile(newFile);
7378
+ setImagePreviewUrl(reader.result);
7379
+ };
7380
+
7381
+ if (newFile) {
7382
+ reader.readAsDataURL(newFile);
7383
+ }
7384
+
7385
+ !!onAddImage && onAddImage();
7386
+ };
7387
+
7388
+ var imagePreviewContainer = imagePreviewUrl || fileName ? React__default.createElement("img", {
7389
+ style: imageStyle,
7390
+ src: imageSrc,
7391
+ alt: "image"
7392
+ }) : null;
7393
+ return React__default.createElement("div", {
7394
+ className: "mb-2"
7395
+ }, React__default.createElement(reactstrap.Form, {
7396
+ className: "mb-2"
7397
+ }, React__default.createElement(reactstrap.Input, {
7398
+ className: "d-none",
7399
+ type: "file",
7400
+ id: "uploadFile",
7401
+ onChange: handleImageChange,
7402
+ accept: "image/*"
7403
+ }), React__default.createElement("div", {
7404
+ className: "d-flex align-items-center"
7405
+ }, React__default.createElement(reactstrap.Label, {
7406
+ htmlFor: "uploadFile",
7407
+ role: "button",
7408
+ tabIndex: 0,
7409
+ className: styles["input-file-label"]
7410
+ }, isCheckFeedBack == true ? React__default.createElement(md.MdAttachFile, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("i", {
7411
+ className: "fa fa-paperclip mr-1",
7412
+ "aria-hidden": "true"
7413
+ }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React__default.createElement(reactstrap.Button, {
7414
+ size: "sm",
7415
+ color: "danger",
7416
+ className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
7417
+ onClick: function onClick() {
7418
+ setImagePreviewUrl(null);
7419
+ onDelete && onDelete();
7420
+ }
7421
+ }, React__default.createElement(fa.FaTrashAlt, null)))), imagePreviewContainer);
7422
+ };
7423
+
7424
+ var initValue$3 = {
7425
+ id: "",
7426
+ firstName: "",
7427
+ lastName: "",
7428
+ email: "",
7429
+ dateOfBirth: "",
7430
+ roles: [],
7431
+ isActive: true,
7432
+ profileImageFileName: ""
7433
+ };
7434
+ var USER_LIST_URL = "/admin/user";
7435
+ var TITLE$8 = "User detail";
7436
+
7437
+ var useUserDetail = function useUserDetail(id) {
7438
+ var dispatch = reactRedux.useDispatch();
7439
+ var history = reactRouterDom.useHistory();
7440
+
7441
+ var _useState = React.useState(initValue$3),
7442
+ userDetail = _useState[0],
7443
+ setUserDetail = _useState[1];
7444
+
7445
+ var _useState2 = React.useState(null),
7446
+ file = _useState2[0],
7447
+ setFile = _useState2[1];
7448
+
7449
+ var _useState3 = React.useState(false),
7450
+ edited = _useState3[0],
7451
+ setEdited = _useState3[1];
7452
+
7453
+ var setEditedTrue = function setEditedTrue() {
7454
+ try {
7455
+ localStorage.setItem(window.location.href, "true");
7456
+ setEdited(true);
7457
+ return Promise.resolve();
7458
+ } catch (e) {
7459
+ return Promise.reject(e);
7460
+ }
7461
+ };
7462
+
7463
+ var _useState4 = React.useState([]),
7464
+ currentRoles = _useState4[0],
7465
+ setCurrentRoles = _useState4[1];
7466
+
7467
+ React.useEffect(function () {
7468
+ document.title = TITLE$8;
7469
+ setEdited(false);
7470
+ if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
7471
+ }, []);
7472
+ React.useEffect(function () {
7473
+ !!id && getData();
7474
+ }, [id]);
7475
+ var getData = React.useCallback(function () {
7476
+ try {
7477
+ var _temp3 = function _temp3() {
7478
+ dispatch(setLoading(false));
7479
+ };
7480
+
7481
+ dispatch(setLoading(true));
7482
+
7483
+ var _temp4 = _catch(function () {
7484
+ return Promise.resolve(getById$3(id)).then(function (res) {
7485
+ var _res$data$roles, _res$data, _res$data2;
7486
+
7487
+ setUserDetail(_extends({}, res.data, {
7488
+ dateOfBirth: dateFns.format(new Date(res.data.dateOfBirth), DATE_FORMAT),
7489
+ roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
7490
+ }));
7491
+ setCurrentRoles((_res$data$roles = res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.roles) != null ? _res$data$roles : []);
7492
+ document.title = (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.fullName;
7493
+ });
7494
+ }, function (err) {
7495
+ var _err$response, _err$response$data;
7496
+
7497
+ dispatch(setAlert({
7498
+ type: "danger",
7499
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
7500
+ }));
7501
+ });
7502
+
7503
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
7504
+ } catch (e) {
7505
+ return Promise.reject(e);
7506
+ }
7507
+ }, [id]);
7508
+ var backToList = React.useCallback(function (user) {
7509
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
7510
+ }, []);
7511
+ var confirmData = React.useCallback(function (data) {
7512
+ try {
7513
+ var _temp9 = function _temp9() {
7514
+ dispatch(setLoading(false));
7515
+ };
7516
+
7517
+ dispatch(setLoading(true));
7518
+
7519
+ var _temp10 = _catch(function () {
7520
+ function _temp6() {
7521
+ var next = !!id ? update$5 : create$5;
7522
+ !id && delete data.id;
7523
+ return Promise.resolve(next(data)).then(function (result) {
7524
+ if (!!result) {
7525
+ getById$3(result.data.id).then(function (e) {
7526
+ backToList(e.data.fullName);
7527
+ });
7528
+ }
7529
+
7530
+ if (!id) {
7531
+ alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7532
+ }
7533
+
7534
+ dispatch(setAlert({
7535
+ type: "success",
7536
+ message: (!!id ? "Update" : "Create") + " user successfully"
7537
+ }));
7538
+ });
7539
+ }
7540
+
7541
+ var _temp5 = function () {
7542
+ if (!!file) {
7543
+ var formData = new FormData();
7544
+ var name = file.name;
7545
+ formData.append("file", file, name);
7546
+ return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7547
+ var _res$data3;
7548
+
7549
+ var imageUrl = res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.key;
7550
+ data.profileImageFileName = imageUrl;
7551
+ });
7552
+ }
7553
+ }();
7554
+
7555
+ return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
7556
+ }, function (err) {
7557
+ var _err$response2, _err$response2$data;
7558
+
7559
+ dispatch(setAlert({
7560
+ type: "danger",
7561
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
7562
+ }));
7563
+ });
7564
+
7565
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7566
+ } catch (e) {
7567
+ return Promise.reject(e);
7568
+ }
7569
+ }, [id, file]);
7570
+
7571
+ var handleDisableRoles = function handleDisableRoles(currentRoles) {
7572
+ return ["Student", "Parent", "EduTeacher"].includes(currentRoles);
7573
+ };
7574
+
7575
+ var confirmChangePassword = function confirmChangePassword(data) {
7576
+ try {
7577
+ var _temp13 = function _temp13() {
7578
+ dispatch(setLoading(false));
7579
+ };
7580
+
7581
+ dispatch(setLoading(true));
7582
+
7583
+ var _temp14 = _catch(function () {
7584
+ return Promise.resolve(changePassword(data)).then(function () {
7585
+ dispatch(setAlert({
7586
+ type: "success",
7587
+ message: "Change password successfully"
7588
+ }));
7589
+ });
7590
+ }, function (e) {
7591
+ var _e$response, _e$response$data;
7592
+
7593
+ dispatch(setAlert({
7594
+ type: "danger",
7595
+ message: ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : (_e$response$data = _e$response.data) === null || _e$response$data === void 0 ? void 0 : _e$response$data.title) || e.message
7596
+ }));
7597
+ });
7598
+
7599
+ return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7600
+ } catch (e) {
7601
+ return Promise.reject(e);
7602
+ }
7603
+ };
7604
+
7605
+ var forgotPasswordRequest = React.useCallback(function (data) {
7606
+ try {
7607
+ var _temp17 = function _temp17() {
7608
+ dispatch(setLoading(false));
7609
+ };
7610
+
7611
+ dispatch(setLoading(true));
7612
+
7613
+ var _temp18 = _catch(function () {
7614
+ return Promise.resolve(forgotChangePassword(data)).then(function () {
7615
+ dispatch(setAlert({
7616
+ type: "success",
7617
+ message: "Send forgot password link successfully"
7618
+ }));
7619
+ });
7620
+ }, function (err) {
7621
+ var _err$response3, _err$response3$data;
7622
+
7623
+ dispatch(setAlert({
7624
+ type: "danger",
7625
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message || "Error occured"
7626
+ }));
7627
+ });
7628
+
7629
+ return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7630
+ } catch (e) {
7631
+ return Promise.reject(e);
7632
+ }
7633
+ }, []);
7634
+ return {
7635
+ userDetail: userDetail,
7636
+ backToList: backToList,
7637
+ confirmData: confirmData,
7638
+ file: file,
7639
+ setFile: setFile,
7640
+ edited: edited,
7641
+ setEdited: setEdited,
7642
+ setEditedTrue: setEditedTrue,
7643
+ confirmChangePassword: confirmChangePassword,
7644
+ forgotPasswordRequest: forgotPasswordRequest,
7645
+ currentRoles: currentRoles,
7646
+ handleDisableRoles: handleDisableRoles
7647
+ };
7648
+ };
7649
+
7650
+ var userSchema = yup.object({
7651
+ firstName: yup.string().required("First name is required"),
7652
+ lastName: yup.string().required("Last name is required"),
7653
+ dateOfBirth: yup.string().required("Date of birth is required"),
7654
+ email: yup.string().email("Email is invalid").required("Email is required"),
7655
+ roles: yup.array().of(yup.string()).min(1, "Role is required")
7656
+ });
7657
+
7658
+ var changePasswordSchema = yup.object({
7659
+ oldPassword: yup.string().required("Current password is required"),
7660
+ newPassword: yup.string().required("New password is required"),
7661
+ confirmedNewPassword: yup.string().required("Confirm password is required")
7662
+ });
7663
+
7664
+ var CREATE_USER = "create_user";
7665
+ var EDIT_USER_HEADER = "edit_user";
7666
+ var CHANGE_PASSWORD$1 = "change_password";
7667
+
7668
+ var UserDetail = function UserDetail() {
7669
+ var _useParams = reactRouterDom.useParams(),
7670
+ id = _useParams.id;
7671
+
7672
+ var user = reactRedux.useSelector(function (state) {
7673
+ return state.common.user;
7674
+ });
7675
+
7676
+ var _useTranslation = reactI18next.useTranslation(),
7677
+ t = _useTranslation.t;
7678
+
7679
+ var _useUserDetail = useUserDetail(id),
7680
+ userDetail = _useUserDetail.userDetail,
7681
+ backToList = _useUserDetail.backToList,
7682
+ confirmData = _useUserDetail.confirmData,
7683
+ file = _useUserDetail.file,
7684
+ setFile = _useUserDetail.setFile,
7685
+ edited = _useUserDetail.edited,
7686
+ setEdited = _useUserDetail.setEdited,
7687
+ setEditedTrue = _useUserDetail.setEditedTrue,
7688
+ confirmChangePassword = _useUserDetail.confirmChangePassword,
7689
+ forgotPasswordRequest = _useUserDetail.forgotPasswordRequest,
7690
+ currentRoles = _useUserDetail.currentRoles,
7691
+ handleDisableRoles = _useUserDetail.handleDisableRoles;
7260
7692
 
7261
7693
  var initialValueForm = {
7262
7694
  oldPassword: "",
@@ -7674,16 +8106,6 @@ var CommonHeader = function CommonHeader(_ref) {
7674
8106
  }, header))));
7675
8107
  };
7676
8108
 
7677
- var utcToLocalTime = (function (time, FORMAT) {
7678
- if (time === DATE_MIN_VALUE) return "";
7679
-
7680
- try {
7681
- return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7682
- } catch (_unused) {
7683
- return "";
7684
- }
7685
- });
7686
-
7687
8109
  var NotificationLogoutModal = function NotificationLogoutModal() {
7688
8110
  var _useState = React.useState(false),
7689
8111
  isOpen = _useState[0],
@@ -7780,42 +8202,6 @@ var CreatableSelector = function CreatableSelector(props) {
7780
8202
  });
7781
8203
  };
7782
8204
 
7783
- var SearchBox = function SearchBox(_ref) {
7784
- var initValue = _ref.initValue,
7785
- onSearch = _ref.onSearch,
7786
- placeholder = _ref.placeholder,
7787
- className = _ref.className,
7788
- style = _ref.style;
7789
-
7790
- var _useState = React.useState(initValue),
7791
- searchString = _useState[0],
7792
- setSearchString = _useState[1];
7793
-
7794
- React.useEffect(function () {
7795
- setSearchString(initValue);
7796
- }, [initValue]);
7797
- var onKeyUp = React.useCallback(function (e) {
7798
- e.key === "Enter" && onSearch(searchString);
7799
- }, [searchString, onSearch]);
7800
- return React__default.createElement(reactstrap.Input, {
7801
- placeholder: placeholder,
7802
- value: searchString,
7803
- onChange: function onChange(e) {
7804
- return setSearchString(e.target.value);
7805
- },
7806
- onKeyUp: onKeyUp,
7807
- className: className,
7808
- style: style
7809
- });
7810
- };
7811
-
7812
- SearchBox.defaultProps = {
7813
- placeholder: "Type something to search",
7814
- className: "",
7815
- style: {}
7816
- };
7817
- var SearchBox$1 = React.memo(SearchBox);
7818
-
7819
8205
  var QuestionTypeSelector = function QuestionTypeSelector(props) {
7820
8206
  var id = props.id;
7821
8207
  var initValue = !!id ? QUESTION_TYPES_OPTIONS.find(function (option) {
@@ -8177,7 +8563,7 @@ var defaultFilters = {
8177
8563
  searchString: "",
8178
8564
  isRead: false
8179
8565
  };
8180
- var TITLE$8 = "Notification list";
8566
+ var TITLE$9 = "Notification list";
8181
8567
  var NOTIFICATION_CHANNEL$1 = "NOTIFICATION_CHANNEL";
8182
8568
  var NEW_NOTIFICATION$1 = "NEW_NOTIFICATION";
8183
8569
 
@@ -8307,7 +8693,7 @@ var useNotificationList = function useNotificationList() {
8307
8693
  }
8308
8694
  }, [filters]);
8309
8695
  React.useEffect(function () {
8310
- document.title = TITLE$8;
8696
+ document.title = TITLE$9;
8311
8697
  }, []);
8312
8698
  React.useEffect(function () {
8313
8699
  getData();
@@ -8392,7 +8778,7 @@ var useNotificationList = function useNotificationList() {
8392
8778
  };
8393
8779
  };
8394
8780
 
8395
- var header$2 = "Notification list";
8781
+ var header$3 = "Notification list";
8396
8782
  var ICON_SIZE = 20;
8397
8783
 
8398
8784
  var NotificationList = function NotificationList() {
@@ -8413,7 +8799,7 @@ var NotificationList = function NotificationList() {
8413
8799
  }
8414
8800
  }, React__default.createElement("h5", {
8415
8801
  className: "mb-2"
8416
- }, header$2), React__default.createElement(reactstrap.Row, {
8802
+ }, header$3), React__default.createElement(reactstrap.Row, {
8417
8803
  className: "my-2"
8418
8804
  }, React__default.createElement(reactstrap.Col, {
8419
8805
  md: 8
@@ -8503,43 +8889,14 @@ var NotificationList = function NotificationList() {
8503
8889
  changePageSize: function changePageSize(pageSize) {
8504
8890
  return changeFilters({
8505
8891
  pageSize: pageSize
8506
- });
8507
- },
8508
- changePage: function changePage(currentPage) {
8509
- return changeFilters({
8510
- currentPage: currentPage
8511
- });
8512
- }
8513
- }))));
8514
- };
8515
-
8516
- var searchInputStyle = {
8517
- height: 38
8518
- };
8519
-
8520
- var SearchBoxContainer = function SearchBoxContainer(_ref) {
8521
- var text = _ref.text,
8522
- initValue = _ref.initValue,
8523
- onClick = _ref.onClick,
8524
- onSearch = _ref.onSearch,
8525
- placeholder = _ref.placeholder;
8526
- return React__default.createElement("div", {
8527
- className: "d-flex align-items-center"
8528
- }, React__default.createElement("div", null, React__default.createElement(AddButton, {
8529
- text: text,
8530
- onClick: onClick
8531
- })), React__default.createElement("div", {
8532
- className: "flex-grow-1 ml-2"
8533
- }, React__default.createElement(SearchBox$1, {
8534
- initValue: initValue,
8535
- onSearch: onSearch,
8536
- placeholder: placeholder,
8537
- style: searchInputStyle
8538
- })));
8539
- };
8540
-
8541
- SearchBoxContainer.defaultProps = {
8542
- placeholder: "Type something to search"
8892
+ });
8893
+ },
8894
+ changePage: function changePage(currentPage) {
8895
+ return changeFilters({
8896
+ currentPage: currentPage
8897
+ });
8898
+ }
8899
+ }))));
8543
8900
  };
8544
8901
 
8545
8902
  var CustomTabs = function CustomTabs(props) {
@@ -8946,7 +9303,7 @@ var get$8 = function get(filter) {
8946
9303
  });
8947
9304
  };
8948
9305
 
8949
- var TITLE$9 = "Gallery";
9306
+ var TITLE$a = "Gallery";
8950
9307
  var defaultFilter = {
8951
9308
  searchString: ""
8952
9309
  };
@@ -9183,7 +9540,7 @@ var useGalleryList = function useGalleryList(isLibrary) {
9183
9540
  }
9184
9541
  }, [dispatch, filters]);
9185
9542
  React.useEffect(function () {
9186
- document.title = TITLE$9;
9543
+ document.title = TITLE$a;
9187
9544
  dispatch(setTargetMedia({
9188
9545
  targetMedia: undefined
9189
9546
  }));
@@ -9375,7 +9732,7 @@ var MediaDetail = function MediaDetail(_ref) {
9375
9732
 
9376
9733
  var MediaDetail$1 = React__default.memo(MediaDetail);
9377
9734
 
9378
- var header$3 = "Gallery";
9735
+ var header$4 = "Gallery";
9379
9736
 
9380
9737
  var GalleryList = function GalleryList(_ref) {
9381
9738
  var isLibrary = _ref.isLibrary;
@@ -9386,7 +9743,7 @@ var GalleryList = function GalleryList(_ref) {
9386
9743
  className: "fadeIn animated"
9387
9744
  }, !isLibrary && React__default.createElement("h5", {
9388
9745
  className: "mb-2"
9389
- }, header$3), React__default.createElement(reactstrap.Row, {
9746
+ }, header$4), React__default.createElement(reactstrap.Row, {
9390
9747
  className: "mb-2"
9391
9748
  }, React__default.createElement(reactstrap.Col, {
9392
9749
  md: 8
@@ -9976,9 +10333,6 @@ var commonReducer$8 = toolkit.createReducer(initialState$e, function (builder) {
9976
10333
  });
9977
10334
  });
9978
10335
 
9979
- var setUserList = toolkit.createAction("users/setUserList");
9980
- var setStudentList = toolkit.createAction("users/setStudentList");
9981
-
9982
10336
  var initialState$f = {
9983
10337
  userList: [],
9984
10338
  totalItems: 0,
@@ -10452,591 +10806,239 @@ var sessionPlayerReducer = toolkit.createReducer(initialState$u, function (build
10452
10806
  questionId: questionId,
10453
10807
  text: text
10454
10808
  });
10455
- } else {
10456
- existedResponse.text = text;
10457
- }
10458
-
10459
- return _extends({}, state, {
10460
- results: state.results.map(function (result) {
10461
- return result.isTeacherResult === isTeacherResult ? resultCloner : result;
10462
- })
10463
- });
10464
- }).addCase(setStartTime, function (state, action) {
10465
- var startTime = action.payload;
10466
- if (!startTime) return state;
10467
- state.startTime = startTime;
10468
- }).addCase(reset, function (_state, _action) {
10469
- return initialState$u;
10470
- });
10471
- });
10472
-
10473
- var setDataPlayer = toolkit.createAction("dataPlayer/setDataPlayer");
10474
- var answerQuestionDataPlayer = toolkit.createAction("dataPlayer/answerQuestionDataPlayer");
10475
-
10476
- var initialState$v = {
10477
- id: 0,
10478
- questions: [{
10479
- id: 0,
10480
- text: "",
10481
- type: "",
10482
- subQuestions: [],
10483
- answers: []
10484
- }],
10485
- questionResponse: []
10486
- };
10487
- var dataPlayer = toolkit.createReducer(initialState$v, function (builder) {
10488
- builder.addCase(setDataPlayer, function (_state, action) {
10489
- return action.payload;
10490
- }).addCase(answerQuestionDataPlayer, function (state, action) {
10491
- var _action$payload = action.payload,
10492
- questionId = _action$payload.questionId,
10493
- text = _action$payload.text;
10494
- var questionResponse = state.questionResponse;
10495
- if (!questionResponse) return state;
10496
- var questionResponseCloner = JSON.parse(JSON.stringify(questionResponse));
10497
- var existedResponse = questionResponseCloner.find(function (response) {
10498
- return response.questionId === questionId;
10499
- });
10500
-
10501
- if (!existedResponse) {
10502
- questionResponseCloner.push({
10503
- questionId: questionId,
10504
- text: text
10505
- });
10506
- } else {
10507
- existedResponse.text = text;
10508
- }
10509
-
10510
- return _extends({}, state, {
10511
- questionResponse: questionResponseCloner
10512
- });
10513
- }).addCase(reset, function (_state, _action) {
10514
- return initialState$v;
10515
- });
10516
- });
10517
-
10518
- var setCertificateList = toolkit.createAction("certificates/setCertificateList");
10519
-
10520
- var initialState$w = {
10521
- certificateList: [],
10522
- totalItems: 0
10523
- };
10524
- var commonReducer$f = toolkit.createReducer(initialState$w, function (builder) {
10525
- builder.addCase(setCertificateList, function (state, action) {
10526
- state.certificateList = action.payload.certificateList;
10527
- state.totalItems = action.payload.totalItems;
10528
- }).addCase(reset, function (_state, _action) {
10529
- return initialState$w;
10530
- });
10531
- });
10532
-
10533
- var setImproveMyClass = toolkit.createAction("improveMyClass/setImproveMyClass");
10534
-
10535
- var initialState$x = {
10536
- improveMyClassList: []
10537
- };
10538
- var commonReducer$g = toolkit.createReducer(initialState$x, function (builder) {
10539
- builder.addCase(setImproveMyClass, function (state, action) {
10540
- state.improveMyClassList = action.payload;
10541
- }).addCase(reset, function (_state, _action) {
10542
- return initialState$x;
10543
- });
10544
- });
10545
-
10546
- var setFilterWidget = toolkit.createAction("setFilterWidget");
10547
-
10548
- var initialState$y = {
10549
- filterWidget: "Year"
10550
- };
10551
- var widgetReducer = toolkit.createReducer(initialState$y, function (builder) {
10552
- builder.addCase(setFilterWidget, function (state, action) {
10553
- state.filterWidget = action.payload.filterWidget;
10554
- }).addCase(reset, function (_state, _action) {
10555
- return initialState$y;
10556
- });
10557
- });
10558
-
10559
- var setBandScoreList = toolkit.createAction("bandScores/setBandScoreList");
10560
-
10561
- var initialState$z = {
10562
- bandScoreList: [],
10563
- totalItems: 0
10564
- };
10565
- var commonReducer$h = toolkit.createReducer(initialState$z, function (builder) {
10566
- builder.addCase(setBandScoreList, function (state, action) {
10567
- state.bandScoreList = action.payload.bandScoreList;
10568
- state.totalItems = action.payload.totalItems;
10569
- }).addCase(reset, function (_state, _action) {
10570
- return initialState$z;
10571
- });
10572
- });
10573
-
10574
- var setSchoolBlankDayList = toolkit.createAction("schoolBlankDays/setSchoolBlankDayList");
10575
-
10576
- var initialState$A = {
10577
- schoolBlankDayList: [],
10578
- totalItems: 0
10579
- };
10580
- var commonReducer$i = toolkit.createReducer(initialState$A, function (builder) {
10581
- builder.addCase(setSchoolBlankDayList, function (state, action) {
10582
- state.schoolBlankDayList = action.payload.schoolBlankDayList;
10583
- state.totalItems = action.payload.totalItems;
10584
- }).addCase(reset, function (_state, _action) {
10585
- return initialState$A;
10586
- });
10587
- });
10588
-
10589
- var setStudentIdSelectedByTeacher = toolkit.createAction("navMobile/setStudentIdSelectedByTeacher");
10590
-
10591
- var initialState$B = {
10592
- studentIdSelectedByTeacher: 0
10593
- };
10594
- var navMobileReducer = toolkit.createReducer(initialState$B, function (builder) {
10595
- builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10596
- state.studentIdSelectedByTeacher = action.payload;
10597
- }).addCase(reset, function (_state, _action) {
10598
- return initialState$B;
10599
- });
10600
- });
10601
-
10602
- var rootReducer = combineReducers({
10603
- common: commonReducer,
10604
- classes: classReducer,
10605
- conferenceRubrics: conferenceRubricReducer,
10606
- faqs: commonReducer$1,
10607
- skills: commonReducer$2,
10608
- emailTemplate: emailTemplateReducer,
10609
- suggestionBank: suggestionBankReducer,
10610
- learningStrategy: learningStrategyReducer,
10611
- subjects: commonReducer$3,
10612
- learningSupportCategories: commonReducer$4,
10613
- questionBank: questionBankReducer,
10614
- badges: commonReducer$5,
10615
- semester: commonReducer$6,
10616
- goalExamples: commonReducer$8,
10617
- users: commonReducer$9,
10618
- reflections: reflectionReducer,
10619
- reflectionResults: reflectionReducer$1,
10620
- feedbacks: commonReducer$a,
10621
- assessments: commonReducer$b,
10622
- questionByCategory: questionCategoryReducer,
10623
- mailCategory: questionBankReducer$1,
10624
- questionCate: questionCateReducer,
10625
- notification: questionBankReducer$2,
10626
- myStudent: commonReducer$c,
10627
- assignments: commonReducer$7,
10628
- assistants: assistantReducer,
10629
- sesstionTemplates: sessionTemplateReducer,
10630
- sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10631
- tutorialScreens: tutorialScreenReducer,
10632
- customAlerts: commonReducer$d,
10633
- gallery: commonReducer$e,
10634
- dashboard: dashboardReducer,
10635
- sessionPlayer: sessionPlayerReducer,
10636
- dataPlayer: dataPlayer,
10637
- certificate: commonReducer$f,
10638
- improveMyClass: commonReducer$g,
10639
- widget: widgetReducer,
10640
- bandScores: commonReducer$h,
10641
- schoolBlankDays: commonReducer$i,
10642
- navMobileReducer: navMobileReducer
10643
- });
10644
-
10645
- var store = toolkit.configureStore({
10646
- reducer: rootReducer,
10647
- middleware: function middleware(getDefaultMiddleware) {
10648
- return getDefaultMiddleware({
10649
- serializableCheck: false
10650
- }).concat(logger);
10651
- }
10652
- });
10653
-
10654
- var isInViewport = function isInViewport(el) {
10655
- var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10656
- return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10657
- };
10658
-
10659
- var debounce = function debounce(callback, wait) {
10660
- var timeout = null;
10661
- return function () {
10662
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10663
- args[_key] = arguments[_key];
10664
- }
10665
-
10666
- var next = function next() {
10667
- return callback.apply(void 0, args);
10668
- };
10669
-
10670
- clearTimeout(timeout);
10671
- timeout = setTimeout(next, wait);
10672
- };
10673
- };
10674
-
10675
- var getTextFromHTML = function getTextFromHTML(htmlString) {
10676
- var p = document.createElement("p");
10677
- p.innerHTML = htmlString;
10678
- var text = p.innerText;
10679
- p.remove();
10680
- return text;
10681
- };
10682
-
10683
- var generateRandomString = (function () {
10684
- return (Math.random() + 1).toString(36).substring(7);
10685
- });
10686
-
10687
- var amplitudeClient = amplitude.getInstance();
10688
-
10689
- var USER_URL$2 = "/admin/user";
10690
- var CREATE_USER_URL = "/admin/create-user";
10691
- var TITLE$a = "User list";
10692
- var HOMEPAGE_TEACHER$1 = "/home";
10693
- var HOMEPAGE_STUDENT$1 = "/home";
10694
- var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
10695
- var HOMEPAGE_PARENT$1 = "/parent";
10696
- var HOMEPAGE_DISTRICT$1 = "/admin/schools";
10697
- var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
10809
+ } else {
10810
+ existedResponse.text = text;
10811
+ }
10698
10812
 
10699
- var useUserList = function useUserList() {
10700
- var history = reactRouterDom.useHistory();
10701
- var query = new URLSearchParams(location.search);
10702
- var queryName = query.get("query");
10703
- var userList = reactRedux.useSelector(function (state) {
10704
- return state.users.userList;
10705
- });
10706
- var totalItems = reactRedux.useSelector(function (state) {
10707
- return state.users.totalItems;
10813
+ return _extends({}, state, {
10814
+ results: state.results.map(function (result) {
10815
+ return result.isTeacherResult === isTeacherResult ? resultCloner : result;
10816
+ })
10817
+ });
10818
+ }).addCase(setStartTime, function (state, action) {
10819
+ var startTime = action.payload;
10820
+ if (!startTime) return state;
10821
+ state.startTime = startTime;
10822
+ }).addCase(reset, function (_state, _action) {
10823
+ return initialState$u;
10708
10824
  });
10825
+ });
10709
10826
 
10710
- var _useFilters = useFilters(),
10711
- filters = _useFilters.filters,
10712
- changeFilters = _useFilters.changeFilters;
10713
-
10714
- var _useState = React.useState(!!queryName ? queryName : ""),
10715
- fullName = _useState[0],
10716
- setFullName = _useState[1];
10827
+ var setDataPlayer = toolkit.createAction("dataPlayer/setDataPlayer");
10828
+ var answerQuestionDataPlayer = toolkit.createAction("dataPlayer/answerQuestionDataPlayer");
10717
10829
 
10718
- var isDistrict = window.location.host.includes("-district");
10719
- var dispatch = reactRedux.useDispatch();
10720
- var getData = React.useCallback(function (fullName) {
10721
- try {
10722
- var _temp3 = function _temp3() {
10723
- dispatch(setLoading(false));
10724
- };
10830
+ var initialState$v = {
10831
+ id: 0,
10832
+ questions: [{
10833
+ id: 0,
10834
+ text: "",
10835
+ type: "",
10836
+ subQuestions: [],
10837
+ answers: []
10838
+ }],
10839
+ questionResponse: []
10840
+ };
10841
+ var dataPlayer = toolkit.createReducer(initialState$v, function (builder) {
10842
+ builder.addCase(setDataPlayer, function (_state, action) {
10843
+ return action.payload;
10844
+ }).addCase(answerQuestionDataPlayer, function (state, action) {
10845
+ var _action$payload = action.payload,
10846
+ questionId = _action$payload.questionId,
10847
+ text = _action$payload.text;
10848
+ var questionResponse = state.questionResponse;
10849
+ if (!questionResponse) return state;
10850
+ var questionResponseCloner = JSON.parse(JSON.stringify(questionResponse));
10851
+ var existedResponse = questionResponseCloner.find(function (response) {
10852
+ return response.questionId === questionId;
10853
+ });
10725
10854
 
10726
- dispatch(setLoading(true));
10855
+ if (!existedResponse) {
10856
+ questionResponseCloner.push({
10857
+ questionId: questionId,
10858
+ text: text
10859
+ });
10860
+ } else {
10861
+ existedResponse.text = text;
10862
+ }
10727
10863
 
10728
- var _temp4 = _catch(function () {
10729
- return Promise.resolve(fullName ? get$5(_extends({}, filters, {
10730
- searchString: fullName
10731
- })) : get$5(filters)).then(function (res) {
10732
- var _res$data = res.data,
10733
- items = _res$data.items,
10734
- totalItems = _res$data.totalItems;
10864
+ return _extends({}, state, {
10865
+ questionResponse: questionResponseCloner
10866
+ });
10867
+ }).addCase(reset, function (_state, _action) {
10868
+ return initialState$v;
10869
+ });
10870
+ });
10735
10871
 
10736
- for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
10737
- var user = _step.value;
10738
- user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
10739
- }
10872
+ var setCertificateList = toolkit.createAction("certificates/setCertificateList");
10740
10873
 
10741
- dispatch(setUserList({
10742
- userList: items,
10743
- totalItems: totalItems
10744
- }));
10745
- });
10746
- }, function (err) {
10747
- var _err$response, _err$response$data;
10874
+ var initialState$w = {
10875
+ certificateList: [],
10876
+ totalItems: 0
10877
+ };
10878
+ var commonReducer$f = toolkit.createReducer(initialState$w, function (builder) {
10879
+ builder.addCase(setCertificateList, function (state, action) {
10880
+ state.certificateList = action.payload.certificateList;
10881
+ state.totalItems = action.payload.totalItems;
10882
+ }).addCase(reset, function (_state, _action) {
10883
+ return initialState$w;
10884
+ });
10885
+ });
10748
10886
 
10749
- dispatch(setAlert({
10750
- type: "danger",
10751
- message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
10752
- }));
10753
- });
10887
+ var setImproveMyClass = toolkit.createAction("improveMyClass/setImproveMyClass");
10754
10888
 
10755
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
10756
- } catch (e) {
10757
- return Promise.reject(e);
10758
- }
10759
- }, [dispatch, filters]);
10760
- React.useEffect(function () {
10761
- document.title = TITLE$a;
10762
- }, []);
10763
- React.useEffect(function () {
10764
- if (!!fullName) {
10765
- getData(fullName);
10766
- setFullName(null);
10767
- } else {
10768
- getData();
10769
- }
10770
- }, [filters]);
10771
- var removeData = React.useCallback(function (id) {
10772
- dispatch(setLoading(true));
10889
+ var initialState$x = {
10890
+ improveMyClassList: []
10891
+ };
10892
+ var commonReducer$g = toolkit.createReducer(initialState$x, function (builder) {
10893
+ builder.addCase(setImproveMyClass, function (state, action) {
10894
+ state.improveMyClassList = action.payload;
10895
+ }).addCase(reset, function (_state, _action) {
10896
+ return initialState$x;
10897
+ });
10898
+ });
10773
10899
 
10774
- try {
10775
- dispatch(setModal({
10776
- isOpen: true,
10777
- type: "warning",
10778
- message: "Do you want to remove this user?",
10779
- onConfirm: function () {
10780
- try {
10781
- return Promise.resolve(remove$3(id)).then(function () {
10782
- dispatch(setAlert({
10783
- type: "success",
10784
- message: "Remove user successfully"
10785
- }));
10786
- changeFilters({
10787
- currentPage: 1
10788
- });
10789
- });
10790
- } catch (e) {
10791
- return Promise.reject(e);
10792
- }
10793
- }
10794
- }));
10795
- } catch (err) {
10796
- var _err$response2, _err$response2$data;
10900
+ var setFilterWidget = toolkit.createAction("setFilterWidget");
10797
10901
 
10798
- dispatch(setAlert({
10799
- type: "danger",
10800
- message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
10801
- }));
10802
- }
10902
+ var initialState$y = {
10903
+ filterWidget: "Year"
10904
+ };
10905
+ var widgetReducer = toolkit.createReducer(initialState$y, function (builder) {
10906
+ builder.addCase(setFilterWidget, function (state, action) {
10907
+ state.filterWidget = action.payload.filterWidget;
10908
+ }).addCase(reset, function (_state, _action) {
10909
+ return initialState$y;
10910
+ });
10911
+ });
10803
10912
 
10804
- dispatch(setLoading(false));
10805
- }, [filters]);
10913
+ var setBandScoreList = toolkit.createAction("bandScores/setBandScoreList");
10806
10914
 
10807
- var redirectLoginUser = function redirectLoginUser(res) {
10808
- var _res$data2 = res.data,
10809
- token = _res$data2.token,
10810
- id = _res$data2.id,
10811
- firstName = _res$data2.firstName,
10812
- lastName = _res$data2.lastName,
10813
- roles = _res$data2.roles,
10814
- email = _res$data2.email,
10815
- profileImageFileName = _res$data2.profileImageFileName;
10816
- localStorage.setItem(ACCESS_TOKEN, token);
10817
- localStorage.removeItem(NOTIFICATION_ALERT_KEY);
10818
- dispatch(setUser({
10819
- id: id,
10820
- firstName: firstName,
10821
- lastName: lastName,
10822
- roles: roles,
10823
- email: email,
10824
- profileImageFileName: profileImageFileName
10825
- }));
10915
+ var initialState$z = {
10916
+ bandScoreList: [],
10917
+ totalItems: 0
10918
+ };
10919
+ var commonReducer$h = toolkit.createReducer(initialState$z, function (builder) {
10920
+ builder.addCase(setBandScoreList, function (state, action) {
10921
+ state.bandScoreList = action.payload.bandScoreList;
10922
+ state.totalItems = action.payload.totalItems;
10923
+ }).addCase(reset, function (_state, _action) {
10924
+ return initialState$z;
10925
+ });
10926
+ });
10826
10927
 
10827
- if (isDistrict) {
10828
- history.push(HOMEPAGE_DISTRICT$1);
10829
- } else if (roles.includes("Admin")) {
10830
- history.push(HOMEPAGE_ADMIN$1);
10831
- } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
10832
- history.push(HOMEPAGE_TEACHER$1);
10833
- } else if (roles.includes("Student")) {
10834
- history.push(HOMEPAGE_STUDENT$1);
10835
- } else if (roles.includes("Parent")) {
10836
- history.push(HOMEPAGE_PARENT$1);
10837
- } else if (roles.includes("EduTeacher")) {
10838
- history.push(HOMEPAGE_EDU_TEACHER$1);
10839
- } else if (roles.includes("Counselor") || roles.includes("SecondaryTeacher")) {
10840
- history.push(HOMEPAGE_TEACHER$1);
10841
- }
10842
- };
10928
+ var setSchoolBlankDayList = toolkit.createAction("schoolBlankDays/setSchoolBlankDayList");
10843
10929
 
10844
- var swicthUser = React.useCallback(function (id) {
10845
- try {
10846
- var _temp6 = _catch(function () {
10847
- return Promise.resolve(switchAccountUser(id)).then(function (res) {
10848
- var data = res.data;
10849
- dispatch(setModal({
10850
- isOpen: true,
10851
- type: "warning",
10852
- message: "Do you want to impersonate this user?",
10853
- onConfirm: function () {
10854
- try {
10855
- var _temp9 = function _temp9() {
10856
- dispatch(setLoading(false));
10857
- };
10930
+ var initialState$A = {
10931
+ schoolBlankDayList: [],
10932
+ totalItems: 0
10933
+ };
10934
+ var commonReducer$i = toolkit.createReducer(initialState$A, function (builder) {
10935
+ builder.addCase(setSchoolBlankDayList, function (state, action) {
10936
+ state.schoolBlankDayList = action.payload.schoolBlankDayList;
10937
+ state.totalItems = action.payload.totalItems;
10938
+ }).addCase(reset, function (_state, _action) {
10939
+ return initialState$A;
10940
+ });
10941
+ });
10858
10942
 
10859
- dispatch(setLoading(true));
10943
+ var setStudentIdSelectedByTeacher = toolkit.createAction("navMobile/setStudentIdSelectedByTeacher");
10860
10944
 
10861
- var _temp10 = _catch(function () {
10862
- var req = {
10863
- email: data.email,
10864
- password: "default",
10865
- accessToken: data.token
10866
- };
10867
- return Promise.resolve(logIn(req)).then(function (res) {
10868
- localStorage.clear();
10869
- redirectLoginUser(res);
10870
- });
10871
- }, function (err) {
10872
- var _err$response3, _err$response3$data;
10945
+ var initialState$B = {
10946
+ studentIdSelectedByTeacher: 0
10947
+ };
10948
+ var navMobileReducer = toolkit.createReducer(initialState$B, function (builder) {
10949
+ builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10950
+ state.studentIdSelectedByTeacher = action.payload;
10951
+ }).addCase(reset, function (_state, _action) {
10952
+ return initialState$B;
10953
+ });
10954
+ });
10873
10955
 
10874
- setAlert({
10875
- type: "danger",
10876
- message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message
10877
- });
10878
- });
10956
+ var rootReducer = combineReducers({
10957
+ common: commonReducer,
10958
+ classes: classReducer,
10959
+ conferenceRubrics: conferenceRubricReducer,
10960
+ faqs: commonReducer$1,
10961
+ skills: commonReducer$2,
10962
+ emailTemplate: emailTemplateReducer,
10963
+ suggestionBank: suggestionBankReducer,
10964
+ learningStrategy: learningStrategyReducer,
10965
+ subjects: commonReducer$3,
10966
+ learningSupportCategories: commonReducer$4,
10967
+ questionBank: questionBankReducer,
10968
+ badges: commonReducer$5,
10969
+ semester: commonReducer$6,
10970
+ goalExamples: commonReducer$8,
10971
+ users: commonReducer$9,
10972
+ reflections: reflectionReducer,
10973
+ reflectionResults: reflectionReducer$1,
10974
+ feedbacks: commonReducer$a,
10975
+ assessments: commonReducer$b,
10976
+ questionByCategory: questionCategoryReducer,
10977
+ mailCategory: questionBankReducer$1,
10978
+ questionCate: questionCateReducer,
10979
+ notification: questionBankReducer$2,
10980
+ myStudent: commonReducer$c,
10981
+ assignments: commonReducer$7,
10982
+ assistants: assistantReducer,
10983
+ sesstionTemplates: sessionTemplateReducer,
10984
+ sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10985
+ tutorialScreens: tutorialScreenReducer,
10986
+ customAlerts: commonReducer$d,
10987
+ gallery: commonReducer$e,
10988
+ dashboard: dashboardReducer,
10989
+ sessionPlayer: sessionPlayerReducer,
10990
+ dataPlayer: dataPlayer,
10991
+ certificate: commonReducer$f,
10992
+ improveMyClass: commonReducer$g,
10993
+ widget: widgetReducer,
10994
+ bandScores: commonReducer$h,
10995
+ schoolBlankDays: commonReducer$i,
10996
+ navMobileReducer: navMobileReducer
10997
+ });
10879
10998
 
10880
- return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
10881
- } catch (e) {
10882
- return Promise.reject(e);
10883
- }
10884
- }
10885
- }));
10886
- });
10887
- }, function (err) {
10888
- var _err$response4, _err$response4$data;
10999
+ var store = toolkit.configureStore({
11000
+ reducer: rootReducer,
11001
+ middleware: function middleware(getDefaultMiddleware) {
11002
+ return getDefaultMiddleware({
11003
+ serializableCheck: false
11004
+ }).concat(logger);
11005
+ }
11006
+ });
10889
11007
 
10890
- dispatch(setAlert({
10891
- type: "danger",
10892
- message: ((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.title) || err.message
10893
- }));
10894
- });
11008
+ var isInViewport = function isInViewport(el) {
11009
+ var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
11010
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
11011
+ };
10895
11012
 
10896
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
10897
- } catch (e) {
10898
- return Promise.reject(e);
11013
+ var debounce = function debounce(callback, wait) {
11014
+ var timeout = null;
11015
+ return function () {
11016
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
11017
+ args[_key] = arguments[_key];
10899
11018
  }
10900
- }, [filters]);
10901
11019
 
10902
- var reDirectDetailPage = function reDirectDetailPage(id) {
10903
- var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
10904
- history.push(url);
10905
- };
11020
+ var next = function next() {
11021
+ return callback.apply(void 0, args);
11022
+ };
10906
11023
 
10907
- return {
10908
- userList: userList,
10909
- totalItems: totalItems,
10910
- filters: filters,
10911
- queryName: queryName,
10912
- getData: getData,
10913
- removeData: removeData,
10914
- changeFilters: changeFilters,
10915
- reDirectDetailPage: reDirectDetailPage,
10916
- swicthUser: swicthUser
11024
+ clearTimeout(timeout);
11025
+ timeout = setTimeout(next, wait);
10917
11026
  };
10918
11027
  };
10919
11028
 
10920
- var header$4 = "User";
10921
-
10922
- var UserList = function UserList() {
10923
- var _useUserList = useUserList(),
10924
- queryName = _useUserList.queryName,
10925
- userList = _useUserList.userList,
10926
- totalItems = _useUserList.totalItems,
10927
- filters = _useUserList.filters,
10928
- removeData = _useUserList.removeData,
10929
- changeFilters = _useUserList.changeFilters,
10930
- reDirectDetailPage = _useUserList.reDirectDetailPage,
10931
- swicthUser = _useUserList.swicthUser;
10932
-
10933
- var _useTranslation = reactI18next.useTranslation(),
10934
- t = _useTranslation.t;
10935
-
10936
- return React__default.createElement("div", {
10937
- className: "fadeIn animated"
10938
- }, React__default.createElement("h5", {
10939
- className: "mb-2"
10940
- }, t("" + header$4)), React__default.createElement(reactstrap.Row, {
10941
- className: "my-2"
10942
- }, React__default.createElement(reactstrap.Col, {
10943
- md: 8
10944
- }, React__default.createElement(SearchBoxContainer, {
10945
- text: t("create_user"),
10946
- onClick: function onClick() {
10947
- return reDirectDetailPage();
10948
- },
10949
- initValue: !!queryName ? queryName : "",
10950
- onSearch: function onSearch(searchString) {
10951
- return changeFilters({
10952
- searchString: searchString
10953
- });
10954
- },
10955
- placeholder: t("type_something_to_search_by_user_name")
10956
- })), React__default.createElement(reactstrap.Col, {
10957
- md: 4,
10958
- className: "d-flex justify-content-end align-items-center"
10959
- }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
10960
- className: "mb-2"
10961
- }, React__default.createElement(reactstrap.Col, {
10962
- md: 12
10963
- }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
10964
- bordered: true,
10965
- hover: true,
10966
- striped: true,
10967
- responsive: true,
10968
- size: "sm"
10969
- }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
10970
- className: "align-top"
10971
- }, t("name")), React__default.createElement("th", {
10972
- className: "align-top"
10973
- }, t("email")), React__default.createElement("th", {
10974
- className: "align-top"
10975
- }, t("age")), React__default.createElement("th", {
10976
- className: "align-top"
10977
- }, t("role")), React__default.createElement("th", {
10978
- className: "align-top"
10979
- }, t("active_status")), React__default.createElement("th", {
10980
- className: "align-top"
10981
- }, t("created_time")), React__default.createElement("th", {
10982
- className: "text-center"
10983
- }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
10984
- return React__default.createElement("tr", {
10985
- key: record.id
10986
- }, React__default.createElement("td", {
10987
- className: "align-middle"
10988
- }, React__default.createElement(LinkEditButton, {
10989
- label: "" + record.fullName,
10990
- onClick: function onClick() {
10991
- return reDirectDetailPage(record.id);
10992
- }
10993
- })), React__default.createElement("td", {
10994
- className: "align-middle"
10995
- }, record.email), React__default.createElement("td", {
10996
- className: "align-middle"
10997
- }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
10998
- className: "align-middle"
10999
- }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
11000
- className: "align-middle"
11001
- }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
11002
- className: "align-middle"
11003
- }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
11004
- className: "text-center align-middle"
11005
- }, React__default.createElement(fa.FaUsersCog, {
11006
- style: {
11007
- fontSize: "18px",
11008
- marginRight: "10px",
11009
- cursor: "pointer"
11010
- },
11011
- onClick: function onClick() {
11012
- return swicthUser(record.id);
11013
- }
11014
- }), React__default.createElement(DeleteButtonIcon, {
11015
- onClick: function onClick() {
11016
- return removeData(record.id);
11017
- }
11018
- })));
11019
- })))) : React__default.createElement(EmptyDataAlert, {
11020
- label: t("user")
11021
- })), React__default.createElement(reactstrap.Col, {
11022
- md: 12
11023
- }, React__default.createElement(CustomPagination, {
11024
- filters: filters,
11025
- totalRecordCount: totalItems,
11026
- changePageSize: function changePageSize(pageSize) {
11027
- return changeFilters({
11028
- pageSize: pageSize
11029
- });
11030
- },
11031
- changePage: function changePage(currentPage) {
11032
- return changeFilters({
11033
- currentPage: currentPage
11034
- });
11035
- }
11036
- }))));
11029
+ var getTextFromHTML = function getTextFromHTML(htmlString) {
11030
+ var p = document.createElement("p");
11031
+ p.innerHTML = htmlString;
11032
+ var text = p.innerText;
11033
+ p.remove();
11034
+ return text;
11037
11035
  };
11038
11036
 
11039
- var amplitudeClient$1 = amplitude.getInstance();
11037
+ var generateRandomString = (function () {
11038
+ return (Math.random() + 1).toString(36).substring(7);
11039
+ });
11040
+
11041
+ var amplitudeClient = amplitude.getInstance();
11040
11042
 
11041
11043
  Object.defineProperty(exports, 'I18nextProvider', {
11042
11044
  enumerable: true,
@@ -11118,7 +11120,7 @@ exports.UploadFileButton = UploadFileButton;
11118
11120
  exports.UserDetail = UserDetail;
11119
11121
  exports.UserList = UserList;
11120
11122
  exports.addTab = addTab;
11121
- exports.amplitudeClient = amplitudeClient$1;
11123
+ exports.amplitudeClient = amplitudeClient;
11122
11124
  exports.answerQuestion = answerQuestion;
11123
11125
  exports.answerQuestionDataPlayer = answerQuestionDataPlayer;
11124
11126
  exports.api = api;