mario-core 2.9.337-release → 2.9.338-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, useMemo, Suspense, memo, Fragment, forwardRef, useImperativeHandle } from 'react';
6
- import { Input, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Modal, Button, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, ModalHeader, ModalBody, ModalFooter, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
5
+ import React, { useCallback, useState, useEffect, useRef, Suspense, memo, Fragment, forwardRef, useImperativeHandle, useMemo } from 'react';
6
+ import { Input, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, Modal, ModalHeader, ModalBody, ModalFooter, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
7
7
  import { Link, useLocation, useHistory, Switch, Route, Prompt, useParams } from 'react-router-dom';
8
8
  import { useDispatch, useSelector } from 'react-redux';
9
9
  import { Formik } from 'formik';
@@ -16,7 +16,7 @@ import amplitude from 'amplitude-js';
16
16
  import moment from 'moment';
17
17
  import { LogLevel, PublicClientApplication } from '@azure/msal-browser';
18
18
  import { GiHamburgerMenu } from 'react-icons/gi';
19
- import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
19
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } from '@coreui/react';
20
20
  import { CgMenuRight } from 'react-icons/cg';
21
21
  import { RiLogoutBoxRLine } from 'react-icons/ri';
22
22
  import Pusher from 'pusher-js/with-encryption';
@@ -39809,212 +39809,6 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39809
39809
  })), t("log_out")))));
39810
39810
  };
39811
39811
 
