mario-core 2.9.433-feedback → 2.9.500-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';
@@ -42063,6 +42063,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
42063
42063
  })), t("log_out")))));
42064
42064
  };
42065
42065
 
42066
+ var apiGetLanguage = function apiGetLanguage() {
42067
+ return api.get(BASE_URL + "/api/language");
42068
+ };
42069
+
42070
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
42071
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
42072
+ };
42073
+
42074
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
42075
+
42076
+ var useLanguages = function useLanguages() {
42077
+ var dispatch = useDispatch();
42078
+
42079
+ var _useTranslation = useTranslation(),
42080
+ i18n = _useTranslation.i18n;
42081
+
42082
+ var language = useSelector(function (state) {
42083
+ return state.common.language;
42084
+ });
42085
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
42086
+
42087
+ var _useState = useState([]),
42088
+ languageList = _useState[0],
42089
+ setLanguageList = _useState[1];
42090
+
42091
+ var _useState2 = useState(false),
42092
+ dropdownOpen = _useState2[0],
42093
+ setDropdownOpen = _useState2[1];
42094
+
42095
+ var _useState3 = useState(defaultLanguage),
42096
+ currentLang = _useState3[0],
42097
+ setCurrentLang = _useState3[1];
42098
+
42099
+ var toggle = function toggle() {
42100
+ return setDropdownOpen(function (prevState) {
42101
+ return !prevState;
42102
+ });
42103
+ };
42104
+
42105
+ var changeLanguageApp = function changeLanguageApp(lang) {
42106
+ try {
42107
+ var _temp3 = function _temp3() {
42108
+ dispatch(setLoading(false));
42109
+ };
42110
+
42111
+ dispatch(setLoading(true));
42112
+
42113
+ var _temp4 = _catch(function () {
42114
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
42115
+ i18n.changeLanguage(lang);
42116
+ setCurrentLang(lang);
42117
+ dispatch(setLanguage(lang));
42118
+ });
42119
+ }, function (err) {
42120
+ var _err$response, _err$response$data;
42121
+
42122
+ dispatch(setAlert({
42123
+ type: "danger",
42124
+ 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
42125
+ }));
42126
+ });
42127
+
42128
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
42129
+ } catch (e) {
42130
+ return Promise.reject(e);
42131
+ }
42132
+ };
42133
+
42134
+ var getListLanguage = function getListLanguage() {
42135
+ try {
42136
+ var _temp6 = _catch(function () {
42137
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
42138
+ setLanguageList(res.data);
42139
+ });
42140
+ }, function (err) {
42141
+ var _err$response2, _err$response2$data;
42142
+
42143
+ dispatch(setAlert({
42144
+ type: "danger",
42145
+ 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
42146
+ }));
42147
+ });
42148
+
42149
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42150
+ } catch (e) {
42151
+ return Promise.reject(e);
42152
+ }
42153
+ };
42154
+
42155
+ useEffect(function () {
42156
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
42157
+ getListLanguage();
42158
+ }, []);
42159
+ return {
42160
+ languageList: languageList,
42161
+ toggle: toggle,
42162
+ dropdownOpen: dropdownOpen,
42163
+ currentLang: currentLang,
42164
+ changeLanguageApp: changeLanguageApp,
42165
+ setCurrentLang: setCurrentLang
42166
+ };
42167
+ };
42168
+
42169
+ var TheLanguageDropdown = function TheLanguageDropdown() {
42170
+ var _useLanguages = useLanguages(),
42171
+ languageList = _useLanguages.languageList,
42172
+ toggle = _useLanguages.toggle,
42173
+ dropdownOpen = _useLanguages.dropdownOpen,
42174
+ currentLang = _useLanguages.currentLang,
42175
+ changeLanguageApp = _useLanguages.changeLanguageApp;
42176
+
42177
+ var currentLanguage = useMemo(function () {
42178
+ var current = languageList.find(function (i) {
42179
+ return i.code === currentLang;
42180
+ });
42181
+ if (!current) return null;
42182
+ return React.createElement(React.Fragment, null, React.createElement("img", {
42183
+ className: "mr-2 " + styles['dropdown-menu-flag'],
42184
+ src: "" + getStaticFileUrl(current.image)
42185
+ }), " ", current.name);
42186
+ }, [currentLang, languageList]);
42187
+ return React.createElement(Dropdown, {
42188
+ isOpen: dropdownOpen,
42189
+ toggle: toggle,
42190
+ className: "" + styles["dropdown-menu"]
42191
+ }, React.createElement(DropdownToggle, {
42192
+ className: styles["header-avatar"] + " d-flex align-items-center"
42193
+ }, React.createElement("span", {
42194
+ style: {
42195
+ color: "#000",
42196
+ textTransform: "capitalize",
42197
+ display: 'flex',
42198
+ alignItems: 'center'
42199
+ }
42200
+ }, currentLanguage, React.createElement(BsChevronDown, {
42201
+ className: "ml-2",
42202
+ style: {
42203
+ fontSize: '10px'
42204
+ }
42205
+ }))), React.createElement(DropdownMenu, {
42206
+ className: styles["dropdown-content-language"]
42207
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42208
+ return React.createElement(DropdownItem, {
42209
+ key: lang.code,
42210
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42211
+ onClick: function onClick() {
42212
+ return changeLanguageApp(lang.code);
42213
+ }
42214
+ }, React.createElement("div", {
42215
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42216
+ }, React.createElement("span", {
42217
+ className: "mr-2 d-flex hover-opacity"
42218
+ }, React.createElement("img", {
42219
+ style: {
42220
+ width: "30px",
42221
+ height: "25px",
42222
+ borderRadius: "5px"
42223
+ },
42224
+ src: getStaticFileUrl(lang.image)
42225
+ })), lang.name));
42226
+ })));
42227
+ };
42228
+
42229
+ var TheHeader = function TheHeader(_ref) {
42230
+ var onToggleModel = _ref.onToggleModel;
42231
+ var dispatch = useDispatch();
42232
+ var sidebarShow = useSelector(function (state) {
42233
+ return state.common.sidebarShow;
42234
+ });
42235
+
42236
+ var _useTranslation = useTranslation(),
42237
+ t = _useTranslation.t;
42238
+
42239
+ var toggleSidebarMobile = function toggleSidebarMobile() {
42240
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42241
+ dispatch(setSidebar(val));
42242
+ };
42243
+
42244
+ var isDistrict = window.location.host.includes("-district");
42245
+ return React.createElement(CHeader, {
42246
+ withSubheader: true,
42247
+ className: "d-flex align-items-center justify-content-end"
42248
+ }, React.createElement(CToggler, {
42249
+ inHeader: true,
42250
+ className: "ml-md-3 d-lg-none",
42251
+ onClick: toggleSidebarMobile
42252
+ }), React.createElement(CHeaderBrand, {
42253
+ className: "mx-auto flex-grow-1 d-lg-none",
42254
+ to: "/"
42255
+ }, React.createElement("img", {
42256
+ src: getStaticFileUrl(Images.LOGO_HEADER),
42257
+ className: styles["header-logo"]
42258
+ })), React.createElement(CHeaderNav, {
42259
+ className: "pr-3"
42260
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
42261
+ className: "mr-3",
42262
+ style: {
42263
+ color: '#000'
42264
+ },
42265
+ href: '/privacy-policy',
42266
+ target: "blank"
42267
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
42268
+ onToggleModel: onToggleModel
42269
+ })));
42270
+ };
42271
+
42066
42272
  var TITLE$3 = "Not found";
