mario-core 2.9.416-release → 2.9.417-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.
package/dist/index.js CHANGED
@@ -41315,14 +41315,7 @@ var BlockCreatePassword = function BlockCreatePassword() {
41315
41315
  className: "" + styles["img-login-rectangle"]
41316
41316
  }), React__default.createElement("p", {
41317
41317
  className: "" + styles["title-login"]
41318
- }, "You cannot regenerate the password")))), React__default.createElement(reactstrap.Col, {
41319
- lg: 4,
41320
- md: 4,
41321
- className: "" + styles["img-box"]
41322
- }, React__default.createElement("img", {
41323
- src: "/images/img-login.png",
41324
- className: "" + styles["img-login"]
41325
- })));
41318
+ }, "You cannot regenerate the password")))));
41326
41319
  });
41327
41320
  };
41328
41321
 
@@ -41887,212 +41880,6 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
41887
41880
  })), t("log_out")))));
41888
41881
  };
41889
41882
 
41890
- var apiGetLanguage = function apiGetLanguage() {
41891
- return api.get(BASE_URL + "/api/language");
41892
- };
41893
-
41894
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
41895
- return api.put(BASE_URL + "/api/language?lang=" + lang);
41896
- };
41897
-
41898
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
41899
-
41900
- var useLanguages = function useLanguages() {
41901
- var dispatch = reactRedux.useDispatch();
41902
-
41903
- var _useTranslation = reactI18next.useTranslation(),
41904
- i18n = _useTranslation.i18n;
41905
-
41906
- var language = reactRedux.useSelector(function (state) {
41907
- return state.common.language;
41908
- });
41909
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
41910
-
41911
- var _useState = React.useState([]),
41912
- languageList = _useState[0],
41913
- setLanguageList = _useState[1];
41914
-
41915
- var _useState2 = React.useState(false),
41916
- dropdownOpen = _useState2[0],
41917
- setDropdownOpen = _useState2[1];
41918
-
41919
- var _useState3 = React.useState(defaultLanguage),
41920
- currentLang = _useState3[0],
41921
- setCurrentLang = _useState3[1];
41922
-
41923
- var toggle = function toggle() {
41924
- return setDropdownOpen(function (prevState) {
41925
- return !prevState;
41926
- });
41927
- };
41928
-
41929
- var changeLanguageApp = function changeLanguageApp(lang) {
41930
- try {
41931
- var _temp3 = function _temp3() {
41932
- dispatch(setLoading(false));
41933
- };
41934
-
41935
- dispatch(setLoading(true));
41936
-
41937
- var _temp4 = _catch(function () {
41938
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
41939
- i18n.changeLanguage(lang);
41940
- setCurrentLang(lang);
41941
- dispatch(setLanguage(lang));
41942
- });
41943
- }, function (err) {
41944
- var _err$response, _err$response$data;
41945
-
41946
- dispatch(setAlert({
41947
- type: "danger",
41948
- 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
41949
- }));
41950
- });
41951
-
41952
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
41953
- } catch (e) {
41954
- return Promise.reject(e);
41955
- }
41956
- };
41957
-
41958
- var getListLanguage = function getListLanguage() {
41959
- try {
41960
- var _temp6 = _catch(function () {
41961
- return Promise.resolve(apiGetLanguage()).then(function (res) {
41962
- setLanguageList(res.data);
41963
- });
41964
- }, function (err) {
41965
- var _err$response2, _err$response2$data;
41966
-
41967
- dispatch(setAlert({
41968
- type: "danger",
41969
- 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
41970
- }));
41971
- });
41972
-
41973
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
41974
- } catch (e) {
41975
- return Promise.reject(e);
41976
- }
41977
- };
41978
-
41979
- React.useEffect(function () {
41980
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
41981
- getListLanguage();
41982
- }, []);
41983
- return {
41984
- languageList: languageList,
41985
- toggle: toggle,
41986
- dropdownOpen: dropdownOpen,
41987
- currentLang: currentLang,
41988
- changeLanguageApp: changeLanguageApp,
41989
- setCurrentLang: setCurrentLang
41990
- };
41991
- };
41992
-
41993
- var TheLanguageDropdown = function TheLanguageDropdown() {
41994
- var _useLanguages = useLanguages(),
41995
- languageList = _useLanguages.languageList,
41996
- toggle = _useLanguages.toggle,
41997
- dropdownOpen = _useLanguages.dropdownOpen,
41998
- currentLang = _useLanguages.currentLang,
41999
- changeLanguageApp = _useLanguages.changeLanguageApp;
42000
-
42001
- var currentLanguage = React.useMemo(function () {
42002
- var current = languageList.find(function (i) {
42003
- return i.code === currentLang;
42004
- });
42005
- if (!current) return null;
42006
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
42007
- className: "mr-2 " + styles['dropdown-menu-flag'],
42008
- src: "" + getStaticFileUrl(current.image)
42009
- }), " ", current.name);
42010
- }, [currentLang, languageList]);
42011
- return React__default.createElement(reactstrap.Dropdown, {
42012
- isOpen: dropdownOpen,
42013
- toggle: toggle,
42014
- className: "" + styles["dropdown-menu"]
42015
- }, React__default.createElement(reactstrap.DropdownToggle, {
42016
- className: styles["header-avatar"] + " d-flex align-items-center"
42017
- }, React__default.createElement("span", {
42018
- style: {
42019
- color: "#000",
42020
- textTransform: "capitalize",
42021
- display: 'flex',
42022
- alignItems: 'center'
42023
- }
42024
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
42025
- className: "ml-2",
42026
- style: {
42027
- fontSize: '10px'
42028
- }
42029
- }))), React__default.createElement(reactstrap.DropdownMenu, {
42030
- className: styles["dropdown-content-language"]
42031
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42032
- return React__default.createElement(reactstrap.DropdownItem, {
42033
- key: lang.code,
42034
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42035
- onClick: function onClick() {
42036
- return changeLanguageApp(lang.code);
42037
- }
42038
- }, React__default.createElement("div", {
42039
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42040
- }, React__default.createElement("span", {
42041
- className: "mr-2 d-flex hover-opacity"
42042
- }, React__default.createElement("img", {
42043
- style: {
42044
- width: "30px",
42045
- height: "25px",
42046
- borderRadius: "5px"
42047
- },
42048
- src: getStaticFileUrl(lang.image)
42049
- })), lang.name));
42050
- })));
42051
- };
42052
-
42053
- var TheHeader = function TheHeader(_ref) {
42054
- var onToggleModel = _ref.onToggleModel;
42055
- var dispatch = reactRedux.useDispatch();
42056
- var sidebarShow = reactRedux.useSelector(function (state) {
42057
- return state.common.sidebarShow;
42058
- });
42059
-
42060
- var _useTranslation = reactI18next.useTranslation(),
42061
- t = _useTranslation.t;
42062
-
42063
- var toggleSidebarMobile = function toggleSidebarMobile() {
42064
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42065
- dispatch(setSidebar(val));
42066
- };
42067
-
42068
- var isDistrict = window.location.host.includes("-district");
42069
- return React__default.createElement(react.CHeader, {
42070
- withSubheader: true,
42071
- className: "d-flex align-items-center justify-content-end"
42072
- }, React__default.createElement(react.CToggler, {
42073
- inHeader: true,
42074
- className: "ml-md-3 d-lg-none",
42075
- onClick: toggleSidebarMobile
42076
- }), React__default.createElement(react.CHeaderBrand, {
42077
- className: "mx-auto flex-grow-1 d-lg-none",
42078
- to: "/"
42079
- }, React__default.createElement("img", {
42080
- src: getStaticFileUrl(Images.LOGO_HEADER),
42081
- className: styles["header-logo"]
42082
- })), React__default.createElement(react.CHeaderNav, {
42083
- className: "pr-3"
42084
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
42085
- className: "mr-3",
42086
- style: {
42087
- color: '#000'
42088
- },
42089
- href: '/privacy-policy',
42090
- target: "blank"
42091
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
42092
- onToggleModel: onToggleModel
42093
- })));
42094
- };
42095
-
42096
41883
  var TITLE$3 = "Not found";
