mario-core 2.9.416-feedback → 2.9.418-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
@@ -2190,6 +2190,7 @@ var save_new_password = "Save new password";
2190
2190
  var teacher_code = "Teacher code";
2191
2191
  var number_of_conversations = "Number of conversations";
2192
2192
  var number_of_expected_conversations_based_on_the_goal = "Number of expected conversations based on the goal";
2193
+ var check_in = "Check-in";
2193
2194
  var lang_us = {
2194
2195
  dashboard: dashboard,
2195
2196
  user: user,
@@ -4395,7 +4396,8 @@ var lang_us = {
4395
4396
  save_new_password: save_new_password,
4396
4397
  teacher_code: teacher_code,
4397
4398
  number_of_conversations: number_of_conversations,
4398
- number_of_expected_conversations_based_on_the_goal: number_of_expected_conversations_based_on_the_goal
4399
+ number_of_expected_conversations_based_on_the_goal: number_of_expected_conversations_based_on_the_goal,
4400
+ check_in: check_in
4399
4401
  };
4400
4402
 
4401
4403
  var dashboard$1 = "Dashboard";
@@ -4413,7 +4415,7 @@ var cancel$1 = "Cancel";
4413
4415
  var hey$1 = "Hey";
4414
4416
  var readiness_to_learn$1 = "Readiness to Learn";
4415
4417
  var high_impact_learning_strategies$1 = "High Impact Learning Strategies";
4416
- var check_in = "Check In";
4418
+ var check_in$1 = "Check In";
4417
4419
  var check_ins$1 = "Check Ins";
4418
4420
  var reflection$1 = "Reflection";
4419
4421
  var conferences$1 = "Conferences";
@@ -6566,7 +6568,7 @@ var lang_uk = {
6566
6568
  readiness_to_learn: readiness_to_learn$1,
6567
6569
  high_impact_learning_strategies: high_impact_learning_strategies$1,
6568
6570
  "1_to_1": "1 to 1",
6569
- check_in: check_in,
6571
+ check_in: check_in$1,
6570
6572
  check_ins: check_ins$1,
6571
6573
  reflection: reflection$1,
6572
6574
  conferences: conferences$1,
@@ -8770,7 +8772,7 @@ var cancel$2 = "إلغاء";
8770
8772
  var hey$2 = "مرحبًا";
8771
8773
  var readiness_to_learn$2 = "الاستعداد للتعلم";
8772
8774
  var high_impact_learning_strategies$2 = "استراتيجيات التعلم عالية التأثير";
8773
- var check_in$1 = "تسجيل الحضور";
8775
+ var check_in$2 = "تسجيل الحضور";
8774
8776
  var check_ins$2 = "عمليات تسجيل الحضور";
8775
8777
  var reflection$2 = "التفكير";
8776
8778
  var conferences$2 = "اللقاءات";
@@ -10953,7 +10955,7 @@ var lang_ar = {
10953
10955
  readiness_to_learn: readiness_to_learn$2,
10954
10956
  high_impact_learning_strategies: high_impact_learning_strategies$2,
10955
10957
  "1_to_1": "1 إلى 1",
10956
- check_in: check_in$1,
10958
+ check_in: check_in$2,
10957
10959
  check_ins: check_ins$2,
10958
10960
  reflection: reflection$2,
10959
10961
  conferences: conferences$2,
@@ -13189,7 +13191,7 @@ var cancel$3 = "Cancelar";
13189
13191
  var hey$3 = "Hola";
13190
13192
  var readiness_to_learn$3 = "Preparación para el aprendizaje";
13191
13193
  var high_impact_learning_strategies$3 = "Estrategias de aprendizaje de alto impacto";
13192
- var check_in$2 = "Registro";
13194
+ var check_in$3 = "Registro";
13193
13195
  var check_ins$3 = "Registro de entrada";
13194
13196
  var reflection$3 = "Reflexión";
13195
13197
  var conferences$3 = "Conferencias";
@@ -15372,7 +15374,7 @@ var lang_es = {
15372
15374
  readiness_to_learn: readiness_to_learn$3,
15373
15375
  high_impact_learning_strategies: high_impact_learning_strategies$3,
15374
15376
  "1_to_1": "1 a 1",
15375
- check_in: check_in$2,
15377
+ check_in: check_in$3,
15376
15378
  check_ins: check_ins$3,
15377
15379
  reflection: reflection$3,
15378
15380
  conferences: conferences$3,
@@ -17608,7 +17610,7 @@ var cancel$4 = "取消";
17608
17610
  var hey$4 = "您好";
17609
17611
  var readiness_to_learn$4 = "准备学习";
17610
17612
  var high_impact_learning_strategies$4 = "高效学习策略";
17611
- var check_in$3 = "签到";
17613
+ var check_in$4 = "签到";
17612
17614
  var check_ins$4 = "签到";
17613
17615
  var reflection$4 = "反思";
17614
17616
  var conferences$4 = "讨论会";
@@ -19791,7 +19793,7 @@ var lang_zh = {
19791
19793
  readiness_to_learn: readiness_to_learn$4,
19792
19794
  high_impact_learning_strategies: high_impact_learning_strategies$4,
19793
19795
  "1_to_1": "一对一",
19794
- check_in: check_in$3,
19796
+ check_in: check_in$4,
19795
19797
  check_ins: check_ins$4,
19796
19798
  reflection: reflection$4,
19797
19799
  conferences: conferences$4,
@@ -22174,6 +22176,10 @@ var CsvImportType;
22174
22176
  CsvImportType[CsvImportType["Admin"] = 1] = "Admin";
22175
22177
  })(CsvImportType || (CsvImportType = {}));
22176
22178
 
22179
+ var domainName = window.location.hostname;
22180
+ var listCheckMalvernCollege = ['malverncollege', 'stage', 'localhost'];
22181
+ var isMalvernCollege = listCheckMalvernCollege.includes(domainName);
22182
+
22177
22183
  var resources$5 = {
22178
22184
  "en-US": {
22179
22185
  translation: lang_us
@@ -41886,6 +41892,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
41886
41892
  })), t("log_out")))));
