touchstudy-core 0.1.166 → 0.1.168

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.
Files changed (30) hide show
  1. package/dist/components/Chats/components/TinyChatEditor.d.ts +3 -1
  2. package/dist/components/Dialogs/CommonDialog.d.ts +3 -1
  3. package/dist/components/Dialogs/index.d.ts +2 -1
  4. package/dist/components/Selectors/QuestionCountSelector.d.ts +0 -1
  5. package/dist/containers/ExamResult/components/MyAnswer/components/SelectQuestion.d.ts +1 -1
  6. package/dist/containers/ExamResult/configs/types.d.ts +2 -0
  7. package/dist/containers/ExamResult/hooks/useExamResultData.d.ts +1 -0
  8. package/dist/containers/PreparedTextbook/configs/constants.d.ts +0 -1
  9. package/dist/containers/StudentInfoDrawer/apiClients/courseService.d.ts +2 -1
  10. package/dist/containers/StudentInfoDrawer/components/Attendance/AttedanceFormDialog.d.ts +13 -0
  11. package/dist/containers/StudentInfoDrawer/components/Attendance/AttendanceCourseTable.d.ts +2 -3
  12. package/dist/containers/StudentInfoDrawer/components/Attendance/AttendanceFormBody.d.ts +11 -0
  13. package/dist/containers/StudentInfoDrawer/components/Attendance/AttendanceFormDialog.d.ts +13 -0
  14. package/dist/containers/StudentInfoDrawer/components/Attendance/CourseAttendanceItem.d.ts +2 -3
  15. package/dist/containers/StudentInfoDrawer/components/Attendance/DrawerAttendanceTab.d.ts +5 -1
  16. package/dist/containers/StudentInfoDrawer/components/Attendance/LessonTooltip.d.ts +2 -1
  17. package/dist/containers/StudentInfoDrawer/configs/fns.d.ts +2 -2
  18. package/dist/containers/StudentInfoDrawer/configs/interfaces.d.ts +3 -3
  19. package/dist/containers/StudentInfoDrawer/configs/types.d.ts +16 -2
  20. package/dist/containers/StudentInfoDrawer/hooks/useDrawerAttendanceTab.d.ts +6 -3
  21. package/dist/containers/StudentInfoDrawer/index.d.ts +5 -1
  22. package/dist/index.css +586 -0
  23. package/dist/index.js +1535 -1251
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.modern.js +1527 -1247
  26. package/dist/index.modern.js.map +1 -1
  27. package/dist/utils/functions/isRealTabletOrMobileDevice.d.ts +1 -0
  28. package/dist/utils/hooks/index.d.ts +2 -1
  29. package/dist/utils/hooks/useKeyboardVisible.d.ts +6 -0
  30. package/package.json +1 -1
@@ -13,34 +13,38 @@ export { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
13
13
  import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
14
14
  export { DemoContainer } from '@mui/x-date-pickers/internals/demo';
15
15
  import React__default, { useState, useEffect, Fragment as Fragment$1, useRef, useCallback, useMemo, memo, createElement } from 'react';
16
- import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, useMediaQuery, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Skeleton, Tabs, Tab, Divider, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, TableContainer, Switch, RadioGroup, Radio, FormControl, InputLabel, Chip, CardMedia as CardMedia$1, MenuList } from '@mui/material';
16
+ import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, useMediaQuery, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Divider, Skeleton, Tabs, Tab, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, TableContainer, Switch, RadioGroup, Radio, FormControl, InputLabel, Chip, CardMedia as CardMedia$1, MenuList } from '@mui/material';
17
17
  import moment from 'moment';
18
18
  export { default as moment } from 'moment';
19
19
  import { FaSave, FaCaretDown, FaTimes, FaTrash, FaSortUp, FaSortDown, FaPlusCircle, FaCalendar, FaUser, FaBookOpen, FaPlus, FaUpload, FaEye as FaEye$1, FaPencilAlt, FaCheckCircle, FaShare, FaExchangeAlt } from 'react-icons/fa';
20
- import { IoMdArrowBack, IoIosAlert, IoIosArrowDown, IoIosSearch, IoIosArrowUp, IoIosAdd, IoMdAdd } from 'react-icons/io';
20
+ import { IoMdArrowBack, IoMdSync, IoIosAlert, IoIosArrowDown, IoIosSearch, IoIosArrowUp, IoIosAdd, IoMdAdd } from 'react-icons/io';
21
21
  import { IoClose, IoSearch, IoCloseOutline, IoTime, IoChevronUp, IoChevronDown, IoChatbubbleEllipsesSharp, IoPrint, IoCheckmarkCircle, IoChevronUpOutline, IoChevronDownOutline, IoReceiptSharp, IoBook, IoWarning, IoCalendarClear, IoPerson, IoInformationCircle, IoTrash, IoAddCircle, IoCloseCircle, IoLogOut } from 'react-icons/io5';
22
- import { useSelector, useDispatch } from 'react-redux';
22
+ import MButton from '@mui/material/Button';
23
+ import DialogTitle$1 from '@mui/material/DialogTitle';
24
+ import DialogContent$1 from '@mui/material/DialogContent';
25
+ import DialogActions$1 from '@mui/material/DialogActions';
26
+ import IconButton$1 from '@mui/material/IconButton';
27
+ import Typography$1 from '@mui/material/Typography';
28
+ import { Formik, Form, Field, FieldArray } from 'formik';
23
29
  import Select, { components } from 'react-select';
24
30
  import CreatableSelect from 'react-select/creatable';
25
- import axios from 'axios';
26
31
  import _$8 from 'lodash';
32
+ import { useSelector, useDispatch } from 'react-redux';
33
+ import axios from 'axios';
27
34
  import { useGoogleLogout, GoogleLogin } from '@leecheuk/react-google-login';
28
35
  import 'moment/locale/ko.js';
29
36
  import 'moment/locale/en-au.js';
30
37
  import { CellMeasurerCache, CellMeasurer, AutoSizer, List as List$1, MultiGrid } from 'react-virtualized';
31
38
  export { CellMeasurerCache, MultiGrid } from 'react-virtualized';
32
- import { Formik, Form, Field, FieldArray } from 'formik';
33
39
  import tinymce from 'tinymce';
34
40
  import '@wiris/mathtype-tinymce6';
35
41
  import { Editor } from '@tinymce/tinymce-react';
36
42
  import { alpha } from '@mui/material/styles';
37
43
  import Grid$1 from '@mui/material/Grid';
38
- import Typography$1 from '@mui/material/Typography';
39
44
  import Card from '@mui/material/Card';
40
45
  import CardActions from '@mui/material/CardActions';
41
46
  import CardContent from '@mui/material/CardContent';
42
47
  import CardMedia from '@mui/material/CardMedia';
43
- import MButton from '@mui/material/Button';
44
48
  import { object, string, number, date as date$2, array, mixed } from 'yup';
45
49
  import { blue, yellow as yellow$1 } from '@mui/material/colors';
46
50
  import { GoogleReCaptcha, GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';
@@ -55,10 +59,7 @@ import Box$1 from '@mui/material/Box';
55
59
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
56
60
  import { DatePicker } from '@mui/x-date-pickers/DatePicker';
57
61
  import { FaCirclePlus, FaTrashCan, FaEye, FaRotateRight, FaPencil } from 'react-icons/fa6';
58
- import DialogTitle$1 from '@mui/material/DialogTitle';
59
- import DialogContent$1 from '@mui/material/DialogContent';
60
- import DialogActions$1 from '@mui/material/DialogActions';
61
- import IconButton$1 from '@mui/material/IconButton';
62
+ import { CgArrowsExchange } from 'react-icons/cg';
62
63
  import html2pdf from 'html2pdf.js';
63
64
  import Slider from 'react-slick';
64
65
  import { GrNext, GrPrevious } from 'react-icons/gr';
@@ -1507,6 +1508,11 @@ var removedteacherfromclass = "교사 수업 제거";
1507
1508
  var addedstudenttoclass = "학생 수업 추가";
1508
1509
  var removedstudentfromclass = "학생 수업 제거";
1509
1510
  var hidden = "숨겨진";
1511
+ var current_status = "현재 상태";
1512
+ var next_status = "다음 상태";
1513
+ var arrival_time = "도착 시간";
1514
+ var current_arrival_time = "현재 도착 시간";
1515
+ var uppdate_attendance = "출석 현황 수정";
1510
1516
  var lang_ko = {
1511
1517
  problem_solving: problem_solving,
1512
1518
  my_story: my_story,
@@ -2647,7 +2653,12 @@ var lang_ko = {
2647
2653
  removedteacherfromclass: removedteacherfromclass,
2648
2654
  addedstudenttoclass: addedstudenttoclass,
2649
2655
  removedstudentfromclass: removedstudentfromclass,
2650
- hidden: hidden
2656
+ hidden: hidden,
2657
+ current_status: current_status,
2658
+ next_status: next_status,
2659
+ arrival_time: arrival_time,
2660
+ current_arrival_time: current_arrival_time,
2661
+ uppdate_attendance: uppdate_attendance
2651
2662
  };
2652
2663
 
2653
2664
  var problem_solving$1 = "Problem Solving";
@@ -3811,6 +3822,11 @@ var removedteacherfromclass$1 = "Removed teacher from class";
3811
3822
  var addedstudenttoclass$1 = "Added student to class";
3812
3823
  var removedstudentfromclass$1 = "Removed student from class";
3813
3824
  var hidden$1 = "Hidden";
3825
+ var current_status$1 = "Current status";
3826
+ var next_status$1 = "Next status";
3827
+ var arrival_time$1 = "Arrival time";
3828
+ var current_arrival_time$1 = "Current arrival time";
3829
+ var uppdate_attendance$1 = "Update attendance";
3814
3830
  var lang_en = {
3815
3831
  problem_solving: problem_solving$1,
3816
3832
  my_story: my_story$1,
@@ -4953,7 +4969,12 @@ var lang_en = {
4953
4969
  removedteacherfromclass: removedteacherfromclass$1,
4954
4970
  addedstudenttoclass: addedstudenttoclass$1,
4955
4971
  removedstudentfromclass: removedstudentfromclass$1,
4956
- hidden: hidden$1
4972
+ hidden: hidden$1,
4973
+ current_status: current_status$1,
4974
+ next_status: next_status$1,
4975
+ arrival_time: arrival_time$1,
4976
+ current_arrival_time: current_arrival_time$1,
4977
+ uppdate_attendance: uppdate_attendance$1
4957
4978
  };
4958
4979
 
4959
4980
  i18n.use(initReactI18next).init({
@@ -5545,6 +5566,31 @@ var NotFound = function NotFound() {
5545
5566
  }, t('the_page_you_are_looking_for_was_not_found')), React__default.createElement("div", null))));
5546
5567
  };
5547
5568
 
