mario-core 2.9.425-feedback → 2.9.427-feedback

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
@@ -2196,6 +2196,7 @@ var survey_resulting_in_scheduled_sessions = "Survey resulting in scheduled sess
2196
2196
  var current_class_grade = "Current Class Grade";
2197
2197
  var these_are_the_answers_from_classroom_teachers = "These are the answers from classroom teachers.";
2198
2198
  var total_responses = "Total Responses";
2199
+ var readiness_trends = "Readiness Trends";
2199
2200
  var lang_us = {
2200
2201
  dashboard: dashboard,
2201
2202
  user: user,
@@ -4407,7 +4408,8 @@ var lang_us = {
4407
4408
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions,
4408
4409
  current_class_grade: current_class_grade,
4409
4410
  these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers,
4410
- total_responses: total_responses
4411
+ total_responses: total_responses,
4412
+ readiness_trends: readiness_trends
4411
4413
  };
4412
4414
 
4413
4415
  var dashboard$1 = "Dashboard";
@@ -6566,6 +6568,7 @@ var survey_resulting_in_scheduled_sessions$1 = "Survey resulting in scheduled se
6566
6568
  var current_class_grade$1 = "Current Class Grade";
6567
6569
  var these_are_the_answers_from_classroom_teachers$1 = "These are the answers from classroom teachers.";
6568
6570
  var total_responses$1 = "Total Responses";
6571
+ var readiness_trends$1 = "Readiness Trends";
6569
6572
  var lang_uk = {
6570
6573
  dashboard: dashboard$1,
6571
6574
  user: user$1,
@@ -8774,7 +8777,8 @@ var lang_uk = {
8774
8777
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$1,
8775
8778
  current_class_grade: current_class_grade$1,
8776
8779
  these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$1,
8777
- total_responses: total_responses$1
8780
+ total_responses: total_responses$1,
8781
+ readiness_trends: readiness_trends$1
8778
8782
  };
8779
8783
 
8780
8784
  var dashboard$2 = "لوحة المعلومات";
@@ -10963,6 +10967,7 @@ var survey_resulting_in_scheduled_sessions$2 = "Survey resulting in scheduled se
10963
10967
  var current_class_grade$2 = "Current Class Grade";
10964
10968
  var these_are_the_answers_from_classroom_teachers$2 = "These are the answers from classroom teachers.";
10965
10969
  var total_responses$2 = "Total Responses";
10970
+ var readiness_trends$2 = "Readiness Trends";
10966
10971
  var lang_ar = {
10967
10972
  dashboard: dashboard$2,
10968
10973
  user: user$2,
@@ -13203,7 +13208,8 @@ var lang_ar = {
13203
13208
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$2,
13204
13209
  current_class_grade: current_class_grade$2,
13205
13210
  these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$2,
13206
- total_responses: total_responses$2
13211
+ total_responses: total_responses$2,
13212
+ readiness_trends: readiness_trends$2
13207
13213
  };
13208
13214
 
13209
13215
  var dashboard$3 = "Cuadro de mandos";
@@ -15392,6 +15398,7 @@ var survey_resulting_in_scheduled_sessions$3 = "Survey resulting in scheduled se
15392
15398
  var current_class_grade$3 = "Current Class Grade";
15393
15399
  var these_are_the_answers_from_classroom_teachers$3 = "These are the answers from classroom teachers.";
15394
15400
  var total_responses$3 = "Total Responses";
15401
+ var readiness_trends$3 = "Readiness Trends";
15395
15402
  var lang_es = {
15396
15403
  dashboard: dashboard$3,
15397
15404
  user: user$3,
@@ -17632,7 +17639,8 @@ var lang_es = {
17632
17639
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$3,
17633
17640
  current_class_grade: current_class_grade$3,
17634
17641
  these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$3,
17635
- total_responses: total_responses$3
17642
+ total_responses: total_responses$3,
17643
+ readiness_trends: readiness_trends$3
17636
17644
  };
17637
17645
 
17638
17646
  var dashboard$4 = "仪表板";
@@ -19821,6 +19829,7 @@ var survey_resulting_in_scheduled_sessions$4 = "Survey resulting in scheduled se
19821
19829
  var current_class_grade$4 = "Current Class Grade";
19822
19830
  var these_are_the_answers_from_classroom_teachers$4 = "These are the answers from classroom teachers.";
19823
19831
  var total_responses$4 = "Total Responses";
19832
+ var readiness_trends$4 = "Readiness Trends";
19824
19833
  var lang_zh = {
19825
19834
  dashboard: dashboard$4,
19826
19835
  user: user$4,
@@ -22061,7 +22070,8 @@ var lang_zh = {
22061
22070
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$4,
22062
22071
  current_class_grade: current_class_grade$4,
22063
22072
  these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$4,
22064
- total_responses: total_responses$4
22073
+ total_responses: total_responses$4,
22074
+ readiness_trends: readiness_trends$4
22065
22075
  };
22066
22076
 
22067
22077
  var TINY_MCE_API_KEY = "htqausuofrnali3nh9ivmlpq6v415o0tv2qikpg39bqf4pnk";
@@ -41944,212 +41954,6 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
41944
41954
  })), t("log_out")))));
