mario-core 2.9.428-feedback → 2.9.430-feedback

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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, Card, CardBody, CardText, Tooltip, CustomInput, CardImg, 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, Card, CardBody, CardText, Tooltip, CustomInput, CardImg, 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';
@@ -17,7 +17,7 @@ import { track, setSessionId, init, Identify, identify } from '@amplitude/analyt
17
17
  import moment from 'moment';
18
18
  import { LogLevel, PublicClientApplication } from '@azure/msal-browser';
19
19
  import { GiHamburgerMenu } from 'react-icons/gi';
20
- import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CContainer, CHeader, CToggler, CHeaderBrand, CHeaderNav } from '@coreui/react';
20
+ import { CSidebar, CSidebarBrand, CSidebarNav, CCreateElement, CSidebarNavDivider, CSidebarNavDropdown, CSidebarNavItem, CSidebarNavTitle, CSidebarFooter, CHeader, CToggler, CHeaderBrand, CHeaderNav, CContainer } from '@coreui/react';
21
21
  import { CgMenuRight } from 'react-icons/cg';
22
22
  import { RiLogoutBoxRLine } from 'react-icons/ri';
23
23
  import Pusher from 'pusher-js/with-encryption';
@@ -81,7 +81,7 @@ var total_1_to_1 = "Total 1-to-1s";
81
81
  var total_1_to_1_time = "Total 1-to-1 Time";
82
82
  var total_conferences = "Total Conferences";
83
83
  var total_conferences_time = "Total Conference Time";
84
- var total_class_reflection_check_ins = "Total Class Reflection Check Ins";
84
+ var total_class_reflection_check_ins = "Total Class Reflection Check-Ins";
85
85
  var create_user = "Create user";
86
86
  var edit_user = "Edit user";
87
87
  var change_password = "Change password";
@@ -680,7 +680,7 @@ var start = "start";
680
680
  var teacher_reflection = "Teacher Reflections";
681
681
  var notes = "Notes";
682
682
  var student_reflection = "Student Reflections";
683
- var view_latest_check_ins = "View Latest Check Ins";
683
+ var view_latest_check_ins = "View Latest Check-Ins";
684
684
  var this_week_s = "This Week's";
685
685
  var missing_weekly_check_in = "missing weekly check-in";
686
686
  var add_new_student = "Add new student";
@@ -697,7 +697,7 @@ var start_a_1_1_conversation = "Start a 1-1 Conversation";
697
697
  var view_results = "View results";
698
698
  var request_check_in = "Request check-in";
699
699
  var last = "Last";
700
- var latest_check_ins = "Latest Check Ins";
700
+ var latest_check_ins = "Latest Check-Ins";
701
701
  var students_who_missing_weekly_check_in = "Students who missing weekly check-in";
702
702
  var this_student_does_nt_have_missing_check_in = "This student doesn’t have missing check-in";
703
703
  var no_student_missing_weekly_check_in = "No student missing weekly check-in";
@@ -759,7 +759,7 @@ var how_many_times_a_strategy_has_been_chosen = "How many times a strategy has b
759
759
  var these_metrics_come_from_students_check_ins_filter_above_to_change_the_data_set = "These metrics come from student check-ins. Filter above to change the data set";
760
760
  var not_yet_started = "Not yet started";
761
761
  var in_progress = "In progress";
762
- var export_check_ins_to_csv = "Export Check Ins to CSV";
762
+ var export_check_ins_to_csv = "Export Check-Ins to CSV";
763
763
  var these_metrics_come_from_the_conference_rubric_only_teacher_responses_are_scored = "These metrics come from the conference rubric. Only teacher responses are scored";
764
764
  var please_save_first = "Please save first";
765
765
  var print_date = "Print date";
@@ -2169,7 +2169,7 @@ var check_ins_tab = "Check-ins";
2169
2169
  var start_check_in_homepage = "Start Check-in";
2170
2170
  var select_the_teacher_or_counselor_asking_you_to_check_in_if_you_have_more_than_one_teacher_choose_any_teacher_in_the_class_all_the_teachers_and_counselors_listed_can_view_your_check_ins = "Select the teacher or counselor asking you to check-in. If you have more than one teacher, choose any teacher in the class. All the teachers and counselors listed can view your check-ins.";
2171
2171
  var total_check_ins = "Total Check-ins";
2172
- var check_ins = "Check Ins";
2172
+ var check_ins = "Check-Ins";
2173
2173
  var here_you_can_find_all_the_notes_and_1_1_conversations_logs_the_student_has = "Here you can find all the notes and 1-1 conversations logs the student has.";
2174
2174
  var back_to_notes_and_logs = "Back to Notes and Logs";
