mario-core 2.9.428-feedback → 2.9.430-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
@@ -82,7 +82,7 @@ var total_1_to_1 = "Total 1-to-1s";
82
82
  var total_1_to_1_time = "Total 1-to-1 Time";
83
83
  var total_conferences = "Total Conferences";
84
84
  var total_conferences_time = "Total Conference Time";
85
- var total_class_reflection_check_ins = "Total Class Reflection Check Ins";
85
+ var total_class_reflection_check_ins = "Total Class Reflection Check-Ins";
86
86
  var create_user = "Create user";
87
87
  var edit_user = "Edit user";
88
88
  var change_password = "Change password";
@@ -681,7 +681,7 @@ var start = "start";
681
681
  var teacher_reflection = "Teacher Reflections";
682
682
  var notes = "Notes";
683
683
  var student_reflection = "Student Reflections";
684
- var view_latest_check_ins = "View Latest Check Ins";
684
+ var view_latest_check_ins = "View Latest Check-Ins";
685
685
  var this_week_s = "This Week's";
686
686
  var missing_weekly_check_in = "missing weekly check-in";
687
687
  var add_new_student = "Add new student";
@@ -698,7 +698,7 @@ var start_a_1_1_conversation = "Start a 1-1 Conversation";
698
698
  var view_results = "View results";
699
699
  var request_check_in = "Request check-in";
700
700
  var last = "Last";
701
- var latest_check_ins = "Latest Check Ins";
701
+ var latest_check_ins = "Latest Check-Ins";
702
702
  var students_who_missing_weekly_check_in = "Students who missing weekly check-in";
703
703
  var this_student_does_nt_have_missing_check_in = "This student doesn’t have missing check-in";
704
704
  var no_student_missing_weekly_check_in = "No student missing weekly check-in";
@@ -760,7 +760,7 @@ var how_many_times_a_strategy_has_been_chosen = "How many times a strategy has b
760
760
  var these_metrics_come_from_students_check_ins_filter_above_to_change_the_data_set = "These metrics come from student check-ins. Filter above to change the data set";
761
761
  var not_yet_started = "Not yet started";
762
762
  var in_progress = "In progress";
763
- var export_check_ins_to_csv = "Export Check Ins to CSV";
763
+ var export_check_ins_to_csv = "Export Check-Ins to CSV";
764
764
  var these_metrics_come_from_the_conference_rubric_only_teacher_responses_are_scored = "These metrics come from the conference rubric. Only teacher responses are scored";
765
765
  var please_save_first = "Please save first";
766
766
  var print_date = "Print date";
@@ -2170,7 +2170,7 @@ var check_ins_tab = "Check-ins";
2170
2170
  var start_check_in_homepage = "Start Check-in";
2171
2171
  var select_the_teacher_or_counselor_asking_you_to_check_in_if_you_have_more_than_one_teacher_choose_any_teacher_in_the_class_all_the_teachers_and_counselors_listed_can_view_your_check_ins = "Select the teacher or counselor asking you to check-in. If you have more than one teacher, choose any teacher in the class. All the teachers and counselors listed can view your check-ins.";
2172
2172
  var total_check_ins = "Total Check-ins";
2173
- var check_ins = "Check Ins";
2173
+ var check_ins = "Check-Ins";
2174
2174
  var here_you_can_find_all_the_notes_and_1_1_conversations_logs_the_student_has = "Here you can find all the notes and 1-1 conversations logs the student has.";
2175
2175
  var back_to_notes_and_logs = "Back to Notes and Logs";
2176
2176
  var students_review = "Student's Review";
@@ -2251,7 +2251,7 @@ var lang_us = {
2251
2251
  tooltip_content_students_by_designation: tooltip_content_students_by_designation,
2252
2252
  total_1_to_1: total_1_to_1,
2253
2253
  "total_-session": "Total Check-ins",
2254
- "total_-sessions": "Total Check Ins",
2254
+ "total_-sessions": "Total Check-Ins",
2255
2255
  total_1_to_1_time: total_1_to_1_time,
2256
2256
  total_conferences: total_conferences,
2257
2257
  total_conferences_time: total_conferences_time,
@@ -42064,6 +42064,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
42064
42064
  })), t("log_out")))));
42065
42065
  };
42066
42066
 
