mario-core 2.9.331-release → 2.9.336-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,8 +2,8 @@ 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, { useCallback, useState, useEffect, useRef, Suspense, memo, Fragment, forwardRef, useImperativeHandle, useMemo } from 'react';
6
- import { Input, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, Modal, ModalHeader, ModalBody, ModalFooter, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
5
+ import React, { useCallback, useState, useEffect, useRef, useMemo, Suspense, memo, Fragment, forwardRef, useImperativeHandle } from 'react';
6
+ import { Input, Form, FormGroup, Row, Col, Navbar, NavbarBrand, Collapse, Nav, NavItem, NavLink, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Modal, Button, Alert, Pagination, PaginationItem, PaginationLink, Table, Label, ModalHeader, ModalBody, ModalFooter, Popover, PopoverBody, TabContent, TabPane, CardText, CustomInput, Card, CardImg, CardBody, CardTitle, CardHeader } from 'reactstrap';
7
7
  import { Link, useLocation, useHistory, Switch, Route, Prompt, useParams } from 'react-router-dom';
8
8
  import { useDispatch, useSelector } from 'react-redux';
9
9
  import { Formik } from 'formik';
@@ -16,7 +16,7 @@ import amplitude from 'amplitude-js';
16
16
  import moment from 'moment';
17
17
  import { LogLevel, PublicClientApplication } from '@azure/msal-browser';
18
18
  import { GiHamburgerMenu } from 'react-icons/gi';
19
- import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } from '@coreui/react';
19
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
20
20
  import { CgMenuRight } from 'react-icons/cg';
21
21
  import { RiLogoutBoxRLine } from 'react-icons/ri';
22
22
  import Pusher from 'pusher-js/with-encryption';
@@ -854,6 +854,7 @@ var parent_role = "Parent Role";
854
854
  var all_activity = "All Activity";
855
855
  var academic_year = "AcademicYear";
856
856
  var all_of_the_students_report_manageable_stress_levels = "All of the students report manageable stress levels";
857
+ var all_of_the_students_report_manageable_safety_levels = "All of the students report manageable safety levels";
857
858
  var growth = "growth";
858
859
  var relationships = "relationships";
859
860
  var productivity = "Productivity";
@@ -1785,6 +1786,7 @@ var assign_bulk = "Assign Bulk";
1785
1786
  var assign_bulk_student = "Assign Bulk Student";
1786
1787
  var instruction = "Instruction";
1787
1788
  var name_is_required = "Name is required";
1789
+ var title_is_required = "Title is required";
1788
1790
  var instruction_is_required = "Instruction is required";
1789
1791
  var add_item = "Add item";
1790
1792
  var conference_rubric_items_is_empty = "Conference rubric items is empty";
