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.
@@ -2,7 +2,7 @@ import 'bootstrap/dist/css/bootstrap.min.css';
2
2
  import i18n from 'i18next';
3
3
  import { initReactI18next, useTranslation } from 'react-i18next';
4
4
  export { I18nextProvider, useTranslation } from 'react-i18next';
5
- import React, { useState, useCallback, useEffect, forwardRef, useRef, Suspense, memo, Fragment, useImperativeHandle, useMemo } from 'react';
5
+ import React, { useState, useCallback, useEffect, forwardRef, useRef, useMemo, Suspense, memo, Fragment, useImperativeHandle } from 'react';
6
6
  import { Input, Modal, ModalHeader, ModalBody, ModalFooter, Button, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
7
7
  import { useHistory, Link, useLocation, Switch, Route, Prompt, useParams } from 'react-router-dom';
8
8
  import { useDispatch, useSelector } from 'react-redux';
@@ -17,7 +17,7 @@ import { useGoogleReCaptcha, GoogleReCaptcha, GoogleReCaptchaProvider } from 're
17
17
  import GoogleLogin from 'react-google-login';
18
18
  import Select from 'react-select';
19
19
  import { GiHamburgerMenu } from 'react-icons/gi';
20
- import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } from '@coreui/react';
20
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
21
21
  import { CgMenuRight } from 'react-icons/cg';
22
22
  import { RiLogoutBoxRLine } from 'react-icons/ri';
23
23
  import Pusher from 'pusher-js/with-encryption';
@@ -19827,7 +19827,7 @@ function _catch(body, recover) {
19827
19827
  return result;
19828
19828
  }
19829
19829
 
19830
- 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"};
19830
+ 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"};
19831
19831
 
19832
19832
  var style = {
19833
19833
  fontSize: "0.85rem"
@@ -38100,8 +38100,7 @@ var BlockLogin = function BlockLogin(_ref) {
38100
38100
  isLoginGoogle = _useLogin.isLoginGoogle,
38101
38101
  submitLogin = _useLogin.submitLogin,
38102
38102
  infoUser = _useLogin.infoUser,
38103
- googleClientId = _useLogin.googleClientId,
38104
- fnLoginSSO = _useLogin.fnLoginSSO;
38103
+ googleClientId = _useLogin.googleClientId;
38105
38104
 
38106
38105
  var togglePasswordVisible = function togglePasswordVisible() {
38107
38106
  return setIsShowPassword(!isShowPassword);
@@ -38251,8 +38250,8 @@ var BlockLogin = function BlockLogin(_ref) {
38251
38250
  }, "OR"), React.createElement(Row, {
38252
38251
  className: "mb-4"
38253
38252
  }, React.createElement(Col, {
38254
- lg: 6,
38255
- md: 6,
38253
+ lg: 12,
38254
+ md: 12,
38256
38255
  xs: 12,
38257
38256
  className: "pr-md-2"
38258
38257
  }, !!googleClientId && React.createElement(GoogleLogin, {
@@ -38261,19 +38260,15 @@ var BlockLogin = function BlockLogin(_ref) {
38261
38260
  onSuccess: onSuccessGoogle,
38262
38261
  cookiePolicy: "single_host_origin",
38263
38262
  className: styles["btn-login-google"] + " p-0 mb-4 mb-md-0"
38264
- })), React.createElement(Col, {
38265
- lg: 6,
38266
- md: 6,
38267
- xs: 12,
38268
- className: styles["btn-login-sso"] + " pl-md-2"
38269
- }, React.createElement("div", {
38270
- className: styles["btn-login-with-sso"],
38271
- onClick: function onClick() {
38272
- return fnLoginSSO(clickHandler);
38273
- }
38263
+ }))), React.createElement("div", {
38264
+ className: "w-100 d-flex align-items-center justify-content-center mt-3"
38265
+ }, React.createElement("a", {
38266
+ href: "https://launchpad.classlink.com/login"
38274
38267
  }, React.createElement("img", {
38275
- src: "images/microsoft-logo.png"
38276
- }), React.createElement("p", null, "MICROSOFT")))))));
38268
+ className: styles["class-link-sso-image"],
38269
+ src: getStaticFileUrl("images/classlink-sso.png"),
38270
+ alt: ""
38271
+ }))))));
38277
38272
  }), isLoginGoogle && React.createElement(BlockSelectTeacher$1, {
38278
38273
  onSubmit: function onSubmit(e) {
38279
38274
  return submitLogin(e, clickHandler);
@@ -39420,6 +39415,218 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39420
39415
  })), t("log_out")))));
39421
39416
  };
39422
39417
 
