mario-core 3.0.8-admin → 3.0.8-es

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.
Files changed (291) hide show
  1. package/dist/Dashboard-DiUm-pc-.js +186 -0
  2. package/dist/Dashboard-HV1eiElu.cjs +1 -0
  3. package/dist/EmailTemplateDetail-D0D3bpWO.cjs +1 -0
  4. package/dist/EmailTemplateDetail-KvZuTCLF.js +411 -0
  5. package/dist/EmailTemplateList-B3YqSFaY.js +172 -0
  6. package/dist/EmailTemplateList-BAejgUUG.cjs +1 -0
  7. package/dist/FaqList-D5XugT5h.js +320 -0
  8. package/dist/FaqList-DpUzQ2vq.cjs +1 -0
  9. package/dist/GalleryList-B5QA3Rol.cjs +1 -0
  10. package/dist/GalleryList-CTo33BcT.js +53 -0
  11. package/dist/Login-CHAmP5ek.js +897 -0
  12. package/dist/Login-Cxbto5eM.cjs +1 -0
  13. package/dist/NotificationList-2Mf_NsOP.js +3631 -0
  14. package/dist/NotificationList-D1jMOBwH.cjs +8 -0
  15. package/dist/SchoolList-CClJ_UPT.cjs +1 -0
  16. package/dist/SchoolList-JmrmL2zE.js +5 -0
  17. package/dist/SkillList-BMyhRY78.js +406 -0
  18. package/dist/SkillList-DlMx_Evw.cjs +1 -0
  19. package/dist/TeacherSelector-B4zvSVhk.js +71 -0
  20. package/dist/TeacherSelector-DORi8RIb.cjs +1 -0
  21. package/dist/TheContent-BHmlooLu.cjs +1 -0
  22. package/dist/TheContent-V2T-Pqz8.js +38 -0
  23. package/dist/UserContainer-B-4oVOEp.cjs +1 -0
  24. package/dist/UserContainer-BaHMryYI.js +2337 -0
  25. package/dist/UserDetail-B-Mq_itT.cjs +1 -0
  26. package/dist/UserDetail-BBRiU97G.js +665 -0
  27. package/dist/assets/Images.d.ts +14 -14
  28. package/dist/components/Alerts/CommonAlert.d.ts +3 -3
  29. package/dist/components/Alerts/EmptyDataAlert.d.ts +8 -8
  30. package/dist/components/Alerts/ErrorHandler.d.ts +6 -6
  31. package/dist/components/Buttons/AddButton.d.ts +8 -7
  32. package/dist/components/Buttons/AddButtonIcon.d.ts +6 -6
  33. package/dist/components/Buttons/CloseButton.d.ts +8 -8
  34. package/dist/components/Buttons/DeleteButtonIcon.d.ts +6 -6
  35. package/dist/components/Buttons/DetailActionButtons.d.ts +9 -8
  36. package/dist/components/Buttons/EditButtonIcon.d.ts +6 -6
  37. package/dist/components/Buttons/LinkEditButton.d.ts +8 -7
  38. package/dist/components/Buttons/LoginNavButton.d.ts +8 -8
  39. package/dist/components/Buttons/ToggleButton.d.ts +10 -10
  40. package/dist/components/Buttons/UploadFileButton.d.ts +13 -13
  41. package/dist/components/Headers/CommonHeader.d.ts +7 -7
  42. package/dist/components/Image/UploadImage.d.ts +2 -3
  43. package/dist/components/Inputs/FileInput.d.ts +8 -8
  44. package/dist/components/Inputs/PasswordInput.d.ts +8 -8
  45. package/dist/components/Inputs/SearchBox.d.ts +10 -10
  46. package/dist/components/Inputs/SearchBoxContainer.d.ts +9 -10
  47. package/dist/components/Labels/RequiredLabel.d.ts +6 -6
  48. package/dist/components/Loading/Loading.d.ts +3 -3
  49. package/dist/components/Modals/CommonModal.d.ts +2 -3
  50. package/dist/components/Modals/NotificationLogoutModal.d.ts +2 -0
  51. package/dist/components/Modals/NotificationModal.d.ts +2 -3
  52. package/dist/components/Others/QuitPrompt.d.ts +5 -2
  53. package/dist/components/Pagination/CustomPagination.d.ts +2 -3
  54. package/dist/components/Scroll/ScrollToTop.d.ts +3 -3
  55. package/dist/components/Selectors/AcademicClassSelector.d.ts +2 -3
  56. package/dist/components/Selectors/CreatableSelector.d.ts +2 -3
  57. package/dist/components/Selectors/CustomSelector.d.ts +2 -3
  58. package/dist/components/Selectors/MailCategorySelectors.d.ts +2 -3
  59. package/dist/components/Selectors/QuestionCategorySelector.d.ts +2 -3
  60. package/dist/components/Selectors/QuestionTypeSelector.d.ts +2 -3
  61. package/dist/components/Selectors/StarRatingSelector.d.ts +2 -3
  62. package/dist/components/Selectors/SuggestionCategorySelector.d.ts +2 -3
  63. package/dist/components/Tabs/CustomTab.d.ts +2 -3
  64. package/dist/components/Tabs/TabsWithComponent.d.ts +10 -0
  65. package/dist/configs/editorConfig.d.ts +7 -7
  66. package/dist/containers/Commons/NotFound.d.ts +3 -3
  67. package/dist/containers/DistrictSchools/views/SchoolList.d.ts +3 -3
  68. package/dist/containers/EmailTemplate/components/AttachmentFile.d.ts +8 -7
  69. package/dist/containers/EmailTemplate/components/MailParam.d.ts +8 -7
  70. package/dist/containers/EmailTemplate/configs/emailTemplateSchema.d.ts +13 -13
  71. package/dist/containers/EmailTemplate/hooks/useEmailTemplateDetail.d.ts +27 -28
  72. package/dist/containers/EmailTemplate/hooks/useEmailTemplateList.d.ts +11 -11
  73. package/dist/containers/EmailTemplate/views/EmailTemplateDetail.d.ts +3 -3
  74. package/dist/containers/EmailTemplate/views/EmailTemplateList.d.ts +3 -3
  75. package/dist/containers/Faq/components/FaqDetailModal.d.ts +2 -3
  76. package/dist/containers/Faq/hooks/useFaqDetail.d.ts +17 -18
  77. package/dist/containers/Faq/hooks/useFaqList.d.ts +9 -9
  78. package/dist/containers/Faq/views/FaqList.d.ts +3 -3
  79. package/dist/containers/Gallery/components/ActionModal.d.ts +2 -3
  80. package/dist/containers/Gallery/components/Filter.d.ts +9 -8
  81. package/dist/containers/Gallery/components/Media.d.ts +9 -8
  82. package/dist/containers/Gallery/components/MediaDetail.d.ts +7 -7
  83. package/dist/containers/Gallery/components/MediaList.d.ts +7 -7
  84. package/dist/containers/Gallery/components/MediaNav.d.ts +19 -18
  85. package/dist/containers/Gallery/constants/gallery.types.d.ts +21 -21
  86. package/dist/containers/Gallery/extensions/helpers.d.ts +4 -4
  87. package/dist/containers/Gallery/hooks/useGalleryList.d.ts +30 -31
  88. package/dist/containers/Gallery/views/GalleryList.d.ts +6 -6
  89. package/dist/containers/Login/components/GoogleLoginButton.d.ts +10 -0
  90. package/dist/containers/Login/constant/authConfig.d.ts +38 -0
  91. package/dist/containers/Login/constant/types.d.ts +27 -0
  92. package/dist/containers/Login/hooks/useForgotPassword.d.ts +20 -21
  93. package/dist/containers/Login/hooks/useLogin.d.ts +26 -23
  94. package/dist/containers/Login/hooks/useLoginTwoFactor.d.ts +4 -4
  95. package/dist/containers/Login/views/Dashboard.d.ts +3 -3
  96. package/dist/containers/Login/views/Login.d.ts +8 -9
  97. package/dist/containers/Login/views/block/BlockBackground.d.ts +7 -0
  98. package/dist/containers/Login/views/block/BlockForgetPassword.d.ts +6 -3
  99. package/dist/containers/Login/views/block/BlockLogin.d.ts +9 -7
  100. package/dist/containers/Login/views/block/BlockResetPassword.d.ts +2 -3
  101. package/dist/containers/Login/views/block/BlockSelectTeacher.d.ts +11 -12
  102. package/dist/containers/Login/views/block/BlockTwoFactorLogin.d.ts +2 -3
  103. package/dist/containers/Login/views/block/CloseBlock.d.ts +6 -6
  104. package/dist/containers/Login/views/block/ContentHomePage.d.ts +5 -5
  105. package/dist/containers/Login/views/block/IconContent.d.ts +7 -7
  106. package/dist/containers/Login/views/block/QuoteContent.d.ts +2 -3
  107. package/dist/containers/Notifications/components/NotificationButton.d.ts +5 -5
  108. package/dist/containers/Notifications/components/NotificationStatusSelector.d.ts +6 -7
  109. package/dist/containers/Notifications/hooks/useNotificationList.d.ts +17 -17
  110. package/dist/containers/Notifications/hooks/useUnreadNotification.d.ts +4 -4
  111. package/dist/containers/Notifications/views/NotificationList.d.ts +2 -3
  112. package/dist/containers/Skill/components/SkillDetailModal.d.ts +2 -3
  113. package/dist/containers/Skill/components/SkillSelector.d.ts +2 -3
  114. package/dist/containers/Skill/hooks/useSkillDetail.d.ts +19 -20
  115. package/dist/containers/Skill/hooks/useSkillList.d.ts +10 -9
  116. package/dist/containers/Skill/views/SkillList.d.ts +3 -3
  117. package/dist/containers/User/components/AssignStudentModal.d.ts +19 -0
  118. package/dist/containers/User/components/DeleteBulkModel.d.ts +3 -0
  119. package/dist/containers/User/components/FilterPopover.d.ts +21 -0
  120. package/dist/containers/User/components/HeaderCell.d.ts +19 -0
  121. package/dist/containers/User/components/RemoveAssistant.d.ts +3 -0
  122. package/dist/containers/User/components/RemoveCounselor.d.ts +3 -0
  123. package/dist/containers/User/components/RemoveTeacher.d.ts +3 -0
  124. package/dist/containers/User/components/TableHeader.d.ts +14 -0
  125. package/dist/containers/User/components/TeacherSelector.d.ts +2 -0
  126. package/dist/containers/User/configs/changePasswordSchema.d.ts +11 -10
  127. package/dist/containers/User/configs/constants.d.ts +62 -0
  128. package/dist/containers/User/configs/type.d.ts +210 -0
  129. package/dist/containers/User/configs/userSchema.d.ts +15 -15
  130. package/dist/containers/User/hooks/useAssignStudent.d.ts +33 -0
  131. package/dist/containers/User/hooks/useAssignStudentList.d.ts +33 -0
  132. package/dist/containers/User/hooks/useAssistantList.d.ts +9 -0
  133. package/dist/containers/User/hooks/useClickOutside.d.ts +2 -0
  134. package/dist/containers/User/hooks/useCounselorList.d.ts +9 -0
  135. package/dist/containers/User/hooks/useFilterPopover.d.ts +36 -0
  136. package/dist/containers/User/hooks/useTableHeader.d.ts +19 -0
  137. package/dist/containers/User/hooks/useTeacherList.d.ts +9 -0
  138. package/dist/containers/User/hooks/useUserDetail.d.ts +31 -24
  139. package/dist/containers/User/hooks/useUserList.d.ts +14 -11
  140. package/dist/containers/User/hooks/userFilters.d.ts +7 -0
  141. package/dist/containers/User/views/AssignStudentList.d.ts +2 -0
  142. package/dist/containers/User/views/UserContainer.d.ts +2 -0
  143. package/dist/containers/User/views/UserDetail.d.ts +2 -3
  144. package/dist/containers/User/views/UserList.d.ts +2 -3
  145. package/dist/hooks/useClassFontSize.d.ts +4 -0
  146. package/dist/hooks/useFilters.d.ts +7 -8
  147. package/dist/i18n.d.ts +2 -2
  148. package/dist/index-C95SWLrn.js +18163 -0
  149. package/dist/index-DixwqZ17.cjs +29 -0
  150. package/dist/index.d.ts +111 -110
  151. package/dist/index.esm-BckW25l9.cjs +1 -0
  152. package/dist/index.esm-hqKUWCW0.js +15 -0
  153. package/dist/index.js +1 -10373
  154. package/dist/index.modern.js +159 -10213
  155. package/dist/layouts/TheContent.d.ts +3 -3
  156. package/dist/mailCategoryService-BqDtPJRc.js +10 -0
  157. package/dist/mailCategoryService-DBMJOyls.cjs +1 -0
  158. package/dist/mario-core.css +5 -0
  159. package/dist/redux/assessments/action.d.ts +1 -1
  160. package/dist/redux/assessments/reducer.d.ts +10 -5
  161. package/dist/redux/assignment/action.d.ts +1 -1
  162. package/dist/redux/assignment/reducer.d.ts +4 -2
  163. package/dist/redux/assistants/action.d.ts +1 -1
  164. package/dist/redux/assistants/reducer.d.ts +4 -2
  165. package/dist/redux/badges/action.d.ts +1 -1
  166. package/dist/redux/badges/reducer.d.ts +4 -2
  167. package/dist/redux/bandScores/action.d.ts +1 -1
  168. package/dist/redux/bandScores/reducer.d.ts +4 -2
  169. package/dist/redux/certificate/action.d.ts +1 -1
  170. package/dist/redux/certificate/reducer.d.ts +4 -2
  171. package/dist/redux/classes/action.d.ts +1 -1
  172. package/dist/redux/classes/reducer.d.ts +4 -2
  173. package/dist/redux/commons/action.d.ts +18 -18
  174. package/dist/redux/commons/reducer.d.ts +4 -2
  175. package/dist/redux/conferenceRubrics/action.d.ts +1 -1
  176. package/dist/redux/conferenceRubrics/reducer.d.ts +4 -2
  177. package/dist/redux/customAlert/action.d.ts +1 -1
  178. package/dist/redux/customAlert/reducer.d.ts +4 -2
  179. package/dist/redux/dashboard/action.d.ts +5 -5
  180. package/dist/redux/dashboard/reducer.d.ts +4 -2
  181. package/dist/redux/dataPlayer/action.d.ts +2 -2
  182. package/dist/redux/dataPlayer/reducer.d.ts +4 -2
  183. package/dist/redux/emailTemplates/action.d.ts +1 -1
  184. package/dist/redux/emailTemplates/reducer.d.ts +4 -2
  185. package/dist/redux/faqs/action.d.ts +1 -1
  186. package/dist/redux/faqs/reducer.d.ts +4 -2
  187. package/dist/redux/feedback/action.d.ts +1 -1
  188. package/dist/redux/feedback/reducer.d.ts +4 -2
  189. package/dist/redux/gallery/action.d.ts +2 -2
  190. package/dist/redux/gallery/reducer.d.ts +4 -2
  191. package/dist/redux/goalExamples/action.d.ts +1 -1
  192. package/dist/redux/goalExamples/reducer.d.ts +4 -2
  193. package/dist/redux/improveMyClass/action.d.ts +1 -1
  194. package/dist/redux/improveMyClass/reducer.d.ts +4 -2
  195. package/dist/redux/learningStrategies/action.d.ts +1 -1
  196. package/dist/redux/learningStrategies/reducer.d.ts +4 -2
  197. package/dist/redux/learningSupportCategories/action.d.ts +1 -1
  198. package/dist/redux/learningSupportCategories/reducer.d.ts +4 -2
  199. package/dist/redux/mailCategories/action.d.ts +1 -1
  200. package/dist/redux/mailCategories/reducer.d.ts +4 -2
  201. package/dist/redux/navMobile/action.d.ts +1 -1
  202. package/dist/redux/navMobile/reducer.d.ts +4 -2
  203. package/dist/redux/notifications/action.d.ts +3 -3
  204. package/dist/redux/notifications/reducer.d.ts +4 -2
  205. package/dist/redux/questionBanks/action.d.ts +1 -1
  206. package/dist/redux/questionBanks/reducer.d.ts +4 -2
  207. package/dist/redux/questionByCategory/action.d.ts +8 -8
  208. package/dist/redux/questionByCategory/reducer.d.ts +4 -2
  209. package/dist/redux/questionCategory/action.d.ts +1 -1
  210. package/dist/redux/questionCategory/reducer.d.ts +4 -2
  211. package/dist/redux/reflectionForms/action.d.ts +1 -1
  212. package/dist/redux/reflectionForms/reducer.d.ts +4 -2
  213. package/dist/redux/reflectionResults/action.d.ts +1 -1
  214. package/dist/redux/reflectionResults/reducer.d.ts +4 -2
  215. package/dist/redux/schoolBlankDays/action.d.ts +1 -1
  216. package/dist/redux/schoolBlankDays/reducer.d.ts +4 -2
  217. package/dist/redux/semester/action.d.ts +1 -1
  218. package/dist/redux/semester/reducer.d.ts +4 -2
  219. package/dist/redux/sessionPlayers/action.d.ts +5 -5
  220. package/dist/redux/sessionPlayers/reducer.d.ts +4 -2
  221. package/dist/redux/sessionTemplateGeneralClasses/action.d.ts +1 -1
  222. package/dist/redux/sessionTemplateGeneralClasses/reducer.d.ts +4 -2
  223. package/dist/redux/sessionTemplates/action.d.ts +1 -1
  224. package/dist/redux/sessionTemplates/reducer.d.ts +4 -2
  225. package/dist/redux/skills/action.d.ts +1 -1
  226. package/dist/redux/skills/reducer.d.ts +4 -2
  227. package/dist/redux/subjects/action.d.ts +1 -1
  228. package/dist/redux/subjects/reducer.d.ts +4 -2
  229. package/dist/redux/suggestionBanks/action.d.ts +1 -1
  230. package/dist/redux/suggestionBanks/reducer.d.ts +4 -2
  231. package/dist/redux/teacher/myStudent/action.d.ts +1 -1
  232. package/dist/redux/teacher/myStudent/reducer.d.ts +4 -2
  233. package/dist/redux/tutorialScreen/action.d.ts +1 -1
  234. package/dist/redux/tutorialScreen/reducer.d.ts +10 -5
  235. package/dist/redux/users/action.d.ts +2 -2
  236. package/dist/redux/users/reducer.d.ts +4 -2
  237. package/dist/redux/widget/action.d.ts +1 -1
  238. package/dist/redux/widget/reducer.d.ts +4 -2
  239. package/dist/rootReducer.d.ts +96 -49
  240. package/dist/services/accountService.d.ts +13 -12
  241. package/dist/services/api.d.ts +3 -3
  242. package/dist/services/classService.d.ts +1 -1
  243. package/dist/services/emailTemplateService.d.ts +6 -6
  244. package/dist/services/faqService.d.ts +6 -6
  245. package/dist/services/fileServices.d.ts +13 -13
  246. package/dist/services/galleryService.d.ts +2 -2
  247. package/dist/services/languageService.d.ts +1 -0
  248. package/dist/services/mailCategoryService.d.ts +1 -1
  249. package/dist/services/notificationService.d.ts +7 -7
  250. package/dist/services/questionCategoryService.d.ts +1 -1
  251. package/dist/services/schoolService.d.ts +1 -0
  252. package/dist/services/skillService.d.ts +6 -6
  253. package/dist/services/suggestionCategoryService.d.ts +1 -1
  254. package/dist/services/userService.d.ts +21 -9
  255. package/dist/store.d.ts +3 -3
  256. package/dist/types/Conversation.d.ts +8 -8
  257. package/dist/types/ConversationMember.d.ts +5 -5
  258. package/dist/types/Dashboard.d.ts +5 -5
  259. package/dist/types/Filter.d.ts +10 -10
  260. package/dist/types/Language.d.ts +8 -0
  261. package/dist/types/Message.d.ts +13 -13
  262. package/dist/types/Notification.d.ts +8 -8
  263. package/dist/utils/canAccessRoute.d.ts +2 -2
  264. package/dist/utils/constants.d.ts +77 -67
  265. package/dist/utils/debounce.d.ts +2 -2
  266. package/dist/utils/domHelpers.d.ts +2 -2
  267. package/dist/utils/encodeParams.d.ts +2 -2
  268. package/dist/utils/firstCheckToken.d.ts +2 -2
  269. package/dist/utils/generateRandomString.d.ts +2 -2
  270. package/dist/utils/getAccessToken.d.ts +2 -2
  271. package/dist/utils/getCookieValue.d.ts +2 -0
  272. package/dist/utils/getFileUrl.d.ts +2 -2
  273. package/dist/utils/getStaticFileUrl.d.ts +2 -0
  274. package/dist/utils/getTextFromHTML.d.ts +2 -2
  275. package/dist/utils/utcToLocalTime.d.ts +2 -2
  276. package/package.json +68 -77
  277. package/dist/components/Alerts/ReactNotification.d.ts +0 -4
  278. package/dist/containers/Login/constant/type.d.ts +0 -5
  279. package/dist/containers/Login/views/ModelSelectRole.d.ts +0 -4
  280. package/dist/index.css +0 -658
  281. package/dist/index.js.map +0 -1
  282. package/dist/index.modern.js.map +0 -1
  283. package/dist/index.test.d.ts +0 -1
  284. package/dist/layouts/TheFooter.d.ts +0 -3
  285. package/dist/layouts/TheHeader.d.ts +0 -3
  286. package/dist/layouts/TheHeaderDropdown.d.ts +0 -3
  287. package/dist/layouts/TheLanguageDropdown.d.ts +0 -3
  288. package/dist/layouts/TheLayout.d.ts +0 -4
  289. package/dist/layouts/TheSidebar.d.ts +0 -3
  290. package/dist/types/Payload.d.ts +0 -15
  291. package/dist/utils/amplitude.d.ts +0 -1
