mario-core 2.9.245-release → 2.9.301-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, useMemo, Suspense, memo, Fragment, useImperativeHandle } from 'react';
5
+ import React, { useState, useCallback, useEffect, forwardRef, useRef, Suspense, memo, Fragment, useImperativeHandle, useMemo } 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, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
20
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } 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';
@@ -41,8 +41,8 @@ import 'symbol-observable';
41
41
  var dashboard = "Dashboard";
42
42
  var user = "User";
43
43
  var question_bank = "Question bank";
44
- var email_template = "Email template";
45
- var custom_alert = "Custom alert";
44
+ var email_template = "Email Template";
45
+ var custom_alert = "Custom Alert";
46
46
  var set_up = "Set up";
47
47
  var media_gallery = "Media Gallery";
48
48
  var district_school_list = "District school list";
@@ -3978,8 +3978,8 @@ var lang_us = {
3978
3978
  var dashboard$1 = "Dashboard";
3979
3979
  var user$1 = "User";
3980
3980
  var question_bank$1 = "Question bank";
3981
- var email_template$1 = "Email template";
3982
- var custom_alert$1 = "Custom alert";
3981
+ var email_template$1 = "Email Template";
3982
+ var custom_alert$1 = "Custom Alert";
3983
3983
  var set_up$1 = "Set up";
3984
3984
  var media_gallery$1 = "Media Gallery";
3985
3985
  var district_school_list$1 = "District school list";
@@ -37408,6 +37408,19 @@ var msalConfig = {
37408
37408
  }
37409
37409
  };
37410
37410
 