39418
+ var getCookieValue = function getCookieValue(name) {
39419
+ var _document$cookie$matc;
39420
+
39421
+ return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
39422
+ };
39423
+
39424
+ var apiGetLanguage = function apiGetLanguage() {
39425
+ return api.get(BASE_URL + "/api/language");
39426
+ };
39427
+
39428
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
39429
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
39430
+ };
39431
+
39432
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
39433
+
39434
+ var useLanguages = function useLanguages() {
39435
+ var dispatch = useDispatch();
39436
+
39437
+ var _useTranslation = useTranslation(),
39438
+ i18n = _useTranslation.i18n;
39439
+
39440
+ var language = useSelector(function (state) {
39441
+ return state.common.language;
39442
+ });
39443
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
39444
+
39445
+ var _useState = useState([]),
39446
+ languageList = _useState[0],
39447
+ setLanguageList = _useState[1];
39448
+
39449
+ var _useState2 = useState(false),
39450
+ dropdownOpen = _useState2[0],
39451
+ setDropdownOpen = _useState2[1];
39452
+
39453
+ var _useState3 = useState(defaultLanguage),
39454
+ currentLang = _useState3[0],
39455
+ setCurrentLang = _useState3[1];
39456
+
39457
+ var toggle = function toggle() {
39458
+ return setDropdownOpen(function (prevState) {
39459
+ return !prevState;
39460
+ });
39461
+ };
39462
+
39463
+ var changeLanguageApp = function changeLanguageApp(lang) {
39464
+ try {
39465
+ var _temp3 = function _temp3() {
39466
+ dispatch(setLoading(false));
39467
+ };
39468
+
39469
+ dispatch(setLoading(true));
39470
+
39471
+ var _temp4 = _catch(function () {
39472
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
39473
+ i18n.changeLanguage(lang);
39474
+ setCurrentLang(lang);
39475
+ dispatch(setLanguage(lang));
39476
+ });
39477
+ }, function (err) {
39478
+ var _err$response, _err$response$data;
39479
+
39480
+ dispatch(setAlert({
39481
+ type: "danger",
39482
+ 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
39483
+ }));
39484
+ });
39485
+
39486
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
39487
+ } catch (e) {
39488
+ return Promise.reject(e);
39489
+ }
39490
+ };
39491
+
39492
+ var getListLanguage = function getListLanguage() {
39493
+ try {
39494
+ var _temp6 = _catch(function () {
39495
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
39496
+ setLanguageList(res.data);
39497
+ });
39498
+ }, function (err) {
39499
+ var _err$response2, _err$response2$data;
39500
+
39501
+ dispatch(setAlert({
39502
+ type: "danger",
39503
+ 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
39504
+ }));
39505
+ });
39506
+
39507
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39508
+ } catch (e) {
39509
+ return Promise.reject(e);
39510
+ }
39511
+ };
39512
+
39513
+ useEffect(function () {
39514
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
39515
+ getListLanguage();
39516
+ }, []);
39517
+ return {
39518
+ languageList: languageList,
39519
+ toggle: toggle,
39520
+ dropdownOpen: dropdownOpen,
39521
+ currentLang: currentLang,
39522
+ changeLanguageApp: changeLanguageApp,
39523
+ setCurrentLang: setCurrentLang
39524
+ };
39525
+ };
39526
+
39527
+ var TheLanguageDropdown = function TheLanguageDropdown() {
39528
+ var _useLanguages = useLanguages(),
39529
+ languageList = _useLanguages.languageList,
39530
+ toggle = _useLanguages.toggle,
39531
+ dropdownOpen = _useLanguages.dropdownOpen,
39532
+ currentLang = _useLanguages.currentLang,
39533
+ changeLanguageApp = _useLanguages.changeLanguageApp;
39534
+
39535
+ var currentLanguage = useMemo(function () {
39536
+ var current = languageList.find(function (i) {
39537
+ return i.code === currentLang;
39538
+ });
39539
+ if (!current) return null;
39540
+ return React.createElement(React.Fragment, null, React.createElement("img", {
39541
+ className: "mr-2 " + styles['dropdown-menu-flag'],
39542
+ src: "" + getStaticFileUrl(current.image)
39543
+ }), " ", current.name);
39544
+ }, [currentLang, languageList]);
39545
+ return React.createElement(Dropdown, {
39546
+ isOpen: dropdownOpen,
39547
+ toggle: toggle,
39548
+ className: "" + styles["dropdown-menu"]
39549
+ }, React.createElement(DropdownToggle, {
39550
+ className: styles["header-avatar"] + " d-flex align-items-center"
39551
+ }, React.createElement("span", {
39552
+ style: {
39553
+ color: "#000",
39554
+ textTransform: "capitalize",
39555
+ display: 'flex',
39556
+ alignItems: 'center'
39557
+ }
39558
+ }, currentLanguage, React.createElement(BsChevronDown, {
39559
+ className: "ml-2",
39560
+ style: {
39561
+ fontSize: '10px'
39562
+ }
39563
+ }))), React.createElement(DropdownMenu, {
39564
+ className: styles["dropdown-content-language"]
39565
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
39566
+ return React.createElement(DropdownItem, {
39567
+ key: lang.code,
39568
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
39569
+ onClick: function onClick() {
39570
+ return changeLanguageApp(lang.code);
39571
+ }
39572
+ }, React.createElement("div", {
39573
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
39574
+ }, React.createElement("span", {
39575
+ className: "mr-2 d-flex hover-opacity"
39576
+ }, React.createElement("img", {
39577
+ style: {
39578
+ width: "30px",
39579
+ height: "25px",
39580
+ borderRadius: "5px"
39581
+ },
39582
+ src: getStaticFileUrl(lang.image)
39583
+ })), lang.name));
39584
+ })));
39585
+ };
39586
+
39587
+ var TheHeader = function TheHeader(_ref) {
39588
+ var onToggleModel = _ref.onToggleModel;
39589
+ var dispatch = useDispatch();
39590
+ var sidebarShow = useSelector(function (state) {
39591
+ return state.common.sidebarShow;
39592
+ });
39593
+
39594
+ var _useTranslation = useTranslation(),
39595
+ t = _useTranslation.t;
39596
+
39597
+ var toggleSidebarMobile = function toggleSidebarMobile() {
39598
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
39599
+ dispatch(setSidebar(val));
39600
+ };
39601
+
39602
+ var isDistrict = window.location.host.includes("-district");
39603
+ return React.createElement(CHeader, {
39604
+ withSubheader: true,
39605
+ className: "d-flex align-items-center justify-content-end"
39606
+ }, React.createElement(CToggler, {
39607
+ inHeader: true,
39608
+ className: "ml-md-3 d-lg-none",
39609
+ onClick: toggleSidebarMobile
39610
+ }), React.createElement(CHeaderBrand, {
39611
+ className: "mx-auto flex-grow-1 d-lg-none",
39612
+ to: "/"
39613
+ }, React.createElement("img", {
39614
+ src: getStaticFileUrl(Images.LOGO_HEADER),
39615
+ className: styles["header-logo"]
39616
+ })), React.createElement(CHeaderNav, {
39617
+ className: "pr-3"
39618
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
39619
+ className: "mr-3",
39620
+ style: {
39621
+ color: '#000'
39622
+ },
39623
+ href: '/privacy-policy',
39624
+ target: "blank"
39625
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
39626
+ onToggleModel: onToggleModel
39627
+ })));
39628
+ };
39629
+
39423
39630
  var TITLE$3 = "Not found";