42067
42273
 
42068
42274
  var NotFound = function NotFound() {
@@ -42120,6 +42326,258 @@ var TheContent = function TheContent(_ref) {
42120
42326
 
42121
42327
  var TheContent$1 = React.memo(TheContent);
42122
42328
 
42329
+ var loadingStyle = {
42330
+ minWidth: "100vw",
42331
+ minHeight: "100vh",
42332
+ position: "fixed",
42333
+ top: 0,
42334
+ left: 0,
42335
+ zIndex: 999999999,
42336
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42337
+ display: "flex",
42338
+ justifyContent: "center",
42339
+ alignItems: "center"
42340
+ };
42341
+
42342
+ var Loading = function Loading() {
42343
+ var isLoading = useSelector(function (state) {
42344
+ return state.common.isLoading;
42345
+ });
42346
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42347
+ return isLoading ? React.createElement("div", {
42348
+ style: loadingStyle
42349
+ }, React.createElement("div", {
42350
+ className: "spinner-border text-secondary",
42351
+ role: "status"
42352
+ }, React.createElement("span", {
42353
+ className: "sr-only"
42354
+ }, "Loading..."))) : null;
42355
+ };
42356
+
42357
+ var firstCheckToken = function firstCheckToken() {
42358
+ return Promise.resolve(_catch(function () {
42359
+ var token = getAccessToken();
42360
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42361
+ return tokenStatus.data ? true : false;
42362
+ }) : false;
42363
+ }, function () {
42364
+ return false;
42365
+ }));
42366
+ };
42367
+
42368
+ var canAccess = function canAccess(userRoles, componentRoles) {
42369
+ if (!Array.isArray(userRoles)) {
42370
+ return false;
42371
+ }
42372
+
42373
+ if (Array.isArray(componentRoles)) {
42374
+ var intersects = userRoles.filter(function (i) {
42375
+ return componentRoles.includes(i);
42376
+ });
42377
+ return intersects.length > 0;
42378
+ }
42379
+
42380
+ return true;
42381
+ };
42382
+
42383
+ var ModelSelectRole = function ModelSelectRole(_ref) {
42384
+ var _handleUserRole;
42385
+
42386
+ var open = _ref.open,
42387
+ onToggleModel = _ref.onToggleModel;
42388
+ var dispatch = useDispatch();
42389
+
42390
+ var _useTranslation = useTranslation(),
42391
+ t = _useTranslation.t;
42392
+
42393
+ var history = useHistory();
42394
+ var pathname = window.location.pathname;
42395
+ var user = useSelector(function (state) {
42396
+ return state.common.user;
42397
+ });
42398
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
42399
+
42400
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42401
+ dispatch(setLoading(true));
42402
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42403
+ dispatch(setUser(_extends({}, user, {
42404
+ roles: roleSelect
42405
+ })));
42406
+ localStorage.setItem("ROLES", roleSelect.toString());
42407
+ onToggleModel();
42408
+
42409
+ if (roles.includes("Parent")) {
42410
+ history.push("/parent");
42411
+ } else if (roles.includes("Admin")) {
42412
+ history.push("/admin/home");
42413
+ } else {
42414
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
42415
+ }
42416
+ };
42417
+
42418
+ return React.createElement(Modal, {
42419
+ isOpen: open,
42420
+ toggle: function toggle() {
42421
+ return onToggleModel();
42422
+ },
42423
+ className: "" + styles["model-switch-roles"],
42424
+ centered: true
42425
+ }, React.createElement("p", {
42426
+ className: "" + styles["title"]
42427
+ }, 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) {
42428
+ return React.createElement("p", {
42429
+ key: r,
42430
+ 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" : ""],
42431
+ onClick: function onClick() {
42432
+ return handleSelectUserRoles([r]);
42433
+ }
42434
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42435
+ })));
42436
+ };
42437
+
42438
+ var TheLayout = function TheLayout(_ref) {
42439
+ var routes = _ref.routes,
42440
+ navigation = _ref.navigation;
42441
+ var history = useHistory();
42442
+ var dispatch = useDispatch();
42443
+ var user = useSelector(function (state) {
42444
+ return state.common.user;
42445
+ });
42446
+ var language = useSelector(function (state) {
42447
+ return state.common.language;
42448
+ });
42449
+
42450
+ var _useState = useState(false),
42451
+ openModelSelectRole = _useState[0],
42452
+ setOpenModelSelectRole = _useState[1];
42453
+
42454
+ var _useTranslation = useTranslation(),
42455
+ t = _useTranslation.t;
42456
+
42457
+ var location = useLocation();
42458
+ var isNotification = location.pathname.includes("notifications");
42459
+ var isDistrict = window.location.host.includes("-district");
42460
+
42461
+ var handleToggleModel = function handleToggleModel() {
42462
+ setOpenModelSelectRole(!openModelSelectRole);
42463
+ };
42464
+
42465
+ var authRoutes = useMemo(function () {
42466
+ return routes.filter(function (route) {
42467
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42468
+ }).filter(function (route) {
42469
+ return !!route.isDistrict === isDistrict;
42470
+ });
42471
+ }, [user, language]);
42472
+ var authNavigations = useMemo(function () {
42473
+ return navigation.map(function (item) {
42474
+ var _item$_children, _item$_children2;
42475
+
42476
+ return _extends({}, item, {
42477
+ name: t(item.name),
42478
+ _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) {
42479
+ return _extends({}, x, {
42480
+ name: t(x.name)
42481
+ });
42482
+ }) : undefined
42483
+ });
42484
+ }).filter(function (nav) {
42485
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42486
+ }).filter(function (nav) {
42487
+ return !!nav.isDistrict === isDistrict;
42488
+ });
42489
+ }, [user, language]);
42490
+
42491
+ var getInformationSetting = function getInformationSetting() {
42492
+ try {
42493
+ var _temp2 = _catch(function () {
42494
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
42495
+ dispatch(setSandboxMode(res.data.isSandboxMode));
42496
+ });
42497
+ }, function (err) {
42498
+ console.error(err);
42499
+ });
42500
+
42501
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42502
+ } catch (e) {
42503
+ return Promise.reject(e);
42504
+ }
42505
+ };
42506
+
42507
+ useEffect(function () {
42508
+ checkAuthentication();
42509
+ }, []);
42510
+ useEffect(function () {
42511
+ getInformationSetting();
42512
+ }, [location.pathname]);
42513
+
42514
+ var checkAuthentication = function checkAuthentication() {
42515
+ try {
42516
+ var _temp4 = _catch(function () {
42517
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42518
+ tokenStatus ? loadInfo() : resetAuth();
42519
+ });
42520
+ }, function () {
42521
+ resetAuth();
42522
+ });
42523
+
42524
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42525
+ } catch (e) {
42526
+ return Promise.reject(e);
42527
+ }
42528
+ };
42529
+
42530
+ var loadInfo = function loadInfo() {
42531
+ try {
42532
+ var _temp6 = _catch(function () {
42533
+ return Promise.resolve(getInfo()).then(function (info) {
42534
+ var _info$data, _info$data$roles;
42535
+
42536
+ 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"))) {
42537
+ resetAuth();
42538
+ }
42539
+
42540
+ dispatch(setUser(info.data));
42541
+ });
42542
+ }, function () {
42543
+ resetAuth();
42544
+ });
42545
+
42546
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42547
+ } catch (e) {
42548
+ return Promise.reject(e);
42549
+ }
42550
+ };
42551
+
42552
+ var resetAuth = function resetAuth() {
42553
+ localStorage.removeItem(ACCESS_TOKEN);
42554
+ sessionStorage.removeItem(ACCESS_TOKEN);
42555
+ localStorage.removeItem("ROLES");
42556
+ history.push("/");
42557
+ };
42558
+
42559
+ if (!user) {
42560
+ return React.createElement(Loading, null);
42561
+ }
42562
+
42563
+ return React.createElement("div", {
42564
+ className: "c-app c-default-layout"
42565
+ }, !isNotification && React.createElement(TheSidebar, {
42566
+ navigation: authNavigations
42567
+ }), React.createElement("div", {
42568
+ className: "c-wrapper"
42569
+ }, !isNotification && React.createElement(TheHeader, {
42570
+ onToggleModel: handleToggleModel
42571
+ }), React.createElement("div", {
42572
+ className: "c-body bg-white"
42573
+ }, React.createElement(TheContent$1, {
42574
+ routes: authRoutes
42575
+ }))), React.createElement(ModelSelectRole, {
42576
+ open: openModelSelectRole,
42577
+ onToggleModel: handleToggleModel
42578
+ }));
42579
+ };
42580
+
42123
42581
  var buttonTextStyle = {
42124
42582
  fontWeight: 500
42125
42583
  };
