mario-core 2.9.127-admin → 2.9.129-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";
@@ -112,6 +112,7 @@ var edit_question = "Edit question";
112
112
  var question_type = "Question Type";
113
113
  var category = "Category";
114
114
  var sub_category = "Sub Category";
115
+ var text = "Text";
115
116
  var is_default_question_for_one_to_one = "Is default question for one-to-one";
116
117
  var default_question_for_students_or_teachers = "Default question for students or teachers";
117
118
  var is_default_question_general_class = "Is default question general class";
@@ -223,7 +224,7 @@ var edit_designation = "Edit Designation";
223
224
  var confirm = "Confirm";
224
225
  var hello = "Hello";
225
226
  var todays_1_1 = "Today’s 1-1";
226
- var todays_check_in = "Today’s Check In";
227
+ var todays_check_in = "Today’s Check-in";
227
228
  var todays_Conferences = "Today’s Conferences";
228
229
  var next_meeting = "Next Meeting";
229
230
  var next_conference = "Next Conference";
@@ -252,7 +253,7 @@ var import_csv = "Import CSV";
252
253
  var add_new = "Add New";
253
254
  var show_only_work_as_assistant = "Show only work as assistant";
254
255
  var last_1_to_1 = "Last 1-TO-1";
255
- var last_check_in = "Last Check In";
256
+ var last_check_in = "Last Check-in";
256
257
  var last_conference = "Last conference";
257
258
  var total_time = "Total time";
258
259
  var assistant_name = "Assistant Name";
@@ -272,7 +273,7 @@ var change_date = "Change date";
272
273
  var change_time = "Change time";
273
274
  var apply = "Apply";
274
275
  var new_1_to_1 = "New 1-to-1";
275
- var new_check_in = "New Check In";
276
+ var new_check_in = "New Check-in";
276
277
  var do_you_want_to_talk_with_teacher = "Do you want to talk with teacher";
277
278
  var start_now = "Start now";
278
279
  var book_for_later = "Book for later";
@@ -282,7 +283,7 @@ var no_question = "No question";
282
283
  var select_question = "Select question";
283
284
  var select_student = "Select student";
284
285
  var select_teacher = "Select teacher";
285
- var do_you_want_to_talk_with = "Do you want to talk with";
286
+ var do_you_want_to_talk_with = "Who would you like to check-in with?";
286
287
  var please_select_a_student = "Please select a student";
287
288
  var please_select_a_teacher = "Please select a teacher";
288
289
  var please_provide_a_valid_student = "Please provide a valid student";
@@ -292,7 +293,7 @@ var you_have_no_teacher = "You have no teacher";
292
293
  var search_teacher = "Search teacher";
293
294
  var select_date_time = "Select Date & Time";
294
295
  var book_1_to_1 = "Book 1-to-1";
295
- var book_new_check_in = "Book new Check In";
296
+ var book_new_check_in = "Book new Check-in";
296
297
  var schedule = "Schedule";
297
298
  var sessions_are_booked_as_10_minute_slots = "Sessions are booked as 10 minute slots";
298
299
  var does_not_reoccur = "Does not reoccur";
@@ -308,7 +309,7 @@ var no_data = "No Data";
308
309
  var schedule_detail = "Schedule Detail";
309
310
  var are_you_sure_you_want_to_cancel_this_schedule = "Are you sure you want to Cancel this schedule?";
310
311
  var completed_1_to_1 = "Completed 1-1 Conversation";
311
- var completed_check_in = "Completed Check In";
312
+ var completed_check_in = "Completed Check-in";
312
313
  var done = "Done";
313
314
  var what_do_you_want_to_talk_about = "What do you want to talk about?";
314
315
  var session_type = "Session Type";
@@ -323,7 +324,7 @@ var how_much_did_you_learn_from_this_session = "How much did you learn from this
323
324
  var what_is_the_most_important_thing_you_learned_from_this_session = "What is the most important thing you learned from this session?";
324
325
  var your_next_meeting = "Your next meeting";
325
326
  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";
327
+ 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
328
  var edit = "Edit";
328
329
  var phone_number = "Phone number";
329
330
  var second_phone_number = "Second phone number";
@@ -334,7 +335,7 @@ var note = "Note";
334
335
  var no_schedule = "No Schedule";
335
336
  var my_notes = "My Notes";
336
337
  var private_note = "Private Note";
337
- var goal_process = "Goal Process";
338
+ var goal_process = "Goal Progress";
338
339
  var view_all_goals = "View all goals";
339
340
  var completed = "Completed";
340
341
  var student_information = "Student Information";
@@ -430,7 +431,7 @@ var student_request = "Student Request";
430
431
  var overview = "Overview";
431
432
  var plp = "PLP";
432
433
  var my_student_1_to_1 = "My Student 1-to-1";
433
- var my_student_check_in = "My Student Check In";
434
+ var my_student_check_in = "My Student Check-in";
434
435
  var my_student_conference = "My Student Conference";
435
436
  var received_date = "Received Date";
436
437
  var class_impact_score = "Class Impact Score";
@@ -633,6 +634,7 @@ var learning_process = "Learning Process";
633
634
  var survey_dashboard = "Survey Dashboard";
634
635
  var response_rate = "Response Rate";
635
636
  var top_5_most_survey_used = "Top 5 Survey's Used";
