mario-core 2.9.63-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.
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";
@@ -50,7 +50,6 @@ var cancel = "Cancel";
50
50
  var hey = "Hey";
51
51
  var readiness_to_learn = "Readiness to Learn";
52
52
  var high_impact_learning_strategies = "High Impact Learning Strategies";
53
- var check_in = "Check In";
54
53
  var reflection = "Reflection";
55
54
  var conferences = "Conferences";
56
55
  var safety = "Safety";
@@ -73,7 +72,6 @@ var tooltip_content_safety_chart = "The visual represenation of all the response
73
72
  var tooltip_content_student_by_age_chart = "The specific representation of students by gender and grade level at your school.";
74
73
  var tooltip_content_students_by_designation = "The composite representation of students by individual grades in your school with specific designations.";
75
74
  var total_1_to_1 = "Total 1-to-1";
76
- var total_check_in = "Total Check In";
77
75
  var total_1_to_1_time = "Total 1-to-1 Time";
78
76
  var total_conferences = "Total Conferences";
79
77
  var total_conferences_time = "Total Conferences Time";
@@ -103,14 +101,12 @@ var current_password = "Current password";
103
101
  var new_password = "New password";
104
102
  var confirm_password = "Confirm password";
105
103
  var save = "Save";
106
- var type_something_to_search_question = "Type something to search question";
107
- var type_something_to_search_category = "Type something to search category";
104
+ var type_something_to_search_question = "Type something to Search question";
108
105
  var total_of_questions = "Total of questions";
109
106
  var create_question = "Create question";
110
107
  var edit_question = "Edit question";
111
108
  var question_type = "Question Type";
112
109
  var category = "Category";
113
- var sub_category = "Sub Category";
114
110
  var is_default_question_for_one_to_one = "Is default question for one-to-one";
115
111
  var default_question_for_students_or_teachers = "Default question for students or teachers";
116
112
  var is_default_question_general_class = "Is default question general class";
@@ -221,7 +217,6 @@ var edit_destination = "Edit Destination";
221
217
  var confirm = "Confirm";
222
218
  var hello = "Hello";
223
219
  var todays_1_1 = "Today’s 1-1";
224
- var todays_check_in = "Today’s Check In";
225
220
  var todays_Conferences = "Today’s Conferences";
226
221
  var next_meeting = "Next Meeting";
227
222
  var next_conference = "Next Conference";
@@ -250,7 +245,6 @@ var import_csv = "Import CSV";
250
245
  var add_new = "Add New";
251
246
  var show_only_work_as_assistant = "Show only work as assistant";
252
247
  var last_1_to_1 = "Last 1-TO-1";
253
- var last_check_in = "Last Check In";
254
248
  var last_conference = "Last conference";
255
249
  var total_time = "Total time";
256
250
  var assistant_name = "Assistant Name";
@@ -267,7 +261,6 @@ var after = "After";
267
261
  var pick_a_date = "Pick a date";
268
262
  var apply = "Apply";
269
263
  var new_1_to_1 = "New 1-to-1";
270
- var new_check_in = "New Check In";
271
264
  var do_you_want_to_talk_with_teacher = "Do you want to talk with teacher";
272
265
  var start_now = "Start now";
273
266
  var book_for_later = "Book for later";
@@ -278,7 +271,6 @@ var select_question = "Select question";
278
271
  var select_student = "Select student";
279
272
  var select_date_time = "Select Date & Time";
280
273
  var book_1_to_1 = "Book 1-to-1";
281
- var book_new_check_in = "Book new Check In";
282
274
  var schedule = "Schedule";
283
275
  var sessions_are_booked_as_10_minute_slots = "Sessions are booked as 10 minute slots";
284
276
  var does_not_reoccur = "Does not reoccur";
@@ -286,15 +278,13 @@ var time_must_be_between_8_am_and_6_pm = "Time must be between 8 AM and 6 PM";
286
278
  var from = "From";
287
279
  var to = "To";
288
280
  var show_only_favorites = "Show only favorites";
289
- var show_only_conversation = "Show 1-1 conversation only";
290
281
  var duration = "Duration";
291
282
  var favorite = "Favorite";
292
283
  var open = "Open";
293
284
  var no_data = "No Data";
294
285
  var schedule_detail = "Schedule Detail";
295
286
  var are_you_sure_you_want_to_cancel_this_schedule = "Are you sure you want to Cancel this schedule?";
296
- var completed_1_to_1 = "Completed 1-1 Conversation";
297
- var completed_check_in = "Completed Check In";
287
+ var completed_1_to_1 = "Completed 1-to-1";
298
288
  var done = "Done";
299
289
  var what_do_you_want_to_talk_about = "What do you want to talk about?";
300
290
  var session_type = "Session Type";
@@ -415,7 +405,6 @@ var student_request = "Student Request";
415
405
  var overview = "Overview";
416
406
  var plp = "PLP";
417
407
  var my_student_1_to_1 = "My Student 1-to-1";
418
- var my_student_check_in = "My Student Check In";
419
408
  var my_student_conference = "My Student Conference";
420
409
  var received_date = "Received Date";
421
410
  var class_impact_score = "Class Impact Score";
