mario-core 2.9.417-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
@@ -22176,6 +22176,10 @@ var CsvImportType;
22176
22176
  CsvImportType[CsvImportType["Admin"] = 1] = "Admin";
22177
22177
  })(CsvImportType || (CsvImportType = {}));
22178
22178
 
22179
+ var domainName = window.location.hostname;
22180
+ var listCheckMalvernCollege = ['malverncollege', 'stage', 'localhost'];
22181
+ var isMalvernCollege = listCheckMalvernCollege.includes(domainName);
22182
+
22179
22183
  var resources$5 = {
22180
22184
  "en-US": {
22181
22185
  translation: lang_us
@@ -41888,6 +41892,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
41888
41892
  })), t("log_out")))));
41889
41893
  };
41890
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
+
41891
42101
  var TITLE$3 = "Not found";
41892
42102
 
41893
42103
  var NotFound = function NotFound() {
@@ -41945,35 +42155,287 @@ var TheContent = function TheContent(_ref) {
41945
42155
 
41946
42156
  var TheContent$1 = React__default.memo(TheContent);
41947
42157
 
41948
- var buttonTextStyle = {
41949
- fontWeight: 500
41950
- };
41951
- var buttonStyle = {
41952
- height: 38
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"
41953
42169
  };
41954
42170
 
41955
- var AddButton = function AddButton(_ref) {
41956
- var text = _ref.text,
41957
- onClick = _ref.onClick;
41958
- return React__default.createElement(reactstrap.Button, {
41959
- onClick: onClick,
41960
- color: 'success',
41961
- style: buttonStyle,
41962
- className: 'd-flex align-items-center'
41963
- }, React__default.createElement(fa.FaPlus, null), React__default.createElement("span", {
41964
- className: 'ml-2',
41965
- style: buttonTextStyle
41966
- }, text));
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;
41967
42184
  };
41968
42185
 
41969
- var DeleteButtonIcon = function DeleteButtonIcon(_ref) {
41970
- var onClick = _ref.onClick,
41971
- className = _ref.className;
41972
- return React__default.createElement("div", {
41973
- className: "d-inline text-center cursor-pointer hover-opacity",
41974
- title: "Delete",
41975
- onClick: onClick
41976
- }, React__default.createElement(fa.FaTrashAlt, {
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
+
42410
+ var buttonTextStyle = {
42411
+ fontWeight: 500
42412
+ };
42413
+ var buttonStyle = {
42414
+ height: 38
42415
+ };
42416
+
42417
+ var AddButton = function AddButton(_ref) {
42418
+ var text = _ref.text,
42419
+ onClick = _ref.onClick;
42420
+ return React__default.createElement(reactstrap.Button, {
42421
+ onClick: onClick,
42422
+ color: 'success',
42423
+ style: buttonStyle,
42424
+ className: 'd-flex align-items-center'
42425
+ }, React__default.createElement(fa.FaPlus, null), React__default.createElement("span", {
42426
+ className: 'ml-2',
42427
+ style: buttonTextStyle
42428
+ }, text));
42429
+ };
42430
+
42431
+ var DeleteButtonIcon = function DeleteButtonIcon(_ref) {
42432
+ var onClick = _ref.onClick,
42433
+ className = _ref.className;
42434
+ return React__default.createElement("div", {
42435
+ className: "d-inline text-center cursor-pointer hover-opacity",
42436
+ title: "Delete",
42437
+ onClick: onClick
42438
+ }, React__default.createElement(fa.FaTrashAlt, {
41977
42439
  className: className
41978
42440
  }));
41979
42441
  };
@@ -44656,11 +45118,14 @@ var GRADE_DEFAULT = [{
44656
45118
  }, {
44657
45119
  label: "12",
44658
45120
  value: "12"
44659
- }, {
45121
+ }].concat(isMalvernCollege ? [{
45122
+ label: "12/13",
45123
+ value: "12/13"
45124
+ }] : [], [{
44660
45125
  label: "13",
44661
45126
  value: "13"
44662
- }];
44663
- 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"]);
44664
45129
  var gradeOptions = [{
44665
45130
  label: "K",
44666
45131
  value: "K"
@@ -44703,10 +45168,13 @@ var gradeOptions = [{
44703
45168
  }, {
44704
45169
  label: "12",
44705
45170
  value: "12"
44706
- }, {
45171
+ }].concat(isMalvernCollege ? [{
45172
+ label: "12/13",
45173
+ value: "12/13"
45174
+ }] : [], [{
44707
45175
  label: "13",
44708
45176
  value: "13"
44709
- }];
45177
+ }]);
44710
45178
  var initStaffDeleteBulk = {
44711
45179
  assistantRemoveUserId: [],
44712
45180
  counselorRemoveUserIds: [],
@@ -51319,34 +51787,6 @@ var UserDetail = function UserDetail() {
51319
51787
  });
51320
51788
  };
51321
51789
 
51322
- var loadingStyle = {
51323
- minWidth: "100vw",
51324
- minHeight: "100vh",
51325
- position: "fixed",
51326
- top: 0,
51327
- left: 0,
51328
- zIndex: 999999999,
51329
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51330
- display: "flex",
51331
- justifyContent: "center",
51332
- alignItems: "center"
51333
- };
51334
-
51335
- var Loading = function Loading() {
51336
- var isLoading = reactRedux.useSelector(function (state) {
51337
- return state.common.isLoading;
51338
- });
51339
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51340
- return isLoading ? React__default.createElement("div", {
51341
- style: loadingStyle
51342
- }, React__default.createElement("div", {
51343
- className: "spinner-border text-secondary",
51344
- role: "status"
51345
- }, React__default.createElement("span", {
51346
- className: "sr-only"
51347
- }, "Loading..."))) : null;
51348
- };
51349
-
51350
51790
  var ScrollToTop = function ScrollToTop() {
51351
51791
  var _useLocation = reactRouterDom.useLocation(),
51352
51792
  pathname = _useLocation.pathname;
@@ -54370,32 +54810,6 @@ var store = toolkit.configureStore({
54370
54810
  }
54371
54811
  });
54372
54812
 
54373
- var firstCheckToken = function firstCheckToken() {
54374
- return Promise.resolve(_catch(function () {
54375
- var token = getAccessToken();
54376
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54377
- return tokenStatus.data ? true : false;
54378
- }) : false;
54379
- }, function () {
54380
- return false;
54381
- }));
54382
- };
54383
-
54384
- var canAccess = function canAccess(userRoles, componentRoles) {
54385
- if (!Array.isArray(userRoles)) {
54386
- return false;
54387
- }
54388
-
54389
- if (Array.isArray(componentRoles)) {
54390
- var intersects = userRoles.filter(function (i) {
54391
- return componentRoles.includes(i);
54392
- });
54393
- return intersects.length > 0;
54394
- }
54395
-
54396
- return true;
54397
- };
54398
-
54399
54813
  var isInViewport = function isInViewport(el) {
54400
54814
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54401
54815
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54429,410 +54843,6 @@ var generateRandomString = (function () {
54429
54843
  return (Math.random() + 1).toString(36).substring(7);
54430
54844
  });
54431
54845
 
54432
- var apiGetLanguage = function apiGetLanguage() {
54433
- return api.get(BASE_URL + "/api/language");
54434
- };
54435
-
54436
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54437
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54438
- };
54439
-
54440
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54441
-
54442
- var useLanguages = function useLanguages() {
54443
- var dispatch = reactRedux.useDispatch();
54444
-
54445
- var _useTranslation = reactI18next.useTranslation(),
54446
- i18n = _useTranslation.i18n;
54447
-
54448
- var language = reactRedux.useSelector(function (state) {
54449
- return state.common.language;
54450
- });
54451
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54452
-
54453
- var _useState = React.useState([]),
54454
- languageList = _useState[0],
54455
- setLanguageList = _useState[1];
54456
-
54457
- var _useState2 = React.useState(false),
54458
- dropdownOpen = _useState2[0],
54459
- setDropdownOpen = _useState2[1];
54460
-
54461
- var _useState3 = React.useState(defaultLanguage),
54462
- currentLang = _useState3[0],
54463
- setCurrentLang = _useState3[1];
54464
-
54465
- var toggle = function toggle() {
54466
- return setDropdownOpen(function (prevState) {
54467
- return !prevState;
54468
- });
54469
- };
54470
-
54471
- var changeLanguageApp = function changeLanguageApp(lang) {
54472
- try {
54473
- var _temp3 = function _temp3() {
54474
- dispatch(setLoading(false));
54475
- };
54476
-
54477
- dispatch(setLoading(true));
54478
-
54479
- var _temp4 = _catch(function () {
54480
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54481
- i18n.changeLanguage(lang);
54482
- setCurrentLang(lang);
54483
- dispatch(setLanguage(lang));
54484
- });
54485
- }, function (err) {
54486
- var _err$response, _err$response$data;
54487
-
54488
- dispatch(setAlert({
54489
- type: "danger",
54490
- 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
54491
- }));
54492
- });
54493
-
54494
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54495
- } catch (e) {
54496
- return Promise.reject(e);
54497
- }
54498
- };
54499
-
54500
- var getListLanguage = function getListLanguage() {
54501
- try {
54502
- var _temp6 = _catch(function () {
54503
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54504
- setLanguageList(res.data);
54505
- });
54506
- }, function (err) {
54507
- var _err$response2, _err$response2$data;
54508
-
54509
- dispatch(setAlert({
54510
- type: "danger",
54511
- 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
54512
- }));
54513
- });
54514
-
54515
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54516
- } catch (e) {
54517
- return Promise.reject(e);
54518
- }
54519
- };
54520
-
54521
- React.useEffect(function () {
54522
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54523
- getListLanguage();
54524
- }, []);
54525
- return {
54526
- languageList: languageList,
54527
- toggle: toggle,
54528
- dropdownOpen: dropdownOpen,
54529
- currentLang: currentLang,
54530
- changeLanguageApp: changeLanguageApp,
54531
- setCurrentLang: setCurrentLang
54532
- };
54533
- };
54534
-
54535
- var TheLanguageDropdown = function TheLanguageDropdown() {
54536
- var _useLanguages = useLanguages(),
54537
- languageList = _useLanguages.languageList,
54538
- toggle = _useLanguages.toggle,
54539
- dropdownOpen = _useLanguages.dropdownOpen,
54540
- currentLang = _useLanguages.currentLang,
54541
- changeLanguageApp = _useLanguages.changeLanguageApp;
54542
-
54543
- var currentLanguage = React.useMemo(function () {
54544
- var current = languageList.find(function (i) {
54545
- return i.code === currentLang;
54546
- });
54547
- if (!current) return null;
54548
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
54549
- className: "mr-2 " + styles['dropdown-menu-flag'],
54550
- src: "" + getStaticFileUrl(current.image)
54551
- }), " ", current.name);
54552
- }, [currentLang, languageList]);
54553
- return React__default.createElement(reactstrap.Dropdown, {
54554
- isOpen: dropdownOpen,
54555
- toggle: toggle,
54556
- className: "" + styles["dropdown-menu"]
54557
- }, React__default.createElement(reactstrap.DropdownToggle, {
54558
- className: styles["header-avatar"] + " d-flex align-items-center"
54559
- }, React__default.createElement("span", {
54560
- style: {
54561
- color: "#000",
54562
- textTransform: "capitalize",
54563
- display: 'flex',
54564
- alignItems: 'center'
54565
- }
54566
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
54567
- className: "ml-2",
54568
- style: {
54569
- fontSize: '10px'
54570
- }
54571
- }))), React__default.createElement(reactstrap.DropdownMenu, {
54572
- className: styles["dropdown-content-language"]
54573
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54574
- return React__default.createElement(reactstrap.DropdownItem, {
54575
- key: lang.code,
54576
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54577
- onClick: function onClick() {
54578
- return changeLanguageApp(lang.code);
54579
- }
54580
- }, React__default.createElement("div", {
54581
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54582
- }, React__default.createElement("span", {
54583
- className: "mr-2 d-flex hover-opacity"
54584
- }, React__default.createElement("img", {
54585
- style: {
54586
- width: "30px",
54587
- height: "25px",
54588
- borderRadius: "5px"
54589
- },
54590
- src: getStaticFileUrl(lang.image)
54591
- })), lang.name));
54592
- })));
54593
- };
54594
-
54595
- var TheHeader = function TheHeader(_ref) {
54596
- var onToggleModel = _ref.onToggleModel;
54597
- var dispatch = reactRedux.useDispatch();
54598
- var sidebarShow = reactRedux.useSelector(function (state) {
54599
- return state.common.sidebarShow;
54600
- });
54601
-
54602
- var _useTranslation = reactI18next.useTranslation(),
54603
- t = _useTranslation.t;
54604
-
54605
- var toggleSidebarMobile = function toggleSidebarMobile() {
54606
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54607
- dispatch(setSidebar(val));
54608
- };
54609
-
54610
- var isDistrict = window.location.host.includes("-district");
54611
- return React__default.createElement(react.CHeader, {
54612
- withSubheader: true,
54613
- className: "d-flex align-items-center justify-content-end"
54614
- }, React__default.createElement(react.CToggler, {
54615
- inHeader: true,
54616
- className: "ml-md-3 d-lg-none",
54617
- onClick: toggleSidebarMobile
54618
- }), React__default.createElement(react.CHeaderBrand, {
54619
- className: "mx-auto flex-grow-1 d-lg-none",
54620
- to: "/"
54621
- }, React__default.createElement("img", {
54622
- src: getStaticFileUrl(Images.LOGO_HEADER),
54623
- className: styles["header-logo"]
54624
- })), React__default.createElement(react.CHeaderNav, {
54625
- className: "pr-3"
54626
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
54627
- className: "mr-3",
54628
- style: {
54629
- color: '#000'
54630
- },
54631
- href: '/privacy-policy',
54632
- target: "blank"
54633
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
54634
- onToggleModel: onToggleModel
54635
- })));
54636
- };
54637
-
54638
- var ModelSelectRole = function ModelSelectRole(_ref) {
54639
- var _handleUserRole;
54640
-
54641
- var open = _ref.open,
54642
- onToggleModel = _ref.onToggleModel;
54643
- var dispatch = reactRedux.useDispatch();
54644
-
54645
- var _useTranslation = reactI18next.useTranslation(),
54646
- t = _useTranslation.t;
54647
-
54648
- var history = reactRouterDom.useHistory();
54649
- var pathname = window.location.pathname;
54650
- var user = reactRedux.useSelector(function (state) {
54651
- return state.common.user;
54652
- });
54653
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54654
-
54655
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54656
- dispatch(setLoading(true));
54657
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54658
- dispatch(setUser(_extends({}, user, {
54659
- roles: roleSelect
54660
- })));
54661
- localStorage.setItem("ROLES", roleSelect.toString());
54662
- onToggleModel();
54663
-
54664
- if (roles.includes("Parent")) {
54665
- history.push("/parent");
54666
- } else if (roles.includes("Admin")) {
54667
- history.push("/admin/home");
54668
- } else {
54669
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54670
- }
54671
- };
54672
-
54673
- return React__default.createElement(reactstrap.Modal, {
54674
- isOpen: open,
54675
- toggle: function toggle() {
54676
- return onToggleModel();
54677
- },
54678
- className: "" + styles["model-switch-roles"],
54679
- centered: true
54680
- }, React__default.createElement("p", {
54681
- className: "" + styles["title"]
54682
- }, 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) {
54683
- return React__default.createElement("p", {
54684
- key: r,
54685
- 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" : ""],
54686
- onClick: function onClick() {
54687
- return handleSelectUserRoles([r]);
54688
- }
54689
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54690
- })));
54691
- };
54692
-
54693
- var TheLayout = function TheLayout(_ref) {
54694
- var routes = _ref.routes,
54695
- navigation = _ref.navigation;
54696
- var history = reactRouterDom.useHistory();
54697
- var dispatch = reactRedux.useDispatch();
54698
- var user = reactRedux.useSelector(function (state) {
54699
- return state.common.user;
54700
- });
54701
- var language = reactRedux.useSelector(function (state) {
54702
- return state.common.language;
54703
- });
54704
-
54705
- var _useState = React.useState(false),
54706
- openModelSelectRole = _useState[0],
54707
- setOpenModelSelectRole = _useState[1];
54708
-
54709
- var _useTranslation = reactI18next.useTranslation(),
54710
- t = _useTranslation.t;
54711
-
54712
- var location = reactRouterDom.useLocation();
54713
- var isNotification = location.pathname.includes("notifications");
54714
- var isDistrict = window.location.host.includes("-district");
54715
-
54716
- var handleToggleModel = function handleToggleModel() {
54717
- setOpenModelSelectRole(!openModelSelectRole);
54718
- };
54719
-
54720
- var authRoutes = React.useMemo(function () {
54721
- return routes.filter(function (route) {
54722
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54723
- }).filter(function (route) {
54724
- return !!route.isDistrict === isDistrict;
54725
- });
54726
- }, [user, language]);
54727
- var authNavigations = React.useMemo(function () {
54728
- return navigation.map(function (item) {
54729
- var _item$_children, _item$_children2;
54730
-
54731
- return _extends({}, item, {
54732
- name: t(item.name),
54733
- _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) {
54734
- return _extends({}, x, {
54735
- name: t(x.name)
54736
- });
54737
- }) : undefined
54738
- });
54739
- }).filter(function (nav) {
54740
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54741
- }).filter(function (nav) {
54742
- return !!nav.isDistrict === isDistrict;
54743
- });
54744
- }, [user, language]);
54745
-
54746
- var getInformationSetting = function getInformationSetting() {
54747
- try {
54748
- var _temp2 = _catch(function () {
54749
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54750
- dispatch(setSandboxMode(res.data.isSandboxMode));
54751
- });
54752
- }, function (err) {
54753
- console.error(err);
54754
- });
54755
-
54756
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54757
- } catch (e) {
54758
- return Promise.reject(e);
54759
- }
54760
- };
54761
-
54762
- React.useEffect(function () {
54763
- checkAuthentication();
54764
- }, []);
54765
- React.useEffect(function () {
54766
- getInformationSetting();
54767
- }, [location.pathname]);
54768
-
54769
- var checkAuthentication = function checkAuthentication() {
54770
- try {
54771
- var _temp4 = _catch(function () {
54772
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
54773
- tokenStatus ? loadInfo() : resetAuth();
54774
- });
54775
- }, function () {
54776
- resetAuth();
54777
- });
54778
-
54779
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
54780
- } catch (e) {
54781
- return Promise.reject(e);
54782
- }
54783
- };
54784
-
54785
- var loadInfo = function loadInfo() {
54786
- try {
54787
- var _temp6 = _catch(function () {
54788
- return Promise.resolve(getInfo()).then(function (info) {
54789
- var _info$data, _info$data$roles;
54790
-
54791
- 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"))) {
54792
- resetAuth();
54793
- }
54794
-
54795
- dispatch(setUser(info.data));
54796
- });
54797
- }, function () {
54798
- resetAuth();
54799
- });
54800
-
54801
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54802
- } catch (e) {
54803
- return Promise.reject(e);
54804
- }
54805
- };
54806
-
54807
- var resetAuth = function resetAuth() {
54808
- localStorage.removeItem(ACCESS_TOKEN);
54809
- sessionStorage.removeItem(ACCESS_TOKEN);
54810
- localStorage.removeItem("ROLES");
54811
- history.push("/");
54812
- };
54813
-
54814
- if (!user) {
54815
- return React__default.createElement(Loading, null);
54816
- }
54817
-
54818
- return React__default.createElement("div", {
54819
- className: "c-app c-default-layout"
54820
- }, !isNotification && React__default.createElement(TheSidebar, {
54821
- navigation: authNavigations
54822
- }), React__default.createElement("div", {
54823
- className: "c-wrapper"
54824
- }, !isNotification && React__default.createElement(TheHeader, {
54825
- onToggleModel: handleToggleModel
54826
- }), React__default.createElement("div", {
54827
- className: "c-body bg-white"
54828
- }, React__default.createElement(TheContent$1, {
54829
- routes: authRoutes
54830
- }))), React__default.createElement(ModelSelectRole, {
54831
- open: openModelSelectRole,
54832
- onToggleModel: handleToggleModel
54833
- }));
54834
- };
54835
-
54836
54846
  var amplitudeClient = amplitude;
54837
54847
 
54838
54848
  Object.defineProperty(exports, 'I18nextProvider', {