637
+ var question_intervention = "Question Intervention";
636
638
  var lang_us = {
637
639
  dashboard: dashboard,
638
640
  user: user,
@@ -713,6 +715,7 @@ var lang_us = {
713
715
  category: category,
714
716
  sub_category: sub_category,
715
717
  "Question text": "Question text",
718
+ text: text,
716
719
  is_default_question_for_one_to_one: is_default_question_for_one_to_one,
717
720
  default_question_for_students_or_teachers: default_question_for_students_or_teachers,
718
721
  is_default_question_general_class: is_default_question_general_class,
@@ -1238,7 +1241,8 @@ var lang_us = {
1238
1241
  learning_process: learning_process,
1239
1242
  survey_dashboard: survey_dashboard,
1240
1243
  response_rate: response_rate,
1241
- top_5_most_survey_used: top_5_most_survey_used
1244
+ top_5_most_survey_used: top_5_most_survey_used,
1245
+ question_intervention: question_intervention
1242
1246
  };
1243
1247
 
1244
1248
  var dashboard$1 = "Dashboard";
@@ -1256,7 +1260,7 @@ var cancel$1 = "Cancel";
1256
1260
  var hey$1 = "Hey";
1257
1261
  var readiness_to_learn$1 = "Readiness to Learn";
1258
1262
  var high_impact_learning_strategies$1 = "High Impact Learning Strategies";
1259
- var check_in$1 = "Check In";
1263
+ var check_in$1 = "Check-in";
1260
1264
  var reflection$1 = "Reflection";
1261
1265
  var conferences$1 = "Conferences";
1262
1266
  var safety$1 = "Safety";
@@ -1279,7 +1283,7 @@ var tooltip_content_safety_chart$1 = "The visual represenation of all the respon
1279
1283
  var tooltip_content_student_by_age_chart$1 = "The specific representation of students by gender and grade level at your school.";
1280
1284
  var tooltip_content_students_by_designation$1 = "The composite representation of students by individual grades in your school with specific designations.";
1281
1285
  var total_1_to_1$1 = "Total 1-to-1";
1282
- var total_check_in$1 = "Total Check In";
1286
+ var total_check_in$1 = "Total Check-in";
1283
1287
  var total_1_to_1_time$1 = "Total 1-to-1 Time";
1284
1288
  var total_conferences$1 = "Total Conferences";
1285
1289
  var total_conferences_time$1 = "Total Conferences Time";
@@ -1319,6 +1323,7 @@ var question_type$1 = "Question Type";
1319
1323
  var category$1 = "Category";
1320
1324
  var sub_category$1 = "Sub Category";
1321
1325
  var question_text = "Question text";
1326
+ var text$1 = "Text";
1322
1327
  var is_default_question_for_one_to_one$1 = "Is default question for one-to-one";
1323
1328
  var default_question_for_students_or_teachers$1 = "Default question for students or teachers";
1324
1329
  var is_default_question_general_class$1 = "Is default question general class";
@@ -1430,7 +1435,7 @@ var edit_designation$1 = "Edit Designation";
1430
1435
  var confirm$1 = "Confirm";
1431
1436
  var hello$1 = "Hello";
1432
1437
  var todays_1_1$1 = "Today’s 1-1";
1433
- var todays_check_in$1 = "Today’s Check In";
1438
+ var todays_check_in$1 = "Today’s Check-in";
1434
1439
  var todays_Conferences$1 = "Today’s Conferences";
1435
1440
  var next_meeting$1 = "Next Meeting";
1436
1441
  var next_conference$1 = "Next Conference";
@@ -1459,7 +1464,7 @@ var import_csv$1 = "Import CSV";
1459
1464
  var add_new$1 = "Add New";
1460
1465
  var show_only_work_as_assistant$1 = "Show only work as assistant";
1461
1466
  var last_1_to_1$1 = "Last 1-TO-1";
1462
- var last_check_in$1 = "Last Check In";
1467
+ var last_check_in$1 = "Last Check-in";
1463
1468
  var last_conference$1 = "Last conference";
1464
1469
  var total_time$1 = "Total time";
1465
1470
  var assistant_name$1 = "Assistant Name";
@@ -1479,7 +1484,7 @@ var change_date$1 = "Change date";
1479
1484
  var change_time$1 = "Change time";
1480
1485
  var apply$1 = "Apply";
1481
1486
  var new_1_to_1$1 = "New 1-to-1";
1482
- var new_check_in$1 = "New Check In";
1487
+ var new_check_in$1 = "New Check-in";
1483
1488
  var do_you_want_to_talk_with_teacher$1 = "Do you want to talk with teacher";
1484
1489
  var start_now$1 = "Start now";
1485
1490
  var book_for_later$1 = "Book for later";
@@ -1489,7 +1494,7 @@ var no_question$1 = "No question";
1489
1494
  var select_question$1 = "Select question";
1490
1495
  var select_student$1 = "Select student";
1491
1496
  var select_teacher$1 = "Select teacher";
1492
- var do_you_want_to_talk_with$1 = "Do you want to talk with";
1497
+ var do_you_want_to_talk_with$1 = "Who would you like to check-in with?";
1493
1498
  var please_select_a_student$1 = "Please select a student";
1494
1499
  var please_select_a_teacher$1 = "Please select a teacher";
1495
1500
  var please_provide_a_valid_student$1 = "Please provide a valid student";
@@ -1499,7 +1504,7 @@ var you_have_no_teacher$1 = "You have no teacher";
1499
1504
  var search_teacher$1 = "Search teacher";
1500
1505
  var select_date_time$1 = "Select Date & Time";
1501
1506
  var book_1_to_1$1 = "Book 1-to-1";
1502
- var book_new_check_in$1 = "Book new Check In";
1507
+ var book_new_check_in$1 = "Book new Check-in";
1503
1508
  var schedule$1 = "Schedule";
1504
1509
  var sessions_are_booked_as_10_minute_slots$1 = "Sessions are booked as 10 minute slots";
1505
1510
  var does_not_reoccur$1 = "Does not reoccur";
@@ -1515,7 +1520,7 @@ var no_data$1 = "No Data";
1515
1520
  var schedule_detail$1 = "Schedule Detail";
1516
1521
  var are_you_sure_you_want_to_cancel_this_schedule$1 = "Are you sure you want to Cancel this schedule?";
1517
1522
  var completed_1_to_1$1 = "Completed 1-1 Conversation";
1518
- var completed_check_in$1 = "Completed Check In";
1523
+ var completed_check_in$1 = "Completed Check-in";
1519
1524
  var done$1 = "Done";
1520
1525
  var what_do_you_want_to_talk_about$1 = "What do you want to talk about?";
1521
1526
  var session_type$1 = "Session Type";
@@ -1530,7 +1535,7 @@ var how_much_did_you_learn_from_this_session$1 = "How much did you learn from th
1530
1535
  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
1536
  var your_next_meeting$1 = "Your next meeting";
1532
1537
  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";
1538
+ 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
1539
  var edit$1 = "Edit";
1535
1540
  var phone_number$1 = "Phone number";
1536
1541
  var second_phone_number$1 = "Second phone number";
@@ -1541,7 +1546,7 @@ var note$1 = "Note";
1541
1546
  var no_schedule$1 = "No Schedule";
1542
1547
  var my_notes$1 = "My Notes";
1543
1548
  var private_note$1 = "Private Note";
1544
- var goal_process$1 = "Goal Process";
1549
+ var goal_process$1 = "Goal Progress";
1545
1550
  var view_all_goals$1 = "View all goals";
1546
1551
  var completed$1 = "Completed";
1547
1552
  var student_information$1 = "Student Information";
@@ -1637,7 +1642,7 @@ var student_request$1 = "Student Request";
1637
1642
  var overview$1 = "Overview";
1638
1643
  var plp$1 = "PLP";
1639
1644
  var my_student_1_to_1$1 = "My Student 1-to-1";
1640
- var my_student_check_in$1 = "My Student Check In";
1645
+ var my_student_check_in$1 = "My Student Check-in";
1641
1646
  var my_student_conference$1 = "My Student Conference";
1642
1647
  var received_date$1 = "Received Date";
1643
1648
  var class_impact_score$1 = "Class Impact Score";
@@ -1840,6 +1845,7 @@ var learning_process$1 = "Learning Process";
1840
1845
  var survey_dashboard$1 = "Survey Dashboard";
1841
1846
  var response_rate$1 = "Response Rate";
1842
1847
  var top_5_most_survey_used$1 = "Top 5 Survey's Used";
1848
+ var question_intervention$1 = "Question Intervention";
1843
1849
  var lang_uk = {
1844
1850
  dashboard: dashboard$1,
1845
1851
  user: user$1,
@@ -1920,6 +1926,7 @@ var lang_uk = {
1920
1926
  category: category$1,
1921
1927
  sub_category: sub_category$1,
1922
1928
  question_text: question_text,
1929
+ text: text$1,
1923
1930
  is_default_question_for_one_to_one: is_default_question_for_one_to_one$1,
1924
1931
  default_question_for_students_or_teachers: default_question_for_students_or_teachers$1,
1925
1932
  is_default_question_general_class: is_default_question_general_class$1,
@@ -2445,7 +2452,8 @@ var lang_uk = {
2445
2452
  learning_process: learning_process$1,
2446
2453
  survey_dashboard: survey_dashboard$1,
2447
2454
  response_rate: response_rate$1,
2448
- top_5_most_survey_used: top_5_most_survey_used$1
2455
+ top_5_most_survey_used: top_5_most_survey_used$1,
2456
+ question_intervention: question_intervention$1
2449
2457
  };
2450
2458
 
2451
2459
  var DEFAULT_LANGUAGE = localStorage.getItem("language") !== null ? localStorage.getItem("language") : "uk";
@@ -6874,89 +6882,8 @@ var SkillList = function SkillList() {
6874
6882
  }))));
6875
6883
  };
6876
6884
 
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
- };
6885
+ var setUserList = toolkit.createAction("users/setUserList");
6886
+ var setStudentList = toolkit.createAction("users/setStudentList");
6960
6887
 
6961
6888
  var USER_URL$1 = BASE_URL + "/api/user";
6962
6889
  var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
@@ -6989,58 +6916,38 @@ var switchAccountUser = function switchAccountUser(id) {
6989
6916
  return api.post(EDU_USER_URL + "/switch-user/" + id);
6990
6917
  };