@@ -47871,8 +48329,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
47871
48329
 
47872
48330
  var onAssignStaffToStudents = function onAssignStaffToStudents(listUserIds) {
47873
48331
  try {
47874
- var _userSelected$filter$, _userSelected$filter;
47875
-
47876
48332
  var _temp27 = function _temp27() {
47877
48333
  dispatch(setLoading(false));
47878
48334
  };
@@ -47893,20 +48349,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
47893
48349
  return Promise.resolve();
47894
48350
  }
47895
48351
 
47896
- var allUsersHaveTeachers = (_userSelected$filter$ = userSelected === null || userSelected === void 0 ? void 0 : (_userSelected$filter = userSelected.filter(function (user) {
47897
- return listUserIds === null || listUserIds === void 0 ? void 0 : listUserIds.includes(user.id);
47898
- })) === null || _userSelected$filter === void 0 ? void 0 : _userSelected$filter.every(function (u) {
47899
- return Array.isArray(u.teachers) && u.teachers.length > 0;
47900
- })) != null ? _userSelected$filter$ : false;
47901
-
47902
- if (staffBulkAssign.teacher.length === 0 && !allUsersHaveTeachers) {
47903
- dispatch(setAlert({
47904
- type: "danger",
47905
- message: "Please assign a teacher to each student before giving other educators access to them"
47906
- }));
47907
- return Promise.resolve();
47908
- }
47909
-
47910
48352
  dispatch(setLoading(true));
47911
48353
 
47912
48354
  var _temp28 = _catch(function () {
@@ -51516,34 +51958,6 @@ var UserDetail = function UserDetail() {
51516
51958
  });
51517
51959
  };
51518
51960
 
51519
- var loadingStyle = {
51520
- minWidth: "100vw",
51521
- minHeight: "100vh",
51522
- position: "fixed",
51523
- top: 0,
51524
- left: 0,
51525
- zIndex: 999999999,
51526
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51527
- display: "flex",
51528
- justifyContent: "center",
51529
- alignItems: "center"
51530
- };
51531
-
51532
- var Loading = function Loading() {
51533
- var isLoading = useSelector(function (state) {
51534
- return state.common.isLoading;
51535
- });
51536
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51537
- return isLoading ? React.createElement("div", {
51538
- style: loadingStyle
51539
- }, React.createElement("div", {
51540
- className: "spinner-border text-secondary",
51541
- role: "status"
51542
- }, React.createElement("span", {
51543
- className: "sr-only"
51544
- }, "Loading..."))) : null;
51545
- };
51546
-
51547
51961
  var ScrollToTop = function ScrollToTop() {
51548
51962
  var _useLocation = useLocation(),
51549
51963
  pathname = _useLocation.pathname;
@@ -51651,12 +52065,7 @@ var CommonHeader = function CommonHeader(_ref) {
51651
52065
  }, header))));
