mario-core 2.10.8-release → 2.10.10-release

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