@@ -2829,6 +2831,7 @@ var lang_us = {
2829
2831
  all_activity: all_activity,
2830
2832
  academic_year: academic_year,
2831
2833
  all_of_the_students_report_manageable_stress_levels: all_of_the_students_report_manageable_stress_levels,
2834
+ all_of_the_students_report_manageable_safety_levels: all_of_the_students_report_manageable_safety_levels,
2832
2835
  "100_00_of_students_are_not_feeling_safe": "100.00% of students are not feeling safe",
2833
2836
  growth: growth,
2834
2837
  relationships: relationships,
@@ -3761,6 +3764,7 @@ var lang_us = {
3761
3764
  assign_bulk_student: assign_bulk_student,
3762
3765
  instruction: instruction,
3763
3766
  name_is_required: name_is_required,
3767
+ title_is_required: title_is_required,
3764
3768
  instruction_is_required: instruction_is_required,
3765
3769
  add_item: add_item,
3766
3770
  conference_rubric_items_is_empty: conference_rubric_items_is_empty,
@@ -4813,6 +4817,7 @@ var parent_role$1 = "Parent Role";
4813
4817
  var all_activity$1 = "All Activity";
4814
4818
  var academic_year$1 = "AcademicYear";
4815
4819
  var all_of_the_students_report_manageable_stress_levels$1 = "All of the students report manageable stress levels";
4820
+ var all_of_the_students_report_manageable_safety_levels$1 = "All of the students report manageable safety levels";
4816
4821
  var growth$1 = "growth";
4817
4822
  var relationships$1 = "relationships";
4818
4823
  var productivity$1 = "Productivity";
@@ -5744,6 +5749,7 @@ var assign_bulk$1 = "Assign Bulk";
5744
5749
  var assign_bulk_student$1 = "Assign Bulk Student";
5745
5750
  var instruction$1 = "Instruction";
5746
5751
  var name_is_required$1 = "Name is required";
5752
+ var title_is_required$1 = "Title is required";
5747
5753
  var instruction_is_required$1 = "Instruction is required";
5748
5754
  var add_item$1 = "Add item";
5749
5755
  var conference_rubric_items_is_empty$1 = "Conference rubric items is empty";
@@ -6788,6 +6794,7 @@ var lang_uk = {
6788
6794
  all_activity: all_activity$1,
6789
6795
  academic_year: academic_year$1,
6790
6796
  all_of_the_students_report_manageable_stress_levels: all_of_the_students_report_manageable_stress_levels$1,
6797
+ all_of_the_students_report_manageable_safety_levels: all_of_the_students_report_manageable_safety_levels$1,
6791
6798
  "100_00_of_students_are_not_feeling_safe": "100.00% of students are not feeling safe",
6792
6799
  growth: growth$1,
6793
6800
  relationships: relationships$1,
@@ -7720,6 +7727,7 @@ var lang_uk = {
7720
7727
  assign_bulk_student: assign_bulk_student$1,
7721
7728
  instruction: instruction$1,
7722
7729
  name_is_required: name_is_required$1,
7730
+ title_is_required: title_is_required$1,
7723
7731
  instruction_is_required: instruction_is_required$1,
7724
7732
  add_item: add_item$1,
7725
7733
  conference_rubric_items_is_empty: conference_rubric_items_is_empty$1,
@@ -8768,6 +8776,7 @@ var parent_role$2 = "دور ولي الأمر";
8768
8776
  var all_activity$2 = "جميع الأنشطة";
8769
8777
  var academic_year$2 = "العام الدراسي";
8770
8778
  var all_of_the_students_report_manageable_stress_levels$2 = "يبلغ جميع الطلبة عن مستويات توتر يمكن التحكم فيها";
8779
+ var all_of_the_students_report_manageable_safety_levels$2 = "أبلغ جميع الطلاب عن مستويات أمان قابلة للإدارة";
8771
8780
  var growth$2 = "النمو";
8772
8781
  var relationships$2 = "العلاقات";
8773
8782
  var productivity$2 = "الإنتاجية";
@@ -9699,6 +9708,7 @@ var assign_bulk$2 = "تعيين بالجملة";
9699
9708
  var assign_bulk_student$2 = "تعيين الطلبة بالجملة";
9700
9709
  var instruction$2 = "تعليمات";
9701
9710
  var name_is_required$2 = "الاسم مطلوب";
9711
+ var title_is_required$2 = "العنوان مطلوب";
9702
9712
  var instruction_is_required$2 = "التعليمات مطلوبة";
9703
9713
  var add_item$2 = "إضافة عنصر";
9704
9714
  var conference_rubric_items_is_empty$2 = "عناصر نموذج تقييم اللقاء فارغة";
@@ -10776,6 +10786,7 @@ var lang_ar = {
10776
10786
  all_activity: all_activity$2,
10777
10787
  academic_year: academic_year$2,
10778
10788
  all_of_the_students_report_manageable_stress_levels: all_of_the_students_report_manageable_stress_levels$2,
10789
+ all_of_the_students_report_manageable_safety_levels: all_of_the_students_report_manageable_safety_levels$2,
10779
10790
  "100_00_of_students_are_not_feeling_safe": "100.00% من الطلبة لا يشعرون بالأمان",
10780
10791
  growth: growth$2,
10781
10792
  relationships: relationships$2,
@@ -11708,6 +11719,7 @@ var lang_ar = {
11708
11719
  assign_bulk_student: assign_bulk_student$2,
11709
11720
  instruction: instruction$2,
11710
11721
  name_is_required: name_is_required$2,
11722
+ title_is_required: title_is_required$2,
11711
11723
  instruction_is_required: instruction_is_required$2,
11712
11724
  add_item: add_item$2,
11713
11725
  conference_rubric_items_is_empty: conference_rubric_items_is_empty$2,
@@ -12794,6 +12806,7 @@ var parent_role$3 = "Rol de los padres";
12794
12806
  var all_activity$3 = "Todos Actividad";
12795
12807
  var academic_year$3 = "AñoAcadémico";
12796
12808
  var all_of_the_students_report_manageable_stress_levels$3 = "Todos los alumnos informan de niveles de estrés manejables";
12809
+ var all_of_the_students_report_manageable_safety_levels$3 = "Todos los estudiantes reportan niveles de seguridad manejables.";
12797
12810
  var growth$3 = "crecimiento";
12798
12811
  var relationships$3 = "relaciones";
12799
12812
  var productivity$3 = "productividad";
@@ -13725,6 +13738,7 @@ var assign_bulk$3 = "Asignar a granel";
13725
13738
  var assign_bulk_student$3 = "Asignar a granel Alumno";
13726
13739
  var instruction$3 = "Instrucción";
13727
13740
  var name_is_required$3 = "Nombre es requerido";
13741
+ var title_is_required$3 = "El título es requerido";
13728
13742
  var instruction_is_required$3 = "Instrucción es requerida";
13729
13743
  var add_item$3 = "Agregar ítem";
13730
13744
  var conference_rubric_items_is_empty$3 = "Elementos de rúbrica de conferencia está vacío";
@@ -14802,6 +14816,7 @@ var lang_es = {
14802
14816
  all_activity: all_activity$3,
14803
14817
  academic_year: academic_year$3,
14804
14818
  all_of_the_students_report_manageable_stress_levels: all_of_the_students_report_manageable_stress_levels$3,
14819
+ all_of_the_students_report_manageable_safety_levels: all_of_the_students_report_manageable_safety_levels$3,
14805
14820
  "100_00_of_students_are_not_feeling_safe": "El 100,00% de los alumnos no se sienten seguros",
14806
14821
  growth: growth$3,
14807
14822
  relationships: relationships$3,
@@ -15734,6 +15749,7 @@ var lang_es = {
15734
15749
  assign_bulk_student: assign_bulk_student$3,
15735
15750
  instruction: instruction$3,
15736
15751
  name_is_required: name_is_required$3,
15752
+ title_is_required: title_is_required$3,
15737
15753
  instruction_is_required: instruction_is_required$3,
15738
15754
  add_item: add_item$3,
15739
15755
  conference_rubric_items_is_empty: conference_rubric_items_is_empty$3,
@@ -16820,6 +16836,7 @@ var parent_role$4 = "家长角色";
16820
16836
  var all_activity$4 = "所有活动";
16821
16837
  var academic_year$4 = "学年";
16822
16838
  var all_of_the_students_report_manageable_stress_levels$4 = "所有学生报告压力水平可控";
16839
+ var all_of_the_students_report_manageable_safety_levels$4 = "所有学生都报告了可控的安全水平";
16823
16840
  var growth$4 = "成长";
16824
16841
  var relationships$4 = "关系";
16825
16842
  var productivity$4 = "效率";
@@ -17751,6 +17768,7 @@ var assign_bulk$4 = "批量分配";
17751
17768
  var assign_bulk_student$4 = "批量分配学生";
17752
17769
  var instruction$4 = "说明";
17753
17770
  var name_is_required$4 = "姓名为必填项";
17771
+ var title_is_required$4 = "标题为必填项";
17754
17772
  var instruction_is_required$4 = "说明为必填项";
17755
17773
  var add_item$4 = "添加项目";
17756
17774
  var conference_rubric_items_is_empty$4 = "会议评分标准项目为空";
@@ -18828,6 +18846,7 @@ var lang_zh = {
18828
18846
  all_activity: all_activity$4,
18829
18847
  academic_year: academic_year$4,
18830
18848
  all_of_the_students_report_manageable_stress_levels: all_of_the_students_report_manageable_stress_levels$4,
18849
+ all_of_the_students_report_manageable_safety_levels: all_of_the_students_report_manageable_safety_levels$4,
18831
18850
  "100_00_of_students_are_not_feeling_safe": "100.00% 的学生感觉不安全",
18832
18851
  growth: growth$4,
18833
18852
  relationships: relationships$4,
@@ -19760,6 +19779,7 @@ var lang_zh = {
19760
19779
  assign_bulk_student: assign_bulk_student$4,
19761
19780
  instruction: instruction$4,
19762
19781
  name_is_required: name_is_required$4,
19782
+ title_is_required: title_is_required$4,
19763
19783
  instruction_is_required: instruction_is_required$4,
19764
19784
  add_item: add_item$4,
19765
19785
  conference_rubric_items_is_empty: conference_rubric_items_is_empty$4,
@@ -38517,7 +38537,7 @@ var useLogin = function useLogin() {
38517
38537
 
38518
38538
  var handleLoginWidthClever = function handleLoginWidthClever() {
38519
38539
  if (!isLocalhost) {
38520
- var cleverSSOUrl = "https://clever.com/oauth/authorize?response_type=code&redirect_uri=" + encodeURIComponent("https://stage2.marioforme.com/api/clever/clever-login") + "&client_id=" + "c3da6c669d239c70d48e";
38540
+ var cleverSSOUrl = "https://clever.com/oauth/authorize?response_type=code&redirect_uri=" + encodeURIComponent("https://classlink.marioforme.com/api/clever/clever-login") + "&client_id=" + "c3da6c669d239c70d48e";
38521
38541
  window.location.href = cleverSSOUrl;
38522
38542
  } else {
38523
38543
  var _cleverSSOUrl = "https://clever.com/oauth/instant-login?client_id=c3da6c669d239c70d48e&district_id=66132a6f222bda41cc8abe5d";
@@ -39789,6 +39809,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39789
39809
  })), t("log_out")))));
39790
39810
  };
39791
39811
 
39812
+ var apiGetLanguage = function apiGetLanguage() {
39813
+ return api.get(BASE_URL + "/api/language");
39814
+ };
39815
+
39816
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
39817
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
39818
+ };
39819
+
39820
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
39821
+
39822
+ var useLanguages = function useLanguages() {
39823
+ var dispatch = useDispatch();
39824
+
39825
+ var _useTranslation = useTranslation(),
39826
+ i18n = _useTranslation.i18n;
39827
+
39828
+ var language = useSelector(function (state) {
39829
+ return state.common.language;
39830
+ });
39831
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
39832
+
39833
+ var _useState = useState([]),
39834
+ languageList = _useState[0],
39835
+ setLanguageList = _useState[1];
39836
+
39837
+ var _useState2 = useState(false),
39838
+ dropdownOpen = _useState2[0],
39839
+ setDropdownOpen = _useState2[1];
39840
+
39841
+ var _useState3 = useState(defaultLanguage),
39842
+ currentLang = _useState3[0],
39843
+ setCurrentLang = _useState3[1];
39844
+
39845
+ var toggle = function toggle() {
39846
+ return setDropdownOpen(function (prevState) {
39847
+ return !prevState;
39848
+ });
39849
+ };
39850
+
39851
+ var changeLanguageApp = function changeLanguageApp(lang) {
39852
+ try {
39853
+ var _temp3 = function _temp3() {
39854
+ dispatch(setLoading(false));
39855
+ };
39856
+
39857
+ dispatch(setLoading(true));
39858
+
39859
+ var _temp4 = _catch(function () {
39860
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
39861
+ i18n.changeLanguage(lang);
39862
+ setCurrentLang(lang);
39863
+ dispatch(setLanguage(lang));
39864
+ });
39865
+ }, function (err) {
39866
+ var _err$response, _err$response$data;
39867
+
39868
+ dispatch(setAlert({
39869
+ type: "danger",
39870
+ 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
39871
+ }));
39872
+ });
39873
+
39874
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
39875
+ } catch (e) {
39876
+ return Promise.reject(e);
39877
+ }
39878
+ };
39879
+
39880
+ var getListLanguage = function getListLanguage() {
39881
+ try {
39882
+ var _temp6 = _catch(function () {
39883
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
39884
+ setLanguageList(res.data);
39885
+ });
39886
+ }, function (err) {
39887
+ var _err$response2, _err$response2$data;
39888
+
39889
+ dispatch(setAlert({
39890
+ type: "danger",
39891
+ 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
39892
+ }));
39893
+ });
39894
+
39895
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39896
+ } catch (e) {
39897
+ return Promise.reject(e);
39898
+ }
39899
+ };
39900
+
39901
+ useEffect(function () {
39902
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
39903
+ getListLanguage();
39904
+ }, []);
39905
+ return {
39906
+ languageList: languageList,
39907
+ toggle: toggle,
39908
+ dropdownOpen: dropdownOpen,
39909
+ currentLang: currentLang,
39910
+ changeLanguageApp: changeLanguageApp,
39911
+ setCurrentLang: setCurrentLang
39912
+ };
39913
+ };
39914
+
39915
+ var TheLanguageDropdown = function TheLanguageDropdown() {
39916
+ var _useLanguages = useLanguages(),
39917
+ languageList = _useLanguages.languageList,
39918
+ toggle = _useLanguages.toggle,
39919
+ dropdownOpen = _useLanguages.dropdownOpen,
39920
+ currentLang = _useLanguages.currentLang,
39921
+ changeLanguageApp = _useLanguages.changeLanguageApp;
39922
+
39923
+ var currentLanguage = useMemo(function () {
39924
+ var current = languageList.find(function (i) {
39925
+ return i.code === currentLang;
39926
+ });
39927
+ if (!current) return null;
39928
+ return React.createElement(React.Fragment, null, React.createElement("img", {
39929
+ className: "mr-2 " + styles['dropdown-menu-flag'],
39930
+ src: "" + getStaticFileUrl(current.image)
39931
+ }), " ", current.name);
39932
+ }, [currentLang, languageList]);
39933
+ return React.createElement(Dropdown, {
39934
+ isOpen: dropdownOpen,
39935
+ toggle: toggle,
39936
+ className: "" + styles["dropdown-menu"]
39937
+ }, React.createElement(DropdownToggle, {
39938
+ className: styles["header-avatar"] + " d-flex align-items-center"
39939
+ }, React.createElement("span", {
39940
+ style: {
39941
+ color: "#000",
39942
+ textTransform: "capitalize",
39943
+ display: 'flex',
39944
+ alignItems: 'center'
39945
+ }
39946
+ }, currentLanguage, React.createElement(BsChevronDown, {
39947
+ className: "ml-2",
39948
+ style: {
39949
+ fontSize: '10px'
39950
+ }
39951
+ }))), React.createElement(DropdownMenu, {
39952
+ className: styles["dropdown-content-language"]
39953
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
39954
+ return React.createElement(DropdownItem, {
39955
+ key: lang.code,
39956
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
39957
+ onClick: function onClick() {
39958
+ return changeLanguageApp(lang.code);
39959
+ }
39960
+ }, React.createElement("div", {
39961
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
39962
+ }, React.createElement("span", {
39963
+ className: "mr-2 d-flex hover-opacity"
39964
+ }, React.createElement("img", {
39965
+ style: {
39966
+ width: "30px",
39967
+ height: "25px",
39968
+ borderRadius: "5px"
39969
+ },
39970
+ src: getStaticFileUrl(lang.image)
39971
+ })), lang.name));
39972
+ })));
39973
+ };
39974
+
39975
+ var TheHeader = function TheHeader(_ref) {
39976
+ var onToggleModel = _ref.onToggleModel;
39977
+ var dispatch = useDispatch();
39978
+ var sidebarShow = useSelector(function (state) {
39979
+ return state.common.sidebarShow;
39980
+ });
39981
+
39982
+ var _useTranslation = useTranslation(),
39983
+ t = _useTranslation.t;
39984
+
39985
+ var toggleSidebarMobile = function toggleSidebarMobile() {
39986
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
39987
+ dispatch(setSidebar(val));
39988
+ };
39989
+
39990
+ var isDistrict = window.location.host.includes("-district");
39991
+ return React.createElement(CHeader, {
39992
+ withSubheader: true,
39993
+ className: "d-flex align-items-center justify-content-end"
39994
+ }, React.createElement(CToggler, {
39995
+ inHeader: true,
39996
+ className: "ml-md-3 d-lg-none",
39997
+ onClick: toggleSidebarMobile
39998
+ }), React.createElement(CHeaderBrand, {
39999
+ className: "mx-auto flex-grow-1 d-lg-none",
40000
+ to: "/"
40001
+ }, React.createElement("img", {
40002
+ src: getStaticFileUrl(Images.LOGO_HEADER),
40003
+ className: styles["header-logo"]
40004
+ })), React.createElement(CHeaderNav, {
40005
+ className: "pr-3"
40006
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
40007
+ className: "mr-3",
40008
+ style: {
40009
+ color: '#000'
40010
+ },
40011
+ href: '/privacy-policy',
40012
+ target: "blank"
40013
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
40014
+ onToggleModel: onToggleModel
40015
+ })));
40016
+ };
40017
+
39792
40018
  var TITLE$3 = "Not found";
