mario-core 2.9.64-beta → 2.9.67-beta

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.
@@ -20,11 +20,10 @@ import { CgMenuRight } from 'react-icons/cg';
20
20
  import { RiLogoutBoxRLine } from 'react-icons/ri';
21
21
  import Pusher from 'pusher-js/with-encryption';
22
22
  import { BsChevronDown } from 'react-icons/bs';
23
- import { FaPlus, FaTrashAlt, FaRegEdit, FaArrowLeft, FaDownload, FaTrash, FaEdit, FaFolderPlus, FaFileUpload } from 'react-icons/fa';
23
+ import { FaPlus, FaTrashAlt, FaRegEdit, FaArrowLeft, FaDownload, FaTrash, FaEdit, FaFolderPlus, FaFileUpload, FaUsersCog } from 'react-icons/fa';
24
24
  import { format } from 'date-fns';
25
25
  import { Editor } from '@tinymce/tinymce-react';
26
26
  import differenceInCalendarYears from 'date-fns/differenceInCalendarYears';
27
- import moment from 'moment';
28
27
  import DatePicker from 'react-datepicker';
29
28
  import toDate from 'date-fns/toDate';
30
29
  import { MdAttachFile } from 'react-icons/md';
@@ -32,6 +31,7 @@ import Creatable from 'react-select/creatable';
32
31
  import ReactNotification$1 from 'react-notifications-component';
33
32
  import 'react-notifications-component/dist/theme.css';
34
33
  import { AiOutlineEye } from 'react-icons/ai';
34
+ import moment from 'moment';
35
35
 
36
36
  var dashboard = "Dashboard";
37
37
  var user = "User";
@@ -70,7 +70,6 @@ var tooltip_content_safety_chart = "The visual represenation of all the response
70
70
  var tooltip_content_student_by_age_chart = "The specific representation of students by gender and grade level at your school.";
71
71
  var tooltip_content_students_by_designation = "The composite representation of students by individual grades in your school with specific designations.";
72
72
  var total_1_to_1 = "Total 1-to-1";
73
- var total_check_in = "Total Check In";
74
73
  var total_1_to_1_time = "Total 1-to-1 Time";
75
74
  var total_conferences = "Total Conferences";
76
75
  var total_conferences_time = "Total Conferences Time";
@@ -216,7 +215,6 @@ var edit_destination = "Edit Destination";
216
215
  var confirm = "Confirm";
217
216
  var hello = "Hello";
218
217
  var todays_1_1 = "Today’s 1-1";
219
- var todays_check_in = "Today’s Check In";
220
218
  var todays_Conferences = "Today’s Conferences";
221
219
  var next_meeting = "Next Meeting";
222
220
  var next_conference = "Next Conference";
@@ -278,7 +276,6 @@ var time_must_be_between_8_am_and_6_pm = "Time must be between 8 AM and 6 PM";
278
276
  var from = "From";
279
277
  var to = "To";
280
278
  var show_only_favorites = "Show only favorites";
281
- var show_only_conversation = "Show 1-1 conversation only";
282
279
  var duration = "Duration";
283
280
  var favorite = "Favorite";
284
281
  var open = "Open";
@@ -578,7 +575,6 @@ var set_deadline = "Set deadline";
578
575
  var duplicate_survey = "Duplicate Survey";
579
576
  var share_survey = "Share Survey";
580
577
  var new_survey = "New Survey";