42097
41884
 
42098
41885
  var NotFound = function NotFound() {
@@ -42150,277 +41937,25 @@ var TheContent = function TheContent(_ref) {
42150
41937
 
42151
41938
  var TheContent$1 = React__default.memo(TheContent);
42152
41939
 
42153
- var loadingStyle = {
42154
- minWidth: "100vw",
42155
- minHeight: "100vh",
42156
- position: "fixed",
42157
- top: 0,
42158
- left: 0,
42159
- zIndex: 999999999,
42160
- backgroundColor: "rgba(0, 0, 0, 0.4)",
42161
- display: "flex",
42162
- justifyContent: "center",
42163
- alignItems: "center"
41940
+ var buttonTextStyle = {
41941
+ fontWeight: 500
41942
+ };
41943
+ var buttonStyle = {
41944
+ height: 38
42164
41945
  };
42165
41946
 
42166
- var Loading = function Loading() {
42167
- var isLoading = reactRedux.useSelector(function (state) {
42168
- return state.common.isLoading;
42169
- });
42170
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42171
- return isLoading ? React__default.createElement("div", {
42172
- style: loadingStyle
42173
- }, React__default.createElement("div", {
42174
- className: "spinner-border text-secondary",
42175
- role: "status"
42176
- }, React__default.createElement("span", {
42177
- className: "sr-only"
42178
- }, "Loading..."))) : null;
42179
- };
42180
-
42181
- var firstCheckToken = function firstCheckToken() {
42182
- return Promise.resolve(_catch(function () {
42183
- var token = getAccessToken();
42184
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42185
- return tokenStatus.data ? true : false;
42186
- }) : false;
42187
- }, function () {
42188
- return false;
42189
- }));
42190
- };
42191
-
42192
- var canAccess = function canAccess(userRoles, componentRoles) {
42193
- if (!Array.isArray(userRoles)) {
42194
- return false;
42195
- }
42196
-
42197
- if (Array.isArray(componentRoles)) {
42198
- var intersects = userRoles.filter(function (i) {
42199
- return componentRoles.includes(i);
42200
- });
42201
- return intersects.length > 0;
42202
- }
42203
-
42204
- return true;
42205
- };
42206
-
42207
- var ModelSelectRole = function ModelSelectRole(_ref) {
42208
- var _handleUserRole;
42209
-
42210
- var open = _ref.open,
42211
- onToggleModel = _ref.onToggleModel;
42212
- var dispatch = reactRedux.useDispatch();
42213
-
42214
- var _useTranslation = reactI18next.useTranslation(),
42215
- t = _useTranslation.t;
42216
-
42217
- var history = reactRouterDom.useHistory();
42218
- var pathname = window.location.pathname;
42219
- var user = reactRedux.useSelector(function (state) {
42220
- return state.common.user;
42221
- });
42222
- var roles = user === null || user === void 0 ? void 0 : user.roles;
42223
-
42224
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42225
- dispatch(setLoading(true));
42226
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42227
- dispatch(setUser(_extends({}, user, {
42228
- roles: roleSelect
42229
- })));
42230
- localStorage.setItem("ROLES", roleSelect.toString());
42231
- onToggleModel();
42232
-
42233
- if (roles.includes("Parent")) {
42234
- history.push("/parent");
42235
- } else if (roles.includes("Admin")) {
42236
- history.push("/admin/home");
42237
- } else {
42238
- pathname !== "/home" ? history.push("/home") : window.location.reload();
42239
- }
42240
- };
42241
-
42242
- return React__default.createElement(reactstrap.Modal, {
42243
- isOpen: open,
42244
- toggle: function toggle() {
42245
- return onToggleModel();
42246
- },
42247
- className: "" + styles["model-switch-roles"],
42248
- centered: true
42249
- }, React__default.createElement("p", {
42250
- className: "" + styles["title"]
42251
- }, t("continue_as")), React__default.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
42252
- return React__default.createElement("p", {
42253
- key: r,
42254
- 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" : ""],
42255
- onClick: function onClick() {
42256
- return handleSelectUserRoles([r]);
42257
- }
42258
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42259
- })));
42260
- };
42261
-
42262
- var TheLayout = function TheLayout(_ref) {
42263
- var routes = _ref.routes,
42264
- navigation = _ref.navigation;
42265
- var history = reactRouterDom.useHistory();
42266
- var dispatch = reactRedux.useDispatch();
42267
- var user = reactRedux.useSelector(function (state) {
42268
- return state.common.user;
42269
- });
42270
- var language = reactRedux.useSelector(function (state) {
42271
- return state.common.language;
42272
- });
42273
-
42274
- var _useState = React.useState(false),
42275
- openModelSelectRole = _useState[0],
42276
- setOpenModelSelectRole = _useState[1];
42277
-
42278
- var _useTranslation = reactI18next.useTranslation(),
42279
- t = _useTranslation.t;
42280
-
42281
- var location = reactRouterDom.useLocation();
42282
- var isNotification = location.pathname.includes("notifications");
42283
- var isDistrict = window.location.host.includes("-district");
42284
-
42285
- var handleToggleModel = function handleToggleModel() {
42286
- setOpenModelSelectRole(!openModelSelectRole);
42287
- };
42288
-
42289
- var authRoutes = React.useMemo(function () {
42290
- return routes.filter(function (route) {
42291
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42292
- }).filter(function (route) {
42293
- return !!route.isDistrict === isDistrict;
42294
- });
42295
- }, [user, language]);
42296
- var authNavigations = React.useMemo(function () {
42297
- return navigation.map(function (item) {
42298
- var _item$_children, _item$_children2;
42299
-
42300
- return _extends({}, item, {
42301
- name: t(item.name),
42302
- _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) {
42303
- return _extends({}, x, {
42304
- name: t(x.name)
42305
- });
42306
- }) : undefined
42307
- });
42308
- }).filter(function (nav) {
42309
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42310
- }).filter(function (nav) {
42311
- return !!nav.isDistrict === isDistrict;
42312
- });
42313
- }, [user, language]);
42314
-
42315
- var getInformationSetting = function getInformationSetting() {
42316
- try {
42317
- var _temp2 = _catch(function () {
42318
- return Promise.resolve(getSchoolSettings()).then(function (res) {
42319
- dispatch(setSandboxMode(res.data.isSandboxMode));
42320
- });
42321
- }, function (err) {
42322
- console.error(err);
42323
- });
42324
-
42325
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42326
- } catch (e) {
42327
- return Promise.reject(e);
42328
- }
42329
- };
42330
-
42331
- React.useEffect(function () {
42332
- checkAuthentication();
42333
- }, []);
42334
- React.useEffect(function () {
42335
- getInformationSetting();
42336
- }, [location.pathname]);
42337
-
42338
- var checkAuthentication = function checkAuthentication() {
42339
- try {
42340
- var _temp4 = _catch(function () {
42341
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42342
- tokenStatus ? loadInfo() : resetAuth();
42343
- });
42344
- }, function () {
42345
- resetAuth();
42346
- });
42347
-
42348
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42349
- } catch (e) {
42350
- return Promise.reject(e);
42351
- }
42352
- };
42353
-
42354
- var loadInfo = function loadInfo() {
42355
- try {
42356
- var _temp6 = _catch(function () {
42357
- return Promise.resolve(getInfo()).then(function (info) {
42358
- var _info$data, _info$data$roles;
42359
-
42360
- 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"))) {
42361
- resetAuth();
42362
- }
42363
-
42364
- dispatch(setUser(info.data));
42365
- });
42366
- }, function () {
42367
- resetAuth();
42368
- });
42369
-
42370
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42371
- } catch (e) {
42372
- return Promise.reject(e);
42373
- }
42374
- };
42375
-
42376
- var resetAuth = function resetAuth() {
42377
- localStorage.removeItem(ACCESS_TOKEN);
42378
- sessionStorage.removeItem(ACCESS_TOKEN);
42379
- localStorage.removeItem("ROLES");
42380
- history.push("/");
42381
- };
42382
-
42383
- if (!user) {
42384
- return React__default.createElement(Loading, null);
42385
- }
42386
-
42387
- return React__default.createElement("div", {
42388
- className: "c-app c-default-layout"
42389
- }, !isNotification && React__default.createElement(TheSidebar, {
42390
- navigation: authNavigations
42391
- }), React__default.createElement("div", {
42392
- className: "c-wrapper"
42393
- }, !isNotification && React__default.createElement(TheHeader, {
42394
- onToggleModel: handleToggleModel
42395
- }), React__default.createElement("div", {
42396
- className: "c-body bg-white"
42397
- }, React__default.createElement(TheContent$1, {
42398
- routes: authRoutes
42399
- }))), React__default.createElement(ModelSelectRole, {
42400
- open: openModelSelectRole,
42401
- onToggleModel: handleToggleModel
42402
- }));
42403
- };
42404
-
42405
- var buttonTextStyle = {
42406
- fontWeight: 500
42407
- };
42408
- var buttonStyle = {
42409
- height: 38
42410
- };
42411
-
42412
- var AddButton = function AddButton(_ref) {
42413
- var text = _ref.text,
42414
- onClick = _ref.onClick;
42415
- return React__default.createElement(reactstrap.Button, {
42416
- onClick: onClick,
42417
- color: 'success',
42418
- style: buttonStyle,
42419
- className: 'd-flex align-items-center'
42420
- }, React__default.createElement(fa.FaPlus, null), React__default.createElement("span", {
42421
- className: 'ml-2',
42422
- style: buttonTextStyle
42423
- }, text));
41947
+ var AddButton = function AddButton(_ref) {
41948
+ var text = _ref.text,
41949
+ onClick = _ref.onClick;
41950
+ return React__default.createElement(reactstrap.Button, {
41951
+ onClick: onClick,
41952
+ color: 'success',
41953
+ style: buttonStyle,
41954
+ className: 'd-flex align-items-center'
41955
+ }, React__default.createElement(fa.FaPlus, null), React__default.createElement("span", {
41956
+ className: 'ml-2',
41957
+ style: buttonTextStyle
41958
+ }, text));
42424
41959
  };
42425
41960
 
42426
41961
  var DeleteButtonIcon = function DeleteButtonIcon(_ref) {
@@ -51748,13 +51283,41 @@ var UserDetail = function UserDetail() {
51748
51283
  });
51749
51284
  };
