touchstudy-core 0.1.97 → 0.1.99

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.
@@ -9,7 +9,7 @@ import { useDispatch, useSelector } from 'react-redux';
9
9
  import axios from 'axios';
10
10
  import { useTranslation, initReactI18next } from 'react-i18next';
11
11
  export { I18nextProvider, useTranslation } from 'react-i18next';
12
- import { Paper, Card, Stack, Box, Typography, TextField, Button, Grid, Dialog, DialogTitle, IconButton, DialogContent, DialogActions, Pagination, styled, useTheme, useMediaQuery, MenuList, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase, List, ListItem, TableContainer, Chip } from '@mui/material';
12
+ import { Paper, Card, Stack, Box, Typography, TextField, Button, Grid, Dialog, DialogTitle, IconButton, DialogContent, DialogActions, Pagination, styled, useTheme, useMediaQuery, MenuList, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase, TableContainer, List, ListItem, Chip } from '@mui/material';
13
13
  import { blue } from '@mui/material/colors';
14
14
  import { GoogleReCaptcha, GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';
15
15
  import { gapi } from 'gapi-script';
@@ -26,7 +26,7 @@ import MenuItem from '@mui/material/MenuItem';
26
26
  import IconButton$1 from '@mui/material/IconButton';
27
27
  import { GoArrowSwitch } from 'react-icons/go';
28
28
  import Select, { components } from 'react-select';
29
- import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye, FaUpload } from 'react-icons/fa';
29
+ import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye, FaShare, FaExchangeAlt, FaUpload } from 'react-icons/fa';
30
30
  import { PiDotsNineLight } from 'react-icons/pi';
31
31
  import { IoMdArrowBack } from 'react-icons/io';
32
32
  import _ from 'lodash';
@@ -114,6 +114,7 @@ var Role;
114
114
  Role["Teacher"] = "Teacher";
115
115
  Role["Admin"] = "Admin";
116
116
  Role["AcademyAdmin"] = "AcademyAdmin";
117
+ Role["AcademyAdminTeacher"] = "AcademyAdminTeacher";
117
118
  })(Role || (Role = {}));
118
119
  var Language;