2175
2175
  var students_review = "Student's Review";
@@ -2250,7 +2250,7 @@ var lang_us = {
2250
2250
  tooltip_content_students_by_designation: tooltip_content_students_by_designation,
2251
2251
  total_1_to_1: total_1_to_1,
2252
2252
  "total_-session": "Total Check-ins",
2253
- "total_-sessions": "Total Check Ins",
2253
+ "total_-sessions": "Total Check-Ins",
2254
2254
  total_1_to_1_time: total_1_to_1_time,
2255
2255
  total_conferences: total_conferences,
2256
2256
  total_conferences_time: total_conferences_time,
@@ -42063,6 +42063,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
42063
42063
  })), t("log_out")))));
42064
42064
  };
42065
42065
 
42066
+ var apiGetLanguage = function apiGetLanguage() {
42067
+ return api.get(BASE_URL + "/api/language");
42068
+ };
42069
+
42070
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
42071
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
42072
+ };
42073
+
42074
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
42075
+
42076
+ var useLanguages = function useLanguages() {
42077
+ var dispatch = useDispatch();
42078
+
42079
+ var _useTranslation = useTranslation(),
42080
+ i18n = _useTranslation.i18n;
42081
+
42082
+ var language = useSelector(function (state) {
42083
+ return state.common.language;
42084
+ });
42085
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
42086
+
42087
+ var _useState = useState([]),
42088
+ languageList = _useState[0],
42089
+ setLanguageList = _useState[1];
42090
+
42091
+ var _useState2 = useState(false),
42092
+ dropdownOpen = _useState2[0],
42093
+ setDropdownOpen = _useState2[1];
42094
+
42095
+ var _useState3 = useState(defaultLanguage),
42096
+ currentLang = _useState3[0],
42097
+ setCurrentLang = _useState3[1];
42098
+
42099
+ var toggle = function toggle() {
42100
+ return setDropdownOpen(function (prevState) {
42101
+ return !prevState;
42102
+ });
42103
+ };
42104
+
42105
+ var changeLanguageApp = function changeLanguageApp(lang) {
42106
+ try {
42107
+ var _temp3 = function _temp3() {
42108
+ dispatch(setLoading(false));
42109
+ };
42110
+
42111
+ dispatch(setLoading(true));
42112
+
42113
+ var _temp4 = _catch(function () {
42114
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
42115
+ i18n.changeLanguage(lang);
42116
+ setCurrentLang(lang);
42117
+ dispatch(setLanguage(lang));
42118
+ });
42119
+ }, function (err) {
42120
+ var _err$response, _err$response$data;
42121
+
42122
+ dispatch(setAlert({
42123
+ type: "danger",
42124
+ 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
42125
+ }));
42126
+ });
42127
+
42128
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
42129
+ } catch (e) {
42130
+ return Promise.reject(e);
42131
+ }
42132
+ };
42133
+
42134
+ var getListLanguage = function getListLanguage() {
42135
+ try {
42136
+ var _temp6 = _catch(function () {
42137
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
42138
+ setLanguageList(res.data);
42139
+ });
42140
+ }, function (err) {
42141
+ var _err$response2, _err$response2$data;
42142
+
42143
+ dispatch(setAlert({
42144
+ type: "danger",
42145
+ 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
42146
+ }));
42147
+ });
42148
+
42149
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42150
+ } catch (e) {
42151
+ return Promise.reject(e);
42152
+ }
42153
+ };
42154
+
42155
+ useEffect(function () {
42156
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
42157
+ getListLanguage();
42158
+ }, []);
42159
+ return {
42160
+ languageList: languageList,
42161
+ toggle: toggle,
42162
+ dropdownOpen: dropdownOpen,
42163
+ currentLang: currentLang,
42164
+ changeLanguageApp: changeLanguageApp,
42165
+ setCurrentLang: setCurrentLang
42166
+ };
42167
+ };
42168
+
42169
+ var TheLanguageDropdown = function TheLanguageDropdown() {
42170
+ var _useLanguages = useLanguages(),
42171
+ languageList = _useLanguages.languageList,
42172
+ toggle = _useLanguages.toggle,
42173
+ dropdownOpen = _useLanguages.dropdownOpen,
42174
+ currentLang = _useLanguages.currentLang,
42175
+ changeLanguageApp = _useLanguages.changeLanguageApp;
42176
+
42177
+ var currentLanguage = useMemo(function () {
42178
+ var current = languageList.find(function (i) {
42179
+ return i.code === currentLang;
42180
+ });
42181
+ if (!current) return null;
42182
+ return React.createElement(React.Fragment, null, React.createElement("img", {
42183
+ className: "mr-2 " + styles['dropdown-menu-flag'],
42184
+ src: "" + getStaticFileUrl(current.image)
42185
+ }), " ", current.name);
42186
+ }, [currentLang, languageList]);
42187
+ return React.createElement(Dropdown, {
42188
+ isOpen: dropdownOpen,
42189
+ toggle: toggle,
42190
+ className: "" + styles["dropdown-menu"]
42191
+ }, React.createElement(DropdownToggle, {
42192
+ className: styles["header-avatar"] + " d-flex align-items-center"
42193
+ }, React.createElement("span", {
42194
+ style: {
42195
+ color: "#000",
42196
+ textTransform: "capitalize",
42197
+ display: 'flex',
42198
+ alignItems: 'center'
42199
+ }
42200
+ }, currentLanguage, React.createElement(BsChevronDown, {
42201
+ className: "ml-2",
42202
+ style: {
42203
+ fontSize: '10px'
42204
+ }
42205
+ }))), React.createElement(DropdownMenu, {
42206
+ className: styles["dropdown-content-language"]
42207
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42208
+ return React.createElement(DropdownItem, {
42209
+ key: lang.code,
42210
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42211
+ onClick: function onClick() {
42212
+ return changeLanguageApp(lang.code);
42213
+ }
42214
+ }, React.createElement("div", {
42215
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42216
+ }, React.createElement("span", {
42217
+ className: "mr-2 d-flex hover-opacity"
42218
+ }, React.createElement("img", {
42219
+ style: {
42220
+ width: "30px",
42221
+ height: "25px",
42222
+ borderRadius: "5px"
42223
+ },
42224
+ src: getStaticFileUrl(lang.image)
42225
+ })), lang.name));
42226
+ })));
42227
+ };
42228
+
42229
+ var TheHeader = function TheHeader(_ref) {
42230
+ var onToggleModel = _ref.onToggleModel;
42231
+ var dispatch = useDispatch();
42232
+ var sidebarShow = useSelector(function (state) {
42233
+ return state.common.sidebarShow;
42234
+ });
42235
+
42236
+ var _useTranslation = useTranslation(),
42237
+ t = _useTranslation.t;
42238
+
42239
+ var toggleSidebarMobile = function toggleSidebarMobile() {
42240
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42241
+ dispatch(setSidebar(val));
42242
+ };
42243
+
42244
+ var isDistrict = window.location.host.includes("-district");
42245
+ return React.createElement(CHeader, {
42246
+ withSubheader: true,
42247
+ className: "d-flex align-items-center justify-content-end"
42248
+ }, React.createElement(CToggler, {
42249
+ inHeader: true,
42250
+ className: "ml-md-3 d-lg-none",
42251
+ onClick: toggleSidebarMobile
42252
+ }), React.createElement(CHeaderBrand, {
42253
+ className: "mx-auto flex-grow-1 d-lg-none",
42254
+ to: "/"
42255
+ }, React.createElement("img", {
42256
+ src: getStaticFileUrl(Images.LOGO_HEADER),
42257
+ className: styles["header-logo"]
42258
+ })), React.createElement(CHeaderNav, {
42259
+ className: "pr-3"
42260
+ }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
42261
+ className: "mr-3",
42262
+ style: {
42263
+ color: '#000'
42264
+ },
42265
+ href: '/privacy-policy',
42266
+ target: "blank"
42267
+ }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
42268
+ onToggleModel: onToggleModel
42269
+ })));
42270
+ };
42271
+
42066
42272
  var TITLE$3 = "Not found";