42067
+ var apiGetLanguage = function apiGetLanguage() {
42068
+ return api.get(BASE_URL + "/api/language");
42069
+ };
42070
+
42071
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
42072
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
42073
+ };
42074
+
42075
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
42076
+
42077
+ var useLanguages = function useLanguages() {
42078
+ var dispatch = reactRedux.useDispatch();
42079
+
42080
+ var _useTranslation = reactI18next.useTranslation(),
42081
+ i18n = _useTranslation.i18n;
42082
+
42083
+ var language = reactRedux.useSelector(function (state) {
42084
+ return state.common.language;
42085
+ });
42086
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
42087
+
42088
+ var _useState = React.useState([]),
42089
+ languageList = _useState[0],
42090
+ setLanguageList = _useState[1];
42091
+
42092
+ var _useState2 = React.useState(false),
42093
+ dropdownOpen = _useState2[0],
42094
+ setDropdownOpen = _useState2[1];
42095
+
42096
+ var _useState3 = React.useState(defaultLanguage),
42097
+ currentLang = _useState3[0],
42098
+ setCurrentLang = _useState3[1];
42099
+
42100
+ var toggle = function toggle() {
42101
+ return setDropdownOpen(function (prevState) {
42102
+ return !prevState;
42103
+ });
42104
+ };
42105
+
42106
+ var changeLanguageApp = function changeLanguageApp(lang) {
42107
+ try {
42108
+ var _temp3 = function _temp3() {
42109
+ dispatch(setLoading(false));
42110
+ };
42111
+
42112
+ dispatch(setLoading(true));
42113
+
42114
+ var _temp4 = _catch(function () {
42115
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
42116
+ i18n.changeLanguage(lang);
42117
+ setCurrentLang(lang);
42118
+ dispatch(setLanguage(lang));
42119
+ });
42120
+ }, function (err) {
42121
+ var _err$response, _err$response$data;
42122
+
42123
+ dispatch(setAlert({
42124
+ type: "danger",
42125
+ 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
42126
+ }));
42127
+ });
42128
+
42129
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
42130
+ } catch (e) {
42131
+ return Promise.reject(e);
42132
+ }
42133
+ };
42134
+
42135
+ var getListLanguage = function getListLanguage() {
42136
+ try {
42137
+ var _temp6 = _catch(function () {
42138
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
42139
+ setLanguageList(res.data);
42140
+ });
42141
+ }, function (err) {
42142
+ var _err$response2, _err$response2$data;
42143
+
42144
+ dispatch(setAlert({
42145
+ type: "danger",
42146
+ 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
42147
+ }));
42148
+ });
42149
+
42150
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42151
+ } catch (e) {
42152
+ return Promise.reject(e);
42153
+ }
42154
+ };
42155
+
42156
+ React.useEffect(function () {
42157
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
42158
+ getListLanguage();
42159
+ }, []);
42160
+ return {
42161
+ languageList: languageList,
42162
+ toggle: toggle,
42163
+ dropdownOpen: dropdownOpen,
42164
+ currentLang: currentLang,
42165
+ changeLanguageApp: changeLanguageApp,
42166
+ setCurrentLang: setCurrentLang
42167
+ };
42168
+ };
42169
+
42170
+ var TheLanguageDropdown = function TheLanguageDropdown() {
42171
+ var _useLanguages = useLanguages(),
42172
+ languageList = _useLanguages.languageList,
42173
+ toggle = _useLanguages.toggle,
42174
+ dropdownOpen = _useLanguages.dropdownOpen,
42175
+ currentLang = _useLanguages.currentLang,
42176
+ changeLanguageApp = _useLanguages.changeLanguageApp;
42177
+
42178
+ var currentLanguage = React.useMemo(function () {
42179
+ var current = languageList.find(function (i) {
42180
+ return i.code === currentLang;
42181
+ });
42182
+ if (!current) return null;
42183
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
42184
+ className: "mr-2 " + styles['dropdown-menu-flag'],
42185
+ src: "" + getStaticFileUrl(current.image)
42186
+ }), " ", current.name);
42187
+ }, [currentLang, languageList]);
42188
+ return React__default.createElement(reactstrap.Dropdown, {
42189
+ isOpen: dropdownOpen,
42190
+ toggle: toggle,
42191
+ className: "" + styles["dropdown-menu"]
42192
+ }, React__default.createElement(reactstrap.DropdownToggle, {
42193
+ className: styles["header-avatar"] + " d-flex align-items-center"
42194
+ }, React__default.createElement("span", {
42195
+ style: {
42196
+ color: "#000",
42197
+ textTransform: "capitalize",
42198
+ display: 'flex',
42199
+ alignItems: 'center'
42200
+ }
42201
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
42202
+ className: "ml-2",
42203
+ style: {
42204
+ fontSize: '10px'
42205
+ }
42206
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
42207
+ className: styles["dropdown-content-language"]
42208
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42209
+ return React__default.createElement(reactstrap.DropdownItem, {
42210
+ key: lang.code,
42211
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42212
+ onClick: function onClick() {
42213
+ return changeLanguageApp(lang.code);
42214
+ }
42215
+ }, React__default.createElement("div", {
42216
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42217
+ }, React__default.createElement("span", {
42218
+ className: "mr-2 d-flex hover-opacity"
42219
+ }, React__default.createElement("img", {
42220
+ style: {
42221
+ width: "30px",
42222
+ height: "25px",
42223
+ borderRadius: "5px"
42224
+ },
42225
+ src: getStaticFileUrl(lang.image)
42226
+ })), lang.name));
42227
+ })));
42228
+ };
42229
+
42230
+ var TheHeader = function TheHeader(_ref) {
42231
+ var onToggleModel = _ref.onToggleModel;
42232
+ var dispatch = reactRedux.useDispatch();
42233
+ var sidebarShow = reactRedux.useSelector(function (state) {
42234
+ return state.common.sidebarShow;
42235
+ });
42236
+
42237
+ var _useTranslation = reactI18next.useTranslation(),
42238
+ t = _useTranslation.t;
42239
+
42240
+ var toggleSidebarMobile = function toggleSidebarMobile() {
42241
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42242
+ dispatch(setSidebar(val));
42243
+ };
42244
+
42245
+ var isDistrict = window.location.host.includes("-district");
42246
+ return React__default.createElement(react.CHeader, {
42247
+ withSubheader: true,
42248
+ className: "d-flex align-items-center justify-content-end"
42249
+ }, React__default.createElement(react.CToggler, {
42250
+ inHeader: true,
42251
+ className: "ml-md-3 d-lg-none",
42252
+ onClick: toggleSidebarMobile
42253
+ }), React__default.createElement(react.CHeaderBrand, {
42254
+ className: "mx-auto flex-grow-1 d-lg-none",
42255
+ to: "/"
42256
+ }, React__default.createElement("img", {
42257
+ src: getStaticFileUrl(Images.LOGO_HEADER),
42258
+ className: styles["header-logo"]
42259
+ })), React__default.createElement(react.CHeaderNav, {
42260
+ className: "pr-3"
42261
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
42262
+ className: "mr-3",
42263
+ style: {
42264
+ color: '#000'
42265
+ },
42266
+ href: '/privacy-policy',
42267
+ target: "blank"
42268
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
42269
+ onToggleModel: onToggleModel
42270
+ })));
42271
+ };
42272
+
42067
42273
  var TITLE$3 = "Not found";