39793
40019
 
39794
40020
  var NotFound = function NotFound() {
@@ -39846,6 +40072,258 @@ var TheContent = function TheContent(_ref) {
39846
40072
 
39847
40073
  var TheContent$1 = React.memo(TheContent);
39848
40074
 
40075
+ var loadingStyle = {
40076
+ minWidth: "100vw",
40077
+ minHeight: "100vh",
40078
+ position: "fixed",
40079
+ top: 0,
40080
+ left: 0,
40081
+ zIndex: 999999999,
40082
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
40083
+ display: "flex",
40084
+ justifyContent: "center",
40085
+ alignItems: "center"
40086
+ };
40087
+
40088
+ var Loading = function Loading() {
40089
+ var isLoading = useSelector(function (state) {
40090
+ return state.common.isLoading;
40091
+ });
40092
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
40093
+ return isLoading ? React.createElement("div", {
40094
+ style: loadingStyle
40095
+ }, React.createElement("div", {
40096
+ className: "spinner-border text-secondary",
40097
+ role: "status"
40098
+ }, React.createElement("span", {
40099
+ className: "sr-only"
40100
+ }, "Loading..."))) : null;
40101
+ };
40102
+
40103
+ var firstCheckToken = function firstCheckToken() {
40104
+ return Promise.resolve(_catch(function () {
40105
+ var token = getAccessToken();
40106
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
40107
+ return tokenStatus.data ? true : false;
40108
+ }) : false;
40109
+ }, function () {
40110
+ return false;
40111
+ }));
40112
+ };
40113
+
40114
+ var canAccess = function canAccess(userRoles, componentRoles) {
40115
+ if (!Array.isArray(userRoles)) {
40116
+ return false;
40117
+ }
40118
+
40119
+ if (Array.isArray(componentRoles)) {
40120
+ var intersects = userRoles.filter(function (i) {
40121
+ return componentRoles.includes(i);
40122
+ });
40123
+ return intersects.length > 0;
40124
+ }
40125
+
40126
+ return true;
40127
+ };
40128
+
40129
+ var ModelSelectRole = function ModelSelectRole(_ref) {
40130
+ var _handleUserRole;
40131
+
40132
+ var open = _ref.open,
40133
+ onToggleModel = _ref.onToggleModel;
40134
+ var dispatch = useDispatch();
40135
+
40136
+ var _useTranslation = useTranslation(),
40137
+ t = _useTranslation.t;
40138
+
40139
+ var history = useHistory();
40140
+ var pathname = window.location.pathname;
40141
+ var user = useSelector(function (state) {
40142
+ return state.common.user;
40143
+ });
40144
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
40145
+
40146
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
40147
+ dispatch(setLoading(true));
40148
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
40149
+ dispatch(setUser(_extends({}, user, {
40150
+ roles: roleSelect
40151
+ })));
40152
+ localStorage.setItem("ROLES", roleSelect.toString());
40153
+ onToggleModel();
40154
+
40155
+ if (roles.includes("Parent")) {
40156
+ history.push("/parent");
40157
+ } else if (roles.includes("Admin")) {
40158
+ history.push("/admin/home");
40159
+ } else {
40160
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
40161
+ }
40162
+ };
40163
+
40164
+ return React.createElement(Modal, {
40165
+ isOpen: open,
40166
+ toggle: function toggle() {
40167
+ return onToggleModel();
40168
+ },
40169
+ className: "" + styles["model-switch-roles"],
40170
+ centered: true
40171
+ }, React.createElement("p", {
40172
+ className: "" + styles["title"]
40173
+ }, 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) {
40174
+ return React.createElement("p", {
40175
+ key: r,
40176
+ 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" : ""],
40177
+ onClick: function onClick() {
40178
+ return handleSelectUserRoles([r]);
40179
+ }
40180
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
40181
+ })));
40182
+ };
40183
+
40184
+ var TheLayout = function TheLayout(_ref) {
40185
+ var routes = _ref.routes,
40186
+ navigation = _ref.navigation;
40187
+ var history = useHistory();
40188
+ var dispatch = useDispatch();
40189
+ var user = useSelector(function (state) {
40190
+ return state.common.user;
40191
+ });
40192
+ var language = useSelector(function (state) {
40193
+ return state.common.language;
40194
+ });
40195
+
40196
+ var _useState = useState(false),
40197
+ openModelSelectRole = _useState[0],
40198
+ setOpenModelSelectRole = _useState[1];
40199
+
40200
+ var _useTranslation = useTranslation(),
40201
+ t = _useTranslation.t;
40202
+
40203
+ var location = useLocation();
40204
+ var isNotification = location.pathname.includes("notifications");
40205
+ var isDistrict = window.location.host.includes("-district");
40206
+
40207
+ var handleToggleModel = function handleToggleModel() {
40208
+ setOpenModelSelectRole(!openModelSelectRole);
40209
+ };
40210
+
40211
+ var authRoutes = useMemo(function () {
40212
+ return routes.filter(function (route) {
40213
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
40214
+ }).filter(function (route) {
40215
+ return !!route.isDistrict === isDistrict;
40216
+ });
40217
+ }, [user, language]);
40218
+ var authNavigations = useMemo(function () {
40219
+ return navigation.map(function (item) {
40220
+ var _item$_children, _item$_children2;
40221
+
40222
+ return _extends({}, item, {
40223
+ name: t(item.name),
40224
+ _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) {
40225
+ return _extends({}, x, {
40226
+ name: t(x.name)
40227
+ });
40228
+ }) : undefined
40229
+ });
40230
+ }).filter(function (nav) {
40231
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
40232
+ }).filter(function (nav) {
40233
+ return !!nav.isDistrict === isDistrict;
40234
+ });
40235
+ }, [user, language]);
40236
+
40237
+ var getInformationSetting = function getInformationSetting() {
40238
+ try {
40239
+ var _temp2 = _catch(function () {
40240
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
40241
+ dispatch(setSandboxMode(res.data.isSandboxMode));
40242
+ });
40243
+ }, function (err) {
40244
+ console.error(err);
40245
+ });
40246
+
40247
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
40248
+ } catch (e) {
40249
+ return Promise.reject(e);
40250
+ }
40251
+ };
40252
+
40253
+ useEffect(function () {
40254
+ checkAuthentication();
40255
+ }, []);
40256
+ useEffect(function () {
40257
+ getInformationSetting();
40258
+ }, [location.pathname]);
40259
+
40260
+ var checkAuthentication = function checkAuthentication() {
40261
+ try {
40262
+ var _temp4 = _catch(function () {
40263
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
40264
+ tokenStatus ? loadInfo() : resetAuth();
40265
+ });
40266
+ }, function () {
40267
+ resetAuth();
40268
+ });
40269
+
40270
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
40271
+ } catch (e) {
40272
+ return Promise.reject(e);
40273
+ }
40274
+ };
40275
+
40276
+ var loadInfo = function loadInfo() {
40277
+ try {
40278
+ var _temp6 = _catch(function () {
40279
+ return Promise.resolve(getInfo()).then(function (info) {
40280
+ var _info$data, _info$data$roles;
40281
+
40282
+ 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"))) {
40283
+ resetAuth();
40284
+ }
40285
+
40286
+ dispatch(setUser(info.data));
40287
+ });
40288
+ }, function () {
40289
+ resetAuth();
40290
+ });
40291
+
40292
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
40293
+ } catch (e) {
40294
+ return Promise.reject(e);
40295
+ }
40296
+ };
40297
+
40298
+ var resetAuth = function resetAuth() {
40299
+ localStorage.removeItem(ACCESS_TOKEN);
40300
+ sessionStorage.removeItem(ACCESS_TOKEN);
40301
+ localStorage.removeItem("ROLES");
40302
+ history.push("/");
40303
+ };
40304
+
40305
+ if (!user) {
40306
+ return React.createElement(Loading, null);
40307
+ }
40308
+
40309
+ return React.createElement("div", {
40310
+ className: "c-app c-default-layout"
40311
+ }, !isNotification && React.createElement(TheSidebar, {
40312
+ navigation: authNavigations
40313
+ }), React.createElement("div", {
40314
+ className: "c-wrapper"
40315
+ }, !isNotification && React.createElement(TheHeader, {
40316
+ onToggleModel: handleToggleModel
40317
+ }), React.createElement("div", {
40318
+ className: "c-body bg-white"
40319
+ }, React.createElement(TheContent$1, {
40320
+ routes: authRoutes
40321
+ }))), React.createElement(ModelSelectRole, {
40322
+ open: openModelSelectRole,
40323
+ onToggleModel: handleToggleModel
40324
+ }));
40325
+ };
40326
+
39849
40327
  var buttonTextStyle = {
39850
40328
  fontWeight: 500
39851
40329
  };
