mario-core 2.10.8-release → 2.10.10-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, Card, CardBody, CardText, Tooltip, CustomInput, CardImg, 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, Card, CardBody, CardText, Tooltip, CustomInput, CardImg, 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';
@@ -17,7 +17,7 @@ import { track, setSessionId, init, Identify, identify } from '@amplitude/analyt
17
17
  import moment from 'moment';
18
18
  import { LogLevel, PublicClientApplication } from '@azure/msal-browser';
19
19
  import { GiHamburgerMenu } from 'react-icons/gi';
20
- import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } from '@coreui/react';
20
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
21
21
  import { CgMenuRight } from 'react-icons/cg';
22
22
  import { RiLogoutBoxRLine } from 'react-icons/ri';
23
23
  import Pusher from 'pusher-js/with-encryption';
@@ -2180,6 +2180,7 @@ var save_note = "Save note";
2180
2180
  var type_the_main_focus_of_this_session = "Type the main focus of this session";
2181
2181
  var please_add_title_note = "Please add note title";
2182
2182
  var notes_and_logs = "Notes and Logs";
2183
+ var school_monthly_usage = "School Monthly Usage";
2183
2184
  var lang_us = {
2184
2185
  dashboard: dashboard,
2185
2186
  user: user,
@@ -4376,7 +4377,8 @@ var lang_us = {
4376
4377
  save_note: save_note,
4377
4378
  type_the_main_focus_of_this_session: type_the_main_focus_of_this_session,
4378
4379
  please_add_title_note: please_add_title_note,
4379
- notes_and_logs: notes_and_logs
4380
+ notes_and_logs: notes_and_logs,
4381
+ school_monthly_usage: school_monthly_usage
4380
4382
  };
4381
4383
 
4382
4384
  var dashboard$1 = "Dashboard";
@@ -6521,6 +6523,7 @@ var save_note$1 = "Save note";
6521
6523
  var type_the_main_focus_of_this_session$1 = "Type the main focus of this session";
6522
6524
  var please_add_title_note$1 = "Please add note title";
6523
6525
  var notes_and_logs$1 = "Notes and Logs";
6526
+ var school_monthly_usage$1 = "School Monthly Usage";
6524
6527
  var lang_uk = {
6525
6528
  dashboard: dashboard$1,
6526
6529
  user: user$1,
@@ -8715,7 +8718,8 @@ var lang_uk = {
8715
8718
  save_note: save_note$1,
8716
8719
  type_the_main_focus_of_this_session: type_the_main_focus_of_this_session$1,
8717
8720
  please_add_title_note: please_add_title_note$1,
8718
- notes_and_logs: notes_and_logs$1
8721
+ notes_and_logs: notes_and_logs$1,
8722
+ school_monthly_usage: school_monthly_usage$1
8719
8723
  };
8720
8724
 
8721
8725
  var dashboard$2 = "لوحة المعلومات";
@@ -10890,6 +10894,7 @@ var save_note$2 = "Save note";
10890
10894
  var type_the_main_focus_of_this_session$2 = "Type the main focus of this session";
10891
10895
  var please_add_title_note$2 = "Please add note title";
10892
10896
  var notes_and_logs$2 = "Notes and Logs";
10897
+ var school_monthly_usage$2 = "School Monthly Usage";
10893
10898
  var lang_ar = {
10894
10899
  dashboard: dashboard$2,
10895
10900
  user: user$2,
@@ -13116,7 +13121,8 @@ var lang_ar = {
13116
13121
  save_note: save_note$2,
13117
13122
  type_the_main_focus_of_this_session: type_the_main_focus_of_this_session$2,
13118
13123
  please_add_title_note: please_add_title_note$2,
13119
- notes_and_logs: notes_and_logs$2
13124
+ notes_and_logs: notes_and_logs$2,
13125
+ school_monthly_usage: school_monthly_usage$2
13120
13126
  };
13121
13127
 
13122
13128
  var dashboard$3 = "Cuadro de mandos";
@@ -15291,6 +15297,7 @@ var save_note$3 = "Save note";
15291
15297
  var type_the_main_focus_of_this_session$3 = "Type the main focus of this session";
15292
15298
  var please_add_title_note$3 = "Please add note title";
15293
15299
  var notes_and_logs$3 = "Notes and Logs";
15300
+ var school_monthly_usage$3 = "School Monthly Usage";
15294
15301
  var lang_es = {
15295
15302
  dashboard: dashboard$3,
15296
15303
  user: user$3,
@@ -17517,7 +17524,8 @@ var lang_es = {
17517
17524
  save_note: save_note$3,
17518
17525
  type_the_main_focus_of_this_session: type_the_main_focus_of_this_session$3,
17519
17526
  please_add_title_note: please_add_title_note$3,
17520
- notes_and_logs: notes_and_logs$3
17527
+ notes_and_logs: notes_and_logs$3,
17528
+ school_monthly_usage: school_monthly_usage$3
17521
17529
  };
17522
17530
 
17523
17531
  var dashboard$4 = "仪表板";
@@ -19692,6 +19700,7 @@ var save_note$4 = "Save note";
19692
19700
  var type_the_main_focus_of_this_session$4 = "Type the main focus of this session";
19693
19701
  var please_add_title_note$4 = "Please add note title";
19694
19702
  var notes_and_logs$4 = "Notes and Logs";
19703
+ var school_monthly_usage$4 = "School Monthly Usage";
19695
19704
  var lang_zh = {
19696
19705
  dashboard: dashboard$4,
19697
19706
  user: user$4,
@@ -21918,7 +21927,8 @@ var lang_zh = {
21918
21927
  save_note: save_note$4,
21919
21928
  type_the_main_focus_of_this_session: type_the_main_focus_of_this_session$4,
21920
21929
  please_add_title_note: please_add_title_note$4,
21921
- notes_and_logs: notes_and_logs$4
21930
+ notes_and_logs: notes_and_logs$4,
21931
+ school_monthly_usage: school_monthly_usage$4
21922
21932
  };
21923
21933
 
21924
21934
  var TINY_MCE_API_KEY = "htqausuofrnali3nh9ivmlpq6v415o0tv2qikpg39bqf4pnk";
@@ -41786,6 +41796,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
41786
41796
  })), t("log_out")))));
