mario-core 2.9.241-release → 2.9.243-release

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
@@ -19829,7 +19829,7 @@ function _catch(body, recover) {
19829
19829
  return result;
19830
19830
  }
19831
19831
 
19832
- var styles = {"btn-login-google":"_2HqmH","notification-count":"_2sew7","text-introduction":"_3OgWF","btn-trans-border":"_r9cAh","contact":"_NszFe","learn-more":"_MDjzH","title-quote":"_1Swkw","descriptions-quote":"_gi8vj","box-login":"_38Lo1","block-verification":"_1OzGy","block-login":"_wWIyO","title-login":"_3nuns","title-forgot-password":"_21qb6","btn-close":"_NhW9l","btn-login":"_3IL10","school-icon":"_2OUwW","school-name":"_2Owso","login-description":"_fx-kA","digital-privacy-icon":"_141p1","return-to-login":"_Ce3Kg","recover-account":"_2t6d9","link-to-login":"_3bDsd","privacy-policy":"_I4SVu","remember":"_11FZt","term-and-conditions":"_3LXoI","descriptions-forgot-pass":"_PMcjT","content-icon":"_2rZY6","descriptions-icon":"_3SOdX","title-icon":"_y9lM2","nav-home":"_1TT1q","box-introduction":"_32V6L","icon":"_20YJX","checkbox-keep-login":"_1AiX0","label-keep-login":"_2uNvW","option-text":"_pqn4y","form-user-name":"_39BJD","input":"_ozRAq","checkbox-remember":"_2K9b2","btn-rounder":"_2VvIr","btn-active":"_2A0HF","block-reset-password":"_23Sua","block-forgot-pass":"_3CWP6","page-not-login":"_3Wmco","content-quote":"_13Rk0","home-page":"_o6HKW","bg-animate":"_30npl","active":"_3oAH-","show":"_16rY4","fade-in":"_26nbh","behind":"_3A7Vv","login":"_F-hjL","login-content":"_149oA","logo-home":"_24U3W","img-box":"_2v-L_","img-login":"_3ncTL","img-login-rectangle":"_2kOvJ","c-main":"_39l0X","container-fluid":"_1BMwK","input-file-label":"_1XNpH","delete-avatar-button":"_1z5h9","header-logo":"_Gewcf","box-sidebar":"_2vcmv","sidebar-logo":"_1hXpy","sidebar-nav-links":"_3vb3s","c-active":"_36jSM","sidebar-nav-links-hover":"_DNrus","box-sidebar-header":"_3NEZj","box-logout":"_1wUDG","sidebar-btn-minimized":"_1S7Px","sidebar-minimized-logo":"_3846X","sidebar-logout":"_2P85D","nav-mobile":"_1qjbW","filter-media-file":"_1I62C","div":"_3cLcM","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","logout":"_1_9tV","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","popover__sort__item":"_1ocBa","popover__sort__item--active":"_18NhM","popover__search__icon":"_2bquW","popover__search__input":"_3A4G4","popover__options":"_1MsEW","button-export":"_2rTzM","button-content":"_18y0w","button-icon":"_3cZAT","hide-in-mobile":"_1INnO","hamburger-menu":"_2yRc8","box-content-home-page":"_ABUIP","collapse-box":"_WX97m","hide-in-desktop":"_2LIqK","control-input":"_2Zz97","custom-control":"_3-yp5","item-select-role":"_1KcY7","item-role-active":"_dOVso","model-switch-roles":"_3ZqxI","title":"_g-p72","btn-login-with-sso":"_DrSlA","app-alert":"_3Vgah","app-alert--success":"_1jraB"};
19832
+ var styles = {"btn-login-google":"_2HqmH","notification-count":"_2sew7","text-introduction":"_3OgWF","btn-trans-border":"_r9cAh","contact":"_NszFe","learn-more":"_MDjzH","title-quote":"_1Swkw","descriptions-quote":"_gi8vj","box-login":"_38Lo1","block-verification":"_1OzGy","block-login":"_wWIyO","class-link-sso-image":"_3EZva","title-login":"_3nuns","title-forgot-password":"_21qb6","btn-close":"_NhW9l","btn-login":"_3IL10","school-icon":"_2OUwW","school-name":"_2Owso","login-description":"_fx-kA","digital-privacy-icon":"_141p1","return-to-login":"_Ce3Kg","recover-account":"_2t6d9","link-to-login":"_3bDsd","privacy-policy":"_I4SVu","remember":"_11FZt","term-and-conditions":"_3LXoI","descriptions-forgot-pass":"_PMcjT","content-icon":"_2rZY6","descriptions-icon":"_3SOdX","title-icon":"_y9lM2","nav-home":"_1TT1q","box-introduction":"_32V6L","icon":"_20YJX","checkbox-keep-login":"_1AiX0","label-keep-login":"_2uNvW","option-text":"_pqn4y","form-user-name":"_39BJD","input":"_ozRAq","checkbox-remember":"_2K9b2","btn-rounder":"_2VvIr","btn-active":"_2A0HF","block-reset-password":"_23Sua","block-forgot-pass":"_3CWP6","page-not-login":"_3Wmco","content-quote":"_13Rk0","home-page":"_o6HKW","bg-animate":"_30npl","active":"_3oAH-","show":"_16rY4","fade-in":"_26nbh","behind":"_3A7Vv","login":"_F-hjL","login-content":"_149oA","logo-home":"_24U3W","img-box":"_2v-L_","img-login":"_3ncTL","img-login-rectangle":"_2kOvJ","c-main":"_39l0X","container-fluid":"_1BMwK","input-file-label":"_1XNpH","delete-avatar-button":"_1z5h9","header-logo":"_Gewcf","box-sidebar":"_2vcmv","sidebar-logo":"_1hXpy","sidebar-nav-links":"_3vb3s","c-active":"_36jSM","sidebar-nav-links-hover":"_DNrus","box-sidebar-header":"_3NEZj","box-logout":"_1wUDG","sidebar-btn-minimized":"_1S7Px","sidebar-minimized-logo":"_3846X","sidebar-logout":"_2P85D","nav-mobile":"_1qjbW","filter-media-file":"_1I62C","div":"_3cLcM","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","logout":"_1_9tV","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","popover__sort__item":"_1ocBa","popover__sort__item--active":"_18NhM","popover__search__icon":"_2bquW","popover__search__input":"_3A4G4","popover__options":"_1MsEW","button-export":"_2rTzM","button-content":"_18y0w","button-icon":"_3cZAT","hide-in-mobile":"_1INnO","hamburger-menu":"_2yRc8","box-content-home-page":"_ABUIP","collapse-box":"_WX97m","hide-in-desktop":"_2LIqK","control-input":"_2Zz97","custom-control":"_3-yp5","item-select-role":"_1KcY7","item-role-active":"_dOVso","model-switch-roles":"_3ZqxI","title":"_g-p72","btn-login-with-sso":"_DrSlA","app-alert":"_3Vgah","app-alert--success":"_1jraB"};
19833
19833
 