41945
41955
  };
41946
41956
 
41947
- var apiGetLanguage = function apiGetLanguage() {
41948
- return api.get(BASE_URL + "/api/language");
41949
- };
41950
-
41951
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
41952
- return api.put(BASE_URL + "/api/language?lang=" + lang);
41953
- };
41954
-
41955
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
41956
-
41957
- var useLanguages = function useLanguages() {
41958
- var dispatch = reactRedux.useDispatch();
41959
-
41960
- var _useTranslation = reactI18next.useTranslation(),
41961
- i18n = _useTranslation.i18n;
41962
-
41963
- var language = reactRedux.useSelector(function (state) {
41964
- return state.common.language;
41965
- });
41966
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
41967
-
41968
- var _useState = React.useState([]),
41969
- languageList = _useState[0],
41970
- setLanguageList = _useState[1];
41971
-
41972
- var _useState2 = React.useState(false),
41973
- dropdownOpen = _useState2[0],
41974
- setDropdownOpen = _useState2[1];
41975
-
41976
- var _useState3 = React.useState(defaultLanguage),
41977
- currentLang = _useState3[0],
41978
- setCurrentLang = _useState3[1];
41979
-
41980
- var toggle = function toggle() {
41981
- return setDropdownOpen(function (prevState) {
41982
- return !prevState;
41983
- });
41984
- };
41985
-
41986
- var changeLanguageApp = function changeLanguageApp(lang) {
41987
- try {
41988
- var _temp3 = function _temp3() {
41989
- dispatch(setLoading(false));
41990
- };
41991
-
41992
- dispatch(setLoading(true));
41993
-
41994
- var _temp4 = _catch(function () {
41995
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
41996
- i18n.changeLanguage(lang);
41997
- setCurrentLang(lang);
41998
- dispatch(setLanguage(lang));
41999
- });
42000
- }, function (err) {
42001
- var _err$response, _err$response$data;
42002
-
42003
- dispatch(setAlert({
42004
- type: "danger",
42005
- 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
42006
- }));
42007
- });
42008
-
42009
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
42010
- } catch (e) {
42011
- return Promise.reject(e);
42012
- }
42013
- };
42014
-
42015
- var getListLanguage = function getListLanguage() {
42016
- try {
42017
- var _temp6 = _catch(function () {
42018
- return Promise.resolve(apiGetLanguage()).then(function (res) {
42019
- setLanguageList(res.data);
42020
- });
42021
- }, function (err) {
42022
- var _err$response2, _err$response2$data;
42023
-
42024
- dispatch(setAlert({
42025
- type: "danger",
42026
- 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
42027
- }));
42028
- });
42029
-
42030
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42031
- } catch (e) {
42032
- return Promise.reject(e);
42033
- }
42034
- };
42035
-
42036
- React.useEffect(function () {
42037
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
42038
- getListLanguage();
42039
- }, []);
42040
- return {
42041
- languageList: languageList,
42042
- toggle: toggle,
42043
- dropdownOpen: dropdownOpen,
42044
- currentLang: currentLang,
42045
- changeLanguageApp: changeLanguageApp,
42046
- setCurrentLang: setCurrentLang
42047
- };
42048
- };
42049
-
42050
- var TheLanguageDropdown = function TheLanguageDropdown() {
42051
- var _useLanguages = useLanguages(),
42052
- languageList = _useLanguages.languageList,
42053
- toggle = _useLanguages.toggle,
42054
- dropdownOpen = _useLanguages.dropdownOpen,
42055
- currentLang = _useLanguages.currentLang,
42056
- changeLanguageApp = _useLanguages.changeLanguageApp;
42057
-
42058
- var currentLanguage = React.useMemo(function () {
42059
- var current = languageList.find(function (i) {
42060
- return i.code === currentLang;
42061
- });
42062
- if (!current) return null;
42063
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
42064
- className: "mr-2 " + styles['dropdown-menu-flag'],
42065
- src: "" + getStaticFileUrl(current.image)
42066
- }), " ", current.name);
42067
- }, [currentLang, languageList]);
42068
- return React__default.createElement(reactstrap.Dropdown, {
42069
- isOpen: dropdownOpen,
42070
- toggle: toggle,
42071
- className: "" + styles["dropdown-menu"]
42072
- }, React__default.createElement(reactstrap.DropdownToggle, {
42073
- className: styles["header-avatar"] + " d-flex align-items-center"
42074
- }, React__default.createElement("span", {
42075
- style: {
42076
- color: "#000",
42077
- textTransform: "capitalize",
42078
- display: 'flex',
42079
- alignItems: 'center'
42080
- }
42081
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
42082
- className: "ml-2",
42083
- style: {
42084
- fontSize: '10px'
42085
- }
42086
- }))), React__default.createElement(reactstrap.DropdownMenu, {
42087
- className: styles["dropdown-content-language"]
42088
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42089
- return React__default.createElement(reactstrap.DropdownItem, {
42090
- key: lang.code,
42091
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42092
- onClick: function onClick() {
42093
- return changeLanguageApp(lang.code);
42094
- }
42095
- }, React__default.createElement("div", {
42096
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42097
- }, React__default.createElement("span", {
42098
- className: "mr-2 d-flex hover-opacity"
42099
- }, React__default.createElement("img", {
42100
- style: {
42101
- width: "30px",
42102
- height: "25px",
42103
- borderRadius: "5px"
42104
- },
42105
- src: getStaticFileUrl(lang.image)
42106
- })), lang.name));
42107
- })));
42108
- };
42109
-
42110
- var TheHeader = function TheHeader(_ref) {
42111
- var onToggleModel = _ref.onToggleModel;
42112
- var dispatch = reactRedux.useDispatch();
42113
- var sidebarShow = reactRedux.useSelector(function (state) {
42114
- return state.common.sidebarShow;
42115
- });
42116
-
42117
- var _useTranslation = reactI18next.useTranslation(),
42118
- t = _useTranslation.t;
42119
-
42120
- var toggleSidebarMobile = function toggleSidebarMobile() {
42121
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42122
- dispatch(setSidebar(val));
42123
- };
42124
-
42125
- var isDistrict = window.location.host.includes("-district");
42126
- return React__default.createElement(react.CHeader, {
42127
- withSubheader: true,
42128
- className: "d-flex align-items-center justify-content-end"
42129
- }, React__default.createElement(react.CToggler, {
42130
- inHeader: true,
42131
- className: "ml-md-3 d-lg-none",
42132
- onClick: toggleSidebarMobile
42133
- }), React__default.createElement(react.CHeaderBrand, {
42134
- className: "mx-auto flex-grow-1 d-lg-none",
42135
- to: "/"
42136
- }, React__default.createElement("img", {
42137
- src: getStaticFileUrl(Images.LOGO_HEADER),
42138
- className: styles["header-logo"]
42139
- })), React__default.createElement(react.CHeaderNav, {
42140
- className: "pr-3"
42141
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
42142
- className: "mr-3",
42143
- style: {
42144
- color: '#000'
42145
- },
42146
- href: '/privacy-policy',
42147
- target: "blank"
42148
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
42149
- onToggleModel: onToggleModel
42150
- })));
42151
- };
42152
-
42153
41957
  var TITLE$3 = "Not found";