41887
41893
  };
41888
41894
 
41895
+ var apiGetLanguage = function apiGetLanguage() {
41896
+ return api.get(BASE_URL + "/api/language");
41897
+ };
41898
+
41899
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
41900
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
41901
+ };
41902
+
41903
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
41904
+
41905
+ var useLanguages = function useLanguages() {
41906
+ var dispatch = reactRedux.useDispatch();
41907
+
41908
+ var _useTranslation = reactI18next.useTranslation(),
41909
+ i18n = _useTranslation.i18n;
41910
+
41911
+ var language = reactRedux.useSelector(function (state) {
41912
+ return state.common.language;
41913
+ });
41914
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
41915
+
41916
+ var _useState = React.useState([]),
41917
+ languageList = _useState[0],
41918
+ setLanguageList = _useState[1];
41919
+
41920
+ var _useState2 = React.useState(false),
41921
+ dropdownOpen = _useState2[0],
41922
+ setDropdownOpen = _useState2[1];
41923
+
41924
+ var _useState3 = React.useState(defaultLanguage),
41925
+ currentLang = _useState3[0],
41926
+ setCurrentLang = _useState3[1];
41927
+
41928
+ var toggle = function toggle() {
41929
+ return setDropdownOpen(function (prevState) {
41930
+ return !prevState;
41931
+ });
41932
+ };
41933
+
41934
+ var changeLanguageApp = function changeLanguageApp(lang) {
41935
+ try {
41936
+ var _temp3 = function _temp3() {
41937
+ dispatch(setLoading(false));
41938
+ };
41939
+
41940
+ dispatch(setLoading(true));
41941
+
41942
+ var _temp4 = _catch(function () {
41943
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
41944
+ i18n.changeLanguage(lang);
41945
+ setCurrentLang(lang);
41946
+ dispatch(setLanguage(lang));
41947
+ });
41948
+ }, function (err) {
41949
+ var _err$response, _err$response$data;
41950
+
41951
+ dispatch(setAlert({
41952
+ type: "danger",
41953
+ 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
41954
+ }));
41955
+ });
41956
+
41957
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
41958
+ } catch (e) {
41959
+ return Promise.reject(e);
41960
+ }
41961
+ };
41962
+
41963
+ var getListLanguage = function getListLanguage() {
41964
+ try {
41965
+ var _temp6 = _catch(function () {
41966
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
41967
+ setLanguageList(res.data);
41968
+ });
41969
+ }, function (err) {
41970
+ var _err$response2, _err$response2$data;
41971
+
41972
+ dispatch(setAlert({
41973
+ type: "danger",
41974
+ 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
41975
+ }));
41976
+ });
41977
+
41978
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
41979
+ } catch (e) {
41980
+ return Promise.reject(e);
41981
+ }
41982
+ };
41983
+
41984
+ React.useEffect(function () {
41985
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
41986
+ getListLanguage();
41987
+ }, []);
41988
+ return {
41989
+ languageList: languageList,
41990
+ toggle: toggle,
41991
+ dropdownOpen: dropdownOpen,
41992
+ currentLang: currentLang,
41993
+ changeLanguageApp: changeLanguageApp,
41994
+ setCurrentLang: setCurrentLang
41995
+ };
41996
+ };
41997
+
41998
+ var TheLanguageDropdown = function TheLanguageDropdown() {
41999
+ var _useLanguages = useLanguages(),
42000
+ languageList = _useLanguages.languageList,
42001
+ toggle = _useLanguages.toggle,
42002
+ dropdownOpen = _useLanguages.dropdownOpen,
42003
+ currentLang = _useLanguages.currentLang,
42004
+ changeLanguageApp = _useLanguages.changeLanguageApp;
42005
+
42006
+ var currentLanguage = React.useMemo(function () {
42007
+ var current = languageList.find(function (i) {
42008
+ return i.code === currentLang;
42009
+ });
42010
+ if (!current) return null;
42011
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
42012
+ className: "mr-2 " + styles['dropdown-menu-flag'],
42013
+ src: "" + getStaticFileUrl(current.image)
42014
+ }), " ", current.name);
42015
+ }, [currentLang, languageList]);
42016
+ return React__default.createElement(reactstrap.Dropdown, {
42017
+ isOpen: dropdownOpen,
42018
+ toggle: toggle,
42019
+ className: "" + styles["dropdown-menu"]
42020
+ }, React__default.createElement(reactstrap.DropdownToggle, {
42021
+ className: styles["header-avatar"] + " d-flex align-items-center"
42022
+ }, React__default.createElement("span", {
42023
+ style: {
42024
+ color: "#000",
42025
+ textTransform: "capitalize",
42026
+ display: 'flex',
42027
+ alignItems: 'center'
42028
+ }
42029
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
42030
+ className: "ml-2",
42031
+ style: {
42032
+ fontSize: '10px'
42033
+ }
42034
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
42035
+ className: styles["dropdown-content-language"]
42036
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42037
+ return React__default.createElement(reactstrap.DropdownItem, {
42038
+ key: lang.code,
42039
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42040
+ onClick: function onClick() {
42041
+ return changeLanguageApp(lang.code);
42042
+ }
42043
+ }, React__default.createElement("div", {
42044
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42045
+ }, React__default.createElement("span", {
42046
+ className: "mr-2 d-flex hover-opacity"
42047
+ }, React__default.createElement("img", {
42048
+ style: {
42049
+ width: "30px",
42050
+ height: "25px",
42051
+ borderRadius: "5px"
42052
+ },
42053
+ src: getStaticFileUrl(lang.image)
42054
+ })), lang.name));
42055
+ })));
42056
+ };
42057
+
42058
+ var TheHeader = function TheHeader(_ref) {
42059
+ var onToggleModel = _ref.onToggleModel;
42060
+ var dispatch = reactRedux.useDispatch();
42061
+ var sidebarShow = reactRedux.useSelector(function (state) {
42062
+ return state.common.sidebarShow;
42063
+ });
42064
+
42065
+ var _useTranslation = reactI18next.useTranslation(),
42066
+ t = _useTranslation.t;
42067
+
42068
+ var toggleSidebarMobile = function toggleSidebarMobile() {
42069
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42070
+ dispatch(setSidebar(val));
42071
+ };
42072
+
42073
+ var isDistrict = window.location.host.includes("-district");
42074
+ return React__default.createElement(react.CHeader, {
42075
+ withSubheader: true,
42076
+ className: "d-flex align-items-center justify-content-end"
42077
+ }, React__default.createElement(react.CToggler, {
42078
+ inHeader: true,
42079
+ className: "ml-md-3 d-lg-none",
42080
+ onClick: toggleSidebarMobile
42081
+ }), React__default.createElement(react.CHeaderBrand, {
42082
+ className: "mx-auto flex-grow-1 d-lg-none",
42083
+ to: "/"
42084
+ }, React__default.createElement("img", {
42085
+ src: getStaticFileUrl(Images.LOGO_HEADER),
42086
+ className: styles["header-logo"]
42087
+ })), React__default.createElement(react.CHeaderNav, {
42088
+ className: "pr-3"
42089
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
42090
+ className: "mr-3",
42091
+ style: {
42092
+ color: '#000'
42093
+ },
42094
+ href: '/privacy-policy',
42095
+ target: "blank"
42096
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
42097
+ onToggleModel: onToggleModel
42098
+ })));
42099
+ };
42100
+
41889
42101
  var TITLE$3 = "Not found";