19834
19834
  var style = {
19835
19835
  fontSize: "0.85rem"
@@ -38102,8 +38102,7 @@ var BlockLogin = function BlockLogin(_ref) {
38102
38102
  isLoginGoogle = _useLogin.isLoginGoogle,
38103
38103
  submitLogin = _useLogin.submitLogin,
38104
38104
  infoUser = _useLogin.infoUser,
38105
- googleClientId = _useLogin.googleClientId,
38106
- fnLoginSSO = _useLogin.fnLoginSSO;
38105
+ googleClientId = _useLogin.googleClientId;
38107
38106
 
38108
38107
  var togglePasswordVisible = function togglePasswordVisible() {
38109
38108
  return setIsShowPassword(!isShowPassword);
@@ -38253,8 +38252,8 @@ var BlockLogin = function BlockLogin(_ref) {
38253
38252
  }, "OR"), React__default.createElement(reactstrap.Row, {
38254
38253
  className: "mb-4"
38255
38254
  }, React__default.createElement(reactstrap.Col, {
38256
- lg: 6,
38257
- md: 6,
38255
+ lg: 12,
38256
+ md: 12,
38258
38257
  xs: 12,
38259
38258
  className: "pr-md-2"
38260
38259
  }, !!googleClientId && React__default.createElement(GoogleLogin, {
@@ -38263,19 +38262,15 @@ var BlockLogin = function BlockLogin(_ref) {
38263
38262
  onSuccess: onSuccessGoogle,
38264
38263
  cookiePolicy: "single_host_origin",
38265
38264
  className: styles["btn-login-google"] + " p-0 mb-4 mb-md-0"
38266
- })), React__default.createElement(reactstrap.Col, {
38267
- lg: 6,
38268
- md: 6,
38269
- xs: 12,
38270
- className: styles["btn-login-sso"] + " pl-md-2"
38271
- }, React__default.createElement("div", {
38272
- className: styles["btn-login-with-sso"],
38273
- onClick: function onClick() {
38274
- return fnLoginSSO(clickHandler);
38275
- }
38265
+ }))), React__default.createElement("div", {
38266
+ className: "w-100 d-flex align-items-center justify-content-center mt-3"
38267
+ }, React__default.createElement("a", {
38268
+ href: "https://launchpad.classlink.com/login"
38276
38269
  }, React__default.createElement("img", {
38277
- src: "images/microsoft-logo.png"
38278
- }), React__default.createElement("p", null, "MICROSOFT")))))));
38270
+ className: styles["class-link-sso-image"],
38271
+ src: getStaticFileUrl("images/classlink-sso.png"),
38272
+ alt: ""
38273
+ }))))));
38279
38274
  }), isLoginGoogle && React__default.createElement(BlockSelectTeacher$1, {
38280
38275
  onSubmit: function onSubmit(e) {
38281
38276
  return submitLogin(e, clickHandler);
@@ -39422,6 +39417,218 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39422
39417
  })), t("log_out")))));
39423
39418
  };
39424
39419
 