39812
- var apiGetLanguage = function apiGetLanguage() {
39813
- return api.get(BASE_URL + "/api/language");
39814
- };
39815
-
39816
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
39817
- return api.put(BASE_URL + "/api/language?lang=" + lang);
39818
- };
39819
-
39820
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
39821
-
39822
- var useLanguages = function useLanguages() {
39823
- var dispatch = useDispatch();
39824
-
39825
- var _useTranslation = useTranslation(),
39826
- i18n = _useTranslation.i18n;
39827
-
39828
- var language = useSelector(function (state) {
39829
- return state.common.language;
39830
- });
39831
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
39832
-
39833
- var _useState = useState([]),
39834
- languageList = _useState[0],
39835
- setLanguageList = _useState[1];
39836
-
39837
- var _useState2 = useState(false),
39838
- dropdownOpen = _useState2[0],
39839
- setDropdownOpen = _useState2[1];
39840
-
39841
- var _useState3 = useState(defaultLanguage),
39842
- currentLang = _useState3[0],
39843
- setCurrentLang = _useState3[1];
39844
-
39845
- var toggle = function toggle() {
39846
- return setDropdownOpen(function (prevState) {
39847
- return !prevState;
39848
- });
39849
- };
39850
-
39851
- var changeLanguageApp = function changeLanguageApp(lang) {
39852
- try {
39853
- var _temp3 = function _temp3() {
39854
- dispatch(setLoading(false));
39855
- };
39856
-
39857
- dispatch(setLoading(true));
39858
-
39859
- var _temp4 = _catch(function () {
39860
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
39861
- i18n.changeLanguage(lang);
39862
- setCurrentLang(lang);
39863
- dispatch(setLanguage(lang));
39864
- });
39865
- }, function (err) {
39866
- var _err$response, _err$response$data;
39867
-
39868
- dispatch(setAlert({
39869
- type: "danger",
39870
- 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
39871
- }));
39872
- });
39873
-
39874
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
39875
- } catch (e) {
39876
- return Promise.reject(e);
39877
- }
39878
- };
39879
-
39880
- var getListLanguage = function getListLanguage() {
39881
- try {
39882
- var _temp6 = _catch(function () {
39883
- return Promise.resolve(apiGetLanguage()).then(function (res) {
39884
- setLanguageList(res.data);
39885
- });
39886
- }, function (err) {
39887
- var _err$response2, _err$response2$data;
39888
-
39889
- dispatch(setAlert({
39890
- type: "danger",
39891
- 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
39892
- }));
39893
- });
39894
-
39895
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39896
- } catch (e) {
39897
- return Promise.reject(e);
39898
- }
39899
- };
39900
-
39901
- useEffect(function () {
39902
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
39903
- getListLanguage();
39904
- }, []);
39905
- return {
39906
- languageList: languageList,
39907
- toggle: toggle,
39908
- dropdownOpen: dropdownOpen,
39909
- currentLang: currentLang,
39910
- changeLanguageApp: changeLanguageApp,
39911
- setCurrentLang: setCurrentLang
39912
- };
39913
- };
39914
-
39915
- var TheLanguageDropdown = function TheLanguageDropdown() {
39916
- var _useLanguages = useLanguages(),
39917
- languageList = _useLanguages.languageList,
39918
- toggle = _useLanguages.toggle,
39919
- dropdownOpen = _useLanguages.dropdownOpen,
39920
- currentLang = _useLanguages.currentLang,
39921
- changeLanguageApp = _useLanguages.changeLanguageApp;
39922
-
39923
- var currentLanguage = useMemo(function () {
39924
- var current = languageList.find(function (i) {
39925
- return i.code === currentLang;
39926
- });
39927
- if (!current) return null;
39928
- return React.createElement(React.Fragment, null, React.createElement("img", {
39929
- className: "mr-2 " + styles['dropdown-menu-flag'],
39930
- src: "" + getStaticFileUrl(current.image)
39931
- }), " ", current.name);
39932
- }, [currentLang, languageList]);
39933
- return React.createElement(Dropdown, {
39934
- isOpen: dropdownOpen,
39935
- toggle: toggle,
39936
- className: "" + styles["dropdown-menu"]
39937
- }, React.createElement(DropdownToggle, {
39938
- className: styles["header-avatar"] + " d-flex align-items-center"
39939
- }, React.createElement("span", {
39940
- style: {
39941
- color: "#000",
39942
- textTransform: "capitalize",
39943
- display: 'flex',
39944
- alignItems: 'center'
39945
- }
39946
- }, currentLanguage, React.createElement(BsChevronDown, {
39947
- className: "ml-2",
39948
- style: {
39949
- fontSize: '10px'
39950
- }
39951
- }))), React.createElement(DropdownMenu, {
39952
- className: styles["dropdown-content-language"]
39953
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
39954
- return React.createElement(DropdownItem, {
39955
- key: lang.code,
39956
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
39957
- onClick: function onClick() {
39958
- return changeLanguageApp(lang.code);
39959
- }
39960
- }, React.createElement("div", {
39961
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
39962
- }, React.createElement("span", {
39963
- className: "mr-2 d-flex hover-opacity"
39964
- }, React.createElement("img", {
39965
- style: {
39966
- width: "30px",
39967
- height: "25px",
39968
- borderRadius: "5px"
39969
- },
39970
- src: getStaticFileUrl(lang.image)
39971
- })), lang.name));
39972
- })));
39973
- };
39974
-
39975
- var TheHeader = function TheHeader(_ref) {
39976
- var onToggleModel = _ref.onToggleModel;
39977
- var dispatch = useDispatch();
39978
- var sidebarShow = useSelector(function (state) {
39979
- return state.common.sidebarShow;
39980
- });
39981
-
39982
- var _useTranslation = useTranslation(),
39983
- t = _useTranslation.t;
39984
-
39985
- var toggleSidebarMobile = function toggleSidebarMobile() {
39986
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
39987
- dispatch(setSidebar(val));
39988
- };
39989
-
39990
- var isDistrict = window.location.host.includes("-district");
39991
- return React.createElement(CHeader, {
39992
- withSubheader: true,
39993
- className: "d-flex align-items-center justify-content-end"
39994
- }, React.createElement(CToggler, {
39995
- inHeader: true,
39996
- className: "ml-md-3 d-lg-none",
39997
- onClick: toggleSidebarMobile
39998
- }), React.createElement(CHeaderBrand, {
39999
- className: "mx-auto flex-grow-1 d-lg-none",
40000
- to: "/"
40001
- }, React.createElement("img", {
40002
- src: getStaticFileUrl(Images.LOGO_HEADER),
40003
- className: styles["header-logo"]
40004
- })), React.createElement(CHeaderNav, {
40005
- className: "pr-3"
40006
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
40007
- className: "mr-3",
40008
- style: {
40009
- color: '#000'
40010
- },
40011
- href: '/privacy-policy',
40012
- target: "blank"
40013
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
40014
- onToggleModel: onToggleModel
40015
- })));
40016
- };
40017
-
40018
39812
  var TITLE$3 = "Not found";
40019
39813
 