37411
+ var getStaticFileUrl = function getStaticFileUrl(url) {
37412
+ var STAGE_DOMAIN = "https://stage2.marioforme.com";
37413
+ var isStage = STAGE_DOMAIN === location.origin;
37414
+ if (!url) return "";
37415
+ if (isLocalhost && !isStage || url.startsWith("http")) return url;
37416
+ if (url.startsWith("/")) return "" + (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + url;else return (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + "/" + url;
37417
+ };
37418
+
37419
+ var getFileUrl = function getFileUrl(fileName) {
37420
+ if (!fileName || !fileName.trim()) return "";
37421
+ return BASE_URL + "/api/file/viewer?key=" + fileName;
37422
+ };
37423
+
37411
37424
  var _sessionStorage$getIt;
37412
37425
  var defaultInfo = {
37413
37426
  email: "",
@@ -37542,8 +37555,15 @@ var useLogin = function useLogin() {
37542
37555
 
37543
37556
  var _temp8 = _catch(function () {
37544
37557
  return Promise.resolve(getInfo$1()).then(function (res) {
37558
+ var _res$data$schoolLogo;
37559
+
37560
+ var schoolLogo = (_res$data$schoolLogo = res.data.schoolLogo) != null ? _res$data$schoolLogo : "";
37561
+
37545
37562
  if (!!res.data) {
37546
- setSchool(res.data);
37563
+ setSchool({
37564
+ schoolName: res.data.schoolName,
37565
+ schoolLogo: !schoolLogo ? getStaticFileUrl("/images/logo_header_blue.png") : getFileUrl(schoolLogo)
37566
+ });
37547
37567
  }
37548
37568
  });
37549
37569
  }, function (err) {
@@ -38069,19 +38089,6 @@ var BlockSelectTeacher = function BlockSelectTeacher(_ref) {
38069
38089
 
38070
38090
  var BlockSelectTeacher$1 = forwardRef(BlockSelectTeacher);
38071
38091
 
38072
- var getStaticFileUrl = function getStaticFileUrl(url) {
38073
- var STAGE_DOMAIN = "https://stage2.marioforme.com";
38074
- var isStage = STAGE_DOMAIN === location.origin;
38075
- if (!url) return "";
38076
- if (isLocalhost && !isStage || url.startsWith("http")) return url;
38077
- if (url.startsWith("/")) return "" + (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + url;else return (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + "/" + url;
38078
- };
38079
-
38080
- var getFileUrl = function getFileUrl(fileName) {
38081
- if (!fileName || !fileName.trim()) return "";
38082
- return BASE_URL + "/api/file/viewer?key=" + fileName;
38083
- };
38084
-
38085
38092
  var schema = object({
38086
38093
  email: string().email("Email is invalid").required("Email is required"),
38087
38094
  password: string().required("Password is required"),
@@ -38194,7 +38201,8 @@ var BlockLogin = function BlockLogin(_ref) {
38194
38201
  }, React.createElement("div", {
38195
38202
  className: "d-flex align-items-center mb-4"
38196
38203
  }, React.createElement("img", {
38197
- src: "" + (school !== null && school !== void 0 && school.schoolLogo ? getFileUrl("" + (school === null || school === void 0 ? void 0 : school.schoolLogo)) : getStaticFileUrl("/images/logoR.png")),
38204
+ hidden: !(school !== null && school !== void 0 && school.schoolLogo),
38205
+ src: school === null || school === void 0 ? void 0 : school.schoolLogo,
38198
38206
  className: styles["school-icon"] + " mr-3"
38199
38207
  }), React.createElement("p", {
38200
38208
  className: styles["school-name"] + " mb-0"
@@ -38253,7 +38261,7 @@ var BlockLogin = function BlockLogin(_ref) {
38253
38261
  lg: 12,
38254
38262
  md: 12,
38255
38263
  xs: 12,
38256
- className: "pr-md-2"
38264
+ className: "pr-md-3"
38257
38265
  }, !!googleClientId && React.createElement(GoogleLogin, {
38258
38266
  clientId: googleClientId,
38259
38267
  buttonText: "GOOGLE",
@@ -38261,14 +38269,15 @@ var BlockLogin = function BlockLogin(_ref) {
38261
38269
  cookiePolicy: "single_host_origin",
38262
38270
  className: styles["btn-login-google"] + " p-0 mb-4 mb-md-0"
38263
38271
  }))), 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"
38272
+ className: "" + styles["btn-login-sso"]
38273
+ }, React.createElement("div", {
38274
+ className: styles["btn-login-with-sso"],
38275
+ onClick: function onClick() {
38276
+ return window.open("https://launchpad.classlink.com/login");
38277
+ }
38267
38278
  }, React.createElement("img", {
38268
- className: styles["class-link-sso-image"],
38269
- src: getStaticFileUrl("images/classlink-sso.png"),
38270
- alt: ""
38271
- }))))));
38279
+ src: "images/class-link-icon.png"
38280
+ }), React.createElement("p", null, "Sign-in with ClassLink"))))));
38272
38281
  }), isLoginGoogle && React.createElement(BlockSelectTeacher$1, {
38273
38282
  onSubmit: function onSubmit(e) {
38274
38283
  return submitLogin(e, clickHandler);
@@ -39415,218 +39424,6 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39415
39424
  })), t("log_out")))));
39416
39425
  };
39417
39426
 
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
-
39630
39427
  var TITLE$3 = "Not found";
39631
39428
 