39420
+ var getCookieValue = function getCookieValue(name) {
39421
+ var _document$cookie$matc;
39422
+
39423
+ return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
39424
+ };
39425
+
39426
+ var apiGetLanguage = function apiGetLanguage() {
39427
+ return api.get(BASE_URL + "/api/language");
39428
+ };
39429
+
39430
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
39431
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
39432
+ };
39433
+
39434
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
39435
+
39436
+ var useLanguages = function useLanguages() {
39437
+ var dispatch = reactRedux.useDispatch();
39438
+
39439
+ var _useTranslation = reactI18next.useTranslation(),
39440
+ i18n = _useTranslation.i18n;
39441
+
39442
+ var language = reactRedux.useSelector(function (state) {
39443
+ return state.common.language;
39444
+ });
39445
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
39446
+
39447
+ var _useState = React.useState([]),
39448
+ languageList = _useState[0],
39449
+ setLanguageList = _useState[1];
39450
+
39451
+ var _useState2 = React.useState(false),
39452
+ dropdownOpen = _useState2[0],
39453
+ setDropdownOpen = _useState2[1];
39454
+
39455
+ var _useState3 = React.useState(defaultLanguage),
39456
+ currentLang = _useState3[0],
39457
+ setCurrentLang = _useState3[1];
39458
+
39459
+ var toggle = function toggle() {
39460
+ return setDropdownOpen(function (prevState) {
39461
+ return !prevState;
39462
+ });
39463
+ };
39464
+
39465
+ var changeLanguageApp = function changeLanguageApp(lang) {
39466
+ try {
39467
+ var _temp3 = function _temp3() {
39468
+ dispatch(setLoading(false));
39469
+ };
39470
+
39471
+ dispatch(setLoading(true));
39472
+
39473
+ var _temp4 = _catch(function () {
39474
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
39475
+ i18n.changeLanguage(lang);
39476
+ setCurrentLang(lang);
39477
+ dispatch(setLanguage(lang));
39478
+ });
39479
+ }, function (err) {
39480
+ var _err$response, _err$response$data;
39481
+
39482
+ dispatch(setAlert({
39483
+ type: "danger",
39484
+ 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
39485
+ }));
39486
+ });
39487
+
39488
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
39489
+ } catch (e) {
39490
+ return Promise.reject(e);
39491
+ }
39492
+ };
39493
+
39494
+ var getListLanguage = function getListLanguage() {
39495
+ try {
39496
+ var _temp6 = _catch(function () {
39497
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
39498
+ setLanguageList(res.data);
39499
+ });
39500
+ }, function (err) {
39501
+ var _err$response2, _err$response2$data;
39502
+
39503
+ dispatch(setAlert({
39504
+ type: "danger",
39505
+ 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
39506
+ }));
39507
+ });
39508
+
39509
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39510
+ } catch (e) {
39511
+ return Promise.reject(e);
39512
+ }
39513
+ };
39514
+
39515
+ React.useEffect(function () {
39516
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
39517
+ getListLanguage();
39518
+ }, []);
39519
+ return {
39520
+ languageList: languageList,
39521
+ toggle: toggle,
39522
+ dropdownOpen: dropdownOpen,
39523
+ currentLang: currentLang,
39524
+ changeLanguageApp: changeLanguageApp,
39525
+ setCurrentLang: setCurrentLang
39526
+ };
39527
+ };
39528
+
39529
+ var TheLanguageDropdown = function TheLanguageDropdown() {
39530
+ var _useLanguages = useLanguages(),
39531
+ languageList = _useLanguages.languageList,
39532
+ toggle = _useLanguages.toggle,
39533
+ dropdownOpen = _useLanguages.dropdownOpen,
39534
+ currentLang = _useLanguages.currentLang,
39535
+ changeLanguageApp = _useLanguages.changeLanguageApp;
39536
+
39537
+ var currentLanguage = React.useMemo(function () {
39538
+ var current = languageList.find(function (i) {
39539
+ return i.code === currentLang;
39540
+ });
39541
+ if (!current) return null;
39542
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
39543
+ className: "mr-2 " + styles['dropdown-menu-flag'],
39544
+ src: "" + getStaticFileUrl(current.image)
39545
+ }), " ", current.name);
39546
+ }, [currentLang, languageList]);
39547
+ return React__default.createElement(reactstrap.Dropdown, {
39548
+ isOpen: dropdownOpen,
39549
+ toggle: toggle,
39550
+ className: "" + styles["dropdown-menu"]
39551
+ }, React__default.createElement(reactstrap.DropdownToggle, {
39552
+ className: styles["header-avatar"] + " d-flex align-items-center"
39553
+ }, React__default.createElement("span", {
39554
+ style: {
39555
+ color: "#000",
39556
+ textTransform: "capitalize",
39557
+ display: 'flex',
39558
+ alignItems: 'center'
39559
+ }
39560
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
39561
+ className: "ml-2",
39562
+ style: {
39563
+ fontSize: '10px'
39564
+ }
39565
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
39566
+ className: styles["dropdown-content-language"]
39567
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
39568
+ return React__default.createElement(reactstrap.DropdownItem, {
39569
+ key: lang.code,
39570
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
39571
+ onClick: function onClick() {
39572
+ return changeLanguageApp(lang.code);
39573
+ }
39574
+ }, React__default.createElement("div", {
39575
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
39576
+ }, React__default.createElement("span", {
39577
+ className: "mr-2 d-flex hover-opacity"
39578
+ }, React__default.createElement("img", {
39579
+ style: {
39580
+ width: "30px",
39581
+ height: "25px",
39582
+ borderRadius: "5px"
39583
+ },
39584
+ src: getStaticFileUrl(lang.image)
39585
+ })), lang.name));
39586
+ })));
39587
+ };
39588
+
39589
+ var TheHeader = function TheHeader(_ref) {
39590
+ var onToggleModel = _ref.onToggleModel;
39591
+ var dispatch = reactRedux.useDispatch();
39592
+ var sidebarShow = reactRedux.useSelector(function (state) {
39593
+ return state.common.sidebarShow;
39594
+ });
39595
+
39596
+ var _useTranslation = reactI18next.useTranslation(),
39597
+ t = _useTranslation.t;
39598
+
39599
+ var toggleSidebarMobile = function toggleSidebarMobile() {
39600
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
39601
+ dispatch(setSidebar(val));
39602
+ };
39603
+
39604
+ var isDistrict = window.location.host.includes("-district");
39605
+ return React__default.createElement(react.CHeader, {
39606
+ withSubheader: true,
39607
+ className: "d-flex align-items-center justify-content-end"
39608
+ }, React__default.createElement(react.CToggler, {
39609
+ inHeader: true,
39610
+ className: "ml-md-3 d-lg-none",
39611
+ onClick: toggleSidebarMobile
39612
+ }), React__default.createElement(react.CHeaderBrand, {
39613
+ className: "mx-auto flex-grow-1 d-lg-none",
39614
+ to: "/"
39615
+ }, React__default.createElement("img", {
39616
+ src: getStaticFileUrl(Images.LOGO_HEADER),
39617
+ className: styles["header-logo"]
39618
+ })), React__default.createElement(react.CHeaderNav, {
39619
+ className: "pr-3"
39620
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
39621
+ className: "mr-3",
39622
+ style: {
39623
+ color: '#000'
39624
+ },
39625
+ href: '/privacy-policy',
39626
+ target: "blank"
39627
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
39628
+ onToggleModel: onToggleModel
39629
+ })));
39630
+ };
39631
+
39425
39632
  var TITLE$3 = "Not found";
39426
39633
 