@@ -45658,34 +46136,6 @@ var UserDetail = function UserDetail() {
45658
46136
  });
45659
46137
  };
45660
46138
 
45661
- var loadingStyle = {
45662
- minWidth: "100vw",
45663
- minHeight: "100vh",
45664
- position: "fixed",
45665
- top: 0,
45666
- left: 0,
45667
- zIndex: 999999999,
45668
- backgroundColor: "rgba(0, 0, 0, 0.4)",
45669
- display: "flex",
45670
- justifyContent: "center",
45671
- alignItems: "center"
45672
- };
45673
-
45674
- var Loading = function Loading() {
45675
- var isLoading = useSelector(function (state) {
45676
- return state.common.isLoading;
45677
- });
45678
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45679
- return isLoading ? React.createElement("div", {
45680
- style: loadingStyle
45681
- }, React.createElement("div", {
45682
- className: "spinner-border text-secondary",
45683
- role: "status"
45684
- }, React.createElement("span", {
45685
- className: "sr-only"
45686
- }, "Loading..."))) : null;
45687
- };
45688
-
45689
46139
  var ScrollToTop = function ScrollToTop() {
45690
46140
  var _useLocation = useLocation(),
45691
46141
  pathname = _useLocation.pathname;
@@ -48705,32 +49155,6 @@ var store = configureStore({
48705
49155
  }
48706
49156
  });