42067
42273
 
42068
42274
  var NotFound = function NotFound() {
@@ -42120,6 +42326,258 @@ var TheContent = function TheContent(_ref) {
42120
42326
 
42121
42327
  var TheContent$1 = React.memo(TheContent);
42122
42328
 
42329
+ var loadingStyle = {
42330
+ minWidth: "100vw",
42331
+ minHeight: "100vh",
42332
+ position: "fixed",
42333
+ top: 0,
42334
+ left: 0,
42335
+ zIndex: 999999999,
42336
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42337
+ display: "flex",
42338
+ justifyContent: "center",
42339
+ alignItems: "center"
42340
+ };
42341
+
42342
+ var Loading = function Loading() {
42343
+ var isLoading = useSelector(function (state) {
42344
+ return state.common.isLoading;
42345
+ });
42346
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42347
+ return isLoading ? React.createElement("div", {
42348
+ style: loadingStyle
42349
+ }, React.createElement("div", {
42350
+ className: "spinner-border text-secondary",
42351
+ role: "status"
42352
+ }, React.createElement("span", {
42353
+ className: "sr-only"
42354
+ }, "Loading..."))) : null;
42355
+ };
42356
+
42357
+ var firstCheckToken = function firstCheckToken() {
42358
+ return Promise.resolve(_catch(function () {
42359
+ var token = getAccessToken();
42360
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42361
+ return tokenStatus.data ? true : false;
42362
+ }) : false;
42363
+ }, function () {
42364
+ return false;
42365
+ }));
42366
+ };
42367
+
42368
+ var canAccess = function canAccess(userRoles, componentRoles) {
42369
+ if (!Array.isArray(userRoles)) {
42370
+ return false;
42371
+ }
42372
+
42373
+ if (Array.isArray(componentRoles)) {
42374
+ var intersects = userRoles.filter(function (i) {
42375
+ return componentRoles.includes(i);
42376
+ });
42377
+ return intersects.length > 0;
42378
+ }
42379
+
42380
+ return true;
42381
+ };
42382
+
42383
+ var ModelSelectRole = function ModelSelectRole(_ref) {
42384
+ var _handleUserRole;
42385
+
42386
+ var open = _ref.open,
42387
+ onToggleModel = _ref.onToggleModel;
42388
+ var dispatch = useDispatch();
42389
+
42390
+ var _useTranslation = useTranslation(),
42391
+ t = _useTranslation.t;
42392
+
42393
+ var history = useHistory();
42394
+ var pathname = window.location.pathname;
42395
+ var user = useSelector(function (state) {
42396
+ return state.common.user;
42397
+ });
42398
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
42399
+
42400
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42401
+ dispatch(setLoading(true));
42402
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42403
+ dispatch(setUser(_extends({}, user, {
42404
+ roles: roleSelect
42405
+ })));
42406
+ localStorage.setItem("ROLES", roleSelect.toString());
42407
+ onToggleModel();
42408
+
42409
+ if (roles.includes("Parent")) {
42410
+ history.push("/parent");
42411
+ } else if (roles.includes("Admin")) {
42412
+ history.push("/admin/home");
42413
+ } else {
42414
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
42415
+ }
42416
+ };
42417
+
42418
+ return React.createElement(Modal, {
42419
+ isOpen: open,
42420
+ toggle: function toggle() {
42421
+ return onToggleModel();
42422
+ },
42423
+ className: "" + styles["model-switch-roles"],
42424
+ centered: true
42425
+ }, React.createElement("p", {
42426
+ className: "" + styles["title"]
42427
+ }, 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) {
42428
+ return React.createElement("p", {
42429
+ key: r,
42430
+ 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" : ""],
42431
+ onClick: function onClick() {
42432
+ return handleSelectUserRoles([r]);
42433
+ }
42434
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42435
+ })));
42436
+ };
42437
+
42438
+ var TheLayout = function TheLayout(_ref) {
42439
+ var routes = _ref.routes,
42440
+ navigation = _ref.navigation;
42441
+ var history = useHistory();
42442
+ var dispatch = useDispatch();
42443
+ var user = useSelector(function (state) {
42444
+ return state.common.user;
42445
+ });
42446
+ var language = useSelector(function (state) {
42447
+ return state.common.language;
42448
+ });
42449
+
42450
+ var _useState = useState(false),
42451
+ openModelSelectRole = _useState[0],
42452
+ setOpenModelSelectRole = _useState[1];
42453
+
42454
+ var _useTranslation = useTranslation(),
42455
+ t = _useTranslation.t;
42456
+
42457
+ var location = useLocation();
42458
+ var isNotification = location.pathname.includes("notifications");
42459
+ var isDistrict = window.location.host.includes("-district");
42460
+
42461
+ var handleToggleModel = function handleToggleModel() {
42462
+ setOpenModelSelectRole(!openModelSelectRole);
42463
+ };
42464
+
42465
+ var authRoutes = useMemo(function () {
42466
+ return routes.filter(function (route) {
42467
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42468
+ }).filter(function (route) {
42469
+ return !!route.isDistrict === isDistrict;
42470
+ });
42471
+ }, [user, language]);
42472
+ var authNavigations = useMemo(function () {
42473
+ return navigation.map(function (item) {
42474
+ var _item$_children, _item$_children2;
42475
+
42476
+ return _extends({}, item, {
42477
+ name: t(item.name),
42478
+ _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) {
42479
+ return _extends({}, x, {
42480
+ name: t(x.name)
42481
+ });
42482
+ }) : undefined
42483
+ });
42484
+ }).filter(function (nav) {
42485
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42486
+ }).filter(function (nav) {
42487
+ return !!nav.isDistrict === isDistrict;
42488
+ });
42489
+ }, [user, language]);
42490
+
42491
+ var getInformationSetting = function getInformationSetting() {
42492
+ try {
42493
+ var _temp2 = _catch(function () {
42494
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
42495
+ dispatch(setSandboxMode(res.data.isSandboxMode));
42496
+ });
42497
+ }, function (err) {
42498
+ console.error(err);
42499
+ });
42500
+
42501
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42502
+ } catch (e) {
42503
+ return Promise.reject(e);
42504
+ }
42505
+ };
42506
+
42507
+ useEffect(function () {
42508
+ checkAuthentication();
42509
+ }, []);
42510
+ useEffect(function () {
42511
+ getInformationSetting();
42512
+ }, [location.pathname]);
42513
+
42514
+ var checkAuthentication = function checkAuthentication() {
42515
+ try {
42516
+ var _temp4 = _catch(function () {
42517
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42518
+ tokenStatus ? loadInfo() : resetAuth();
42519
+ });
42520
+ }, function () {
42521
+ resetAuth();
42522
+ });
42523
+
42524
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42525
+ } catch (e) {
42526
+ return Promise.reject(e);
42527
+ }
42528
+ };
42529
+
42530
+ var loadInfo = function loadInfo() {
42531
+ try {
42532
+ var _temp6 = _catch(function () {
42533
+ return Promise.resolve(getInfo()).then(function (info) {
42534
+ var _info$data, _info$data$roles;
42535
+
42536
+ 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"))) {
42537
+ resetAuth();
42538
+ }
42539
+
42540
+ dispatch(setUser(info.data));
42541
+ });
42542
+ }, function () {
42543
+ resetAuth();
42544
+ });
42545
+
42546
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42547
+ } catch (e) {
42548
+ return Promise.reject(e);
42549
+ }
42550
+ };
42551
+
42552
+ var resetAuth = function resetAuth() {
42553
+ localStorage.removeItem(ACCESS_TOKEN);
42554
+ sessionStorage.removeItem(ACCESS_TOKEN);
42555
+ localStorage.removeItem("ROLES");
42556
+ history.push("/");
42557
+ };
42558
+
42559
+ if (!user) {
42560
+ return React.createElement(Loading, null);
42561
+ }
42562
+
42563
+ return React.createElement("div", {
42564
+ className: "c-app c-default-layout"
42565
+ }, !isNotification && React.createElement(TheSidebar, {
42566
+ navigation: authNavigations
42567
+ }), React.createElement("div", {
42568
+ className: "c-wrapper"
42569
+ }, !isNotification && React.createElement(TheHeader, {
42570
+ onToggleModel: handleToggleModel
42571
+ }), React.createElement("div", {
42572
+ className: "c-body bg-white"
42573
+ }, React.createElement(TheContent$1, {
42574
+ routes: authRoutes
42575
+ }))), React.createElement(ModelSelectRole, {
42576
+ open: openModelSelectRole,
42577
+ onToggleModel: handleToggleModel
42578
+ }));
42579
+ };
42580
+
42123
42581
  var buttonTextStyle = {
42124
42582
  fontWeight: 500
42125
42583
  };