@@ -605,7 +594,6 @@ var lang_us = {
605
594
  readiness_to_learn: readiness_to_learn,
606
595
  high_impact_learning_strategies: high_impact_learning_strategies,
607
596
  "1_to_1": "1 To 1",
608
- check_in: check_in,
609
597
  reflection: reflection,
610
598
  conferences: conferences,
611
599
  safety: safety,
@@ -628,7 +616,6 @@ var lang_us = {
628
616
  tooltip_content_student_by_age_chart: tooltip_content_student_by_age_chart,
629
617
  tooltip_content_students_by_designation: tooltip_content_students_by_designation,
630
618
  total_1_to_1: total_1_to_1,
631
- total_check_in: total_check_in,
632
619
  total_1_to_1_time: total_1_to_1_time,
633
620
  total_conferences: total_conferences,
634
621
  total_conferences_time: total_conferences_time,
@@ -660,13 +647,11 @@ var lang_us = {
660
647
  confirm_password: confirm_password,
661
648
  save: save,
662
649
  type_something_to_search_question: type_something_to_search_question,
663
- type_something_to_search_category: type_something_to_search_category,
664
650
  total_of_questions: total_of_questions,
665
651
  create_question: create_question,
666
652
  edit_question: edit_question,
667
653
  question_type: question_type,
668
654
  category: category,
669
- sub_category: sub_category,
670
655
  "Question text": "Question text",
671
656
  is_default_question_for_one_to_one: is_default_question_for_one_to_one,
672
657
  default_question_for_students_or_teachers: default_question_for_students_or_teachers,
@@ -778,7 +763,6 @@ var lang_us = {
778
763
  confirm: confirm,
779
764
  hello: hello,
780
765
  todays_1_1: todays_1_1,
781
- todays_check_in: todays_check_in,
782
766
  todays_Conferences: todays_Conferences,
783
767
  next_meeting: next_meeting,
784
768
  next_conference: next_conference,
@@ -809,7 +793,6 @@ var lang_us = {
809
793
  add_new: add_new,
810
794
  show_only_work_as_assistant: show_only_work_as_assistant,
811
795
  last_1_to_1: last_1_to_1,
812
- last_check_in: last_check_in,
813
796
  last_conference: last_conference,
814
797
  total_time: total_time,
815
798
  assistant_name: assistant_name,
@@ -826,7 +809,6 @@ var lang_us = {
826
809
  pick_a_date: pick_a_date,
827
810
  apply: apply,
828
811
  new_1_to_1: new_1_to_1,
829
- new_check_in: new_check_in,
830
812
  do_you_want_to_talk_with_teacher: do_you_want_to_talk_with_teacher,
831
813
  start_now: start_now,
832
814
  book_for_later: book_for_later,
@@ -837,7 +819,6 @@ var lang_us = {
837
819
  select_student: select_student,
838
820
  select_date_time: select_date_time,
839
821
  book_1_to_1: book_1_to_1,
840
- book_new_check_in: book_new_check_in,
841
822
  schedule: schedule,
842
823
  sessions_are_booked_as_10_minute_slots: sessions_are_booked_as_10_minute_slots,
843
824
  does_not_reoccur: does_not_reoccur,
@@ -845,7 +826,6 @@ var lang_us = {
845
826
  from: from,
846
827
  to: to,
847
828
  show_only_favorites: show_only_favorites,
848
- show_only_conversation: show_only_conversation,
849
829
  duration: duration,
850
830
  favorite: favorite,
851
831
  open: open,
@@ -853,7 +833,6 @@ var lang_us = {
853
833
  schedule_detail: schedule_detail,
854
834
  are_you_sure_you_want_to_cancel_this_schedule: are_you_sure_you_want_to_cancel_this_schedule,
855
835
  completed_1_to_1: completed_1_to_1,
856
- completed_check_in: completed_check_in,
857
836
  done: done,
858
837
  what_do_you_want_to_talk_about: what_do_you_want_to_talk_about,
859
838
  session_type: session_type,
@@ -975,7 +954,6 @@ var lang_us = {
975
954
  overview: overview,
976
955
  plp: plp,
977
956
  my_student_1_to_1: my_student_1_to_1,
978
- my_student_check_in: my_student_check_in,
979
957
  my_student_conference: my_student_conference,
980
958
  received_date: received_date,
981
959
  class_impact_score: class_impact_score,
@@ -1167,7 +1145,6 @@ var cancel$1 = "Cancel";
1167
1145
  var hey$1 = "Hey";
1168
1146
  var readiness_to_learn$1 = "Readiness to Learn";
1169
1147
  var high_impact_learning_strategies$1 = "High Impact Learning Strategies";
1170
- var check_in$1 = "Check In";
1171
1148
  var reflection$1 = "Reflection";
1172
1149
  var conferences$1 = "Conferences";
1173
1150
  var safety$1 = "Safety";
@@ -1190,7 +1167,6 @@ var tooltip_content_safety_chart$1 = "The visual represenation of all the respon
1190
1167
  var tooltip_content_student_by_age_chart$1 = "The specific representation of students by gender and grade level at your school.";
1191
1168
  var tooltip_content_students_by_designation$1 = "The composite representation of students by individual grades in your school with specific designations.";
1192
1169
  var total_1_to_1$1 = "Total 1-to-1";
1193
- var total_check_in$1 = "Total Check In";
1194
1170
  var total_1_to_1_time$1 = "Total 1-to-1 Time";
1195
1171
  var total_conferences$1 = "Total Conferences";
1196
1172
  var total_conferences_time$1 = "Total Conferences Time";
@@ -1221,14 +1197,12 @@ var current_password$1 = "Current password";
1221
1197
  var new_password$1 = "New password";
1222
1198
  var confirm_password$1 = "Confirm password";
1223
1199
  var save$1 = "Save";
1224
- var type_something_to_search_question$1 = "Type something to search question";
1225
- var type_something_to_search_category$1 = "Type something to search category";
1200
+ var type_something_to_search_question$1 = "Type something to Search question";
1226
1201
  var total_of_questions$1 = "Total of questions";
1227
1202
  var create_question$1 = "Create question";
1228
1203
  var edit_question$1 = "Edit question";
1229
1204
  var question_type$1 = "Question Type";
1230
1205
  var category$1 = "Category";
1231
- var sub_category$1 = "Sub Category";
1232
1206
  var question_text = "Question text";
1233
1207
  var is_default_question_for_one_to_one$1 = "Is default question for one-to-one";
1234
1208
  var default_question_for_students_or_teachers$1 = "Default question for students or teachers";
@@ -1331,7 +1305,7 @@ var use_for$1 = "Use for";
1331
1305
  var admin_training$1 = "Admin training";
1332
1306
  var teacher_training$1 = "Teacher training";
1333
1307
  var created_time$1 = "Create time";
1334
- var total_reflections$1 = "Total Reflections";
1308
+ var total_reflections$1 = "Total Reflections:";
1335
1309
  var student_training$1 = "Student training";
1336
1310
  var create_destination$1 = "Create Destination";
1337
1311
  var total_of_designation$1 = "Total of Designation";
@@ -1340,7 +1314,6 @@ var edit_destination$1 = "Edit Destination";
1340
1314
  var confirm$1 = "Confirm";
1341
1315
  var hello$1 = "Hello";
1342
1316
  var todays_1_1$1 = "Today’s 1-1";
1343
- var todays_check_in$1 = "Today’s Check In";
1344
1317
  var todays_Conferences$1 = "Today’s Conferences";
1345
1318
  var next_meeting$1 = "Next Meeting";
1346
1319
  var next_conference$1 = "Next Conference";
@@ -1369,7 +1342,6 @@ var import_csv$1 = "Import CSV";
1369
1342
  var add_new$1 = "Add New";
1370
1343
  var show_only_work_as_assistant$1 = "Show only work as assistant";
1371
1344
  var last_1_to_1$1 = "Last 1-TO-1";
1372
- var last_check_in$1 = "Last Check In";
1373
1345
  var last_conference$1 = "Last conference";
1374
1346
  var total_time$1 = "Total time";
1375
1347
  var assistant_name$1 = "Assistant Name";
@@ -1386,7 +1358,6 @@ var after$1 = "After";
1386
1358
  var pick_a_date$1 = "Pick a date";
1387
1359
  var apply$1 = "Apply";
1388
1360
  var new_1_to_1$1 = "New 1-to-1";
1389
- var new_check_in$1 = "New Check In";
1390
1361
  var do_you_want_to_talk_with_teacher$1 = "Do you want to talk with teacher";
1391
1362
  var start_now$1 = "Start now";
1392
1363
  var book_for_later$1 = "Book for later";
@@ -1397,7 +1368,6 @@ var select_question$1 = "Select question";
1397
1368
  var select_student$1 = "Select student";
1398
1369
  var select_date_time$1 = "Select Date & Time";
1399
1370
  var book_1_to_1$1 = "Book 1-to-1";
1400
- var book_new_check_in$1 = "Book new Check In";
1401
1371
  var schedule$1 = "Schedule";
1402
1372
  var sessions_are_booked_as_10_minute_slots$1 = "Sessions are booked as 10 minute slots";
1403
1373
  var does_not_reoccur$1 = "Does not reoccur";
@@ -1405,15 +1375,13 @@ var time_must_be_between_8_am_and_6_pm$1 = "Time must be between 8 AM and 6 PM";
1405
1375
  var from$1 = "From";
1406
1376
  var to$1 = "To";
1407
1377
  var show_only_favorites$1 = "Show only favorites";
1408
- var show_only_conversation$1 = "Show 1-1 conversation only";
1409
1378
  var duration$1 = "Duration";
1410
1379
  var favorite$1 = "Favorite";
1411
1380
  var open$1 = "Open";
1412
1381
  var no_data$1 = "No Data";
1413
1382
  var schedule_detail$1 = "Schedule Detail";
1414
1383
  var are_you_sure_you_want_to_cancel_this_schedule$1 = "Are you sure you want to Cancel this schedule?";
1415
- var completed_1_to_1$1 = "Completed 1-1 Conversation";
1416
- var completed_check_in$1 = "Completed Check In";
1384
+ var completed_1_to_1$1 = "Completed 1-to-1";
1417
1385
  var done$1 = "Done";
1418
1386
  var what_do_you_want_to_talk_about$1 = "What do you want to talk about?";
1419
1387
  var session_type$1 = "Session Type";
@@ -1534,7 +1502,6 @@ var student_request$1 = "Student Request";
1534
1502
  var overview$1 = "Overview";
1535
1503
  var plp$1 = "PLP";
1536
1504
  var my_student_1_to_1$1 = "My Student 1-to-1";
1537
- var my_student_check_in$1 = "My Student Check In";
1538
1505
  var my_student_conference$1 = "My Student Conference";
1539
1506
  var received_date$1 = "Received Date";
1540
1507
  var class_impact_score$1 = "Class Impact Score";
@@ -1724,7 +1691,6 @@ var lang_uk = {
1724
1691
  readiness_to_learn: readiness_to_learn$1,
1725
1692
  high_impact_learning_strategies: high_impact_learning_strategies$1,
1726
1693
  "1_to_1": "1 to 1",
1727
- check_in: check_in$1,
1728
1694
  reflection: reflection$1,
1729
1695
  conferences: conferences$1,
1730
1696
  safety: safety$1,
@@ -1747,7 +1713,6 @@ var lang_uk = {
1747
1713
  tooltip_content_student_by_age_chart: tooltip_content_student_by_age_chart$1,
1748
1714
  tooltip_content_students_by_designation: tooltip_content_students_by_designation$1,
1749
1715
  total_1_to_1: total_1_to_1$1,
1750
- total_check_in: total_check_in$1,
1751
1716
  total_1_to_1_time: total_1_to_1_time$1,
1752
1717
  total_conferences: total_conferences$1,
1753
1718
  total_conferences_time: total_conferences_time$1,
@@ -1779,13 +1744,11 @@ var lang_uk = {
1779
1744
  confirm_password: confirm_password$1,
1780
1745
  save: save$1,
1781
1746
  type_something_to_search_question: type_something_to_search_question$1,
1782
- type_something_to_search_category: type_something_to_search_category$1,
1783
1747
  total_of_questions: total_of_questions$1,
1784
1748
  create_question: create_question$1,
1785
1749
  edit_question: edit_question$1,
1786
1750
  question_type: question_type$1,
1787
1751
  category: category$1,
1788
- sub_category: sub_category$1,
1789
1752
  question_text: question_text,
1790
1753
  is_default_question_for_one_to_one: is_default_question_for_one_to_one$1,
1791
1754
  default_question_for_students_or_teachers: default_question_for_students_or_teachers$1,
@@ -1897,7 +1860,6 @@ var lang_uk = {
1897
1860
  confirm: confirm$1,
1898
1861
  hello: hello$1,
1899
1862
  todays_1_1: todays_1_1$1,
1900
- todays_check_in: todays_check_in$1,
1901
1863
  todays_Conferences: todays_Conferences$1,
1902
1864
  next_meeting: next_meeting$1,
1903
1865
  next_conference: next_conference$1,
@@ -1928,7 +1890,6 @@ var lang_uk = {
1928
1890
  add_new: add_new$1,
1929
1891
  show_only_work_as_assistant: show_only_work_as_assistant$1,
1930
1892
  last_1_to_1: last_1_to_1$1,
1931
- last_check_in: last_check_in$1,
1932
1893
  last_conference: last_conference$1,
1933
1894
  total_time: total_time$1,
1934
1895
  assistant_name: assistant_name$1,
@@ -1945,7 +1906,6 @@ var lang_uk = {
1945
1906
  pick_a_date: pick_a_date$1,
1946
1907
  apply: apply$1,
1947
1908
  new_1_to_1: new_1_to_1$1,
1948
- new_check_in: new_check_in$1,
1949
1909
  do_you_want_to_talk_with_teacher: do_you_want_to_talk_with_teacher$1,
1950
1910
  start_now: start_now$1,
1951
1911
  book_for_later: book_for_later$1,
@@ -1956,7 +1916,6 @@ var lang_uk = {
1956
1916
  select_student: select_student$1,
1957
1917
  select_date_time: select_date_time$1,
1958
1918
  book_1_to_1: book_1_to_1$1,
1959
- book_new_check_in: book_new_check_in$1,
1960
1919
  schedule: schedule$1,
1961
1920
  sessions_are_booked_as_10_minute_slots: sessions_are_booked_as_10_minute_slots$1,
1962
1921
  does_not_reoccur: does_not_reoccur$1,
@@ -1964,7 +1923,6 @@ var lang_uk = {
1964
1923
  from: from$1,
1965
1924
  to: to$1,
1966
1925
  show_only_favorites: show_only_favorites$1,
1967
- show_only_conversation: show_only_conversation$1,
1968
1926
  duration: duration$1,
1969
1927
  favorite: favorite$1,
1970
1928
  open: open$1,
@@ -1972,7 +1930,6 @@ var lang_uk = {
1972
1930
  schedule_detail: schedule_detail$1,
1973
1931
  are_you_sure_you_want_to_cancel_this_schedule: are_you_sure_you_want_to_cancel_this_schedule$1,
1974
1932
  completed_1_to_1: completed_1_to_1$1,
1975
- completed_check_in: completed_check_in$1,
1976
1933
  done: done$1,
1977
1934
  what_do_you_want_to_talk_about: what_do_you_want_to_talk_about$1,
1978
1935
  session_type: session_type$1,
@@ -2094,7 +2051,6 @@ var lang_uk = {
2094
2051
  overview: overview$1,
2095
2052
  plp: plp$1,
2096
2053
  my_student_1_to_1: my_student_1_to_1$1,
2097
- my_student_check_in: my_student_check_in$1,
2098
2054
  my_student_conference: my_student_conference$1,
2099
2055
  received_date: received_date$1,
2100
2056
  class_impact_score: class_impact_score$1,
@@ -2448,7 +2404,8 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
2448
2404
 
2449
2405
  var TINY_MCE_API_KEY = "adpshj9swgsscf83gw4gs2f74nx0vicpd5ydka20iqjd7l8r";
2450
2406
  var GOOGLE_RECAPTCHA_KEY = "6LfNtLUaAAAAAL24lbBV11jS-gBtt1mhtxb4NXs0";
2451
- var INIT_AMPLITUDE_KEY = "c617d0950cfdcae12953907273a1920f";
2407
+ var INIT_AMPLITUDE_KEY_PROD = "860fa99c52ae79d98e904b4c862ddaac";
2408
+ var INIT_AMPLITUDE_KEY_STAGE = "c617d0950cfdcae12953907273a1920f";
2452
2409
  var ACCESS_TOKEN = "ACCESS_TOKEN";
2453
2410
  var DEFAULT_PAGE_SIZE_VALUES = [{
2454
2411
  label: "10",
@@ -2491,6 +2448,7 @@ var BASE_URL = function () {
2491
2448
  var url = windowUrl.split("//")[0] + "//" + windowUrl.split("//")[1].split("/")[0];
2492
2449
  return url;
2493
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}$/));
2494
2452
  var QUESTION_TYPES_OPTIONS = [{
2495
2453
  label: "Single choice",
2496
2454
  value: "SingleChoice"
@@ -2500,6 +2458,18 @@ var QUESTION_TYPES_OPTIONS = [{
2500
2458
  }, {
2501
2459
  label: "Text input",
2502
2460
  value: "TextInput"
2461
+ }, {
2462
+ label: "Slider",
2463
+ value: "Slider"
2464
+ }, {
2465
+ label: "Progress bar",
2466
+ value: "ProgressBar"
2467
+ }, {
2468
+ label: "Star rating",
2469
+ value: "StarRating"
2470
+ }, {
2471
+ label: "Text input with sub questions",
2472
+ value: "TextInputWithSuggestions"
2503
2473
  }, {
2504
2474
  label: "Emotional",
2505
2475
  value: "Emotional"
@@ -2788,7 +2758,7 @@ var useLogin = function useLogin() {
2788
2758
  }));
2789
2759
 
2790
2760
  if (data !== null && data !== void 0 && data.email && !roles.includes("Admin")) {
2791
- amplitude.getInstance().init(INIT_AMPLITUDE_KEY, data.email, {
2761
+ amplitude.getInstance().init(!isLocalhost ? INIT_AMPLITUDE_KEY_PROD : INIT_AMPLITUDE_KEY_STAGE, data.email, {
2792
2762
  includeReferrer: false,
2793
2763
  includeUtm: false
2794
2764
  });
@@ -3901,7 +3871,7 @@ var TheSidebar = function TheSidebar(_ref) {
3901
3871
  className: "" + styles["sidebar-logout"]
3902
3872
  }), React__default.createElement("p", {
3903
3873
  onClick: signOut
3904
- }, "Log out 123")));
3874
+ }, "Log out")));
3905
3875
  };
3906
3876
 
3907
3877
  var setNotification = toolkit.createAction("notifications/setNotification");
@@ -6672,13 +6642,94 @@ var SkillList = function SkillList() {
6672
6642
  }))));
6673
6643
  };
6674
6644
 
6675
- var setUserList = toolkit.createAction("users/setUserList");
6676
- 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
+ };
6677
6728
 
6678
6729
  var USER_URL$1 = BASE_URL + "/api/user";
6679
6730
  var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
6680
6731
  var ACCOUNT_URL$1 = BASE_URL + "/api/account";
6681
- var EDU_USER_URL = BASE_URL + "/api/User/delete-item-user";
6732
+ var EDU_USER_URL = BASE_URL + "/api/User";
6682
6733
  var get$5 = function get(filter) {
6683
6734
  return api.get("" + USER_URL$1, {
6684
6735
  params: filter
@@ -6694,7 +6745,7 @@ var update$5 = function update(data) {
6694
6745
  return api.put(USER_URL$1 + "/" + data.id, data);
6695
6746
  };
6696
6747
  var remove$3 = function remove(id) {
6697
- return api["delete"](EDU_USER_URL + "/" + id);
6748
+ return api["delete"](EDU_USER_URL + "/delete-item-user/" + id);
6698
6749
  };
6699
6750
  var changePassword = function changePassword(formData) {
6700
6751
  return api.post(CHANGE_PASSWORD, formData);
@@ -6702,32 +6753,58 @@ var changePassword = function changePassword(formData) {
6702
6753
  var forgotChangePassword = function forgotChangePassword(data) {
6703
6754
  return api.post(ACCOUNT_URL$1 + "/forgotchangepassword", data);
6704
6755
  };
6756
+ var switchAccountUser = function switchAccountUser(id) {
6757
+ return api.post(EDU_USER_URL + "/switch-user/" + id);
6758
+ };
6705
6759
 
6706
- var USER_URL$2 = "/admin/user";
6707
- var CREATE_USER_URL = "/admin/create-user";
6708
- 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";
6709
6772
 
6710
- var useUserList = function useUserList() {
6773
+ var useUserDetail = function useUserDetail(id) {
6774
+ var dispatch = reactRedux.useDispatch();
6711
6775
  var history = reactRouterDom.useHistory();
6712
- var query = new URLSearchParams(location.search);
6713
- var queryName = query.get("query");
6714
- var userList = reactRedux.useSelector(function (state) {
6715
- return state.users.userList;
6716
- });
6717
- var totalItems = reactRedux.useSelector(function (state) {
6718
- return state.users.totalItems;
6719
- });
6720
6776
 
6721
- var _useFilters = useFilters(),
6722
- filters = _useFilters.filters,
6723
- changeFilters = _useFilters.changeFilters;
6777
+ var _useState = React.useState(initValue$3),
6778
+ userDetail = _useState[0],
6779
+ setUserDetail = _useState[1];
6724
6780
 
6725
- var _useState = React.useState(!!queryName ? queryName : ""),
6726
- fullName = _useState[0],
6727
- setFullName = _useState[1];
6781
+ var _useState2 = React.useState(null),
6782
+ file = _useState2[0],
6783
+ setFile = _useState2[1];
6728
6784
 
6729
- var dispatch = reactRedux.useDispatch();
6730
- 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 () {
6731
6808
  try {
6732
6809
  var _temp3 = function _temp3() {
6733
6810
  dispatch(setLoading(false));
@@ -6736,22 +6813,14 @@ var useUserList = function useUserList() {
6736
6813
  dispatch(setLoading(true));
6737
6814
 
6738
6815
  var _temp4 = _catch(function () {
6739
- return Promise.resolve(fullName ? get$5(_extends({}, filters, {
6740
- searchString: fullName
6741
- })) : get$5(filters)).then(function (res) {
6742
- var _res$data = res.data,
6743
- items = _res$data.items,
6744
- totalItems = _res$data.totalItems;
6745
-
6746
- for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
6747
- var user = _step.value;
6748
- user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
6749
- }
6816
+ return Promise.resolve(getById$3(id)).then(function (res) {
6817
+ var _res$data;
6750
6818
 
6751
- dispatch(setUserList({
6752
- userList: items,
6753
- 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
6754
6822
  }));
6823
+ document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
6755
6824
  });
6756
6825
  }, function (err) {
6757
6826
  var _err$response, _err$response$data;
@@ -6766,458 +6835,47 @@ var useUserList = function useUserList() {
6766
6835
  } catch (e) {
6767
6836
  return Promise.reject(e);
6768
6837
  }
6769
- }, [dispatch, filters]);
6770
- React.useEffect(function () {
6771
- 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);
6772
6841
  }, []);
6773
- React.useEffect(function () {
6774
- if (!!fullName) {
6775
- getData(fullName);
6776
- setFullName(null);
6777
- } else {
6778
- getData();
6779
- }
6780
- }, [filters]);
6781
- var removeData = React.useCallback(function (id) {
6782
- dispatch(setLoading(true));
6783
-
6842
+ var confirmData = React.useCallback(function (data) {
6784
6843
  try {
6785
- dispatch(setModal({
6786
- isOpen: true,
6787
- type: "warning",
6788
- message: "Do you want to remove this user?",
6789
- onConfirm: function () {
6790
- try {
6791
- return Promise.resolve(remove$3(id)).then(function () {
6792
- dispatch(setAlert({
6793
- type: "success",
6794
- message: "Remove user successfully"
6795
- }));
6796
- changeFilters({
6797
- currentPage: 1
6844
+ var _temp9 = function _temp9() {
6845
+ dispatch(setLoading(false));
6846
+ };
6847
+
6848
+ dispatch(setLoading(true));
6849
+
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);
6798
6858
  });
6799
- });
6800
- } catch (e) {
6801
- return Promise.reject(e);
6802
- }
6803
- }
6804
- }));
6805
- } catch (err) {
6806
- var _err$response2, _err$response2$data;
6859
+ }
6807
6860
 
6808
- dispatch(setAlert({
6809
- type: "danger",
6810
- 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
6811
- }));
6812
- }
6861
+ if (!id) {
6862
+ alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
6863
+ }
6813
6864
 
6814
- dispatch(setLoading(false));
6815
- }, [filters]);
6865
+ dispatch(setAlert({
6866
+ type: "success",
6867
+ message: (!!id ? "Update" : "Create") + " user successfully"
6868
+ }));
6869
+ });
6870
+ }
6816
6871
 
6817
- var reDirectDetailPage = function reDirectDetailPage(id) {
6818
- var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
6819
- history.push(url);
6820
- };
6821
-
6822
- return {
6823
- userList: userList,
6824
- totalItems: totalItems,
6825
- filters: filters,
6826
- queryName: queryName,
6827
- getData: getData,
6828
- removeData: removeData,
6829
- changeFilters: changeFilters,
6830
- reDirectDetailPage: reDirectDetailPage
6831
- };
6832
- };
6833
-
6834
- var SearchBox = function SearchBox(_ref) {
6835
- var initValue = _ref.initValue,
6836
- onSearch = _ref.onSearch,
6837
- placeholder = _ref.placeholder,
6838
- className = _ref.className,
6839
- style = _ref.style;
6840
-
6841
- var _useState = React.useState(initValue),
6842
- searchString = _useState[0],
6843
- setSearchString = _useState[1];
6844
-
6845
- React.useEffect(function () {
6846
- setSearchString(initValue);
6847
- }, [initValue]);
6848
- var onKeyUp = React.useCallback(function (e) {
6849
- e.key === "Enter" && onSearch(searchString);
6850
- }, [searchString, onSearch]);
6851
- return React__default.createElement(reactstrap.Input, {
6852
- placeholder: placeholder,
6853
- value: searchString,
6854
- onChange: function onChange(e) {
6855
- return setSearchString(e.target.value);
6856
- },
6857
- onKeyUp: onKeyUp,
6858
- className: className,
6859
- style: style
6860
- });
6861
- };
6862
-
6863
- SearchBox.defaultProps = {
6864
- placeholder: "Type something to search",
6865
- className: "",
6866
- style: {}
6867
- };
6868
- var SearchBox$1 = React.memo(SearchBox);
6869
-
6870
- var searchInputStyle = {
6871
- height: 38
6872
- };
6873
-
6874
- var SearchBoxContainer = function SearchBoxContainer(_ref) {
6875
- var text = _ref.text,
6876
- initValue = _ref.initValue,
6877
- onClick = _ref.onClick,
6878
- onSearch = _ref.onSearch,
6879
- placeholder = _ref.placeholder;
6880
- return React__default.createElement("div", {
6881
- className: "d-flex align-items-center"
6882
- }, React__default.createElement("div", null, React__default.createElement(AddButton, {
6883
- text: text,
6884
- onClick: onClick
6885
- })), React__default.createElement("div", {
6886
- className: "flex-grow-1 ml-2"
6887
- }, React__default.createElement(SearchBox$1, {
6888
- initValue: initValue,
6889
- onSearch: onSearch,
6890
- placeholder: placeholder,
6891
- style: searchInputStyle
6892
- })));
6893
- };
6894
-
6895
- SearchBoxContainer.defaultProps = {
6896
- placeholder: "Type something to search"
6897
- };
6898
-
6899
- var utcToLocalTime = (function (time, FORMAT) {
6900
- if (time === DATE_MIN_VALUE) return "";
6901
-
6902
- try {
6903
- return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
6904
- } catch (_unused) {
6905
- return "";
6906
- }
6907
- });
6908
-
6909
- var header$2 = "User";
6910
-
6911
- var UserList = function UserList() {
6912
- var _useUserList = useUserList(),
6913
- queryName = _useUserList.queryName,
6914
- userList = _useUserList.userList,
6915
- totalItems = _useUserList.totalItems,
6916
- filters = _useUserList.filters,
6917
- removeData = _useUserList.removeData,
6918
- changeFilters = _useUserList.changeFilters,
6919
- reDirectDetailPage = _useUserList.reDirectDetailPage;
6920
-
6921
- var _useTranslation = reactI18next.useTranslation(),
6922
- t = _useTranslation.t;
6923
-
6924
- return React__default.createElement("div", {
6925
- className: "fadeIn animated"
6926
- }, React__default.createElement("h5", {
6927
- className: "mb-2"
6928
- }, t("" + header$2)), React__default.createElement(reactstrap.Row, {
6929
- className: "my-2"
6930
- }, React__default.createElement(reactstrap.Col, {
6931
- md: 8
6932
- }, React__default.createElement(SearchBoxContainer, {
6933
- text: t("create_user"),
6934
- onClick: function onClick() {
6935
- return reDirectDetailPage();
6936
- },
6937
- initValue: !!queryName ? queryName : "",
6938
- onSearch: function onSearch(searchString) {
6939
- return changeFilters({
6940
- searchString: searchString
6941
- });
6942
- },
6943
- placeholder: t("type_something_to_search_by_user_name")
6944
- })), React__default.createElement(reactstrap.Col, {
6945
- md: 4,
6946
- className: "d-flex justify-content-end align-items-center"
6947
- }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
6948
- className: "mb-2"
6949
- }, React__default.createElement(reactstrap.Col, {
6950
- md: 12
6951
- }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
6952
- bordered: true,
6953
- hover: true,
6954
- striped: true,
6955
- responsive: true,
6956
- size: "sm"
6957
- }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
6958
- className: "align-top"
6959
- }, t("name")), React__default.createElement("th", {
6960
- className: "align-top"
6961
- }, t("email")), React__default.createElement("th", {
6962
- className: "align-top"
6963
- }, t("age")), React__default.createElement("th", {
6964
- className: "align-top"
6965
- }, t("role")), React__default.createElement("th", {
6966
- className: "align-top"
6967
- }, t("active_status")), React__default.createElement("th", {
6968
- className: "align-top"
6969
- }, t("created_time")), React__default.createElement("th", {
6970
- className: "text-center"
6971
- }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
6972
- return React__default.createElement("tr", {
6973
- key: record.id
6974
- }, React__default.createElement("td", {
6975
- className: "align-middle"
6976
- }, React__default.createElement(LinkEditButton, {
6977
- label: "" + record.fullName,
6978
- onClick: function onClick() {
6979
- return reDirectDetailPage(record.id);
6980
- }
6981
- })), React__default.createElement("td", {
6982
- className: "align-middle"
6983
- }, record.email), React__default.createElement("td", {
6984
- className: "align-middle"
6985
- }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
6986
- className: "align-middle"
6987
- }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
6988
- className: "align-middle"
6989
- }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
6990
- className: "align-middle"
6991
- }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
6992
- className: "text-center align-middle"
6993
- }, React__default.createElement(DeleteButtonIcon, {
6994
- onClick: function onClick() {
6995
- return removeData(record.id);
6996
- }
6997
- })));
6998
- })))) : React__default.createElement(EmptyDataAlert, {
6999
- label: t("user")
7000
- })), React__default.createElement(reactstrap.Col, {
7001
- md: 12
7002
- }, React__default.createElement(CustomPagination, {
7003
- filters: filters,
7004
- totalRecordCount: totalItems,
7005
- changePageSize: function changePageSize(pageSize) {
7006
- return changeFilters({
7007
- pageSize: pageSize
7008
- });
7009
- },
7010
- changePage: function changePage(currentPage) {
7011
- return changeFilters({
7012
- currentPage: currentPage
7013
- });
7014
- }
7015
- }))));
7016
- };
7017
-
7018
- var MAX_FILE_SIZE = 20097152;
7019
-
7020
- var UploadFileButton = function UploadFileButton(_ref) {
7021
- var fileName = _ref.fileName,
7022
- maxWidth = _ref.maxWidth,
7023
- maxHeight = _ref.maxHeight,
7024
- setFile = _ref.setFile,
7025
- canDelete = _ref.canDelete,
7026
- onDelete = _ref.onDelete,
7027
- isCheckFeedBack = _ref.isCheckFeedBack,
7028
- onAddImage = _ref.onAddImage;
7029
- var dispatch = reactRedux.useDispatch();
7030
-
7031
- var _useState = React.useState(""),
7032
- imagePreviewUrl = _useState[0],
7033
- setImagePreviewUrl = _useState[1];
7034
-
7035
- var imageStyle = {
7036
- maxWidth: maxWidth || "100%",
7037
- maxHeight: maxHeight || "100%"
7038
- };
7039
- var imageSrc = imagePreviewUrl || getFileUrl(fileName);
7040
-
7041
- var handleImageChange = function handleImageChange(e) {
7042
- e.preventDefault();
7043
- var reader = new FileReader();
7044
- var newFile = e.target.files[0];
7045
-
7046
- if (newFile.size > MAX_FILE_SIZE) {
7047
- dispatch(setAlert({
7048
- type: "danger",
7049
- message: "File can't be larger than 2MB"
7050
- }));
7051
- return;
7052
- }
7053
-
7054
- reader.onloadend = function () {
7055
- setFile(newFile);
7056
- setImagePreviewUrl(reader.result);
7057
- };
7058
-
7059
- if (newFile) {
7060
- reader.readAsDataURL(newFile);
7061
- }
7062
-
7063
- !!onAddImage && onAddImage();
7064
- };
7065
-
7066
- var imagePreviewContainer = imagePreviewUrl || fileName ? React__default.createElement("img", {
7067
- style: imageStyle,
7068
- src: imageSrc,
7069
- alt: "image"
7070
- }) : null;
7071
- return React__default.createElement("div", {
7072
- className: "mb-2"
7073
- }, React__default.createElement(reactstrap.Form, {
7074
- className: "mb-2"
7075
- }, React__default.createElement(reactstrap.Input, {
7076
- className: "d-none",
7077
- type: "file",
7078
- id: "uploadFile",
7079
- onChange: handleImageChange,
7080
- accept: "image/*"
7081
- }), React__default.createElement("div", {
7082
- className: "d-flex align-items-center"
7083
- }, React__default.createElement(reactstrap.Label, {
7084
- htmlFor: "uploadFile",
7085
- role: "button",
7086
- tabIndex: 0,
7087
- className: styles["input-file-label"]
7088
- }, isCheckFeedBack == true ? React__default.createElement(md.MdAttachFile, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("i", {
7089
- className: "fa fa-paperclip mr-1",
7090
- "aria-hidden": "true"
7091
- }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React__default.createElement(reactstrap.Button, {
7092
- size: "sm",
7093
- color: "danger",
7094
- className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
7095
- onClick: function onClick() {
7096
- setImagePreviewUrl(null);
7097
- onDelete && onDelete();
7098
- }
7099
- }, React__default.createElement(fa.FaTrashAlt, null)))), imagePreviewContainer);
7100
- };
7101
-
7102
- var initValue$3 = {
7103
- id: "",
7104
- firstName: "",
7105
- lastName: "",
7106
- email: "",
7107
- dateOfBirth: "",
7108
- roles: [],
7109
- isActive: true,
7110
- profileImageFileName: ""
7111
- };
7112
- var USER_LIST_URL = "/admin/user";
7113
- var TITLE$8 = "User detail";
7114
-
7115
- var useUserDetail = function useUserDetail(id) {
7116
- var dispatch = reactRedux.useDispatch();
7117
- var history = reactRouterDom.useHistory();
7118
-
7119
- var _useState = React.useState(initValue$3),
7120
- userDetail = _useState[0],
7121
- setUserDetail = _useState[1];
7122
-
7123
- var _useState2 = React.useState(null),
7124
- file = _useState2[0],
7125
- setFile = _useState2[1];
7126
-
7127
- var _useState3 = React.useState(false),
7128
- edited = _useState3[0],
7129
- setEdited = _useState3[1];
7130
-
7131
- var setEditedTrue = function setEditedTrue() {
7132
- try {
7133
- localStorage.setItem(window.location.href, "true");
7134
- setEdited(true);
7135
- return Promise.resolve();
7136
- } catch (e) {
7137
- return Promise.reject(e);
7138
- }
7139
- };
7140
-
7141
- React.useEffect(function () {
7142
- document.title = TITLE$8;
7143
- setEdited(false);
7144
- if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
7145
- }, []);
7146
- React.useEffect(function () {
7147
- !!id && getData();
7148
- }, [id]);
7149
- var getData = React.useCallback(function () {
7150
- try {
7151
- var _temp3 = function _temp3() {
7152
- dispatch(setLoading(false));
7153
- };
7154
-
7155
- dispatch(setLoading(true));
7156
-
7157
- var _temp4 = _catch(function () {
7158
- return Promise.resolve(getById$3(id)).then(function (res) {
7159
- var _res$data;
7160
-
7161
- setUserDetail(_extends({}, res.data, {
7162
- dateOfBirth: dateFns.format(new Date(res.data.dateOfBirth), DATE_FORMAT),
7163
- roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
7164
- }));
7165
- document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
7166
- });
7167
- }, function (err) {
7168
- var _err$response, _err$response$data;
7169
-
7170
- dispatch(setAlert({
7171
- type: "danger",
7172
- 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
7173
- }));
7174
- });
7175
-
7176
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
7177
- } catch (e) {
7178
- return Promise.reject(e);
7179
- }
7180
- }, [id]);
7181
- var backToList = React.useCallback(function (user) {
7182
- !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
7183
- }, []);
7184
- var confirmData = React.useCallback(function (data) {
7185
- try {
7186
- var _temp9 = function _temp9() {
7187
- dispatch(setLoading(false));
7188
- };
7189
-
7190
- dispatch(setLoading(true));
7191
-
7192
- var _temp10 = _catch(function () {
7193
- function _temp6() {
7194
- var next = !!id ? update$5 : create$5;
7195
- !id && delete data.id;
7196
- return Promise.resolve(next(data)).then(function (result) {
7197
- if (!!result) {
7198
- getById$3(result.data.id).then(function (e) {
7199
- backToList(e.data.fullName);
7200
- });
7201
- }
7202
-
7203
- if (!id) {
7204
- alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7205
- }
7206
-
7207
- dispatch(setAlert({
7208
- type: "success",
7209
- message: (!!id ? "Update" : "Create") + " user successfully"
7210
- }));
7211
- });
7212
- }
7213
-
7214
- var _temp5 = function () {
7215
- if (!!file) {
7216
- var formData = new FormData();
7217
- var name = file.name;
7218
- formData.append("file", file, name);
7219
- return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7220
- var _res$data2;
6872
+ var _temp5 = function () {
6873
+ if (!!file) {
6874
+ var formData = new FormData();
6875
+ var name = file.name;
6876
+ formData.append("file", file, name);
6877
+ return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
6878
+ var _res$data2;
7221
6879
 
7222
6880
  var imageUrl = res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.key;
7223
6881
  data.profileImageFileName = imageUrl;
@@ -7803,6 +7461,42 @@ var CreatableSelector = function CreatableSelector(props) {
7803
7461
  });
7804
7462
  };
7805
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
+
7806
7500
  var QuestionTypeSelector = function QuestionTypeSelector(props) {
7807
7501
  var id = props.id;
7808
7502
  var initValue = !!id ? QUESTION_TYPES_OPTIONS.find(function (option) {
@@ -7862,17 +7556,8 @@ var SuggestionCategorySelector = function SuggestionCategorySelector(props) {
7862
7556
  };
7863
7557
 
7864
7558
  var CATEGORY_URL$1 = BASE_URL + "/api/QuestionCategory";
7865
- var get$7 = function get(parentCategoryId) {
7866
- return api.get(CATEGORY_URL$1, {
7867
- params: {
7868
- parentCategoryId: parentCategoryId
7869
- }
7870
- });
7871
- };
7872
- var getByFilter = function getByFilter(filter) {
7873
- return api.get(CATEGORY_URL$1, {
7874
- params: filter
7875
- });
7559
+ var get$7 = function get() {
7560
+ return api.get(CATEGORY_URL$1);
7876
7561
  };
7877
7562
 
7878
7563
  var QuestionCategorySelector = function QuestionCategorySelector(props) {
@@ -7880,8 +7565,6 @@ var QuestionCategorySelector = function QuestionCategorySelector(props) {
7880
7565
  getCategoryList = _useState[0],
7881
7566
  setCategoryList = _useState[1];
7882
7567
 
7883
- var id = props.id,
7884
- parentCategoryId = props.parentCategoryId;
7885
7568
  React.useEffect(function () {
7886
7569
  fetchCategory();
7887
7570
  }, []);
@@ -7889,7 +7572,7 @@ var QuestionCategorySelector = function QuestionCategorySelector(props) {
7889
7572
  var fetchCategory = function fetchCategory() {
7890
7573
  try {
7891
7574
  var _temp2 = _catch(function () {
7892
- return Promise.resolve(get$7(parentCategoryId)).then(function (res) {
7575
+ return Promise.resolve(get$7()).then(function (res) {
7893
7576
  setCategoryList(res.data.items);
7894
7577
  });
7895
7578
  }, function (err) {
@@ -7902,6 +7585,7 @@ var QuestionCategorySelector = function QuestionCategorySelector(props) {
7902
7585
  }
7903
7586
  };
7904
7587
 
7588
+ var id = props.id;
7905
7589
  var arrCategory = getCategoryList.map(function (i) {
7906
7590
  return {
7907
7591
  id: i.id,
@@ -7918,131 +7602,6 @@ var QuestionCategorySelector = function QuestionCategorySelector(props) {
7918
7602
  }, props));
7919
7603
  };
7920
7604
 
7921
- var useCategorySelector = function useCategorySelector() {
7922
- var _useState = React.useState([]),
7923
- categories = _useState[0],
7924
- setCategories = _useState[1];
7925
-
7926
- var dispatch = reactRedux.useDispatch();
7927
- var getData = React.useCallback(function () {
7928
- try {
7929
- var _temp3 = function _temp3() {
7930
- dispatch(setLoading(false));
7931
- };
7932
-
7933
- dispatch(setLoading(true));
7934
-
7935
- var _temp4 = _catch(function () {
7936
- return Promise.resolve(getByFilter(_extends({}, DEFAULT_FILTER, {
7937
- pageSize: -1
7938
- }))).then(function (res) {
7939
- var convertedCategories = convertOptions(res.data.items);
7940
- setCategories(convertedCategories);
7941
- });
7942
- }, function (err) {
7943
- var _err$response, _err$response$data;
7944
-
7945
- dispatch(setAlert({
7946
- type: "danger",
7947
- 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
7948
- }));
7949
- });
7950
-
7951
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
7952
- } catch (e) {
7953
- return Promise.reject(e);
7954
- }
7955
- }, []);
7956
-
7957
- var convertOptions = function convertOptions(categories, parent, children) {
7958
- var result = [];
7959
-
7960
- if (!parent) {
7961
- var noParentCategories = categories.filter(function (c) {
7962
- return !c.parentCategoryId;
7963
- });
7964
- noParentCategories.forEach(function (c) {
7965
- var childrenOfCategory = categories.filter(function (cg) {
7966
- return cg.parentCategoryId === c.id;
7967
- });
7968
-
7969
- var category = _extends({}, c, {
7970
- label: c.name,
7971
- value: c.id,
7972
- level: 0,
7973
- isDisabled: childrenOfCategory.length > 0
7974
- });
7975
-
7976
- result = result.concat(convertOptions(categories, category, childrenOfCategory));
7977
- });
7978
- } else {
7979
- result.push(parent);
7980
- children === null || children === void 0 ? void 0 : children.forEach(function (c) {
7981
- var childrenOfCategory = categories.filter(function (cg) {
7982
- return cg.parentCategoryId === c.id;
7983
- });
7984
-
7985
- var category = _extends({}, c, {
7986
- label: c.name,
7987
- value: c.id,
7988
- level: parent.level ? parent.level + 1 : 1,
7989
- isDisabled: childrenOfCategory.length > 0
7990
- });
7991
-
7992
- result = result.concat(convertOptions(categories, category, childrenOfCategory));
7993
- });
7994
- }
7995
-
7996
- return result;
7997
- };
7998
-
7999
- React.useEffect(function () {
8000
- getData();
8001
- }, []);
8002
- return {
8003
- categories: categories
8004
- };
8005
- };
8006
-
8007
- var optionStyles = {
8008
- control: function control(styles) {
8009
- return _extends({}, styles, {
8010
- backgroundColor: 'white'
8011
- });
8012
- },
8013
- option: function option(styles, _ref) {
8014
- var data = _ref.data;
8015
- return _extends({}, styles, {
8016
- fontWeight: !(data !== null && data !== void 0 && data.level) ? "bold" : "normal",
8017
- paddingLeft: ((data === null || data === void 0 ? void 0 : data.level) || 0) + 1 + "rem",
8018
- paddingRight: "1rem",
8019
- cursor: data.isDisabled ? 'not-allowed' : 'pointer',
8020
- color: "var(--color)",
8021
- "&:first-letter": {
8022
- textTransform: "uppercase"
8023
- }
8024
- });
8025
- }
8026
- };
8027
-
8028
- var CategorySelector = function CategorySelector(_ref2) {
8029
- var value = _ref2.value,
8030
- rest = _objectWithoutPropertiesLoose(_ref2, ["value"]);
8031
-
8032
- var _useCategorySelector = useCategorySelector(),
8033
- categories = _useCategorySelector.categories;
8034
-
8035
- var initialValue = !!value ? categories.find(function (option) {
8036
- return option.value === value;
8037
- }) || null : null;
8038
- return React__default.createElement(Select, Object.assign({
8039
- value: initialValue,
8040
- options: categories,
8041
- styles: optionStyles,
8042
- placeholder: "Select category..."
8043
- }, rest));
8044
- };
8045
-
8046
7605
  var StarRatingSelector = function StarRatingSelector(props) {
8047
7606
  var id = props.id;
8048
7607
  var initValue = !!id ? STAR_OPTIONS.find(function (option) {
@@ -8158,13 +7717,23 @@ var NotificationStatusSelector = function NotificationStatusSelector(_ref) {
8158
7717
 
8159
7718
  var NotificationStatusSelector$1 = React.memo(NotificationStatusSelector);
8160
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
+
8161
7730
  var defaultFilters = {
8162
7731
  currentPage: 1,
8163
7732
  pageSize: 30,
8164
7733
  searchString: "",
8165
7734
  isRead: false
8166
7735
  };
8167
- var TITLE$9 = "Notification list";
7736
+ var TITLE$8 = "Notification list";
8168
7737
  var NOTIFICATION_CHANNEL$1 = "NOTIFICATION_CHANNEL";
8169
7738
  var NEW_NOTIFICATION$1 = "NEW_NOTIFICATION";
8170
7739
 
@@ -8289,7 +7858,7 @@ var useNotificationList = function useNotificationList() {
8289
7858
  }
8290
7859
  }, [filters]);
8291
7860
  React.useEffect(function () {
8292
- document.title = TITLE$9;
7861
+ document.title = TITLE$8;
8293
7862
  }, []);
8294
7863
  React.useEffect(function () {
8295
7864
  getData();
@@ -8374,7 +7943,7 @@ var useNotificationList = function useNotificationList() {
8374
7943
  };
8375
7944
  };
8376
7945
 
8377
- var header$3 = "Notification list";
7946
+ var header$2 = "Notification list";
8378
7947
  var ICON_SIZE = 20;
8379
7948
 
8380
7949
  var NotificationList = function NotificationList() {
@@ -8395,7 +7964,7 @@ var NotificationList = function NotificationList() {
8395
7964
  }
8396
7965
  }, React__default.createElement("h5", {
8397
7966
  className: "mb-2"
8398
- }, header$3), React__default.createElement(reactstrap.Row, {
7967
+ }, header$2), React__default.createElement(reactstrap.Row, {
8399
7968
  className: "my-2"
8400
7969
  }, React__default.createElement(reactstrap.Col, {
8401
7970
  md: 8
@@ -8495,6 +8064,35 @@ var NotificationList = function NotificationList() {
8495
8064
  }))));
8496
8065
  };
8497
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
+
8498
8096
  var CustomTabs = function CustomTabs(props) {
8499
8097
  var history = reactRouterDom.useHistory();
8500
8098
  var location = reactRouterDom.useLocation();
@@ -8899,7 +8497,7 @@ var get$8 = function get(filter) {
8899
8497
  });
8900
8498
  };
8901
8499
 
8902
- var TITLE$a = "Gallery";
8500
+ var TITLE$9 = "Gallery";
8903
8501
  var defaultFilter = {
8904
8502
  searchString: ""
8905
8503
  };
@@ -9136,7 +8734,7 @@ var useGalleryList = function useGalleryList(isLibrary) {
9136
8734
  }
9137
8735
  }, [dispatch, filters]);
9138
8736
  React.useEffect(function () {
9139
- document.title = TITLE$a;
8737
+ document.title = TITLE$9;
9140
8738
  dispatch(setTargetMedia({
9141
8739
  targetMedia: undefined
9142
8740
  }));
@@ -9328,7 +8926,7 @@ var MediaDetail = function MediaDetail(_ref) {
9328
8926
 
9329
8927
  var MediaDetail$1 = React__default.memo(MediaDetail);
9330
8928
 
9331
- var header$4 = "Gallery";
8929
+ var header$3 = "Gallery";
9332
8930
 
9333
8931
  var GalleryList = function GalleryList(_ref) {
9334
8932
  var isLibrary = _ref.isLibrary;
@@ -9339,7 +8937,7 @@ var GalleryList = function GalleryList(_ref) {
9339
8937
  className: "fadeIn animated"
9340
8938
  }, !isLibrary && React__default.createElement("h5", {
9341
8939
  className: "mb-2"
9342
- }, header$4), React__default.createElement(reactstrap.Row, {
8940
+ }, header$3), React__default.createElement(reactstrap.Row, {
9343
8941
  className: "mb-2"
9344
8942
  }, React__default.createElement(reactstrap.Col, {
9345
8943
  md: 8
@@ -9963,6 +9561,9 @@ var commonReducer$8 = toolkit.createReducer(initialState$e, function (builder) {
9963
9561
  });
9964
9562
  });
9965
9563
 
9564
+ var setUserList = toolkit.createAction("users/setUserList");
9565
+ var setStudentList = toolkit.createAction("users/setStudentList");
9566
+
9966
9567
  var initialState$f = {
9967
9568
  userList: [],
9968
9569
  totalItems: 0,
@@ -10542,133 +10143,489 @@ var widgetReducer = toolkit.createReducer(initialState$y, function (builder) {
10542
10143
 
10543
10144
  var setBandScoreList = toolkit.createAction("bandScores/setBandScoreList");
10544
10145
 
10545
- var initialState$z = {
10546
- bandScoreList: [],
10547
- totalItems: 0
10548
- };
10549
- var commonReducer$h = toolkit.createReducer(initialState$z, function (builder) {
10550
- builder.addCase(setBandScoreList, function (state, action) {
10551
- state.bandScoreList = action.payload.bandScoreList;
10552
- state.totalItems = action.payload.totalItems;
10553
- }).addCase(reset, function (_state, _action) {
10554
- return initialState$z;
10555
- });
10556
- });
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]);
10391
+
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
+ }));
10411
+
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
+ };
10557
10426
 
10558
- var setSchoolBlankDayList = toolkit.createAction("schoolBlankDays/setSchoolBlankDayList");
10427
+ var swicthUser = React.useCallback(function (id) {
10428
+ try {
10429
+ var _temp7 = function _temp7() {
10430
+ dispatch(setLoading(false));
10431
+ };
10559
10432
 
10560
- var initialState$A = {
10561
- schoolBlankDayList: [],
10562
- totalItems: 0
10563
- };
10564
- var commonReducer$i = toolkit.createReducer(initialState$A, function (builder) {
10565
- builder.addCase(setSchoolBlankDayList, function (state, action) {
10566
- state.schoolBlankDayList = action.payload.schoolBlankDayList;
10567
- state.totalItems = action.payload.totalItems;
10568
- }).addCase(reset, function (_state, _action) {
10569
- return initialState$A;
10570
- });
10571
- });
10433
+ dispatch(setLoading(true));
10572
10434
 
10573
- var setStudentIdSelectedByTeacher = toolkit.createAction("navMobile/setStudentIdSelectedByTeacher");
10435
+ var _temp8 = _catch(function () {
10436
+ return Promise.resolve(switchAccountUser(id)).then(function (res) {
10437
+ var data = res.data;
10438
+ dispatch(setModal({
10439
+ isOpen: true,
10440
+ type: "warning",
10441
+ message: "Do you want to impersonate this user?",
10442
+ onConfirm: function () {
10443
+ try {
10444
+ var _temp11 = function _temp11() {
10445
+ dispatch(setLoading(false));
10446
+ };
10574
10447
 
10575
- var initialState$B = {
10576
- studentIdSelectedByTeacher: 0
10577
- };
10578
- var navMobileReducer = toolkit.createReducer(initialState$B, function (builder) {
10579
- builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10580
- state.studentIdSelectedByTeacher = action.payload;
10581
- }).addCase(reset, function (_state, _action) {
10582
- return initialState$B;
10583
- });
10584
- });
10448
+ dispatch(setLoading(true));
10449
+
10450
+ var _temp12 = _catch(function () {
10451
+ var req = {
10452
+ email: data.email,
10453
+ password: "default",
10454
+ accessToken: data.token
10455
+ };
10456
+ return Promise.resolve(logIn(req)).then(function (res) {
10457
+ localStorage.clear();
10458
+ redirectLoginUser(res);
10459
+ });
10460
+ }, function (err) {
10461
+ var _err$response3, _err$response3$data;
10585
10462
 
10586
- var rootReducer = combineReducers({
10587
- common: commonReducer,
10588
- classes: classReducer,
10589
- conferenceRubrics: conferenceRubricReducer,
10590
- faqs: commonReducer$1,
10591
- skills: commonReducer$2,
10592
- emailTemplate: emailTemplateReducer,
10593
- suggestionBank: suggestionBankReducer,
10594
- learningStrategy: learningStrategyReducer,
10595
- subjects: commonReducer$3,
10596
- learningSupportCategories: commonReducer$4,
10597
- questionBank: questionBankReducer,
10598
- badges: commonReducer$5,
10599
- semester: commonReducer$6,
10600
- goalExamples: commonReducer$8,
10601
- users: commonReducer$9,
10602
- reflections: reflectionReducer,
10603
- reflectionResults: reflectionReducer$1,
10604
- feedbacks: commonReducer$a,
10605
- assessments: commonReducer$b,
10606
- questionByCategory: questionCategoryReducer,
10607
- mailCategory: questionBankReducer$1,
10608
- questionCate: questionCateReducer,
10609
- notification: questionBankReducer$2,
10610
- myStudent: commonReducer$c,
10611
- assignments: commonReducer$7,
10612
- assistants: assistantReducer,
10613
- sesstionTemplates: sessionTemplateReducer,
10614
- sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10615
- tutorialScreens: tutorialScreenReducer,
10616
- customAlerts: commonReducer$d,
10617
- gallery: commonReducer$e,
10618
- dashboard: dashboardReducer,
10619
- sessionPlayer: sessionPlayerReducer,
10620
- dataPlayer: dataPlayer,
10621
- certificate: commonReducer$f,
10622
- improveMyClass: commonReducer$g,
10623
- widget: widgetReducer,
10624
- bandScores: commonReducer$h,
10625
- schoolBlankDays: commonReducer$i,
10626
- navMobileReducer: navMobileReducer
10627
- });
10463
+ setAlert({
10464
+ type: "danger",
10465
+ 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
10466
+ });
10467
+ });
10628
10468
 
10629
- var store = toolkit.configureStore({
10630
- reducer: rootReducer,
10631
- middleware: function middleware(getDefaultMiddleware) {
10632
- return getDefaultMiddleware({
10633
- serializableCheck: false
10634
- }).concat(logger);
10635
- }
10636
- });
10469
+ return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
10470
+ } catch (e) {
10471
+ return Promise.reject(e);
10472
+ }
10473
+ }
10474
+ }));
10475
+ });
10476
+ }, function (err) {
10477
+ var _err$response4, _err$response4$data;
10637
10478
 
10638
- var isInViewport = function isInViewport(el) {
10639
- var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10640
- return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10641
- };
10479
+ dispatch(setAlert({
10480
+ type: "danger",
10481
+ 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
10482
+ }));
10483
+ });
10642
10484
 
10643
- var debounce = function debounce(callback, wait) {
10644
- var timeout = null;
10645
- return function () {
10646
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10647
- args[_key] = arguments[_key];
10485
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
10486
+ } catch (e) {
10487
+ return Promise.reject(e);
10648
10488
  }
10489
+ }, [filters]);
10649
10490
 
10650
- var next = function next() {
10651
- return callback.apply(void 0, args);
10652
- };
10491
+ var reDirectDetailPage = function reDirectDetailPage(id) {
10492
+ var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
10493
+ history.push(url);
10494
+ };
10653
10495
 
10654
- clearTimeout(timeout);
10655
- timeout = setTimeout(next, wait);
10496
+ return {
10497
+ userList: userList,
10498
+ totalItems: totalItems,
10499
+ filters: filters,
10500
+ queryName: queryName,
10501
+ getData: getData,
10502
+ removeData: removeData,
10503
+ changeFilters: changeFilters,
10504
+ reDirectDetailPage: reDirectDetailPage,
10505
+ swicthUser: swicthUser
10656
10506
  };
10657
10507
  };
10658
10508
 
10659
- var getTextFromHTML = function getTextFromHTML(htmlString) {
10660
- var p = document.createElement("p");
10661
- p.innerHTML = htmlString;
10662
- var text = p.innerText;
10663
- p.remove();
10664
- return text;
10665
- };
10509
+ var header$4 = "User";
10666
10510
 
10667
- var generateRandomString = (function () {
10668
- return (Math.random() + 1).toString(36).substring(7);
10669
- });
10511
+ var UserList = function UserList() {
10512
+ var _useUserList = useUserList(),
10513
+ queryName = _useUserList.queryName,
10514
+ userList = _useUserList.userList,
10515
+ totalItems = _useUserList.totalItems,
10516
+ filters = _useUserList.filters,
10517
+ removeData = _useUserList.removeData,
10518
+ changeFilters = _useUserList.changeFilters,
10519
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
10520
+ swicthUser = _useUserList.swicthUser;
10670
10521
 
10671
- var amplitudeClient = amplitude.getInstance();
10522
+ var _useTranslation = reactI18next.useTranslation(),
10523
+ t = _useTranslation.t;
10524
+
10525
+ return React__default.createElement("div", {
10526
+ className: "fadeIn animated"
10527
+ }, React__default.createElement("h5", {
10528
+ className: "mb-2"
10529
+ }, t("" + header$4)), React__default.createElement(reactstrap.Row, {
10530
+ className: "my-2"
10531
+ }, React__default.createElement(reactstrap.Col, {
10532
+ md: 8
10533
+ }, React__default.createElement(SearchBoxContainer, {
10534
+ text: t("create_user"),
10535
+ onClick: function onClick() {
10536
+ return reDirectDetailPage();
10537
+ },
10538
+ initValue: !!queryName ? queryName : "",
10539
+ onSearch: function onSearch(searchString) {
10540
+ return changeFilters({
10541
+ searchString: searchString
10542
+ });
10543
+ },
10544
+ placeholder: t("type_something_to_search_by_user_name")
10545
+ })), React__default.createElement(reactstrap.Col, {
10546
+ md: 4,
10547
+ className: "d-flex justify-content-end align-items-center"
10548
+ }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
10549
+ className: "mb-2"
10550
+ }, React__default.createElement(reactstrap.Col, {
10551
+ md: 12
10552
+ }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
10553
+ bordered: true,
10554
+ hover: true,
10555
+ striped: true,
10556
+ responsive: true,
10557
+ size: "sm"
10558
+ }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
10559
+ className: "align-top"
10560
+ }, t("name")), React__default.createElement("th", {
10561
+ className: "align-top"
10562
+ }, t("email")), React__default.createElement("th", {
10563
+ className: "align-top"
10564
+ }, t("age")), React__default.createElement("th", {
10565
+ className: "align-top"
10566
+ }, t("role")), React__default.createElement("th", {
10567
+ className: "align-top"
10568
+ }, t("active_status")), React__default.createElement("th", {
10569
+ className: "align-top"
10570
+ }, t("created_time")), React__default.createElement("th", {
10571
+ className: "text-center"
10572
+ }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
10573
+ return React__default.createElement("tr", {
10574
+ key: record.id
10575
+ }, React__default.createElement("td", {
10576
+ className: "align-middle"
10577
+ }, React__default.createElement(LinkEditButton, {
10578
+ label: "" + record.fullName,
10579
+ onClick: function onClick() {
10580
+ return reDirectDetailPage(record.id);
10581
+ }
10582
+ })), React__default.createElement("td", {
10583
+ className: "align-middle"
10584
+ }, record.email), React__default.createElement("td", {
10585
+ className: "align-middle"
10586
+ }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
10587
+ className: "align-middle"
10588
+ }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
10589
+ className: "align-middle"
10590
+ }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
10591
+ className: "align-middle"
10592
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
10593
+ className: "text-center align-middle"
10594
+ }, React__default.createElement(fa.FaUsersCog, {
10595
+ style: {
10596
+ fontSize: "18px",
10597
+ marginRight: "10px",
10598
+ cursor: "pointer"
10599
+ },
10600
+ onClick: function onClick() {
10601
+ return swicthUser(record.id);
10602
+ }
10603
+ }), React__default.createElement(DeleteButtonIcon, {
10604
+ onClick: function onClick() {
10605
+ return removeData(record.id);
10606
+ }
10607
+ })));
10608
+ })))) : React__default.createElement(EmptyDataAlert, {
10609
+ label: t("user")
10610
+ })), React__default.createElement(reactstrap.Col, {
10611
+ md: 12
10612
+ }, React__default.createElement(CustomPagination, {
10613
+ filters: filters,
10614
+ totalRecordCount: totalItems,
10615
+ changePageSize: function changePageSize(pageSize) {
10616
+ return changeFilters({
10617
+ pageSize: pageSize
10618
+ });
10619
+ },
10620
+ changePage: function changePage(currentPage) {
10621
+ return changeFilters({
10622
+ currentPage: currentPage
10623
+ });
10624
+ }
10625
+ }))));
10626
+ };
10627
+
10628
+ var amplitudeClient$1 = amplitude.getInstance();
10672
10629
 
10673
10630
  Object.defineProperty(exports, 'I18nextProvider', {
10674
10631
  enumerable: true,
@@ -10688,7 +10645,6 @@ exports.AcademicClassSelector = AcademicClassSelector;
10688
10645
  exports.AddButton = AddButton;
10689
10646
  exports.BASE_URL = BASE_URL;
10690
10647
  exports.CHAT_CHANNEL = CHAT_CHANNEL;
10691
- exports.CategorySelector = CategorySelector;
10692
10648
  exports.CommonAlert = CommonAlert;
10693
10649
  exports.CommonHeader = CommonHeader;
10694
10650
  exports.CommonModal = CommonModal$1;
@@ -10713,7 +10669,8 @@ exports.FaqList = FaqList;
10713
10669
  exports.FileInput = InputFile;
10714
10670
  exports.GOOGLE_RECAPTCHA_KEY = GOOGLE_RECAPTCHA_KEY;
10715
10671
  exports.GalleryList = GalleryList;
10716
- exports.INIT_AMPLITUDE_KEY = INIT_AMPLITUDE_KEY;
10672
+ exports.INIT_AMPLITUDE_KEY_PROD = INIT_AMPLITUDE_KEY_PROD;
10673
+ exports.INIT_AMPLITUDE_KEY_STAGE = INIT_AMPLITUDE_KEY_STAGE;
10717
10674
  exports.Images = Images;
10718
10675
  exports.LICENSE_AGGRID = LICENSE_AGGRID;
10719
10676
  exports.LinkEditButton = LinkEditButton;
@@ -10748,7 +10705,7 @@ exports.UploadFileButton = UploadFileButton;
10748
10705
  exports.UserDetail = UserDetail;
10749
10706
  exports.UserList = UserList;
10750
10707
  exports.addTab = addTab;
10751
- exports.amplitudeClient = amplitudeClient;
10708
+ exports.amplitudeClient = amplitudeClient$1;
10752
10709
  exports.answerQuestion = answerQuestion;
10753
10710
  exports.answerQuestionDataPlayer = answerQuestionDataPlayer;
10754
10711
  exports.api = api;
@@ -10769,6 +10726,7 @@ exports.getTextFromHTML = getTextFromHTML;
10769
10726
  exports.i18n = i18n;
10770
10727
  exports.initAmplitude = initAmplitude;
10771
10728
  exports.isInViewport = isInViewport;
10729
+ exports.isLocalhost = isLocalhost;
10772
10730
  exports.reset = reset;
10773
10731
  exports.setAlert = setAlert;
10774
10732
  exports.setAssessmentList = setAssessmentList;