6991
6918
 
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";
6919
+ var USER_URL$2 = "/admin/user";
6920
+ var CREATE_USER_URL = "/admin/create-user";
6921
+ var TITLE$7 = "User list";
6922
+ var HOMEPAGE_TEACHER$1 = "/home";
6923
+ var HOMEPAGE_STUDENT$1 = "/home";
6924
+ var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
6925
+ var HOMEPAGE_PARENT$1 = "/parent";
6926
+ var HOMEPAGE_DISTRICT$1 = "/admin/schools";
6927
+ var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
7004
6928
 
7005
- var useUserDetail = function useUserDetail(id) {
7006
- var dispatch = reactRedux.useDispatch();
6929
+ var useUserList = function useUserList() {
7007
6930
  var history = reactRouterDom.useHistory();
6931
+ var query = new URLSearchParams(location.search);
6932
+ var queryName = query.get("query");
6933
+ var userList = reactRedux.useSelector(function (state) {
6934
+ return state.users.userList;
6935
+ });
6936
+ var totalItems = reactRedux.useSelector(function (state) {
6937
+ return state.users.totalItems;
6938
+ });
7008
6939
 
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
- };
6940
+ var _useFilters = useFilters(),
6941
+ filters = _useFilters.filters,
6942
+ changeFilters = _useFilters.changeFilters;
7030
6943
 
7031
- var _useState4 = React.useState([]),
7032
- currentRoles = _useState4[0],
7033
- setCurrentRoles = _useState4[1];
6944
+ var _useState = React.useState(!!queryName ? queryName : ""),
6945
+ fullName = _useState[0],
6946
+ setFullName = _useState[1];
7034
6947
 
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 () {
6948
+ var isDistrict = window.location.host.includes("-district");
6949
+ var dispatch = reactRedux.useDispatch();
6950
+ var getData = React.useCallback(function (fullName) {
7044
6951
  try {
7045
6952
  var _temp3 = function _temp3() {
7046
6953
  dispatch(setLoading(false));
@@ -7049,15 +6956,22 @@ var useUserDetail = function useUserDetail(id) {
7049
6956
  dispatch(setLoading(true));
7050
6957
 
7051
6958
  var _temp4 = _catch(function () {
7052
- return Promise.resolve(getById$3(id)).then(function (res) {
7053
- var _res$data$roles, _res$data, _res$data2;
6959
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
6960
+ searchString: fullName
6961
+ })) : get$5(filters)).then(function (res) {
6962
+ var _res$data = res.data,
6963
+ items = _res$data.items,
6964
+ totalItems = _res$data.totalItems;
7054
6965
 
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
6966
+ for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
6967
+ var user = _step.value;
6968
+ user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
6969
+ }
6970
+
6971
+ dispatch(setUserList({
6972
+ userList: items,
6973
+ totalItems: totalItems
7058
6974
  }));
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
6975
  });
7062
6976
  }, function (err) {
7063
6977
  var _err$response, _err$response$data;
@@ -7072,191 +6986,713 @@ var useUserDetail = function useUserDetail(id) {
7072
6986
  } catch (e) {
7073
6987
  return Promise.reject(e);
7074
6988
  }
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);
6989
+ }, [dispatch, filters]);
6990
+ React.useEffect(function () {
6991
+ document.title = TITLE$7;
7078
6992
  }, []);
7079
- var confirmData = React.useCallback(function (data) {
7080
- try {
7081
- var _temp9 = function _temp9() {
7082
- dispatch(setLoading(false));
7083
- };
7084
-
7085
- dispatch(setLoading(true));
6993
+ React.useEffect(function () {
6994
+ if (!!fullName) {
6995
+ getData(fullName);
6996
+ setFullName(null);
6997
+ } else {
6998
+ getData();
6999
+ }
7000
+ }, [filters]);
7001
+ var removeData = React.useCallback(function (id) {
7002
+ dispatch(setLoading(true));
7086
7003
 
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);
7004
+ try {
7005
+ dispatch(setModal({
7006
+ isOpen: true,
7007
+ type: "warning",
7008
+ message: "Do you want to remove this user?",
7009
+ onConfirm: function () {
7010
+ try {
7011
+ return Promise.resolve(remove$3(id)).then(function () {
7012
+ dispatch(setAlert({
7013
+ type: "success",
7014
+ message: "Remove user successfully"
7015
+ }));
7016
+ changeFilters({
7017
+ currentPage: 1
7095
7018
  });
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
7019
  });
7020
+ } catch (e) {
7021
+ return Promise.reject(e);
7120
7022
  }
7121
- }();
7023
+ }
7024
+ }));
7025
+ } catch (err) {
7026
+ var _err$response2, _err$response2$data;
7122
7027
 
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);
7028
+ dispatch(setAlert({
7029
+ type: "danger",
7030
+ 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
7031
+ }));
7136
7032
  }
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
7033
 
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;
7034
+ dispatch(setLoading(false));
7035
+ }, [filters]);
7160
7036
 
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
- });
7037
+ var redirectLoginUser = function redirectLoginUser(res) {
7038
+ var _res$data2 = res.data,
7039
+ token = _res$data2.token,
7040
+ id = _res$data2.id,
7041
+ firstName = _res$data2.firstName,
7042
+ lastName = _res$data2.lastName,
7043
+ roles = _res$data2.roles,
7044
+ email = _res$data2.email,
7045
+ profileImageFileName = _res$data2.profileImageFileName;
7046
+ localStorage.setItem(ACCESS_TOKEN, token);
7047
+ localStorage.removeItem(NOTIFICATION_ALERT_KEY);
7048
+ dispatch(setUser({
7049
+ id: id,
7050
+ firstName: firstName,
7051
+ lastName: lastName,
7052
+ roles: roles,
7053
+ email: email,
7054
+ profileImageFileName: profileImageFileName
7055
+ }));
7166
7056
 
7167
- return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7168
- } catch (e) {
7169
- return Promise.reject(e);
7057
+ if (isDistrict) {
7058
+ history.push(HOMEPAGE_DISTRICT$1);
7059
+ } else if (roles.includes("Admin")) {
7060
+ history.push(HOMEPAGE_ADMIN$1);
7061
+ } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
7062
+ history.push(HOMEPAGE_TEACHER$1);
7063
+ } else if (roles.includes("Student")) {
7064
+ history.push(HOMEPAGE_STUDENT$1);
7065
+ } else if (roles.includes("Parent")) {
7066
+ history.push(HOMEPAGE_PARENT$1);
7067
+ } else if (roles.includes("EduTeacher")) {
7068
+ history.push(HOMEPAGE_EDU_TEACHER$1);
7069
+ } else if (roles.includes("Counselor") || roles.includes("SecondaryTeacher")) {
7070
+ history.push(HOMEPAGE_TEACHER$1);
7170
7071
  }
7171
7072
  };
7172
7073
 