39424
39631
 
39425
39632
  var NotFound = function NotFound() {
@@ -39477,6 +39684,258 @@ var TheContent = function TheContent(_ref) {
39477
39684
 
39478
39685
  var TheContent$1 = React.memo(TheContent);
39479
39686
 
39687
+ var loadingStyle = {
39688
+ minWidth: "100vw",
39689
+ minHeight: "100vh",
39690
+ position: "fixed",
39691
+ top: 0,
39692
+ left: 0,
39693
+ zIndex: 999999999,
39694
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
39695
+ display: "flex",
39696
+ justifyContent: "center",
39697
+ alignItems: "center"
39698
+ };
39699
+
39700
+ var Loading = function Loading() {
39701
+ var isLoading = useSelector(function (state) {
39702
+ return state.common.isLoading;
39703
+ });
39704
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
39705
+ return isLoading ? React.createElement("div", {
39706
+ style: loadingStyle
39707
+ }, React.createElement("div", {
39708
+ className: "spinner-border text-secondary",
39709
+ role: "status"
39710
+ }, React.createElement("span", {
39711
+ className: "sr-only"
39712
+ }, "Loading..."))) : null;
39713
+ };
39714
+
39715
+ var firstCheckToken = function firstCheckToken() {
39716
+ return Promise.resolve(_catch(function () {
39717
+ var token = getAccessToken();
39718
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
39719
+ return tokenStatus.data ? true : false;
39720
+ }) : false;
39721
+ }, function () {
39722
+ return false;
39723
+ }));
39724
+ };
39725
+
39726
+ var canAccess = function canAccess(userRoles, componentRoles) {
39727
+ if (!Array.isArray(userRoles)) {
39728
+ return false;
39729
+ }
39730
+
39731
+ if (Array.isArray(componentRoles)) {
39732
+ var intersects = userRoles.filter(function (i) {
39733
+ return componentRoles.includes(i);
39734
+ });
39735
+ return intersects.length > 0;
39736
+ }
39737
+
39738
+ return true;
39739
+ };
39740
+
39741
+ var ModelSelectRole = function ModelSelectRole(_ref) {
39742
+ var _handleUserRole;
39743
+
39744
+ var open = _ref.open,
39745
+ onToggleModel = _ref.onToggleModel;
39746
+ var dispatch = useDispatch();
39747
+
39748
+ var _useTranslation = useTranslation(),
39749
+ t = _useTranslation.t;
39750
+
39751
+ var history = useHistory();
39752
+ var pathname = window.location.pathname;
39753
+ var user = useSelector(function (state) {
39754
+ return state.common.user;
39755
+ });
39756
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
39757
+
39758
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
39759
+ dispatch(setLoading(true));
39760
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
39761
+ dispatch(setUser(_extends({}, user, {
39762
+ roles: roleSelect
39763
+ })));
39764
+ localStorage.setItem("ROLES", roleSelect.toString());
39765
+ onToggleModel();
39766
+
39767
+ if (roles.includes("Parent")) {
39768
+ history.push("/parent");
39769
+ } else if (roles.includes("Admin")) {
39770
+ history.push("/admin/home");
39771
+ } else {
39772
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
39773
+ }
39774
+ };
39775
+
39776
+ return React.createElement(Modal, {
39777
+ isOpen: open,
39778
+ toggle: function toggle() {
39779
+ return onToggleModel();
39780
+ },
39781
+ className: "" + styles["model-switch-roles"],
39782
+ centered: true
39783
+ }, React.createElement("p", {
39784
+ className: "" + styles["title"]
39785
+ }, t("continue_as")), React.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
39786
+ return React.createElement("p", {
39787
+ key: r,
39788
+ 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" : ""],
39789
+ onClick: function onClick() {
39790
+ return handleSelectUserRoles([r]);
39791
+ }
39792
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
39793
+ })));
39794
+ };
39795
+
39796
+ var TheLayout = function TheLayout(_ref) {
39797
+ var routes = _ref.routes,
39798
+ navigation = _ref.navigation;
39799
+ var history = useHistory();
39800
+ var dispatch = useDispatch();
39801
+ var user = useSelector(function (state) {
39802
+ return state.common.user;
39803
+ });
39804
+ var language = useSelector(function (state) {
39805
+ return state.common.language;
39806
+ });
39807
+
39808
+ var _useState = useState(false),
39809
+ openModelSelectRole = _useState[0],
39810
+ setOpenModelSelectRole = _useState[1];
39811
+
39812
+ var _useTranslation = useTranslation(),
39813
+ t = _useTranslation.t;
39814
+
39815
+ var location = useLocation();
39816
+ var isNotification = location.pathname.includes("notifications");
39817
+ var isDistrict = window.location.host.includes("-district");
39818
+
39819
+ var handleToggleModel = function handleToggleModel() {
39820
+ setOpenModelSelectRole(!openModelSelectRole);
39821
+ };
39822
+
39823
+ var authRoutes = useMemo(function () {
39824
+ return routes.filter(function (route) {
39825
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
39826
+ }).filter(function (route) {
39827
+ return !!route.isDistrict === isDistrict;
39828
+ });
39829
+ }, [user, language]);
39830
+ var authNavigations = useMemo(function () {
39831
+ return navigation.map(function (item) {
39832
+ var _item$_children, _item$_children2;
39833
+
39834
+ return _extends({}, item, {
39835
+ name: t(item.name),
39836
+ _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) {
39837
+ return _extends({}, x, {
39838
+ name: t(x.name)
39839
+ });
39840
+ }) : undefined
39841
+ });
39842
+ }).filter(function (nav) {
39843
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
39844
+ }).filter(function (nav) {
39845
+ return !!nav.isDistrict === isDistrict;
39846
+ });
39847
+ }, [user, language]);
39848
+
39849
+ var getInformationSetting = function getInformationSetting() {
39850
+ try {
39851
+ var _temp2 = _catch(function () {
39852
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
39853
+ dispatch(setSandboxMode(res.data.isSandboxMode));
39854
+ });
39855
+ }, function (err) {
39856
+ console.error(err);
39857
+ });
39858
+
39859
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
39860
+ } catch (e) {
39861
+ return Promise.reject(e);
39862
+ }
39863
+ };
39864
+
39865
+ useEffect(function () {
39866
+ checkAuthentication();
39867
+ }, []);
39868
+ useEffect(function () {
39869
+ getInformationSetting();
39870
+ }, [location.pathname]);
39871
+
39872
+ var checkAuthentication = function checkAuthentication() {
39873
+ try {
39874
+ var _temp4 = _catch(function () {
39875
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
39876
+ tokenStatus ? loadInfo() : resetAuth();
39877
+ });
39878
+ }, function () {
39879
+ resetAuth();
39880
+ });
39881
+
39882
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
39883
+ } catch (e) {
39884
+ return Promise.reject(e);
39885
+ }
39886
+ };
39887
+
39888
+ var loadInfo = function loadInfo() {
39889
+ try {
39890
+ var _temp6 = _catch(function () {
39891
+ return Promise.resolve(getInfo()).then(function (info) {
39892
+ var _info$data, _info$data$roles;
39893
+
39894
+ 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"))) {
39895
+ resetAuth();
39896
+ }
39897
+
39898
+ dispatch(setUser(info.data));
39899
+ });
39900
+ }, function () {
39901
+ resetAuth();
39902
+ });
39903
+
39904
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39905
+ } catch (e) {
39906
+ return Promise.reject(e);
39907
+ }
39908
+ };
39909
+
39910
+ var resetAuth = function resetAuth() {
39911
+ localStorage.removeItem(ACCESS_TOKEN);
39912
+ sessionStorage.removeItem(ACCESS_TOKEN);
39913
+ localStorage.removeItem("ROLES");
39914
+ history.push("/");
39915
+ };
39916
+
39917
+ if (!user) {
39918
+ return React.createElement(Loading, null);
39919
+ }
39920
+
39921
+ return React.createElement("div", {
39922
+ className: "c-app c-default-layout"
39923
+ }, !isNotification && React.createElement(TheSidebar, {
39924
+ navigation: authNavigations
39925
+ }), React.createElement("div", {
39926
+ className: "c-wrapper"
39927
+ }, !isNotification && React.createElement(TheHeader, {
39928
+ onToggleModel: handleToggleModel
39929
+ }), React.createElement("div", {
39930
+ className: "c-body bg-white"
39931
+ }, React.createElement(TheContent$1, {
39932
+ routes: authRoutes
39933
+ }))), React.createElement(ModelSelectRole, {
39934
+ open: openModelSelectRole,
39935
+ onToggleModel: handleToggleModel
39936
+ }));
39937
+ };
39938
+
39480
39939
  var buttonTextStyle = {
39481
39940
  fontWeight: 500
39482
39941
  };