42068
42274
 
42069
42275
  var NotFound = function NotFound() {
@@ -42121,6 +42327,258 @@ var TheContent = function TheContent(_ref) {
42121
42327
 
42122
42328
  var TheContent$1 = React__default.memo(TheContent);
42123
42329
 
42330
+ var loadingStyle = {
42331
+ minWidth: "100vw",
42332
+ minHeight: "100vh",
42333
+ position: "fixed",
42334
+ top: 0,
42335
+ left: 0,
42336
+ zIndex: 999999999,
42337
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42338
+ display: "flex",
42339
+ justifyContent: "center",
42340
+ alignItems: "center"
42341
+ };
42342
+
42343
+ var Loading = function Loading() {
42344
+ var isLoading = reactRedux.useSelector(function (state) {
42345
+ return state.common.isLoading;
42346
+ });
42347
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42348
+ return isLoading ? React__default.createElement("div", {
42349
+ style: loadingStyle
42350
+ }, React__default.createElement("div", {
42351
+ className: "spinner-border text-secondary",
42352
+ role: "status"
42353
+ }, React__default.createElement("span", {
42354
+ className: "sr-only"
42355
+ }, "Loading..."))) : null;
42356
+ };
42357
+
42358
+ var firstCheckToken = function firstCheckToken() {
42359
+ return Promise.resolve(_catch(function () {
42360
+ var token = getAccessToken();
42361
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42362
+ return tokenStatus.data ? true : false;
42363
+ }) : false;
42364
+ }, function () {
42365
+ return false;
42366
+ }));
42367
+ };
42368
+
42369
+ var canAccess = function canAccess(userRoles, componentRoles) {
42370
+ if (!Array.isArray(userRoles)) {
42371
+ return false;
42372
+ }
42373
+
42374
+ if (Array.isArray(componentRoles)) {
42375
+ var intersects = userRoles.filter(function (i) {
42376
+ return componentRoles.includes(i);
42377
+ });
42378
+ return intersects.length > 0;
42379
+ }
42380
+
42381
+ return true;
42382
+ };
42383
+
42384
+ var ModelSelectRole = function ModelSelectRole(_ref) {
42385
+ var _handleUserRole;
42386
+
42387
+ var open = _ref.open,
42388
+ onToggleModel = _ref.onToggleModel;
42389
+ var dispatch = reactRedux.useDispatch();
42390
+
42391
+ var _useTranslation = reactI18next.useTranslation(),
42392
+ t = _useTranslation.t;
42393
+
42394
+ var history = reactRouterDom.useHistory();
42395
+ var pathname = window.location.pathname;
42396
+ var user = reactRedux.useSelector(function (state) {
42397
+ return state.common.user;
42398
+ });
42399
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
42400
+
42401
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42402
+ dispatch(setLoading(true));
42403
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42404
+ dispatch(setUser(_extends({}, user, {
42405
+ roles: roleSelect
42406
+ })));
42407
+ localStorage.setItem("ROLES", roleSelect.toString());
42408
+ onToggleModel();
42409
+
42410
+ if (roles.includes("Parent")) {
42411
+ history.push("/parent");
42412
+ } else if (roles.includes("Admin")) {
42413
+ history.push("/admin/home");
42414
+ } else {
42415
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
42416
+ }
42417
+ };
42418
+
42419
+ return React__default.createElement(reactstrap.Modal, {
42420
+ isOpen: open,
42421
+ toggle: function toggle() {
42422
+ return onToggleModel();
42423
+ },
42424
+ className: "" + styles["model-switch-roles"],
42425
+ centered: true
42426
+ }, React__default.createElement("p", {
42427
+ className: "" + styles["title"]
42428
+ }, 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) {
42429
+ return React__default.createElement("p", {
42430
+ key: r,
42431
+ 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" : ""],
42432
+ onClick: function onClick() {
42433
+ return handleSelectUserRoles([r]);
42434
+ }
42435
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42436
+ })));
42437
+ };
42438
+
42439
+ var TheLayout = function TheLayout(_ref) {
42440
+ var routes = _ref.routes,
42441
+ navigation = _ref.navigation;
42442
+ var history = reactRouterDom.useHistory();
42443
+ var dispatch = reactRedux.useDispatch();
42444
+ var user = reactRedux.useSelector(function (state) {
42445
+ return state.common.user;
42446
+ });
42447
+ var language = reactRedux.useSelector(function (state) {
42448
+ return state.common.language;
42449
+ });
42450
+
42451
+ var _useState = React.useState(false),
42452
+ openModelSelectRole = _useState[0],
42453
+ setOpenModelSelectRole = _useState[1];
42454
+
42455
+ var _useTranslation = reactI18next.useTranslation(),
42456
+ t = _useTranslation.t;
42457
+
42458
+ var location = reactRouterDom.useLocation();
42459
+ var isNotification = location.pathname.includes("notifications");
42460
+ var isDistrict = window.location.host.includes("-district");
42461
+
42462
+ var handleToggleModel = function handleToggleModel() {
42463
+ setOpenModelSelectRole(!openModelSelectRole);
42464
+ };
42465
+
42466
+ var authRoutes = React.useMemo(function () {
42467
+ return routes.filter(function (route) {
42468
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42469
+ }).filter(function (route) {
42470
+ return !!route.isDistrict === isDistrict;
42471
+ });
42472
+ }, [user, language]);
42473
+ var authNavigations = React.useMemo(function () {
42474
+ return navigation.map(function (item) {
42475
+ var _item$_children, _item$_children2;
42476
+
42477
+ return _extends({}, item, {
42478
+ name: t(item.name),
42479
+ _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) {
42480
+ return _extends({}, x, {
42481
+ name: t(x.name)
42482
+ });
42483
+ }) : undefined
42484
+ });
42485
+ }).filter(function (nav) {
42486
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42487
+ }).filter(function (nav) {
42488
+ return !!nav.isDistrict === isDistrict;
42489
+ });
42490
+ }, [user, language]);
42491
+
42492
+ var getInformationSetting = function getInformationSetting() {
42493
+ try {
42494
+ var _temp2 = _catch(function () {
42495
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
42496
+ dispatch(setSandboxMode(res.data.isSandboxMode));
42497
+ });
42498
+ }, function (err) {
42499
+ console.error(err);
42500
+ });
42501
+
42502
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42503
+ } catch (e) {
42504
+ return Promise.reject(e);
42505
+ }
42506
+ };
42507
+
42508
+ React.useEffect(function () {
42509
+ checkAuthentication();
42510
+ }, []);
42511
+ React.useEffect(function () {
42512
+ getInformationSetting();
42513
+ }, [location.pathname]);
42514
+
42515
+ var checkAuthentication = function checkAuthentication() {
42516
+ try {
42517
+ var _temp4 = _catch(function () {
42518
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42519
+ tokenStatus ? loadInfo() : resetAuth();
42520
+ });
42521
+ }, function () {
42522
+ resetAuth();
42523
+ });
42524
+
42525
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42526
+ } catch (e) {
42527
+ return Promise.reject(e);
42528
+ }
42529
+ };
42530
+
42531
+ var loadInfo = function loadInfo() {
42532
+ try {
42533
+ var _temp6 = _catch(function () {
42534
+ return Promise.resolve(getInfo()).then(function (info) {
42535
+ var _info$data, _info$data$roles;
42536
+
42537
+ 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"))) {
42538
+ resetAuth();
42539
+ }
42540
+
42541
+ dispatch(setUser(info.data));
42542
+ });
42543
+ }, function () {
42544
+ resetAuth();
42545
+ });
42546
+
42547
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42548
+ } catch (e) {
42549
+ return Promise.reject(e);
42550
+ }
42551
+ };
42552
+
42553
+ var resetAuth = function resetAuth() {
42554
+ localStorage.removeItem(ACCESS_TOKEN);
42555
+ sessionStorage.removeItem(ACCESS_TOKEN);
42556
+ localStorage.removeItem("ROLES");
42557
+ history.push("/");
42558
+ };
42559
+
42560
+ if (!user) {
42561
+ return React__default.createElement(Loading, null);
42562
+ }
42563
+
42564
+ return React__default.createElement("div", {
42565
+ className: "c-app c-default-layout"
42566
+ }, !isNotification && React__default.createElement(TheSidebar, {
42567
+ navigation: authNavigations
42568
+ }), React__default.createElement("div", {
42569
+ className: "c-wrapper"
42570
+ }, !isNotification && React__default.createElement(TheHeader, {
42571
+ onToggleModel: handleToggleModel
42572
+ }), React__default.createElement("div", {
42573
+ className: "c-body bg-white"
42574
+ }, React__default.createElement(TheContent$1, {
42575
+ routes: authRoutes
42576
+ }))), React__default.createElement(ModelSelectRole, {
42577
+ open: openModelSelectRole,
42578
+ onToggleModel: handleToggleModel
42579
+ }));
42580
+ };
42581
+
42124
42582
  var buttonTextStyle = {
42125
42583
  fontWeight: 500
42126
42584
  };
