mario-core 2.9.166-level → 2.9.168-level

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.
@@ -3,7 +3,7 @@ import i18n from 'i18next';
3
3
  import { initReactI18next, useTranslation } from 'react-i18next';
4
4
  export { I18nextProvider, useTranslation } from 'react-i18next';
5
5
  import React, { useState, useCallback, useEffect, forwardRef, useRef, Suspense, useMemo, memo, Fragment, useImperativeHandle } from 'react';
6
- import { Input, Modal, ModalHeader, ModalBody, ModalFooter, Button, Row, Col, Form, FormGroup, Label, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Alert, Pagination, PaginationItem, PaginationLink, Table, Popover, PopoverBody, CustomInput, TabContent, TabPane, Card, CardImg, CardBody, CardTitle, CardHeader, CardText } from 'reactstrap';
6
+ import { Input, Modal, ModalHeader, ModalBody, ModalFooter, Button, Row, Col, Form, FormGroup, Label, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Alert, Pagination, PaginationItem, PaginationLink, Table, Popover, PopoverBody, TabContent, TabPane, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader, CardText } from 'reactstrap';
7
7
  import { useHistory, Link, useLocation, Switch, Route, Prompt, useParams } from 'react-router-dom';
8
8
  import { Formik } from 'formik';
9
9
  import { object, string, boolean, number, array } from 'yup';
@@ -28,10 +28,10 @@ import differenceInCalendarYears$1 from 'date-fns/differenceInCalendarYears';
28
28
  import { BiSearchAlt2, BiFilterAlt } from 'react-icons/bi';
29
29
  import { HiFilter } from 'react-icons/hi';
30
30
  import { AiOutlineSortAscending, AiOutlineSortDescending, AiOutlineEye } from 'react-icons/ai';
31
+ import CreatableSelect from 'react-select/creatable';
31
32
  import DatePicker from 'react-datepicker';
32
33
  import toDate from 'date-fns/toDate';
33
34
  import { MdAttachFile } from 'react-icons/md';
34
- import Creatable from 'react-select/creatable';
35
35
  import ReactNotification$1 from 'react-notifications-component';
36
36
  import 'react-notifications-component/dist/theme.css';
37
37
  import 'symbol-observable';
@@ -4291,7 +4291,7 @@ var ContentHomePage = function ContentHomePage(_ref) {
4291
4291
  })));
4292
4292
  };
4293
4293
 
4294
- var HOME_ADMIN = "/admin/user";
4294
+ var HOME_ADMIN = "/admin/users/user-list";
4295
4295
  var HOME_TEACHER = "/home";
4296
4296
  var HOME_STUDENT = "/home";
4297
4297
  var DASHBOARD_TITLE = "Dashboard";
@@ -7355,6 +7355,28 @@ var getRosterUserBySourcedIdApi = function getRosterUserBySourcedIdApi(sourcedId
7355
7355
  var syncRosterUsersApi = function syncRosterUsersApi() {
7356
7356
  return api.put(EDU_USER_URL + "/sync-roster-user");
7357
7357
  };
7358
+ var getAssignStudentApi = function getAssignStudentApi(filter) {
7359
+ return api.get(EDU_USER_URL + "/student-assign", {
7360
+ params: filter
7361
+ });
7362
+ };
7363
+ var getCounselors = function getCounselors() {
7364
+ return api.get(BASE_URL + "/api/counselor");
7365
+ };
7366
+ var getAssistants = function getAssistants() {
7367
+ return api.get(BASE_URL + "/api/assistant");
7368
+ };
7369
+ var getSecondaryTeachers = function getSecondaryTeachers() {
7370
+ return api.get(BASE_URL + "/api/secondaryTeacher");
7371
+ };
7372
+ var getTeachers = function getTeachers(filters) {
7373
+ return api.get(USER_URL$1 + "/all/teacher", {
7374
+ params: filters
7375
+ });
7376
+ };
7377
+ var assignStudentsApi = function assignStudentsApi(data) {
7378
+ return api.post(USER_URL$1 + "/student-assign", data);
7379
+ };
7358
7380
 
7359
7381
  var UserOrder;
7360
7382
 
@@ -7380,6 +7402,15 @@ var SearchBy;
7380
7402
  SearchBy[SearchBy["Status"] = 5] = "Status";
7381
7403
  })(SearchBy || (SearchBy = {}));
7382
7404
 
7405
+ var TeacherType;
7406
+
7407
+ (function (TeacherType) {
7408
+ TeacherType[TeacherType["Teacher"] = 0] = "Teacher";
7409
+ TeacherType[TeacherType["Assistant"] = 1] = "Assistant";
7410
+ TeacherType[TeacherType["Counselor"] = 2] = "Counselor";
7411
+ TeacherType[TeacherType["SecondaryTeacher"] = 3] = "SecondaryTeacher";
7412
+ })(TeacherType || (TeacherType = {}));
7413
+
7383
7414
  var _userOrders;
7384
7415
  var userOrders = (_userOrders = {}, _userOrders[UserOrder.Id] = "filter-id", _userOrders[UserOrder.Name] = "filter-name", _userOrders[UserOrder.Email] = "filter-email", _userOrders[UserOrder.Age] = "filter-age", _userOrders[UserOrder.Role] = "filter-role", _userOrders[UserOrder.Status] = "filter-status", _userOrders[UserOrder.CreatedAt] = "filter-createdAt", _userOrders[UserOrder.RosterUser] = "filter-roster", _userOrders);