41787
41797
  };
41788
41798
 
41799
+ var apiGetLanguage = function apiGetLanguage() {
41800
+ return api.get(BASE_URL + "/api/language");
41801
+ };
41802
+
41803
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
41804
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
41805
+ };
41806
+
41807
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
41808
+
41809
+ var useLanguages = function useLanguages() {
41810
+ var dispatch = useDispatch();
41811
+
41812
+ var _useTranslation = useTranslation(),
41813
+ i18n = _useTranslation.i18n;
41814
+
41815
+ var language = useSelector(function (state) {
41816
+ return state.common.language;
41817
+ });
41818
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
41819
+
41820
+ var _useState = useState([]),
41821
+ languageList = _useState[0],
41822
+ setLanguageList = _useState[1];
41823
+
41824
+ var _useState2 = useState(false),
41825
+ dropdownOpen = _useState2[0],
41826
+ setDropdownOpen = _useState2[1];
41827
+
41828
+ var _useState3 = useState(defaultLanguage),
41829
+ currentLang = _useState3[0],
41830
+ setCurrentLang = _useState3[1];
41831
+
41832
+ var toggle = function toggle() {
41833
+ return setDropdownOpen(function (prevState) {
41834
+ return !prevState;
41835
+ });
41836
+ };
41837
+
41838
+ var changeLanguageApp = function changeLanguageApp(lang) {
41839
+ try {
41840
+ var _temp3 = function _temp3() {
41841
+ dispatch(setLoading(false));
41842
+ };
41843
+
41844
+ dispatch(setLoading(true));
41845
+
41846
+ var _temp4 = _catch(function () {
41847
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
41848
+ i18n.changeLanguage(lang);
41849
+ setCurrentLang(lang);
41850
+ dispatch(setLanguage(lang));
41851
+ });
41852
+ }, function (err) {
41853
+ var _err$response, _err$response$data;
41854
+
41855
+ dispatch(setAlert({
41856
+ type: "danger",
41857
+ 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
41858
+ }));
41859
+ });
41860
+
41861
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
41862
+ } catch (e) {
41863
+ return Promise.reject(e);
41864
+ }
41865
+ };
41866
+
41867
+ var getListLanguage = function getListLanguage() {
41868
+ try {
41869
+ var _temp6 = _catch(function () {
41870
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
41871
+ setLanguageList(res.data);
41872
+ });
41873
+ }, function (err) {
41874
+ var _err$response2, _err$response2$data;
41875
+
41876
+ dispatch(setAlert({
41877
+ type: "danger",
41878
+ 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
41879
+ }));
41880
+ });
41881
+
41882
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
41883
+ } catch (e) {
41884
+ return Promise.reject(e);
41885
+ }
41886
+ };
41887
+
41888
+ useEffect(function () {
41889
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
41890
+ getListLanguage();
41891
+ }, []);
41892
+ return {
41893
+ languageList: languageList,
41894
+ toggle: toggle,
41895
+ dropdownOpen: dropdownOpen,
41896
+ currentLang: currentLang,
41897
+ changeLanguageApp: changeLanguageApp,
41898
+ setCurrentLang: setCurrentLang
41899
+ };
41900
+ };
41901
+
41902
+ var TheLanguageDropdown = function TheLanguageDropdown() {
41903
+ var _useLanguages = useLanguages(),
41904
+ languageList = _useLanguages.languageList,
41905
+ toggle = _useLanguages.toggle,
41906
+ dropdownOpen = _useLanguages.dropdownOpen,
41907
+ currentLang = _useLanguages.currentLang,
41908
+ changeLanguageApp = _useLanguages.changeLanguageApp;
41909
+
41910
+ var currentLanguage = useMemo(function () {
41911
+ var current = languageList.find(function (i) {
41912
+ return i.code === currentLang;
41913
+ });
41914
+ if (!current) return null;
41915
+ return React.createElement(React.Fragment, null, React.createElement("img", {
41916
+ className: "mr-2 " + styles['dropdown-menu-flag'],
41917
+ src: "" + getStaticFileUrl(current.image)
41918
+ }), " ", current.name);
41919
+ }, [currentLang, languageList]);
41920
+ return React.createElement(Dropdown, {
41921
+ isOpen: dropdownOpen,
41922
+ toggle: toggle,
41923
+ className: "" + styles["dropdown-menu"]
41924
+ }, React.createElement(DropdownToggle, {
41925
+ className: styles["header-avatar"] + " d-flex align-items-center"
41926
+ }, React.createElement("span", {
41927
+ style: {
41928
+ color: "#000",
41929
+ textTransform: "capitalize",
41930
+ display: 'flex',
41931
+ alignItems: 'center'
41932
+ }
41933
+ }, currentLanguage, React.createElement(BsChevronDown, {
41934
+ className: "ml-2",
41935
+ style: {
41936
+ fontSize: '10px'
41937
+ }
41938
+ }))), React.createElement(DropdownMenu, {
41939
+ className: styles["dropdown-content-language"]
41940
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
41941
+ return React.createElement(DropdownItem, {
41942
+ key: lang.code,
41943
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
41944
+ onClick: function onClick() {
41945
+ return changeLanguageApp(lang.code);
41946
+ }
41947
+ }, React.createElement("div", {
41948
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
41949
+ }, React.createElement("span", {
41950
+ className: "mr-2 d-flex hover-opacity"
41951
+ }, React.createElement("img", {
41952
+ style: {
41953
+ width: "30px",
41954
+ height: "25px",
41955
+ borderRadius: "5px"
41956
+ },
41957
+ src: getStaticFileUrl(lang.image)
41958
+ })), lang.name));
41959
+ })));
41960
+ };
41961
+
41962
+ var TheHeader = function TheHeader(_ref) {
41963
+ var onToggleModel = _ref.onToggleModel;
41964
+ var dispatch = useDispatch();
41965
+ var sidebarShow = useSelector(function (state) {
41966
+ return state.common.sidebarShow;
41967
+ });
41968
+
41969
+ var _useTranslation = useTranslation(),
41970
+ t = _useTranslation.t;
41971
+
41972
+ var toggleSidebarMobile = function toggleSidebarMobile() {
41973
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
41974
+ dispatch(setSidebar(val));
41975
+ };
41976
+
41977
+ var isDistrict = window.location.host.includes("-district");
41978
+ return React.createElement(CHeader, {
41979
+ withSubheader: true,
41980
+ className: "d-flex align-items-center justify-content-end"
41981
+ }, React.createElement(CToggler, {
41982
+ inHeader: true,
41983
+ className: "ml-md-3 d-lg-none",
41984
+ onClick: toggleSidebarMobile
41985
+ }), React.createElement(CHeaderBrand, {
41986
+ className: "mx-auto flex-grow-1 d-lg-none",
41987
+ to: "/"
41988
+ }, React.createElement("img", {
41989
+ src: getStaticFileUrl(Images.LOGO_HEADER),
41990
+ className: styles["header-logo"]
41991
+ })), React.createElement(CHeaderNav, {
41992
+ className: "pr-3"
41993
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
41994
+ className: "mr-3",
41995
+ style: {
41996
+ color: '#000'
41997
+ },
41998
+ href: '/privacy-policy',
41999
+ target: "blank"
42000
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
42001
+ onToggleModel: onToggleModel
42002
+ })));
42003
+ };
42004
+
41789
42005
  var TITLE$3 = "Not found";
