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