41890
42102
 
41891
42103
  var NotFound = function NotFound() {
@@ -41943,6 +42155,258 @@ var TheContent = function TheContent(_ref) {
41943
42155
 
41944
42156
  var TheContent$1 = React__default.memo(TheContent);
41945
42157
 
42158
+ var loadingStyle = {
42159
+ minWidth: "100vw",
42160
+ minHeight: "100vh",
42161
+ position: "fixed",
42162
+ top: 0,
42163
+ left: 0,
42164
+ zIndex: 999999999,
42165
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42166
+ display: "flex",
42167
+ justifyContent: "center",
42168
+ alignItems: "center"
42169
+ };
42170
+
42171
+ var Loading = function Loading() {
42172
+ var isLoading = reactRedux.useSelector(function (state) {
42173
+ return state.common.isLoading;
42174
+ });
42175
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42176
+ return isLoading ? React__default.createElement("div", {
42177
+ style: loadingStyle
42178
+ }, React__default.createElement("div", {
42179
+ className: "spinner-border text-secondary",
42180
+ role: "status"
42181
+ }, React__default.createElement("span", {
42182
+ className: "sr-only"
42183
+ }, "Loading..."))) : null;
42184
+ };
42185
+
42186
+ var firstCheckToken = function firstCheckToken() {
42187
+ return Promise.resolve(_catch(function () {
42188
+ var token = getAccessToken();
42189
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42190
+ return tokenStatus.data ? true : false;
42191
+ }) : false;
42192
+ }, function () {
42193
+ return false;
42194
+ }));
42195
+ };
42196
+
42197
+ var canAccess = function canAccess(userRoles, componentRoles) {
42198
+ if (!Array.isArray(userRoles)) {
42199
+ return false;
42200
+ }
42201
+
42202
+ if (Array.isArray(componentRoles)) {
42203
+ var intersects = userRoles.filter(function (i) {
42204
+ return componentRoles.includes(i);
42205
+ });
42206
+ return intersects.length > 0;
42207
+ }
42208
+
42209
+ return true;
42210
+ };
42211
+
42212
+ var ModelSelectRole = function ModelSelectRole(_ref) {
42213
+ var _handleUserRole;
42214
+
42215
+ var open = _ref.open,
42216
+ onToggleModel = _ref.onToggleModel;
42217
+ var dispatch = reactRedux.useDispatch();
42218
+
42219
+ var _useTranslation = reactI18next.useTranslation(),
42220
+ t = _useTranslation.t;
42221
+
42222
+ var history = reactRouterDom.useHistory();
42223
+ var pathname = window.location.pathname;
42224
+ var user = reactRedux.useSelector(function (state) {
42225
+ return state.common.user;
42226
+ });
42227
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
42228
+
42229
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42230
+ dispatch(setLoading(true));
42231
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42232
+ dispatch(setUser(_extends({}, user, {
42233
+ roles: roleSelect
42234
+ })));
42235
+ localStorage.setItem("ROLES", roleSelect.toString());
42236
+ onToggleModel();
42237
+
42238
+ if (roles.includes("Parent")) {
42239
+ history.push("/parent");
42240
+ } else if (roles.includes("Admin")) {
42241
+ history.push("/admin/home");
42242
+ } else {
42243
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
42244
+ }
42245
+ };
42246
+
42247
+ return React__default.createElement(reactstrap.Modal, {
42248
+ isOpen: open,
42249
+ toggle: function toggle() {
42250
+ return onToggleModel();
42251
+ },
42252
+ className: "" + styles["model-switch-roles"],
42253
+ centered: true
42254
+ }, React__default.createElement("p", {
42255
+ className: "" + styles["title"]
42256
+ }, 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) {
42257
+ return React__default.createElement("p", {
42258
+ key: r,
42259
+ 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" : ""],
42260
+ onClick: function onClick() {
42261
+ return handleSelectUserRoles([r]);
42262
+ }
42263
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42264
+ })));
42265
+ };
42266
+
42267
+ var TheLayout = function TheLayout(_ref) {
42268
+ var routes = _ref.routes,
42269
+ navigation = _ref.navigation;
42270
+ var history = reactRouterDom.useHistory();
42271
+ var dispatch = reactRedux.useDispatch();
42272
+ var user = reactRedux.useSelector(function (state) {
42273
+ return state.common.user;
42274
+ });
42275
+ var language = reactRedux.useSelector(function (state) {
42276
+ return state.common.language;
42277
+ });
42278
+
42279
+ var _useState = React.useState(false),
42280
+ openModelSelectRole = _useState[0],
42281
+ setOpenModelSelectRole = _useState[1];
42282
+
42283
+ var _useTranslation = reactI18next.useTranslation(),
42284
+ t = _useTranslation.t;
42285
+
42286
+ var location = reactRouterDom.useLocation();
42287
+ var isNotification = location.pathname.includes("notifications");
42288
+ var isDistrict = window.location.host.includes("-district");
42289
+
42290
+ var handleToggleModel = function handleToggleModel() {
42291
+ setOpenModelSelectRole(!openModelSelectRole);
42292
+ };
42293
+
42294
+ var authRoutes = React.useMemo(function () {
42295
+ return routes.filter(function (route) {
42296
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42297
+ }).filter(function (route) {
42298
+ return !!route.isDistrict === isDistrict;
42299
+ });
42300
+ }, [user, language]);
42301
+ var authNavigations = React.useMemo(function () {
42302
+ return navigation.map(function (item) {
42303
+ var _item$_children, _item$_children2;
42304
+
42305
+ return _extends({}, item, {
42306
+ name: t(item.name),
42307
+ _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) {
42308
+ return _extends({}, x, {
42309
+ name: t(x.name)
42310
+ });
42311
+ }) : undefined
42312
+ });
42313
+ }).filter(function (nav) {
42314
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42315
+ }).filter(function (nav) {
42316
+ return !!nav.isDistrict === isDistrict;
42317
+ });
42318
+ }, [user, language]);
42319
+
42320
+ var getInformationSetting = function getInformationSetting() {
42321
+ try {
42322
+ var _temp2 = _catch(function () {
42323
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
42324
+ dispatch(setSandboxMode(res.data.isSandboxMode));
42325
+ });
42326
+ }, function (err) {
42327
+ console.error(err);
42328
+ });
42329
+
42330
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42331
+ } catch (e) {
42332
+ return Promise.reject(e);
42333
+ }
42334
+ };
42335
+
42336
+ React.useEffect(function () {
42337
+ checkAuthentication();
42338
+ }, []);
42339
+ React.useEffect(function () {
42340
+ getInformationSetting();
42341
+ }, [location.pathname]);
42342
+
42343
+ var checkAuthentication = function checkAuthentication() {
42344
+ try {
42345
+ var _temp4 = _catch(function () {
42346
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42347
+ tokenStatus ? loadInfo() : resetAuth();
42348
+ });
42349
+ }, function () {
42350
+ resetAuth();
42351
+ });
42352
+
42353
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42354
+ } catch (e) {
42355
+ return Promise.reject(e);
42356
+ }
42357
+ };
42358
+
42359
+ var loadInfo = function loadInfo() {
42360
+ try {
42361
+ var _temp6 = _catch(function () {
42362
+ return Promise.resolve(getInfo()).then(function (info) {
42363
+ var _info$data, _info$data$roles;
42364
+
42365
+ 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"))) {
42366
+ resetAuth();
42367
+ }
42368
+
42369
+ dispatch(setUser(info.data));
42370
+ });
42371
+ }, function () {
42372
+ resetAuth();
42373
+ });
42374
+
42375
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42376
+ } catch (e) {
42377
+ return Promise.reject(e);
42378
+ }
42379
+ };
42380
+
42381
+ var resetAuth = function resetAuth() {
42382
+ localStorage.removeItem(ACCESS_TOKEN);
42383
+ sessionStorage.removeItem(ACCESS_TOKEN);
42384
+ localStorage.removeItem("ROLES");
42385
+ history.push("/");
42386
+ };
42387
+
42388
+ if (!user) {
42389
+ return React__default.createElement(Loading, null);
42390
+ }
42391
+
42392
+ return React__default.createElement("div", {
42393
+ className: "c-app c-default-layout"
42394
+ }, !isNotification && React__default.createElement(TheSidebar, {
42395
+ navigation: authNavigations
42396
+ }), React__default.createElement("div", {
42397
+ className: "c-wrapper"
42398
+ }, !isNotification && React__default.createElement(TheHeader, {
42399
+ onToggleModel: handleToggleModel
42400
+ }), React__default.createElement("div", {
42401
+ className: "c-body bg-white"
42402
+ }, React__default.createElement(TheContent$1, {
42403
+ routes: authRoutes
42404
+ }))), React__default.createElement(ModelSelectRole, {
42405
+ open: openModelSelectRole,
42406
+ onToggleModel: handleToggleModel
42407
+ }));
42408
+ };
42409
+
41946
42410
  var buttonTextStyle = {
41947
42411
  fontWeight: 500
41948
42412
  };
