mario-core 2.9.324-release → 2.9.326-release

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.
@@ -2,8 +2,8 @@ import 'bootstrap/dist/css/bootstrap.min.css';
2
2
  import i18n from 'i18next';
3
3
  import { initReactI18next, useTranslation } from 'react-i18next';
4
4
  export { I18nextProvider, useTranslation } from 'react-i18next';
5
- import React, { useCallback, useState, useEffect, useRef, Suspense, memo, Fragment, forwardRef, useImperativeHandle, useMemo } from 'react';
6
- import { Input, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, Modal, ModalHeader, ModalBody, ModalFooter, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
5
+ import React, { useCallback, useState, useEffect, useRef, useMemo, Suspense, memo, Fragment, forwardRef, useImperativeHandle } from 'react';
6
+ import { Input, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Modal, Button, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, ModalHeader, ModalBody, ModalFooter, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
7
7
  import { Link, useLocation, useHistory, Switch, Route, Prompt, useParams } from 'react-router-dom';
8
8
  import { useDispatch, useSelector } from 'react-redux';
9
9
  import { Formik } from 'formik';
@@ -16,7 +16,7 @@ import amplitude from 'amplitude-js';
16
16
  import moment from 'moment';
17
17
  import { LogLevel, PublicClientApplication } from '@azure/msal-browser';
18
18
  import { GiHamburgerMenu } from 'react-icons/gi';
19
- import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } from '@coreui/react';
19
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
20
20
  import { CgMenuRight } from 'react-icons/cg';
21
21
  import { RiLogoutBoxRLine } from 'react-icons/ri';
22
22
  import Pusher from 'pusher-js/with-encryption';
@@ -20175,7 +20175,7 @@ var handleUserRole = function handleUserRole(userRoles) {
20175
20175
 
20176
20176
  return userRoles;
20177
20177
  };
20178
- var MARIO_SUCCESS_BASE_URL = "https://mariosuccess.com";
20178
+ var MARIO_SUCCESS_BASE_URL = "https://www.mariosuccess.com";
20179
20179
  var LANGUAGES = [{
20180
20180
  code: "en-US",
20181
20181
  fullName: "English (United States)",
@@ -39766,6 +39766,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39766
39766
  })), t("log_out")))));
39767
39767
  };
39768
39768
 