5569
+ function _extends() {
5570
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
5571
+ for (var e = 1; e < arguments.length; e++) {
5572
+ var t = arguments[e];
5573
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
5574
+ }
5575
+ return n;
5576
+ }, _extends.apply(null, arguments);
5577
+ }
5578
+ function _objectDestructuringEmpty(t) {
5579
+ if (null == t) throw new TypeError("Cannot destructure " + t);
5580
+ }
5581
+ function _objectWithoutPropertiesLoose(r, e) {
5582
+ if (null == r) return {};
5583
+ var t = {};
5584
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
5585
+ if (-1 !== e.indexOf(n)) continue;
5586
+ t[n] = r[n];
5587
+ }
5588
+ return t;
5589
+ }
5590
+ function _taggedTemplateLiteralLoose(e, t) {
5591
+ return t || (t = e.slice(0)), e.raw = t, e;
5592
+ }
5593
+
5548
5594
  var CommonDialog = function CommonDialog(_ref) {
5549
5595
  var open = _ref.open,
5550
5596
  children = _ref.children,
@@ -5555,6 +5601,9 @@ var CommonDialog = function CommonDialog(_ref) {
5555
5601
  isShowHeader = _ref$isShowHeader === void 0 ? true : _ref$isShowHeader,
5556
5602
  titleClassName = _ref.titleClassName,
5557
5603
  minWidth = _ref.minWidth,
5604
+ _ref$zIndex = _ref.zIndex,
5605
+ zIndex = _ref$zIndex === void 0 ? 1102 : _ref$zIndex,
5606
+ paperSx = _ref.paperSx,
5558
5607
  onClose = _ref.onClose;
5559
5608
  return React__default.createElement(Dialog, {
5560
5609
  open: open,
@@ -5563,13 +5612,13 @@ var CommonDialog = function CommonDialog(_ref) {
5563
5612
  fullWidth: true,
5564
5613
  scroll: "body",
5565
5614
  sx: {
5566
- zIndex: 1102
5615
+ zIndex: zIndex
5567
5616
  },
5568
5617
  PaperProps: {
5569
- sx: {
5570
- overflowY: "unset",
5618
+ sx: _extends({
5619
+ overflowY: "auto",
5571
5620
  minWidth: minWidth
5572
- }
5621
+ }, paperSx)
5573
5622
  }
5574
5623
  }, isShowHeader ? React__default.createElement(Fragment$1, null, React__default.createElement(DialogTitle, {
5575
5624
  className: "border border-start-0 border-end-0 border-top-0 border-1 " + titleClassName,
@@ -5594,31 +5643,6 @@ var CommonDialog = function CommonDialog(_ref) {
5594
5643
  }, title)), children);
5595
5644
  };
5596
5645
 
5597
- function _extends() {
5598
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
5599
- for (var e = 1; e < arguments.length; e++) {
5600
- var t = arguments[e];
5601
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
5602
- }
5603
- return n;
5604
- }, _extends.apply(null, arguments);
5605
- }
5606
- function _objectDestructuringEmpty(t) {
5607
- if (null == t) throw new TypeError("Cannot destructure " + t);
5608
- }
5609
- function _objectWithoutPropertiesLoose(r, e) {
5610
- if (null == r) return {};
5611
- var t = {};
5612
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
5613
- if (-1 !== e.indexOf(n)) continue;
5614
- t[n] = r[n];
5615
- }
5616
- return t;
5617
- }
5618
- function _taggedTemplateLiteralLoose(e, t) {
5619
- return t || (t = e.slice(0)), e.raw = t, e;
5620
- }
5621
-
5622
5646
  var confirmDialogTextStyle = {
5623
5647
  color: "#363634",
5624
5648
  fontSize: 16,
@@ -5772,163 +5796,43 @@ var ConfirmDeleteDialog = function ConfirmDeleteDialog(props) {
5772
5796
  return React__default.createElement(ConfirmDialog, Object.assign({}, ConfirmDeleteDialogDefaultProps, props));
5773
5797
  };
5774
5798
 
5775
- var _templateObject;
5776
- var BorderedTextField = styled(TextField)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n & .MuiOutlinedInput-root {\n &.Mui-focused fieldset {\n border-width: 1px;\n border-color: ", ";\n }\n }\n & .MuiOutlinedInput-root:hover {\n fieldset {\n border-width: 1px;\n border-color: ", ";\n }\n }\n"])), styles.dark, styles.less_dark);
5777
- var InputText = function InputText(props) {
5778
- return React__default.createElement(BorderedTextField, Object.assign({
5779
- sx: {
5780
- "& input": {
5781
- py: "7.5px",
5782
- px: "12px"
5783
- },
5784
- "& > div": {
5785
- borderColor: "#97A1AF",
5786
- borderRadius: "4px"
5787
- }
5788
- }
5789
- }, props));
5790
- };
5791
-
5792
- var PassCodeDialog = function PassCodeDialog(_ref) {
5793
- var open = _ref.open,
5794
- onClose = _ref.onClose,
5795
- onSubmit = _ref.onSubmit,
5796
- academyDomain = _ref.academyDomain;
5797
- var _useTranslation = useTranslation(),
5798
- t = _useTranslation.t;
5799
- var _useState = useState(""),
5800
- passCode = _useState[0],
5801
- setPassCode = _useState[1];
5802
- var handleClose = function handleClose(event, reason) {
5803
- onClose(event, reason);
5804
- };
5805
- var handleSubmit = function handleSubmit() {
5806
- try {
5807
- var data = {
5808
- code: passCode,
5809
- academyDomain: academyDomain
5810
- };
5811
- return Promise.resolve(onSubmit(data, handleClose)).then(function () {});
5812
- } catch (e) {
5813
- return Promise.reject(e);
5814
- }
5815
- };
5816
- var handleChangePassCode = function handleChangePassCode(e) {
5817
- setPassCode(e.target.value);
5818
- };
5819
- var theme = useTheme();
5820
- return React__default.createElement(CommonDialog, {
5821
- open: open,
5822
- onClose: handleClose,
5823
- size: "xs",
5824
- title: t("join_an_academy")
5825
- }, React__default.createElement(DialogContent, {
5826
- sx: {
5827
- overflowY: "unset"
5828
- }
5829
- }, React__default.createElement(Stack, {
5830
- direction: "column",
5831
- spacing: 2,
5832
- zIndex: 1,
5833
- position: "relative"
5834
- }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
5835
- className: "fw-medium mb-1"
5836
- }, t("pass_code"), React__default.createElement("span", {
5837
- className: "text-danger"
5838
- }, "*")), React__default.createElement(InputText, {
5839
- id: "pass-code",
5840
- placeholder: t("enter_pass_code"),
5841
- value: passCode,
5842
- onChange: handleChangePassCode
5843
- })))), React__default.createElement(DialogActions, {
5844
- className: ""
5845
- }, React__default.createElement(Button, {
5846
- variant: "contained",
5847
- sx: {
5848
- bgcolor: theme.palette.grey[700]
5849
- },
5850
- onClick: handleClose
5851
- }, t("cancel")), React__default.createElement(Button, {
5852
- variant: "contained",
5853
- onClick: handleSubmit,
5854
- disabled: !passCode.trim().length
5855
- }, t("confirmation"))));
5856
- };
5857
-
5858
- var loadingStyle = {
5859
- minWidth: "100vw",
5860
- minHeight: "100vh",
5861
- position: "fixed",
5862
- top: 0,
5863
- left: 0,
5864
- zIndex: 999999999,
5865
- backgroundColor: "rgba(0, 0, 0, 0.4)",
5866
- display: "flex",
5867
- justifyContent: "center",
5868
- alignItems: "center"
5869
- };
5870
- var Loading = function Loading() {
5871
- var isLoading = useSelector(function (state) {
5872
- return state.common.isLoading;
5873
- });
5874
- return isLoading ? React__default.createElement("div", {
5875
- style: loadingStyle
5876
- }, React__default.createElement("div", {
5877
- className: "spinner-border text-secondary",
5878
- role: "status"
5879
- }, React__default.createElement("span", {
5880
- className: "sr-only"
5881
- }))) : null;
5799
+ var iconCloseDialog = function iconCloseDialog(_ref) {
5800
+ var _ref$width = _ref.width,
5801
+ width = _ref$width === void 0 ? "24" : _ref$width,
5802
+ _ref$height = _ref.height,
5803
+ height = _ref$height === void 0 ? "25" : _ref$height,
5804
+ color = _ref.color;
5805
+ return React__default.createElement("svg", {
5806
+ width: width,
5807
+ height: height,
5808
+ viewBox: "0 0 24 25",
5809
+ fill: color,
5810
+ xmlns: "http://www.w3.org/2000/svg"
5811
+ }, React__default.createElement("path", {
5812
+ d: "M13.5909 12.5L18.0441 8.04687C18.2554 7.8359 18.3743 7.54962 18.3745 7.25099C18.3748 6.95237 18.2564 6.66587 18.0455 6.45453C17.8345 6.24319 17.5482 6.12431 17.2496 6.12404C16.951 6.12378 16.6645 6.24215 16.4531 6.45312L12 10.9062L7.54687 6.45312C7.33553 6.24178 7.04888 6.12305 6.75 6.12305C6.45111 6.12305 6.16447 6.24178 5.95312 6.45312C5.74178 6.66447 5.62305 6.95111 5.62305 7.25C5.62305 7.54888 5.74178 7.83553 5.95312 8.04687L10.4062 12.5L5.95312 16.9531C5.74178 17.1645 5.62305 17.4511 5.62305 17.75C5.62305 18.0489 5.74178 18.3355 5.95312 18.5469C6.16447 18.7582 6.45111 18.8769 6.75 18.8769C7.04888 18.8769 7.33553 18.7582 7.54687 18.5469L12 14.0937L16.4531 18.5469C16.6645 18.7582 16.9511 18.8769 17.25 18.8769C17.5489 18.8769 17.8355 18.7582 18.0469 18.5469C18.2582 18.3355 18.3769 18.0489 18.3769 17.75C18.3769 17.4511 18.2582 17.1645 18.0469 16.9531L13.5909 12.5Z",
5813
+ fill: "#202B37"
5814
+ }));
5882
5815
  };
5883
5816
 
5884
- var loadingStyle$1 = {
5885
- minWidth: "100vw",
5886
- minHeight: "100vh",
5887
- position: "fixed",
5888
- top: 0,
5889
- left: 0,
5890
- zIndex: 999999999,
5891
- backgroundColor: "rgba(0, 0, 0, 0.4)",
5892
- display: "flex",
5893
- justifyContent: "center",
5894
- alignItems: "center"
5895
- };
5896
- var LoadingComponent = function LoadingComponent(_ref) {
5897
- var isLoading = _ref.isLoading,
5898
- children = _ref.children,
5899
- _ref$spinClassName = _ref.spinClassName,
5900
- spinClassName = _ref$spinClassName === void 0 ? "text-secondary" : _ref$spinClassName,
5901
- _ref$className = _ref.className,
5902
- className = _ref$className === void 0 ? "" : _ref$className;
5903
- return isLoading ? React__default.createElement("div", {
5904
- style: loadingStyle$1
5905
- }, React__default.createElement(Stack, {
5906
- direction: "column",
5907
- justifyContent: "center",
5908
- alignItems: "center",
5909
- className: className
5910
- }, React__default.createElement("div", {
5911
- className: "spinner-border " + spinClassName,
5912
- role: "status"
5913
- }, React__default.createElement("span", {
5914
- className: "sr-only"
5915
- })), React__default.createElement("div", null, children))) : null;
5817
+ var iconWarning = function iconWarning(_ref) {
5818
+ var _ref$width = _ref.width,
5819
+ width = _ref$width === void 0 ? "17" : _ref$width,
5820
+ _ref$height = _ref.height,
5821
+ height = _ref$height === void 0 ? "16" : _ref$height,
5822
+ color = _ref.color;
5823
+ return React__default.createElement("svg", {
5824
+ width: width,
5825
+ height: height,
5826
+ viewBox: "0 0 17 16",
5827
+ fill: color,
5828
+ xmlns: "http://www.w3.org/2000/svg"
5829
+ }, React__default.createElement("path", {
5830
+ d: "M14.5335 12.4712L9.20754 2.58062C8.83004 1.87937 7.82441 1.87937 7.4466 2.58062L2.12097 12.4712C2.03901 12.6235 1.99792 12.7944 2.00171 12.9672C2.00549 13.1401 2.05404 13.309 2.14259 13.4575C2.23115 13.606 2.3567 13.729 2.50698 13.8145C2.65726 13.9 2.82714 13.9451 3.00004 13.9453H13.6529C13.8259 13.9453 13.996 13.9005 14.1465 13.8151C14.2969 13.7297 14.4227 13.6067 14.5115 13.4582C14.6002 13.3096 14.6489 13.1406 14.6527 12.9676C14.6566 12.7946 14.6155 12.6236 14.5335 12.4712ZM8.32722 12.4141C8.20361 12.4141 8.08277 12.3774 7.97999 12.3087C7.87721 12.2401 7.7971 12.1424 7.7498 12.0282C7.7025 11.914 7.69012 11.7884 7.71423 11.6671C7.73835 11.5459 7.79787 11.4345 7.88528 11.3471C7.97269 11.2597 8.08405 11.2002 8.20529 11.1761C8.32653 11.152 8.4522 11.1643 8.5664 11.2116C8.6806 11.2589 8.77822 11.3391 8.84689 11.4418C8.91557 11.5446 8.95222 11.6654 8.95222 11.7891C8.95222 11.8711 8.93606 11.9524 8.90465 12.0282C8.87324 12.1041 8.8272 12.173 8.76917 12.231C8.71113 12.289 8.64223 12.3351 8.5664 12.3665C8.49057 12.3979 8.4093 12.4141 8.32722 12.4141ZM9.00597 6.12813L8.8266 9.94063C8.8266 10.0732 8.77392 10.2004 8.68015 10.2942C8.58638 10.3879 8.45921 10.4406 8.3266 10.4406C8.19399 10.4406 8.06681 10.3879 7.97305 10.2942C7.87928 10.2004 7.8266 10.0732 7.8266 9.94063L7.64722 6.12969C7.64319 6.03862 7.65754 5.94768 7.6894 5.86227C7.72127 5.77687 7.77 5.69875 7.8327 5.63259C7.8954 5.56642 7.97078 5.51355 8.05434 5.47713C8.13791 5.44072 8.22795 5.4215 8.3191 5.42063H8.32566C8.41743 5.42058 8.50826 5.43912 8.59267 5.47515C8.67708 5.51117 8.75331 5.56392 8.81677 5.63021C8.88023 5.6965 8.92961 5.77497 8.96191 5.86087C8.99421 5.94676 9.00878 6.03832 9.00472 6.13L9.00597 6.12813Z",
5831
+ fill: "#DB4D4D"
5832
+ }));
5916
5833
  };
5917
5834
 
5918
- var CustomPagination = function CustomPagination(_ref) {
5919
- var currentPage = _ref.currentPage,
5920
- totalPage = _ref.totalPage,
5921
- onChangePage = _ref.onChangePage;
5922
- var handleChangePage = function handleChangePage(_, page) {
5923
- onChangePage(page);
5924
- };
5925
- return React__default.createElement(Pagination, {
5926
- className: "w-fit",
5927
- count: totalPage,
5928
- page: currentPage,
5929
- onChange: handleChangePage
5930
- });
5931
- };
5835
+ var styles$1 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","titleBox":"_2mYOt","title":"_1H9qR","point":"_2rTfh","buttonGroup":"_W5dic","btnFeedback":"_FmMYN","btnTerminate":"_3kv6J","myanswer":"_1jZV7","titleMyAnswer1":"_1aYD1","titleMyAnswer2":"_2Oc4x","contentMyAnswer":"__LRYW","myAnswerItem":"_1U-Kx","time":"_2PXiz","timeCol":"_1zcfJ","answer-response":"_18ZNf","answer-response-0":"_3nbRi","answer-response-1":"_3NEHk","answer-response-2":"_Et0ih","answer-response-3":"_5Vc3v","answer-response-4":"_2SMBR","overall-response-1":"_1ImE5","overall-response-2":"_1oVKC","overall-response-3":"_2wXCw","answerCorrect":"_gE8qM","answerIncorrect":"_3kRqE","answerNograss":"_22Pi3","answerEasy":"_1C7aw","answerDiscrimination":"__YGYX","answerTrap":"_3AkGb","answerNoTime":"_3l-yC","questionOrder":"_2mK7U","myTimeLabel":"_3ZOZs","myPoolTime":"_1Gajr","topTimeLabel":"_62PzE","topTime":"_3HUx1","meanTimeLabel":"_Yu8Oq","meanTime":"_18kZu","compareChart":"_2MTOH","prevChart":"_JoHQL","chart":"_29iCQ","nextChart":"_3hjxI","titleChart":"_2Z42z","titleCompareGrass":"_34RN_","tableCompareGrass":"_2lzlQ","thcolumn1":"_2MSIH","tdcolumn1":"_1I06v","tdcolumn3":"_VpMQ5","classification":"_3t41M","wrapperProblem":"_2vh8v","titleProblem":"_3YfGm","titleProblemClose":"_34388","titleTrickyProblem":"_INxbh","wrongQuestions":"_35DcB","question":"_10SAW","assignedQuestions":"_oEGQ_","wrapperContent":"_zhZ1O","content":"_NGHD4","contentColumn1":"_v5SKe","span1":"_28SHT","span2":"_1raLd","contentColumn2":"_-xJ34","duration":"_1YGAg","topDuration":"_3DiyY","overallCorrectRate":"_DnkyV","answer":"_29MTE","contentVulnerable":"_3x1PG","wrappContentProblem":"_2saM2","contentProblem":"_1hTJx","labelProblem":"_3BXO9","name":"_1cUZW","percent":"_3CLEc","slider":"_3LCEY","track":"_3I8mi","noData":"_1oZ-s","loading":"_Nm201","table-responsive":"_3zQL-","form-label":"_3Vpmh","form-control":"_DafKE","form-label-dialog":"_3NjaH","btn-cancel":"_sLxwL","btn-register":"_4ZKQY","pdfBtnBox":"_2zUJf","pdfBtn":"_y_Cr7","form-select":"_HCIxD","loader":"_3aDIU","dot":"_JGCIL","bounce":"_3M62i"};
5932
5836
 
5933
5837
  var DropdownIndicator = function DropdownIndicator(props) {
5934
5838
  return React__default.createElement(components.DropdownIndicator, Object.assign({}, props), React__default.createElement(FaCaretDown, {
@@ -6095,7 +5999,6 @@ var CustomSelect = function CustomSelect(_ref) {
6095
5999
  value: !isDefault ? initialValues != null ? initialValues : null : undefined,
6096
6000
  defaultValue: isDefault ? initialValues : undefined,
6097
6001
  menuPlacement: scrollBottom ? "top" : "auto",
6098
- isMulti: isMulti,
6099
6002
  components: {
6100
6003
  IndicatorSeparator: function IndicatorSeparator() {
6101
6004
  return null;
@@ -6165,116 +6068,6 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
6165
6068
  }, rest));
6166
6069
  };
6167
6070
 
6168
- var SCORE_OPTIONS = Array.from({
6169
- length: 10
6170
- }, function (_, i) {
6171
- return i + 1;
6172
- });
6173
- var QUESTION_OPTIONS = Array.from({
6174
- length: 10
6175
- }, function (_, i) {
6176
- return i + 1;
6177
- });
6178
- var ANSWER_OPTIONS = Array.from({
6179
- length: 9
6180
- }, function (_, i) {
6181
- return i + 2;
6182
- });
6183
- var DEFAULT_SCORE = 2;
6184
-
6185
- var AnswerCountSelector = function AnswerCountSelector(_ref) {
6186
- var id = _ref.id,
6187
- value = _ref.value,
6188
- onChange = _ref.onChange,
6189
- isDisabled = _ref.isDisabled;
6190
- var _useTranslation = useTranslation(),
6191
- t = _useTranslation.t;
6192
- var answerOptions = ANSWER_OPTIONS.map(function (i) {
6193
- return {
6194
- label: t("number_question", {
6195
- number: i
6196
- }),
6197
- value: i
6198
- };
6199
- });
6200
- return React__default.createElement(CustomSelect, {
6201
- inputId: id,
6202
- value: value,
6203
- options: answerOptions,
6204
- onChange: onChange,
6205
- isDisabled: isDisabled
6206
- });
6207
- };
6208
-
6209
- var ArticleCategorySelector = function ArticleCategorySelector(_ref) {
6210
- var id = _ref.id,
6211
- value = _ref.value,
6212
- optionValue = _ref.optionValue,
6213
- onChange = _ref.onChange,
6214
- isDisabled = _ref.isDisabled,
6215
- options = _ref.options,
6216
- isMulti = _ref.isMulti,
6217
- placeholder = _ref.placeholder,
6218
- rest = _ref.rest;
6219
- var _useTranslation = useTranslation(),
6220
- t = _useTranslation.t;
6221
- return React__default.createElement(CustomSelect, Object.assign({
6222
- isMulti: isMulti,
6223
- inputId: id,
6224
- value: value,
6225
- options: options,
6226
- onChange: onChange,
6227
- isDisabled: isDisabled,
6228
- placeholder: placeholder || t("select_category"),
6229
- optionValue: optionValue
6230
- }, rest));
6231
- };
6232
-
6233
- // A type of promise-like that resolves synchronously and supports only one observer
6234
-
6235
- const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
6236
-
6237
- const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
6238
-
6239
- // Asynchronously call a function and send errors to recovery continuation
6240
- function _catch(body, recover) {
6241
- try {
6242
- var result = body();
6243
- } catch(e) {
6244
- return recover(e);
6245
- }
6246
- if (result && result.then) {
6247
- return result.then(void 0, recover);
6248
- }
6249
- return result;
6250
- }
6251
-
6252
- // Asynchronously await a promise and pass the result to a finally continuation
6253
- function _finallyRethrows(body, finalizer) {
6254
- try {
6255
- var result = body();
6256
- } catch (e) {
6257
- return finalizer(true, e);
6258
- }
6259
- if (result && result.then) {
6260
- return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
6261
- }
6262
- return finalizer(false, result);
6263
- }
6264
-
6265
- // Asynchronously await a promise and invoke a finally continuation that always overrides the result
6266
- function _finally(body, finalizer) {
6267
- try {
6268
- var result = body();
6269
- } catch (e) {
6270
- return finalizer();
6271
- }
6272
- if (result && result.then) {
6273
- return result.then(finalizer, finalizer);
6274
- }
6275
- return finalizer();
6276
- }
6277
-
6278
6071
  var PreparedType;
6279
6072
  (function (PreparedType) {
6280
6073
  PreparedType[PreparedType["csat_past_questions"] = 1] = "csat_past_questions";
@@ -6804,6 +6597,119 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(_, history, superUrls,
6804
6597
  }, [pathname, window.location.search, isAuthPage, email, academyDomain]);
6805
6598
  };
6806
6599
 
6600
+ // A type of promise-like that resolves synchronously and supports only one observer
6601
+
6602
+ const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
6603
+
6604
+ const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
6605
+
6606
+ // Asynchronously call a function and send errors to recovery continuation
6607
+ function _catch(body, recover) {
6608
+ try {
6609
+ var result = body();
6610
+ } catch(e) {
6611
+ return recover(e);
6612
+ }
6613
+ if (result && result.then) {
6614
+ return result.then(void 0, recover);
6615
+ }
6616
+ return result;
6617
+ }
6618
+
6619
+ // Asynchronously await a promise and pass the result to a finally continuation
6620
+ function _finallyRethrows(body, finalizer) {
6621
+ try {
6622
+ var result = body();
6623
+ } catch (e) {
6624
+ return finalizer(true, e);
6625
+ }
6626
+ if (result && result.then) {
6627
+ return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
6628
+ }
6629
+ return finalizer(false, result);
6630
+ }
6631
+
6632
+ // Asynchronously await a promise and invoke a finally continuation that always overrides the result
6633
+ function _finally(body, finalizer) {
6634
+ try {
6635
+ var result = body();
6636
+ } catch (e) {
6637
+ return finalizer();
6638
+ }
6639
+ if (result && result.then) {
6640
+ return result.then(finalizer, finalizer);
6641
+ }
6642
+ return finalizer();
6643
+ }
6644
+
6645
+ var api = axios.create({
6646
+ baseURL: BASE_URL,
6647
+ timeout: 0,
6648
+ headers: {
6649
+ "Content-Type": "application/json"
6650
+ },
6651
+ paramsSerializer: function paramsSerializer(params) {
6652
+ return encodeParams(params);
6653
+ }
6654
+ });
6655
+ var apiUpload = axios.create({
6656
+ baseURL: BASE_URL,
6657
+ timeout: 60000,
6658
+ headers: {
6659
+ "Content-Type": "multipart/form-data"
6660
+ }
6661
+ });
6662
+ [api, apiUpload].forEach(function (i) {
6663
+ return i.interceptors.request.use(function (config) {
6664
+ var token = getAccessToken();
6665
+ var searchParams = new URLSearchParams(window.location.search);
6666
+ var paramLang = searchParams.get('lang');
6667
+ var academyDomainStorage = getAcademyDomain();
6668
+ var isLearningSpace = getLearningSpace();
6669
+ var langStorage = getLanguage();
6670
+ var academyDomain = academyDomainStorage;
6671
+ var language = paramLang || langStorage;
6672
+ if (token) {
6673
+ config.headers.Authorization = "Bearer " + token;
6674
+ localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
6675
+ }
6676
+ if (academyDomain && !isLearningSpace && config.headers[AcademyHeaders] == undefined) config.headers[AcademyHeaders] = "" + academyDomain;
6677
+ if (isLearningSpace && config.headers[NoAcademyHeaders] == undefined) config.headers[NoAcademyHeaders] = "" + isLearningSpace;
6678
+ if (language) config.headers[LanguageHeaders] = "" + language;
6679
+ return config;
6680
+ }, function (error) {
6681
+ return Promise.reject(error);
6682
+ });
6683
+ });
6684
+ [api, apiUpload].forEach(function (i) {
6685
+ return i.interceptors.response.use(function (response) {
6686
+ return response;
6687
+ }, function (error) {
6688
+ var _error$response, _error$response2, _error$response3;
6689
+ console.log({
6690
+ error: error
6691
+ });
6692
+ if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401) {
6693
+ var _window$location = window.location,
6694
+ pathname = _window$location.pathname,
6695
+ search = _window$location.search;
6696
+ var preRedirectUrl = localStorage.getItem(PRE_REDIRECT_URL);
6697
+ var newRedirectUrl = "" + pathname + search;
6698
+ if (!pathname.startsWith("/login")) {
6699
+ if (preRedirectUrl !== newRedirectUrl) {
6700
+ localStorage.setItem(REDIRECT_URL, newRedirectUrl);
6701
+ localStorage.setItem(PRE_REDIRECT_URL, newRedirectUrl);
6702
+ }
6703
+ }
6704
+ }
6705
+ if (((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.status) === 401 || ((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.status) == 403) {
6706
+ localStorage.removeItem(ACCESS_TOKEN);
6707
+ window.location.href = "/login";
6708
+ }
6709
+ return Promise.reject(error);
6710
+ });
6711
+ });
6712
+
6807
6713
  var EXAM_SESSION_URL = BASE_URL + "/api/examSession";
6808
6714
  var getCheckStatusExam = function getCheckStatusExam(examCode) {
6809
6715
  return api.get(EXAM_SESSION_URL + "/" + examCode + "/status");
@@ -6930,6 +6836,29 @@ var useGoogleSignOut = function useGoogleSignOut(props) {
6930
6836
  };
6931
6837
  };
6932
6838
 
6839
+ var useKeyboardVisible = function useKeyboardVisible() {
6840
+ var theme = useTheme();
6841
+ var _useState = useState(false),
6842
+ isKeyboardVisible = _useState[0],
6843
+ setIsKeyboardVisible = _useState[1];
6844
+ var isTabletUp = useMediaQuery(theme.breakpoints.up('lg'));
6845
+ var isFullScreen = !!document.fullscreenElement;
6846
+ var pageSxProps = _extends({}, !isTabletUp && isKeyboardVisible && isFullScreen && {
6847
+ marginBlock: "3rem 50vh"
6848
+ });
6849
+ var handleInputFocus = function handleInputFocus() {
6850
+ setIsKeyboardVisible(true);
6851
+ };
6852
+ var handleInputBlur = function handleInputBlur() {
6853
+ setIsKeyboardVisible(false);
6854
+ };
6855
+ return {
6856
+ pageSxProps: pageSxProps,
6857
+ handleInputFocus: handleInputFocus,
6858
+ handleInputBlur: handleInputBlur
6859
+ };
6860
+ };
6861
+
6933
6862
  var useLanguage = function useLanguage(history, init) {
6934
6863
  if (init === void 0) {
6935
6864
  init = true;
@@ -7571,73 +7500,382 @@ var OrderBy;
7571
7500
  OrderBy["DESC"] = "DESC";
7572
7501
  })(OrderBy || (OrderBy = {}));
7573
7502
 
7574
- var api = axios.create({
7575
- baseURL: BASE_URL,
7576
- timeout: 0,
7577
- headers: {
7578
- "Content-Type": "application/json"
7579
- },
7580
- paramsSerializer: function paramsSerializer(params) {
7581
- return encodeParams(params);
7582
- }
7583
- });
7584
- var apiUpload = axios.create({
7585
- baseURL: BASE_URL,
7586
- timeout: 60000,
7587
- headers: {
7588
- "Content-Type": "multipart/form-data"
7589
- }
7590
- });
7591
- [api, apiUpload].forEach(function (i) {
7592
- return i.interceptors.request.use(function (config) {
7593
- var token = getAccessToken();
7594
- var searchParams = new URLSearchParams(window.location.search);
7595
- var paramLang = searchParams.get('lang');
7596
- var academyDomainStorage = getAcademyDomain();
7597
- var isLearningSpace = getLearningSpace();
7598
- var langStorage = getLanguage();
7599
- var academyDomain = academyDomainStorage;
7600
- var language = paramLang || langStorage;
7601
- if (token) {
7602
- config.headers.Authorization = "Bearer " + token;
7603
- localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
7503
+ function CommonCreateNewQuestionDialog(_ref) {
7504
+ var handleCreateQuestion = _ref.handleCreateQuestion,
7505
+ openDialog = _ref.openDialog,
7506
+ initialValues = _ref.initialValues,
7507
+ onClose = _ref.onClose,
7508
+ options = _ref.options,
7509
+ schema = _ref.schema,
7510
+ labelQuestion = _ref.labelQuestion,
7511
+ nameQuestion = _ref.nameQuestion,
7512
+ labelContent = _ref.labelContent,
7513
+ nameContent = _ref.nameContent;
7514
+ var _useTranslation = useTranslation(),
7515
+ t = _useTranslation.t;
7516
+ var _useKeyboardVisible = useKeyboardVisible(),
7517
+ pageSxProps = _useKeyboardVisible.pageSxProps,
7518
+ handleInputBlur = _useKeyboardVisible.handleInputBlur,
7519
+ handleInputFocus = _useKeyboardVisible.handleInputFocus;
7520
+ return React__default.createElement(Dialog, {
7521
+ onClose: onClose,
7522
+ open: openDialog,
7523
+ scroll: "body",
7524
+ PaperProps: {
7525
+ sx: _extends({
7526
+ minWidth: "363px",
7527
+ overflowY: "auto"
7528
+ }, pageSxProps)
7604
7529
  }
7605
- if (academyDomain && !isLearningSpace && config.headers[AcademyHeaders] == undefined) config.headers[AcademyHeaders] = "" + academyDomain;
7606
- if (isLearningSpace && config.headers[NoAcademyHeaders] == undefined) config.headers[NoAcademyHeaders] = "" + isLearningSpace;
7607
- if (language) config.headers[LanguageHeaders] = "" + language;
7608
- return config;
7609
- }, function (error) {
7610
- return Promise.reject(error);
7611
- });
7612
- });
7613
- [api, apiUpload].forEach(function (i) {
7614
- return i.interceptors.response.use(function (response) {
7615
- return response;
7616
- }, function (error) {
7617
- var _error$response, _error$response2, _error$response3;
7618
- console.log({
7619
- error: error
7620
- });
7621
- if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401) {
7622
- var _window$location = window.location,
7623
- pathname = _window$location.pathname,
7624
- search = _window$location.search;
7625
- var preRedirectUrl = localStorage.getItem(PRE_REDIRECT_URL);
7626
- var newRedirectUrl = "" + pathname + search;
7627
- if (!pathname.startsWith("/login")) {
7628
- if (preRedirectUrl !== newRedirectUrl) {
7629
- localStorage.setItem(REDIRECT_URL, newRedirectUrl);
7630
- localStorage.setItem(PRE_REDIRECT_URL, newRedirectUrl);
7631
- }
7530
+ }, React__default.createElement(DialogTitle$1, {
7531
+ id: "customized-dialog-title"
7532
+ }, React__default.createElement(Typography$1, {
7533
+ fontWeight: 700,
7534
+ fontSize: "16px",
7535
+ lineHeight: "19.09px",
7536
+ color: "#202B37"
7537
+ }, t("ask_a_question"))), React__default.createElement(IconButton$1, {
7538
+ "aria-label": "close",
7539
+ sx: {
7540
+ position: "absolute",
7541
+ right: 8,
7542
+ top: 8,
7543
+ color: function color(theme) {
7544
+ return theme.palette.grey[500];
7545
+ }
7546
+ },
7547
+ onClick: onClose
7548
+ }, React__default.createElement(iconCloseDialog, null)), React__default.createElement(Formik, {
7549
+ initialValues: initialValues,
7550
+ validationSchema: schema,
7551
+ onSubmit: handleCreateQuestion
7552
+ }, function (_ref2) {
7553
+ var values = _ref2.values,
7554
+ errors = _ref2.errors,
7555
+ setFieldValue = _ref2.setFieldValue;
7556
+ return React__default.createElement(Form, null, React__default.createElement(DialogContent$1, {
7557
+ sx: {
7558
+ padding: 0,
7559
+ overflowY: "auto"
7560
+ }
7561
+ }, React__default.createElement(Box, {
7562
+ display: "flex",
7563
+ flexDirection: "column",
7564
+ gap: "8px",
7565
+ padding: "24px 24px 40px 24px",
7566
+ overflow: "scroll"
7567
+ }, React__default.createElement(Stack, null, React__default.createElement("label", {
7568
+ htmlFor: "questions",
7569
+ className: styles["form-label"] + " " + styles$1["form-label-dialog"]
7570
+ }, labelQuestion || t("questions_to_ask")), React__default.createElement(Field, {
7571
+ id: "questions",
7572
+ name: nameQuestion,
7573
+ render: function render(_ref3) {
7574
+ var field = _ref3.field;
7575
+ return React__default.createElement(CustomSelect, Object.assign({}, field, {
7576
+ id: "questions",
7577
+ menuPlacement: "bottom",
7578
+ maxMenuHeight: 150,
7579
+ options: options,
7580
+ onChange: function onChange(_ref4) {
7581
+ var value = _ref4.value;
7582
+ return setFieldValue(nameQuestion, value);
7583
+ },
7584
+ isClearable: false,
7585
+ onFocus: handleInputFocus,
7586
+ onBlur: handleInputBlur
7587
+ }));
7588
+ }
7589
+ })), React__default.createElement(Stack, null, React__default.createElement("label", {
7590
+ htmlFor: "content-question",
7591
+ className: styles["form-label"] + " " + styles$1["form-label-dialog"]
7592
+ }, labelContent || t("question_content")), React__default.createElement(Box, {
7593
+ position: "relative",
7594
+ display: "flex",
7595
+ flexDirection: "row",
7596
+ alignItems: "center"
7597
+ }, React__default.createElement(Field, {
7598
+ as: "textarea",
7599
+ rows: 3,
7600
+ id: "content-question",
7601
+ style: {
7602
+ paddingRight: "40px"
7603
+ },
7604
+ name: nameContent,
7605
+ placeholder: t("the_problem_is_difficult"),
7606
+ className: styles["form-control"],
7607
+ onFocus: handleInputFocus,
7608
+ onBlur: handleInputBlur
7609
+ }), (errors === null || errors === void 0 ? void 0 : errors[nameContent]) && React__default.createElement(Box, {
7610
+ position: "absolute",
7611
+ right: 0,
7612
+ padding: "0 12px",
7613
+ display: "flex",
7614
+ alignItems: "center"
7615
+ }, React__default.createElement(iconWarning, null))), React__default.createElement(Box, {
7616
+ marginBottom: "4px"
7617
+ }), React__default.createElement(Typography$1, {
7618
+ fontWeight: 500,
7619
+ fontSize: "10px",
7620
+ lineHeight: "11.93px",
7621
+ color: !(errors !== null && errors !== void 0 && errors[nameContent]) ? "#97A1AF" : styles$1.red_900
7622
+ }, !(errors !== null && errors !== void 0 && errors[nameContent]) ? t("your_questions_will_be_sent_to_the_counselor") : t("please_enter_your_question"))))), React__default.createElement(DialogActions$1, {
7623
+ sx: {
7624
+ display: "flex",
7625
+ justifyContent: "space-between",
7626
+ alignItems: "center",
7627
+ padding: "12px",
7628
+ borderTop: "1px solid #CED2DA"
7629
+ }
7630
+ }, React__default.createElement(MButton, {
7631
+ className: styles$1["btn-cancel"],
7632
+ onClick: onClose
7633
+ }, React__default.createElement(Typography$1, {
7634
+ sx: {
7635
+ color: styles.dark + " !important"
7636
+ },
7637
+ fontWeight: 700,
7638
+ fontSize: "14px",
7639
+ lineHeight: "16.71px"
7640
+ }, t("cancel"))), React__default.createElement(MButton, {
7641
+ variant: "contained",
7642
+ sx: {
7643
+ bgcolor: styles.dark
7644
+ },
7645
+ className: styles$1["btn-register"],
7646
+ type: "submit",
7647
+ disabled: !values.content.trim().length
7648
+ }, React__default.createElement(Typography$1, {
7649
+ fontWeight: 700,
7650
+ fontSize: "14px",
7651
+ lineHeight: "16.71px",
7652
+ color: "#FFFFFF"
7653
+ }, t("registration")))));
7654
+ }));
7655
+ }
7656
+
7657
+ var _templateObject;
7658
+ var BorderedTextField = styled(TextField)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n & .MuiOutlinedInput-root {\n &.Mui-focused fieldset {\n border-width: 1px;\n border-color: ", ";\n }\n }\n & .MuiOutlinedInput-root:hover {\n fieldset {\n border-width: 1px;\n border-color: ", ";\n }\n }\n"])), styles.dark, styles.less_dark);
7659
+ var InputText = function InputText(props) {
7660
+ return React__default.createElement(BorderedTextField, Object.assign({
7661
+ sx: {
7662
+ "& input": {
7663
+ py: "7.5px",
7664
+ px: "12px"
7665
+ },
7666
+ "& > div": {
7667
+ borderColor: "#97A1AF",
7668
+ borderRadius: "4px"
7632
7669
  }
7633
7670
  }
7634
- if (((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.status) === 401 || ((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.status) == 403) {
7635
- localStorage.removeItem(ACCESS_TOKEN);
7636
- window.location.href = "/login";
7671
+ }, props));
7672
+ };
7673
+
7674
+ var PassCodeDialog = function PassCodeDialog(_ref) {
7675
+ var open = _ref.open,
7676
+ onClose = _ref.onClose,
7677
+ onSubmit = _ref.onSubmit,
7678
+ academyDomain = _ref.academyDomain;
7679
+ var _useTranslation = useTranslation(),
7680
+ t = _useTranslation.t;
7681
+ var _useState = useState(""),
7682
+ passCode = _useState[0],
7683
+ setPassCode = _useState[1];
7684
+ var handleClose = function handleClose(event, reason) {
7685
+ onClose(event, reason);
7686
+ };
7687
+ var handleSubmit = function handleSubmit() {
7688
+ try {
7689
+ var data = {
7690
+ code: passCode,
7691
+ academyDomain: academyDomain
7692
+ };
7693
+ return Promise.resolve(onSubmit(data, handleClose)).then(function () {});
7694
+ } catch (e) {
7695
+ return Promise.reject(e);
7637
7696
  }
7638
- return Promise.reject(error);
7697
+ };
7698
+ var handleChangePassCode = function handleChangePassCode(e) {
7699
+ setPassCode(e.target.value);
7700
+ };
7701
+ var theme = useTheme();
7702
+ return React__default.createElement(CommonDialog, {
7703
+ open: open,
7704
+ onClose: handleClose,
7705
+ size: "xs",
7706
+ title: t("join_an_academy")
7707
+ }, React__default.createElement(DialogContent, {
7708
+ sx: {
7709
+ overflowY: "unset"
7710
+ }
7711
+ }, React__default.createElement(Stack, {
7712
+ direction: "column",
7713
+ spacing: 2,
7714
+ zIndex: 1,
7715
+ position: "relative"
7716
+ }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
7717
+ className: "fw-medium mb-1"
7718
+ }, t("pass_code"), React__default.createElement("span", {
7719
+ className: "text-danger"
7720
+ }, "*")), React__default.createElement(InputText, {
7721
+ id: "pass-code",
7722
+ placeholder: t("enter_pass_code"),
7723
+ value: passCode,
7724
+ onChange: handleChangePassCode
7725
+ })))), React__default.createElement(DialogActions, {
7726
+ className: ""
7727
+ }, React__default.createElement(Button, {
7728
+ variant: "contained",
7729
+ sx: {
7730
+ bgcolor: theme.palette.grey[700]
7731
+ },
7732
+ onClick: handleClose
7733
+ }, t("cancel")), React__default.createElement(Button, {
7734
+ variant: "contained",
7735
+ onClick: handleSubmit,
7736
+ disabled: !passCode.trim().length
7737
+ }, t("confirmation"))));
7738
+ };
7739
+
7740
+ var loadingStyle = {
7741
+ minWidth: "100vw",
7742
+ minHeight: "100vh",
7743
+ position: "fixed",
7744
+ top: 0,
7745
+ left: 0,
7746
+ zIndex: 999999999,
7747
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
7748
+ display: "flex",
7749
+ justifyContent: "center",
7750
+ alignItems: "center"
7751
+ };
7752
+ var Loading = function Loading() {
7753
+ var isLoading = useSelector(function (state) {
7754
+ return state.common.isLoading;
7755
+ });
7756
+ return isLoading ? React__default.createElement("div", {
7757
+ style: loadingStyle
7758
+ }, React__default.createElement("div", {
7759
+ className: "spinner-border text-secondary",
7760
+ role: "status"
7761
+ }, React__default.createElement("span", {
7762
+ className: "sr-only"
7763
+ }))) : null;
7764
+ };
7765
+
7766
+ var loadingStyle$1 = {
7767
+ minWidth: "100vw",
7768
+ minHeight: "100vh",
7769
+ position: "fixed",
7770
+ top: 0,
7771
+ left: 0,
7772
+ zIndex: 999999999,
7773
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
7774
+ display: "flex",
7775
+ justifyContent: "center",
7776
+ alignItems: "center"
7777
+ };
7778
+ var LoadingComponent = function LoadingComponent(_ref) {
7779
+ var isLoading = _ref.isLoading,
7780
+ children = _ref.children,
7781
+ _ref$spinClassName = _ref.spinClassName,
7782
+ spinClassName = _ref$spinClassName === void 0 ? "text-secondary" : _ref$spinClassName,
7783
+ _ref$className = _ref.className,
7784
+ className = _ref$className === void 0 ? "" : _ref$className;
7785
+ return isLoading ? React__default.createElement("div", {
7786
+ style: loadingStyle$1
7787
+ }, React__default.createElement(Stack, {
7788
+ direction: "column",
7789
+ justifyContent: "center",
7790
+ alignItems: "center",
7791
+ className: className
7792
+ }, React__default.createElement("div", {
7793
+ className: "spinner-border " + spinClassName,
7794
+ role: "status"
7795
+ }, React__default.createElement("span", {
7796
+ className: "sr-only"
7797
+ })), React__default.createElement("div", null, children))) : null;
7798
+ };
7799
+
7800
+ var CustomPagination = function CustomPagination(_ref) {
7801
+ var currentPage = _ref.currentPage,
7802
+ totalPage = _ref.totalPage,
7803
+ onChangePage = _ref.onChangePage;
7804
+ var handleChangePage = function handleChangePage(_, page) {
7805
+ onChangePage(page);
7806
+ };
7807
+ return React__default.createElement(Pagination, {
7808
+ className: "w-fit",
7809
+ count: totalPage,
7810
+ page: currentPage,
7811
+ onChange: handleChangePage
7639
7812
  });
7813
+ };
7814
+
7815
+ var SCORE_OPTIONS = Array.from({
7816
+ length: 10
7817
+ }, function (_, i) {
7818
+ return i + 1;
7819
+ });
7820
+ var QUESTION_OPTIONS = Array.from({
7821
+ length: 40
7822
+ }, function (_, i) {
7823
+ return i + 1;
7824
+ });
7825
+ var ANSWER_OPTIONS = Array.from({
7826
+ length: 9
7827
+ }, function (_, i) {
7828
+ return i + 2;
7640
7829
  });
7830
+ var DEFAULT_SCORE = 2;
7831
+
7832
+ var AnswerCountSelector = function AnswerCountSelector(_ref) {
7833
+ var id = _ref.id,
7834
+ value = _ref.value,
7835
+ onChange = _ref.onChange,
7836
+ isDisabled = _ref.isDisabled;
7837
+ var _useTranslation = useTranslation(),
7838
+ t = _useTranslation.t;
7839
+ var answerOptions = ANSWER_OPTIONS.map(function (i) {
7840
+ return {
7841
+ label: t("number_question", {
7842
+ number: i
7843
+ }),
7844
+ value: i
7845
+ };
7846
+ });
7847
+ return React__default.createElement(CustomSelect, {
7848
+ inputId: id,
7849
+ value: value,
7850
+ options: answerOptions,
7851
+ onChange: onChange,
7852
+ isDisabled: isDisabled
7853
+ });
7854
+ };
7855
+
7856
+ var ArticleCategorySelector = function ArticleCategorySelector(_ref) {
7857
+ var id = _ref.id,
7858
+ value = _ref.value,
7859
+ optionValue = _ref.optionValue,
7860
+ onChange = _ref.onChange,
7861
+ isDisabled = _ref.isDisabled,
7862
+ options = _ref.options,
7863
+ isMulti = _ref.isMulti,
7864
+ placeholder = _ref.placeholder,
7865
+ rest = _ref.rest;
7866
+ var _useTranslation = useTranslation(),
7867
+ t = _useTranslation.t;
7868
+ return React__default.createElement(CustomSelect, Object.assign({
7869
+ isMulti: isMulti,
7870
+ inputId: id,
7871
+ value: value,
7872
+ options: options,
7873
+ onChange: onChange,
7874
+ isDisabled: isDisabled,
7875
+ placeholder: placeholder || t("select_category"),
7876
+ optionValue: optionValue
7877
+ }, rest));
7878
+ };
7641
7879
 
7642
7880
  var COURSE_URL = BASE_URL + "/api/course";
7643
7881
  var getClassesApi = function getClassesApi(textSearch) {
@@ -7731,22 +7969,10 @@ var QuestionCountSelector = function QuestionCountSelector(_ref) {
7731
7969
  value = _ref.value,
7732
7970
  onChange = _ref.onChange,
7733
7971
  isDisabled = _ref.isDisabled,
7734
- rest = _ref.rest,
7735
- totalQuestions = _ref.totalQuestions;
7972
+ rest = _ref.rest;
7736
7973
  var _useTranslation = useTranslation(),
7737
7974
  t = _useTranslation.t;
7738
- var questionOptions = totalQuestions && totalQuestions > 1 ? Array.from({
7739
- length: totalQuestions
7740
- }, function (_, i) {
7741
- return i + 1;
7742
- }).map(function (i) {
7743
- return {
7744
- label: t("question_count_format", {
7745
- number: i
7746
- }),
7747
- value: i
7748
- };
7749
- }) : QUESTION_OPTIONS.map(function (i) {
7975
+ var questionOptions = QUESTION_OPTIONS.map(function (i) {
7750
7976
  return {
7751
7977
  label: t("question_count_format", {
7752
7978
  number: i
@@ -8061,7 +8287,7 @@ var SearchInput = function SearchInput(_ref) {
8061
8287
  }));
8062
8288
  };
8063
8289
 
8064
- var styles$1 = {"header__avatar":"_2oGcJ","header__select":"_2y2XV","body":"_ntGyI","list":"_m7Fwt","list__item__header":"_3BM8N","list__item__avatar":"_1ReOK","list__item__avatar-container":"_2qbld","list__item__message":"_3s01i","list__item__message--reply-from":"_2Qxi3","list__item__message--reply-from-right":"_34Vx4","list__item__message--reply":"_3uheq","list__item__message--reply-right":"_2iBr7","reply-text":"_3ZPjO","container-custom":"_38A9k","student-row-col-1":"_Jt5t0","student-row-col-1-active":"_14DKj","row-col-2":"_qHGiR","inputBox":"_2iY67","inputBoxTable":"_3pCw0","background-chat":"_zILbw","wrap-content":"_38gsM","name-sender":"_Lfzyw","content-chat-sender":"_1X73E","content-chat-receiver":"_32V7T","custom-scroll":"_2Uul2","btn-send":"_395lb","btn-chat":"_gDYwm","input-chat":"_22TX5","btn-cancel":"_1u-eg","btn-register":"_22r6_","form-label-dialog":"_jADIA","form-select-width":"_WncPd","padding-content":"_3hz3H","form-label":"_MMQxP","form-control":"_1mJfc"};
8290
+ var styles$2 = {"header__avatar":"_2oGcJ","header__select":"_2y2XV","body":"_ntGyI","list":"_m7Fwt","list__item__header":"_3BM8N","list__item__avatar":"_1ReOK","list__item__avatar-container":"_2qbld","list__item__message":"_3s01i","list__item__message--reply-from":"_2Qxi3","list__item__message--reply-from-right":"_34Vx4","list__item__message--reply":"_3uheq","list__item__message--reply-right":"_2iBr7","reply-text":"_3ZPjO","container-custom":"_38A9k","student-row-col-1":"_Jt5t0","student-row-col-1-active":"_14DKj","row-col-2":"_qHGiR","inputBox":"_2iY67","inputBoxTable":"_3pCw0","background-chat":"_zILbw","wrap-content":"_38gsM","name-sender":"_Lfzyw","content-chat-sender":"_1X73E","content-chat-receiver":"_32V7T","custom-scroll":"_2Uul2","btn-send":"_395lb","btn-chat":"_gDYwm","input-chat":"_22TX5","btn-cancel":"_1u-eg","btn-register":"_22r6_","form-label-dialog":"_jADIA","form-select-width":"_WncPd","padding-content":"_3hz3H","form-label":"_MMQxP","form-control":"_1mJfc"};
8065
8291
 
8066
8292
  var iconPersonNoActive = function iconPersonNoActive(_ref) {
8067
8293
  var _ref$width = _ref.width,
@@ -8221,7 +8447,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
8221
8447
  padding: "4px 0"
8222
8448
  }, React__default.createElement(Box, null, showName && isStudent && React__default.createElement(Box, {
8223
8449
  gap: "8px",
8224
- className: " " + styles$1["name-sender"],
8450
+ className: " " + styles$2["name-sender"],
8225
8451
  display: "flex",
8226
8452
  alignItems: "center",
8227
8453
  justifyContent: "end",
@@ -8275,7 +8501,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
8275
8501
  objectFit: "contain"
8276
8502
  }
8277
8503
  }) : React__default.createElement("div", {
8278
- className: styles$1["wrap-content"] + " " + styles$1["content-chat-receiver"],
8504
+ className: styles$2["wrap-content"] + " " + styles$2["content-chat-receiver"],
8279
8505
  style: {
8280
8506
  "float": "inline-end",
8281
8507
  maxWidth: 400,
@@ -8322,7 +8548,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
8322
8548
  display: "flex",
8323
8549
  padding: "4px",
8324
8550
  flexDirection: "row",
8325
- className: "" + styles$1["name-sender"]
8551
+ className: "" + styles$2["name-sender"]
8326
8552
  }, isStudent ? React__default.createElement(Fragment$1, null, React__default.createElement(Typography, {
8327
8553
  fontWeight: 500,
8328
8554
  fontSize: 14,
@@ -8358,7 +8584,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
8358
8584
  objectFit: "contain"
8359
8585
  }
8360
8586
  }) : React__default.createElement("div", {
8361
- className: styles$1["wrap-content"] + " " + styles$1["content-chat-sender"],
8587
+ className: styles$2["wrap-content"] + " " + styles$2["content-chat-sender"],
8362
8588
  style: {
8363
8589
  maxWidth: 400,
8364
8590
  color: styles.gray_700,
@@ -8544,7 +8770,9 @@ var TinyChatEditor = function TinyChatEditor(_ref) {
8544
8770
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
8545
8771
  onChange = _ref.onChange,
8546
8772
  initValue = _ref.initValue,
8547
- config = _ref.config;
8773
+ config = _ref.config,
8774
+ onFocus = _ref.onFocus,
8775
+ onBlur = _ref.onBlur;
8548
8776
  var isFirstChange = useRef(true);
8549
8777
  var _useTranslation = useTranslation(),
8550
8778
  t = _useTranslation.t;
@@ -8576,7 +8804,9 @@ var TinyChatEditor = function TinyChatEditor(_ref) {
8576
8804
  disabled: disabled,
8577
8805
  init: config || options,
8578
8806
  value: initValue,
8579
- onEditorChange: handleChange
8807
+ onEditorChange: handleChange,
8808
+ onFocus: onFocus,
8809
+ onBlur: onBlur
8580
8810
  });
8581
8811
  };
8582
8812
 
@@ -8597,11 +8827,16 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8597
8827
  }
8598
8828
  return error;
8599
8829
  };
8830
+ var _useKeyboardVisible = useKeyboardVisible(),
8831
+ pageSxProps = _useKeyboardVisible.pageSxProps,
8832
+ handleInputBlur = _useKeyboardVisible.handleInputBlur,
8833
+ handleInputFocus = _useKeyboardVisible.handleInputFocus;
8600
8834
  return React__default.createElement(CommonDialog, {
8601
8835
  open: open,
8602
8836
  onClose: onClose,
8603
8837
  size: "xs",
8604
- title: t("update_message")
8838
+ title: t("update_message"),
8839
+ paperSx: pageSxProps
8605
8840
  }, React__default.createElement(DialogContent, null, !contentType ? React__default.createElement(Formik, {
8606
8841
  enableReinitialize: true,
8607
8842
  initialValues: {
@@ -8615,7 +8850,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8615
8850
  var setFieldValue = _ref2.setFieldValue;
8616
8851
  return React__default.createElement(Form, null, React__default.createElement("label", {
8617
8852
  htmlFor: "content",
8618
- className: styles$1['form-label'] + " " + styles$1['form-label-dialog']
8853
+ className: styles$2['form-label'] + " " + styles$2['form-label-dialog']
8619
8854
  }, t('questions_to_ask')), React__default.createElement(Field, {
8620
8855
  id: "content",
8621
8856
  style: {
@@ -8624,14 +8859,16 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8624
8859
  name: "content",
8625
8860
  validate: validate,
8626
8861
  placeholder: t('the_problem_is_difficult'),
8627
- className: styles$1['form-control'],
8862
+ className: styles$2['form-control'],
8628
8863
  render: function render(_ref3) {
8629
8864
  var field = _ref3.field;
8630
8865
  return React__default.createElement(TinyChatEditor, {
8631
8866
  initValue: field.value,
8632
8867
  onChange: function onChange(text) {
8633
8868
  return setFieldValue("content", text);
8634
- }
8869
+ },
8870
+ onFocus: handleInputFocus,
8871
+ onBlur: handleInputBlur
8635
8872
  });
8636
8873
  }
8637
8874
  }), React__default.createElement(DialogActions, {
@@ -8645,7 +8882,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8645
8882
  sx: {
8646
8883
  color: styles.dark
8647
8884
  },
8648
- className: styles$1['btn-cancel'],
8885
+ className: styles$2['btn-cancel'],
8649
8886
  onClick: onClose
8650
8887
  }, React__default.createElement(Typography, {
8651
8888
  fontWeight: 700,
@@ -8656,7 +8893,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8656
8893
  sx: {
8657
8894
  bgcolor: styles.dark
8658
8895
  },
8659
- className: styles$1['btn-register'],
8896
+ className: styles$2['btn-register'],
8660
8897
  type: "submit"
8661
8898
  }, React__default.createElement(Typography, {
8662
8899
  fontWeight: 700,
@@ -8703,7 +8940,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8703
8940
  padding: '12px'
8704
8941
  }
8705
8942
  }, React__default.createElement(Button, {
8706
- className: styles$1['btn-cancel'],
8943
+ className: styles$2['btn-cancel'],
8707
8944
  onClick: onClose
8708
8945
  }, React__default.createElement(Typography, {
8709
8946
  sx: {
@@ -8714,7 +8951,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8714
8951
  lineHeight: '16.71px'
8715
8952
  }, t('cancel'))), React__default.createElement(Button, {
8716
8953
  variant: "contained",
8717
- className: styles$1['btn-register'],
8954
+ className: styles$2['btn-register'],
8718
8955
  sx: {
8719
8956
  bgcolor: !(selectedFile !== null && selectedFile !== void 0 && selectedFile.content) ? styles.light + " !important" : styles.dark
8720
8957
  },
@@ -8821,7 +9058,7 @@ var ChatList = function ChatList(_ref) {
8821
9058
  var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Student);
8822
9059
  return React__default.createElement("ul", {
8823
9060
  ref: listItemRef,
8824
- className: styles$1["list"] + " " + styles$1["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
9061
+ className: styles$2["list"] + " " + styles$2["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
8825
9062
  }, !(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && React__default.createElement("li", {
8826
9063
  className: "text-muted text-center fst-italic fs-6"
8827
9064
  }, t('no_message')), !!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && filterMessage.map(function (message) {
@@ -8935,7 +9172,7 @@ var InputChat = function InputChat(_ref) {
8935
9172
  }, React__default.createElement(Button, {
8936
9173
  variant: "contained",
8937
9174
  fullWidth: true,
8938
- className: styles$1["btn-send"],
9175
+ className: styles$2["btn-send"],
8939
9176
  sx: {
8940
9177
  bgcolor: isCompleted ? styles.light + " !important" : styles.less_dark
8941
9178
  },
@@ -9317,7 +9554,7 @@ var ChatContainer = function ChatContainer(_ref) {
9317
9554
  container: true
9318
9555
  }, React__default.createElement(ChatHeader, Object.assign({}, chatHeaderProps)), React__default.createElement("div", {
9319
9556
  ref: listRef,
9320
- className: "flex-grow-1 " + styles$1["body"],
9557
+ className: "flex-grow-1 " + styles$2["body"],
9321
9558
  style: {
9322
9559
  height: "60vh",
9323
9560
  overflowY: "scroll",
@@ -12904,7 +13141,7 @@ var DEFAULT_USER_FILTERS = {
12904
13141
  sortColumnName: UserSortColumn.CreatedAt
12905
13142
  };
12906
13143
 
12907
- var styles$2 = {"avatar":"_2rJkZ","date-picker":"_1iqE2","time-picker":"_20xtc","teacher-selector-wrapper":"_3L1Oj"};
13144
+ var styles$3 = {"avatar":"_2rJkZ","date-picker":"_1iqE2","time-picker":"_20xtc","teacher-selector-wrapper":"_3L1Oj"};
12908
13145
 
12909
13146
  var _excluded$7 = ["teachers", "value"];
12910
13147
  var TeacherSelector = function TeacherSelector(_ref) {
@@ -13110,7 +13347,7 @@ var ClassForm = function ClassForm(_ref) {
13110
13347
  }, React__default.createElement(DemoContainer, {
13111
13348
  components: ["DatePicker"]
13112
13349
  }, React__default.createElement(DatePicker, {
13113
- className: "" + styles$2["date-picker"],
13350
+ className: "" + styles$3["date-picker"],
13114
13351
  format: t("date_format"),
13115
13352
  maxDate: maxDate,
13116
13353
  value: formikProp.values.startDate,
@@ -13134,7 +13371,7 @@ var ClassForm = function ClassForm(_ref) {
13134
13371
  }, React__default.createElement(DemoContainer, {
13135
13372
  components: ["DatePicker"]
13136
13373
  }, React__default.createElement(DatePicker, {
13137
- className: "" + styles$2["date-picker"],
13374
+ className: "" + styles$3["date-picker"],
13138
13375
  format: t("date_format"),
13139
13376
  minDate: minDate,
13140
13377
  value: formikProp.values.endDate,
@@ -13170,7 +13407,7 @@ var ClassForm = function ClassForm(_ref) {
13170
13407
  }, t("main_teacher"), " ", React__default.createElement("span", {
13171
13408
  className: "text-danger"
13172
13409
  }, "*")), React__default.createElement("div", {
13173
- className: "" + styles$2["teacher-selector-wrapper"]
13410
+ className: "" + styles$3["teacher-selector-wrapper"]
13174
13411
  }, React__default.createElement(TeacherSelector, {
13175
13412
  value: formikProp.values.mainTeacherId,
13176
13413
  teachers: teachers,
@@ -13230,7 +13467,7 @@ var ClassForm = function ClassForm(_ref) {
13230
13467
  }
13231
13468
  }
13232
13469
  },
13233
- className: "" + styles$2["time-picker"],
13470
+ className: "" + styles$3["time-picker"],
13234
13471
  onOpen: function onOpen() {
13235
13472
  return setOpen(index + "-startTime");
13236
13473
  },
@@ -13262,7 +13499,7 @@ var ClassForm = function ClassForm(_ref) {
13262
13499
  }
13263
13500
  }
13264
13501
  },
13265
- className: "" + styles$2["time-picker"],
13502
+ className: "" + styles$3["time-picker"],
13266
13503
  onOpen: function onOpen() {
13267
13504
  return !disabled && setOpen(index + "-endTime");
13268
13505
  },
@@ -13326,6 +13563,8 @@ var SortIcon = function SortIcon(_ref) {
13326
13563
  }));
13327
13564
  };
13328
13565
 
13566
+ var styles$4 = {"date-picker":"_2YMvj","time-picker":"_3exYU"};
13567
+
13329
13568
  var DrawerTab;
13330
13569
  (function (DrawerTab) {
13331
13570
  DrawerTab[DrawerTab["Attendance"] = 0] = "Attendance";
@@ -13341,103 +13580,6 @@ var StudentAttendanceStatus;
13341
13580
  StudentAttendanceStatus[StudentAttendanceStatus["Late"] = 2] = "Late";
13342
13581
  })(StudentAttendanceStatus || (StudentAttendanceStatus = {}));
13343
13582
 
13344
- var USER_URL = BASE_URL + "/api/user";
13345
- var getUserByIdApi = function getUserByIdApi(id) {
13346
- return api.get(USER_URL + "/GetById/" + id);
13347
- };
13348
-
13349
- var _defaultLoadedTabs;
13350
- var defaultTab = DrawerTab.Attendance;
13351
- var defaultLoadedTabs = (_defaultLoadedTabs = {}, _defaultLoadedTabs[defaultTab] = true, _defaultLoadedTabs);
13352
- var useStudentInfoDrawer = function useStudentInfoDrawer(props) {
13353
- var open = props.open,
13354
- inert = props.inert,
13355
- studentId = props.studentId,
13356
- onClose = props.onClose;
13357
- var _useTranslation = useTranslation(),
13358
- t = _useTranslation.t;
13359
- var _useState = useState(),
13360
- studentInfo = _useState[0],
13361
- setStudentInfo = _useState[1];
13362
- var _useState2 = useState(false),
13363
- isLoading = _useState2[0],
13364
- setLoading = _useState2[1];
13365
- var _useState3 = useState(defaultTab),
13366
- selectedTab = _useState3[0],
13367
- setSelectedTab = _useState3[1];
13368
- var _useState4 = useState(defaultLoadedTabs),
13369
- loadedTabs = _useState4[0],
13370
- setLoadingTabs = _useState4[1];
13371
- var handleClose = function handleClose() {
13372
- setStudentInfo(undefined);
13373
- setSelectedTab(defaultTab);
13374
- onClose === null || onClose === void 0 ? void 0 : onClose();
13375
- setLoadingTabs(defaultLoadedTabs);
13376
- };
13377
- var handleChangeTab = function handleChangeTab(_, newValue) {
13378
- setSelectedTab(newValue);
13379
- setLoadingTabs(function (state) {
13380
- var _extends2;
13381
- return _extends({}, state, (_extends2 = {}, _extends2[newValue] = true, _extends2));
13382
- });
13383
- };
13384
- var debounceChangeTab = _$8.debounce(handleChangeTab, 300);
13385
- useEffect(function () {
13386
- var getStudent = function getStudent() {
13387
- try {
13388
- var _temp2 = function _temp2() {
13389
- setLoading(false);
13390
- };
13391
- if (!studentId) return Promise.resolve();
13392
- setLoading(true);
13393
- var _temp = _catch(function () {
13394
- return Promise.resolve(getUserByIdApi(studentId)).then(function (res) {
13395
- setStudentInfo(res.data.data);
13396
- });
13397
- }, function () {});
13398
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
13399
- } catch (e) {
13400
- return Promise.reject(e);
13401
- }
13402
- };
13403
- getStudent();
13404
- }, [studentId]);
13405
- useEffect(function () {
13406
- if (open && inert) {
13407
- var _document$getElementB;
13408
- (_document$getElementB = document.getElementById("drawer")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.setAttribute("inert", "true");
13409
- } else {
13410
- var _document$getElementB2;
13411
- (_document$getElementB2 = document.getElementById("drawer")) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.removeAttribute("inert");
13412
- }
13413
- return function () {
13414
- var _document$getElementB3;
13415
- (_document$getElementB3 = document.getElementById("drawer")) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.removeAttribute("inert");
13416
- };
13417
- }, [open, inert]);
13418
- return {
13419
- t: t,
13420
- loadedTabs: loadedTabs,
13421
- isLoading: isLoading,
13422
- studentInfo: studentInfo,
13423
- selectedTab: selectedTab,
13424
- debounceChangeTab: debounceChangeTab,
13425
- handleClose: handleClose
13426
- };
13427
- };
13428
-
13429
- var DrawerContainerStyle = function DrawerContainerStyle(width) {
13430
- return {
13431
- flexShrink: 0,
13432
- display: "flex",
13433
- flexDirection: "column",
13434
- "& .MuiDrawer-paper": {
13435
- width: width,
13436
- boxSizing: "border-box"
13437
- }
13438
- };
13439
- };
13440
-
13441
13583
  var formatGrade = function formatGrade(grade, t, language) {
13442
13584
  return grade ? language === Language.en ? "" + grade + getOrdinalSuffix(grade, language) : "" + t("number_grade", {
13443
13585
  number: grade
@@ -13482,17 +13624,8 @@ var a11yProps = function a11yProps(index) {
13482
13624
  };
13483
13625
  };
13484
13626
  var subtractTime = function subtractTime(time1, time2, t) {
13485
- var _time1$split$map = time1.split(":").map(Number),
13486
- hours1 = _time1$split$map[0],
13487
- minutes1 = _time1$split$map[1];
13488
- var _time2$split$map = time2.split(":").map(Number),
13489
- hours2 = _time2$split$map[0],
13490
- minutes2 = _time2$split$map[1];
13491
- var totalMinutes1 = hours1 * 60 + minutes1;
13492
- var totalMinutes2 = hours2 * 60 + minutes2;
13493
- var diffMinutes = Math.abs(totalMinutes1 - totalMinutes2);
13494
- var hoursDiff = Math.floor(diffMinutes / 60);
13495
- var minutesDiff = diffMinutes % 60;
13627
+ var hoursDiff = time1.diff(time2, "hours", false);
13628
+ var minutesDiff = time1.diff(time2, "minutes", false) - hoursDiff * 60;
13496
13629
  if (hoursDiff < 0) {
13497
13630
  hoursDiff += 24;
13498
13631
  }
@@ -13507,9 +13640,472 @@ var subtractTime = function subtractTime(time1, time2, t) {
13507
13640
  }
13508
13641
  return hoursDiff + " " + (hoursDiff > 1 ? t("hours") : t("hour")) + " " + minutesDiff + " " + t("minute");
13509
13642
  };
13510
- var formatTimeHHmm = function formatTimeHHmm(time) {
13511
- var res = time.split(":");
13512
- return res[0] + ":" + res[1];
13643
+
13644
+ var CalendarFill = function CalendarFill(_ref) {
13645
+ var _ref$width = _ref.width,
13646
+ width = _ref$width === void 0 ? "16" : _ref$width,
13647
+ _ref$height = _ref.height,
13648
+ height = _ref$height === void 0 ? "16" : _ref$height,
13649
+ color = _ref.color;
13650
+ return React__default.createElement("svg", {
13651
+ width: width,
13652
+ height: height,
13653
+ fill: color,
13654
+ viewBox: "0 0 16 16",
13655
+ xmlns: "http://www.w3.org/2000/svg"
13656
+ }, React__default.createElement("path", {
13657
+ d: "M15 3.99998C15 3.46955 14.7893 2.96084 14.4142 2.58577C14.0391 2.2107 13.5304 1.99998 13 1.99998H12.5V1.51405C12.5 1.24498 12.2931 1.01405 12.0241 1.00061C11.9565 0.997353 11.8889 1.00785 11.8255 1.03148C11.762 1.05511 11.7041 1.09136 11.6551 1.13805C11.6061 1.18475 11.5671 1.2409 11.5404 1.30311C11.5138 1.36532 11.5 1.4323 11.5 1.49998V1.99998H4.5V1.51405C4.5 1.24498 4.29313 1.01405 4.02406 1.00061C3.95646 0.997353 3.8889 1.00785 3.82547 1.03148C3.76204 1.05511 3.70407 1.09136 3.65508 1.13805C3.60608 1.18475 3.56707 1.2409 3.54041 1.30311C3.51375 1.36532 3.50001 1.4323 3.5 1.49998V1.99998H3C2.46957 1.99998 1.96086 2.2107 1.58579 2.58577C1.21071 2.96084 1 3.46955 1 3.99998V4.37498C1 4.40814 1.01317 4.43993 1.03661 4.46337C1.06005 4.48682 1.09185 4.49998 1.125 4.49998H14.875C14.9082 4.49998 14.9399 4.48682 14.9634 4.46337C14.9868 4.43993 15 4.40814 15 4.37498V3.99998Z",
13658
+ fill: "#97A1AF"
13659
+ }), React__default.createElement("path", {
13660
+ d: "M1 13C1 13.5304 1.21071 14.0391 1.58579 14.4142C1.96086 14.7893 2.46957 15 3 15H13C13.5304 15 14.0391 14.7893 14.4142 14.4142C14.7893 14.0391 15 13.5304 15 13V5.625C15 5.59185 14.9868 5.56005 14.9634 5.53661C14.9399 5.51317 14.9082 5.5 14.875 5.5H1.125C1.09185 5.5 1.06005 5.51317 1.03661 5.53661C1.01317 5.56005 1 5.59185 1 5.625V13Z",
13661
+ fill: "#97A1AF"
13662
+ }));
13663
+ };
13664
+
13665
+ var ClockFill = function ClockFill(_ref) {
13666
+ var _ref$width = _ref.width,
13667
+ width = _ref$width === void 0 ? "16" : _ref$width,
13668
+ _ref$height = _ref.height,
13669
+ height = _ref$height === void 0 ? "16" : _ref$height,
13670
+ color = _ref.color;
13671
+ return React__default.createElement("svg", {
13672
+ width: width,
13673
+ height: height,
13674
+ fill: color,
13675
+ viewBox: "0 0 14 14",
13676
+ xmlns: "http://www.w3.org/2000/svg"
13677
+ }, React__default.createElement("path", {
13678
+ d: "M7 0.25C3.41031 0.25 0.5 3.16031 0.5 6.75C0.5 10.3397 3.41031 13.25 7 13.25C10.5897 13.25 13.5 10.3397 13.5 6.75C13.5 3.16031 10.5897 0.25 7 0.25ZM10 7.75H7C6.86739 7.75 6.74021 7.69732 6.64645 7.60355C6.55268 7.50979 6.5 7.38261 6.5 7.25V2.75C6.5 2.61739 6.55268 2.49021 6.64645 2.39645C6.74021 2.30268 6.86739 2.25 7 2.25C7.13261 2.25 7.25979 2.30268 7.35355 2.39645C7.44732 2.49021 7.5 2.61739 7.5 2.75V6.75H10C10.1326 6.75 10.2598 6.80268 10.3536 6.89645C10.4473 6.99021 10.5 7.11739 10.5 7.25C10.5 7.38261 10.4473 7.50979 10.3536 7.60355C10.2598 7.69732 10.1326 7.75 10 7.75Z",
13679
+ fill: "#97A1AF"
13680
+ }));
13681
+ };
13682
+
13683
+ var CheckedCircleFill = function CheckedCircleFill(_ref) {
13684
+ var _ref$width = _ref.width,
13685
+ width = _ref$width === void 0 ? "16" : _ref$width,
13686
+ _ref$height = _ref.height,
13687
+ height = _ref$height === void 0 ? "17" : _ref$height,
13688
+ color = _ref.color;
13689
+ return React__default.createElement("svg", {
13690
+ width: width,
13691
+ height: height,
13692
+ fill: color,
13693
+ viewBox: "0 0 16 17",
13694
+ xmlns: "http://www.w3.org/2000/svg"
13695
+ }, React__default.createElement("path", {
13696
+ d: "M8 1.75C4.41594 1.75 1.5 4.66594 1.5 8.25C1.5 11.8341 4.41594 14.75 8 14.75C11.5841 14.75 14.5 11.8341 14.5 8.25C14.5 4.66594 11.5841 1.75 8 1.75ZM11.3828 6.07156L7.18281 11.0716C7.13674 11.1264 7.07941 11.1708 7.01471 11.2016C6.95001 11.2323 6.87945 11.2489 6.80781 11.25H6.79938C6.72929 11.25 6.66 11.2352 6.59599 11.2067C6.53198 11.1782 6.47468 11.1365 6.42781 11.0844L4.62781 9.08438C4.5821 9.03589 4.54654 8.97876 4.52322 8.91633C4.4999 8.85391 4.4893 8.78745 4.49203 8.72087C4.49477 8.65429 4.51078 8.58892 4.53914 8.52862C4.56749 8.46831 4.60761 8.41429 4.65715 8.36971C4.70668 8.32514 4.76463 8.29091 4.82757 8.26905C4.89052 8.24719 4.95721 8.23813 5.02371 8.2424C5.09021 8.24668 5.15518 8.26421 5.21481 8.29396C5.27444 8.3237 5.32752 8.36507 5.37094 8.41562L6.78625 9.98812L10.6172 5.42844C10.7031 5.32909 10.8247 5.26754 10.9556 5.25711C11.0866 5.24668 11.2164 5.28819 11.317 5.37268C11.4175 5.45717 11.4808 5.57784 11.4931 5.70862C11.5055 5.8394 11.4658 5.96977 11.3828 6.07156Z",
13697
+ fill: "#97A1AF"
13698
+ }));
13699
+ };
13700
+
13701
+ var IconPerson = function IconPerson(_ref) {
13702
+ var _ref$width = _ref.width,
13703
+ width = _ref$width === void 0 ? "16" : _ref$width,
13704
+ _ref$height = _ref.height,
13705
+ height = _ref$height === void 0 ? "16" : _ref$height,
13706
+ color = _ref.color;
13707
+ return React__default.createElement("svg", {
13708
+ width: width,
13709
+ height: height,
13710
+ fill: color,
13711
+ viewBox: "0 0 16 16",
13712
+ xmlns: "http://www.w3.org/2000/svg"
13713
+ }, React__default.createElement("path", {
13714
+ d: "M10.395 2.01813C9.78691 1.36156 8.93753 1 8.00003 1C7.05753 1 6.20534 1.35937 5.60003 2.01187C4.98815 2.67156 4.69003 3.56813 4.76003 4.53625C4.89878 6.44625 6.35222 8 8.00003 8C9.64784 8 11.0988 6.44656 11.2397 4.53687C11.3107 3.5775 11.0107 2.68281 10.395 2.01813Z",
13715
+ fill: "#97A1AF"
13716
+ }), React__default.createElement("path", {
13717
+ d: "M13.4999 15H2.49993C2.35595 15.0019 2.21337 14.9716 2.08255 14.9115C1.95173 14.8513 1.83597 14.7627 1.74368 14.6522C1.54056 14.4094 1.45868 14.0778 1.51931 13.7425C1.78306 12.2794 2.60618 11.0503 3.89993 10.1875C5.04931 9.42156 6.50525 9 7.99993 9C9.49462 9 10.9506 9.42188 12.0999 10.1875C13.3937 11.05 14.2168 12.2791 14.4806 13.7422C14.5412 14.0775 14.4593 14.4091 14.2562 14.6519C14.1639 14.7625 14.0482 14.8511 13.9174 14.9113C13.7865 14.9715 13.6439 15.0018 13.4999 15Z",
13718
+ fill: "#97A1AF"
13719
+ }));
13720
+ };
13721
+
13722
+ var LessonTooltip = function LessonTooltip(_ref) {
13723
+ var _startTime$format, _endTime$format;
13724
+ var lesson = _ref.lesson,
13725
+ lessonAttendance = _ref.lessonAttendance,
13726
+ _ref$padding = _ref.padding,
13727
+ padding = _ref$padding === void 0 ? "16px" : _ref$padding;
13728
+ var _useTranslation = useTranslation(),
13729
+ t = _useTranslation.t;
13730
+ var endTime = timeSpanToLocalMoment(lesson.endTime, lesson.date);
13731
+ var startTime = timeSpanToLocalMoment(lesson.startTime, lesson.date);
13732
+ return React__default.createElement(Stack, {
13733
+ padding: padding
13734
+ }, React__default.createElement(Stack, {
13735
+ gap: "20px"
13736
+ }, React__default.createElement(Typography, {
13737
+ sx: {
13738
+ color: grey[700]
13739
+ }
13740
+ }, lesson.courseName), React__default.createElement(Stack, {
13741
+ display: "flex",
13742
+ flexDirection: "row",
13743
+ justifyContent: "space-between",
13744
+ gap: "20px"
13745
+ }, React__default.createElement(Box, {
13746
+ display: "flex",
13747
+ flexDirection: "row",
13748
+ gap: "4px"
13749
+ }, React__default.createElement(CalendarFill, null), React__default.createElement(Typography, {
13750
+ sx: {
13751
+ color: grey[500],
13752
+ fontSize: "13px",
13753
+ fontWeight: "600",
13754
+ whiteSpace: "nowrap"
13755
+ }
13756
+ }, t("class_date"))), React__default.createElement(Typography, {
13757
+ sx: {
13758
+ color: grey[700],
13759
+ fontSize: "14px",
13760
+ fontWeight: "600"
13761
+ }
13762
+ }, t("" + moment(lesson === null || lesson === void 0 ? void 0 : lesson.date).format(t("date_format"))))), React__default.createElement(Stack, {
13763
+ display: "flex",
13764
+ flexDirection: "row",
13765
+ justifyContent: "space-between",
13766
+ gap: "20px"
13767
+ }, React__default.createElement(Stack, {
13768
+ display: "flex",
13769
+ flexDirection: "row",
13770
+ gap: "4px"
13771
+ }, React__default.createElement(ClockFill, null), React__default.createElement(Typography, {
13772
+ sx: {
13773
+ color: grey[500],
13774
+ fontSize: "13px",
13775
+ fontWeight: "600",
13776
+ whiteSpace: "nowrap"
13777
+ }
13778
+ }, t("class_time"))), React__default.createElement(Typography, {
13779
+ sx: {
13780
+ color: grey[700],
13781
+ fontSize: "14px",
13782
+ fontWeight: "600"
13783
+ }
13784
+ }, ((_startTime$format = startTime === null || startTime === void 0 ? void 0 : startTime.format("HH:mm")) != null ? _startTime$format : "HH:mm") + " : " + ((_endTime$format = endTime === null || endTime === void 0 ? void 0 : endTime.format("HH:mm")) != null ? _endTime$format : "HH:mm") + " (" + (startTime && endTime && subtractTime(startTime, endTime, t)) + ")")), React__default.createElement(Stack, {
13785
+ display: "flex",
13786
+ flexDirection: "row",
13787
+ justifyContent: "space-between",
13788
+ gap: "20px"
13789
+ }, React__default.createElement(Stack, {
13790
+ display: "flex",
13791
+ flexDirection: "row",
13792
+ gap: "4px"
13793
+ }, React__default.createElement(CheckedCircleFill, null), React__default.createElement(Typography, {
13794
+ sx: {
13795
+ color: grey[500],
13796
+ fontSize: "13px",
13797
+ fontWeight: "600",
13798
+ whiteSpace: "nowrap"
13799
+ }
13800
+ }, t("attendance"))), React__default.createElement(Typography, {
13801
+ sx: {
13802
+ color: grey[700],
13803
+ fontSize: "14px",
13804
+ fontWeight: "600"
13805
+ }
13806
+ }, (lessonAttendance === null || lessonAttendance === void 0 ? void 0 : lessonAttendance.status) === StudentAttendanceStatus.Late ? t("late") : (lessonAttendance === null || lessonAttendance === void 0 ? void 0 : lessonAttendance.status) === StudentAttendanceStatus.Attended ? t("attendance") : t("none_attendance"))), React__default.createElement(Stack, {
13807
+ display: "flex",
13808
+ flexDirection: "row",
13809
+ justifyContent: "space-between",
13810
+ gap: "20px"
13811
+ }, React__default.createElement(Stack, {
13812
+ display: "flex",
13813
+ flexDirection: "row",
13814
+ gap: "4px"
13815
+ }, React__default.createElement(IconPerson, null), React__default.createElement(Typography, {
13816
+ sx: {
13817
+ color: grey[500],
13818
+ fontSize: "13px",
13819
+ fontWeight: "600",
13820
+ whiteSpace: "nowrap"
13821
+ }
13822
+ }, t("teacher_in_charge"))), React__default.createElement(Typography, {
13823
+ sx: {
13824
+ color: grey[700],
13825
+ fontSize: "14px",
13826
+ fontWeight: "600"
13827
+ }
13828
+ }, lesson === null || lesson === void 0 ? void 0 : lesson.mainTeacherName))));
13829
+ };
13830
+
13831
+ var AttendanceFormBody = function AttendanceFormBody(_ref) {
13832
+ var _timeSpanToLocalMomen, _values$attendanceTim;
13833
+ var formikProp = _ref.formikProp,
13834
+ lesson = _ref.lesson,
13835
+ attendance = _ref.attendance,
13836
+ onClose = _ref.onClose;
13837
+ var values = formikProp.values,
13838
+ setFieldValue = formikProp.setFieldValue;
13839
+ var _useTranslation = useTranslation(),
13840
+ t = _useTranslation.t;
13841
+ var _useState = useState(""),
13842
+ openPicker = _useState[0],
13843
+ setOpenPicker = _useState[1];
13844
+ var maxTime = timeSpanToLocalMoment(lesson.endTime, lesson.date);
13845
+ var minTime = (_timeSpanToLocalMomen = timeSpanToLocalMoment(lesson.startTime, lesson.date)) === null || _timeSpanToLocalMomen === void 0 ? void 0 : _timeSpanToLocalMomen.add("minutes", -30);
13846
+ var handleChangeStatus = function handleChangeStatus() {
13847
+ if (values.status === StudentAttendanceStatus.Attended) setFieldValue("status", StudentAttendanceStatus.Late);else setFieldValue("status", StudentAttendanceStatus.Attended);
13848
+ };
13849
+ return React__default.createElement(Fragment$1, null, React__default.createElement(DialogContent, {
13850
+ sx: {
13851
+ overflowY: "unset"
13852
+ }
13853
+ }, React__default.createElement(Stack, {
13854
+ direction: "column",
13855
+ spacing: 1
13856
+ }, React__default.createElement(LessonTooltip, {
13857
+ lesson: lesson,
13858
+ lessonAttendance: attendance,
13859
+ padding: 0
13860
+ }), React__default.createElement(Divider, null), React__default.createElement(Stack, {
13861
+ direction: "row",
13862
+ gap: 2,
13863
+ justifyContent: "space-between",
13864
+ alignItems: "center",
13865
+ width: "100%"
13866
+ }, React__default.createElement(Box, null, React__default.createElement(Typography, {
13867
+ sx: {
13868
+ color: grey[500],
13869
+ fontSize: "13px",
13870
+ fontWeight: "600",
13871
+ whiteSpace: "nowrap"
13872
+ }
13873
+ }, t("current_status")), React__default.createElement(Typography, {
13874
+ sx: {
13875
+ color: green[700],
13876
+ fontSize: "14px",
13877
+ fontWeight: "600"
13878
+ }
13879
+ }, (attendance === null || attendance === void 0 ? void 0 : attendance.status) === StudentAttendanceStatus.Late ? t("late") : (attendance === null || attendance === void 0 ? void 0 : attendance.status) === StudentAttendanceStatus.Attended ? t("attendance") : t("none_attendance"))), React__default.createElement(CgArrowsExchange, {
13880
+ size: 24,
13881
+ color: green[700]
13882
+ }), React__default.createElement(Stack, {
13883
+ direction: "row"
13884
+ }, React__default.createElement(Stack, {
13885
+ direction: "column"
13886
+ }, React__default.createElement(Typography, {
13887
+ sx: {
13888
+ color: grey[500],
13889
+ fontSize: "13px",
13890
+ fontWeight: "600",
13891
+ whiteSpace: "nowrap"
13892
+ }
13893
+ }, t("next_status")), React__default.createElement(Typography, {
13894
+ sx: {
13895
+ color: grey[700],
13896
+ fontSize: "14px",
13897
+ fontWeight: "600"
13898
+ }
13899
+ }, values.status === StudentAttendanceStatus.Late ? t("late") : values.status === StudentAttendanceStatus.Attended ? t("attendance") : t("none_attendance"))), React__default.createElement(IconButton, {
13900
+ onClick: handleChangeStatus
13901
+ }, React__default.createElement(IoMdSync, {
13902
+ size: 24,
13903
+ color: green[700]
13904
+ })))), !!(attendance !== null && attendance !== void 0 && attendance.attendanceTime) && (attendance === null || attendance === void 0 ? void 0 : attendance.attendanceTime) !== DATE_TIME_MIN_VALUE && React__default.createElement(Box, null, React__default.createElement(Typography, {
13905
+ sx: {
13906
+ color: grey[500],
13907
+ fontSize: "13px",
13908
+ fontWeight: "600",
13909
+ whiteSpace: "nowrap"
13910
+ }
13911
+ }, t("current_arrival_time")), React__default.createElement(Typography, null, utcToLocalTime(attendance.attendanceTime, t("date_time_format")))), values.status !== StudentAttendanceStatus.Absent && React__default.createElement(Box, null, React__default.createElement("label", null, t("arrival_time")), React__default.createElement(LocalizationProvider, {
13912
+ dateAdapter: AdapterMoment
13913
+ }, React__default.createElement(DemoContainer, {
13914
+ components: ["TimePicker"]
13915
+ }, React__default.createElement(TimePicker, {
13916
+ open: openPicker === "attendanceTime",
13917
+ value: (_values$attendanceTim = values.attendanceTime) != null ? _values$attendanceTim : null,
13918
+ format: "HH:mm",
13919
+ maxTime: maxTime,
13920
+ minTime: minTime,
13921
+ onChange: function onChange(newValue) {
13922
+ setFieldValue("attendanceTime", newValue);
13923
+ },
13924
+ timezone: "system",
13925
+ className: styles$4["time-picker"] + " w-100",
13926
+ slotProps: {
13927
+ textField: {
13928
+ onClick: function onClick() {
13929
+ return setOpenPicker("attendanceTime");
13930
+ }
13931
+ }
13932
+ },
13933
+ closeOnSelect: false,
13934
+ onOpen: function onOpen() {
13935
+ return setOpenPicker("attendanceTime");
13936
+ },
13937
+ onClose: function onClose() {
13938
+ return setOpenPicker("");
13939
+ },
13940
+ ampm: false
13941
+ })))))), React__default.createElement(DialogActions, null, React__default.createElement(Button, {
13942
+ variant: "contained",
13943
+ className: "bg-secondary mb-2 text-capitalize",
13944
+ onClick: onClose
13945
+ }, t("cancel")), React__default.createElement(Button, {
13946
+ variant: "contained",
13947
+ color: "primary",
13948
+ className: "mb-2 me-2 text-capitalize",
13949
+ onClick: function onClick() {
13950
+ return formikProp.handleSubmit();
13951
+ }
13952
+ }, t("continue"))));
13953
+ };
13954
+
13955
+ var AttendanceFormDialog = function AttendanceFormDialog(_ref) {
13956
+ var lesson = _ref.lesson,
13957
+ studentId = _ref.studentId,
13958
+ attendance = _ref.attendance,
13959
+ open = _ref.open,
13960
+ _ref$zIndex = _ref.zIndex,
13961
+ zIndex = _ref$zIndex === void 0 ? 1300 : _ref$zIndex,
13962
+ onClose = _ref.onClose,
13963
+ onSubmit = _ref.onSubmit;
13964
+ var _useTranslation = useTranslation(),
13965
+ t = _useTranslation.t;
13966
+ var convertAttendanceRequest = function convertAttendanceRequest() {
13967
+ return {
13968
+ studentId: studentId,
13969
+ attendanceTime: attendance !== null && attendance !== void 0 && attendance.attendanceTime && attendance.attendanceTime !== DATE_TIME_MIN_VALUE ? moment.utc(attendance.attendanceTime).local() : undefined,
13970
+ status: (attendance === null || attendance === void 0 ? void 0 : attendance.status) === StudentAttendanceStatus.Attended ? StudentAttendanceStatus.Late : (attendance === null || attendance === void 0 ? void 0 : attendance.status) === StudentAttendanceStatus.Late ? StudentAttendanceStatus.Absent : StudentAttendanceStatus.Attended
13971
+ };
13972
+ };
13973
+ var attendanceRequest = useMemo(convertAttendanceRequest, [attendance === null || attendance === void 0 ? void 0 : attendance.attendanceTime, studentId]);
13974
+ var handleSubmit = function handleSubmit(values, _) {
13975
+ try {
13976
+ if (!lesson) return Promise.resolve();
13977
+ var attendanceTime = undefined;
13978
+ if (values.attendanceTime) {
13979
+ var minTime = timeSpanToLocalMoment(lesson.startTime, lesson.date).add(-30, "minutes");
13980
+ var attendanceMoment = moment(minTime.format("YYYY-MM-DD") + " " + values.attendanceTime.format("HH:mm:ss"), "YYYY-MM-DD HH:mm:ss");
13981
+ if (attendanceMoment.isBefore(minTime)) attendanceMoment.add(1, "days");
13982
+ attendanceTime = attendanceMoment.utc().format("YYYY-MM-DDTHH:mm:ss.SSS");
13983
+ }
13984
+ return Promise.resolve(onSubmit(lesson, {
13985
+ studentId: values.studentId,
13986
+ status: values.status,
13987
+ attendanceTime: attendanceTime
13988
+ })).then(function () {});
13989
+ } catch (e) {
13990
+ return Promise.reject(e);
13991
+ }
13992
+ };
13993
+ if (!lesson) return null;
13994
+ return React__default.createElement(CommonDialog, {
13995
+ open: open,
13996
+ onClose: onClose,
13997
+ size: "sm",
13998
+ title: t("uppdate_attendance"),
13999
+ zIndex: zIndex
14000
+ }, React__default.createElement(Formik, {
14001
+ initialValues: attendanceRequest,
14002
+ enableReinitialize: true,
14003
+ onSubmit: handleSubmit
14004
+ }, function (formikProp) {
14005
+ return React__default.createElement(AttendanceFormBody, {
14006
+ lesson: lesson,
14007
+ attendance: attendance,
14008
+ formikProp: formikProp,
14009
+ onClose: onClose
14010
+ });
14011
+ }));
14012
+ };
14013
+
14014
+ var USER_URL = BASE_URL + "/api/user";
14015
+ var getUserByIdApi = function getUserByIdApi(id) {
14016
+ return api.get(USER_URL + "/GetById/" + id);
14017
+ };
14018
+
14019
+ var _defaultLoadedTabs;
14020
+ var defaultTab = DrawerTab.Attendance;
14021
+ var defaultLoadedTabs = (_defaultLoadedTabs = {}, _defaultLoadedTabs[defaultTab] = true, _defaultLoadedTabs);
14022
+ var useStudentInfoDrawer = function useStudentInfoDrawer(props) {
14023
+ var open = props.open,
14024
+ inert = props.inert,
14025
+ studentId = props.studentId,
14026
+ onClose = props.onClose;
14027
+ var _useTranslation = useTranslation(),
14028
+ t = _useTranslation.t;
14029
+ var _useState = useState(),
14030
+ studentInfo = _useState[0],
14031
+ setStudentInfo = _useState[1];
14032
+ var _useState2 = useState(false),
14033
+ isLoading = _useState2[0],
14034
+ setLoading = _useState2[1];
14035
+ var _useState3 = useState(defaultTab),
14036
+ selectedTab = _useState3[0],
14037
+ setSelectedTab = _useState3[1];
14038
+ var _useState4 = useState(defaultLoadedTabs),
14039
+ loadedTabs = _useState4[0],
14040
+ setLoadingTabs = _useState4[1];
14041
+ var handleClose = function handleClose() {
14042
+ setStudentInfo(undefined);
14043
+ setSelectedTab(defaultTab);
14044
+ onClose === null || onClose === void 0 ? void 0 : onClose();
14045
+ setLoadingTabs(defaultLoadedTabs);
14046
+ };
14047
+ var handleChangeTab = function handleChangeTab(_, newValue) {
14048
+ setSelectedTab(newValue);
14049
+ setLoadingTabs(function (state) {
14050
+ var _extends2;
14051
+ return _extends({}, state, (_extends2 = {}, _extends2[newValue] = true, _extends2));
14052
+ });
14053
+ };
14054
+ var debounceChangeTab = _$8.debounce(handleChangeTab, 300);
14055
+ useEffect(function () {
14056
+ var getStudent = function getStudent() {
14057
+ try {
14058
+ var _temp2 = function _temp2() {
14059
+ setLoading(false);
14060
+ };
14061
+ if (!studentId) return Promise.resolve();
14062
+ setLoading(true);
14063
+ var _temp = _catch(function () {
14064
+ return Promise.resolve(getUserByIdApi(studentId)).then(function (res) {
14065
+ setStudentInfo(res.data.data);
14066
+ });
14067
+ }, function () {});
14068
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
14069
+ } catch (e) {
14070
+ return Promise.reject(e);
14071
+ }
14072
+ };
14073
+ getStudent();
14074
+ }, [studentId]);
14075
+ useEffect(function () {
14076
+ if (open && inert) {
14077
+ var _document$getElementB;
14078
+ (_document$getElementB = document.getElementById("drawer")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.setAttribute("inert", "true");
14079
+ } else {
14080
+ var _document$getElementB2;
14081
+ (_document$getElementB2 = document.getElementById("drawer")) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.removeAttribute("inert");
14082
+ }
14083
+ return function () {
14084
+ var _document$getElementB3;
14085
+ (_document$getElementB3 = document.getElementById("drawer")) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.removeAttribute("inert");
14086
+ };
14087
+ }, [open, inert]);
14088
+ return {
14089
+ t: t,
14090
+ loadedTabs: loadedTabs,
14091
+ isLoading: isLoading,
14092
+ studentInfo: studentInfo,
14093
+ selectedTab: selectedTab,
14094
+ debounceChangeTab: debounceChangeTab,
14095
+ handleClose: handleClose
14096
+ };
14097
+ };
14098
+
14099
+ var DrawerContainerStyle = function DrawerContainerStyle(width) {
14100
+ return {
14101
+ flexShrink: 0,
14102
+ display: "flex",
14103
+ flexDirection: "column",
14104
+ "& .MuiDrawer-paper": {
14105
+ width: width,
14106
+ boxSizing: "border-box"
14107
+ }
14108
+ };
13513
14109
  };
13514
14110
 
13515
14111
  var DrawerHeader = function DrawerHeader(_ref) {
@@ -14482,25 +15078,7 @@ var defaultSeries = function defaultSeries(t) {
14482
15078
  }];
14483
15079
  };
14484
15080
 
14485
- var styles$3 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","form-label":"_1jRLX","form-control":"_13KE7","form-label-dialog":"_3mXNM","btn-cancel":"_3bqNl","btn-register":"_3GFnT"};
14486
-
14487
- var iconCloseDialog = function iconCloseDialog(_ref) {
14488
- var _ref$width = _ref.width,
14489
- width = _ref$width === void 0 ? "24" : _ref$width,
14490
- _ref$height = _ref.height,
14491
- height = _ref$height === void 0 ? "25" : _ref$height,
14492
- color = _ref.color;
14493
- return React__default.createElement("svg", {
14494
- width: width,
14495
- height: height,
14496
- viewBox: "0 0 24 25",
14497
- fill: color,
14498
- xmlns: "http://www.w3.org/2000/svg"
14499
- }, React__default.createElement("path", {
14500
- d: "M13.5909 12.5L18.0441 8.04687C18.2554 7.8359 18.3743 7.54962 18.3745 7.25099C18.3748 6.95237 18.2564 6.66587 18.0455 6.45453C17.8345 6.24319 17.5482 6.12431 17.2496 6.12404C16.951 6.12378 16.6645 6.24215 16.4531 6.45312L12 10.9062L7.54687 6.45312C7.33553 6.24178 7.04888 6.12305 6.75 6.12305C6.45111 6.12305 6.16447 6.24178 5.95312 6.45312C5.74178 6.66447 5.62305 6.95111 5.62305 7.25C5.62305 7.54888 5.74178 7.83553 5.95312 8.04687L10.4062 12.5L5.95312 16.9531C5.74178 17.1645 5.62305 17.4511 5.62305 17.75C5.62305 18.0489 5.74178 18.3355 5.95312 18.5469C6.16447 18.7582 6.45111 18.8769 6.75 18.8769C7.04888 18.8769 7.33553 18.7582 7.54687 18.5469L12 14.0937L16.4531 18.5469C16.6645 18.7582 16.9511 18.8769 17.25 18.8769C17.5489 18.8769 17.8355 18.7582 18.0469 18.5469C18.2582 18.3355 18.3769 18.0489 18.3769 17.75C18.3769 17.4511 18.2582 17.1645 18.0469 16.9531L13.5909 12.5Z",
14501
- fill: "#202B37"
14502
- }));
14503
- };
15081
+ var styles$5 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","form-label":"_1jRLX","form-control":"_13KE7","form-label-dialog":"_3mXNM","btn-cancel":"_3bqNl","btn-register":"_3GFnT"};
14504
15082
 
14505
15083
  var NoteTinyEditor = function NoteTinyEditor(_ref) {
14506
15084
  var _ref$disabled = _ref.disabled,
@@ -14610,7 +15188,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14610
15188
  padding: "24px 24px 40px 24px"
14611
15189
  }, (selectedNote || studentName) && React__default.createElement(Stack, null, React__default.createElement("label", {
14612
15190
  htmlFor: "questions",
14613
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15191
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14614
15192
  }, t("student_name")), React__default.createElement(Typography$1, {
14615
15193
  sx: {
14616
15194
  fontWeight: 700,
@@ -14619,7 +15197,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14619
15197
  }
14620
15198
  }, selectedNote ? selectedNote.fullName : studentName)), React__default.createElement(Stack, null, React__default.createElement("label", {
14621
15199
  htmlFor: "content-question",
14622
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15200
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14623
15201
  }, t("incorrect_answer_note_contents")), React__default.createElement(Box, {
14624
15202
  position: "relative",
14625
15203
  display: "flex",
@@ -14653,7 +15231,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14653
15231
  borderTop: "1px solid #CED2DA"
14654
15232
  }
14655
15233
  }, React__default.createElement(MButton, {
14656
- className: styles$3["btn-cancel"],
15234
+ className: styles$5["btn-cancel"],
14657
15235
  onClick: onClose
14658
15236
  }, React__default.createElement(Typography$1, {
14659
15237
  sx: {
@@ -14667,7 +15245,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14667
15245
  sx: {
14668
15246
  bgcolor: styles.dark
14669
15247
  },
14670
- className: styles$3["btn-register"],
15248
+ className: styles$5["btn-register"],
14671
15249
  type: "submit",
14672
15250
  disabled: !values.content.trim().length
14673
15251
  }, React__default.createElement(Typography$1, {
@@ -14697,42 +15275,21 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14697
15275
  var handleSaveNote = function handleSaveNote(content, questionId) {
14698
15276
  onSaveNote(content, questionId);
14699
15277
  };
14700
- var _useState = useState(false),
14701
- keyboardOpen = _useState[0],
14702
- setKeyboardOpen = _useState[1];
14703
- useEffect(function () {
14704
- var handleResize = function handleResize() {
14705
- if (window.innerHeight < window.outerHeight) {
14706
- var _dialogRef$current;
14707
- (_dialogRef$current = dialogRef.current) === null || _dialogRef$current === void 0 ? void 0 : _dialogRef$current.scrollIntoView({
14708
- behavior: 'smooth',
14709
- block: 'center'
14710
- });
14711
- setKeyboardOpen(true);
14712
- } else {
14713
- setKeyboardOpen(false);
14714
- }
14715
- };
14716
- window.addEventListener("resize", handleResize);
14717
- handleResize();
14718
- return function () {
14719
- return window.removeEventListener("resize", handleResize);
14720
- };
14721
- }, []);
15278
+ var _useKeyboardVisible = useKeyboardVisible(),
15279
+ pageSxProps = _useKeyboardVisible.pageSxProps,
15280
+ handleInputBlur = _useKeyboardVisible.handleInputBlur,
15281
+ handleInputFocus = _useKeyboardVisible.handleInputFocus;
14722
15282
  return React__default.createElement(Dialog, {
14723
15283
  ref: dialogRef,
14724
15284
  onClose: onClose,
14725
15285
  open: open,
14726
15286
  scroll: "body",
14727
15287
  PaperProps: {
14728
- sx: {
15288
+ sx: _extends({
14729
15289
  maxHeight: "unset",
14730
15290
  minWidth: "363px",
14731
- overflowY: "unset",
14732
- position: "relative",
14733
- bottom: keyboardOpen ? "0" : undefined,
14734
- transition: "top 0.3s ease"
14735
- }
15291
+ overflowY: "auto"
15292
+ }, pageSxProps)
14736
15293
  }
14737
15294
  }, React__default.createElement(DialogTitle$1, {
14738
15295
  id: "customized-dialog-title"
@@ -14776,7 +15333,7 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14776
15333
  padding: "24px 24px 40px 24px"
14777
15334
  }, React__default.createElement(Stack, null, React__default.createElement("label", {
14778
15335
  htmlFor: "questions",
14779
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15336
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14780
15337
  }, t("problem_number")), selectedQuestion || selectedNote ? React__default.createElement(Typography$1, {
14781
15338
  sx: {
14782
15339
  fontWeight: 700,
@@ -14798,12 +15355,15 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14798
15355
  var value = _ref4.value;
14799
15356
  return setFieldValue("questionId", value);
14800
15357
  },
14801
- isClearable: false
15358
+ maxMenuHeight: 150,
15359
+ isClearable: false,
15360
+ onFocus: handleInputFocus,
15361
+ onBlur: handleInputBlur
14802
15362
  }));
14803
15363
  }
14804
15364
  })), React__default.createElement(Stack, null, React__default.createElement("label", {
14805
15365
  htmlFor: "content-question",
14806
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15366
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14807
15367
  }, t("incorrect_answer_note_contents")), React__default.createElement(Box, {
14808
15368
  position: "relative",
14809
15369
  display: "flex",
@@ -14820,7 +15380,9 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14820
15380
  },
14821
15381
  name: "content",
14822
15382
  placeholder: t("the_problem_is_difficult"),
14823
- className: styles["form-control"]
15383
+ className: styles["form-control"],
15384
+ onFocus: handleInputFocus,
15385
+ onBlur: handleInputBlur
14824
15386
  })), React__default.createElement(Box, {
14825
15387
  marginBottom: "4px"
14826
15388
  })))), React__default.createElement(DialogActions$1, {
@@ -14832,7 +15394,7 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14832
15394
  borderTop: "1px solid #CED2DA"
14833
15395
  }
14834
15396
  }, React__default.createElement(MButton, {
14835
- className: styles$3["btn-cancel"],
15397
+ className: styles$5["btn-cancel"],
14836
15398
  onClick: onClose
14837
15399
  }, React__default.createElement(Typography$1, {
14838
15400
  sx: {
@@ -14846,7 +15408,7 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14846
15408
  sx: {
14847
15409
  bgcolor: styles.dark
14848
15410
  },
14849
- className: styles$3["btn-register"],
15411
+ className: styles$5["btn-register"],
14850
15412
  type: "submit",
14851
15413
  disabled: !values.content.trim().length
14852
15414
  }, React__default.createElement(Typography$1, {
@@ -16010,7 +16572,6 @@ var TEXTBOOK_DEFAULT_FILTER = {
16010
16572
  sortColumnName: "Name",
16011
16573
  preparedFilterType: "RecentlySolvedQuestions"
16012
16574
  };
16013
- var FormatDate = "YYYY-MM-DD HH:mm:ss";
16014
16575
 
16015
16576
  var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
16016
16577
  var getExamSessionListApi = function getExamSessionListApi(query) {
@@ -17269,7 +17830,7 @@ Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==t
17269
17830
 
17270
17831
  var ReactApexChart = unwrapExports(reactApexcharts_min);
17271
17832
 
17272
- var styles$4 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","titleBox":"_1dveO","title":"_mxRxf","point":"_2fD-F","buttonGroup":"_2DGl3","btnFeedback":"_xGW1x","btnTerminate":"_3mLu2","myanswer":"_eDBpS","titleMyAnswer1":"_2fMq3","titleMyAnswer2":"_3gEYh","contentMyAnswer":"_2K_sx","myAnswerItem":"_2qiLh","time":"_6TCOK","timeCol":"_hmseC","answer-response":"_3GfJt","answer-response-0":"_3ut64","answer-response-1":"_2VtpD","answer-response-2":"_58lQU","answer-response-3":"_1ucMY","answer-response-4":"_1qkxy","overall-response-1":"_1AeGu","overall-response-2":"_1xTB0","overall-response-3":"_3Yu_5","answerCorrect":"_2jIeT","answerIncorrect":"_to2v0","answerNograss":"_1JSte","answerEasy":"_2_uTU","answerDiscrimination":"_1DBoA","answerTrap":"_1q3tD","answerNoTime":"_3iItu","questionOrder":"_1fNkS","myTimeLabel":"_1Z_F3","myPoolTime":"_4KwG0","topTimeLabel":"_245H-","topTime":"_3tZqw","meanTimeLabel":"_PlPLY","meanTime":"_12a7R","compareChart":"_3MW16","prevChart":"_1fNkb","chart":"_3K4oY","nextChart":"_3YKBp","titleChart":"_13BVP","titleCompareGrass":"_o1txm","tableCompareGrass":"_bT5nf","thcolumn1":"_3Umg0","tdcolumn1":"_3dRMF","tdcolumn3":"_2tcBP","classification":"_1AFeb","wrapperProblem":"_oTqG7","titleProblem":"_35eIx","titleProblemClose":"_3t4HO","titleTrickyProblem":"_1-oxK","wrongQuestions":"_2dpMR","question":"_1lSOX","assignedQuestions":"_1ONUt","wrapperContent":"_nPoR0","content":"_2zmZn","contentColumn1":"_334SY","span1":"_3Lf-U","span2":"_ZpMot","contentColumn2":"_16P3l","duration":"_1kT28","topDuration":"_1fVRi","overallCorrectRate":"_3jLGe","answer":"_VsZ0K","contentVulnerable":"_QxKMy","wrappContentProblem":"_nnqpW","contentProblem":"_3Z1nV","labelProblem":"_36Xpx","name":"_3ZJQW","percent":"_2J3MK","slider":"_1MPdO","track":"_3CV_y","noData":"__g-ff","loading":"_3j485","table-responsive":"_2O6RX","form-label":"_1RYOQ","form-control":"_3VRVT","form-label-dialog":"_3oCSh","btn-cancel":"_3USKq","btn-register":"_3y_iD","pdfBtnBox":"_3xZHo","pdfBtn":"_1DtWq","form-select":"_1a_vw","loader":"_2uC7T","dot":"_Xz-Mr","bounce":"_3THgz"};
17833
+ var styles$6 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","titleBox":"_1dveO","title":"_mxRxf","point":"_2fD-F","buttonGroup":"_2DGl3","btnFeedback":"_xGW1x","btnTerminate":"_3mLu2","myanswer":"_eDBpS","titleMyAnswer1":"_2fMq3","titleMyAnswer2":"_3gEYh","contentMyAnswer":"_2K_sx","myAnswerItem":"_2qiLh","time":"_6TCOK","timeCol":"_hmseC","answer-response":"_3GfJt","answer-response-0":"_3ut64","answer-response-1":"_2VtpD","answer-response-2":"_58lQU","answer-response-3":"_1ucMY","answer-response-4":"_1qkxy","overall-response-1":"_1AeGu","overall-response-2":"_1xTB0","overall-response-3":"_3Yu_5","answerCorrect":"_2jIeT","answerIncorrect":"_to2v0","answerNograss":"_1JSte","answerEasy":"_2_uTU","answerDiscrimination":"_1DBoA","answerTrap":"_1q3tD","answerNoTime":"_3iItu","questionOrder":"_1fNkS","myTimeLabel":"_1Z_F3","myPoolTime":"_4KwG0","topTimeLabel":"_245H-","topTime":"_3tZqw","meanTimeLabel":"_PlPLY","meanTime":"_12a7R","compareChart":"_3MW16","prevChart":"_1fNkb","chart":"_3K4oY","nextChart":"_3YKBp","titleChart":"_13BVP","titleCompareGrass":"_o1txm","tableCompareGrass":"_bT5nf","thcolumn1":"_3Umg0","tdcolumn1":"_3dRMF","tdcolumn3":"_2tcBP","classification":"_1AFeb","wrapperProblem":"_oTqG7","titleProblem":"_35eIx","titleProblemClose":"_3t4HO","titleTrickyProblem":"_1-oxK","wrongQuestions":"_2dpMR","question":"_1lSOX","assignedQuestions":"_1ONUt","wrapperContent":"_nPoR0","content":"_2zmZn","contentColumn1":"_334SY","span1":"_3Lf-U","span2":"_ZpMot","contentColumn2":"_16P3l","duration":"_1kT28","topDuration":"_1fVRi","overallCorrectRate":"_3jLGe","answer":"_VsZ0K","contentVulnerable":"_QxKMy","wrappContentProblem":"_nnqpW","contentProblem":"_3Z1nV","labelProblem":"_36Xpx","name":"_3ZJQW","percent":"_2J3MK","slider":"_1MPdO","track":"_3CV_y","noData":"__g-ff","loading":"_3j485","table-responsive":"_2O6RX","form-label":"_1RYOQ","form-control":"_3VRVT","form-label-dialog":"_3oCSh","btn-cancel":"_3USKq","btn-register":"_3y_iD","pdfBtnBox":"_3xZHo","pdfBtn":"_1DtWq","form-select":"_1a_vw","loader":"_2uC7T","dot":"_Xz-Mr","bounce":"_3THgz"};
17273
17834
 
17274
17835
  var printStyles = {"page-break":"_35kyG","print-exact-color":"_1PFgl","avoid-break-inside":"_3rPGh"};
17275
17836
 
@@ -17438,7 +17999,7 @@ var AnswerItem = function AnswerItem(_ref) {
17438
17999
  },
17439
18000
  key: data.id
17440
18001
  }, React__default.createElement("div", {
17441
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
18002
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
17442
18003
  }, React__default.createElement("div", {
17443
18004
  className: styles["custom-col-2"],
17444
18005
  style: {
@@ -17448,7 +18009,7 @@ var AnswerItem = function AnswerItem(_ref) {
17448
18009
  padding: "5px 8px"
17449
18010
  }
17450
18011
  }, data.isStar ? React__default.createElement(iconStarQuestion, null) : React__default.createElement(iconNoStarQuestion, null), React__default.createElement("span", {
17451
- className: styles$4["questionOrder"]
18012
+ className: styles$6["questionOrder"]
17452
18013
  }, t("number_question", {
17453
18014
  number: data.questionOrder + 1
17454
18015
  }))), React__default.createElement("div", {
@@ -17459,11 +18020,11 @@ var AnswerItem = function AnswerItem(_ref) {
17459
18020
  gap: "4px"
17460
18021
  }
17461
18022
  }, data.isCorrect && data.selectedAnswers !== "" && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
17462
- className: styles$4["answerCorrect"]
18023
+ className: styles$6["answerCorrect"]
17463
18024
  }, t("correct"))), !data.isCorrect && data.selectedAnswers !== "" && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
17464
- className: styles$4["answerIncorrect"]
18025
+ className: styles$6["answerIncorrect"]
17465
18026
  }, t("incorrect"))), data.selectedAnswers === "" && React__default.createElement(Fragment$1, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
17466
- className: styles$4["answerNograss"]
18027
+ className: styles$6["answerNograss"]
17467
18028
  }, t("no_solution")))), React__default.createElement("div", {
17468
18029
  className: styles["custom-col-2"],
17469
18030
  style: {
@@ -17474,12 +18035,12 @@ var AnswerItem = function AnswerItem(_ref) {
17474
18035
  style: {
17475
18036
  margin: 0
17476
18037
  },
17477
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
18038
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
17478
18039
  }, formatTimeSecond(Math.round(data.duration), t)) : React__default.createElement("p", {
17479
18040
  style: {
17480
18041
  margin: 0
17481
18042
  },
17482
- className: styles$4["answerNoTime"]
18043
+ className: styles$6["answerNoTime"]
17483
18044
  }, t("no_time"))), React__default.createElement("div", {
17484
18045
  className: styles["custom-col-2"],
17485
18046
  style: {
@@ -17490,13 +18051,13 @@ var AnswerItem = function AnswerItem(_ref) {
17490
18051
  style: {
17491
18052
  margin: 0
17492
18053
  },
17493
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
18054
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
17494
18055
  }, formatTimeDiff(data.duration, data.topDuration, t)) : React__default.createElement("p", {
17495
18056
  style: {
17496
18057
  margin: 0,
17497
18058
  textAlign: "center"
17498
18059
  },
17499
- className: styles$4["answerNoTime"]
18060
+ className: styles$6["answerNoTime"]
17500
18061
  }, "-")), React__default.createElement("div", {
17501
18062
  className: styles["custom-col-2"],
17502
18063
  style: {
@@ -17507,12 +18068,12 @@ var AnswerItem = function AnswerItem(_ref) {
17507
18068
  style: {
17508
18069
  margin: 0
17509
18070
  },
17510
- className: styles$4["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$4)
18071
+ className: styles$6["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$6)
17511
18072
  }, data.overallCorrectRate.toFixed(2) + "%") : React__default.createElement("p", {
17512
18073
  style: {
17513
18074
  margin: 0
17514
18075
  },
17515
- className: styles$4["answerNoTime"]
18076
+ className: styles$6["answerNoTime"]
17516
18077
  }, t("no_time"))), isStudent && !isLearningSpace && React__default.createElement(Box, {
17517
18078
  className: styles["custom-col-2"]
17518
18079
  }, openContextMenu ? React__default.createElement(ClickAwayListener, {
@@ -17579,7 +18140,7 @@ var MyAnswer = function MyAnswer(_ref) {
17579
18140
  }));
17580
18141
  };
17581
18142
  return React__default.createElement("div", {
17582
- className: "" + styles$4["myanswer"]
18143
+ className: "" + styles$6["myanswer"]
17583
18144
  }, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
17584
18145
  return React__default.createElement("div", {
17585
18146
  key: item.category.id
@@ -17589,7 +18150,7 @@ var MyAnswer = function MyAnswer(_ref) {
17589
18150
  bgcolor: "#F9FAFB",
17590
18151
  flexDirection: "row",
17591
18152
  padding: "12px",
17592
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
18153
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
17593
18154
  }, React__default.createElement("div", {
17594
18155
  className: styles["custom-col-2"],
17595
18156
  style: {
@@ -17668,7 +18229,7 @@ var MyAnswer = function MyAnswer(_ref) {
17668
18229
  alignItems: "center"
17669
18230
  }
17670
18231
  }, t("total_correct_rate")))), React__default.createElement("div", {
17671
- className: styles$4["titleMyAnswer2"]
18232
+ className: styles$6["titleMyAnswer2"]
17672
18233
  }, React__default.createElement(Typography, {
17673
18234
  sx: {
17674
18235
  color: "#97A1AF",
@@ -17681,7 +18242,7 @@ var MyAnswer = function MyAnswer(_ref) {
17681
18242
  fontWeight: 700
17682
18243
  }
17683
18244
  }, item.category.name))), React__default.createElement("div", {
17684
- className: styles$4["contentMyAnswer"]
18245
+ className: styles$6["contentMyAnswer"]
17685
18246
  }, React__default.createElement(ListView, {
17686
18247
  data: item.questions,
17687
18248
  render: function render(question, index) {
@@ -17797,7 +18358,7 @@ var CompareGrass = function CompareGrass(_ref2) {
17797
18358
  borderTop: index < effectSize.length - 1 ? "1px solid transparent" : undefined
17798
18359
  }
17799
18360
  }, React__default.createElement("td", {
17800
- className: styles$4["tdcolumn1"]
18361
+ className: styles$6["tdcolumn1"]
17801
18362
  }, t("problem"), " ", item.questionOrder + 1), React__default.createElement("td", {
17802
18363
  style: {
17803
18364
  textAlign: "center",
@@ -17805,9 +18366,9 @@ var CompareGrass = function CompareGrass(_ref2) {
17805
18366
  maxWidth: "30%"
17806
18367
  }
17807
18368
  }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
17808
- className: styles$4["tdcolumn3"],
18369
+ className: styles$6["tdcolumn3"],
17809
18370
  style: {
17810
- color: item.isCorrect ? styles$4.green_support_900 : styles$4.red_900,
18371
+ color: item.isCorrect ? styles$6.green_support_900 : styles$6.red_900,
17811
18372
  maxWidth: "30%"
17812
18373
  }
17813
18374
  }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
@@ -17818,7 +18379,7 @@ var CompareGrass = function CompareGrass(_ref2) {
17818
18379
  }, renderAnswer(item.questionAnswerType, item.mostSelectedAnswers)), React__default.createElement("td", {
17819
18380
  className: "" + printStyles["avoid-break-inside"]
17820
18381
  }, React__default.createElement("div", {
17821
- className: styles$4["classification"] + " " + printStyles["avoid-break-inside"]
18382
+ className: styles$6["classification"] + " " + printStyles["avoid-break-inside"]
17822
18383
  }, item.problemCategories.map(function (problem, index) {
17823
18384
  return React__default.createElement(Stack, {
17824
18385
  flexDirection: "row",
@@ -17861,11 +18422,11 @@ var CompareGrass = function CompareGrass(_ref2) {
17861
18422
  });
17862
18423
  };
17863
18424
  return React__default.createElement("div", {
17864
- className: "" + styles$4["compareGrass"]
18425
+ className: "" + styles$6["compareGrass"]
17865
18426
  }, React__default.createElement("div", {
17866
- className: styles$4["tableCompareGrass"]
18427
+ className: styles$6["tableCompareGrass"]
17867
18428
  }, React__default.createElement("div", {
17868
- className: styles$4["table-responsive"]
18429
+ className: styles$6["table-responsive"]
17869
18430
  }, React__default.createElement(Table, {
17870
18431
  style: {
17871
18432
  width: "100%"
@@ -17877,7 +18438,7 @@ var CompareGrass = function CompareGrass(_ref2) {
17877
18438
  },
17878
18439
  className: "" + printStyles["avoid-break-inside"]
17879
18440
  }, React__default.createElement("tr", null, React__default.createElement("th", {
17880
- className: styles$4["thcolumn1"]
18441
+ className: styles$6["thcolumn1"]
17881
18442
  }, t("problem_number")), React__default.createElement("th", {
17882
18443
  style: {
17883
18444
  textAlign: "center"
@@ -17958,37 +18519,37 @@ var TrickyProblem = function TrickyProblem(_ref) {
17958
18519
  });
17959
18520
  var renderProblems = function renderProblems() {
17960
18521
  return React__default.createElement(Fragment$1, null, React__default.createElement("div", {
17961
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
18522
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
17962
18523
  }, React__default.createElement(iconX, null), React__default.createElement("span", null, t("incorrect_problem_among_the_starred_problems"))), React__default.createElement("div", {
17963
- className: styles$4["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
18524
+ className: styles$6["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
17964
18525
  }, !!(inCorrectQuestions !== null && inCorrectQuestions !== void 0 && inCorrectQuestions.length) && inCorrectQuestions.map(function (question) {
17965
18526
  return React__default.createElement("span", {
17966
18527
  key: question.id,
17967
- className: styles$4["question"]
18528
+ className: styles$6["question"]
17968
18529
  }, t("number_question", {
17969
18530
  number: question.questionOrder + 1
17970
18531
  }));
17971
18532
  }), !(data !== null && data !== void 0 && data.questions.length) && React__default.createElement("div", {
17972
- className: styles$4["noData"]
18533
+ className: styles$6["noData"]
17973
18534
  }, t("no_data"))), React__default.createElement("div", {
17974
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
18535
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
17975
18536
  }, React__default.createElement(iconAssignedQuestions, null), React__default.createElement("span", null, t("correct_problem_among_the_starred_problems"))), React__default.createElement("div", {
17976
- className: styles$4["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
18537
+ className: styles$6["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
17977
18538
  }, !!(correctQuestions !== null && correctQuestions !== void 0 && correctQuestions.length) && correctQuestions.map(function (question) {
17978
18539
  return React__default.createElement("div", {
17979
18540
  key: question.id,
17980
- className: styles$4["question"]
18541
+ className: styles$6["question"]
17981
18542
  }, t("number_question", {
17982
18543
  number: question.questionOrder + 1
17983
18544
  }));
17984
18545
  }), !(data !== null && data !== void 0 && data.questions.length) && React__default.createElement("div", {
17985
- className: styles$4["noData"]
18546
+ className: styles$6["noData"]
17986
18547
  }, t("no_data"))));
17987
18548
  };
17988
18549
  return React__default.createElement("div", {
17989
- className: "" + styles$4["wrapperProblem"]
18550
+ className: "" + styles$6["wrapperProblem"]
17990
18551
  }, React__default.createElement("div", {
17991
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
18552
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
17992
18553
  onClick: function onClick() {
17993
18554
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
17994
18555
  }
@@ -18000,10 +18561,10 @@ var TrickyProblem = function TrickyProblem(_ref) {
18000
18561
  }
18001
18562
  }, t("tricky_problems")), isOpen ? React__default.createElement(IoChevronUp, {
18002
18563
  size: 24,
18003
- color: styles$4.gray_300
18564
+ color: styles$6.gray_300
18004
18565
  }) : React__default.createElement(IoChevronDown, {
18005
18566
  size: 24,
18006
- color: styles$4.gray_300
18567
+ color: styles$6.gray_300
18007
18568
  })), isOpen && React__default.createElement(Fragment$1, null, renderProblems()));
18008
18569
  };
18009
18570
 
@@ -18029,9 +18590,9 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18029
18590
  borderBottom: "1px solid #e4e7ec"
18030
18591
  } : {}
18031
18592
  }, React__default.createElement("td", {
18032
- className: styles$4["tdcolumn1"],
18593
+ className: styles$6["tdcolumn1"],
18033
18594
  style: {
18034
- color: styles$4.gray_900,
18595
+ color: styles$6.gray_900,
18035
18596
  fontSize: "13px",
18036
18597
  fontWeight: 500
18037
18598
  }
@@ -18040,22 +18601,22 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18040
18601
  })), React__default.createElement("td", {
18041
18602
  style: {
18042
18603
  textAlign: "center",
18043
- color: styles$4.gray_700,
18604
+ color: styles$6.gray_700,
18044
18605
  fontSize: "13px",
18045
18606
  fontWeight: 500
18046
18607
  }
18047
18608
  }, item.duration ? formatTimeSecond(item.duration, t) : ""), React__default.createElement("td", {
18048
- className: styles$4["tdcolumn3"],
18609
+ className: styles$6["tdcolumn3"],
18049
18610
  style: {
18050
18611
  textAlign: "center",
18051
- color: styles$4.gray_700,
18612
+ color: styles$6.gray_700,
18052
18613
  fontSize: "13px",
18053
18614
  fontWeight: 500
18054
18615
  }
18055
18616
  }, item.topDuration ? formatTimeSecond(item.topDuration, t) : ""), React__default.createElement("td", {
18056
18617
  style: {
18057
18618
  textAlign: "center",
18058
- color: isBetter ? styles$4.dark : styles$4.red_900,
18619
+ color: isBetter ? styles$6.dark : styles$6.red_900,
18059
18620
  fontSize: "13px",
18060
18621
  fontWeight: 600
18061
18622
  }
@@ -18071,15 +18632,15 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18071
18632
  return React__default.createElement(Stack, {
18072
18633
  direction: "row",
18073
18634
  flexWrap: "nowrap",
18074
- className: styles$4["content"] + " " + printStyles["avoid-break-inside"],
18635
+ className: styles$6["content"] + " " + printStyles["avoid-break-inside"],
18075
18636
  key: item.id
18076
18637
  }, React__default.createElement(Box, {
18077
18638
  width: "160px",
18078
- className: styles$4["contentColumn1"]
18639
+ className: styles$6["contentColumn1"]
18079
18640
  }, React__default.createElement(Stack, null, React__default.createElement("div", null, React__default.createElement("span", {
18080
- className: styles$4["span1"]
18641
+ className: styles$6["span1"]
18081
18642
  }, t("problem")), React__default.createElement("span", {
18082
- className: styles$4["span2"]
18643
+ className: styles$6["span2"]
18083
18644
  }, t("number_question", {
18084
18645
  number: item.questionOrder + 1
18085
18646
  }))), (category === null || category === void 0 ? void 0 : category.name) && React__default.createElement(Typography, {
@@ -18090,22 +18651,22 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18090
18651
  textAlign: "center"
18091
18652
  }
18092
18653
  }, category.name))), React__default.createElement(Box, {
18093
- className: styles$4["contentColumn2"]
18654
+ className: styles$6["contentColumn2"]
18094
18655
  }, React__default.createElement("div", null, React__default.createElement("span", {
18095
- className: styles$4["span1"]
18656
+ className: styles$6["span1"]
18096
18657
  }, t("my_time")), React__default.createElement("span", {
18097
- className: styles$4["span2"]
18658
+ className: styles$6["span2"]
18098
18659
  }, t("top_time"))), React__default.createElement("div", null, React__default.createElement("span", {
18099
- className: styles$4["duration"]
18660
+ className: styles$6["duration"]
18100
18661
  }, formatTimeSecond(item.duration, t)), React__default.createElement("span", {
18101
- className: styles$4["topDuration"]
18662
+ className: styles$6["topDuration"]
18102
18663
  }, formatTimeSecond(item.topDuration, t)))));
18103
18664
  });
18104
18665
  };
18105
18666
  return React__default.createElement("div", {
18106
- className: "" + styles$4["wrapperProblem"]
18667
+ className: "" + styles$6["wrapperProblem"]
18107
18668
  }, React__default.createElement("div", {
18108
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
18669
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
18109
18670
  onClick: function onClick() {
18110
18671
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
18111
18672
  }
@@ -18121,20 +18682,20 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18121
18682
  }
18122
18683
  }, t("problems_that_took_a_long_time")), React__default.createElement(Typography, {
18123
18684
  sx: {
18124
- color: styles$4.gray_300,
18685
+ color: styles$6.gray_300,
18125
18686
  fontSize: "11px",
18126
18687
  fontWeight: 500
18127
18688
  }
18128
18689
  }, t("protracted_problem_detail"))), isOpen ? React__default.createElement(IoChevronUp, {
18129
18690
  size: 24,
18130
- color: styles$4.gray_300
18691
+ color: styles$6.gray_300
18131
18692
  }) : React__default.createElement(IoChevronDown, {
18132
18693
  size: 24,
18133
- color: styles$4.gray_300
18694
+ color: styles$6.gray_300
18134
18695
  })), isOpen && React__default.createElement(Fragment$1, null, data.length ? React__default.createElement("div", {
18135
- className: styles$4["tableCompareGrass"]
18696
+ className: styles$6["tableCompareGrass"]
18136
18697
  }, React__default.createElement("div", {
18137
- className: styles$4["table-responsive"]
18698
+ className: styles$6["table-responsive"]
18138
18699
  }, React__default.createElement(Table, {
18139
18700
  style: {
18140
18701
  width: "100%",
@@ -18146,7 +18707,7 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18146
18707
  },
18147
18708
  className: "" + printStyles["avoid-break-inside"]
18148
18709
  }, React__default.createElement("tr", null, React__default.createElement("th", {
18149
- className: styles$4["thcolumn1"]
18710
+ className: styles$6["thcolumn1"]
18150
18711
  }, t("problem_number")), React__default.createElement("th", {
18151
18712
  style: {
18152
18713
  textAlign: "center"
@@ -18160,7 +18721,7 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18160
18721
  textAlign: "center"
18161
18722
  }
18162
18723
  }, t("time_comparison")))), React__default.createElement("tbody", null, isMyStoryStudent ? renderTableBody(data) : renderQuestions(data))))) : React__default.createElement("div", {
18163
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
18724
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
18164
18725
  }, t("no_data"))));
18165
18726
  };
18166
18727
 
@@ -18232,39 +18793,39 @@ var Vulnerable = function Vulnerable(_ref) {
18232
18793
  borderBottom: index < data.length - 1 ? "1px solid #e4e7ec" : undefined
18233
18794
  }
18234
18795
  }, React__default.createElement("td", {
18235
- className: styles$4["tdcolumn1"],
18796
+ className: styles$6["tdcolumn1"],
18236
18797
  style: {
18237
- color: styles$4.gray_900,
18798
+ color: styles$6.gray_900,
18238
18799
  fontSize: "13px",
18239
18800
  fontWeight: 600
18240
18801
  }
18241
18802
  }, React__default.createElement(Typography, {
18242
- color: styles$4.gray_900,
18803
+ color: styles$6.gray_900,
18243
18804
  fontSize: "13px",
18244
18805
  fontWeight: 600
18245
18806
  }, t("problem") + " " + (item.questionOrder + 1))), React__default.createElement("td", {
18246
18807
  style: {
18247
18808
  textAlign: "center",
18248
- color: styles$4.dark,
18809
+ color: styles$6.dark,
18249
18810
  fontSize: "13px",
18250
18811
  fontWeight: 600
18251
18812
  }
18252
18813
  }, item.overallCorrectRate.toFixed(2) ? item.overallCorrectRate.toFixed(2) + "%" : ""), React__default.createElement("td", {
18253
- className: styles$4["tdcolumn3"],
18814
+ className: styles$6["tdcolumn3"],
18254
18815
  style: {
18255
- color: styles$4.red_900,
18816
+ color: styles$6.red_900,
18256
18817
  fontSize: "13px",
18257
18818
  fontWeight: 500
18258
18819
  }
18259
18820
  }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
18260
18821
  style: {
18261
18822
  textAlign: "center",
18262
- color: styles$4.gray_700
18823
+ color: styles$6.gray_700
18263
18824
  }
18264
18825
  }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
18265
18826
  style: {
18266
18827
  textAlign: "center",
18267
- color: styles$4.gray_700
18828
+ color: styles$6.gray_700
18268
18829
  }
18269
18830
  }, item.category.name ? item.category.name : ""));
18270
18831
  });
@@ -18275,18 +18836,18 @@ var Vulnerable = function Vulnerable(_ref) {
18275
18836
  return React__default.createElement(Stack, {
18276
18837
  direction: "row",
18277
18838
  flexWrap: "nowrap",
18278
- className: styles$4["content"] + " " + printStyles["avoid-break-inside"],
18839
+ className: styles$6["content"] + " " + printStyles["avoid-break-inside"],
18279
18840
  key: question.id
18280
18841
  }, React__default.createElement(Box, {
18281
18842
  width: "160px",
18282
- className: styles$4["contentColumn1"]
18843
+ className: styles$6["contentColumn1"]
18283
18844
  }, React__default.createElement(Stack, {
18284
18845
  direction: "column",
18285
18846
  gap: 1
18286
18847
  }, React__default.createElement("div", null, React__default.createElement("span", {
18287
- className: styles$4["span1"]
18848
+ className: styles$6["span1"]
18288
18849
  }, t("problem_number")), React__default.createElement("span", {
18289
- className: styles$4["span2"]
18850
+ className: styles$6["span2"]
18290
18851
  }, t("number_question", {
18291
18852
  number: question.questionOrder + 1
18292
18853
  }))), ((_question$category = question.category) === null || _question$category === void 0 ? void 0 : _question$category.name) && React__default.createElement(Typography, {
@@ -18297,18 +18858,18 @@ var Vulnerable = function Vulnerable(_ref) {
18297
18858
  textAlign: "center"
18298
18859
  }
18299
18860
  }, question.category.name))), React__default.createElement(Box, {
18300
- className: styles$4["contentColumn2"],
18861
+ className: styles$6["contentColumn2"],
18301
18862
  sx: {
18302
18863
  alignItems: "center"
18303
18864
  }
18304
18865
  }, React__default.createElement("div", null, React__default.createElement("span", {
18305
- className: styles$4["span1"]
18866
+ className: styles$6["span1"]
18306
18867
  }, t("total_correct_rate")), React__default.createElement("span", {
18307
- className: styles$4["span2"]
18868
+ className: styles$6["span2"]
18308
18869
  }, t("my_wrong_answer"))), React__default.createElement("div", null, React__default.createElement("span", {
18309
- className: styles$4["overallCorrectRate"]
18870
+ className: styles$6["overallCorrectRate"]
18310
18871
  }, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
18311
- className: styles$4["answer"]
18872
+ className: styles$6["answer"]
18312
18873
  }, typeof question.selectedAnswers === "string" ? renderAnswer(question.questionAnswerType, question.selectedAnswers) : renderTextbookAnswer(question.questionAnswerType, question.selectedAnswers, question.textualAnswers), " ", t("answer"), " ", typeof question.correctAnswers === "string" ? renderAnswer(question.questionAnswerType, question.correctAnswers) : renderTextbookAnswer(question.questionAnswerType, question.correctAnswers, question.correctTextualAnswers, true)))));
18313
18874
  });
18314
18875
  };
@@ -18316,9 +18877,9 @@ var Vulnerable = function Vulnerable(_ref) {
18316
18877
  changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
18317
18878
  };
18318
18879
  return React__default.createElement("div", {
18319
- className: "" + styles$4["wrapperProblem"]
18880
+ className: "" + styles$6["wrapperProblem"]
18320
18881
  }, React__default.createElement("div", {
18321
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
18882
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
18322
18883
  onClick: handleToggle
18323
18884
  }, React__default.createElement(Stack, {
18324
18885
  flexDirection: "row",
@@ -18332,20 +18893,20 @@ var Vulnerable = function Vulnerable(_ref) {
18332
18893
  }
18333
18894
  }, t("issues_vulnerable")), React__default.createElement(Typography, {
18334
18895
  sx: {
18335
- color: styles$4.gray_300,
18896
+ color: styles$6.gray_300,
18336
18897
  fontSize: "11px",
18337
18898
  fontWeight: 500
18338
18899
  }
18339
18900
  }, t("vulnerable_detail"))), isOpen ? React__default.createElement(IoChevronUp, {
18340
18901
  size: 24,
18341
- color: styles$4.gray_300
18902
+ color: styles$6.gray_300
18342
18903
  }) : React__default.createElement(IoChevronDown, {
18343
18904
  size: 24,
18344
- color: styles$4.gray_300
18905
+ color: styles$6.gray_300
18345
18906
  })), isOpen && React__default.createElement(Fragment$1, null, incorrectQuestions.length ? React__default.createElement("div", {
18346
- className: styles$4["tableCompareGrass"]
18907
+ className: styles$6["tableCompareGrass"]
18347
18908
  }, React__default.createElement("div", {
18348
- className: styles$4["table-responsive"]
18909
+ className: styles$6["table-responsive"]
18349
18910
  }, isMyStoryStudent && React__default.createElement(Table, {
18350
18911
  style: {
18351
18912
  width: "100%",
@@ -18357,7 +18918,7 @@ var Vulnerable = function Vulnerable(_ref) {
18357
18918
  },
18358
18919
  className: "" + printStyles["avoid-break-inside"]
18359
18920
  }, React__default.createElement("tr", null, React__default.createElement("th", {
18360
- className: styles$4["thcolumn1"]
18921
+ className: styles$6["thcolumn1"]
18361
18922
  }, t("problem_number")), React__default.createElement("th", {
18362
18923
  style: {
18363
18924
  textAlign: "center"
@@ -18375,7 +18936,7 @@ var Vulnerable = function Vulnerable(_ref) {
18375
18936
  textAlign: "center"
18376
18937
  }
18377
18938
  }, t("_category")))), React__default.createElement("tbody", null, renderTableBody(incorrectQuestions))), !isMyStoryStudent && renderQuestions(incorrectQuestions))) : React__default.createElement("div", {
18378
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
18939
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
18379
18940
  }, t("no_data"))));
18380
18941
  };
18381
18942
 
@@ -18426,24 +18987,24 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18426
18987
  borderBottom: index < data.length - 1 ? "1px solid #e4e7ec" : undefined
18427
18988
  }
18428
18989
  }, React__default.createElement("td", {
18429
- className: styles$4["tdcolumn1"],
18990
+ className: styles$6["tdcolumn1"],
18430
18991
  style: {
18431
- color: styles$4.gray_900,
18992
+ color: styles$6.gray_900,
18432
18993
  fontSize: "13px",
18433
18994
  fontWeight: 600
18434
18995
  }
18435
18996
  }, item.name), React__default.createElement("td", {
18436
18997
  style: {
18437
18998
  textAlign: "center",
18438
- color: styles$4.gray_900,
18999
+ color: styles$6.gray_900,
18439
19000
  fontSize: "13px",
18440
19001
  fontWeight: 600
18441
19002
  }
18442
19003
  }, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("td", {
18443
- className: styles$4["tdcolumn3"],
19004
+ className: styles$6["tdcolumn3"],
18444
19005
  style: {
18445
19006
  textAlign: "center",
18446
- color: styles$4.gray_700,
19007
+ color: styles$6.gray_700,
18447
19008
  fontSize: "13px",
18448
19009
  fontWeight: 500
18449
19010
  }
@@ -18452,7 +19013,7 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18452
19013
  }) : ""), React__default.createElement("td", {
18453
19014
  style: {
18454
19015
  textAlign: "center",
18455
- color: styles$4.gray_700,
19016
+ color: styles$6.gray_700,
18456
19017
  fontSize: "13px",
18457
19018
  fontWeight: 500
18458
19019
  }
@@ -18461,7 +19022,7 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18461
19022
  }) : ""), React__default.createElement("td", {
18462
19023
  style: {
18463
19024
  textAlign: "center",
18464
- color: styles$4.gray_700,
19025
+ color: styles$6.gray_700,
18465
19026
  fontSize: "13px",
18466
19027
  fontWeight: 500
18467
19028
  }
@@ -18474,26 +19035,26 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18474
19035
  left: item.percentageAmongStudents + "%"
18475
19036
  };
18476
19037
  return React__default.createElement("div", {
18477
- className: styles$4["contentProblem"] + " " + printStyles["avoid-break-inside"],
19038
+ className: styles$6["contentProblem"] + " " + printStyles["avoid-break-inside"],
18478
19039
  key: item.id
18479
19040
  }, React__default.createElement("div", {
18480
- className: styles$4["labelProblem"]
19041
+ className: styles$6["labelProblem"]
18481
19042
  }, React__default.createElement("span", {
18482
- className: styles$4["name"]
19043
+ className: styles$6["name"]
18483
19044
  }, item.name), React__default.createElement("div", {
18484
- className: styles$4["percent"]
19045
+ className: styles$6["percent"]
18485
19046
  }, React__default.createElement("span", null, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("span", null, item.totalCorrectQuestions, "/", item.totalQuestions, t("problems")))), React__default.createElement("div", {
18486
- className: styles$4["slider"]
19047
+ className: styles$6["slider"]
18487
19048
  }, React__default.createElement("div", null, React__default.createElement("span", {
18488
- className: styles$4["track"],
19049
+ className: styles$6["track"],
18489
19050
  style: trackStyle
18490
19051
  }))));
18491
19052
  });
18492
19053
  };
18493
19054
  return React__default.createElement("div", {
18494
- className: "" + styles$4["wrapperProblem"]
19055
+ className: "" + styles$6["wrapperProblem"]
18495
19056
  }, React__default.createElement("div", {
18496
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19057
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
18497
19058
  onClick: function onClick() {
18498
19059
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : ProblemKey.GradesByTerritory);
18499
19060
  }
@@ -18505,14 +19066,14 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18505
19066
  }
18506
19067
  }, t("grades_by_area")), isOpen ? React__default.createElement(IoChevronUp, {
18507
19068
  size: 24,
18508
- color: styles$4.gray_300
19069
+ color: styles$6.gray_300
18509
19070
  }) : React__default.createElement(IoChevronDown, {
18510
19071
  size: 24,
18511
- color: styles$4.gray_300
19072
+ color: styles$6.gray_300
18512
19073
  })), isOpen && React__default.createElement(Fragment$1, null, formattedData.length ? React__default.createElement("div", {
18513
- className: styles$4["tableCompareGrass"]
19074
+ className: styles$6["tableCompareGrass"]
18514
19075
  }, React__default.createElement("div", {
18515
- className: styles$4["table-responsive"]
19076
+ className: styles$6["table-responsive"]
18516
19077
  }, isMyStoryStudent && React__default.createElement(Table, {
18517
19078
  style: {
18518
19079
  width: "100%",
@@ -18524,7 +19085,7 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18524
19085
  },
18525
19086
  className: "" + printStyles["avoid-break-inside"]
18526
19087
  }, React__default.createElement("tr", null, React__default.createElement("th", {
18527
- className: styles$4["thcolumn1"]
19088
+ className: styles$6["thcolumn1"]
18528
19089
  }, t("categories")), React__default.createElement("th", {
18529
19090
  style: {
18530
19091
  textAlign: "center"
@@ -18542,197 +19103,40 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18542
19103
  textAlign: "center"
18543
19104
  }
18544
19105
  }, t("total_solve_time")))), React__default.createElement("tbody", null, renderTableBody(formattedData))), !isMyStoryStudent && renderCategories(formattedData))) : React__default.createElement("div", {
18545
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
19106
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
18546
19107
  }, t("no_data"))));
18547
19108
  };
18548
19109
 
18549
- var iconWarning = function iconWarning(_ref) {
18550
- var _ref$width = _ref.width,
18551
- width = _ref$width === void 0 ? "17" : _ref$width,
18552
- _ref$height = _ref.height,
18553
- height = _ref$height === void 0 ? "16" : _ref$height,
18554
- color = _ref.color;
18555
- return React__default.createElement("svg", {
18556
- width: width,
18557
- height: height,
18558
- viewBox: "0 0 17 16",
18559
- fill: color,
18560
- xmlns: "http://www.w3.org/2000/svg"
18561
- }, React__default.createElement("path", {
18562
- d: "M14.5335 12.4712L9.20754 2.58062C8.83004 1.87937 7.82441 1.87937 7.4466 2.58062L2.12097 12.4712C2.03901 12.6235 1.99792 12.7944 2.00171 12.9672C2.00549 13.1401 2.05404 13.309 2.14259 13.4575C2.23115 13.606 2.3567 13.729 2.50698 13.8145C2.65726 13.9 2.82714 13.9451 3.00004 13.9453H13.6529C13.8259 13.9453 13.996 13.9005 14.1465 13.8151C14.2969 13.7297 14.4227 13.6067 14.5115 13.4582C14.6002 13.3096 14.6489 13.1406 14.6527 12.9676C14.6566 12.7946 14.6155 12.6236 14.5335 12.4712ZM8.32722 12.4141C8.20361 12.4141 8.08277 12.3774 7.97999 12.3087C7.87721 12.2401 7.7971 12.1424 7.7498 12.0282C7.7025 11.914 7.69012 11.7884 7.71423 11.6671C7.73835 11.5459 7.79787 11.4345 7.88528 11.3471C7.97269 11.2597 8.08405 11.2002 8.20529 11.1761C8.32653 11.152 8.4522 11.1643 8.5664 11.2116C8.6806 11.2589 8.77822 11.3391 8.84689 11.4418C8.91557 11.5446 8.95222 11.6654 8.95222 11.7891C8.95222 11.8711 8.93606 11.9524 8.90465 12.0282C8.87324 12.1041 8.8272 12.173 8.76917 12.231C8.71113 12.289 8.64223 12.3351 8.5664 12.3665C8.49057 12.3979 8.4093 12.4141 8.32722 12.4141ZM9.00597 6.12813L8.8266 9.94063C8.8266 10.0732 8.77392 10.2004 8.68015 10.2942C8.58638 10.3879 8.45921 10.4406 8.3266 10.4406C8.19399 10.4406 8.06681 10.3879 7.97305 10.2942C7.87928 10.2004 7.8266 10.0732 7.8266 9.94063L7.64722 6.12969C7.64319 6.03862 7.65754 5.94768 7.6894 5.86227C7.72127 5.77687 7.77 5.69875 7.8327 5.63259C7.8954 5.56642 7.97078 5.51355 8.05434 5.47713C8.13791 5.44072 8.22795 5.4215 8.3191 5.42063H8.32566C8.41743 5.42058 8.50826 5.43912 8.59267 5.47515C8.67708 5.51117 8.75331 5.56392 8.81677 5.63021C8.88023 5.6965 8.92961 5.77497 8.96191 5.86087C8.99421 5.94676 9.00878 6.03832 9.00472 6.13L9.00597 6.12813Z",
18563
- fill: "#DB4D4D"
18564
- }));
18565
- };
18566
-
18567
- var schema$3 = object().shape({
18568
- content: string().required()
18569
- });
18570
19110
  function CreateNewQuestionDialog(_ref) {
18571
- var handleCreateQuestion = _ref.handleCreateQuestion,
19111
+ var _handleCreateQuestion = _ref.handleCreateQuestion,
18572
19112
  openCreateQuestionDialog = _ref.openCreateQuestionDialog,
18573
19113
  onCloseCreateQuestion = _ref.onCloseCreateQuestion,
18574
19114
  studentTextbookId = _ref.studentTextbookId,
18575
19115
  examSessionId = _ref.examSessionId,
18576
19116
  selectedQuestion = _ref.selectedQuestion,
18577
19117
  questionOptions = _ref.questionOptions;
18578
- var _useTranslation = useTranslation(),
18579
- t = _useTranslation.t;
18580
- var _useState = useState(false),
18581
- keyboardOpen = _useState[0],
18582
- setKeyboardOpen = _useState[1];
18583
- useEffect(function () {
18584
- var handleResize = function handleResize() {
18585
- if (window.innerHeight < window.outerHeight) {
18586
- setKeyboardOpen(true);
18587
- } else {
18588
- setKeyboardOpen(false);
18589
- }
18590
- };
18591
- window.addEventListener("resize", handleResize);
18592
- handleResize();
18593
- return function () {
18594
- return window.removeEventListener("resize", handleResize);
18595
- };
18596
- }, []);
18597
- return React__default.createElement(Dialog, {
18598
- onClose: onCloseCreateQuestion,
18599
- open: openCreateQuestionDialog,
18600
- PaperProps: {
18601
- sx: {
18602
- minWidth: "363px",
18603
- overflowY: "unset",
18604
- position: "relative",
18605
- bottom: keyboardOpen ? "0" : undefined,
18606
- transition: "top 0.3s ease"
18607
- }
18608
- }
18609
- }, React__default.createElement(DialogTitle$1, {
18610
- id: "customized-dialog-title"
18611
- }, React__default.createElement(Typography$1, {
18612
- fontWeight: 700,
18613
- fontSize: "16px",
18614
- lineHeight: "19.09px",
18615
- color: "#202B37"
18616
- }, t("ask_a_question"))), React__default.createElement(IconButton$1, {
18617
- "aria-label": "close",
18618
- sx: {
18619
- position: "absolute",
18620
- right: 8,
18621
- top: 8,
18622
- color: function color(theme) {
18623
- return theme.palette.grey[500];
18624
- }
18625
- },
18626
- onClick: onCloseCreateQuestion
18627
- }, React__default.createElement(iconCloseDialog, null)), React__default.createElement(Formik, {
18628
- initialValues: {
18629
- content: "",
18630
- questionId: (selectedQuestion === null || selectedQuestion === void 0 ? void 0 : selectedQuestion.id) || 0
18631
- },
18632
- validationSchema: schema$3,
18633
- onSubmit: function onSubmit(values) {
18634
- handleCreateQuestion(_extends({}, values, {
19118
+ var schema = object().shape({
19119
+ content: string().required()
19120
+ });
19121
+ var initialValues = {
19122
+ content: "",
19123
+ questionId: (selectedQuestion === null || selectedQuestion === void 0 ? void 0 : selectedQuestion.id) || 0
19124
+ };
19125
+ return React__default.createElement(CommonCreateNewQuestionDialog, {
19126
+ handleCreateQuestion: function handleCreateQuestion(values) {
19127
+ return _handleCreateQuestion(_extends({}, values, {
18635
19128
  examSessionId: examSessionId,
18636
19129
  studentTextbookId: studentTextbookId
18637
19130
  }));
18638
- }
18639
- }, function (_ref2) {
18640
- var values = _ref2.values,
18641
- errors = _ref2.errors,
18642
- setFieldValue = _ref2.setFieldValue;
18643
- return React__default.createElement(Form, null, React__default.createElement(DialogContent$1, {
18644
- sx: {
18645
- padding: 0,
18646
- overflowY: "auto"
18647
- }
18648
- }, React__default.createElement(Box, {
18649
- display: "flex",
18650
- flexDirection: "column",
18651
- gap: "8px",
18652
- padding: "24px 24px 40px 24px"
18653
- }, React__default.createElement(Stack, null, React__default.createElement("label", {
18654
- htmlFor: "questions",
18655
- className: styles["form-label"] + " " + styles$4["form-label-dialog"]
18656
- }, t("questions_to_ask")), React__default.createElement(Field, {
18657
- id: "questions",
18658
- name: "questionId",
18659
- render: function render(_ref3) {
18660
- var field = _ref3.field;
18661
- return React__default.createElement(CustomSelect, Object.assign({}, field, {
18662
- id: "questions",
18663
- menuPlacement: "bottom",
18664
- options: questionOptions,
18665
- onChange: function onChange(_ref4) {
18666
- var value = _ref4.value;
18667
- return setFieldValue("questionId", value);
18668
- },
18669
- isClearable: false
18670
- }));
18671
- }
18672
- })), React__default.createElement(Stack, null, React__default.createElement("label", {
18673
- htmlFor: "content-question",
18674
- className: styles["form-label"] + " " + styles$4["form-label-dialog"]
18675
- }, t("question_content")), React__default.createElement(Box, {
18676
- position: "relative",
18677
- display: "flex",
18678
- flexDirection: "row",
18679
- alignItems: "center"
18680
- }, React__default.createElement(Field, {
18681
- as: "textarea",
18682
- rows: 3,
18683
- id: "content-question",
18684
- style: {
18685
- paddingRight: "40px"
18686
- },
18687
- name: "content",
18688
- placeholder: t("the_problem_is_difficult"),
18689
- className: styles["form-control"]
18690
- }), (errors === null || errors === void 0 ? void 0 : errors.content) && React__default.createElement(Box, {
18691
- position: "absolute",
18692
- right: 0,
18693
- padding: "0 12px",
18694
- display: "flex",
18695
- alignItems: "center"
18696
- }, React__default.createElement(iconWarning, null))), React__default.createElement(Box, {
18697
- marginBottom: "4px"
18698
- }), React__default.createElement(Typography$1, {
18699
- fontWeight: 500,
18700
- fontSize: "10px",
18701
- lineHeight: "11.93px",
18702
- color: !(errors !== null && errors !== void 0 && errors.content) ? "#97A1AF" : styles$4.red_900
18703
- }, !(errors !== null && errors !== void 0 && errors.content) ? t("your_questions_will_be_sent_to_the_counselor") : t("please_enter_your_question"))))), React__default.createElement(DialogActions$1, {
18704
- sx: {
18705
- display: "flex",
18706
- justifyContent: "space-between",
18707
- alignItems: "center",
18708
- padding: "12px",
18709
- borderTop: "1px solid #CED2DA"
18710
- }
18711
- }, React__default.createElement(MButton, {
18712
- className: styles$4["btn-cancel"],
18713
- onClick: onCloseCreateQuestion
18714
- }, React__default.createElement(Typography$1, {
18715
- sx: {
18716
- color: styles.dark + " !important"
18717
- },
18718
- fontWeight: 700,
18719
- fontSize: "14px",
18720
- lineHeight: "16.71px"
18721
- }, t("cancel"))), React__default.createElement(MButton, {
18722
- variant: "contained",
18723
- sx: {
18724
- bgcolor: styles.dark
18725
- },
18726
- className: styles$4["btn-register"],
18727
- type: "submit",
18728
- disabled: !values.content.trim().length
18729
- }, React__default.createElement(Typography$1, {
18730
- fontWeight: 700,
18731
- fontSize: "14px",
18732
- lineHeight: "16.71px",
18733
- color: "#FFFFFF"
18734
- }, t("registration")))));
18735
- }));
19131
+ },
19132
+ nameContent: "content",
19133
+ nameQuestion: "questionId",
19134
+ openDialog: openCreateQuestionDialog,
19135
+ onClose: onCloseCreateQuestion,
19136
+ options: questionOptions,
19137
+ schema: schema,
19138
+ initialValues: initialValues
19139
+ });
18736
19140
  }
18737
19141
 
18738
19142
  var _excluded$8 = ["children", "value", "index"];
@@ -18779,18 +19183,18 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
18779
19183
  color: "#414E62"
18780
19184
  }
18781
19185
  }, t("article_number"), " ", timelyOrderQuestion.article), React__default.createElement("div", {
18782
- className: styles$4["compareChart"] + " " + printStyles["avoid-break-inside"]
19186
+ className: styles$6["compareChart"] + " " + printStyles["avoid-break-inside"]
18783
19187
  }, React__default.createElement("div", {
18784
- className: "" + styles$4["prevChart"]
19188
+ className: "" + styles$6["prevChart"]
18785
19189
  }), React__default.createElement("div", {
18786
- className: styles$4["chart"] + " sr-line-chart"
19190
+ className: styles$6["chart"] + " sr-line-chart"
18787
19191
  }, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
18788
19192
  ref: chartRef,
18789
19193
  height: 389,
18790
19194
  options: chartOptions,
18791
19195
  series: series
18792
19196
  }))), React__default.createElement("div", {
18793
- className: "" + styles$4["nextChart"]
19197
+ className: "" + styles$6["nextChart"]
18794
19198
  })));
18795
19199
  };
18796
19200
 
@@ -18829,7 +19233,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18829
19233
  },
18830
19234
  key: data.id
18831
19235
  }, React__default.createElement("div", {
18832
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
19236
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
18833
19237
  }, React__default.createElement("div", {
18834
19238
  className: styles["custom-col-2"],
18835
19239
  style: {
@@ -18839,7 +19243,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18839
19243
  padding: "5px 8px"
18840
19244
  }
18841
19245
  }, data.isStar ? React__default.createElement(iconStarQuestion, null) : React__default.createElement(iconNoStarQuestion, null), React__default.createElement("span", {
18842
- className: styles$4["questionOrder"]
19246
+ className: styles$6["questionOrder"]
18843
19247
  }, t("number_question", {
18844
19248
  number: data.questionOrder + 1
18845
19249
  }))), React__default.createElement("div", {
@@ -18850,11 +19254,11 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18850
19254
  gap: "4px"
18851
19255
  }
18852
19256
  }, data.isCorrect && (!!((_data$selectedAnswers = data.selectedAnswers) !== null && _data$selectedAnswers !== void 0 && _data$selectedAnswers.length) || !!((_data$textualAnswers = data.textualAnswers) !== null && _data$textualAnswers !== void 0 && _data$textualAnswers.length)) && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
18853
- className: styles$4["answerCorrect"]
19257
+ className: styles$6["answerCorrect"]
18854
19258
  }, t("correct"))), !data.isCorrect && (!!((_data$selectedAnswers2 = data.selectedAnswers) !== null && _data$selectedAnswers2 !== void 0 && _data$selectedAnswers2.length) || !!((_data$textualAnswers2 = data.textualAnswers) !== null && _data$textualAnswers2 !== void 0 && _data$textualAnswers2.length)) && React__default.createElement(Fragment$1, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
18855
- className: styles$4["answerIncorrect"]
19259
+ className: styles$6["answerIncorrect"]
18856
19260
  }, t("incorrect"))), !((_data$selectedAnswers3 = data.selectedAnswers) !== null && _data$selectedAnswers3 !== void 0 && _data$selectedAnswers3.length) && !((_data$textualAnswers3 = data.textualAnswers) !== null && _data$textualAnswers3 !== void 0 && _data$textualAnswers3.length) && React__default.createElement(Fragment$1, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
18857
- className: styles$4["answerNograss"]
19261
+ className: styles$6["answerNograss"]
18858
19262
  }, t("no_solution")))), React__default.createElement("div", {
18859
19263
  className: styles["custom-col-2"],
18860
19264
  style: {
@@ -18865,12 +19269,12 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18865
19269
  style: {
18866
19270
  margin: 0
18867
19271
  },
18868
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
19272
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
18869
19273
  }, formatTimeSecond(Math.round(data.duration), t)) : React__default.createElement("p", {
18870
19274
  style: {
18871
19275
  margin: 0
18872
19276
  },
18873
- className: styles$4["answerNoTime"]
19277
+ className: styles$6["answerNoTime"]
18874
19278
  }, t("no_time"))), React__default.createElement("div", {
18875
19279
  className: styles["custom-col-2"],
18876
19280
  style: {
@@ -18881,13 +19285,13 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18881
19285
  style: {
18882
19286
  margin: 0
18883
19287
  },
18884
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
19288
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
18885
19289
  }, formatTimeDiff(data.duration, data.topDuration, t)) : React__default.createElement("p", {
18886
19290
  style: {
18887
19291
  margin: 0,
18888
19292
  textAlign: "center"
18889
19293
  },
18890
- className: styles$4["answerNoTime"]
19294
+ className: styles$6["answerNoTime"]
18891
19295
  }, "-")), React__default.createElement("div", {
18892
19296
  className: styles["custom-col-2"],
18893
19297
  style: {
@@ -18898,12 +19302,12 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18898
19302
  style: {
18899
19303
  margin: 0
18900
19304
  },
18901
- className: styles$4["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$4)
19305
+ className: styles$6["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$6)
18902
19306
  }, data.overallCorrectRate.toFixed(2) + "%") : React__default.createElement("p", {
18903
19307
  style: {
18904
19308
  margin: 0
18905
19309
  },
18906
- className: styles$4["answerNoTime"]
19310
+ className: styles$6["answerNoTime"]
18907
19311
  }, t("no_time"))), isStudent && !isLearningSpace && React__default.createElement(Box, {
18908
19312
  className: styles["custom-col-2"]
18909
19313
  }, openContextMenu ? React__default.createElement(ClickAwayListener, {
@@ -18975,7 +19379,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18975
19379
  }));
18976
19380
  };
18977
19381
  return React__default.createElement("div", {
18978
- className: "" + styles$4["myanswer"]
19382
+ className: "" + styles$6["myanswer"]
18979
19383
  }, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
18980
19384
  var _item$categories;
18981
19385
  return React__default.createElement("div", {
@@ -18986,7 +19390,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18986
19390
  bgcolor: "#F9FAFB",
18987
19391
  flexDirection: "row",
18988
19392
  padding: "12px",
18989
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
19393
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
18990
19394
  }, React__default.createElement("div", {
18991
19395
  className: styles["custom-col-2"],
18992
19396
  style: {
@@ -19065,7 +19469,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
19065
19469
  alignItems: "center"
19066
19470
  }
19067
19471
  }, t("total_correct_rate")))), React__default.createElement("div", {
19068
- className: styles$4["titleMyAnswer2"]
19472
+ className: styles$6["titleMyAnswer2"]
19069
19473
  }, React__default.createElement(Typography, {
19070
19474
  sx: {
19071
19475
  color: "#97A1AF",
@@ -19080,7 +19484,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
19080
19484
  }, (_item$categories = item.categories) === null || _item$categories === void 0 ? void 0 : _item$categories.map(function (i) {
19081
19485
  return i.name;
19082
19486
  }).join(" / ")))), React__default.createElement("div", {
19083
- className: styles$4["contentMyAnswer"]
19487
+ className: styles$6["contentMyAnswer"]
19084
19488
  }, React__default.createElement(ListView, {
19085
19489
  data: item.questions,
19086
19490
  render: function render(question, index) {
@@ -19110,24 +19514,24 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19110
19514
  borderBottom: index < (data === null || data === void 0 ? void 0 : data.length) - 1 ? "1px solid #e4e7ec" : undefined
19111
19515
  }
19112
19516
  }, React__default.createElement("td", {
19113
- className: styles$4["tdcolumn1"],
19517
+ className: styles$6["tdcolumn1"],
19114
19518
  style: {
19115
- color: styles$4.gray_900,
19519
+ color: styles$6.gray_900,
19116
19520
  fontSize: "13px",
19117
19521
  fontWeight: 600
19118
19522
  }
19119
19523
  }, item.name), React__default.createElement("td", {
19120
19524
  style: {
19121
19525
  textAlign: "center",
19122
- color: styles$4.gray_900,
19526
+ color: styles$6.gray_900,
19123
19527
  fontSize: "13px",
19124
19528
  fontWeight: 600
19125
19529
  }
19126
19530
  }, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("td", {
19127
- className: styles$4["tdcolumn3"],
19531
+ className: styles$6["tdcolumn3"],
19128
19532
  style: {
19129
19533
  textAlign: "center",
19130
- color: styles$4.gray_700,
19534
+ color: styles$6.gray_700,
19131
19535
  fontSize: "13px",
19132
19536
  fontWeight: 500
19133
19537
  }
@@ -19136,7 +19540,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19136
19540
  }) : ""), React__default.createElement("td", {
19137
19541
  style: {
19138
19542
  textAlign: "center",
19139
- color: styles$4.gray_700,
19543
+ color: styles$6.gray_700,
19140
19544
  fontSize: "13px",
19141
19545
  fontWeight: 500
19142
19546
  }
@@ -19145,7 +19549,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19145
19549
  }) : ""), React__default.createElement("td", {
19146
19550
  style: {
19147
19551
  textAlign: "center",
19148
- color: styles$4.gray_700,
19552
+ color: styles$6.gray_700,
19149
19553
  fontSize: "13px",
19150
19554
  fontWeight: 500
19151
19555
  }
@@ -19159,26 +19563,26 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19159
19563
  left: item.percentageAmongStudents + "%"
19160
19564
  };
19161
19565
  return React__default.createElement("div", {
19162
- className: styles$4["contentProblem"] + " " + printStyles["avoid-break-inside"],
19566
+ className: styles$6["contentProblem"] + " " + printStyles["avoid-break-inside"],
19163
19567
  key: item.id
19164
19568
  }, React__default.createElement("div", {
19165
- className: styles$4["labelProblem"]
19569
+ className: styles$6["labelProblem"]
19166
19570
  }, React__default.createElement("span", {
19167
- className: styles$4["name"]
19571
+ className: styles$6["name"]
19168
19572
  }, item.name), React__default.createElement("div", {
19169
- className: styles$4["percent"]
19573
+ className: styles$6["percent"]
19170
19574
  }, React__default.createElement("span", null, (_item$percentageAmong = item.percentageAmongStudents) === null || _item$percentageAmong === void 0 ? void 0 : _item$percentageAmong.toFixed(2), "%"), React__default.createElement("span", null, item.totalCorrectQuestions, "/", item.totalQuestions, t("problems")))), React__default.createElement("div", {
19171
- className: styles$4["slider"]
19575
+ className: styles$6["slider"]
19172
19576
  }, React__default.createElement("div", null, React__default.createElement("span", {
19173
- className: styles$4["track"],
19577
+ className: styles$6["track"],
19174
19578
  style: trackStyle
19175
19579
  }))));
19176
19580
  });
19177
19581
  };
19178
19582
  return React__default.createElement("div", {
19179
- className: "" + styles$4["wrapperProblem"]
19583
+ className: "" + styles$6["wrapperProblem"]
19180
19584
  }, React__default.createElement("div", {
19181
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19585
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
19182
19586
  onClick: function onClick() {
19183
19587
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : ProblemKey.GradesByTerritory);
19184
19588
  }
@@ -19190,14 +19594,14 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19190
19594
  }
19191
19595
  }, t("grades_by_area")), isOpen ? React__default.createElement(IoChevronUp, {
19192
19596
  size: 24,
19193
- color: styles$4.gray_300
19597
+ color: styles$6.gray_300
19194
19598
  }) : React__default.createElement(IoChevronDown, {
19195
19599
  size: 24,
19196
- color: styles$4.gray_300
19600
+ color: styles$6.gray_300
19197
19601
  })), isOpen && React__default.createElement(Fragment$1, null, formattedData.length ? React__default.createElement("div", {
19198
- className: styles$4["tableCompareGrass"]
19602
+ className: styles$6["tableCompareGrass"]
19199
19603
  }, React__default.createElement("div", {
19200
- className: styles$4["table-responsive"]
19604
+ className: styles$6["table-responsive"]
19201
19605
  }, isMyStoryStudent && React__default.createElement(Table, {
19202
19606
  style: {
19203
19607
  width: "100%",
@@ -19209,7 +19613,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19209
19613
  },
19210
19614
  className: "" + printStyles["avoid-break-inside"]
19211
19615
  }, React__default.createElement("tr", null, React__default.createElement("th", {
19212
- className: styles$4["thcolumn1"]
19616
+ className: styles$6["thcolumn1"]
19213
19617
  }, t("categories")), React__default.createElement("th", {
19214
19618
  style: {
19215
19619
  textAlign: "center"
@@ -19227,7 +19631,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19227
19631
  textAlign: "center"
19228
19632
  }
19229
19633
  }, t("total_solve_time")))), React__default.createElement("tbody", null, renderTableBody(formattedData))), !isMyStoryStudent && renderCategories(formattedData))) : React__default.createElement("div", {
19230
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
19634
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
19231
19635
  }, t("no_data"))));
19232
19636
  };
19233
19637
 
@@ -19300,39 +19704,39 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19300
19704
  borderBottom: index < (data === null || data === void 0 ? void 0 : data.length) - 1 ? "1px solid #e4e7ec" : undefined
19301
19705
  }
19302
19706
  }, React__default.createElement("td", {
19303
- className: styles$4["tdcolumn1"],
19707
+ className: styles$6["tdcolumn1"],
19304
19708
  style: {
19305
- color: styles$4.gray_900,
19709
+ color: styles$6.gray_900,
19306
19710
  fontSize: "13px",
19307
19711
  fontWeight: 600
19308
19712
  }
19309
19713
  }, React__default.createElement(Typography, {
19310
- color: styles$4.gray_900,
19714
+ color: styles$6.gray_900,
19311
19715
  fontSize: "13px",
19312
19716
  fontWeight: 600
19313
19717
  }, t("problem") + " " + (item.questionOrder + 1))), React__default.createElement("td", {
19314
19718
  style: {
19315
19719
  textAlign: "center",
19316
- color: styles$4.dark,
19720
+ color: styles$6.dark,
19317
19721
  fontSize: "13px",
19318
19722
  fontWeight: 600
19319
19723
  }
19320
19724
  }, item.overallCorrectRate.toFixed(2) ? item.overallCorrectRate.toFixed(2) + "%" : ""), React__default.createElement("td", {
19321
- className: styles$4["tdcolumn3"],
19725
+ className: styles$6["tdcolumn3"],
19322
19726
  style: {
19323
- color: styles$4.red_900,
19727
+ color: styles$6.red_900,
19324
19728
  fontSize: "13px",
19325
19729
  fontWeight: 500
19326
19730
  }
19327
19731
  }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
19328
19732
  style: {
19329
19733
  textAlign: "center",
19330
- color: styles$4.gray_700
19734
+ color: styles$6.gray_700
19331
19735
  }
19332
19736
  }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
19333
19737
  style: {
19334
19738
  textAlign: "center",
19335
- color: styles$4.gray_700
19739
+ color: styles$6.gray_700
19336
19740
  }
19337
19741
  }, item.categories ? item.categories.map(function (i) {
19338
19742
  return i.name;
@@ -19344,31 +19748,31 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19344
19748
  return React__default.createElement(Grid, {
19345
19749
  container: true,
19346
19750
  flexWrap: "nowrap",
19347
- className: styles$4["content"] + " " + printStyles["avoid-break-inside"],
19751
+ className: styles$6["content"] + " " + printStyles["avoid-break-inside"],
19348
19752
  key: question.id
19349
19753
  }, React__default.createElement(Grid, {
19350
19754
  item: true,
19351
19755
  xs: 1.5,
19352
19756
  minWidth: "120px",
19353
- className: styles$4["contentColumn1"]
19757
+ className: styles$6["contentColumn1"]
19354
19758
  }, React__default.createElement("div", null, React__default.createElement("span", {
19355
- className: styles$4["span1"]
19759
+ className: styles$6["span1"]
19356
19760
  }, t("problem_number")), React__default.createElement("span", {
19357
- className: styles$4["span2"]
19761
+ className: styles$6["span2"]
19358
19762
  }, t("number_question", {
19359
19763
  number: question.questionOrder + 1
19360
19764
  })))), React__default.createElement(Grid, {
19361
19765
  item: true,
19362
19766
  xs: 10.5,
19363
- className: styles$4["contentColumn2"]
19767
+ className: styles$6["contentColumn2"]
19364
19768
  }, React__default.createElement("div", null, React__default.createElement("span", {
19365
- className: styles$4["span1"]
19769
+ className: styles$6["span1"]
19366
19770
  }, t("total_correct_rate")), React__default.createElement("span", {
19367
- className: styles$4["span2"]
19771
+ className: styles$6["span2"]
19368
19772
  }, t("my_wrong_answer"))), React__default.createElement("div", null, React__default.createElement("span", {
19369
- className: styles$4["overallCorrectRate"]
19773
+ className: styles$6["overallCorrectRate"]
19370
19774
  }, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
19371
- className: styles$4["answer"]
19775
+ className: styles$6["answer"]
19372
19776
  }, typeof question.selectedAnswers === "string" ? renderAnswer(question.questionAnswerType, question.selectedAnswers) : renderTextbookAnswer(question.questionAnswerType, question.selectedAnswers, question.textualAnswers), " ", t("answer"), " ", typeof question.correctAnswers === "string" ? renderAnswer(question.questionAnswerType, question.correctAnswers) : renderTextbookAnswer(question.questionAnswerType, question.correctAnswers, question.correctTextualAnswers, true)))));
19373
19777
  });
19374
19778
  };
@@ -19376,9 +19780,9 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19376
19780
  changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
19377
19781
  };
19378
19782
  return React__default.createElement("div", {
19379
- className: "" + styles$4["wrapperProblem"]
19783
+ className: "" + styles$6["wrapperProblem"]
19380
19784
  }, React__default.createElement("div", {
19381
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19785
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
19382
19786
  onClick: handleToggle
19383
19787
  }, React__default.createElement(Stack, {
19384
19788
  flexDirection: "row",
@@ -19392,20 +19796,20 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19392
19796
  }
19393
19797
  }, t("issues_vulnerable")), React__default.createElement(Typography, {
19394
19798
  sx: {
19395
- color: styles$4.gray_300,
19799
+ color: styles$6.gray_300,
19396
19800
  fontSize: "11px",
19397
19801
  fontWeight: 500
19398
19802
  }
19399
19803
  }, t("vulnerable_detail"))), isOpen ? React__default.createElement(IoChevronUp, {
19400
19804
  size: 24,
19401
- color: styles$4.gray_300
19805
+ color: styles$6.gray_300
19402
19806
  }) : React__default.createElement(IoChevronDown, {
19403
19807
  size: 24,
19404
- color: styles$4.gray_300
19808
+ color: styles$6.gray_300
19405
19809
  })), isOpen && React__default.createElement(Fragment$1, null, incorrectQuestions !== null && incorrectQuestions !== void 0 && incorrectQuestions.length ? React__default.createElement("div", {
19406
- className: styles$4["tableCompareGrass"]
19810
+ className: styles$6["tableCompareGrass"]
19407
19811
  }, React__default.createElement("div", {
19408
- className: styles$4["table-responsive"]
19812
+ className: styles$6["table-responsive"]
19409
19813
  }, isMyStoryStudent && React__default.createElement(Table, {
19410
19814
  style: {
19411
19815
  width: "100%",
@@ -19417,7 +19821,7 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19417
19821
  },
19418
19822
  className: "" + printStyles["avoid-break-inside"]
19419
19823
  }, React__default.createElement("tr", null, React__default.createElement("th", {
19420
- className: styles$4["thcolumn1"]
19824
+ className: styles$6["thcolumn1"]
19421
19825
  }, t("problem_number")), React__default.createElement("th", {
19422
19826
  style: {
19423
19827
  textAlign: "center"
@@ -19435,7 +19839,7 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19435
19839
  textAlign: "center"
19436
19840
  }
19437
19841
  }, t("_category")))), React__default.createElement("tbody", null, renderTableBody(incorrectQuestions))), !isMyStoryStudent && renderQuestions(incorrectQuestions))) : React__default.createElement("div", {
19438
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
19842
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
19439
19843
  }, t("no_data"))));
19440
19844
  };
19441
19845
 
@@ -19455,37 +19859,37 @@ var TextbookTrickyProblem = function TextbookTrickyProblem(_ref) {
19455
19859
  });
19456
19860
  var renderProblems = function renderProblems() {
19457
19861
  return React__default.createElement(Fragment$1, null, React__default.createElement("div", {
19458
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19862
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19459
19863
  }, React__default.createElement(iconX, null), React__default.createElement("span", null, t("incorrect_problem_among_the_starred_problems"))), React__default.createElement("div", {
19460
- className: styles$4["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
19864
+ className: styles$6["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
19461
19865
  }, !!(inCorrectQuestions !== null && inCorrectQuestions !== void 0 && inCorrectQuestions.length) && (inCorrectQuestions === null || inCorrectQuestions === void 0 ? void 0 : inCorrectQuestions.map(function (question) {
19462
19866
  return React__default.createElement("span", {
19463
19867
  key: question.id,
19464
- className: styles$4["question"]
19868
+ className: styles$6["question"]
19465
19869
  }, t("number_question", {
19466
19870
  number: question.questionOrder + 1
19467
19871
  }));
19468
19872
  })), !(data !== null && data !== void 0 && data.studentQuestionResults.length) && React__default.createElement("div", {
19469
- className: styles$4["noData"]
19873
+ className: styles$6["noData"]
19470
19874
  }, t("no_data"))), React__default.createElement("div", {
19471
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19875
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19472
19876
  }, React__default.createElement(iconAssignedQuestions, null), React__default.createElement("span", null, t("correct_problem_among_the_starred_problems"))), React__default.createElement("div", {
19473
- className: styles$4["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
19877
+ className: styles$6["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
19474
19878
  }, !!(correctQuestions !== null && correctQuestions !== void 0 && correctQuestions.length) && (correctQuestions === null || correctQuestions === void 0 ? void 0 : correctQuestions.map(function (question) {
19475
19879
  return React__default.createElement("div", {
19476
19880
  key: question.id,
19477
- className: styles$4["question"]
19881
+ className: styles$6["question"]
19478
19882
  }, t("number_question", {
19479
19883
  number: question.questionOrder + 1
19480
19884
  }));
19481
19885
  })), !(data !== null && data !== void 0 && data.studentQuestionResults.length) && React__default.createElement("div", {
19482
- className: styles$4["noData"]
19886
+ className: styles$6["noData"]
19483
19887
  }, t("no_data"))));
19484
19888
  };
19485
19889
  return React__default.createElement("div", {
19486
- className: "" + styles$4["wrapperProblem"]
19890
+ className: "" + styles$6["wrapperProblem"]
19487
19891
  }, React__default.createElement("div", {
19488
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19892
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
19489
19893
  onClick: function onClick() {
19490
19894
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
19491
19895
  }
@@ -19497,10 +19901,10 @@ var TextbookTrickyProblem = function TextbookTrickyProblem(_ref) {
19497
19901
  }
19498
19902
  }, t("tricky_problems")), isOpen ? React__default.createElement(IoChevronUp, {
19499
19903
  size: 24,
19500
- color: styles$4.gray_300
19904
+ color: styles$6.gray_300
19501
19905
  }) : React__default.createElement(IoChevronDown, {
19502
19906
  size: 24,
19503
- color: styles$4.gray_300
19907
+ color: styles$6.gray_300
19504
19908
  })), isOpen && React__default.createElement(Fragment$1, null, renderProblems()));
19505
19909
  };
19506
19910
 
@@ -19922,7 +20326,8 @@ var useExamResultData = function useExamResultData(props) {
19922
20326
  handleChangeTab = props.handleChangeTab,
19923
20327
  selectedTab = props.selectedTab,
19924
20328
  isPrint = props.isPrint,
19925
- chapterId = props.chapterId;
20329
+ chapterId = props.chapterId,
20330
+ onLoadingChange = props.onLoadingChange;
19926
20331
  var query = new URLSearchParams(searchParams);
19927
20332
  var user = useSelector(function (state) {
19928
20333
  var _state$common;
@@ -19979,9 +20384,11 @@ var useExamResultData = function useExamResultData(props) {
19979
20384
  try {
19980
20385
  var _temp2 = function _temp2() {
19981
20386
  setIsLoading(false);
20387
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(false);
19982
20388
  };
19983
20389
  if (!examCode) return Promise.resolve();
19984
20390
  setIsLoading(true);
20391
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(true);
19985
20392
  var _temp = _catch(function () {
19986
20393
  return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
19987
20394
  var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
@@ -20007,9 +20414,11 @@ var useExamResultData = function useExamResultData(props) {
20007
20414
  try {
20008
20415
  var _temp5 = function _temp5() {
20009
20416
  setIsLoading(false);
20417
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(false);
20010
20418
  };
20011
20419
  if (!examSessionId || !studentId) return Promise.resolve();
20012
20420
  setIsLoading(true);
20421
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(true);
20013
20422
  var _temp4 = _catch(function () {
20014
20423
  return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
20015
20424
  var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
@@ -20049,10 +20458,12 @@ var useExamResultData = function useExamResultData(props) {
20049
20458
  try {
20050
20459
  var _temp7 = function _temp7() {
20051
20460
  setIsLoading(false);
20461
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(false);
20052
20462
  };
20053
20463
  if (!chapterId) return Promise.resolve();
20054
20464
  if (!isStudent && !studentId) return Promise.resolve();
20055
20465
  setIsLoading(true);
20466
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(true);
20056
20467
  var _temp6 = _catch(function () {
20057
20468
  return Promise.resolve(Promise.all([getChapterResultsApi(chapterId, isStudent ? undefined : studentId), getChapterResultsLongTimeSpendApi(chapterId, isStudent ? undefined : studentId), getChapterResultsEffectSizeApi(chapterId, isStudent ? undefined : studentId), getChapterResultsTimeOrderQuestionApi(chapterId, isStudent ? undefined : studentId), getChapterResultsCategoriesApi(chapterId, isStudent ? undefined : studentId)])).then(function (result) {
20058
20469
  var _result$0$data3, _result$1$data3, _result$2$data3, _result$3$data3, _result$4$data3;
@@ -20218,7 +20629,7 @@ var useExamResultData = function useExamResultData(props) {
20218
20629
  }
20219
20630
  }
20220
20631
  }),
20221
- colors: [styles$4.dark, styles$4.purple_900],
20632
+ colors: [styles$6.dark, styles$6.purple_900],
20222
20633
  xaxis: _extends({}, DEFAULT_LINE_CHART_OPTIONS.xaxis, {
20223
20634
  categories: ["s"].concat(Array.from({
20224
20635
  length: questionLength
@@ -20678,7 +21089,8 @@ var useExamResult = function useExamResult(props) {
20678
21089
  studentId = _props$studentId === void 0 ? 0 : _props$studentId,
20679
21090
  code = props.code,
20680
21091
  chapterId = props.chapterId,
20681
- onViewQA = props.onViewQA;
21092
+ onViewQA = props.onViewQA,
21093
+ onLoadingChange = props.onLoadingChange;
20682
21094
  var _useTranslation = useTranslation(),
20683
21095
  t = _useTranslation.t;
20684
21096
  var _useTab = useTab(),
@@ -20692,7 +21104,8 @@ var useExamResult = function useExamResult(props) {
20692
21104
  code: code,
20693
21105
  chapterId: chapterId,
20694
21106
  handleChangeTab: handleChangeTab,
20695
- selectedTab: selected
21107
+ selectedTab: selected,
21108
+ onLoadingChange: onLoadingChange
20696
21109
  });
20697
21110
  var isLoading = examResultData.isLoading,
20698
21111
  timelyOrderQuestions = examResultData.timelyOrderQuestions,
@@ -20759,7 +21172,9 @@ var ExamResultV2 = function ExamResultV2(props) {
20759
21172
  isMyStoryStudent = props.isMyStoryStudent,
20760
21173
  onViewQA = props.onViewQA,
20761
21174
  chapterId = props.chapterId,
20762
- studentId = props.studentId;
21175
+ studentId = props.studentId,
21176
+ _props$showLoading = props.showLoading,
21177
+ showLoading = _props$showLoading === void 0 ? true : _props$showLoading;
20763
21178
  var isAdminSite = role === Role.Admin;
20764
21179
  var _useExamResult = useExamResult(props),
20765
21180
  t = _useExamResult.t,
@@ -20912,7 +21327,7 @@ var ExamResultV2 = function ExamResultV2(props) {
20912
21327
  onViewQA === null || onViewQA === void 0 ? void 0 : onViewQA(resultData.student.id, resultData.examSessionId);
20913
21328
  };
20914
21329
  return React__default.createElement(Fragment$1, null, React__default.createElement(LoadingComponent, {
20915
- isLoading: !!isLoading
21330
+ isLoading: showLoading && !!isLoading
20916
21331
  }), timelyOrderQuestions[dataChartIndex] && longTimeSpend && effectSize ? React__default.createElement("div", {
20917
21332
  style: {
20918
21333
  width: "100%"
@@ -21225,18 +21640,18 @@ var ExamResultV2 = function ExamResultV2(props) {
21225
21640
  value: selected,
21226
21641
  index: 1
21227
21642
  }, React__default.createElement("div", {
21228
- className: styles$4["compareChart"]
21643
+ className: styles$6["compareChart"]
21229
21644
  }, React__default.createElement("div", {
21230
- className: styles$4["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
21645
+ className: styles$6["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
21231
21646
  onClick: handlePrevChart
21232
21647
  }, React__default.createElement(iconBtnPrevChart, null)), React__default.createElement("div", {
21233
- className: styles$4["chart"] + " sr-line-chart"
21648
+ className: styles$6["chart"] + " sr-line-chart"
21234
21649
  }, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
21235
21650
  height: 389,
21236
21651
  options: chartOptions,
21237
21652
  series: series
21238
21653
  }))), React__default.createElement("div", {
21239
- className: styles$4["nextChart"] + " " + (dataChartIndex < timelyOrderQuestions.length - 1 && "pointer"),
21654
+ className: styles$6["nextChart"] + " " + (dataChartIndex < timelyOrderQuestions.length - 1 && "pointer"),
21240
21655
  onClick: handleNextChart
21241
21656
  }, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(CustomTabPanel, {
21242
21657
  value: selected,
@@ -21430,13 +21845,13 @@ var LoadingDots = function LoadingDots(_ref) {
21430
21845
  color: "#FFF",
21431
21846
  fontSize: 20
21432
21847
  }, text), React__default.createElement("div", {
21433
- className: styles$4["loader"]
21848
+ className: styles$6["loader"]
21434
21849
  }, React__default.createElement("div", {
21435
- className: styles$4["dot"]
21850
+ className: styles$6["dot"]
21436
21851
  }), React__default.createElement("div", {
21437
- className: styles$4["dot"]
21852
+ className: styles$6["dot"]
21438
21853
  }), React__default.createElement("div", {
21439
- className: styles$4["dot"]
21854
+ className: styles$6["dot"]
21440
21855
  })));
21441
21856
  };
21442
21857
 
@@ -22278,7 +22693,7 @@ var usePreparedExam = function usePreparedExam(_ref) {
22278
22693
  };
22279
22694
  };
22280
22695
 
22281
- var styles$5 = {"drawer":"_1k4kj","open":"_IB2-g","drawer-overlay":"_xnHGE","drawer-header":"_1gLOh","drawer-form":"_2pLGg","dropdown-content-academy":"_1rR7s","dropdown-change":"_1Hcs4","btn-register":"_37IIN","btn-cancel":"_KDkNh","dropdown-academy-item":"_1-srV","dropdown-content-language":"_88rAE","dropdown-item-language":"_2jjUW","dropdown-item-language-active":"_27lik","item-address":"_tGib4","item-logout":"_1MXIb","title-address":"_A_I15","image-academy":"_3zxbi","slick-dots":"_VlpW7","slick-active":"_1zzu9","slider-container":"_1lCoM","button":"__sLSD","variable-width":"_1AnqW","slick-slide":"_3ZJaN","center":"_jUOZF","slick-center":"_35s6t","content":"_1dQdx","image":"_1feWs","slick-loading":"_FchLZ","slick-slider":"_1T7zW","slick-thumb":"_o2Tkt","slides":"_1FY2k","slick-next":"_23Pi9","slick-prev":"_2g2iD","heroBanner_qdFl":"_2y7lQ","buttons_AeoN":"_KMW2P","mdxPageWrapper_j9I6":"_3dqhE","collapseSidebarButton_PEFL":"_24wBH","expandButton_TmdG":"_2LXBj","announcementBarClose_gvF7":"_32uEE","announcementBarPlaceholder_vyr4":"_2PagL","navbarSearchContainer_Bca1":"_3Uiqm","lastUpdated_vwxv":"_1UNOJ","tocMobile_ITEo":"_qcGlb","collapseSidebarButtonIcon_kv0_":"_2G6Hz","expandButtonIcon_i1dp":"_1IMu8","menuHtmlItem_M9Kj":"_1YUka","menu_SIkG":"_FgMDa","menuWithAnnouncementBar_GW3s":"_zUamI","sidebar_njMd":"_3E4Oo","sidebarWithHideableNavbar_wUlq":"_3xviA","sidebarHidden_VK0M":"_cWHWX","sidebarLogo_isFc":"_UMHGX","docSidebarContainer_YfHR":"_1SwXt","docSidebarContainerHidden_DPk8":"_3h6KW","sidebarViewport_aRkj":"_2OCK_","docMainContainer_TBSr":"_FuxZS","docMainContainerEnhanced_lQrH":"_ZUdP4","docItemWrapperEnhanced_JWYK":"_2AmPG","docItemCol_VOVn":"_3GmBr","container":"_1UB4R","col":"_csNus","footer":"_gceZJ","colorModeToggle_DEke":"_OawS_","footer__link-separator":"_3fzLh","navbar__item":"_1wyV6","tableOfContents_bqdL":"_3tGM4","footer__col":"_3DllA","footer__link-item":"_2ibTz","hero":"_369-d","navbar":"_5LWZt","container-fluid":"_2GcNI","navbar__toggle":"_2YjZl","navbar__search-input":"_3__u0","pills--block":"_2f7GT","tabs--block":"_3xrdo","docItemContainer_F8PC":"_6P_Dr","markdown":"_2xZt0","backToTopButton_sjWU":"_2bUwo","thin-scrollbar":"_1mrmJ","announcementBar_mb4j":"_2oveE","menu":"_14IWx","pagination-nav":"_3S8xG","table-of-contents":"_SnjS9","tabs":"_qpa-q","codeBlockLines_e6Vv":"_2ou2J"};
22696
+ var styles$7 = {"drawer":"_1k4kj","open":"_IB2-g","drawer-overlay":"_xnHGE","drawer-header":"_1gLOh","drawer-form":"_2pLGg","dropdown-content-academy":"_1rR7s","dropdown-change":"_1Hcs4","btn-register":"_37IIN","btn-cancel":"_KDkNh","dropdown-academy-item":"_1-srV","dropdown-content-language":"_88rAE","dropdown-item-language":"_2jjUW","dropdown-item-language-active":"_27lik","item-address":"_tGib4","item-logout":"_1MXIb","title-address":"_A_I15","image-academy":"_3zxbi","slick-dots":"_VlpW7","slick-active":"_1zzu9","slider-container":"_1lCoM","button":"__sLSD","variable-width":"_1AnqW","slick-slide":"_3ZJaN","center":"_jUOZF","slick-center":"_35s6t","content":"_1dQdx","image":"_1feWs","slick-loading":"_FchLZ","slick-slider":"_1T7zW","slick-thumb":"_o2Tkt","slides":"_1FY2k","slick-next":"_23Pi9","slick-prev":"_2g2iD","heroBanner_qdFl":"_2y7lQ","buttons_AeoN":"_KMW2P","mdxPageWrapper_j9I6":"_3dqhE","collapseSidebarButton_PEFL":"_24wBH","expandButton_TmdG":"_2LXBj","announcementBarClose_gvF7":"_32uEE","announcementBarPlaceholder_vyr4":"_2PagL","navbarSearchContainer_Bca1":"_3Uiqm","lastUpdated_vwxv":"_1UNOJ","tocMobile_ITEo":"_qcGlb","collapseSidebarButtonIcon_kv0_":"_2G6Hz","expandButtonIcon_i1dp":"_1IMu8","menuHtmlItem_M9Kj":"_1YUka","menu_SIkG":"_FgMDa","menuWithAnnouncementBar_GW3s":"_zUamI","sidebar_njMd":"_3E4Oo","sidebarWithHideableNavbar_wUlq":"_3xviA","sidebarHidden_VK0M":"_cWHWX","sidebarLogo_isFc":"_UMHGX","docSidebarContainer_YfHR":"_1SwXt","docSidebarContainerHidden_DPk8":"_3h6KW","sidebarViewport_aRkj":"_2OCK_","docMainContainer_TBSr":"_FuxZS","docMainContainerEnhanced_lQrH":"_ZUdP4","docItemWrapperEnhanced_JWYK":"_2AmPG","docItemCol_VOVn":"_3GmBr","container":"_1UB4R","col":"_csNus","footer":"_gceZJ","colorModeToggle_DEke":"_OawS_","footer__link-separator":"_3fzLh","navbar__item":"_1wyV6","tableOfContents_bqdL":"_3tGM4","footer__col":"_3DllA","footer__link-item":"_2ibTz","hero":"_369-d","navbar":"_5LWZt","container-fluid":"_2GcNI","navbar__toggle":"_2YjZl","navbar__search-input":"_3__u0","pills--block":"_2f7GT","tabs--block":"_3xrdo","docItemContainer_F8PC":"_6P_Dr","markdown":"_2xZt0","backToTopButton_sjWU":"_2bUwo","thin-scrollbar":"_1mrmJ","announcementBar_mb4j":"_2oveE","menu":"_14IWx","pagination-nav":"_3S8xG","table-of-contents":"_SnjS9","tabs":"_qpa-q","codeBlockLines_e6Vv":"_2ou2J"};
22282
22697
 
22283
22698
  var ResetFilterDialog = function ResetFilterDialog(_ref) {
22284
22699
  var t = _ref.t,
@@ -22342,7 +22757,7 @@ var ResetFilterDialog = function ResetFilterDialog(_ref) {
22342
22757
  borderTop: "1px solid #CED2DA"
22343
22758
  }
22344
22759
  }, React__default.createElement(Button, {
22345
- className: styles$5["btn-cancel"],
22760
+ className: styles$7["btn-cancel"],
22346
22761
  onClick: onClose
22347
22762
  }, React__default.createElement(Typography, {
22348
22763
  sx: {
@@ -22353,7 +22768,7 @@ var ResetFilterDialog = function ResetFilterDialog(_ref) {
22353
22768
  lineHeight: "16.71px"
22354
22769
  }, t("close"))), React__default.createElement(Button, {
22355
22770
  variant: "contained",
22356
- className: styles$5["btn-register"],
22771
+ className: styles$7["btn-register"],
22357
22772
  type: "submit",
22358
22773
  sx: {
22359
22774
  padding: "12px 47px"
@@ -22772,7 +23187,7 @@ var ChapterProblemSolvingResultsDialog = function ChapterProblemSolvingResultsDi
22772
23187
  borderTop: "1px solid #CED2DA"
22773
23188
  }
22774
23189
  }, React__default.createElement(Button, {
22775
- className: styles$5["btn-cancel"],
23190
+ className: styles$7["btn-cancel"],
22776
23191
  onClick: onClose
22777
23192
  }, React__default.createElement(Typography, {
22778
23193
  sx: {
@@ -22791,13 +23206,18 @@ var StartPageDialog = function StartPageDialog(_ref) {
22791
23206
  open = _ref.open,
22792
23207
  options = _ref.options,
22793
23208
  onSubmit = _ref.onSubmit;
23209
+ var _useKeyboardVisible = useKeyboardVisible(),
23210
+ pageSxProps = _useKeyboardVisible.pageSxProps,
23211
+ handleInputFocus = _useKeyboardVisible.handleInputFocus,
23212
+ handleInputBlur = _useKeyboardVisible.handleInputBlur;
22794
23213
  return React__default.createElement(Dialog, {
22795
23214
  onClose: onClose,
22796
23215
  open: open,
23216
+ scroll: "body",
22797
23217
  PaperProps: {
22798
- sx: {
23218
+ sx: _extends({
22799
23219
  minWidth: "363px"
22800
- }
23220
+ }, pageSxProps)
22801
23221
  }
22802
23222
  }, React__default.createElement(DialogTitle, {
22803
23223
  id: "customized-dialog-title"
@@ -22847,12 +23267,16 @@ var StartPageDialog = function StartPageDialog(_ref) {
22847
23267
  render: function render(_ref3) {
22848
23268
  var field = _objectWithoutPropertiesLoose(_ref3, _excluded$9);
22849
23269
  return React__default.createElement(CustomSelectOption, Object.assign({
23270
+ maxMenuHeight: 150,
22850
23271
  menuPosition: "fixed",
22851
23272
  onChange: function onChange(option) {
22852
23273
  return setFieldValue('startPage', option === null || option === void 0 ? void 0 : option.value);
22853
23274
  },
22854
23275
  options: options
22855
- }, field));
23276
+ }, field, {
23277
+ onBlur: handleInputBlur,
23278
+ onFocus: handleInputFocus
23279
+ }));
22856
23280
  }
22857
23281
  }))), React__default.createElement(DialogActions, {
22858
23282
  sx: {
@@ -22863,7 +23287,7 @@ var StartPageDialog = function StartPageDialog(_ref) {
22863
23287
  borderTop: "1px solid #CED2DA"
22864
23288
  }
22865
23289
  }, React__default.createElement(Button, {
22866
- className: styles$5["btn-cancel"],
23290
+ className: styles$7["btn-cancel"],
22867
23291
  onClick: onClose
22868
23292
  }, React__default.createElement(Typography, {
22869
23293
  sx: {
@@ -22874,7 +23298,7 @@ var StartPageDialog = function StartPageDialog(_ref) {
22874
23298
  lineHeight: "16.71px"
22875
23299
  }, t("cancel"))), React__default.createElement(Button, {
22876
23300
  variant: "contained",
22877
- className: styles$5["btn-register"],
23301
+ className: styles$7["btn-register"],
22878
23302
  type: "submit",
22879
23303
  sx: {
22880
23304
  padding: "12px 47px"
@@ -23030,7 +23454,7 @@ var Statistic = function Statistic(_ref) {
23030
23454
  };
23031
23455
 
23032
23456
  var TextbookDrawer = function TextbookDrawer(_ref) {
23033
- var _textbook$chapters, _textbook$chapters2;
23457
+ var _textbook$totalQuesti, _textbook$chapters, _textbook$chapters2;
23034
23458
  var isOpen = _ref.isOpen,
23035
23459
  role = _ref.role,
23036
23460
  width = _ref.width,
@@ -23199,7 +23623,7 @@ var TextbookDrawer = function TextbookDrawer(_ref) {
23199
23623
  fontSize: "13px",
23200
23624
  fontWeight: 700,
23201
23625
  color: styles.gray_900
23202
- }, (textbook === null || textbook === void 0 ? void 0 : textbook.totalQuestions) + " " + t("questions")))))), React__default.createElement(Stack, {
23626
+ }, ((_textbook$totalQuesti = textbook === null || textbook === void 0 ? void 0 : textbook.totalQuestions) != null ? _textbook$totalQuesti : 0) + " " + t("questions")))))), React__default.createElement(Stack, {
23203
23627
  flexDirection: "row",
23204
23628
  gap: "24px",
23205
23629
  mx: "24px"
@@ -23451,7 +23875,7 @@ var DeleteTextbookDialog = function DeleteTextbookDialog(_ref) {
23451
23875
  borderTop: "1px solid #CED2DA"
23452
23876
  }
23453
23877
  }, React__default.createElement(Button, {
23454
- className: styles$5["btn-cancel"],
23878
+ className: styles$7["btn-cancel"],
23455
23879
  onClick: onClose
23456
23880
  }, React__default.createElement(Typography, {
23457
23881
  sx: {
@@ -23462,7 +23886,7 @@ var DeleteTextbookDialog = function DeleteTextbookDialog(_ref) {
23462
23886
  lineHeight: "16.71px"
23463
23887
  }, t("cancel"))), React__default.createElement(Button, {
23464
23888
  variant: "contained",
23465
- className: styles$5["btn-register"],
23889
+ className: styles$7["btn-register"],
23466
23890
  type: "submit",
23467
23891
  sx: {
23468
23892
  padding: "12px 47px"
@@ -23574,13 +23998,13 @@ var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
23574
23998
  var theme = useTheme();
23575
23999
  var isTabletUp = useMediaQuery(theme.breakpoints.up("lg"));
23576
24000
  return React__default.createElement("div", null, React__default.createElement("div", {
23577
- className: styles$5["drawer-overlay"] + " " + (isOpen && styles$5["open"]),
24001
+ className: styles$7["drawer-overlay"] + " " + (isOpen && styles$7["open"]),
23578
24002
  onClick: function onClick() {
23579
24003
  return onClose();
23580
24004
  }
23581
24005
  }), React__default.createElement(Stack, {
23582
24006
  width: isTabletUp ? "50vw" : "100%",
23583
- className: styles$5["drawer"] + " bg-white " + (isOpen && styles$5["open"])
24007
+ className: styles$7["drawer"] + " bg-white " + (isOpen && styles$7["open"])
23584
24008
  }, React__default.createElement(Stack, {
23585
24009
  bgcolor: styles.gray_50,
23586
24010
  borderBottom: "1px solid " + styles.gray_100,
@@ -24550,188 +24974,6 @@ var AlertCircleFill = function AlertCircleFill(_ref) {
24550
24974
  }));
24551
24975
  };
24552
24976
 
24553
- var CalendarFill = function CalendarFill(_ref) {
24554
- var _ref$width = _ref.width,
24555
- width = _ref$width === void 0 ? "16" : _ref$width,
24556
- _ref$height = _ref.height,
24557
- height = _ref$height === void 0 ? "16" : _ref$height,
24558
- color = _ref.color;
24559
- return React__default.createElement("svg", {
24560
- width: width,
24561
- height: height,
24562
- fill: color,
24563
- viewBox: "0 0 16 16",
24564
- xmlns: "http://www.w3.org/2000/svg"
24565
- }, React__default.createElement("path", {
24566
- d: "M15 3.99998C15 3.46955 14.7893 2.96084 14.4142 2.58577C14.0391 2.2107 13.5304 1.99998 13 1.99998H12.5V1.51405C12.5 1.24498 12.2931 1.01405 12.0241 1.00061C11.9565 0.997353 11.8889 1.00785 11.8255 1.03148C11.762 1.05511 11.7041 1.09136 11.6551 1.13805C11.6061 1.18475 11.5671 1.2409 11.5404 1.30311C11.5138 1.36532 11.5 1.4323 11.5 1.49998V1.99998H4.5V1.51405C4.5 1.24498 4.29313 1.01405 4.02406 1.00061C3.95646 0.997353 3.8889 1.00785 3.82547 1.03148C3.76204 1.05511 3.70407 1.09136 3.65508 1.13805C3.60608 1.18475 3.56707 1.2409 3.54041 1.30311C3.51375 1.36532 3.50001 1.4323 3.5 1.49998V1.99998H3C2.46957 1.99998 1.96086 2.2107 1.58579 2.58577C1.21071 2.96084 1 3.46955 1 3.99998V4.37498C1 4.40814 1.01317 4.43993 1.03661 4.46337C1.06005 4.48682 1.09185 4.49998 1.125 4.49998H14.875C14.9082 4.49998 14.9399 4.48682 14.9634 4.46337C14.9868 4.43993 15 4.40814 15 4.37498V3.99998Z",
24567
- fill: "#97A1AF"
24568
- }), React__default.createElement("path", {
24569
- d: "M1 13C1 13.5304 1.21071 14.0391 1.58579 14.4142C1.96086 14.7893 2.46957 15 3 15H13C13.5304 15 14.0391 14.7893 14.4142 14.4142C14.7893 14.0391 15 13.5304 15 13V5.625C15 5.59185 14.9868 5.56005 14.9634 5.53661C14.9399 5.51317 14.9082 5.5 14.875 5.5H1.125C1.09185 5.5 1.06005 5.51317 1.03661 5.53661C1.01317 5.56005 1 5.59185 1 5.625V13Z",
24570
- fill: "#97A1AF"
24571
- }));
24572
- };
24573
-
24574
- var ClockFill = function ClockFill(_ref) {
24575
- var _ref$width = _ref.width,
24576
- width = _ref$width === void 0 ? "16" : _ref$width,
24577
- _ref$height = _ref.height,
24578
- height = _ref$height === void 0 ? "16" : _ref$height,
24579
- color = _ref.color;
24580
- return React__default.createElement("svg", {
24581
- width: width,
24582
- height: height,
24583
- fill: color,
24584
- viewBox: "0 0 14 14",
24585
- xmlns: "http://www.w3.org/2000/svg"
24586
- }, React__default.createElement("path", {
24587
- d: "M7 0.25C3.41031 0.25 0.5 3.16031 0.5 6.75C0.5 10.3397 3.41031 13.25 7 13.25C10.5897 13.25 13.5 10.3397 13.5 6.75C13.5 3.16031 10.5897 0.25 7 0.25ZM10 7.75H7C6.86739 7.75 6.74021 7.69732 6.64645 7.60355C6.55268 7.50979 6.5 7.38261 6.5 7.25V2.75C6.5 2.61739 6.55268 2.49021 6.64645 2.39645C6.74021 2.30268 6.86739 2.25 7 2.25C7.13261 2.25 7.25979 2.30268 7.35355 2.39645C7.44732 2.49021 7.5 2.61739 7.5 2.75V6.75H10C10.1326 6.75 10.2598 6.80268 10.3536 6.89645C10.4473 6.99021 10.5 7.11739 10.5 7.25C10.5 7.38261 10.4473 7.50979 10.3536 7.60355C10.2598 7.69732 10.1326 7.75 10 7.75Z",
24588
- fill: "#97A1AF"
24589
- }));
24590
- };
24591
-
24592
- var CheckedCircleFill = function CheckedCircleFill(_ref) {
24593
- var _ref$width = _ref.width,
24594
- width = _ref$width === void 0 ? "16" : _ref$width,
24595
- _ref$height = _ref.height,
24596
- height = _ref$height === void 0 ? "17" : _ref$height,
24597
- color = _ref.color;
24598
- return React__default.createElement("svg", {
24599
- width: width,
24600
- height: height,
24601
- fill: color,
24602
- viewBox: "0 0 16 17",
24603
- xmlns: "http://www.w3.org/2000/svg"
24604
- }, React__default.createElement("path", {
24605
- d: "M8 1.75C4.41594 1.75 1.5 4.66594 1.5 8.25C1.5 11.8341 4.41594 14.75 8 14.75C11.5841 14.75 14.5 11.8341 14.5 8.25C14.5 4.66594 11.5841 1.75 8 1.75ZM11.3828 6.07156L7.18281 11.0716C7.13674 11.1264 7.07941 11.1708 7.01471 11.2016C6.95001 11.2323 6.87945 11.2489 6.80781 11.25H6.79938C6.72929 11.25 6.66 11.2352 6.59599 11.2067C6.53198 11.1782 6.47468 11.1365 6.42781 11.0844L4.62781 9.08438C4.5821 9.03589 4.54654 8.97876 4.52322 8.91633C4.4999 8.85391 4.4893 8.78745 4.49203 8.72087C4.49477 8.65429 4.51078 8.58892 4.53914 8.52862C4.56749 8.46831 4.60761 8.41429 4.65715 8.36971C4.70668 8.32514 4.76463 8.29091 4.82757 8.26905C4.89052 8.24719 4.95721 8.23813 5.02371 8.2424C5.09021 8.24668 5.15518 8.26421 5.21481 8.29396C5.27444 8.3237 5.32752 8.36507 5.37094 8.41562L6.78625 9.98812L10.6172 5.42844C10.7031 5.32909 10.8247 5.26754 10.9556 5.25711C11.0866 5.24668 11.2164 5.28819 11.317 5.37268C11.4175 5.45717 11.4808 5.57784 11.4931 5.70862C11.5055 5.8394 11.4658 5.96977 11.3828 6.07156Z",
24606
- fill: "#97A1AF"
24607
- }));
24608
- };
24609
-
24610
- var IconPerson = function IconPerson(_ref) {
24611
- var _ref$width = _ref.width,
24612
- width = _ref$width === void 0 ? "16" : _ref$width,
24613
- _ref$height = _ref.height,
24614
- height = _ref$height === void 0 ? "16" : _ref$height,
24615
- color = _ref.color;
24616
- return React__default.createElement("svg", {
24617
- width: width,
24618
- height: height,
24619
- fill: color,
24620
- viewBox: "0 0 16 16",
24621
- xmlns: "http://www.w3.org/2000/svg"
24622
- }, React__default.createElement("path", {
24623
- d: "M10.395 2.01813C9.78691 1.36156 8.93753 1 8.00003 1C7.05753 1 6.20534 1.35937 5.60003 2.01187C4.98815 2.67156 4.69003 3.56813 4.76003 4.53625C4.89878 6.44625 6.35222 8 8.00003 8C9.64784 8 11.0988 6.44656 11.2397 4.53687C11.3107 3.5775 11.0107 2.68281 10.395 2.01813Z",
24624
- fill: "#97A1AF"
24625
- }), React__default.createElement("path", {
24626
- d: "M13.4999 15H2.49993C2.35595 15.0019 2.21337 14.9716 2.08255 14.9115C1.95173 14.8513 1.83597 14.7627 1.74368 14.6522C1.54056 14.4094 1.45868 14.0778 1.51931 13.7425C1.78306 12.2794 2.60618 11.0503 3.89993 10.1875C5.04931 9.42156 6.50525 9 7.99993 9C9.49462 9 10.9506 9.42188 12.0999 10.1875C13.3937 11.05 14.2168 12.2791 14.4806 13.7422C14.5412 14.0775 14.4593 14.4091 14.2562 14.6519C14.1639 14.7625 14.0482 14.8511 13.9174 14.9113C13.7865 14.9715 13.6439 15.0018 13.4999 15Z",
24627
- fill: "#97A1AF"
24628
- }));
24629
- };
24630
-
24631
- var LessonTooltip = function LessonTooltip(_ref) {
24632
- var lesson = _ref.lesson,
24633
- lessonAttendance = _ref.lessonAttendance;
24634
- var _useTranslation = useTranslation(),
24635
- t = _useTranslation.t;
24636
- return React__default.createElement(Stack, {
24637
- padding: "16px"
24638
- }, React__default.createElement(Stack, {
24639
- gap: "20px"
24640
- }, React__default.createElement(Typography, {
24641
- sx: {
24642
- color: grey[700]
24643
- }
24644
- }, lesson.courseName), React__default.createElement(Stack, {
24645
- display: "flex",
24646
- flexDirection: "row",
24647
- justifyContent: "space-between",
24648
- gap: "20px"
24649
- }, React__default.createElement(Box, {
24650
- display: "flex",
24651
- flexDirection: "row",
24652
- gap: "4px"
24653
- }, React__default.createElement(CalendarFill, null), React__default.createElement(Typography, {
24654
- sx: {
24655
- color: grey[500],
24656
- fontSize: "13px",
24657
- fontWeight: "600",
24658
- whiteSpace: "nowrap"
24659
- }
24660
- }, t("class_date"))), React__default.createElement(Typography, {
24661
- sx: {
24662
- color: grey[700],
24663
- fontSize: "14px",
24664
- fontWeight: "600"
24665
- }
24666
- }, t("" + moment(lesson === null || lesson === void 0 ? void 0 : lesson.date).format(t("date_format"))))), React__default.createElement(Stack, {
24667
- display: "flex",
24668
- flexDirection: "row",
24669
- justifyContent: "space-between",
24670
- gap: "20px"
24671
- }, React__default.createElement(Stack, {
24672
- display: "flex",
24673
- flexDirection: "row",
24674
- gap: "4px"
24675
- }, React__default.createElement(ClockFill, null), React__default.createElement(Typography, {
24676
- sx: {
24677
- color: grey[500],
24678
- fontSize: "13px",
24679
- fontWeight: "600",
24680
- whiteSpace: "nowrap"
24681
- }
24682
- }, t("class_time"))), React__default.createElement(Typography, {
24683
- sx: {
24684
- color: grey[700],
24685
- fontSize: "14px",
24686
- fontWeight: "600"
24687
- }
24688
- }, formatTimeHHmm(lesson === null || lesson === void 0 ? void 0 : lesson.startTime) + " : " + formatTimeHHmm(lesson === null || lesson === void 0 ? void 0 : lesson.endTime) + " (" + subtractTime(lesson === null || lesson === void 0 ? void 0 : lesson.endTime, lesson === null || lesson === void 0 ? void 0 : lesson.startTime, t) + ")")), React__default.createElement(Stack, {
24689
- display: "flex",
24690
- flexDirection: "row",
24691
- justifyContent: "space-between",
24692
- gap: "20px"
24693
- }, React__default.createElement(Stack, {
24694
- display: "flex",
24695
- flexDirection: "row",
24696
- gap: "4px"
24697
- }, React__default.createElement(CheckedCircleFill, null), React__default.createElement(Typography, {
24698
- sx: {
24699
- color: grey[500],
24700
- fontSize: "13px",
24701
- fontWeight: "600",
24702
- whiteSpace: "nowrap"
24703
- }
24704
- }, t("attendance"))), React__default.createElement(Typography, {
24705
- sx: {
24706
- color: grey[700],
24707
- fontSize: "14px",
24708
- fontWeight: "600"
24709
- }
24710
- }, (lessonAttendance === null || lessonAttendance === void 0 ? void 0 : lessonAttendance.status) === StudentAttendanceStatus.Late ? t("late") : (lessonAttendance === null || lessonAttendance === void 0 ? void 0 : lessonAttendance.status) === StudentAttendanceStatus.Attended ? t("attendance") : t("none_attendance"))), React__default.createElement(Stack, {
24711
- display: "flex",
24712
- flexDirection: "row",
24713
- justifyContent: "space-between",
24714
- gap: "20px"
24715
- }, React__default.createElement(Stack, {
24716
- display: "flex",
24717
- flexDirection: "row",
24718
- gap: "4px"
24719
- }, React__default.createElement(IconPerson, null), React__default.createElement(Typography, {
24720
- sx: {
24721
- color: grey[500],
24722
- fontSize: "13px",
24723
- fontWeight: "600",
24724
- whiteSpace: "nowrap"
24725
- }
24726
- }, t("teacher_in_charge"))), React__default.createElement(Typography, {
24727
- sx: {
24728
- color: grey[700],
24729
- fontSize: "14px",
24730
- fontWeight: "600"
24731
- }
24732
- }, lesson === null || lesson === void 0 ? void 0 : lesson.mainTeacherName))));
24733
- };
24734
-
24735
24977
  var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24736
24978
  var data = _ref.data,
24737
24979
  containerProps = _ref.containerProps,
@@ -24740,23 +24982,17 @@ var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24740
24982
  mainTeacherName = _ref.mainTeacherName,
24741
24983
  courseName = _ref.courseName,
24742
24984
  courseId = _ref.courseId,
24743
- studentId = _ref.studentId,
24744
24985
  onCheckInLesson = _ref.onCheckInLesson;
24745
24986
  var _useTranslation = useTranslation(),
24746
24987
  t = _useTranslation.t;
24747
- var isAdmin = useSelector(function (state) {
24748
- var _state$common, _state$common$user, _state$common$user$ro;
24749
- return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : (_state$common$user$ro = _state$common$user.roles) === null || _state$common$user$ro === void 0 ? void 0 : _state$common$user$ro.includes(Role.Admin);
24750
- });
24751
24988
  var language = useSelector(function (state) {
24752
- var _state$common2;
24753
- return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
24989
+ var _state$common;
24990
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
24754
24991
  });
24755
24992
  var dataString = JSON.stringify(data);
24756
24993
  var containerRef = useRef(null);
24757
- var handleCheckInLesson = function handleCheckInLesson(lesson, studentId) {
24758
- if (isAdmin) return;
24759
- onCheckInLesson(lesson, studentId);
24994
+ var handleCheckInLesson = function handleCheckInLesson(lesson, attendance) {
24995
+ onCheckInLesson(lesson, attendance);
24760
24996
  };
24761
24997
  var renderItem = function renderItem(rowIndex, columnIndex, _) {
24762
24998
  if (rowIndex === 0) return React__default.createElement(Box, {
@@ -24800,9 +25036,8 @@ var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24800
25036
  }, React__default.createElement(IconButton, {
24801
25037
  size: "small",
24802
25038
  className: "d-flex align-items-center ",
24803
- disabled: isAdmin,
24804
25039
  onClick: function onClick() {
24805
- return handleCheckInLesson(lesson, studentId);
25040
+ return handleCheckInLesson(lesson, attendance);
24806
25041
  },
24807
25042
  sx: {
24808
25043
  width: "26px",
@@ -24852,8 +25087,7 @@ var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24852
25087
  };
24853
25088
 
24854
25089
  var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
24855
- var studentId = _ref.studentId,
24856
- data = _ref.data,
25090
+ var data = _ref.data,
24857
25091
  onCheckInLesson = _ref.onCheckInLesson,
24858
25092
  onLoad = _ref.onLoad;
24859
25093
  var _useTranslation = useTranslation(),
@@ -24938,7 +25172,6 @@ var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
24938
25172
  data: data.lessons,
24939
25173
  courseId: data.id,
24940
25174
  courseName: data.name,
24941
- studentId: studentId,
24942
25175
  mainTeacherName: data.mainTeacherName,
24943
25176
  onCheckInLesson: onCheckInLesson,
24944
25177
  listWidth: 0,
@@ -24958,8 +25191,7 @@ var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
24958
25191
  };
24959
25192
 
24960
25193
  var CourseAttendanceList = function CourseAttendanceList(_ref) {
24961
- var studentId = _ref.studentId,
24962
- data = _ref.data,
25194
+ var data = _ref.data,
24963
25195
  isLoading = _ref.isLoading,
24964
25196
  listHeight = _ref.listHeight,
24965
25197
  containerProps = _ref.containerProps,
@@ -24968,7 +25200,6 @@ var CourseAttendanceList = function CourseAttendanceList(_ref) {
24968
25200
  var renderItem = function renderItem(item, _, measure) {
24969
25201
  return React__default.createElement(CourseAttendanceItem, {
24970
25202
  key: item.id,
24971
- studentId: studentId,
24972
25203
  data: item,
24973
25204
  onCheckInLesson: onCheckInLesson,
24974
25205
  onLoad: measure
@@ -24991,13 +25222,11 @@ var getAttendanceByStudentIdApi = function getAttendanceByStudentIdApi(studentId
24991
25222
  params: query
24992
25223
  });
24993
25224
  };
24994
- var getCheckInLessonsApi = function getCheckInLessonsApi(lessonId, studentId) {
24995
- return api.post(LESSON_URL + "/" + lessonId + "/teacher", {
24996
- studentId: studentId
24997
- });
25225
+ var getCheckInLessonsApi = function getCheckInLessonsApi(lessonId, attendanceRequest) {
25226
+ return api.post(LESSON_URL + "/" + lessonId + "/teacher", attendanceRequest);
24998
25227
  };
24999
25228
 
25000
- var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25229
+ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId, onUpdatedAttendance) {
25001
25230
  var dispatch = useDispatch();
25002
25231
  var _useTranslation = useTranslation(),
25003
25232
  t = _useTranslation.t;
@@ -25024,15 +25253,46 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25024
25253
  isLoading = _useVirtualList.isLoading,
25025
25254
  handleLoadMore = _useVirtualList.handleLoadMore,
25026
25255
  setItems = _useVirtualList.setItems;
25027
- var handleCheckInLesson = function handleCheckInLesson(lesson, studentId) {
25256
+ var _useState = useState(),
25257
+ openAttendanceDalog = _useState[0],
25258
+ setOpenAttendanceDialog = _useState[1];
25259
+ var handleOpenAttendanceDialog = function handleOpenAttendanceDialog(lesson, attendance) {
25260
+ setOpenAttendanceDialog({
25261
+ lesson: lesson,
25262
+ attendance: attendance
25263
+ });
25264
+ };
25265
+ var handleCloseAttendanceDialog = function handleCloseAttendanceDialog() {
25266
+ setOpenAttendanceDialog(undefined);
25267
+ };
25268
+ var handleCheckInLesson = function handleCheckInLesson(lesson, attendance) {
25269
+ if (!!attendance && attendance.status !== StudentAttendanceStatus.Absent) handleUpdateStudentAttendance(lesson, {
25270
+ studentId: studentId,
25271
+ attendanceTime: attendance.attendanceTime,
25272
+ status: attendance.status === StudentAttendanceStatus.Attended ? StudentAttendanceStatus.Late : StudentAttendanceStatus.Absent
25273
+ });else handleOpenAttendanceDialog(lesson, attendance);
25274
+ };
25275
+ var handleUpdateStudentAttendance = function handleUpdateStudentAttendance(lesson, attendanceRequest) {
25028
25276
  try {
25029
25277
  var _temp2 = function _temp2() {
25030
25278
  dispatch(setLoading(false));
25031
25279
  };
25032
25280
  dispatch(setLoading(true));
25033
25281
  var _temp = _catch(function () {
25034
- return Promise.resolve(getCheckInLessonsApi(lesson.id, studentId)).then(function () {
25282
+ return Promise.resolve(getCheckInLessonsApi(lesson.id, attendanceRequest)).then(function () {
25283
+ var attendance = {
25284
+ lessonId: lesson.id,
25285
+ attendanceTime: attendanceRequest.attendanceTime,
25286
+ status: attendanceRequest.status
25287
+ };
25288
+ onUpdatedAttendance === null || onUpdatedAttendance === void 0 ? void 0 : onUpdatedAttendance(attendance, studentId);
25289
+ updateAttendanceData({
25290
+ lessonId: lesson.id,
25291
+ attendanceTime: attendanceRequest.attendanceTime,
25292
+ status: attendanceRequest.status
25293
+ }, lesson.courseId);
25035
25294
  toast.success(t("update_attendance_status_successfully"));
25295
+ handleCloseAttendanceDialog();
25036
25296
  });
25037
25297
  }, function (error) {
25038
25298
  toast.error(getErrorMessage(t, error));
@@ -25048,12 +25308,15 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25048
25308
  var item = JSON.parse(data);
25049
25309
  var lessonAttendance = {
25050
25310
  lessonId: item === null || item === void 0 ? void 0 : (_item$attendance = item.attendance) === null || _item$attendance === void 0 ? void 0 : _item$attendance.lessonId,
25051
- attendanceTime: moment.utc(item === null || item === void 0 ? void 0 : (_item$attendance2 = item.attendance) === null || _item$attendance2 === void 0 ? void 0 : _item$attendance2.attendanceTime).local().format(FormatDate),
25311
+ attendanceTime: item === null || item === void 0 ? void 0 : (_item$attendance2 = item.attendance) === null || _item$attendance2 === void 0 ? void 0 : _item$attendance2.attendanceTime,
25052
25312
  status: item === null || item === void 0 ? void 0 : (_item$attendance3 = item.attendance) === null || _item$attendance3 === void 0 ? void 0 : _item$attendance3.status
25053
25313
  };
25314
+ updateAttendanceData(lessonAttendance, item.courseId);
25315
+ };
25316
+ var updateAttendanceData = function updateAttendanceData(lessonAttendance, courseId) {
25054
25317
  setItems(function (prev) {
25055
25318
  var newData = prev.map(function (course) {
25056
- if (item.courseId !== course.id) return course;
25319
+ if (courseId !== course.id) return course;
25057
25320
  return _extends({}, course, {
25058
25321
  lessons: course.lessons.map(function (lesson) {
25059
25322
  if (lesson.id != lessonAttendance.lessonId) return lesson;
@@ -25085,20 +25348,27 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25085
25348
  return {
25086
25349
  items: items,
25087
25350
  isLoading: isLoading,
25351
+ openAttendanceDalog: openAttendanceDalog,
25088
25352
  handleLoadMore: handleLoadMore,
25089
- handleCheckInLesson: handleCheckInLesson
25353
+ handleCheckInLesson: handleCheckInLesson,
25354
+ handleCloseAttendanceDialog: handleCloseAttendanceDialog,
25355
+ handleUpdateStudentAttendance: handleUpdateStudentAttendance
25090
25356
  };
25091
25357
  };
25092
25358
 
25093
25359
  var DrawerAttendanceTab = function DrawerAttendanceTab(_ref) {
25094
25360
  var studentId = _ref.studentId,
25095
25361
  selectedTab = _ref.selectedTab,
25096
- value = _ref.value;
25097
- var _useDrawerAttendanceT = useDrawerAttendanceTab(studentId),
25362
+ value = _ref.value,
25363
+ onUpdatedAttendance = _ref.onUpdatedAttendance;
25364
+ var _useDrawerAttendanceT = useDrawerAttendanceTab(studentId, onUpdatedAttendance),
25098
25365
  items = _useDrawerAttendanceT.items,
25099
25366
  isLoading = _useDrawerAttendanceT.isLoading,
25367
+ openAttendanceDalog = _useDrawerAttendanceT.openAttendanceDalog,
25100
25368
  handleLoadMore = _useDrawerAttendanceT.handleLoadMore,
25101
- handleCheckInLesson = _useDrawerAttendanceT.handleCheckInLesson;
25369
+ handleCheckInLesson = _useDrawerAttendanceT.handleCheckInLesson,
25370
+ handleCloseAttendanceDialog = _useDrawerAttendanceT.handleCloseAttendanceDialog,
25371
+ handleUpdateStudentAttendance = _useDrawerAttendanceT.handleUpdateStudentAttendance;
25102
25372
  return React__default.createElement(DrawerTabContent, {
25103
25373
  value: value,
25104
25374
  isSelected: selectedTab === value
@@ -25116,10 +25386,16 @@ var DrawerAttendanceTab = function DrawerAttendanceTab(_ref) {
25116
25386
  data: items,
25117
25387
  onLoadMore: handleLoadMore,
25118
25388
  isLoading: isLoading,
25119
- studentId: studentId,
25120
25389
  onCheckInLesson: handleCheckInLesson,
25121
25390
  listHeight: 0
25122
- })));
25391
+ })), React__default.createElement(AttendanceFormDialog, {
25392
+ open: !!openAttendanceDalog,
25393
+ onClose: handleCloseAttendanceDialog,
25394
+ attendance: openAttendanceDalog === null || openAttendanceDalog === void 0 ? void 0 : openAttendanceDalog.attendance,
25395
+ lesson: openAttendanceDalog === null || openAttendanceDalog === void 0 ? void 0 : openAttendanceDalog.lesson,
25396
+ studentId: studentId,
25397
+ onSubmit: handleUpdateStudentAttendance
25398
+ }));
25123
25399
  };
25124
25400
 
25125
25401
  var StudentInfoDrawer = function StudentInfoDrawer(props) {
@@ -25129,7 +25405,8 @@ var StudentInfoDrawer = function StudentInfoDrawer(props) {
25129
25405
  width = props.width,
25130
25406
  history = props.history,
25131
25407
  role = props.role,
25132
- onViewQA = props.onViewQA;
25408
+ onViewQA = props.onViewQA,
25409
+ onUpdatedAttendance = props.onUpdatedAttendance;
25133
25410
  var _useStudentInfoDrawer = useStudentInfoDrawer(props),
25134
25411
  loadedTabs = _useStudentInfoDrawer.loadedTabs,
25135
25412
  isLoading = _useStudentInfoDrawer.isLoading,
@@ -25160,7 +25437,8 @@ var StudentInfoDrawer = function StudentInfoDrawer(props) {
25160
25437
  }), studentId && React__default.createElement(Fragment$1, null, loadedTabs[DrawerTab.Attendance] && React__default.createElement(DrawerAttendanceTab, {
25161
25438
  value: DrawerTab.Attendance,
25162
25439
  selectedTab: selectedTab,
25163
- studentId: studentId
25440
+ studentId: studentId,
25441
+ onUpdatedAttendance: onUpdatedAttendance
25164
25442
  }), loadedTabs[DrawerTab.Note] && React__default.createElement(DrawerNoteTab, {
25165
25443
  value: DrawerTab.Note,
25166
25444
  selectedTab: selectedTab,
@@ -26631,7 +26909,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26631
26909
  }, React__default.createElement(DemoContainer, {
26632
26910
  components: ["DatePicker"]
26633
26911
  }, React__default.createElement(DatePicker, {
26634
- className: "" + styles$2["date-picker"],
26912
+ className: "" + styles$3["date-picker"],
26635
26913
  format: t("date_format"),
26636
26914
  maxDate: endDate ? moment(endDate).local() : undefined,
26637
26915
  minDate: startDate ? moment(startDate).local() : undefined,
@@ -26649,7 +26927,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26649
26927
  }, t("main_teacher"), " ", React__default.createElement("span", {
26650
26928
  className: "text-danger"
26651
26929
  }, "*")), React__default.createElement("div", {
26652
- className: "" + styles$2["teacher-selector-wrapper"]
26930
+ className: "" + styles$3["teacher-selector-wrapper"]
26653
26931
  }, React__default.createElement(TeacherSelector, {
26654
26932
  value: formikProp.values.mainTeacherId,
26655
26933
  teachers: teachers,
@@ -26677,7 +26955,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26677
26955
  return formikProp.setFieldValue("startTime", newValue);
26678
26956
  },
26679
26957
  timezone: "system",
26680
- className: styles$2["time-picker"] + " w-100",
26958
+ className: styles$3["time-picker"] + " w-100",
26681
26959
  slotProps: {
26682
26960
  textField: {
26683
26961
  onClick: function onClick() {
@@ -26711,7 +26989,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26711
26989
  return formikProp.setFieldValue("endTime", newValue);
26712
26990
  },
26713
26991
  timezone: "system",
26714
- className: styles$2["time-picker"] + " w-100",
26992
+ className: styles$3["time-picker"] + " w-100",
26715
26993
  slotProps: {
26716
26994
  textField: {
26717
26995
  onClick: function onClick() {
@@ -27548,7 +27826,7 @@ var RECENT_USER_ACTION_HEADERS = [{
27548
27826
  }];
27549
27827
  var CSV_PREFIX = "data:text/csv;charset=utf-8,";
27550
27828
 
27551
- var styles$6 = {"action-btn":"_1jXbz","action-btn--pencil":"_at4xP","icon-rotate-180":"_12gv9","drop-area":"_R4bn5"};
27829
+ var styles$8 = {"action-btn":"_1jXbz","action-btn--pencil":"_at4xP","icon-rotate-180":"_12gv9","drop-area":"_R4bn5"};
27552
27830
 
27553
27831
  var _excluded$c = ["text", "isRequired", "className"];
27554
27832
  var LabelRequired = function LabelRequired(_ref) {
@@ -28673,7 +28951,7 @@ var DeleteUserCsvDialog = function DeleteUserCsvDialog(_ref) {
28673
28951
  size: "xs",
28674
28952
  title: t('delete_users_csv')
28675
28953
  }, React__default.createElement(DialogContent, null, React__default.createElement("div", {
28676
- className: "" + styles$6["drop-area"],
28954
+ className: "" + styles$8["drop-area"],
28677
28955
  onDrop: handleDrop,
28678
28956
  onDragOver: handleDragOver,
28679
28957
  onClick: handleChooseFile
@@ -28802,10 +29080,10 @@ var UserRow = function UserRow(_ref) {
28802
29080
  className: "d-flex"
28803
29081
  }, isAdmin || isSuperAdmin ? React__default.createElement(IconButton, {
28804
29082
  color: "default",
28805
- className: styles$6["action-btn"] + " bg-warning text-white me-2",
29083
+ className: styles$8["action-btn"] + " bg-warning text-white me-2",
28806
29084
  onClick: handleViewOrUpdate
28807
29085
  }, React__default.createElement(HiOutlinePencilAlt, {
28808
- className: styles$6["action-btn--pencil"],
29086
+ className: styles$8["action-btn--pencil"],
28809
29087
  size: 16
28810
29088
  })) : React__default.createElement(IconButton, {
28811
29089
  color: "default",
@@ -28816,7 +29094,7 @@ var UserRow = function UserRow(_ref) {
28816
29094
  })), (isAdmin || isSuperAdmin) && React__default.createElement(IconButton, {
28817
29095
  onClick: handleDelete,
28818
29096
  color: "default",
28819
- className: styles$6["action-btn"] + " bg-danger text-white"
29097
+ className: styles$8["action-btn"] + " bg-danger text-white"
28820
29098
  }, React__default.createElement(FaTrashCan, {
28821
29099
  size: 12
28822
29100
  })))));
@@ -28902,7 +29180,7 @@ var UserList = function UserList(_ref) {
28902
29180
  bgcolor: theme.palette.primary.main
28903
29181
  },
28904
29182
  startIcon: React__default.createElement(MdDownload, {
28905
- className: "" + styles$6["icon-rotate-180"],
29183
+ className: "" + styles$8["icon-rotate-180"],
28906
29184
  size: 14
28907
29185
  }),
28908
29186
  onClick: handleChooseFile
@@ -28913,7 +29191,7 @@ var UserList = function UserList(_ref) {
28913
29191
  bgcolor: theme.palette.error.main
28914
29192
  },
28915
29193
  startIcon: React__default.createElement(MdDownload, {
28916
- className: "" + styles$6["icon-rotate-180"],
29194
+ className: "" + styles$8["icon-rotate-180"],
28917
29195
  size: 14
28918
29196
  }),
28919
29197
  onClick: handleToggleDeleteUserCsv
@@ -29049,7 +29327,7 @@ var UserList = function UserList(_ref) {
29049
29327
  })));
29050
29328
  };
29051
29329
 
29052
- var styles$7 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
29330
+ var styles$9 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
29053
29331
 
29054
29332
  var BpIcon = styled("span")(function (_ref) {
29055
29333
  var theme = _ref.theme;
@@ -29122,7 +29400,7 @@ var QuestionView = function QuestionView(_ref2) {
29122
29400
  mb: "16px"
29123
29401
  }, React__default.createElement(Stack, null, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29124
29402
  htmlFor: "textual_answer",
29125
- className: styles$7["question-label"] + " form-label"
29403
+ className: styles$9["question-label"] + " form-label"
29126
29404
  }, t("textual_answer")), React__default.createElement(TextField, {
29127
29405
  sx: {
29128
29406
  "& .MuiInputBase-input": {
@@ -29150,7 +29428,7 @@ var QuestionView = function QuestionView(_ref2) {
29150
29428
  }).map(function (i) {
29151
29429
  return React__default.createElement(FormControlLabel, {
29152
29430
  key: i,
29153
- className: styles$7["question-label"] + " w-fit",
29431
+ className: styles$9["question-label"] + " w-fit",
29154
29432
  labelPlacement: "top",
29155
29433
  value: i,
29156
29434
  onChange: function onChange(e) {
@@ -29181,7 +29459,7 @@ var QuestionView = function QuestionView(_ref2) {
29181
29459
  }).map(function (i) {
29182
29460
  return React__default.createElement(FormControlLabel, {
29183
29461
  key: i,
29184
- className: styles$7["question-label"] + " w-fit",
29462
+ className: styles$9["question-label"] + " w-fit",
29185
29463
  labelPlacement: "top",
29186
29464
  value: i,
29187
29465
  onChange: function onChange(e) {
@@ -29224,7 +29502,7 @@ var QuestionView = function QuestionView(_ref2) {
29224
29502
  }, React__default.createElement(Grid, {
29225
29503
  container: true
29226
29504
  }, React__default.createElement("div", {
29227
- className: styles$7["question-title"] + " me-2 text-nowrap"
29505
+ className: styles$9["question-title"] + " me-2 text-nowrap"
29228
29506
  }, t("problem_number_question", {
29229
29507
  number: question.questionOrder + 1
29230
29508
  }))), React__default.createElement(Grid, {
@@ -29237,7 +29515,7 @@ var QuestionView = function QuestionView(_ref2) {
29237
29515
  mb: "16px"
29238
29516
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29239
29517
  htmlFor: "title",
29240
- className: styles$7["question-label"] + " form-label"
29518
+ className: styles$9["question-label"] + " form-label"
29241
29519
  }, t("title")), React__default.createElement(TextField, {
29242
29520
  fullWidth: true,
29243
29521
  value: question.title,
@@ -29252,7 +29530,7 @@ var QuestionView = function QuestionView(_ref2) {
29252
29530
  mb: "16px"
29253
29531
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29254
29532
  htmlFor: "author",
29255
- className: styles$7["question-label"] + " form-label"
29533
+ className: styles$9["question-label"] + " form-label"
29256
29534
  }, t("author")), React__default.createElement(TextField, {
29257
29535
  fullWidth: true,
29258
29536
  value: question.author,
@@ -29267,7 +29545,7 @@ var QuestionView = function QuestionView(_ref2) {
29267
29545
  mb: "16px"
29268
29546
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29269
29547
  htmlFor: "subject",
29270
- className: styles$7["question-label"] + " form-label"
29548
+ className: styles$9["question-label"] + " form-label"
29271
29549
  }, t("subject")), React__default.createElement(TextField, {
29272
29550
  fullWidth: true,
29273
29551
  value: question.subject,
@@ -29286,7 +29564,7 @@ var QuestionView = function QuestionView(_ref2) {
29286
29564
  mb: "16px"
29287
29565
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29288
29566
  htmlFor: "type",
29289
- className: styles$7["question-label"] + " form-label"
29567
+ className: styles$9["question-label"] + " form-label"
29290
29568
  }, t("type")), React__default.createElement(CustomSelectOption, {
29291
29569
  isTextbook: true,
29292
29570
  valueById: question.type,
@@ -29300,7 +29578,7 @@ var QuestionView = function QuestionView(_ref2) {
29300
29578
  lg: 3
29301
29579
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29302
29580
  htmlFor: "question_answer_type",
29303
- className: styles$7["question-label"] + " form-label"
29581
+ className: styles$9["question-label"] + " form-label"
29304
29582
  }, t("question_answer_type")), React__default.createElement(CustomSelect, {
29305
29583
  isDisabled: isDisabled,
29306
29584
  value: question.questionAnswerType,
@@ -29320,7 +29598,7 @@ var QuestionView = function QuestionView(_ref2) {
29320
29598
  xs: 4,
29321
29599
  lg: 4
29322
29600
  }, React__default.createElement("div", {
29323
- className: styles$7["question-title"] + " me-2 text-nowrap"
29601
+ className: styles$9["question-title"] + " me-2 text-nowrap"
29324
29602
  }, t("problem_number_question", {
29325
29603
  number: question.questionOrder + 1
29326
29604
  }))), !isTextbook && React__default.createElement(Grid, {
@@ -29333,7 +29611,7 @@ var QuestionView = function QuestionView(_ref2) {
29333
29611
  lg: 4
29334
29612
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29335
29613
  htmlFor: "question_answer_type",
29336
- className: styles$7["question-label"] + " form-label"
29614
+ className: styles$9["question-label"] + " form-label"
29337
29615
  }, t("question_answer_type")), React__default.createElement(CustomSelect, {
29338
29616
  isDisabled: isDisabled,
29339
29617
  value: question.questionAnswerType,
@@ -29467,7 +29745,11 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29467
29745
  onDelete === null || onDelete === void 0 ? void 0 : onDelete(article);
29468
29746
  };
29469
29747
  return React__default.createElement("div", {
29470
- className: "d-flex " + styles$7["question"] + " " + (isActive ? styles$7["question--active"] : "")
29748
+ className: "d-flex " + styles$9["question"] + " " + (isActive ? styles$9["question--active"] : ""),
29749
+ style: {
29750
+ maxHeight: "95%",
29751
+ overflow: 'scroll'
29752
+ }
29471
29753
  }, React__default.createElement("div", {
29472
29754
  className: "py-1"
29473
29755
  }, React__default.createElement(PiDotsNineLight, {
@@ -29475,9 +29757,9 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29475
29757
  })), React__default.createElement("div", {
29476
29758
  className: "px-2"
29477
29759
  }, React__default.createElement("p", {
29478
- className: "mb-0 " + styles$7["question-article"]
29760
+ className: "mb-0 " + styles$9["question-article"]
29479
29761
  }, t("article_number")), React__default.createElement("p", {
29480
- className: "text-center " + styles$7["question-article"]
29762
+ className: "text-center " + styles$9["question-article"]
29481
29763
  }, article)), React__default.createElement("div", {
29482
29764
  className: "flex-grow-1"
29483
29765
  }, React__default.createElement(Grid, {
@@ -29498,7 +29780,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29498
29780
  lg: 3
29499
29781
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29500
29782
  htmlFor: "question_count",
29501
- className: styles$7["question-label"] + " form-label"
29783
+ className: styles$9["question-label"] + " form-label"
29502
29784
  }, t("questions")), React__default.createElement(QuestionCountSelector, {
29503
29785
  id: "question_count",
29504
29786
  value: questionCount,
@@ -29517,7 +29799,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29517
29799
  }
29518
29800
  }, React__default.createElement(FormLabel, {
29519
29801
  htmlFor: "category",
29520
- className: styles$7["question-label"] + " form-label"
29802
+ className: styles$9["question-label"] + " form-label"
29521
29803
  }, t("category")), React__default.createElement(ArticleCategorySelector, {
29522
29804
  style: {
29523
29805
  "div:has(&)": {
@@ -29537,7 +29819,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29537
29819
  lg: 3
29538
29820
  }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
29539
29821
  htmlFor: "answer_count",
29540
- className: styles$7["question-label"] + " form-label"
29822
+ className: styles$9["question-label"] + " form-label"
29541
29823
  }, t("answer_count")), React__default.createElement(AnswerCountSelector, {
29542
29824
  id: "answer_count",
29543
29825
  value: answerCount,
@@ -30062,7 +30344,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30062
30344
  xs: 5,
30063
30345
  className: 'mb-2'
30064
30346
  }, React__default.createElement("label", {
30065
- className: styles["form-label"] + " " + styles$7["question-label"],
30347
+ className: styles["form-label"] + " " + styles$9["question-label"],
30066
30348
  htmlFor: "title"
30067
30349
  }, t("exam_name")), React__default.createElement("input", {
30068
30350
  disabled: isDisabled,
@@ -30076,7 +30358,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30076
30358
  xs: 3,
30077
30359
  className: 'mb-2'
30078
30360
  }, React__default.createElement("label", {
30079
- className: styles["form-label"] + " " + styles$7["question-label"],
30361
+ className: styles["form-label"] + " " + styles$9["question-label"],
30080
30362
  htmlFor: "duration"
30081
30363
  }, t("exam_duration")), React__default.createElement(CustomSelect, {
30082
30364
  inputId: "duration",
@@ -30089,7 +30371,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30089
30371
  xs: 3,
30090
30372
  className: 'mb-2'
30091
30373
  }, React__default.createElement("label", {
30092
- className: styles["form-label"] + " " + styles$7["question-label"],
30374
+ className: styles["form-label"] + " " + styles$9["question-label"],
30093
30375
  htmlFor: "subject"
30094
30376
  }, t("subject")), React__default.createElement(CustomSelect, {
30095
30377
  inputId: "subject",
@@ -30132,7 +30414,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30132
30414
  }
30133
30415
  },
30134
30416
  disabled: isDisabled,
30135
- className: "w-100 d-flex justify-content-center align-items-center " + styles$7["question-btn"] + " mt-3",
30417
+ className: "w-100 d-flex justify-content-center align-items-center " + styles$9["question-btn"] + " mt-3",
30136
30418
  onClick: handleAddArticle
30137
30419
  }, React__default.createElement(FaPlusCircle, {
30138
30420
  className: "me-2"
@@ -31717,7 +31999,7 @@ var ArticleDialog = function ArticleDialog(_ref) {
31717
31999
  }, t("add")))));
31718
32000
  };
31719
32001
 
31720
- var styles$8 = {"drawer":"_11aYm","open":"_3Ydwm","drawer-overlay":"_3SQDf","drawer-header":"_2BwOx","drawer-form":"_2Zo7R","dropdown-content-academy":"_1lzjD","dropdown-change":"_1y7K9","dropdown-academy-item":"_1Y-55","dropdown-content-language":"_1fBXY","dropdown-item-language":"_3Szun","dropdown-item-language-active":"_2HhLb","item-address":"_3WYHC","item-logout":"_2-9ix","title-address":"_1r4pn","image-academy":"_2ZozT"};
32002
+ var styles$a = {"drawer":"_11aYm","open":"_3Ydwm","drawer-overlay":"_3SQDf","drawer-header":"_2BwOx","drawer-form":"_2Zo7R","dropdown-content-academy":"_1lzjD","dropdown-change":"_1y7K9","dropdown-academy-item":"_1Y-55","dropdown-content-language":"_1fBXY","dropdown-item-language":"_3Szun","dropdown-item-language-active":"_2HhLb","item-address":"_3WYHC","item-logout":"_2-9ix","title-address":"_1r4pn","image-academy":"_2ZozT"};
31721
32003
 
31722
32004
  var _excluded$e = ["isOpen", "onClose", "handleSaveExam"];
31723
32005
  var CreateExamDrawer = function CreateExamDrawer(props) {
@@ -31730,17 +32012,17 @@ var CreateExamDrawer = function CreateExamDrawer(props) {
31730
32012
  var theme = useTheme();
31731
32013
  var isTabletUp = useMediaQuery(theme.breakpoints.up('lg'));
31732
32014
  return React__default.createElement("div", null, React__default.createElement("div", {
31733
- className: styles$8["drawer-overlay"] + " " + (isOpen && styles$8["open"]),
32015
+ className: styles$a["drawer-overlay"] + " " + (isOpen && styles$a["open"]),
31734
32016
  onClick: function onClick() {
31735
32017
  return onClose();
31736
32018
  }
31737
32019
  }), React__default.createElement("div", {
31738
- className: styles$8["drawer"] + " bg-white " + (isOpen && styles$8["open"]),
32020
+ className: styles$a["drawer"] + " bg-white " + (isOpen && styles$a["open"]),
31739
32021
  style: {
31740
32022
  width: "" + (isTabletUp ? "70vw" : "100vw")
31741
32023
  }
31742
32024
  }, React__default.createElement("div", {
31743
- className: styles$8["drawer-header"] + " d-flex justify-content-between align-items-center"
32025
+ className: styles$a["drawer-header"] + " d-flex justify-content-between align-items-center"
31744
32026
  }, React__default.createElement(Button, {
31745
32027
  variant: "outlined",
31746
32028
  sx: {
@@ -31759,7 +32041,7 @@ var CreateExamDrawer = function CreateExamDrawer(props) {
31759
32041
  }, React__default.createElement(FaTimes, {
31760
32042
  size: 18
31761
32043
  }))), React__default.createElement("div", {
31762
- className: "" + styles$8["drawer-form"]
32044
+ className: "" + styles$a["drawer-form"]
31763
32045
  }, React__default.createElement(ExamDetailView, Object.assign({}, examDetailViewProps)))));
31764
32046
  };
31765
32047
 
@@ -32141,7 +32423,7 @@ var ShareToTeacherDialog = function ShareToTeacherDialog(_ref) {
32141
32423
  maxWidth: "md"
32142
32424
  }, React__default.createElement(DialogContent, {
32143
32425
  sx: {
32144
- overflowY: "unset"
32426
+ overflowY: "auto"
32145
32427
  }
32146
32428
  }, React__default.createElement(Grid, {
32147
32429
  container: true,
@@ -32875,7 +33157,7 @@ var useNotificationDetail = function useNotificationDetail(_ref) {
32875
33157
  };
32876
33158
  };
32877
33159
 
32878
- var styles$9 = {"avatar":"_8niRT"};
33160
+ var styles$b = {"avatar":"_8niRT"};
32879
33161
 
32880
33162
  var _excluded$f = ["value", "disabled", "optionTypeNotification"];
32881
33163
  var TypeSelector = function TypeSelector(_ref) {
@@ -33000,7 +33282,7 @@ var NotificationForm = function NotificationForm(_ref) {
33000
33282
  className: "fw-bold mb-2",
33001
33283
  htmlFor: "main-teacher"
33002
33284
  }, t('content')), React__default.createElement("div", {
33003
- className: "" + styles$9["teacher-selector-wrapper"]
33285
+ className: "" + styles$b["teacher-selector-wrapper"]
33004
33286
  }, React__default.createElement(TinyEditor, {
33005
33287
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33006
33288
  initValue: formikProp.values.content,
@@ -33019,7 +33301,7 @@ var NotificationForm = function NotificationForm(_ref) {
33019
33301
  }, t('type'), " ", React__default.createElement("span", {
33020
33302
  className: "text-danger"
33021
33303
  }, "*")), React__default.createElement("div", {
33022
- className: "" + styles$9["teacher-selector-wrapper"]
33304
+ className: "" + styles$b["teacher-selector-wrapper"]
33023
33305
  }, React__default.createElement(TypeSelector, {
33024
33306
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33025
33307
  optionTypeNotification: notificationTypes,
@@ -33037,7 +33319,7 @@ var NotificationForm = function NotificationForm(_ref) {
33037
33319
  className: "fw-bold mb-2",
33038
33320
  htmlFor: "main-teacher"
33039
33321
  }, t('classes')), React__default.createElement("div", {
33040
- className: "" + styles$9["teacher-selector-wrapper"]
33322
+ className: "" + styles$b["teacher-selector-wrapper"]
33041
33323
  }, React__default.createElement(ClassSelector, {
33042
33324
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33043
33325
  value: classOptions,
@@ -33046,7 +33328,7 @@ var NotificationForm = function NotificationForm(_ref) {
33046
33328
  className: "fw-bold mb-2",
33047
33329
  htmlFor: "main-teacher"
33048
33330
  }, t('students')), React__default.createElement("div", {
33049
- className: "" + styles$9["teacher-selector-wrapper"]
33331
+ className: "" + styles$b["teacher-selector-wrapper"]
33050
33332
  }, React__default.createElement(StudentSelector, {
33051
33333
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33052
33334
  value: studentOptions,
@@ -33927,7 +34209,6 @@ var CompareTypeOptions = [{
33927
34209
  label: "synonym_processing",
33928
34210
  value: QuestionAnswerType.SynonymProcessing
33929
34211
  }];
33930
- var MAX_QUESTIONS_IN_QUESTION_GROUP = 20;
33931
34212
 
33932
34213
  var CustomTextbookTab = function CustomTextbookTab(props) {
33933
34214
  var children = props.children,
@@ -34391,7 +34672,7 @@ var isEqual = function isEqual(prev, next) {
34391
34672
  };
34392
34673
  var ArticleBlock$1 = memo(ArticleBlock, isEqual);
34393
34674
 
34394
- var styles$a = {"question":"_1_ONI","question-article":"_2FdrR","question-title":"_3mgRf","question-label":"_2h0kA","question-input":"_exAl-","question-btn":"_2ksp8"};
34675
+ var styles$c = {"question":"_1_ONI","question-article":"_2FdrR","question-title":"_3mgRf","question-label":"_2h0kA","question-input":"_exAl-","question-btn":"_2ksp8"};
34395
34676
 
34396
34677
  var labelStyle = {
34397
34678
  textOverflow: "ellipsis",
@@ -34417,7 +34698,7 @@ var QuestionCompareType = function QuestionCompareType(_ref) {
34417
34698
  }
34418
34699
  }, React__default.createElement(FormLabel, {
34419
34700
  htmlFor: "compare-type",
34420
- className: "" + styles$a["question-label"],
34701
+ className: "" + styles$c["question-label"],
34421
34702
  sx: _extends({}, labelStyle, {
34422
34703
  width: "unset"
34423
34704
  })
@@ -34461,7 +34742,7 @@ var QuestionOrderName = function QuestionOrderName(_ref) {
34461
34742
  var _useTranslation = useTranslation(),
34462
34743
  t = _useTranslation.t;
34463
34744
  return React__default.createElement(Box, {
34464
- className: styles$a["question-title"] + " me-2 text-nowrap",
34745
+ className: styles$c["question-title"] + " me-2 text-nowrap",
34465
34746
  sx: questionTitleStyle
34466
34747
  }, isMath ? t("problem_number_question", {
34467
34748
  number: questionOrder + 1
@@ -34686,7 +34967,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34686
34967
  var _data$correctAnswers2;
34687
34968
  return React__default.createElement(FormControlLabel, {
34688
34969
  key: i,
34689
- className: styles$a["question-label"] + " w-fit",
34970
+ className: styles$c["question-label"] + " w-fit",
34690
34971
  labelPlacement: "top",
34691
34972
  value: i,
34692
34973
  disabled: disabled,
@@ -34720,7 +35001,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34720
35001
  var _data$correctAnswers4;
34721
35002
  return React__default.createElement(FormControlLabel, {
34722
35003
  key: i,
34723
- className: styles$a["question-label"] + " w-fit",
35004
+ className: styles$c["question-label"] + " w-fit",
34724
35005
  labelPlacement: "top",
34725
35006
  value: i,
34726
35007
  onChange: function onChange(e) {
@@ -34786,7 +35067,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34786
35067
  direction: "row",
34787
35068
  gap: 2
34788
35069
  }, isTextAnswerType && React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
34789
- className: styles$a["question-label"] + " form-label",
35070
+ className: styles$c["question-label"] + " form-label",
34790
35071
  sx: _extends({}, labelStyle, {
34791
35072
  visibility: "hidden"
34792
35073
  })
@@ -34821,7 +35102,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34821
35102
  }
34822
35103
  }, React__default.createElement(FormLabel, {
34823
35104
  htmlFor: "score",
34824
- className: styles$a["question-label"] + " form-label",
35105
+ className: styles$c["question-label"] + " form-label",
34825
35106
  sx: labelStyle
34826
35107
  }, t("score")), React__default.createElement(Field, {
34827
35108
  name: path + ".score",
@@ -34841,7 +35122,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34841
35122
  }
34842
35123
  }, React__default.createElement(FormLabel, {
34843
35124
  htmlFor: "type",
34844
- className: styles$a["question-label"] + " form-label",
35125
+ className: styles$c["question-label"] + " form-label",
34845
35126
  sx: labelStyle
34846
35127
  }, t("type")), React__default.createElement(Field, {
34847
35128
  name: path + ".questionTypeId",
@@ -34866,7 +35147,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34866
35147
  }
34867
35148
  }, React__default.createElement(FormLabel, {
34868
35149
  htmlFor: "question_answer_type",
34869
- className: styles$a["question-label"] + " form-label",
35150
+ className: styles$c["question-label"] + " form-label",
34870
35151
  sx: labelStyle
34871
35152
  }, t("question_answer_type")), React__default.createElement(Field, {
34872
35153
  name: path + ".questionAnswerType",
@@ -35262,8 +35543,7 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
35262
35543
  var field = _ref2.field;
35263
35544
  return React__default.createElement(QuestionCountSelector, Object.assign({}, field, {
35264
35545
  onChange: handleChangeQuestionCount,
35265
- isDisabled: disabled,
35266
- totalQuestions: MAX_QUESTIONS_IN_QUESTION_GROUP
35546
+ isDisabled: disabled
35267
35547
  }));
35268
35548
  }
35269
35549
  }))), isMath && React__default.createElement(Grid, {
@@ -37502,7 +37782,7 @@ var useTextbookList$1 = function useTextbookList() {
37502
37782
  };
37503
37783
  };
37504
37784
 
37505
- var styles$b = {"action-btn":"_2Kt_g","action-btn--pencil":"_3T_TG","btn-cancel":"_3j6Kd","btn-register":"_XA4vl"};
37785
+ var styles$d = {"action-btn":"_2Kt_g","action-btn--pencil":"_3T_TG","btn-cancel":"_3j6Kd","btn-register":"_XA4vl"};
37506
37786
 
37507
37787
  var DeleteTextbookDialog$1 = function DeleteTextbookDialog(_ref) {
37508
37788
  var t = _ref.t,
@@ -37566,7 +37846,7 @@ var DeleteTextbookDialog$1 = function DeleteTextbookDialog(_ref) {
37566
37846
  borderTop: "1px solid #CED2DA"
37567
37847
  }
37568
37848
  }, React__default.createElement(Button, {
37569
- className: styles$b["btn-cancel"],
37849
+ className: styles$d["btn-cancel"],
37570
37850
  onClick: onClose
37571
37851
  }, React__default.createElement(Typography, {
37572
37852
  sx: {
@@ -37577,7 +37857,7 @@ var DeleteTextbookDialog$1 = function DeleteTextbookDialog(_ref) {
37577
37857
  lineHeight: "16.71px"
37578
37858
  }, t("cancel"))), React__default.createElement(Button, {
37579
37859
  variant: "contained",
37580
- className: styles$b["btn-register"],
37860
+ className: styles$d["btn-register"],
37581
37861
  type: "submit",
37582
37862
  sx: {
37583
37863
  padding: "12px 47px"
@@ -37664,12 +37944,12 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
37664
37944
  title: t("edit")
37665
37945
  }, React__default.createElement(IconButton, {
37666
37946
  color: "default",
37667
- className: styles$b["action-btn"] + " bg-warning text-white me-2",
37947
+ className: styles$d["action-btn"] + " bg-warning text-white me-2",
37668
37948
  onClick: function onClick() {
37669
37949
  return onNavigateDetail(i);
37670
37950
  }
37671
37951
  }, React__default.createElement(HiOutlinePencilAlt, {
37672
- className: styles$b["action-btn--pencil"],
37952
+ className: styles$d["action-btn--pencil"],
37673
37953
  size: 16
37674
37954
  }))), React__default.createElement(Tooltip, {
37675
37955
  title: t("edit")
@@ -37678,7 +37958,7 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
37678
37958
  return handleOpenConfirmDialog(i);
37679
37959
  },
37680
37960
  color: "default",
37681
- className: styles$b["action-btn"] + " bg-danger text-white",
37961
+ className: styles$d["action-btn"] + " bg-danger text-white",
37682
37962
  title: t("delete")
37683
37963
  }, React__default.createElement(FaTrashCan, {
37684
37964
  size: 12
@@ -38477,8 +38757,8 @@ var Header = function Header(_ref) {
38477
38757
  justifyContent: "center",
38478
38758
  alignItems: "center"
38479
38759
  }, React__default.createElement(TheAcademyDropdown, {
38480
- homeAcademyUrl: academyListRoute.path,
38481
- homeUrl: homeRoute.path,
38760
+ homeAcademyUrl: homeRoute.path,
38761
+ homeUrl: academyListRoute.path,
38482
38762
  registerUrl: registerRoute === null || registerRoute === void 0 ? void 0 : registerRoute.path,
38483
38763
  role: role,
38484
38764
  history: history,
@@ -38746,5 +39026,5 @@ var LayoutContext = function LayoutContext(_ref) {
38746
39026
  });else return React__default.createElement(Fragment$1, null, children);
38747
39027
  };
38748
39028
 
38749
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AcceptNoAcademy, ActionButtons, AnswerCountSelector, ArticleCategorySelector, ArticleDialog, ArticleGroupView, BASE_URL, BRIEF_GRADE_OPTIONS, _ChapterBox as ChapterBox, ChatContainer, types as ChatTypes, ClassDetail, ClassList, ClassNoteDialog, ClassSelector, CommonDialog, ConfirmDeleteDialog, ConfirmDialog, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_NOTE_FILTER, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, ExamDetailView, ExamEvent, ExamNoteDialog, ExamResultV2, ExamStatus, GOOGLE_CLIENT_ID, GOOGLE_RECAPTCHA_ID, GOOGLE_RECAPTCHA_KEY, GOOGLE_RECAPTCHA_SECRET, GRADE_OPTIONS, Header, InputText, LANGUAGE, LEARNING_SPACE, Language, LanguageHeaders, LayoutContext, ListView, Loading, LoadingComponent, Login, LoginQRCode, LoginWithEmail, SignIn as LoginWithPassword, MathJaxContainer, MathTinyEditor, NewNoteButton, NoAcademyHeaders, NotFound, NoteType, NotesContainer, NotificationDetail, NotificationList, OrderBy, OrderType, PRE_REDIRECT_URL, PUSHER_CONFIG, PassCodeCheck, PassCodeDialog, PreparedItem, PreparedTextbookList, PreparedTextbookView, PreparedType, PrintContainerClassName, PrintContentClassName, PrintExamResultView, PrintExamView2, PrintHeaderClassName, PrintTitleClassName, QRCodeConfirmation, QuestionAnswerType, QuestionCountSelector, REDIRECT_URL, RELEASE_DATE, RecentUserAction, RecentUserActionNames, RecentUserActionSortBy, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, SchoolType$1 as SchoolType, ScoreSelector, SearchInput, ShareToTeacherDialog, StudentInfoDrawer, StudentSelector, SubjectSelector, TextbookActionButtons, TextbookViewDetail as TextbookDetail, TextbookDrawer, TextbookEditorType, TextbookList, TheAcademyDropdown, TheLanguageDropdown, TinyEditor, UserList, UserSortColumn, VirtualListView, VirtualTableView, api, apiUpload, canAccess as canAccessRoute, convertHHMMSStoSeconds, createRecentUserActionListApi, diffFromNow, ellipsisText, encodeParams, formatDataMyAnswer, formatDateTime, formatPhoneNumber, formatRole, formatTextbookDataMyAnswer, formatTime, formatTimeSecond, getAcademyDomain, getAccessToken, getErrorMessage, getLanguage, getLearningSpace, getLocalDayOfWeek, getOrdinalSuffix, getRecentUserActionListApi, getRedirectUrl, getRemainTime, getRole, getUtcDayOfWeek, i18n, includePathname, isLocalHost, isTextType, minutesToTimeSpan, pushTo, reset, setAcademies, setAcademy, setAlert, setConcurrentConnectionPusher, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, timAgo, timeSpanToLocalMoment, toISOString, toLocalTime, totalSolveTimeCategories, totalTextbookSolveTimeCategories, useAutoAcademyDomain, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useList, useLoadMore, useLogin, useNotes, usePusherConversation, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
39029
+ export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AcceptNoAcademy, ActionButtons, AnswerCountSelector, ArticleCategorySelector, ArticleDialog, ArticleGroupView, AttendanceFormDialog, BASE_URL, BRIEF_GRADE_OPTIONS, _ChapterBox as ChapterBox, ChatContainer, types as ChatTypes, ClassDetail, ClassList, ClassNoteDialog, ClassSelector, CommonCreateNewQuestionDialog, CommonDialog, ConfirmDeleteDialog, ConfirmDialog, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_NOTE_FILTER, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, ExamDetailView, ExamEvent, ExamNoteDialog, ExamResultV2, ExamStatus, GOOGLE_CLIENT_ID, GOOGLE_RECAPTCHA_ID, GOOGLE_RECAPTCHA_KEY, GOOGLE_RECAPTCHA_SECRET, GRADE_OPTIONS, Header, InputText, LANGUAGE, LEARNING_SPACE, Language, LanguageHeaders, LayoutContext, LessonTooltip, ListView, Loading, LoadingComponent, Login, LoginQRCode, LoginWithEmail, SignIn as LoginWithPassword, MathJaxContainer, MathTinyEditor, NewNoteButton, NoAcademyHeaders, NotFound, NoteType, NotesContainer, NotificationDetail, NotificationList, OrderBy, OrderType, PRE_REDIRECT_URL, PUSHER_CONFIG, PassCodeCheck, PassCodeDialog, PreparedItem, PreparedTextbookList, PreparedTextbookView, PreparedType, PrintContainerClassName, PrintContentClassName, PrintExamResultView, PrintExamView2, PrintHeaderClassName, PrintTitleClassName, QRCodeConfirmation, QuestionAnswerType, QuestionCountSelector, REDIRECT_URL, RELEASE_DATE, RecentUserAction, RecentUserActionNames, RecentUserActionSortBy, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, SchoolType$1 as SchoolType, ScoreSelector, SearchInput, ShareToTeacherDialog, StudentInfoDrawer, StudentSelector, SubjectSelector, TextbookActionButtons, TextbookViewDetail as TextbookDetail, TextbookDrawer, TextbookEditorType, TextbookList, TheAcademyDropdown, TheLanguageDropdown, TinyEditor, UserList, UserSortColumn, VirtualListView, VirtualTableView, api, apiUpload, canAccess as canAccessRoute, convertHHMMSStoSeconds, createRecentUserActionListApi, diffFromNow, ellipsisText, encodeParams, formatDataMyAnswer, formatDateTime, formatPhoneNumber, formatRole, formatTextbookDataMyAnswer, formatTime, formatTimeSecond, getAcademyDomain, getAccessToken, getErrorMessage, getLanguage, getLearningSpace, getLocalDayOfWeek, getOrdinalSuffix, getRecentUserActionListApi, getRedirectUrl, getRemainTime, getRole, getUtcDayOfWeek, i18n, includePathname, isLocalHost, isTextType, minutesToTimeSpan, pushTo, reset, setAcademies, setAcademy, setAlert, setConcurrentConnectionPusher, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, timAgo, timeSpanToLocalMoment, toISOString, toLocalTime, totalSolveTimeCategories, totalTextbookSolveTimeCategories, useAutoAcademyDomain, useChatContainer, useCountDownTimer, useGoogleSignOut, useKeyboardVisible, useLanguage, useList, useLoadMore, useLogin, useNotes, usePusherConversation, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
38750
39030
  //# sourceMappingURL=index.modern.js.map