51652
52066
  };
51653
52067
 
51654
- var IDLE_MINUTES_WARNING = 13;
51655
- var AUTO_LOGOUT_MINUTES = 15;
51656
-
51657
52068
  var NotificationLogoutModal = function NotificationLogoutModal() {
51658
- var history = useHistory();
51659
-
51660
52069
  var _useState = useState(false),
51661
52070
  isOpen = _useState[0],
51662
52071
  setIsOpen = _useState[1];
@@ -51668,65 +52077,37 @@ var NotificationLogoutModal = function NotificationLogoutModal() {
51668
52077
  objTime = _useState2[0],
51669
52078
  setObjTime = _useState2[1];
51670
52079
 
51671
- var getLastActivity = function getLastActivity() {
51672
- try {
51673
- var _localStorage$getItem, _localStorage, _localStorage$getItem2;
51674
-
51675
- return (_localStorage$getItem = (_localStorage = localStorage) === null || _localStorage === void 0 ? void 0 : (_localStorage$getItem2 = _localStorage.getItem) === null || _localStorage$getItem2 === void 0 ? void 0 : _localStorage$getItem2.call(_localStorage, "LAST_ACTIVITY_TIME")) != null ? _localStorage$getItem : null;
51676
- } catch (_unused) {
51677
- return null;
51678
- }
51679
- };
51680
-
51681
- var doLogout = function doLogout() {
51682
- localStorage.removeItem(ACCESS_TOKEN);
51683
- sessionStorage.removeItem(ACCESS_TOKEN);
51684
- localStorage.removeItem("ROLES");
51685
- localStorage.removeItem("LAST_ACTIVITY_TIME");
51686
- setIsOpen(false);
51687
- history.replace("/login");
51688
- };
51689
-
51690
52080
  var checkOpenModalLogout = function checkOpenModalLogout() {
51691
- var accessToken = getAccessToken();
51692
- if (!accessToken) return;
51693
- var lastActivity = getLastActivity();
51694
-
51695
- if (!lastActivity) {
51696
- var _localStorage2, _localStorage2$setIte;
51697
-
51698
- (_localStorage2 = localStorage) === null || _localStorage2 === void 0 ? void 0 : (_localStorage2$setIte = _localStorage2.setItem) === null || _localStorage2$setIte === void 0 ? void 0 : _localStorage2$setIte.call(_localStorage2, "LAST_ACTIVITY_TIME", new Date().toISOString());
51699
- return;
51700
- }
51701
-
51702
- var timeMoment = moment(lastActivity, "YYYY-MM-DD HH:mm");
52081
+ var lastTimeOut = localStorage.getItem("LAST_TIME_REQUETST");
52082
+ var timeMoment = moment(lastTimeOut, "YYYY-MM-DD HH:mm");
51703
52083
  var currentTime = moment(moment().utc().format("YYYY-MM-DD HH:mm"));
51704
52084
  var minutes = currentTime.diff(timeMoment, "minutes");
52085
+ var timeLogout = utcToLocalTime(currentTime.add(16 - minutes, 'minutes').format("YYYY-MM-DD HH:mm"), "HH:mm");
51705
52086
 
51706
- if (minutes >= AUTO_LOGOUT_MINUTES) {
51707
- doLogout();
51708
- return;
51709
- }
51710
-
51711
- var timeLogout = utcToLocalTime(currentTime.add(AUTO_LOGOUT_MINUTES - minutes, 'minutes').format("YYYY-MM-DD HH:mm"), "HH:mm");
51712
-
51713
- if (minutes >= IDLE_MINUTES_WARNING) {
51714
- setObjTime({
52087
+ if (minutes == 13) {
52088
+ var dataTime = {
51715
52089
  minutes: minutes,
51716
52090
  timeLogout: timeLogout
51717
- });
51718
- setIsOpen(true);
52091
+ };
52092
+ setObjTime(dataTime);
52093
+ onToggle();
51719
52094
  }
51720
52095
  };
51721
52096
 
51722
52097
  useEffect(function () {
51723
- var interval = setInterval(function () {
51724
- checkOpenModalLogout();
51725
- }, 60 * 1000);
51726
- return function () {
51727
- return clearInterval(interval);
51728
- };
51729
- }, []);
52098
+ var accessToken = getAccessToken();
52099
+
52100
+ if (accessToken) {
52101
+ var interval = setInterval(function () {
52102
+ checkOpenModalLogout();
52103
+ }, 60 * 1000);
52104
+ return function () {
52105
+ return clearInterval(interval);
52106
+ };
52107
+ }
52108
+
52109
+ return;
52110
+ }, [location.href]);
51730
52111
 
51731
52112
  var onToggle = function onToggle() {
51732
52113
  setIsOpen(!isOpen);
@@ -51738,7 +52119,7 @@ var NotificationLogoutModal = function NotificationLogoutModal() {
51738
52119
  size: "xs"
51739
52120
  }, React.createElement(ModalHeader, {
51740
52121
  toggle: onToggle
51741
- }, "Notification Logout"), React.createElement(ModalBody, null, "Are you still here? You have had no action for " + (objTime === null || objTime === void 0 ? void 0 : objTime.minutes) + " mins. \n Your account could be log out after " + (AUTO_LOGOUT_MINUTES - (objTime === null || objTime === void 0 ? void 0 : objTime.minutes)) + " mins at " + (objTime === null || objTime === void 0 ? void 0 : objTime.timeLogout) + " if you don't action."), React.createElement(ModalFooter, {
52122
+ }, "Notification Logout"), React.createElement(ModalBody, null, "Are you still here? You have had no action for " + (objTime === null || objTime === void 0 ? void 0 : objTime.minutes) + " mins. \n Your account could be log out after " + (15 - (objTime === null || objTime === void 0 ? void 0 : objTime.minutes)) + " mins at " + (objTime === null || objTime === void 0 ? void 0 : objTime.timeLogout) + " if you don't action."), React.createElement(ModalFooter, {
51742
52123
  className: "text-right"
51743
52124
  }, React.createElement(Button, {
51744
52125
  color: "primary",
@@ -54600,32 +54981,6 @@ var store = configureStore({
54600
54981
  }
54601
54982
  });
54602
54983
 
54603
- var firstCheckToken = function firstCheckToken() {
54604
- return Promise.resolve(_catch(function () {
54605
- var token = getAccessToken();
54606
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54607
- return tokenStatus.data ? true : false;
54608
- }) : false;
54609
- }, function () {
54610
- return false;
54611
- }));
54612
- };
54613
-
54614
- var canAccess = function canAccess(userRoles, componentRoles) {
54615
- if (!Array.isArray(userRoles)) {
54616
- return false;
54617
- }
54618
-
54619
- if (Array.isArray(componentRoles)) {
54620
- var intersects = userRoles.filter(function (i) {
54621
- return componentRoles.includes(i);
54622
- });
54623
- return intersects.length > 0;
54624
- }
54625
-
54626
- return true;
54627
- };
54628
-
54629
54984
  var isInViewport = function isInViewport(el) {
54630
54985
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54631
54986
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54659,411 +55014,7 @@ var generateRandomString = (function () {
54659
55014
  return (Math.random() + 1).toString(36).substring(7);
54660
55015
  });
54661
55016
 
54662
- var apiGetLanguage = function apiGetLanguage() {
54663
- return api.get(BASE_URL + "/api/language");
54664
- };
54665
-
54666
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54667
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54668
- };
54669
-
54670
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54671
-
54672
- var useLanguages = function useLanguages() {
54673
- var dispatch = useDispatch();
54674
-
54675
- var _useTranslation = useTranslation(),
54676
- i18n = _useTranslation.i18n;
54677
-
54678
- var language = useSelector(function (state) {
54679
- return state.common.language;
54680
- });
54681
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54682
-
54683
- var _useState = useState([]),
54684
- languageList = _useState[0],
54685
- setLanguageList = _useState[1];
54686
-
54687
- var _useState2 = useState(false),
54688
- dropdownOpen = _useState2[0],
54689
- setDropdownOpen = _useState2[1];
54690
-
54691
- var _useState3 = useState(defaultLanguage),
54692
- currentLang = _useState3[0],
54693
- setCurrentLang = _useState3[1];
54694
-
54695
- var toggle = function toggle() {
54696
- return setDropdownOpen(function (prevState) {
54697
- return !prevState;
54698
- });
54699
- };
54700
-
54701
- var changeLanguageApp = function changeLanguageApp(lang) {
54702
- try {
54703
- var _temp3 = function _temp3() {
54704
- dispatch(setLoading(false));
54705
- };
54706
-
54707
- dispatch(setLoading(true));
54708
-
54709
- var _temp4 = _catch(function () {
54710
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54711
- i18n.changeLanguage(lang);
54712
- setCurrentLang(lang);
54713
- dispatch(setLanguage(lang));
54714
- });
54715
- }, function (err) {
54716
- var _err$response, _err$response$data;
54717
-
54718
- dispatch(setAlert({
54719
- type: "danger",
54720
- 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
54721
- }));
54722
- });
54723
-
54724
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54725
- } catch (e) {
54726
- return Promise.reject(e);
54727
- }
54728
- };
54729
-
54730
- var getListLanguage = function getListLanguage() {
54731
- try {
54732
- var _temp6 = _catch(function () {
54733
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54734
- setLanguageList(res.data);
54735
- });
54736
- }, function (err) {
54737
- var _err$response2, _err$response2$data;
54738
-
54739
- dispatch(setAlert({
54740
- type: "danger",
54741
- 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
54742
- }));
54743
- });
54744
-
54745
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54746
- } catch (e) {
54747
- return Promise.reject(e);
54748
- }
54749
- };
54750
-
54751
- useEffect(function () {
54752
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54753
- getListLanguage();
54754
- }, []);
54755
- return {
54756
- languageList: languageList,
54757
- toggle: toggle,
54758
- dropdownOpen: dropdownOpen,
54759
- currentLang: currentLang,
54760
- changeLanguageApp: changeLanguageApp,
54761
- setCurrentLang: setCurrentLang
54762
- };
54763
- };
54764
-
54765
- var TheLanguageDropdown = function TheLanguageDropdown() {
54766
- var _useLanguages = useLanguages(),
54767
- languageList = _useLanguages.languageList,
54768
- toggle = _useLanguages.toggle,
54769
- dropdownOpen = _useLanguages.dropdownOpen,
54770
- currentLang = _useLanguages.currentLang,
54771
- changeLanguageApp = _useLanguages.changeLanguageApp;
54772
-
54773
- var currentLanguage = useMemo(function () {
54774
- var current = languageList.find(function (i) {
54775
- return i.code === currentLang;
54776
- });
54777
- if (!current) return null;
54778
- return React.createElement(React.Fragment, null, React.createElement("img", {
54779
- className: "mr-2 " + styles['dropdown-menu-flag'],
54780
- src: "" + getStaticFileUrl(current.image)
54781
- }), " ", current.name);
54782
- }, [currentLang, languageList]);
54783
- return React.createElement(Dropdown, {
54784
- isOpen: dropdownOpen,
54785
- toggle: toggle,
54786
- className: "" + styles["dropdown-menu"]
54787
- }, React.createElement(DropdownToggle, {
54788
- className: styles["header-avatar"] + " d-flex align-items-center"
54789
- }, React.createElement("span", {
54790
- style: {
54791
- color: "#000",
54792
- textTransform: "capitalize",
54793
- display: 'flex',
54794
- alignItems: 'center'
54795
- }
54796
- }, currentLanguage, React.createElement(BsChevronDown, {
54797
- className: "ml-2",
54798
- style: {
54799
- fontSize: '10px'
54800
- }
54801
- }))), React.createElement(DropdownMenu, {
54802
- className: styles["dropdown-content-language"]
54803
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54804
- return React.createElement(DropdownItem, {
54805
- key: lang.code,
54806
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54807
- onClick: function onClick() {
54808
- return changeLanguageApp(lang.code);
54809
- }
54810
- }, React.createElement("div", {
54811
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54812
- }, React.createElement("span", {
54813
- className: "mr-2 d-flex hover-opacity"
54814
- }, React.createElement("img", {
54815
- style: {
54816
- width: "30px",
54817
- height: "25px",
54818
- borderRadius: "5px"
54819
- },
54820
- src: getStaticFileUrl(lang.image)
54821
- })), lang.name));
54822
- })));
54823
- };
54824
-
54825
- var TheHeader = function TheHeader(_ref) {
54826
- var onToggleModel = _ref.onToggleModel;
54827
- var dispatch = useDispatch();
54828
- var sidebarShow = useSelector(function (state) {
54829
- return state.common.sidebarShow;
54830
- });
54831
-
54832
- var _useTranslation = useTranslation(),
54833
- t = _useTranslation.t;
54834
-
54835
- var toggleSidebarMobile = function toggleSidebarMobile() {
54836
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54837
- dispatch(setSidebar(val));
54838
- };
54839
-
54840
- var isDistrict = window.location.host.includes("-district");
54841
- return React.createElement(CHeader, {
54842
- withSubheader: true,
54843
- className: "d-flex align-items-center justify-content-end"
54844
- }, React.createElement(CToggler, {
54845
- inHeader: true,
54846
- className: "ml-md-3 d-lg-none",
54847
- onClick: toggleSidebarMobile
54848
- }), React.createElement(CHeaderBrand, {
54849
- className: "mx-auto flex-grow-1 d-lg-none",
54850
- to: "/"
54851
- }, React.createElement("img", {
54852
- src: getStaticFileUrl(Images.LOGO_HEADER),
54853
- className: styles["header-logo"]
54854
- })), React.createElement(CHeaderNav, {
54855
- className: "pr-3"
54856
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
54857
- className: "mr-3",
54858
- style: {
54859
- color: '#000'
54860
- },
54861
- href: '/privacy-policy',
54862
- target: "blank"
54863
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
54864
- onToggleModel: onToggleModel
54865
- })));
54866
- };
54867
-
54868
- var ModelSelectRole = function ModelSelectRole(_ref) {
54869
- var _handleUserRole;
54870
-
54871
- var open = _ref.open,
54872
- onToggleModel = _ref.onToggleModel;
54873
- var dispatch = useDispatch();
54874
-
54875
- var _useTranslation = useTranslation(),
54876
- t = _useTranslation.t;
54877
-
54878
- var history = useHistory();
54879
- var pathname = window.location.pathname;
54880
- var user = useSelector(function (state) {
54881
- return state.common.user;
54882
- });
54883
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54884
-
54885
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54886
- dispatch(setLoading(true));
54887
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54888
- dispatch(setUser(_extends({}, user, {
54889
- roles: roleSelect
54890
- })));
54891
- localStorage.setItem("ROLES", roleSelect.toString());
54892
- onToggleModel();
54893
-
54894
- if (roles.includes("Parent")) {
54895
- history.push("/parent");
54896
- } else if (roles.includes("Admin")) {
54897
- history.push("/admin/home");
54898
- } else {
54899
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54900
- }
54901
- };
54902
-
54903
- return React.createElement(Modal, {
54904
- isOpen: open,
54905
- toggle: function toggle() {
54906
- return onToggleModel();
54907
- },
54908
- className: "" + styles["model-switch-roles"],
54909
- centered: true
54910
- }, React.createElement("p", {
54911
- className: "" + styles["title"]
54912
- }, 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) {
54913
- return React.createElement("p", {
54914
- key: r,
54915
- 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" : ""],
54916
- onClick: function onClick() {
54917
- return handleSelectUserRoles([r]);
54918
- }
54919
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54920
- })));
54921
- };
54922
-
54923
- var TheLayout = function TheLayout(_ref) {
54924
- var routes = _ref.routes,
54925
- navigation = _ref.navigation;
54926
- var history = useHistory();
54927
- var dispatch = useDispatch();
54928
- var user = useSelector(function (state) {
54929
- return state.common.user;
54930
- });
54931
- var language = useSelector(function (state) {
54932
- return state.common.language;
54933
- });
54934
-
54935
- var _useState = useState(false),
54936
- openModelSelectRole = _useState[0],
54937
- setOpenModelSelectRole = _useState[1];
54938
-
54939
- var _useTranslation = useTranslation(),
54940
- t = _useTranslation.t;
54941
-
54942
- var location = useLocation();
54943
- var isNotification = location.pathname.includes("notifications");
54944
- var isDistrict = window.location.host.includes("-district");
54945
-
54946
- var handleToggleModel = function handleToggleModel() {
54947
- setOpenModelSelectRole(!openModelSelectRole);
54948
- };
54949
-
54950
- var authRoutes = useMemo(function () {
54951
- return routes.filter(function (route) {
54952
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54953
- }).filter(function (route) {
54954
- return !!route.isDistrict === isDistrict;
54955
- });
54956
- }, [user, language]);
54957
- var authNavigations = useMemo(function () {
54958
- return navigation.map(function (item) {
54959
- var _item$_children, _item$_children2;
54960
-
54961
- return _extends({}, item, {
54962
- name: t(item.name),
54963
- _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) {
54964
- return _extends({}, x, {
54965
- name: t(x.name)
54966
- });
54967
- }) : undefined
54968
- });
54969
- }).filter(function (nav) {
54970
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54971
- }).filter(function (nav) {
54972
- return !!nav.isDistrict === isDistrict;
54973
- });
54974
- }, [user, language]);
54975
-
54976
- var getInformationSetting = function getInformationSetting() {
54977
- try {
54978
- var _temp2 = _catch(function () {
54979
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54980
- dispatch(setSandboxMode(res.data.isSandboxMode));
54981
- });
54982
- }, function (err) {
54983
- console.error(err);
54984
- });
54985
-
54986
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54987
- } catch (e) {
54988
- return Promise.reject(e);
54989
- }
54990
- };
54991
-
54992
- useEffect(function () {
54993
- checkAuthentication();
54994
- }, []);
54995
- useEffect(function () {
54996
- getInformationSetting();
54997
- }, [location.pathname]);
54998
-
54999
- var checkAuthentication = function checkAuthentication() {
55000
- try {
55001
- var _temp4 = _catch(function () {
55002
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
55003
- tokenStatus ? loadInfo() : resetAuth();
55004
- });
55005
- }, function () {
55006
- resetAuth();
55007
- });
55008
-
55009
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
55010
- } catch (e) {
55011
- return Promise.reject(e);
55012
- }
55013
- };
55014
-
55015
- var loadInfo = function loadInfo() {
55016
- try {
55017
- var _temp6 = _catch(function () {
55018
- return Promise.resolve(getInfo()).then(function (info) {
55019
- var _info$data, _info$data$roles;
55020
-
55021
- 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"))) {
55022
- resetAuth();
55023
- }
55024
-
55025
- dispatch(setUser(info.data));
55026
- });
55027
- }, function () {
55028
- resetAuth();
55029
- });
55030
-
55031
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
55032
- } catch (e) {
55033
- return Promise.reject(e);
55034
- }
55035
- };
55036
-
55037
- var resetAuth = function resetAuth() {
55038
- localStorage.removeItem(ACCESS_TOKEN);
55039
- sessionStorage.removeItem(ACCESS_TOKEN);
55040
- localStorage.removeItem("ROLES");
55041
- history.push("/");
55042
- };
55043
-
55044
- if (!user) {
55045
- return React.createElement(Loading, null);
55046
- }
55047
-
55048
- return React.createElement("div", {
55049
- className: "c-app c-default-layout"
55050
- }, !isNotification && React.createElement(TheSidebar, {
55051
- navigation: authNavigations
55052
- }), React.createElement("div", {
55053
- className: "c-wrapper"
55054
- }, !isNotification && React.createElement(TheHeader, {
55055
- onToggleModel: handleToggleModel
55056
- }), React.createElement("div", {
55057
- className: "c-body bg-white"
55058
- }, React.createElement(TheContent$1, {
55059
- routes: authRoutes
55060
- }))), React.createElement(ModelSelectRole, {
55061
- open: openModelSelectRole,
55062
- onToggleModel: handleToggleModel
55063
- }));
55064
- };
55065
-
55066
55017
  var amplitudeClient = amplitude;
55067
55018
 
55068
- 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, getAccessToken, 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 };
55019
+ 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 };
55069
55020
  //# sourceMappingURL=index.modern.js.map