39769
+ var apiGetLanguage = function apiGetLanguage() {
39770
+ return api.get(BASE_URL + "/api/language");
39771
+ };
39772
+
39773
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
39774
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
39775
+ };
39776
+
39777
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
39778
+
39779
+ var useLanguages = function useLanguages() {
39780
+ var dispatch = useDispatch();
39781
+
39782
+ var _useTranslation = useTranslation(),
39783
+ i18n = _useTranslation.i18n;
39784
+
39785
+ var language = useSelector(function (state) {
39786
+ return state.common.language;
39787
+ });
39788
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
39789
+
39790
+ var _useState = useState([]),
39791
+ languageList = _useState[0],
39792
+ setLanguageList = _useState[1];
39793
+
39794
+ var _useState2 = useState(false),
39795
+ dropdownOpen = _useState2[0],
39796
+ setDropdownOpen = _useState2[1];
39797
+
39798
+ var _useState3 = useState(defaultLanguage),
39799
+ currentLang = _useState3[0],
39800
+ setCurrentLang = _useState3[1];
39801
+
39802
+ var toggle = function toggle() {
39803
+ return setDropdownOpen(function (prevState) {
39804
+ return !prevState;
39805
+ });
39806
+ };
39807
+
39808
+ var changeLanguageApp = function changeLanguageApp(lang) {
39809
+ try {
39810
+ var _temp3 = function _temp3() {
39811
+ dispatch(setLoading(false));
39812
+ };
39813
+
39814
+ dispatch(setLoading(true));
39815
+
39816
+ var _temp4 = _catch(function () {
39817
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
39818
+ i18n.changeLanguage(lang);
39819
+ setCurrentLang(lang);
39820
+ dispatch(setLanguage(lang));
39821
+ });
39822
+ }, function (err) {
39823
+ var _err$response, _err$response$data;
39824
+
39825
+ dispatch(setAlert({
39826
+ type: "danger",
39827
+ 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
39828
+ }));
39829
+ });
39830
+
39831
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
39832
+ } catch (e) {
39833
+ return Promise.reject(e);
39834
+ }
39835
+ };
39836
+
39837
+ var getListLanguage = function getListLanguage() {
39838
+ try {
39839
+ var _temp6 = _catch(function () {
39840
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
39841
+ setLanguageList(res.data);
39842
+ });
39843
+ }, function (err) {
39844
+ var _err$response2, _err$response2$data;
39845
+
39846
+ dispatch(setAlert({
39847
+ type: "danger",
39848
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
39849
+ }));
39850
+ });
39851
+
39852
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39853
+ } catch (e) {
39854
+ return Promise.reject(e);
39855
+ }
39856
+ };
39857
+
39858
+ useEffect(function () {
39859
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
39860
+ getListLanguage();
39861
+ }, []);
39862
+ return {
39863
+ languageList: languageList,
39864
+ toggle: toggle,
39865
+ dropdownOpen: dropdownOpen,
39866
+ currentLang: currentLang,
39867
+ changeLanguageApp: changeLanguageApp,
39868
+ setCurrentLang: setCurrentLang
39869
+ };
39870
+ };
39871
+
39872
+ var TheLanguageDropdown = function TheLanguageDropdown() {
39873
+ var _useLanguages = useLanguages(),
39874
+ languageList = _useLanguages.languageList,
39875
+ toggle = _useLanguages.toggle,
39876
+ dropdownOpen = _useLanguages.dropdownOpen,
39877
+ currentLang = _useLanguages.currentLang,
39878
+ changeLanguageApp = _useLanguages.changeLanguageApp;
39879
+
39880
+ var currentLanguage = useMemo(function () {
39881
+ var current = languageList.find(function (i) {
39882
+ return i.code === currentLang;
39883
+ });
39884
+ if (!current) return null;
39885
+ return React.createElement(React.Fragment, null, React.createElement("img", {
39886
+ className: "mr-2 " + styles['dropdown-menu-flag'],
39887
+ src: "" + getStaticFileUrl(current.image)
39888
+ }), " ", current.name);
39889
+ }, [currentLang, languageList]);
39890
+ return React.createElement(Dropdown, {
39891
+ isOpen: dropdownOpen,
39892
+ toggle: toggle,
39893
+ className: "" + styles["dropdown-menu"]
39894
+ }, React.createElement(DropdownToggle, {
39895
+ className: styles["header-avatar"] + " d-flex align-items-center"
39896
+ }, React.createElement("span", {
39897
+ style: {
39898
+ color: "#000",
39899
+ textTransform: "capitalize",
39900
+ display: 'flex',
39901
+ alignItems: 'center'
39902
+ }
39903
+ }, currentLanguage, React.createElement(BsChevronDown, {
39904
+ className: "ml-2",
39905
+ style: {
39906
+ fontSize: '10px'
39907
+ }
39908
+ }))), React.createElement(DropdownMenu, {
39909
+ className: styles["dropdown-content-language"]
39910
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
39911
+ return React.createElement(DropdownItem, {
39912
+ key: lang.code,
39913
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
39914
+ onClick: function onClick() {
39915
+ return changeLanguageApp(lang.code);
39916
+ }
39917
+ }, React.createElement("div", {
39918
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
39919
+ }, React.createElement("span", {
39920
+ className: "mr-2 d-flex hover-opacity"
39921
+ }, React.createElement("img", {
39922
+ style: {
39923
+ width: "30px",
39924
+ height: "25px",
39925
+ borderRadius: "5px"
39926
+ },
39927
+ src: getStaticFileUrl(lang.image)
39928
+ })), lang.name));
39929
+ })));
39930
+ };
39931
+
39932
+ var TheHeader = function TheHeader(_ref) {
39933
+ var onToggleModel = _ref.onToggleModel;
39934
+ var dispatch = useDispatch();
39935
+ var sidebarShow = useSelector(function (state) {
39936
+ return state.common.sidebarShow;
39937
+ });
39938
+
39939
+ var _useTranslation = useTranslation(),
39940
+ t = _useTranslation.t;
39941
+
39942
+ var toggleSidebarMobile = function toggleSidebarMobile() {
39943
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
39944
+ dispatch(setSidebar(val));
39945
+ };
39946
+
39947
+ var isDistrict = window.location.host.includes("-district");
39948
+ return React.createElement(CHeader, {
39949
+ withSubheader: true,
39950
+ className: "d-flex align-items-center justify-content-end"
39951
+ }, React.createElement(CToggler, {
39952
+ inHeader: true,
39953
+ className: "ml-md-3 d-lg-none",
39954
+ onClick: toggleSidebarMobile
39955
+ }), React.createElement(CHeaderBrand, {
39956
+ className: "mx-auto flex-grow-1 d-lg-none",
39957
+ to: "/"
39958
+ }, React.createElement("img", {
39959
+ src: getStaticFileUrl(Images.LOGO_HEADER),
39960
+ className: styles["header-logo"]
39961
+ })), React.createElement(CHeaderNav, {
39962
+ className: "pr-3"
39963
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
39964
+ className: "mr-3",
39965
+ style: {
39966
+ color: '#000'
39967
+ },
39968
+ href: '/privacy-policy',
39969
+ target: "blank"
39970
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
39971
+ onToggleModel: onToggleModel
39972
+ })));
39973
+ };
39974
+
39769
39975
  var TITLE$3 = "Not found";
39770
39976
 