7173
- var forgotPasswordRequest = React.useCallback(function (data) {
7074
+ var swicthUser = React.useCallback(function (id) {
7174
7075
  try {
7175
- var _temp17 = function _temp17() {
7176
- dispatch(setLoading(false));
7177
- };
7076
+ var _temp6 = _catch(function () {
7077
+ return Promise.resolve(switchAccountUser(id)).then(function (res) {
7078
+ var data = res.data;
7079
+ dispatch(setModal({
7080
+ isOpen: true,
7081
+ type: "warning",
7082
+ message: "Do you want to impersonate this user?",
7083
+ onConfirm: function () {
7084
+ try {
7085
+ var _temp9 = function _temp9() {
7086
+ dispatch(setLoading(false));
7087
+ };
7178
7088
 
7179
- dispatch(setLoading(true));
7089
+ dispatch(setLoading(true));
7180
7090
 
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"
7091
+ var _temp10 = _catch(function () {
7092
+ var req = {
7093
+ email: data.email,
7094
+ password: "default",
7095
+ accessToken: data.token
7096
+ };
7097
+ return Promise.resolve(logIn(req)).then(function (res) {
7098
+ localStorage.clear();
7099
+ redirectLoginUser(res);
7100
+ });
7101
+ }, function (err) {
7102
+ var _err$response3, _err$response3$data;
7103
+
7104
+ setAlert({
7105
+ type: "danger",
7106
+ 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
7107
+ });
7108
+ });
7109
+
7110
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7111
+ } catch (e) {
7112
+ return Promise.reject(e);
7113
+ }
7114
+ }
7186
7115
  }));
7187
7116
  });
7188
7117
  }, function (err) {
7189
- var _err$response3, _err$response3$data;
7118
+ var _err$response4, _err$response4$data;
7190
7119
 
7191
7120
  dispatch(setAlert({
7192
7121
  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"
7122
+ 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
7123
  }));
7195
7124
  });
7196
7125
 
7197
- return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7126
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
7198
7127
  } catch (e) {
7199
7128
  return Promise.reject(e);
7200
7129
  }
7201
- }, []);
7130
+ }, [filters]);
7131
+
7132
+ var reDirectDetailPage = function reDirectDetailPage(id) {
7133
+ var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
7134
+ history.push(url);
7135
+ };
7136
+
7202
7137
  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
7138
+ userList: userList,
7139
+ totalItems: totalItems,
7140
+ filters: filters,
7141
+ queryName: queryName,
7142
+ getData: getData,
7143
+ removeData: removeData,
7144
+ changeFilters: changeFilters,
7145
+ reDirectDetailPage: reDirectDetailPage,
7146
+ swicthUser: swicthUser
7215
7147
  };
7216
7148
  };
7217
7149
 
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
- });
7150
+ var SearchBox = function SearchBox(_ref) {
7151
+ var initValue = _ref.initValue,
7152
+ onSearch = _ref.onSearch,
7153
+ placeholder = _ref.placeholder,
7154
+ className = _ref.className,
7155
+ style = _ref.style;
7225
7156
 
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
- });
7157
+ var _useState = React.useState(initValue),
7158
+ searchString = _useState[0],
7159
+ setSearchString = _useState[1];
7231
7160
 
7232
- var CREATE_USER = "create_user";
7233
- var EDIT_USER_HEADER = "edit_user";
7234
- var CHANGE_PASSWORD$1 = "change_password";
7161
+ React.useEffect(function () {
7162
+ setSearchString(initValue);
7163
+ }, [initValue]);
7164
+ var onKeyUp = React.useCallback(function (e) {
7165
+ e.key === "Enter" && onSearch(searchString);
7166
+ }, [searchString, onSearch]);
7167
+ return React__default.createElement(reactstrap.Input, {
7168
+ placeholder: placeholder,
7169
+ value: searchString,
7170
+ onChange: function onChange(e) {
7171
+ return setSearchString(e.target.value);
7172
+ },
7173
+ onKeyUp: onKeyUp,
7174
+ className: className,
7175
+ style: style
7176
+ });
7177
+ };
7235
7178
 