581
- var assign_counselor = "Assign Counselor";
582
578
  var lang_us = {
583
579
  dashboard: dashboard,
584
580
  user: user,
@@ -618,7 +614,6 @@ var lang_us = {
618
614
  tooltip_content_student_by_age_chart: tooltip_content_student_by_age_chart,
619
615
  tooltip_content_students_by_designation: tooltip_content_students_by_designation,
620
616
  total_1_to_1: total_1_to_1,
621
- total_check_in: total_check_in,
622
617
  total_1_to_1_time: total_1_to_1_time,
623
618
  total_conferences: total_conferences,
624
619
  total_conferences_time: total_conferences_time,
@@ -766,7 +761,6 @@ var lang_us = {
766
761
  confirm: confirm,
767
762
  hello: hello,
768
763
  todays_1_1: todays_1_1,
769
- todays_check_in: todays_check_in,
770
764
  todays_Conferences: todays_Conferences,
771
765
  next_meeting: next_meeting,
772
766
  next_conference: next_conference,
@@ -830,7 +824,6 @@ var lang_us = {
830
824
  from: from,
831
825
  to: to,
832
826
  show_only_favorites: show_only_favorites,
833
- show_only_conversation: show_only_conversation,
834
827
  duration: duration,
835
828
  favorite: favorite,
836
829
  open: open,
@@ -1132,8 +1125,7 @@ var lang_us = {
1132
1125
  set_deadline: set_deadline,
1133
1126
  duplicate_survey: duplicate_survey,
1134
1127
  share_survey: share_survey,
1135
- new_survey: new_survey,
1136
- assign_counselor: assign_counselor
1128
+ new_survey: new_survey
1137
1129
  };
1138
1130
 
1139
1131
  var dashboard$1 = "Dashboard";
@@ -1173,7 +1165,6 @@ var tooltip_content_safety_chart$1 = "The visual represenation of all the respon
1173
1165
  var tooltip_content_student_by_age_chart$1 = "The specific representation of students by gender and grade level at your school.";
1174
1166
  var tooltip_content_students_by_designation$1 = "The composite representation of students by individual grades in your school with specific designations.";
1175
1167
  var total_1_to_1$1 = "Total 1-to-1";
1176
- var total_check_in$1 = "Total Check In";
1177
1168
  var total_1_to_1_time$1 = "Total 1-to-1 Time";
1178
1169
  var total_conferences$1 = "Total Conferences";
1179
1170
  var total_conferences_time$1 = "Total Conferences Time";
@@ -1312,7 +1303,7 @@ var use_for$1 = "Use for";
1312
1303
  var admin_training$1 = "Admin training";
1313
1304
  var teacher_training$1 = "Teacher training";
1314
1305
  var created_time$1 = "Create time";
1315
- var total_reflections$1 = "Total Reflections";
1306
+ var total_reflections$1 = "Total Reflections:";
1316
1307
  var student_training$1 = "Student training";
1317
1308
  var create_destination$1 = "Create Destination";
1318
1309
  var total_of_designation$1 = "Total of Designation";
@@ -1321,7 +1312,6 @@ var edit_destination$1 = "Edit Destination";
1321
1312
  var confirm$1 = "Confirm";
1322
1313
  var hello$1 = "Hello";
1323
1314
  var todays_1_1$1 = "Today’s 1-1";
1324
- var todays_check_in$1 = "Today’s Check In";
1325
1315
  var todays_Conferences$1 = "Today’s Conferences";
1326
1316
  var next_meeting$1 = "Next Meeting";
1327
1317
  var next_conference$1 = "Next Conference";
@@ -1383,7 +1373,6 @@ var time_must_be_between_8_am_and_6_pm$1 = "Time must be between 8 AM and 6 PM";
1383
1373
  var from$1 = "From";
1384
1374
  var to$1 = "To";
1385
1375
  var show_only_favorites$1 = "Show only favorites";
1386
- var show_only_conversation$1 = "Show 1-1 conversation only";
1387
1376
  var duration$1 = "Duration";
1388
1377
  var favorite$1 = "Favorite";
1389
1378
  var open$1 = "Open";
@@ -1683,7 +1672,6 @@ var set_deadline$1 = "Set deadline";
1683
1672
  var duplicate_survey$1 = "Duplicate Survey";
1684
1673
  var share_survey$1 = "Share Survey";
1685
1674
  var new_survey$1 = "New Survey";
1686
- var assign_counselor$1 = "Assign Counselor";
1687
1675
  var lang_uk = {
1688
1676
  dashboard: dashboard$1,
1689
1677
  user: user$1,
@@ -1723,7 +1711,6 @@ var lang_uk = {
1723
1711
  tooltip_content_student_by_age_chart: tooltip_content_student_by_age_chart$1,
1724
1712
  tooltip_content_students_by_designation: tooltip_content_students_by_designation$1,
1725
1713
  total_1_to_1: total_1_to_1$1,
1726
- total_check_in: total_check_in$1,
1727
1714
  total_1_to_1_time: total_1_to_1_time$1,
1728
1715
  total_conferences: total_conferences$1,
1729
1716
  total_conferences_time: total_conferences_time$1,
@@ -1871,7 +1858,6 @@ var lang_uk = {
1871
1858
  confirm: confirm$1,
1872
1859
  hello: hello$1,
1873
1860
  todays_1_1: todays_1_1$1,
1874
- todays_check_in: todays_check_in$1,
1875
1861
  todays_Conferences: todays_Conferences$1,
1876
1862
  next_meeting: next_meeting$1,
1877
1863
  next_conference: next_conference$1,
@@ -1935,7 +1921,6 @@ var lang_uk = {
1935
1921
  from: from$1,
1936
1922
  to: to$1,
1937
1923
  show_only_favorites: show_only_favorites$1,
1938
- show_only_conversation: show_only_conversation$1,
1939
1924
  duration: duration$1,
1940
1925
  favorite: favorite$1,
1941
1926
  open: open$1,
@@ -2237,8 +2222,7 @@ var lang_uk = {
2237
2222
  set_deadline: set_deadline$1,
2238
2223
  duplicate_survey: duplicate_survey$1,
2239
2224
  share_survey: share_survey$1,
2240
- new_survey: new_survey$1,
2241
- assign_counselor: assign_counselor$1
2225
+ new_survey: new_survey$1
2242
2226
  };
2243
2227
 
2244
2228
  var DEFAULT_LANGUAGE = localStorage.getItem("language") !== null ? localStorage.getItem("language") : "uk";
@@ -2418,7 +2402,8 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
2418
2402
 
2419
2403
  var TINY_MCE_API_KEY = "adpshj9swgsscf83gw4gs2f74nx0vicpd5ydka20iqjd7l8r";
2420
2404
  var GOOGLE_RECAPTCHA_KEY = "6LfNtLUaAAAAAL24lbBV11jS-gBtt1mhtxb4NXs0";
2421
- var INIT_AMPLITUDE_KEY = "c617d0950cfdcae12953907273a1920f";
2405
+ var INIT_AMPLITUDE_KEY_PROD = "860fa99c52ae79d98e904b4c862ddaac";
2406
+ var INIT_AMPLITUDE_KEY_STAGE = "c617d0950cfdcae12953907273a1920f";
2422
2407
  var ACCESS_TOKEN = "ACCESS_TOKEN";
2423
2408
  var DEFAULT_PAGE_SIZE_VALUES = [{
2424
2409
  label: "10",
@@ -2461,6 +2446,7 @@ var BASE_URL = function () {
2461
2446
  var url = windowUrl.split("//")[0] + "//" + windowUrl.split("//")[1].split("/")[0];
2462
2447
  return url;
2463
2448
  }();
2449
+ var isLocalhost = Boolean(window.location.hostname === "localhost" || window.location.hostname.includes("stage") || window.location.hostname === "[::1]" || window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
2464
2450
  var QUESTION_TYPES_OPTIONS = [{
2465
2451
  label: "Single choice",
2466
2452
  value: "SingleChoice"
@@ -2522,7 +2508,7 @@ var STAR_OPTIONS = [{
2522
2508
  value: 5
2523
2509
  }];
2524
2510
  var ANSWER_EDITOR_HEIGHT = 150;
2525
- var USER_ROLES = ["Admin", "Assistant", "Teacher", "General ED teacher", "Counselor", "Student", "Parent"];
2511
+ var USER_ROLES = ["Admin", "Assistant", "Teacher", "General ED teacher", "Student", "Parent"];
2526
2512
  var CHAT_CHANNEL = "chat-channel";
2527
2513
  var NOTIFICATION_CHANNEL = "NOTIFICATION_CHANNEL";
2528
2514
  var NEW_NOTIFICATION = "NEW_NOTIFICATION";
@@ -2538,8 +2524,7 @@ var ROLES = {
2538
2524
  ASSISTANT: "Assistant",
2539
2525
  EDUTEACHER: "General ED teacher",
2540
2526
  STUDENT: "Student",
2541
- PARENT: "Parent",
2542
- COUNSELOR: "Counselor"
2527
+ PARENT: "Parent"
2543
2528
  };
2544
2529
  var NOTIFICATION_ALERT_KEY = "NOTIFICATION_ALERT_KEY";
2545
2530
 
@@ -2771,7 +2756,7 @@ var useLogin = function useLogin() {
2771
2756
  }));
2772
2757
 
2773
2758
  if (data !== null && data !== void 0 && data.email && !roles.includes("Admin")) {
2774
- amplitude.getInstance().init(INIT_AMPLITUDE_KEY, data.email, {
2759
+ amplitude.getInstance().init(!isLocalhost ? INIT_AMPLITUDE_KEY_PROD : INIT_AMPLITUDE_KEY_STAGE, data.email, {
2775
2760
  includeReferrer: false,
2776
2761
  includeUtm: false
2777
2762
  });
@@ -2794,7 +2779,7 @@ var useLogin = function useLogin() {
2794
2779
  history.push(HOMEPAGE_DISTRICT);
2795
2780
  } else if (roles.includes("Admin")) {
2796
2781
  history.push(HOMEPAGE_ADMIN);
2797
- } else if (roles.includes("Teacher") || roles.includes("Assistant") || roles.includes("Counselor")) {
2782
+ } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
2798
2783
  history.push(HOMEPAGE_TEACHER);
2799
2784
  } else if (roles.includes("Student")) {
2800
2785
  history.push(HOMEPAGE_STUDENT);
@@ -6655,13 +6640,94 @@ var SkillList = function SkillList() {
6655
6640
  }))));
6656
6641
  };
6657
6642
 
6658
- var setUserList = createAction("users/setUserList");
6659
- var setStudentList = createAction("users/setStudentList");
6643
+ var MAX_FILE_SIZE = 20097152;
6644
+
6645
+ var UploadFileButton = function UploadFileButton(_ref) {
6646
+ var fileName = _ref.fileName,
6647
+ maxWidth = _ref.maxWidth,
6648
+ maxHeight = _ref.maxHeight,
6649
+ setFile = _ref.setFile,
6650
+ canDelete = _ref.canDelete,
6651
+ onDelete = _ref.onDelete,
6652
+ isCheckFeedBack = _ref.isCheckFeedBack,
6653
+ onAddImage = _ref.onAddImage;
6654
+ var dispatch = useDispatch();
6655
+
6656
+ var _useState = useState(""),
6657
+ imagePreviewUrl = _useState[0],
6658
+ setImagePreviewUrl = _useState[1];
6659
+
6660
+ var imageStyle = {
6661
+ maxWidth: maxWidth || "100%",
6662
+ maxHeight: maxHeight || "100%"
6663
+ };
6664
+ var imageSrc = imagePreviewUrl || getFileUrl(fileName);
6665
+
6666
+ var handleImageChange = function handleImageChange(e) {
6667
+ e.preventDefault();
6668
+ var reader = new FileReader();
6669
+ var newFile = e.target.files[0];
6670
+
6671
+ if (newFile.size > MAX_FILE_SIZE) {
6672
+ dispatch(setAlert({
6673
+ type: "danger",
6674
+ message: "File can't be larger than 2MB"
6675
+ }));
6676
+ return;
6677
+ }
6678
+
6679
+ reader.onloadend = function () {
6680
+ setFile(newFile);
6681
+ setImagePreviewUrl(reader.result);
6682
+ };
6683
+
6684
+ if (newFile) {
6685
+ reader.readAsDataURL(newFile);
6686
+ }
6687
+
6688
+ !!onAddImage && onAddImage();
6689
+ };
6690
+
6691
+ var imagePreviewContainer = imagePreviewUrl || fileName ? React.createElement("img", {
6692
+ style: imageStyle,
6693
+ src: imageSrc,
6694
+ alt: "image"
6695
+ }) : null;
6696
+ return React.createElement("div", {
6697
+ className: "mb-2"
6698
+ }, React.createElement(Form, {
6699
+ className: "mb-2"
6700
+ }, React.createElement(Input, {
6701
+ className: "d-none",
6702
+ type: "file",
6703
+ id: "uploadFile",
6704
+ onChange: handleImageChange,
6705
+ accept: "image/*"
6706
+ }), React.createElement("div", {
6707
+ className: "d-flex align-items-center"
6708
+ }, React.createElement(Label, {
6709
+ htmlFor: "uploadFile",
6710
+ role: "button",
6711
+ tabIndex: 0,
6712
+ className: styles["input-file-label"]
6713
+ }, isCheckFeedBack == true ? React.createElement(MdAttachFile, null) : React.createElement(React.Fragment, null, React.createElement("i", {
6714
+ className: "fa fa-paperclip mr-1",
6715
+ "aria-hidden": "true"
6716
+ }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React.createElement(Button, {
6717
+ size: "sm",
6718
+ color: "danger",
6719
+ className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
6720
+ onClick: function onClick() {
6721
+ setImagePreviewUrl(null);
6722
+ onDelete && onDelete();
6723
+ }
6724
+ }, React.createElement(FaTrashAlt, null)))), imagePreviewContainer);
6725
+ };
6660
6726
 
6661
6727
  var USER_URL$1 = BASE_URL + "/api/user";
6662
6728
  var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
6663
6729
  var ACCOUNT_URL$1 = BASE_URL + "/api/account";
6664
- var EDU_USER_URL = BASE_URL + "/api/User/delete-item-user";
6730
+ var EDU_USER_URL = BASE_URL + "/api/User";
6665
6731
  var get$5 = function get(filter) {
6666
6732
  return api.get("" + USER_URL$1, {
6667
6733
  params: filter
@@ -6677,7 +6743,7 @@ var update$5 = function update(data) {
6677
6743
  return api.put(USER_URL$1 + "/" + data.id, data);
6678
6744
  };
6679
6745
  var remove$3 = function remove(id) {
6680
- return api["delete"](EDU_USER_URL + "/" + id);
6746
+ return api["delete"](EDU_USER_URL + "/delete-item-user/" + id);
6681
6747
  };
6682
6748
  var changePassword = function changePassword(formData) {
6683
6749
  return api.post(CHANGE_PASSWORD, formData);
@@ -6685,32 +6751,58 @@ var changePassword = function changePassword(formData) {
6685
6751
  var forgotChangePassword = function forgotChangePassword(data) {
6686
6752
  return api.post(ACCOUNT_URL$1 + "/forgotchangepassword", data);
6687
6753
  };
6754
+ var switchAccountUser = function switchAccountUser(id) {
6755
+ return api.post(EDU_USER_URL + "/switch-user/" + id);
6756
+ };
6688
6757
 
6689
- var USER_URL$2 = "/admin/user";
6690
- var CREATE_USER_URL = "/admin/create-user";
6691
- var TITLE$7 = "User list";
6758
+ var initValue$3 = {
6759
+ id: "",
6760
+ firstName: "",
6761
+ lastName: "",
6762
+ email: "",
6763
+ dateOfBirth: "",
6764
+ roles: [],
6765
+ isActive: true,
6766
+ profileImageFileName: ""
6767
+ };
6768
+ var USER_LIST_URL = "/admin/user";
6769
+ var TITLE$7 = "User detail";
6692
6770
 
6693
- var useUserList = function useUserList() {
6771
+ var useUserDetail = function useUserDetail(id) {
6772
+ var dispatch = useDispatch();
6694
6773
  var history = useHistory();
6695
- var query = new URLSearchParams(location.search);
6696
- var queryName = query.get("query");
6697
- var userList = useSelector(function (state) {
6698
- return state.users.userList;
6699
- });
6700
- var totalItems = useSelector(function (state) {
6701
- return state.users.totalItems;
6702
- });
6703
6774
 
6704
- var _useFilters = useFilters(),
6705
- filters = _useFilters.filters,
6706
- changeFilters = _useFilters.changeFilters;
6775
+ var _useState = useState(initValue$3),
6776
+ userDetail = _useState[0],
6777
+ setUserDetail = _useState[1];
6707
6778
 
6708
- var _useState = useState(!!queryName ? queryName : ""),
6709
- fullName = _useState[0],
6710
- setFullName = _useState[1];
6779
+ var _useState2 = useState(null),
6780
+ file = _useState2[0],
6781
+ setFile = _useState2[1];
6711
6782
 
6712
- var dispatch = useDispatch();
6713
- var getData = useCallback(function (fullName) {
6783
+ var _useState3 = useState(false),
6784
+ edited = _useState3[0],
6785
+ setEdited = _useState3[1];
6786
+
6787
+ var setEditedTrue = function setEditedTrue() {
6788
+ try {
6789
+ localStorage.setItem(window.location.href, "true");
6790
+ setEdited(true);
6791
+ return Promise.resolve();
6792
+ } catch (e) {
6793
+ return Promise.reject(e);
6794
+ }
6795
+ };
6796
+
6797
+ useEffect(function () {
6798
+ document.title = TITLE$7;
6799
+ setEdited(false);
6800
+ if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
6801
+ }, []);
6802
+ useEffect(function () {
6803
+ !!id && getData();
6804
+ }, [id]);
6805
+ var getData = useCallback(function () {
6714
6806
  try {
6715
6807
  var _temp3 = function _temp3() {
6716
6808
  dispatch(setLoading(false));
@@ -6719,22 +6811,14 @@ var useUserList = function useUserList() {
6719
6811
  dispatch(setLoading(true));
6720
6812
 
6721
6813
  var _temp4 = _catch(function () {
6722
- return Promise.resolve(fullName ? get$5(_extends({}, filters, {
6723
- searchString: fullName
6724
- })) : get$5(filters)).then(function (res) {
6725
- var _res$data = res.data,
6726
- items = _res$data.items,
6727
- totalItems = _res$data.totalItems;
6728
-
6729
- for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
6730
- var user = _step.value;
6731
- user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
6732
- }
6814
+ return Promise.resolve(getById$3(id)).then(function (res) {
6815
+ var _res$data;
6733
6816
 
6734
- dispatch(setUserList({
6735
- userList: items,
6736
- totalItems: totalItems
6817
+ setUserDetail(_extends({}, res.data, {
6818
+ dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT),
6819
+ roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
6737
6820
  }));
6821
+ document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
6738
6822
  });
6739
6823
  }, function (err) {
6740
6824
  var _err$response, _err$response$data;
@@ -6749,450 +6833,39 @@ var useUserList = function useUserList() {
6749
6833
  } catch (e) {
6750
6834
  return Promise.reject(e);
6751
6835
  }
6752
- }, [dispatch, filters]);
6753
- useEffect(function () {
6754
- document.title = TITLE$7;
6836
+ }, [id]);
6837
+ var backToList = useCallback(function (user) {
6838
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
6755
6839
  }, []);
6756
- useEffect(function () {
6757
- if (!!fullName) {
6758
- getData(fullName);
6759
- setFullName(null);
6760
- } else {
6761
- getData();
6762
- }
6763
- }, [filters]);
6764
- var removeData = useCallback(function (id) {
6765
- dispatch(setLoading(true));
6766
-
6840
+ var confirmData = useCallback(function (data) {
6767
6841
  try {
6768
- dispatch(setModal({
6769
- isOpen: true,
6770
- type: "warning",
6771
- message: "Do you want to remove this user?",
6772
- onConfirm: function () {
6773
- try {
6774
- return Promise.resolve(remove$3(id)).then(function () {
6775
- dispatch(setAlert({
6776
- type: "success",
6777
- message: "Remove user successfully"
6778
- }));
6779
- changeFilters({
6780
- currentPage: 1
6781
- });
6782
- });
6783
- } catch (e) {
6784
- return Promise.reject(e);
6785
- }
6786
- }
6787
- }));
6788
- } catch (err) {
6789
- var _err$response2, _err$response2$data;
6842
+ var _temp9 = function _temp9() {
6843
+ dispatch(setLoading(false));
6844
+ };
6790
6845
 
6791
- dispatch(setAlert({
6792
- type: "danger",
6793
- 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
6794
- }));
6795
- }
6846
+ dispatch(setLoading(true));
6796
6847
 
6797
- dispatch(setLoading(false));
6798
- }, [filters]);
6848
+ var _temp10 = _catch(function () {
6849
+ function _temp6() {
6850
+ var next = !!id ? update$5 : create$5;
6851
+ !id && delete data.id;
6852
+ return Promise.resolve(next(data)).then(function (result) {
6853
+ if (!!result) {
6854
+ getById$3(result.data.id).then(function (e) {
6855
+ backToList(e.data.fullName);
6856
+ });
6857
+ }
6799
6858
 
6800
- var reDirectDetailPage = function reDirectDetailPage(id) {
6801
- var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
6802
- history.push(url);
6803
- };
6859
+ if (!id) {
6860
+ alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
6861
+ }
6804
6862
 
6805
- return {
6806
- userList: userList,
6807
- totalItems: totalItems,
6808
- filters: filters,
6809
- queryName: queryName,
6810
- getData: getData,
6811
- removeData: removeData,
6812
- changeFilters: changeFilters,
6813
- reDirectDetailPage: reDirectDetailPage
6814
- };
6815
- };
6816
-
6817
- var SearchBox = function SearchBox(_ref) {
6818
- var initValue = _ref.initValue,
6819
- onSearch = _ref.onSearch,
6820
- placeholder = _ref.placeholder,
6821
- className = _ref.className,
6822
- style = _ref.style;
6823
-
6824
- var _useState = useState(initValue),
6825
- searchString = _useState[0],
6826
- setSearchString = _useState[1];
6827
-
6828
- useEffect(function () {
6829
- setSearchString(initValue);
6830
- }, [initValue]);
6831
- var onKeyUp = useCallback(function (e) {
6832
- e.key === "Enter" && onSearch(searchString);
6833
- }, [searchString, onSearch]);
6834
- return React.createElement(Input, {
6835
- placeholder: placeholder,
6836
- value: searchString,
6837
- onChange: function onChange(e) {
6838
- return setSearchString(e.target.value);
6839
- },
6840
- onKeyUp: onKeyUp,
6841
- className: className,
6842
- style: style
6843
- });
6844
- };
6845
-
6846
- SearchBox.defaultProps = {
6847
- placeholder: "Type something to search",
6848
- className: "",
6849
- style: {}
6850
- };
6851
- var SearchBox$1 = memo(SearchBox);
6852
-
6853
- var searchInputStyle = {
6854
- height: 38
6855
- };
6856
-
6857
- var SearchBoxContainer = function SearchBoxContainer(_ref) {
6858
- var text = _ref.text,
6859
- initValue = _ref.initValue,
6860
- onClick = _ref.onClick,
6861
- onSearch = _ref.onSearch,
6862
- placeholder = _ref.placeholder;
6863
- return React.createElement("div", {
6864
- className: "d-flex align-items-center"
6865
- }, React.createElement("div", null, React.createElement(AddButton, {
6866
- text: text,
6867
- onClick: onClick
6868
- })), React.createElement("div", {
6869
- className: "flex-grow-1 ml-2"
6870
- }, React.createElement(SearchBox$1, {
6871
- initValue: initValue,
6872
- onSearch: onSearch,
6873
- placeholder: placeholder,
6874
- style: searchInputStyle
6875
- })));
6876
- };
6877
-
6878
- SearchBoxContainer.defaultProps = {
6879
- placeholder: "Type something to search"
6880
- };
6881
-
6882
- var utcToLocalTime = (function (time, FORMAT) {
6883
- if (time === DATE_MIN_VALUE) return "";
6884
-
6885
- try {
6886
- return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
6887
- } catch (_unused) {
6888
- return "";
6889
- }
6890
- });
6891
-
6892
- var header$2 = "User";
6893
-
6894
- var UserList = function UserList() {
6895
- var _useUserList = useUserList(),
6896
- queryName = _useUserList.queryName,
6897
- userList = _useUserList.userList,
6898
- totalItems = _useUserList.totalItems,
6899
- filters = _useUserList.filters,
6900
- removeData = _useUserList.removeData,
6901
- changeFilters = _useUserList.changeFilters,
6902
- reDirectDetailPage = _useUserList.reDirectDetailPage;
6903
-
6904
- var _useTranslation = useTranslation(),
6905
- t = _useTranslation.t;
6906
-
6907
- return React.createElement("div", {
6908
- className: "fadeIn animated"
6909
- }, React.createElement("h5", {
6910
- className: "mb-2"
6911
- }, t("" + header$2)), React.createElement(Row, {
6912
- className: "my-2"
6913
- }, React.createElement(Col, {
6914
- md: 8
6915
- }, React.createElement(SearchBoxContainer, {
6916
- text: t("create_user"),
6917
- onClick: function onClick() {
6918
- return reDirectDetailPage();
6919
- },
6920
- initValue: !!queryName ? queryName : "",
6921
- onSearch: function onSearch(searchString) {
6922
- return changeFilters({
6923
- searchString: searchString
6924
- });
6925
- },
6926
- placeholder: t("type_something_to_search_by_user_name")
6927
- })), React.createElement(Col, {
6928
- md: 4,
6929
- className: "d-flex justify-content-end align-items-center"
6930
- }, t("total_of_users"), " : ", totalItems)), React.createElement(Row, {
6931
- className: "mb-2"
6932
- }, React.createElement(Col, {
6933
- md: 12
6934
- }, userList && userList.length > 0 ? React.createElement("div", null, React.createElement(Table, {
6935
- bordered: true,
6936
- hover: true,
6937
- striped: true,
6938
- responsive: true,
6939
- size: "sm"
6940
- }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
6941
- className: "align-top"
6942
- }, t("name")), React.createElement("th", {
6943
- className: "align-top"
6944
- }, t("email")), React.createElement("th", {
6945
- className: "align-top"
6946
- }, t("age")), React.createElement("th", {
6947
- className: "align-top"
6948
- }, t("role")), React.createElement("th", {
6949
- className: "align-top"
6950
- }, t("active_status")), React.createElement("th", {
6951
- className: "align-top"
6952
- }, t("created_time")), React.createElement("th", {
6953
- className: "text-center"
6954
- }, t("action")))), React.createElement("tbody", null, userList.map(function (record) {
6955
- return React.createElement("tr", {
6956
- key: record.id
6957
- }, React.createElement("td", {
6958
- className: "align-middle"
6959
- }, React.createElement(LinkEditButton, {
6960
- label: "" + record.fullName,
6961
- onClick: function onClick() {
6962
- return reDirectDetailPage(record.id);
6963
- }
6964
- })), React.createElement("td", {
6965
- className: "align-middle"
6966
- }, record.email), React.createElement("td", {
6967
- className: "align-middle"
6968
- }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React.createElement("td", {
6969
- className: "align-middle"
6970
- }, !!record.roles && record.roles.join(", ")), React.createElement("td", {
6971
- className: "align-middle"
6972
- }, record.isActive ? t("active") : t("inactive")), React.createElement("td", {
6973
- className: "align-middle"
6974
- }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React.createElement("td", {
6975
- className: "text-center align-middle"
6976
- }, React.createElement(DeleteButtonIcon, {
6977
- onClick: function onClick() {
6978
- return removeData(record.id);
6979
- }
6980
- })));
6981
- })))) : React.createElement(EmptyDataAlert, {
6982
- label: t("user")
6983
- })), React.createElement(Col, {
6984
- md: 12
6985
- }, React.createElement(CustomPagination, {
6986
- filters: filters,
6987
- totalRecordCount: totalItems,
6988
- changePageSize: function changePageSize(pageSize) {
6989
- return changeFilters({
6990
- pageSize: pageSize
6991
- });
6992
- },
6993
- changePage: function changePage(currentPage) {
6994
- return changeFilters({
6995
- currentPage: currentPage
6996
- });
6997
- }
6998
- }))));
6999
- };
7000
-
7001
- var MAX_FILE_SIZE = 20097152;
7002
-
7003
- var UploadFileButton = function UploadFileButton(_ref) {
7004
- var fileName = _ref.fileName,
7005
- maxWidth = _ref.maxWidth,
7006
- maxHeight = _ref.maxHeight,
7007
- setFile = _ref.setFile,
7008
- canDelete = _ref.canDelete,
7009
- onDelete = _ref.onDelete,
7010
- isCheckFeedBack = _ref.isCheckFeedBack,
7011
- onAddImage = _ref.onAddImage;
7012
- var dispatch = useDispatch();
7013
-
7014
- var _useState = useState(""),
7015
- imagePreviewUrl = _useState[0],
7016
- setImagePreviewUrl = _useState[1];
7017
-
7018
- var imageStyle = {
7019
- maxWidth: maxWidth || "100%",
7020
- maxHeight: maxHeight || "100%"
7021
- };
7022
- var imageSrc = imagePreviewUrl || getFileUrl(fileName);
7023
-
7024
- var handleImageChange = function handleImageChange(e) {
7025
- e.preventDefault();
7026
- var reader = new FileReader();
7027
- var newFile = e.target.files[0];
7028
-
7029
- if (newFile.size > MAX_FILE_SIZE) {
7030
- dispatch(setAlert({
7031
- type: "danger",
7032
- message: "File can't be larger than 2MB"
7033
- }));
7034
- return;
7035
- }
7036
-
7037
- reader.onloadend = function () {
7038
- setFile(newFile);
7039
- setImagePreviewUrl(reader.result);
7040
- };
7041
-
7042
- if (newFile) {
7043
- reader.readAsDataURL(newFile);
7044
- }
7045
-
7046
- !!onAddImage && onAddImage();
7047
- };
7048
-
7049
- var imagePreviewContainer = imagePreviewUrl || fileName ? React.createElement("img", {
7050
- style: imageStyle,
7051
- src: imageSrc,
7052
- alt: "image"
7053
- }) : null;
7054
- return React.createElement("div", {
7055
- className: "mb-2"
7056
- }, React.createElement(Form, {
7057
- className: "mb-2"
7058
- }, React.createElement(Input, {
7059
- className: "d-none",
7060
- type: "file",
7061
- id: "uploadFile",
7062
- onChange: handleImageChange,
7063
- accept: "image/*"
7064
- }), React.createElement("div", {
7065
- className: "d-flex align-items-center"
7066
- }, React.createElement(Label, {
7067
- htmlFor: "uploadFile",
7068
- role: "button",
7069
- tabIndex: 0,
7070
- className: styles["input-file-label"]
7071
- }, isCheckFeedBack == true ? React.createElement(MdAttachFile, null) : React.createElement(React.Fragment, null, React.createElement("i", {
7072
- className: "fa fa-paperclip mr-1",
7073
- "aria-hidden": "true"
7074
- }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React.createElement(Button, {
7075
- size: "sm",
7076
- color: "danger",
7077
- className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
7078
- onClick: function onClick() {
7079
- setImagePreviewUrl(null);
7080
- onDelete && onDelete();
7081
- }
7082
- }, React.createElement(FaTrashAlt, null)))), imagePreviewContainer);
7083
- };
7084
-
7085
- var initValue$3 = {
7086
- id: "",
7087
- firstName: "",
7088
- lastName: "",
7089
- email: "",
7090
- dateOfBirth: "",
7091
- roles: [],
7092
- isActive: true,
7093
- profileImageFileName: ""
7094
- };
7095
- var USER_LIST_URL = "/admin/user";
7096
- var TITLE$8 = "User detail";
7097
-
7098
- var useUserDetail = function useUserDetail(id) {
7099
- var dispatch = useDispatch();
7100
- var history = useHistory();
7101
-
7102
- var _useState = useState(initValue$3),
7103
- userDetail = _useState[0],
7104
- setUserDetail = _useState[1];
7105
-
7106
- var _useState2 = useState(null),
7107
- file = _useState2[0],
7108
- setFile = _useState2[1];
7109
-
7110
- var _useState3 = useState(false),
7111
- edited = _useState3[0],
7112
- setEdited = _useState3[1];
7113
-
7114
- var setEditedTrue = function setEditedTrue() {
7115
- try {
7116
- localStorage.setItem(window.location.href, "true");
7117
- setEdited(true);
7118
- return Promise.resolve();
7119
- } catch (e) {
7120
- return Promise.reject(e);
7121
- }
7122
- };
7123
-
7124
- useEffect(function () {
7125
- document.title = TITLE$8;
7126
- setEdited(false);
7127
- if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
7128
- }, []);
7129
- useEffect(function () {
7130
- !!id && getData();
7131
- }, [id]);
7132
- var getData = useCallback(function () {
7133
- try {
7134
- var _temp3 = function _temp3() {
7135
- dispatch(setLoading(false));
7136
- };
7137
-
7138
- dispatch(setLoading(true));
7139
-
7140
- var _temp4 = _catch(function () {
7141
- return Promise.resolve(getById$3(id)).then(function (res) {
7142
- var _res$data;
7143
-
7144
- setUserDetail(_extends({}, res.data, {
7145
- dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT),
7146
- roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
7147
- }));
7148
- document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
7149
- });
7150
- }, function (err) {
7151
- var _err$response, _err$response$data;
7152
-
7153
- dispatch(setAlert({
7154
- type: "danger",
7155
- 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
7156
- }));
7157
- });
7158
-
7159
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
7160
- } catch (e) {
7161
- return Promise.reject(e);
7162
- }
7163
- }, [id]);
7164
- var backToList = useCallback(function (user) {
7165
- !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
7166
- }, []);
7167
- var confirmData = useCallback(function (data) {
7168
- try {
7169
- var _temp9 = function _temp9() {
7170
- dispatch(setLoading(false));
7171
- };
7172
-
7173
- dispatch(setLoading(true));
7174
-
7175
- var _temp10 = _catch(function () {
7176
- function _temp6() {
7177
- var next = !!id ? update$5 : create$5;
7178
- !id && delete data.id;
7179
- return Promise.resolve(next(data)).then(function (result) {
7180
- if (!!result) {
7181
- getById$3(result.data.id).then(function (e) {
7182
- backToList(e.data.fullName);
7183
- });
7184
- }
7185
-
7186
- if (!id) {
7187
- alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7188
- }
7189
-
7190
- dispatch(setAlert({
7191
- type: "success",
7192
- message: (!!id ? "Update" : "Create") + " user successfully"
7193
- }));
7194
- });
7195
- }
6863
+ dispatch(setAlert({
6864
+ type: "success",
6865
+ message: (!!id ? "Update" : "Create") + " user successfully"
6866
+ }));
6867
+ });
6868
+ }
7196
6869
 
7197
6870
  var _temp5 = function () {
7198
6871
  if (!!file) {
@@ -7390,13 +7063,13 @@ var UserDetail = function UserDetail() {
7390
7063
  return;
7391
7064
  }
7392
7065
 
7393
- if ([ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER, ROLES.COUNSELOR].includes(role)) {
7066
+ if ([ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER].includes(role)) {
7394
7067
  setFieldValue("roles", [role]);
7395
7068
  return;
7396
7069
  }
7397
7070
 
7398
7071
  var teacherAssistantRoles = values.roles.filter(function (item) {
7399
- return ![ROLES.STUDENT, ROLES.ADMIN, ROLES.PARENT, ROLES.EDUTEACHER, ROLES.COUNSELOR].includes(item);
7072
+ return ![ROLES.STUDENT, ROLES.ADMIN, ROLES.PARENT, ROLES.EDUTEACHER].includes(item);
7400
7073
  });
7401
7074
  setFieldValue("roles", [].concat(teacherAssistantRoles, [role]));
7402
7075
  }, [values.roles]);
@@ -7786,6 +7459,42 @@ var CreatableSelector = function CreatableSelector(props) {
7786
7459
  });
7787
7460
  };
7788
7461
 
7462
+ var SearchBox = function SearchBox(_ref) {
7463
+ var initValue = _ref.initValue,
7464
+ onSearch = _ref.onSearch,
7465
+ placeholder = _ref.placeholder,
7466
+ className = _ref.className,
7467
+ style = _ref.style;
7468
+
7469
+ var _useState = useState(initValue),
7470
+ searchString = _useState[0],
7471
+ setSearchString = _useState[1];
7472
+
7473
+ useEffect(function () {
7474
+ setSearchString(initValue);
7475
+ }, [initValue]);
7476
+ var onKeyUp = useCallback(function (e) {
7477
+ e.key === "Enter" && onSearch(searchString);
7478
+ }, [searchString, onSearch]);
7479
+ return React.createElement(Input, {
7480
+ placeholder: placeholder,
7481
+ value: searchString,
7482
+ onChange: function onChange(e) {
7483
+ return setSearchString(e.target.value);
7484
+ },
7485
+ onKeyUp: onKeyUp,
7486
+ className: className,
7487
+ style: style
7488
+ });
7489
+ };
7490
+
7491
+ SearchBox.defaultProps = {
7492
+ placeholder: "Type something to search",
7493
+ className: "",
7494
+ style: {}
7495
+ };
7496
+ var SearchBox$1 = memo(SearchBox);
7497
+
7789
7498
  var QuestionTypeSelector = function QuestionTypeSelector(props) {
7790
7499
  var id = props.id;
7791
7500
  var initValue = !!id ? QUESTION_TYPES_OPTIONS.find(function (option) {
@@ -8006,13 +7715,23 @@ var NotificationStatusSelector = function NotificationStatusSelector(_ref) {
8006
7715
 
8007
7716
  var NotificationStatusSelector$1 = memo(NotificationStatusSelector);
8008
7717
 
7718
+ var utcToLocalTime = (function (time, FORMAT) {
7719
+ if (time === DATE_MIN_VALUE) return "";
7720
+
7721
+ try {
7722
+ return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7723
+ } catch (_unused) {
7724
+ return "";
7725
+ }
7726
+ });
7727
+
8009
7728
  var defaultFilters = {
8010
7729
  currentPage: 1,
8011
7730
  pageSize: 30,
8012
7731
  searchString: "",
8013
7732
  isRead: false
8014
7733
  };
8015
- var TITLE$9 = "Notification list";
7734
+ var TITLE$8 = "Notification list";
8016
7735
  var NOTIFICATION_CHANNEL$1 = "NOTIFICATION_CHANNEL";
8017
7736
  var NEW_NOTIFICATION$1 = "NEW_NOTIFICATION";
8018
7737
 
@@ -8052,7 +7771,7 @@ var useNotificationList = function useNotificationList() {
8052
7771
  };
8053
7772
 
8054
7773
  var viewNotification = function viewNotification(notification) {
8055
- var _JSON$parse, _JSON$parse2, _extraData$replace, _extraData$replace$sp, _extraData$replace2, _extraData$replace2$s, _extraData$replace3, _extraData$replace3$s, _JSON$parse3, _JSON$parse4, _JSON$parse5, _JSON$parse6;
7774
+ var _JSON$parse, _JSON$parse2, _JSON$parse3, _JSON$parse4, _JSON$parse5, _JSON$parse6, _JSON$parse7, _JSON$parse8, _JSON$parse9, _JSON$parse10;
8056
7775
 
8057
7776
  var source = notification.source,
8058
7777
  extraData = notification.extraData;
@@ -8067,23 +7786,23 @@ var useNotificationList = function useNotificationList() {
8067
7786
  break;
8068
7787
 
8069
7788
  case "Class Reflection":
8070
- window.open("/start-reflection/" + (extraData === null || extraData === void 0 ? void 0 : (_extraData$replace = extraData.replace(/[\[\]]/g, '')) === null || _extraData$replace === void 0 ? void 0 : (_extraData$replace$sp = _extraData$replace.split(',')) === null || _extraData$replace$sp === void 0 ? void 0 : _extraData$replace$sp[1]));
7789
+ window.open("/start-reflection/" + ((_JSON$parse3 = JSON.parse(extraData)) === null || _JSON$parse3 === void 0 ? void 0 : _JSON$parse3[0]) + "/" + ((_JSON$parse4 = JSON.parse(extraData)) === null || _JSON$parse4 === void 0 ? void 0 : _JSON$parse4[1]));
8071
7790
  break;
8072
7791
 
8073
7792
  case "Class Reflection Completed":
8074
- window.open("/result-reflection/" + (extraData === null || extraData === void 0 ? void 0 : (_extraData$replace2 = extraData.replace(/[\[\]]/g, '')) === null || _extraData$replace2 === void 0 ? void 0 : (_extraData$replace2$s = _extraData$replace2.split(',')) === null || _extraData$replace2$s === void 0 ? void 0 : _extraData$replace2$s[1]));
7793
+ window.open("/result-reflection/" + ((_JSON$parse5 = JSON.parse(extraData)) === null || _JSON$parse5 === void 0 ? void 0 : _JSON$parse5[1]));
8075
7794
  break;
8076
7795
 
8077
7796
  case "External Reflection Completed":
8078
- window.open("/result-reflection/" + (extraData === null || extraData === void 0 ? void 0 : (_extraData$replace3 = extraData.replace(/[\[\]]/g, '')) === null || _extraData$replace3 === void 0 ? void 0 : (_extraData$replace3$s = _extraData$replace3.split(',')) === null || _extraData$replace3$s === void 0 ? void 0 : _extraData$replace3$s[1]) + "/external");
7797
+ window.open("/result-reflection/" + ((_JSON$parse6 = JSON.parse(extraData)) === null || _JSON$parse6 === void 0 ? void 0 : _JSON$parse6[1]) + "/external");
8079
7798
  break;
8080
7799
 
8081
7800
  case "NewSessionCreated":
8082
- window.open("/start-question/" + ((_JSON$parse3 = JSON.parse(extraData)) === null || _JSON$parse3 === void 0 ? void 0 : _JSON$parse3[0]) + "/" + ((_JSON$parse4 = JSON.parse(extraData)) === null || _JSON$parse4 === void 0 ? void 0 : _JSON$parse4[1]));
7801
+ window.open("/start-question/" + ((_JSON$parse7 = JSON.parse(extraData)) === null || _JSON$parse7 === void 0 ? void 0 : _JSON$parse7[0]) + "/" + ((_JSON$parse8 = JSON.parse(extraData)) === null || _JSON$parse8 === void 0 ? void 0 : _JSON$parse8[1]));
8083
7802
  break;
8084
7803
 
8085
7804
  case "NewSessionComplete":
8086
- window.open("/start-question/" + ((_JSON$parse5 = JSON.parse(extraData)) === null || _JSON$parse5 === void 0 ? void 0 : _JSON$parse5[0]) + "/" + ((_JSON$parse6 = JSON.parse(extraData)) === null || _JSON$parse6 === void 0 ? void 0 : _JSON$parse6[1]));
7805
+ window.open("/start-question/" + ((_JSON$parse9 = JSON.parse(extraData)) === null || _JSON$parse9 === void 0 ? void 0 : _JSON$parse9[0]) + "/" + ((_JSON$parse10 = JSON.parse(extraData)) === null || _JSON$parse10 === void 0 ? void 0 : _JSON$parse10[1]));
8087
7806
  break;
8088
7807
 
8089
7808
  case "ActionPointReminder":
@@ -8137,7 +7856,7 @@ var useNotificationList = function useNotificationList() {
8137
7856
  }
8138
7857
  }, [filters]);
8139
7858
  useEffect(function () {
8140
- document.title = TITLE$9;
7859
+ document.title = TITLE$8;
8141
7860
  }, []);
8142
7861
  useEffect(function () {
8143
7862
  getData();
@@ -8222,7 +7941,7 @@ var useNotificationList = function useNotificationList() {
8222
7941
  };
8223
7942
  };
8224
7943
 
8225
- var header$3 = "Notification list";
7944
+ var header$2 = "Notification list";
8226
7945
  var ICON_SIZE = 20;
8227
7946
 
8228
7947
  var NotificationList = function NotificationList() {
@@ -8243,7 +7962,7 @@ var NotificationList = function NotificationList() {
8243
7962
  }
8244
7963
  }, React.createElement("h5", {
8245
7964
  className: "mb-2"
8246
- }, header$3), React.createElement(Row, {
7965
+ }, header$2), React.createElement(Row, {
8247
7966
  className: "my-2"
8248
7967
  }, React.createElement(Col, {
8249
7968
  md: 8
@@ -8343,6 +8062,35 @@ var NotificationList = function NotificationList() {
8343
8062
  }))));
8344
8063
  };
8345
8064
 
8065
+ var searchInputStyle = {
8066
+ height: 38
8067
+ };
8068
+
8069
+ var SearchBoxContainer = function SearchBoxContainer(_ref) {
8070
+ var text = _ref.text,
8071
+ initValue = _ref.initValue,
8072
+ onClick = _ref.onClick,
8073
+ onSearch = _ref.onSearch,
8074
+ placeholder = _ref.placeholder;
8075
+ return React.createElement("div", {
8076
+ className: "d-flex align-items-center"
8077
+ }, React.createElement("div", null, React.createElement(AddButton, {
8078
+ text: text,
8079
+ onClick: onClick
8080
+ })), React.createElement("div", {
8081
+ className: "flex-grow-1 ml-2"
8082
+ }, React.createElement(SearchBox$1, {
8083
+ initValue: initValue,
8084
+ onSearch: onSearch,
8085
+ placeholder: placeholder,
8086
+ style: searchInputStyle
8087
+ })));
8088
+ };
8089
+
8090
+ SearchBoxContainer.defaultProps = {
8091
+ placeholder: "Type something to search"
8092
+ };
8093
+
8346
8094
  var CustomTabs = function CustomTabs(props) {
8347
8095
  var history = useHistory();
8348
8096
  var location = useLocation();
@@ -8747,7 +8495,7 @@ var get$8 = function get(filter) {
8747
8495
  });
8748
8496
  };
8749
8497
 
8750
- var TITLE$a = "Gallery";
8498
+ var TITLE$9 = "Gallery";
8751
8499
  var defaultFilter = {
8752
8500
  searchString: ""
8753
8501
  };
@@ -8984,7 +8732,7 @@ var useGalleryList = function useGalleryList(isLibrary) {
8984
8732
  }
8985
8733
  }, [dispatch, filters]);
8986
8734
  useEffect(function () {
8987
- document.title = TITLE$a;
8735
+ document.title = TITLE$9;
8988
8736
  dispatch(setTargetMedia({
8989
8737
  targetMedia: undefined
8990
8738
  }));
@@ -9176,7 +8924,7 @@ var MediaDetail = function MediaDetail(_ref) {
9176
8924
 
9177
8925
  var MediaDetail$1 = React.memo(MediaDetail);
9178
8926
 
9179
- var header$4 = "Gallery";
8927
+ var header$3 = "Gallery";
9180
8928
 
9181
8929
  var GalleryList = function GalleryList(_ref) {
9182
8930
  var isLibrary = _ref.isLibrary;
@@ -9187,7 +8935,7 @@ var GalleryList = function GalleryList(_ref) {
9187
8935
  className: "fadeIn animated"
9188
8936
  }, !isLibrary && React.createElement("h5", {
9189
8937
  className: "mb-2"
9190
- }, header$4), React.createElement(Row, {
8938
+ }, header$3), React.createElement(Row, {
9191
8939
  className: "mb-2"
9192
8940
  }, React.createElement(Col, {
9193
8941
  md: 8
@@ -9811,6 +9559,9 @@ var commonReducer$8 = createReducer(initialState$e, function (builder) {
9811
9559
  });
9812
9560
  });
9813
9561
 
9562
+ var setUserList = createAction("users/setUserList");
9563
+ var setStudentList = createAction("users/setStudentList");
9564
+
9814
9565
  var initialState$f = {
9815
9566
  userList: [],
9816
9567
  totalItems: 0,
@@ -10390,133 +10141,489 @@ var widgetReducer = createReducer(initialState$y, function (builder) {
10390
10141
 
10391
10142
  var setBandScoreList = createAction("bandScores/setBandScoreList");
10392
10143
 
10393
- var initialState$z = {
10394
- bandScoreList: [],
10395
- totalItems: 0
10396
- };
10397
- var commonReducer$h = createReducer(initialState$z, function (builder) {
10398
- builder.addCase(setBandScoreList, function (state, action) {
10399
- state.bandScoreList = action.payload.bandScoreList;
10400
- state.totalItems = action.payload.totalItems;
10401
- }).addCase(reset, function (_state, _action) {
10402
- return initialState$z;
10403
- });
10404
- });
10144
+ var initialState$z = {
10145
+ bandScoreList: [],
10146
+ totalItems: 0
10147
+ };
10148
+ var commonReducer$h = createReducer(initialState$z, function (builder) {
10149
+ builder.addCase(setBandScoreList, function (state, action) {
10150
+ state.bandScoreList = action.payload.bandScoreList;
10151
+ state.totalItems = action.payload.totalItems;
10152
+ }).addCase(reset, function (_state, _action) {
10153
+ return initialState$z;
10154
+ });
10155
+ });
10156
+
10157
+ var setSchoolBlankDayList = createAction("schoolBlankDays/setSchoolBlankDayList");
10158
+
10159
+ var initialState$A = {
10160
+ schoolBlankDayList: [],
10161
+ totalItems: 0
10162
+ };
10163
+ var commonReducer$i = createReducer(initialState$A, function (builder) {
10164
+ builder.addCase(setSchoolBlankDayList, function (state, action) {
10165
+ state.schoolBlankDayList = action.payload.schoolBlankDayList;
10166
+ state.totalItems = action.payload.totalItems;
10167
+ }).addCase(reset, function (_state, _action) {
10168
+ return initialState$A;
10169
+ });
10170
+ });
10171
+
10172
+ var setStudentIdSelectedByTeacher = createAction("navMobile/setStudentIdSelectedByTeacher");
10173
+
10174
+ var initialState$B = {
10175
+ studentIdSelectedByTeacher: 0
10176
+ };
10177
+ var navMobileReducer = createReducer(initialState$B, function (builder) {
10178
+ builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10179
+ state.studentIdSelectedByTeacher = action.payload;
10180
+ }).addCase(reset, function (_state, _action) {
10181
+ return initialState$B;
10182
+ });
10183
+ });
10184
+
10185
+ var rootReducer = combineReducers({
10186
+ common: commonReducer,
10187
+ classes: classReducer,
10188
+ conferenceRubrics: conferenceRubricReducer,
10189
+ faqs: commonReducer$1,
10190
+ skills: commonReducer$2,
10191
+ emailTemplate: emailTemplateReducer,
10192
+ suggestionBank: suggestionBankReducer,
10193
+ learningStrategy: learningStrategyReducer,
10194
+ subjects: commonReducer$3,
10195
+ learningSupportCategories: commonReducer$4,
10196
+ questionBank: questionBankReducer,
10197
+ badges: commonReducer$5,
10198
+ semester: commonReducer$6,
10199
+ goalExamples: commonReducer$8,
10200
+ users: commonReducer$9,
10201
+ reflections: reflectionReducer,
10202
+ reflectionResults: reflectionReducer$1,
10203
+ feedbacks: commonReducer$a,
10204
+ assessments: commonReducer$b,
10205
+ questionByCategory: questionCategoryReducer,
10206
+ mailCategory: questionBankReducer$1,
10207
+ questionCate: questionCateReducer,
10208
+ notification: questionBankReducer$2,
10209
+ myStudent: commonReducer$c,
10210
+ assignments: commonReducer$7,
10211
+ assistants: assistantReducer,
10212
+ sesstionTemplates: sessionTemplateReducer,
10213
+ sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10214
+ tutorialScreens: tutorialScreenReducer,
10215
+ customAlerts: commonReducer$d,
10216
+ gallery: commonReducer$e,
10217
+ dashboard: dashboardReducer,
10218
+ sessionPlayer: sessionPlayerReducer,
10219
+ dataPlayer: dataPlayer,
10220
+ certificate: commonReducer$f,
10221
+ improveMyClass: commonReducer$g,
10222
+ widget: widgetReducer,
10223
+ bandScores: commonReducer$h,
10224
+ schoolBlankDays: commonReducer$i,
10225
+ navMobileReducer: navMobileReducer
10226
+ });
10227
+
10228
+ var store = configureStore({
10229
+ reducer: rootReducer,
10230
+ middleware: function middleware(getDefaultMiddleware) {
10231
+ return getDefaultMiddleware({
10232
+ serializableCheck: false
10233
+ }).concat(logger);
10234
+ }
10235
+ });
10236
+
10237
+ var isInViewport = function isInViewport(el) {
10238
+ var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10239
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10240
+ };
10241
+
10242
+ var debounce = function debounce(callback, wait) {
10243
+ var timeout = null;
10244
+ return function () {
10245
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10246
+ args[_key] = arguments[_key];
10247
+ }
10248
+
10249
+ var next = function next() {
10250
+ return callback.apply(void 0, args);
10251
+ };
10252
+
10253
+ clearTimeout(timeout);
10254
+ timeout = setTimeout(next, wait);
10255
+ };
10256
+ };
10257
+
10258
+ var getTextFromHTML = function getTextFromHTML(htmlString) {
10259
+ var p = document.createElement("p");
10260
+ p.innerHTML = htmlString;
10261
+ var text = p.innerText;
10262
+ p.remove();
10263
+ return text;
10264
+ };
10265
+
10266
+ var generateRandomString = (function () {
10267
+ return (Math.random() + 1).toString(36).substring(7);
10268
+ });
10269
+
10270
+ var amplitudeClient = amplitude.getInstance();
10271
+
10272
+ var USER_URL$2 = "/admin/user";
10273
+ var CREATE_USER_URL = "/admin/create-user";
10274
+ var TITLE$a = "User list";
10275
+ var HOMEPAGE_TEACHER$1 = "/home";
10276
+ var HOMEPAGE_STUDENT$1 = "/home";
10277
+ var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
10278
+ var HOMEPAGE_PARENT$1 = "/parent";
10279
+ var HOMEPAGE_DISTRICT$1 = "/admin/schools";
10280
+ var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
10281
+
10282
+ var useUserList = function useUserList() {
10283
+ var history = useHistory();
10284
+ var query = new URLSearchParams(location.search);
10285
+ var queryName = query.get("query");
10286
+ var userList = useSelector(function (state) {
10287
+ return state.users.userList;
10288
+ });
10289
+ var totalItems = useSelector(function (state) {
10290
+ return state.users.totalItems;
10291
+ });
10292
+
10293
+ var _useFilters = useFilters(),
10294
+ filters = _useFilters.filters,
10295
+ changeFilters = _useFilters.changeFilters;
10296
+
10297
+ var _useState = useState(!!queryName ? queryName : ""),
10298
+ fullName = _useState[0],
10299
+ setFullName = _useState[1];
10300
+
10301
+ var isDistrict = window.location.host.includes("-district");
10302
+ var dispatch = useDispatch();
10303
+ var getData = useCallback(function (fullName) {
10304
+ try {
10305
+ var _temp3 = function _temp3() {
10306
+ dispatch(setLoading(false));
10307
+ };
10308
+
10309
+ dispatch(setLoading(true));
10310
+
10311
+ var _temp4 = _catch(function () {
10312
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
10313
+ searchString: fullName
10314
+ })) : get$5(filters)).then(function (res) {
10315
+ var _res$data = res.data,
10316
+ items = _res$data.items,
10317
+ totalItems = _res$data.totalItems;
10318
+
10319
+ for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
10320
+ var user = _step.value;
10321
+ user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
10322
+ }
10323
+
10324
+ dispatch(setUserList({
10325
+ userList: items,
10326
+ totalItems: totalItems
10327
+ }));
10328
+ });
10329
+ }, function (err) {
10330
+ var _err$response, _err$response$data;
10331
+
10332
+ dispatch(setAlert({
10333
+ type: "danger",
10334
+ 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
10335
+ }));
10336
+ });
10337
+
10338
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
10339
+ } catch (e) {
10340
+ return Promise.reject(e);
10341
+ }
10342
+ }, [dispatch, filters]);
10343
+ useEffect(function () {
10344
+ document.title = TITLE$a;
10345
+ }, []);
10346
+ useEffect(function () {
10347
+ if (!!fullName) {
10348
+ getData(fullName);
10349
+ setFullName(null);
10350
+ } else {
10351
+ getData();
10352
+ }
10353
+ }, [filters]);
10354
+ var removeData = useCallback(function (id) {
10355
+ dispatch(setLoading(true));
10356
+
10357
+ try {
10358
+ dispatch(setModal({
10359
+ isOpen: true,
10360
+ type: "warning",
10361
+ message: "Do you want to remove this user?",
10362
+ onConfirm: function () {
10363
+ try {
10364
+ return Promise.resolve(remove$3(id)).then(function () {
10365
+ dispatch(setAlert({
10366
+ type: "success",
10367
+ message: "Remove user successfully"
10368
+ }));
10369
+ changeFilters({
10370
+ currentPage: 1
10371
+ });
10372
+ });
10373
+ } catch (e) {
10374
+ return Promise.reject(e);
10375
+ }
10376
+ }
10377
+ }));
10378
+ } catch (err) {
10379
+ var _err$response2, _err$response2$data;
10380
+
10381
+ dispatch(setAlert({
10382
+ type: "danger",
10383
+ 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
10384
+ }));
10385
+ }
10386
+
10387
+ dispatch(setLoading(false));
10388
+ }, [filters]);
10389
+
10390
+ var redirectLoginUser = function redirectLoginUser(res) {
10391
+ var _res$data2 = res.data,
10392
+ token = _res$data2.token,
10393
+ id = _res$data2.id,
10394
+ firstName = _res$data2.firstName,
10395
+ lastName = _res$data2.lastName,
10396
+ roles = _res$data2.roles,
10397
+ email = _res$data2.email,
10398
+ profileImageFileName = _res$data2.profileImageFileName;
10399
+ localStorage.setItem(ACCESS_TOKEN, token);
10400
+ localStorage.removeItem(NOTIFICATION_ALERT_KEY);
10401
+ dispatch(setUser({
10402
+ id: id,
10403
+ firstName: firstName,
10404
+ lastName: lastName,
10405
+ roles: roles,
10406
+ email: email,
10407
+ profileImageFileName: profileImageFileName
10408
+ }));
10409
+
10410
+ if (isDistrict) {
10411
+ history.push(HOMEPAGE_DISTRICT$1);
10412
+ } else if (roles.includes("Admin")) {
10413
+ history.push(HOMEPAGE_ADMIN$1);
10414
+ } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
10415
+ history.push(HOMEPAGE_TEACHER$1);
10416
+ } else if (roles.includes("Student")) {
10417
+ history.push(HOMEPAGE_STUDENT$1);
10418
+ } else if (roles.includes("Parent")) {
10419
+ history.push(HOMEPAGE_PARENT$1);
10420
+ } else if (roles.includes("EduTeacher")) {
10421
+ history.push(HOMEPAGE_EDU_TEACHER$1);
10422
+ }
10423
+ };
10405
10424
 
10406
- var setSchoolBlankDayList = createAction("schoolBlankDays/setSchoolBlankDayList");
10425
+ var swicthUser = useCallback(function (id) {
10426
+ try {
10427
+ var _temp7 = function _temp7() {
10428
+ dispatch(setLoading(false));
10429
+ };
10407
10430
 
10408
- var initialState$A = {
10409
- schoolBlankDayList: [],
10410
- totalItems: 0
10411
- };
10412
- var commonReducer$i = createReducer(initialState$A, function (builder) {
10413
- builder.addCase(setSchoolBlankDayList, function (state, action) {
10414
- state.schoolBlankDayList = action.payload.schoolBlankDayList;
10415
- state.totalItems = action.payload.totalItems;
10416
- }).addCase(reset, function (_state, _action) {
10417
- return initialState$A;
10418
- });
10419
- });
10431
+ dispatch(setLoading(true));
10420
10432
 
10421
- var setStudentIdSelectedByTeacher = createAction("navMobile/setStudentIdSelectedByTeacher");
10433
+ var _temp8 = _catch(function () {
10434
+ return Promise.resolve(switchAccountUser(id)).then(function (res) {
10435
+ var data = res.data;
10436
+ dispatch(setModal({
10437
+ isOpen: true,
10438
+ type: "warning",
10439
+ message: "Do you want to impersonate this user?",
10440
+ onConfirm: function () {
10441
+ try {
10442
+ var _temp11 = function _temp11() {
10443
+ dispatch(setLoading(false));
10444
+ };
10422
10445
 
10423
- var initialState$B = {
10424
- studentIdSelectedByTeacher: 0
10425
- };
10426
- var navMobileReducer = createReducer(initialState$B, function (builder) {
10427
- builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10428
- state.studentIdSelectedByTeacher = action.payload;
10429
- }).addCase(reset, function (_state, _action) {
10430
- return initialState$B;
10431
- });
10432
- });
10446
+ dispatch(setLoading(true));
10447
+
10448
+ var _temp12 = _catch(function () {
10449
+ var req = {
10450
+ email: data.email,
10451
+ password: "default",
10452
+ accessToken: data.token
10453
+ };
10454
+ return Promise.resolve(logIn(req)).then(function (res) {
10455
+ localStorage.clear();
10456
+ redirectLoginUser(res);
10457
+ });
10458
+ }, function (err) {
10459
+ var _err$response3, _err$response3$data;
10433
10460
 
10434
- var rootReducer = combineReducers({
10435
- common: commonReducer,
10436
- classes: classReducer,
10437
- conferenceRubrics: conferenceRubricReducer,
10438
- faqs: commonReducer$1,
10439
- skills: commonReducer$2,
10440
- emailTemplate: emailTemplateReducer,
10441
- suggestionBank: suggestionBankReducer,
10442
- learningStrategy: learningStrategyReducer,
10443
- subjects: commonReducer$3,
10444
- learningSupportCategories: commonReducer$4,
10445
- questionBank: questionBankReducer,
10446
- badges: commonReducer$5,
10447
- semester: commonReducer$6,
10448
- goalExamples: commonReducer$8,
10449
- users: commonReducer$9,
10450
- reflections: reflectionReducer,
10451
- reflectionResults: reflectionReducer$1,
10452
- feedbacks: commonReducer$a,
10453
- assessments: commonReducer$b,
10454
- questionByCategory: questionCategoryReducer,
10455
- mailCategory: questionBankReducer$1,
10456
- questionCate: questionCateReducer,
10457
- notification: questionBankReducer$2,
10458
- myStudent: commonReducer$c,
10459
- assignments: commonReducer$7,
10460
- assistants: assistantReducer,
10461
- sesstionTemplates: sessionTemplateReducer,
10462
- sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10463
- tutorialScreens: tutorialScreenReducer,
10464
- customAlerts: commonReducer$d,
10465
- gallery: commonReducer$e,
10466
- dashboard: dashboardReducer,
10467
- sessionPlayer: sessionPlayerReducer,
10468
- dataPlayer: dataPlayer,
10469
- certificate: commonReducer$f,
10470
- improveMyClass: commonReducer$g,
10471
- widget: widgetReducer,
10472
- bandScores: commonReducer$h,
10473
- schoolBlankDays: commonReducer$i,
10474
- navMobileReducer: navMobileReducer
10475
- });
10461
+ setAlert({
10462
+ type: "danger",
10463
+ 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
10464
+ });
10465
+ });
10476
10466
 
10477
- var store = configureStore({
10478
- reducer: rootReducer,
10479
- middleware: function middleware(getDefaultMiddleware) {
10480
- return getDefaultMiddleware({
10481
- serializableCheck: false
10482
- }).concat(logger);
10483
- }
10484
- });
10467
+ return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
10468
+ } catch (e) {
10469
+ return Promise.reject(e);
10470
+ }
10471
+ }
10472
+ }));
10473
+ });
10474
+ }, function (err) {
10475
+ var _err$response4, _err$response4$data;
10485
10476
 
10486
- var isInViewport = function isInViewport(el) {
10487
- var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10488
- return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10489
- };
10477
+ dispatch(setAlert({
10478
+ type: "danger",
10479
+ 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
10480
+ }));
10481
+ });
10490
10482
 
10491
- var debounce = function debounce(callback, wait) {
10492
- var timeout = null;
10493
- return function () {
10494
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10495
- args[_key] = arguments[_key];
10483
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
10484
+ } catch (e) {
10485
+ return Promise.reject(e);
10496
10486
  }
10487
+ }, [filters]);
10497
10488
 
10498
- var next = function next() {
10499
- return callback.apply(void 0, args);
10500
- };
10489
+ var reDirectDetailPage = function reDirectDetailPage(id) {
10490
+ var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
10491
+ history.push(url);
10492
+ };
10501
10493
 
10502
- clearTimeout(timeout);
10503
- timeout = setTimeout(next, wait);
10494
+ return {
10495
+ userList: userList,
10496
+ totalItems: totalItems,
10497
+ filters: filters,
10498
+ queryName: queryName,
10499
+ getData: getData,
10500
+ removeData: removeData,
10501
+ changeFilters: changeFilters,
10502
+ reDirectDetailPage: reDirectDetailPage,
10503
+ swicthUser: swicthUser
10504
10504
  };
10505
10505
  };
10506
10506
 
10507
- var getTextFromHTML = function getTextFromHTML(htmlString) {
10508
- var p = document.createElement("p");
10509
- p.innerHTML = htmlString;
10510
- var text = p.innerText;
10511
- p.remove();
10512
- return text;
10513
- };
10507
+ var header$4 = "User";
10514
10508
 
10515
- var generateRandomString = (function () {
10516
- return (Math.random() + 1).toString(36).substring(7);
10517
- });
10509
+ var UserList = function UserList() {
10510
+ var _useUserList = useUserList(),
10511
+ queryName = _useUserList.queryName,
10512
+ userList = _useUserList.userList,
10513
+ totalItems = _useUserList.totalItems,
10514
+ filters = _useUserList.filters,
10515
+ removeData = _useUserList.removeData,
10516
+ changeFilters = _useUserList.changeFilters,
10517
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
10518
+ swicthUser = _useUserList.swicthUser;
10518
10519
 
10519
- var amplitudeClient = amplitude.getInstance();
10520
+ var _useTranslation = useTranslation(),
10521
+ t = _useTranslation.t;
10522
+
10523
+ return React.createElement("div", {
10524
+ className: "fadeIn animated"
10525
+ }, React.createElement("h5", {
10526
+ className: "mb-2"
10527
+ }, t("" + header$4)), React.createElement(Row, {
10528
+ className: "my-2"
10529
+ }, React.createElement(Col, {
10530
+ md: 8
10531
+ }, React.createElement(SearchBoxContainer, {
10532
+ text: t("create_user"),
10533
+ onClick: function onClick() {
10534
+ return reDirectDetailPage();
10535
+ },
10536
+ initValue: !!queryName ? queryName : "",
10537
+ onSearch: function onSearch(searchString) {
10538
+ return changeFilters({
10539
+ searchString: searchString
10540
+ });
10541
+ },
10542
+ placeholder: t("type_something_to_search_by_user_name")
10543
+ })), React.createElement(Col, {
10544
+ md: 4,
10545
+ className: "d-flex justify-content-end align-items-center"
10546
+ }, t("total_of_users"), " : ", totalItems)), React.createElement(Row, {
10547
+ className: "mb-2"
10548
+ }, React.createElement(Col, {
10549
+ md: 12
10550
+ }, userList && userList.length > 0 ? React.createElement("div", null, React.createElement(Table, {
10551
+ bordered: true,
10552
+ hover: true,
10553
+ striped: true,
10554
+ responsive: true,
10555
+ size: "sm"
10556
+ }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
10557
+ className: "align-top"
10558
+ }, t("name")), React.createElement("th", {
10559
+ className: "align-top"
10560
+ }, t("email")), React.createElement("th", {
10561
+ className: "align-top"
10562
+ }, t("age")), React.createElement("th", {
10563
+ className: "align-top"
10564
+ }, t("role")), React.createElement("th", {
10565
+ className: "align-top"
10566
+ }, t("active_status")), React.createElement("th", {
10567
+ className: "align-top"
10568
+ }, t("created_time")), React.createElement("th", {
10569
+ className: "text-center"
10570
+ }, t("action")))), React.createElement("tbody", null, userList.map(function (record) {
10571
+ return React.createElement("tr", {
10572
+ key: record.id
10573
+ }, React.createElement("td", {
10574
+ className: "align-middle"
10575
+ }, React.createElement(LinkEditButton, {
10576
+ label: "" + record.fullName,
10577
+ onClick: function onClick() {
10578
+ return reDirectDetailPage(record.id);
10579
+ }
10580
+ })), React.createElement("td", {
10581
+ className: "align-middle"
10582
+ }, record.email), React.createElement("td", {
10583
+ className: "align-middle"
10584
+ }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React.createElement("td", {
10585
+ className: "align-middle"
10586
+ }, !!record.roles && record.roles.join(", ")), React.createElement("td", {
10587
+ className: "align-middle"
10588
+ }, record.isActive ? t("active") : t("inactive")), React.createElement("td", {
10589
+ className: "align-middle"
10590
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React.createElement("td", {
10591
+ className: "text-center align-middle"
10592
+ }, React.createElement(FaUsersCog, {
10593
+ style: {
10594
+ fontSize: "18px",
10595
+ marginRight: "10px",
10596
+ cursor: "pointer"
10597
+ },
10598
+ onClick: function onClick() {
10599
+ return swicthUser(record.id);
10600
+ }
10601
+ }), React.createElement(DeleteButtonIcon, {
10602
+ onClick: function onClick() {
10603
+ return removeData(record.id);
10604
+ }
10605
+ })));
10606
+ })))) : React.createElement(EmptyDataAlert, {
10607
+ label: t("user")
10608
+ })), React.createElement(Col, {
10609
+ md: 12
10610
+ }, React.createElement(CustomPagination, {
10611
+ filters: filters,
10612
+ totalRecordCount: totalItems,
10613
+ changePageSize: function changePageSize(pageSize) {
10614
+ return changeFilters({
10615
+ pageSize: pageSize
10616
+ });
10617
+ },
10618
+ changePage: function changePage(currentPage) {
10619
+ return changeFilters({
10620
+ currentPage: currentPage
10621
+ });
10622
+ }
10623
+ }))));
10624
+ };
10625
+
10626
+ var amplitudeClient$1 = amplitude.getInstance();
10520
10627
 
10521
- export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY, Images, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserDetail, UserList, addTab, amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getFileUrl, getInfo, getTextFromHTML, i18n, initAmplitude, isInViewport, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
10628
+ export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, Images, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserDetail, UserList, addTab, amplitudeClient$1 as amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getFileUrl, getInfo, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
10522
10629
  //# sourceMappingURL=index.modern.js.map