mario-core 2.9.430-feedback → 2.9.433-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
@@ -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";
@@ -42064,212 +42064,6 @@ 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
-
42273
42067
  var TITLE$3 = "Not found";
42274
42068
 
42275
42069
  var NotFound = function NotFound() {
@@ -42327,258 +42121,6 @@ var TheContent = function TheContent(_ref) {
42327
42121
 
42328
42122
  var TheContent$1 = React__default.memo(TheContent);
42329
42123
 
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
-
42582
42124
  var buttonTextStyle = {
42583
42125
  fontWeight: 500
42584
42126
  };
@@ -51975,6 +51517,34 @@ var UserDetail = function UserDetail() {
51975
51517
  });
51976
51518
  };
51977
51519
 
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
+
51978
51548
  var ScrollToTop = function ScrollToTop() {
51979
51549
  var _useLocation = reactRouterDom.useLocation(),
51980
51550
  pathname = _useLocation.pathname;
@@ -55031,6 +54601,32 @@ var store = toolkit.configureStore({
55031
54601
  }
55032
54602
  });
55033
54603
 
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
+
55034
54630
  var isInViewport = function isInViewport(el) {
55035
54631
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
55036
54632
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -55064,6 +54660,410 @@ var generateRandomString = (function () {
55064
54660
  return (Math.random() + 1).toString(36).substring(7);
55065
54661
  });
55066
54662
 
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', {