@@ -51517,34 +51975,6 @@ var UserDetail = function UserDetail() {
51517
51975
  });
51518
51976
  };
51519
51977
 
51520
- var loadingStyle = {
51521
- minWidth: "100vw",
51522
- minHeight: "100vh",
51523
- position: "fixed",
51524
- top: 0,
51525
- left: 0,
51526
- zIndex: 999999999,
51527
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51528
- display: "flex",
51529
- justifyContent: "center",
51530
- alignItems: "center"
51531
- };
51532
-
51533
- var Loading = function Loading() {
51534
- var isLoading = reactRedux.useSelector(function (state) {
51535
- return state.common.isLoading;
51536
- });
51537
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51538
- return isLoading ? React__default.createElement("div", {
51539
- style: loadingStyle
51540
- }, React__default.createElement("div", {
51541
- className: "spinner-border text-secondary",
51542
- role: "status"
51543
- }, React__default.createElement("span", {
51544
- className: "sr-only"
51545
- }, "Loading..."))) : null;
51546
- };
51547
-
51548
51978
  var ScrollToTop = function ScrollToTop() {
51549
51979
  var _useLocation = reactRouterDom.useLocation(),
51550
51980
  pathname = _useLocation.pathname;
@@ -54601,32 +55031,6 @@ var store = toolkit.configureStore({
54601
55031
  }
54602
55032
  });