@@ -51516,34 +51974,6 @@ var UserDetail = function UserDetail() {
51516
51974
  });
51517
51975
  };
51518
51976
 
51519
- var loadingStyle = {
51520
- minWidth: "100vw",
51521
- minHeight: "100vh",
51522
- position: "fixed",
51523
- top: 0,
51524
- left: 0,
51525
- zIndex: 999999999,
51526
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51527
- display: "flex",
51528
- justifyContent: "center",
51529
- alignItems: "center"
51530
- };
51531
-
51532
- var Loading = function Loading() {
51533
- var isLoading = useSelector(function (state) {
51534
- return state.common.isLoading;
51535
- });
51536
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51537
- return isLoading ? React.createElement("div", {
51538
- style: loadingStyle
51539
- }, React.createElement("div", {
51540
- className: "spinner-border text-secondary",
51541
- role: "status"
51542
- }, React.createElement("span", {
51543
- className: "sr-only"
51544
- }, "Loading..."))) : null;
51545
- };
51546
-
51547
51977
  var ScrollToTop = function ScrollToTop() {
51548
51978
  var _useLocation = useLocation(),
51549
51979
  pathname = _useLocation.pathname;
@@ -54600,32 +55030,6 @@ var store = configureStore({
54600
55030
  }
54601
55031
  });