41790
42006
 
41791
42007
  var NotFound = function NotFound() {
@@ -41843,6 +42059,258 @@ var TheContent = function TheContent(_ref) {
41843
42059
 
41844
42060
  var TheContent$1 = React.memo(TheContent);
41845
42061
 
42062
+ var loadingStyle = {
42063
+ minWidth: "100vw",
42064
+ minHeight: "100vh",
42065
+ position: "fixed",
42066
+ top: 0,
42067
+ left: 0,
42068
+ zIndex: 999999999,
42069
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42070
+ display: "flex",
42071
+ justifyContent: "center",
42072
+ alignItems: "center"
42073
+ };
42074
+
42075
+ var Loading = function Loading() {
42076
+ var isLoading = useSelector(function (state) {
42077
+ return state.common.isLoading;
42078
+ });
42079
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42080
+ return isLoading ? React.createElement("div", {
42081
+ style: loadingStyle
42082
+ }, React.createElement("div", {
42083
+ className: "spinner-border text-secondary",
42084
+ role: "status"
42085
+ }, React.createElement("span", {
42086
+ className: "sr-only"
42087
+ }, "Loading..."))) : null;
42088
+ };
42089
+
42090
+ var firstCheckToken = function firstCheckToken() {
42091
+ return Promise.resolve(_catch(function () {
42092
+ var token = getAccessToken();
42093
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42094
+ return tokenStatus.data ? true : false;
42095
+ }) : false;
42096
+ }, function () {
42097
+ return false;
42098
+ }));
42099
+ };
42100
+
42101
+ var canAccess = function canAccess(userRoles, componentRoles) {
42102
+ if (!Array.isArray(userRoles)) {
42103
+ return false;
42104
+ }
42105
+
42106
+ if (Array.isArray(componentRoles)) {
42107
+ var intersects = userRoles.filter(function (i) {
42108
+ return componentRoles.includes(i);
42109
+ });
42110
+ return intersects.length > 0;
42111
+ }
42112
+
42113
+ return true;
42114
+ };
42115
+
42116
+ var ModelSelectRole = function ModelSelectRole(_ref) {
42117
+ var _handleUserRole;
42118
+
42119
+ var open = _ref.open,
42120
+ onToggleModel = _ref.onToggleModel;
42121
+ var dispatch = useDispatch();
42122
+
42123
+ var _useTranslation = useTranslation(),
42124
+ t = _useTranslation.t;
42125
+
42126
+ var history = useHistory();
42127
+ var pathname = window.location.pathname;
42128
+ var user = useSelector(function (state) {
42129
+ return state.common.user;
42130
+ });
42131
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
42132
+
42133
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42134
+ dispatch(setLoading(true));
42135
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42136
+ dispatch(setUser(_extends({}, user, {
42137
+ roles: roleSelect
42138
+ })));
42139
+ localStorage.setItem("ROLES", roleSelect.toString());
42140
+ onToggleModel();
42141
+
42142
+ if (roles.includes("Parent")) {
42143
+ history.push("/parent");
42144
+ } else if (roles.includes("Admin")) {
42145
+ history.push("/admin/home");
42146
+ } else {
42147
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
42148
+ }
42149
+ };
42150
+
42151
+ return React.createElement(Modal, {
42152
+ isOpen: open,
42153
+ toggle: function toggle() {
42154
+ return onToggleModel();
42155
+ },
42156
+ className: "" + styles["model-switch-roles"],
42157
+ centered: true
42158
+ }, React.createElement("p", {
42159
+ className: "" + styles["title"]
42160
+ }, 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) {
42161
+ return React.createElement("p", {
42162
+ key: r,
42163
+ 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" : ""],
42164
+ onClick: function onClick() {
42165
+ return handleSelectUserRoles([r]);
42166
+ }
42167
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42168
+ })));
42169
+ };
42170
+
42171
+ var TheLayout = function TheLayout(_ref) {
42172
+ var routes = _ref.routes,
42173
+ navigation = _ref.navigation;
42174
+ var history = useHistory();
42175
+ var dispatch = useDispatch();
42176
+ var user = useSelector(function (state) {
42177
+ return state.common.user;
42178
+ });
42179
+ var language = useSelector(function (state) {
42180
+ return state.common.language;
42181
+ });
42182
+
42183
+ var _useState = useState(false),
42184
+ openModelSelectRole = _useState[0],
42185
+ setOpenModelSelectRole = _useState[1];
42186
+
42187
+ var _useTranslation = useTranslation(),
42188
+ t = _useTranslation.t;
42189
+
42190
+ var location = useLocation();
42191
+ var isNotification = location.pathname.includes("notifications");
42192
+ var isDistrict = window.location.host.includes("-district");
42193
+
42194
+ var handleToggleModel = function handleToggleModel() {
42195
+ setOpenModelSelectRole(!openModelSelectRole);
42196
+ };
42197
+
42198
+ var authRoutes = useMemo(function () {
42199
+ return routes.filter(function (route) {
42200
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42201
+ }).filter(function (route) {
42202
+ return !!route.isDistrict === isDistrict;
42203
+ });
42204
+ }, [user, language]);
42205
+ var authNavigations = useMemo(function () {
42206
+ return navigation.map(function (item) {
42207
+ var _item$_children, _item$_children2;
42208
+
42209
+ return _extends({}, item, {
42210
+ name: t(item.name),
42211
+ _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) {
42212
+ return _extends({}, x, {
42213
+ name: t(x.name)
42214
+ });
42215
+ }) : undefined
42216
+ });
42217
+ }).filter(function (nav) {
42218
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42219
+ }).filter(function (nav) {
42220
+ return !!nav.isDistrict === isDistrict;
42221
+ });
42222
+ }, [user, language]);
42223
+
42224
+ var getInformationSetting = function getInformationSetting() {
42225
+ try {
42226
+ var _temp2 = _catch(function () {
42227
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
42228
+ dispatch(setSandboxMode(res.data.isSandboxMode));
42229
+ });
42230
+ }, function (err) {
42231
+ console.error(err);
42232
+ });
42233
+
42234
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42235
+ } catch (e) {
42236
+ return Promise.reject(e);
42237
+ }
42238
+ };
42239
+
42240
+ useEffect(function () {
42241
+ checkAuthentication();
42242
+ }, []);
42243
+ useEffect(function () {
42244
+ getInformationSetting();
42245
+ }, [location.pathname]);
42246
+
42247
+ var checkAuthentication = function checkAuthentication() {
42248
+ try {
42249
+ var _temp4 = _catch(function () {
42250
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42251
+ tokenStatus ? loadInfo() : resetAuth();
42252
+ });
42253
+ }, function () {
42254
+ resetAuth();
42255
+ });
42256
+
42257
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42258
+ } catch (e) {
42259
+ return Promise.reject(e);
42260
+ }
42261
+ };
42262
+
42263
+ var loadInfo = function loadInfo() {
42264
+ try {
42265
+ var _temp6 = _catch(function () {
42266
+ return Promise.resolve(getInfo()).then(function (info) {
42267
+ var _info$data, _info$data$roles;
42268
+
42269
+ 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"))) {
42270
+ resetAuth();
42271
+ }
42272
+
42273
+ dispatch(setUser(info.data));
42274
+ });
42275
+ }, function () {
42276
+ resetAuth();
42277
+ });
42278
+
42279
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42280
+ } catch (e) {
42281
+ return Promise.reject(e);
42282
+ }
42283
+ };
42284
+
42285
+ var resetAuth = function resetAuth() {
42286
+ localStorage.removeItem(ACCESS_TOKEN);
42287
+ sessionStorage.removeItem(ACCESS_TOKEN);
42288
+ localStorage.removeItem("ROLES");
42289
+ history.push("/");
42290
+ };
42291
+
42292
+ if (!user) {
42293
+ return React.createElement(Loading, null);
42294
+ }
42295
+
42296
+ return React.createElement("div", {
42297
+ className: "c-app c-default-layout"
42298
+ }, !isNotification && React.createElement(TheSidebar, {
42299
+ navigation: authNavigations
42300
+ }), React.createElement("div", {
42301
+ className: "c-wrapper"
42302
+ }, !isNotification && React.createElement(TheHeader, {
42303
+ onToggleModel: handleToggleModel
42304
+ }), React.createElement("div", {
42305
+ className: "c-body bg-white"
42306
+ }, React.createElement(TheContent$1, {
42307
+ routes: authRoutes
42308
+ }))), React.createElement(ModelSelectRole, {
42309
+ open: openModelSelectRole,
42310
+ onToggleModel: handleToggleModel
42311
+ }));
42312
+ };
42313
+
41846
42314
  var buttonTextStyle = {
41847
42315
  fontWeight: 500
41848
42316
  };