7236
- var UserDetail = function UserDetail() {
7237
- var _useParams = reactRouterDom.useParams(),
7238
- id = _useParams.id;
7179
+ SearchBox.defaultProps = {
7180
+ placeholder: "Type something to search",
7181
+ className: "",
7182
+ style: {}
7183
+ };
7184
+ var SearchBox$1 = React.memo(SearchBox);
7239
7185
 
7240
- var user = reactRedux.useSelector(function (state) {
7241
- return state.common.user;
7242
- });
7186
+ var searchInputStyle = {
7187
+ height: 38
7188
+ };
7243
7189
 
7244
- var _useTranslation = reactI18next.useTranslation(),
7245
- t = _useTranslation.t;
7190
+ var SearchBoxContainer = function SearchBoxContainer(_ref) {
7191
+ var text = _ref.text,
7192
+ initValue = _ref.initValue,
7193
+ onClick = _ref.onClick,
7194
+ onSearch = _ref.onSearch,
7195
+ placeholder = _ref.placeholder;
7196
+ return React__default.createElement("div", {
7197
+ className: "d-flex align-items-center"
7198
+ }, React__default.createElement("div", null, React__default.createElement(AddButton, {
7199
+ text: text,
7200
+ onClick: onClick
7201
+ })), React__default.createElement("div", {
7202
+ className: "flex-grow-1 ml-2"
7203
+ }, React__default.createElement(SearchBox$1, {
7204
+ initValue: initValue,
7205
+ onSearch: onSearch,
7206
+ placeholder: placeholder,
7207
+ style: searchInputStyle
7208
+ })));
7209
+ };
7246
7210
 
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;
7211
+ SearchBoxContainer.defaultProps = {
7212
+ placeholder: "Type something to search"
7213
+ };
7214
+
7215
+ var utcToLocalTime = (function (time, FORMAT) {
7216
+ if (time === DATE_MIN_VALUE) return "";
7217
+
7218
+ try {
7219
+ return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7220
+ } catch (_unused) {
7221
+ return "";
7222
+ }
7223
+ });
7224
+
7225
+ var header$2 = "User";
7226
+
7227
+ var UserList = function UserList() {
7228
+ var _useUserList = useUserList(),
7229
+ queryName = _useUserList.queryName,
7230
+ userList = _useUserList.userList,
7231
+ totalItems = _useUserList.totalItems,
7232
+ filters = _useUserList.filters,
7233
+ removeData = _useUserList.removeData,
7234
+ changeFilters = _useUserList.changeFilters,
7235
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
7236
+ swicthUser = _useUserList.swicthUser;
7237
+
7238
+ var _useTranslation = reactI18next.useTranslation(),
7239
+ t = _useTranslation.t;
7240
+
7241
+ return React__default.createElement("div", {
7242
+ className: "fadeIn animated"
7243
+ }, React__default.createElement("h5", {
7244
+ className: "mb-2"
7245
+ }, t("" + header$2)), React__default.createElement(reactstrap.Row, {
7246
+ className: "my-2"
7247
+ }, React__default.createElement(reactstrap.Col, {
7248
+ md: 8
7249
+ }, React__default.createElement(SearchBoxContainer, {
7250
+ text: t("create_user"),
7251
+ onClick: function onClick() {
7252
+ return reDirectDetailPage();
7253
+ },
7254
+ initValue: !!queryName ? queryName : "",
7255
+ onSearch: function onSearch(searchString) {
7256
+ return changeFilters({
7257
+ searchString: searchString
7258
+ });
7259
+ },
7260
+ placeholder: t("type_something_to_search_by_user_name")
7261
+ })), React__default.createElement(reactstrap.Col, {
7262
+ md: 4,
7263
+ className: "d-flex justify-content-end align-items-center"
7264
+ }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
7265
+ className: "mb-2"
7266
+ }, React__default.createElement(reactstrap.Col, {
7267
+ md: 12
7268
+ }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
7269
+ bordered: true,
7270
+ hover: true,
7271
+ striped: true,
7272
+ responsive: true,
7273
+ size: "sm"
7274
+ }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
7275
+ className: "align-top"
7276
+ }, t("name")), React__default.createElement("th", {
7277
+ className: "align-top"
7278
+ }, t("email")), React__default.createElement("th", {
7279
+ className: "align-top"
7280
+ }, t("age")), React__default.createElement("th", {
7281
+ className: "align-top"
7282
+ }, t("role")), React__default.createElement("th", {
7283
+ className: "align-top"
7284
+ }, t("active_status")), React__default.createElement("th", {
7285
+ className: "align-top"
7286
+ }, t("created_time")), React__default.createElement("th", {
7287
+ className: "text-center"
7288
+ }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
7289
+ return React__default.createElement("tr", {
7290
+ key: record.id
7291
+ }, React__default.createElement("td", {
7292
+ className: "align-middle"
7293
+ }, React__default.createElement(LinkEditButton, {
7294
+ label: "" + record.fullName,
7295
+ onClick: function onClick() {
7296
+ return reDirectDetailPage(record.id);
7297
+ }
7298
+ })), React__default.createElement("td", {
7299
+ className: "align-middle"
7300
+ }, record.email), React__default.createElement("td", {
7301
+ className: "align-middle"
7302
+ }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
7303
+ className: "align-middle"
7304
+ }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
7305
+ className: "align-middle"
7306
+ }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
7307
+ className: "align-middle"
7308
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
7309
+ className: "text-center align-middle"
7310
+ }, React__default.createElement(fa.FaUsersCog, {
7311
+ style: {
7312
+ fontSize: "18px",
7313
+ marginRight: "10px",
7314
+ cursor: "pointer"
7315
+ },
7316
+ onClick: function onClick() {
7317
+ return swicthUser(record.id);
7318
+ }
7319
+ }), React__default.createElement(DeleteButtonIcon, {
7320
+ onClick: function onClick() {
7321
+ return removeData(record.id);
7322
+ }
7323
+ })));
7324
+ })))) : React__default.createElement(EmptyDataAlert, {
7325
+ label: t("user")
7326
+ })), React__default.createElement(reactstrap.Col, {
7327
+ md: 12
7328
+ }, React__default.createElement(CustomPagination, {
7329
+ filters: filters,
7330
+ totalRecordCount: totalItems,
7331
+ changePageSize: function changePageSize(pageSize) {
7332
+ return changeFilters({
7333
+ pageSize: pageSize
7334
+ });
7335
+ },
7336
+ changePage: function changePage(currentPage) {
7337
+ return changeFilters({
7338
+ currentPage: currentPage
7339
+ });
7340
+ }
7341
+ }))));
7342
+ };
7343
+
7344
+ var MAX_FILE_SIZE = 20097152;
7345
+
7346
+ var UploadFileButton = function UploadFileButton(_ref) {
7347
+ var fileName = _ref.fileName,
7348
+ maxWidth = _ref.maxWidth,
7349
+ maxHeight = _ref.maxHeight,
7350
+ setFile = _ref.setFile,
7351
+ canDelete = _ref.canDelete,
7352
+ onDelete = _ref.onDelete,
7353
+ isCheckFeedBack = _ref.isCheckFeedBack,
7354
+ onAddImage = _ref.onAddImage;
7355
+ var dispatch = reactRedux.useDispatch();
7356
+
7357
+ var _useState = React.useState(""),
7358
+ imagePreviewUrl = _useState[0],
7359
+ setImagePreviewUrl = _useState[1];
7360
+
7361
+ var imageStyle = {
7362
+ maxWidth: maxWidth || "100%",
7363
+ maxHeight: maxHeight || "100%"
7364
+ };
7365
+ var imageSrc = imagePreviewUrl || getFileUrl(fileName);
7366
+
7367
+ var handleImageChange = function handleImageChange(e) {
7368
+ e.preventDefault();
7369
+ var reader = new FileReader();
7370
+ var newFile = e.target.files[0];
7371
+
7372
+ if (newFile.size > MAX_FILE_SIZE) {
7373
+ dispatch(setAlert({
7374
+ type: "danger",
7375
+ message: "File can't be larger than 2MB"
7376
+ }));
7377
+ return;
7378
+ }
7379
+
7380
+ reader.onloadend = function () {
7381
+ setFile(newFile);
7382
+ setImagePreviewUrl(reader.result);
7383
+ };
7384
+
7385
+ if (newFile) {
7386
+ reader.readAsDataURL(newFile);
7387
+ }
7388
+
7389
+ !!onAddImage && onAddImage();
7390
+ };
7391
+
7392
+ var imagePreviewContainer = imagePreviewUrl || fileName ? React__default.createElement("img", {
7393
+ style: imageStyle,
7394
+ src: imageSrc,
7395
+ alt: "image"
7396
+ }) : null;
7397
+ return React__default.createElement("div", {
7398
+ className: "mb-2"
7399
+ }, React__default.createElement(reactstrap.Form, {
7400
+ className: "mb-2"
7401
+ }, React__default.createElement(reactstrap.Input, {
7402
+ className: "d-none",
7403
+ type: "file",
7404
+ id: "uploadFile",
7405
+ onChange: handleImageChange,
7406
+ accept: "image/*"
7407
+ }), React__default.createElement("div", {
7408
+ className: "d-flex align-items-center"
7409
+ }, React__default.createElement(reactstrap.Label, {
7410
+ htmlFor: "uploadFile",
7411
+ role: "button",
7412
+ tabIndex: 0,
7413
+ className: styles["input-file-label"]
7414
+ }, isCheckFeedBack == true ? React__default.createElement(md.MdAttachFile, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("i", {
7415
+ className: "fa fa-paperclip mr-1",
7416
+ "aria-hidden": "true"
7417
+ }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React__default.createElement(reactstrap.Button, {
7418
+ size: "sm",
7419
+ color: "danger",
7420
+ className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
7421
+ onClick: function onClick() {
7422
+ setImagePreviewUrl(null);
7423
+ onDelete && onDelete();
7424
+ }
7425
+ }, React__default.createElement(fa.FaTrashAlt, null)))), imagePreviewContainer);
7426
+ };
7427
+
7428
+ var initValue$3 = {
7429
+ id: "",
7430
+ firstName: "",
7431
+ lastName: "",
7432
+ email: "",
7433
+ dateOfBirth: "",
7434
+ roles: [],
7435
+ isActive: true,
7436
+ profileImageFileName: ""
7437
+ };
7438
+ var USER_LIST_URL = "/admin/user";
7439
+ var TITLE$8 = "User detail";
7440
+
7441
+ var useUserDetail = function useUserDetail(id) {
7442
+ var dispatch = reactRedux.useDispatch();
7443
+ var history = reactRouterDom.useHistory();
7444
+
7445
+ var _useState = React.useState(initValue$3),
7446
+ userDetail = _useState[0],
7447
+ setUserDetail = _useState[1];
7448
+
7449
+ var _useState2 = React.useState(null),
7450
+ file = _useState2[0],
7451
+ setFile = _useState2[1];
7452
+
7453
+ var _useState3 = React.useState(false),
7454
+ edited = _useState3[0],
7455
+ setEdited = _useState3[1];
7456
+
7457
+ var setEditedTrue = function setEditedTrue() {
7458
+ try {
7459
+ localStorage.setItem(window.location.href, "true");
7460
+ setEdited(true);
7461
+ return Promise.resolve();
7462
+ } catch (e) {
7463
+ return Promise.reject(e);
7464
+ }
7465
+ };
7466
+
7467
+ var _useState4 = React.useState([]),
7468
+ currentRoles = _useState4[0],
7469
+ setCurrentRoles = _useState4[1];
7470
+
7471
+ React.useEffect(function () {
7472
+ document.title = TITLE$8;
7473
+ setEdited(false);
7474
+ if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
7475
+ }, []);
7476
+ React.useEffect(function () {
7477
+ !!id && getData();
7478
+ }, [id]);
7479
+ var getData = React.useCallback(function () {
7480
+ try {
7481
+ var _temp3 = function _temp3() {
7482
+ dispatch(setLoading(false));
7483
+ };
7484
+
7485
+ dispatch(setLoading(true));
7486
+
7487
+ var _temp4 = _catch(function () {
7488
+ return Promise.resolve(getById$3(id)).then(function (res) {
7489
+ var _res$data$roles, _res$data, _res$data2;
7490
+
7491
+ setUserDetail(_extends({}, res.data, {
7492
+ dateOfBirth: dateFns.format(new Date(res.data.dateOfBirth), DATE_FORMAT),
7493
+ roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
7494
+ }));
7495
+ 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 : []);
7496
+ document.title = (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.fullName;
7497
+ });
7498
+ }, function (err) {
7499
+ var _err$response, _err$response$data;
7500
+
7501
+ dispatch(setAlert({
7502
+ type: "danger",
7503
+ 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
7504
+ }));
7505
+ });
7506
+
7507
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
7508
+ } catch (e) {
7509
+ return Promise.reject(e);
7510
+ }
7511
+ }, [id]);
7512
+ var backToList = React.useCallback(function (user) {
7513
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
7514
+ }, []);
7515
+ var confirmData = React.useCallback(function (data) {
7516
+ try {
7517
+ var _temp9 = function _temp9() {
7518
+ dispatch(setLoading(false));
7519
+ };
7520
+
7521
+ dispatch(setLoading(true));
7522
+
7523
+ var _temp10 = _catch(function () {
7524
+ function _temp6() {
7525
+ var next = !!id ? update$5 : create$5;
7526
+ !id && delete data.id;
7527
+ return Promise.resolve(next(data)).then(function (result) {
7528
+ if (!!result) {
7529
+ getById$3(result.data.id).then(function (e) {
7530
+ backToList(e.data.fullName);
7531
+ });
7532
+ }
7533
+
7534
+ if (!id) {
7535
+ alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7536
+ }
7537
+
7538
+ dispatch(setAlert({
7539
+ type: "success",
7540
+ message: (!!id ? "Update" : "Create") + " user successfully"
7541
+ }));
7542
+ });
7543
+ }
7544
+
7545
+ var _temp5 = function () {
7546
+ if (!!file) {
7547
+ var formData = new FormData();
7548
+ var name = file.name;
7549
+ formData.append("file", file, name);
7550
+ return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7551
+ var _res$data3;
7552
+
7553
+ var imageUrl = res === null || res === void 0 ? void 0 : (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.key;
7554
+ data.profileImageFileName = imageUrl;
7555
+ });
7556
+ }
7557
+ }();
7558
+
7559
+ return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
7560
+ }, function (err) {
7561
+ var _err$response2, _err$response2$data;
7562
+
7563
+ dispatch(setAlert({
7564
+ type: "danger",
7565
+ 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
7566
+ }));
7567
+ });
7568
+
7569
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7570
+ } catch (e) {
7571
+ return Promise.reject(e);
7572
+ }
7573
+ }, [id, file]);
7574
+
7575
+ var handleDisableRoles = function handleDisableRoles(currentRoles) {
7576
+ return ["Student", "Parent", "EduTeacher"].includes(currentRoles);
7577
+ };
7578
+
7579
+ var confirmChangePassword = function confirmChangePassword(data) {
7580
+ try {
7581
+ var _temp13 = function _temp13() {
7582
+ dispatch(setLoading(false));
7583
+ };
7584
+
7585
+ dispatch(setLoading(true));
7586
+
7587
+ var _temp14 = _catch(function () {
7588
+ return Promise.resolve(changePassword(data)).then(function () {
7589
+ dispatch(setAlert({
7590
+ type: "success",
7591
+ message: "Change password successfully"
7592
+ }));
7593
+ });
7594
+ }, function (e) {
7595
+ var _e$response, _e$response$data;
7596
+
7597
+ dispatch(setAlert({
7598
+ type: "danger",
7599
+ 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
7600
+ }));
7601
+ });
7602
+
7603
+ return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7604
+ } catch (e) {
7605
+ return Promise.reject(e);
7606
+ }
7607
+ };
7608
+
7609
+ var forgotPasswordRequest = React.useCallback(function (data) {
7610
+ try {
7611
+ var _temp17 = function _temp17() {
7612
+ dispatch(setLoading(false));
7613
+ };
7614
+
7615
+ dispatch(setLoading(true));
7616
+
7617
+ var _temp18 = _catch(function () {
7618
+ return Promise.resolve(forgotChangePassword(data)).then(function () {
7619
+ dispatch(setAlert({
7620
+ type: "success",
7621
+ message: "Send forgot password link successfully"
7622
+ }));
7623
+ });
7624
+ }, function (err) {
7625
+ var _err$response3, _err$response3$data;
7626
+
7627
+ dispatch(setAlert({
7628
+ type: "danger",
7629
+ 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"
7630
+ }));
7631
+ });
7632
+
7633
+ return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7634
+ } catch (e) {
7635
+ return Promise.reject(e);
7636
+ }
7637
+ }, []);
7638
+ return {
7639
+ userDetail: userDetail,
7640
+ backToList: backToList,
7641
+ confirmData: confirmData,
7642
+ file: file,
7643
+ setFile: setFile,
7644
+ edited: edited,
7645
+ setEdited: setEdited,
7646
+ setEditedTrue: setEditedTrue,
7647
+ confirmChangePassword: confirmChangePassword,
7648
+ forgotPasswordRequest: forgotPasswordRequest,
7649
+ currentRoles: currentRoles,
7650
+ handleDisableRoles: handleDisableRoles
7651
+ };
7652
+ };
7653
+
7654
+ var userSchema = yup.object({
7655
+ firstName: yup.string().required("First name is required"),
7656
+ lastName: yup.string().required("Last name is required"),
7657
+ dateOfBirth: yup.string().required("Date of birth is required"),
7658
+ email: yup.string().email("Email is invalid").required("Email is required"),
7659
+ roles: yup.array().of(yup.string()).min(1, "Role is required")
7660
+ });
7661
+
7662
+ var changePasswordSchema = yup.object({
7663
+ oldPassword: yup.string().required("Current password is required"),
7664
+ newPassword: yup.string().required("New password is required"),
7665
+ confirmedNewPassword: yup.string().required("Confirm password is required")
7666
+ });
7667
+
7668
+ var CREATE_USER = "create_user";
7669
+ var EDIT_USER_HEADER = "edit_user";
7670
+ var CHANGE_PASSWORD$1 = "change_password";
7671
+
7672
+ var UserDetail = function UserDetail() {
7673
+ var _useParams = reactRouterDom.useParams(),
7674
+ id = _useParams.id;
7675
+
7676
+ var user = reactRedux.useSelector(function (state) {
7677
+ return state.common.user;
7678
+ });
7679
+
7680
+ var _useTranslation = reactI18next.useTranslation(),
7681
+ t = _useTranslation.t;
7682
+
7683
+ var _useUserDetail = useUserDetail(id),
7684
+ userDetail = _useUserDetail.userDetail,
7685
+ backToList = _useUserDetail.backToList,
7686
+ confirmData = _useUserDetail.confirmData,
7687
+ file = _useUserDetail.file,
7688
+ setFile = _useUserDetail.setFile,
7689
+ edited = _useUserDetail.edited,
7690
+ setEdited = _useUserDetail.setEdited,
7691
+ setEditedTrue = _useUserDetail.setEditedTrue,
7692
+ confirmChangePassword = _useUserDetail.confirmChangePassword,
7693
+ forgotPasswordRequest = _useUserDetail.forgotPasswordRequest,
7694
+ currentRoles = _useUserDetail.currentRoles,
7695
+ handleDisableRoles = _useUserDetail.handleDisableRoles;
7260
7696
 
7261
7697
  var initialValueForm = {
7262
7698
  oldPassword: "",
@@ -7674,16 +8110,6 @@ var CommonHeader = function CommonHeader(_ref) {
7674
8110
  }, header))));