42154
41958
 
42155
41959
  var NotFound = function NotFound() {
@@ -42207,258 +42011,6 @@ var TheContent = function TheContent(_ref) {
42207
42011
 
42208
42012
  var TheContent$1 = React__default.memo(TheContent);
42209
42013
 
42210
- var loadingStyle = {
42211
- minWidth: "100vw",
42212
- minHeight: "100vh",
42213
- position: "fixed",
42214
- top: 0,
42215
- left: 0,
42216
- zIndex: 999999999,
42217
- backgroundColor: "rgba(0, 0, 0, 0.4)",
42218
- display: "flex",
42219
- justifyContent: "center",
42220
- alignItems: "center"
42221
- };
42222
-
42223
- var Loading = function Loading() {
42224
- var isLoading = reactRedux.useSelector(function (state) {
42225
- return state.common.isLoading;
42226
- });
42227
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42228
- return isLoading ? React__default.createElement("div", {
42229
- style: loadingStyle
42230
- }, React__default.createElement("div", {
42231
- className: "spinner-border text-secondary",
42232
- role: "status"
42233
- }, React__default.createElement("span", {
42234
- className: "sr-only"
42235
- }, "Loading..."))) : null;
42236
- };
42237
-
42238
- var firstCheckToken = function firstCheckToken() {
42239
- return Promise.resolve(_catch(function () {
42240
- var token = getAccessToken();
42241
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42242
- return tokenStatus.data ? true : false;
42243
- }) : false;
42244
- }, function () {
42245
- return false;
42246
- }));
42247
- };
42248
-
42249
- var canAccess = function canAccess(userRoles, componentRoles) {
42250
- if (!Array.isArray(userRoles)) {
42251
- return false;
42252
- }
42253
-
42254
- if (Array.isArray(componentRoles)) {
42255
- var intersects = userRoles.filter(function (i) {
42256
- return componentRoles.includes(i);
42257
- });
42258
- return intersects.length > 0;
42259
- }
42260
-
42261
- return true;
42262
- };
42263
-
42264
- var ModelSelectRole = function ModelSelectRole(_ref) {
42265
- var _handleUserRole;
42266
-
42267
- var open = _ref.open,
42268
- onToggleModel = _ref.onToggleModel;
42269
- var dispatch = reactRedux.useDispatch();
42270
-
42271
- var _useTranslation = reactI18next.useTranslation(),
42272
- t = _useTranslation.t;
42273
-
42274
- var history = reactRouterDom.useHistory();
42275
- var pathname = window.location.pathname;
42276
- var user = reactRedux.useSelector(function (state) {
42277
- return state.common.user;
42278
- });
42279
- var roles = user === null || user === void 0 ? void 0 : user.roles;
42280
-
42281
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42282
- dispatch(setLoading(true));
42283
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42284
- dispatch(setUser(_extends({}, user, {
42285
- roles: roleSelect
42286
- })));
42287
- localStorage.setItem("ROLES", roleSelect.toString());
42288
- onToggleModel();
42289
-
42290
- if (roles.includes("Parent")) {
42291
- history.push("/parent");
42292
- } else if (roles.includes("Admin")) {
42293
- history.push("/admin/home");
42294
- } else {
42295
- pathname !== "/home" ? history.push("/home") : window.location.reload();
42296
- }
42297
- };
42298
-
42299
- return React__default.createElement(reactstrap.Modal, {
42300
- isOpen: open,
42301
- toggle: function toggle() {
42302
- return onToggleModel();
42303
- },
42304
- className: "" + styles["model-switch-roles"],
42305
- centered: true
42306
- }, React__default.createElement("p", {
42307
- className: "" + styles["title"]
42308
- }, 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) {
42309
- return React__default.createElement("p", {
42310
- key: r,
42311
- 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" : ""],
42312
- onClick: function onClick() {
42313
- return handleSelectUserRoles([r]);
42314
- }
42315
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42316
- })));
42317
- };
42318
-
42319
- var TheLayout = function TheLayout(_ref) {
42320
- var routes = _ref.routes,
42321
- navigation = _ref.navigation;
42322
- var history = reactRouterDom.useHistory();
42323
- var dispatch = reactRedux.useDispatch();
42324
- var user = reactRedux.useSelector(function (state) {
42325
- return state.common.user;
42326
- });
42327
- var language = reactRedux.useSelector(function (state) {
42328
- return state.common.language;
42329
- });
42330
-
42331
- var _useState = React.useState(false),
42332
- openModelSelectRole = _useState[0],
42333
- setOpenModelSelectRole = _useState[1];
42334
-
42335
- var _useTranslation = reactI18next.useTranslation(),
42336
- t = _useTranslation.t;
42337
-
42338
- var location = reactRouterDom.useLocation();
42339
- var isNotification = location.pathname.includes("notifications");
42340
- var isDistrict = window.location.host.includes("-district");
42341
-
42342
- var handleToggleModel = function handleToggleModel() {
42343
- setOpenModelSelectRole(!openModelSelectRole);
42344
- };
42345
-
42346
- var authRoutes = React.useMemo(function () {
42347
- return routes.filter(function (route) {
42348
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42349
- }).filter(function (route) {
42350
- return !!route.isDistrict === isDistrict;
42351
- });
42352
- }, [user, language]);
42353
- var authNavigations = React.useMemo(function () {
42354
- return navigation.map(function (item) {
42355
- var _item$_children, _item$_children2;
42356
-
42357
- return _extends({}, item, {
42358
- name: t(item.name),
42359
- _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) {
42360
- return _extends({}, x, {
42361
- name: t(x.name)
42362
- });
42363
- }) : undefined
42364
- });
42365
- }).filter(function (nav) {
42366
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42367
- }).filter(function (nav) {
42368
- return !!nav.isDistrict === isDistrict;
42369
- });
42370
- }, [user, language]);
42371
-
42372
- var getInformationSetting = function getInformationSetting() {
42373
- try {
42374
- var _temp2 = _catch(function () {
42375
- return Promise.resolve(getSchoolSettings()).then(function (res) {
42376
- dispatch(setSandboxMode(res.data.isSandboxMode));
42377
- });
42378
- }, function (err) {
42379
- console.error(err);
42380
- });
42381
-
42382
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42383
- } catch (e) {
42384
- return Promise.reject(e);
42385
- }
42386
- };
42387
-
42388
- React.useEffect(function () {
42389
- checkAuthentication();
42390
- }, []);
42391
- React.useEffect(function () {
42392
- getInformationSetting();
42393
- }, [location.pathname]);
42394
-
42395
- var checkAuthentication = function checkAuthentication() {
42396
- try {
42397
- var _temp4 = _catch(function () {
42398
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42399
- tokenStatus ? loadInfo() : resetAuth();
42400
- });
42401
- }, function () {
42402
- resetAuth();
42403
- });
42404
-
42405
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42406
- } catch (e) {
42407
- return Promise.reject(e);
42408
- }
42409
- };
42410
-
42411
- var loadInfo = function loadInfo() {
42412
- try {
42413
- var _temp6 = _catch(function () {
42414
- return Promise.resolve(getInfo()).then(function (info) {
42415
- var _info$data, _info$data$roles;
42416
-
42417
- 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"))) {
42418
- resetAuth();
42419
- }
42420
-
42421
- dispatch(setUser(info.data));
42422
- });
42423
- }, function () {
42424
- resetAuth();
42425
- });
42426
-
42427
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42428
- } catch (e) {
42429
- return Promise.reject(e);
42430
- }
42431
- };
42432
-
42433
- var resetAuth = function resetAuth() {
42434
- localStorage.removeItem(ACCESS_TOKEN);
42435
- sessionStorage.removeItem(ACCESS_TOKEN);
42436
- localStorage.removeItem("ROLES");
42437
- history.push("/");
42438
- };
42439
-
42440
- if (!user) {
42441
- return React__default.createElement(Loading, null);
42442
- }
42443
-
42444
- return React__default.createElement("div", {
42445
- className: "c-app c-default-layout"
42446
- }, !isNotification && React__default.createElement(TheSidebar, {
42447
- navigation: authNavigations
42448
- }), React__default.createElement("div", {
42449
- className: "c-wrapper"
42450
- }, !isNotification && React__default.createElement(TheHeader, {
42451
- onToggleModel: handleToggleModel
42452
- }), React__default.createElement("div", {
42453
- className: "c-body bg-white"
42454
- }, React__default.createElement(TheContent$1, {
42455
- routes: authRoutes
42456
- }))), React__default.createElement(ModelSelectRole, {
42457
- open: openModelSelectRole,
42458
- onToggleModel: handleToggleModel
42459
- }));
42460
- };
42461
-
42462
42014
  var buttonTextStyle = {
42463
42015
  fontWeight: 500
42464
42016
  };