51750
51285
 
51751
- var ScrollToTop = function ScrollToTop() {
51752
- var _useLocation = reactRouterDom.useLocation(),
51753
- pathname = _useLocation.pathname;
51286
+ var loadingStyle = {
51287
+ minWidth: "100vw",
51288
+ minHeight: "100vh",
51289
+ position: "fixed",
51290
+ top: 0,
51291
+ left: 0,
51292
+ zIndex: 999999999,
51293
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
51294
+ display: "flex",
51295
+ justifyContent: "center",
51296
+ alignItems: "center"
51297
+ };
51754
51298
 
51755
- React.useEffect(function () {
51756
- window.scrollTo(0, 0);
51757
- }, [pathname]);
51299
+ var Loading = function Loading() {
51300
+ var isLoading = reactRedux.useSelector(function (state) {
51301
+ return state.common.isLoading;
51302
+ });
51303
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51304
+ return isLoading ? React__default.createElement("div", {
51305
+ style: loadingStyle
51306
+ }, React__default.createElement("div", {
51307
+ className: "spinner-border text-secondary",
51308
+ role: "status"
51309
+ }, React__default.createElement("span", {
51310
+ className: "sr-only"
51311
+ }, "Loading..."))) : null;
51312
+ };
51313
+
51314
+ var ScrollToTop = function ScrollToTop() {
51315
+ var _useLocation = reactRouterDom.useLocation(),
51316
+ pathname = _useLocation.pathname;
51317
+
51318
+ React.useEffect(function () {
51319
+ window.scrollTo(0, 0);
51320
+ }, [pathname]);
51758
51321
  return null;
51759
51322
  };
51760
51323
 
@@ -54771,6 +54334,32 @@ var store = toolkit.configureStore({
54771
54334
  }
54772
54335
  });