39771
39977
  var NotFound = function NotFound() {
@@ -39823,6 +40029,258 @@ var TheContent = function TheContent(_ref) {
39823
40029
 
39824
40030
  var TheContent$1 = React.memo(TheContent);
39825
40031
 
40032
+ var loadingStyle = {
40033
+ minWidth: "100vw",
40034
+ minHeight: "100vh",
40035
+ position: "fixed",
40036
+ top: 0,
40037
+ left: 0,
40038
+ zIndex: 999999999,
40039
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
40040
+ display: "flex",
40041
+ justifyContent: "center",
40042
+ alignItems: "center"
40043
+ };
40044
+
40045
+ var Loading = function Loading() {
40046
+ var isLoading = useSelector(function (state) {
40047
+ return state.common.isLoading;
40048
+ });
40049
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
40050
+ return isLoading ? React.createElement("div", {
40051
+ style: loadingStyle
40052
+ }, React.createElement("div", {
40053
+ className: "spinner-border text-secondary",
40054
+ role: "status"
40055
+ }, React.createElement("span", {
40056
+ className: "sr-only"
40057
+ }, "Loading..."))) : null;
40058
+ };
40059
+
40060
+ var firstCheckToken = function firstCheckToken() {
40061
+ return Promise.resolve(_catch(function () {
40062
+ var token = getAccessToken();
40063
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
40064
+ return tokenStatus.data ? true : false;
40065
+ }) : false;
40066
+ }, function () {
40067
+ return false;
40068
+ }));
40069
+ };
40070
+
40071
+ var canAccess = function canAccess(userRoles, componentRoles) {
40072
+ if (!Array.isArray(userRoles)) {
40073
+ return false;
40074
+ }
40075
+
40076
+ if (Array.isArray(componentRoles)) {
40077
+ var intersects = userRoles.filter(function (i) {
40078
+ return componentRoles.includes(i);
40079
+ });
40080
+ return intersects.length > 0;
40081
+ }
40082
+
40083
+ return true;
40084
+ };
40085
+
40086
+ var ModelSelectRole = function ModelSelectRole(_ref) {
40087
+ var _handleUserRole;
40088
+
40089
+ var open = _ref.open,
40090
+ onToggleModel = _ref.onToggleModel;
40091
+ var dispatch = useDispatch();
40092
+
40093
+ var _useTranslation = useTranslation(),
40094
+ t = _useTranslation.t;
40095
+
40096
+ var history = useHistory();
40097
+ var pathname = window.location.pathname;
40098
+ var user = useSelector(function (state) {
40099
+ return state.common.user;
40100
+ });
40101
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
40102
+
40103
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
40104
+ dispatch(setLoading(true));
40105
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
40106
+ dispatch(setUser(_extends({}, user, {
40107
+ roles: roleSelect
40108
+ })));
40109
+ localStorage.setItem("ROLES", roleSelect.toString());
40110
+ onToggleModel();
40111
+
40112
+ if (roles.includes("Parent")) {
40113
+ history.push("/parent");
40114
+ } else if (roles.includes("Admin")) {
40115
+ history.push("/admin/home");
40116
+ } else {
40117
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
40118
+ }
40119
+ };
40120
+
40121
+ return React.createElement(Modal, {
40122
+ isOpen: open,
40123
+ toggle: function toggle() {
40124
+ return onToggleModel();
40125
+ },
40126
+ className: "" + styles["model-switch-roles"],
40127
+ centered: true
40128
+ }, React.createElement("p", {
40129
+ className: "" + styles["title"]
40130
+ }, t("continue_as")), React.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
40131
+ return React.createElement("p", {
40132
+ key: r,
40133
+ className: styles["item-select-role"] + " " + styles[roles.includes("Teacher") && roles.includes("Assistant") && r === "Teacher/Assistant" && !roles.includes("Admin") || roles.includes("Admin") && r === "Admin" || roles.includes(r) && !roles.includes("Admin") ? "item-role-active" : ""],
40134
+ onClick: function onClick() {
40135
+ return handleSelectUserRoles([r]);
40136
+ }
40137
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
40138
+ })));
40139
+ };
40140
+
40141
+ var TheLayout = function TheLayout(_ref) {
40142
+ var routes = _ref.routes,
40143
+ navigation = _ref.navigation;
40144
+ var history = useHistory();
40145
+ var dispatch = useDispatch();
40146
+ var user = useSelector(function (state) {
40147
+ return state.common.user;
40148
+ });
40149
+ var language = useSelector(function (state) {
40150
+ return state.common.language;
40151
+ });
40152
+
40153
+ var _useState = useState(false),
40154
+ openModelSelectRole = _useState[0],
40155
+ setOpenModelSelectRole = _useState[1];
40156
+
40157
+ var _useTranslation = useTranslation(),
40158
+ t = _useTranslation.t;
40159
+
40160
+ var location = useLocation();
40161
+ var isNotification = location.pathname.includes("notifications");
40162
+ var isDistrict = window.location.host.includes("-district");
40163
+
40164
+ var handleToggleModel = function handleToggleModel() {
40165
+ setOpenModelSelectRole(!openModelSelectRole);
40166
+ };
40167
+
40168
+ var authRoutes = useMemo(function () {
40169
+ return routes.filter(function (route) {
40170
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
40171
+ }).filter(function (route) {
40172
+ return !!route.isDistrict === isDistrict;
40173
+ });
40174
+ }, [user, language]);
40175
+ var authNavigations = useMemo(function () {
40176
+ return navigation.map(function (item) {
40177
+ var _item$_children, _item$_children2;
40178
+
40179
+ return _extends({}, item, {
40180
+ name: t(item.name),
40181
+ _children: item !== null && item !== void 0 && (_item$_children = item._children) !== null && _item$_children !== void 0 && _item$_children.length ? item === null || item === void 0 ? void 0 : (_item$_children2 = item._children) === null || _item$_children2 === void 0 ? void 0 : _item$_children2.map(function (x) {
40182
+ return _extends({}, x, {
40183
+ name: t(x.name)
40184
+ });
40185
+ }) : undefined
40186
+ });
40187
+ }).filter(function (nav) {
40188
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
40189
+ }).filter(function (nav) {
40190
+ return !!nav.isDistrict === isDistrict;
40191
+ });
40192
+ }, [user, language]);
40193
+
40194
+ var getInformationSetting = function getInformationSetting() {
40195
+ try {
40196
+ var _temp2 = _catch(function () {
40197
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
40198
+ dispatch(setSandboxMode(res.data.isSandboxMode));
40199
+ });
40200
+ }, function (err) {
40201
+ console.error(err);
40202
+ });
40203
+
40204
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
40205
+ } catch (e) {
40206
+ return Promise.reject(e);
40207
+ }
40208
+ };
40209
+
40210
+ useEffect(function () {
40211
+ checkAuthentication();
40212
+ }, []);
40213
+ useEffect(function () {
40214
+ getInformationSetting();
40215
+ }, [location.pathname]);
40216
+
40217
+ var checkAuthentication = function checkAuthentication() {
40218
+ try {
40219
+ var _temp4 = _catch(function () {
40220
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
40221
+ tokenStatus ? loadInfo() : resetAuth();
40222
+ });
40223
+ }, function () {
40224
+ resetAuth();
40225
+ });
40226
+
40227
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
40228
+ } catch (e) {
40229
+ return Promise.reject(e);
40230
+ }
40231
+ };
40232
+
40233
+ var loadInfo = function loadInfo() {
40234
+ try {
40235
+ var _temp6 = _catch(function () {
40236
+ return Promise.resolve(getInfo()).then(function (info) {
40237
+ var _info$data, _info$data$roles;
40238
+
40239
+ if (!info || !(info !== null && info !== void 0 && (_info$data = info.data) !== null && _info$data !== void 0 && (_info$data$roles = _info$data.roles) !== null && _info$data$roles !== void 0 && _info$data$roles.includes("Admin"))) {
40240
+ resetAuth();
40241
+ }
40242
+
40243
+ dispatch(setUser(info.data));
40244
+ });
40245
+ }, function () {
40246
+ resetAuth();
40247
+ });
40248
+
40249
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
40250
+ } catch (e) {
40251
+ return Promise.reject(e);
40252
+ }
40253
+ };
40254
+
40255
+ var resetAuth = function resetAuth() {
40256
+ localStorage.removeItem(ACCESS_TOKEN);
40257
+ sessionStorage.removeItem(ACCESS_TOKEN);
40258
+ localStorage.removeItem("ROLES");
40259
+ history.push("/");
40260
+ };
40261
+
40262
+ if (!user) {
40263
+ return React.createElement(Loading, null);
40264
+ }
40265
+
40266
+ return React.createElement("div", {
40267
+ className: "c-app c-default-layout"
40268
+ }, !isNotification && React.createElement(TheSidebar, {
40269
+ navigation: authNavigations
40270
+ }), React.createElement("div", {
40271
+ className: "c-wrapper"
40272
+ }, !isNotification && React.createElement(TheHeader, {
40273
+ onToggleModel: handleToggleModel
40274
+ }), React.createElement("div", {
40275
+ className: "c-body bg-white"
40276
+ }, React.createElement(TheContent$1, {
40277
+ routes: authRoutes
40278
+ }))), React.createElement(ModelSelectRole, {
40279
+ open: openModelSelectRole,
40280
+ onToggleModel: handleToggleModel
40281
+ }));
40282
+ };
40283
+
39826
40284
  var buttonTextStyle = {
39827
40285
  fontWeight: 500
39828
40286
  };