@@ -51855,6 +51407,34 @@ var UserDetail = function UserDetail() {
51855
51407
  });
51856
51408
  };
51857
51409
 
51410
+ var loadingStyle = {
51411
+ minWidth: "100vw",
51412
+ minHeight: "100vh",
51413
+ position: "fixed",
51414
+ top: 0,
51415
+ left: 0,
51416
+ zIndex: 999999999,
51417
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
51418
+ display: "flex",
51419
+ justifyContent: "center",
51420
+ alignItems: "center"
51421
+ };
51422
+
51423
+ var Loading = function Loading() {
51424
+ var isLoading = reactRedux.useSelector(function (state) {
51425
+ return state.common.isLoading;
51426
+ });
51427
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51428
+ return isLoading ? React__default.createElement("div", {
51429
+ style: loadingStyle
51430
+ }, React__default.createElement("div", {
51431
+ className: "spinner-border text-secondary",
51432
+ role: "status"
51433
+ }, React__default.createElement("span", {
51434
+ className: "sr-only"
51435
+ }, "Loading..."))) : null;
51436
+ };
51437
+
51858
51438
  var ScrollToTop = function ScrollToTop() {
51859
51439
  var _useLocation = reactRouterDom.useLocation(),
51860
51440
  pathname = _useLocation.pathname;
@@ -54911,6 +54491,32 @@ var store = toolkit.configureStore({
54911
54491
  }
54912
54492
  });