@@ -44654,11 +45118,14 @@ var GRADE_DEFAULT = [{
44654
45118
  }, {
44655
45119
  label: "12",
44656
45120
  value: "12"
44657
- }, {
45121
+ }].concat(isMalvernCollege ? [{
45122
+ label: "12/13",
45123
+ value: "12/13"
45124
+ }] : [], [{
44658
45125
  label: "13",
44659
45126
  value: "13"
44660
- }];
44661
- var GRADE = ["K", "G", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"];
45127
+ }]);
45128
+ var GRADE = ["K", "G", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"].concat(isMalvernCollege ? ["12/13"] : [], ["13"]);
44662
45129
  var gradeOptions = [{
44663
45130
  label: "K",
44664
45131
  value: "K"
@@ -44701,10 +45168,13 @@ var gradeOptions = [{
44701
45168
  }, {
44702
45169
  label: "12",
44703
45170
  value: "12"
44704
- }, {
45171
+ }].concat(isMalvernCollege ? [{
45172
+ label: "12/13",
45173
+ value: "12/13"
45174
+ }] : [], [{
44705
45175
  label: "13",
44706
45176
  value: "13"
44707
- }];
45177
+ }]);
44708
45178
  var initStaffDeleteBulk = {
44709
45179
  assistantRemoveUserId: [],
44710
45180
  counselorRemoveUserIds: [],
@@ -51317,34 +51787,6 @@ var UserDetail = function UserDetail() {
51317
51787
  });
51318
51788
  };