@@ -43600,11 +44059,17 @@ var useTeacherList = function useTeacherList() {
43600
44059
  }
43601
44060
  };
43602
44061
 
43603
- var handleSelectTeacher = useCallback(function (teacherId, studentUserId) {
44062
+ var handleSelectTeacher = useCallback(function (teacherIds, studentUserId) {
43604
44063
  var _extends2;
43605
44064
 
43606
- var selectedTeacher = teacherOptions.find(function (t) {
43607
- return t.value === teacherId;
44065
+ var selectedTeacher = teacherOptions.filter(function (t) {
44066
+ return teacherIds.includes(t.value);
44067
+ });
44068
+ console.log({
44069
+ teacherIds: teacherIds
44070
+ });
44071
+ console.log({
44072
+ selectedTeacher: selectedTeacher
43608
44073
  });
43609
44074
  setSelectedTeachers(_extends({}, selectedTeachers, (_extends2 = {}, _extends2[studentUserId] = selectedTeacher, _extends2)));
43610
44075
  }, [JSON.stringify(selectedTeachers), JSON.stringify(teacherOptions)]);
@@ -43723,18 +44188,29 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43723
44188
  return;
43724
44189
  }
43725
44190
 
44191
+ console.log("list userId");
44192
+ console.log({
44193
+ listUserIds: listUserIds
44194
+ });
43726
44195
  var users = listUserIds.map(function (i) {
43727
44196
  var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[i];
43728
44197
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[i];
43729
44198
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[i];
43730
44199
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[i];
44200
+ console.log({
44201
+ teacher: teacher
44202
+ });
43731
44203
  var value = {
43732
44204
  id: i
43733
44205
  };
43734
44206
 
43735
44207
  if (!!teacher) {
43736
- 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;
43737
- 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;
44208
+ value.mainTeacherUserId = !!teacher ? teacher.map(function (i) {
44209
+ return i.value;
44210
+ }) : undefined;
44211
+ value.mainTeacherEmail = !!teacher ? teacher.map(function (i) {
44212
+ return i.label;
44213
+ }) : undefined;
43738
44214
  }
43739
44215
 
43740
44216
  if (!!assistant) {
@@ -43761,6 +44237,10 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43761
44237
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[id];
43762
44238
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[id];
43763
44239
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[id];
44240
+ console.log("assign student");
44241
+ console.log({
44242
+ teacherSelected: teacherSelected
44243
+ });
43764
44244
 
43765
44245
  if (!teacher && !assistant && !counselor && !secondaryTeacher) {
43766
44246
  dispatch(setAlert({
@@ -43775,8 +44255,12 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43775
44255
  };
43776
44256
 
43777
44257
  if (!!teacher) {
43778
- 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;
43779
- 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;
44258
+ studentRequest.mainTeacherUserId = !!teacher ? teacher.map(function (i) {
44259
+ return i.value;
44260
+ }) : undefined;
44261
+ studentRequest.mainTeacherEmail = !!teacher ? teacher.map(function (i) {
44262
+ return i.label;
44263
+ }) : undefined;
43780
44264
  }
43781
44265
 
43782
44266
  if (!!assistant) {
@@ -43797,6 +44281,11 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43797
44281
  assignStudents([studentRequest]);
43798
44282
  }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
43799
44283
  var handleAssignStaffToStudents = useCallback(function (listUserIds) {
44284
+ console.log("staffBulkAssign");
44285
+ console.log({
44286
+ staffBulkAssign: staffBulkAssign
44287
+ });
44288
+
43800
44289
  if (listUserIds.length === 0) {
43801
44290
  dispatch(setAlert({
43802
44291
  type: "danger",
@@ -43808,8 +44297,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
43808
44297
  var users = listUserIds.map(function (i) {
43809
44298
  var value = {
43810
44299
  id: i,
43811
- mainTeacherUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherId : undefined,
43812
- mainTeacherEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherEmail : undefined,
43813
44300
  assistantUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantId : undefined,
43814
44301
  assistantEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantEmail : undefined,
43815
44302
  counselorUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.counselorId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.counselorId : undefined,
@@ -44158,15 +44645,18 @@ var AssignStudentList = function AssignStudentList() {
44158
44645
  className: "align-middle"
44159
44646
  }, item.email), React.createElement("td", {
44160
44647
  className: "align-middle"
44161
- }, !!item.mainTeacherEmail ? React.createElement(React.Fragment, null, React.createElement("p", {
44162
- className: "mb-0"
44163
- }, item.mainTeacherEmail), React.createElement("p", {
44164
- className: "mb-0"
44165
- }, item.mainTeacherName)) : React.createElement(TeacherSelector, {
44648
+ }, !!item.teachers && item.teachers.length > 0 ? React.createElement(React.Fragment, null, item.teachers.map(function (record) {
44649
+ return React.createElement("p", {
44650
+ className: "mb-0"
44651
+ }, record.mainTeacherName, " - ", record.mainTeacherEmail);
44652
+ })) : React.createElement(TeacherSelector, {
44653
+ isMulti: true,
44166
44654
  value: selectedTeachers === null || selectedTeachers === void 0 ? void 0 : selectedTeachers[item.id],
44167
44655
  options: teacherOptions,
44168
44656
  onChange: function onChange(e) {
44169
- return handleSelectTeacher(e.value, item.id);
44657
+ return handleSelectTeacher(e.map(function (i) {
44658
+ return i.value;
44659
+ }), item.id);
44170
44660
  },
44171
44661
  onCreateOption: function onCreateOption(value) {
44172
44662
  return handleCreateTeacherOption(value, item.id, true);
@@ -45241,34 +45731,6 @@ var UserDetail = function UserDetail() {
45241
45731
  });
45242
45732
  };
45243
45733
 
45244
- var loadingStyle = {
45245
- minWidth: "100vw",
45246
- minHeight: "100vh",
45247
- position: "fixed",
45248
- top: 0,
45249
- left: 0,
45250
- zIndex: 999999999,
45251
- backgroundColor: "rgba(0, 0, 0, 0.4)",
45252
- display: "flex",
45253
- justifyContent: "center",
45254
- alignItems: "center"
45255
- };
45256
-
45257
- var Loading = function Loading() {
45258
- var isLoading = useSelector(function (state) {
45259
- return state.common.isLoading;
45260
- });
45261
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45262
- return isLoading ? React.createElement("div", {
45263
- style: loadingStyle
45264
- }, React.createElement("div", {
45265
- className: "spinner-border text-secondary",
45266
- role: "status"
45267
- }, React.createElement("span", {
45268
- className: "sr-only"
45269
- }, "Loading..."))) : null;
45270
- };
45271
-
45272
45734
  var ScrollToTop = function ScrollToTop() {
45273
45735
  var _useLocation = useLocation(),
45274
45736
  pathname = _useLocation.pathname;
@@ -48288,32 +48750,6 @@ var store = configureStore({
48288
48750
  }
48289
48751
  });
48290
48752
 
48291
- var firstCheckToken = function firstCheckToken() {
48292
- return Promise.resolve(_catch(function () {
48293
- var token = getAccessToken();
48294
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48295
- return tokenStatus.data ? true : false;
48296
- }) : false;
48297
- }, function () {
48298
- return false;
48299
- }));
48300
- };
48301
-
48302
- var canAccess = function canAccess(userRoles, componentRoles) {
48303
- if (!Array.isArray(userRoles)) {
48304
- return false;
48305
- }
48306
-
48307
- if (Array.isArray(componentRoles)) {
48308
- var intersects = userRoles.filter(function (i) {
48309
- return componentRoles.includes(i);
48310
- });
48311
- return intersects.length > 0;
48312
- }
48313
-
48314
- return true;
48315
- };
48316
-
48317
48753
  var isInViewport = function isInViewport(el) {
48318
48754
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
48319
48755
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -48343,423 +48779,11 @@ var getTextFromHTML = function getTextFromHTML(htmlString) {
48343
48779
  return text;
48344
48780
  };
48345
48781
 
48346
- var getCookieValue = function getCookieValue(name) {
48347
- var _document$cookie$matc;
48348
-
48349
- return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
48350
- };
48351
-
48352
48782
  var generateRandomString = (function () {
48353
48783
  return (Math.random() + 1).toString(36).substring(7);
48354
48784
  });
48355
48785
 
48356
48786
  var amplitudeClient = amplitude.getInstance();
48357
48787
 
48358
- var apiGetLanguage = function apiGetLanguage() {
48359
- return api.get(BASE_URL + "/api/language");
48360
- };
48361
-
48362
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48363
- return api.put(BASE_URL + "/api/language?lang=" + lang);
48364
- };
48365
-
48366
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48367
-
48368
- var useLanguages = function useLanguages() {
48369
- var dispatch = useDispatch();
48370
-
48371
- var _useTranslation = useTranslation(),
48372
- i18n = _useTranslation.i18n;
48373
-
48374
- var language = useSelector(function (state) {
48375
- return state.common.language;
48376
- });
48377
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48378
-
48379
- var _useState = useState([]),
48380
- languageList = _useState[0],
48381
- setLanguageList = _useState[1];
48382
-
48383
- var _useState2 = useState(false),
48384
- dropdownOpen = _useState2[0],
48385
- setDropdownOpen = _useState2[1];
48386
-
48387
- var _useState3 = useState(defaultLanguage),
48388
- currentLang = _useState3[0],
48389
- setCurrentLang = _useState3[1];
48390
-
48391
- var toggle = function toggle() {
48392
- return setDropdownOpen(function (prevState) {
48393
- return !prevState;
48394
- });
48395
- };
48396
-
48397
- var changeLanguageApp = function changeLanguageApp(lang) {
48398
- try {
48399
- var _temp3 = function _temp3() {
48400
- dispatch(setLoading(false));
48401
- };
48402
-
48403
- dispatch(setLoading(true));
48404
-
48405
- var _temp4 = _catch(function () {
48406
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48407
- i18n.changeLanguage(lang);
48408
- setCurrentLang(lang);
48409
- dispatch(setLanguage(lang));
48410
- });
48411
- }, function (err) {
48412
- var _err$response, _err$response$data;
48413
-
48414
- dispatch(setAlert({
48415
- type: "danger",
48416
- 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
48417
- }));
48418
- });
48419
-
48420
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48421
- } catch (e) {
48422
- return Promise.reject(e);
48423
- }
48424
- };
48425
-
48426
- var getListLanguage = function getListLanguage() {
48427
- try {
48428
- var _temp6 = _catch(function () {
48429
- return Promise.resolve(apiGetLanguage()).then(function (res) {
48430
- setLanguageList(res.data);
48431
- });
48432
- }, function (err) {
48433
- var _err$response2, _err$response2$data;
48434
-
48435
- dispatch(setAlert({
48436
- type: "danger",
48437
- 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
48438
- }));
48439
- });
48440
-
48441
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48442
- } catch (e) {
48443
- return Promise.reject(e);
48444
- }
48445
- };
48446
-
48447
- useEffect(function () {
48448
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
48449
- getListLanguage();
48450
- }, []);
48451
- return {
48452
- languageList: languageList,
48453
- toggle: toggle,
48454
- dropdownOpen: dropdownOpen,
48455
- currentLang: currentLang,
48456
- changeLanguageApp: changeLanguageApp,
48457
- setCurrentLang: setCurrentLang
48458
- };
48459
- };
48460
-
48461
- var TheLanguageDropdown = function TheLanguageDropdown() {
48462
- var _useLanguages = useLanguages(),
48463
- languageList = _useLanguages.languageList,
48464
- toggle = _useLanguages.toggle,
48465
- dropdownOpen = _useLanguages.dropdownOpen,
48466
- currentLang = _useLanguages.currentLang,
48467
- changeLanguageApp = _useLanguages.changeLanguageApp;
48468
-
48469
- var currentLanguage = useMemo(function () {
48470
- var current = languageList.find(function (i) {
48471
- return i.code === currentLang;
48472
- });
48473
- if (!current) return null;
48474
- return React.createElement(React.Fragment, null, React.createElement("img", {
48475
- className: "mr-2 " + styles['dropdown-menu-flag'],
48476
- src: "" + getStaticFileUrl(current.image)
48477
- }), " ", current.name);
48478
- }, [currentLang, languageList]);
48479
- return React.createElement(Dropdown, {
48480
- isOpen: dropdownOpen,
48481
- toggle: toggle,
48482
- className: "" + styles["dropdown-menu"]
48483
- }, React.createElement(DropdownToggle, {
48484
- className: styles["header-avatar"] + " d-flex align-items-center"
48485
- }, React.createElement("span", {
48486
- style: {
48487
- color: "#000",
48488
- textTransform: "capitalize",
48489
- display: 'flex',
48490
- alignItems: 'center'
48491
- }
48492
- }, currentLanguage, React.createElement(BsChevronDown, {
48493
- className: "ml-2",
48494
- style: {
48495
- fontSize: '10px'
48496
- }
48497
- }))), React.createElement(DropdownMenu, {
48498
- className: styles["dropdown-content-language"]
48499
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48500
- return React.createElement(DropdownItem, {
48501
- key: lang.code,
48502
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48503
- onClick: function onClick() {
48504
- return changeLanguageApp(lang.code);
48505
- }
48506
- }, React.createElement("div", {
48507
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48508
- }, React.createElement("span", {
48509
- className: "mr-2 d-flex hover-opacity"
48510
- }, React.createElement("img", {
48511
- style: {
48512
- width: "30px",
48513
- height: "25px",
48514
- borderRadius: "5px"
48515
- },
48516
- src: getStaticFileUrl(lang.image)
48517
- })), lang.name));
48518
- })));
48519
- };
48520
-
48521
- var TheHeader = function TheHeader(_ref) {
48522
- var onToggleModel = _ref.onToggleModel;
48523
- var dispatch = useDispatch();
48524
- var sidebarShow = useSelector(function (state) {
48525
- return state.common.sidebarShow;
48526
- });
48527
-
48528
- var _useTranslation = useTranslation(),
48529
- t = _useTranslation.t;
48530
-
48531
- var toggleSidebarMobile = function toggleSidebarMobile() {
48532
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48533
- dispatch(setSidebar(val));
48534
- };
48535
-
48536
- var isDistrict = window.location.host.includes("-district");
48537
- return React.createElement(CHeader, {
48538
- withSubheader: true,
48539
- className: "d-flex align-items-center justify-content-end"
48540
- }, React.createElement(CToggler, {
48541
- inHeader: true,
48542
- className: "ml-md-3 d-lg-none",
48543
- onClick: toggleSidebarMobile
48544
- }), React.createElement(CHeaderBrand, {
48545
- className: "mx-auto flex-grow-1 d-lg-none",
48546
- to: "/"
48547
- }, React.createElement("img", {
48548
- src: getStaticFileUrl(Images.LOGO_HEADER),
48549
- className: styles["header-logo"]
48550
- })), React.createElement(CHeaderNav, {
48551
- className: "pr-3"
48552
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
48553
- className: "mr-3",
48554
- style: {
48555
- color: '#000'
48556
- },
48557
- href: '/privacy-policy',
48558
- target: "blank"
48559
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
48560
- onToggleModel: onToggleModel
48561
- })));
48562
- };
48563
-
48564
- var ModelSelectRole = function ModelSelectRole(_ref) {
48565
- var _handleUserRole;
48566
-
48567
- var open = _ref.open,
48568
- onToggleModel = _ref.onToggleModel;
48569
- var dispatch = useDispatch();
48570
-
48571
- var _useTranslation = useTranslation(),
48572
- t = _useTranslation.t;
48573
-
48574
- var history = useHistory();
48575
- var pathname = window.location.pathname;
48576
- var user = useSelector(function (state) {
48577
- return state.common.user;
48578
- });
48579
- var roles = user === null || user === void 0 ? void 0 : user.roles;
48580
-
48581
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
48582
- dispatch(setLoading(true));
48583
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
48584
- dispatch(setUser(_extends({}, user, {
48585
- roles: roleSelect
48586
- })));
48587
- localStorage.setItem("ROLES", roleSelect.toString());
48588
- onToggleModel();
48589
-
48590
- if (roles.includes("Parent")) {
48591
- history.push("/parent");
48592
- } else if (roles.includes("Admin")) {
48593
- history.push("/admin/home");
48594
- } else {
48595
- pathname !== "/home" ? history.push("/home") : window.location.reload();
48596
- }
48597
- };
48598
-
48599
- return React.createElement(Modal, {
48600
- isOpen: open,
48601
- toggle: function toggle() {
48602
- return onToggleModel();
48603
- },
48604
- className: "" + styles["model-switch-roles"],
48605
- centered: true
48606
- }, React.createElement("p", {
48607
- className: "" + styles["title"]
48608
- }, t("continue_as")), React.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
48609
- return React.createElement("p", {
48610
- key: r,
48611
- 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" : ""],
48612
- onClick: function onClick() {
48613
- return handleSelectUserRoles([r]);
48614
- }
48615
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
48616
- })));
48617
- };
48618
-
48619
- var TheLayout = function TheLayout(_ref) {
48620
- var routes = _ref.routes,
48621
- navigation = _ref.navigation;
48622
- var history = useHistory();
48623
- var dispatch = useDispatch();
48624
- var user = useSelector(function (state) {
48625
- return state.common.user;
48626
- });
48627
- var language = useSelector(function (state) {
48628
- return state.common.language;
48629
- });
48630
-
48631
- var _useState = useState(false),
48632
- openModelSelectRole = _useState[0],
48633
- setOpenModelSelectRole = _useState[1];
48634
-
48635
- var _useTranslation = useTranslation(),
48636
- t = _useTranslation.t;
48637
-
48638
- var location = useLocation();
48639
- var isNotification = location.pathname.includes("notifications");
48640
- var isDistrict = window.location.host.includes("-district");
48641
-
48642
- var handleToggleModel = function handleToggleModel() {
48643
- setOpenModelSelectRole(!openModelSelectRole);
48644
- };
48645
-
48646
- var authRoutes = useMemo(function () {
48647
- return routes.filter(function (route) {
48648
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
48649
- }).filter(function (route) {
48650
- return !!route.isDistrict === isDistrict;
48651
- });
48652
- }, [user, language]);
48653
- var authNavigations = useMemo(function () {
48654
- return navigation.map(function (item) {
48655
- var _item$_children, _item$_children2;
48656
-
48657
- return _extends({}, item, {
48658
- name: t(item.name),
48659
- _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) {
48660
- return _extends({}, x, {
48661
- name: t(x.name)
48662
- });
48663
- }) : undefined
48664
- });
48665
- }).filter(function (nav) {
48666
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
48667
- }).filter(function (nav) {
48668
- return !!nav.isDistrict === isDistrict;
48669
- });
48670
- }, [user, language]);
48671
-
48672
- var getInformationSetting = function getInformationSetting() {
48673
- try {
48674
- var _temp2 = _catch(function () {
48675
- return Promise.resolve(getSchoolSettings()).then(function (res) {
48676
- dispatch(setSandboxMode(res.data.isSandboxMode));
48677
- });
48678
- }, function (err) {
48679
- console.error(err);
48680
- });
48681
-
48682
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
48683
- } catch (e) {
48684
- return Promise.reject(e);
48685
- }
48686
- };
48687
-
48688
- useEffect(function () {
48689
- checkAuthentication();
48690
- }, []);
48691
- useEffect(function () {
48692
- getInformationSetting();
48693
- }, [location.pathname]);
48694
-
48695
- var checkAuthentication = function checkAuthentication() {
48696
- try {
48697
- var _temp4 = _catch(function () {
48698
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
48699
- tokenStatus ? loadInfo() : resetAuth();
48700
- });
48701
- }, function () {
48702
- resetAuth();
48703
- });
48704
-
48705
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
48706
- } catch (e) {
48707
- return Promise.reject(e);
48708
- }
48709
- };
48710
-
48711
- var loadInfo = function loadInfo() {
48712
- try {
48713
- var _temp6 = _catch(function () {
48714
- return Promise.resolve(getInfo()).then(function (info) {
48715
- var _info$data, _info$data$roles;
48716
-
48717
- 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"))) {
48718
- resetAuth();
48719
- }
48720
-
48721
- dispatch(setUser(info.data));
48722
- });
48723
- }, function () {
48724
- resetAuth();
48725
- });
48726
-
48727
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48728
- } catch (e) {
48729
- return Promise.reject(e);
48730
- }
48731
- };
48732
-
48733
- var resetAuth = function resetAuth() {
48734
- localStorage.removeItem(ACCESS_TOKEN);
48735
- sessionStorage.removeItem(ACCESS_TOKEN);
48736
- localStorage.removeItem("ROLES");
48737
- history.push("/");
48738
- };
48739
-
48740
- if (!user) {
48741
- return React.createElement(Loading, null);
48742
- }
48743
-
48744
- return React.createElement("div", {
48745
- className: "c-app c-default-layout"
48746
- }, !isNotification && React.createElement(TheSidebar, {
48747
- navigation: authNavigations
48748
- }), React.createElement("div", {
48749
- className: "c-wrapper"
48750
- }, !isNotification && React.createElement(TheHeader, {
48751
- onToggleModel: handleToggleModel
48752
- }), React.createElement("div", {
48753
- className: "c-body bg-white"
48754
- }, React.createElement(TheContent$1, {
48755
- routes: authRoutes
48756
- }))), React.createElement(ModelSelectRole, {
48757
- open: openModelSelectRole,
48758
- onToggleModel: handleToggleModel
48759
- }));
48760
- };
48761
-
48762
- var amplitudeClient$1 = amplitude.getInstance();
48763
-
48764
- export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CategorySelector, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, DEFAULT_LANGUAGE_CODE, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, IS_USER_SESSION_BROWSER, Images, LANGUAGES, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationLogoutModal, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SANDBOX_NOTIFICATION, SUPPORTED_LANGUAGES_CODE, SandboxAlert, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserContainer, UserDetail, UserList, addTab, amplitudeClient$1 as amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getCookieValue, getFileUrl, getInfo, getStaticFileUrl, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setOpenModelCongratulation, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSandboxMode, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, setWeeklyQuestList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
48788
+ export { ACCESS_TOKEN, ANSWER_EDITOR_HEIGHT, AcademicClassSelector, AddButton, BASE_URL, CHAT_CHANNEL, CategorySelector, CommonAlert, CommonHeader, CommonModal$1 as CommonModal, CreatableSelector, CustomPagination, CustomSelector, CustomTabs as CustomTab, DATE_FORMAT, DATE_RESULT, DEFAULT_FILTER, DEFAULT_LANGUAGE_CODE, Dashboard, DeleteButtonIcon, DetailActionButtons, EMOTIONS, EditButtonIcon, EmailTemplateDetail, EmailTemplateList, EmptyDataAlert, ErrorHandler, FULL_DATE_RESULT, FaqList, InputFile as FileInput, GOOGLE_RECAPTCHA_KEY, GalleryList, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, IS_USER_SESSION_BROWSER, Images, LANGUAGES, LICENSE_AGGRID, LinkEditButton, Loading, Login, MediaList, NOTIFICATION_ALERT_KEY, NOTIFICATION_CHANNEL, NotFound, NotificationList, NotificationLogoutModal, NotificationModal, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, QuestionCategorySelector, QuestionTypeSelector, QuitPrompt, ReactNotification, RequiredLabel$1 as RequiredLabel, SANDBOX_NOTIFICATION, SUPPORTED_LANGUAGES_CODE, SandboxAlert, SchoolList, ScrollToTop, SearchBox$1 as SearchBox, SearchBoxContainer, SkillList, StarRatingSelector, SuggestionCategorySelector, TAB_COLORS, TINY_MCE_API_KEY, TheContent$1 as TheContent, TheLayout, ToggleButton, UploadFileButton, UserContainer, UserDetail, UserList, addTab, amplitudeClient, answerQuestion, answerQuestionDataPlayer, api, apiUpload, canAccess as canAccessRoute, changeNote, changeTags, clearTab, closeTab, debounce, editTab, editorConfig, firstCheckToken, generateRandomString, getCookieValue, getFileUrl, getInfo, getStaticFileUrl, getTextFromHTML, i18n, initAmplitude, isInViewport, isLocalhost, reset, setAlert, setAssessmentList, setAssignmentList, setAssistantList, setBadgeList, setBandScoreList, setCertificateList, setClassList, setConferenceRubricList, setConversationOneToOne, setCurrentStudentId, setCurrentStudentName, setCurrentStudentUserId, setCustomAlertList, setDataPlayer, setEditItemQuesion, setEnableIEP, setEnableSurvey, setFeedbackList, setFilterWidget, setGoalExampleList, setImproveMyClass, setLanguage, setLearningSupportCategoryList, setLoading, setMailCategory, setModal, setMoveItemQuestion, setMyStudent, setOpenModelCongratulation, setQuestionByCategory, setQuestionCateList, setQuestionList, setReflectionList, setReflectionResultList, setResetQuestionList, setSandboxMode, setSchoolBlankDayList, setSelectQuestion, setSemesterList, setSessionPlayer, setSessionTemplateGeneralClassList, setSessionTemplateList, setStartTime, setStrategyList, setStudentIdSelectedByTeacher, setStudentList, setSubjectList, setSuggestionList, setTurnOffPassWhenChangeMode, setTutorialScreenList, setUser, setUserList, setWeeklyQuestList, showFontSize, showMenuBar, store, systemCertificateUpload, systemStudentBadge, uploadFile, useFilters, useGalleryList, utcToLocalTime };
48765
48789
  //# sourceMappingURL=index.modern.js.map