54913
54493
 
54494
+ var firstCheckToken = function firstCheckToken() {
54495
+ return Promise.resolve(_catch(function () {
54496
+ var token = getAccessToken();
54497
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54498
+ return tokenStatus.data ? true : false;
54499
+ }) : false;
54500
+ }, function () {
54501
+ return false;
54502
+ }));
54503
+ };
54504
+
54505
+ var canAccess = function canAccess(userRoles, componentRoles) {
54506
+ if (!Array.isArray(userRoles)) {
54507
+ return false;
54508
+ }
54509
+
54510
+ if (Array.isArray(componentRoles)) {
54511
+ var intersects = userRoles.filter(function (i) {
54512
+ return componentRoles.includes(i);
54513
+ });
54514
+ return intersects.length > 0;
54515
+ }
54516
+
54517
+ return true;
54518
+ };
54519
+
54914
54520
  var isInViewport = function isInViewport(el) {
54915
54521
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54916
54522
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54944,6 +54550,410 @@ var generateRandomString = (function () {
54944
54550
  return (Math.random() + 1).toString(36).substring(7);
54945
54551
  });
54946
54552
 
54553
+ var apiGetLanguage = function apiGetLanguage() {
54554
+ return api.get(BASE_URL + "/api/language");
54555
+ };
54556
+
54557
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54558
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
54559
+ };
54560
+
54561
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54562
+
54563
+ var useLanguages = function useLanguages() {
54564
+ var dispatch = reactRedux.useDispatch();
54565
+
54566
+ var _useTranslation = reactI18next.useTranslation(),
54567
+ i18n = _useTranslation.i18n;
54568
+
54569
+ var language = reactRedux.useSelector(function (state) {
54570
+ return state.common.language;
54571
+ });
54572
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54573
+
54574
+ var _useState = React.useState([]),
54575
+ languageList = _useState[0],
54576
+ setLanguageList = _useState[1];
54577
+
54578
+ var _useState2 = React.useState(false),
54579
+ dropdownOpen = _useState2[0],
54580
+ setDropdownOpen = _useState2[1];
54581
+
54582
+ var _useState3 = React.useState(defaultLanguage),
54583
+ currentLang = _useState3[0],
54584
+ setCurrentLang = _useState3[1];
54585
+
54586
+ var toggle = function toggle() {
54587
+ return setDropdownOpen(function (prevState) {
54588
+ return !prevState;
54589
+ });
54590
+ };
54591
+
54592
+ var changeLanguageApp = function changeLanguageApp(lang) {
54593
+ try {
54594
+ var _temp3 = function _temp3() {
54595
+ dispatch(setLoading(false));
54596
+ };
54597
+
54598
+ dispatch(setLoading(true));
54599
+
54600
+ var _temp4 = _catch(function () {
54601
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54602
+ i18n.changeLanguage(lang);
54603
+ setCurrentLang(lang);
54604
+ dispatch(setLanguage(lang));
54605
+ });
54606
+ }, function (err) {
54607
+ var _err$response, _err$response$data;
54608
+
54609
+ dispatch(setAlert({
54610
+ type: "danger",
54611
+ 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
54612
+ }));
54613
+ });
54614
+
54615
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54616
+ } catch (e) {
54617
+ return Promise.reject(e);
54618
+ }
54619
+ };
54620
+
54621
+ var getListLanguage = function getListLanguage() {
54622
+ try {
54623
+ var _temp6 = _catch(function () {
54624
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
54625
+ setLanguageList(res.data);
54626
+ });
54627
+ }, function (err) {
54628
+ var _err$response2, _err$response2$data;
54629
+
54630
+ dispatch(setAlert({
54631
+ type: "danger",
54632
+ 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
54633
+ }));
54634
+ });
54635
+
54636
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54637
+ } catch (e) {
54638
+ return Promise.reject(e);
54639
+ }
54640
+ };
54641
+
54642
+ React.useEffect(function () {
54643
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
54644
+ getListLanguage();
54645
+ }, []);
54646
+ return {
54647
+ languageList: languageList,
54648
+ toggle: toggle,
54649
+ dropdownOpen: dropdownOpen,
54650
+ currentLang: currentLang,
54651
+ changeLanguageApp: changeLanguageApp,
54652
+ setCurrentLang: setCurrentLang
54653
+ };
54654
+ };
54655
+
54656
+ var TheLanguageDropdown = function TheLanguageDropdown() {
54657
+ var _useLanguages = useLanguages(),
54658
+ languageList = _useLanguages.languageList,
54659
+ toggle = _useLanguages.toggle,
54660
+ dropdownOpen = _useLanguages.dropdownOpen,
54661
+ currentLang = _useLanguages.currentLang,
54662
+ changeLanguageApp = _useLanguages.changeLanguageApp;
54663
+
54664
+ var currentLanguage = React.useMemo(function () {
54665
+ var current = languageList.find(function (i) {
54666
+ return i.code === currentLang;
54667
+ });
54668
+ if (!current) return null;
54669
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
54670
+ className: "mr-2 " + styles['dropdown-menu-flag'],
54671
+ src: "" + getStaticFileUrl(current.image)
54672
+ }), " ", current.name);
54673
+ }, [currentLang, languageList]);
54674
+ return React__default.createElement(reactstrap.Dropdown, {
54675
+ isOpen: dropdownOpen,
54676
+ toggle: toggle,
54677
+ className: "" + styles["dropdown-menu"]
54678
+ }, React__default.createElement(reactstrap.DropdownToggle, {
54679
+ className: styles["header-avatar"] + " d-flex align-items-center"
54680
+ }, React__default.createElement("span", {
54681
+ style: {
54682
+ color: "#000",
54683
+ textTransform: "capitalize",
54684
+ display: 'flex',
54685
+ alignItems: 'center'
54686
+ }
54687
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
54688
+ className: "ml-2",
54689
+ style: {
54690
+ fontSize: '10px'
54691
+ }
54692
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
54693
+ className: styles["dropdown-content-language"]
54694
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54695
+ return React__default.createElement(reactstrap.DropdownItem, {
54696
+ key: lang.code,
54697
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54698
+ onClick: function onClick() {
54699
+ return changeLanguageApp(lang.code);
54700
+ }
54701
+ }, React__default.createElement("div", {
54702
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54703
+ }, React__default.createElement("span", {
54704
+ className: "mr-2 d-flex hover-opacity"
54705
+ }, React__default.createElement("img", {
54706
+ style: {
54707
+ width: "30px",
54708
+ height: "25px",
54709
+ borderRadius: "5px"
54710
+ },
54711
+ src: getStaticFileUrl(lang.image)
54712
+ })), lang.name));
54713
+ })));
54714
+ };
54715
+
54716
+ var TheHeader = function TheHeader(_ref) {
54717
+ var onToggleModel = _ref.onToggleModel;
54718
+ var dispatch = reactRedux.useDispatch();
54719
+ var sidebarShow = reactRedux.useSelector(function (state) {
54720
+ return state.common.sidebarShow;
54721
+ });
54722
+
54723
+ var _useTranslation = reactI18next.useTranslation(),
54724
+ t = _useTranslation.t;
54725
+
54726
+ var toggleSidebarMobile = function toggleSidebarMobile() {
54727
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54728
+ dispatch(setSidebar(val));
54729
+ };
54730
+
54731
+ var isDistrict = window.location.host.includes("-district");
54732
+ return React__default.createElement(react.CHeader, {
54733
+ withSubheader: true,
54734
+ className: "d-flex align-items-center justify-content-end"
54735
+ }, React__default.createElement(react.CToggler, {
54736
+ inHeader: true,
54737
+ className: "ml-md-3 d-lg-none",
54738
+ onClick: toggleSidebarMobile
54739
+ }), React__default.createElement(react.CHeaderBrand, {
54740
+ className: "mx-auto flex-grow-1 d-lg-none",
54741
+ to: "/"
54742
+ }, React__default.createElement("img", {
54743
+ src: getStaticFileUrl(Images.LOGO_HEADER),
54744
+ className: styles["header-logo"]
54745
+ })), React__default.createElement(react.CHeaderNav, {
54746
+ className: "pr-3"
54747
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
54748
+ className: "mr-3",
54749
+ style: {
54750
+ color: '#000'
54751
+ },
54752
+ href: '/privacy-policy',
54753
+ target: "blank"
54754
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
54755
+ onToggleModel: onToggleModel
54756
+ })));
54757
+ };
54758
+
54759
+ var ModelSelectRole = function ModelSelectRole(_ref) {
54760
+ var _handleUserRole;
54761
+
54762
+ var open = _ref.open,
54763
+ onToggleModel = _ref.onToggleModel;
54764
+ var dispatch = reactRedux.useDispatch();
54765
+
54766
+ var _useTranslation = reactI18next.useTranslation(),
54767
+ t = _useTranslation.t;
54768
+
54769
+ var history = reactRouterDom.useHistory();
54770
+ var pathname = window.location.pathname;
54771
+ var user = reactRedux.useSelector(function (state) {
54772
+ return state.common.user;
54773
+ });
54774
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
54775
+
54776
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54777
+ dispatch(setLoading(true));
54778
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54779
+ dispatch(setUser(_extends({}, user, {
54780
+ roles: roleSelect
54781
+ })));
54782
+ localStorage.setItem("ROLES", roleSelect.toString());
54783
+ onToggleModel();
54784
+
54785
+ if (roles.includes("Parent")) {
54786
+ history.push("/parent");
54787
+ } else if (roles.includes("Admin")) {
54788
+ history.push("/admin/home");
54789
+ } else {
54790
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
54791
+ }
54792
+ };
54793
+
54794
+ return React__default.createElement(reactstrap.Modal, {
54795
+ isOpen: open,
54796
+ toggle: function toggle() {
54797
+ return onToggleModel();
54798
+ },
54799
+ className: "" + styles["model-switch-roles"],
54800
+ centered: true
54801
+ }, React__default.createElement("p", {
54802
+ className: "" + styles["title"]
54803
+ }, 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) {
54804
+ return React__default.createElement("p", {
54805
+ key: r,
54806
+ 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" : ""],
54807
+ onClick: function onClick() {
54808
+ return handleSelectUserRoles([r]);
54809
+ }
54810
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54811
+ })));
54812
+ };
54813
+
54814
+ var TheLayout = function TheLayout(_ref) {
54815
+ var routes = _ref.routes,
54816
+ navigation = _ref.navigation;
54817
+ var history = reactRouterDom.useHistory();
54818
+ var dispatch = reactRedux.useDispatch();
54819
+ var user = reactRedux.useSelector(function (state) {
54820
+ return state.common.user;
54821
+ });
54822
+ var language = reactRedux.useSelector(function (state) {
54823
+ return state.common.language;
54824
+ });
54825
+
54826
+ var _useState = React.useState(false),
54827
+ openModelSelectRole = _useState[0],
54828
+ setOpenModelSelectRole = _useState[1];
54829
+
54830
+ var _useTranslation = reactI18next.useTranslation(),
54831
+ t = _useTranslation.t;
54832
+
54833
+ var location = reactRouterDom.useLocation();
54834
+ var isNotification = location.pathname.includes("notifications");
54835
+ var isDistrict = window.location.host.includes("-district");
54836
+
54837
+ var handleToggleModel = function handleToggleModel() {
54838
+ setOpenModelSelectRole(!openModelSelectRole);
54839
+ };
54840
+
54841
+ var authRoutes = React.useMemo(function () {
54842
+ return routes.filter(function (route) {
54843
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54844
+ }).filter(function (route) {
54845
+ return !!route.isDistrict === isDistrict;
54846
+ });
54847
+ }, [user, language]);
54848
+ var authNavigations = React.useMemo(function () {
54849
+ return navigation.map(function (item) {
54850
+ var _item$_children, _item$_children2;
54851
+
54852
+ return _extends({}, item, {
54853
+ name: t(item.name),
54854
+ _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) {
54855
+ return _extends({}, x, {
54856
+ name: t(x.name)
54857
+ });
54858
+ }) : undefined
54859
+ });
54860
+ }).filter(function (nav) {
54861
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54862
+ }).filter(function (nav) {
54863
+ return !!nav.isDistrict === isDistrict;
54864
+ });
54865
+ }, [user, language]);
54866
+
54867
+ var getInformationSetting = function getInformationSetting() {
54868
+ try {
54869
+ var _temp2 = _catch(function () {
54870
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
54871
+ dispatch(setSandboxMode(res.data.isSandboxMode));
54872
+ });
54873
+ }, function (err) {
54874
+ console.error(err);
54875
+ });
54876
+
54877
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54878
+ } catch (e) {
54879
+ return Promise.reject(e);
54880
+ }
54881
+ };
54882
+
54883
+ React.useEffect(function () {
54884
+ checkAuthentication();
54885
+ }, []);
54886
+ React.useEffect(function () {
54887
+ getInformationSetting();
54888
+ }, [location.pathname]);
54889
+
54890
+ var checkAuthentication = function checkAuthentication() {
54891
+ try {
54892
+ var _temp4 = _catch(function () {
54893
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
54894
+ tokenStatus ? loadInfo() : resetAuth();
54895
+ });
54896
+ }, function () {
54897
+ resetAuth();
54898
+ });
54899
+
54900
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
54901
+ } catch (e) {
54902
+ return Promise.reject(e);
54903
+ }
54904
+ };
54905
+
54906
+ var loadInfo = function loadInfo() {
54907
+ try {
54908
+ var _temp6 = _catch(function () {
54909
+ return Promise.resolve(getInfo()).then(function (info) {
54910
+ var _info$data, _info$data$roles;
54911
+
54912
+ 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"))) {
54913
+ resetAuth();
54914
+ }
54915
+
54916
+ dispatch(setUser(info.data));
54917
+ });
54918
+ }, function () {
54919
+ resetAuth();
54920
+ });
54921
+
54922
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54923
+ } catch (e) {
54924
+ return Promise.reject(e);
54925
+ }
54926
+ };
54927
+
54928
+ var resetAuth = function resetAuth() {
54929
+ localStorage.removeItem(ACCESS_TOKEN);
54930
+ sessionStorage.removeItem(ACCESS_TOKEN);
54931
+ localStorage.removeItem("ROLES");
54932
+ history.push("/");
54933
+ };
54934
+
54935
+ if (!user) {
54936
+ return React__default.createElement(Loading, null);
54937
+ }
54938
+
54939
+ return React__default.createElement("div", {
54940
+ className: "c-app c-default-layout"
54941
+ }, !isNotification && React__default.createElement(TheSidebar, {
54942
+ navigation: authNavigations
54943
+ }), React__default.createElement("div", {
54944
+ className: "c-wrapper"
54945
+ }, !isNotification && React__default.createElement(TheHeader, {
54946
+ onToggleModel: handleToggleModel
54947
+ }), React__default.createElement("div", {
54948
+ className: "c-body bg-white"
54949
+ }, React__default.createElement(TheContent$1, {
54950
+ routes: authRoutes
54951
+ }))), React__default.createElement(ModelSelectRole, {
54952
+ open: openModelSelectRole,
54953
+ onToggleModel: handleToggleModel
54954
+ }));
54955
+ };
54956
+
54947
54957
  var amplitudeClient = amplitude;
54948
54958
 
54949
54959
  Object.defineProperty(exports, 'I18nextProvider', {