40020
39814
  var NotFound = function NotFound() {
@@ -40072,258 +39866,6 @@ var TheContent = function TheContent(_ref) {
40072
39866
 
40073
39867
  var TheContent$1 = React.memo(TheContent);
40074
39868
 
40075
- var loadingStyle = {
40076
- minWidth: "100vw",
40077
- minHeight: "100vh",
40078
- position: "fixed",
40079
- top: 0,
40080
- left: 0,
40081
- zIndex: 999999999,
40082
- backgroundColor: "rgba(0, 0, 0, 0.4)",
40083
- display: "flex",
40084
- justifyContent: "center",
40085
- alignItems: "center"
40086
- };
40087
-
40088
- var Loading = function Loading() {
40089
- var isLoading = useSelector(function (state) {
40090
- return state.common.isLoading;
40091
- });
40092
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
40093
- return isLoading ? React.createElement("div", {
40094
- style: loadingStyle
40095
- }, React.createElement("div", {
40096
- className: "spinner-border text-secondary",
40097
- role: "status"
40098
- }, React.createElement("span", {
40099
- className: "sr-only"
40100
- }, "Loading..."))) : null;
40101
- };
40102
-
40103
- var firstCheckToken = function firstCheckToken() {
40104
- return Promise.resolve(_catch(function () {
40105
- var token = getAccessToken();
40106
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
40107
- return tokenStatus.data ? true : false;
40108
- }) : false;
40109
- }, function () {
40110
- return false;
40111
- }));
40112
- };
40113
-
40114
- var canAccess = function canAccess(userRoles, componentRoles) {
40115
- if (!Array.isArray(userRoles)) {
40116
- return false;
40117
- }
40118
-
40119
- if (Array.isArray(componentRoles)) {
40120
- var intersects = userRoles.filter(function (i) {
40121
- return componentRoles.includes(i);
40122
- });
40123
- return intersects.length > 0;
40124
- }
40125
-
40126
- return true;
40127
- };
40128
-
40129
- var ModelSelectRole = function ModelSelectRole(_ref) {
40130
- var _handleUserRole;
40131
-
40132
- var open = _ref.open,
40133
- onToggleModel = _ref.onToggleModel;
40134
- var dispatch = useDispatch();
40135
-
40136
- var _useTranslation = useTranslation(),
40137
- t = _useTranslation.t;
40138
-
40139
- var history = useHistory();
40140
- var pathname = window.location.pathname;
40141
- var user = useSelector(function (state) {
40142
- return state.common.user;
40143
- });
40144
- var roles = user === null || user === void 0 ? void 0 : user.roles;
40145
-
40146
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
40147
- dispatch(setLoading(true));
40148
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
40149
- dispatch(setUser(_extends({}, user, {
40150
- roles: roleSelect
40151
- })));
40152
- localStorage.setItem("ROLES", roleSelect.toString());
40153
- onToggleModel();
40154
-
40155
- if (roles.includes("Parent")) {
40156
- history.push("/parent");
40157
- } else if (roles.includes("Admin")) {
40158
- history.push("/admin/home");
40159
- } else {
40160
- pathname !== "/home" ? history.push("/home") : window.location.reload();
40161
- }
40162
- };
40163
-
40164
- return React.createElement(Modal, {
40165
- isOpen: open,
40166
- toggle: function toggle() {
40167
- return onToggleModel();
40168
- },
40169
- className: "" + styles["model-switch-roles"],
40170
- centered: true
40171
- }, React.createElement("p", {
40172
- className: "" + styles["title"]
40173
- }, 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) {
40174
- return React.createElement("p", {
40175
- key: r,
40176
- 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" : ""],
40177
- onClick: function onClick() {
40178
- return handleSelectUserRoles([r]);
40179
- }
40180
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
40181
- })));
40182
- };
40183
-
40184
- var TheLayout = function TheLayout(_ref) {
40185
- var routes = _ref.routes,
40186
- navigation = _ref.navigation;
40187
- var history = useHistory();
40188
- var dispatch = useDispatch();
40189
- var user = useSelector(function (state) {
40190
- return state.common.user;
40191
- });
40192
- var language = useSelector(function (state) {
40193
- return state.common.language;
40194
- });
40195
-
40196
- var _useState = useState(false),
40197
- openModelSelectRole = _useState[0],
40198
- setOpenModelSelectRole = _useState[1];
40199
-
40200
- var _useTranslation = useTranslation(),
40201
- t = _useTranslation.t;
40202
-
40203
- var location = useLocation();
40204
- var isNotification = location.pathname.includes("notifications");
40205
- var isDistrict = window.location.host.includes("-district");
40206
-
40207
- var handleToggleModel = function handleToggleModel() {
40208
- setOpenModelSelectRole(!openModelSelectRole);
40209
- };
40210
-
40211
- var authRoutes = useMemo(function () {
40212
- return routes.filter(function (route) {
40213
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
40214
- }).filter(function (route) {
40215
- return !!route.isDistrict === isDistrict;
40216
- });
40217
- }, [user, language]);
40218
- var authNavigations = useMemo(function () {
40219
- return navigation.map(function (item) {
40220
- var _item$_children, _item$_children2;
40221
-
40222
- return _extends({}, item, {
40223
- name: t(item.name),
40224
- _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) {
40225
- return _extends({}, x, {
40226
- name: t(x.name)
40227
- });
40228
- }) : undefined
40229
- });
40230
- }).filter(function (nav) {
40231
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
40232
- }).filter(function (nav) {
40233
- return !!nav.isDistrict === isDistrict;
40234
- });
40235
- }, [user, language]);
40236
-
40237
- var getInformationSetting = function getInformationSetting() {
40238
- try {
40239
- var _temp2 = _catch(function () {
40240
- return Promise.resolve(getSchoolSettings()).then(function (res) {
40241
- dispatch(setSandboxMode(res.data.isSandboxMode));
40242
- });
40243
- }, function (err) {
40244
- console.error(err);
40245
- });
40246
-
40247
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
40248
- } catch (e) {
40249
- return Promise.reject(e);
40250
- }
40251
- };
40252
-
40253
- useEffect(function () {
40254
- checkAuthentication();
40255
- }, []);
40256
- useEffect(function () {
40257
- getInformationSetting();
40258
- }, [location.pathname]);
40259
-
40260
- var checkAuthentication = function checkAuthentication() {
40261
- try {
40262
- var _temp4 = _catch(function () {
40263
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
40264
- tokenStatus ? loadInfo() : resetAuth();
40265
- });
40266
- }, function () {
40267
- resetAuth();
40268
- });
40269
-
40270
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
40271
- } catch (e) {
40272
- return Promise.reject(e);
40273
- }
40274
- };
40275
-
40276
- var loadInfo = function loadInfo() {
40277
- try {
40278
- var _temp6 = _catch(function () {
40279
- return Promise.resolve(getInfo()).then(function (info) {
40280
- var _info$data, _info$data$roles;
40281
-
40282
- 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"))) {
40283
- resetAuth();
40284
- }
40285
-
40286
- dispatch(setUser(info.data));
40287
- });
40288
- }, function () {
40289
- resetAuth();
40290
- });
40291
-
40292
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
40293
- } catch (e) {
40294
- return Promise.reject(e);
40295
- }
40296
- };
40297
-
40298
- var resetAuth = function resetAuth() {
40299
- localStorage.removeItem(ACCESS_TOKEN);
40300
- sessionStorage.removeItem(ACCESS_TOKEN);
40301
- localStorage.removeItem("ROLES");
40302
- history.push("/");
40303
- };
40304
-
40305
- if (!user) {
40306
- return React.createElement(Loading, null);
40307
- }
40308
-
40309
- return React.createElement("div", {
40310
- className: "c-app c-default-layout"
40311
- }, !isNotification && React.createElement(TheSidebar, {
40312
- navigation: authNavigations
40313
- }), React.createElement("div", {
40314
- className: "c-wrapper"
40315
- }, !isNotification && React.createElement(TheHeader, {
40316
- onToggleModel: handleToggleModel
40317
- }), React.createElement("div", {
40318
- className: "c-body bg-white"
40319
- }, React.createElement(TheContent$1, {
40320
- routes: authRoutes
40321
- }))), React.createElement(ModelSelectRole, {
40322
- open: openModelSelectRole,
40323
- onToggleModel: handleToggleModel
40324
- }));
40325
- };
40326
-
40327
39869
  var buttonTextStyle = {
40328
39870
  fontWeight: 500
40329
39871
  };