@@ -0,0 +1,2337 @@
1
+ import { jsx as a, jsxs as y } from "react/jsx-runtime";
2
+ import { U as Be, s as V, V as Ye, c as M, w as Me, l as Ze, I as Xe, A as xe, b as Qe, G as Te, h as S, W as Ue, L as et, X as tt, Y as at, Z as st, z as nt, C as Je, F as Ge, S as ie, _ as lt, $ as it } from "./index-C95SWLrn.js";
3
+ import { Popover as ot, PopoverBody as rt, Label as pe, Input as ve, FormGroup as we, Button as ae, Row as fe, Col as oe, Table as je, Nav as ct, NavItem as dt, NavLink as mt, TabContent as ut, TabPane as ht, Modal as _e, ModalHeader as Se, ModalBody as be, ModalFooter as Ie, Collapse as gt, Card as pt, CardBody as ft, Tooltip as vt, CardText as yt } from "reactstrap";
4
+ import { c as Nt, g as Ct, r as _t, s as St, a as Le, b as bt, d as It, e as Tt, f as Et, h as At, i as ye, u as Dt, j as wt, T as He } from "./TeacherSelector-B4zvSVhk.js";
5
+ import Ot, { useState as z, useMemo as ce, useCallback as G, useEffect as U, useRef as ke, Fragment as ze } from "react";
6
+ import { useSelector as Ce, useDispatch as de } from "react-redux";
7
+ import { useNavigate as Rt, useLocation as $t } from "react-router-dom";
8
+ import { useTranslation as ne } from "react-i18next";
9
+ import { A as Ke, a as qe } from "./index.esm-hqKUWCW0.js";
10
+ import { toZonedTime as Bt } from "date-fns-tz";
11
+ function Mt(e, ...l) {
12
+ const s = Nt.bind(
13
+ null,
14
+ l.find((n) => typeof n == "object")
15
+ );
16
+ return l.map(s);
17
+ }
18
+ function xt(e, l, s) {
19
+ const [n, t] = Mt(
20
+ s == null ? void 0 : s.in,
21
+ e,
22
+ l
23
+ );
24
+ return n.getFullYear() - t.getFullYear();
25
+ }
26
+ var H = /* @__PURE__ */ ((e) => (e[e.Id = 0] = "Id", e[e.Name = 1] = "Name", e[e.Email = 2] = "Email", e[e.Age = 3] = "Age", e[e.Role = 4] = "Role", e[e.Status = 5] = "Status", e[e.CreatedAt = 6] = "CreatedAt", e[e.Grade = 7] = "Grade", e[e.Teacher = 8] = "Teacher", e[e.Assistant = 9] = "Assistant", e[e.Counselor = 10] = "Counselor", e[e.SecondaryTeacher = 11] = "SecondaryTeacher", e))(H || {}), Z = /* @__PURE__ */ ((e) => (e[e.Id = 0] = "Id", e[e.Name = 1] = "Name", e[e.Email = 2] = "Email", e[e.Role = 3] = "Role", e[e.Status = 4] = "Status", e[e.Grade = 5] = "Grade", e[e.Teacher = 6] = "Teacher", e[e.Assistant = 7] = "Assistant", e[e.Counselor = 8] = "Counselor", e[e.SecondaryTeacher = 9] = "SecondaryTeacher", e))(Z || {});
27
+ const Ve = {
28
+ value: 10
29
+ }, Lt = {
30
+ searchString: "",
31
+ currentPage: 1,
32
+ pageSize: Ve.value,
33
+ isAssigned: !1
34
+ }, Ne = {
35
+ assistantId: "",
36
+ counselors: [],
37
+ secondaryTeacherId: "",
38
+ teacher: [],
39
+ assistantEmail: "",
40
+ secondaryTeacherEmail: ""
41
+ }, kt = {
42
+ studentId: 0,
43
+ id: "",
44
+ email: "",
45
+ fullName: "",
46
+ gradeLevel: "",
47
+ phoneNumber: "",
48
+ isActive: !0,
49
+ dateOfBirth: "",
50
+ profileImageFileName: "",
51
+ quote: "",
52
+ assistantName: "",
53
+ assistantEmail: "",
54
+ assistantUserId: "",
55
+ counselors: [],
56
+ secondaryTeacherName: "",
57
+ secondaryTeacherEmail: "",
58
+ secondaryTeacherUserId: "",
59
+ teachers: [],
60
+ counselorName: "",
61
+ counselorEmail: "",
62
+ mainTeacherName: "",
63
+ mainTeacherEmail: "",
64
+ teacherUserId: ""
65
+ }, zt = [
66
+ {
67
+ name: "name",
68
+ sortBy: H.Name,
69
+ searchBy: Z.Name,
70
+ className: "align-top",
71
+ getOption: (e) => ({
72
+ label: e || "empty",
73
+ value: e
74
+ })
75
+ },
76
+ {
77
+ name: "email",
78
+ sortBy: H.Email,
79
+ searchBy: Z.Email,
80
+ className: "align-top",
81
+ getOption: (e) => ({
82
+ label: e || "empty",
83
+ value: e
84
+ })
85
+ },
86
+ {
87
+ name: "age",
88
+ sortBy: H.Age,
89
+ className: "align-top"
90
+ },
91
+ {
92
+ name: "role",
93
+ sortBy: H.Role,
94
+ searchBy: Z.Role,
95
+ className: "align-top",
96
+ getOption: (e) => {
97
+ var l;
98
+ return {
99
+ label: e ? (l = e == null ? void 0 : e.replace) == null ? void 0 : l.call(e, "SecondaryTeacher", "SupportTeacher") : "empty",
100
+ value: e
101
+ };
102
+ }
103
+ },
104
+ {
105
+ name: "active_status",
106
+ sortBy: H.Status,
107
+ searchBy: Z.Status,
108
+ className: "align-top",
109
+ options: [
110
+ {
111
+ label: "Active",
112
+ value: "true"
113
+ },
114
+ {
115
+ label: "Inactive",
116
+ value: "false"
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ name: "created_time",
122
+ sortBy: H.CreatedAt,
123
+ className: "align-top"
124
+ },
125
+ {
126
+ name: "action",
127
+ className: "text-center"
128
+ }
129
+ ], Ft = {
130
+ currentPage: 1,
131
+ pageSize: 200
132
+ }, Pt = {
133
+ searchString: "",
134
+ currentPage: 1,
135
+ pageSize: Ve.value
136
+ }, Jt = {
137
+ [H.Id]: "filter-id",
138
+ [H.Name]: "filter-name",
139
+ [H.Email]: "filter-email",
140
+ [H.Age]: "filter-age",
141
+ [H.Role]: "filter-role",
142
+ [H.Status]: "filter-status",
143
+ [H.CreatedAt]: "filter-createdAt",
144
+ [H.Grade]: "filter-grade",
145
+ [H.Teacher]: "filter-teacher",
146
+ [H.Assistant]: "filter-assistant",
147
+ [H.Counselor]: "filter-counselor",
148
+ [H.SecondaryTeacher]: "filter-secondary"
149
+ }, Fe = [
150
+ { label: "K", value: "K" },
151
+ { label: "G", value: "G" },
152
+ { label: "1", value: "1" },
153
+ { label: "2", value: "2" },
154
+ { label: "3", value: "3" },
155
+ { label: "4", value: "4" },
156
+ { label: "5", value: "5" },
157
+ { label: "6", value: "6" }
158
+ ], Gt = [
159
+ "K",
160
+ "G",
161
+ "1",
162
+ "2",
163
+ "3",
164
+ "4",
165
+ "5",
166
+ "6"
167
+ ], Pe = {
168
+ assistantRemoveUserId: [],
169
+ counselorRemoveUserIds: [],
170
+ teacherRemoveUserIds: [],
171
+ teacherSwitchDataUserId: "",
172
+ assistantSwitchDataUserId: "",
173
+ counselorSwitchDataUserId: ""
174
+ }, jt = () => {
175
+ const [e, l] = z(Pt);
176
+ return { filters: e, setFilters: l, changeFilters: (n) => {
177
+ const t = {
178
+ ...e,
179
+ ...n
180
+ };
181
+ t.searchString && n.searchString && n.searchString != e.searchString && (t.currentPage = 1), l(t);
182
+ } };
183
+ }, Ht = "/admin/user", Kt = "/admin/create-user", qt = "User list", Vt = "/home", Wt = "/home", Yt = "/admin/home", Zt = "/parent", Xt = "/admin/schools", Qt = "/my-student?isReadOnly=true", Ut = 12, ea = 20, ta = () => {
184
+ const e = Rt(), s = new URLSearchParams(location.search).get("query"), n = Ce((f) => f.users.userList), t = Ce((f) => f.users.totalItems), m = Ce((f) => {
185
+ var A;
186
+ return (A = f.common) == null ? void 0 : A.defaultFontSize;
187
+ }), { filters: v, changeFilters: r } = jt(), g = s || "", { t: N } = ne(), h = ce(() => m == ea ? "font-large" : m == Ut ? "font-small" : "", [m]), d = window.location.host.includes("-district"), o = de(), p = G(
188
+ async () => {
189
+ var f, A;
190
+ if (v.searchBy !== void 0 && v.searchByStrings !== void 0 && v.searchByStrings.length === 0) {
191
+ o(Be({ userList: [], totalItems: 0 }));
192
+ return;
193
+ }
194
+ o(V(!0));
195
+ try {
196
+ const O = await Ct(v), { items: x, totalItems: J } = O.data;
197
+ for (const $ of x)
198
+ $.roles = $.roles.includes("EduTeacher") ? [...$.roles.filter((L) => L !== "EduTeacher"), Ye.EDUTEACHER] : $.roles;
199
+ o(Be({ userList: x, totalItems: J }));
200
+ } catch (O) {
201
+ o(
202
+ M({
203
+ type: "danger",
204
+ message: ((A = (f = O.response) == null ? void 0 : f.data) == null ? void 0 : A.title) || O.message
205
+ })
206
+ );
207
+ }
208
+ o(V(!1));
209
+ },
210
+ [o, JSON.stringify(v)]
211
+ );
212
+ U(() => {
213
+ document.title = qt;
214
+ }, []), U(() => {
215
+ r({
216
+ ...v,
217
+ searchString: g
218
+ });
219
+ }, [g]), U(() => {
220
+ p();
221
+ }, [JSON.stringify(v)]);
222
+ const w = G(
223
+ (f) => {
224
+ var A, O;
225
+ o(V(!0));
226
+ try {
227
+ o(
228
+ Me({
229
+ isOpen: !0,
230
+ type: "warning",
231
+ message: N("do_you_want_to_remove_this_user"),
232
+ onConfirm: async () => {
233
+ await c(f);
234
+ }
235
+ })
236
+ );
237
+ } catch (x) {
238
+ o(
239
+ M({
240
+ type: "danger",
241
+ message: ((O = (A = x.response) == null ? void 0 : A.data) == null ? void 0 : O.title) || x.message
242
+ })
243
+ );
244
+ }
245
+ o(V(!1));
246
+ },
247
+ [v]
248
+ ), c = G(
249
+ async (f) => {
250
+ var A, O;
251
+ o(V(!0));
252
+ try {
253
+ await _t(f), o(
254
+ M({
255
+ type: "success",
256
+ message: "Remove user successfully"
257
+ })
258
+ ), v.currentPage !== 1 ? r({ currentPage: 1 }) : p();
259
+ } catch (x) {
260
+ o(
261
+ M({
262
+ type: "danger",
263
+ message: ((O = (A = x.response) == null ? void 0 : A.data) == null ? void 0 : O.title) || x.message
264
+ })
265
+ );
266
+ }
267
+ o(V(!1));
268
+ },
269
+ [v]
270
+ ), C = (f) => {
271
+ const {
272
+ token: A,
273
+ id: O,
274
+ firstName: x,
275
+ lastName: J,
276
+ roles: $,
277
+ email: L,
278
+ profileImageFileName: X
279
+ } = f.data;
280
+ sessionStorage.getItem(Xe) ? sessionStorage.setItem(xe, A) : localStorage.setItem(xe, A), $.includes("Admin") && localStorage.setItem("ROLES", "Admin"), o(
281
+ Qe({
282
+ id: O,
283
+ firstName: x,
284
+ lastName: J,
285
+ roles: $,
286
+ email: L,
287
+ profileImageFileName: X
288
+ })
289
+ ), d ? e(Xt) : $.includes("Admin") ? e(Yt) : $.includes("Teacher") || $.includes("Assistant") || $.includes("Counselor") ? e(Vt) : $.includes("Student") ? e(Wt) : $.includes("Parent") ? e(Zt) : $.includes("EduTeacher") && e(Qt);
290
+ }, u = G(
291
+ async (f) => {
292
+ var A, O, x;
293
+ if ((A = f == null ? void 0 : f.roles) != null && A.includes("Parent")) {
294
+ o(
295
+ M({
296
+ type: "danger",
297
+ message: "Can't impersonate!"
298
+ })
299
+ );
300
+ return;
301
+ }
302
+ o(V(!0));
303
+ try {
304
+ const $ = (await St((f == null ? void 0 : f.id) || "")).data;
305
+ o(
306
+ Me({
307
+ isOpen: !0,
308
+ type: "warning",
309
+ message: N("do_you_want_to_impersonate_this_user"),
310
+ onConfirm: async () => {
311
+ var L, X;
312
+ o(V(!0));
313
+ try {
314
+ const j = {
315
+ email: $.email,
316
+ password: "default",
317
+ accessToken: $.token
318
+ }, le = await Ze(j);
319
+ localStorage.clear(), C(le);
320
+ } catch (j) {
321
+ M({
322
+ type: "danger",
323
+ message: ((X = (L = j.response) == null ? void 0 : L.data) == null ? void 0 : X.title) || j.message
324
+ });
325
+ }
326
+ o(V(!1));
327
+ }
328
+ })
329
+ );
330
+ } catch (J) {
331
+ o(
332
+ M({
333
+ type: "danger",
334
+ message: ((x = (O = J.response) == null ? void 0 : O.data) == null ? void 0 : x.title) || J.message
335
+ })
336
+ );
337
+ }
338
+ o(V(!1));
339
+ },
340
+ [v]
341
+ );
342
+ return {
343
+ fullName: g,
344
+ userList: n,
345
+ totalItems: t,
346
+ filters: v,
347
+ queryName: s,
348
+ getData: p,
349
+ removeData: w,
350
+ changeFilters: r,
351
+ reDirectDetailPage: (f) => {
352
+ const A = f ? `${Ht}/${f}` : Kt;
353
+ e(A);
354
+ },
355
+ switchUser: u,
356
+ classFontSize: h
357
+ };
358
+ };
359
+ function aa(e) {
360
+ return Te({ attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "M21,3H5C4.447,3,4,3.447,4,4v2.59c0,0.523,0.213,1.037,0.583,1.407L10,13.414V21c0,0.347,0.18,0.668,0.475,0.851 C10.635,21.95,10.817,22,11,22c0.153,0,0.306-0.035,0.447-0.105l4-2C15.786,19.725,16,19.379,16,19v-5.586l5.417-5.417 C21.787,7.627,22,7.113,22,6.59V4C22,3.447,21.553,3,21,3z M14.293,12.293C14.105,12.48,14,12.734,14,13v5.382l-2,1V13 c0-0.266-0.105-0.52-0.293-0.707L6,6.59V5h14.001l0.002,1.583L14.293,12.293z" } }] })(e);
361
+ }
362
+ function sa(e) {
363
+ return Te({ attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "M19.023,16.977c-0.513-0.488-1.004-0.997-1.367-1.384c-0.372-0.378-0.596-0.653-0.596-0.653l-2.8-1.337 C15.34,12.37,16,10.763,16,9c0-3.859-3.14-7-7-7S2,5.141,2,9s3.14,7,7,7c1.763,0,3.37-0.66,4.603-1.739l1.337,2.8 c0,0,0.275,0.224,0.653,0.596c0.387,0.363,0.896,0.854,1.384,1.367c0.494,0.506,0.988,1.012,1.358,1.392 c0.362,0.388,0.604,0.646,0.604,0.646l2.121-2.121c0,0-0.258-0.242-0.646-0.604C20.035,17.965,19.529,17.471,19.023,16.977z M9,14 c-2.757,0-5-2.243-5-5s2.243-5,5-5s5,2.243,5,5S11.757,14,9,14z" } }] })(e);
364
+ }
365
+ function na(e) {
366
+ return Te({ attr: { viewBox: "0 0 20 20", fill: "currentColor" }, child: [{ tag: "path", attr: { fillRule: "evenodd", d: "M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z", clipRule: "evenodd" } }] })(e);
367
+ }
368
+ const la = (e, l) => {
369
+ U(() => {
370
+ function s(n) {
371
+ e.current && !e.current.contains(n.target) && (l == null || l());
372
+ }
373
+ return document.addEventListener("mousedown", s), () => {
374
+ document.removeEventListener("mousedown", s);
375
+ };
376
+ }, [e.current]);
377
+ }, ia = (e) => {
378
+ const {
379
+ isOpen: l,
380
+ sortBy: s,
381
+ filters: n,
382
+ users: t,
383
+ searchBy: m,
384
+ defaultOptions: v,
385
+ selectedOptions: r,
386
+ searchKey: g,
387
+ onChangeSearchKey: N,
388
+ onOptionsChange: h,
389
+ onSearch: d,
390
+ onClose: o,
391
+ onChangeFilters: p,
392
+ getOption: w
393
+ } = e, [c, C] = z(), [u, I] = z([]), f = ke(null), A = ke(null);
394
+ la(f, o);
395
+ const { t: O } = ne(), x = G(
396
+ () => {
397
+ var W;
398
+ if (!l) return;
399
+ const F = ((W = g == null ? void 0 : g.trim) == null ? void 0 : W.call(g)) ?? "";
400
+ m != null && !v && (d == null || d(F, m)), m != null && v && I(v.filter((K) => K.label.toLowerCase().includes(F.toLowerCase())));
401
+ },
402
+ [m, g, JSON.stringify(v), l]
403
+ ), J = () => {
404
+ A.current && clearTimeout(A.current), A.current = setTimeout(x, 500);
405
+ }, $ = (F) => {
406
+ const W = F.target.value;
407
+ N(W);
408
+ }, L = G(() => {
409
+ h == null || h(c, m), o == null || o();
410
+ }, [JSON.stringify(c)]), X = G((F) => {
411
+ const W = F.target.value ?? "";
412
+ let K = c ?? [], ee = K.indexOf(W);
413
+ ee > -1 ? K.splice(ee, 1) : K = [...K, W], C(K == null ? K : [...K]);
414
+ }, [JSON.stringify(c)]), j = G((F) => {
415
+ const W = F.target.checked;
416
+ C(W ? void 0 : []);
417
+ }, []), le = G(() => {
418
+ p == null || p({
419
+ ...n,
420
+ sortBy: s,
421
+ isDescending: !0,
422
+ currentPage: 1
423
+ }), o == null || o();
424
+ }, [JSON.stringify(n), m]), k = G(() => {
425
+ p == null || p({
426
+ ...n,
427
+ sortBy: s,
428
+ isDescending: !1,
429
+ currentPage: 1
430
+ }), o == null || o();
431
+ }, [JSON.stringify(n), m]), B = ce(() => w ? t.map((F) => w(F, O)) : [], [JSON.stringify(t), JSON.stringify(w)]), D = (n == null ? void 0 : n.isDescending) == !1 && n.sortBy === s, Y = !!(n != null && n.isDescending) && n.sortBy === s;
432
+ return U(() => {
433
+ (n == null ? void 0 : n.searchBy) !== m ? C(void 0) : C(r);
434
+ }, [JSON.stringify(r), n == null ? void 0 : n.searchBy]), U(() => {
435
+ I(v || []);
436
+ }, [JSON.stringify(v)]), U(() => {
437
+ J();
438
+ }, [g, l]), {
439
+ ref: f,
440
+ options: B,
441
+ inputRef: A,
442
+ sOptions: c,
443
+ isAscending: D,
444
+ isDescending: Y,
445
+ filteredOptions: u,
446
+ searchKey: g,
447
+ handleSearch: x,
448
+ handleApplyFilter: L,
449
+ handleOptionSelected: X,
450
+ handleOptionSelectedAll: j,
451
+ handleSortDesc: le,
452
+ handleSortAsc: k,
453
+ handleChangeSearchKey: $
454
+ };
455
+ }, oa = (e) => {
456
+ const {
457
+ defaultOptions: l,
458
+ onClose: s,
459
+ getOption: n
460
+ } = e, {
461
+ ref: t,
462
+ inputRef: m,
463
+ options: v,
464
+ sOptions: r,
465
+ isAscending: g,
466
+ isDescending: N,
467
+ filteredOptions: h,
468
+ searchKey: d,
469
+ handleChangeSearchKey: o,
470
+ handleApplyFilter: p,
471
+ handleOptionSelected: w,
472
+ handleOptionSelectedAll: c,
473
+ handleSortDesc: C,
474
+ handleSortAsc: u
475
+ } = ia(e);
476
+ return /* @__PURE__ */ a(ot, { ...e, hideArrow: !0, children: /* @__PURE__ */ a(rt, { className: "pb-3", children: /* @__PURE__ */ y("div", { ref: t, className: S.popover, children: [
477
+ /* @__PURE__ */ y(
478
+ "div",
479
+ {
480
+ className: `d-flex flex-column ${S.popover__sort}`,
481
+ children: [
482
+ /* @__PURE__ */ a(pe, { className: "font-weight-bold", children: "Sort" }),
483
+ /* @__PURE__ */ y(
484
+ "div",
485
+ {
486
+ className: `px-1 ${S.popover__sort__item} ${g && S["popover__sort__item--active"]}`,
487
+ onClick: u,
488
+ children: [
489
+ /* @__PURE__ */ a(Ke, { className: "mr-1" }),
490
+ "Ascending"
491
+ ]
492
+ }
493
+ ),
494
+ /* @__PURE__ */ y(
495
+ "div",
496
+ {
497
+ className: `px-1 mt-1 ${S.popover__sort__item} ${N && S["popover__sort__item--active"]}`,
498
+ onClick: C,
499
+ children: [
500
+ /* @__PURE__ */ a(qe, { className: "mr-1" }),
501
+ "Descending"
502
+ ]
503
+ }
504
+ )
505
+ ]
506
+ }
507
+ ),
508
+ (typeof n < "u" || !!l) && /* @__PURE__ */ y(Ot.Fragment, { children: [
509
+ /* @__PURE__ */ a("div", { className: "border border-top-1 border-bottom-0 mx-1 my-2" }),
510
+ /* @__PURE__ */ y("div", { className: "d-flex flex-column", children: [
511
+ /* @__PURE__ */ a(pe, { className: "font-weight-bold", children: "Filter" }),
512
+ /* @__PURE__ */ y("div", { className: `position-relative px-1 ${S.popover__search}`, children: [
513
+ /* @__PURE__ */ a(
514
+ sa,
515
+ {
516
+ className: `position-absolute ${S.popover__search__icon}`
517
+ }
518
+ ),
519
+ /* @__PURE__ */ a(
520
+ ve,
521
+ {
522
+ ref: m,
523
+ className: S.popover__search__input,
524
+ value: d,
525
+ onChange: o
526
+ }
527
+ )
528
+ ] }),
529
+ /* @__PURE__ */ y(
530
+ "div",
531
+ {
532
+ className: `mx-1 mt-2 p-2 bg-light ${S.popover__options}`,
533
+ children: [
534
+ /* @__PURE__ */ y(
535
+ we,
536
+ {
537
+ className: "d-flex align-items-center",
538
+ check: !0,
539
+ children: [
540
+ /* @__PURE__ */ a(
541
+ ve,
542
+ {
543
+ type: "checkbox",
544
+ onChange: c,
545
+ checked: r == null
546
+ }
547
+ ),
548
+ " ",
549
+ /* @__PURE__ */ a(pe, { check: !0, children: "(Select all)" })
550
+ ]
551
+ }
552
+ ),
553
+ !!n && !l && v.map((I) => /* @__PURE__ */ y(
554
+ we,
555
+ {
556
+ className: "d-flex align-items-center",
557
+ check: !0,
558
+ children: [
559
+ /* @__PURE__ */ a(
560
+ ve,
561
+ {
562
+ type: "checkbox",
563
+ value: I.value,
564
+ onChange: w,
565
+ checked: (r == null ? void 0 : r.includes(I.value)) || r == null
566
+ }
567
+ ),
568
+ " ",
569
+ /* @__PURE__ */ a(pe, { check: !0, children: I.label })
570
+ ]
571
+ },
572
+ I.value
573
+ )),
574
+ !!l && h.map((I) => /* @__PURE__ */ y(
575
+ we,
576
+ {
577
+ className: "d-flex align-items-center",
578
+ check: !0,
579
+ children: [
580
+ /* @__PURE__ */ a(
581
+ ve,
582
+ {
583
+ type: "checkbox",
584
+ value: I.value,
585
+ onChange: w,
586
+ checked: (r == null ? void 0 : r.includes(I.value)) || r == null
587
+ }
588
+ ),
589
+ " ",
590
+ /* @__PURE__ */ a(pe, { check: !0, children: I.label })
591
+ ]
592
+ },
593
+ I.value
594
+ ))
595
+ ]
596
+ }
597
+ )
598
+ ] }),
599
+ /* @__PURE__ */ y("div", { className: "d-flex justify-content-end mt-3", children: [
600
+ /* @__PURE__ */ a(
601
+ ae,
602
+ {
603
+ color: "primary",
604
+ className: "mr-2",
605
+ size: "sm",
606
+ onClick: p,
607
+ children: "Apply Filter"
608
+ }
609
+ ),
610
+ /* @__PURE__ */ a(
611
+ ae,
612
+ {
613
+ color: "secondary",
614
+ size: "sm",
615
+ onClick: s,
616
+ children: "Cancel"
617
+ }
618
+ )
619
+ ] })
620
+ ] })
621
+ ] }) }) });
622
+ }, ra = ({
623
+ data: e,
624
+ popoverId: l,
625
+ filters: s,
626
+ searchString: n,
627
+ users: t,
628
+ selectedOptions: m,
629
+ onOptionsChange: v,
630
+ onSearch: r,
631
+ onChangeFilters: g,
632
+ onOpenFilter: N,
633
+ onClose: h
634
+ }) => {
635
+ var I;
636
+ const { t: d } = ne(), [o, p] = z(""), w = ce(
637
+ () => e.sortBy != null ? Jt[e.sortBy] : "",
638
+ [e.sortBy]
639
+ ), c = ce(() => l === w, [w, l]), C = () => {
640
+ N == null || N(w, e.searchBy, o, e.sortBy);
641
+ }, u = (f) => {
642
+ p(f);
643
+ };
644
+ return /* @__PURE__ */ a("th", { className: e.className, children: w && e.sortBy !== void 0 ? /* @__PURE__ */ y("div", { className: `w-100 d-flex justify-content-between align-items-center ${S["table-filter-icon"]}`, children: [
645
+ d(e.name),
646
+ /* @__PURE__ */ y(
647
+ "div",
648
+ {
649
+ className: "ml-2 p-1",
650
+ id: w,
651
+ onClick: C,
652
+ style: {
653
+ cursor: "pointer"
654
+ },
655
+ children: [
656
+ e.sortBy !== void 0 && e.sortBy === (s == null ? void 0 : s.sortBy) && /* @__PURE__ */ a("span", { children: s.isDescending ? /* @__PURE__ */ a(qe, {}) : /* @__PURE__ */ a(Ke, {}) }),
657
+ (I = s == null ? void 0 : s.searchByStrings) != null && I.length && e.searchBy === (s == null ? void 0 : s.searchBy) ? /* @__PURE__ */ a(na, {}) : /* @__PURE__ */ a(aa, {})
658
+ ]
659
+ }
660
+ ),
661
+ /* @__PURE__ */ a(
662
+ oa,
663
+ {
664
+ placement: "bottom-end",
665
+ target: w,
666
+ users: t,
667
+ isOpen: c,
668
+ filters: s,
669
+ sortBy: e.sortBy,
670
+ searchKey: o,
671
+ searchBy: e.searchBy,
672
+ searchString: n,
673
+ defaultOptions: e.options,
674
+ selectedOptions: m,
675
+ onClose: h,
676
+ onSearch: r,
677
+ getOption: e.getOption,
678
+ onChangeFilters: g,
679
+ onOptionsChange: v,
680
+ onChangeSearchKey: u
681
+ }
682
+ )
683
+ ] }) : d(e.name) });
684
+ }, ca = (e) => {
685
+ const {
686
+ filters: l,
687
+ onChangeFilters: s,
688
+ teacherOptions: n,
689
+ assistantOptions: t,
690
+ counselorOptions: m,
691
+ isStudentList: v
692
+ } = e, [r, g] = z(), [N, h] = z([]), [d, o] = z({
693
+ ...Ft,
694
+ isDescending: l.isDescending,
695
+ searchString: l.searchString
696
+ }), p = de(), w = $t(), c = G(
697
+ async (A) => {
698
+ var O, x, J;
699
+ try {
700
+ const L = ((O = (v ? await Le({ ...d, isAssignStudentList: A }) : await Le(d)).data) == null ? void 0 : O.items) || [];
701
+ h(L);
702
+ } catch ($) {
703
+ p(
704
+ M({
705
+ type: "danger",
706
+ message: ((J = (x = $.response) == null ? void 0 : x.data) == null ? void 0 : J.title) || $.message
707
+ })
708
+ );
709
+ }
710
+ },
711
+ [JSON.stringify(d), v]
712
+ ), C = G((A, O, x, J) => {
713
+ g(A), o({
714
+ ...d,
715
+ searchBy: O,
716
+ searchStringBy: x,
717
+ isDescending: l.sortBy === J ? l.isDescending : void 0,
718
+ searchString: l.searchString
719
+ });
720
+ }, [JSON.stringify(d), l.isDescending, l.searchString]), u = () => {
721
+ g("");
722
+ }, I = G((A, O) => {
723
+ o({
724
+ ...d,
725
+ searchBy: O,
726
+ searchStringBy: A
727
+ });
728
+ }, [JSON.stringify(d)]), f = G((A, O) => {
729
+ O && (s == null || s({
730
+ ...l,
731
+ [Z[O]]: A,
732
+ currentPage: 1
733
+ }));
734
+ }, [JSON.stringify(l)]);
735
+ return U(() => {
736
+ !(w.pathname.includes("users/assign-student") && d.searchBy !== void 0) && d.searchBy !== void 0 && c();
737
+ }, [
738
+ JSON.stringify(d),
739
+ w.pathname
740
+ ]), U(() => {
741
+ var x;
742
+ if (!w.pathname.includes("users/assign-student")) return;
743
+ const A = (J) => J.sort(($, L) => $.localeCompare(L)), O = ((x = d.searchStringBy) == null ? void 0 : x.toLowerCase()) || "";
744
+ if (d.searchBy === Z.Grade)
745
+ h(Gt);
746
+ else {
747
+ let J = [];
748
+ switch (d.searchBy) {
749
+ case Z.Name:
750
+ c(!0);
751
+ break;
752
+ case Z.Teacher:
753
+ J = (n == null ? void 0 : n.map((j) => j.label).filter(Boolean)) || [];
754
+ break;
755
+ case Z.Assistant:
756
+ J = (t == null ? void 0 : t.map((j) => j.label).filter(Boolean)) || [];
757
+ break;
758
+ case Z.Counselor:
759
+ J = (m == null ? void 0 : m.map((j) => j.label).filter(Boolean)) || [];
760
+ break;
761
+ }
762
+ const $ = Array.from(new Set(J)), L = O ? $.filter(
763
+ (j) => j.toLowerCase().includes(O)
764
+ ) : $, X = A(L);
765
+ h(X);
766
+ }
767
+ }, [
768
+ JSON.stringify(d),
769
+ n,
770
+ t,
771
+ m,
772
+ w.pathname
773
+ ]), {
774
+ popoverFilters: d,
775
+ popoverId: r,
776
+ users: N,
777
+ handleFilterIcon: C,
778
+ handleCloseFilter: u,
779
+ handleSearch: I,
780
+ handleChangeFilters: f
781
+ };
782
+ }, We = ({
783
+ headers: e,
784
+ filters: l,
785
+ onChangeFilters: s,
786
+ teacherOptions: n,
787
+ assistantOptions: t,
788
+ counselorOptions: m,
789
+ isStudentList: v
790
+ }) => {
791
+ const {
792
+ popoverId: r,
793
+ users: g,
794
+ handleFilterIcon: N,
795
+ handleCloseFilter: h,
796
+ handleSearch: d,
797
+ handleChangeFilters: o
798
+ } = ca({
799
+ filters: l,
800
+ onChangeFilters: s,
801
+ teacherOptions: n,
802
+ assistantOptions: t,
803
+ counselorOptions: m,
804
+ isStudentList: v
805
+ }), p = Object.entries(l).filter(
806
+ ([C, u]) => u !== "" && !(Array.isArray(u) && u.length === 0) && u !== null && u !== void 0
807
+ ).map(([C]) => C), w = Object.entries(Z).filter(([C, u]) => isNaN(Number(C))), c = p.map((C) => w.find(([u]) => u === C)).filter((C) => !!C);
808
+ return /* @__PURE__ */ a("tr", { children: e.map((C) => C.onSelectAll ? /* @__PURE__ */ a("th", { className: `align-middle text-center ${C.className}`, children: /* @__PURE__ */ a(
809
+ "input",
810
+ {
811
+ type: "checkbox",
812
+ onChange: () => {
813
+ var u;
814
+ return (u = C.onSelectAll) == null ? void 0 : u.call(C);
815
+ },
816
+ checked: C.isCheckAll ?? !1
817
+ }
818
+ ) }, C.name) : /* @__PURE__ */ a(
819
+ ra,
820
+ {
821
+ users: g,
822
+ data: C,
823
+ isCenter: C.isCenter,
824
+ filters: l,
825
+ popoverId: r,
826
+ selectedOptions: l.searchByStrings,
827
+ onSearch: d,
828
+ onClose: h,
829
+ onOpenFilter: N,
830
+ onChangeFilters: s,
831
+ onOptionsChange: o,
832
+ isActive: typeof C.searchBy == "number" && c.some(([u, I]) => I === C.searchBy)
833
+ },
834
+ C.name
835
+ )) });
836
+ }, da = () => {
837
+ const {
838
+ fullName: e,
839
+ queryName: l,
840
+ userList: s,
841
+ totalItems: n,
842
+ filters: t,
843
+ removeData: m,
844
+ changeFilters: v,
845
+ reDirectDetailPage: r,
846
+ switchUser: g,
847
+ classFontSize: N
848
+ } = ta(), { t: h } = ne();
849
+ return /* @__PURE__ */ y("div", { className: `fadeIn animated h-100 pt-3 ${S[N]}`, children: [
850
+ /* @__PURE__ */ a("h5", { className: `mb-2 ${S["custom-title-font-size"]}`, children: h("user") }),
851
+ /* @__PURE__ */ y(fe, { className: `my-2 ${S["custom-font-size"]}`, children: [
852
+ /* @__PURE__ */ a(oe, { md: 8, children: /* @__PURE__ */ a(
853
+ Ue,
854
+ {
855
+ text: h("create_user"),
856
+ onClick: () => r(),
857
+ initValue: l || "",
858
+ onSearch: (d) => v({
859
+ searchString: d
860
+ }),
861
+ placeholder: h("type_something_to_search_by_user_name")
862
+ }
863
+ ) }),
864
+ /* @__PURE__ */ y(
865
+ oe,
866
+ {
867
+ md: 4,
868
+ className: `d-flex justify-content-end align-items-center ${S["custom-font-size"]}`,
869
+ children: [
870
+ h("total_of_users"),
871
+ ": ",
872
+ n
873
+ ]
874
+ }
875
+ )
876
+ ] }),
877
+ /* @__PURE__ */ y(fe, { className: "mb-2", children: [
878
+ /* @__PURE__ */ a(oe, { md: 12, children: /* @__PURE__ */ a("div", { children: /* @__PURE__ */ y(je, { bordered: !0, hover: !0, striped: !0, responsive: !0, size: "sm", children: [
879
+ /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ a(
880
+ We,
881
+ {
882
+ headers: zt,
883
+ filters: t,
884
+ fullName: e,
885
+ onChangeFilters: v
886
+ }
887
+ ) }),
888
+ /* @__PURE__ */ y("tbody", { children: [
889
+ s && s.length > 0 && s.map((d) => /* @__PURE__ */ y("tr", { children: [
890
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: /* @__PURE__ */ a(
891
+ et,
892
+ {
893
+ label: `${d.fullName}`,
894
+ onClick: () => r(
895
+ d.id
896
+ )
897
+ }
898
+ ) }),
899
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: d.email }),
900
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: d.dateOfBirth !== tt && xt(
901
+ /* @__PURE__ */ new Date(),
902
+ Bt(
903
+ d.dateOfBirth,
904
+ Intl.DateTimeFormat().resolvedOptions().timeZone
905
+ )
906
+ ) }),
907
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: !!d.roles && d.roles.map((o) => o === "SecondaryTeacher" ? "SupportTeacher" : o).join(", ") }),
908
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: h(d.isActive ? "active" : "inactive") }),
909
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: at(d == null ? void 0 : d.createTime, "yyyy-MM-DD HH:mm") }),
910
+ /* @__PURE__ */ y("td", { className: `align-middle text-center ${S["custom-font-size"]}`, children: [
911
+ /* @__PURE__ */ a(
912
+ st,
913
+ {
914
+ style: { fontSize: "18px", marginRight: "10px", cursor: "pointer" },
915
+ onClick: () => g(d)
916
+ }
917
+ ),
918
+ /* @__PURE__ */ a(
919
+ nt,
920
+ {
921
+ onClick: () => m(d.id)
922
+ }
923
+ )
924
+ ] })
925
+ ] }, d.id)),
926
+ (!s || !s.length) && /* @__PURE__ */ a("tr", { children: /* @__PURE__ */ a("td", { colSpan: 12, className: "p-0", children: /* @__PURE__ */ a(Je, { className: "mb-0", label: h("user") }) }) })
927
+ ] })
928
+ ] }) }) }),
929
+ /* @__PURE__ */ a(oe, { md: 12, children: /* @__PURE__ */ a(
930
+ Ge,
931
+ {
932
+ filters: t,
933
+ totalRecordCount: n,
934
+ changePageSize: (d) => v({ pageSize: d }),
935
+ changePage: (d) => v({ currentPage: d }),
936
+ className: `${S["custom-font-size"]}`
937
+ }
938
+ ) })
939
+ ] })
940
+ ] });
941
+ }, ma = 12, ua = 20, ha = () => {
942
+ const e = de(), [l, s] = z([]), [n, t] = z(Lt), [m, v] = z(0), [r, g] = z(!1), [N, h] = z([]), d = Ce((k) => {
943
+ var B;
944
+ return (B = k.common) == null ? void 0 : B.defaultFontSize;
945
+ }), [o, p] = z([]), [w, c] = z(kt), [C, u] = z(null), I = (k) => {
946
+ u((B) => B === k ? null : k);
947
+ }, f = ce(() => d == ua ? "font-large" : d == ma ? "font-small" : "", [d]), A = (k) => {
948
+ const B = {
949
+ ...n,
950
+ ...k
951
+ };
952
+ B.searchString && k.searchString && k.searchString != n.searchString && (B.currentPage = 1), t(B);
953
+ }, O = G((k) => {
954
+ k !== n.sortBy ? A({
955
+ sortBy: k,
956
+ orderBy: "ASC",
957
+ currentPage: 1
958
+ }) : A({
959
+ sortBy: k,
960
+ orderBy: n.orderBy !== "DESC" ? "DESC" : "ASC",
961
+ currentPage: 1
962
+ });
963
+ }, [JSON.stringify(n)]), x = async () => {
964
+ var k, B, D, Y;
965
+ e(V(!0));
966
+ try {
967
+ const F = Object.entries(n).filter(([ee, re]) => re !== void 0).reduce((ee, [re, me]) => (ee[re] = me, ee), {}), W = {};
968
+ for (const ee in F) {
969
+ const re = ee.charAt(0).toLowerCase() + ee.slice(1);
970
+ W[re] = F[ee];
971
+ }
972
+ const K = await bt(W);
973
+ s((k = K == null ? void 0 : K.data) == null ? void 0 : k.items), v((B = K == null ? void 0 : K.data) == null ? void 0 : B.totalItems);
974
+ } catch (F) {
975
+ e(
976
+ M({
977
+ type: "danger",
978
+ message: ((Y = (D = F.response) == null ? void 0 : D.data) == null ? void 0 : Y.title) || F.message
979
+ })
980
+ );
981
+ }
982
+ e(V(!1));
983
+ }, J = () => {
984
+ g(!r), h(l.map((k) => k.id)), p(l), r && (h([]), p([]));
985
+ }, $ = (k) => {
986
+ const { id: B, checked: D } = k.target;
987
+ if (D) {
988
+ h((F) => [...F, B]);
989
+ const Y = l.find((F) => F.id === B);
990
+ Y && p((F) => [...F, Y]);
991
+ } else
992
+ h((Y) => Y.filter((F) => F !== B)), p((Y) => Y.filter((F) => F.id !== B));
993
+ }, L = G(() => {
994
+ n.currentPage == 1 ? x() : A({ currentPage: 1 }), h([]), p([]), g(!1);
995
+ }, [JSON.stringify(n)]);
996
+ U(() => {
997
+ x();
998
+ }, [JSON.stringify(n)]), U(() => {
999
+ document.title = "User | Assign student";
1000
+ }, []);
1001
+ const X = ce(() => {
1002
+ const k = l.filter((D) => N.includes(D.id)).flatMap((D) => D.teachers), B = /* @__PURE__ */ new Map();
1003
+ return k.forEach((D) => {
1004
+ B.has(D.teacherUserId) || B.set(D.teacherUserId, D);
1005
+ }), Array.from(B.values()).map((D) => ({
1006
+ value: D.teacherUserId,
1007
+ label: D.mainTeacherEmail
1008
+ }));
1009
+ }, [o, N]), j = ce(() => {
1010
+ const k = l.filter((D) => N.includes(D.id)).flatMap((D) => D.counselors), B = /* @__PURE__ */ new Map();
1011
+ return k.forEach((D) => {
1012
+ B.has(D.counselorUserId) || B.set(D.counselorUserId, D);
1013
+ }), Array.from(B.values()).map((D) => ({
1014
+ value: D.counselorUserId,
1015
+ label: D.counselorEmail
1016
+ }));
1017
+ }, [o, N]), le = ce(() => {
1018
+ const k = l.filter((D) => N.includes(D.id) && D.assistantUserId).map((D) => ({
1019
+ value: D.assistantUserId,
1020
+ label: D.assistantEmail
1021
+ })), B = /* @__PURE__ */ new Map();
1022
+ return k.forEach((D) => {
1023
+ B.has(D.value) || B.set(D.value, D);
1024
+ }), Array.from(B.values());
1025
+ }, [l, N]);
1026
+ return {
1027
+ handelSort: O,
1028
+ handleRetrievedData: L,
1029
+ totalItem: m,
1030
+ userList: l,
1031
+ filters: n,
1032
+ changeFilters: A,
1033
+ handleSelectAll: J,
1034
+ handleClickCheck: $,
1035
+ isCheckAll: r,
1036
+ isCheck: N,
1037
+ classFontSize: f,
1038
+ selectedUser: w,
1039
+ setSelectedUser: c,
1040
+ userSelected: o,
1041
+ studentTeacherSelected: X,
1042
+ studentCounselorSelected: j,
1043
+ studentAssistantSelected: le,
1044
+ openTooltip: C,
1045
+ toggle: I
1046
+ };
1047
+ }, ga = () => {
1048
+ const e = de(), [l, s] = z([]), [n, t] = z(), m = async () => {
1049
+ var g, N, h, d;
1050
+ try {
1051
+ const o = await It();
1052
+ if (o.data) {
1053
+ const p = ((N = (g = o.data.items).map) == null ? void 0 : N.call(g, (w) => ({
1054
+ label: w.email,
1055
+ value: w.id
1056
+ }))) || [];
1057
+ p.sort((w, c) => w.label.localeCompare(c.label)), s(p);
1058
+ } else
1059
+ s([]);
1060
+ } catch (o) {
1061
+ e(
1062
+ M({
1063
+ type: "danger",
1064
+ message: ((d = (h = o.response) == null ? void 0 : h.data) == null ? void 0 : d.title) || o.message
1065
+ })
1066
+ );
1067
+ }
1068
+ }, v = G((g, N) => {
1069
+ let h = l.find((d) => d.value === g);
1070
+ t({
1071
+ ...n,
1072
+ [N]: h
1073
+ });
1074
+ }, [JSON.stringify(n), JSON.stringify(l)]), r = G((g, N) => {
1075
+ s([
1076
+ ...l,
1077
+ g
1078
+ ]), t({
1079
+ ...n,
1080
+ [N]: g
1081
+ });
1082
+ }, [JSON.stringify(l), JSON.stringify(n)]);
1083
+ return U(() => {
1084
+ m();
1085
+ }, []), {
1086
+ selectedCounselors: n,
1087
+ counselorOptions: l,
1088
+ handleSelectCounselor: v,
1089
+ handleCreateCounselorOption: r,
1090
+ setSelectedCounselors: t
1091
+ };
1092
+ }, pa = () => {
1093
+ const e = de(), [l, s] = z([]), [n, t] = z(), m = async () => {
1094
+ var g, N, h, d;
1095
+ try {
1096
+ const o = await Tt();
1097
+ if (o.data) {
1098
+ const p = ((N = (g = o.data.items).map) == null ? void 0 : N.call(g, (w) => ({
1099
+ label: w.email,
1100
+ value: w.id
1101
+ }))) || [];
1102
+ p.sort((w, c) => w.label.localeCompare(c.label)), s(p);
1103
+ } else
1104
+ s([]);
1105
+ } catch (o) {
1106
+ e(
1107
+ M({
1108
+ type: "danger",
1109
+ message: ((d = (h = o.response) == null ? void 0 : h.data) == null ? void 0 : d.title) || o.message
1110
+ })
1111
+ );
1112
+ }
1113
+ }, v = G((g, N) => {
1114
+ let h = l.find((d) => d.value === g);
1115
+ t({
1116
+ ...n,
1117
+ [N]: h
1118
+ });
1119
+ }, [JSON.stringify(n), JSON.stringify(l)]), r = G((g, N) => {
1120
+ s([
1121
+ ...l,
1122
+ g
1123
+ ]), t({
1124
+ ...n,
1125
+ [N]: g
1126
+ });
1127
+ }, [JSON.stringify(l), JSON.stringify(n)]);
1128
+ return U(() => {
1129
+ m();
1130
+ }, []), {
1131
+ selectedAssistants: n,
1132
+ assistantOptions: l,
1133
+ handleSelectAssistant: v,
1134
+ handleCreateAssistantOption: r,
1135
+ setSelectedAssistants: t
1136
+ };
1137
+ }, fa = (e) => {
1138
+ const l = de(), [s, n] = z([]), [t, m] = z(), v = async () => {
1139
+ var N, h, d, o;
1140
+ try {
1141
+ const p = await Et({
1142
+ sortBy: "Email"
1143
+ });
1144
+ if (p.data) {
1145
+ const w = ((h = (N = p.data).map) == null ? void 0 : h.call(N, (c) => ({
1146
+ label: c.email,
1147
+ value: c.id
1148
+ }))) || [];
1149
+ e && w.sort((c, C) => c.label.localeCompare(C.label)), n(w);
1150
+ } else
1151
+ n([]);
1152
+ } catch (p) {
1153
+ l(
1154
+ M({
1155
+ type: "danger",
1156
+ message: ((o = (d = p.response) == null ? void 0 : d.data) == null ? void 0 : o.title) || p.message
1157
+ })
1158
+ );
1159
+ }
1160
+ }, r = G((N, h) => {
1161
+ let d = s.filter((o) => N.includes(o.value));
1162
+ m({
1163
+ ...t,
1164
+ [h]: d
1165
+ });
1166
+ }, [JSON.stringify(t), JSON.stringify(s)]), g = G((N, h) => {
1167
+ n([
1168
+ ...s,
1169
+ N
1170
+ ]), m({
1171
+ ...t,
1172
+ [h]: N
1173
+ });
1174
+ }, [JSON.stringify(s), JSON.stringify(t)]);
1175
+ return U(() => {
1176
+ v();
1177
+ }, []), {
1178
+ selectedTeachers: t,
1179
+ teacherOptions: s,
1180
+ handleSelectTeacher: r,
1181
+ handleCreateTeacherOption: g,
1182
+ setSelectedTeachers: m
1183
+ };
1184
+ }, va = (e, l, s, n, t, m, v) => {
1185
+ const r = de(), { t: g } = ne(), [N, h] = z(!1), [d, o] = z(0), [p, w] = z([]), [c, C] = z(Ne), [u, I] = z(!1), [f, A] = z(""), [O, x] = z(!1), [J, $] = z(!1), [L, X] = z(Pe), [j, le] = z(!1), k = (b) => {
1186
+ if (b && b.length === 0) {
1187
+ r(
1188
+ M({
1189
+ type: "danger",
1190
+ message: "Please select student(s)!"
1191
+ })
1192
+ );
1193
+ return;
1194
+ }
1195
+ le(!j);
1196
+ }, B = () => {
1197
+ h(!1), o(0), w([]);
1198
+ }, D = () => {
1199
+ x(!O), A("");
1200
+ }, Y = (b) => {
1201
+ if (b && b.length === 0) {
1202
+ r(
1203
+ M({
1204
+ type: "danger",
1205
+ message: "Please select students!"
1206
+ })
1207
+ );
1208
+ return;
1209
+ }
1210
+ $(!J), C({ ...Ne }), X({ ...Pe });
1211
+ }, F = G(async (b) => {
1212
+ var R, _;
1213
+ if (L.assistantRemoveUserId.length && !L.assistantSwitchDataUserId) {
1214
+ r(
1215
+ M({
1216
+ type: "danger",
1217
+ message: "Please select an assistant to transfer data!"
1218
+ })
1219
+ );
1220
+ return;
1221
+ }
1222
+ if (L.teacherRemoveUserIds.length && !L.teacherSwitchDataUserId) {
1223
+ r(
1224
+ M({
1225
+ type: "danger",
1226
+ message: "Please select a teacher to transfer data!"
1227
+ })
1228
+ );
1229
+ return;
1230
+ }
1231
+ if (L.counselorRemoveUserIds.length && !L.counselorSwitchDataUserId) {
1232
+ r(
1233
+ M({
1234
+ type: "danger",
1235
+ message: "Please select a counselor to transfer data!"
1236
+ })
1237
+ );
1238
+ return;
1239
+ }
1240
+ r(V(!0));
1241
+ try {
1242
+ await At({ ...L, studentUserIds: b || [] }), n == null || n(), await (v == null ? void 0 : v()), r(M({
1243
+ type: "success",
1244
+ message: `Remove ${L.assistantRemoveUserId.length + L.teacherRemoveUserIds.length + L.counselorRemoveUserIds.length} educator(s) successfully!`
1245
+ }));
1246
+ } catch (T) {
1247
+ r(
1248
+ M({
1249
+ type: "danger",
1250
+ message: ((_ = (R = T.response) == null ? void 0 : R.data) == null ? void 0 : _.title) || T.message
1251
+ })
1252
+ );
1253
+ }
1254
+ Y(), r(V(!1));
1255
+ }, [L]), W = (b) => {
1256
+ if (b && b.length === 0) {
1257
+ r(
1258
+ M({
1259
+ type: "danger",
1260
+ message: "Please select students!"
1261
+ })
1262
+ );
1263
+ return;
1264
+ }
1265
+ I(!u), C({ ...Ne });
1266
+ }, K = (b) => {
1267
+ o((R) => R === b ? -1 : b);
1268
+ }, ee = (b, R) => {
1269
+ switch (b) {
1270
+ case "assistant":
1271
+ C({
1272
+ ...c,
1273
+ assistantId: R.value,
1274
+ assistantEmail: R.label
1275
+ });
1276
+ break;
1277
+ case "secondary":
1278
+ C({
1279
+ ...c,
1280
+ secondaryTeacherId: R.value,
1281
+ secondaryTeacherEmail: R.label
1282
+ });
1283
+ break;
1284
+ case "grade":
1285
+ C({
1286
+ ...c,
1287
+ gradeLevel: R.value
1288
+ });
1289
+ break;
1290
+ }
1291
+ }, re = (b) => {
1292
+ C({
1293
+ ...c,
1294
+ teacher: b
1295
+ });
1296
+ }, me = (b) => {
1297
+ C({
1298
+ ...c,
1299
+ counselors: b
1300
+ });
1301
+ }, Ee = async (b) => {
1302
+ if (c.teacher.length === 0) {
1303
+ r(
1304
+ M({
1305
+ type: "danger",
1306
+ message: "Please select teacher before assign!"
1307
+ })
1308
+ );
1309
+ return;
1310
+ }
1311
+ if (p.length > 0 && !b) {
1312
+ x(!0);
1313
+ return;
1314
+ }
1315
+ const R = {
1316
+ id: (t == null ? void 0 : t.id) || "",
1317
+ mainTeacherUserId: c.teacher.filter((_) => {
1318
+ var T;
1319
+ return !((T = t == null ? void 0 : t.teachers) != null && T.some((i) => i.teacherUserId === _.id));
1320
+ }).map((_) => _.id) || [],
1321
+ mainTeacherEmail: c.teacher.filter((_) => {
1322
+ var T;
1323
+ return !((T = t == null ? void 0 : t.teachers) != null && T.some((i) => i.teacherUserId === _.id));
1324
+ }).map((_) => _.email) || [],
1325
+ assistantUserId: c != null && c.assistantId ? c == null ? void 0 : c.assistantId : void 0,
1326
+ assistantEmail: c != null && c.assistantEmail ? c == null ? void 0 : c.assistantEmail : void 0,
1327
+ counselorUserIds: c.counselors.map((_) => _.id) || [],
1328
+ counselorEmails: c.counselors.map((_) => _.email) || [],
1329
+ removeTeacherUserIds: p,
1330
+ teacherSwitchUserId: b || ""
1331
+ };
1332
+ c != null && c.gradeLevel && c.gradeLevel !== (t == null ? void 0 : t.gradeLevel) && await wt((t == null ? void 0 : t.id) || "", c == null ? void 0 : c.gradeLevel), ue([R]);
1333
+ }, ue = async (b) => {
1334
+ var R, _;
1335
+ r(V(!0));
1336
+ try {
1337
+ await ye(b), r(
1338
+ M({
1339
+ type: "success",
1340
+ message: "Created Successfully"
1341
+ })
1342
+ ), n == null || n();
1343
+ } catch (T) {
1344
+ r(
1345
+ M({
1346
+ type: "danger",
1347
+ message: ((_ = (R = T.response) == null ? void 0 : R.data) == null ? void 0 : _.title) || T.message
1348
+ })
1349
+ );
1350
+ }
1351
+ r(V(!1));
1352
+ }, Ae = G((b) => {
1353
+ if (b.length === 0) {
1354
+ r(
1355
+ M({
1356
+ type: "danger",
1357
+ message: g("not_found_selected_student")
1358
+ })
1359
+ );
1360
+ return;
1361
+ }
1362
+ if (b.some((T) => {
1363
+ const i = e == null ? void 0 : e[T], E = l == null ? void 0 : l[T], P = s == null ? void 0 : s[T];
1364
+ return !i && !E && !P;
1365
+ })) {
1366
+ r(
1367
+ M({
1368
+ type: "danger",
1369
+ message: g("please_select_add_teacher_for_all_selected_student_first")
1370
+ })
1371
+ );
1372
+ return;
1373
+ }
1374
+ const _ = b == null ? void 0 : b.map((T) => {
1375
+ const i = e == null ? void 0 : e[T], E = l == null ? void 0 : l[T], P = s == null ? void 0 : s[T], q = Array.isArray(P) ? P : P ? [P] : [], se = {
1376
+ id: T
1377
+ };
1378
+ return i && (se.mainTeacherUserId = i ? i == null ? void 0 : i.map((te) => te.value) : [], se.mainTeacherEmail = i ? i == null ? void 0 : i.map((te) => te.label) : []), E && (se.assistantUserId = E != null && E.value && typeof (E == null ? void 0 : E.value) == "string" ? E == null ? void 0 : E.value : void 0, se.assistantEmail = E != null && E.value && typeof (E == null ? void 0 : E.value) == "number" ? E == null ? void 0 : E.label : void 0), se.counselorUserIds = q.map((te) => te.value), se.counselorEmails = q.map((te) => te.label), se;
1379
+ });
1380
+ ue([..._]);
1381
+ }, [JSON.stringify(e), JSON.stringify(l), JSON.stringify(s)]), De = G((b) => {
1382
+ const R = e == null ? void 0 : e[b], _ = l == null ? void 0 : l[b], T = s == null ? void 0 : s[b];
1383
+ if (!R && !_ && !T) {
1384
+ r(
1385
+ M({
1386
+ type: "danger",
1387
+ message: g("please_select_add_teacher_for_selected_student_first")
1388
+ })
1389
+ );
1390
+ return;
1391
+ }
1392
+ const i = {
1393
+ id: b
1394
+ };
1395
+ R && (i.mainTeacherUserId = R ? R == null ? void 0 : R.map((E) => E.value) : void 0, i.mainTeacherEmail = R ? R == null ? void 0 : R.map((E) => E.label) : void 0), _ && (i.assistantUserId = _ != null && _.value && typeof (_ == null ? void 0 : _.value) == "string" ? _ == null ? void 0 : _.value : void 0, i.assistantEmail = _ != null && _.value && typeof (_ == null ? void 0 : _.value) == "number" ? _ == null ? void 0 : _.label : void 0), T && (i.counselorUserIds = T != null && T.value && typeof (T == null ? void 0 : T.value) == "string" ? [T == null ? void 0 : T.value] : [], i.counselorEmails = T != null && T.value && typeof (T == null ? void 0 : T.value) == "number" ? [T == null ? void 0 : T.label] : []), ue([i]);
1396
+ }, [JSON.stringify(e), JSON.stringify(l), JSON.stringify(s)]);
1397
+ U(() => {
1398
+ var b, R;
1399
+ return t != null && t.id && C({
1400
+ teacher: (b = t == null ? void 0 : t.teachers) == null ? void 0 : b.map((_) => ({
1401
+ id: _.teacherUserId,
1402
+ email: _.mainTeacherEmail
1403
+ })),
1404
+ assistantId: t == null ? void 0 : t.assistantUserId,
1405
+ assistantEmail: t == null ? void 0 : t.assistantEmail,
1406
+ counselors: (R = t == null ? void 0 : t.counselors) == null ? void 0 : R.map((_) => ({
1407
+ id: _.counselorUserId,
1408
+ email: _.counselorEmail
1409
+ })),
1410
+ secondaryTeacherEmail: t == null ? void 0 : t.secondaryTeacherEmail,
1411
+ secondaryTeacherId: t == null ? void 0 : t.secondaryTeacherUserId,
1412
+ gradeLevel: t == null ? void 0 : t.gradeLevel
1413
+ }), () => {
1414
+ C(Ne);
1415
+ };
1416
+ }, [t]);
1417
+ const he = () => {
1418
+ h(!1), w([]);
1419
+ };
1420
+ return {
1421
+ handleAssignSingleStudent: De,
1422
+ handleAssignMultiStudent: Ae,
1423
+ openDetailModal: N,
1424
+ setOpenDetailModal: h,
1425
+ onClose: B,
1426
+ toggleCollapse: K,
1427
+ activeIndex: d,
1428
+ staffBulkAssign: c,
1429
+ removeTeacherUserIds: p,
1430
+ handleChangeCounselorBulk: me,
1431
+ handleChangeTeacherBulk: re,
1432
+ handleEditAssignForStudents: Ee,
1433
+ handleChangeStaffBulk: ee,
1434
+ handleToggleModel: W,
1435
+ openModelBulk: u,
1436
+ onAssignStaffToStudents: async (b) => {
1437
+ var _, T, i;
1438
+ if (b.length === 0) {
1439
+ r(
1440
+ M({
1441
+ type: "danger",
1442
+ message: "Not found selected student."
1443
+ })
1444
+ );
1445
+ return;
1446
+ }
1447
+ if (c.teacher.length === 0 && c.counselors.length === 0 && !c.assistantId && !c.secondaryTeacherId) {
1448
+ r(
1449
+ M({
1450
+ type: "danger",
1451
+ message: "No change to assign!"
1452
+ })
1453
+ );
1454
+ return;
1455
+ }
1456
+ const R = ((_ = m == null ? void 0 : m.filter((E) => b == null ? void 0 : b.includes(E.id))) == null ? void 0 : _.every((E) => Array.isArray(E.teachers) && E.teachers.length > 0)) ?? !1;
1457
+ if (c.teacher.length === 0 && !R) {
1458
+ r(
1459
+ M({
1460
+ type: "danger",
1461
+ message: "Please assign a teacher to each student before giving other educators access to them"
1462
+ })
1463
+ );
1464
+ return;
1465
+ }
1466
+ r(V(!0));
1467
+ try {
1468
+ if (c.teacher.length > 0 && m && m.length > 0) {
1469
+ const P = m.filter((q) => b.includes(q.id)).map((q) => {
1470
+ var ge;
1471
+ const se = ((ge = q.teachers) == null ? void 0 : ge.map((Q) => Q.teacherUserId)) || [], te = c.teacher.filter(
1472
+ (Q) => !se.includes(Q.id)
1473
+ );
1474
+ return {
1475
+ id: q.id,
1476
+ mainTeacherUserId: te.map((Q) => Q.id),
1477
+ mainTeacherEmail: te.map((Q) => Q.email)
1478
+ };
1479
+ }).filter((q) => q.mainTeacherUserId.length > 0 || q.mainTeacherEmail.length > 0);
1480
+ P.length > 0 && await ye(P);
1481
+ }
1482
+ if (c.counselors.length > 0 && m && m.length > 0) {
1483
+ const P = m.filter((q) => b.includes(q.id)).map((q) => {
1484
+ var ge;
1485
+ const se = ((ge = q.counselors) == null ? void 0 : ge.map((Q) => Q.counselorUserId)) || [], te = c.counselors.filter(
1486
+ (Q) => !se.includes(Q.id)
1487
+ );
1488
+ return {
1489
+ id: q.id,
1490
+ counselorUserIds: te.map((Q) => Q.id),
1491
+ counselorEmails: te.map((Q) => Q.email)
1492
+ };
1493
+ }).filter((q) => q.counselorUserIds.length > 0 || q.counselorEmails.length > 0);
1494
+ P.length > 0 && await ye(P);
1495
+ }
1496
+ const E = m == null ? void 0 : m.filter((P) => !P.assistantUserId);
1497
+ if (E && (E == null ? void 0 : E.length) > 0 && c.assistantId) {
1498
+ const P = E.map((q) => ({
1499
+ id: q.id,
1500
+ assistantUserId: c.assistantId,
1501
+ assistantEmail: c.assistantEmail
1502
+ }));
1503
+ await ye(P.filter((q) => q !== void 0));
1504
+ }
1505
+ r(
1506
+ M({
1507
+ type: "success",
1508
+ message: "Student assigned successfully"
1509
+ })
1510
+ ), n == null || n(), he(), W();
1511
+ } catch (E) {
1512
+ r(
1513
+ M({
1514
+ type: "danger",
1515
+ message: ((i = (T = E.response) == null ? void 0 : T.data) == null ? void 0 : i.title) || E.message
1516
+ })
1517
+ );
1518
+ }
1519
+ r(V(!1));
1520
+ },
1521
+ onToggleModelDeleteBulk: Y,
1522
+ openModelDeleteBulk: J,
1523
+ handleRemoveBulkStaff: F,
1524
+ switchStaffUsers: L,
1525
+ setSwitchStaffUsers: X,
1526
+ setTeacherSwitchUserId: A,
1527
+ teacherSwitchUserId: f,
1528
+ onToggleModelSwitchDataTeacher: D,
1529
+ openModelSwitchDataTeacher: O,
1530
+ handelChangeStaffRemove: (b) => {
1531
+ X({
1532
+ ...L,
1533
+ ...b
1534
+ });
1535
+ },
1536
+ handleToggleInactiveModal: k,
1537
+ openInactiveModal: j,
1538
+ handleInactiveStudents: async (b, R) => {
1539
+ var _, T;
1540
+ r(V(!0));
1541
+ try {
1542
+ (await Dt(b)).status == 200 && (r(
1543
+ M({
1544
+ type: "success",
1545
+ message: `Inactive ${b.length} Students successfully`
1546
+ })
1547
+ ), R());
1548
+ } catch (i) {
1549
+ r(
1550
+ M({
1551
+ type: "danger",
1552
+ message: ((T = (_ = i.response) == null ? void 0 : _.data) == null ? void 0 : T.title) || i.message
1553
+ })
1554
+ );
1555
+ }
1556
+ le(!j), r(V(!1));
1557
+ }
1558
+ };
1559
+ }, ya = ({
1560
+ teachers: e,
1561
+ onChangeStaffRemove: l,
1562
+ switchStaffUsers: s
1563
+ }) => {
1564
+ const { t: n } = ne();
1565
+ return /* @__PURE__ */ y("div", { children: [
1566
+ /* @__PURE__ */ a("h6", { children: "Select teacher to remove" }),
1567
+ /* @__PURE__ */ a(
1568
+ ie,
1569
+ {
1570
+ isMulti: !0,
1571
+ value: e.filter(
1572
+ (t) => s.teacherRemoveUserIds.includes(t.value)
1573
+ ) || [],
1574
+ options: e.filter(
1575
+ (t) => !s.teacherRemoveUserIds.includes(
1576
+ t.value
1577
+ ) && t.value !== s.teacherSwitchDataUserId
1578
+ ) || [],
1579
+ placeholder: n("select_teacher"),
1580
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
1581
+ onChange: (t) => {
1582
+ l({
1583
+ teacherRemoveUserIds: t.map((m) => m.value)
1584
+ });
1585
+ },
1586
+ isClearable: !0
1587
+ }
1588
+ ),
1589
+ /* @__PURE__ */ a("h6", { className: "mt-3", children: "Select the teacher to transfer data to" }),
1590
+ /* @__PURE__ */ a(
1591
+ ie,
1592
+ {
1593
+ value: e.find(
1594
+ (t) => s.teacherSwitchDataUserId == t.value
1595
+ ) || null,
1596
+ options: e.filter(
1597
+ (t) => !s.teacherRemoveUserIds.includes(
1598
+ t.value
1599
+ ) && t.value !== s.teacherSwitchDataUserId
1600
+ ) || [],
1601
+ placeholder: n("select_teacher"),
1602
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
1603
+ onChange: (t) => {
1604
+ l({
1605
+ teacherSwitchDataUserId: t == null ? void 0 : t.value
1606
+ });
1607
+ },
1608
+ isClearable: !0
1609
+ }
1610
+ )
1611
+ ] });
1612
+ }, Na = ({
1613
+ assistants: e,
1614
+ onChangeStaffRemove: l,
1615
+ switchStaffUsers: s
1616
+ }) => {
1617
+ const { t: n } = ne();
1618
+ return /* @__PURE__ */ y("div", { children: [
1619
+ /* @__PURE__ */ a("h6", { children: "Select assistant to remove" }),
1620
+ /* @__PURE__ */ a(
1621
+ ie,
1622
+ {
1623
+ isMulti: !0,
1624
+ value: e.filter(
1625
+ (t) => s.assistantRemoveUserId.includes(t.value)
1626
+ ) || [],
1627
+ options: e.filter(
1628
+ (t) => !s.assistantRemoveUserId.includes(
1629
+ t.value
1630
+ ) && t.value !== s.assistantSwitchDataUserId
1631
+ ) || [],
1632
+ placeholder: n("select_assistant"),
1633
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
1634
+ onChange: (t) => {
1635
+ l({
1636
+ assistantRemoveUserId: t.map((m) => m.value)
1637
+ });
1638
+ },
1639
+ isClearable: !0
1640
+ }
1641
+ ),
1642
+ /* @__PURE__ */ a("h6", { className: "mt-3", children: "Select the assistant to transfer data to" }),
1643
+ /* @__PURE__ */ a(
1644
+ ie,
1645
+ {
1646
+ value: e.find(
1647
+ (t) => s.assistantSwitchDataUserId == t.value
1648
+ ) || null,
1649
+ options: e.filter(
1650
+ (t) => !s.assistantRemoveUserId.includes(
1651
+ t.value
1652
+ ) && t.value !== s.assistantSwitchDataUserId
1653
+ ) || [],
1654
+ placeholder: n("select_assistant"),
1655
+ className: `flex-grow-1 mb-3 ${S["custom-chip-assistant-select"]}`,
1656
+ onChange: (t) => {
1657
+ l({
1658
+ assistantSwitchDataUserId: t == null ? void 0 : t.value
1659
+ });
1660
+ },
1661
+ isClearable: !0
1662
+ }
1663
+ )
1664
+ ] });
1665
+ }, Ca = ({
1666
+ counselors: e,
1667
+ onChangeStaffRemove: l,
1668
+ switchStaffUsers: s
1669
+ }) => {
1670
+ const { t: n } = ne();
1671
+ return /* @__PURE__ */ y("div", { children: [
1672
+ /* @__PURE__ */ a("h6", { children: "Select counselor to remove" }),
1673
+ /* @__PURE__ */ a(
1674
+ ie,
1675
+ {
1676
+ isMulti: !0,
1677
+ value: e.filter(
1678
+ (t) => s.counselorRemoveUserIds.includes(t.value)
1679
+ ) || [],
1680
+ options: e.filter(
1681
+ (t) => !s.counselorRemoveUserIds.includes(
1682
+ t.value
1683
+ ) && t.value !== s.counselorSwitchDataUserId
1684
+ ) || [],
1685
+ placeholder: n("select_counselor"),
1686
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
1687
+ onChange: (t) => {
1688
+ l({
1689
+ counselorRemoveUserIds: t.map((m) => m.value)
1690
+ });
1691
+ },
1692
+ isClearable: !0
1693
+ }
1694
+ ),
1695
+ /* @__PURE__ */ a("h6", { className: "mt-3", children: "Select the counselor to transfer data to" }),
1696
+ /* @__PURE__ */ a(
1697
+ ie,
1698
+ {
1699
+ value: e.find(
1700
+ (t) => s.counselorSwitchDataUserId == t.value
1701
+ ) || null,
1702
+ options: e.filter(
1703
+ (t) => !s.counselorRemoveUserIds.includes(
1704
+ t.value
1705
+ ) && t.value !== s.counselorSwitchDataUserId
1706
+ ) || [],
1707
+ placeholder: n("select_counselor"),
1708
+ className: `flex-grow-1 mb-3 ${S["custom-chip-counselor-select"]}`,
1709
+ onChange: (t) => {
1710
+ l({
1711
+ counselorSwitchDataUserId: t == null ? void 0 : t.value
1712
+ });
1713
+ },
1714
+ isClearable: !0
1715
+ }
1716
+ )
1717
+ ] });
1718
+ }, _a = ({ tabs: e }) => {
1719
+ const { t: l } = ne(), [s, n] = z(0), t = (v) => {
1720
+ n(v);
1721
+ };
1722
+ return /* @__PURE__ */ a("div", { className: "animated fadeIn", children: /* @__PURE__ */ a(fe, { children: /* @__PURE__ */ y(oe, { xl: 12, children: [
1723
+ /* @__PURE__ */ a(ct, { tabs: !0, children: e.map((v, r) => {
1724
+ const g = r === s;
1725
+ return /* @__PURE__ */ a(dt, { children: /* @__PURE__ */ a(
1726
+ mt,
1727
+ {
1728
+ className: `${g ? "active" : ""} cursor-pointer`,
1729
+ onClick: () => t(r),
1730
+ style: {
1731
+ color: g ? "#316CD9" : "#242424"
1732
+ },
1733
+ children: l(v.title)
1734
+ }
1735
+ ) }, r);
1736
+ }) }),
1737
+ /* @__PURE__ */ a(
1738
+ ut,
1739
+ {
1740
+ activeTab: s,
1741
+ className: "border-bottom-0 border-left-0 border-right-0 p-3",
1742
+ children: e.map((v, r) => /* @__PURE__ */ a(ht, { tabId: r, children: /* @__PURE__ */ a(v.component, {}) }, r))
1743
+ }
1744
+ )
1745
+ ] }) }) });
1746
+ }, Sa = ({
1747
+ open: e,
1748
+ onClose: l,
1749
+ teachers: s,
1750
+ onChangeStaffRemove: n,
1751
+ switchStaffUsers: t,
1752
+ assistants: m,
1753
+ onRemoveBulkStaff: v,
1754
+ counselors: r,
1755
+ studentUserIds: g
1756
+ }) => {
1757
+ const { t: N } = ne(), h = [
1758
+ {
1759
+ title: "Remove Teacher",
1760
+ component: () => /* @__PURE__ */ a(
1761
+ ya,
1762
+ {
1763
+ teachers: s,
1764
+ onChangeStaffRemove: n,
1765
+ switchStaffUsers: t
1766
+ }
1767
+ )
1768
+ },
1769
+ {
1770
+ title: "Remove Assistant",
1771
+ component: () => /* @__PURE__ */ a(
1772
+ Na,
1773
+ {
1774
+ assistants: m,
1775
+ onChangeStaffRemove: n,
1776
+ switchStaffUsers: t
1777
+ }
1778
+ )
1779
+ },
1780
+ {
1781
+ title: "Remove Counselor",
1782
+ component: () => /* @__PURE__ */ a(
1783
+ Ca,
1784
+ {
1785
+ counselors: r,
1786
+ onChangeStaffRemove: n,
1787
+ switchStaffUsers: t
1788
+ }
1789
+ )
1790
+ }
1791
+ ];
1792
+ return /* @__PURE__ */ y(_e, { size: "lg", centered: !0, isOpen: e, toggle: () => l(), zIndex: 1201, children: [
1793
+ /* @__PURE__ */ a(
1794
+ Se,
1795
+ {
1796
+ className: `${S["header-assign-for-student"]} border-0`,
1797
+ children: /* @__PURE__ */ a("div", { children: "Remove Bulk" })
1798
+ }
1799
+ ),
1800
+ /* @__PURE__ */ a(be, { className: "p-0", children: /* @__PURE__ */ a(_a, { tabs: h }) }),
1801
+ /* @__PURE__ */ y(Ie, { className: "text-right", children: [
1802
+ /* @__PURE__ */ a(ae, { onClick: () => l(), children: N("cancel") }),
1803
+ /* @__PURE__ */ a(
1804
+ ae,
1805
+ {
1806
+ disabled: !t.teacherRemoveUserIds.length && !t.assistantRemoveUserId && !t.counselorRemoveUserIds.length,
1807
+ color: "primary",
1808
+ onClick: async () => {
1809
+ await v(g);
1810
+ },
1811
+ children: "Remove"
1812
+ }
1813
+ )
1814
+ ] })
1815
+ ] });
1816
+ };
1817
+ function ba(e) {
1818
+ return Te({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M228.9 79.9L51.8 403.1C40.6 423.3 55.5 448 78.9 448h354.3c23.3 0 38.2-24.7 27.1-44.9L283.1 79.9c-11.7-21.2-42.5-21.2-54.2 0zM273.6 214L270 336h-28l-3.6-122h35.2zM256 402.4c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4 19.1 8.1 19.1 18.4-8.4 18.4-19.1 18.4z" } }] })(e);
1819
+ }
1820
+ const Ia = ({
1821
+ openDetailModal: e,
1822
+ onClose: l,
1823
+ selectedUser: s,
1824
+ staffBulkAssign: n,
1825
+ teacherOptions: t,
1826
+ handleChangeTeacherBulk: m,
1827
+ handleChangeCounselorBulk: v,
1828
+ assistantOptions: r,
1829
+ counselorOptions: g,
1830
+ handleChangeStaffBulk: N,
1831
+ handleEditAssignForStudents: h,
1832
+ toggleCollapse: d,
1833
+ activeIndex: o
1834
+ }) => {
1835
+ var c, C;
1836
+ const { t: p } = ne(), w = [
1837
+ (s == null ? void 0 : s.teachers) || [],
1838
+ (s == null ? void 0 : s.counselors) || []
1839
+ ];
1840
+ return /* @__PURE__ */ y(
1841
+ _e,
1842
+ {
1843
+ centered: !0,
1844
+ isOpen: e,
1845
+ toggle: () => l(),
1846
+ children: [
1847
+ /* @__PURE__ */ y(Se, { className: S["header-assign-for-student"], children: [
1848
+ /* @__PURE__ */ y("div", { children: [
1849
+ "Assign student ",
1850
+ s == null ? void 0 : s.fullName
1851
+ ] }),
1852
+ /* @__PURE__ */ y("div", { children: [
1853
+ "Grade ",
1854
+ s == null ? void 0 : s.gradeLevel
1855
+ ] })
1856
+ ] }),
1857
+ /* @__PURE__ */ y(be, { children: [
1858
+ w.map((u, I) => /* @__PURE__ */ y("div", { children: [
1859
+ /* @__PURE__ */ y(
1860
+ "button",
1861
+ {
1862
+ type: "button",
1863
+ className: `btn ${S["btn-collapse"]} ${o === I ? "btn-link " : ""}`,
1864
+ onClick: () => d(I),
1865
+ children: [
1866
+ p(I === 0 ? "current_teacher_name" : "current_counselor_name"),
1867
+ " ",
1868
+ `(${u.length})`,
1869
+ " ",
1870
+ /* @__PURE__ */ a("i", { className: `fa fa-angle-${o === I ? "up" : "down"}` })
1871
+ ]
1872
+ }
1873
+ ),
1874
+ /* @__PURE__ */ a(gt, { isOpen: o === I, children: /* @__PURE__ */ a(pt, { children: /* @__PURE__ */ a(ft, { children: u.length > 0 ? u.map((f) => I === 0 ? /* @__PURE__ */ y("li", { children: [
1875
+ f.mainTeacherName,
1876
+ " - ",
1877
+ f.mainTeacherEmail
1878
+ ] }, f.mainTeacherEmail) : /* @__PURE__ */ y("li", { children: [
1879
+ f.counselorName,
1880
+ " - ",
1881
+ f.counselorEmail
1882
+ ] }, f.counselorUserId)) : /* @__PURE__ */ a("div", { children: p("no_data") }) }) }) })
1883
+ ] }, I)),
1884
+ /* @__PURE__ */ a("div", { children: p("teacher_email") }),
1885
+ /* @__PURE__ */ a(
1886
+ ie,
1887
+ {
1888
+ isMulti: !0,
1889
+ value: (c = n.teacher) == null ? void 0 : c.filter((u) => {
1890
+ var I;
1891
+ return !((I = s.teachers) != null && I.some((f) => f.teacherUserId === u.id));
1892
+ }).map((u) => ({ label: u.email, value: u.id })),
1893
+ options: t == null ? void 0 : t.filter((u) => {
1894
+ var I;
1895
+ return !((I = s.teachers) != null && I.some((f) => f.teacherUserId === u.value));
1896
+ }),
1897
+ placeholder: p("select_teacher"),
1898
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
1899
+ onChange: (u) => {
1900
+ const I = u.map((f) => ({
1901
+ id: f.value,
1902
+ email: f.label
1903
+ }));
1904
+ m(I);
1905
+ },
1906
+ isClearable: !0,
1907
+ style: { maxWidth: 120 }
1908
+ }
1909
+ ),
1910
+ /* @__PURE__ */ a("div", { children: p("assistant_email") }),
1911
+ /* @__PURE__ */ a(
1912
+ He,
1913
+ {
1914
+ value: r.find((u) => u.value == n.assistantId || u.label == n.assistantEmail) || null,
1915
+ options: r,
1916
+ onChange: (u) => {
1917
+ N("assistant", u);
1918
+ },
1919
+ placeholder: p("select_assistant"),
1920
+ className: "flex-grow-1 mb-3"
1921
+ }
1922
+ ),
1923
+ /* @__PURE__ */ a("div", { children: p("counselor_email") }),
1924
+ /* @__PURE__ */ a(
1925
+ ie,
1926
+ {
1927
+ isMulti: !0,
1928
+ value: (C = n.counselors) == null ? void 0 : C.filter((u) => {
1929
+ var I;
1930
+ return !((I = s.counselors) != null && I.some((f) => f.counselorUserId === u.id));
1931
+ }).map((u) => ({ label: u.email, value: u.id })),
1932
+ options: g == null ? void 0 : g.filter((u) => {
1933
+ var I;
1934
+ return !((I = s.counselors) != null && I.some((f) => f.counselorUserId === u.value));
1935
+ }),
1936
+ placeholder: p("select_counselor"),
1937
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
1938
+ onChange: (u) => {
1939
+ const I = u.map((f) => ({
1940
+ id: f.value,
1941
+ email: f.label
1942
+ }));
1943
+ v(I);
1944
+ },
1945
+ isClearable: !0,
1946
+ style: { maxWidth: 120 }
1947
+ }
1948
+ ),
1949
+ /* @__PURE__ */ a("div", { children: p("grade") }),
1950
+ /* @__PURE__ */ a(
1951
+ ie,
1952
+ {
1953
+ value: Fe.find((u) => u.value === n.gradeLevel),
1954
+ options: Fe,
1955
+ placeholder: p("select_grade"),
1956
+ className: "flex-grow-1 mb-3",
1957
+ onChange: (u) => {
1958
+ N("grade", u);
1959
+ },
1960
+ isClearable: !0,
1961
+ style: { maxWidth: 120 }
1962
+ }
1963
+ )
1964
+ ] }),
1965
+ /* @__PURE__ */ y(Ie, { className: "text-right", children: [
1966
+ /* @__PURE__ */ a(ae, { onClick: () => l(), children: p("cancel") }),
1967
+ /* @__PURE__ */ a(ae, { color: "primary", onClick: () => {
1968
+ h();
1969
+ }, children: p("save") })
1970
+ ] })
1971
+ ]
1972
+ }
1973
+ );
1974
+ }, Ta = () => {
1975
+ const { t: e } = ne(), {
1976
+ selectedTeachers: l,
1977
+ teacherOptions: s,
1978
+ setSelectedTeachers: n
1979
+ } = fa(!0), {
1980
+ selectedAssistants: t,
1981
+ assistantOptions: m,
1982
+ setSelectedAssistants: v
1983
+ } = pa(), {
1984
+ selectedCounselors: r,
1985
+ counselorOptions: g,
1986
+ setSelectedCounselors: N
1987
+ } = ga(), {
1988
+ isCheck: h,
1989
+ isCheckAll: d,
1990
+ userList: o,
1991
+ filters: p,
1992
+ totalItem: w,
1993
+ handleClickCheck: c,
1994
+ handleSelectAll: C,
1995
+ changeFilters: u,
1996
+ handleRetrievedData: I,
1997
+ classFontSize: f,
1998
+ selectedUser: A,
1999
+ setSelectedUser: O,
2000
+ userSelected: x,
2001
+ studentTeacherSelected: J,
2002
+ studentCounselorSelected: $,
2003
+ studentAssistantSelected: L,
2004
+ openTooltip: X,
2005
+ toggle: j
2006
+ } = ha(), le = () => {
2007
+ I(), n(void 0), v(void 0), N(void 0), k(!1);
2008
+ }, {
2009
+ setOpenDetailModal: k,
2010
+ openDetailModal: B,
2011
+ staffBulkAssign: D,
2012
+ handleChangeCounselorBulk: Y,
2013
+ handleChangeTeacherBulk: F,
2014
+ handleChangeStaffBulk: W,
2015
+ handleToggleModel: K,
2016
+ openModelBulk: ee,
2017
+ onAssignStaffToStudents: re,
2018
+ onToggleModelDeleteBulk: me,
2019
+ openModelDeleteBulk: Ee,
2020
+ handelChangeStaffRemove: ue,
2021
+ switchStaffUsers: Ae,
2022
+ handleRemoveBulkStaff: De,
2023
+ handleToggleInactiveModal: he,
2024
+ openInactiveModal: Oe,
2025
+ handleInactiveStudents: Re,
2026
+ onClose: $e,
2027
+ toggleCollapse: b,
2028
+ activeIndex: R,
2029
+ handleEditAssignForStudents: _
2030
+ } = va(
2031
+ l,
2032
+ t,
2033
+ r,
2034
+ le,
2035
+ A,
2036
+ x
2037
+ ), T = [
2038
+ {
2039
+ name: "",
2040
+ isCenter: !0,
2041
+ onSelectAll: C,
2042
+ isCheckAll: d,
2043
+ className: `align-top ${S["fixed-width-40"]}`
2044
+ },
2045
+ {
2046
+ name: "student_name",
2047
+ isCenter: !0,
2048
+ sortBy: H.Name,
2049
+ searchBy: Z.Name,
2050
+ className: `align-top ${S["fixed-width"]}`,
2051
+ getOption: (i) => ({
2052
+ label: i || "empty",
2053
+ value: i
2054
+ })
2055
+ },
2056
+ {
2057
+ name: "grade",
2058
+ isCenter: !0,
2059
+ sortBy: H.Grade,
2060
+ searchBy: Z.Grade,
2061
+ className: `align-center justify-center ${S["fixed-width-80"]}`,
2062
+ getOption: (i) => ({
2063
+ label: i || "empty",
2064
+ value: i
2065
+ })
2066
+ },
2067
+ {
2068
+ name: "teacher_emails",
2069
+ isCenter: !0,
2070
+ className: "align-center justify-center",
2071
+ sortBy: H.Teacher,
2072
+ searchBy: Z.Teacher,
2073
+ getOption: (i) => ({
2074
+ label: i || "empty",
2075
+ value: i
2076
+ })
2077
+ },
2078
+ {
2079
+ name: "assistant_email",
2080
+ isCenter: !0,
2081
+ className: "align-center justify-center",
2082
+ sortBy: H.Assistant,
2083
+ searchBy: Z.Assistant,
2084
+ getOption: (i) => ({
2085
+ label: i || "empty",
2086
+ value: i
2087
+ })
2088
+ },
2089
+ {
2090
+ name: "counselor_emails",
2091
+ isCenter: !0,
2092
+ className: "align-center justify-center",
2093
+ sortBy: H.Counselor,
2094
+ searchBy: Z.Counselor,
2095
+ getOption: (i) => ({
2096
+ label: i || "empty",
2097
+ value: i
2098
+ })
2099
+ }
2100
+ ];
2101
+ return /* @__PURE__ */ y("div", { className: `fadeIn animated ${S[f]}`, children: [
2102
+ /* @__PURE__ */ a("h5", { className: `mt-4 mb-2 ${S["custom-title-font-size"]}`, children: e("assign_student") }),
2103
+ /* @__PURE__ */ y(fe, { className: "my-2", children: [
2104
+ /* @__PURE__ */ a(oe, { md: 3, children: /* @__PURE__ */ a(
2105
+ lt,
2106
+ {
2107
+ initValue: (p == null ? void 0 : p.searchString) || "",
2108
+ onSearch: (i) => u({ searchString: i }),
2109
+ placeholder: e("type_something_to_search_students"),
2110
+ className: S["custom-font-size"]
2111
+ }
2112
+ ) }),
2113
+ /* @__PURE__ */ y(oe, { style: { gap: "10px" }, className: "d-flex justify-content-end align-items-center", md: 8, children: [
2114
+ /* @__PURE__ */ a(ae, { onClick: () => K(h), color: "primary", style: { background: "#316cd9" }, children: e("assign_bulk") }),
2115
+ /* @__PURE__ */ a(ae, { onClick: () => me(h), color: "primary", style: { background: "#316cd9" }, children: e("remove_bulk") }),
2116
+ /* @__PURE__ */ a(ae, { onClick: () => he(h), color: "primary", style: { background: "#316cd9" }, children: e("inactive_students") })
2117
+ ] }),
2118
+ /* @__PURE__ */ y(
2119
+ oe,
2120
+ {
2121
+ md: 1,
2122
+ className: `d-flex justify-content-end align-items-center ${S["custom-font-size"]}`,
2123
+ style: { whiteSpace: "nowrap", flexWrap: "nowrap" },
2124
+ children: [
2125
+ e("total_of_users"),
2126
+ ": ",
2127
+ w
2128
+ ]
2129
+ }
2130
+ )
2131
+ ] }),
2132
+ /* @__PURE__ */ y(fe, { className: "mb-2", children: [
2133
+ /* @__PURE__ */ a(oe, { md: 12, children: /* @__PURE__ */ a("div", { children: /* @__PURE__ */ y(je, { bordered: !0, hover: !0, striped: !0, size: "sm", children: [
2134
+ /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ a(
2135
+ We,
2136
+ {
2137
+ headers: T,
2138
+ filters: p,
2139
+ onChangeFilters: u,
2140
+ teacherOptions: s,
2141
+ assistantOptions: m,
2142
+ counselorOptions: g,
2143
+ isStudentList: !0
2144
+ }
2145
+ ) }),
2146
+ o && o.length > 0 ? /* @__PURE__ */ a("tbody", { children: o == null ? void 0 : o.map((i, E) => /* @__PURE__ */ y("tr", { children: [
2147
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]} text-center ${S["fixed-width-40"]}`, children: /* @__PURE__ */ a(
2148
+ "input",
2149
+ {
2150
+ id: i.id,
2151
+ type: "checkbox",
2152
+ onChange: c,
2153
+ checked: h.includes(
2154
+ i.id
2155
+ )
2156
+ }
2157
+ ) }),
2158
+ /* @__PURE__ */ y(
2159
+ "td",
2160
+ {
2161
+ id: `student_name_${i.id}_${E}`,
2162
+ onMouseEnter: () => j(`student_name_${i.id}_${E}`),
2163
+ onMouseLeave: () => j(`student_name_${i.id}_${E}`),
2164
+ className: `align-middle ${S["custom-font-size"]} ${S["fixed-width"]}`,
2165
+ children: [
2166
+ /* @__PURE__ */ a(
2167
+ "button",
2168
+ {
2169
+ type: "button",
2170
+ className: `${S["button-user-name"]} btn-link`,
2171
+ onClick: () => {
2172
+ O(i), k(!0);
2173
+ },
2174
+ children: i.fullName
2175
+ }
2176
+ ),
2177
+ /* @__PURE__ */ y(
2178
+ vt,
2179
+ {
2180
+ placement: "top",
2181
+ isOpen: X === `student_name_${i.id}_${E}`,
2182
+ target: `student_name_${i.id}_${E}`,
2183
+ children: [
2184
+ i.fullName,
2185
+ " - ",
2186
+ i.email
2187
+ ]
2188
+ }
2189
+ )
2190
+ ]
2191
+ }
2192
+ ),
2193
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]} ${S["fixed-width-80"]}`, children: i.gradeLevel }),
2194
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: !!i.teachers && i.teachers.length > 0 && /* @__PURE__ */ a(ze, { children: i.teachers.map((P) => /* @__PURE__ */ y("p", { className: "mb-0", children: [
2195
+ P.mainTeacherName,
2196
+ " - ",
2197
+ P.mainTeacherEmail
2198
+ ] }, P.mainTeacherEmail)) }) }),
2199
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: !!i.assistantEmail && /* @__PURE__ */ y("p", { className: "mb-0", children: [
2200
+ i.assistantName,
2201
+ " - ",
2202
+ i.assistantEmail
2203
+ ] }) }),
2204
+ /* @__PURE__ */ a("td", { className: `align-middle ${S["custom-font-size"]}`, children: !!i.counselors && i.counselors.length > 0 && /* @__PURE__ */ a(ze, { children: i.counselors.map((P) => /* @__PURE__ */ y("p", { className: "mb-0", children: [
2205
+ P.counselorName,
2206
+ " - ",
2207
+ P.counselorEmail
2208
+ ] }, P.counselorUserId)) }) })
2209
+ ] }, i.id)) }) : /* @__PURE__ */ a("tr", { children: /* @__PURE__ */ a("td", { colSpan: 7, children: /* @__PURE__ */ a(Je, { label: "student" }) }) })
2210
+ ] }) }) }),
2211
+ /* @__PURE__ */ a(oe, { md: 12, children: /* @__PURE__ */ a(
2212
+ Ge,
2213
+ {
2214
+ filters: p,
2215
+ totalRecordCount: w,
2216
+ changePageSize: (i) => u({ pageSize: i }),
2217
+ changePage: (i) => u({ currentPage: i }),
2218
+ className: S["custom-font-size"]
2219
+ }
2220
+ ) })
2221
+ ] }),
2222
+ /* @__PURE__ */ a(
2223
+ Ia,
2224
+ {
2225
+ openDetailModal: B,
2226
+ onClose: $e,
2227
+ selectedUser: A,
2228
+ staffBulkAssign: D,
2229
+ teacherOptions: s,
2230
+ handleChangeTeacherBulk: F,
2231
+ handleChangeCounselorBulk: Y,
2232
+ assistantOptions: m,
2233
+ counselorOptions: g,
2234
+ handleChangeStaffBulk: W,
2235
+ handleEditAssignForStudents: _,
2236
+ toggleCollapse: b,
2237
+ activeIndex: R
2238
+ }
2239
+ ),
2240
+ /* @__PURE__ */ y(_e, { centered: !0, isOpen: ee, toggle: () => K(), zIndex: 1201, children: [
2241
+ /* @__PURE__ */ a(Se, { children: e("assign_bulk_student") }),
2242
+ /* @__PURE__ */ y(be, { children: [
2243
+ /* @__PURE__ */ a(
2244
+ ie,
2245
+ {
2246
+ isMulti: !0,
2247
+ value: D.teacher.map((i) => ({ label: i.email, value: i.id })),
2248
+ options: s,
2249
+ placeholder: e("select_teacher"),
2250
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
2251
+ onChange: (i) => {
2252
+ const E = i.map((P) => ({
2253
+ id: P.value,
2254
+ email: P.label
2255
+ }));
2256
+ F(E);
2257
+ },
2258
+ isClearable: !0,
2259
+ style: { maxWidth: 120 }
2260
+ }
2261
+ ),
2262
+ /* @__PURE__ */ a(
2263
+ He,
2264
+ {
2265
+ value: m.find((i) => i.value == D.assistantId || i.label == D.assistantEmail) || null,
2266
+ options: m,
2267
+ onChange: (i) => W("assistant", i),
2268
+ placeholder: e("select_assistant"),
2269
+ className: "flex-grow-1 mb-3"
2270
+ }
2271
+ ),
2272
+ /* @__PURE__ */ a(
2273
+ ie,
2274
+ {
2275
+ isMulti: !0,
2276
+ value: D.counselors.map((i) => ({ label: i.email, value: i.id })),
2277
+ options: g,
2278
+ placeholder: e("select_counselor"),
2279
+ className: `flex-grow-1 mb-3 ${S["custom-chip-teacher-select"]}`,
2280
+ onChange: (i) => {
2281
+ const E = i.map((P) => ({
2282
+ id: P.value,
2283
+ email: P.label
2284
+ }));
2285
+ Y(E);
2286
+ },
2287
+ isClearable: !0,
2288
+ style: { maxWidth: 120 }
2289
+ }
2290
+ )
2291
+ ] }),
2292
+ /* @__PURE__ */ y(Ie, { className: "text-right", children: [
2293
+ /* @__PURE__ */ a(ae, { onClick: () => K(), children: e("cancel") }),
2294
+ /* @__PURE__ */ a(ae, { color: "primary", onClick: () => re(h), children: e("assign") })
2295
+ ] })
2296
+ ] }),
2297
+ /* @__PURE__ */ a(
2298
+ Sa,
2299
+ {
2300
+ open: Ee,
2301
+ onClose: me,
2302
+ teachers: J,
2303
+ onChangeStaffRemove: ue,
2304
+ switchStaffUsers: Ae,
2305
+ counselors: $,
2306
+ assistants: L,
2307
+ onRemoveBulkStaff: De,
2308
+ studentUserIds: h
2309
+ }
2310
+ ),
2311
+ /* @__PURE__ */ y(_e, { centered: !0, isOpen: Oe, toggle: () => he(), zIndex: 1201, children: [
2312
+ /* @__PURE__ */ a(Se, { children: e("inactive_students") }),
2313
+ /* @__PURE__ */ y(be, { style: { display: "flex", gap: 12 }, children: [
2314
+ /* @__PURE__ */ a(ba, { color: "red", size: 30 }),
2315
+ /* @__PURE__ */ a(yt, { style: { fontSize: 20, margin: 0, display: "flex", alignItems: "center" }, children: e("are_you_sure_you_want_to_inactive_students", { number: h.length }) })
2316
+ ] }),
2317
+ /* @__PURE__ */ y(Ie, { className: "text-right", children: [
2318
+ /* @__PURE__ */ a(ae, { onClick: () => he(), children: e("cancel") }),
2319
+ /* @__PURE__ */ a(ae, { color: "primary", onClick: () => Re(h, le), children: e("confirm") })
2320
+ ] })
2321
+ ] })
2322
+ ] });
2323
+ }, Ea = [
2324
+ {
2325
+ path: "/admin/users/user-list",
2326
+ title: "user_list",
2327
+ component: da
2328
+ },
2329
+ {
2330
+ path: "/admin/users/assign-student",
2331
+ title: "assign_student",
2332
+ component: Ta
2333
+ }
2334
+ ], ka = () => /* @__PURE__ */ a(it, { tabs: Ea });
2335
+ export {
2336
+ ka as default
2337
+ };