@@ -44168,7 +44626,8 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44168
44626
 
44169
44627
  assignStudents([studentRequest]);
44170
44628
  }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
44171
- var handleAssignStaffToStudents = useCallback(function (listUserIds) {
44629
+
44630
+ var handleAssignStaffToStudents = function handleAssignStaffToStudents(listUserIds, isTeacherExit) {
44172
44631
  if (listUserIds.length === 0) {
44173
44632
  dispatch(setAlert({
44174
44633
  type: "danger",
@@ -44177,7 +44636,7 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44177
44636
  return;
44178
44637
  }
44179
44638
 
44180
- if (staffBulkAssign.teacher.length === 0) {
44639
+ if (staffBulkAssign.teacher.length === 0 && !isTeacherExit) {
44181
44640
  dispatch(setAlert({
44182
44641
  type: "danger",
44183
44642
  message: "Please select teacher before assign!"
@@ -44205,7 +44664,7 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44205
44664
  });
44206
44665
  handleToggleModel();
44207
44666
  assignStudents([].concat(users));
44208
- }, [JSON.stringify(staffBulkAssign)]);
44667
+ };
44209
44668
 
44210
44669
  var handleInactiveStudents = function handleInactiveStudents(listStudentIds, callback) {
44211
44670
  try {
@@ -44317,6 +44776,11 @@ var AssignStudentList = function AssignStudentList() {
44317
44776
  handleInactiveStudents = _useAssignStudent.handleInactiveStudents,
44318
44777
  handleChangeTeacherBulk = _useAssignStudent.handleChangeTeacherBulk;
44319
44778
 
44779
+ var isExitTeachers = useMemo(function () {
44780
+ return userList.filter(function (item) {
44781
+ return isCheck.includes(item.id) && item.teachers.length > 0;
44782
+ }).length > 0;
44783
+ }, [JSON.stringify(isCheck)]);
44320
44784
  var AssignStudentColumns = [{
44321
44785
  name: "",
44322
44786
  isCenter: true,
@@ -44407,7 +44871,7 @@ var AssignStudentList = function AssignStudentList() {
44407
44871
  toggle: function toggle() {
44408
44872
  return handleToggleModel();
44409
44873
  }
44410
- }, React.createElement(ModalHeader, null, t("assign_bulk_student")), React.createElement(ModalBody, null, React.createElement(CustomSelector, {
44874
+ }, React.createElement(ModalHeader, null, t("assign_bulk_student")), React.createElement(ModalBody, null, !isExitTeachers && React.createElement(CustomSelector, {
44411
44875
  isMulti: true,
44412
44876
  value: staffBulkAssign.teacher.map(function (e) {
44413
44877
  return {
@@ -44479,7 +44943,7 @@ var AssignStudentList = function AssignStudentList() {
44479
44943
  }, t("cancel")), React.createElement(Button, {
44480
44944
  color: "primary",
44481
44945
  onClick: function onClick() {
44482
- return handleAssignStaffToStudents(isCheck);
44946
+ return handleAssignStaffToStudents(isCheck, isExitTeachers);
44483
44947
  }
44484
44948
  }, t("assign")))), React.createElement(Modal, {
44485
44949
  centered: true,
@@ -45629,34 +46093,6 @@ var UserDetail = function UserDetail() {
45629
46093
  });
45630
46094
  };
45631
46095
 
45632
- var loadingStyle = {
45633
- minWidth: "100vw",
45634
- minHeight: "100vh",
45635
- position: "fixed",
45636
- top: 0,
45637
- left: 0,
45638
- zIndex: 999999999,
45639
- backgroundColor: "rgba(0, 0, 0, 0.4)",
45640
- display: "flex",
45641
- justifyContent: "center",
45642
- alignItems: "center"
45643
- };
45644
-
45645
- var Loading = function Loading() {
45646
- var isLoading = useSelector(function (state) {
45647
- return state.common.isLoading;
45648
- });
45649
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45650
- return isLoading ? React.createElement("div", {
45651
- style: loadingStyle
45652
- }, React.createElement("div", {
45653
- className: "spinner-border text-secondary",
45654
- role: "status"
45655
- }, React.createElement("span", {
45656
- className: "sr-only"
45657
- }, "Loading..."))) : null;
45658
- };
45659
-
45660
46096
  var ScrollToTop = function ScrollToTop() {
45661
46097
  var _useLocation = useLocation(),
45662
46098
  pathname = _useLocation.pathname;
@@ -48676,32 +49112,6 @@ var store = configureStore({
48676
49112
  }
48677
49113
  });
48678
49114
 
48679
- var firstCheckToken = function firstCheckToken() {
48680
- return Promise.resolve(_catch(function () {
48681
- var token = getAccessToken();
48682
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48683
- return tokenStatus.data ? true : false;
48684
- }) : false;
48685
- }, function () {
48686
- return false;
48687
- }));
48688
- };
48689
-
48690
- var canAccess = function canAccess(userRoles, componentRoles) {
48691
- if (!Array.isArray(userRoles)) {
48692
- return false;
48693
- }
48694
-
48695
- if (Array.isArray(componentRoles)) {
48696
- var intersects = userRoles.filter(function (i) {
48697
- return componentRoles.includes(i);
48698
- });
48699
- return intersects.length > 0;
48700
- }
48701
-
48702
- return true;
48703
- };
48704
-
48705
49115
  var isInViewport = function isInViewport(el) {
48706
49116
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
48707
49117
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -48737,411 +49147,5 @@ var generateRandomString = (function () {
48737
49147
 
48738
49148
  var amplitudeClient = amplitude.getInstance();
48739
49149
 
48740
- var apiGetLanguage = function apiGetLanguage() {
48741
- return api.get(BASE_URL + "/api/language");
48742
- };
48743
-
48744
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48745
- return api.put(BASE_URL + "/api/language?lang=" + lang);
48746
- };
48747
-
48748
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48749
-
48750
- var useLanguages = function useLanguages() {
48751
- var dispatch = useDispatch();
48752
-
48753
- var _useTranslation = useTranslation(),
48754
- i18n = _useTranslation.i18n;
48755
-
48756
- var language = useSelector(function (state) {
48757
- return state.common.language;
48758
- });
48759
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48760
-
48761
- var _useState = useState([]),
48762
- languageList = _useState[0],
48763
- setLanguageList = _useState[1];
48764
-
48765
- var _useState2 = useState(false),
48766
- dropdownOpen = _useState2[0],
48767
- setDropdownOpen = _useState2[1];
48768
-
48769
- var _useState3 = useState(defaultLanguage),
48770
- currentLang = _useState3[0],
48771
- setCurrentLang = _useState3[1];
48772
-
48773
- var toggle = function toggle() {
48774
- return setDropdownOpen(function (prevState) {
48775
- return !prevState;
48776
- });
48777
- };
48778
-
48779
- var changeLanguageApp = function changeLanguageApp(lang) {
48780
- try {
48781
- var _temp3 = function _temp3() {
48782
- dispatch(setLoading(false));
48783
- };
48784
-
48785
- dispatch(setLoading(true));
48786
-
48787
- var _temp4 = _catch(function () {
48788
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48789
- i18n.changeLanguage(lang);
48790
- setCurrentLang(lang);
48791
- dispatch(setLanguage(lang));
48792
- });
48793
- }, function (err) {
48794
- var _err$response, _err$response$data;
48795
-
48796
- dispatch(setAlert({
48797
- type: "danger",
48798
- 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
48799
- }));
48800
- });
48801
-
48802
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48803
- } catch (e) {
48804
- return Promise.reject(e);
48805
- }
48806
- };
48807
-
48808
- var getListLanguage = function getListLanguage() {
48809
- try {
48810
- var _temp6 = _catch(function () {
48811
- return Promise.resolve(apiGetLanguage()).then(function (res) {
48812
- setLanguageList(res.data);
48813
- });
48814
- }, function (err) {
48815
- var _err$response2, _err$response2$data;
48816
-
48817
- dispatch(setAlert({
48818
- type: "danger",
48819
- message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
48820
- }));
48821
- });
48822
-
48823
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48824
- } catch (e) {
48825
- return Promise.reject(e);
48826
- }
48827
- };
48828
-
48829
- useEffect(function () {
48830
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
48831
- getListLanguage();
48832
- }, []);
48833
- return {
48834
- languageList: languageList,
48835
- toggle: toggle,
48836
- dropdownOpen: dropdownOpen,
48837
- currentLang: currentLang,
48838
- changeLanguageApp: changeLanguageApp,
48839
- setCurrentLang: setCurrentLang
48840
- };
48841
- };
48842
-
48843
- var TheLanguageDropdown = function TheLanguageDropdown() {
48844
- var _useLanguages = useLanguages(),
48845
- languageList = _useLanguages.languageList,
48846
- toggle = _useLanguages.toggle,
48847
- dropdownOpen = _useLanguages.dropdownOpen,
48848
- currentLang = _useLanguages.currentLang,
48849
- changeLanguageApp = _useLanguages.changeLanguageApp;
48850
-
48851
- var currentLanguage = useMemo(function () {
48852
- var current = languageList.find(function (i) {
48853
- return i.code === currentLang;
48854
- });
48855
- if (!current) return null;
48856
- return React.createElement(React.Fragment, null, React.createElement("img", {
48857
- className: "mr-2 " + styles['dropdown-menu-flag'],
48858
- src: "" + getStaticFileUrl(current.image)
48859
- }), " ", current.name);
48860
- }, [currentLang, languageList]);
48861
- return React.createElement(Dropdown, {
48862
- isOpen: dropdownOpen,
48863
- toggle: toggle,
48864
- className: "" + styles["dropdown-menu"]
48865
- }, React.createElement(DropdownToggle, {
48866
- className: styles["header-avatar"] + " d-flex align-items-center"
48867
- }, React.createElement("span", {
48868
- style: {
48869
- color: "#000",
48870
- textTransform: "capitalize",
48871
- display: 'flex',
48872
- alignItems: 'center'
48873
- }
48874
- }, currentLanguage, React.createElement(BsChevronDown, {
48875
- className: "ml-2",
48876
- style: {
48877
- fontSize: '10px'
48878
- }
48879
- }))), React.createElement(DropdownMenu, {
48880
- className: styles["dropdown-content-language"]
48881
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48882
- return React.createElement(DropdownItem, {
48883
- key: lang.code,
48884
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48885
- onClick: function onClick() {
48886
- return changeLanguageApp(lang.code);
48887
- }
48888
- }, React.createElement("div", {
48889
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48890
- }, React.createElement("span", {
48891
- className: "mr-2 d-flex hover-opacity"
48892
- }, React.createElement("img", {
48893
- style: {
48894
- width: "30px",
48895
- height: "25px",
48896
- borderRadius: "5px"
48897
- },
48898
- src: getStaticFileUrl(lang.image)
48899
- })), lang.name));
48900
- })));
48901
- };
48902
-
48903
- var TheHeader = function TheHeader(_ref) {
48904
- var onToggleModel = _ref.onToggleModel;
48905
- var dispatch = useDispatch();
48906
- var sidebarShow = useSelector(function (state) {
48907
- return state.common.sidebarShow;
48908
- });
48909
-
48910
- var _useTranslation = useTranslation(),
48911
- t = _useTranslation.t;
48912
-
48913
- var toggleSidebarMobile = function toggleSidebarMobile() {
48914
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48915
- dispatch(setSidebar(val));
48916
- };
48917
-
48918
- var isDistrict = window.location.host.includes("-district");
48919
- return React.createElement(CHeader, {
48920
- withSubheader: true,
48921
- className: "d-flex align-items-center justify-content-end"
48922
- }, React.createElement(CToggler, {
48923
- inHeader: true,
48924
- className: "ml-md-3 d-lg-none",
48925
- onClick: toggleSidebarMobile
48926
- }), React.createElement(CHeaderBrand, {
48927
- className: "mx-auto flex-grow-1 d-lg-none",
48928
- to: "/"
48929
- }, React.createElement("img", {
48930
- src: getStaticFileUrl(Images.LOGO_HEADER),
48931
- className: styles["header-logo"]
48932
- })), React.createElement(CHeaderNav, {
48933
- className: "pr-3"
48934
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
48935
- className: "mr-3",
48936
- style: {
48937
- color: '#000'
48938
- },
48939
- href: '/privacy-policy',
48940
- target: "blank"
48941
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
48942
- onToggleModel: onToggleModel
48943
- })));
48944
- };
48945
-
48946
- var ModelSelectRole = function ModelSelectRole(_ref) {
48947
- var _handleUserRole;
48948
-
48949
- var open = _ref.open,
48950
- onToggleModel = _ref.onToggleModel;
48951
- var dispatch = useDispatch();
48952
-
48953
- var _useTranslation = useTranslation(),
48954
- t = _useTranslation.t;
48955
-
48956
- var history = useHistory();
48957
- var pathname = window.location.pathname;
48958
- var user = useSelector(function (state) {
48959
- return state.common.user;
48960
- });
48961
- var roles = user === null || user === void 0 ? void 0 : user.roles;
48962
-
48963
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
48964
- dispatch(setLoading(true));
48965
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
48966
- dispatch(setUser(_extends({}, user, {
48967
- roles: roleSelect
48968
- })));
48969
- localStorage.setItem("ROLES", roleSelect.toString());
48970
- onToggleModel();
48971
-
48972
- if (roles.includes("Parent")) {
48973
- history.push("/parent");
48974
- } else if (roles.includes("Admin")) {
48975
- history.push("/admin/home");
48976
- } else {
48977
- pathname !== "/home" ? history.push("/home") : window.location.reload();
48978
- }
48979
- };
48980
-
48981
- return React.createElement(Modal, {
48982
- isOpen: open,
48983
- toggle: function toggle() {
48984
- return onToggleModel();
48985
- },
48986
- className: "" + styles["model-switch-roles"],
48987
- centered: true
48988
- }, React.createElement("p", {
48989
- className: "" + styles["title"]
48990
- }, t("continue_as")), React.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
48991
- return React.createElement("p", {
48992
- key: r,
48993
- className: styles["item-select-role"] + " " + styles[roles.includes("Teacher") && roles.includes("Assistant") && r === "Teacher/Assistant" && !roles.includes("Admin") || roles.includes("Admin") && r === "Admin" || roles.includes(r) && !roles.includes("Admin") ? "item-role-active" : ""],
48994
- onClick: function onClick() {
48995
- return handleSelectUserRoles([r]);
48996
- }
48997
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
48998
- })));
48999
- };
49000
-
49001
- var TheLayout = function TheLayout(_ref) {
49002
- var routes = _ref.routes,
49003
- navigation = _ref.navigation;
49004
- var history = useHistory();
49005
- var dispatch = useDispatch();
49006
- var user = useSelector(function (state) {
49007
- return state.common.user;
49008
- });
49009
- var language = useSelector(function (state) {
49010
- return state.common.language;
49011
- });
49012
-
49013
- var _useState = useState(false),
49014
- openModelSelectRole = _useState[0],
49015
- setOpenModelSelectRole = _useState[1];
49016
-
49017
- var _useTranslation = useTranslation(),
49018
- t = _useTranslation.t;
49019
-
49020
- var location = useLocation();
49021
- var isNotification = location.pathname.includes("notifications");
49022
- var isDistrict = window.location.host.includes("-district");
49023
-
49024
- var handleToggleModel = function handleToggleModel() {
49025
- setOpenModelSelectRole(!openModelSelectRole);
49026
- };
49027
-
49028
- var authRoutes = useMemo(function () {
49029
- return routes.filter(function (route) {
49030
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
49031
- }).filter(function (route) {
49032
- return !!route.isDistrict === isDistrict;
49033
- });
49034
- }, [user, language]);
49035
- var authNavigations = useMemo(function () {
49036
- return navigation.map(function (item) {
49037
- var _item$_children, _item$_children2;
49038
-
49039
- return _extends({}, item, {
49040
- name: t(item.name),
49041
- _children: item !== null && item !== void 0 && (_item$_children = item._children) !== null && _item$_children !== void 0 && _item$_children.length ? item === null || item === void 0 ? void 0 : (_item$_children2 = item._children) === null || _item$_children2 === void 0 ? void 0 : _item$_children2.map(function (x) {
49042
- return _extends({}, x, {
49043
- name: t(x.name)
49044
- });
49045
- }) : undefined
49046
- });
49047
- }).filter(function (nav) {
49048
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
49049
- }).filter(function (nav) {
49050
- return !!nav.isDistrict === isDistrict;
49051
- });
49052
- }, [user, language]);
49053
-
49054
- var getInformationSetting = function getInformationSetting() {
49055
- try {
49056
- var _temp2 = _catch(function () {
49057
- return Promise.resolve(getSchoolSettings()).then(function (res) {
49058
- dispatch(setSandboxMode(res.data.isSandboxMode));
49059
- });
49060
- }, function (err) {
49061
- console.error(err);
49062
- });
49063
-
49064
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
49065
- } catch (e) {
49066
- return Promise.reject(e);
49067
- }
49068
- };
49069
-
49070
- useEffect(function () {
49071
- checkAuthentication();
49072
- }, []);
49073
- useEffect(function () {
49074
- getInformationSetting();
49075
- }, [location.pathname]);
49076
-
49077
- var checkAuthentication = function checkAuthentication() {
49078
- try {
49079
- var _temp4 = _catch(function () {
49080
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
49081
- tokenStatus ? loadInfo() : resetAuth();
49082
- });
49083
- }, function () {
49084
- resetAuth();
49085
- });
49086
-
49087
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
49088
- } catch (e) {
49089
- return Promise.reject(e);
49090
- }
49091
- };
49092
-
49093
- var loadInfo = function loadInfo() {
49094
- try {
49095
- var _temp6 = _catch(function () {
49096
- return Promise.resolve(getInfo()).then(function (info) {
49097
- var _info$data, _info$data$roles;
49098
-
49099
- if (!info || !(info !== null && info !== void 0 && (_info$data = info.data) !== null && _info$data !== void 0 && (_info$data$roles = _info$data.roles) !== null && _info$data$roles !== void 0 && _info$data$roles.includes("Admin"))) {
49100
- resetAuth();
49101
- }
49102
-
49103
- dispatch(setUser(info.data));
49104
- });
49105
- }, function () {
49106
- resetAuth();
49107
- });
49108
-
49109
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
49110
- } catch (e) {
49111
- return Promise.reject(e);
49112
- }
49113
- };
49114
-
49115
- var resetAuth = function resetAuth() {
49116
- localStorage.removeItem(ACCESS_TOKEN);
49117
- sessionStorage.removeItem(ACCESS_TOKEN);
49118
- localStorage.removeItem("ROLES");
49119
- history.push("/");
49120
- };
49121
-
49122
- if (!user) {
49123
- return React.createElement(Loading, null);
49124
- }
49125
-
49126
- return React.createElement("div", {
49127
- className: "c-app c-default-layout"
49128
- }, !isNotification && React.createElement(TheSidebar, {
49129
- navigation: authNavigations
49130
- }), React.createElement("div", {
49131
- className: "c-wrapper"
49132
- }, !isNotification && React.createElement(TheHeader, {
49133
- onToggleModel: handleToggleModel
49134
- }), React.createElement("div", {
49135
- className: "c-body bg-white"
49136
- }, React.createElement(TheContent$1, {
49137
- routes: authRoutes
49138
- }))), React.createElement(ModelSelectRole, {
49139
- open: openModelSelectRole,
49140
- onToggleModel: handleToggleModel
49141
- }));
49142
- };
49143
-
49144
- var amplitudeClient$1 = amplitude.getInstance();
49145
-
49146
- 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, DEFAULT_LANGUAGE_CODE, 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, IS_USER_SESSION_BROWSER, Images, LANGUAGES, 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, SANDBOX_NOTIFICATION, SUPPORTED_LANGUAGES_CODE, SandboxAlert, 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$1 as amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getCookieValue, 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, setOpenModelCongratulation, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSandboxMode, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, setWeeklyQuestList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
49150
+ 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, DEFAULT_LANGUAGE_CODE, 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, IS_USER_SESSION_BROWSER, Images, LANGUAGES, 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, SANDBOX_NOTIFICATION, SUPPORTED_LANGUAGES_CODE, SandboxAlert, 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, getCookieValue, 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, setOpenModelCongratulation, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSandboxMode, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, setWeeklyQuestList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
49147
49151
  //# sourceMappingURL=index.modern.js.map