@@ -46136,6 +45678,34 @@ var UserDetail = function UserDetail() {
46136
45678
  });
46137
45679
  };
46138
45680
 
45681
+ var loadingStyle = {
45682
+ minWidth: "100vw",
45683
+ minHeight: "100vh",
45684
+ position: "fixed",
45685
+ top: 0,
45686
+ left: 0,
45687
+ zIndex: 999999999,
45688
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
45689
+ display: "flex",
45690
+ justifyContent: "center",
45691
+ alignItems: "center"
45692
+ };
45693
+
45694
+ var Loading = function Loading() {
45695
+ var isLoading = useSelector(function (state) {
45696
+ return state.common.isLoading;
45697
+ });
45698
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45699
+ return isLoading ? React.createElement("div", {
45700
+ style: loadingStyle
45701
+ }, React.createElement("div", {
45702
+ className: "spinner-border text-secondary",
45703
+ role: "status"
45704
+ }, React.createElement("span", {
45705
+ className: "sr-only"
45706
+ }, "Loading..."))) : null;
45707
+ };
45708
+
46139
45709
  var ScrollToTop = function ScrollToTop() {
46140
45710
  var _useLocation = useLocation(),
46141
45711
  pathname = _useLocation.pathname;
@@ -49155,6 +48725,32 @@ var store = configureStore({
49155
48725
  }
49156
48726
  });