54602
55032
 
54603
- var firstCheckToken = function firstCheckToken() {
54604
- return Promise.resolve(_catch(function () {
54605
- var token = getAccessToken();
54606
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54607
- return tokenStatus.data ? true : false;
54608
- }) : false;
54609
- }, function () {
54610
- return false;
54611
- }));
54612
- };
54613
-
54614
- var canAccess = function canAccess(userRoles, componentRoles) {
54615
- if (!Array.isArray(userRoles)) {
54616
- return false;
54617
- }
54618
-
54619
- if (Array.isArray(componentRoles)) {
54620
- var intersects = userRoles.filter(function (i) {
54621
- return componentRoles.includes(i);
54622
- });
54623
- return intersects.length > 0;
54624
- }
54625
-
54626
- return true;
54627
- };
54628
-
54629
55033
  var isInViewport = function isInViewport(el) {
54630
55034
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54631
55035
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54659,410 +55063,6 @@ var generateRandomString = (function () {
54659
55063
  return (Math.random() + 1).toString(36).substring(7);
54660
55064
  });
54661
55065
 
54662
- var apiGetLanguage = function apiGetLanguage() {
54663
- return api.get(BASE_URL + "/api/language");
54664
- };
54665
-
54666
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54667
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54668
- };
54669
-
54670
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54671
-
54672
- var useLanguages = function useLanguages() {
54673
- var dispatch = useDispatch();
54674
-
54675
- var _useTranslation = useTranslation(),
54676
- i18n = _useTranslation.i18n;
54677
-
54678
- var language = useSelector(function (state) {
54679
- return state.common.language;
54680
- });
54681
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54682
-
54683
- var _useState = useState([]),
54684
- languageList = _useState[0],
54685
- setLanguageList = _useState[1];
54686
-
54687
- var _useState2 = useState(false),
54688
- dropdownOpen = _useState2[0],
54689
- setDropdownOpen = _useState2[1];
54690
-
54691
- var _useState3 = useState(defaultLanguage),
54692
- currentLang = _useState3[0],
54693
- setCurrentLang = _useState3[1];
54694
-
54695
- var toggle = function toggle() {
54696
- return setDropdownOpen(function (prevState) {
54697
- return !prevState;
54698
- });
54699
- };
54700
-
54701
- var changeLanguageApp = function changeLanguageApp(lang) {
54702
- try {
54703
- var _temp3 = function _temp3() {
54704
- dispatch(setLoading(false));
54705
- };
54706
-
54707
- dispatch(setLoading(true));
54708
-
54709
- var _temp4 = _catch(function () {
54710
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54711
- i18n.changeLanguage(lang);
54712
- setCurrentLang(lang);
54713
- dispatch(setLanguage(lang));
54714
- });
54715
- }, function (err) {
54716
- var _err$response, _err$response$data;
54717
-
54718
- dispatch(setAlert({
54719
- type: "danger",
54720
- 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
54721
- }));
54722
- });
54723
-
54724
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54725
- } catch (e) {
54726
- return Promise.reject(e);
54727
- }
54728
- };
54729
-
54730
- var getListLanguage = function getListLanguage() {
54731
- try {
54732
- var _temp6 = _catch(function () {
54733
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54734
- setLanguageList(res.data);
54735
- });
54736
- }, function (err) {
54737
- var _err$response2, _err$response2$data;
54738
-
54739
- dispatch(setAlert({
54740
- type: "danger",
54741
- 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
54742
- }));
54743
- });
54744
-
54745
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54746
- } catch (e) {
54747
- return Promise.reject(e);
54748
- }
54749
- };
54750
-
54751
- useEffect(function () {
54752
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54753
- getListLanguage();
54754
- }, []);
54755
- return {
54756
- languageList: languageList,
54757
- toggle: toggle,
54758
- dropdownOpen: dropdownOpen,
54759
- currentLang: currentLang,
54760
- changeLanguageApp: changeLanguageApp,
54761
- setCurrentLang: setCurrentLang
54762
- };
54763
- };
54764
-
54765
- var TheLanguageDropdown = function TheLanguageDropdown() {
54766
- var _useLanguages = useLanguages(),
54767
- languageList = _useLanguages.languageList,
54768
- toggle = _useLanguages.toggle,
54769
- dropdownOpen = _useLanguages.dropdownOpen,
54770
- currentLang = _useLanguages.currentLang,
54771
- changeLanguageApp = _useLanguages.changeLanguageApp;
54772
-
54773
- var currentLanguage = useMemo(function () {
54774
- var current = languageList.find(function (i) {
54775
- return i.code === currentLang;
54776
- });
54777
- if (!current) return null;
54778
- return React.createElement(React.Fragment, null, React.createElement("img", {
54779
- className: "mr-2 " + styles['dropdown-menu-flag'],
54780
- src: "" + getStaticFileUrl(current.image)
54781
- }), " ", current.name);
54782
- }, [currentLang, languageList]);
54783
- return React.createElement(Dropdown, {
54784
- isOpen: dropdownOpen,
54785
- toggle: toggle,
54786
- className: "" + styles["dropdown-menu"]
54787
- }, React.createElement(DropdownToggle, {
54788
- className: styles["header-avatar"] + " d-flex align-items-center"
54789
- }, React.createElement("span", {
54790
- style: {
54791
- color: "#000",
54792
- textTransform: "capitalize",
54793
- display: 'flex',
54794
- alignItems: 'center'
54795
- }
54796
- }, currentLanguage, React.createElement(BsChevronDown, {
54797
- className: "ml-2",
54798
- style: {
54799
- fontSize: '10px'
54800
- }
54801
- }))), React.createElement(DropdownMenu, {
54802
- className: styles["dropdown-content-language"]
54803
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54804
- return React.createElement(DropdownItem, {
54805
- key: lang.code,
54806
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54807
- onClick: function onClick() {
54808
- return changeLanguageApp(lang.code);
54809
- }
54810
- }, React.createElement("div", {
54811
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54812
- }, React.createElement("span", {
54813
- className: "mr-2 d-flex hover-opacity"
54814
- }, React.createElement("img", {
54815
- style: {
54816
- width: "30px",
54817
- height: "25px",
54818
- borderRadius: "5px"
54819
- },
54820
- src: getStaticFileUrl(lang.image)
54821
- })), lang.name));
54822
- })));
54823
- };
54824
-
54825
- var TheHeader = function TheHeader(_ref) {
54826
- var onToggleModel = _ref.onToggleModel;
54827
- var dispatch = useDispatch();
54828
- var sidebarShow = useSelector(function (state) {
54829
- return state.common.sidebarShow;
54830
- });
54831
-
54832
- var _useTranslation = useTranslation(),
54833
- t = _useTranslation.t;
54834
-
54835
- var toggleSidebarMobile = function toggleSidebarMobile() {
54836
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54837
- dispatch(setSidebar(val));
54838
- };
54839
-
54840
- var isDistrict = window.location.host.includes("-district");
54841
- return React.createElement(CHeader, {
54842
- withSubheader: true,
54843
- className: "d-flex align-items-center justify-content-end"
54844
- }, React.createElement(CToggler, {
54845
- inHeader: true,
54846
- className: "ml-md-3 d-lg-none",
54847
- onClick: toggleSidebarMobile
54848
- }), React.createElement(CHeaderBrand, {
54849
- className: "mx-auto flex-grow-1 d-lg-none",
54850
- to: "/"
54851
- }, React.createElement("img", {
54852
- src: getStaticFileUrl(Images.LOGO_HEADER),
54853
- className: styles["header-logo"]
54854
- })), React.createElement(CHeaderNav, {
54855
- className: "pr-3"
54856
- }, React.createElement(TheLanguageDropdown, null), React.createElement("a", {
54857
- className: "mr-3",
54858
- style: {
54859
- color: '#000'
54860
- },
54861
- href: '/privacy-policy',
54862
- target: "blank"
54863
- }, t("privacy_policy")), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, {
54864
- onToggleModel: onToggleModel
54865
- })));
54866
- };
54867
-
54868
- var ModelSelectRole = function ModelSelectRole(_ref) {
54869
- var _handleUserRole;
54870
-
54871
- var open = _ref.open,
54872
- onToggleModel = _ref.onToggleModel;
54873
- var dispatch = useDispatch();
54874
-
54875
- var _useTranslation = useTranslation(),
54876
- t = _useTranslation.t;
54877
-
54878
- var history = useHistory();
54879
- var pathname = window.location.pathname;
54880
- var user = useSelector(function (state) {
54881
- return state.common.user;
54882
- });
54883
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54884
-
54885
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54886
- dispatch(setLoading(true));
54887
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54888
- dispatch(setUser(_extends({}, user, {
54889
- roles: roleSelect
54890
- })));
54891
- localStorage.setItem("ROLES", roleSelect.toString());
54892
- onToggleModel();
54893
-
54894
- if (roles.includes("Parent")) {
54895
- history.push("/parent");
54896
- } else if (roles.includes("Admin")) {
54897
- history.push("/admin/home");
54898
- } else {
54899
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54900
- }
54901
- };
54902
-
54903
- return React.createElement(Modal, {
54904
- isOpen: open,
54905
- toggle: function toggle() {
54906
- return onToggleModel();
54907
- },
54908
- className: "" + styles["model-switch-roles"],
54909
- centered: true
54910
- }, React.createElement("p", {
54911
- className: "" + styles["title"]
54912
- }, 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) {
54913
- return React.createElement("p", {
54914
- key: r,
54915
- 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" : ""],
54916
- onClick: function onClick() {
54917
- return handleSelectUserRoles([r]);
54918
- }
54919
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54920
- })));
54921
- };
54922
-
54923
- var TheLayout = function TheLayout(_ref) {
54924
- var routes = _ref.routes,
54925
- navigation = _ref.navigation;
54926
- var history = useHistory();
54927
- var dispatch = useDispatch();
54928
- var user = useSelector(function (state) {
54929
- return state.common.user;
54930
- });
54931
- var language = useSelector(function (state) {
54932
- return state.common.language;
54933
- });
54934
-
54935
- var _useState = useState(false),
54936
- openModelSelectRole = _useState[0],
54937
- setOpenModelSelectRole = _useState[1];
54938
-
54939
- var _useTranslation = useTranslation(),
54940
- t = _useTranslation.t;
54941
-
54942
- var location = useLocation();
54943
- var isNotification = location.pathname.includes("notifications");
54944
- var isDistrict = window.location.host.includes("-district");
54945
-
54946
- var handleToggleModel = function handleToggleModel() {
54947
- setOpenModelSelectRole(!openModelSelectRole);
54948
- };
54949
-
54950
- var authRoutes = useMemo(function () {
54951
- return routes.filter(function (route) {
54952
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54953
- }).filter(function (route) {
54954
- return !!route.isDistrict === isDistrict;
54955
- });
54956
- }, [user, language]);
54957
- var authNavigations = useMemo(function () {
54958
- return navigation.map(function (item) {
54959
- var _item$_children, _item$_children2;
54960
-
54961
- return _extends({}, item, {
54962
- name: t(item.name),
54963
- _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) {
54964
- return _extends({}, x, {
54965
- name: t(x.name)
54966
- });
54967
- }) : undefined
54968
- });
54969
- }).filter(function (nav) {
54970
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54971
- }).filter(function (nav) {
54972
- return !!nav.isDistrict === isDistrict;
54973
- });
54974
- }, [user, language]);
54975
-
54976
- var getInformationSetting = function getInformationSetting() {
54977
- try {
54978
- var _temp2 = _catch(function () {
54979
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54980
- dispatch(setSandboxMode(res.data.isSandboxMode));
54981
- });
54982
- }, function (err) {
54983
- console.error(err);
54984
- });
54985
-
54986
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54987
- } catch (e) {
54988
- return Promise.reject(e);
54989
- }
54990
- };
54991
-
54992
- useEffect(function () {
54993
- checkAuthentication();
54994
- }, []);
54995
- useEffect(function () {
54996
- getInformationSetting();
54997
- }, [location.pathname]);
54998
-
54999
- var checkAuthentication = function checkAuthentication() {
55000
- try {
55001
- var _temp4 = _catch(function () {
55002
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
55003
- tokenStatus ? loadInfo() : resetAuth();
55004
- });
55005
- }, function () {
55006
- resetAuth();
55007
- });
55008
-
55009
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
55010
- } catch (e) {
55011
- return Promise.reject(e);
55012
- }
55013
- };
55014
-
55015
- var loadInfo = function loadInfo() {
55016
- try {
55017
- var _temp6 = _catch(function () {
55018
- return Promise.resolve(getInfo()).then(function (info) {
55019
- var _info$data, _info$data$roles;
55020
-
55021
- 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"))) {
55022
- resetAuth();
55023
- }
55024
-
55025
- dispatch(setUser(info.data));
55026
- });
55027
- }, function () {
55028
- resetAuth();
55029
- });
55030
-
55031
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
55032
- } catch (e) {
55033
- return Promise.reject(e);
55034
- }
55035
- };
55036
-
55037
- var resetAuth = function resetAuth() {
55038
- localStorage.removeItem(ACCESS_TOKEN);
55039
- sessionStorage.removeItem(ACCESS_TOKEN);
55040
- localStorage.removeItem("ROLES");
55041
- history.push("/");
55042
- };
55043
-
55044
- if (!user) {
55045
- return React.createElement(Loading, null);
55046
- }
55047
-
55048
- return React.createElement("div", {
55049
- className: "c-app c-default-layout"
55050
- }, !isNotification && React.createElement(TheSidebar, {
55051
- navigation: authNavigations
55052
- }), React.createElement("div", {
55053
- className: "c-wrapper"
55054
- }, !isNotification && React.createElement(TheHeader, {
55055
- onToggleModel: handleToggleModel
55056
- }), React.createElement("div", {
55057
- className: "c-body bg-white"
55058
- }, React.createElement(TheContent$1, {
55059
- routes: authRoutes
55060
- }))), React.createElement(ModelSelectRole, {
55061
- open: openModelSelectRole,
55062
- onToggleModel: handleToggleModel
55063
- }));
55064
- };
55065
-
55066
55066
  var amplitudeClient = amplitude;
55067
55067
 
55068
55068
  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, getAccessToken, 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, setEnableMarioAi, 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 };