39632
39429
  var NotFound = function NotFound() {
@@ -39684,258 +39481,6 @@ var TheContent = function TheContent(_ref) {
39684
39481
 
39685
39482
  var TheContent$1 = React.memo(TheContent);
39686
39483
 
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
-
39939
39484
  var buttonTextStyle = {
39940
39485
  fontWeight: 500
39941
39486
  };
@@ -44059,17 +43604,11 @@ var useTeacherList = function useTeacherList() {
44059
43604
  }
44060
43605
  };
44061
43606
 
44062
- var handleSelectTeacher = useCallback(function (teacherIds, studentUserId) {
43607
+ var handleSelectTeacher = useCallback(function (teacherId, studentUserId) {
44063
43608
  var _extends2;
44064
43609
 
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
43610
+ var selectedTeacher = teacherOptions.find(function (t) {
43611
+ return t.value === teacherId;
44073
43612
  });
44074
43613
  setSelectedTeachers(_extends({}, selectedTeachers, (_extends2 = {}, _extends2[studentUserId] = selectedTeacher, _extends2)));
44075
43614
  }, [JSON.stringify(selectedTeachers), JSON.stringify(teacherOptions)]);
@@ -44188,29 +43727,18 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44188
43727
  return;
44189
43728
  }
44190
43729
 
44191
- console.log("list userId");
44192
- console.log({
44193
- listUserIds: listUserIds
44194
- });
44195
43730
  var users = listUserIds.map(function (i) {
44196
43731
  var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[i];
44197
43732
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[i];
44198
43733
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[i];
44199
43734
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[i];
44200
- console.log({
44201
- teacher: teacher
44202
- });
44203
43735
  var value = {
44204
43736
  id: i
44205
43737
  };
44206
43738
 
44207
43739
  if (!!teacher) {
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;
43740
+ 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;
43741
+ 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;
44214
43742
  }
44215
43743
 
44216
43744
  if (!!assistant) {
@@ -44237,10 +43765,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44237
43765
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[id];
44238
43766
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[id];
44239
43767
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[id];
44240
- console.log("assign student");
44241
- console.log({
44242
- teacherSelected: teacherSelected
44243
- });
44244
43768
 
44245
43769
  if (!teacher && !assistant && !counselor && !secondaryTeacher) {
44246
43770
  dispatch(setAlert({
@@ -44255,12 +43779,8 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44255
43779
  };
44256
43780
 
44257
43781
  if (!!teacher) {
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;
43782
+ 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;
43783
+ 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;
44264
43784
  }
44265
43785
 
44266
43786
  if (!!assistant) {
@@ -44281,11 +43801,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44281
43801
  assignStudents([studentRequest]);
44282
43802
  }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
44283
43803
  var handleAssignStaffToStudents = useCallback(function (listUserIds) {
44284
- console.log("staffBulkAssign");
44285
- console.log({
44286
- staffBulkAssign: staffBulkAssign
44287
- });
44288
-
44289
43804
  if (listUserIds.length === 0) {
44290
43805
  dispatch(setAlert({
44291
43806
  type: "danger",
@@ -44297,6 +43812,8 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44297
43812
  var users = listUserIds.map(function (i) {
44298
43813
  var value = {
44299
43814
  id: i,
43815
+ mainTeacherUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherId : undefined,
43816
+ mainTeacherEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherEmail : undefined,
44300
43817
  assistantUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantId : undefined,
44301
43818
  assistantEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantEmail : undefined,
44302
43819
  counselorUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.counselorId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.counselorId : undefined,
@@ -44645,18 +44162,15 @@ var AssignStudentList = function AssignStudentList() {
44645
44162
  className: "align-middle"
44646
44163
  }, item.email), React.createElement("td", {
44647
44164
  className: "align-middle"
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,
44165
+ }, !!item.mainTeacherEmail ? React.createElement(React.Fragment, null, React.createElement("p", {
44166
+ className: "mb-0"
44167
+ }, item.mainTeacherEmail), React.createElement("p", {
44168
+ className: "mb-0"
44169
+ }, item.mainTeacherName)) : React.createElement(TeacherSelector, {
44654
44170
  value: selectedTeachers === null || selectedTeachers === void 0 ? void 0 : selectedTeachers[item.id],
44655
44171
  options: teacherOptions,
44656
44172
  onChange: function onChange(e) {
44657
- return handleSelectTeacher(e.map(function (i) {
44658
- return i.value;
44659
- }), item.id);
44173
+ return handleSelectTeacher(e.value, item.id);
44660
44174
  },
44661
44175
  onCreateOption: function onCreateOption(value) {
44662
44176
  return handleCreateTeacherOption(value, item.id, true);
@@ -45731,6 +45245,34 @@ var UserDetail = function UserDetail() {
45731
45245
  });
45732
45246
  };
45733
45247
 
45248
+ var loadingStyle = {
45249
+ minWidth: "100vw",
45250
+ minHeight: "100vh",
45251
+ position: "fixed",
45252
+ top: 0,
45253
+ left: 0,
45254
+ zIndex: 999999999,
45255
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
45256
+ display: "flex",
45257
+ justifyContent: "center",
45258
+ alignItems: "center"
45259
+ };
45260
+
45261
+ var Loading = function Loading() {
45262
+ var isLoading = useSelector(function (state) {
45263
+ return state.common.isLoading;
45264
+ });
45265
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45266
+ return isLoading ? React.createElement("div", {
45267
+ style: loadingStyle
45268
+ }, React.createElement("div", {
45269
+ className: "spinner-border text-secondary",
45270
+ role: "status"
45271
+ }, React.createElement("span", {
45272
+ className: "sr-only"
45273
+ }, "Loading..."))) : null;
45274
+ };
45275
+
45734
45276
  var ScrollToTop = function ScrollToTop() {
45735
45277
  var _useLocation = useLocation(),
45736
45278
  pathname = _useLocation.pathname;
@@ -48750,6 +48292,32 @@ var store = configureStore({
48750
48292
  }
48751
48293
  });
48752
48294
 
48295
+ var firstCheckToken = function firstCheckToken() {
48296
+ return Promise.resolve(_catch(function () {
48297
+ var token = getAccessToken();
48298
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48299
+ return tokenStatus.data ? true : false;
48300
+ }) : false;
48301
+ }, function () {
48302
+ return false;
48303
+ }));
48304
+ };
48305
+
48306
+ var canAccess = function canAccess(userRoles, componentRoles) {
48307
+ if (!Array.isArray(userRoles)) {
48308
+ return false;
48309
+ }
48310
+
48311
+ if (Array.isArray(componentRoles)) {
48312
+ var intersects = userRoles.filter(function (i) {
48313
+ return componentRoles.includes(i);
48314
+ });
48315
+ return intersects.length > 0;
48316
+ }
48317
+
48318
+ return true;
48319
+ };
48320
+
48753
48321
  var isInViewport = function isInViewport(el) {
48754
48322
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
48755
48323
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -48779,11 +48347,423 @@ var getTextFromHTML = function getTextFromHTML(htmlString) {
48779
48347
  return text;
48780
48348
  };
48781
48349
 
48350
+ var getCookieValue = function getCookieValue(name) {
48351
+ var _document$cookie$matc;
48352
+
48353
+ return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
48354
+ };
48355
+
48782
48356
  var generateRandomString = (function () {
48783
48357
  return (Math.random() + 1).toString(36).substring(7);
48784
48358
  });
48785
48359
 
48786
48360
  var amplitudeClient = amplitude.getInstance();
48787
48361
 
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 };
48362
+ var apiGetLanguage = function apiGetLanguage() {
48363
+ return api.get(BASE_URL + "/api/language");
48364
+ };
48365
+
48366
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48367
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
48368
+ };
48369
+
48370
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48371
+
48372
+ var useLanguages = function useLanguages() {
48373
+ var dispatch = useDispatch();
48374
+
48375
+ var _useTranslation = useTranslation(),
48376
+ i18n = _useTranslation.i18n;
48377
+
48378
+ var language = useSelector(function (state) {
48379
+ return state.common.language;
48380
+ });
48381
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48382
+
48383
+ var _useState = useState([]),
48384
+ languageList = _useState[0],
48385
+ setLanguageList = _useState[1];
48386
+
48387
+ var _useState2 = useState(false),
48388
+ dropdownOpen = _useState2[0],
48389
+ setDropdownOpen = _useState2[1];
48390
+
48391
+ var _useState3 = useState(defaultLanguage),
48392
+ currentLang = _useState3[0],
48393
+ setCurrentLang = _useState3[1];
48394
+
48395
+ var toggle = function toggle() {
48396
+ return setDropdownOpen(function (prevState) {
48397
+ return !prevState;
48398
+ });
48399
+ };
48400
+
48401
+ var changeLanguageApp = function changeLanguageApp(lang) {
48402
+ try {
48403
+ var _temp3 = function _temp3() {
48404
+ dispatch(setLoading(false));
48405
+ };
48406
+
48407
+ dispatch(setLoading(true));
48408
+
48409
+ var _temp4 = _catch(function () {
48410
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48411
+ i18n.changeLanguage(lang);
48412
+ setCurrentLang(lang);
48413
+ dispatch(setLanguage(lang));
48414
+ });
48415
+ }, function (err) {
48416
+ var _err$response, _err$response$data;
48417
+
48418
+ dispatch(setAlert({
48419
+ type: "danger",
48420
+ 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
48421
+ }));
48422
+ });
48423
+
48424
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48425
+ } catch (e) {
48426
+ return Promise.reject(e);
48427
+ }
48428
+ };
48429
+
48430
+ var getListLanguage = function getListLanguage() {
48431
+ try {
48432
+ var _temp6 = _catch(function () {
48433
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
48434
+ setLanguageList(res.data);
48435
+ });
48436
+ }, function (err) {
48437
+ var _err$response2, _err$response2$data;
48438
+
48439
+ dispatch(setAlert({
48440
+ type: "danger",
48441
+ 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
48442
+ }));
48443
+ });
48444
+
48445
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48446
+ } catch (e) {
48447
+ return Promise.reject(e);
48448
+ }
48449
+ };
48450
+
48451
+ useEffect(function () {
48452
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
48453
+ getListLanguage();
48454
+ }, []);
48455
+ return {
48456
+ languageList: languageList,
48457
+ toggle: toggle,
48458
+ dropdownOpen: dropdownOpen,
48459
+ currentLang: currentLang,
48460
+ changeLanguageApp: changeLanguageApp,
48461
+ setCurrentLang: setCurrentLang
48462
+ };
48463
+ };
48464
+
48465
+ var TheLanguageDropdown = function TheLanguageDropdown() {
48466
+ var _useLanguages = useLanguages(),
48467
+ languageList = _useLanguages.languageList,
48468
+ toggle = _useLanguages.toggle,
48469
+ dropdownOpen = _useLanguages.dropdownOpen,
48470
+ currentLang = _useLanguages.currentLang,
48471
+ changeLanguageApp = _useLanguages.changeLanguageApp;
48472
+
48473
+ var currentLanguage = useMemo(function () {
48474
+ var current = languageList.find(function (i) {
48475
+ return i.code === currentLang;
48476
+ });
48477
+ if (!current) return null;
48478
+ return React.createElement(React.Fragment, null, React.createElement("img", {
48479
+ className: "mr-2 " + styles['dropdown-menu-flag'],
48480
+ src: "" + getStaticFileUrl(current.image)
48481
+ }), " ", current.name);
48482
+ }, [currentLang, languageList]);
48483
+ return React.createElement(Dropdown, {
48484
+ isOpen: dropdownOpen,
48485
+ toggle: toggle,
48486
+ className: "" + styles["dropdown-menu"]
48487
+ }, React.createElement(DropdownToggle, {
48488
+ className: styles["header-avatar"] + " d-flex align-items-center"
48489
+ }, React.createElement("span", {
48490
+ style: {
48491
+ color: "#000",
48492
+ textTransform: "capitalize",
48493
+ display: 'flex',
48494
+ alignItems: 'center'
48495
+ }
48496
+ }, currentLanguage, React.createElement(BsChevronDown, {
48497
+ className: "ml-2",
48498
+ style: {
48499
+ fontSize: '10px'
48500
+ }
48501
+ }))), React.createElement(DropdownMenu, {
48502
+ className: styles["dropdown-content-language"]
48503
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48504
+ return React.createElement(DropdownItem, {
48505
+ key: lang.code,
48506
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48507
+ onClick: function onClick() {
48508
+ return changeLanguageApp(lang.code);
48509
+ }
48510
+ }, React.createElement("div", {
48511
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48512
+ }, React.createElement("span", {
48513
+ className: "mr-2 d-flex hover-opacity"
48514
+ }, React.createElement("img", {
48515
+ style: {
48516
+ width: "30px",
48517
+ height: "25px",
48518
+ borderRadius: "5px"
48519
+ },
48520
+ src: getStaticFileUrl(lang.image)
48521
+ })), lang.name));
48522
+ })));
48523
+ };
48524
+
48525
+ var TheHeader = function TheHeader(_ref) {
48526
+ var onToggleModel = _ref.onToggleModel;
48527
+ var dispatch = useDispatch();
48528
+ var sidebarShow = useSelector(function (state) {
48529
+ return state.common.sidebarShow;
48530
+ });
48531
+
48532
+ var _useTranslation = useTranslation(),
48533
+ t = _useTranslation.t;
48534
+
48535
+ var toggleSidebarMobile = function toggleSidebarMobile() {
48536
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48537
+ dispatch(setSidebar(val));
48538
+ };
48539
+
48540
+ var isDistrict = window.location.host.includes("-district");
48541
+ return React.createElement(CHeader, {
48542
+ withSubheader: true,
48543
+ className: "d-flex align-items-center justify-content-end"
48544
+ }, React.createElement(CToggler, {
48545
+ inHeader: true,
48546
+ className: "ml-md-3 d-lg-none",
48547
+ onClick: toggleSidebarMobile
48548
+ }), React.createElement(CHeaderBrand, {
48549
+ className: "mx-auto flex-grow-1 d-lg-none",
48550
+ to: "/"
48551
+ }, React.createElement("img", {
48552
+ src: getStaticFileUrl(Images.LOGO_HEADER),
48553
+ className: styles["header-logo"]
48554
+ })), React.createElement(CHeaderNav, {
48555
+ className: "pr-3"
48556
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
48557
+ className: "mr-3",
48558
+ style: {
48559
+ color: '#000'
48560
+ },
48561
+ href: '/privacy-policy',
48562
+ target: "blank"
48563
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
48564
+ onToggleModel: onToggleModel
48565
+ })));
48566
+ };
48567
+
48568
+ var ModelSelectRole = function ModelSelectRole(_ref) {
48569
+ var _handleUserRole;
48570
+
48571
+ var open = _ref.open,
48572
+ onToggleModel = _ref.onToggleModel;
48573
+ var dispatch = useDispatch();
48574
+
48575
+ var _useTranslation = useTranslation(),
48576
+ t = _useTranslation.t;
48577
+
48578
+ var history = useHistory();
48579
+ var pathname = window.location.pathname;
48580
+ var user = useSelector(function (state) {
48581
+ return state.common.user;
48582
+ });
48583
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
48584
+
48585
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
48586
+ dispatch(setLoading(true));
48587
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
48588
+ dispatch(setUser(_extends({}, user, {
48589
+ roles: roleSelect
48590
+ })));
48591
+ localStorage.setItem("ROLES", roleSelect.toString());
48592
+ onToggleModel();
48593
+
48594
+ if (roles.includes("Parent")) {
48595
+ history.push("/parent");
48596
+ } else if (roles.includes("Admin")) {
48597
+ history.push("/admin/home");
48598
+ } else {
48599
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
48600
+ }
48601
+ };
48602
+
48603
+ return React.createElement(Modal, {
48604
+ isOpen: open,
48605
+ toggle: function toggle() {
48606
+ return onToggleModel();
48607
+ },
48608
+ className: "" + styles["model-switch-roles"],
48609
+ centered: true
48610
+ }, React.createElement("p", {
48611
+ className: "" + styles["title"]
48612
+ }, 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) {
48613
+ return React.createElement("p", {
48614
+ key: r,
48615
+ 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" : ""],
48616
+ onClick: function onClick() {
48617
+ return handleSelectUserRoles([r]);
48618
+ }
48619
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
48620
+ })));
48621
+ };
48622
+
48623
+ var TheLayout = function TheLayout(_ref) {
48624
+ var routes = _ref.routes,
48625
+ navigation = _ref.navigation;
48626
+ var history = useHistory();
48627
+ var dispatch = useDispatch();
48628
+ var user = useSelector(function (state) {
48629
+ return state.common.user;
48630
+ });
48631
+ var language = useSelector(function (state) {
48632
+ return state.common.language;
48633
+ });
48634
+
48635
+ var _useState = useState(false),
48636
+ openModelSelectRole = _useState[0],
48637
+ setOpenModelSelectRole = _useState[1];
48638
+
48639
+ var _useTranslation = useTranslation(),
48640
+ t = _useTranslation.t;
48641
+
48642
+ var location = useLocation();
48643
+ var isNotification = location.pathname.includes("notifications");
48644
+ var isDistrict = window.location.host.includes("-district");
48645
+
48646
+ var handleToggleModel = function handleToggleModel() {
48647
+ setOpenModelSelectRole(!openModelSelectRole);
48648
+ };
48649
+
48650
+ var authRoutes = useMemo(function () {
48651
+ return routes.filter(function (route) {
48652
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
48653
+ }).filter(function (route) {
48654
+ return !!route.isDistrict === isDistrict;
48655
+ });
48656
+ }, [user, language]);
48657
+ var authNavigations = useMemo(function () {
48658
+ return navigation.map(function (item) {
48659
+ var _item$_children, _item$_children2;
48660
+
48661
+ return _extends({}, item, {
48662
+ name: t(item.name),
48663
+ _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) {
48664
+ return _extends({}, x, {
48665
+ name: t(x.name)
48666
+ });
48667
+ }) : undefined
48668
+ });
48669
+ }).filter(function (nav) {
48670
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
48671
+ }).filter(function (nav) {
48672
+ return !!nav.isDistrict === isDistrict;
48673
+ });
48674
+ }, [user, language]);
48675
+
48676
+ var getInformationSetting = function getInformationSetting() {
48677
+ try {
48678
+ var _temp2 = _catch(function () {
48679
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
48680
+ dispatch(setSandboxMode(res.data.isSandboxMode));
48681
+ });
48682
+ }, function (err) {
48683
+ console.error(err);
48684
+ });
48685
+
48686
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
48687
+ } catch (e) {
48688
+ return Promise.reject(e);
48689
+ }
48690
+ };
48691
+
48692
+ useEffect(function () {
48693
+ checkAuthentication();
48694
+ }, []);
48695
+ useEffect(function () {
48696
+ getInformationSetting();
48697
+ }, [location.pathname]);
48698
+
48699
+ var checkAuthentication = function checkAuthentication() {
48700
+ try {
48701
+ var _temp4 = _catch(function () {
48702
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
48703
+ tokenStatus ? loadInfo() : resetAuth();
48704
+ });
48705
+ }, function () {
48706
+ resetAuth();
48707
+ });
48708
+
48709
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
48710
+ } catch (e) {
48711
+ return Promise.reject(e);
48712
+ }
48713
+ };
48714
+
48715
+ var loadInfo = function loadInfo() {
48716
+ try {
48717
+ var _temp6 = _catch(function () {
48718
+ return Promise.resolve(getInfo()).then(function (info) {
48719
+ var _info$data, _info$data$roles;
48720
+
48721
+ 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"))) {
48722
+ resetAuth();
48723
+ }
48724
+
48725
+ dispatch(setUser(info.data));
48726
+ });
48727
+ }, function () {
48728
+ resetAuth();
48729
+ });
48730
+
48731
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48732
+ } catch (e) {
48733
+ return Promise.reject(e);
48734
+ }
48735
+ };
48736
+
48737
+ var resetAuth = function resetAuth() {
48738
+ localStorage.removeItem(ACCESS_TOKEN);
48739
+ sessionStorage.removeItem(ACCESS_TOKEN);
48740
+ localStorage.removeItem("ROLES");
48741
+ history.push("/");
48742
+ };
48743
+
48744
+ if (!user) {
48745
+ return React.createElement(Loading, null);
48746
+ }
48747
+
48748
+ return React.createElement("div", {
48749
+ className: "c-app c-default-layout"
48750
+ }, !isNotification && React.createElement(TheSidebar, {
48751
+ navigation: authNavigations
48752
+ }), React.createElement("div", {
48753
+ className: "c-wrapper"
48754
+ }, !isNotification && React.createElement(TheHeader, {
48755
+ onToggleModel: handleToggleModel
48756
+ }), React.createElement("div", {
48757
+ className: "c-body bg-white"
48758
+ }, React.createElement(TheContent$1, {
48759
+ routes: authRoutes
48760
+ }))), React.createElement(ModelSelectRole, {
48761
+ open: openModelSelectRole,
48762
+ onToggleModel: handleToggleModel
48763
+ }));
48764
+ };
48765
+
48766
+ var amplitudeClient$1 = amplitude.getInstance();
48767
+
48768
+ 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 };
48789
48769
  //# sourceMappingURL=index.modern.js.map