7675
8111
  };
7676
8112
 
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
8113
  var NotificationLogoutModal = function NotificationLogoutModal() {
7688
8114
  var _useState = React.useState(false),
7689
8115
  isOpen = _useState[0],
@@ -7780,42 +8206,6 @@ var CreatableSelector = function CreatableSelector(props) {
7780
8206
  });
7781
8207
  };
7782
8208
 
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
8209
  var QuestionTypeSelector = function QuestionTypeSelector(props) {
7820
8210
  var id = props.id;
7821
8211
  var initValue = !!id ? QUESTION_TYPES_OPTIONS.find(function (option) {
@@ -8177,7 +8567,7 @@ var defaultFilters = {
8177
8567
  searchString: "",
8178
8568
  isRead: false
8179
8569
  };
8180
- var TITLE$8 = "Notification list";
8570
+ var TITLE$9 = "Notification list";
8181
8571
  var NOTIFICATION_CHANNEL$1 = "NOTIFICATION_CHANNEL";
8182
8572
  var NEW_NOTIFICATION$1 = "NEW_NOTIFICATION";
8183
8573
 
@@ -8307,7 +8697,7 @@ var useNotificationList = function useNotificationList() {
8307
8697
  }
8308
8698
  }, [filters]);
8309
8699
  React.useEffect(function () {
8310
- document.title = TITLE$8;
8700
+ document.title = TITLE$9;
8311
8701
  }, []);
8312
8702
  React.useEffect(function () {
8313
8703
  getData();
@@ -8392,7 +8782,7 @@ var useNotificationList = function useNotificationList() {
8392
8782
  };
8393
8783
  };
8394
8784
 
8395
- var header$2 = "Notification list";
8785
+ var header$3 = "Notification list";
8396
8786
  var ICON_SIZE = 20;
8397
8787
 
8398
8788
  var NotificationList = function NotificationList() {
@@ -8413,7 +8803,7 @@ var NotificationList = function NotificationList() {
8413
8803
  }
8414
8804
  }, React__default.createElement("h5", {
8415
8805
  className: "mb-2"
8416
- }, header$2), React__default.createElement(reactstrap.Row, {
8806
+ }, header$3), React__default.createElement(reactstrap.Row, {
8417
8807
  className: "my-2"
8418
8808
  }, React__default.createElement(reactstrap.Col, {
8419
8809
  md: 8
@@ -8503,43 +8893,14 @@ var NotificationList = function NotificationList() {
8503
8893
  changePageSize: function changePageSize(pageSize) {
8504
8894
  return changeFilters({
8505
8895
  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"
8896
+ });
8897
+ },
8898
+ changePage: function changePage(currentPage) {
8899
+ return changeFilters({
8900
+ currentPage: currentPage
8901
+ });
8902
+ }
8903
+ }))));
8543
8904
  };