119
120
  (function (Language) {
@@ -250,6 +251,14 @@ var getAccessToken = (function () {
250
251
  }
251
252
  });
252
253
 
254
+ var getLanguage = (function () {
255
+ try {
256
+ return localStorage.getItem(LANGUAGE);
257
+ } catch (err) {
258
+ return null;
259
+ }
260
+ });
261
+
253
262
  var api = axios.create({
254
263
  baseURL: BASE_URL,
255
264
  timeout: 0,
@@ -274,13 +283,15 @@ var apiUpload = axios.create({
274
283
  var paramDomain = searchParams.get('domain');
275
284
  var paramLang = searchParams.get('lang');
276
285
  var academyDomainStorage = getAcademyDomain();
286
+ var langStorage = getLanguage();
277
287
  var academyDomain = paramDomain || academyDomainStorage;
288
+ var language = paramLang || langStorage;
278
289
  if (token) {
279
290
  config.headers.Authorization = "Bearer " + token;
280
291
  localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
281
292
  }
282
293
  if (academyDomain && !config.headers[AcademyHeaders]) config.headers[AcademyHeaders] = "" + academyDomain;
283
- if (paramLang) config.headers[LanguageHeaders] = "" + paramLang;
294
+ if (language) config.headers[LanguageHeaders] = "" + language;
284
295
  return config;
285
296
  }, function (error) {
286
297
  return Promise.reject(error);
@@ -1187,14 +1198,6 @@ var LANGUAGES = [{
1187
1198
  var DEFAULT_LANGUAGE = LANGUAGES[0];
1188
1199
  var LOGIN_URL = "/login";
1189
1200
 
1190
- var getLanguage = (function () {
1191
- try {
1192
- return localStorage.getItem(LANGUAGE);
1193
- } catch (err) {
1194
- return null;
1195
- }
1196
- });
1197
-
1198
1201
  var useLanguage = function useLanguage(history) {
1199
1202
  var dispatch = useDispatch();
1200
1203
  var _useTranslation = useTranslation(),
@@ -2189,6 +2192,7 @@ var are_you_sure_you_want_to_delete_the_article = "정말로 기사를 삭제하
2189
2192
  var yes = "예";
2190
2193
  var no = "아니요";
2191
2194
  var cancel = "취소";
2195
+ var remove = "제거하다";
2192
2196
  var confirmation = "확인";
2193
2197
  var student_name = "학생 이름";
2194
2198
  var full_pool_time = "전체풀이시간";
@@ -2798,6 +2802,7 @@ var my_classes = "내 수업";
2798
2802
  var choose = "선택하다";
2799
2803
  var additional_duration = "진행중인 시험 시간 추가하기";
2800
2804
  var enter_textbook_name_to_search = "검색할 교재명을 입력하세요";
2805
+ var enter_teacher_name_to_search = "선생님 이름을 입력하여 검색하세요";
2801
2806
  var select_class_placeholder = "수업을 선택하세요...";
2802
2807
  var user_name = "유저 이름";
2803
2808
  var vulnerable_detail = "다른 학생들의 정답률은 높은데, 나는 정답을 맞추지 못한 문제들입니다.";
@@ -2914,6 +2919,8 @@ var view_records = "기록열람";
2914
2919
  var delete_action = "삭제";
2915
2920
  var edit_action = "수정";
2916
2921
  var view_action = "열람";
2922
+ var update_shared_action = "업데이트 권한";
2923
+ var share_action = "공유하다";
2917
2924
  var de_select = "선택 해제";
2918
2925
  var select_output = "선택 출력";
2919
2926
  var print_pdf = "PDF 인쇄";
@@ -2947,6 +2954,15 @@ var manage_users = "사용자 관리";
2947
2954
  var manage_classes = "수업 관리";
2948
2955
  var manage_notifications = "알림 관리";
2949
2956
  var late = "늦은";
2957
+ var authority = "권한";
2958
+ var share_textbook = "교과서 공유하기";
2959
+ var notify_share_textbook = {
2960
+ share_success: "교과서를 성공적으로 공유했습니다!",
2961
+ share_fail: "교과서도 없고 선생님도 없어요!",
2962
+ update_success: "공유 교과서가 성공적으로 업데이트되었습니다!",
2963
+ update_fail: "업데이트 실패!"
2964
+ };
2965
+ var academyadminteacher = "아카데미 관리자/선생님";
2950
2966
  var total_student = "총 학생 수";
2951
2967
  var total_teacher = "총 교사 수";
2952
2968
  var total_exam = "총 시험 수";
@@ -3004,6 +3020,7 @@ var lang_ko = {
3004
3020
  yes: yes,
3005
3021
  no: no,
3006
3022
  cancel: cancel,
3023
+ remove: remove,
3007
3024
  confirmation: confirmation,
3008
3025
  student_name: student_name,
3009
3026
  full_pool_time: full_pool_time,
@@ -3605,6 +3622,7 @@ var lang_ko = {
3605
3622
  choose: choose,
3606
3623
  additional_duration: additional_duration,
3607
3624
  enter_textbook_name_to_search: enter_textbook_name_to_search,
3625
+ enter_teacher_name_to_search: enter_teacher_name_to_search,
3608
3626
  "type_at_least_{number}_characters_to_search": "검색하려면 최소 {{ number }}자를 입력하세요",
3609
3627
  select_class_placeholder: select_class_placeholder,
3610
3628
  user_name: user_name,
@@ -3720,6 +3738,8 @@ var lang_ko = {
3720
3738
  delete_action: delete_action,
3721
3739
  edit_action: edit_action,
3722
3740
  view_action: view_action,
3741
+ update_shared_action: update_shared_action,
3742
+ share_action: share_action,
3723
3743
  de_select: de_select,
3724
3744
  select_output: select_output,
3725
3745
  print_pdf: print_pdf,
@@ -3753,6 +3773,10 @@ var lang_ko = {
3753
3773
  manage_classes: manage_classes,
3754
3774
  manage_notifications: manage_notifications,
3755
3775
  late: late,
3776
+ authority: authority,
3777
+ share_textbook: share_textbook,
3778
+ notify_share_textbook: notify_share_textbook,
3779
+ academyadminteacher: academyadminteacher,
3756
3780
  total_student: total_student,
3757
3781
  total_teacher: total_teacher,
3758
3782
  total_exam: total_exam,
@@ -3809,6 +3833,7 @@ var are_you_sure_you_want_to_delete_the_article$1 = "Are you sure you want to de
3809
3833
  var yes$1 = "Yes";
3810
3834
  var no$1 = "No";
3811
3835
  var cancel$1 = "Cancel";
3836
+ var remove$1 = "Remove";
3812
3837
  var confirmation$1 = "Confirmation";
3813
3838
  var student_name$1 = "Student name";
3814
3839
  var full_pool_time$1 = "Full pool time";
@@ -4071,6 +4096,7 @@ var parent_name$1 = "Parent name";
4071
4096
  var users$1 = "Users";
4072
4097
  var new_user$1 = "New user";
4073
4098
  var academy_admin$1 = "Academy Admin";
4099
+ var academy_admin_teacher = "Academy Admin / Teacher";
4074
4100
  var super_admin$1 = "Super Admin";
4075
4101
  var switch_academy_admin$1 = "Switch Academy Admin";
4076
4102
  var switch_academy$1 = "Switch Academy";
@@ -4419,6 +4445,7 @@ var my_classes$1 = "My Classes";
4419
4445
  var choose$1 = "Choose";
4420
4446
  var additional_duration$1 = "Additional duration";
4421
4447
  var enter_textbook_name_to_search$1 = "Enter textbook name to search";
4448
+ var enter_teacher_name_to_search$1 = "Enter teacher name to search";
4422
4449
  var select_class_placeholder$1 = "Select class...";
4423
4450
  var user_name$1 = "User Name";
4424
4451
  var vulnerable_detail$1 = "Other students had a high percentage of correct answers, but I could not answer these questions correctly.";
@@ -4535,6 +4562,8 @@ var view_records$1 = "View records";
4535
4562
  var delete_action$1 = "Delete";
4536
4563
  var edit_action$1 = "Edit";
4537
4564
  var view_action$1 = "View";
4565
+ var share_action$1 = "Share";
4566
+ var update_shared_action$1 = "Update Authority";
4538
4567
  var de_select$1 = "Deselect";
4539
4568
  var select_output$1 = "Select";
4540
4569
  var print_pdf$1 = "Print PDF";
@@ -4568,6 +4597,15 @@ var manage_users$1 = "Manage users";
4568
4597
  var manage_classes$1 = "Manage classes";
4569
4598
  var manage_notifications$1 = "Manage notifications";
4570
4599
  var late$1 = "Late";
4600
+ var authority$1 = "Authority";
4601
+ var share_textbook$1 = "Share textbook";
4602
+ var notify_share_textbook$1 = {
4603
+ share_success: "Share textbook successfully!",
4604
+ share_fail: "Textbook or teacher not exists!",
4605
+ update_success: "Update shared textbook successfully!",
4606
+ update_fail: "Update fail!"
4607
+ };
4608
+ var academyadminteacher$1 = "AcademyAdmin / Teacher";
4571
4609
  var total_student$1 = "Total Student";
4572
4610
  var total_teacher$1 = "Total Teacher";
4573
4611
  var total_exam$1 = "Total Exam";
@@ -4625,6 +4663,7 @@ var lang_en = {
4625
4663
  yes: yes$1,
4626
4664
  no: no$1,
4627
4665
  cancel: cancel$1,
4666
+ remove: remove$1,
4628
4667
  confirmation: confirmation$1,
4629
4668
  student_name: student_name$1,
4630
4669
  full_pool_time: full_pool_time$1,
@@ -4884,6 +4923,7 @@ var lang_en = {
4884
4923
  users: users$1,
4885
4924
  new_user: new_user$1,
4886
4925
  academy_admin: academy_admin$1,
4926
+ academy_admin_teacher: academy_admin_teacher,
4887
4927
  super_admin: super_admin$1,
4888
4928
  switch_academy_admin: switch_academy_admin$1,
4889
4929
  switch_academy: switch_academy$1,
@@ -5227,6 +5267,7 @@ var lang_en = {
5227
5267
  choose: choose$1,
5228
5268
  additional_duration: additional_duration$1,
5229
5269
  enter_textbook_name_to_search: enter_textbook_name_to_search$1,
5270
+ enter_teacher_name_to_search: enter_teacher_name_to_search$1,
5230
5271
  "type_at_least_{number}_characters_to_search": "Type at least {{ number }} characters to search",
5231
5272
  select_class_placeholder: select_class_placeholder$1,
5232
5273
  user_name: user_name$1,
@@ -5342,6 +5383,8 @@ var lang_en = {
5342
5383
  delete_action: delete_action$1,
5343
5384
  edit_action: edit_action$1,
5344
5385
  view_action: view_action$1,
5386
+ share_action: share_action$1,
5387
+ update_shared_action: update_shared_action$1,
5345
5388
  de_select: de_select$1,
5346
5389
  select_output: select_output$1,
5347
5390
  print_pdf: print_pdf$1,
@@ -5375,6 +5418,10 @@ var lang_en = {
5375
5418
  manage_classes: manage_classes$1,
5376
5419
  manage_notifications: manage_notifications$1,
5377
5420
  late: late$1,
5421
+ authority: authority$1,
5422
+ share_textbook: share_textbook$1,
5423
+ notify_share_textbook: notify_share_textbook$1,
5424
+ academyadminteacher: academyadminteacher$1,
5378
5425
  total_student: total_student$1,
5379
5426
  total_teacher: total_teacher$1,
5380
5427
  total_exam: total_exam$1,
@@ -6955,11 +7002,13 @@ var formatRole = function formatRole(roles, t) {
6955
7002
  if (roles.includes(Role.AcademyAdmin)) return t("academy_admin");
6956
7003
  if (roles.includes(Role.Teacher)) return t("teacher");
6957
7004
  if (roles.includes(Role.Student)) return t("student");
7005
+ if (roles.includes(Role.AcademyAdminTeacher)) return t("academy_admin_teacher");
6958
7006
  return "";
6959
7007
  };
6960
7008
  var getRole = function getRole(roles) {
6961
7009
  if (roles.includes(Role.Admin)) return Role.Admin;
6962
7010
  if (roles.includes(Role.AcademyAdmin)) return Role.AcademyAdmin;
7011
+ if (roles.includes(Role.AcademyAdminTeacher)) return Role.AcademyAdminTeacher;
6963
7012
  if (roles.includes(Role.Teacher)) return Role.Teacher;
6964
7013
  if (roles.includes(Role.Student)) return Role.Student;
6965
7014
  return null;
@@ -8568,6 +8617,12 @@ var updateTextbookApi = function updateTextbookApi(textbookId, data) {
8568
8617
  var deleteTextbookApi = function deleteTextbookApi(textbookId) {
8569
8618
  return api["delete"](TEXTBOOK_URL + "/" + textbookId);
8570
8619
  };
8620
+ var shareTextbookApi = function shareTextbookApi(textbookId, data) {
8621
+ return api.post(TEXTBOOK_URL + "/" + textbookId + "/shared-textbook", data);
8622
+ };
8623
+ var updateSharedTextbookApi = function updateSharedTextbookApi(textbookId, data) {
8624
+ return api.put(TEXTBOOK_URL + "/" + textbookId + "/shared-textbook", data);
8625
+ };
8571
8626
 
8572
8627
  var ExamStatus$1;
8573
8628
  (function (ExamStatus) {
@@ -8621,6 +8676,13 @@ var TextbookSortBy;
8621
8676
  TextbookSortBy["Title"] = "Name";
8622
8677
  TextbookSortBy["SubjectName"] = "Subject.Name";
8623
8678
  })(TextbookSortBy || (TextbookSortBy = {}));
8679
+ var TeacherSortBy;
8680
+ (function (TeacherSortBy) {
8681
+ TeacherSortBy["CreatedAt"] = "CreatedAt";
8682
+ TeacherSortBy["Name"] = "UserProfile.FullName";
8683
+ TeacherSortBy["Email"] = "Email";
8684
+ TeacherSortBy["PhoneNumber"] = "UserProfile.PhoneNumber";
8685
+ })(TeacherSortBy || (TeacherSortBy = {}));
8624
8686
  var ExamType;
8625
8687
  (function (ExamType) {
8626
8688
  ExamType["Normal"] = "Normal";
@@ -8634,6 +8696,12 @@ var ExamStatus$2;
8634
8696
  ExamStatus["Completed"] = "Completed";
8635
8697
  })(ExamStatus$2 || (ExamStatus$2 = {}));
8636
8698
 
8699
+ var DefaultTeacherQuery = {
8700
+ currentPage: 1,
8701
+ pageSize: 50,
8702
+ sortColumnDirection: OrderType.DESC,
8703
+ sortColumnName: TeacherSortBy.Name
8704
+ };
8637
8705
  var TEXTBOOK_HEADERS = [{
8638
8706
  title: "#"
8639
8707
  }, {
@@ -8648,7 +8716,26 @@ var TEXTBOOK_HEADERS = [{
8648
8716
  }, {
8649
8717
  title: "total_chapters"
8650
8718
  }, {
8651
- title: ["edit_action", "view_action", "delete_action"]
8719
+ title: "authority"
8720
+ }, {
8721
+ title: ["edit_action", "view_action", "share_action", "update_shared_action", "delete_action"]
8722
+ }];
8723
+ var TEACHER_ACADEMY_HEADERS = [{
8724
+ title: ""
8725
+ }, {
8726
+ title: "#"
8727
+ }, {
8728
+ title: "full_name",
8729
+ sortKey: TeacherSortBy.Name
8730
+ }, {
8731
+ title: "email",
8732
+ sortKey: TeacherSortBy.Email
8733
+ }, {
8734
+ title: "phone_number",
8735
+ sortKey: TeacherSortBy.PhoneNumber
8736
+ }, {
8737
+ title: "created_at",
8738
+ sortKey: TeacherSortBy.CreatedAt
8652
8739
  }];
8653
8740
  var DEFAULT_ANSWER_COUNT = 5;
8654
8741
  var DEFAULT_EXAM_REQUEST = {
@@ -8665,6 +8752,7 @@ var DEFAULT_EXAM_REQUEST = {
8665
8752
  };
8666
8753
  var TEXTBOOK_PAGE_TITLE = "textbooks";
8667
8754
  var TEXT_BOOK_SEARCH_PLACEHOLDER = "enter_textbook_name_to_search";
8755
+ var TEACHER_SEARCH_PLACEHOLDER = "enter_teacher_name_to_search";
8668
8756
  var TextbookDefaultQuery = {
8669
8757
  pageSize: 12,
8670
8758
  currentPage: 1,
@@ -9660,7 +9748,8 @@ var ActionButtons = function ActionButtons(_ref) {
9660
9748
  hideSave = _ref$hideSave === void 0 ? false : _ref$hideSave,
9661
9749
  onBack = _ref.onBack,
9662
9750
  onSave = _ref.onSave,
9663
- onAltSave = _ref.onAltSave;
9751
+ onAltSave = _ref.onAltSave,
9752
+ isReadonly = _ref.isReadonly;
9664
9753
  return React__default.createElement(Stack, {
9665
9754
  direction: "row",
9666
9755
  spacing: 1,
@@ -9679,7 +9768,7 @@ var ActionButtons = function ActionButtons(_ref) {
9679
9768
  size: 16
9680
9769
  }),
9681
9770
  onClick: onSave,
9682
- disabled: saveDisabled
9771
+ disabled: saveDisabled || isReadonly
9683
9772
  }, saveText), !!altSaveText && onAltSave && React__default.createElement(Button, {
9684
9773
  variant: "contained",
9685
9774
  color: "primary",
@@ -9707,6 +9796,7 @@ var TextbookActionButtons = function TextbookActionButtons(_ref) {
9707
9796
  size: 14
9708
9797
  }) : undefined,
9709
9798
  saveText: t(!(textbook !== null && textbook !== void 0 && textbook.id) ? "create_and_continue" : isReadonly ? "update" : "update_textbook_title"),
9799
+ isReadonly: isReadonly,
9710
9800
  hideSave: hideSave,
9711
9801
  onSave: onSave
9712
9802
  });
@@ -10622,7 +10712,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
10622
10712
  textbook: textbook,
10623
10713
  onBack: handleGoToTextbookList,
10624
10714
  onSave: handleCreateOrUpdateTextbook,
10625
- hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin
10715
+ hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin || !!id && isReadonly
10626
10716
  }))), React__default.createElement(Grid, {
10627
10717
  item: true,
10628
10718
  xs: 12,
@@ -10633,7 +10723,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
10633
10723
  onClick: function onClick() {
10634
10724
  return handleOpenCreateExamDialog();
10635
10725
  },
10636
- disabled: isReadonly || !articlesSelected.length,
10726
+ disabled: !articlesSelected.length,
10637
10727
  startIcon: React__default.createElement(FaPlus, {
10638
10728
  size: 12
10639
10729
  })
@@ -10931,9 +11021,7 @@ var useTextbookList = function useTextbookList(props) {
10931
11021
  });
10932
11022
  };
10933
11023
  var handleCreateTextbook = function handleCreateTextbook() {
10934
- navigate(textbookUrl + "/create", {
10935
- replace: true
10936
- });
11024
+ pushTo(navigate, textbookUrl + "/create");
10937
11025
  };
10938
11026
  var toggleConfirmDialog = function toggleConfirmDialog() {
10939
11027
  handleChangeSelectedItem(undefined);
@@ -10968,6 +11056,7 @@ var useTextbookList = function useTextbookList(props) {
10968
11056
  return {
10969
11057
  filter: filter,
10970
11058
  textSearchRef: textSearchRef,
11059
+ getData: getData,
10971
11060
  paging: paging,
10972
11061
  textbooks: textbooks,
10973
11062
  selectedTextbook: selectedTextbook,
@@ -11089,6 +11178,347 @@ var SearchInput = function SearchInput(_ref) {
11089
11178
  }));
11090
11179
  };
11091
11180
 
11181
+ var ShareToTeacherDialog = function ShareToTeacherDialog(_ref) {
11182
+ var open = _ref.open,
11183
+ selectedShare = _ref.selectedShare,
11184
+ textSearchShareRef = _ref.textSearchShareRef,
11185
+ handleChangeSearchTextShare = _ref.handleChangeSearchTextShare,
11186
+ numSelectedShare = _ref.numSelectedShare,
11187
+ isCheckAllShare = _ref.isCheckAllShare,
11188
+ handleSelectAllClickShare = _ref.handleSelectAllClickShare,
11189
+ teachers = _ref.teachers,
11190
+ handleSortShare = _ref.handleSortShare,
11191
+ filterShare = _ref.filterShare,
11192
+ pagingShare = _ref.pagingShare,
11193
+ handleChangePageShare = _ref.handleChangePageShare,
11194
+ handleShareModel = _ref.handleShareModel,
11195
+ isSelectedShare = _ref.isSelectedShare,
11196
+ handleCloseShareDialog = _ref.handleCloseShareDialog,
11197
+ handleClickCheckboxShare = _ref.handleClickCheckboxShare,
11198
+ selectedTeacher = _ref.selectedTeacher,
11199
+ dataId = _ref.dataId,
11200
+ isUpdate = _ref.isUpdate;
11201
+ var _useTranslation = useTranslation(),
11202
+ t = _useTranslation.t;
11203
+ var theme = useTheme();
11204
+ return React__default.createElement(Dialog, {
11205
+ open: open,
11206
+ maxWidth: "md"
11207
+ }, React__default.createElement(DialogContent, {
11208
+ sx: {
11209
+ overflowY: "unset"
11210
+ }
11211
+ }, React__default.createElement(Grid, {
11212
+ container: true,
11213
+ spacing: 3,
11214
+ sx: {
11215
+ position: "relative",
11216
+ zIndex: 999999
11217
+ }
11218
+ }, selectedShare && React__default.createElement(Grid, {
11219
+ item: true,
11220
+ xs: 6,
11221
+ className: "d-flex mb-3"
11222
+ }, React__default.createElement(SearchInput, {
11223
+ placeholder: t(TEACHER_SEARCH_PLACEHOLDER),
11224
+ textSearchRef: textSearchShareRef,
11225
+ onChange: handleChangeSearchTextShare
11226
+ })), React__default.createElement(Grid, {
11227
+ item: true,
11228
+ xs: 12
11229
+ }, React__default.createElement(TableContainer, {
11230
+ sx: {
11231
+ maxHeight: "50vh"
11232
+ }
11233
+ }, React__default.createElement(Table, {
11234
+ stickyHeader: true
11235
+ }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, selectedShare && React__default.createElement(TableCell, {
11236
+ padding: "checkbox"
11237
+ }, React__default.createElement(Checkbox, {
11238
+ color: "primary",
11239
+ checked: numSelectedShare > 0 && isCheckAllShare(teachers.length),
11240
+ onChange: handleSelectAllClickShare
11241
+ })), TEACHER_ACADEMY_HEADERS.map(function (i, index) {
11242
+ return selectedShare && index === 0 ? null : React__default.createElement(TableCell, {
11243
+ key: index,
11244
+ onClick: !!i.sortKey ? function () {
11245
+ return handleSortShare(i.sortKey);
11246
+ } : undefined,
11247
+ className: "" + (!!i.sortKey && "pointer")
11248
+ }, React__default.createElement("div", {
11249
+ className: "d-flex justify-content-between align-items-center text-nowrap"
11250
+ }, t(i.title), !!i.sortKey && selectedShare && React__default.createElement(SortIcon, {
11251
+ isAscending: filterShare.sortColumnName !== i.sortKey ? undefined : filterShare.sortColumnDirection === OrderType.ASC
11252
+ })));
11253
+ }))), React__default.createElement(TableBody, null, selectedTeacher ? React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.teacherName), React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.teacherEmail), React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.createdAt, t("date_time_format")))) : teachers.map(function (i, index) {
11254
+ var isItemSelected = isSelectedShare(i.id);
11255
+ return React__default.createElement(TableRow, {
11256
+ key: i.id
11257
+ }, React__default.createElement(TableCell, {
11258
+ padding: "checkbox"
11259
+ }, React__default.createElement(Checkbox, {
11260
+ onClick: function onClick() {
11261
+ return handleClickCheckboxShare(i.id);
11262
+ },
11263
+ color: "primary",
11264
+ checked: isItemSelected
11265
+ })), React__default.createElement(TableCell, null, (pagingShare.page - 1) * pagingShare.limit + index + 1), React__default.createElement(TableCell, null, i.teacherName), React__default.createElement(TableCell, null, i.teacherEmail), React__default.createElement(TableCell, null, i.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
11266
+ }), !selectedShare && !teachers.length && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
11267
+ colSpan: 12,
11268
+ className: "text-center text-muted"
11269
+ }, t("no_data")))))), React__default.createElement("div", {
11270
+ className: "d-flex justify-content-end mt-4"
11271
+ }, !!pagingShare.totalPages && !selectedShare && React__default.createElement(Pagination, {
11272
+ count: pagingShare.totalPages,
11273
+ page: pagingShare.page,
11274
+ onChange: handleChangePageShare
11275
+ }))))), React__default.createElement(DialogActions, null, React__default.createElement(Stack, {
11276
+ direction: "row",
11277
+ spacing: 2,
11278
+ p: 2,
11279
+ pt: 0,
11280
+ justifyContent: "end"
11281
+ }, React__default.createElement(Button, {
11282
+ color: "primary",
11283
+ variant: "contained",
11284
+ type: "submit",
11285
+ disabled: selectedShare.length === 0 && numSelectedShare === 0,
11286
+ onClick: function onClick() {
11287
+ return handleShareModel(selectedShare, dataId);
11288
+ }
11289
+ }, !isUpdate ? t("submit") : t("remove")), React__default.createElement(Button, {
11290
+ sx: {
11291
+ bgcolor: theme.palette.grey[700]
11292
+ },
11293
+ color: "secondary",
11294
+ variant: "contained",
11295
+ onClick: handleCloseShareDialog
11296
+ }, t("cancel")))));
11297
+ };
11298
+
11299
+ var TEACHER_URL = BASE_URL + "/api/teacher";
11300
+ var getTeacherListApi = function getTeacherListApi(query) {
11301
+ return api.get("" + TEACHER_URL, {
11302
+ params: query
11303
+ });
11304
+ };
11305
+
11306
+ var useTextbookShare = function useTextbookShare(props) {
11307
+ var _infoUser$roles;
11308
+ var getData = props.getData,
11309
+ role = props.role;
11310
+ var _useList = useList(function (search) {
11311
+ return getTeacherListApi(search);
11312
+ }, DefaultTeacherQuery),
11313
+ filterShare = _useList.filter,
11314
+ textSearchShareRef = _useList.textSearchRef,
11315
+ pagingShare = _useList.paging,
11316
+ selectedTeacher = _useList.selectedItem,
11317
+ teachers = _useList.data,
11318
+ handleSortShare = _useList.handleSort,
11319
+ handleChangeSearchTextShare = _useList.handleChangeSearchText,
11320
+ handleChangePageShare = _useList.handleChangePage;
11321
+ var _useState = useState([]),
11322
+ selectedShare = _useState[0],
11323
+ setSelectedShare = _useState[1];
11324
+ var _useState2 = useState([]),
11325
+ notShared = _useState2[0],
11326
+ setNotShared = _useState2[1];
11327
+ var _useState3 = useState([]),
11328
+ shared = _useState3[0],
11329
+ setShared = _useState3[1];
11330
+ var _useState4 = useState(false),
11331
+ isUpdate = _useState4[0],
11332
+ setIsUpdate = _useState4[1];
11333
+ var _useState5 = useState(),
11334
+ currentModel = _useState5[0],
11335
+ setCurrentModel = _useState5[1];
11336
+ var isSelectedShare = function isSelectedShare(id) {
11337
+ return selectedShare.indexOf(id) !== -1;
11338
+ };
11339
+ var _useState6 = useState(false),
11340
+ openShareDialog = _useState6[0],
11341
+ setOpenShareDialog = _useState6[1];
11342
+ var _useTranslation = useTranslation(),
11343
+ t = _useTranslation.t;
11344
+ var dispatch = useDispatch();
11345
+ var infoUser = useSelector(function (state) {
11346
+ var _state$common;
11347
+ return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user) || {};
11348
+ });
11349
+ var isAdmin = infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$roles = infoUser.roles) === null || _infoUser$roles === void 0 ? void 0 : _infoUser$roles.includes(Role.Admin);
11350
+ var isAdminSite = role === Role.Admin;
11351
+ useEffect(function () {
11352
+ if (!isUpdate) {
11353
+ filterTeacherNotShared(currentModel);
11354
+ } else {
11355
+ filterTeacherShared(currentModel);
11356
+ }
11357
+ }, [teachers, isUpdate]);
11358
+ var handleOpenShareDialog = function handleOpenShareDialog(textbook) {
11359
+ setIsUpdate(false);
11360
+ setOpenShareDialog(true);
11361
+ setCurrentModel(textbook);
11362
+ filterTeacherNotShared(textbook);
11363
+ };
11364
+ var filterTeacherNotShared = function filterTeacherNotShared(textbook) {
11365
+ var sharedTeacherTextbook = textbook === null || textbook === void 0 ? void 0 : textbook.sharedUsers;
11366
+ var teacherNotShared = teachers.filter(function (teacher) {
11367
+ return !(sharedTeacherTextbook !== null && sharedTeacherTextbook !== void 0 && sharedTeacherTextbook.includes(teacher.teacherEmail.trim().toUpperCase())) && teacher.teacherEmail.trim().toUpperCase() != (textbook === null || textbook === void 0 ? void 0 : textbook.createdBy.email.trim().toUpperCase());
11368
+ });
11369
+ setNotShared(teacherNotShared);
11370
+ };
11371
+ var filterTeacherShared = function filterTeacherShared(textbook) {
11372
+ var sharedTeacherTextbook = textbook === null || textbook === void 0 ? void 0 : textbook.sharedUsers;
11373
+ var teacherShared = teachers.filter(function (teacher) {
11374
+ return (sharedTeacherTextbook === null || sharedTeacherTextbook === void 0 ? void 0 : sharedTeacherTextbook.includes(teacher.teacherEmail.trim().toUpperCase())) && teacher.teacherEmail.trim().toUpperCase() != (textbook === null || textbook === void 0 ? void 0 : textbook.createdBy.email.trim().toUpperCase());
11375
+ });
11376
+ setShared(teacherShared);
11377
+ };
11378
+ var handleCloseShareDialog = function handleCloseShareDialog() {
11379
+ setOpenShareDialog(false);
11380
+ setSelectedShare([]);
11381
+ };
11382
+ var handleOpenUpdateShareDialog = function handleOpenUpdateShareDialog(textbook) {
11383
+ setIsUpdate(true);
11384
+ setOpenShareDialog(true);
11385
+ setCurrentModel(textbook);
11386
+ filterTeacherShared(textbook);
11387
+ };
11388
+ var handleSelectAllClickShare = function handleSelectAllClickShare(event) {
11389
+ var newSelected = isUpdate ? shared.map(function (n) {
11390
+ return n.id;
11391
+ }) : notShared.map(function (n) {
11392
+ return n.id;
11393
+ });
11394
+ if (event.target.checked) {
11395
+ setSelectedShare(function (prev) {
11396
+ return _.uniq([].concat(prev, newSelected));
11397
+ });
11398
+ return;
11399
+ }
11400
+ setSelectedShare(_.difference(selectedShare, newSelected));
11401
+ };
11402
+ var isCheckAllShare = function isCheckAllShare(userLength) {
11403
+ var newSelected = isUpdate ? shared.map(function (n) {
11404
+ return n.id;
11405
+ }) : notShared.map(function (n) {
11406
+ return n.id;
11407
+ });
11408
+ var checkLength = _.intersection(selectedShare, newSelected).length;
11409
+ return checkLength === userLength;
11410
+ };
11411
+ var handleClickCheckboxShare = function handleClickCheckboxShare(id) {
11412
+ var selectedIndex = selectedShare.indexOf(id);
11413
+ var newSelected = [];
11414
+ if (selectedIndex === -1) {
11415
+ newSelected = newSelected.concat(selectedShare, id);
11416
+ } else if (selectedIndex === 0) {
11417
+ newSelected = newSelected.concat(selectedShare.slice(1));
11418
+ } else if (selectedIndex === selectedShare.length - 1) {
11419
+ newSelected = newSelected.concat(selectedShare.slice(0, -1));
11420
+ } else if (selectedIndex > 0) {
11421
+ newSelected = newSelected.concat(selectedShare.slice(0, selectedIndex), selectedShare.slice(selectedIndex + 1));
11422
+ }
11423
+ setSelectedShare(newSelected);
11424
+ };
11425
+ var updateTeacherNotShared = function updateTeacherNotShared(teacherIds) {
11426
+ var removeTeachers = notShared.filter(function (teacher) {
11427
+ return !teacherIds.includes(teacher.id);
11428
+ });
11429
+ setNotShared(removeTeachers);
11430
+ };
11431
+ var updateTeacherShared = function updateTeacherShared(teacherIds) {
11432
+ var existsTeachers = shared.filter(function (teacher) {
11433
+ return !teacherIds.includes(teacher.id);
11434
+ });
11435
+ setShared(existsTeachers);
11436
+ };
11437
+ var handleDisable = function handleDisable(textbook) {
11438
+ return isAdmin && !isAdminSite || !isAdmin && (!textbook.isShared || textbook.createdBy.id != infoUser.id);
11439
+ };
11440
+ var handleShareTextbook = function handleShareTextbook(teacherIds, textbookId) {
11441
+ try {
11442
+ var _temp2 = function _temp2() {
11443
+ dispatch(setLoading(false));
11444
+ setSelectedShare([]);
11445
+ setOpenShareDialog(false);
11446
+ };
11447
+ dispatch(setLoading(true));
11448
+ var _temp = _catch(function () {
11449
+ return Promise.resolve(shareTextbookApi(textbookId, {
11450
+ teacherIds: teacherIds
11451
+ })).then(function () {
11452
+ updateTeacherNotShared(teacherIds);
11453
+ setSelectedShare([]);
11454
+ return Promise.resolve(getData(false)).then(function () {
11455
+ toast.success(t("notify_share_textbook.share_success"));
11456
+ });
11457
+ });
11458
+ }, function (error) {
11459
+ toast.error(getErrorMessage(t, error, t("notify_share_textbook.share_fail")));
11460
+ });
11461
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11462
+ } catch (e) {
11463
+ return Promise.reject(e);
11464
+ }
11465
+ };
11466
+ var handleUpdateSharedTextbook = function handleUpdateSharedTextbook(teacherIds, textbookId) {
11467
+ try {
11468
+ var _temp4 = function _temp4() {
11469
+ dispatch(setLoading(false));
11470
+ setSelectedShare([]);
11471
+ setOpenShareDialog(false);
11472
+ };
11473
+ dispatch(setLoading(true));
11474
+ var _temp3 = _catch(function () {
11475
+ return Promise.resolve(updateSharedTextbookApi(textbookId, {
11476
+ teacherIds: teacherIds
11477
+ })).then(function () {
11478
+ updateTeacherShared(teacherIds);
11479
+ setSelectedShare([]);
11480
+ return Promise.resolve(getData(false)).then(function () {
11481
+ toast.success(t("notify_share_textbook.update_success"));
11482
+ });
11483
+ });
11484
+ }, function (error) {
11485
+ toast.error(getErrorMessage(t, error, t("notify_share_textbook.update_fail")));
11486
+ });
11487
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11488
+ } catch (e) {
11489
+ return Promise.reject(e);
11490
+ }
11491
+ };
11492
+ return {
11493
+ filterShare: filterShare,
11494
+ textSearchShareRef: textSearchShareRef,
11495
+ pagingShare: pagingShare,
11496
+ selectedShare: selectedShare,
11497
+ handleSortShare: handleSortShare,
11498
+ handleChangeSearchTextShare: handleChangeSearchTextShare,
11499
+ handleChangePageShare: handleChangePageShare,
11500
+ numSelectedShare: selectedShare.length,
11501
+ handleShareTextbook: handleShareTextbook,
11502
+ isSelectedShare: isSelectedShare,
11503
+ handleOpenShareDialog: handleOpenShareDialog,
11504
+ handleCloseShareDialog: handleCloseShareDialog,
11505
+ openShareDialog: openShareDialog,
11506
+ isCheckAllShare: isCheckAllShare,
11507
+ handleClickCheckboxShare: handleClickCheckboxShare,
11508
+ handleSelectAllClickShare: handleSelectAllClickShare,
11509
+ notShared: notShared,
11510
+ shared: shared,
11511
+ selectedTeacher: selectedTeacher,
11512
+ handleOpenUpdateShareDialog: handleOpenUpdateShareDialog,
11513
+ isUpdate: isUpdate,
11514
+ handleUpdateSharedTextbook: handleUpdateSharedTextbook,
11515
+ currentModel: currentModel,
11516
+ handleDisable: handleDisable,
11517
+ isAdmin: isAdmin,
11518
+ isAdminSite: isAdminSite
11519
+ };
11520
+ };
11521
+
11092
11522
  var TextbookList = function TextbookList(props) {
11093
11523
  var _useTranslation = useTranslation(),
11094
11524
  t = _useTranslation.t;
@@ -11096,10 +11526,11 @@ var TextbookList = function TextbookList(props) {
11096
11526
  filter = _useTextbookList.filter,
11097
11527
  textbooks = _useTextbookList.textbooks,
11098
11528
  paging = _useTextbookList.paging,
11529
+ getData = _useTextbookList.getData,
11099
11530
  textSearchRef = _useTextbookList.textSearchRef,
11100
- selectedTextbook = _useTextbookList.selectedTextbook,
11101
11531
  handleChangeSearchText = _useTextbookList.handleChangeSearchText,
11102
11532
  handleSort = _useTextbookList.handleSort,
11533
+ selectedTextbook = _useTextbookList.selectedTextbook,
11103
11534
  handleChangePage = _useTextbookList.handleChangePage,
11104
11535
  calcOrderNumber = _useTextbookList.calcOrderNumber,
11105
11536
  handleViewTextbook = _useTextbookList.handleViewTextbook,
@@ -11108,6 +11539,35 @@ var TextbookList = function TextbookList(props) {
11108
11539
  toggleConfirmDialog = _useTextbookList.toggleConfirmDialog,
11109
11540
  handleDeleteTextbook = _useTextbookList.handleDeleteTextbook,
11110
11541
  handleSelectDeleteTextbook = _useTextbookList.handleSelectDeleteTextbook;
11542
+ var _useTextbookShare = useTextbookShare(_extends({}, props, {
11543
+ getData: getData
11544
+ })),
11545
+ filterShare = _useTextbookShare.filterShare,
11546
+ textSearchShareRef = _useTextbookShare.textSearchShareRef,
11547
+ pagingShare = _useTextbookShare.pagingShare,
11548
+ selectedShare = _useTextbookShare.selectedShare,
11549
+ handleSortShare = _useTextbookShare.handleSortShare,
11550
+ handleChangeSearchTextShare = _useTextbookShare.handleChangeSearchTextShare,
11551
+ handleChangePageShare = _useTextbookShare.handleChangePageShare,
11552
+ numSelectedShare = _useTextbookShare.numSelectedShare,
11553
+ handleShareTextbook = _useTextbookShare.handleShareTextbook,
11554
+ isSelectedShare = _useTextbookShare.isSelectedShare,
11555
+ handleOpenShareDialog = _useTextbookShare.handleOpenShareDialog,
11556
+ handleCloseShareDialog = _useTextbookShare.handleCloseShareDialog,
11557
+ openShareDialog = _useTextbookShare.openShareDialog,
11558
+ isCheckAllShare = _useTextbookShare.isCheckAllShare,
11559
+ handleClickCheckboxShare = _useTextbookShare.handleClickCheckboxShare,
11560
+ handleSelectAllClickShare = _useTextbookShare.handleSelectAllClickShare,
11561
+ notShared = _useTextbookShare.notShared,
11562
+ shared = _useTextbookShare.shared,
11563
+ selectedTeacher = _useTextbookShare.selectedTeacher,
11564
+ handleOpenUpdateShareDialog = _useTextbookShare.handleOpenUpdateShareDialog,
11565
+ isUpdate = _useTextbookShare.isUpdate,
11566
+ handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
11567
+ currentModel = _useTextbookShare.currentModel,
11568
+ handleDisable = _useTextbookShare.handleDisable,
11569
+ isAdmin = _useTextbookShare.isAdmin,
11570
+ isAdminSite = _useTextbookShare.isAdminSite;
11111
11571
  return React__default.createElement(LayoutList, {
11112
11572
  title: t(TEXTBOOK_PAGE_TITLE)
11113
11573
  }, React__default.createElement(Grid, {
@@ -11123,14 +11583,20 @@ var TextbookList = function TextbookList(props) {
11123
11583
  item: true,
11124
11584
  xs: 6
11125
11585
  }, React__default.createElement(Stack, {
11126
- alignItems: "end"
11127
- }, React__default.createElement(Button, {
11586
+ alignItems: "end",
11587
+ direction: "row",
11588
+ sx: {
11589
+ justifyContent: "flex-end"
11590
+ },
11591
+ spacing: 2
11592
+ }, (!isAdmin || isAdminSite) && React__default.createElement(Button, {
11128
11593
  startIcon: React__default.createElement(FaPlus, {
11129
11594
  size: 12
11130
11595
  }),
11131
11596
  variant: "contained",
11132
11597
  color: "primary",
11133
- onClick: handleCreateTextbook
11598
+ onClick: handleCreateTextbook,
11599
+ className: (isAdmin && !isAdminSite ? "bg-secondary" : "bg-success") + " text-white"
11134
11600
  }, t("create_textbook")))), React__default.createElement(Grid, {
11135
11601
  item: true,
11136
11602
  xs: 12,
@@ -11142,17 +11608,21 @@ var TextbookList = function TextbookList(props) {
11142
11608
  }), React__default.createElement(TableBody, null, textbooks.map(function (i, index) {
11143
11609
  return React__default.createElement(TableRow, {
11144
11610
  key: i.id
11145
- }, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, i.name), React__default.createElement(TableCell, null, i.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(TableCell, null, i.totalChapters), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
11611
+ }, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, i.name), React__default.createElement(TableCell, null, i.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(TableCell, null, i.totalChapters), React__default.createElement(TableCell, null, i.sharedUsers.map(function (email, index) {
11612
+ return index > 2 ? null : index === 2 ? React__default.createElement("div", null, "(+", i.sharedUsers.length - 2, ")") : React__default.createElement("div", {
11613
+ key: index
11614
+ }, email.toLowerCase());
11615
+ })), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
11146
11616
  direction: "row",
11147
11617
  spacing: 1,
11148
11618
  alignItems: "center"
11149
11619
  }, React__default.createElement(IconButton, {
11150
11620
  color: "default",
11151
- className: (i.isCreatedByAdmin ? "bg-secondary" : "bg-warning") + " text-white",
11621
+ className: (handleDisable(i) ? "bg-secondary" : "bg-warning") + " text-white",
11152
11622
  onClick: function onClick() {
11153
11623
  return handleUpdateTextbook(i.id);
11154
11624
  },
11155
- disabled: !!i.isCreatedByAdmin
11625
+ disabled: handleDisable(i)
11156
11626
  }, React__default.createElement(FaPencil, {
11157
11627
  size: 12
11158
11628
  })), React__default.createElement(IconButton, {
@@ -11163,13 +11633,29 @@ var TextbookList = function TextbookList(props) {
11163
11633
  }
11164
11634
  }, React__default.createElement(FaEye, {
11165
11635
  size: 12
11636
+ })), React__default.createElement(IconButton, {
11637
+ disabled: handleDisable(i) || isAdmin,
11638
+ className: (handleDisable(i) || isAdmin ? "bg-secondary" : "bg-info") + " text-white me-1",
11639
+ onClick: function onClick() {
11640
+ return handleOpenShareDialog(i);
11641
+ }
11642
+ }, React__default.createElement(FaShare, {
11643
+ size: 12
11644
+ })), React__default.createElement(IconButton, {
11645
+ disabled: handleDisable(i) || isAdmin,
11646
+ className: (handleDisable(i) || isAdmin ? "bg-secondary" : "bg-success") + " text-white me-1",
11647
+ onClick: function onClick() {
11648
+ return handleOpenUpdateShareDialog(i);
11649
+ }
11650
+ }, React__default.createElement(FaExchangeAlt, {
11651
+ size: 12
11166
11652
  })), React__default.createElement(IconButton, {
11167
11653
  color: "default",
11168
- className: (i.isCreatedByAdmin ? "bg-secondary" : "bg-danger") + " text-white",
11654
+ className: (handleDisable(i) ? "bg-secondary" : "bg-danger") + " text-white mr-1",
11169
11655
  onClick: function onClick() {
11170
11656
  return handleSelectDeleteTextbook(i);
11171
11657
  },
11172
- disabled: !!i.isCreatedByAdmin
11658
+ disabled: handleDisable(i)
11173
11659
  }, React__default.createElement(FaTrash, {
11174
11660
  size: 12
11175
11661
  })))));
@@ -11186,6 +11672,26 @@ var TextbookList = function TextbookList(props) {
11186
11672
  onConfirm: handleDeleteTextbook,
11187
11673
  confirmText: selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.name,
11188
11674
  isDelete: true
11675
+ }), !!currentModel && React__default.createElement(ShareToTeacherDialog, {
11676
+ open: openShareDialog,
11677
+ selectedShare: selectedShare,
11678
+ textSearchShareRef: textSearchShareRef,
11679
+ handleChangeSearchTextShare: handleChangeSearchTextShare,
11680
+ numSelectedShare: numSelectedShare,
11681
+ isCheckAllShare: isCheckAllShare,
11682
+ handleSelectAllClickShare: handleSelectAllClickShare,
11683
+ teachers: !isUpdate ? notShared : shared,
11684
+ filterShare: filterShare,
11685
+ pagingShare: pagingShare,
11686
+ handleSortShare: handleSortShare,
11687
+ handleChangePageShare: handleChangePageShare,
11688
+ handleShareModel: !isUpdate ? handleShareTextbook : handleUpdateSharedTextbook,
11689
+ isSelectedShare: isSelectedShare,
11690
+ handleCloseShareDialog: handleCloseShareDialog,
11691
+ handleClickCheckboxShare: handleClickCheckboxShare,
11692
+ selectedTeacher: selectedTeacher,
11693
+ dataId: currentModel.id,
11694
+ isUpdate: isUpdate
11189
11695
  }));
11190
11696
  };
11191
11697
 
@@ -17666,11 +18172,11 @@ var DayOfWeek;
17666
18172
  DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday";
17667
18173
  DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday";
17668
18174
  })(DayOfWeek || (DayOfWeek = {}));
17669
- var TeacherSortBy;
18175
+ var TeacherSortBy$1;
17670
18176
  (function (TeacherSortBy) {
17671
18177
  TeacherSortBy["Name"] = "UserProfile.FullName";
17672
18178
  TeacherSortBy["Email"] = "UserProfile.Email";
17673
- })(TeacherSortBy || (TeacherSortBy = {}));
18179
+ })(TeacherSortBy$1 || (TeacherSortBy$1 = {}));
17674
18180
  var ClassStatus;
17675
18181
  (function (ClassStatus) {
17676
18182
  ClassStatus["Default"] = "Default";
@@ -17774,7 +18280,7 @@ var DefaultTeacherFilter = {
17774
18280
  currentPage: 1,
17775
18281
  pageSize: 50,
17776
18282
  sortColumnDirection: OrderBy$2.DESC,
17777
- sortColumnName: TeacherSortBy.Name,
18283
+ sortColumnName: TeacherSortBy$1.Name,
17778
18284
  textSearch: ""
17779
18285
  };
17780
18286
  var DEFAULT_CLASS_REQUEST = {
@@ -19422,9 +19928,9 @@ var useLessonClassList = function useLessonClassList(courseId) {
19422
19928
  };
19423
19929
  };
19424
19930
 
19425
- var TEACHER_URL = BASE_URL + "/api/teacher";
19426
- var getTeacherListApi = function getTeacherListApi(query) {
19427
- return api.get("" + TEACHER_URL, {
19931
+ var TEACHER_URL$1 = BASE_URL + "/api/teacher";
19932
+ var getTeacherListApi$1 = function getTeacherListApi(query) {
19933
+ return api.get("" + TEACHER_URL$1, {
19428
19934
  params: query
19429
19935
  });
19430
19936
  };
@@ -19445,7 +19951,7 @@ var useTeacherList = function useTeacherList() {
19445
19951
  var getListTeacher = function getListTeacher() {
19446
19952
  try {
19447
19953
  var _temp = _catch(function () {
19448
- return Promise.resolve(getTeacherListApi(teacherFilter)).then(function (res) {
19954
+ return Promise.resolve(getTeacherListApi$1(teacherFilter)).then(function (res) {
19449
19955
  var _res$data;
19450
19956
  setTeachers(((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.items) || []);
19451
19957
  });
@@ -22654,5 +23160,5 @@ var ReleaseAlert = function ReleaseAlert() {
22654
23160
  }
22655
23161
  };
22656
23162
 
22657
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, ClassDetail, ClassList, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, LoadingComponent, Login, LoginWithEmail, SignIn as LoginWithPassword, NotFound, NotificationDetail, NotificationList, PUSHER_CONFIG, PassCodeCheck, PrintExamResultView, PrintExamView2, QuestionCountSelector, RecentUserAction, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, UserList, api, apiUpload, canAccess as canAccessRoute, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatRole, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, getRole, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
23163
+ export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, ClassDetail, ClassList, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, LoadingComponent, Login, LoginWithEmail, SignIn as LoginWithPassword, NotFound, NotificationDetail, NotificationList, PUSHER_CONFIG, PassCodeCheck, PrintExamResultView, PrintExamView2, QuestionCountSelector, RecentUserAction, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, ShareToTeacherDialog, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, UserList, api, apiUpload, canAccess as canAccessRoute, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatRole, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, getRole, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useList, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useTextbookShare, useVirtualizeList, utcToLocalTime };
22658
23164
  //# sourceMappingURL=index.modern.js.map