49157
48727
 
48728
+ var firstCheckToken = function firstCheckToken() {
48729
+ return Promise.resolve(_catch(function () {
48730
+ var token = getAccessToken();
48731
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48732
+ return tokenStatus.data ? true : false;
48733
+ }) : false;
48734
+ }, function () {
48735
+ return false;
48736
+ }));
48737
+ };
48738
+
48739
+ var canAccess = function canAccess(userRoles, componentRoles) {
48740
+ if (!Array.isArray(userRoles)) {
48741
+ return false;
48742
+ }
48743
+
48744
+ if (Array.isArray(componentRoles)) {
48745
+ var intersects = userRoles.filter(function (i) {
48746
+ return componentRoles.includes(i);
48747
+ });
48748
+ return intersects.length > 0;
48749
+ }
48750
+
48751
+ return true;
48752
+ };
48753
+
49158
48754
  var isInViewport = function isInViewport(el) {
49159
48755
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
49160
48756
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -49190,5 +48786,411 @@ var generateRandomString = (function () {
49190
48786
 
49191
48787
  var amplitudeClient = amplitude.getInstance();
49192
48788
 
49193
- export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CategorySelector, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, DEFAULT_LANGUAGE_CODE, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, IS_USER_SESSION_BROWSER, Images, LANGUAGES, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationLogoutModal, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SANDBOX_NOTIFICATION, SUPPORTED_LANGUAGES_CODE, SandboxAlert, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserContainer, UserDetail, UserList, addTab, amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getCookieValue, getFileUrl, getInfo, getStaticFileUrl, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setOpenModelCongratulation, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSandboxMode, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, setWeeklyQuestList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
48789
+ var apiGetLanguage = function apiGetLanguage() {
48790
+ return api.get(BASE_URL + "/api/language");
48791
+ };
48792
+
48793
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48794
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
48795
+ };
48796
+
48797
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48798
+
48799
+ var useLanguages = function useLanguages() {
48800
+ var dispatch = useDispatch();
48801
+
48802
+ var _useTranslation = useTranslation(),
48803
+ i18n = _useTranslation.i18n;
48804
+
48805
+ var language = useSelector(function (state) {
48806
+ return state.common.language;
48807
+ });
48808
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48809
+
48810
+ var _useState = useState([]),
48811
+ languageList = _useState[0],
48812
+ setLanguageList = _useState[1];
48813
+
48814
+ var _useState2 = useState(false),
48815
+ dropdownOpen = _useState2[0],
48816
+ setDropdownOpen = _useState2[1];
48817
+
48818
+ var _useState3 = useState(defaultLanguage),
48819
+ currentLang = _useState3[0],
48820
+ setCurrentLang = _useState3[1];
48821
+
48822
+ var toggle = function toggle() {
48823
+ return setDropdownOpen(function (prevState) {
48824
+ return !prevState;
48825
+ });
48826
+ };
48827
+
48828
+ var changeLanguageApp = function changeLanguageApp(lang) {
48829
+ try {
48830
+ var _temp3 = function _temp3() {
48831
+ dispatch(setLoading(false));
48832
+ };
48833
+
48834
+ dispatch(setLoading(true));
48835
+
48836
+ var _temp4 = _catch(function () {
48837
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48838
+ i18n.changeLanguage(lang);
48839
+ setCurrentLang(lang);
48840
+ dispatch(setLanguage(lang));
48841
+ });
48842
+ }, function (err) {
48843
+ var _err$response, _err$response$data;
48844
+
48845
+ dispatch(setAlert({
48846
+ type: "danger",
48847
+ 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
48848
+ }));
48849
+ });
48850
+
48851
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48852
+ } catch (e) {
48853
+ return Promise.reject(e);
48854
+ }
48855
+ };
48856
+
48857
+ var getListLanguage = function getListLanguage() {
48858
+ try {
48859
+ var _temp6 = _catch(function () {
48860
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
48861
+ setLanguageList(res.data);
48862
+ });
48863
+ }, function (err) {
48864
+ var _err$response2, _err$response2$data;
48865
+
48866
+ dispatch(setAlert({
48867
+ type: "danger",
48868
+ 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
48869
+ }));
48870
+ });
48871
+
48872
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48873
+ } catch (e) {
48874
+ return Promise.reject(e);
48875
+ }
48876
+ };
48877
+
48878
+ useEffect(function () {
48879
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
48880
+ getListLanguage();
48881
+ }, []);
48882
+ return {
48883
+ languageList: languageList,
48884
+ toggle: toggle,
48885
+ dropdownOpen: dropdownOpen,
48886
+ currentLang: currentLang,
48887
+ changeLanguageApp: changeLanguageApp,
48888
+ setCurrentLang: setCurrentLang
48889
+ };
48890
+ };
48891
+
48892
+ var TheLanguageDropdown = function TheLanguageDropdown() {
48893
+ var _useLanguages = useLanguages(),
48894
+ languageList = _useLanguages.languageList,
48895
+ toggle = _useLanguages.toggle,
48896
+ dropdownOpen = _useLanguages.dropdownOpen,
48897
+ currentLang = _useLanguages.currentLang,
48898
+ changeLanguageApp = _useLanguages.changeLanguageApp;
48899
+
48900
+ var currentLanguage = useMemo(function () {
48901
+ var current = languageList.find(function (i) {
48902
+ return i.code === currentLang;
48903
+ });
48904
+ if (!current) return null;
48905
+ return React.createElement(React.Fragment, null, React.createElement("img", {
48906
+ className: "mr-2 " + styles['dropdown-menu-flag'],
48907
+ src: "" + getStaticFileUrl(current.image)
48908
+ }), " ", current.name);
48909
+ }, [currentLang, languageList]);
48910
+ return React.createElement(Dropdown, {
48911
+ isOpen: dropdownOpen,
48912
+ toggle: toggle,
48913
+ className: "" + styles["dropdown-menu"]
48914
+ }, React.createElement(DropdownToggle, {
48915
+ className: styles["header-avatar"] + " d-flex align-items-center"
48916
+ }, React.createElement("span", {
48917
+ style: {
48918
+ color: "#000",
48919
+ textTransform: "capitalize",
48920
+ display: 'flex',
48921
+ alignItems: 'center'
48922
+ }
48923
+ }, currentLanguage, React.createElement(BsChevronDown, {
48924
+ className: "ml-2",
48925
+ style: {
48926
+ fontSize: '10px'
48927
+ }
48928
+ }))), React.createElement(DropdownMenu, {
48929
+ className: styles["dropdown-content-language"]
48930
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48931
+ return React.createElement(DropdownItem, {
48932
+ key: lang.code,
48933
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48934
+ onClick: function onClick() {
48935
+ return changeLanguageApp(lang.code);
48936
+ }
48937
+ }, React.createElement("div", {
48938
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48939
+ }, React.createElement("span", {
48940
+ className: "mr-2 d-flex hover-opacity"
48941
+ }, React.createElement("img", {
48942
+ style: {
48943
+ width: "30px",
48944
+ height: "25px",
48945
+ borderRadius: "5px"
48946
+ },
48947
+ src: getStaticFileUrl(lang.image)
48948
+ })), lang.name));
48949
+ })));
48950
+ };
48951
+
48952
+ var TheHeader = function TheHeader(_ref) {
48953
+ var onToggleModel = _ref.onToggleModel;
48954
+ var dispatch = useDispatch();
48955
+ var sidebarShow = useSelector(function (state) {
48956
+ return state.common.sidebarShow;
48957
+ });
48958
+
48959
+ var _useTranslation = useTranslation(),
48960
+ t = _useTranslation.t;
48961
+
48962
+ var toggleSidebarMobile = function toggleSidebarMobile() {
48963
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48964
+ dispatch(setSidebar(val));
48965
+ };
48966
+
48967
+ var isDistrict = window.location.host.includes("-district");
48968
+ return React.createElement(CHeader, {
48969
+ withSubheader: true,
48970
+ className: "d-flex align-items-center justify-content-end"
48971
+ }, React.createElement(CToggler, {
48972
+ inHeader: true,
48973
+ className: "ml-md-3 d-lg-none",
48974
+ onClick: toggleSidebarMobile
48975
+ }), React.createElement(CHeaderBrand, {
48976
+ className: "mx-auto flex-grow-1 d-lg-none",
48977
+ to: "/"
48978
+ }, React.createElement("img", {
48979
+ src: getStaticFileUrl(Images.LOGO_HEADER),
48980
+ className: styles["header-logo"]
48981
+ })), React.createElement(CHeaderNav, {
48982
+ className: "pr-3"
48983
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
48984
+ className: "mr-3",
48985
+ style: {
48986
+ color: '#000'
48987
+ },
48988
+ href: '/privacy-policy',
48989
+ target: "blank"
48990
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
48991
+ onToggleModel: onToggleModel
48992
+ })));
48993
+ };
48994
+
48995
+ var ModelSelectRole = function ModelSelectRole(_ref) {
48996
+ var _handleUserRole;
48997
+
48998
+ var open = _ref.open,
48999
+ onToggleModel = _ref.onToggleModel;
49000
+ var dispatch = useDispatch();
49001
+
49002
+ var _useTranslation = useTranslation(),
49003
+ t = _useTranslation.t;
49004
+
49005
+ var history = useHistory();
49006
+ var pathname = window.location.pathname;
49007
+ var user = useSelector(function (state) {
49008
+ return state.common.user;
49009
+ });
49010
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
49011
+
49012
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
49013
+ dispatch(setLoading(true));
49014
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
49015
+ dispatch(setUser(_extends({}, user, {
49016
+ roles: roleSelect
49017
+ })));
49018
+ localStorage.setItem("ROLES", roleSelect.toString());
49019
+ onToggleModel();
49020
+
49021
+ if (roles.includes("Parent")) {
49022
+ history.push("/parent");
49023
+ } else if (roles.includes("Admin")) {
49024
+ history.push("/admin/home");
49025
+ } else {
49026
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
49027
+ }
49028
+ };
49029
+
49030
+ return React.createElement(Modal, {
49031
+ isOpen: open,
49032
+ toggle: function toggle() {
49033
+ return onToggleModel();
49034
+ },
49035
+ className: "" + styles["model-switch-roles"],
49036
+ centered: true
49037
+ }, React.createElement("p", {
49038
+ className: "" + styles["title"]
49039
+ }, 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) {
49040
+ return React.createElement("p", {
49041
+ key: r,
49042
+ 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" : ""],
49043
+ onClick: function onClick() {
49044
+ return handleSelectUserRoles([r]);
49045
+ }
49046
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
49047
+ })));
49048
+ };
49049
+
49050
+ var TheLayout = function TheLayout(_ref) {
49051
+ var routes = _ref.routes,
49052
+ navigation = _ref.navigation;
49053
+ var history = useHistory();
49054
+ var dispatch = useDispatch();
49055
+ var user = useSelector(function (state) {
49056
+ return state.common.user;
49057
+ });
49058
+ var language = useSelector(function (state) {
49059
+ return state.common.language;
49060
+ });
49061
+
49062
+ var _useState = useState(false),
49063
+ openModelSelectRole = _useState[0],
49064
+ setOpenModelSelectRole = _useState[1];
49065
+
49066
+ var _useTranslation = useTranslation(),
49067
+ t = _useTranslation.t;
49068
+
49069
+ var location = useLocation();
49070
+ var isNotification = location.pathname.includes("notifications");
49071
+ var isDistrict = window.location.host.includes("-district");
49072
+
49073
+ var handleToggleModel = function handleToggleModel() {
49074
+ setOpenModelSelectRole(!openModelSelectRole);
49075
+ };
49076
+
49077
+ var authRoutes = useMemo(function () {
49078
+ return routes.filter(function (route) {
49079
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
49080
+ }).filter(function (route) {
49081
+ return !!route.isDistrict === isDistrict;
49082
+ });
49083
+ }, [user, language]);
49084
+ var authNavigations = useMemo(function () {
49085
+ return navigation.map(function (item) {
49086
+ var _item$_children, _item$_children2;
49087
+
49088
+ return _extends({}, item, {
49089
+ name: t(item.name),
49090
+ _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) {
49091
+ return _extends({}, x, {
49092
+ name: t(x.name)
49093
+ });
49094
+ }) : undefined
49095
+ });
49096
+ }).filter(function (nav) {
49097
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
49098
+ }).filter(function (nav) {
49099
+ return !!nav.isDistrict === isDistrict;
49100
+ });
49101
+ }, [user, language]);
49102
+
49103
+ var getInformationSetting = function getInformationSetting() {
49104
+ try {
49105
+ var _temp2 = _catch(function () {
49106
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
49107
+ dispatch(setSandboxMode(res.data.isSandboxMode));
49108
+ });
49109
+ }, function (err) {
49110
+ console.error(err);
49111
+ });
49112
+
49113
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
49114
+ } catch (e) {
49115
+ return Promise.reject(e);
49116
+ }
49117
+ };
49118
+
49119
+ useEffect(function () {
49120
+ checkAuthentication();
49121
+ }, []);
49122
+ useEffect(function () {
49123
+ getInformationSetting();
49124
+ }, [location.pathname]);
49125
+
49126
+ var checkAuthentication = function checkAuthentication() {
49127
+ try {
49128
+ var _temp4 = _catch(function () {
49129
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
49130
+ tokenStatus ? loadInfo() : resetAuth();
49131
+ });
49132
+ }, function () {
49133
+ resetAuth();
49134
+ });
49135
+
49136
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
49137
+ } catch (e) {
49138
+ return Promise.reject(e);
49139
+ }
49140
+ };
49141
+
49142
+ var loadInfo = function loadInfo() {
49143
+ try {
49144
+ var _temp6 = _catch(function () {
49145
+ return Promise.resolve(getInfo()).then(function (info) {
49146
+ var _info$data, _info$data$roles;
49147
+
49148
+ 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"))) {
49149
+ resetAuth();
49150
+ }
49151
+
49152
+ dispatch(setUser(info.data));
49153
+ });
49154
+ }, function () {
49155
+ resetAuth();
49156
+ });
49157
+
49158
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
49159
+ } catch (e) {
49160
+ return Promise.reject(e);
49161
+ }
49162
+ };
49163
+
49164
+ var resetAuth = function resetAuth() {
49165
+ localStorage.removeItem(ACCESS_TOKEN);
49166
+ sessionStorage.removeItem(ACCESS_TOKEN);
49167
+ localStorage.removeItem("ROLES");
49168
+ history.push("/");
49169
+ };
49170
+
49171
+ if (!user) {
49172
+ return React.createElement(Loading, null);
49173
+ }
49174
+
49175
+ return React.createElement("div", {
49176
+ className: "c-app c-default-layout"
49177
+ }, !isNotification && React.createElement(TheSidebar, {
49178
+ navigation: authNavigations
49179
+ }), React.createElement("div", {
49180
+ className: "c-wrapper"
49181
+ }, !isNotification && React.createElement(TheHeader, {
49182
+ onToggleModel: handleToggleModel
49183
+ }), React.createElement("div", {
49184
+ className: "c-body bg-white"
49185
+ }, React.createElement(TheContent$1, {
49186
+ routes: authRoutes
49187
+ }))), React.createElement(ModelSelectRole, {
49188
+ open: openModelSelectRole,
49189
+ onToggleModel: handleToggleModel
49190
+ }));
49191
+ };
49192
+
49193
+ var amplitudeClient$1 = amplitude.getInstance();
49194
+
49195
+ export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CategorySelector, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, DEFAULT_LANGUAGE_CODE, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, IS_USER_SESSION_BROWSER, Images, LANGUAGES, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationLogoutModal, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SANDBOX_NOTIFICATION, SUPPORTED_LANGUAGES_CODE, SandboxAlert, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserContainer, UserDetail, UserList, addTab, amplitudeClient$1 as amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getCookieValue, getFileUrl, getInfo, getStaticFileUrl, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setOpenModelCongratulation, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSandboxMode, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, setWeeklyQuestList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
49194
49196
  //# sourceMappingURL=index.modern.js.map