8544
8905
 
8545
8906
  var CustomTabs = function CustomTabs(props) {
@@ -8946,7 +9307,7 @@ var get$8 = function get(filter) {
8946
9307
  });
8947
9308
  };
8948
9309
 
8949
- var TITLE$9 = "Gallery";
9310
+ var TITLE$a = "Gallery";
8950
9311
  var defaultFilter = {
8951
9312
  searchString: ""
8952
9313
  };
@@ -9183,7 +9544,7 @@ var useGalleryList = function useGalleryList(isLibrary) {
9183
9544
  }
9184
9545
  }, [dispatch, filters]);
9185
9546
  React.useEffect(function () {
9186
- document.title = TITLE$9;
9547
+ document.title = TITLE$a;
9187
9548
  dispatch(setTargetMedia({
9188
9549
  targetMedia: undefined
9189
9550
  }));
@@ -9375,7 +9736,7 @@ var MediaDetail = function MediaDetail(_ref) {
9375
9736
 
9376
9737
  var MediaDetail$1 = React__default.memo(MediaDetail);
9377
9738
 
9378
- var header$3 = "Gallery";
9739
+ var header$4 = "Gallery";
9379
9740
 
9380
9741
  var GalleryList = function GalleryList(_ref) {
9381
9742
  var isLibrary = _ref.isLibrary;
@@ -9386,7 +9747,7 @@ var GalleryList = function GalleryList(_ref) {
9386
9747
  className: "fadeIn animated"
9387
9748
  }, !isLibrary && React__default.createElement("h5", {
9388
9749
  className: "mb-2"
9389
- }, header$3), React__default.createElement(reactstrap.Row, {
9750
+ }, header$4), React__default.createElement(reactstrap.Row, {
9390
9751
  className: "mb-2"
9391
9752
  }, React__default.createElement(reactstrap.Col, {
9392
9753
  md: 8
@@ -9976,9 +10337,6 @@ var commonReducer$8 = toolkit.createReducer(initialState$e, function (builder) {
9976
10337
  });
9977
10338
  });
9978
10339
 
9979
- var setUserList = toolkit.createAction("users/setUserList");
9980
- var setStudentList = toolkit.createAction("users/setStudentList");
9981
-
9982
10340
  var initialState$f = {
9983
10341
  userList: [],
9984
10342
  totalItems: 0,
@@ -10452,591 +10810,239 @@ var sessionPlayerReducer = toolkit.createReducer(initialState$u, function (build
10452
10810
  questionId: questionId,
10453
10811
  text: text
10454
10812
  });
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";
10813
+ } else {
10814
+ existedResponse.text = text;
10815
+ }
10698
10816
 
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;
10817
+ return _extends({}, state, {
10818
+ results: state.results.map(function (result) {
10819
+ return result.isTeacherResult === isTeacherResult ? resultCloner : result;
10820
+ })
10821
+ });
10822
+ }).addCase(setStartTime, function (state, action) {
10823
+ var startTime = action.payload;
10824
+ if (!startTime) return state;
10825
+ state.startTime = startTime;
10826
+ }).addCase(reset, function (_state, _action) {
10827
+ return initialState$u;
10708
10828
  });
10829
+ });
10709
10830
 
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];
10831
+ var setDataPlayer = toolkit.createAction("dataPlayer/setDataPlayer");
10832
+ var answerQuestionDataPlayer = toolkit.createAction("dataPlayer/answerQuestionDataPlayer");
10717
10833
 
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
- };
10834
+ var initialState$v = {
10835
+ id: 0,
10836
+ questions: [{
10837
+ id: 0,
10838
+ text: "",
10839
+ type: "",
10840
+ subQuestions: [],
10841
+ answers: []
10842
+ }],
10843
+ questionResponse: []
10844
+ };
10845
+ var dataPlayer = toolkit.createReducer(initialState$v, function (builder) {
10846
+ builder.addCase(setDataPlayer, function (_state, action) {
10847
+ return action.payload;
10848
+ }).addCase(answerQuestionDataPlayer, function (state, action) {
10849
+ var _action$payload = action.payload,
10850
+ questionId = _action$payload.questionId,
10851
+ text = _action$payload.text;
10852
+ var questionResponse = state.questionResponse;
10853
+ if (!questionResponse) return state;
10854
+ var questionResponseCloner = JSON.parse(JSON.stringify(questionResponse));
10855
+ var existedResponse = questionResponseCloner.find(function (response) {
10856
+ return response.questionId === questionId;
10857
+ });
10725
10858
 
10726
- dispatch(setLoading(true));
10859
+ if (!existedResponse) {
10860
+ questionResponseCloner.push({
10861
+ questionId: questionId,
10862
+ text: text
10863
+ });
10864
+ } else {
10865
+ existedResponse.text = text;
10866
+ }
10727
10867
 
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;
10868
+ return _extends({}, state, {
10869
+ questionResponse: questionResponseCloner
10870
+ });
10871
+ }).addCase(reset, function (_state, _action) {
10872
+ return initialState$v;
10873
+ });
10874
+ });
10735
10875
 
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
- }
10876
+ var setCertificateList = toolkit.createAction("certificates/setCertificateList");
10740
10877
 