39427
39634
  var NotFound = function NotFound() {
@@ -39479,22 +39686,274 @@ var TheContent = function TheContent(_ref) {
39479
39686
 
39480
39687
  var TheContent$1 = React__default.memo(TheContent);
39481
39688
 
39482
- var buttonTextStyle = {
39483
- fontWeight: 500
39689
+ var loadingStyle = {
39690
+ minWidth: "100vw",
39691
+ minHeight: "100vh",
39692
+ position: "fixed",
39693
+ top: 0,
39694
+ left: 0,
39695
+ zIndex: 999999999,
39696
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
39697
+ display: "flex",
39698
+ justifyContent: "center",
39699
+ alignItems: "center"
39484
39700
  };
39485
- var buttonStyle = {
39486
- height: 38
39701
+
39702
+ var Loading = function Loading() {
39703
+ var isLoading = reactRedux.useSelector(function (state) {
39704
+ return state.common.isLoading;
39705
+ });
39706
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
39707
+ return isLoading ? React__default.createElement("div", {
39708
+ style: loadingStyle
39709
+ }, React__default.createElement("div", {
39710
+ className: "spinner-border text-secondary",
39711
+ role: "status"
39712
+ }, React__default.createElement("span", {
39713
+ className: "sr-only"
39714
+ }, "Loading..."))) : null;
39487
39715
  };
39488
39716
 
39489
- var AddButton = function AddButton(_ref) {
39490
- var text = _ref.text,
39491
- onClick = _ref.onClick;
39492
- return React__default.createElement(reactstrap.Button, {
39493
- onClick: onClick,
39494
- color: 'success',
39495
- style: buttonStyle,
39496
- className: 'd-flex align-items-center'
39497
- }, React__default.createElement(fa.FaPlus, null), React__default.createElement("span", {
39717
+ var firstCheckToken = function firstCheckToken() {
39718
+ return Promise.resolve(_catch(function () {
39719
+ var token = getAccessToken();
39720
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
39721
+ return tokenStatus.data ? true : false;
39722
+ }) : false;
39723
+ }, function () {
39724
+ return false;
39725
+ }));
39726
+ };
39727
+
39728
+ var canAccess = function canAccess(userRoles, componentRoles) {
39729
+ if (!Array.isArray(userRoles)) {
39730
+ return false;
39731
+ }
39732
+
39733
+ if (Array.isArray(componentRoles)) {
39734
+ var intersects = userRoles.filter(function (i) {
39735
+ return componentRoles.includes(i);
39736
+ });
39737
+ return intersects.length > 0;
39738
+ }
39739
+
39740
+ return true;
39741
+ };
39742
+
39743
+ var ModelSelectRole = function ModelSelectRole(_ref) {
39744
+ var _handleUserRole;
39745
+
39746
+ var open = _ref.open,
39747
+ onToggleModel = _ref.onToggleModel;
39748
+ var dispatch = reactRedux.useDispatch();
39749
+
39750
+ var _useTranslation = reactI18next.useTranslation(),
39751
+ t = _useTranslation.t;
39752
+
39753
+ var history = reactRouterDom.useHistory();
39754
+ var pathname = window.location.pathname;
39755
+ var user = reactRedux.useSelector(function (state) {
39756
+ return state.common.user;
39757
+ });
39758
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
39759
+
39760
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
39761
+ dispatch(setLoading(true));
39762
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
39763
+ dispatch(setUser(_extends({}, user, {
39764
+ roles: roleSelect
39765
+ })));
39766
+ localStorage.setItem("ROLES", roleSelect.toString());
39767
+ onToggleModel();
39768
+
39769
+ if (roles.includes("Parent")) {
39770
+ history.push("/parent");
39771
+ } else if (roles.includes("Admin")) {
39772
+ history.push("/admin/home");
39773
+ } else {
39774
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
39775
+ }
39776
+ };
39777
+
39778
+ return React__default.createElement(reactstrap.Modal, {
39779
+ isOpen: open,
39780
+ toggle: function toggle() {
39781
+ return onToggleModel();
39782
+ },
39783
+ className: "" + styles["model-switch-roles"],
39784
+ centered: true
39785
+ }, React__default.createElement("p", {
39786
+ className: "" + styles["title"]
39787
+ }, 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) {
39788
+ return React__default.createElement("p", {
39789
+ key: r,
39790
+ 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" : ""],
39791
+ onClick: function onClick() {
39792
+ return handleSelectUserRoles([r]);
39793
+ }
39794
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
39795
+ })));
39796
+ };
39797
+
39798
+ var TheLayout = function TheLayout(_ref) {
39799
+ var routes = _ref.routes,
39800
+ navigation = _ref.navigation;
39801
+ var history = reactRouterDom.useHistory();
39802
+ var dispatch = reactRedux.useDispatch();
39803
+ var user = reactRedux.useSelector(function (state) {
39804
+ return state.common.user;
39805
+ });
39806
+ var language = reactRedux.useSelector(function (state) {
39807
+ return state.common.language;
39808
+ });
39809
+
39810
+ var _useState = React.useState(false),
39811
+ openModelSelectRole = _useState[0],
39812
+ setOpenModelSelectRole = _useState[1];
39813
+
39814
+ var _useTranslation = reactI18next.useTranslation(),
39815
+ t = _useTranslation.t;
39816
+
39817
+ var location = reactRouterDom.useLocation();
39818
+ var isNotification = location.pathname.includes("notifications");
39819
+ var isDistrict = window.location.host.includes("-district");
39820
+
39821
+ var handleToggleModel = function handleToggleModel() {
39822
+ setOpenModelSelectRole(!openModelSelectRole);
39823
+ };
39824
+
39825
+ var authRoutes = React.useMemo(function () {
39826
+ return routes.filter(function (route) {
39827
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
39828
+ }).filter(function (route) {
39829
+ return !!route.isDistrict === isDistrict;
39830
+ });
39831
+ }, [user, language]);
39832
+ var authNavigations = React.useMemo(function () {
39833
+ return navigation.map(function (item) {
39834
+ var _item$_children, _item$_children2;
39835
+
39836
+ return _extends({}, item, {
39837
+ name: t(item.name),
39838
+ _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) {
39839
+ return _extends({}, x, {
39840
+ name: t(x.name)
39841
+ });
39842
+ }) : undefined
39843
+ });
39844
+ }).filter(function (nav) {
39845
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
39846
+ }).filter(function (nav) {
39847
+ return !!nav.isDistrict === isDistrict;
39848
+ });
39849
+ }, [user, language]);
39850
+
39851
+ var getInformationSetting = function getInformationSetting() {
39852
+ try {
39853
+ var _temp2 = _catch(function () {
39854
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
39855
+ dispatch(setSandboxMode(res.data.isSandboxMode));
39856
+ });
39857
+ }, function (err) {
39858
+ console.error(err);
39859
+ });
39860
+
39861
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
39862
+ } catch (e) {
39863
+ return Promise.reject(e);
39864
+ }
39865
+ };
39866
+
39867
+ React.useEffect(function () {
39868
+ checkAuthentication();
39869
+ }, []);
39870
+ React.useEffect(function () {
39871
+ getInformationSetting();
39872
+ }, [location.pathname]);
39873
+
39874
+ var checkAuthentication = function checkAuthentication() {
39875
+ try {
39876
+ var _temp4 = _catch(function () {
39877
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
39878
+ tokenStatus ? loadInfo() : resetAuth();
39879
+ });
39880
+ }, function () {
39881
+ resetAuth();
39882
+ });
39883
+
39884
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
39885
+ } catch (e) {
39886
+ return Promise.reject(e);
39887
+ }
39888
+ };
39889
+
39890
+ var loadInfo = function loadInfo() {
39891
+ try {
39892
+ var _temp6 = _catch(function () {
39893
+ return Promise.resolve(getInfo()).then(function (info) {
39894
+ var _info$data, _info$data$roles;
39895
+
39896
+ 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"))) {
39897
+ resetAuth();
39898
+ }
39899
+
39900
+ dispatch(setUser(info.data));
39901
+ });
39902
+ }, function () {
39903
+ resetAuth();
39904
+ });
39905
+
39906
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39907
+ } catch (e) {
39908
+ return Promise.reject(e);
39909
+ }
39910
+ };
39911
+
39912
+ var resetAuth = function resetAuth() {
39913
+ localStorage.removeItem(ACCESS_TOKEN);
39914
+ sessionStorage.removeItem(ACCESS_TOKEN);
39915
+ localStorage.removeItem("ROLES");
39916
+ history.push("/");
39917
+ };
39918
+
39919
+ if (!user) {
39920
+ return React__default.createElement(Loading, null);
39921
+ }
39922
+
39923
+ return React__default.createElement("div", {
39924
+ className: "c-app c-default-layout"
39925
+ }, !isNotification && React__default.createElement(TheSidebar, {
39926
+ navigation: authNavigations
39927
+ }), React__default.createElement("div", {
39928
+ className: "c-wrapper"
39929
+ }, !isNotification && React__default.createElement(TheHeader, {
39930
+ onToggleModel: handleToggleModel
39931
+ }), React__default.createElement("div", {
39932
+ className: "c-body bg-white"
39933
+ }, React__default.createElement(TheContent$1, {
39934
+ routes: authRoutes
39935
+ }))), React__default.createElement(ModelSelectRole, {
39936
+ open: openModelSelectRole,
39937
+ onToggleModel: handleToggleModel
39938
+ }));
39939
+ };
39940
+
39941
+ var buttonTextStyle = {
39942
+ fontWeight: 500
39943
+ };
39944
+ var buttonStyle = {
39945
+ height: 38
39946
+ };
39947
+
39948
+ var AddButton = function AddButton(_ref) {
39949
+ var text = _ref.text,
39950
+ onClick = _ref.onClick;
39951
+ return React__default.createElement(reactstrap.Button, {
39952
+ onClick: onClick,
39953
+ color: 'success',
39954
+ style: buttonStyle,
39955
+ className: 'd-flex align-items-center'
39956
+ }, React__default.createElement(fa.FaPlus, null), React__default.createElement("span", {
39498
39957
  className: 'ml-2',
39499
39958
  style: buttonTextStyle
39500
39959
  }, text));
@@ -43602,11 +44061,17 @@ var useTeacherList = function useTeacherList() {
43602
44061
  }
43603
44062
  };