54773
54336
 
54337
+ var firstCheckToken = function firstCheckToken() {
54338
+ return Promise.resolve(_catch(function () {
54339
+ var token = getAccessToken();
54340
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54341
+ return tokenStatus.data ? true : false;
54342
+ }) : false;
54343
+ }, function () {
54344
+ return false;
54345
+ }));
54346
+ };
54347
+
54348
+ var canAccess = function canAccess(userRoles, componentRoles) {
54349
+ if (!Array.isArray(userRoles)) {
54350
+ return false;
54351
+ }
54352
+
54353
+ if (Array.isArray(componentRoles)) {
54354
+ var intersects = userRoles.filter(function (i) {
54355
+ return componentRoles.includes(i);
54356
+ });
54357
+ return intersects.length > 0;
54358
+ }
54359
+
54360
+ return true;
54361
+ };
54362
+
54774
54363
  var isInViewport = function isInViewport(el) {
54775
54364
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54776
54365
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54804,6 +54393,410 @@ var generateRandomString = (function () {
54804
54393
  return (Math.random() + 1).toString(36).substring(7);
54805
54394
  });
54806
54395
 
54396
+ var apiGetLanguage = function apiGetLanguage() {
54397
+ return api.get(BASE_URL + "/api/language");
54398
+ };
54399
+
54400
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54401
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
54402
+ };
54403
+
54404
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54405
+
54406
+ var useLanguages = function useLanguages() {
54407
+ var dispatch = reactRedux.useDispatch();
54408
+
54409
+ var _useTranslation = reactI18next.useTranslation(),
54410
+ i18n = _useTranslation.i18n;
54411
+
54412
+ var language = reactRedux.useSelector(function (state) {
54413
+ return state.common.language;
54414
+ });
54415
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54416
+
54417
+ var _useState = React.useState([]),
54418
+ languageList = _useState[0],
54419
+ setLanguageList = _useState[1];
54420
+
54421
+ var _useState2 = React.useState(false),
54422
+ dropdownOpen = _useState2[0],
54423
+ setDropdownOpen = _useState2[1];
54424
+
54425
+ var _useState3 = React.useState(defaultLanguage),
54426
+ currentLang = _useState3[0],
54427
+ setCurrentLang = _useState3[1];
54428
+
54429
+ var toggle = function toggle() {
54430
+ return setDropdownOpen(function (prevState) {
54431
+ return !prevState;
54432
+ });
54433
+ };
54434
+
54435
+ var changeLanguageApp = function changeLanguageApp(lang) {
54436
+ try {
54437
+ var _temp3 = function _temp3() {
54438
+ dispatch(setLoading(false));
54439
+ };
54440
+
54441
+ dispatch(setLoading(true));
54442
+
54443
+ var _temp4 = _catch(function () {
54444
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54445
+ i18n.changeLanguage(lang);
54446
+ setCurrentLang(lang);
54447
+ dispatch(setLanguage(lang));
54448
+ });
54449
+ }, function (err) {
54450
+ var _err$response, _err$response$data;
54451
+
54452
+ dispatch(setAlert({
54453
+ type: "danger",
54454
+ 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
54455
+ }));
54456
+ });
54457
+
54458
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54459
+ } catch (e) {
54460
+ return Promise.reject(e);
54461
+ }
54462
+ };
54463
+
54464
+ var getListLanguage = function getListLanguage() {
54465
+ try {
54466
+ var _temp6 = _catch(function () {
54467
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
54468
+ setLanguageList(res.data);
54469
+ });
54470
+ }, function (err) {
54471
+ var _err$response2, _err$response2$data;
54472
+
54473
+ dispatch(setAlert({
54474
+ type: "danger",
54475
+ 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
54476
+ }));
54477
+ });
54478
+
54479
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54480
+ } catch (e) {
54481
+ return Promise.reject(e);
54482
+ }
54483
+ };
54484
+
54485
+ React.useEffect(function () {
54486
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
54487
+ getListLanguage();
54488
+ }, []);
54489
+ return {
54490
+ languageList: languageList,
54491
+ toggle: toggle,
54492
+ dropdownOpen: dropdownOpen,
54493
+ currentLang: currentLang,
54494
+ changeLanguageApp: changeLanguageApp,
54495
+ setCurrentLang: setCurrentLang
54496
+ };
54497
+ };
54498
+
54499
+ var TheLanguageDropdown = function TheLanguageDropdown() {
54500
+ var _useLanguages = useLanguages(),
54501
+ languageList = _useLanguages.languageList,
54502
+ toggle = _useLanguages.toggle,
54503
+ dropdownOpen = _useLanguages.dropdownOpen,
54504
+ currentLang = _useLanguages.currentLang,
54505
+ changeLanguageApp = _useLanguages.changeLanguageApp;
54506
+
54507
+ var currentLanguage = React.useMemo(function () {
54508
+ var current = languageList.find(function (i) {
54509
+ return i.code === currentLang;
54510
+ });
54511
+ if (!current) return null;
54512
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
54513
+ className: "mr-2 " + styles['dropdown-menu-flag'],
54514
+ src: "" + getStaticFileUrl(current.image)
54515
+ }), " ", current.name);
54516
+ }, [currentLang, languageList]);
54517
+ return React__default.createElement(reactstrap.Dropdown, {
54518
+ isOpen: dropdownOpen,
54519
+ toggle: toggle,
54520
+ className: "" + styles["dropdown-menu"]
54521
+ }, React__default.createElement(reactstrap.DropdownToggle, {
54522
+ className: styles["header-avatar"] + " d-flex align-items-center"
54523
+ }, React__default.createElement("span", {
54524
+ style: {
54525
+ color: "#000",
54526
+ textTransform: "capitalize",
54527
+ display: 'flex',
54528
+ alignItems: 'center'
54529
+ }
54530
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
54531
+ className: "ml-2",
54532
+ style: {
54533
+ fontSize: '10px'
54534
+ }
54535
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
54536
+ className: styles["dropdown-content-language"]
54537
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54538
+ return React__default.createElement(reactstrap.DropdownItem, {
54539
+ key: lang.code,
54540
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54541
+ onClick: function onClick() {
54542
+ return changeLanguageApp(lang.code);
54543
+ }
54544
+ }, React__default.createElement("div", {
54545
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54546
+ }, React__default.createElement("span", {
54547
+ className: "mr-2 d-flex hover-opacity"
54548
+ }, React__default.createElement("img", {
54549
+ style: {
54550
+ width: "30px",
54551
+ height: "25px",
54552
+ borderRadius: "5px"
54553
+ },
54554
+ src: getStaticFileUrl(lang.image)
54555
+ })), lang.name));
54556
+ })));
54557
+ };
54558
+
54559
+ var TheHeader = function TheHeader(_ref) {
54560
+ var onToggleModel = _ref.onToggleModel;
54561
+ var dispatch = reactRedux.useDispatch();
54562
+ var sidebarShow = reactRedux.useSelector(function (state) {
54563
+ return state.common.sidebarShow;
54564
+ });
54565
+
54566
+ var _useTranslation = reactI18next.useTranslation(),
54567
+ t = _useTranslation.t;
54568
+
54569
+ var toggleSidebarMobile = function toggleSidebarMobile() {
54570
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54571
+ dispatch(setSidebar(val));
54572
+ };
54573
+
54574
+ var isDistrict = window.location.host.includes("-district");
54575
+ return React__default.createElement(react.CHeader, {
54576
+ withSubheader: true,
54577
+ className: "d-flex align-items-center justify-content-end"
54578
+ }, React__default.createElement(react.CToggler, {
54579
+ inHeader: true,
54580
+ className: "ml-md-3 d-lg-none",
54581
+ onClick: toggleSidebarMobile
54582
+ }), React__default.createElement(react.CHeaderBrand, {
54583
+ className: "mx-auto flex-grow-1 d-lg-none",
54584
+ to: "/"
54585
+ }, React__default.createElement("img", {
54586
+ src: getStaticFileUrl(Images.LOGO_HEADER),
54587
+ className: styles["header-logo"]
54588
+ })), React__default.createElement(react.CHeaderNav, {
54589
+ className: "pr-3"
54590
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
54591
+ className: "mr-3",
54592
+ style: {
54593
+ color: '#000'
54594
+ },
54595
+ href: '/privacy-policy',
54596
+ target: "blank"
54597
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
54598
+ onToggleModel: onToggleModel
54599
+ })));
54600
+ };
54601
+
54602
+ var ModelSelectRole = function ModelSelectRole(_ref) {
54603
+ var _handleUserRole;
54604
+
54605
+ var open = _ref.open,
54606
+ onToggleModel = _ref.onToggleModel;
54607
+ var dispatch = reactRedux.useDispatch();
54608
+
54609
+ var _useTranslation = reactI18next.useTranslation(),
54610
+ t = _useTranslation.t;
54611
+
54612
+ var history = reactRouterDom.useHistory();
54613
+ var pathname = window.location.pathname;
54614
+ var user = reactRedux.useSelector(function (state) {
54615
+ return state.common.user;
54616
+ });
54617
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
54618
+
54619
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54620
+ dispatch(setLoading(true));
54621
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54622
+ dispatch(setUser(_extends({}, user, {
54623
+ roles: roleSelect
54624
+ })));
54625
+ localStorage.setItem("ROLES", roleSelect.toString());
54626
+ onToggleModel();
54627
+
54628
+ if (roles.includes("Parent")) {
54629
+ history.push("/parent");
54630
+ } else if (roles.includes("Admin")) {
54631
+ history.push("/admin/home");
54632
+ } else {
54633
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
54634
+ }
54635
+ };
54636
+
54637
+ return React__default.createElement(reactstrap.Modal, {
54638
+ isOpen: open,
54639
+ toggle: function toggle() {
54640
+ return onToggleModel();
54641
+ },
54642
+ className: "" + styles["model-switch-roles"],
54643
+ centered: true
54644
+ }, React__default.createElement("p", {
54645
+ className: "" + styles["title"]
54646
+ }, t("continue_as")), React__default.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
54647
+ return React__default.createElement("p", {
54648
+ key: r,
54649
+ 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" : ""],
54650
+ onClick: function onClick() {
54651
+ return handleSelectUserRoles([r]);
54652
+ }
54653
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54654
+ })));
54655
+ };
54656
+
54657
+ var TheLayout = function TheLayout(_ref) {
54658
+ var routes = _ref.routes,
54659
+ navigation = _ref.navigation;
54660
+ var history = reactRouterDom.useHistory();
54661
+ var dispatch = reactRedux.useDispatch();
54662
+ var user = reactRedux.useSelector(function (state) {
54663
+ return state.common.user;
54664
+ });
54665
+ var language = reactRedux.useSelector(function (state) {
54666
+ return state.common.language;
54667
+ });
54668
+
54669
+ var _useState = React.useState(false),
54670
+ openModelSelectRole = _useState[0],
54671
+ setOpenModelSelectRole = _useState[1];
54672
+
54673
+ var _useTranslation = reactI18next.useTranslation(),
54674
+ t = _useTranslation.t;
54675
+
54676
+ var location = reactRouterDom.useLocation();
54677
+ var isNotification = location.pathname.includes("notifications");
54678
+ var isDistrict = window.location.host.includes("-district");
54679
+
54680
+ var handleToggleModel = function handleToggleModel() {
54681
+ setOpenModelSelectRole(!openModelSelectRole);
54682
+ };
54683
+
54684
+ var authRoutes = React.useMemo(function () {
54685
+ return routes.filter(function (route) {
54686
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54687
+ }).filter(function (route) {
54688
+ return !!route.isDistrict === isDistrict;
54689
+ });
54690
+ }, [user, language]);
54691
+ var authNavigations = React.useMemo(function () {
54692
+ return navigation.map(function (item) {
54693
+ var _item$_children, _item$_children2;
54694
+
54695
+ return _extends({}, item, {
54696
+ name: t(item.name),
54697
+ _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) {
54698
+ return _extends({}, x, {
54699
+ name: t(x.name)
54700
+ });
54701
+ }) : undefined
54702
+ });
54703
+ }).filter(function (nav) {
54704
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54705
+ }).filter(function (nav) {
54706
+ return !!nav.isDistrict === isDistrict;
54707
+ });
54708
+ }, [user, language]);
54709
+
54710
+ var getInformationSetting = function getInformationSetting() {
54711
+ try {
54712
+ var _temp2 = _catch(function () {
54713
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
54714
+ dispatch(setSandboxMode(res.data.isSandboxMode));
54715
+ });
54716
+ }, function (err) {
54717
+ console.error(err);
54718
+ });
54719
+
54720
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54721
+ } catch (e) {
54722
+ return Promise.reject(e);
54723
+ }
54724
+ };
54725
+
54726
+ React.useEffect(function () {
54727
+ checkAuthentication();
54728
+ }, []);
54729
+ React.useEffect(function () {
54730
+ getInformationSetting();
54731
+ }, [location.pathname]);
54732
+
54733
+ var checkAuthentication = function checkAuthentication() {
54734
+ try {
54735
+ var _temp4 = _catch(function () {
54736
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
54737
+ tokenStatus ? loadInfo() : resetAuth();
54738
+ });
54739
+ }, function () {
54740
+ resetAuth();
54741
+ });
54742
+
54743
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
54744
+ } catch (e) {
54745
+ return Promise.reject(e);
54746
+ }
54747
+ };
54748
+
54749
+ var loadInfo = function loadInfo() {
54750
+ try {
54751
+ var _temp6 = _catch(function () {
54752
+ return Promise.resolve(getInfo()).then(function (info) {
54753
+ var _info$data, _info$data$roles;
54754
+
54755
+ 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"))) {
54756
+ resetAuth();
54757
+ }
54758
+
54759
+ dispatch(setUser(info.data));
54760
+ });
54761
+ }, function () {
54762
+ resetAuth();
54763
+ });
54764
+
54765
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54766
+ } catch (e) {
54767
+ return Promise.reject(e);
54768
+ }
54769
+ };
54770
+
54771
+ var resetAuth = function resetAuth() {
54772
+ localStorage.removeItem(ACCESS_TOKEN);
54773
+ sessionStorage.removeItem(ACCESS_TOKEN);
54774
+ localStorage.removeItem("ROLES");
54775
+ history.push("/");
54776
+ };
54777
+
54778
+ if (!user) {
54779
+ return React__default.createElement(Loading, null);
54780
+ }
54781
+
54782
+ return React__default.createElement("div", {
54783
+ className: "c-app c-default-layout"
54784
+ }, !isNotification && React__default.createElement(TheSidebar, {
54785
+ navigation: authNavigations
54786
+ }), React__default.createElement("div", {
54787
+ className: "c-wrapper"
54788
+ }, !isNotification && React__default.createElement(TheHeader, {
54789
+ onToggleModel: handleToggleModel
54790
+ }), React__default.createElement("div", {
54791
+ className: "c-body bg-white"
54792
+ }, React__default.createElement(TheContent$1, {
54793
+ routes: authRoutes
54794
+ }))), React__default.createElement(ModelSelectRole, {
54795
+ open: openModelSelectRole,
54796
+ onToggleModel: handleToggleModel
54797
+ }));
54798
+ };
54799
+
54807
54800
  var amplitudeClient = amplitude;
54808
54801
 
54809
54802
  Object.defineProperty(exports, 'I18nextProvider', {