10741
- dispatch(setUserList({
10742
- userList: items,
10743
- totalItems: totalItems
10744
- }));
10745
- });
10746
- }, function (err) {
10747
- var _err$response, _err$response$data;
10878
+ var initialState$w = {
10879
+ certificateList: [],
10880
+ totalItems: 0
10881
+ };
10882
+ var commonReducer$f = toolkit.createReducer(initialState$w, function (builder) {
10883
+ builder.addCase(setCertificateList, function (state, action) {
10884
+ state.certificateList = action.payload.certificateList;
10885
+ state.totalItems = action.payload.totalItems;
10886
+ }).addCase(reset, function (_state, _action) {
10887
+ return initialState$w;
10888
+ });
10889
+ });
10748
10890
 
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
- });
10891
+ var setImproveMyClass = toolkit.createAction("improveMyClass/setImproveMyClass");
10754
10892
 
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));
10893
+ var initialState$x = {
10894
+ improveMyClassList: []
10895
+ };
10896
+ var commonReducer$g = toolkit.createReducer(initialState$x, function (builder) {
10897
+ builder.addCase(setImproveMyClass, function (state, action) {
10898
+ state.improveMyClassList = action.payload;
10899
+ }).addCase(reset, function (_state, _action) {
10900
+ return initialState$x;
10901
+ });
10902
+ });
10773
10903
 
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;
10904
+ var setFilterWidget = toolkit.createAction("setFilterWidget");
10797
10905
 
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
- }
10906
+ var initialState$y = {
10907
+ filterWidget: "Year"
10908
+ };
10909
+ var widgetReducer = toolkit.createReducer(initialState$y, function (builder) {
10910
+ builder.addCase(setFilterWidget, function (state, action) {
10911
+ state.filterWidget = action.payload.filterWidget;
10912
+ }).addCase(reset, function (_state, _action) {
10913
+ return initialState$y;
10914
+ });
10915
+ });
10803
10916
 
10804
- dispatch(setLoading(false));
10805
- }, [filters]);
10917
+ var setBandScoreList = toolkit.createAction("bandScores/setBandScoreList");
10806
10918
 
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
- }));
10919
+ var initialState$z = {
10920
+ bandScoreList: [],
10921
+ totalItems: 0
10922
+ };
10923
+ var commonReducer$h = toolkit.createReducer(initialState$z, function (builder) {
10924
+ builder.addCase(setBandScoreList, function (state, action) {
10925
+ state.bandScoreList = action.payload.bandScoreList;
10926
+ state.totalItems = action.payload.totalItems;
10927
+ }).addCase(reset, function (_state, _action) {
10928
+ return initialState$z;
10929
+ });
10930
+ });
10826
10931
 
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
- };
10932
+ var setSchoolBlankDayList = toolkit.createAction("schoolBlankDays/setSchoolBlankDayList");
10843
10933
 
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
- };
10934
+ var initialState$A = {
10935
+ schoolBlankDayList: [],
10936
+ totalItems: 0
10937
+ };
10938
+ var commonReducer$i = toolkit.createReducer(initialState$A, function (builder) {
10939
+ builder.addCase(setSchoolBlankDayList, function (state, action) {
10940
+ state.schoolBlankDayList = action.payload.schoolBlankDayList;
10941
+ state.totalItems = action.payload.totalItems;
10942
+ }).addCase(reset, function (_state, _action) {
10943
+ return initialState$A;
10944
+ });
10945
+ });
10858
10946
 
10859
- dispatch(setLoading(true));
10947
+ var setStudentIdSelectedByTeacher = toolkit.createAction("navMobile/setStudentIdSelectedByTeacher");
10860
10948
 
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;
10949
+ var initialState$B = {
10950
+ studentIdSelectedByTeacher: 0
10951
+ };
10952
+ var navMobileReducer = toolkit.createReducer(initialState$B, function (builder) {
10953
+ builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10954
+ state.studentIdSelectedByTeacher = action.payload;
10955
+ }).addCase(reset, function (_state, _action) {
10956
+ return initialState$B;
10957
+ });
10958
+ });
10873
10959
 
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
- });
10960
+ var rootReducer = combineReducers({
10961
+ common: commonReducer,
10962
+ classes: classReducer,
10963
+ conferenceRubrics: conferenceRubricReducer,
10964
+ faqs: commonReducer$1,
10965
+ skills: commonReducer$2,
10966
+ emailTemplate: emailTemplateReducer,
10967
+ suggestionBank: suggestionBankReducer,
10968
+ learningStrategy: learningStrategyReducer,
10969
+ subjects: commonReducer$3,
10970
+ learningSupportCategories: commonReducer$4,
10971
+ questionBank: questionBankReducer,
10972
+ badges: commonReducer$5,
10973
+ semester: commonReducer$6,
10974
+ goalExamples: commonReducer$8,
10975
+ users: commonReducer$9,
10976
+ reflections: reflectionReducer,
10977
+ reflectionResults: reflectionReducer$1,
10978
+ feedbacks: commonReducer$a,
10979
+ assessments: commonReducer$b,
10980
+ questionByCategory: questionCategoryReducer,
10981
+ mailCategory: questionBankReducer$1,
10982
+ questionCate: questionCateReducer,
10983
+ notification: questionBankReducer$2,
10984
+ myStudent: commonReducer$c,
10985
+ assignments: commonReducer$7,
10986
+ assistants: assistantReducer,
10987
+ sesstionTemplates: sessionTemplateReducer,
10988
+ sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10989
+ tutorialScreens: tutorialScreenReducer,
10990
+ customAlerts: commonReducer$d,
10991
+ gallery: commonReducer$e,
10992
+ dashboard: dashboardReducer,
10993
+ sessionPlayer: sessionPlayerReducer,
10994
+ dataPlayer: dataPlayer,
10995
+ certificate: commonReducer$f,
10996
+ improveMyClass: commonReducer$g,
10997
+ widget: widgetReducer,
10998
+ bandScores: commonReducer$h,
10999
+ schoolBlankDays: commonReducer$i,
11000
+ navMobileReducer: navMobileReducer
11001
+ });
10879
11002
 
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;
11003
+ var store = toolkit.configureStore({
11004
+ reducer: rootReducer,
11005
+ middleware: function middleware(getDefaultMiddleware) {
11006
+ return getDefaultMiddleware({
11007
+ serializableCheck: false
11008
+ }).concat(logger);
11009
+ }
11010
+ });
10889
11011
 
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
- });
11012
+ var isInViewport = function isInViewport(el) {
11013
+ var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
11014
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
11015
+ };
10895
11016
 
10896
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
10897
- } catch (e) {
10898
- return Promise.reject(e);
11017
+ var debounce = function debounce(callback, wait) {
11018
+ var timeout = null;
11019
+ return function () {
11020
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
11021
+ args[_key] = arguments[_key];
10899
11022
  }
10900
- }, [filters]);
10901
11023
 
10902
- var reDirectDetailPage = function reDirectDetailPage(id) {
10903
- var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
10904
- history.push(url);
10905
- };
11024
+ var next = function next() {
11025
+ return callback.apply(void 0, args);
11026
+ };
10906
11027
 
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
11028
+ clearTimeout(timeout);
11029
+ timeout = setTimeout(next, wait);
10917
11030
  };
10918
11031
  };
10919
11032
 
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
- }))));
11033
+ var getTextFromHTML = function getTextFromHTML(htmlString) {
11034
+ var p = document.createElement("p");
11035
+ p.innerHTML = htmlString;
11036
+ var text = p.innerText;
11037
+ p.remove();
11038
+ return text;
11037
11039
  };
11038
11040
 
11039
- var amplitudeClient$1 = amplitude.getInstance();
11041
+ var generateRandomString = (function () {
11042
+ return (Math.random() + 1).toString(36).substring(7);
11043
+ });
11044
+
11045
+ var amplitudeClient = amplitude.getInstance();
11040
11046
 
11041
11047
  Object.defineProperty(exports, 'I18nextProvider', {
11042
11048
  enumerable: true,
@@ -11118,7 +11124,7 @@ exports.UploadFileButton = UploadFileButton;
11118
11124
  exports.UserDetail = UserDetail;
11119
11125
  exports.UserList = UserList;
11120
11126
  exports.addTab = addTab;
11121
- exports.amplitudeClient = amplitudeClient$1;
11127
+ exports.amplitudeClient = amplitudeClient;
11122
11128
  exports.answerQuestion = answerQuestion;
11123
11129
  exports.answerQuestionDataPlayer = answerQuestionDataPlayer;
11124
11130
  exports.api = api;