51319
51789
 
51320
- var loadingStyle = {
51321
- minWidth: "100vw",
51322
- minHeight: "100vh",
51323
- position: "fixed",
51324
- top: 0,
51325
- left: 0,
51326
- zIndex: 999999999,
51327
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51328
- display: "flex",
51329
- justifyContent: "center",
51330
- alignItems: "center"
51331
- };
51332
-
51333
- var Loading = function Loading() {
51334
- var isLoading = reactRedux.useSelector(function (state) {
51335
- return state.common.isLoading;
51336
- });
51337
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51338
- return isLoading ? React__default.createElement("div", {
51339
- style: loadingStyle
51340
- }, React__default.createElement("div", {
51341
- className: "spinner-border text-secondary",
51342
- role: "status"
51343
- }, React__default.createElement("span", {
51344
- className: "sr-only"
51345
- }, "Loading..."))) : null;
51346
- };
51347
-
51348
51790
  var ScrollToTop = function ScrollToTop() {
51349
51791
  var _useLocation = reactRouterDom.useLocation(),
51350
51792
  pathname = _useLocation.pathname;
@@ -54368,32 +54810,6 @@ var store = toolkit.configureStore({
54368
54810
  }
54369
54811
  });
54370
54812
 
54371
- var firstCheckToken = function firstCheckToken() {
54372
- return Promise.resolve(_catch(function () {
54373
- var token = getAccessToken();
54374
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54375
- return tokenStatus.data ? true : false;
54376
- }) : false;
54377
- }, function () {
54378
- return false;
54379
- }));
54380
- };
54381
-
54382
- var canAccess = function canAccess(userRoles, componentRoles) {
54383
- if (!Array.isArray(userRoles)) {
54384
- return false;
54385
- }
54386
-
54387
- if (Array.isArray(componentRoles)) {
54388
- var intersects = userRoles.filter(function (i) {
54389
- return componentRoles.includes(i);
54390
- });
54391
- return intersects.length > 0;
54392
- }
54393
-
54394
- return true;
54395
- };
54396
-
54397
54813
  var isInViewport = function isInViewport(el) {
54398
54814
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54399
54815
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54427,410 +54843,6 @@ var generateRandomString = (function () {
54427
54843
  return (Math.random() + 1).toString(36).substring(7);
54428
54844
  });
54429
54845
 
54430
- var apiGetLanguage = function apiGetLanguage() {
54431
- return api.get(BASE_URL + "/api/language");
54432
- };
54433
-
54434
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54435
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54436
- };
54437
-
54438
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54439
-
54440
- var useLanguages = function useLanguages() {
54441
- var dispatch = reactRedux.useDispatch();
54442
-
54443
- var _useTranslation = reactI18next.useTranslation(),
54444
- i18n = _useTranslation.i18n;
54445
-
54446
- var language = reactRedux.useSelector(function (state) {
54447
- return state.common.language;
54448
- });
54449
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54450
-
54451
- var _useState = React.useState([]),
54452
- languageList = _useState[0],
54453
- setLanguageList = _useState[1];
54454
-
54455
- var _useState2 = React.useState(false),
54456
- dropdownOpen = _useState2[0],
54457
- setDropdownOpen = _useState2[1];
54458
-
54459
- var _useState3 = React.useState(defaultLanguage),
54460
- currentLang = _useState3[0],
54461
- setCurrentLang = _useState3[1];
54462
-
54463
- var toggle = function toggle() {
54464
- return setDropdownOpen(function (prevState) {
54465
- return !prevState;
54466
- });
54467
- };
54468
-
54469
- var changeLanguageApp = function changeLanguageApp(lang) {
54470
- try {
54471
- var _temp3 = function _temp3() {
54472
- dispatch(setLoading(false));
54473
- };
54474
-
54475
- dispatch(setLoading(true));
54476
-
54477
- var _temp4 = _catch(function () {
54478
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54479
- i18n.changeLanguage(lang);
54480
- setCurrentLang(lang);
54481
- dispatch(setLanguage(lang));
54482
- });
54483
- }, function (err) {
54484
- var _err$response, _err$response$data;
54485
-
54486
- dispatch(setAlert({
54487
- type: "danger",
54488
- 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
54489
- }));
54490
- });
54491
-
54492
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54493
- } catch (e) {
54494
- return Promise.reject(e);
54495
- }
54496
- };
54497
-
54498
- var getListLanguage = function getListLanguage() {
54499
- try {
54500
- var _temp6 = _catch(function () {
54501
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54502
- setLanguageList(res.data);
54503
- });
54504
- }, function (err) {
54505
- var _err$response2, _err$response2$data;
54506
-
54507
- dispatch(setAlert({
54508
- type: "danger",
54509
- 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
54510
- }));
54511
- });
54512
-
54513
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54514
- } catch (e) {
54515
- return Promise.reject(e);
54516
- }
54517
- };
54518
-
54519
- React.useEffect(function () {
54520
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54521
- getListLanguage();
54522
- }, []);
54523
- return {
54524
- languageList: languageList,
54525
- toggle: toggle,
54526
- dropdownOpen: dropdownOpen,
54527
- currentLang: currentLang,
54528
- changeLanguageApp: changeLanguageApp,
54529
- setCurrentLang: setCurrentLang
54530
- };
54531
- };
54532
-
54533
- var TheLanguageDropdown = function TheLanguageDropdown() {
54534
- var _useLanguages = useLanguages(),
54535
- languageList = _useLanguages.languageList,
54536
- toggle = _useLanguages.toggle,
54537
- dropdownOpen = _useLanguages.dropdownOpen,
54538
- currentLang = _useLanguages.currentLang,
54539
- changeLanguageApp = _useLanguages.changeLanguageApp;
54540
-
54541
- var currentLanguage = React.useMemo(function () {
54542
- var current = languageList.find(function (i) {
54543
- return i.code === currentLang;
54544
- });
54545
- if (!current) return null;
54546
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
54547
- className: "mr-2 " + styles['dropdown-menu-flag'],
54548
- src: "" + getStaticFileUrl(current.image)
54549
- }), " ", current.name);
54550
- }, [currentLang, languageList]);
54551
- return React__default.createElement(reactstrap.Dropdown, {
54552
- isOpen: dropdownOpen,
54553
- toggle: toggle,
54554
- className: "" + styles["dropdown-menu"]
54555
- }, React__default.createElement(reactstrap.DropdownToggle, {
54556
- className: styles["header-avatar"] + " d-flex align-items-center"
54557
- }, React__default.createElement("span", {
54558
- style: {
54559
- color: "#000",
54560
- textTransform: "capitalize",
54561
- display: 'flex',
54562
- alignItems: 'center'
54563
- }
54564
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
54565
- className: "ml-2",
54566
- style: {
54567
- fontSize: '10px'
54568
- }
54569
- }))), React__default.createElement(reactstrap.DropdownMenu, {
54570
- className: styles["dropdown-content-language"]
54571
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54572
- return React__default.createElement(reactstrap.DropdownItem, {
54573
- key: lang.code,
54574
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54575
- onClick: function onClick() {
54576
- return changeLanguageApp(lang.code);
54577
- }
54578
- }, React__default.createElement("div", {
54579
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54580
- }, React__default.createElement("span", {
54581
- className: "mr-2 d-flex hover-opacity"
54582
- }, React__default.createElement("img", {
54583
- style: {
54584
- width: "30px",
54585
- height: "25px",
54586
- borderRadius: "5px"
54587
- },
54588
- src: getStaticFileUrl(lang.image)
54589
- })), lang.name));
54590
- })));
54591
- };
54592
-
54593
- var TheHeader = function TheHeader(_ref) {
54594
- var onToggleModel = _ref.onToggleModel;
54595
- var dispatch = reactRedux.useDispatch();
54596
- var sidebarShow = reactRedux.useSelector(function (state) {
54597
- return state.common.sidebarShow;
54598
- });
54599
-
54600
- var _useTranslation = reactI18next.useTranslation(),
54601
- t = _useTranslation.t;
54602
-
54603
- var toggleSidebarMobile = function toggleSidebarMobile() {
54604
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54605
- dispatch(setSidebar(val));
54606
- };
54607
-
54608
- var isDistrict = window.location.host.includes("-district");
54609
- return React__default.createElement(react.CHeader, {
54610
- withSubheader: true,
54611
- className: "d-flex align-items-center justify-content-end"
54612
- }, React__default.createElement(react.CToggler, {
54613
- inHeader: true,
54614
- className: "ml-md-3 d-lg-none",
54615
- onClick: toggleSidebarMobile
54616
- }), React__default.createElement(react.CHeaderBrand, {
54617
- className: "mx-auto flex-grow-1 d-lg-none",
54618
- to: "/"
54619
- }, React__default.createElement("img", {
54620
- src: getStaticFileUrl(Images.LOGO_HEADER),
54621
- className: styles["header-logo"]
54622
- })), React__default.createElement(react.CHeaderNav, {
54623
- className: "pr-3"
54624
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
54625
- className: "mr-3",
54626
- style: {
54627
- color: '#000'
54628
- },
54629
- href: '/privacy-policy',
54630
- target: "blank"
54631
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
54632
- onToggleModel: onToggleModel
54633
- })));
54634
- };
54635
-
54636
- var ModelSelectRole = function ModelSelectRole(_ref) {
54637
- var _handleUserRole;
54638
-
54639
- var open = _ref.open,
54640
- onToggleModel = _ref.onToggleModel;
54641
- var dispatch = reactRedux.useDispatch();
54642
-
54643
- var _useTranslation = reactI18next.useTranslation(),
54644
- t = _useTranslation.t;
54645
-
54646
- var history = reactRouterDom.useHistory();
54647
- var pathname = window.location.pathname;
54648
- var user = reactRedux.useSelector(function (state) {
54649
- return state.common.user;
54650
- });
54651
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54652
-
54653
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54654
- dispatch(setLoading(true));
54655
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54656
- dispatch(setUser(_extends({}, user, {
54657
- roles: roleSelect
54658
- })));
54659
- localStorage.setItem("ROLES", roleSelect.toString());
54660
- onToggleModel();
54661
-
54662
- if (roles.includes("Parent")) {
54663
- history.push("/parent");
54664
- } else if (roles.includes("Admin")) {
54665
- history.push("/admin/home");
54666
- } else {
54667
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54668
- }
54669
- };
54670
-
54671
- return React__default.createElement(reactstrap.Modal, {
54672
- isOpen: open,
54673
- toggle: function toggle() {
54674
- return onToggleModel();
54675
- },
54676
- className: "" + styles["model-switch-roles"],
54677
- centered: true
54678
- }, React__default.createElement("p", {
54679
- className: "" + styles["title"]
54680
- }, 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) {
54681
- return React__default.createElement("p", {
54682
- key: r,
54683
- 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" : ""],
54684
- onClick: function onClick() {
54685
- return handleSelectUserRoles([r]);
54686
- }
54687
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54688
- })));
54689
- };
54690
-
54691
- var TheLayout = function TheLayout(_ref) {
54692
- var routes = _ref.routes,
54693
- navigation = _ref.navigation;
54694
- var history = reactRouterDom.useHistory();
54695
- var dispatch = reactRedux.useDispatch();
54696
- var user = reactRedux.useSelector(function (state) {
54697
- return state.common.user;
54698
- });
54699
- var language = reactRedux.useSelector(function (state) {
54700
- return state.common.language;
54701
- });
54702
-
54703
- var _useState = React.useState(false),
54704
- openModelSelectRole = _useState[0],
54705
- setOpenModelSelectRole = _useState[1];
54706
-
54707
- var _useTranslation = reactI18next.useTranslation(),
54708
- t = _useTranslation.t;
54709
-
54710
- var location = reactRouterDom.useLocation();
54711
- var isNotification = location.pathname.includes("notifications");
54712
- var isDistrict = window.location.host.includes("-district");
54713
-
54714
- var handleToggleModel = function handleToggleModel() {
54715
- setOpenModelSelectRole(!openModelSelectRole);
54716
- };
54717
-
54718
- var authRoutes = React.useMemo(function () {
54719
- return routes.filter(function (route) {
54720
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54721
- }).filter(function (route) {
54722
- return !!route.isDistrict === isDistrict;
54723
- });
54724
- }, [user, language]);
54725
- var authNavigations = React.useMemo(function () {
54726
- return navigation.map(function (item) {
54727
- var _item$_children, _item$_children2;
54728
-
54729
- return _extends({}, item, {
54730
- name: t(item.name),
54731
- _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) {
54732
- return _extends({}, x, {
54733
- name: t(x.name)
54734
- });
54735
- }) : undefined
54736
- });
54737
- }).filter(function (nav) {
54738
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54739
- }).filter(function (nav) {
54740
- return !!nav.isDistrict === isDistrict;
54741
- });
54742
- }, [user, language]);
54743
-
54744
- var getInformationSetting = function getInformationSetting() {
54745
- try {
54746
- var _temp2 = _catch(function () {
54747
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54748
- dispatch(setSandboxMode(res.data.isSandboxMode));
54749
- });
54750
- }, function (err) {
54751
- console.error(err);
54752
- });
54753
-
54754
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54755
- } catch (e) {
54756
- return Promise.reject(e);
54757
- }
54758
- };
54759
-
54760
- React.useEffect(function () {
54761
- checkAuthentication();
54762
- }, []);
54763
- React.useEffect(function () {
54764
- getInformationSetting();
54765
- }, [location.pathname]);
54766
-
54767
- var checkAuthentication = function checkAuthentication() {
54768
- try {
54769
- var _temp4 = _catch(function () {
54770
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
54771
- tokenStatus ? loadInfo() : resetAuth();
54772
- });
54773
- }, function () {
54774
- resetAuth();
54775
- });
54776
-
54777
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
54778
- } catch (e) {
54779
- return Promise.reject(e);
54780
- }
54781
- };
54782
-
54783
- var loadInfo = function loadInfo() {
54784
- try {
54785
- var _temp6 = _catch(function () {
54786
- return Promise.resolve(getInfo()).then(function (info) {
54787
- var _info$data, _info$data$roles;
54788
-
54789
- 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"))) {
54790
- resetAuth();
54791
- }
54792
-
54793
- dispatch(setUser(info.data));
54794
- });
54795
- }, function () {
54796
- resetAuth();
54797
- });
54798
-
54799
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54800
- } catch (e) {
54801
- return Promise.reject(e);
54802
- }
54803
- };
54804
-
54805
- var resetAuth = function resetAuth() {
54806
- localStorage.removeItem(ACCESS_TOKEN);
54807
- sessionStorage.removeItem(ACCESS_TOKEN);
54808
- localStorage.removeItem("ROLES");
54809
- history.push("/");
54810
- };
54811
-
54812
- if (!user) {
54813
- return React__default.createElement(Loading, null);
54814
- }
54815
-
54816
- return React__default.createElement("div", {
54817
- className: "c-app c-default-layout"
54818
- }, !isNotification && React__default.createElement(TheSidebar, {
54819
- navigation: authNavigations
54820
- }), React__default.createElement("div", {
54821
- className: "c-wrapper"
54822
- }, !isNotification && React__default.createElement(TheHeader, {
54823
- onToggleModel: handleToggleModel
54824
- }), React__default.createElement("div", {
54825
- className: "c-body bg-white"
54826
- }, React__default.createElement(TheContent$1, {
54827
- routes: authRoutes
54828
- }))), React__default.createElement(ModelSelectRole, {
54829
- open: openModelSelectRole,
54830
- onToggleModel: handleToggleModel
54831
- }));
54832
- };
54833
-
54834
54846
  var amplitudeClient = amplitude;
54835
54847
 
54836
54848
  Object.defineProperty(exports, 'I18nextProvider', {