48707
49157
 
48708
- var firstCheckToken = function firstCheckToken() {
48709
- return Promise.resolve(_catch(function () {
48710
- var token = getAccessToken();
48711
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48712
- return tokenStatus.data ? true : false;
48713
- }) : false;
48714
- }, function () {
48715
- return false;
48716
- }));
48717
- };
48718
-
48719
- var canAccess = function canAccess(userRoles, componentRoles) {
48720
- if (!Array.isArray(userRoles)) {
48721
- return false;
48722
- }
48723
-
48724
- if (Array.isArray(componentRoles)) {
48725
- var intersects = userRoles.filter(function (i) {
48726
- return componentRoles.includes(i);
48727
- });
48728
- return intersects.length > 0;
48729
- }
48730
-
48731
- return true;
48732
- };
48733
-
48734
49158
  var isInViewport = function isInViewport(el) {
48735
49159
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
48736
49160
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -48766,411 +49190,5 @@ var generateRandomString = (function () {
48766
49190
 
48767
49191
  var amplitudeClient = amplitude.getInstance();
48768
49192
 
48769
- var apiGetLanguage = function apiGetLanguage() {
48770
- return api.get(BASE_URL + "/api/language");
48771
- };
48772
-
48773
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48774
- return api.put(BASE_URL + "/api/language?lang=" + lang);
48775
- };
48776
-
48777
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48778
-
48779
- var useLanguages = function useLanguages() {
48780
- var dispatch = useDispatch();
48781
-
48782
- var _useTranslation = useTranslation(),
48783
- i18n = _useTranslation.i18n;
48784
-
48785
- var language = useSelector(function (state) {
48786
- return state.common.language;
48787
- });
48788
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48789
-
48790
- var _useState = useState([]),
48791
- languageList = _useState[0],
48792
- setLanguageList = _useState[1];
48793
-
48794
- var _useState2 = useState(false),
48795
- dropdownOpen = _useState2[0],
48796
- setDropdownOpen = _useState2[1];
48797
-
48798
- var _useState3 = useState(defaultLanguage),
48799
- currentLang = _useState3[0],
48800
- setCurrentLang = _useState3[1];
48801
-
48802
- var toggle = function toggle() {
48803
- return setDropdownOpen(function (prevState) {
48804
- return !prevState;
48805
- });
48806
- };
48807
-
48808
- var changeLanguageApp = function changeLanguageApp(lang) {
48809
- try {
48810
- var _temp3 = function _temp3() {
48811
- dispatch(setLoading(false));
48812
- };
48813
-
48814
- dispatch(setLoading(true));
48815
-
48816
- var _temp4 = _catch(function () {
48817
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48818
- i18n.changeLanguage(lang);
48819
- setCurrentLang(lang);
48820
- dispatch(setLanguage(lang));
48821
- });
48822
- }, function (err) {
48823
- var _err$response, _err$response$data;
48824
-
48825
- dispatch(setAlert({
48826
- type: "danger",
48827
- 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
48828
- }));
48829
- });
48830
-
48831
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48832
- } catch (e) {
48833
- return Promise.reject(e);
48834
- }
48835
- };
48836
-
48837
- var getListLanguage = function getListLanguage() {
48838
- try {
48839
- var _temp6 = _catch(function () {
48840
- return Promise.resolve(apiGetLanguage()).then(function (res) {
48841
- setLanguageList(res.data);
48842
- });
48843
- }, function (err) {
48844
- var _err$response2, _err$response2$data;
48845
-
48846
- dispatch(setAlert({
48847
- type: "danger",
48848
- 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
48849
- }));
48850
- });
48851
-
48852
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48853
- } catch (e) {
48854
- return Promise.reject(e);
48855
- }
48856
- };
48857
-
48858
- useEffect(function () {
48859
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
48860
- getListLanguage();
48861
- }, []);
48862
- return {
48863
- languageList: languageList,
48864
- toggle: toggle,
48865
- dropdownOpen: dropdownOpen,
48866
- currentLang: currentLang,
48867
- changeLanguageApp: changeLanguageApp,
48868
- setCurrentLang: setCurrentLang
48869
- };
48870
- };
48871
-
48872
- var TheLanguageDropdown = function TheLanguageDropdown() {
48873
- var _useLanguages = useLanguages(),
48874
- languageList = _useLanguages.languageList,
48875
- toggle = _useLanguages.toggle,
48876
- dropdownOpen = _useLanguages.dropdownOpen,
48877
- currentLang = _useLanguages.currentLang,
48878
- changeLanguageApp = _useLanguages.changeLanguageApp;
48879
-
48880
- var currentLanguage = useMemo(function () {
48881
- var current = languageList.find(function (i) {
48882
- return i.code === currentLang;
48883
- });
48884
- if (!current) return null;
48885
- return React.createElement(React.Fragment, null, React.createElement("img", {
48886
- className: "mr-2 " + styles['dropdown-menu-flag'],
48887
- src: "" + getStaticFileUrl(current.image)
48888
- }), " ", current.name);
48889
- }, [currentLang, languageList]);
48890
- return React.createElement(Dropdown, {
48891
- isOpen: dropdownOpen,
48892
- toggle: toggle,
48893
- className: "" + styles["dropdown-menu"]
48894
- }, React.createElement(DropdownToggle, {
48895
- className: styles["header-avatar"] + " d-flex align-items-center"
48896
- }, React.createElement("span", {
48897
- style: {
48898
- color: "#000",
48899
- textTransform: "capitalize",
48900
- display: 'flex',
48901
- alignItems: 'center'
48902
- }
48903
- }, currentLanguage, React.createElement(BsChevronDown, {
48904
- className: "ml-2",
48905
- style: {
48906
- fontSize: '10px'
48907
- }
48908
- }))), React.createElement(DropdownMenu, {
48909
- className: styles["dropdown-content-language"]
48910
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48911
- return React.createElement(DropdownItem, {
48912
- key: lang.code,
48913
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48914
- onClick: function onClick() {
48915
- return changeLanguageApp(lang.code);
48916
- }
48917
- }, React.createElement("div", {
48918
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48919
- }, React.createElement("span", {
48920
- className: "mr-2 d-flex hover-opacity"
48921
- }, React.createElement("img", {
48922
- style: {
48923
- width: "30px",
48924
- height: "25px",
48925
- borderRadius: "5px"
48926
- },
48927
- src: getStaticFileUrl(lang.image)
48928
- })), lang.name));
48929
- })));
48930
- };
48931
-
48932
- var TheHeader = function TheHeader(_ref) {
48933
- var onToggleModel = _ref.onToggleModel;
48934
- var dispatch = useDispatch();
48935
- var sidebarShow = useSelector(function (state) {
48936
- return state.common.sidebarShow;
48937
- });
48938
-
48939
- var _useTranslation = useTranslation(),
48940
- t = _useTranslation.t;
48941
-
48942
- var toggleSidebarMobile = function toggleSidebarMobile() {
48943
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48944
- dispatch(setSidebar(val));
48945
- };
48946
-
48947
- var isDistrict = window.location.host.includes("-district");
48948
- return React.createElement(CHeader, {
48949
- withSubheader: true,
48950
- className: "d-flex align-items-center justify-content-end"
48951
- }, React.createElement(CToggler, {
48952
- inHeader: true,
48953
- className: "ml-md-3 d-lg-none",
48954
- onClick: toggleSidebarMobile
48955
- }), React.createElement(CHeaderBrand, {
48956
- className: "mx-auto flex-grow-1 d-lg-none",
48957
- to: "/"
48958
- }, React.createElement("img", {
48959
- src: getStaticFileUrl(Images.LOGO_HEADER),
48960
- className: styles["header-logo"]
48961
- })), React.createElement(CHeaderNav, {
48962
- className: "pr-3"
48963
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
48964
- className: "mr-3",
48965
- style: {
48966
- color: '#000'
48967
- },
48968
- href: '/privacy-policy',
48969
- target: "blank"
48970
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
48971
- onToggleModel: onToggleModel
48972
- })));
48973
- };
48974
-
48975
- var ModelSelectRole = function ModelSelectRole(_ref) {
48976
- var _handleUserRole;
48977
-
48978
- var open = _ref.open,
48979
- onToggleModel = _ref.onToggleModel;
48980
- var dispatch = useDispatch();
48981
-
48982
- var _useTranslation = useTranslation(),
48983
- t = _useTranslation.t;
48984
-
48985
- var history = useHistory();
48986
- var pathname = window.location.pathname;
48987
- var user = useSelector(function (state) {
48988
- return state.common.user;
48989
- });
48990
- var roles = user === null || user === void 0 ? void 0 : user.roles;
48991
-
48992
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
48993
- dispatch(setLoading(true));
48994
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
48995
- dispatch(setUser(_extends({}, user, {
48996
- roles: roleSelect
48997
- })));
48998
- localStorage.setItem("ROLES", roleSelect.toString());
48999
- onToggleModel();
49000
-
49001
- if (roles.includes("Parent")) {
49002
- history.push("/parent");
49003
- } else if (roles.includes("Admin")) {
49004
- history.push("/admin/home");
49005
- } else {
49006
- pathname !== "/home" ? history.push("/home") : window.location.reload();
49007
- }
49008
- };
49009
-
49010
- return React.createElement(Modal, {
49011
- isOpen: open,
49012
- toggle: function toggle() {
49013
- return onToggleModel();
49014
- },
49015
- className: "" + styles["model-switch-roles"],
49016
- centered: true
49017
- }, React.createElement("p", {
49018
- className: "" + styles["title"]
49019
- }, 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) {
49020
- return React.createElement("p", {
49021
- key: r,
49022
- 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" : ""],
49023
- onClick: function onClick() {
49024
- return handleSelectUserRoles([r]);
49025
- }
49026
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
49027
- })));
49028
- };
49029
-
49030
- var TheLayout = function TheLayout(_ref) {
49031
- var routes = _ref.routes,
49032
- navigation = _ref.navigation;
49033
- var history = useHistory();
49034
- var dispatch = useDispatch();
49035
- var user = useSelector(function (state) {
49036
- return state.common.user;
49037
- });
49038
- var language = useSelector(function (state) {
49039
- return state.common.language;
49040
- });
49041
-
49042
- var _useState = useState(false),
49043
- openModelSelectRole = _useState[0],
49044
- setOpenModelSelectRole = _useState[1];
49045
-
49046
- var _useTranslation = useTranslation(),
49047
- t = _useTranslation.t;
49048
-
49049
- var location = useLocation();
49050
- var isNotification = location.pathname.includes("notifications");
49051
- var isDistrict = window.location.host.includes("-district");
49052
-
49053
- var handleToggleModel = function handleToggleModel() {
49054
- setOpenModelSelectRole(!openModelSelectRole);
49055
- };
49056
-
49057
- var authRoutes = useMemo(function () {
49058
- return routes.filter(function (route) {
49059
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
49060
- }).filter(function (route) {
49061
- return !!route.isDistrict === isDistrict;
49062
- });
49063
- }, [user, language]);
49064
- var authNavigations = useMemo(function () {
49065
- return navigation.map(function (item) {
49066
- var _item$_children, _item$_children2;
49067
-
49068
- return _extends({}, item, {
49069
- name: t(item.name),
49070
- _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) {
49071
- return _extends({}, x, {
49072
- name: t(x.name)
49073
- });
49074
- }) : undefined
49075
- });
49076
- }).filter(function (nav) {
49077
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
49078
- }).filter(function (nav) {
49079
- return !!nav.isDistrict === isDistrict;
49080
- });
49081
- }, [user, language]);
49082
-
49083
- var getInformationSetting = function getInformationSetting() {
49084
- try {
49085
- var _temp2 = _catch(function () {
49086
- return Promise.resolve(getSchoolSettings()).then(function (res) {
49087
- dispatch(setSandboxMode(res.data.isSandboxMode));
49088
- });
49089
- }, function (err) {
49090
- console.error(err);
49091
- });
49092
-
49093
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
49094
- } catch (e) {
49095
- return Promise.reject(e);
49096
- }
49097
- };
49098
-
49099
- useEffect(function () {
49100
- checkAuthentication();
49101
- }, []);
49102
- useEffect(function () {
49103
- getInformationSetting();
49104
- }, [location.pathname]);
49105
-
49106
- var checkAuthentication = function checkAuthentication() {
49107
- try {
49108
- var _temp4 = _catch(function () {
49109
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
49110
- tokenStatus ? loadInfo() : resetAuth();
49111
- });
49112
- }, function () {
49113
- resetAuth();
49114
- });
49115
-
49116
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
49117
- } catch (e) {
49118
- return Promise.reject(e);
49119
- }
49120
- };
49121
-
49122
- var loadInfo = function loadInfo() {
49123
- try {
49124
- var _temp6 = _catch(function () {
49125
- return Promise.resolve(getInfo()).then(function (info) {
49126
- var _info$data, _info$data$roles;
49127
-
49128
- 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"))) {
49129
- resetAuth();
49130
- }
49131
-
49132
- dispatch(setUser(info.data));
49133
- });
49134
- }, function () {
49135
- resetAuth();
49136
- });
49137
-
49138
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
49139
- } catch (e) {
49140
- return Promise.reject(e);
49141
- }
49142
- };
49143
-
49144
- var resetAuth = function resetAuth() {
49145
- localStorage.removeItem(ACCESS_TOKEN);
49146
- sessionStorage.removeItem(ACCESS_TOKEN);
49147
- localStorage.removeItem("ROLES");
49148
- history.push("/");
49149
- };
49150
-
49151
- if (!user) {
49152
- return React.createElement(Loading, null);
49153
- }
49154
-
49155
- return React.createElement("div", {
49156
- className: "c-app c-default-layout"
49157
- }, !isNotification && React.createElement(TheSidebar, {
49158
- navigation: authNavigations
49159
- }), React.createElement("div", {
49160
- className: "c-wrapper"
49161
- }, !isNotification && React.createElement(TheHeader, {
49162
- onToggleModel: handleToggleModel
49163
- }), React.createElement("div", {
49164
- className: "c-body bg-white"
49165
- }, React.createElement(TheContent$1, {
49166
- routes: authRoutes
49167
- }))), React.createElement(ModelSelectRole, {
49168
- open: openModelSelectRole,
49169
- onToggleModel: handleToggleModel
49170
- }));
49171
- };
49172
-
49173
- var amplitudeClient$1 = amplitude.getInstance();
49174
-
49175
- 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 };
49193
+ 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 };
49176
49194
  //# sourceMappingURL=index.modern.js.map