54603
55033
 
54604
- var firstCheckToken = function firstCheckToken() {
54605
- return Promise.resolve(_catch(function () {
54606
- var token = getAccessToken();
54607
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54608
- return tokenStatus.data ? true : false;
54609
- }) : false;
54610
- }, function () {
54611
- return false;
54612
- }));
54613
- };
54614
-
54615
- var canAccess = function canAccess(userRoles, componentRoles) {
54616
- if (!Array.isArray(userRoles)) {
54617
- return false;
54618
- }
54619
-
54620
- if (Array.isArray(componentRoles)) {
54621
- var intersects = userRoles.filter(function (i) {
54622
- return componentRoles.includes(i);
54623
- });
54624
- return intersects.length > 0;
54625
- }
54626
-
54627
- return true;
54628
- };
54629
-
54630
55034
  var isInViewport = function isInViewport(el) {
54631
55035
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54632
55036
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54660,410 +55064,6 @@ var generateRandomString = (function () {
54660
55064
  return (Math.random() + 1).toString(36).substring(7);
54661
55065
  });
54662
55066
 
54663
- var apiGetLanguage = function apiGetLanguage() {
54664
- return api.get(BASE_URL + "/api/language");
54665
- };
54666
-
54667
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54668
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54669
- };
54670
-
54671
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54672
-
54673
- var useLanguages = function useLanguages() {
54674
- var dispatch = reactRedux.useDispatch();
54675
-
54676
- var _useTranslation = reactI18next.useTranslation(),
54677
- i18n = _useTranslation.i18n;
54678
-
54679
- var language = reactRedux.useSelector(function (state) {
54680
- return state.common.language;
54681
- });
54682
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54683
-
54684
- var _useState = React.useState([]),
54685
- languageList = _useState[0],
54686
- setLanguageList = _useState[1];
54687
-
54688
- var _useState2 = React.useState(false),
54689
- dropdownOpen = _useState2[0],
54690
- setDropdownOpen = _useState2[1];
54691
-
54692
- var _useState3 = React.useState(defaultLanguage),
54693
- currentLang = _useState3[0],
54694
- setCurrentLang = _useState3[1];
54695
-
54696
- var toggle = function toggle() {
54697
- return setDropdownOpen(function (prevState) {
54698
- return !prevState;
54699
- });
54700
- };
54701
-
54702
- var changeLanguageApp = function changeLanguageApp(lang) {
54703
- try {
54704
- var _temp3 = function _temp3() {
54705
- dispatch(setLoading(false));
54706
- };
54707
-
54708
- dispatch(setLoading(true));
54709
-
54710
- var _temp4 = _catch(function () {
54711
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54712
- i18n.changeLanguage(lang);
54713
- setCurrentLang(lang);
54714
- dispatch(setLanguage(lang));
54715
- });
54716
- }, function (err) {
54717
- var _err$response, _err$response$data;
54718
-
54719
- dispatch(setAlert({
54720
- type: "danger",
54721
- 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
54722
- }));
54723
- });
54724
-
54725
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54726
- } catch (e) {
54727
- return Promise.reject(e);
54728
- }
54729
- };
54730
-
54731
- var getListLanguage = function getListLanguage() {
54732
- try {
54733
- var _temp6 = _catch(function () {
54734
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54735
- setLanguageList(res.data);
54736
- });
54737
- }, function (err) {
54738
- var _err$response2, _err$response2$data;
54739
-
54740
- dispatch(setAlert({
54741
- type: "danger",
54742
- 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
54743
- }));
54744
- });
54745
-
54746
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54747
- } catch (e) {
54748
- return Promise.reject(e);
54749
- }
54750
- };
54751
-
54752
- React.useEffect(function () {
54753
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54754
- getListLanguage();
54755
- }, []);
54756
- return {
54757
- languageList: languageList,
54758
- toggle: toggle,
54759
- dropdownOpen: dropdownOpen,
54760
- currentLang: currentLang,
54761
- changeLanguageApp: changeLanguageApp,
54762
- setCurrentLang: setCurrentLang
54763
- };
54764
- };
54765
-
54766
- var TheLanguageDropdown = function TheLanguageDropdown() {
54767
- var _useLanguages = useLanguages(),
54768
- languageList = _useLanguages.languageList,
54769
- toggle = _useLanguages.toggle,
54770
- dropdownOpen = _useLanguages.dropdownOpen,
54771
- currentLang = _useLanguages.currentLang,
54772
- changeLanguageApp = _useLanguages.changeLanguageApp;
54773
-
54774
- var currentLanguage = React.useMemo(function () {
54775
- var current = languageList.find(function (i) {
54776
- return i.code === currentLang;
54777
- });
54778
- if (!current) return null;
54779
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
54780
- className: "mr-2 " + styles['dropdown-menu-flag'],
54781
- src: "" + getStaticFileUrl(current.image)
54782
- }), " ", current.name);
54783
- }, [currentLang, languageList]);
54784
- return React__default.createElement(reactstrap.Dropdown, {
54785
- isOpen: dropdownOpen,
54786
- toggle: toggle,
54787
- className: "" + styles["dropdown-menu"]
54788
- }, React__default.createElement(reactstrap.DropdownToggle, {
54789
- className: styles["header-avatar"] + " d-flex align-items-center"
54790
- }, React__default.createElement("span", {
54791
- style: {
54792
- color: "#000",
54793
- textTransform: "capitalize",
54794
- display: 'flex',
54795
- alignItems: 'center'
54796
- }
54797
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
54798
- className: "ml-2",
54799
- style: {
54800
- fontSize: '10px'
54801
- }
54802
- }))), React__default.createElement(reactstrap.DropdownMenu, {
54803
- className: styles["dropdown-content-language"]
54804
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54805
- return React__default.createElement(reactstrap.DropdownItem, {
54806
- key: lang.code,
54807
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54808
- onClick: function onClick() {
54809
- return changeLanguageApp(lang.code);
54810
- }
54811
- }, React__default.createElement("div", {
54812
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54813
- }, React__default.createElement("span", {
54814
- className: "mr-2 d-flex hover-opacity"
54815
- }, React__default.createElement("img", {
54816
- style: {
54817
- width: "30px",
54818
- height: "25px",
54819
- borderRadius: "5px"
54820
- },
54821
- src: getStaticFileUrl(lang.image)
54822
- })), lang.name));
54823
- })));
54824
- };
54825
-
54826
- var TheHeader = function TheHeader(_ref) {
54827
- var onToggleModel = _ref.onToggleModel;
54828
- var dispatch = reactRedux.useDispatch();
54829
- var sidebarShow = reactRedux.useSelector(function (state) {
54830
- return state.common.sidebarShow;
54831
- });
54832
-
54833
- var _useTranslation = reactI18next.useTranslation(),
54834
- t = _useTranslation.t;
54835
-
54836
- var toggleSidebarMobile = function toggleSidebarMobile() {
54837
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54838
- dispatch(setSidebar(val));
54839
- };
54840
-
54841
- var isDistrict = window.location.host.includes("-district");
54842
- return React__default.createElement(react.CHeader, {
54843
- withSubheader: true,
54844
- className: "d-flex align-items-center justify-content-end"
54845
- }, React__default.createElement(react.CToggler, {
54846
- inHeader: true,
54847
- className: "ml-md-3 d-lg-none",
54848
- onClick: toggleSidebarMobile
54849
- }), React__default.createElement(react.CHeaderBrand, {
54850
- className: "mx-auto flex-grow-1 d-lg-none",
54851
- to: "/"
54852
- }, React__default.createElement("img", {
54853
- src: getStaticFileUrl(Images.LOGO_HEADER),
54854
- className: styles["header-logo"]
54855
- })), React__default.createElement(react.CHeaderNav, {
54856
- className: "pr-3"
54857
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
54858
- className: "mr-3",
54859
- style: {
54860
- color: '#000'
54861
- },
54862
- href: '/privacy-policy',
54863
- target: "blank"
54864
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
54865
- onToggleModel: onToggleModel
54866
- })));
54867
- };
54868
-
54869
- var ModelSelectRole = function ModelSelectRole(_ref) {
54870
- var _handleUserRole;
54871
-
54872
- var open = _ref.open,
54873
- onToggleModel = _ref.onToggleModel;
54874
- var dispatch = reactRedux.useDispatch();
54875
-
54876
- var _useTranslation = reactI18next.useTranslation(),
54877
- t = _useTranslation.t;
54878
-
54879
- var history = reactRouterDom.useHistory();
54880
- var pathname = window.location.pathname;
54881
- var user = reactRedux.useSelector(function (state) {
54882
- return state.common.user;
54883
- });
54884
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54885
-
54886
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54887
- dispatch(setLoading(true));
54888
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54889
- dispatch(setUser(_extends({}, user, {
54890
- roles: roleSelect
54891
- })));
54892
- localStorage.setItem("ROLES", roleSelect.toString());
54893
- onToggleModel();
54894
-
54895
- if (roles.includes("Parent")) {
54896
- history.push("/parent");
54897
- } else if (roles.includes("Admin")) {
54898
- history.push("/admin/home");
54899
- } else {
54900
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54901
- }
54902
- };
54903
-
54904
- return React__default.createElement(reactstrap.Modal, {
54905
- isOpen: open,
54906
- toggle: function toggle() {
54907
- return onToggleModel();
54908
- },
54909
- className: "" + styles["model-switch-roles"],
54910
- centered: true
54911
- }, React__default.createElement("p", {
54912
- className: "" + styles["title"]
54913
- }, 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) {
54914
- return React__default.createElement("p", {
54915
- key: r,
54916
- 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" : ""],
54917
- onClick: function onClick() {
54918
- return handleSelectUserRoles([r]);
54919
- }
54920
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54921
- })));
54922
- };
54923
-
54924
- var TheLayout = function TheLayout(_ref) {
54925
- var routes = _ref.routes,
54926
- navigation = _ref.navigation;
54927
- var history = reactRouterDom.useHistory();
54928
- var dispatch = reactRedux.useDispatch();
54929
- var user = reactRedux.useSelector(function (state) {
54930
- return state.common.user;
54931
- });
54932
- var language = reactRedux.useSelector(function (state) {
54933
- return state.common.language;
54934
- });
54935
-
54936
- var _useState = React.useState(false),
54937
- openModelSelectRole = _useState[0],
54938
- setOpenModelSelectRole = _useState[1];
54939
-
54940
- var _useTranslation = reactI18next.useTranslation(),
54941
- t = _useTranslation.t;
54942
-
54943
- var location = reactRouterDom.useLocation();
54944
- var isNotification = location.pathname.includes("notifications");
54945
- var isDistrict = window.location.host.includes("-district");
54946
-
54947
- var handleToggleModel = function handleToggleModel() {
54948
- setOpenModelSelectRole(!openModelSelectRole);
54949
- };
54950
-
54951
- var authRoutes = React.useMemo(function () {
54952
- return routes.filter(function (route) {
54953
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54954
- }).filter(function (route) {
54955
- return !!route.isDistrict === isDistrict;
54956
- });
54957
- }, [user, language]);
54958
- var authNavigations = React.useMemo(function () {
54959
- return navigation.map(function (item) {
54960
- var _item$_children, _item$_children2;
54961
-
54962
- return _extends({}, item, {
54963
- name: t(item.name),
54964
- _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) {
54965
- return _extends({}, x, {
54966
- name: t(x.name)
54967
- });
54968
- }) : undefined
54969
- });
54970
- }).filter(function (nav) {
54971
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54972
- }).filter(function (nav) {
54973
- return !!nav.isDistrict === isDistrict;
54974
- });
54975
- }, [user, language]);
54976
-
54977
- var getInformationSetting = function getInformationSetting() {
54978
- try {
54979
- var _temp2 = _catch(function () {
54980
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54981
- dispatch(setSandboxMode(res.data.isSandboxMode));
54982
- });
54983
- }, function (err) {
54984
- console.error(err);
54985
- });
54986
-
54987
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54988
- } catch (e) {
54989
- return Promise.reject(e);
54990
- }
54991
- };
54992
-
54993
- React.useEffect(function () {
54994
- checkAuthentication();
54995
- }, []);
54996
- React.useEffect(function () {
54997
- getInformationSetting();
54998
- }, [location.pathname]);
54999
-
55000
- var checkAuthentication = function checkAuthentication() {
55001
- try {
55002
- var _temp4 = _catch(function () {
55003
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
55004
- tokenStatus ? loadInfo() : resetAuth();
55005
- });
55006
- }, function () {
55007
- resetAuth();
55008
- });
55009
-
55010
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
55011
- } catch (e) {
55012
- return Promise.reject(e);
55013
- }
55014
- };
55015
-
55016
- var loadInfo = function loadInfo() {
55017
- try {
55018
- var _temp6 = _catch(function () {
55019
- return Promise.resolve(getInfo()).then(function (info) {
55020
- var _info$data, _info$data$roles;
55021
-
55022
- 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"))) {
55023
- resetAuth();
55024
- }
55025
-
55026
- dispatch(setUser(info.data));
55027
- });
55028
- }, function () {
55029
- resetAuth();
55030
- });
55031
-
55032
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
55033
- } catch (e) {
55034
- return Promise.reject(e);
55035
- }
55036
- };
55037
-
55038
- var resetAuth = function resetAuth() {
55039
- localStorage.removeItem(ACCESS_TOKEN);
55040
- sessionStorage.removeItem(ACCESS_TOKEN);
55041
- localStorage.removeItem("ROLES");
55042
- history.push("/");
55043
- };
55044
-
55045
- if (!user) {
55046
- return React__default.createElement(Loading, null);
55047
- }
55048
-
55049
- return React__default.createElement("div", {
55050
- className: "c-app c-default-layout"
55051
- }, !isNotification && React__default.createElement(TheSidebar, {
55052
- navigation: authNavigations
55053
- }), React__default.createElement("div", {
55054
- className: "c-wrapper"
55055
- }, !isNotification && React__default.createElement(TheHeader, {
55056
- onToggleModel: handleToggleModel
55057
- }), React__default.createElement("div", {
55058
- className: "c-body bg-white"
55059
- }, React__default.createElement(TheContent$1, {
55060
- routes: authRoutes
55061
- }))), React__default.createElement(ModelSelectRole, {
55062
- open: openModelSelectRole,
55063
- onToggleModel: handleToggleModel
55064
- }));
55065
- };
55066
-
55067
55067
  var amplitudeClient = amplitude;
55068
55068
 
55069
55069
  Object.defineProperty(exports, 'I18nextProvider', {