@@ -49745,7 +50213,7 @@ var useCSVImportTab = function useCSVImportTab() {
49745
50213
  });
49746
50214
  var header = parsedData.meta.fields;
49747
50215
  var dataRows = parsedData.data;
49748
- var chunkSize = 20;
50216
+ var chunkSize = 10;
49749
50217
  var chunks = [];
49750
50218
 
49751
50219
  for (var _i = 0; _i < dataRows.length; _i += chunkSize) {
@@ -51191,34 +51659,6 @@ var UserDetail = function UserDetail() {
51191
51659
  });
51192
51660
  };
51193
51661
 
51194
- var loadingStyle = {
51195
- minWidth: "100vw",
51196
- minHeight: "100vh",
51197
- position: "fixed",
51198
- top: 0,
51199
- left: 0,
51200
- zIndex: 999999999,
51201
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51202
- display: "flex",
51203
- justifyContent: "center",
51204
- alignItems: "center"
51205
- };
51206
-
51207
- var Loading = function Loading() {
51208
- var isLoading = useSelector(function (state) {
51209
- return state.common.isLoading;
51210
- });
51211
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51212
- return isLoading ? React.createElement("div", {
51213
- style: loadingStyle
51214
- }, React.createElement("div", {
51215
- className: "spinner-border text-secondary",
51216
- role: "status"
51217
- }, React.createElement("span", {
51218
- className: "sr-only"
51219
- }, "Loading..."))) : null;
51220
- };
51221
-
51222
51662
  var ScrollToTop = function ScrollToTop() {
51223
51663
  var _useLocation = useLocation(),
51224
51664
  pathname = _useLocation.pathname;
@@ -54242,32 +54682,6 @@ var store = configureStore({
54242
54682
  }
54243
54683
  });