7385
7416
  var UserColumns = [{
@@ -7461,6 +7492,12 @@ var DEFAULT_FILTER$1 = {
7461
7492
  currentPage: 1,
7462
7493
  pageSize: DEFAULT_PAGE_SIZE$1.value
7463
7494
  };
7495
+ var DEFAULT_STUDENT_FILTER = {
7496
+ searchString: "",
7497
+ currentPage: 1,
7498
+ pageSize: DEFAULT_PAGE_SIZE$1.value,
7499
+ isAssigned: false
7500
+ };
7464
7501
  var DEFAULT_FILTER_POPOVER = {
7465
7502
  currentPage: 1,
7466
7503
  pageSize: 200
@@ -8333,190 +8370,1070 @@ var useExportUsersCsv = function useExportUsersCsv() {
8333
8370
  dispatch(setLoading(false));
8334
8371
  };
8335
8372
 
8336
- dispatch(setLoading(true));
8373
+ dispatch(setLoading(true));
8374
+
8375
+ var _temp4 = _catch(function () {
8376
+ return Promise.resolve(getRosterUserExport(filters)).then(function (res) {
8377
+ var data = res.data;
8378
+ var encodedUri = convertDataExportUser(data);
8379
+ var link = document.createElement("a");
8380
+ link.href = encodedUri;
8381
+ link.download = schoolName + "_Users_Report.csv";
8382
+ link.click();
8383
+ });
8384
+ }, function (err) {
8385
+ var _err$response, _err$response$data;
8386
+
8387
+ dispatch(setAlert({
8388
+ type: "danger",
8389
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8390
+ }));
8391
+ });
8392
+
8393
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
8394
+ } catch (e) {
8395
+ return Promise.reject(e);
8396
+ }
8397
+ };
8398
+
8399
+ var convertDataExportUser = function convertDataExportUser(data) {
8400
+ var headers = "First Name,Last Name,Email,Phone,Age,Role,Active Status,Create Time,Roster Sourced Id,Roster Status,Roster Family Name,Roster Middle Name,Roster Given Name,Roster Email,Roster Role,Roster Grades\n";
8401
+ var content = data.map(function (user) {
8402
+ var _user$rosterUser, _user$rosterUser2, _user$rosterUser3, _user$rosterUser4, _user$rosterUser5, _user$rosterUser6, _user$rosterUser7;
8403
+
8404
+ var age = user.dateOfBirth !== DATE_MIN_VALUE ? differenceInCalendarYears(moment().toDate(), moment.utc(user.dateOfBirth).local().toDate()) : "";
8405
+ return escapeCell(user.firstName) + "," + escapeCell(user.lastName) + "," + escapeCell(user.email) + "," + escapeCell(user.phoneNumber) + "," + age + "," + escapeCell(user.roles.join(", ").replace("SecondaryTeacher", "SupportTeacher")) + "," + (user.isActive ? "Active" : "Inactive") + "," + utcToLocalTime(user === null || user === void 0 ? void 0 : user.createTime, "yyyy-MM-DD HH:mm") + "," + escapeCell(user.sourcedId) + "," + escapeCell((_user$rosterUser = user.rosterUser) === null || _user$rosterUser === void 0 ? void 0 : _user$rosterUser.status) + "," + escapeCell((_user$rosterUser2 = user.rosterUser) === null || _user$rosterUser2 === void 0 ? void 0 : _user$rosterUser2.familyName) + "," + escapeCell((_user$rosterUser3 = user.rosterUser) === null || _user$rosterUser3 === void 0 ? void 0 : _user$rosterUser3.middleName) + "," + escapeCell((_user$rosterUser4 = user.rosterUser) === null || _user$rosterUser4 === void 0 ? void 0 : _user$rosterUser4.givenName) + "," + escapeCell((_user$rosterUser5 = user.rosterUser) === null || _user$rosterUser5 === void 0 ? void 0 : _user$rosterUser5.email) + "," + escapeCell((_user$rosterUser6 = user.rosterUser) === null || _user$rosterUser6 === void 0 ? void 0 : _user$rosterUser6.role) + "," + escapeCell((_user$rosterUser7 = user.rosterUser) === null || _user$rosterUser7 === void 0 ? void 0 : _user$rosterUser7.grades);
8406
+ }).join('\n');
8407
+ return "" + CSV_PREFIX + headers + encodeURIComponent(content);
8408
+ };
8409
+
8410
+ var escapeCell = function escapeCell(value) {
8411
+ if (!value) return "";
8412
+ return "\"" + value.replace(/"/g, '""').replaceAll(/\n/g, " ") + "\"";
8413
+ };
8414
+
8415
+ return {
8416
+ exportUsers: exportUsers
8417
+ };
8418
+ };
8419
+
8420
+ var buttonTextStyle$2 = {
8421
+ fontWeight: 500
8422
+ };
8423
+ var buttonStyle$2 = {
8424
+ height: 38
8425
+ };
8426
+ var header$2 = "User";
8427
+
8428
+ var UserList = function UserList() {
8429
+ var _useUserList = useUserList(),
8430
+ queryName = _useUserList.queryName,
8431
+ userList = _useUserList.userList,
8432
+ totalItems = _useUserList.totalItems,
8433
+ filters = _useUserList.filters,
8434
+ fullName = _useUserList.fullName,
8435
+ removeData = _useUserList.removeData,
8436
+ changeFilters = _useUserList.changeFilters,
8437
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
8438
+ swicthUser = _useUserList.swicthUser,
8439
+ handleSyncRosterUsers = _useUserList.handleSyncRosterUsers,
8440
+ rosterUserInfo = _useUserList.rosterUserInfo;
8441
+
8442
+ var _useExportUsersCsv = useExportUsersCsv(),
8443
+ exportUsers = _useExportUsersCsv.exportUsers;
8444
+
8445
+ var _useTranslation = useTranslation(),
8446
+ t = _useTranslation.t;
8447
+
8448
+ var handleExportUsers = function handleExportUsers() {
8449
+ return exportUsers(filters);
8450
+ };
8451
+
8452
+ return React.createElement("div", {
8453
+ className: "fadeIn animated h-100 pt-3"
8454
+ }, React.createElement("h5", {
8455
+ className: "mb-2"
8456
+ }, t("" + header$2)), React.createElement(Row, {
8457
+ className: "my-2"
8458
+ }, React.createElement(Col, {
8459
+ md: 8
8460
+ }, React.createElement(SearchBoxContainer, {
8461
+ text: t("create_user"),
8462
+ onClick: function onClick() {
8463
+ return reDirectDetailPage();
8464
+ },
8465
+ initValue: !!queryName ? queryName : "",
8466
+ onSearch: function onSearch(searchString) {
8467
+ return changeFilters({
8468
+ searchString: searchString
8469
+ });
8470
+ },
8471
+ placeholder: t("type_something_to_search_by_user_name")
8472
+ })), React.createElement(Col, {
8473
+ md: 4,
8474
+ className: "d-flex justify-content-end align-items-center"
8475
+ }, t("total_of_users"), " : ", totalItems), React.createElement(Col, {
8476
+ md: 12,
8477
+ className: "d-flex justify-content-end my-2"
8478
+ }, React.createElement(SyncButtonIcon, {
8479
+ text: "Sync Roster users",
8480
+ onClick: handleSyncRosterUsers
8481
+ }), React.createElement("button", {
8482
+ className: "btn btn-success d-flex align-items-center border-0 p-0 ml-2",
8483
+ style: buttonStyle$2,
8484
+ onClick: handleExportUsers
8485
+ }, React.createElement("div", {
8486
+ className: "" + styles["button-icon"]
8487
+ }, React.createElement("img", {
8488
+ src: "images/export-icon.svg",
8489
+ alt: ""
8490
+ })), React.createElement("p", {
8491
+ className: styles["button-content"] + " mb-0",
8492
+ style: buttonTextStyle$2
8493
+ }, "Export to CSV")))), React.createElement(Row, {
8494
+ className: "mb-2"
8495
+ }, React.createElement(Col, {
8496
+ md: 12
8497
+ }, React.createElement("div", null, React.createElement(Table, {
8498
+ bordered: true,
8499
+ hover: true,
8500
+ striped: true,
8501
+ responsive: true,
8502
+ size: "sm"
8503
+ }, React.createElement("thead", null, React.createElement(TableHeader, {
8504
+ headers: UserColumns,
8505
+ filters: filters,
8506
+ fullName: fullName,
8507
+ onChangeFilters: changeFilters
8508
+ })), React.createElement("tbody", null, userList && userList.length > 0 && userList.map(function (record) {
8509
+ return React.createElement("tr", {
8510
+ key: record.id
8511
+ }, React.createElement("td", {
8512
+ className: "align-middle"
8513
+ }, React.createElement(LinkEditButton, {
8514
+ label: "" + record.fullName,
8515
+ onClick: function onClick() {
8516
+ return reDirectDetailPage(record.id);
8517
+ }
8518
+ })), React.createElement("td", {
8519
+ className: "align-middle"
8520
+ }, record.email), React.createElement("td", {
8521
+ className: "align-middle"
8522
+ }, record.dateOfBirth !== DATE_MIN_VALUE && differenceInCalendarYears$1(new Date(), new Date(record.dateOfBirth))), React.createElement("td", {
8523
+ className: "align-middle"
8524
+ }, !!record.roles && record.roles.map(function (role) {
8525
+ return role === "SecondaryTeacher" ? "SupportTeacher" : role;
8526
+ }).join(", ")), React.createElement("td", {
8527
+ className: "align-middle"
8528
+ }, record.isActive ? t("active") : t("inactive")), React.createElement("td", {
8529
+ className: "align-middle"
8530
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React.createElement("td", null, rosterUserInfo(record)), React.createElement("td", {
8531
+ className: "text-center align-middle"
8532
+ }, React.createElement(FaUsersCog, {
8533
+ style: {
8534
+ fontSize: "18px",
8535
+ marginRight: "10px",
8536
+ cursor: "pointer"
8537
+ },
8538
+ onClick: function onClick() {
8539
+ return swicthUser(record.id);
8540
+ }
8541
+ }), React.createElement(DeleteButtonIcon, {
8542
+ onClick: function onClick() {
8543
+ return removeData(record.id);
8544
+ }
8545
+ })));
8546
+ }), (!userList || !userList.length) && React.createElement("tr", null, React.createElement("td", {
8547
+ colSpan: 12,
8548
+ className: "p-0"
8549
+ }, React.createElement(EmptyDataAlert, {
8550
+ className: "mb-0",
8551
+ label: t("user")
8552
+ }))))))), React.createElement(Col, {
8553
+ md: 12
8554
+ }, React.createElement(CustomPagination, {
8555
+ filters: filters,
8556
+ totalRecordCount: totalItems,
8557
+ changePageSize: function changePageSize(pageSize) {
8558
+ return changeFilters({
8559
+ pageSize: pageSize
8560
+ });
8561
+ },
8562
+ changePage: function changePage(currentPage) {
8563
+ return changeFilters({
8564
+ currentPage: currentPage
8565
+ });
8566
+ }
8567
+ }))));
8568
+ };
8569
+
8570
+ var CustomTabs = function CustomTabs(props) {
8571
+ var history = useHistory();
8572
+ var location = useLocation();
8573
+ var pathname = location.pathname;
8574
+ var tabs = props.tabs,
8575
+ title = props.title;
8576
+
8577
+ var toggle = function toggle(path) {
8578
+ history.push(path);
8579
+ };
8580
+
8581
+ var renderContent = function renderContent() {
8582
+ var activeTab = tabs.map(function (t) {
8583
+ return t.path;
8584
+ }).indexOf(pathname);
8585
+
8586
+ if (activeTab === -1) {
8587
+ return React.createElement(NotFound, null);
8588
+ }
8589
+
8590
+ return React.createElement(Row, null, React.createElement(Col, {
8591
+ md: 12
8592
+ }, React.createElement("h5", null, title)), React.createElement(Col, {
8593
+ xl: 12
8594
+ }, React.createElement(Nav, {
8595
+ tabs: true
8596
+ }, tabs.map(function (i) {
8597
+ return React.createElement(NavItem, {
8598
+ key: i.path
8599
+ }, React.createElement(NavLink, {
8600
+ className: (i.path === pathname ? "active" : "") + " cursor-pointer",
8601
+ onClick: function onClick() {
8602
+ toggle(i.path);
8603
+ }
8604
+ }, i.title));
8605
+ })), React.createElement(TabContent, {
8606
+ activeTab: pathname,
8607
+ className: "border-bottom-0 border-left-0 border-right-0"
8608
+ }, tabs.map(function (i) {
8609
+ return React.createElement(TabPane, {
8610
+ key: i.path,
8611
+ tabId: i.path
8612
+ }, React.createElement(Route, {
8613
+ path: i.path,
8614
+ exact: true,
8615
+ component: i.component
8616
+ }));
8617
+ }))));
8618
+ };
8619
+
8620
+ return React.createElement("div", {
8621
+ className: "animated fadeIn"
8622
+ }, renderContent());
8623
+ };
8624
+
8625
+ var TeacherSelector = function TeacherSelector(_ref) {
8626
+ var options = _ref.options,
8627
+ isDisabled = _ref.isDisabled,
8628
+ scrollBottom = _ref.scrollBottom,
8629
+ onCreateOption = _ref.onCreateOption,
8630
+ rest = _objectWithoutPropertiesLoose(_ref, ["options", "isDisabled", "scrollBottom", "onCreateOption"]);
8631
+
8632
+ var _useState = useState(),
8633
+ errorMessage = _useState[0],
8634
+ setErrorMessage = _useState[1];
8635
+
8636
+ var validateEmail = function validateEmail(email) {
8637
+ return String(email).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
8638
+ };
8639
+
8640
+ var handleCreateTeacherOption = function handleCreateTeacherOption(newTeacherEmail) {
8641
+ if (!validateEmail(newTeacherEmail)) {
8642
+ setErrorMessage("Invalid email format for email: " + newTeacherEmail);
8643
+ return;
8644
+ } else {
8645
+ setErrorMessage(undefined);
8646
+ }
8647
+
8648
+ var newTeacher = {
8649
+ label: newTeacherEmail,
8650
+ value: -new Date().getTime()
8651
+ };
8652
+ onCreateOption === null || onCreateOption === void 0 ? void 0 : onCreateOption(newTeacher);
8653
+ };
8654
+
8655
+ var handleFocus = function handleFocus() {
8656
+ setErrorMessage(undefined);
8657
+ };
8658
+
8659
+ return React.createElement("div", {
8660
+ className: "w-100"
8661
+ }, React.createElement("div", {
8662
+ className: "w-100"
8663
+ }, React.createElement(CreatableSelect, Object.assign({
8664
+ isDisabled: isDisabled,
8665
+ options: options,
8666
+ menuPlacement: scrollBottom ? "top" : "auto",
8667
+ onCreateOption: handleCreateTeacherOption,
8668
+ onFocus: handleFocus
8669
+ }, rest))), !!errorMessage && React.createElement("p", {
8670
+ className: "text-danger mb-0 mt-1"
8671
+ }, errorMessage));
8672
+ };
8673
+
8674
+ var useAssignStudentList = function useAssignStudentList() {
8675
+ var dispatch = useDispatch();
8676
+
8677
+ var _useState = useState([]),
8678
+ userList = _useState[0],
8679
+ setUserList = _useState[1];
8680
+
8681
+ var _useState2 = useState(DEFAULT_STUDENT_FILTER),
8682
+ filters = _useState2[0],
8683
+ setFilters = _useState2[1];
8684
+
8685
+ var _useState3 = useState(0),
8686
+ totalItem = _useState3[0],
8687
+ setTotalItem = _useState3[1];
8688
+
8689
+ var _useState4 = useState(false),
8690
+ isCheckAll = _useState4[0],
8691
+ setIsCheckAll = _useState4[1];
8692
+
8693
+ var _useState5 = useState([]),
8694
+ isCheck = _useState5[0],
8695
+ setIsCheck = _useState5[1];
8696
+
8697
+ var changeFilters = function changeFilters(updatedFilters) {
8698
+ var newFilters = _extends({}, filters, updatedFilters);
8699
+
8700
+ if (!!newFilters.searchString && !!updatedFilters.searchString && updatedFilters.searchString != filters.searchString) {
8701
+ newFilters.currentPage = 1;
8702
+ }
8703
+
8704
+ setFilters(newFilters);
8705
+ };
8706
+
8707
+ var handelSort = useCallback(function (sortBy) {
8708
+ if (sortBy !== filters.sortBy) {
8709
+ changeFilters({
8710
+ sortBy: sortBy,
8711
+ orderBy: "ASC",
8712
+ currentPage: 1
8713
+ });
8714
+ } else {
8715
+ changeFilters({
8716
+ sortBy: sortBy,
8717
+ orderBy: filters.orderBy !== "DESC" ? "DESC" : "ASC",
8718
+ currentPage: 1
8719
+ });
8720
+ }
8721
+ }, [JSON.stringify(filters)]);
8722
+
8723
+ var getDataUserList = function getDataUserList() {
8724
+ try {
8725
+ var _temp3 = function _temp3() {
8726
+ dispatch(setLoading(false));
8727
+ };
8728
+
8729
+ dispatch(setLoading(true));
8730
+
8731
+ var _temp4 = _catch(function () {
8732
+ return Promise.resolve(getAssignStudentApi(filters)).then(function (res) {
8733
+ var _res$data, _res$data2;
8734
+
8735
+ setUserList(res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.items);
8736
+ setTotalItem(res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.totalItems);
8737
+ });
8738
+ }, function (err) {
8739
+ var _err$response, _err$response$data;
8740
+
8741
+ dispatch(setAlert({
8742
+ type: "danger",
8743
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8744
+ }));
8745
+ });
8746
+
8747
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
8748
+ } catch (e) {
8749
+ return Promise.reject(e);
8750
+ }
8751
+ };
8752
+
8753
+ var handleSelectAll = function handleSelectAll() {
8754
+ setIsCheckAll(!isCheckAll);
8755
+ setIsCheck(userList.map(function (i) {
8756
+ return i.id;
8757
+ }));
8758
+
8759
+ if (isCheckAll) {
8760
+ setIsCheck([]);
8761
+ }
8762
+ };
8763
+
8764
+ var handleClickCheck = function handleClickCheck(e) {
8765
+ var _e$target = e.target,
8766
+ id = _e$target.id,
8767
+ checked = _e$target.checked;
8768
+ setIsCheck([].concat(isCheck, [id]));
8769
+
8770
+ if (!checked) {
8771
+ setIsCheck(isCheck.filter(function (item) {
8772
+ return item !== id;
8773
+ }));
8774
+ }
8775
+ };
8776
+
8777
+ var handleRetrievedData = useCallback(function () {
8778
+ if (filters.currentPage == 1) getDataUserList();else changeFilters({
8779
+ currentPage: 1
8780
+ });
8781
+ setIsCheck([]);
8782
+ setIsCheckAll(false);
8783
+ }, [JSON.stringify(filters)]);
8784
+ useEffect(function () {
8785
+ getDataUserList();
8786
+ }, [JSON.stringify(filters)]);
8787
+ useEffect(function () {
8788
+ document.title = "User | Assign student";
8789
+ }, []);
8790
+ return {
8791
+ handelSort: handelSort,
8792
+ handleRetrievedData: handleRetrievedData,
8793
+ totalItem: totalItem,
8794
+ userList: userList,
8795
+ filters: filters,
8796
+ changeFilters: changeFilters,
8797
+ handleSelectAll: handleSelectAll,
8798
+ handleClickCheck: handleClickCheck,
8799
+ isCheckAll: isCheckAll,
8800
+ isCheck: isCheck
8801
+ };
8802
+ };
8803
+
8804
+ var useCounselorList = function useCounselorList() {
8805
+ var dispatch = useDispatch();
8806
+
8807
+ var _useState = useState([]),
8808
+ counselorOptions = _useState[0],
8809
+ setCounselorOptions = _useState[1];
8810
+
8811
+ var _useState2 = useState(),
8812
+ selectedCounselors = _useState2[0],
8813
+ setSelectedCounselors = _useState2[1];
8814
+
8815
+ var getDataCounselors = function getDataCounselors() {
8816
+ try {
8817
+ var _temp2 = _catch(function () {
8818
+ return Promise.resolve(getCounselors()).then(function (res) {
8819
+ var _res$data$items$map, _res$data$items;
8820
+
8821
+ res.data.items && setCounselorOptions(((_res$data$items$map = (_res$data$items = res.data.items).map) === null || _res$data$items$map === void 0 ? void 0 : _res$data$items$map.call(_res$data$items, function (record) {
8822
+ return {
8823
+ label: record.email,
8824
+ value: record.id
8825
+ };
8826
+ })) || []);
8827
+ });
8828
+ }, function (err) {
8829
+ var _err$response, _err$response$data;
8830
+
8831
+ dispatch(setAlert({
8832
+ type: "danger",
8833
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8834
+ }));
8835
+ });
8836
+
8837
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
8838
+ } catch (e) {
8839
+ return Promise.reject(e);
8840
+ }
8841
+ };
8842
+
8843
+ var handleSelectCounselor = useCallback(function (counselorId, studentUserId) {
8844
+ var _extends2;
8845
+
8846
+ var selectedCounselor = counselorOptions.find(function (t) {
8847
+ return t.value === counselorId;
8848
+ });
8849
+ setSelectedCounselors(_extends({}, selectedCounselors, (_extends2 = {}, _extends2[studentUserId] = selectedCounselor, _extends2)));
8850
+ }, [JSON.stringify(selectedCounselors), JSON.stringify(counselorOptions)]);
8851
+ var handleCreateCounselorOption = useCallback(function (newCounselor, studentUserId) {
8852
+ var _extends3;
8853
+
8854
+ setCounselorOptions([].concat(counselorOptions, [newCounselor]));
8855
+ setSelectedCounselors(_extends({}, selectedCounselors, (_extends3 = {}, _extends3[studentUserId] = newCounselor, _extends3)));
8856
+ }, [JSON.stringify(counselorOptions), JSON.stringify(selectedCounselors)]);
8857
+ useEffect(function () {
8858
+ getDataCounselors();
8859
+ }, []);
8860
+ return {
8861
+ selectedCounselors: selectedCounselors,
8862
+ counselorOptions: counselorOptions,
8863
+ handleSelectCounselor: handleSelectCounselor,
8864
+ handleCreateCounselorOption: handleCreateCounselorOption,
8865
+ setSelectedCounselors: setSelectedCounselors
8866
+ };
8867
+ };
8868
+
8869
+ var useAssistantList = function useAssistantList() {
8870
+ var dispatch = useDispatch();
8871
+
8872
+ var _useState = useState([]),
8873
+ assistantOptions = _useState[0],
8874
+ setAssistantOptions = _useState[1];
8875
+
8876
+ var _useState2 = useState(),
8877
+ selectedAssistants = _useState2[0],
8878
+ setSelectedAssistants = _useState2[1];
8879
+
8880
+ var getDataAssistants = function getDataAssistants() {
8881
+ try {
8882
+ var _temp2 = _catch(function () {
8883
+ return Promise.resolve(getAssistants()).then(function (res) {
8884
+ var _res$data$items$map, _res$data$items;
8885
+
8886
+ res.data.items && setAssistantOptions(((_res$data$items$map = (_res$data$items = res.data.items).map) === null || _res$data$items$map === void 0 ? void 0 : _res$data$items$map.call(_res$data$items, function (record) {
8887
+ return {
8888
+ label: record.email,
8889
+ value: record.id
8890
+ };
8891
+ })) || []);
8892
+ });
8893
+ }, function (err) {
8894
+ var _err$response, _err$response$data;
8895
+
8896
+ dispatch(setAlert({
8897
+ type: "danger",
8898
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8899
+ }));
8900
+ });
8901
+
8902
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
8903
+ } catch (e) {
8904
+ return Promise.reject(e);
8905
+ }
8906
+ };
8907
+
8908
+ var handleSelectAssistant = useCallback(function (assistantId, studentUserId) {
8909
+ var _extends2;
8910
+
8911
+ var selectedAssistant = assistantOptions.find(function (t) {
8912
+ return t.value === assistantId;
8913
+ });
8914
+ setSelectedAssistants(_extends({}, selectedAssistants, (_extends2 = {}, _extends2[studentUserId] = selectedAssistant, _extends2)));
8915
+ }, [JSON.stringify(selectedAssistants), JSON.stringify(assistantOptions)]);
8916
+ var handleCreateAssistantOption = useCallback(function (newAssistant, studentUserId) {
8917
+ var _extends3;
8918
+
8919
+ setAssistantOptions([].concat(assistantOptions, [newAssistant]));
8920
+ setSelectedAssistants(_extends({}, selectedAssistants, (_extends3 = {}, _extends3[studentUserId] = newAssistant, _extends3)));
8921
+ }, [JSON.stringify(assistantOptions), JSON.stringify(selectedAssistants)]);
8922
+ useEffect(function () {
8923
+ getDataAssistants();
8924
+ }, []);
8925
+ return {
8926
+ selectedAssistants: selectedAssistants,
8927
+ assistantOptions: assistantOptions,
8928
+ handleSelectAssistant: handleSelectAssistant,
8929
+ handleCreateAssistantOption: handleCreateAssistantOption,
8930
+ setSelectedAssistants: setSelectedAssistants
8931
+ };
8932
+ };
8933
+
8934
+ var useSecondaryTeacherList = function useSecondaryTeacherList() {
8935
+ var dispatch = useDispatch();
8936
+
8937
+ var _useState = useState([]),
8938
+ secondaryTeacherOptions = _useState[0],
8939
+ setSecondaryTeacherOptions = _useState[1];
8940
+
8941
+ var _useState2 = useState(),
8942
+ selectedSecondaryTeachers = _useState2[0],
8943
+ setSelectedSecondaryTeachers = _useState2[1];
8944
+
8945
+ var getDataSecondaryTeachers = function getDataSecondaryTeachers() {
8946
+ try {
8947
+ var _temp2 = _catch(function () {
8948
+ return Promise.resolve(getSecondaryTeachers()).then(function (res) {
8949
+ var _res$data$items$map, _res$data$items;
8950
+
8951
+ res.data.items && setSecondaryTeacherOptions(((_res$data$items$map = (_res$data$items = res.data.items).map) === null || _res$data$items$map === void 0 ? void 0 : _res$data$items$map.call(_res$data$items, function (record) {
8952
+ return {
8953
+ label: record.email,
8954
+ value: record.id
8955
+ };
8956
+ })) || []);
8957
+ });
8958
+ }, function (err) {
8959
+ var _err$response, _err$response$data;
8960
+
8961
+ dispatch(setAlert({
8962
+ type: "danger",
8963
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8964
+ }));
8965
+ });
8966
+
8967
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
8968
+ } catch (e) {
8969
+ return Promise.reject(e);
8970
+ }
8971
+ };
8972
+
8973
+ var handleSelectSecondaryTeacher = useCallback(function (secondaryTeacherId, studentUserId) {
8974
+ var _extends2;
8975
+
8976
+ var selectedSecondaryTeacher = secondaryTeacherOptions.find(function (t) {
8977
+ return t.value === secondaryTeacherId;
8978
+ });
8979
+ setSelectedSecondaryTeachers(_extends({}, selectedSecondaryTeachers, (_extends2 = {}, _extends2[studentUserId] = selectedSecondaryTeacher, _extends2)));
8980
+ }, [JSON.stringify(selectedSecondaryTeachers), JSON.stringify(secondaryTeacherOptions)]);
8981
+ var handleCreateSecondaryTeacherOption = useCallback(function (newSecondaryTeacher, studentUserId) {
8982
+ var _extends3;
8983
+
8984
+ setSecondaryTeacherOptions([].concat(secondaryTeacherOptions, [newSecondaryTeacher]));
8985
+ setSelectedSecondaryTeachers(_extends({}, selectedSecondaryTeachers, (_extends3 = {}, _extends3[studentUserId] = newSecondaryTeacher, _extends3)));
8986
+ }, [JSON.stringify(secondaryTeacherOptions), JSON.stringify(selectedSecondaryTeachers)]);
8987
+ useEffect(function () {
8988
+ getDataSecondaryTeachers();
8989
+ }, []);
8990
+ return {
8991
+ selectedSecondaryTeachers: selectedSecondaryTeachers,
8992
+ secondaryTeacherOptions: secondaryTeacherOptions,
8993
+ handleSelectSecondaryTeacher: handleSelectSecondaryTeacher,
8994
+ handleCreateSecondaryTeacherOption: handleCreateSecondaryTeacherOption,
8995
+ setSelectedSecondaryTeachers: setSelectedSecondaryTeachers
8996
+ };
8997
+ };
8998
+
8999
+ var useTeacherList = function useTeacherList() {
9000
+ var dispatch = useDispatch();
9001
+
9002
+ var _useState = useState([]),
9003
+ teacherOptions = _useState[0],
9004
+ setTeacherOptions = _useState[1];
9005
+
9006
+ var _useState2 = useState(),
9007
+ selectedTeachers = _useState2[0],
9008
+ setSelectedTeachers = _useState2[1];
9009
+
9010
+ var getDataTeachers = function getDataTeachers() {
9011
+ try {
9012
+ var _temp2 = _catch(function () {
9013
+ return Promise.resolve(getTeachers({
9014
+ sortBy: "Email"
9015
+ })).then(function (res) {
9016
+ var _res$data$map, _res$data;
9017
+
9018
+ res.data && setTeacherOptions(((_res$data$map = (_res$data = res.data).map) === null || _res$data$map === void 0 ? void 0 : _res$data$map.call(_res$data, function (record) {
9019
+ return {
9020
+ label: record.email,
9021
+ value: record.id
9022
+ };
9023
+ })) || []);
9024
+ });
9025
+ }, function (err) {
9026
+ var _err$response, _err$response$data;
9027
+
9028
+ dispatch(setAlert({
9029
+ type: "danger",
9030
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
9031
+ }));
9032
+ });
9033
+
9034
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
9035
+ } catch (e) {
9036
+ return Promise.reject(e);
9037
+ }
9038
+ };
9039
+
9040
+ var handleSelectTeacher = useCallback(function (teacherId, studentUserId) {
9041
+ var _extends2;
9042
+
9043
+ var selectedTeacher = teacherOptions.find(function (t) {
9044
+ return t.value === teacherId;
9045
+ });
9046
+ setSelectedTeachers(_extends({}, selectedTeachers, (_extends2 = {}, _extends2[studentUserId] = selectedTeacher, _extends2)));
9047
+ }, [JSON.stringify(selectedTeachers), JSON.stringify(teacherOptions)]);
9048
+ var handleCreateTeacherOption = useCallback(function (newTeacher, studentUserId) {
9049
+ var _extends3;
9050
+
9051
+ setTeacherOptions([].concat(teacherOptions, [newTeacher]));
9052
+ setSelectedTeachers(_extends({}, selectedTeachers, (_extends3 = {}, _extends3[studentUserId] = newTeacher, _extends3)));
9053
+ }, [JSON.stringify(teacherOptions), JSON.stringify(selectedTeachers)]);
9054
+ useEffect(function () {
9055
+ getDataTeachers();
9056
+ }, []);
9057
+ return {
9058
+ selectedTeachers: selectedTeachers,
9059
+ teacherOptions: teacherOptions,
9060
+ handleSelectTeacher: handleSelectTeacher,
9061
+ handleCreateTeacherOption: handleCreateTeacherOption,
9062
+ setSelectedTeachers: setSelectedTeachers
9063
+ };
9064
+ };
9065
+
9066
+ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelected, counselorSelected, secondaryTeacherSelected, callback) {
9067
+ var dispatch = useDispatch();
9068
+
9069
+ var assignStudents = function assignStudents(users) {
9070
+ try {
9071
+ var _temp3 = function _temp3() {
9072
+ dispatch(setLoading(false));
9073
+ };
9074
+
9075
+ dispatch(setLoading(true));
9076
+
9077
+ var _temp4 = _catch(function () {
9078
+ return Promise.resolve(assignStudentsApi(users)).then(function () {
9079
+ dispatch(setAlert({
9080
+ type: "success",
9081
+ message: "Create Successfully"
9082
+ }));
9083
+ callback === null || callback === void 0 ? void 0 : callback();
9084
+ });
9085
+ }, function (err) {
9086
+ var _err$response, _err$response$data;
9087
+
9088
+ dispatch(setAlert({
9089
+ type: "danger",
9090
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
9091
+ }));
9092
+ });
9093
+
9094
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
9095
+ } catch (e) {
9096
+ return Promise.reject(e);
9097
+ }
9098
+ };
9099
+
9100
+ var handleAssignMultiStudent = useCallback(function (listUserIds) {
9101
+ if (listUserIds.length === 0) {
9102
+ dispatch(setAlert({
9103
+ type: "danger",
9104
+ message: "Not found selected student."
9105
+ }));
9106
+ return;
9107
+ }
9108
+
9109
+ var isMissingTeacher = listUserIds.some(function (i) {
9110
+ var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[i];
9111
+ var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[i];
9112
+ var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[i];
9113
+ var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[i];
9114
+ return !teacher && !assistant && !counselor && !secondaryTeacher;
9115
+ });
9116
+
9117
+ if (isMissingTeacher) {
9118
+ dispatch(setAlert({
9119
+ type: "danger",
9120
+ message: "Please select/add teacher for all selected student first."
9121
+ }));
9122
+ return;
9123
+ }
9124
+
9125
+ var users = listUserIds.map(function (i) {
9126
+ var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[i];
9127
+ var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[i];
9128
+ var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[i];
9129
+ var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[i];
9130
+ var value = {
9131
+ id: i
9132
+ };
9133
+
9134
+ if (!!teacher) {
9135
+ value.mainTeacherUserId = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'string' ? teacher === null || teacher === void 0 ? void 0 : teacher.value : undefined;
9136
+ value.mainTeacherEmail = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'number' ? teacher === null || teacher === void 0 ? void 0 : teacher.label : undefined;
9137
+ }
9138
+
9139
+ if (!!assistant) {
9140
+ value.assistantUserId = !!(assistant !== null && assistant !== void 0 && assistant.value) && typeof (assistant === null || assistant === void 0 ? void 0 : assistant.value) === 'string' ? assistant === null || assistant === void 0 ? void 0 : assistant.value : undefined;
9141
+ value.assistantEmail = !!(assistant !== null && assistant !== void 0 && assistant.value) && typeof (assistant === null || assistant === void 0 ? void 0 : assistant.value) === 'number' ? assistant === null || assistant === void 0 ? void 0 : assistant.label : undefined;
9142
+ }
8337
9143
 
8338
- var _temp4 = _catch(function () {
8339
- return Promise.resolve(getRosterUserExport(filters)).then(function (res) {
8340
- var data = res.data;
8341
- var encodedUri = convertDataExportUser(data);
8342
- var link = document.createElement("a");
8343
- link.href = encodedUri;
8344
- link.download = schoolName + "_Users_Report.csv";
8345
- link.click();
8346
- });
8347
- }, function (err) {
8348
- var _err$response, _err$response$data;
9144
+ if (!!counselor) {
9145
+ value.counselorUserId = !!(counselor !== null && counselor !== void 0 && counselor.value) && typeof (counselor === null || counselor === void 0 ? void 0 : counselor.value) === 'string' ? counselor === null || counselor === void 0 ? void 0 : counselor.value : undefined;
9146
+ value.counselorEmail = !!(counselor !== null && counselor !== void 0 && counselor.value) && typeof (counselor === null || counselor === void 0 ? void 0 : counselor.value) === 'number' ? counselor === null || counselor === void 0 ? void 0 : counselor.label : undefined;
9147
+ }
8349
9148
 
8350
- dispatch(setAlert({
8351
- type: "danger",
8352
- message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8353
- }));
8354
- });
9149
+ if (!!secondaryTeacher) {
9150
+ value.secondaryTeacherUserId = !!(secondaryTeacher !== null && secondaryTeacher !== void 0 && secondaryTeacher.value) && typeof (secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.value) === 'string' ? secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.value : undefined;
9151
+ value.secondaryTeacherEmail = !!(secondaryTeacher !== null && secondaryTeacher !== void 0 && secondaryTeacher.value) && typeof (secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.value) === 'number' ? secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.label : undefined;
9152
+ }
8355
9153
 
8356
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
8357
- } catch (e) {
8358
- return Promise.reject(e);
9154
+ return value;
9155
+ });
9156
+ assignStudents([].concat(users));
9157
+ }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
9158
+ var handleAssignSingleStudent = useCallback(function (id) {
9159
+ var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[id];
9160
+ var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[id];
9161
+ var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[id];
9162
+ var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[id];
9163
+
9164
+ if (!teacher && !assistant && !counselor && !secondaryTeacher) {
9165
+ dispatch(setAlert({
9166
+ type: "danger",
9167
+ message: "Please select/add teacher for selected student first."
9168
+ }));
9169
+ return;
8359
9170
  }
8360
- };
8361
9171
 
8362
- var convertDataExportUser = function convertDataExportUser(data) {
8363
- var headers = "First Name,Last Name,Email,Phone,Age,Role,Active Status,Create Time,Roster Sourced Id,Roster Status,Roster Family Name,Roster Middle Name,Roster Given Name,Roster Email,Roster Role,Roster Grades\n";
8364
- var content = data.map(function (user) {
8365
- var _user$rosterUser, _user$rosterUser2, _user$rosterUser3, _user$rosterUser4, _user$rosterUser5, _user$rosterUser6, _user$rosterUser7;
9172
+ var studentRequest = {
9173
+ id: id
9174
+ };
8366
9175
 
8367
- var age = user.dateOfBirth !== DATE_MIN_VALUE ? differenceInCalendarYears(moment().toDate(), moment.utc(user.dateOfBirth).local().toDate()) : "";
8368
- return escapeCell(user.firstName) + "," + escapeCell(user.lastName) + "," + escapeCell(user.email) + "," + escapeCell(user.phoneNumber) + "," + age + "," + escapeCell(user.roles.join(", ").replace("SecondaryTeacher", "SupportTeacher")) + "," + (user.isActive ? "Active" : "Inactive") + "," + utcToLocalTime(user === null || user === void 0 ? void 0 : user.createTime, "yyyy-MM-DD HH:mm") + "," + escapeCell(user.sourcedId) + "," + escapeCell((_user$rosterUser = user.rosterUser) === null || _user$rosterUser === void 0 ? void 0 : _user$rosterUser.status) + "," + escapeCell((_user$rosterUser2 = user.rosterUser) === null || _user$rosterUser2 === void 0 ? void 0 : _user$rosterUser2.familyName) + "," + escapeCell((_user$rosterUser3 = user.rosterUser) === null || _user$rosterUser3 === void 0 ? void 0 : _user$rosterUser3.middleName) + "," + escapeCell((_user$rosterUser4 = user.rosterUser) === null || _user$rosterUser4 === void 0 ? void 0 : _user$rosterUser4.givenName) + "," + escapeCell((_user$rosterUser5 = user.rosterUser) === null || _user$rosterUser5 === void 0 ? void 0 : _user$rosterUser5.email) + "," + escapeCell((_user$rosterUser6 = user.rosterUser) === null || _user$rosterUser6 === void 0 ? void 0 : _user$rosterUser6.role) + "," + escapeCell((_user$rosterUser7 = user.rosterUser) === null || _user$rosterUser7 === void 0 ? void 0 : _user$rosterUser7.grades);
8369
- }).join('\n');
8370
- return "" + CSV_PREFIX + headers + encodeURIComponent(content);
8371
- };
9176
+ if (!!teacher) {
9177
+ studentRequest.mainTeacherUserId = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'string' ? teacher === null || teacher === void 0 ? void 0 : teacher.value : undefined;
9178
+ studentRequest.mainTeacherEmail = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'number' ? teacher === null || teacher === void 0 ? void 0 : teacher.label : undefined;
9179
+ }
8372
9180
 
8373
- var escapeCell = function escapeCell(value) {
8374
- if (!value) return "";
8375
- return "\"" + value.replace(/"/g, '""').replaceAll(/\n/g, " ") + "\"";
8376
- };
9181
+ if (!!assistant) {
9182
+ studentRequest.assistantUserId = !!(assistant !== null && assistant !== void 0 && assistant.value) && typeof (assistant === null || assistant === void 0 ? void 0 : assistant.value) === 'string' ? assistant === null || assistant === void 0 ? void 0 : assistant.value : undefined;
9183
+ studentRequest.assistantEmail = !!(assistant !== null && assistant !== void 0 && assistant.value) && typeof (assistant === null || assistant === void 0 ? void 0 : assistant.value) === 'number' ? assistant === null || assistant === void 0 ? void 0 : assistant.label : undefined;
9184
+ }
9185
+
9186
+ if (!!counselor) {
9187
+ studentRequest.counselorUserId = !!(counselor !== null && counselor !== void 0 && counselor.value) && typeof (counselor === null || counselor === void 0 ? void 0 : counselor.value) === 'string' ? counselor === null || counselor === void 0 ? void 0 : counselor.value : undefined;
9188
+ studentRequest.counselorEmail = !!(counselor !== null && counselor !== void 0 && counselor.value) && typeof (counselor === null || counselor === void 0 ? void 0 : counselor.value) === 'number' ? counselor === null || counselor === void 0 ? void 0 : counselor.label : undefined;
9189
+ }
8377
9190
 
9191
+ if (!!secondaryTeacher) {
9192
+ studentRequest.secondaryTeacherUserId = !!(secondaryTeacher !== null && secondaryTeacher !== void 0 && secondaryTeacher.value) && typeof (secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.value) === 'string' ? secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.value : undefined;
9193
+ studentRequest.secondaryTeacherEmail = !!(secondaryTeacher !== null && secondaryTeacher !== void 0 && secondaryTeacher.value) && typeof (secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.value) === 'number' ? secondaryTeacher === null || secondaryTeacher === void 0 ? void 0 : secondaryTeacher.label : undefined;
9194
+ }
9195
+
9196
+ assignStudents([studentRequest]);
9197
+ }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
8378
9198
  return {
8379
- exportUsers: exportUsers
9199
+ handleAssignSingleStudent: handleAssignSingleStudent,
9200
+ handleAssignMultiStudent: handleAssignMultiStudent
8380
9201
  };
8381
9202
  };
8382
9203
 
8383
- var buttonTextStyle$2 = {
8384
- fontWeight: 500
8385
- };
8386
- var buttonStyle$2 = {
8387
- height: 38
8388
- };
8389
- var header$2 = "User";
8390
-
8391
- var UserList = function UserList() {
8392
- var _useUserList = useUserList(),
8393
- queryName = _useUserList.queryName,
8394
- userList = _useUserList.userList,
8395
- totalItems = _useUserList.totalItems,
8396
- filters = _useUserList.filters,
8397
- fullName = _useUserList.fullName,
8398
- removeData = _useUserList.removeData,
8399
- changeFilters = _useUserList.changeFilters,
8400
- reDirectDetailPage = _useUserList.reDirectDetailPage,
8401
- swicthUser = _useUserList.swicthUser,
8402
- handleSyncRosterUsers = _useUserList.handleSyncRosterUsers,
8403
- rosterUserInfo = _useUserList.rosterUserInfo;
8404
-
8405
- var _useExportUsersCsv = useExportUsersCsv(),
8406
- exportUsers = _useExportUsersCsv.exportUsers;
8407
-
9204
+ var AssignStudentList = function AssignStudentList() {
8408
9205
  var _useTranslation = useTranslation(),
8409
9206
  t = _useTranslation.t;
8410
9207
 
8411
- var handleExportUsers = function handleExportUsers() {
8412
- return exportUsers(filters);
9208
+ var _useTeacherList = useTeacherList(),
9209
+ selectedTeachers = _useTeacherList.selectedTeachers,
9210
+ teacherOptions = _useTeacherList.teacherOptions,
9211
+ handleCreateTeacherOption = _useTeacherList.handleCreateTeacherOption,
9212
+ handleSelectTeacher = _useTeacherList.handleSelectTeacher,
9213
+ setSelectedTeachers = _useTeacherList.setSelectedTeachers;
9214
+
9215
+ var _useAssistantList = useAssistantList(),
9216
+ selectedAssistants = _useAssistantList.selectedAssistants,
9217
+ assistantOptions = _useAssistantList.assistantOptions,
9218
+ handleCreateAssistantOption = _useAssistantList.handleCreateAssistantOption,
9219
+ handleSelectAssistant = _useAssistantList.handleSelectAssistant,
9220
+ setSelectedAssistants = _useAssistantList.setSelectedAssistants;
9221
+
9222
+ var _useCounselorList = useCounselorList(),
9223
+ selectedCounselors = _useCounselorList.selectedCounselors,
9224
+ counselorOptions = _useCounselorList.counselorOptions,
9225
+ handleCreateCounselorOption = _useCounselorList.handleCreateCounselorOption,
9226
+ handleSelectCounselor = _useCounselorList.handleSelectCounselor,
9227
+ setSelectedCounselors = _useCounselorList.setSelectedCounselors;
9228
+
9229
+ var _useSecondaryTeacherL = useSecondaryTeacherList(),
9230
+ selectedSecondaryTeachers = _useSecondaryTeacherL.selectedSecondaryTeachers,
9231
+ secondaryTeacherOptions = _useSecondaryTeacherL.secondaryTeacherOptions,
9232
+ handleCreateSecondaryTeacherOption = _useSecondaryTeacherL.handleCreateSecondaryTeacherOption,
9233
+ handleSelectSecondaryTeacher = _useSecondaryTeacherL.handleSelectSecondaryTeacher,
9234
+ setSelectedSecondaryTeachers = _useSecondaryTeacherL.setSelectedSecondaryTeachers;
9235
+
9236
+ var _useAssignStudentList = useAssignStudentList(),
9237
+ isCheck = _useAssignStudentList.isCheck,
9238
+ isCheckAll = _useAssignStudentList.isCheckAll,
9239
+ userList = _useAssignStudentList.userList,
9240
+ filters = _useAssignStudentList.filters,
9241
+ totalItem = _useAssignStudentList.totalItem,
9242
+ handleClickCheck = _useAssignStudentList.handleClickCheck,
9243
+ handleSelectAll = _useAssignStudentList.handleSelectAll,
9244
+ changeFilters = _useAssignStudentList.changeFilters,
9245
+ handelSort = _useAssignStudentList.handelSort,
9246
+ handleRetrievedData = _useAssignStudentList.handleRetrievedData;
9247
+
9248
+ var handleResetData = function handleResetData() {
9249
+ handleRetrievedData();
9250
+ setSelectedTeachers(undefined);
9251
+ setSelectedAssistants(undefined);
9252
+ setSelectedCounselors(undefined);
9253
+ setSelectedSecondaryTeachers(undefined);
8413
9254
  };
8414
9255
 
9256
+ var _useAssignStudent = useAssignStudent(selectedTeachers, selectedAssistants, selectedCounselors, selectedSecondaryTeachers, handleResetData),
9257
+ handleAssignSingleStudent = _useAssignStudent.handleAssignSingleStudent,
9258
+ handleAssignMultiStudent = _useAssignStudent.handleAssignMultiStudent;
9259
+
8415
9260
  return React.createElement("div", {
8416
- className: "fadeIn animated h-100"
9261
+ className: "fadeIn animated"
8417
9262
  }, React.createElement("h5", {
8418
- className: "mb-2"
8419
- }, t("" + header$2)), React.createElement(Row, {
9263
+ className: "mt-4 mb-2"
9264
+ }, "Assign Student"), React.createElement(Row, {
8420
9265
  className: "my-2"
8421
9266
  }, React.createElement(Col, {
8422
9267
  md: 8
8423
- }, React.createElement(SearchBoxContainer, {
8424
- text: t("create_user"),
8425
- onClick: function onClick() {
8426
- return reDirectDetailPage();
8427
- },
8428
- initValue: !!queryName ? queryName : "",
9268
+ }, React.createElement(SearchBox$1, {
9269
+ initValue: (filters === null || filters === void 0 ? void 0 : filters.searchString) || "",
8429
9270
  onSearch: function onSearch(searchString) {
8430
9271
  return changeFilters({
8431
9272
  searchString: searchString
8432
9273
  });
8433
9274
  },
8434
- placeholder: t("type_something_to_search_by_user_name")
9275
+ placeholder: "Type something to search students"
8435
9276
  })), React.createElement(Col, {
8436
9277
  md: 4,
8437
9278
  className: "d-flex justify-content-end align-items-center"
8438
- }, t("total_of_users"), " : ", totalItems), React.createElement(Col, {
8439
- md: 12,
8440
- className: "d-flex justify-content-end my-2"
8441
- }, React.createElement(SyncButtonIcon, {
8442
- text: "Sync Roster users",
8443
- onClick: handleSyncRosterUsers
8444
- }), React.createElement("button", {
8445
- className: "btn btn-success d-flex align-items-center border-0 p-0 ml-2",
8446
- style: buttonStyle$2,
8447
- onClick: handleExportUsers
8448
- }, React.createElement("div", {
8449
- className: "" + styles["button-icon"]
8450
- }, React.createElement("img", {
8451
- src: "images/export-icon.svg",
8452
- alt: ""
8453
- })), React.createElement("p", {
8454
- className: styles["button-content"] + " mb-0",
8455
- style: buttonTextStyle$2
8456
- }, "Export to CSV")))), React.createElement(Row, {
9279
+ }, t("total_of_users"), ": ", totalItem)), React.createElement(Row, {
9280
+ className: "mb-2"
9281
+ }, React.createElement(Col, null, React.createElement(Button, {
9282
+ onClick: function onClick() {
9283
+ return handleAssignMultiStudent(isCheck);
9284
+ },
9285
+ color: "primary"
9286
+ }, "Assign for Selected Students"))), React.createElement(Row, {
8457
9287
  className: "mb-2"
8458
9288
  }, React.createElement(Col, {
8459
9289
  md: 12
8460
- }, React.createElement("div", null, React.createElement(Table, {
9290
+ }, !!userList && userList.length > 0 ? React.createElement("div", null, React.createElement(Table, {
8461
9291
  bordered: true,
8462
9292
  hover: true,
8463
9293
  striped: true,
8464
9294
  responsive: true,
8465
9295
  size: "sm"
8466
- }, React.createElement("thead", null, React.createElement(TableHeader, {
8467
- headers: UserColumns,
8468
- filters: filters,
8469
- fullName: fullName,
8470
- onChangeFilters: changeFilters
8471
- })), React.createElement("tbody", null, userList && userList.length > 0 && userList.map(function (record) {
9296
+ }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
9297
+ className: "align-middle text-center"
9298
+ }, React.createElement("input", {
9299
+ type: "checkbox",
9300
+ onChange: handleSelectAll,
9301
+ checked: isCheckAll
9302
+ })), React.createElement("th", {
9303
+ className: "align-top " + styles["pointer"],
9304
+ onClick: function onClick() {
9305
+ return handelSort(UserOrder.Name);
9306
+ }
9307
+ }, "Student Name", filters.sortBy === UserOrder.Name && React.createElement(React.Fragment, null, filters.orderBy === "DESC" ? React.createElement(AiOutlineSortDescending, {
9308
+ className: "ml-1"
9309
+ }) : React.createElement(AiOutlineSortAscending, {
9310
+ className: "ml-1"
9311
+ }))), React.createElement("th", {
9312
+ className: "align-top " + styles["pointer"],
9313
+ onClick: function onClick() {
9314
+ return handelSort(UserOrder.Email);
9315
+ }
9316
+ }, "Student Email", filters.sortBy === UserOrder.Email && React.createElement(React.Fragment, null, filters.orderBy === "DESC" ? React.createElement(AiOutlineSortDescending, {
9317
+ className: "ml-1"
9318
+ }) : React.createElement(AiOutlineSortAscending, {
9319
+ className: "ml-1"
9320
+ }))), React.createElement("th", {
9321
+ style: {
9322
+ width: "15%"
9323
+ }
9324
+ }, t("teacher_email")), React.createElement("th", {
9325
+ style: {
9326
+ width: "15%"
9327
+ }
9328
+ }, "Assistant Email"), React.createElement("th", {
9329
+ style: {
9330
+ width: "15%"
9331
+ }
9332
+ }, "Counselor Email"), React.createElement("th", {
9333
+ style: {
9334
+ width: "15%"
9335
+ }
9336
+ }, "Support Teacher Email"), React.createElement("th", {
9337
+ className: "align-top"
9338
+ }, t("action")))), React.createElement("tbody", null, userList.map(function (item) {
8472
9339
  return React.createElement("tr", {
8473
- key: record.id
9340
+ key: item.id
8474
9341
  }, React.createElement("td", {
8475
- className: "align-middle"
8476
- }, React.createElement(LinkEditButton, {
8477
- label: "" + record.fullName,
8478
- onClick: function onClick() {
8479
- return reDirectDetailPage(record.id);
8480
- }
9342
+ className: "align-middle text-center"
9343
+ }, React.createElement("input", {
9344
+ id: item.id,
9345
+ type: "checkbox",
9346
+ onChange: handleClickCheck,
9347
+ checked: isCheck.includes(item.id)
8481
9348
  })), React.createElement("td", {
8482
9349
  className: "align-middle"
8483
- }, record.email), React.createElement("td", {
9350
+ }, item.fullName), React.createElement("td", {
8484
9351
  className: "align-middle"
8485
- }, record.dateOfBirth !== DATE_MIN_VALUE && differenceInCalendarYears$1(new Date(), new Date(record.dateOfBirth))), React.createElement("td", {
9352
+ }, item.email), React.createElement("td", {
8486
9353
  className: "align-middle"
8487
- }, !!record.roles && record.roles.map(function (role) {
8488
- return role === "SecondaryTeacher" ? "SupportTeacher" : role;
8489
- }).join(", ")), React.createElement("td", {
9354
+ }, !!item.mainTeacherEmail ? React.createElement(React.Fragment, null, React.createElement("p", {
9355
+ className: "mb-0"
9356
+ }, item.mainTeacherEmail), React.createElement("p", {
9357
+ className: "mb-0"
9358
+ }, item.mainTeacherName)) : React.createElement(TeacherSelector, {
9359
+ value: selectedTeachers === null || selectedTeachers === void 0 ? void 0 : selectedTeachers[item.id],
9360
+ options: teacherOptions,
9361
+ onChange: function onChange(e) {
9362
+ return handleSelectTeacher(e.value, item.id);
9363
+ },
9364
+ onCreateOption: function onCreateOption(value) {
9365
+ return handleCreateTeacherOption(value, item.id);
9366
+ },
9367
+ placeholder: t("select_teacher"),
9368
+ className: "flex-grow-1 mr-2"
9369
+ })), React.createElement("td", {
8490
9370
  className: "align-middle"
8491
- }, record.isActive ? t("active") : t("inactive")), React.createElement("td", {
9371
+ }, !!item.assistantEmail ? React.createElement(React.Fragment, null, React.createElement("p", {
9372
+ className: "mb-0"
9373
+ }, item.assistantEmail), React.createElement("p", {
9374
+ className: "mb-0"
9375
+ }, item.assistantName)) : React.createElement(TeacherSelector, {
9376
+ value: selectedAssistants === null || selectedAssistants === void 0 ? void 0 : selectedAssistants[item.id],
9377
+ options: assistantOptions,
9378
+ onChange: function onChange(e) {
9379
+ return handleSelectAssistant(e.value, item.id);
9380
+ },
9381
+ onCreateOption: function onCreateOption(value) {
9382
+ return handleCreateAssistantOption(value, item.id);
9383
+ },
9384
+ placeholder: t("select_assistant"),
9385
+ className: "flex-grow-1 mr-2"
9386
+ })), React.createElement("td", {
8492
9387
  className: "align-middle"
8493
- }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React.createElement("td", null, rosterUserInfo(record)), React.createElement("td", {
8494
- className: "text-center align-middle"
8495
- }, React.createElement(FaUsersCog, {
8496
- style: {
8497
- fontSize: "18px",
8498
- marginRight: "10px",
8499
- cursor: "pointer"
9388
+ }, !!item.counselorEmail ? React.createElement(React.Fragment, null, React.createElement("p", {
9389
+ className: "mb-0"
9390
+ }, item.counselorEmail), React.createElement("p", {
9391
+ className: "mb-0"
9392
+ }, item.counselorName)) : React.createElement(TeacherSelector, {
9393
+ value: selectedCounselors === null || selectedCounselors === void 0 ? void 0 : selectedCounselors[item.id],
9394
+ options: counselorOptions,
9395
+ onChange: function onChange(e) {
9396
+ return handleSelectCounselor(e.value, item.id);
8500
9397
  },
9398
+ onCreateOption: function onCreateOption(value) {
9399
+ return handleCreateCounselorOption(value, item.id);
9400
+ },
9401
+ placeholder: t("select_counselor"),
9402
+ className: "flex-grow-1 mr-2"
9403
+ })), React.createElement("td", {
9404
+ className: "align-middle"
9405
+ }, !!item.secondaryTeacherEmail ? React.createElement(React.Fragment, null, React.createElement("p", {
9406
+ className: "mb-0"
9407
+ }, item.secondaryTeacherEmail), React.createElement("p", {
9408
+ className: "mb-0"
9409
+ }, item.secondaryTeacherName)) : React.createElement(TeacherSelector, {
9410
+ value: selectedSecondaryTeachers === null || selectedSecondaryTeachers === void 0 ? void 0 : selectedSecondaryTeachers[item.id],
9411
+ options: secondaryTeacherOptions,
9412
+ onChange: function onChange(e) {
9413
+ return handleSelectSecondaryTeacher(e.value, item.id);
9414
+ },
9415
+ onCreateOption: function onCreateOption(value) {
9416
+ return handleCreateSecondaryTeacherOption(value, item.id);
9417
+ },
9418
+ placeholder: t("select_support_teacher"),
9419
+ className: "flex-grow-1 mr-2"
9420
+ })), React.createElement("td", {
9421
+ className: "align-middle"
9422
+ }, React.createElement("div", {
9423
+ className: "d-flex"
9424
+ }, React.createElement(LinkEditButton, {
9425
+ label: "Assign",
8501
9426
  onClick: function onClick() {
8502
- return swicthUser(record.id);
8503
- }
8504
- }), React.createElement(DeleteButtonIcon, {
8505
- onClick: function onClick() {
8506
- return removeData(record.id);
9427
+ return handleAssignSingleStudent(item.id);
8507
9428
  }
8508
- })));
8509
- }), (!userList || !userList.length) && React.createElement("tr", null, React.createElement("td", {
8510
- colSpan: 12,
8511
- className: "p-0"
8512
- }, React.createElement(EmptyDataAlert, {
8513
- className: "mb-0",
8514
- label: t("user")
8515
- }))))))), React.createElement(Col, {
9429
+ }))));
9430
+ })))) : React.createElement(EmptyDataAlert, {
9431
+ label: "student"
9432
+ })), React.createElement(Col, {
8516
9433
  md: 12
8517
9434
  }, React.createElement(CustomPagination, {
8518
9435
  filters: filters,
8519
- totalRecordCount: totalItems,
9436
+ totalRecordCount: totalItem,
8520
9437
  changePageSize: function changePageSize(pageSize) {
8521
9438
  return changeFilters({
8522
9439
  pageSize: pageSize
@@ -8530,6 +9447,22 @@ var UserList = function UserList() {
8530
9447
  }))));
8531
9448
  };
8532
9449
 
9450
+ var tabs = [{
9451
+ path: "/admin/users/user-list",
9452
+ title: "User List",
9453
+ component: UserList
9454
+ }, {
9455
+ path: "/admin/users/assign-student",
9456
+ title: "Assign Student",
9457
+ component: AssignStudentList
9458
+ }];
9459
+
9460
+ var UserContainer = function UserContainer() {
9461
+ return React.createElement(CustomTabs, {
9462
+ tabs: tabs
9463
+ });
9464
+ };
9465
+
8533
9466
  var MAX_FILE_SIZE = 20097152;
8534
9467
 
8535
9468
  var UploadFileButton = function UploadFileButton(_ref) {
@@ -8624,7 +9557,7 @@ var initValue$3 = {
8624
9557
  isActive: true,
8625
9558
  profileImageFileName: ""
8626
9559
  };
8627
- var USER_LIST_URL = "/admin/user";
9560
+ var USER_LIST_URL = "/admin/users/user-list";
8628
9561
  var TITLE$8 = "User detail";
8629
9562
 
8630
9563
  var useUserDetail = function useUserDetail(id) {
@@ -9552,7 +10485,7 @@ var CreatableSelector = function CreatableSelector(props) {
9552
10485
  handleChange = props.handleChange,
9553
10486
  handleInputChange = props.handleInputChange,
9554
10487
  handleKeyDown = props.handleKeyDown;
9555
- return React.createElement(Creatable, {
10488
+ return React.createElement(CreatableSelect, {
9556
10489
  components: components,
9557
10490
  placeholder: placeholder || "Type something to create option",
9558
10491
  isClearable: true,
@@ -10275,61 +11208,6 @@ var NotificationList = function NotificationList() {
10275
11208
  }))));
10276
11209
  };
10277
11210
 
10278
- var CustomTabs = function CustomTabs(props) {
10279
- var history = useHistory();
10280
- var location = useLocation();
10281
- var pathname = location.pathname;
10282
- var tabs = props.tabs,
10283
- title = props.title;
10284
-
10285
- var toggle = function toggle(path) {
10286
- history.push(path);
10287
- };
10288
-
10289
- var renderContent = function renderContent() {
10290
- var activeTab = tabs.map(function (t) {
10291
- return t.path;
10292
- }).indexOf(pathname);
10293
-
10294
- if (activeTab === -1) {
10295
- return React.createElement(NotFound, null);
10296
- }
10297
-
10298
- return React.createElement(Row, null, React.createElement(Col, {
10299
- md: 12
10300
- }, React.createElement("h5", null, title)), React.createElement(Col, {
10301
- xl: 12
10302
- }, React.createElement(Nav, {
10303
- tabs: true
10304
- }, tabs.map(function (i) {
10305
- return React.createElement(NavItem, {
10306
- key: i.path
10307
- }, React.createElement(NavLink, {
10308
- className: (i.path === pathname ? "active" : "") + " cursor-pointer",
10309
- onClick: function onClick() {
10310
- toggle(i.path);
10311
- }
10312
- }, i.title));
10313
- })), React.createElement(TabContent, {
10314
- activeTab: pathname,
10315
- className: "border-bottom-0 border-left-0 border-right-0"
10316
- }, tabs.map(function (i) {
10317
- return React.createElement(TabPane, {
10318
- key: i.path,
10319
- tabId: i.path
10320
- }, React.createElement(Route, {
10321
- path: i.path,
10322
- exact: true,
10323
- component: i.component
10324
- }));
10325
- }))));
10326
- };
10327
-
10328
- return React.createElement("div", {
10329
- className: "animated fadeIn"
10330
- }, renderContent());
10331
- };
10332
-
10333
11211
  var CommonAlert = function CommonAlert() {
10334
11212
  var _alert$message2;
10335
11213
 
@@ -12416,5 +13294,5 @@ var generateRandomString = (function () {
12416
13294
 
12417
13295
  var amplitudeClient = amplitude.getInstance();
12418
13296
 
12419
- export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CategorySelector, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, Images, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationLogoutModal, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserDetail, UserList, addTab, amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getFileUrl, getInfo, getStaticFileUrl, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
13297
+ export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CategorySelector, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, Images, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationLogoutModal, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserContainer, UserDetail, UserList, addTab, amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getFileUrl, getInfo, getStaticFileUrl, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
12420
13298
  //# sourceMappingURL=index.modern.js.map