43604
44063
 
43605
- var handleSelectTeacher = React.useCallback(function (teacherId, studentUserId) {
44064
+ var handleSelectTeacher = React.useCallback(function (teacherIds, studentUserId) {
43606
44065
  var _extends2;
43607
44066
 
43608
- var selectedTeacher = teacherOptions.find(function (t) {
43609
- return t.value === teacherId;
44067
+ var selectedTeacher = teacherOptions.filter(function (t) {
44068
+ return teacherIds.includes(t.value);
44069
+ });
44070
+ console.log({
44071
+ teacherIds: teacherIds
44072
+ });
44073
+ console.log({
44074
+ selectedTeacher: selectedTeacher
43610
44075
  });
43611
44076
  setSelectedTeachers(_extends({}, selectedTeachers, (_extends2 = {}, _extends2[studentUserId] = selectedTeacher, _extends2)));
43612
44077
  }, [JSON.stringify(selectedTeachers), JSON.stringify(teacherOptions)]);
@@ -43725,18 +44190,29 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43725
44190
  return;
43726
44191
  }
43727
44192
 
44193
+ console.log("list userId");
44194
+ console.log({
44195
+ listUserIds: listUserIds
44196
+ });
43728
44197
  var users = listUserIds.map(function (i) {
43729
44198
  var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[i];
43730
44199
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[i];
43731
44200
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[i];
43732
44201
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[i];
44202
+ console.log({
44203
+ teacher: teacher
44204
+ });
43733
44205
  var value = {
43734
44206
  id: i
43735
44207
  };
43736
44208
 
43737
44209
  if (!!teacher) {
43738
- value.mainTeacherUserId = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'string' ? teacher === null || teacher === void 0 ? void 0 : teacher.value : undefined;
43739
- value.mainTeacherEmail = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'number' ? teacher === null || teacher === void 0 ? void 0 : teacher.label : undefined;
44210
+ value.mainTeacherUserId = !!teacher ? teacher.map(function (i) {
44211
+ return i.value;
44212
+ }) : undefined;
44213
+ value.mainTeacherEmail = !!teacher ? teacher.map(function (i) {
44214
+ return i.label;
44215
+ }) : undefined;
43740
44216
  }
43741
44217
 
43742
44218
  if (!!assistant) {
@@ -43763,6 +44239,10 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43763
44239
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[id];
43764
44240
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[id];
43765
44241
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[id];
44242
+ console.log("assign student");
44243
+ console.log({
44244
+ teacherSelected: teacherSelected
44245
+ });
43766
44246
 
43767
44247
  if (!teacher && !assistant && !counselor && !secondaryTeacher) {
43768
44248
  dispatch(setAlert({
@@ -43777,8 +44257,12 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43777
44257
  };
43778
44258
 
43779
44259
  if (!!teacher) {
43780
- studentRequest.mainTeacherUserId = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'string' ? teacher === null || teacher === void 0 ? void 0 : teacher.value : undefined;
43781
- studentRequest.mainTeacherEmail = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'number' ? teacher === null || teacher === void 0 ? void 0 : teacher.label : undefined;
44260
+ studentRequest.mainTeacherUserId = !!teacher ? teacher.map(function (i) {
44261
+ return i.value;
44262
+ }) : undefined;
44263
+ studentRequest.mainTeacherEmail = !!teacher ? teacher.map(function (i) {
44264
+ return i.label;
44265
+ }) : undefined;
43782
44266
  }
43783
44267
 
43784
44268
  if (!!assistant) {
@@ -43799,6 +44283,11 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43799
44283
  assignStudents([studentRequest]);
43800
44284
  }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
43801
44285
  var handleAssignStaffToStudents = React.useCallback(function (listUserIds) {
44286
+ console.log("staffBulkAssign");
44287
+ console.log({
44288
+ staffBulkAssign: staffBulkAssign
44289
+ });
44290
+
43802
44291
  if (listUserIds.length === 0) {
43803
44292
  dispatch(setAlert({
43804
44293
  type: "danger",
@@ -43810,8 +44299,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43810
44299
  var users = listUserIds.map(function (i) {
43811
44300
  var value = {
43812
44301
  id: i,
43813
- mainTeacherUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherId : undefined,
43814
- mainTeacherEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherEmail : undefined,
43815
44302
  assistantUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantId : undefined,
43816
44303
  assistantEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantEmail : undefined,
43817
44304
  counselorUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.counselorId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.counselorId : undefined,
@@ -44160,15 +44647,18 @@ var AssignStudentList = function AssignStudentList() {
44160
44647
  className: "align-middle"
44161
44648
  }, item.email), React__default.createElement("td", {
44162
44649
  className: "align-middle"
44163
- }, !!item.mainTeacherEmail ? React__default.createElement(React__default.Fragment, null, React__default.createElement("p", {
44164
- className: "mb-0"
44165
- }, item.mainTeacherEmail), React__default.createElement("p", {
44166
- className: "mb-0"
44167
- }, item.mainTeacherName)) : React__default.createElement(TeacherSelector, {
44650
+ }, !!item.teachers && item.teachers.length > 0 ? React__default.createElement(React__default.Fragment, null, item.teachers.map(function (record) {
44651
+ return React__default.createElement("p", {
44652
+ className: "mb-0"
44653
+ }, record.mainTeacherName, " - ", record.mainTeacherEmail);
44654
+ })) : React__default.createElement(TeacherSelector, {
44655
+ isMulti: true,
44168
44656
  value: selectedTeachers === null || selectedTeachers === void 0 ? void 0 : selectedTeachers[item.id],
44169
44657
  options: teacherOptions,
44170
44658
  onChange: function onChange(e) {
44171
- return handleSelectTeacher(e.value, item.id);
44659
+ return handleSelectTeacher(e.map(function (i) {
44660
+ return i.value;
44661
+ }), item.id);
44172
44662
  },
44173
44663
  onCreateOption: function onCreateOption(value) {
44174
44664
  return handleCreateTeacherOption(value, item.id, true);
@@ -45243,34 +45733,6 @@ var UserDetail = function UserDetail() {
45243
45733
  });
45244
45734
  };
45245
45735
 
45246
- var loadingStyle = {
45247
- minWidth: "100vw",
45248
- minHeight: "100vh",
45249
- position: "fixed",
45250
- top: 0,
45251
- left: 0,
45252
- zIndex: 999999999,
45253
- backgroundColor: "rgba(0, 0, 0, 0.4)",
45254
- display: "flex",
45255
- justifyContent: "center",
45256
- alignItems: "center"
45257
- };
45258
-
45259
- var Loading = function Loading() {
45260
- var isLoading = reactRedux.useSelector(function (state) {
45261
- return state.common.isLoading;
45262
- });
45263
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45264
- return isLoading ? React__default.createElement("div", {
45265
- style: loadingStyle
45266
- }, React__default.createElement("div", {
45267
- className: "spinner-border text-secondary",
45268
- role: "status"
45269
- }, React__default.createElement("span", {
45270
- className: "sr-only"
45271
- }, "Loading..."))) : null;
45272
- };
45273
-
45274
45736
  var ScrollToTop = function ScrollToTop() {
45275
45737
  var _useLocation = reactRouterDom.useLocation(),
45276
45738
  pathname = _useLocation.pathname;
@@ -48290,32 +48752,6 @@ var store = toolkit.configureStore({
48290
48752
  }
48291
48753
  });
48292
48754
 
48293
- var firstCheckToken = function firstCheckToken() {
48294
- return Promise.resolve(_catch(function () {
48295
- var token = getAccessToken();
48296
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48297
- return tokenStatus.data ? true : false;
48298
- }) : false;
48299
- }, function () {
48300
- return false;
48301
- }));
48302
- };
48303
-
48304
- var canAccess = function canAccess(userRoles, componentRoles) {
48305
- if (!Array.isArray(userRoles)) {
48306
- return false;
48307
- }
48308
-
48309
- if (Array.isArray(componentRoles)) {
48310
- var intersects = userRoles.filter(function (i) {
48311
- return componentRoles.includes(i);
48312
- });
48313
- return intersects.length > 0;
48314
- }
48315
-
48316
- return true;
48317
- };
48318
-
48319
48755
  var isInViewport = function isInViewport(el) {
48320
48756
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
48321
48757
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -48345,424 +48781,12 @@ var getTextFromHTML = function getTextFromHTML(htmlString) {
48345
48781
  return text;
48346
48782
  };
48347
48783
 
48348
- var getCookieValue = function getCookieValue(name) {
48349
- var _document$cookie$matc;
48350
-
48351
- return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
48352
- };
48353
-
48354
48784
  var generateRandomString = (function () {
48355
48785
  return (Math.random() + 1).toString(36).substring(7);
48356
48786
  });
48357
48787
 
48358
48788
  var amplitudeClient = amplitude.getInstance();
48359
48789
 
48360
- var apiGetLanguage = function apiGetLanguage() {
48361
- return api.get(BASE_URL + "/api/language");
48362
- };
48363
-
48364
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48365
- return api.put(BASE_URL + "/api/language?lang=" + lang);
48366
- };
48367
-
48368
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48369
-
48370
- var useLanguages = function useLanguages() {
48371
- var dispatch = reactRedux.useDispatch();
48372
-
48373
- var _useTranslation = reactI18next.useTranslation(),
48374
- i18n = _useTranslation.i18n;
48375
-
48376
- var language = reactRedux.useSelector(function (state) {
48377
- return state.common.language;
48378
- });
48379
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48380
-
48381
- var _useState = React.useState([]),
48382
- languageList = _useState[0],
48383
- setLanguageList = _useState[1];
48384
-
48385
- var _useState2 = React.useState(false),
48386
- dropdownOpen = _useState2[0],
48387
- setDropdownOpen = _useState2[1];
48388
-
48389
- var _useState3 = React.useState(defaultLanguage),
48390
- currentLang = _useState3[0],
48391
- setCurrentLang = _useState3[1];
48392
-
48393
- var toggle = function toggle() {
48394
- return setDropdownOpen(function (prevState) {
48395
- return !prevState;
48396
- });
48397
- };
48398
-
48399
- var changeLanguageApp = function changeLanguageApp(lang) {
48400
- try {
48401
- var _temp3 = function _temp3() {
48402
- dispatch(setLoading(false));
48403
- };
48404
-
48405
- dispatch(setLoading(true));
48406
-
48407
- var _temp4 = _catch(function () {
48408
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48409
- i18n.changeLanguage(lang);
48410
- setCurrentLang(lang);
48411
- dispatch(setLanguage(lang));
48412
- });
48413
- }, function (err) {
48414
- var _err$response, _err$response$data;
48415
-
48416
- dispatch(setAlert({
48417
- type: "danger",
48418
- 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
48419
- }));
48420
- });
48421
-
48422
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48423
- } catch (e) {
48424
- return Promise.reject(e);
48425
- }
48426
- };
48427
-
48428
- var getListLanguage = function getListLanguage() {
48429
- try {
48430
- var _temp6 = _catch(function () {
48431
- return Promise.resolve(apiGetLanguage()).then(function (res) {
48432
- setLanguageList(res.data);
48433
- });
48434
- }, function (err) {
48435
- var _err$response2, _err$response2$data;
48436
-
48437
- dispatch(setAlert({
48438
- type: "danger",
48439
- 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
48440
- }));
48441
- });
48442
-
48443
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48444
- } catch (e) {
48445
- return Promise.reject(e);
48446
- }
48447
- };
48448
-
48449
- React.useEffect(function () {
48450
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
48451
- getListLanguage();
48452
- }, []);
48453
- return {
48454
- languageList: languageList,
48455
- toggle: toggle,
48456
- dropdownOpen: dropdownOpen,
48457
- currentLang: currentLang,
48458
- changeLanguageApp: changeLanguageApp,
48459
- setCurrentLang: setCurrentLang
48460
- };
48461
- };
48462
-
48463
- var TheLanguageDropdown = function TheLanguageDropdown() {
48464
- var _useLanguages = useLanguages(),
48465
- languageList = _useLanguages.languageList,
48466
- toggle = _useLanguages.toggle,
48467
- dropdownOpen = _useLanguages.dropdownOpen,
48468
- currentLang = _useLanguages.currentLang,
48469
- changeLanguageApp = _useLanguages.changeLanguageApp;
48470
-
48471
- var currentLanguage = React.useMemo(function () {
48472
- var current = languageList.find(function (i) {
48473
- return i.code === currentLang;
48474
- });
48475
- if (!current) return null;
48476
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
48477
- className: "mr-2 " + styles['dropdown-menu-flag'],
48478
- src: "" + getStaticFileUrl(current.image)
48479
- }), " ", current.name);
48480
- }, [currentLang, languageList]);
48481
- return React__default.createElement(reactstrap.Dropdown, {
48482
- isOpen: dropdownOpen,
48483
- toggle: toggle,
48484
- className: "" + styles["dropdown-menu"]
48485
- }, React__default.createElement(reactstrap.DropdownToggle, {
48486
- className: styles["header-avatar"] + " d-flex align-items-center"
48487
- }, React__default.createElement("span", {
48488
- style: {
48489
- color: "#000",
48490
- textTransform: "capitalize",
48491
- display: 'flex',
48492
- alignItems: 'center'
48493
- }
48494
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
48495
- className: "ml-2",
48496
- style: {
48497
- fontSize: '10px'
48498
- }
48499
- }))), React__default.createElement(reactstrap.DropdownMenu, {
48500
- className: styles["dropdown-content-language"]
48501
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48502
- return React__default.createElement(reactstrap.DropdownItem, {
48503
- key: lang.code,
48504
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48505
- onClick: function onClick() {
48506
- return changeLanguageApp(lang.code);
48507
- }
48508
- }, React__default.createElement("div", {
48509
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48510
- }, React__default.createElement("span", {
48511
- className: "mr-2 d-flex hover-opacity"
48512
- }, React__default.createElement("img", {
48513
- style: {
48514
- width: "30px",
48515
- height: "25px",
48516
- borderRadius: "5px"
48517
- },
48518
- src: getStaticFileUrl(lang.image)
48519
- })), lang.name));
48520
- })));
48521
- };
48522
-
48523
- var TheHeader = function TheHeader(_ref) {
48524
- var onToggleModel = _ref.onToggleModel;
48525
- var dispatch = reactRedux.useDispatch();
48526
- var sidebarShow = reactRedux.useSelector(function (state) {
48527
- return state.common.sidebarShow;
48528
- });
48529
-
48530
- var _useTranslation = reactI18next.useTranslation(),
48531
- t = _useTranslation.t;
48532
-
48533
- var toggleSidebarMobile = function toggleSidebarMobile() {
48534
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48535
- dispatch(setSidebar(val));
48536
- };
48537
-
48538
- var isDistrict = window.location.host.includes("-district");
48539
- return React__default.createElement(react.CHeader, {
48540
- withSubheader: true,
48541
- className: "d-flex align-items-center justify-content-end"
48542
- }, React__default.createElement(react.CToggler, {
48543
- inHeader: true,
48544
- className: "ml-md-3 d-lg-none",
48545
- onClick: toggleSidebarMobile
48546
- }), React__default.createElement(react.CHeaderBrand, {
48547
- className: "mx-auto flex-grow-1 d-lg-none",
48548
- to: "/"
48549
- }, React__default.createElement("img", {
48550
- src: getStaticFileUrl(Images.LOGO_HEADER),
48551
- className: styles["header-logo"]
48552
- })), React__default.createElement(react.CHeaderNav, {
48553
- className: "pr-3"
48554
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
48555
- className: "mr-3",
48556
- style: {
48557
- color: '#000'
48558
- },
48559
- href: '/privacy-policy',
48560
- target: "blank"
48561
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
48562
- onToggleModel: onToggleModel
48563
- })));
48564
- };
48565
-
48566
- var ModelSelectRole = function ModelSelectRole(_ref) {
48567
- var _handleUserRole;
48568
-
48569
- var open = _ref.open,
48570
- onToggleModel = _ref.onToggleModel;
48571
- var dispatch = reactRedux.useDispatch();
48572
-
48573
- var _useTranslation = reactI18next.useTranslation(),
48574
- t = _useTranslation.t;
48575
-
48576
- var history = reactRouterDom.useHistory();
48577
- var pathname = window.location.pathname;
48578
- var user = reactRedux.useSelector(function (state) {
48579
- return state.common.user;
48580
- });
48581
- var roles = user === null || user === void 0 ? void 0 : user.roles;
48582
-
48583
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
48584
- dispatch(setLoading(true));
48585
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
48586
- dispatch(setUser(_extends({}, user, {
48587
- roles: roleSelect
48588
- })));
48589
- localStorage.setItem("ROLES", roleSelect.toString());
48590
- onToggleModel();
48591
-
48592
- if (roles.includes("Parent")) {
48593
- history.push("/parent");
48594
- } else if (roles.includes("Admin")) {
48595
- history.push("/admin/home");
48596
- } else {
48597
- pathname !== "/home" ? history.push("/home") : window.location.reload();
48598
- }
48599
- };
48600
-
48601
- return React__default.createElement(reactstrap.Modal, {
48602
- isOpen: open,
48603
- toggle: function toggle() {
48604
- return onToggleModel();
48605
- },
48606
- className: "" + styles["model-switch-roles"],
48607
- centered: true
48608
- }, React__default.createElement("p", {
48609
- className: "" + styles["title"]
48610
- }, 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) {
48611
- return React__default.createElement("p", {
48612
- key: r,
48613
- 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" : ""],
48614
- onClick: function onClick() {
48615
- return handleSelectUserRoles([r]);
48616
- }
48617
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
48618
- })));
48619
- };
48620
-
48621
- var TheLayout = function TheLayout(_ref) {
48622
- var routes = _ref.routes,
48623
- navigation = _ref.navigation;
48624
- var history = reactRouterDom.useHistory();
48625
- var dispatch = reactRedux.useDispatch();
48626
- var user = reactRedux.useSelector(function (state) {
48627
- return state.common.user;
48628
- });
48629
- var language = reactRedux.useSelector(function (state) {
48630
- return state.common.language;
48631
- });
48632
-
48633
- var _useState = React.useState(false),
48634
- openModelSelectRole = _useState[0],
48635
- setOpenModelSelectRole = _useState[1];
48636
-
48637
- var _useTranslation = reactI18next.useTranslation(),
48638
- t = _useTranslation.t;
48639
-
48640
- var location = reactRouterDom.useLocation();
48641
- var isNotification = location.pathname.includes("notifications");
48642
- var isDistrict = window.location.host.includes("-district");
48643
-
48644
- var handleToggleModel = function handleToggleModel() {
48645
- setOpenModelSelectRole(!openModelSelectRole);
48646
- };
48647
-
48648
- var authRoutes = React.useMemo(function () {
48649
- return routes.filter(function (route) {
48650
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
48651
- }).filter(function (route) {
48652
- return !!route.isDistrict === isDistrict;
48653
- });
48654
- }, [user, language]);
48655
- var authNavigations = React.useMemo(function () {
48656
- return navigation.map(function (item) {
48657
- var _item$_children, _item$_children2;
48658
-
48659
- return _extends({}, item, {
48660
- name: t(item.name),
48661
- _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) {
48662
- return _extends({}, x, {
48663
- name: t(x.name)
48664
- });
48665
- }) : undefined
48666
- });
48667
- }).filter(function (nav) {
48668
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
48669
- }).filter(function (nav) {
48670
- return !!nav.isDistrict === isDistrict;
48671
- });
48672
- }, [user, language]);
48673
-
48674
- var getInformationSetting = function getInformationSetting() {
48675
- try {
48676
- var _temp2 = _catch(function () {
48677
- return Promise.resolve(getSchoolSettings()).then(function (res) {
48678
- dispatch(setSandboxMode(res.data.isSandboxMode));
48679
- });
48680
- }, function (err) {
48681
- console.error(err);
48682
- });
48683
-
48684
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
48685
- } catch (e) {
48686
- return Promise.reject(e);
48687
- }
48688
- };
48689
-
48690
- React.useEffect(function () {
48691
- checkAuthentication();
48692
- }, []);
48693
- React.useEffect(function () {
48694
- getInformationSetting();
48695
- }, [location.pathname]);
48696
-
48697
- var checkAuthentication = function checkAuthentication() {
48698
- try {
48699
- var _temp4 = _catch(function () {
48700
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
48701
- tokenStatus ? loadInfo() : resetAuth();
48702
- });
48703
- }, function () {
48704
- resetAuth();
48705
- });
48706
-
48707
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
48708
- } catch (e) {
48709
- return Promise.reject(e);
48710
- }
48711
- };
48712
-
48713
- var loadInfo = function loadInfo() {
48714
- try {
48715
- var _temp6 = _catch(function () {
48716
- return Promise.resolve(getInfo()).then(function (info) {
48717
- var _info$data, _info$data$roles;
48718
-
48719
- 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"))) {
48720
- resetAuth();
48721
- }
48722
-
48723
- dispatch(setUser(info.data));
48724
- });
48725
- }, function () {
48726
- resetAuth();
48727
- });
48728
-
48729
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48730
- } catch (e) {
48731
- return Promise.reject(e);
48732
- }
48733
- };
48734
-
48735
- var resetAuth = function resetAuth() {
48736
- localStorage.removeItem(ACCESS_TOKEN);
48737
- sessionStorage.removeItem(ACCESS_TOKEN);
48738
- localStorage.removeItem("ROLES");
48739
- history.push("/");
48740
- };
48741
-
48742
- if (!user) {
48743
- return React__default.createElement(Loading, null);
48744
- }
48745
-
48746
- return React__default.createElement("div", {
48747
- className: "c-app c-default-layout"
48748
- }, !isNotification && React__default.createElement(TheSidebar, {
48749
- navigation: authNavigations
48750
- }), React__default.createElement("div", {
48751
- className: "c-wrapper"
48752
- }, !isNotification && React__default.createElement(TheHeader, {
48753
- onToggleModel: handleToggleModel
48754
- }), React__default.createElement("div", {
48755
- className: "c-body bg-white"
48756
- }, React__default.createElement(TheContent$1, {
48757
- routes: authRoutes
48758
- }))), React__default.createElement(ModelSelectRole, {
48759
- open: openModelSelectRole,
48760
- onToggleModel: handleToggleModel
48761
- }));
48762
- };
48763
-
48764
- var amplitudeClient$1 = amplitude.getInstance();
48765
-
48766
48790
  Object.defineProperty(exports, 'I18nextProvider', {
48767
48791
  enumerable: true,
48768
48792
  get: function () {
@@ -48850,7 +48874,7 @@ exports.UserContainer = UserContainer;
48850
48874
  exports.UserDetail = UserDetail;
48851
48875
  exports.UserList = UserList;
48852
48876
  exports.addTab = addTab;
48853
- exports.amplitudeClient = amplitudeClient$1;
48877
+ exports.amplitudeClient = amplitudeClient;
48854
48878
  exports.answerQuestion = answerQuestion;
48855
48879
  exports.answerQuestionDataPlayer = answerQuestionDataPlayer;
48856
48880
  exports.api = api;