54244
54684
 
54245
- var firstCheckToken = function firstCheckToken() {
54246
- return Promise.resolve(_catch(function () {
54247
- var token = getAccessToken();
54248
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54249
- return tokenStatus.data ? true : false;
54250
- }) : false;
54251
- }, function () {
54252
- return false;
54253
- }));
54254
- };
54255
-
54256
- var canAccess = function canAccess(userRoles, componentRoles) {
54257
- if (!Array.isArray(userRoles)) {
54258
- return false;
54259
- }
54260
-
54261
- if (Array.isArray(componentRoles)) {
54262
- var intersects = userRoles.filter(function (i) {
54263
- return componentRoles.includes(i);
54264
- });
54265
- return intersects.length > 0;
54266
- }
54267
-
54268
- return true;
54269
- };
54270
-
54271
54685
  var isInViewport = function isInViewport(el) {
54272
54686
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54273
54687
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54301,410 +54715,6 @@ var generateRandomString = (function () {
54301
54715
  return (Math.random() + 1).toString(36).substring(7);
54302
54716
  });
54303
54717
 
54304
- var apiGetLanguage = function apiGetLanguage() {
54305
- return api.get(BASE_URL + "/api/language");
54306
- };
54307
-
54308
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54309
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54310
- };
54311
-
54312
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54313
-
54314
- var useLanguages = function useLanguages() {
54315
- var dispatch = useDispatch();
54316
-
54317
- var _useTranslation = useTranslation(),
54318
- i18n = _useTranslation.i18n;
54319
-
54320
- var language = useSelector(function (state) {
54321
- return state.common.language;
54322
- });
54323
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54324
-
54325
- var _useState = useState([]),
54326
- languageList = _useState[0],
54327
- setLanguageList = _useState[1];
54328
-
54329
- var _useState2 = useState(false),
54330
- dropdownOpen = _useState2[0],
54331
- setDropdownOpen = _useState2[1];
54332
-
54333
- var _useState3 = useState(defaultLanguage),
54334
- currentLang = _useState3[0],
54335
- setCurrentLang = _useState3[1];
54336
-
54337
- var toggle = function toggle() {
54338
- return setDropdownOpen(function (prevState) {
54339
- return !prevState;
54340
- });
54341
- };
54342
-
54343
- var changeLanguageApp = function changeLanguageApp(lang) {
54344
- try {
54345
- var _temp3 = function _temp3() {
54346
- dispatch(setLoading(false));
54347
- };
54348
-
54349
- dispatch(setLoading(true));
54350
-
54351
- var _temp4 = _catch(function () {
54352
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54353
- i18n.changeLanguage(lang);
54354
- setCurrentLang(lang);
54355
- dispatch(setLanguage(lang));
54356
- });
54357
- }, function (err) {
54358
- var _err$response, _err$response$data;
54359
-
54360
- dispatch(setAlert({
54361
- type: "danger",
54362
- 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
54363
- }));
54364
- });
54365
-
54366
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54367
- } catch (e) {
54368
- return Promise.reject(e);
54369
- }
54370
- };
54371
-
54372
- var getListLanguage = function getListLanguage() {
54373
- try {
54374
- var _temp6 = _catch(function () {
54375
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54376
- setLanguageList(res.data);
54377
- });
54378
- }, function (err) {
54379
- var _err$response2, _err$response2$data;
54380
-
54381
- dispatch(setAlert({
54382
- type: "danger",
54383
- 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
54384
- }));
54385
- });
54386
-
54387
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54388
- } catch (e) {
54389
- return Promise.reject(e);
54390
- }
54391
- };
54392
-
54393
- useEffect(function () {
54394
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54395
- getListLanguage();
54396
- }, []);
54397
- return {
54398
- languageList: languageList,
54399
- toggle: toggle,
54400
- dropdownOpen: dropdownOpen,
54401
- currentLang: currentLang,
54402
- changeLanguageApp: changeLanguageApp,
54403
- setCurrentLang: setCurrentLang
54404
- };
54405
- };
54406
-
54407
- var TheLanguageDropdown = function TheLanguageDropdown() {
54408
- var _useLanguages = useLanguages(),
54409
- languageList = _useLanguages.languageList,
54410
- toggle = _useLanguages.toggle,
54411
- dropdownOpen = _useLanguages.dropdownOpen,
54412
- currentLang = _useLanguages.currentLang,
54413
- changeLanguageApp = _useLanguages.changeLanguageApp;
54414
-
54415
- var currentLanguage = useMemo(function () {
54416
- var current = languageList.find(function (i) {
54417
- return i.code === currentLang;
54418
- });
54419
- if (!current) return null;
54420
- return React.createElement(React.Fragment, null, React.createElement("img", {
54421
- className: "mr-2 " + styles['dropdown-menu-flag'],
54422
- src: "" + getStaticFileUrl(current.image)
54423
- }), " ", current.name);
54424
- }, [currentLang, languageList]);
54425
- return React.createElement(Dropdown, {
54426
- isOpen: dropdownOpen,
54427
- toggle: toggle,
54428
- className: "" + styles["dropdown-menu"]
54429
- }, React.createElement(DropdownToggle, {
54430
- className: styles["header-avatar"] + " d-flex align-items-center"
54431
- }, React.createElement("span", {
54432
- style: {
54433
- color: "#000",
54434
- textTransform: "capitalize",
54435
- display: 'flex',
54436
- alignItems: 'center'
54437
- }
54438
- }, currentLanguage, React.createElement(BsChevronDown, {
54439
- className: "ml-2",
54440
- style: {
54441
- fontSize: '10px'
54442
- }
54443
- }))), React.createElement(DropdownMenu, {
54444
- className: styles["dropdown-content-language"]
54445
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54446
- return React.createElement(DropdownItem, {
54447
- key: lang.code,
54448
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54449
- onClick: function onClick() {
54450
- return changeLanguageApp(lang.code);
54451
- }
54452
- }, React.createElement("div", {
54453
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54454
- }, React.createElement("span", {
54455
- className: "mr-2 d-flex hover-opacity"
54456
- }, React.createElement("img", {
54457
- style: {
54458
- width: "30px",
54459
- height: "25px",
54460
- borderRadius: "5px"
54461
- },
54462
- src: getStaticFileUrl(lang.image)
54463
- })), lang.name));
54464
- })));
54465
- };
54466
-
54467
- var TheHeader = function TheHeader(_ref) {
54468
- var onToggleModel = _ref.onToggleModel;
54469
- var dispatch = useDispatch();
54470
- var sidebarShow = useSelector(function (state) {
54471
- return state.common.sidebarShow;
54472
- });
54473
-
54474
- var _useTranslation = useTranslation(),
54475
- t = _useTranslation.t;
54476
-
54477
- var toggleSidebarMobile = function toggleSidebarMobile() {
54478
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54479
- dispatch(setSidebar(val));
54480
- };
54481
-
54482
- var isDistrict = window.location.host.includes("-district");
54483
- return React.createElement(CHeader, {
54484
- withSubheader: true,
54485
- className: "d-flex align-items-center justify-content-end"
54486
- }, React.createElement(CToggler, {
54487
- inHeader: true,
54488
- className: "ml-md-3 d-lg-none",
54489
- onClick: toggleSidebarMobile
54490
- }), React.createElement(CHeaderBrand, {
54491
- className: "mx-auto flex-grow-1 d-lg-none",
54492
- to: "/"
54493
- }, React.createElement("img", {
54494
- src: getStaticFileUrl(Images.LOGO_HEADER),
54495
- className: styles["header-logo"]
54496
- })), React.createElement(CHeaderNav, {
54497
- className: "pr-3"
54498
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
54499
- className: "mr-3",
54500
- style: {
54501
- color: '#000'
54502
- },
54503
- href: '/privacy-policy',
54504
- target: "blank"
54505
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
54506
- onToggleModel: onToggleModel
54507
- })));
54508
- };
54509
-
54510
- var ModelSelectRole = function ModelSelectRole(_ref) {
54511
- var _handleUserRole;
54512
-
54513
- var open = _ref.open,
54514
- onToggleModel = _ref.onToggleModel;
54515
- var dispatch = useDispatch();
54516
-
54517
- var _useTranslation = useTranslation(),
54518
- t = _useTranslation.t;
54519
-
54520
- var history = useHistory();
54521
- var pathname = window.location.pathname;
54522
- var user = useSelector(function (state) {
54523
- return state.common.user;
54524
- });
54525
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54526
-
54527
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54528
- dispatch(setLoading(true));
54529
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54530
- dispatch(setUser(_extends({}, user, {
54531
- roles: roleSelect
54532
- })));
54533
- localStorage.setItem("ROLES", roleSelect.toString());
54534
- onToggleModel();
54535
-
54536
- if (roles.includes("Parent")) {
54537
- history.push("/parent");
54538
- } else if (roles.includes("Admin")) {
54539
- history.push("/admin/home");
54540
- } else {
54541
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54542
- }
54543
- };
54544
-
54545
- return React.createElement(Modal, {
54546
- isOpen: open,
54547
- toggle: function toggle() {
54548
- return onToggleModel();
54549
- },
54550
- className: "" + styles["model-switch-roles"],
54551
- centered: true
54552
- }, React.createElement("p", {
54553
- className: "" + styles["title"]
54554
- }, 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) {
54555
- return React.createElement("p", {
54556
- key: r,
54557
- 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" : ""],
54558
- onClick: function onClick() {
54559
- return handleSelectUserRoles([r]);
54560
- }
54561
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54562
- })));
54563
- };
54564
-
54565
- var TheLayout = function TheLayout(_ref) {
54566
- var routes = _ref.routes,
54567
- navigation = _ref.navigation;
54568
- var history = useHistory();
54569
- var dispatch = useDispatch();
54570
- var user = useSelector(function (state) {
54571
- return state.common.user;
54572
- });
54573
- var language = useSelector(function (state) {
54574
- return state.common.language;
54575
- });
54576
-
54577
- var _useState = useState(false),
54578
- openModelSelectRole = _useState[0],
54579
- setOpenModelSelectRole = _useState[1];
54580
-
54581
- var _useTranslation = useTranslation(),
54582
- t = _useTranslation.t;
54583
-
54584
- var location = useLocation();
54585
- var isNotification = location.pathname.includes("notifications");
54586
- var isDistrict = window.location.host.includes("-district");
54587
-
54588
- var handleToggleModel = function handleToggleModel() {
54589
- setOpenModelSelectRole(!openModelSelectRole);
54590
- };
54591
-
54592
- var authRoutes = useMemo(function () {
54593
- return routes.filter(function (route) {
54594
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54595
- }).filter(function (route) {
54596
- return !!route.isDistrict === isDistrict;
54597
- });
54598
- }, [user, language]);
54599
- var authNavigations = useMemo(function () {
54600
- return navigation.map(function (item) {
54601
- var _item$_children, _item$_children2;
54602
-
54603
- return _extends({}, item, {
54604
- name: t(item.name),
54605
- _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) {
54606
- return _extends({}, x, {
54607
- name: t(x.name)
54608
- });
54609
- }) : undefined
54610
- });
54611
- }).filter(function (nav) {
54612
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54613
- }).filter(function (nav) {
54614
- return !!nav.isDistrict === isDistrict;
54615
- });
54616
- }, [user, language]);
54617
-
54618
- var getInformationSetting = function getInformationSetting() {
54619
- try {
54620
- var _temp2 = _catch(function () {
54621
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54622
- dispatch(setSandboxMode(res.data.isSandboxMode));
54623
- });
54624
- }, function (err) {
54625
- console.error(err);
54626
- });
54627
-
54628
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54629
- } catch (e) {
54630
- return Promise.reject(e);
54631
- }
54632
- };
54633
-
54634
- useEffect(function () {
54635
- checkAuthentication();
54636
- }, []);
54637
- useEffect(function () {
54638
- getInformationSetting();
54639
- }, [location.pathname]);
54640
-
54641
- var checkAuthentication = function checkAuthentication() {
54642
- try {
54643
- var _temp4 = _catch(function () {
54644
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
54645
- tokenStatus ? loadInfo() : resetAuth();
54646
- });
54647
- }, function () {
54648
- resetAuth();
54649
- });
54650
-
54651
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
54652
- } catch (e) {
54653
- return Promise.reject(e);
54654
- }
54655
- };
54656
-
54657
- var loadInfo = function loadInfo() {
54658
- try {
54659
- var _temp6 = _catch(function () {
54660
- return Promise.resolve(getInfo()).then(function (info) {
54661
- var _info$data, _info$data$roles;
54662
-
54663
- 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"))) {
54664
- resetAuth();
54665
- }
54666
-
54667
- dispatch(setUser(info.data));
54668
- });
54669
- }, function () {
54670
- resetAuth();
54671
- });
54672
-
54673
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54674
- } catch (e) {
54675
- return Promise.reject(e);
54676
- }
54677
- };
54678
-
54679
- var resetAuth = function resetAuth() {
54680
- localStorage.removeItem(ACCESS_TOKEN);
54681
- sessionStorage.removeItem(ACCESS_TOKEN);
54682
- localStorage.removeItem("ROLES");
54683
- history.push("/");
54684
- };
54685
-
54686
- if (!user) {
54687
- return React.createElement(Loading, null);
54688
- }
54689
-
54690
- return React.createElement("div", {
54691
- className: "c-app c-default-layout"
54692
- }, !isNotification && React.createElement(TheSidebar, {
54693
- navigation: authNavigations
54694
- }), React.createElement("div", {
54695
- className: "c-wrapper"
54696
- }, !isNotification && React.createElement(TheHeader, {
54697
- onToggleModel: handleToggleModel
54698
- }), React.createElement("div", {
54699
- className: "c-body bg-white"
54700
- }, React.createElement(TheContent$1, {
54701
- routes: authRoutes
54702
- }))), React.createElement(ModelSelectRole, {
54703
- open: openModelSelectRole,
54704
- onToggleModel: handleToggleModel
54705
- }));
54706
- };
54707
-
54708
54718
  var amplitudeClient = amplitude;
54709
54719
 
54710
54720
  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, setEnableMarioAi, 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 };