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
package/dist/index.js CHANGED
@@ -16,28 +16,32 @@ var moment = _interopDefault(require('moment'));
16
16
  var fa = require('react-icons/fa');
17
17
  var io = require('react-icons/io');
18
18
  var io5 = require('react-icons/io5');
19
- var reactRedux = require('react-redux');
19
+ var MButton = _interopDefault(require('@mui/material/Button'));
20
+ var DialogTitle = _interopDefault(require('@mui/material/DialogTitle'));
21
+ var DialogContent = _interopDefault(require('@mui/material/DialogContent'));
22
+ var DialogActions = _interopDefault(require('@mui/material/DialogActions'));
23
+ var IconButton = _interopDefault(require('@mui/material/IconButton'));
24
+ var Typography = _interopDefault(require('@mui/material/Typography'));
25
+ var formik = require('formik');
20
26
  var Select = require('react-select');
21
27
  var Select__default = _interopDefault(Select);
22
28
  var CreatableSelect = _interopDefault(require('react-select/creatable'));
23
- var axios = _interopDefault(require('axios'));
24
29
  var _$8 = _interopDefault(require('lodash'));
30
+ var reactRedux = require('react-redux');
31
+ var axios = _interopDefault(require('axios'));
25
32
  var reactGoogleLogin = require('@leecheuk/react-google-login');
26
33
  require('moment/locale/ko.js');
27
34
  require('moment/locale/en-au.js');
28
35
  var reactVirtualized = require('react-virtualized');
29
- var formik = require('formik');
30
36
  var tinymce = _interopDefault(require('tinymce'));
31
37
  require('@wiris/mathtype-tinymce6');
32
38
  var tinymceReact = require('@tinymce/tinymce-react');
33
- var styles$c = require('@mui/material/styles');
39
+ var styles$e = require('@mui/material/styles');
34
40
  var Grid = _interopDefault(require('@mui/material/Grid'));
35
- var Typography = _interopDefault(require('@mui/material/Typography'));
36
41
  var Card = _interopDefault(require('@mui/material/Card'));
37
42
  var CardActions = _interopDefault(require('@mui/material/CardActions'));
38
43
  var CardContent = _interopDefault(require('@mui/material/CardContent'));
39
44
  var CardMedia = _interopDefault(require('@mui/material/CardMedia'));
40
- var MButton = _interopDefault(require('@mui/material/Button'));
41
45
  var yup = require('yup');
42
46
  var colors = require('@mui/material/colors');
43
47
  var reactGoogleRecaptchaV3 = require('react-google-recaptcha-v3');
@@ -52,10 +56,7 @@ var Box = _interopDefault(require('@mui/material/Box'));
52
56
  var LocalizationProvider = require('@mui/x-date-pickers/LocalizationProvider');
53
57
  var DatePicker = require('@mui/x-date-pickers/DatePicker');
54
58
  var fa6 = require('react-icons/fa6');
55
- var DialogTitle = _interopDefault(require('@mui/material/DialogTitle'));
56
- var DialogContent = _interopDefault(require('@mui/material/DialogContent'));
57
- var DialogActions = _interopDefault(require('@mui/material/DialogActions'));
58
- var IconButton = _interopDefault(require('@mui/material/IconButton'));
59
+ var cg = require('react-icons/cg');
59
60
  var html2pdf = _interopDefault(require('html2pdf.js'));
60
61
  var Slider = _interopDefault(require('react-slick'));
61
62
  var gr = require('react-icons/gr');
@@ -1503,6 +1504,11 @@ var removedteacherfromclass = "교사 수업 제거";
1503
1504
  var addedstudenttoclass = "학생 수업 추가";
1504
1505
  var removedstudentfromclass = "학생 수업 제거";
1505
1506
  var hidden = "숨겨진";
1507
+ var current_status = "현재 상태";
1508
+ var next_status = "다음 상태";
1509
+ var arrival_time = "도착 시간";
1510
+ var current_arrival_time = "현재 도착 시간";
1511
+ var uppdate_attendance = "출석 현황 수정";
1506
1512
  var lang_ko = {
1507
1513
  problem_solving: problem_solving,
1508
1514
  my_story: my_story,
@@ -2643,7 +2649,12 @@ var lang_ko = {
2643
2649
  removedteacherfromclass: removedteacherfromclass,
2644
2650
  addedstudenttoclass: addedstudenttoclass,
2645
2651
  removedstudentfromclass: removedstudentfromclass,
2646
- hidden: hidden
2652
+ hidden: hidden,
2653
+ current_status: current_status,
2654
+ next_status: next_status,
2655
+ arrival_time: arrival_time,
2656
+ current_arrival_time: current_arrival_time,
2657
+ uppdate_attendance: uppdate_attendance
2647
2658
  };
2648
2659
 
2649
2660
  var problem_solving$1 = "Problem Solving";
@@ -3807,6 +3818,11 @@ var removedteacherfromclass$1 = "Removed teacher from class";
3807
3818
  var addedstudenttoclass$1 = "Added student to class";
3808
3819
  var removedstudentfromclass$1 = "Removed student from class";
3809
3820
  var hidden$1 = "Hidden";
3821
+ var current_status$1 = "Current status";
3822
+ var next_status$1 = "Next status";
3823
+ var arrival_time$1 = "Arrival time";
3824
+ var current_arrival_time$1 = "Current arrival time";
3825
+ var uppdate_attendance$1 = "Update attendance";
3810
3826
  var lang_en = {
3811
3827
  problem_solving: problem_solving$1,
3812
3828
  my_story: my_story$1,
@@ -4949,7 +4965,12 @@ var lang_en = {
4949
4965
  removedteacherfromclass: removedteacherfromclass$1,
4950
4966
  addedstudenttoclass: addedstudenttoclass$1,
4951
4967
  removedstudentfromclass: removedstudentfromclass$1,
4952
- hidden: hidden$1
4968
+ hidden: hidden$1,
4969
+ current_status: current_status$1,
4970
+ next_status: next_status$1,
4971
+ arrival_time: arrival_time$1,
4972
+ current_arrival_time: current_arrival_time$1,
4973
+ uppdate_attendance: uppdate_attendance$1
4953
4974
  };
4954
4975
 
4955
4976
  i18n__default.use(reactI18next.initReactI18next).init({
@@ -5539,6 +5560,31 @@ var NotFound = function NotFound() {
5539
5560
  }, t('the_page_you_are_looking_for_was_not_found')), React__default.createElement("div", null))));
5540
5561
  };
5541
5562
 
5563
+ function _extends() {
5564
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
5565
+ for (var e = 1; e < arguments.length; e++) {
5566
+ var t = arguments[e];
5567
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
5568
+ }
5569
+ return n;
5570
+ }, _extends.apply(null, arguments);
5571
+ }
5572
+ function _objectDestructuringEmpty(t) {
5573
+ if (null == t) throw new TypeError("Cannot destructure " + t);
5574
+ }
5575
+ function _objectWithoutPropertiesLoose(r, e) {
5576
+ if (null == r) return {};
5577
+ var t = {};
5578
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
5579
+ if (-1 !== e.indexOf(n)) continue;
5580
+ t[n] = r[n];
5581
+ }
5582
+ return t;
5583
+ }
5584
+ function _taggedTemplateLiteralLoose(e, t) {
5585
+ return t || (t = e.slice(0)), e.raw = t, e;
5586
+ }
5587
+
5542
5588
  var CommonDialog = function CommonDialog(_ref) {
5543
5589
  var open = _ref.open,
5544
5590
  children = _ref.children,
@@ -5549,6 +5595,9 @@ var CommonDialog = function CommonDialog(_ref) {
5549
5595
  isShowHeader = _ref$isShowHeader === void 0 ? true : _ref$isShowHeader,
5550
5596
  titleClassName = _ref.titleClassName,
5551
5597
  minWidth = _ref.minWidth,
5598
+ _ref$zIndex = _ref.zIndex,
5599
+ zIndex = _ref$zIndex === void 0 ? 1102 : _ref$zIndex,
5600
+ paperSx = _ref.paperSx,
5552
5601
  onClose = _ref.onClose;
5553
5602
  return React__default.createElement(material.Dialog, {
5554
5603
  open: open,
@@ -5557,13 +5606,13 @@ var CommonDialog = function CommonDialog(_ref) {
5557
5606
  fullWidth: true,
5558
5607
  scroll: "body",
5559
5608
  sx: {
5560
- zIndex: 1102
5609
+ zIndex: zIndex
5561
5610
  },
5562
5611
  PaperProps: {
5563
- sx: {
5564
- overflowY: "unset",
5612
+ sx: _extends({
5613
+ overflowY: "auto",
5565
5614
  minWidth: minWidth
5566
- }
5615
+ }, paperSx)
5567
5616
  }
5568
5617
  }, isShowHeader ? React__default.createElement(React.Fragment, null, React__default.createElement(material.DialogTitle, {
5569
5618
  className: "border border-start-0 border-end-0 border-top-0 border-1 " + titleClassName,
@@ -5588,31 +5637,6 @@ var CommonDialog = function CommonDialog(_ref) {
5588
5637
  }, title)), children);
5589
5638
  };
5590
5639
 
5591
- function _extends() {
5592
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
5593
- for (var e = 1; e < arguments.length; e++) {
5594
- var t = arguments[e];
5595
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
5596
- }
5597
- return n;
5598
- }, _extends.apply(null, arguments);
5599
- }
5600
- function _objectDestructuringEmpty(t) {
5601
- if (null == t) throw new TypeError("Cannot destructure " + t);
5602
- }
5603
- function _objectWithoutPropertiesLoose(r, e) {
5604
- if (null == r) return {};
5605
- var t = {};
5606
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
5607
- if (-1 !== e.indexOf(n)) continue;
5608
- t[n] = r[n];
5609
- }
5610
- return t;
5611
- }
5612
- function _taggedTemplateLiteralLoose(e, t) {
5613
- return t || (t = e.slice(0)), e.raw = t, e;
5614
- }
5615
-
5616
5640
  var confirmDialogTextStyle = {
5617
5641
  color: "#363634",
5618
5642
  fontSize: 16,
@@ -5766,163 +5790,43 @@ var ConfirmDeleteDialog = function ConfirmDeleteDialog(props) {
5766
5790
  return React__default.createElement(ConfirmDialog, Object.assign({}, ConfirmDeleteDialogDefaultProps, props));
5767
5791
  };
5768
5792
 
5769
- var _templateObject;
5770
- var BorderedTextField = material.styled(material.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);
5771
- var InputText = function InputText(props) {
5772
- return React__default.createElement(BorderedTextField, Object.assign({
5773
- sx: {
5774
- "& input": {
5775
- py: "7.5px",
5776
- px: "12px"
5777
- },
5778
- "& > div": {
5779
- borderColor: "#97A1AF",
5780
- borderRadius: "4px"
5781
- }
5782
- }
5783
- }, props));
5784
- };
5785
-
5786
- var PassCodeDialog = function PassCodeDialog(_ref) {
5787
- var open = _ref.open,
5788
- onClose = _ref.onClose,
5789
- onSubmit = _ref.onSubmit,
5790
- academyDomain = _ref.academyDomain;
5791
- var _useTranslation = reactI18next.useTranslation(),
5792
- t = _useTranslation.t;
5793
- var _useState = React.useState(""),
5794
- passCode = _useState[0],
5795
- setPassCode = _useState[1];
5796
- var handleClose = function handleClose(event, reason) {
5797
- onClose(event, reason);
5798
- };
5799
- var handleSubmit = function handleSubmit() {
5800
- try {
5801
- var data = {
5802
- code: passCode,
5803
- academyDomain: academyDomain
5804
- };
5805
- return Promise.resolve(onSubmit(data, handleClose)).then(function () {});
5806
- } catch (e) {
5807
- return Promise.reject(e);
5808
- }
5809
- };
5810
- var handleChangePassCode = function handleChangePassCode(e) {
5811
- setPassCode(e.target.value);
5812
- };
5813
- var theme = material.useTheme();
5814
- return React__default.createElement(CommonDialog, {
5815
- open: open,
5816
- onClose: handleClose,
5817
- size: "xs",
5818
- title: t("join_an_academy")
5819
- }, React__default.createElement(material.DialogContent, {
5820
- sx: {
5821
- overflowY: "unset"
5822
- }
5823
- }, React__default.createElement(material.Stack, {
5824
- direction: "column",
5825
- spacing: 2,
5826
- zIndex: 1,
5827
- position: "relative"
5828
- }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
5829
- className: "fw-medium mb-1"
5830
- }, t("pass_code"), React__default.createElement("span", {
5831
- className: "text-danger"
5832
- }, "*")), React__default.createElement(InputText, {
5833
- id: "pass-code",
5834
- placeholder: t("enter_pass_code"),
5835
- value: passCode,
5836
- onChange: handleChangePassCode
5837
- })))), React__default.createElement(material.DialogActions, {
5838
- className: ""
5839
- }, React__default.createElement(material.Button, {
5840
- variant: "contained",
5841
- sx: {
5842
- bgcolor: theme.palette.grey[700]
5843
- },
5844
- onClick: handleClose
5845
- }, t("cancel")), React__default.createElement(material.Button, {
5846
- variant: "contained",
5847
- onClick: handleSubmit,
5848
- disabled: !passCode.trim().length
5849
- }, t("confirmation"))));
5850
- };
5851
-
5852
- var loadingStyle = {
5853
- minWidth: "100vw",
5854
- minHeight: "100vh",
5855
- position: "fixed",
5856
- top: 0,
5857
- left: 0,
5858
- zIndex: 999999999,
5859
- backgroundColor: "rgba(0, 0, 0, 0.4)",
5860
- display: "flex",
5861
- justifyContent: "center",
5862
- alignItems: "center"
5863
- };
5864
- var Loading = function Loading() {
5865
- var isLoading = reactRedux.useSelector(function (state) {
5866
- return state.common.isLoading;
5867
- });
5868
- return isLoading ? React__default.createElement("div", {
5869
- style: loadingStyle
5870
- }, React__default.createElement("div", {
5871
- className: "spinner-border text-secondary",
5872
- role: "status"
5873
- }, React__default.createElement("span", {
5874
- className: "sr-only"
5875
- }))) : null;
5793
+ var iconCloseDialog = function iconCloseDialog(_ref) {
5794
+ var _ref$width = _ref.width,
5795
+ width = _ref$width === void 0 ? "24" : _ref$width,
5796
+ _ref$height = _ref.height,
5797
+ height = _ref$height === void 0 ? "25" : _ref$height,
5798
+ color = _ref.color;
5799
+ return React__default.createElement("svg", {
5800
+ width: width,
5801
+ height: height,
5802
+ viewBox: "0 0 24 25",
5803
+ fill: color,
5804
+ xmlns: "http://www.w3.org/2000/svg"
5805
+ }, React__default.createElement("path", {
5806
+ 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",
5807
+ fill: "#202B37"
5808
+ }));
5876
5809
  };
5877
5810
 
5878
- var loadingStyle$1 = {
5879
- minWidth: "100vw",
5880
- minHeight: "100vh",
5881
- position: "fixed",
5882
- top: 0,
5883
- left: 0,
5884
- zIndex: 999999999,
5885
- backgroundColor: "rgba(0, 0, 0, 0.4)",
5886
- display: "flex",
5887
- justifyContent: "center",
5888
- alignItems: "center"
5889
- };
5890
- var LoadingComponent = function LoadingComponent(_ref) {
5891
- var isLoading = _ref.isLoading,
5892
- children = _ref.children,
5893
- _ref$spinClassName = _ref.spinClassName,
5894
- spinClassName = _ref$spinClassName === void 0 ? "text-secondary" : _ref$spinClassName,
5895
- _ref$className = _ref.className,
5896
- className = _ref$className === void 0 ? "" : _ref$className;
5897
- return isLoading ? React__default.createElement("div", {
5898
- style: loadingStyle$1
5899
- }, React__default.createElement(material.Stack, {
5900
- direction: "column",
5901
- justifyContent: "center",
5902
- alignItems: "center",
5903
- className: className
5904
- }, React__default.createElement("div", {
5905
- className: "spinner-border " + spinClassName,
5906
- role: "status"
5907
- }, React__default.createElement("span", {
5908
- className: "sr-only"
5909
- })), React__default.createElement("div", null, children))) : null;
5811
+ var iconWarning = function iconWarning(_ref) {
5812
+ var _ref$width = _ref.width,
5813
+ width = _ref$width === void 0 ? "17" : _ref$width,
5814
+ _ref$height = _ref.height,
5815
+ height = _ref$height === void 0 ? "16" : _ref$height,
5816
+ color = _ref.color;
5817
+ return React__default.createElement("svg", {
5818
+ width: width,
5819
+ height: height,
5820
+ viewBox: "0 0 17 16",
5821
+ fill: color,
5822
+ xmlns: "http://www.w3.org/2000/svg"
5823
+ }, React__default.createElement("path", {
5824
+ 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",
5825
+ fill: "#DB4D4D"
5826
+ }));
5910
5827
  };
5911
5828
 
5912
- var CustomPagination = function CustomPagination(_ref) {
5913
- var currentPage = _ref.currentPage,
5914
- totalPage = _ref.totalPage,
5915
- onChangePage = _ref.onChangePage;
5916
- var handleChangePage = function handleChangePage(_, page) {
5917
- onChangePage(page);
5918
- };
5919
- return React__default.createElement(material.Pagination, {
5920
- className: "w-fit",
5921
- count: totalPage,
5922
- page: currentPage,
5923
- onChange: handleChangePage
5924
- });
5925
- };
5829
+ 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"};
5926
5830
 
5927
5831
  var DropdownIndicator = function DropdownIndicator(props) {
5928
5832
  return React__default.createElement(Select.components.DropdownIndicator, Object.assign({}, props), React__default.createElement(fa.FaCaretDown, {
@@ -6089,7 +5993,6 @@ var CustomSelect = function CustomSelect(_ref) {
6089
5993
  value: !isDefault ? initialValues != null ? initialValues : null : undefined,
6090
5994
  defaultValue: isDefault ? initialValues : undefined,
6091
5995
  menuPlacement: scrollBottom ? "top" : "auto",
6092
- isMulti: isMulti,
6093
5996
  components: {
6094
5997
  IndicatorSeparator: function IndicatorSeparator() {
6095
5998
  return null;
@@ -6159,116 +6062,6 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
6159
6062
  }, rest));
6160
6063
  };
6161
6064
 
6162
- var SCORE_OPTIONS = Array.from({
6163
- length: 10
6164
- }, function (_, i) {
6165
- return i + 1;
6166
- });
6167
- var QUESTION_OPTIONS = Array.from({
6168
- length: 10
6169
- }, function (_, i) {
6170
- return i + 1;
6171
- });
6172
- var ANSWER_OPTIONS = Array.from({
6173
- length: 9
6174
- }, function (_, i) {
6175
- return i + 2;
6176
- });
6177
- var DEFAULT_SCORE = 2;
6178
-
6179
- var AnswerCountSelector = function AnswerCountSelector(_ref) {
6180
- var id = _ref.id,
6181
- value = _ref.value,
6182
- onChange = _ref.onChange,
6183
- isDisabled = _ref.isDisabled;
6184
- var _useTranslation = reactI18next.useTranslation(),
6185
- t = _useTranslation.t;
6186
- var answerOptions = ANSWER_OPTIONS.map(function (i) {
6187
- return {
6188
- label: t("number_question", {
6189
- number: i
6190
- }),
6191
- value: i
6192
- };
6193
- });
6194
- return React__default.createElement(CustomSelect, {
6195
- inputId: id,
6196
- value: value,
6197
- options: answerOptions,
6198
- onChange: onChange,
6199
- isDisabled: isDisabled
6200
- });
6201
- };
6202
-
6203
- var ArticleCategorySelector = function ArticleCategorySelector(_ref) {
6204
- var id = _ref.id,
6205
- value = _ref.value,
6206
- optionValue = _ref.optionValue,
6207
- onChange = _ref.onChange,
6208
- isDisabled = _ref.isDisabled,
6209
- options = _ref.options,
6210
- isMulti = _ref.isMulti,
6211
- placeholder = _ref.placeholder,
6212
- rest = _ref.rest;
6213
- var _useTranslation = reactI18next.useTranslation(),
6214
- t = _useTranslation.t;
6215
- return React__default.createElement(CustomSelect, Object.assign({
6216
- isMulti: isMulti,
6217
- inputId: id,
6218
- value: value,
6219
- options: options,
6220
- onChange: onChange,
6221
- isDisabled: isDisabled,
6222
- placeholder: placeholder || t("select_category"),
6223
- optionValue: optionValue
6224
- }, rest));
6225
- };
6226
-
6227
- // A type of promise-like that resolves synchronously and supports only one observer
6228
-
6229
- const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
6230
-
6231
- const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
6232
-
6233
- // Asynchronously call a function and send errors to recovery continuation
6234
- function _catch(body, recover) {
6235
- try {
6236
- var result = body();
6237
- } catch(e) {
6238
- return recover(e);
6239
- }
6240
- if (result && result.then) {
6241
- return result.then(void 0, recover);
6242
- }
6243
- return result;
6244
- }
6245
-
6246
- // Asynchronously await a promise and pass the result to a finally continuation
6247
- function _finallyRethrows(body, finalizer) {
6248
- try {
6249
- var result = body();
6250
- } catch (e) {
6251
- return finalizer(true, e);
6252
- }
6253
- if (result && result.then) {
6254
- return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
6255
- }
6256
- return finalizer(false, result);
6257
- }
6258
-
6259
- // Asynchronously await a promise and invoke a finally continuation that always overrides the result
6260
- function _finally(body, finalizer) {
6261
- try {
6262
- var result = body();
6263
- } catch (e) {
6264
- return finalizer();
6265
- }
6266
- if (result && result.then) {
6267
- return result.then(finalizer, finalizer);
6268
- }
6269
- return finalizer();
6270
- }
6271
-
6272
6065
  (function (PreparedType) {
6273
6066
  PreparedType[PreparedType["csat_past_questions"] = 1] = "csat_past_questions";
6274
6067
  PreparedType[PreparedType["official_mock_exam"] = 2] = "official_mock_exam";
@@ -6788,6 +6581,119 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(_, history, superUrls,
6788
6581
  }, [pathname, window.location.search, isAuthPage, email, academyDomain]);
6789
6582
  };
6790
6583
 
6584
+ // A type of promise-like that resolves synchronously and supports only one observer
6585
+
6586
+ const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
6587
+
6588
+ const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
6589
+
6590
+ // Asynchronously call a function and send errors to recovery continuation
6591
+ function _catch(body, recover) {
6592
+ try {
6593
+ var result = body();
6594
+ } catch(e) {
6595
+ return recover(e);
6596
+ }
6597
+ if (result && result.then) {
6598
+ return result.then(void 0, recover);
6599
+ }
6600
+ return result;
6601
+ }
6602
+
6603
+ // Asynchronously await a promise and pass the result to a finally continuation
6604
+ function _finallyRethrows(body, finalizer) {
6605
+ try {
6606
+ var result = body();
6607
+ } catch (e) {
6608
+ return finalizer(true, e);
6609
+ }
6610
+ if (result && result.then) {
6611
+ return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
6612
+ }
6613
+ return finalizer(false, result);
6614
+ }
6615
+
6616
+ // Asynchronously await a promise and invoke a finally continuation that always overrides the result
6617
+ function _finally(body, finalizer) {
6618
+ try {
6619
+ var result = body();
6620
+ } catch (e) {
6621
+ return finalizer();
6622
+ }
6623
+ if (result && result.then) {
6624
+ return result.then(finalizer, finalizer);
6625
+ }
6626
+ return finalizer();
6627
+ }
6628
+
6629
+ var api = axios.create({
6630
+ baseURL: BASE_URL,
6631
+ timeout: 0,
6632
+ headers: {
6633
+ "Content-Type": "application/json"
6634
+ },
6635
+ paramsSerializer: function paramsSerializer(params) {
6636
+ return encodeParams(params);
6637
+ }
6638
+ });
6639
+ var apiUpload = axios.create({
6640
+ baseURL: BASE_URL,
6641
+ timeout: 60000,
6642
+ headers: {
6643
+ "Content-Type": "multipart/form-data"
6644
+ }
6645
+ });
6646
+ [api, apiUpload].forEach(function (i) {
6647
+ return i.interceptors.request.use(function (config) {
6648
+ var token = getAccessToken();
6649
+ var searchParams = new URLSearchParams(window.location.search);
6650
+ var paramLang = searchParams.get('lang');
6651
+ var academyDomainStorage = getAcademyDomain();
6652
+ var isLearningSpace = getLearningSpace();
6653
+ var langStorage = getLanguage();
6654
+ var academyDomain = academyDomainStorage;
6655
+ var language = paramLang || langStorage;
6656
+ if (token) {
6657
+ config.headers.Authorization = "Bearer " + token;
6658
+ localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
6659
+ }
6660
+ if (academyDomain && !isLearningSpace && config.headers[AcademyHeaders] == undefined) config.headers[AcademyHeaders] = "" + academyDomain;
6661
+ if (isLearningSpace && config.headers[NoAcademyHeaders] == undefined) config.headers[NoAcademyHeaders] = "" + isLearningSpace;
6662
+ if (language) config.headers[LanguageHeaders] = "" + language;
6663
+ return config;
6664
+ }, function (error) {
6665
+ return Promise.reject(error);
6666
+ });
6667
+ });
6668
+ [api, apiUpload].forEach(function (i) {
6669
+ return i.interceptors.response.use(function (response) {
6670
+ return response;
6671
+ }, function (error) {
6672
+ var _error$response, _error$response2, _error$response3;
6673
+ console.log({
6674
+ error: error
6675
+ });
6676
+ if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401) {
6677
+ var _window$location = window.location,
6678
+ pathname = _window$location.pathname,
6679
+ search = _window$location.search;
6680
+ var preRedirectUrl = localStorage.getItem(PRE_REDIRECT_URL);
6681
+ var newRedirectUrl = "" + pathname + search;
6682
+ if (!pathname.startsWith("/login")) {
6683
+ if (preRedirectUrl !== newRedirectUrl) {
6684
+ localStorage.setItem(REDIRECT_URL, newRedirectUrl);
6685
+ localStorage.setItem(PRE_REDIRECT_URL, newRedirectUrl);
6686
+ }
6687
+ }
6688
+ }
6689
+ 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) {
6690
+ localStorage.removeItem(ACCESS_TOKEN);
6691
+ window.location.href = "/login";
6692
+ }
6693
+ return Promise.reject(error);
6694
+ });
6695
+ });
6696
+
6791
6697
  var EXAM_SESSION_URL = BASE_URL + "/api/examSession";
6792
6698
  var getCheckStatusExam = function getCheckStatusExam(examCode) {
6793
6699
  return api.get(EXAM_SESSION_URL + "/" + examCode + "/status");
@@ -6914,6 +6820,29 @@ var useGoogleSignOut = function useGoogleSignOut(props) {
6914
6820
  };
6915
6821
  };
6916
6822
 
6823
+ var useKeyboardVisible = function useKeyboardVisible() {
6824
+ var theme = material.useTheme();
6825
+ var _useState = React.useState(false),
6826
+ isKeyboardVisible = _useState[0],
6827
+ setIsKeyboardVisible = _useState[1];
6828
+ var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
6829
+ var isFullScreen = !!document.fullscreenElement;
6830
+ var pageSxProps = _extends({}, !isTabletUp && isKeyboardVisible && isFullScreen && {
6831
+ marginBlock: "3rem 50vh"
6832
+ });
6833
+ var handleInputFocus = function handleInputFocus() {
6834
+ setIsKeyboardVisible(true);
6835
+ };
6836
+ var handleInputBlur = function handleInputBlur() {
6837
+ setIsKeyboardVisible(false);
6838
+ };
6839
+ return {
6840
+ pageSxProps: pageSxProps,
6841
+ handleInputFocus: handleInputFocus,
6842
+ handleInputBlur: handleInputBlur
6843
+ };
6844
+ };
6845
+
6917
6846
  var useLanguage = function useLanguage(history, init) {
6918
6847
  if (init === void 0) {
6919
6848
  init = true;
@@ -7553,73 +7482,382 @@ var useVirtualizeList = function useVirtualizeList(totalItems, rowHeight, offset
7553
7482
  OrderBy["DESC"] = "DESC";
7554
7483
  })(exports.OrderBy || (exports.OrderBy = {}));
7555
7484
 
7556
- var api = axios.create({
7557
- baseURL: BASE_URL,
7558
- timeout: 0,
7559
- headers: {
7560
- "Content-Type": "application/json"
7561
- },
7562
- paramsSerializer: function paramsSerializer(params) {
7563
- return encodeParams(params);
7564
- }
7565
- });
7566
- var apiUpload = axios.create({
7567
- baseURL: BASE_URL,
7568
- timeout: 60000,
7569
- headers: {
7570
- "Content-Type": "multipart/form-data"
7571
- }
7572
- });
7573
- [api, apiUpload].forEach(function (i) {
7574
- return i.interceptors.request.use(function (config) {
7575
- var token = getAccessToken();
7576
- var searchParams = new URLSearchParams(window.location.search);
7577
- var paramLang = searchParams.get('lang');
7578
- var academyDomainStorage = getAcademyDomain();
7579
- var isLearningSpace = getLearningSpace();
7580
- var langStorage = getLanguage();
7581
- var academyDomain = academyDomainStorage;
7582
- var language = paramLang || langStorage;
7583
- if (token) {
7584
- config.headers.Authorization = "Bearer " + token;
7585
- localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
7485
+ function CommonCreateNewQuestionDialog(_ref) {
7486
+ var handleCreateQuestion = _ref.handleCreateQuestion,
7487
+ openDialog = _ref.openDialog,
7488
+ initialValues = _ref.initialValues,
7489
+ onClose = _ref.onClose,
7490
+ options = _ref.options,
7491
+ schema = _ref.schema,
7492
+ labelQuestion = _ref.labelQuestion,
7493
+ nameQuestion = _ref.nameQuestion,
7494
+ labelContent = _ref.labelContent,
7495
+ nameContent = _ref.nameContent;
7496
+ var _useTranslation = reactI18next.useTranslation(),
7497
+ t = _useTranslation.t;
7498
+ var _useKeyboardVisible = useKeyboardVisible(),
7499
+ pageSxProps = _useKeyboardVisible.pageSxProps,
7500
+ handleInputBlur = _useKeyboardVisible.handleInputBlur,
7501
+ handleInputFocus = _useKeyboardVisible.handleInputFocus;
7502
+ return React__default.createElement(material.Dialog, {
7503
+ onClose: onClose,
7504
+ open: openDialog,
7505
+ scroll: "body",
7506
+ PaperProps: {
7507
+ sx: _extends({
7508
+ minWidth: "363px",
7509
+ overflowY: "auto"
7510
+ }, pageSxProps)
7586
7511
  }
7587
- if (academyDomain && !isLearningSpace && config.headers[AcademyHeaders] == undefined) config.headers[AcademyHeaders] = "" + academyDomain;
7588
- if (isLearningSpace && config.headers[NoAcademyHeaders] == undefined) config.headers[NoAcademyHeaders] = "" + isLearningSpace;
7589
- if (language) config.headers[LanguageHeaders] = "" + language;
7590
- return config;
7591
- }, function (error) {
7592
- return Promise.reject(error);
7593
- });
7594
- });
7595
- [api, apiUpload].forEach(function (i) {
7596
- return i.interceptors.response.use(function (response) {
7597
- return response;
7598
- }, function (error) {
7599
- var _error$response, _error$response2, _error$response3;
7600
- console.log({
7601
- error: error
7602
- });
7603
- if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401) {
7604
- var _window$location = window.location,
7605
- pathname = _window$location.pathname,
7606
- search = _window$location.search;
7607
- var preRedirectUrl = localStorage.getItem(PRE_REDIRECT_URL);
7608
- var newRedirectUrl = "" + pathname + search;
7609
- if (!pathname.startsWith("/login")) {
7610
- if (preRedirectUrl !== newRedirectUrl) {
7611
- localStorage.setItem(REDIRECT_URL, newRedirectUrl);
7612
- localStorage.setItem(PRE_REDIRECT_URL, newRedirectUrl);
7613
- }
7512
+ }, React__default.createElement(DialogTitle, {
7513
+ id: "customized-dialog-title"
7514
+ }, React__default.createElement(Typography, {
7515
+ fontWeight: 700,
7516
+ fontSize: "16px",
7517
+ lineHeight: "19.09px",
7518
+ color: "#202B37"
7519
+ }, t("ask_a_question"))), React__default.createElement(IconButton, {
7520
+ "aria-label": "close",
7521
+ sx: {
7522
+ position: "absolute",
7523
+ right: 8,
7524
+ top: 8,
7525
+ color: function color(theme) {
7526
+ return theme.palette.grey[500];
7527
+ }
7528
+ },
7529
+ onClick: onClose
7530
+ }, React__default.createElement(iconCloseDialog, null)), React__default.createElement(formik.Formik, {
7531
+ initialValues: initialValues,
7532
+ validationSchema: schema,
7533
+ onSubmit: handleCreateQuestion
7534
+ }, function (_ref2) {
7535
+ var values = _ref2.values,
7536
+ errors = _ref2.errors,
7537
+ setFieldValue = _ref2.setFieldValue;
7538
+ return React__default.createElement(formik.Form, null, React__default.createElement(DialogContent, {
7539
+ sx: {
7540
+ padding: 0,
7541
+ overflowY: "auto"
7542
+ }
7543
+ }, React__default.createElement(material.Box, {
7544
+ display: "flex",
7545
+ flexDirection: "column",
7546
+ gap: "8px",
7547
+ padding: "24px 24px 40px 24px",
7548
+ overflow: "scroll"
7549
+ }, React__default.createElement(material.Stack, null, React__default.createElement("label", {
7550
+ htmlFor: "questions",
7551
+ className: styles["form-label"] + " " + styles$1["form-label-dialog"]
7552
+ }, labelQuestion || t("questions_to_ask")), React__default.createElement(formik.Field, {
7553
+ id: "questions",
7554
+ name: nameQuestion,
7555
+ render: function render(_ref3) {
7556
+ var field = _ref3.field;
7557
+ return React__default.createElement(CustomSelect, Object.assign({}, field, {
7558
+ id: "questions",
7559
+ menuPlacement: "bottom",
7560
+ maxMenuHeight: 150,
7561
+ options: options,
7562
+ onChange: function onChange(_ref4) {
7563
+ var value = _ref4.value;
7564
+ return setFieldValue(nameQuestion, value);
7565
+ },
7566
+ isClearable: false,
7567
+ onFocus: handleInputFocus,
7568
+ onBlur: handleInputBlur
7569
+ }));
7570
+ }
7571
+ })), React__default.createElement(material.Stack, null, React__default.createElement("label", {
7572
+ htmlFor: "content-question",
7573
+ className: styles["form-label"] + " " + styles$1["form-label-dialog"]
7574
+ }, labelContent || t("question_content")), React__default.createElement(material.Box, {
7575
+ position: "relative",
7576
+ display: "flex",
7577
+ flexDirection: "row",
7578
+ alignItems: "center"
7579
+ }, React__default.createElement(formik.Field, {
7580
+ as: "textarea",
7581
+ rows: 3,
7582
+ id: "content-question",
7583
+ style: {
7584
+ paddingRight: "40px"
7585
+ },
7586
+ name: nameContent,
7587
+ placeholder: t("the_problem_is_difficult"),
7588
+ className: styles["form-control"],
7589
+ onFocus: handleInputFocus,
7590
+ onBlur: handleInputBlur
7591
+ }), (errors === null || errors === void 0 ? void 0 : errors[nameContent]) && React__default.createElement(material.Box, {
7592
+ position: "absolute",
7593
+ right: 0,
7594
+ padding: "0 12px",
7595
+ display: "flex",
7596
+ alignItems: "center"
7597
+ }, React__default.createElement(iconWarning, null))), React__default.createElement(material.Box, {
7598
+ marginBottom: "4px"
7599
+ }), React__default.createElement(Typography, {
7600
+ fontWeight: 500,
7601
+ fontSize: "10px",
7602
+ lineHeight: "11.93px",
7603
+ color: !(errors !== null && errors !== void 0 && errors[nameContent]) ? "#97A1AF" : styles$1.red_900
7604
+ }, !(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, {
7605
+ sx: {
7606
+ display: "flex",
7607
+ justifyContent: "space-between",
7608
+ alignItems: "center",
7609
+ padding: "12px",
7610
+ borderTop: "1px solid #CED2DA"
7611
+ }
7612
+ }, React__default.createElement(MButton, {
7613
+ className: styles$1["btn-cancel"],
7614
+ onClick: onClose
7615
+ }, React__default.createElement(Typography, {
7616
+ sx: {
7617
+ color: styles.dark + " !important"
7618
+ },
7619
+ fontWeight: 700,
7620
+ fontSize: "14px",
7621
+ lineHeight: "16.71px"
7622
+ }, t("cancel"))), React__default.createElement(MButton, {
7623
+ variant: "contained",
7624
+ sx: {
7625
+ bgcolor: styles.dark
7626
+ },
7627
+ className: styles$1["btn-register"],
7628
+ type: "submit",
7629
+ disabled: !values.content.trim().length
7630
+ }, React__default.createElement(Typography, {
7631
+ fontWeight: 700,
7632
+ fontSize: "14px",
7633
+ lineHeight: "16.71px",
7634
+ color: "#FFFFFF"
7635
+ }, t("registration")))));
7636
+ }));
7637
+ }
7638
+
7639
+ var _templateObject;
7640
+ var BorderedTextField = material.styled(material.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);
7641
+ var InputText = function InputText(props) {
7642
+ return React__default.createElement(BorderedTextField, Object.assign({
7643
+ sx: {
7644
+ "& input": {
7645
+ py: "7.5px",
7646
+ px: "12px"
7647
+ },
7648
+ "& > div": {
7649
+ borderColor: "#97A1AF",
7650
+ borderRadius: "4px"
7614
7651
  }
7615
7652
  }
7616
- 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) {
7617
- localStorage.removeItem(ACCESS_TOKEN);
7618
- window.location.href = "/login";
7653
+ }, props));
7654
+ };
7655
+
7656
+ var PassCodeDialog = function PassCodeDialog(_ref) {
7657
+ var open = _ref.open,
7658
+ onClose = _ref.onClose,
7659
+ onSubmit = _ref.onSubmit,
7660
+ academyDomain = _ref.academyDomain;
7661
+ var _useTranslation = reactI18next.useTranslation(),
7662
+ t = _useTranslation.t;
7663
+ var _useState = React.useState(""),
7664
+ passCode = _useState[0],
7665
+ setPassCode = _useState[1];
7666
+ var handleClose = function handleClose(event, reason) {
7667
+ onClose(event, reason);
7668
+ };
7669
+ var handleSubmit = function handleSubmit() {
7670
+ try {
7671
+ var data = {
7672
+ code: passCode,
7673
+ academyDomain: academyDomain
7674
+ };
7675
+ return Promise.resolve(onSubmit(data, handleClose)).then(function () {});
7676
+ } catch (e) {
7677
+ return Promise.reject(e);
7619
7678
  }
7620
- return Promise.reject(error);
7679
+ };
7680
+ var handleChangePassCode = function handleChangePassCode(e) {
7681
+ setPassCode(e.target.value);
7682
+ };
7683
+ var theme = material.useTheme();
7684
+ return React__default.createElement(CommonDialog, {
7685
+ open: open,
7686
+ onClose: handleClose,
7687
+ size: "xs",
7688
+ title: t("join_an_academy")
7689
+ }, React__default.createElement(material.DialogContent, {
7690
+ sx: {
7691
+ overflowY: "unset"
7692
+ }
7693
+ }, React__default.createElement(material.Stack, {
7694
+ direction: "column",
7695
+ spacing: 2,
7696
+ zIndex: 1,
7697
+ position: "relative"
7698
+ }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
7699
+ className: "fw-medium mb-1"
7700
+ }, t("pass_code"), React__default.createElement("span", {
7701
+ className: "text-danger"
7702
+ }, "*")), React__default.createElement(InputText, {
7703
+ id: "pass-code",
7704
+ placeholder: t("enter_pass_code"),
7705
+ value: passCode,
7706
+ onChange: handleChangePassCode
7707
+ })))), React__default.createElement(material.DialogActions, {
7708
+ className: ""
7709
+ }, React__default.createElement(material.Button, {
7710
+ variant: "contained",
7711
+ sx: {
7712
+ bgcolor: theme.palette.grey[700]
7713
+ },
7714
+ onClick: handleClose
7715
+ }, t("cancel")), React__default.createElement(material.Button, {
7716
+ variant: "contained",
7717
+ onClick: handleSubmit,
7718
+ disabled: !passCode.trim().length
7719
+ }, t("confirmation"))));
7720
+ };
7721
+
7722
+ var loadingStyle = {
7723
+ minWidth: "100vw",
7724
+ minHeight: "100vh",
7725
+ position: "fixed",
7726
+ top: 0,
7727
+ left: 0,
7728
+ zIndex: 999999999,
7729
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
7730
+ display: "flex",
7731
+ justifyContent: "center",
7732
+ alignItems: "center"
7733
+ };
7734
+ var Loading = function Loading() {
7735
+ var isLoading = reactRedux.useSelector(function (state) {
7736
+ return state.common.isLoading;
7737
+ });
7738
+ return isLoading ? React__default.createElement("div", {
7739
+ style: loadingStyle
7740
+ }, React__default.createElement("div", {
7741
+ className: "spinner-border text-secondary",
7742
+ role: "status"
7743
+ }, React__default.createElement("span", {
7744
+ className: "sr-only"
7745
+ }))) : null;
7746
+ };
7747
+
7748
+ var loadingStyle$1 = {
7749
+ minWidth: "100vw",
7750
+ minHeight: "100vh",
7751
+ position: "fixed",
7752
+ top: 0,
7753
+ left: 0,
7754
+ zIndex: 999999999,
7755
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
7756
+ display: "flex",
7757
+ justifyContent: "center",
7758
+ alignItems: "center"
7759
+ };
7760
+ var LoadingComponent = function LoadingComponent(_ref) {
7761
+ var isLoading = _ref.isLoading,
7762
+ children = _ref.children,
7763
+ _ref$spinClassName = _ref.spinClassName,
7764
+ spinClassName = _ref$spinClassName === void 0 ? "text-secondary" : _ref$spinClassName,
7765
+ _ref$className = _ref.className,
7766
+ className = _ref$className === void 0 ? "" : _ref$className;
7767
+ return isLoading ? React__default.createElement("div", {
7768
+ style: loadingStyle$1
7769
+ }, React__default.createElement(material.Stack, {
7770
+ direction: "column",
7771
+ justifyContent: "center",
7772
+ alignItems: "center",
7773
+ className: className
7774
+ }, React__default.createElement("div", {
7775
+ className: "spinner-border " + spinClassName,
7776
+ role: "status"
7777
+ }, React__default.createElement("span", {
7778
+ className: "sr-only"
7779
+ })), React__default.createElement("div", null, children))) : null;
7780
+ };
7781
+
7782
+ var CustomPagination = function CustomPagination(_ref) {
7783
+ var currentPage = _ref.currentPage,
7784
+ totalPage = _ref.totalPage,
7785
+ onChangePage = _ref.onChangePage;
7786
+ var handleChangePage = function handleChangePage(_, page) {
7787
+ onChangePage(page);
7788
+ };
7789
+ return React__default.createElement(material.Pagination, {
7790
+ className: "w-fit",
7791
+ count: totalPage,
7792
+ page: currentPage,
7793
+ onChange: handleChangePage
7621
7794
  });
7795
+ };
7796
+
7797
+ var SCORE_OPTIONS = Array.from({
7798
+ length: 10
7799
+ }, function (_, i) {
7800
+ return i + 1;
7801
+ });
7802
+ var QUESTION_OPTIONS = Array.from({
7803
+ length: 40
7804
+ }, function (_, i) {
7805
+ return i + 1;
7806
+ });
7807
+ var ANSWER_OPTIONS = Array.from({
7808
+ length: 9
7809
+ }, function (_, i) {
7810
+ return i + 2;
7622
7811
  });
7812
+ var DEFAULT_SCORE = 2;
7813
+
7814
+ var AnswerCountSelector = function AnswerCountSelector(_ref) {
7815
+ var id = _ref.id,
7816
+ value = _ref.value,
7817
+ onChange = _ref.onChange,
7818
+ isDisabled = _ref.isDisabled;
7819
+ var _useTranslation = reactI18next.useTranslation(),
7820
+ t = _useTranslation.t;
7821
+ var answerOptions = ANSWER_OPTIONS.map(function (i) {
7822
+ return {
7823
+ label: t("number_question", {
7824
+ number: i
7825
+ }),
7826
+ value: i
7827
+ };
7828
+ });
7829
+ return React__default.createElement(CustomSelect, {
7830
+ inputId: id,
7831
+ value: value,
7832
+ options: answerOptions,
7833
+ onChange: onChange,
7834
+ isDisabled: isDisabled
7835
+ });
7836
+ };
7837
+
7838
+ var ArticleCategorySelector = function ArticleCategorySelector(_ref) {
7839
+ var id = _ref.id,
7840
+ value = _ref.value,
7841
+ optionValue = _ref.optionValue,
7842
+ onChange = _ref.onChange,
7843
+ isDisabled = _ref.isDisabled,
7844
+ options = _ref.options,
7845
+ isMulti = _ref.isMulti,
7846
+ placeholder = _ref.placeholder,
7847
+ rest = _ref.rest;
7848
+ var _useTranslation = reactI18next.useTranslation(),
7849
+ t = _useTranslation.t;
7850
+ return React__default.createElement(CustomSelect, Object.assign({
7851
+ isMulti: isMulti,
7852
+ inputId: id,
7853
+ value: value,
7854
+ options: options,
7855
+ onChange: onChange,
7856
+ isDisabled: isDisabled,
7857
+ placeholder: placeholder || t("select_category"),
7858
+ optionValue: optionValue
7859
+ }, rest));
7860
+ };
7623
7861
 
7624
7862
  var COURSE_URL = BASE_URL + "/api/course";
7625
7863
  var getClassesApi = function getClassesApi(textSearch) {
@@ -7713,22 +7951,10 @@ var QuestionCountSelector = function QuestionCountSelector(_ref) {
7713
7951
  value = _ref.value,
7714
7952
  onChange = _ref.onChange,
7715
7953
  isDisabled = _ref.isDisabled,
7716
- rest = _ref.rest,
7717
- totalQuestions = _ref.totalQuestions;
7954
+ rest = _ref.rest;
7718
7955
  var _useTranslation = reactI18next.useTranslation(),
7719
7956
  t = _useTranslation.t;
7720
- var questionOptions = totalQuestions && totalQuestions > 1 ? Array.from({
7721
- length: totalQuestions
7722
- }, function (_, i) {
7723
- return i + 1;
7724
- }).map(function (i) {
7725
- return {
7726
- label: t("question_count_format", {
7727
- number: i
7728
- }),
7729
- value: i
7730
- };
7731
- }) : QUESTION_OPTIONS.map(function (i) {
7957
+ var questionOptions = QUESTION_OPTIONS.map(function (i) {
7732
7958
  return {
7733
7959
  label: t("question_count_format", {
7734
7960
  number: i
@@ -8043,7 +8269,7 @@ var SearchInput = function SearchInput(_ref) {
8043
8269
  }));
8044
8270
  };
8045
8271
 
8046
- 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"};
8272
+ 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"};
8047
8273
 
8048
8274
  var iconPersonNoActive = function iconPersonNoActive(_ref) {
8049
8275
  var _ref$width = _ref.width,
@@ -8203,7 +8429,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
8203
8429
  padding: "4px 0"
8204
8430
  }, React__default.createElement(material.Box, null, showName && isStudent && React__default.createElement(material.Box, {
8205
8431
  gap: "8px",
8206
- className: " " + styles$1["name-sender"],
8432
+ className: " " + styles$2["name-sender"],
8207
8433
  display: "flex",
8208
8434
  alignItems: "center",
8209
8435
  justifyContent: "end",
@@ -8257,7 +8483,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
8257
8483
  objectFit: "contain"
8258
8484
  }
8259
8485
  }) : React__default.createElement("div", {
8260
- className: styles$1["wrap-content"] + " " + styles$1["content-chat-receiver"],
8486
+ className: styles$2["wrap-content"] + " " + styles$2["content-chat-receiver"],
8261
8487
  style: {
8262
8488
  "float": "inline-end",
8263
8489
  maxWidth: 400,
@@ -8304,7 +8530,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
8304
8530
  display: "flex",
8305
8531
  padding: "4px",
8306
8532
  flexDirection: "row",
8307
- className: "" + styles$1["name-sender"]
8533
+ className: "" + styles$2["name-sender"]
8308
8534
  }, isStudent ? React__default.createElement(React.Fragment, null, React__default.createElement(material.Typography, {
8309
8535
  fontWeight: 500,
8310
8536
  fontSize: 14,
@@ -8340,7 +8566,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
8340
8566
  objectFit: "contain"
8341
8567
  }
8342
8568
  }) : React__default.createElement("div", {
8343
- className: styles$1["wrap-content"] + " " + styles$1["content-chat-sender"],
8569
+ className: styles$2["wrap-content"] + " " + styles$2["content-chat-sender"],
8344
8570
  style: {
8345
8571
  maxWidth: 400,
8346
8572
  color: styles.gray_700,
@@ -8526,7 +8752,9 @@ var TinyChatEditor = function TinyChatEditor(_ref) {
8526
8752
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
8527
8753
  onChange = _ref.onChange,
8528
8754
  initValue = _ref.initValue,
8529
- config = _ref.config;
8755
+ config = _ref.config,
8756
+ onFocus = _ref.onFocus,
8757
+ onBlur = _ref.onBlur;
8530
8758
  var isFirstChange = React.useRef(true);
8531
8759
  var _useTranslation = reactI18next.useTranslation(),
8532
8760
  t = _useTranslation.t;
@@ -8558,7 +8786,9 @@ var TinyChatEditor = function TinyChatEditor(_ref) {
8558
8786
  disabled: disabled,
8559
8787
  init: config || options,
8560
8788
  value: initValue,
8561
- onEditorChange: handleChange
8789
+ onEditorChange: handleChange,
8790
+ onFocus: onFocus,
8791
+ onBlur: onBlur
8562
8792
  });
8563
8793
  };
8564
8794
 
@@ -8579,11 +8809,16 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8579
8809
  }
8580
8810
  return error;
8581
8811
  };
8812
+ var _useKeyboardVisible = useKeyboardVisible(),
8813
+ pageSxProps = _useKeyboardVisible.pageSxProps,
8814
+ handleInputBlur = _useKeyboardVisible.handleInputBlur,
8815
+ handleInputFocus = _useKeyboardVisible.handleInputFocus;
8582
8816
  return React__default.createElement(CommonDialog, {
8583
8817
  open: open,
8584
8818
  onClose: onClose,
8585
8819
  size: "xs",
8586
- title: t("update_message")
8820
+ title: t("update_message"),
8821
+ paperSx: pageSxProps
8587
8822
  }, React__default.createElement(material.DialogContent, null, !contentType ? React__default.createElement(formik.Formik, {
8588
8823
  enableReinitialize: true,
8589
8824
  initialValues: {
@@ -8597,7 +8832,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8597
8832
  var setFieldValue = _ref2.setFieldValue;
8598
8833
  return React__default.createElement(formik.Form, null, React__default.createElement("label", {
8599
8834
  htmlFor: "content",
8600
- className: styles$1['form-label'] + " " + styles$1['form-label-dialog']
8835
+ className: styles$2['form-label'] + " " + styles$2['form-label-dialog']
8601
8836
  }, t('questions_to_ask')), React__default.createElement(formik.Field, {
8602
8837
  id: "content",
8603
8838
  style: {
@@ -8606,14 +8841,16 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8606
8841
  name: "content",
8607
8842
  validate: validate,
8608
8843
  placeholder: t('the_problem_is_difficult'),
8609
- className: styles$1['form-control'],
8844
+ className: styles$2['form-control'],
8610
8845
  render: function render(_ref3) {
8611
8846
  var field = _ref3.field;
8612
8847
  return React__default.createElement(TinyChatEditor, {
8613
8848
  initValue: field.value,
8614
8849
  onChange: function onChange(text) {
8615
8850
  return setFieldValue("content", text);
8616
- }
8851
+ },
8852
+ onFocus: handleInputFocus,
8853
+ onBlur: handleInputBlur
8617
8854
  });
8618
8855
  }
8619
8856
  }), React__default.createElement(material.DialogActions, {
@@ -8627,7 +8864,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8627
8864
  sx: {
8628
8865
  color: styles.dark
8629
8866
  },
8630
- className: styles$1['btn-cancel'],
8867
+ className: styles$2['btn-cancel'],
8631
8868
  onClick: onClose
8632
8869
  }, React__default.createElement(material.Typography, {
8633
8870
  fontWeight: 700,
@@ -8638,7 +8875,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8638
8875
  sx: {
8639
8876
  bgcolor: styles.dark
8640
8877
  },
8641
- className: styles$1['btn-register'],
8878
+ className: styles$2['btn-register'],
8642
8879
  type: "submit"
8643
8880
  }, React__default.createElement(material.Typography, {
8644
8881
  fontWeight: 700,
@@ -8685,7 +8922,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8685
8922
  padding: '12px'
8686
8923
  }
8687
8924
  }, React__default.createElement(material.Button, {
8688
- className: styles$1['btn-cancel'],
8925
+ className: styles$2['btn-cancel'],
8689
8926
  onClick: onClose
8690
8927
  }, React__default.createElement(material.Typography, {
8691
8928
  sx: {
@@ -8696,7 +8933,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
8696
8933
  lineHeight: '16.71px'
8697
8934
  }, t('cancel'))), React__default.createElement(material.Button, {
8698
8935
  variant: "contained",
8699
- className: styles$1['btn-register'],
8936
+ className: styles$2['btn-register'],
8700
8937
  sx: {
8701
8938
  bgcolor: !(selectedFile !== null && selectedFile !== void 0 && selectedFile.content) ? styles.light + " !important" : styles.dark
8702
8939
  },
@@ -8803,7 +9040,7 @@ var ChatList = function ChatList(_ref) {
8803
9040
  var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(exports.Role.Student);
8804
9041
  return React__default.createElement("ul", {
8805
9042
  ref: listItemRef,
8806
- 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' : '')
9043
+ 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' : '')
8807
9044
  }, !(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && React__default.createElement("li", {
8808
9045
  className: "text-muted text-center fst-italic fs-6"
8809
9046
  }, t('no_message')), !!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && filterMessage.map(function (message) {
@@ -8917,7 +9154,7 @@ var InputChat = function InputChat(_ref) {
8917
9154
  }, React__default.createElement(material.Button, {
8918
9155
  variant: "contained",
8919
9156
  fullWidth: true,
8920
- className: styles$1["btn-send"],
9157
+ className: styles$2["btn-send"],
8921
9158
  sx: {
8922
9159
  bgcolor: isCompleted ? styles.light + " !important" : styles.less_dark
8923
9160
  },
@@ -9299,7 +9536,7 @@ var ChatContainer = function ChatContainer(_ref) {
9299
9536
  container: true
9300
9537
  }, React__default.createElement(ChatHeader, Object.assign({}, chatHeaderProps)), React__default.createElement("div", {
9301
9538
  ref: listRef,
9302
- className: "flex-grow-1 " + styles$1["body"],
9539
+ className: "flex-grow-1 " + styles$2["body"],
9303
9540
  style: {
9304
9541
  height: "60vh",
9305
9542
  overflowY: "scroll",
@@ -10029,11 +10266,11 @@ var common = {
10029
10266
  white: '#FFFFFF'
10030
10267
  };
10031
10268
  var action$2 = {
10032
- hover: styles$c.alpha(grey[500], 0.08),
10033
- selected: styles$c.alpha(grey[500], 0.16),
10034
- disabled: styles$c.alpha(grey[500], 0.8),
10035
- disabledBackground: styles$c.alpha(grey[500], 0.24),
10036
- focus: styles$c.alpha(grey[500], 0.24),
10269
+ hover: styles$e.alpha(grey[500], 0.08),
10270
+ selected: styles$e.alpha(grey[500], 0.16),
10271
+ disabled: styles$e.alpha(grey[500], 0.8),
10272
+ disabledBackground: styles$e.alpha(grey[500], 0.24),
10273
+ focus: styles$e.alpha(grey[500], 0.24),
10037
10274
  hoverOpacity: 0.08,
10038
10275
  disabledOpacity: 0.48
10039
10276
  };
@@ -10053,7 +10290,7 @@ var base = {
10053
10290
  purple: purple,
10054
10291
  dark_purple: dark_purple,
10055
10292
  dark_red: dark_red,
10056
- divider: styles$c.alpha(grey[500], 0.2),
10293
+ divider: styles$e.alpha(grey[500], 0.2),
10057
10294
  action: action$2
10058
10295
  };
10059
10296
 
@@ -12886,7 +13123,7 @@ var DEFAULT_USER_FILTERS = {
12886
13123
  sortColumnName: exports.UserSortColumn.CreatedAt
12887
13124
  };
12888
13125
 
12889
- var styles$2 = {"avatar":"_2rJkZ","date-picker":"_1iqE2","time-picker":"_20xtc","teacher-selector-wrapper":"_3L1Oj"};
13126
+ var styles$3 = {"avatar":"_2rJkZ","date-picker":"_1iqE2","time-picker":"_20xtc","teacher-selector-wrapper":"_3L1Oj"};
12890
13127
 
12891
13128
  var _excluded$7 = ["teachers", "value"];
12892
13129
  var TeacherSelector = function TeacherSelector(_ref) {
@@ -13092,7 +13329,7 @@ var ClassForm = function ClassForm(_ref) {
13092
13329
  }, React__default.createElement(demo.DemoContainer, {
13093
13330
  components: ["DatePicker"]
13094
13331
  }, React__default.createElement(DatePicker.DatePicker, {
13095
- className: "" + styles$2["date-picker"],
13332
+ className: "" + styles$3["date-picker"],
13096
13333
  format: t("date_format"),
13097
13334
  maxDate: maxDate,
13098
13335
  value: formikProp.values.startDate,
@@ -13116,7 +13353,7 @@ var ClassForm = function ClassForm(_ref) {
13116
13353
  }, React__default.createElement(demo.DemoContainer, {
13117
13354
  components: ["DatePicker"]
13118
13355
  }, React__default.createElement(DatePicker.DatePicker, {
13119
- className: "" + styles$2["date-picker"],
13356
+ className: "" + styles$3["date-picker"],
13120
13357
  format: t("date_format"),
13121
13358
  minDate: minDate,
13122
13359
  value: formikProp.values.endDate,
@@ -13152,7 +13389,7 @@ var ClassForm = function ClassForm(_ref) {
13152
13389
  }, t("main_teacher"), " ", React__default.createElement("span", {
13153
13390
  className: "text-danger"
13154
13391
  }, "*")), React__default.createElement("div", {
13155
- className: "" + styles$2["teacher-selector-wrapper"]
13392
+ className: "" + styles$3["teacher-selector-wrapper"]
13156
13393
  }, React__default.createElement(TeacherSelector, {
13157
13394
  value: formikProp.values.mainTeacherId,
13158
13395
  teachers: teachers,
@@ -13212,7 +13449,7 @@ var ClassForm = function ClassForm(_ref) {
13212
13449
  }
13213
13450
  }
13214
13451
  },
13215
- className: "" + styles$2["time-picker"],
13452
+ className: "" + styles$3["time-picker"],
13216
13453
  onOpen: function onOpen() {
13217
13454
  return setOpen(index + "-startTime");
13218
13455
  },
@@ -13244,7 +13481,7 @@ var ClassForm = function ClassForm(_ref) {
13244
13481
  }
13245
13482
  }
13246
13483
  },
13247
- className: "" + styles$2["time-picker"],
13484
+ className: "" + styles$3["time-picker"],
13248
13485
  onOpen: function onOpen() {
13249
13486
  return !disabled && setOpen(index + "-endTime");
13250
13487
  },
@@ -13308,6 +13545,8 @@ var SortIcon = function SortIcon(_ref) {
13308
13545
  }));
13309
13546
  };
13310
13547
 
13548
+ var styles$4 = {"date-picker":"_2YMvj","time-picker":"_3exYU"};
13549
+
13311
13550
  var DrawerTab;
13312
13551
  (function (DrawerTab) {
13313
13552
  DrawerTab[DrawerTab["Attendance"] = 0] = "Attendance";
@@ -13323,103 +13562,6 @@ var StudentAttendanceStatus;
13323
13562
  StudentAttendanceStatus[StudentAttendanceStatus["Late"] = 2] = "Late";
13324
13563
  })(StudentAttendanceStatus || (StudentAttendanceStatus = {}));
13325
13564
 
13326
- var USER_URL = BASE_URL + "/api/user";
13327
- var getUserByIdApi = function getUserByIdApi(id) {
13328
- return api.get(USER_URL + "/GetById/" + id);
13329
- };
13330
-
13331
- var _defaultLoadedTabs;
13332
- var defaultTab = DrawerTab.Attendance;
13333
- var defaultLoadedTabs = (_defaultLoadedTabs = {}, _defaultLoadedTabs[defaultTab] = true, _defaultLoadedTabs);
13334
- var useStudentInfoDrawer = function useStudentInfoDrawer(props) {
13335
- var open = props.open,
13336
- inert = props.inert,
13337
- studentId = props.studentId,
13338
- onClose = props.onClose;
13339
- var _useTranslation = reactI18next.useTranslation(),
13340
- t = _useTranslation.t;
13341
- var _useState = React.useState(),
13342
- studentInfo = _useState[0],
13343
- setStudentInfo = _useState[1];
13344
- var _useState2 = React.useState(false),
13345
- isLoading = _useState2[0],
13346
- setLoading = _useState2[1];
13347
- var _useState3 = React.useState(defaultTab),
13348
- selectedTab = _useState3[0],
13349
- setSelectedTab = _useState3[1];
13350
- var _useState4 = React.useState(defaultLoadedTabs),
13351
- loadedTabs = _useState4[0],
13352
- setLoadingTabs = _useState4[1];
13353
- var handleClose = function handleClose() {
13354
- setStudentInfo(undefined);
13355
- setSelectedTab(defaultTab);
13356
- onClose === null || onClose === void 0 ? void 0 : onClose();
13357
- setLoadingTabs(defaultLoadedTabs);
13358
- };
13359
- var handleChangeTab = function handleChangeTab(_, newValue) {
13360
- setSelectedTab(newValue);
13361
- setLoadingTabs(function (state) {
13362
- var _extends2;
13363
- return _extends({}, state, (_extends2 = {}, _extends2[newValue] = true, _extends2));
13364
- });
13365
- };
13366
- var debounceChangeTab = _$8.debounce(handleChangeTab, 300);
13367
- React.useEffect(function () {
13368
- var getStudent = function getStudent() {
13369
- try {
13370
- var _temp2 = function _temp2() {
13371
- setLoading(false);
13372
- };
13373
- if (!studentId) return Promise.resolve();
13374
- setLoading(true);
13375
- var _temp = _catch(function () {
13376
- return Promise.resolve(getUserByIdApi(studentId)).then(function (res) {
13377
- setStudentInfo(res.data.data);
13378
- });
13379
- }, function () {});
13380
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
13381
- } catch (e) {
13382
- return Promise.reject(e);
13383
- }
13384
- };
13385
- getStudent();
13386
- }, [studentId]);
13387
- React.useEffect(function () {
13388
- if (open && inert) {
13389
- var _document$getElementB;
13390
- (_document$getElementB = document.getElementById("drawer")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.setAttribute("inert", "true");
13391
- } else {
13392
- var _document$getElementB2;
13393
- (_document$getElementB2 = document.getElementById("drawer")) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.removeAttribute("inert");
13394
- }
13395
- return function () {
13396
- var _document$getElementB3;
13397
- (_document$getElementB3 = document.getElementById("drawer")) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.removeAttribute("inert");
13398
- };
13399
- }, [open, inert]);
13400
- return {
13401
- t: t,
13402
- loadedTabs: loadedTabs,
13403
- isLoading: isLoading,
13404
- studentInfo: studentInfo,
13405
- selectedTab: selectedTab,
13406
- debounceChangeTab: debounceChangeTab,
13407
- handleClose: handleClose
13408
- };
13409
- };
13410
-
13411
- var DrawerContainerStyle = function DrawerContainerStyle(width) {
13412
- return {
13413
- flexShrink: 0,
13414
- display: "flex",
13415
- flexDirection: "column",
13416
- "& .MuiDrawer-paper": {
13417
- width: width,
13418
- boxSizing: "border-box"
13419
- }
13420
- };
13421
- };
13422
-
13423
13565
  var formatGrade = function formatGrade(grade, t, language) {
13424
13566
  return grade ? language === exports.Language.en ? "" + grade + getOrdinalSuffix(grade, language) : "" + t("number_grade", {
13425
13567
  number: grade
@@ -13464,17 +13606,8 @@ var a11yProps = function a11yProps(index) {
13464
13606
  };
13465
13607
  };
13466
13608
  var subtractTime = function subtractTime(time1, time2, t) {
13467
- var _time1$split$map = time1.split(":").map(Number),
13468
- hours1 = _time1$split$map[0],
13469
- minutes1 = _time1$split$map[1];
13470
- var _time2$split$map = time2.split(":").map(Number),
13471
- hours2 = _time2$split$map[0],
13472
- minutes2 = _time2$split$map[1];
13473
- var totalMinutes1 = hours1 * 60 + minutes1;
13474
- var totalMinutes2 = hours2 * 60 + minutes2;
13475
- var diffMinutes = Math.abs(totalMinutes1 - totalMinutes2);
13476
- var hoursDiff = Math.floor(diffMinutes / 60);
13477
- var minutesDiff = diffMinutes % 60;
13609
+ var hoursDiff = time1.diff(time2, "hours", false);
13610
+ var minutesDiff = time1.diff(time2, "minutes", false) - hoursDiff * 60;
13478
13611
  if (hoursDiff < 0) {
13479
13612
  hoursDiff += 24;
13480
13613
  }
@@ -13489,9 +13622,472 @@ var subtractTime = function subtractTime(time1, time2, t) {
13489
13622
  }
13490
13623
  return hoursDiff + " " + (hoursDiff > 1 ? t("hours") : t("hour")) + " " + minutesDiff + " " + t("minute");
13491
13624
  };
13492
- var formatTimeHHmm = function formatTimeHHmm(time) {
13493
- var res = time.split(":");
13494
- return res[0] + ":" + res[1];
13625
+
13626
+ var CalendarFill = function CalendarFill(_ref) {
13627
+ var _ref$width = _ref.width,
13628
+ width = _ref$width === void 0 ? "16" : _ref$width,
13629
+ _ref$height = _ref.height,
13630
+ height = _ref$height === void 0 ? "16" : _ref$height,
13631
+ color = _ref.color;
13632
+ return React__default.createElement("svg", {
13633
+ width: width,
13634
+ height: height,
13635
+ fill: color,
13636
+ viewBox: "0 0 16 16",
13637
+ xmlns: "http://www.w3.org/2000/svg"
13638
+ }, React__default.createElement("path", {
13639
+ 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",
13640
+ fill: "#97A1AF"
13641
+ }), React__default.createElement("path", {
13642
+ 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",
13643
+ fill: "#97A1AF"
13644
+ }));
13645
+ };
13646
+
13647
+ var ClockFill = function ClockFill(_ref) {
13648
+ var _ref$width = _ref.width,
13649
+ width = _ref$width === void 0 ? "16" : _ref$width,
13650
+ _ref$height = _ref.height,
13651
+ height = _ref$height === void 0 ? "16" : _ref$height,
13652
+ color = _ref.color;
13653
+ return React__default.createElement("svg", {
13654
+ width: width,
13655
+ height: height,
13656
+ fill: color,
13657
+ viewBox: "0 0 14 14",
13658
+ xmlns: "http://www.w3.org/2000/svg"
13659
+ }, React__default.createElement("path", {
13660
+ 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",
13661
+ fill: "#97A1AF"
13662
+ }));
13663
+ };
13664
+
13665
+ var CheckedCircleFill = function CheckedCircleFill(_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 ? "17" : _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 16 17",
13676
+ xmlns: "http://www.w3.org/2000/svg"
13677
+ }, React__default.createElement("path", {
13678
+ 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",
13679
+ fill: "#97A1AF"
13680
+ }));
13681
+ };
13682
+
13683
+ var IconPerson = function IconPerson(_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 ? "16" : _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 16",
13694
+ xmlns: "http://www.w3.org/2000/svg"
13695
+ }, React__default.createElement("path", {
13696
+ 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",
13697
+ fill: "#97A1AF"
13698
+ }), React__default.createElement("path", {
13699
+ 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",
13700
+ fill: "#97A1AF"
13701
+ }));
13702
+ };
13703
+
13704
+ var LessonTooltip = function LessonTooltip(_ref) {
13705
+ var _startTime$format, _endTime$format;
13706
+ var lesson = _ref.lesson,
13707
+ lessonAttendance = _ref.lessonAttendance,
13708
+ _ref$padding = _ref.padding,
13709
+ padding = _ref$padding === void 0 ? "16px" : _ref$padding;
13710
+ var _useTranslation = reactI18next.useTranslation(),
13711
+ t = _useTranslation.t;
13712
+ var endTime = timeSpanToLocalMoment(lesson.endTime, lesson.date);
13713
+ var startTime = timeSpanToLocalMoment(lesson.startTime, lesson.date);
13714
+ return React__default.createElement(material.Stack, {
13715
+ padding: padding
13716
+ }, React__default.createElement(material.Stack, {
13717
+ gap: "20px"
13718
+ }, React__default.createElement(material.Typography, {
13719
+ sx: {
13720
+ color: grey[700]
13721
+ }
13722
+ }, lesson.courseName), React__default.createElement(material.Stack, {
13723
+ display: "flex",
13724
+ flexDirection: "row",
13725
+ justifyContent: "space-between",
13726
+ gap: "20px"
13727
+ }, React__default.createElement(material.Box, {
13728
+ display: "flex",
13729
+ flexDirection: "row",
13730
+ gap: "4px"
13731
+ }, React__default.createElement(CalendarFill, null), React__default.createElement(material.Typography, {
13732
+ sx: {
13733
+ color: grey[500],
13734
+ fontSize: "13px",
13735
+ fontWeight: "600",
13736
+ whiteSpace: "nowrap"
13737
+ }
13738
+ }, t("class_date"))), React__default.createElement(material.Typography, {
13739
+ sx: {
13740
+ color: grey[700],
13741
+ fontSize: "14px",
13742
+ fontWeight: "600"
13743
+ }
13744
+ }, t("" + moment(lesson === null || lesson === void 0 ? void 0 : lesson.date).format(t("date_format"))))), React__default.createElement(material.Stack, {
13745
+ display: "flex",
13746
+ flexDirection: "row",
13747
+ justifyContent: "space-between",
13748
+ gap: "20px"
13749
+ }, React__default.createElement(material.Stack, {
13750
+ display: "flex",
13751
+ flexDirection: "row",
13752
+ gap: "4px"
13753
+ }, React__default.createElement(ClockFill, null), React__default.createElement(material.Typography, {
13754
+ sx: {
13755
+ color: grey[500],
13756
+ fontSize: "13px",
13757
+ fontWeight: "600",
13758
+ whiteSpace: "nowrap"
13759
+ }
13760
+ }, t("class_time"))), React__default.createElement(material.Typography, {
13761
+ sx: {
13762
+ color: grey[700],
13763
+ fontSize: "14px",
13764
+ fontWeight: "600"
13765
+ }
13766
+ }, ((_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(material.Stack, {
13767
+ display: "flex",
13768
+ flexDirection: "row",
13769
+ justifyContent: "space-between",
13770
+ gap: "20px"
13771
+ }, React__default.createElement(material.Stack, {
13772
+ display: "flex",
13773
+ flexDirection: "row",
13774
+ gap: "4px"
13775
+ }, React__default.createElement(CheckedCircleFill, null), React__default.createElement(material.Typography, {
13776
+ sx: {
13777
+ color: grey[500],
13778
+ fontSize: "13px",
13779
+ fontWeight: "600",
13780
+ whiteSpace: "nowrap"
13781
+ }
13782
+ }, t("attendance"))), React__default.createElement(material.Typography, {
13783
+ sx: {
13784
+ color: grey[700],
13785
+ fontSize: "14px",
13786
+ fontWeight: "600"
13787
+ }
13788
+ }, (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(material.Stack, {
13789
+ display: "flex",
13790
+ flexDirection: "row",
13791
+ justifyContent: "space-between",
13792
+ gap: "20px"
13793
+ }, React__default.createElement(material.Stack, {
13794
+ display: "flex",
13795
+ flexDirection: "row",
13796
+ gap: "4px"
13797
+ }, React__default.createElement(IconPerson, null), React__default.createElement(material.Typography, {
13798
+ sx: {
13799
+ color: grey[500],
13800
+ fontSize: "13px",
13801
+ fontWeight: "600",
13802
+ whiteSpace: "nowrap"
13803
+ }
13804
+ }, t("teacher_in_charge"))), React__default.createElement(material.Typography, {
13805
+ sx: {
13806
+ color: grey[700],
13807
+ fontSize: "14px",
13808
+ fontWeight: "600"
13809
+ }
13810
+ }, lesson === null || lesson === void 0 ? void 0 : lesson.mainTeacherName))));
13811
+ };
13812
+
13813
+ var AttendanceFormBody = function AttendanceFormBody(_ref) {
13814
+ var _timeSpanToLocalMomen, _values$attendanceTim;
13815
+ var formikProp = _ref.formikProp,
13816
+ lesson = _ref.lesson,
13817
+ attendance = _ref.attendance,
13818
+ onClose = _ref.onClose;
13819
+ var values = formikProp.values,
13820
+ setFieldValue = formikProp.setFieldValue;
13821
+ var _useTranslation = reactI18next.useTranslation(),
13822
+ t = _useTranslation.t;
13823
+ var _useState = React.useState(""),
13824
+ openPicker = _useState[0],
13825
+ setOpenPicker = _useState[1];
13826
+ var maxTime = timeSpanToLocalMoment(lesson.endTime, lesson.date);
13827
+ var minTime = (_timeSpanToLocalMomen = timeSpanToLocalMoment(lesson.startTime, lesson.date)) === null || _timeSpanToLocalMomen === void 0 ? void 0 : _timeSpanToLocalMomen.add("minutes", -30);
13828
+ var handleChangeStatus = function handleChangeStatus() {
13829
+ if (values.status === StudentAttendanceStatus.Attended) setFieldValue("status", StudentAttendanceStatus.Late);else setFieldValue("status", StudentAttendanceStatus.Attended);
13830
+ };
13831
+ return React__default.createElement(React.Fragment, null, React__default.createElement(material.DialogContent, {
13832
+ sx: {
13833
+ overflowY: "unset"
13834
+ }
13835
+ }, React__default.createElement(material.Stack, {
13836
+ direction: "column",
13837
+ spacing: 1
13838
+ }, React__default.createElement(LessonTooltip, {
13839
+ lesson: lesson,
13840
+ lessonAttendance: attendance,
13841
+ padding: 0
13842
+ }), React__default.createElement(material.Divider, null), React__default.createElement(material.Stack, {
13843
+ direction: "row",
13844
+ gap: 2,
13845
+ justifyContent: "space-between",
13846
+ alignItems: "center",
13847
+ width: "100%"
13848
+ }, React__default.createElement(material.Box, null, React__default.createElement(material.Typography, {
13849
+ sx: {
13850
+ color: grey[500],
13851
+ fontSize: "13px",
13852
+ fontWeight: "600",
13853
+ whiteSpace: "nowrap"
13854
+ }
13855
+ }, t("current_status")), React__default.createElement(material.Typography, {
13856
+ sx: {
13857
+ color: green[700],
13858
+ fontSize: "14px",
13859
+ fontWeight: "600"
13860
+ }
13861
+ }, (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(cg.CgArrowsExchange, {
13862
+ size: 24,
13863
+ color: green[700]
13864
+ }), React__default.createElement(material.Stack, {
13865
+ direction: "row"
13866
+ }, React__default.createElement(material.Stack, {
13867
+ direction: "column"
13868
+ }, React__default.createElement(material.Typography, {
13869
+ sx: {
13870
+ color: grey[500],
13871
+ fontSize: "13px",
13872
+ fontWeight: "600",
13873
+ whiteSpace: "nowrap"
13874
+ }
13875
+ }, t("next_status")), React__default.createElement(material.Typography, {
13876
+ sx: {
13877
+ color: grey[700],
13878
+ fontSize: "14px",
13879
+ fontWeight: "600"
13880
+ }
13881
+ }, values.status === StudentAttendanceStatus.Late ? t("late") : values.status === StudentAttendanceStatus.Attended ? t("attendance") : t("none_attendance"))), React__default.createElement(material.IconButton, {
13882
+ onClick: handleChangeStatus
13883
+ }, React__default.createElement(io.IoMdSync, {
13884
+ size: 24,
13885
+ color: green[700]
13886
+ })))), !!(attendance !== null && attendance !== void 0 && attendance.attendanceTime) && (attendance === null || attendance === void 0 ? void 0 : attendance.attendanceTime) !== DATE_TIME_MIN_VALUE && React__default.createElement(material.Box, null, React__default.createElement(material.Typography, {
13887
+ sx: {
13888
+ color: grey[500],
13889
+ fontSize: "13px",
13890
+ fontWeight: "600",
13891
+ whiteSpace: "nowrap"
13892
+ }
13893
+ }, t("current_arrival_time")), React__default.createElement(material.Typography, null, utcToLocalTime(attendance.attendanceTime, t("date_time_format")))), values.status !== StudentAttendanceStatus.Absent && React__default.createElement(material.Box, null, React__default.createElement("label", null, t("arrival_time")), React__default.createElement(LocalizationProvider.LocalizationProvider, {
13894
+ dateAdapter: AdapterMoment.AdapterMoment
13895
+ }, React__default.createElement(demo.DemoContainer, {
13896
+ components: ["TimePicker"]
13897
+ }, React__default.createElement(xDatePickers.TimePicker, {
13898
+ open: openPicker === "attendanceTime",
13899
+ value: (_values$attendanceTim = values.attendanceTime) != null ? _values$attendanceTim : null,
13900
+ format: "HH:mm",
13901
+ maxTime: maxTime,
13902
+ minTime: minTime,
13903
+ onChange: function onChange(newValue) {
13904
+ setFieldValue("attendanceTime", newValue);
13905
+ },
13906
+ timezone: "system",
13907
+ className: styles$4["time-picker"] + " w-100",
13908
+ slotProps: {
13909
+ textField: {
13910
+ onClick: function onClick() {
13911
+ return setOpenPicker("attendanceTime");
13912
+ }
13913
+ }
13914
+ },
13915
+ closeOnSelect: false,
13916
+ onOpen: function onOpen() {
13917
+ return setOpenPicker("attendanceTime");
13918
+ },
13919
+ onClose: function onClose() {
13920
+ return setOpenPicker("");
13921
+ },
13922
+ ampm: false
13923
+ })))))), React__default.createElement(material.DialogActions, null, React__default.createElement(material.Button, {
13924
+ variant: "contained",
13925
+ className: "bg-secondary mb-2 text-capitalize",
13926
+ onClick: onClose
13927
+ }, t("cancel")), React__default.createElement(material.Button, {
13928
+ variant: "contained",
13929
+ color: "primary",
13930
+ className: "mb-2 me-2 text-capitalize",
13931
+ onClick: function onClick() {
13932
+ return formikProp.handleSubmit();
13933
+ }
13934
+ }, t("continue"))));
13935
+ };
13936
+
13937
+ var AttendanceFormDialog = function AttendanceFormDialog(_ref) {
13938
+ var lesson = _ref.lesson,
13939
+ studentId = _ref.studentId,
13940
+ attendance = _ref.attendance,
13941
+ open = _ref.open,
13942
+ _ref$zIndex = _ref.zIndex,
13943
+ zIndex = _ref$zIndex === void 0 ? 1300 : _ref$zIndex,
13944
+ onClose = _ref.onClose,
13945
+ onSubmit = _ref.onSubmit;
13946
+ var _useTranslation = reactI18next.useTranslation(),
13947
+ t = _useTranslation.t;
13948
+ var convertAttendanceRequest = function convertAttendanceRequest() {
13949
+ return {
13950
+ studentId: studentId,
13951
+ attendanceTime: attendance !== null && attendance !== void 0 && attendance.attendanceTime && attendance.attendanceTime !== DATE_TIME_MIN_VALUE ? moment.utc(attendance.attendanceTime).local() : undefined,
13952
+ 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
13953
+ };
13954
+ };
13955
+ var attendanceRequest = React.useMemo(convertAttendanceRequest, [attendance === null || attendance === void 0 ? void 0 : attendance.attendanceTime, studentId]);
13956
+ var handleSubmit = function handleSubmit(values, _) {
13957
+ try {
13958
+ if (!lesson) return Promise.resolve();
13959
+ var attendanceTime = undefined;
13960
+ if (values.attendanceTime) {
13961
+ var minTime = timeSpanToLocalMoment(lesson.startTime, lesson.date).add(-30, "minutes");
13962
+ var attendanceMoment = moment(minTime.format("YYYY-MM-DD") + " " + values.attendanceTime.format("HH:mm:ss"), "YYYY-MM-DD HH:mm:ss");
13963
+ if (attendanceMoment.isBefore(minTime)) attendanceMoment.add(1, "days");
13964
+ attendanceTime = attendanceMoment.utc().format("YYYY-MM-DDTHH:mm:ss.SSS");
13965
+ }
13966
+ return Promise.resolve(onSubmit(lesson, {
13967
+ studentId: values.studentId,
13968
+ status: values.status,
13969
+ attendanceTime: attendanceTime
13970
+ })).then(function () {});
13971
+ } catch (e) {
13972
+ return Promise.reject(e);
13973
+ }
13974
+ };
13975
+ if (!lesson) return null;
13976
+ return React__default.createElement(CommonDialog, {
13977
+ open: open,
13978
+ onClose: onClose,
13979
+ size: "sm",
13980
+ title: t("uppdate_attendance"),
13981
+ zIndex: zIndex
13982
+ }, React__default.createElement(formik.Formik, {
13983
+ initialValues: attendanceRequest,
13984
+ enableReinitialize: true,
13985
+ onSubmit: handleSubmit
13986
+ }, function (formikProp) {
13987
+ return React__default.createElement(AttendanceFormBody, {
13988
+ lesson: lesson,
13989
+ attendance: attendance,
13990
+ formikProp: formikProp,
13991
+ onClose: onClose
13992
+ });
13993
+ }));
13994
+ };
13995
+
13996
+ var USER_URL = BASE_URL + "/api/user";
13997
+ var getUserByIdApi = function getUserByIdApi(id) {
13998
+ return api.get(USER_URL + "/GetById/" + id);
13999
+ };
14000
+
14001
+ var _defaultLoadedTabs;
14002
+ var defaultTab = DrawerTab.Attendance;
14003
+ var defaultLoadedTabs = (_defaultLoadedTabs = {}, _defaultLoadedTabs[defaultTab] = true, _defaultLoadedTabs);
14004
+ var useStudentInfoDrawer = function useStudentInfoDrawer(props) {
14005
+ var open = props.open,
14006
+ inert = props.inert,
14007
+ studentId = props.studentId,
14008
+ onClose = props.onClose;
14009
+ var _useTranslation = reactI18next.useTranslation(),
14010
+ t = _useTranslation.t;
14011
+ var _useState = React.useState(),
14012
+ studentInfo = _useState[0],
14013
+ setStudentInfo = _useState[1];
14014
+ var _useState2 = React.useState(false),
14015
+ isLoading = _useState2[0],
14016
+ setLoading = _useState2[1];
14017
+ var _useState3 = React.useState(defaultTab),
14018
+ selectedTab = _useState3[0],
14019
+ setSelectedTab = _useState3[1];
14020
+ var _useState4 = React.useState(defaultLoadedTabs),
14021
+ loadedTabs = _useState4[0],
14022
+ setLoadingTabs = _useState4[1];
14023
+ var handleClose = function handleClose() {
14024
+ setStudentInfo(undefined);
14025
+ setSelectedTab(defaultTab);
14026
+ onClose === null || onClose === void 0 ? void 0 : onClose();
14027
+ setLoadingTabs(defaultLoadedTabs);
14028
+ };
14029
+ var handleChangeTab = function handleChangeTab(_, newValue) {
14030
+ setSelectedTab(newValue);
14031
+ setLoadingTabs(function (state) {
14032
+ var _extends2;
14033
+ return _extends({}, state, (_extends2 = {}, _extends2[newValue] = true, _extends2));
14034
+ });
14035
+ };
14036
+ var debounceChangeTab = _$8.debounce(handleChangeTab, 300);
14037
+ React.useEffect(function () {
14038
+ var getStudent = function getStudent() {
14039
+ try {
14040
+ var _temp2 = function _temp2() {
14041
+ setLoading(false);
14042
+ };
14043
+ if (!studentId) return Promise.resolve();
14044
+ setLoading(true);
14045
+ var _temp = _catch(function () {
14046
+ return Promise.resolve(getUserByIdApi(studentId)).then(function (res) {
14047
+ setStudentInfo(res.data.data);
14048
+ });
14049
+ }, function () {});
14050
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
14051
+ } catch (e) {
14052
+ return Promise.reject(e);
14053
+ }
14054
+ };
14055
+ getStudent();
14056
+ }, [studentId]);
14057
+ React.useEffect(function () {
14058
+ if (open && inert) {
14059
+ var _document$getElementB;
14060
+ (_document$getElementB = document.getElementById("drawer")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.setAttribute("inert", "true");
14061
+ } else {
14062
+ var _document$getElementB2;
14063
+ (_document$getElementB2 = document.getElementById("drawer")) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.removeAttribute("inert");
14064
+ }
14065
+ return function () {
14066
+ var _document$getElementB3;
14067
+ (_document$getElementB3 = document.getElementById("drawer")) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.removeAttribute("inert");
14068
+ };
14069
+ }, [open, inert]);
14070
+ return {
14071
+ t: t,
14072
+ loadedTabs: loadedTabs,
14073
+ isLoading: isLoading,
14074
+ studentInfo: studentInfo,
14075
+ selectedTab: selectedTab,
14076
+ debounceChangeTab: debounceChangeTab,
14077
+ handleClose: handleClose
14078
+ };
14079
+ };
14080
+
14081
+ var DrawerContainerStyle = function DrawerContainerStyle(width) {
14082
+ return {
14083
+ flexShrink: 0,
14084
+ display: "flex",
14085
+ flexDirection: "column",
14086
+ "& .MuiDrawer-paper": {
14087
+ width: width,
14088
+ boxSizing: "border-box"
14089
+ }
14090
+ };
13495
14091
  };
13496
14092
 
13497
14093
  var DrawerHeader = function DrawerHeader(_ref) {
@@ -14464,25 +15060,7 @@ var defaultSeries = function defaultSeries(t) {
14464
15060
  }];
14465
15061
  };
14466
15062
 
14467
- 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"};
14468
-
14469
- var iconCloseDialog = function iconCloseDialog(_ref) {
14470
- var _ref$width = _ref.width,
14471
- width = _ref$width === void 0 ? "24" : _ref$width,
14472
- _ref$height = _ref.height,
14473
- height = _ref$height === void 0 ? "25" : _ref$height,
14474
- color = _ref.color;
14475
- return React__default.createElement("svg", {
14476
- width: width,
14477
- height: height,
14478
- viewBox: "0 0 24 25",
14479
- fill: color,
14480
- xmlns: "http://www.w3.org/2000/svg"
14481
- }, React__default.createElement("path", {
14482
- 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",
14483
- fill: "#202B37"
14484
- }));
14485
- };
15063
+ 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"};
14486
15064
 
14487
15065
  var NoteTinyEditor = function NoteTinyEditor(_ref) {
14488
15066
  var _ref$disabled = _ref.disabled,
@@ -14592,7 +15170,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14592
15170
  padding: "24px 24px 40px 24px"
14593
15171
  }, (selectedNote || studentName) && React__default.createElement(material.Stack, null, React__default.createElement("label", {
14594
15172
  htmlFor: "questions",
14595
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15173
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14596
15174
  }, t("student_name")), React__default.createElement(Typography, {
14597
15175
  sx: {
14598
15176
  fontWeight: 700,
@@ -14601,7 +15179,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14601
15179
  }
14602
15180
  }, selectedNote ? selectedNote.fullName : studentName)), React__default.createElement(material.Stack, null, React__default.createElement("label", {
14603
15181
  htmlFor: "content-question",
14604
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15182
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14605
15183
  }, t("incorrect_answer_note_contents")), React__default.createElement(material.Box, {
14606
15184
  position: "relative",
14607
15185
  display: "flex",
@@ -14635,7 +15213,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14635
15213
  borderTop: "1px solid #CED2DA"
14636
15214
  }
14637
15215
  }, React__default.createElement(MButton, {
14638
- className: styles$3["btn-cancel"],
15216
+ className: styles$5["btn-cancel"],
14639
15217
  onClick: onClose
14640
15218
  }, React__default.createElement(Typography, {
14641
15219
  sx: {
@@ -14649,7 +15227,7 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
14649
15227
  sx: {
14650
15228
  bgcolor: styles.dark
14651
15229
  },
14652
- className: styles$3["btn-register"],
15230
+ className: styles$5["btn-register"],
14653
15231
  type: "submit",
14654
15232
  disabled: !values.content.trim().length
14655
15233
  }, React__default.createElement(Typography, {
@@ -14679,42 +15257,21 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14679
15257
  var handleSaveNote = function handleSaveNote(content, questionId) {
14680
15258
  onSaveNote(content, questionId);
14681
15259
  };
14682
- var _useState = React.useState(false),
14683
- keyboardOpen = _useState[0],
14684
- setKeyboardOpen = _useState[1];
14685
- React.useEffect(function () {
14686
- var handleResize = function handleResize() {
14687
- if (window.innerHeight < window.outerHeight) {
14688
- var _dialogRef$current;
14689
- (_dialogRef$current = dialogRef.current) === null || _dialogRef$current === void 0 ? void 0 : _dialogRef$current.scrollIntoView({
14690
- behavior: 'smooth',
14691
- block: 'center'
14692
- });
14693
- setKeyboardOpen(true);
14694
- } else {
14695
- setKeyboardOpen(false);
14696
- }
14697
- };
14698
- window.addEventListener("resize", handleResize);
14699
- handleResize();
14700
- return function () {
14701
- return window.removeEventListener("resize", handleResize);
14702
- };
14703
- }, []);
15260
+ var _useKeyboardVisible = useKeyboardVisible(),
15261
+ pageSxProps = _useKeyboardVisible.pageSxProps,
15262
+ handleInputBlur = _useKeyboardVisible.handleInputBlur,
15263
+ handleInputFocus = _useKeyboardVisible.handleInputFocus;
14704
15264
  return React__default.createElement(material.Dialog, {
14705
15265
  ref: dialogRef,
14706
15266
  onClose: onClose,
14707
15267
  open: open,
14708
15268
  scroll: "body",
14709
15269
  PaperProps: {
14710
- sx: {
15270
+ sx: _extends({
14711
15271
  maxHeight: "unset",
14712
15272
  minWidth: "363px",
14713
- overflowY: "unset",
14714
- position: "relative",
14715
- bottom: keyboardOpen ? "0" : undefined,
14716
- transition: "top 0.3s ease"
14717
- }
15273
+ overflowY: "auto"
15274
+ }, pageSxProps)
14718
15275
  }
14719
15276
  }, React__default.createElement(DialogTitle, {
14720
15277
  id: "customized-dialog-title"
@@ -14758,7 +15315,7 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14758
15315
  padding: "24px 24px 40px 24px"
14759
15316
  }, React__default.createElement(material.Stack, null, React__default.createElement("label", {
14760
15317
  htmlFor: "questions",
14761
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15318
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14762
15319
  }, t("problem_number")), selectedQuestion || selectedNote ? React__default.createElement(Typography, {
14763
15320
  sx: {
14764
15321
  fontWeight: 700,
@@ -14780,12 +15337,15 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14780
15337
  var value = _ref4.value;
14781
15338
  return setFieldValue("questionId", value);
14782
15339
  },
14783
- isClearable: false
15340
+ maxMenuHeight: 150,
15341
+ isClearable: false,
15342
+ onFocus: handleInputFocus,
15343
+ onBlur: handleInputBlur
14784
15344
  }));
14785
15345
  }
14786
15346
  })), React__default.createElement(material.Stack, null, React__default.createElement("label", {
14787
15347
  htmlFor: "content-question",
14788
- className: styles["form-label"] + " " + styles$3["form-label-dialog"]
15348
+ className: styles["form-label"] + " " + styles$5["form-label-dialog"]
14789
15349
  }, t("incorrect_answer_note_contents")), React__default.createElement(material.Box, {
14790
15350
  position: "relative",
14791
15351
  display: "flex",
@@ -14802,7 +15362,9 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14802
15362
  },
14803
15363
  name: "content",
14804
15364
  placeholder: t("the_problem_is_difficult"),
14805
- className: styles["form-control"]
15365
+ className: styles["form-control"],
15366
+ onFocus: handleInputFocus,
15367
+ onBlur: handleInputBlur
14806
15368
  })), React__default.createElement(material.Box, {
14807
15369
  marginBottom: "4px"
14808
15370
  })))), React__default.createElement(DialogActions, {
@@ -14814,7 +15376,7 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14814
15376
  borderTop: "1px solid #CED2DA"
14815
15377
  }
14816
15378
  }, React__default.createElement(MButton, {
14817
- className: styles$3["btn-cancel"],
15379
+ className: styles$5["btn-cancel"],
14818
15380
  onClick: onClose
14819
15381
  }, React__default.createElement(Typography, {
14820
15382
  sx: {
@@ -14828,7 +15390,7 @@ var ExamNoteDialog = function ExamNoteDialog(_ref) {
14828
15390
  sx: {
14829
15391
  bgcolor: styles.dark
14830
15392
  },
14831
- className: styles$3["btn-register"],
15393
+ className: styles$5["btn-register"],
14832
15394
  type: "submit",
14833
15395
  disabled: !values.content.trim().length
14834
15396
  }, React__default.createElement(Typography, {
@@ -15992,7 +16554,6 @@ var TEXTBOOK_DEFAULT_FILTER = {
15992
16554
  sortColumnName: "Name",
15993
16555
  preparedFilterType: "RecentlySolvedQuestions"
15994
16556
  };
15995
- var FormatDate = "YYYY-MM-DD HH:mm:ss";
15996
16557
 
15997
16558
  var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
15998
16559
  var getExamSessionListApi = function getExamSessionListApi(query) {
@@ -17251,7 +17812,7 @@ Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==t
17251
17812
 
17252
17813
  var ReactApexChart = unwrapExports(reactApexcharts_min);
17253
17814
 
17254
- 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"};
17815
+ 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"};
17255
17816
 
17256
17817
  var printStyles = {"page-break":"_35kyG","print-exact-color":"_1PFgl","avoid-break-inside":"_3rPGh"};
17257
17818
 
@@ -17420,7 +17981,7 @@ var AnswerItem = function AnswerItem(_ref) {
17420
17981
  },
17421
17982
  key: data.id
17422
17983
  }, React__default.createElement("div", {
17423
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
17984
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
17424
17985
  }, React__default.createElement("div", {
17425
17986
  className: styles["custom-col-2"],
17426
17987
  style: {
@@ -17430,7 +17991,7 @@ var AnswerItem = function AnswerItem(_ref) {
17430
17991
  padding: "5px 8px"
17431
17992
  }
17432
17993
  }, data.isStar ? React__default.createElement(iconStarQuestion, null) : React__default.createElement(iconNoStarQuestion, null), React__default.createElement("span", {
17433
- className: styles$4["questionOrder"]
17994
+ className: styles$6["questionOrder"]
17434
17995
  }, t("number_question", {
17435
17996
  number: data.questionOrder + 1
17436
17997
  }))), React__default.createElement("div", {
@@ -17441,11 +18002,11 @@ var AnswerItem = function AnswerItem(_ref) {
17441
18002
  gap: "4px"
17442
18003
  }
17443
18004
  }, data.isCorrect && data.selectedAnswers !== "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
17444
- className: styles$4["answerCorrect"]
18005
+ className: styles$6["answerCorrect"]
17445
18006
  }, t("correct"))), !data.isCorrect && data.selectedAnswers !== "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
17446
- className: styles$4["answerIncorrect"]
18007
+ className: styles$6["answerIncorrect"]
17447
18008
  }, t("incorrect"))), data.selectedAnswers === "" && React__default.createElement(React.Fragment, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
17448
- className: styles$4["answerNograss"]
18009
+ className: styles$6["answerNograss"]
17449
18010
  }, t("no_solution")))), React__default.createElement("div", {
17450
18011
  className: styles["custom-col-2"],
17451
18012
  style: {
@@ -17456,12 +18017,12 @@ var AnswerItem = function AnswerItem(_ref) {
17456
18017
  style: {
17457
18018
  margin: 0
17458
18019
  },
17459
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
18020
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
17460
18021
  }, formatTimeSecond(Math.round(data.duration), t)) : React__default.createElement("p", {
17461
18022
  style: {
17462
18023
  margin: 0
17463
18024
  },
17464
- className: styles$4["answerNoTime"]
18025
+ className: styles$6["answerNoTime"]
17465
18026
  }, t("no_time"))), React__default.createElement("div", {
17466
18027
  className: styles["custom-col-2"],
17467
18028
  style: {
@@ -17472,13 +18033,13 @@ var AnswerItem = function AnswerItem(_ref) {
17472
18033
  style: {
17473
18034
  margin: 0
17474
18035
  },
17475
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
18036
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
17476
18037
  }, formatTimeDiff(data.duration, data.topDuration, t)) : React__default.createElement("p", {
17477
18038
  style: {
17478
18039
  margin: 0,
17479
18040
  textAlign: "center"
17480
18041
  },
17481
- className: styles$4["answerNoTime"]
18042
+ className: styles$6["answerNoTime"]
17482
18043
  }, "-")), React__default.createElement("div", {
17483
18044
  className: styles["custom-col-2"],
17484
18045
  style: {
@@ -17489,12 +18050,12 @@ var AnswerItem = function AnswerItem(_ref) {
17489
18050
  style: {
17490
18051
  margin: 0
17491
18052
  },
17492
- className: styles$4["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$4)
18053
+ className: styles$6["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$6)
17493
18054
  }, data.overallCorrectRate.toFixed(2) + "%") : React__default.createElement("p", {
17494
18055
  style: {
17495
18056
  margin: 0
17496
18057
  },
17497
- className: styles$4["answerNoTime"]
18058
+ className: styles$6["answerNoTime"]
17498
18059
  }, t("no_time"))), isStudent && !isLearningSpace && React__default.createElement(material.Box, {
17499
18060
  className: styles["custom-col-2"]
17500
18061
  }, openContextMenu ? React__default.createElement(material.ClickAwayListener, {
@@ -17561,7 +18122,7 @@ var MyAnswer = function MyAnswer(_ref) {
17561
18122
  }));
17562
18123
  };
17563
18124
  return React__default.createElement("div", {
17564
- className: "" + styles$4["myanswer"]
18125
+ className: "" + styles$6["myanswer"]
17565
18126
  }, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
17566
18127
  return React__default.createElement("div", {
17567
18128
  key: item.category.id
@@ -17571,7 +18132,7 @@ var MyAnswer = function MyAnswer(_ref) {
17571
18132
  bgcolor: "#F9FAFB",
17572
18133
  flexDirection: "row",
17573
18134
  padding: "12px",
17574
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
18135
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
17575
18136
  }, React__default.createElement("div", {
17576
18137
  className: styles["custom-col-2"],
17577
18138
  style: {
@@ -17650,7 +18211,7 @@ var MyAnswer = function MyAnswer(_ref) {
17650
18211
  alignItems: "center"
17651
18212
  }
17652
18213
  }, t("total_correct_rate")))), React__default.createElement("div", {
17653
- className: styles$4["titleMyAnswer2"]
18214
+ className: styles$6["titleMyAnswer2"]
17654
18215
  }, React__default.createElement(material.Typography, {
17655
18216
  sx: {
17656
18217
  color: "#97A1AF",
@@ -17663,7 +18224,7 @@ var MyAnswer = function MyAnswer(_ref) {
17663
18224
  fontWeight: 700
17664
18225
  }
17665
18226
  }, item.category.name))), React__default.createElement("div", {
17666
- className: styles$4["contentMyAnswer"]
18227
+ className: styles$6["contentMyAnswer"]
17667
18228
  }, React__default.createElement(ListView, {
17668
18229
  data: item.questions,
17669
18230
  render: function render(question, index) {
@@ -17779,7 +18340,7 @@ var CompareGrass = function CompareGrass(_ref2) {
17779
18340
  borderTop: index < effectSize.length - 1 ? "1px solid transparent" : undefined
17780
18341
  }
17781
18342
  }, React__default.createElement("td", {
17782
- className: styles$4["tdcolumn1"]
18343
+ className: styles$6["tdcolumn1"]
17783
18344
  }, t("problem"), " ", item.questionOrder + 1), React__default.createElement("td", {
17784
18345
  style: {
17785
18346
  textAlign: "center",
@@ -17787,9 +18348,9 @@ var CompareGrass = function CompareGrass(_ref2) {
17787
18348
  maxWidth: "30%"
17788
18349
  }
17789
18350
  }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
17790
- className: styles$4["tdcolumn3"],
18351
+ className: styles$6["tdcolumn3"],
17791
18352
  style: {
17792
- color: item.isCorrect ? styles$4.green_support_900 : styles$4.red_900,
18353
+ color: item.isCorrect ? styles$6.green_support_900 : styles$6.red_900,
17793
18354
  maxWidth: "30%"
17794
18355
  }
17795
18356
  }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
@@ -17800,7 +18361,7 @@ var CompareGrass = function CompareGrass(_ref2) {
17800
18361
  }, renderAnswer(item.questionAnswerType, item.mostSelectedAnswers)), React__default.createElement("td", {
17801
18362
  className: "" + printStyles["avoid-break-inside"]
17802
18363
  }, React__default.createElement("div", {
17803
- className: styles$4["classification"] + " " + printStyles["avoid-break-inside"]
18364
+ className: styles$6["classification"] + " " + printStyles["avoid-break-inside"]
17804
18365
  }, item.problemCategories.map(function (problem, index) {
17805
18366
  return React__default.createElement(material.Stack, {
17806
18367
  flexDirection: "row",
@@ -17843,11 +18404,11 @@ var CompareGrass = function CompareGrass(_ref2) {
17843
18404
  });
17844
18405
  };
17845
18406
  return React__default.createElement("div", {
17846
- className: "" + styles$4["compareGrass"]
18407
+ className: "" + styles$6["compareGrass"]
17847
18408
  }, React__default.createElement("div", {
17848
- className: styles$4["tableCompareGrass"]
18409
+ className: styles$6["tableCompareGrass"]
17849
18410
  }, React__default.createElement("div", {
17850
- className: styles$4["table-responsive"]
18411
+ className: styles$6["table-responsive"]
17851
18412
  }, React__default.createElement(material.Table, {
17852
18413
  style: {
17853
18414
  width: "100%"
@@ -17859,7 +18420,7 @@ var CompareGrass = function CompareGrass(_ref2) {
17859
18420
  },
17860
18421
  className: "" + printStyles["avoid-break-inside"]
17861
18422
  }, React__default.createElement("tr", null, React__default.createElement("th", {
17862
- className: styles$4["thcolumn1"]
18423
+ className: styles$6["thcolumn1"]
17863
18424
  }, t("problem_number")), React__default.createElement("th", {
17864
18425
  style: {
17865
18426
  textAlign: "center"
@@ -17940,37 +18501,37 @@ var TrickyProblem = function TrickyProblem(_ref) {
17940
18501
  });
17941
18502
  var renderProblems = function renderProblems() {
17942
18503
  return React__default.createElement(React.Fragment, null, React__default.createElement("div", {
17943
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
18504
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
17944
18505
  }, React__default.createElement(iconX, null), React__default.createElement("span", null, t("incorrect_problem_among_the_starred_problems"))), React__default.createElement("div", {
17945
- className: styles$4["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
18506
+ className: styles$6["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
17946
18507
  }, !!(inCorrectQuestions !== null && inCorrectQuestions !== void 0 && inCorrectQuestions.length) && inCorrectQuestions.map(function (question) {
17947
18508
  return React__default.createElement("span", {
17948
18509
  key: question.id,
17949
- className: styles$4["question"]
18510
+ className: styles$6["question"]
17950
18511
  }, t("number_question", {
17951
18512
  number: question.questionOrder + 1
17952
18513
  }));
17953
18514
  }), !(data !== null && data !== void 0 && data.questions.length) && React__default.createElement("div", {
17954
- className: styles$4["noData"]
18515
+ className: styles$6["noData"]
17955
18516
  }, t("no_data"))), React__default.createElement("div", {
17956
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
18517
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
17957
18518
  }, React__default.createElement(iconAssignedQuestions, null), React__default.createElement("span", null, t("correct_problem_among_the_starred_problems"))), React__default.createElement("div", {
17958
- className: styles$4["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
18519
+ className: styles$6["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
17959
18520
  }, !!(correctQuestions !== null && correctQuestions !== void 0 && correctQuestions.length) && correctQuestions.map(function (question) {
17960
18521
  return React__default.createElement("div", {
17961
18522
  key: question.id,
17962
- className: styles$4["question"]
18523
+ className: styles$6["question"]
17963
18524
  }, t("number_question", {
17964
18525
  number: question.questionOrder + 1
17965
18526
  }));
17966
18527
  }), !(data !== null && data !== void 0 && data.questions.length) && React__default.createElement("div", {
17967
- className: styles$4["noData"]
18528
+ className: styles$6["noData"]
17968
18529
  }, t("no_data"))));
17969
18530
  };
17970
18531
  return React__default.createElement("div", {
17971
- className: "" + styles$4["wrapperProblem"]
18532
+ className: "" + styles$6["wrapperProblem"]
17972
18533
  }, React__default.createElement("div", {
17973
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
18534
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
17974
18535
  onClick: function onClick() {
17975
18536
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
17976
18537
  }
@@ -17982,10 +18543,10 @@ var TrickyProblem = function TrickyProblem(_ref) {
17982
18543
  }
17983
18544
  }, t("tricky_problems")), isOpen ? React__default.createElement(io5.IoChevronUp, {
17984
18545
  size: 24,
17985
- color: styles$4.gray_300
18546
+ color: styles$6.gray_300
17986
18547
  }) : React__default.createElement(io5.IoChevronDown, {
17987
18548
  size: 24,
17988
- color: styles$4.gray_300
18549
+ color: styles$6.gray_300
17989
18550
  })), isOpen && React__default.createElement(React.Fragment, null, renderProblems()));
17990
18551
  };
17991
18552
 
@@ -18011,9 +18572,9 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18011
18572
  borderBottom: "1px solid #e4e7ec"
18012
18573
  } : {}
18013
18574
  }, React__default.createElement("td", {
18014
- className: styles$4["tdcolumn1"],
18575
+ className: styles$6["tdcolumn1"],
18015
18576
  style: {
18016
- color: styles$4.gray_900,
18577
+ color: styles$6.gray_900,
18017
18578
  fontSize: "13px",
18018
18579
  fontWeight: 500
18019
18580
  }
@@ -18022,22 +18583,22 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18022
18583
  })), React__default.createElement("td", {
18023
18584
  style: {
18024
18585
  textAlign: "center",
18025
- color: styles$4.gray_700,
18586
+ color: styles$6.gray_700,
18026
18587
  fontSize: "13px",
18027
18588
  fontWeight: 500
18028
18589
  }
18029
18590
  }, item.duration ? formatTimeSecond(item.duration, t) : ""), React__default.createElement("td", {
18030
- className: styles$4["tdcolumn3"],
18591
+ className: styles$6["tdcolumn3"],
18031
18592
  style: {
18032
18593
  textAlign: "center",
18033
- color: styles$4.gray_700,
18594
+ color: styles$6.gray_700,
18034
18595
  fontSize: "13px",
18035
18596
  fontWeight: 500
18036
18597
  }
18037
18598
  }, item.topDuration ? formatTimeSecond(item.topDuration, t) : ""), React__default.createElement("td", {
18038
18599
  style: {
18039
18600
  textAlign: "center",
18040
- color: isBetter ? styles$4.dark : styles$4.red_900,
18601
+ color: isBetter ? styles$6.dark : styles$6.red_900,
18041
18602
  fontSize: "13px",
18042
18603
  fontWeight: 600
18043
18604
  }
@@ -18053,15 +18614,15 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18053
18614
  return React__default.createElement(material.Stack, {
18054
18615
  direction: "row",
18055
18616
  flexWrap: "nowrap",
18056
- className: styles$4["content"] + " " + printStyles["avoid-break-inside"],
18617
+ className: styles$6["content"] + " " + printStyles["avoid-break-inside"],
18057
18618
  key: item.id
18058
18619
  }, React__default.createElement(material.Box, {
18059
18620
  width: "160px",
18060
- className: styles$4["contentColumn1"]
18621
+ className: styles$6["contentColumn1"]
18061
18622
  }, React__default.createElement(material.Stack, null, React__default.createElement("div", null, React__default.createElement("span", {
18062
- className: styles$4["span1"]
18623
+ className: styles$6["span1"]
18063
18624
  }, t("problem")), React__default.createElement("span", {
18064
- className: styles$4["span2"]
18625
+ className: styles$6["span2"]
18065
18626
  }, t("number_question", {
18066
18627
  number: item.questionOrder + 1
18067
18628
  }))), (category === null || category === void 0 ? void 0 : category.name) && React__default.createElement(material.Typography, {
@@ -18072,22 +18633,22 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18072
18633
  textAlign: "center"
18073
18634
  }
18074
18635
  }, category.name))), React__default.createElement(material.Box, {
18075
- className: styles$4["contentColumn2"]
18636
+ className: styles$6["contentColumn2"]
18076
18637
  }, React__default.createElement("div", null, React__default.createElement("span", {
18077
- className: styles$4["span1"]
18638
+ className: styles$6["span1"]
18078
18639
  }, t("my_time")), React__default.createElement("span", {
18079
- className: styles$4["span2"]
18640
+ className: styles$6["span2"]
18080
18641
  }, t("top_time"))), React__default.createElement("div", null, React__default.createElement("span", {
18081
- className: styles$4["duration"]
18642
+ className: styles$6["duration"]
18082
18643
  }, formatTimeSecond(item.duration, t)), React__default.createElement("span", {
18083
- className: styles$4["topDuration"]
18644
+ className: styles$6["topDuration"]
18084
18645
  }, formatTimeSecond(item.topDuration, t)))));
18085
18646
  });
18086
18647
  };
18087
18648
  return React__default.createElement("div", {
18088
- className: "" + styles$4["wrapperProblem"]
18649
+ className: "" + styles$6["wrapperProblem"]
18089
18650
  }, React__default.createElement("div", {
18090
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
18651
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
18091
18652
  onClick: function onClick() {
18092
18653
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
18093
18654
  }
@@ -18103,20 +18664,20 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18103
18664
  }
18104
18665
  }, t("problems_that_took_a_long_time")), React__default.createElement(material.Typography, {
18105
18666
  sx: {
18106
- color: styles$4.gray_300,
18667
+ color: styles$6.gray_300,
18107
18668
  fontSize: "11px",
18108
18669
  fontWeight: 500
18109
18670
  }
18110
18671
  }, t("protracted_problem_detail"))), isOpen ? React__default.createElement(io5.IoChevronUp, {
18111
18672
  size: 24,
18112
- color: styles$4.gray_300
18673
+ color: styles$6.gray_300
18113
18674
  }) : React__default.createElement(io5.IoChevronDown, {
18114
18675
  size: 24,
18115
- color: styles$4.gray_300
18676
+ color: styles$6.gray_300
18116
18677
  })), isOpen && React__default.createElement(React.Fragment, null, data.length ? React__default.createElement("div", {
18117
- className: styles$4["tableCompareGrass"]
18678
+ className: styles$6["tableCompareGrass"]
18118
18679
  }, React__default.createElement("div", {
18119
- className: styles$4["table-responsive"]
18680
+ className: styles$6["table-responsive"]
18120
18681
  }, React__default.createElement(material.Table, {
18121
18682
  style: {
18122
18683
  width: "100%",
@@ -18128,7 +18689,7 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18128
18689
  },
18129
18690
  className: "" + printStyles["avoid-break-inside"]
18130
18691
  }, React__default.createElement("tr", null, React__default.createElement("th", {
18131
- className: styles$4["thcolumn1"]
18692
+ className: styles$6["thcolumn1"]
18132
18693
  }, t("problem_number")), React__default.createElement("th", {
18133
18694
  style: {
18134
18695
  textAlign: "center"
@@ -18142,7 +18703,7 @@ var ProtractedProblem = function ProtractedProblem(_ref) {
18142
18703
  textAlign: "center"
18143
18704
  }
18144
18705
  }, t("time_comparison")))), React__default.createElement("tbody", null, isMyStoryStudent ? renderTableBody(data) : renderQuestions(data))))) : React__default.createElement("div", {
18145
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
18706
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
18146
18707
  }, t("no_data"))));
18147
18708
  };
18148
18709
 
@@ -18214,39 +18775,39 @@ var Vulnerable = function Vulnerable(_ref) {
18214
18775
  borderBottom: index < data.length - 1 ? "1px solid #e4e7ec" : undefined
18215
18776
  }
18216
18777
  }, React__default.createElement("td", {
18217
- className: styles$4["tdcolumn1"],
18778
+ className: styles$6["tdcolumn1"],
18218
18779
  style: {
18219
- color: styles$4.gray_900,
18780
+ color: styles$6.gray_900,
18220
18781
  fontSize: "13px",
18221
18782
  fontWeight: 600
18222
18783
  }
18223
18784
  }, React__default.createElement(material.Typography, {
18224
- color: styles$4.gray_900,
18785
+ color: styles$6.gray_900,
18225
18786
  fontSize: "13px",
18226
18787
  fontWeight: 600
18227
18788
  }, t("problem") + " " + (item.questionOrder + 1))), React__default.createElement("td", {
18228
18789
  style: {
18229
18790
  textAlign: "center",
18230
- color: styles$4.dark,
18791
+ color: styles$6.dark,
18231
18792
  fontSize: "13px",
18232
18793
  fontWeight: 600
18233
18794
  }
18234
18795
  }, item.overallCorrectRate.toFixed(2) ? item.overallCorrectRate.toFixed(2) + "%" : ""), React__default.createElement("td", {
18235
- className: styles$4["tdcolumn3"],
18796
+ className: styles$6["tdcolumn3"],
18236
18797
  style: {
18237
- color: styles$4.red_900,
18798
+ color: styles$6.red_900,
18238
18799
  fontSize: "13px",
18239
18800
  fontWeight: 500
18240
18801
  }
18241
18802
  }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
18242
18803
  style: {
18243
18804
  textAlign: "center",
18244
- color: styles$4.gray_700
18805
+ color: styles$6.gray_700
18245
18806
  }
18246
18807
  }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
18247
18808
  style: {
18248
18809
  textAlign: "center",
18249
- color: styles$4.gray_700
18810
+ color: styles$6.gray_700
18250
18811
  }
18251
18812
  }, item.category.name ? item.category.name : ""));
18252
18813
  });
@@ -18257,18 +18818,18 @@ var Vulnerable = function Vulnerable(_ref) {
18257
18818
  return React__default.createElement(material.Stack, {
18258
18819
  direction: "row",
18259
18820
  flexWrap: "nowrap",
18260
- className: styles$4["content"] + " " + printStyles["avoid-break-inside"],
18821
+ className: styles$6["content"] + " " + printStyles["avoid-break-inside"],
18261
18822
  key: question.id
18262
18823
  }, React__default.createElement(material.Box, {
18263
18824
  width: "160px",
18264
- className: styles$4["contentColumn1"]
18825
+ className: styles$6["contentColumn1"]
18265
18826
  }, React__default.createElement(material.Stack, {
18266
18827
  direction: "column",
18267
18828
  gap: 1
18268
18829
  }, React__default.createElement("div", null, React__default.createElement("span", {
18269
- className: styles$4["span1"]
18830
+ className: styles$6["span1"]
18270
18831
  }, t("problem_number")), React__default.createElement("span", {
18271
- className: styles$4["span2"]
18832
+ className: styles$6["span2"]
18272
18833
  }, t("number_question", {
18273
18834
  number: question.questionOrder + 1
18274
18835
  }))), ((_question$category = question.category) === null || _question$category === void 0 ? void 0 : _question$category.name) && React__default.createElement(material.Typography, {
@@ -18279,18 +18840,18 @@ var Vulnerable = function Vulnerable(_ref) {
18279
18840
  textAlign: "center"
18280
18841
  }
18281
18842
  }, question.category.name))), React__default.createElement(material.Box, {
18282
- className: styles$4["contentColumn2"],
18843
+ className: styles$6["contentColumn2"],
18283
18844
  sx: {
18284
18845
  alignItems: "center"
18285
18846
  }
18286
18847
  }, React__default.createElement("div", null, React__default.createElement("span", {
18287
- className: styles$4["span1"]
18848
+ className: styles$6["span1"]
18288
18849
  }, t("total_correct_rate")), React__default.createElement("span", {
18289
- className: styles$4["span2"]
18850
+ className: styles$6["span2"]
18290
18851
  }, t("my_wrong_answer"))), React__default.createElement("div", null, React__default.createElement("span", {
18291
- className: styles$4["overallCorrectRate"]
18852
+ className: styles$6["overallCorrectRate"]
18292
18853
  }, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
18293
- className: styles$4["answer"]
18854
+ className: styles$6["answer"]
18294
18855
  }, 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)))));
18295
18856
  });
18296
18857
  };
@@ -18298,9 +18859,9 @@ var Vulnerable = function Vulnerable(_ref) {
18298
18859
  changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
18299
18860
  };
18300
18861
  return React__default.createElement("div", {
18301
- className: "" + styles$4["wrapperProblem"]
18862
+ className: "" + styles$6["wrapperProblem"]
18302
18863
  }, React__default.createElement("div", {
18303
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
18864
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
18304
18865
  onClick: handleToggle
18305
18866
  }, React__default.createElement(material.Stack, {
18306
18867
  flexDirection: "row",
@@ -18314,20 +18875,20 @@ var Vulnerable = function Vulnerable(_ref) {
18314
18875
  }
18315
18876
  }, t("issues_vulnerable")), React__default.createElement(material.Typography, {
18316
18877
  sx: {
18317
- color: styles$4.gray_300,
18878
+ color: styles$6.gray_300,
18318
18879
  fontSize: "11px",
18319
18880
  fontWeight: 500
18320
18881
  }
18321
18882
  }, t("vulnerable_detail"))), isOpen ? React__default.createElement(io5.IoChevronUp, {
18322
18883
  size: 24,
18323
- color: styles$4.gray_300
18884
+ color: styles$6.gray_300
18324
18885
  }) : React__default.createElement(io5.IoChevronDown, {
18325
18886
  size: 24,
18326
- color: styles$4.gray_300
18887
+ color: styles$6.gray_300
18327
18888
  })), isOpen && React__default.createElement(React.Fragment, null, incorrectQuestions.length ? React__default.createElement("div", {
18328
- className: styles$4["tableCompareGrass"]
18889
+ className: styles$6["tableCompareGrass"]
18329
18890
  }, React__default.createElement("div", {
18330
- className: styles$4["table-responsive"]
18891
+ className: styles$6["table-responsive"]
18331
18892
  }, isMyStoryStudent && React__default.createElement(material.Table, {
18332
18893
  style: {
18333
18894
  width: "100%",
@@ -18339,7 +18900,7 @@ var Vulnerable = function Vulnerable(_ref) {
18339
18900
  },
18340
18901
  className: "" + printStyles["avoid-break-inside"]
18341
18902
  }, React__default.createElement("tr", null, React__default.createElement("th", {
18342
- className: styles$4["thcolumn1"]
18903
+ className: styles$6["thcolumn1"]
18343
18904
  }, t("problem_number")), React__default.createElement("th", {
18344
18905
  style: {
18345
18906
  textAlign: "center"
@@ -18357,7 +18918,7 @@ var Vulnerable = function Vulnerable(_ref) {
18357
18918
  textAlign: "center"
18358
18919
  }
18359
18920
  }, t("_category")))), React__default.createElement("tbody", null, renderTableBody(incorrectQuestions))), !isMyStoryStudent && renderQuestions(incorrectQuestions))) : React__default.createElement("div", {
18360
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
18921
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
18361
18922
  }, t("no_data"))));
18362
18923
  };
18363
18924
 
@@ -18408,24 +18969,24 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18408
18969
  borderBottom: index < data.length - 1 ? "1px solid #e4e7ec" : undefined
18409
18970
  }
18410
18971
  }, React__default.createElement("td", {
18411
- className: styles$4["tdcolumn1"],
18972
+ className: styles$6["tdcolumn1"],
18412
18973
  style: {
18413
- color: styles$4.gray_900,
18974
+ color: styles$6.gray_900,
18414
18975
  fontSize: "13px",
18415
18976
  fontWeight: 600
18416
18977
  }
18417
18978
  }, item.name), React__default.createElement("td", {
18418
18979
  style: {
18419
18980
  textAlign: "center",
18420
- color: styles$4.gray_900,
18981
+ color: styles$6.gray_900,
18421
18982
  fontSize: "13px",
18422
18983
  fontWeight: 600
18423
18984
  }
18424
18985
  }, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("td", {
18425
- className: styles$4["tdcolumn3"],
18986
+ className: styles$6["tdcolumn3"],
18426
18987
  style: {
18427
18988
  textAlign: "center",
18428
- color: styles$4.gray_700,
18989
+ color: styles$6.gray_700,
18429
18990
  fontSize: "13px",
18430
18991
  fontWeight: 500
18431
18992
  }
@@ -18434,7 +18995,7 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18434
18995
  }) : ""), React__default.createElement("td", {
18435
18996
  style: {
18436
18997
  textAlign: "center",
18437
- color: styles$4.gray_700,
18998
+ color: styles$6.gray_700,
18438
18999
  fontSize: "13px",
18439
19000
  fontWeight: 500
18440
19001
  }
@@ -18443,7 +19004,7 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18443
19004
  }) : ""), React__default.createElement("td", {
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
  }
@@ -18456,26 +19017,26 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18456
19017
  left: item.percentageAmongStudents + "%"
18457
19018
  };
18458
19019
  return React__default.createElement("div", {
18459
- className: styles$4["contentProblem"] + " " + printStyles["avoid-break-inside"],
19020
+ className: styles$6["contentProblem"] + " " + printStyles["avoid-break-inside"],
18460
19021
  key: item.id
18461
19022
  }, React__default.createElement("div", {
18462
- className: styles$4["labelProblem"]
19023
+ className: styles$6["labelProblem"]
18463
19024
  }, React__default.createElement("span", {
18464
- className: styles$4["name"]
19025
+ className: styles$6["name"]
18465
19026
  }, item.name), React__default.createElement("div", {
18466
- className: styles$4["percent"]
19027
+ className: styles$6["percent"]
18467
19028
  }, React__default.createElement("span", null, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("span", null, item.totalCorrectQuestions, "/", item.totalQuestions, t("problems")))), React__default.createElement("div", {
18468
- className: styles$4["slider"]
19029
+ className: styles$6["slider"]
18469
19030
  }, React__default.createElement("div", null, React__default.createElement("span", {
18470
- className: styles$4["track"],
19031
+ className: styles$6["track"],
18471
19032
  style: trackStyle
18472
19033
  }))));
18473
19034
  });
18474
19035
  };
18475
19036
  return React__default.createElement("div", {
18476
- className: "" + styles$4["wrapperProblem"]
19037
+ className: "" + styles$6["wrapperProblem"]
18477
19038
  }, React__default.createElement("div", {
18478
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19039
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
18479
19040
  onClick: function onClick() {
18480
19041
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : ProblemKey.GradesByTerritory);
18481
19042
  }
@@ -18487,14 +19048,14 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18487
19048
  }
18488
19049
  }, t("grades_by_area")), isOpen ? React__default.createElement(io5.IoChevronUp, {
18489
19050
  size: 24,
18490
- color: styles$4.gray_300
19051
+ color: styles$6.gray_300
18491
19052
  }) : React__default.createElement(io5.IoChevronDown, {
18492
19053
  size: 24,
18493
- color: styles$4.gray_300
19054
+ color: styles$6.gray_300
18494
19055
  })), isOpen && React__default.createElement(React.Fragment, null, formattedData.length ? React__default.createElement("div", {
18495
- className: styles$4["tableCompareGrass"]
19056
+ className: styles$6["tableCompareGrass"]
18496
19057
  }, React__default.createElement("div", {
18497
- className: styles$4["table-responsive"]
19058
+ className: styles$6["table-responsive"]
18498
19059
  }, isMyStoryStudent && React__default.createElement(material.Table, {
18499
19060
  style: {
18500
19061
  width: "100%",
@@ -18506,7 +19067,7 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18506
19067
  },
18507
19068
  className: "" + printStyles["avoid-break-inside"]
18508
19069
  }, React__default.createElement("tr", null, React__default.createElement("th", {
18509
- className: styles$4["thcolumn1"]
19070
+ className: styles$6["thcolumn1"]
18510
19071
  }, t("categories")), React__default.createElement("th", {
18511
19072
  style: {
18512
19073
  textAlign: "center"
@@ -18524,197 +19085,40 @@ var GradesByTerritory = function GradesByTerritory(_ref) {
18524
19085
  textAlign: "center"
18525
19086
  }
18526
19087
  }, t("total_solve_time")))), React__default.createElement("tbody", null, renderTableBody(formattedData))), !isMyStoryStudent && renderCategories(formattedData))) : React__default.createElement("div", {
18527
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
19088
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
18528
19089
  }, t("no_data"))));
18529
19090
  };
18530
19091
 
18531
- var iconWarning = function iconWarning(_ref) {
18532
- var _ref$width = _ref.width,
18533
- width = _ref$width === void 0 ? "17" : _ref$width,
18534
- _ref$height = _ref.height,
18535
- height = _ref$height === void 0 ? "16" : _ref$height,
18536
- color = _ref.color;
18537
- return React__default.createElement("svg", {
18538
- width: width,
18539
- height: height,
18540
- viewBox: "0 0 17 16",
18541
- fill: color,
18542
- xmlns: "http://www.w3.org/2000/svg"
18543
- }, React__default.createElement("path", {
18544
- 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",
18545
- fill: "#DB4D4D"
18546
- }));
18547
- };
18548
-
18549
- var schema$3 = yup.object().shape({
18550
- content: yup.string().required()
18551
- });
18552
19092
  function CreateNewQuestionDialog(_ref) {
18553
- var handleCreateQuestion = _ref.handleCreateQuestion,
19093
+ var _handleCreateQuestion = _ref.handleCreateQuestion,
18554
19094
  openCreateQuestionDialog = _ref.openCreateQuestionDialog,
18555
19095
  onCloseCreateQuestion = _ref.onCloseCreateQuestion,
18556
19096
  studentTextbookId = _ref.studentTextbookId,
18557
19097
  examSessionId = _ref.examSessionId,
18558
19098
  selectedQuestion = _ref.selectedQuestion,
18559
19099
  questionOptions = _ref.questionOptions;
18560
- var _useTranslation = reactI18next.useTranslation(),
18561
- t = _useTranslation.t;
18562
- var _useState = React.useState(false),
18563
- keyboardOpen = _useState[0],
18564
- setKeyboardOpen = _useState[1];
18565
- React.useEffect(function () {
18566
- var handleResize = function handleResize() {
18567
- if (window.innerHeight < window.outerHeight) {
18568
- setKeyboardOpen(true);
18569
- } else {
18570
- setKeyboardOpen(false);
18571
- }
18572
- };
18573
- window.addEventListener("resize", handleResize);
18574
- handleResize();
18575
- return function () {
18576
- return window.removeEventListener("resize", handleResize);
18577
- };
18578
- }, []);
18579
- return React__default.createElement(material.Dialog, {
18580
- onClose: onCloseCreateQuestion,
18581
- open: openCreateQuestionDialog,
18582
- PaperProps: {
18583
- sx: {
18584
- minWidth: "363px",
18585
- overflowY: "unset",
18586
- position: "relative",
18587
- bottom: keyboardOpen ? "0" : undefined,
18588
- transition: "top 0.3s ease"
18589
- }
18590
- }
18591
- }, React__default.createElement(DialogTitle, {
18592
- id: "customized-dialog-title"
18593
- }, React__default.createElement(Typography, {
18594
- fontWeight: 700,
18595
- fontSize: "16px",
18596
- lineHeight: "19.09px",
18597
- color: "#202B37"
18598
- }, t("ask_a_question"))), React__default.createElement(IconButton, {
18599
- "aria-label": "close",
18600
- sx: {
18601
- position: "absolute",
18602
- right: 8,
18603
- top: 8,
18604
- color: function color(theme) {
18605
- return theme.palette.grey[500];
18606
- }
18607
- },
18608
- onClick: onCloseCreateQuestion
18609
- }, React__default.createElement(iconCloseDialog, null)), React__default.createElement(formik.Formik, {
18610
- initialValues: {
18611
- content: "",
18612
- questionId: (selectedQuestion === null || selectedQuestion === void 0 ? void 0 : selectedQuestion.id) || 0
18613
- },
18614
- validationSchema: schema$3,
18615
- onSubmit: function onSubmit(values) {
18616
- handleCreateQuestion(_extends({}, values, {
19100
+ var schema = yup.object().shape({
19101
+ content: yup.string().required()
19102
+ });
19103
+ var initialValues = {
19104
+ content: "",
19105
+ questionId: (selectedQuestion === null || selectedQuestion === void 0 ? void 0 : selectedQuestion.id) || 0
19106
+ };
19107
+ return React__default.createElement(CommonCreateNewQuestionDialog, {
19108
+ handleCreateQuestion: function handleCreateQuestion(values) {
19109
+ return _handleCreateQuestion(_extends({}, values, {
18617
19110
  examSessionId: examSessionId,
18618
19111
  studentTextbookId: studentTextbookId
18619
19112
  }));
18620
- }
18621
- }, function (_ref2) {
18622
- var values = _ref2.values,
18623
- errors = _ref2.errors,
18624
- setFieldValue = _ref2.setFieldValue;
18625
- return React__default.createElement(formik.Form, null, React__default.createElement(DialogContent, {
18626
- sx: {
18627
- padding: 0,
18628
- overflowY: "auto"
18629
- }
18630
- }, React__default.createElement(material.Box, {
18631
- display: "flex",
18632
- flexDirection: "column",
18633
- gap: "8px",
18634
- padding: "24px 24px 40px 24px"
18635
- }, React__default.createElement(material.Stack, null, React__default.createElement("label", {
18636
- htmlFor: "questions",
18637
- className: styles["form-label"] + " " + styles$4["form-label-dialog"]
18638
- }, t("questions_to_ask")), React__default.createElement(formik.Field, {
18639
- id: "questions",
18640
- name: "questionId",
18641
- render: function render(_ref3) {
18642
- var field = _ref3.field;
18643
- return React__default.createElement(CustomSelect, Object.assign({}, field, {
18644
- id: "questions",
18645
- menuPlacement: "bottom",
18646
- options: questionOptions,
18647
- onChange: function onChange(_ref4) {
18648
- var value = _ref4.value;
18649
- return setFieldValue("questionId", value);
18650
- },
18651
- isClearable: false
18652
- }));
18653
- }
18654
- })), React__default.createElement(material.Stack, null, React__default.createElement("label", {
18655
- htmlFor: "content-question",
18656
- className: styles["form-label"] + " " + styles$4["form-label-dialog"]
18657
- }, t("question_content")), React__default.createElement(material.Box, {
18658
- position: "relative",
18659
- display: "flex",
18660
- flexDirection: "row",
18661
- alignItems: "center"
18662
- }, React__default.createElement(formik.Field, {
18663
- as: "textarea",
18664
- rows: 3,
18665
- id: "content-question",
18666
- style: {
18667
- paddingRight: "40px"
18668
- },
18669
- name: "content",
18670
- placeholder: t("the_problem_is_difficult"),
18671
- className: styles["form-control"]
18672
- }), (errors === null || errors === void 0 ? void 0 : errors.content) && React__default.createElement(material.Box, {
18673
- position: "absolute",
18674
- right: 0,
18675
- padding: "0 12px",
18676
- display: "flex",
18677
- alignItems: "center"
18678
- }, React__default.createElement(iconWarning, null))), React__default.createElement(material.Box, {
18679
- marginBottom: "4px"
18680
- }), React__default.createElement(Typography, {
18681
- fontWeight: 500,
18682
- fontSize: "10px",
18683
- lineHeight: "11.93px",
18684
- color: !(errors !== null && errors !== void 0 && errors.content) ? "#97A1AF" : styles$4.red_900
18685
- }, !(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, {
18686
- sx: {
18687
- display: "flex",
18688
- justifyContent: "space-between",
18689
- alignItems: "center",
18690
- padding: "12px",
18691
- borderTop: "1px solid #CED2DA"
18692
- }
18693
- }, React__default.createElement(MButton, {
18694
- className: styles$4["btn-cancel"],
18695
- onClick: onCloseCreateQuestion
18696
- }, React__default.createElement(Typography, {
18697
- sx: {
18698
- color: styles.dark + " !important"
18699
- },
18700
- fontWeight: 700,
18701
- fontSize: "14px",
18702
- lineHeight: "16.71px"
18703
- }, t("cancel"))), React__default.createElement(MButton, {
18704
- variant: "contained",
18705
- sx: {
18706
- bgcolor: styles.dark
18707
- },
18708
- className: styles$4["btn-register"],
18709
- type: "submit",
18710
- disabled: !values.content.trim().length
18711
- }, React__default.createElement(Typography, {
18712
- fontWeight: 700,
18713
- fontSize: "14px",
18714
- lineHeight: "16.71px",
18715
- color: "#FFFFFF"
18716
- }, t("registration")))));
18717
- }));
19113
+ },
19114
+ nameContent: "content",
19115
+ nameQuestion: "questionId",
19116
+ openDialog: openCreateQuestionDialog,
19117
+ onClose: onCloseCreateQuestion,
19118
+ options: questionOptions,
19119
+ schema: schema,
19120
+ initialValues: initialValues
19121
+ });
18718
19122
  }
18719
19123
 
18720
19124
  var _excluded$8 = ["children", "value", "index"];
@@ -18761,18 +19165,18 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
18761
19165
  color: "#414E62"
18762
19166
  }
18763
19167
  }, t("article_number"), " ", timelyOrderQuestion.article), React__default.createElement("div", {
18764
- className: styles$4["compareChart"] + " " + printStyles["avoid-break-inside"]
19168
+ className: styles$6["compareChart"] + " " + printStyles["avoid-break-inside"]
18765
19169
  }, React__default.createElement("div", {
18766
- className: "" + styles$4["prevChart"]
19170
+ className: "" + styles$6["prevChart"]
18767
19171
  }), React__default.createElement("div", {
18768
- className: styles$4["chart"] + " sr-line-chart"
19172
+ className: styles$6["chart"] + " sr-line-chart"
18769
19173
  }, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
18770
19174
  ref: chartRef,
18771
19175
  height: 389,
18772
19176
  options: chartOptions,
18773
19177
  series: series
18774
19178
  }))), React__default.createElement("div", {
18775
- className: "" + styles$4["nextChart"]
19179
+ className: "" + styles$6["nextChart"]
18776
19180
  })));
18777
19181
  };
18778
19182
 
@@ -18811,7 +19215,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18811
19215
  },
18812
19216
  key: data.id
18813
19217
  }, React__default.createElement("div", {
18814
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
19218
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
18815
19219
  }, React__default.createElement("div", {
18816
19220
  className: styles["custom-col-2"],
18817
19221
  style: {
@@ -18821,7 +19225,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18821
19225
  padding: "5px 8px"
18822
19226
  }
18823
19227
  }, data.isStar ? React__default.createElement(iconStarQuestion, null) : React__default.createElement(iconNoStarQuestion, null), React__default.createElement("span", {
18824
- className: styles$4["questionOrder"]
19228
+ className: styles$6["questionOrder"]
18825
19229
  }, t("number_question", {
18826
19230
  number: data.questionOrder + 1
18827
19231
  }))), React__default.createElement("div", {
@@ -18832,11 +19236,11 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18832
19236
  gap: "4px"
18833
19237
  }
18834
19238
  }, 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(React.Fragment, null, React__default.createElement(iconCorrectAnswer, null), React__default.createElement("span", {
18835
- className: styles$4["answerCorrect"]
19239
+ className: styles$6["answerCorrect"]
18836
19240
  }, 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(React.Fragment, null, React__default.createElement(iconCorrectAnswer$1, null), React__default.createElement("span", {
18837
- className: styles$4["answerIncorrect"]
19241
+ className: styles$6["answerIncorrect"]
18838
19242
  }, 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(React.Fragment, null, React__default.createElement(iconNoGrass, null), React__default.createElement("span", {
18839
- className: styles$4["answerNograss"]
19243
+ className: styles$6["answerNograss"]
18840
19244
  }, t("no_solution")))), React__default.createElement("div", {
18841
19245
  className: styles["custom-col-2"],
18842
19246
  style: {
@@ -18847,12 +19251,12 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18847
19251
  style: {
18848
19252
  margin: 0
18849
19253
  },
18850
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
19254
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
18851
19255
  }, formatTimeSecond(Math.round(data.duration), t)) : React__default.createElement("p", {
18852
19256
  style: {
18853
19257
  margin: 0
18854
19258
  },
18855
- className: styles$4["answerNoTime"]
19259
+ className: styles$6["answerNoTime"]
18856
19260
  }, t("no_time"))), React__default.createElement("div", {
18857
19261
  className: styles["custom-col-2"],
18858
19262
  style: {
@@ -18863,13 +19267,13 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18863
19267
  style: {
18864
19268
  margin: 0
18865
19269
  },
18866
- className: styles$4["answer-response"] + " " + styles$4["answer-response-" + data.answerResponseSignal]
19270
+ className: styles$6["answer-response"] + " " + styles$6["answer-response-" + data.answerResponseSignal]
18867
19271
  }, formatTimeDiff(data.duration, data.topDuration, t)) : React__default.createElement("p", {
18868
19272
  style: {
18869
19273
  margin: 0,
18870
19274
  textAlign: "center"
18871
19275
  },
18872
- className: styles$4["answerNoTime"]
19276
+ className: styles$6["answerNoTime"]
18873
19277
  }, "-")), React__default.createElement("div", {
18874
19278
  className: styles["custom-col-2"],
18875
19279
  style: {
@@ -18880,12 +19284,12 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
18880
19284
  style: {
18881
19285
  margin: 0
18882
19286
  },
18883
- className: styles$4["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$4)
19287
+ className: styles$6["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$6)
18884
19288
  }, data.overallCorrectRate.toFixed(2) + "%") : React__default.createElement("p", {
18885
19289
  style: {
18886
19290
  margin: 0
18887
19291
  },
18888
- className: styles$4["answerNoTime"]
19292
+ className: styles$6["answerNoTime"]
18889
19293
  }, t("no_time"))), isStudent && !isLearningSpace && React__default.createElement(material.Box, {
18890
19294
  className: styles["custom-col-2"]
18891
19295
  }, openContextMenu ? React__default.createElement(material.ClickAwayListener, {
@@ -18957,7 +19361,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18957
19361
  }));
18958
19362
  };
18959
19363
  return React__default.createElement("div", {
18960
- className: "" + styles$4["myanswer"]
19364
+ className: "" + styles$6["myanswer"]
18961
19365
  }, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
18962
19366
  var _item$categories;
18963
19367
  return React__default.createElement("div", {
@@ -18968,7 +19372,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
18968
19372
  bgcolor: "#F9FAFB",
18969
19373
  flexDirection: "row",
18970
19374
  padding: "12px",
18971
- className: styles$4["myAnswerItem"] + " " + styles["noGutters"]
19375
+ className: styles$6["myAnswerItem"] + " " + styles["noGutters"]
18972
19376
  }, React__default.createElement("div", {
18973
19377
  className: styles["custom-col-2"],
18974
19378
  style: {
@@ -19047,7 +19451,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
19047
19451
  alignItems: "center"
19048
19452
  }
19049
19453
  }, t("total_correct_rate")))), React__default.createElement("div", {
19050
- className: styles$4["titleMyAnswer2"]
19454
+ className: styles$6["titleMyAnswer2"]
19051
19455
  }, React__default.createElement(material.Typography, {
19052
19456
  sx: {
19053
19457
  color: "#97A1AF",
@@ -19062,7 +19466,7 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
19062
19466
  }, (_item$categories = item.categories) === null || _item$categories === void 0 ? void 0 : _item$categories.map(function (i) {
19063
19467
  return i.name;
19064
19468
  }).join(" / ")))), React__default.createElement("div", {
19065
- className: styles$4["contentMyAnswer"]
19469
+ className: styles$6["contentMyAnswer"]
19066
19470
  }, React__default.createElement(ListView, {
19067
19471
  data: item.questions,
19068
19472
  render: function render(question, index) {
@@ -19092,24 +19496,24 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19092
19496
  borderBottom: index < (data === null || data === void 0 ? void 0 : data.length) - 1 ? "1px solid #e4e7ec" : undefined
19093
19497
  }
19094
19498
  }, React__default.createElement("td", {
19095
- className: styles$4["tdcolumn1"],
19499
+ className: styles$6["tdcolumn1"],
19096
19500
  style: {
19097
- color: styles$4.gray_900,
19501
+ color: styles$6.gray_900,
19098
19502
  fontSize: "13px",
19099
19503
  fontWeight: 600
19100
19504
  }
19101
19505
  }, item.name), React__default.createElement("td", {
19102
19506
  style: {
19103
19507
  textAlign: "center",
19104
- color: styles$4.gray_900,
19508
+ color: styles$6.gray_900,
19105
19509
  fontSize: "13px",
19106
19510
  fontWeight: 600
19107
19511
  }
19108
19512
  }, item.percentageAmongStudents.toFixed(2), "%"), React__default.createElement("td", {
19109
- className: styles$4["tdcolumn3"],
19513
+ className: styles$6["tdcolumn3"],
19110
19514
  style: {
19111
19515
  textAlign: "center",
19112
- color: styles$4.gray_700,
19516
+ color: styles$6.gray_700,
19113
19517
  fontSize: "13px",
19114
19518
  fontWeight: 500
19115
19519
  }
@@ -19118,7 +19522,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19118
19522
  }) : ""), React__default.createElement("td", {
19119
19523
  style: {
19120
19524
  textAlign: "center",
19121
- color: styles$4.gray_700,
19525
+ color: styles$6.gray_700,
19122
19526
  fontSize: "13px",
19123
19527
  fontWeight: 500
19124
19528
  }
@@ -19127,7 +19531,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19127
19531
  }) : ""), React__default.createElement("td", {
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
  }
@@ -19141,26 +19545,26 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19141
19545
  left: item.percentageAmongStudents + "%"
19142
19546
  };
19143
19547
  return React__default.createElement("div", {
19144
- className: styles$4["contentProblem"] + " " + printStyles["avoid-break-inside"],
19548
+ className: styles$6["contentProblem"] + " " + printStyles["avoid-break-inside"],
19145
19549
  key: item.id
19146
19550
  }, React__default.createElement("div", {
19147
- className: styles$4["labelProblem"]
19551
+ className: styles$6["labelProblem"]
19148
19552
  }, React__default.createElement("span", {
19149
- className: styles$4["name"]
19553
+ className: styles$6["name"]
19150
19554
  }, item.name), React__default.createElement("div", {
19151
- className: styles$4["percent"]
19555
+ className: styles$6["percent"]
19152
19556
  }, 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", {
19153
- className: styles$4["slider"]
19557
+ className: styles$6["slider"]
19154
19558
  }, React__default.createElement("div", null, React__default.createElement("span", {
19155
- className: styles$4["track"],
19559
+ className: styles$6["track"],
19156
19560
  style: trackStyle
19157
19561
  }))));
19158
19562
  });
19159
19563
  };
19160
19564
  return React__default.createElement("div", {
19161
- className: "" + styles$4["wrapperProblem"]
19565
+ className: "" + styles$6["wrapperProblem"]
19162
19566
  }, React__default.createElement("div", {
19163
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19567
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
19164
19568
  onClick: function onClick() {
19165
19569
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : ProblemKey.GradesByTerritory);
19166
19570
  }
@@ -19172,14 +19576,14 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19172
19576
  }
19173
19577
  }, t("grades_by_area")), isOpen ? React__default.createElement(io5.IoChevronUp, {
19174
19578
  size: 24,
19175
- color: styles$4.gray_300
19579
+ color: styles$6.gray_300
19176
19580
  }) : React__default.createElement(io5.IoChevronDown, {
19177
19581
  size: 24,
19178
- color: styles$4.gray_300
19582
+ color: styles$6.gray_300
19179
19583
  })), isOpen && React__default.createElement(React.Fragment, null, formattedData.length ? React__default.createElement("div", {
19180
- className: styles$4["tableCompareGrass"]
19584
+ className: styles$6["tableCompareGrass"]
19181
19585
  }, React__default.createElement("div", {
19182
- className: styles$4["table-responsive"]
19586
+ className: styles$6["table-responsive"]
19183
19587
  }, isMyStoryStudent && React__default.createElement(material.Table, {
19184
19588
  style: {
19185
19589
  width: "100%",
@@ -19191,7 +19595,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19191
19595
  },
19192
19596
  className: "" + printStyles["avoid-break-inside"]
19193
19597
  }, React__default.createElement("tr", null, React__default.createElement("th", {
19194
- className: styles$4["thcolumn1"]
19598
+ className: styles$6["thcolumn1"]
19195
19599
  }, t("categories")), React__default.createElement("th", {
19196
19600
  style: {
19197
19601
  textAlign: "center"
@@ -19209,7 +19613,7 @@ var TextbookGradesByTerritory = function TextbookGradesByTerritory(_ref) {
19209
19613
  textAlign: "center"
19210
19614
  }
19211
19615
  }, t("total_solve_time")))), React__default.createElement("tbody", null, renderTableBody(formattedData))), !isMyStoryStudent && renderCategories(formattedData))) : React__default.createElement("div", {
19212
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
19616
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
19213
19617
  }, t("no_data"))));
19214
19618
  };
19215
19619
 
@@ -19282,39 +19686,39 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19282
19686
  borderBottom: index < (data === null || data === void 0 ? void 0 : data.length) - 1 ? "1px solid #e4e7ec" : undefined
19283
19687
  }
19284
19688
  }, React__default.createElement("td", {
19285
- className: styles$4["tdcolumn1"],
19689
+ className: styles$6["tdcolumn1"],
19286
19690
  style: {
19287
- color: styles$4.gray_900,
19691
+ color: styles$6.gray_900,
19288
19692
  fontSize: "13px",
19289
19693
  fontWeight: 600
19290
19694
  }
19291
19695
  }, React__default.createElement(material.Typography, {
19292
- color: styles$4.gray_900,
19696
+ color: styles$6.gray_900,
19293
19697
  fontSize: "13px",
19294
19698
  fontWeight: 600
19295
19699
  }, t("problem") + " " + (item.questionOrder + 1))), React__default.createElement("td", {
19296
19700
  style: {
19297
19701
  textAlign: "center",
19298
- color: styles$4.dark,
19702
+ color: styles$6.dark,
19299
19703
  fontSize: "13px",
19300
19704
  fontWeight: 600
19301
19705
  }
19302
19706
  }, item.overallCorrectRate.toFixed(2) ? item.overallCorrectRate.toFixed(2) + "%" : ""), React__default.createElement("td", {
19303
- className: styles$4["tdcolumn3"],
19707
+ className: styles$6["tdcolumn3"],
19304
19708
  style: {
19305
- color: styles$4.red_900,
19709
+ color: styles$6.red_900,
19306
19710
  fontSize: "13px",
19307
19711
  fontWeight: 500
19308
19712
  }
19309
19713
  }, typeof item.selectedAnswers === "string" ? renderAnswer(item.questionAnswerType, item.selectedAnswers) : renderTextbookAnswer(item.questionAnswerType, item.selectedAnswers, item.textualAnswers)), React__default.createElement("td", {
19310
19714
  style: {
19311
19715
  textAlign: "center",
19312
- color: styles$4.gray_700
19716
+ color: styles$6.gray_700
19313
19717
  }
19314
19718
  }, typeof item.correctAnswers === "string" ? renderAnswer(item.questionAnswerType, item.correctAnswers) : renderTextbookAnswer(item.questionAnswerType, item.correctAnswers, item.correctTextualAnswers, true)), React__default.createElement("td", {
19315
19719
  style: {
19316
19720
  textAlign: "center",
19317
- color: styles$4.gray_700
19721
+ color: styles$6.gray_700
19318
19722
  }
19319
19723
  }, item.categories ? item.categories.map(function (i) {
19320
19724
  return i.name;
@@ -19326,31 +19730,31 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19326
19730
  return React__default.createElement(material.Grid, {
19327
19731
  container: true,
19328
19732
  flexWrap: "nowrap",
19329
- className: styles$4["content"] + " " + printStyles["avoid-break-inside"],
19733
+ className: styles$6["content"] + " " + printStyles["avoid-break-inside"],
19330
19734
  key: question.id
19331
19735
  }, React__default.createElement(material.Grid, {
19332
19736
  item: true,
19333
19737
  xs: 1.5,
19334
19738
  minWidth: "120px",
19335
- className: styles$4["contentColumn1"]
19739
+ className: styles$6["contentColumn1"]
19336
19740
  }, React__default.createElement("div", null, React__default.createElement("span", {
19337
- className: styles$4["span1"]
19741
+ className: styles$6["span1"]
19338
19742
  }, t("problem_number")), React__default.createElement("span", {
19339
- className: styles$4["span2"]
19743
+ className: styles$6["span2"]
19340
19744
  }, t("number_question", {
19341
19745
  number: question.questionOrder + 1
19342
19746
  })))), React__default.createElement(material.Grid, {
19343
19747
  item: true,
19344
19748
  xs: 10.5,
19345
- className: styles$4["contentColumn2"]
19749
+ className: styles$6["contentColumn2"]
19346
19750
  }, React__default.createElement("div", null, React__default.createElement("span", {
19347
- className: styles$4["span1"]
19751
+ className: styles$6["span1"]
19348
19752
  }, t("total_correct_rate")), React__default.createElement("span", {
19349
- className: styles$4["span2"]
19753
+ className: styles$6["span2"]
19350
19754
  }, t("my_wrong_answer"))), React__default.createElement("div", null, React__default.createElement("span", {
19351
- className: styles$4["overallCorrectRate"]
19755
+ className: styles$6["overallCorrectRate"]
19352
19756
  }, question.overallCorrectRate.toFixed(2), "%"), React__default.createElement("span", {
19353
- className: styles$4["answer"]
19757
+ className: styles$6["answer"]
19354
19758
  }, 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)))));
19355
19759
  });
19356
19760
  };
@@ -19358,9 +19762,9 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19358
19762
  changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
19359
19763
  };
19360
19764
  return React__default.createElement("div", {
19361
- className: "" + styles$4["wrapperProblem"]
19765
+ className: "" + styles$6["wrapperProblem"]
19362
19766
  }, React__default.createElement("div", {
19363
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19767
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
19364
19768
  onClick: handleToggle
19365
19769
  }, React__default.createElement(material.Stack, {
19366
19770
  flexDirection: "row",
@@ -19374,20 +19778,20 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19374
19778
  }
19375
19779
  }, t("issues_vulnerable")), React__default.createElement(material.Typography, {
19376
19780
  sx: {
19377
- color: styles$4.gray_300,
19781
+ color: styles$6.gray_300,
19378
19782
  fontSize: "11px",
19379
19783
  fontWeight: 500
19380
19784
  }
19381
19785
  }, t("vulnerable_detail"))), isOpen ? React__default.createElement(io5.IoChevronUp, {
19382
19786
  size: 24,
19383
- color: styles$4.gray_300
19787
+ color: styles$6.gray_300
19384
19788
  }) : React__default.createElement(io5.IoChevronDown, {
19385
19789
  size: 24,
19386
- color: styles$4.gray_300
19790
+ color: styles$6.gray_300
19387
19791
  })), isOpen && React__default.createElement(React.Fragment, null, incorrectQuestions !== null && incorrectQuestions !== void 0 && incorrectQuestions.length ? React__default.createElement("div", {
19388
- className: styles$4["tableCompareGrass"]
19792
+ className: styles$6["tableCompareGrass"]
19389
19793
  }, React__default.createElement("div", {
19390
- className: styles$4["table-responsive"]
19794
+ className: styles$6["table-responsive"]
19391
19795
  }, isMyStoryStudent && React__default.createElement(material.Table, {
19392
19796
  style: {
19393
19797
  width: "100%",
@@ -19399,7 +19803,7 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19399
19803
  },
19400
19804
  className: "" + printStyles["avoid-break-inside"]
19401
19805
  }, React__default.createElement("tr", null, React__default.createElement("th", {
19402
- className: styles$4["thcolumn1"]
19806
+ className: styles$6["thcolumn1"]
19403
19807
  }, t("problem_number")), React__default.createElement("th", {
19404
19808
  style: {
19405
19809
  textAlign: "center"
@@ -19417,7 +19821,7 @@ var TextbookVulnerable = function TextbookVulnerable(_ref) {
19417
19821
  textAlign: "center"
19418
19822
  }
19419
19823
  }, t("_category")))), React__default.createElement("tbody", null, renderTableBody(incorrectQuestions))), !isMyStoryStudent && renderQuestions(incorrectQuestions))) : React__default.createElement("div", {
19420
- className: styles$4["noData"] + " " + printStyles["avoid-break-inside"]
19824
+ className: styles$6["noData"] + " " + printStyles["avoid-break-inside"]
19421
19825
  }, t("no_data"))));
19422
19826
  };
19423
19827
 
@@ -19437,37 +19841,37 @@ var TextbookTrickyProblem = function TextbookTrickyProblem(_ref) {
19437
19841
  });
19438
19842
  var renderProblems = function renderProblems() {
19439
19843
  return React__default.createElement(React.Fragment, null, React__default.createElement("div", {
19440
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19844
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19441
19845
  }, React__default.createElement(iconX, null), React__default.createElement("span", null, t("incorrect_problem_among_the_starred_problems"))), React__default.createElement("div", {
19442
- className: styles$4["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
19846
+ className: styles$6["wrongQuestions"] + " " + printStyles["avoid-break-inside"]
19443
19847
  }, !!(inCorrectQuestions !== null && inCorrectQuestions !== void 0 && inCorrectQuestions.length) && (inCorrectQuestions === null || inCorrectQuestions === void 0 ? void 0 : inCorrectQuestions.map(function (question) {
19444
19848
  return React__default.createElement("span", {
19445
19849
  key: question.id,
19446
- className: styles$4["question"]
19850
+ className: styles$6["question"]
19447
19851
  }, t("number_question", {
19448
19852
  number: question.questionOrder + 1
19449
19853
  }));
19450
19854
  })), !(data !== null && data !== void 0 && data.studentQuestionResults.length) && React__default.createElement("div", {
19451
- className: styles$4["noData"]
19855
+ className: styles$6["noData"]
19452
19856
  }, t("no_data"))), React__default.createElement("div", {
19453
- className: styles$4["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19857
+ className: styles$6["titleTrickyProblem"] + " " + printStyles["avoid-break-inside"]
19454
19858
  }, React__default.createElement(iconAssignedQuestions, null), React__default.createElement("span", null, t("correct_problem_among_the_starred_problems"))), React__default.createElement("div", {
19455
- className: styles$4["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
19859
+ className: styles$6["assignedQuestions"] + " " + printStyles["avoid-break-inside"]
19456
19860
  }, !!(correctQuestions !== null && correctQuestions !== void 0 && correctQuestions.length) && (correctQuestions === null || correctQuestions === void 0 ? void 0 : correctQuestions.map(function (question) {
19457
19861
  return React__default.createElement("div", {
19458
19862
  key: question.id,
19459
- className: styles$4["question"]
19863
+ className: styles$6["question"]
19460
19864
  }, t("number_question", {
19461
19865
  number: question.questionOrder + 1
19462
19866
  }));
19463
19867
  })), !(data !== null && data !== void 0 && data.studentQuestionResults.length) && React__default.createElement("div", {
19464
- className: styles$4["noData"]
19868
+ className: styles$6["noData"]
19465
19869
  }, t("no_data"))));
19466
19870
  };
19467
19871
  return React__default.createElement("div", {
19468
- className: "" + styles$4["wrapperProblem"]
19872
+ className: "" + styles$6["wrapperProblem"]
19469
19873
  }, React__default.createElement("div", {
19470
- className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$4["titleProblemClose"] : styles$4["titleProblem"]),
19874
+ className: printStyles["avoid-break-inside"] + " " + (!isOpen ? styles$6["titleProblemClose"] : styles$6["titleProblem"]),
19471
19875
  onClick: function onClick() {
19472
19876
  return changeOpen === null || changeOpen === void 0 ? void 0 : changeOpen(isOpen ? undefined : keyOpen);
19473
19877
  }
@@ -19479,10 +19883,10 @@ var TextbookTrickyProblem = function TextbookTrickyProblem(_ref) {
19479
19883
  }
19480
19884
  }, t("tricky_problems")), isOpen ? React__default.createElement(io5.IoChevronUp, {
19481
19885
  size: 24,
19482
- color: styles$4.gray_300
19886
+ color: styles$6.gray_300
19483
19887
  }) : React__default.createElement(io5.IoChevronDown, {
19484
19888
  size: 24,
19485
- color: styles$4.gray_300
19889
+ color: styles$6.gray_300
19486
19890
  })), isOpen && React__default.createElement(React.Fragment, null, renderProblems()));
19487
19891
  };
19488
19892
 
@@ -19904,7 +20308,8 @@ var useExamResultData = function useExamResultData(props) {
19904
20308
  handleChangeTab = props.handleChangeTab,
19905
20309
  selectedTab = props.selectedTab,
19906
20310
  isPrint = props.isPrint,
19907
- chapterId = props.chapterId;
20311
+ chapterId = props.chapterId,
20312
+ onLoadingChange = props.onLoadingChange;
19908
20313
  var query = new URLSearchParams(searchParams);
19909
20314
  var user = reactRedux.useSelector(function (state) {
19910
20315
  var _state$common;
@@ -19961,9 +20366,11 @@ var useExamResultData = function useExamResultData(props) {
19961
20366
  try {
19962
20367
  var _temp2 = function _temp2() {
19963
20368
  setIsLoading(false);
20369
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(false);
19964
20370
  };
19965
20371
  if (!examCode) return Promise.resolve();
19966
20372
  setIsLoading(true);
20373
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(true);
19967
20374
  var _temp = _catch(function () {
19968
20375
  return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
19969
20376
  var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
@@ -19989,9 +20396,11 @@ var useExamResultData = function useExamResultData(props) {
19989
20396
  try {
19990
20397
  var _temp5 = function _temp5() {
19991
20398
  setIsLoading(false);
20399
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(false);
19992
20400
  };
19993
20401
  if (!examSessionId || !studentId) return Promise.resolve();
19994
20402
  setIsLoading(true);
20403
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(true);
19995
20404
  var _temp4 = _catch(function () {
19996
20405
  return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
19997
20406
  var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
@@ -20031,10 +20440,12 @@ var useExamResultData = function useExamResultData(props) {
20031
20440
  try {
20032
20441
  var _temp7 = function _temp7() {
20033
20442
  setIsLoading(false);
20443
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(false);
20034
20444
  };
20035
20445
  if (!chapterId) return Promise.resolve();
20036
20446
  if (!isStudent && !studentId) return Promise.resolve();
20037
20447
  setIsLoading(true);
20448
+ onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(true);
20038
20449
  var _temp6 = _catch(function () {
20039
20450
  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) {
20040
20451
  var _result$0$data3, _result$1$data3, _result$2$data3, _result$3$data3, _result$4$data3;
@@ -20200,7 +20611,7 @@ var useExamResultData = function useExamResultData(props) {
20200
20611
  }
20201
20612
  }
20202
20613
  }),
20203
- colors: [styles$4.dark, styles$4.purple_900],
20614
+ colors: [styles$6.dark, styles$6.purple_900],
20204
20615
  xaxis: _extends({}, DEFAULT_LINE_CHART_OPTIONS.xaxis, {
20205
20616
  categories: ["s"].concat(Array.from({
20206
20617
  length: questionLength
@@ -20660,7 +21071,8 @@ var useExamResult = function useExamResult(props) {
20660
21071
  studentId = _props$studentId === void 0 ? 0 : _props$studentId,
20661
21072
  code = props.code,
20662
21073
  chapterId = props.chapterId,
20663
- onViewQA = props.onViewQA;
21074
+ onViewQA = props.onViewQA,
21075
+ onLoadingChange = props.onLoadingChange;
20664
21076
  var _useTranslation = reactI18next.useTranslation(),
20665
21077
  t = _useTranslation.t;
20666
21078
  var _useTab = useTab(),
@@ -20674,7 +21086,8 @@ var useExamResult = function useExamResult(props) {
20674
21086
  code: code,
20675
21087
  chapterId: chapterId,
20676
21088
  handleChangeTab: handleChangeTab,
20677
- selectedTab: selected
21089
+ selectedTab: selected,
21090
+ onLoadingChange: onLoadingChange
20678
21091
  });
20679
21092
  var isLoading = examResultData.isLoading,
20680
21093
  timelyOrderQuestions = examResultData.timelyOrderQuestions,
@@ -20741,7 +21154,9 @@ var ExamResultV2 = function ExamResultV2(props) {
20741
21154
  isMyStoryStudent = props.isMyStoryStudent,
20742
21155
  onViewQA = props.onViewQA,
20743
21156
  chapterId = props.chapterId,
20744
- studentId = props.studentId;
21157
+ studentId = props.studentId,
21158
+ _props$showLoading = props.showLoading,
21159
+ showLoading = _props$showLoading === void 0 ? true : _props$showLoading;
20745
21160
  var isAdminSite = role === exports.Role.Admin;
20746
21161
  var _useExamResult = useExamResult(props),
20747
21162
  t = _useExamResult.t,
@@ -20894,7 +21309,7 @@ var ExamResultV2 = function ExamResultV2(props) {
20894
21309
  onViewQA === null || onViewQA === void 0 ? void 0 : onViewQA(resultData.student.id, resultData.examSessionId);
20895
21310
  };
20896
21311
  return React__default.createElement(React.Fragment, null, React__default.createElement(LoadingComponent, {
20897
- isLoading: !!isLoading
21312
+ isLoading: showLoading && !!isLoading
20898
21313
  }), timelyOrderQuestions[dataChartIndex] && longTimeSpend && effectSize ? React__default.createElement("div", {
20899
21314
  style: {
20900
21315
  width: "100%"
@@ -21207,18 +21622,18 @@ var ExamResultV2 = function ExamResultV2(props) {
21207
21622
  value: selected,
21208
21623
  index: 1
21209
21624
  }, React__default.createElement("div", {
21210
- className: styles$4["compareChart"]
21625
+ className: styles$6["compareChart"]
21211
21626
  }, React__default.createElement("div", {
21212
- className: styles$4["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
21627
+ className: styles$6["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
21213
21628
  onClick: handlePrevChart
21214
21629
  }, React__default.createElement(iconBtnPrevChart, null)), React__default.createElement("div", {
21215
- className: styles$4["chart"] + " sr-line-chart"
21630
+ className: styles$6["chart"] + " sr-line-chart"
21216
21631
  }, React__default.createElement("div", null, React__default.createElement(ReactApexChart, {
21217
21632
  height: 389,
21218
21633
  options: chartOptions,
21219
21634
  series: series
21220
21635
  }))), React__default.createElement("div", {
21221
- className: styles$4["nextChart"] + " " + (dataChartIndex < timelyOrderQuestions.length - 1 && "pointer"),
21636
+ className: styles$6["nextChart"] + " " + (dataChartIndex < timelyOrderQuestions.length - 1 && "pointer"),
21222
21637
  onClick: handleNextChart
21223
21638
  }, React__default.createElement(iconBtnNextChart, null)))), React__default.createElement(CustomTabPanel, {
21224
21639
  value: selected,
@@ -21412,13 +21827,13 @@ var LoadingDots = function LoadingDots(_ref) {
21412
21827
  color: "#FFF",
21413
21828
  fontSize: 20
21414
21829
  }, text), React__default.createElement("div", {
21415
- className: styles$4["loader"]
21830
+ className: styles$6["loader"]
21416
21831
  }, React__default.createElement("div", {
21417
- className: styles$4["dot"]
21832
+ className: styles$6["dot"]
21418
21833
  }), React__default.createElement("div", {
21419
- className: styles$4["dot"]
21834
+ className: styles$6["dot"]
21420
21835
  }), React__default.createElement("div", {
21421
- className: styles$4["dot"]
21836
+ className: styles$6["dot"]
21422
21837
  })));
21423
21838
  };
21424
21839
 
@@ -22260,7 +22675,7 @@ var usePreparedExam = function usePreparedExam(_ref) {
22260
22675
  };
22261
22676
  };
22262
22677
 
22263
- 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"};
22678
+ 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"};
22264
22679
 
22265
22680
  var ResetFilterDialog = function ResetFilterDialog(_ref) {
22266
22681
  var t = _ref.t,
@@ -22324,7 +22739,7 @@ var ResetFilterDialog = function ResetFilterDialog(_ref) {
22324
22739
  borderTop: "1px solid #CED2DA"
22325
22740
  }
22326
22741
  }, React__default.createElement(material.Button, {
22327
- className: styles$5["btn-cancel"],
22742
+ className: styles$7["btn-cancel"],
22328
22743
  onClick: onClose
22329
22744
  }, React__default.createElement(material.Typography, {
22330
22745
  sx: {
@@ -22335,7 +22750,7 @@ var ResetFilterDialog = function ResetFilterDialog(_ref) {
22335
22750
  lineHeight: "16.71px"
22336
22751
  }, t("close"))), React__default.createElement(material.Button, {
22337
22752
  variant: "contained",
22338
- className: styles$5["btn-register"],
22753
+ className: styles$7["btn-register"],
22339
22754
  type: "submit",
22340
22755
  sx: {
22341
22756
  padding: "12px 47px"
@@ -22754,7 +23169,7 @@ var ChapterProblemSolvingResultsDialog = function ChapterProblemSolvingResultsDi
22754
23169
  borderTop: "1px solid #CED2DA"
22755
23170
  }
22756
23171
  }, React__default.createElement(material.Button, {
22757
- className: styles$5["btn-cancel"],
23172
+ className: styles$7["btn-cancel"],
22758
23173
  onClick: onClose
22759
23174
  }, React__default.createElement(material.Typography, {
22760
23175
  sx: {
@@ -22773,13 +23188,18 @@ var StartPageDialog = function StartPageDialog(_ref) {
22773
23188
  open = _ref.open,
22774
23189
  options = _ref.options,
22775
23190
  onSubmit = _ref.onSubmit;
23191
+ var _useKeyboardVisible = useKeyboardVisible(),
23192
+ pageSxProps = _useKeyboardVisible.pageSxProps,
23193
+ handleInputFocus = _useKeyboardVisible.handleInputFocus,
23194
+ handleInputBlur = _useKeyboardVisible.handleInputBlur;
22776
23195
  return React__default.createElement(material.Dialog, {
22777
23196
  onClose: onClose,
22778
23197
  open: open,
23198
+ scroll: "body",
22779
23199
  PaperProps: {
22780
- sx: {
23200
+ sx: _extends({
22781
23201
  minWidth: "363px"
22782
- }
23202
+ }, pageSxProps)
22783
23203
  }
22784
23204
  }, React__default.createElement(material.DialogTitle, {
22785
23205
  id: "customized-dialog-title"
@@ -22829,12 +23249,16 @@ var StartPageDialog = function StartPageDialog(_ref) {
22829
23249
  render: function render(_ref3) {
22830
23250
  var field = _objectWithoutPropertiesLoose(_ref3, _excluded$9);
22831
23251
  return React__default.createElement(CustomSelectOption, Object.assign({
23252
+ maxMenuHeight: 150,
22832
23253
  menuPosition: "fixed",
22833
23254
  onChange: function onChange(option) {
22834
23255
  return setFieldValue('startPage', option === null || option === void 0 ? void 0 : option.value);
22835
23256
  },
22836
23257
  options: options
22837
- }, field));
23258
+ }, field, {
23259
+ onBlur: handleInputBlur,
23260
+ onFocus: handleInputFocus
23261
+ }));
22838
23262
  }
22839
23263
  }))), React__default.createElement(material.DialogActions, {
22840
23264
  sx: {
@@ -22845,7 +23269,7 @@ var StartPageDialog = function StartPageDialog(_ref) {
22845
23269
  borderTop: "1px solid #CED2DA"
22846
23270
  }
22847
23271
  }, React__default.createElement(material.Button, {
22848
- className: styles$5["btn-cancel"],
23272
+ className: styles$7["btn-cancel"],
22849
23273
  onClick: onClose
22850
23274
  }, React__default.createElement(material.Typography, {
22851
23275
  sx: {
@@ -22856,7 +23280,7 @@ var StartPageDialog = function StartPageDialog(_ref) {
22856
23280
  lineHeight: "16.71px"
22857
23281
  }, t("cancel"))), React__default.createElement(material.Button, {
22858
23282
  variant: "contained",
22859
- className: styles$5["btn-register"],
23283
+ className: styles$7["btn-register"],
22860
23284
  type: "submit",
22861
23285
  sx: {
22862
23286
  padding: "12px 47px"
@@ -23012,7 +23436,7 @@ var Statistic = function Statistic(_ref) {
23012
23436
  };
23013
23437
 
23014
23438
  var TextbookDrawer = function TextbookDrawer(_ref) {
23015
- var _textbook$chapters, _textbook$chapters2;
23439
+ var _textbook$totalQuesti, _textbook$chapters, _textbook$chapters2;
23016
23440
  var isOpen = _ref.isOpen,
23017
23441
  role = _ref.role,
23018
23442
  width = _ref.width,
@@ -23181,7 +23605,7 @@ var TextbookDrawer = function TextbookDrawer(_ref) {
23181
23605
  fontSize: "13px",
23182
23606
  fontWeight: 700,
23183
23607
  color: styles.gray_900
23184
- }, (textbook === null || textbook === void 0 ? void 0 : textbook.totalQuestions) + " " + t("questions")))))), React__default.createElement(material.Stack, {
23608
+ }, ((_textbook$totalQuesti = textbook === null || textbook === void 0 ? void 0 : textbook.totalQuestions) != null ? _textbook$totalQuesti : 0) + " " + t("questions")))))), React__default.createElement(material.Stack, {
23185
23609
  flexDirection: "row",
23186
23610
  gap: "24px",
23187
23611
  mx: "24px"
@@ -23433,7 +23857,7 @@ var DeleteTextbookDialog = function DeleteTextbookDialog(_ref) {
23433
23857
  borderTop: "1px solid #CED2DA"
23434
23858
  }
23435
23859
  }, React__default.createElement(material.Button, {
23436
- className: styles$5["btn-cancel"],
23860
+ className: styles$7["btn-cancel"],
23437
23861
  onClick: onClose
23438
23862
  }, React__default.createElement(material.Typography, {
23439
23863
  sx: {
@@ -23444,7 +23868,7 @@ var DeleteTextbookDialog = function DeleteTextbookDialog(_ref) {
23444
23868
  lineHeight: "16.71px"
23445
23869
  }, t("cancel"))), React__default.createElement(material.Button, {
23446
23870
  variant: "contained",
23447
- className: styles$5["btn-register"],
23871
+ className: styles$7["btn-register"],
23448
23872
  type: "submit",
23449
23873
  sx: {
23450
23874
  padding: "12px 47px"
@@ -23556,13 +23980,13 @@ var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
23556
23980
  var theme = material.useTheme();
23557
23981
  var isTabletUp = material.useMediaQuery(theme.breakpoints.up("lg"));
23558
23982
  return React__default.createElement("div", null, React__default.createElement("div", {
23559
- className: styles$5["drawer-overlay"] + " " + (isOpen && styles$5["open"]),
23983
+ className: styles$7["drawer-overlay"] + " " + (isOpen && styles$7["open"]),
23560
23984
  onClick: function onClick() {
23561
23985
  return onClose();
23562
23986
  }
23563
23987
  }), React__default.createElement(material.Stack, {
23564
23988
  width: isTabletUp ? "50vw" : "100%",
23565
- className: styles$5["drawer"] + " bg-white " + (isOpen && styles$5["open"])
23989
+ className: styles$7["drawer"] + " bg-white " + (isOpen && styles$7["open"])
23566
23990
  }, React__default.createElement(material.Stack, {
23567
23991
  bgcolor: styles.gray_50,
23568
23992
  borderBottom: "1px solid " + styles.gray_100,
@@ -24532,188 +24956,6 @@ var AlertCircleFill = function AlertCircleFill(_ref) {
24532
24956
  }));
24533
24957
  };
24534
24958
 
24535
- var CalendarFill = function CalendarFill(_ref) {
24536
- var _ref$width = _ref.width,
24537
- width = _ref$width === void 0 ? "16" : _ref$width,
24538
- _ref$height = _ref.height,
24539
- height = _ref$height === void 0 ? "16" : _ref$height,
24540
- color = _ref.color;
24541
- return React__default.createElement("svg", {
24542
- width: width,
24543
- height: height,
24544
- fill: color,
24545
- viewBox: "0 0 16 16",
24546
- xmlns: "http://www.w3.org/2000/svg"
24547
- }, React__default.createElement("path", {
24548
- 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",
24549
- fill: "#97A1AF"
24550
- }), React__default.createElement("path", {
24551
- 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",
24552
- fill: "#97A1AF"
24553
- }));
24554
- };
24555
-
24556
- var ClockFill = function ClockFill(_ref) {
24557
- var _ref$width = _ref.width,
24558
- width = _ref$width === void 0 ? "16" : _ref$width,
24559
- _ref$height = _ref.height,
24560
- height = _ref$height === void 0 ? "16" : _ref$height,
24561
- color = _ref.color;
24562
- return React__default.createElement("svg", {
24563
- width: width,
24564
- height: height,
24565
- fill: color,
24566
- viewBox: "0 0 14 14",
24567
- xmlns: "http://www.w3.org/2000/svg"
24568
- }, React__default.createElement("path", {
24569
- 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",
24570
- fill: "#97A1AF"
24571
- }));
24572
- };
24573
-
24574
- var CheckedCircleFill = function CheckedCircleFill(_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 ? "17" : _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 16 17",
24585
- xmlns: "http://www.w3.org/2000/svg"
24586
- }, React__default.createElement("path", {
24587
- 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",
24588
- fill: "#97A1AF"
24589
- }));
24590
- };
24591
-
24592
- var IconPerson = function IconPerson(_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 ? "16" : _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 16",
24603
- xmlns: "http://www.w3.org/2000/svg"
24604
- }, React__default.createElement("path", {
24605
- 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",
24606
- fill: "#97A1AF"
24607
- }), React__default.createElement("path", {
24608
- 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",
24609
- fill: "#97A1AF"
24610
- }));
24611
- };
24612
-
24613
- var LessonTooltip = function LessonTooltip(_ref) {
24614
- var lesson = _ref.lesson,
24615
- lessonAttendance = _ref.lessonAttendance;
24616
- var _useTranslation = reactI18next.useTranslation(),
24617
- t = _useTranslation.t;
24618
- return React__default.createElement(material.Stack, {
24619
- padding: "16px"
24620
- }, React__default.createElement(material.Stack, {
24621
- gap: "20px"
24622
- }, React__default.createElement(material.Typography, {
24623
- sx: {
24624
- color: grey[700]
24625
- }
24626
- }, lesson.courseName), React__default.createElement(material.Stack, {
24627
- display: "flex",
24628
- flexDirection: "row",
24629
- justifyContent: "space-between",
24630
- gap: "20px"
24631
- }, React__default.createElement(material.Box, {
24632
- display: "flex",
24633
- flexDirection: "row",
24634
- gap: "4px"
24635
- }, React__default.createElement(CalendarFill, null), React__default.createElement(material.Typography, {
24636
- sx: {
24637
- color: grey[500],
24638
- fontSize: "13px",
24639
- fontWeight: "600",
24640
- whiteSpace: "nowrap"
24641
- }
24642
- }, t("class_date"))), React__default.createElement(material.Typography, {
24643
- sx: {
24644
- color: grey[700],
24645
- fontSize: "14px",
24646
- fontWeight: "600"
24647
- }
24648
- }, t("" + moment(lesson === null || lesson === void 0 ? void 0 : lesson.date).format(t("date_format"))))), React__default.createElement(material.Stack, {
24649
- display: "flex",
24650
- flexDirection: "row",
24651
- justifyContent: "space-between",
24652
- gap: "20px"
24653
- }, React__default.createElement(material.Stack, {
24654
- display: "flex",
24655
- flexDirection: "row",
24656
- gap: "4px"
24657
- }, React__default.createElement(ClockFill, null), React__default.createElement(material.Typography, {
24658
- sx: {
24659
- color: grey[500],
24660
- fontSize: "13px",
24661
- fontWeight: "600",
24662
- whiteSpace: "nowrap"
24663
- }
24664
- }, t("class_time"))), React__default.createElement(material.Typography, {
24665
- sx: {
24666
- color: grey[700],
24667
- fontSize: "14px",
24668
- fontWeight: "600"
24669
- }
24670
- }, 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(material.Stack, {
24671
- display: "flex",
24672
- flexDirection: "row",
24673
- justifyContent: "space-between",
24674
- gap: "20px"
24675
- }, React__default.createElement(material.Stack, {
24676
- display: "flex",
24677
- flexDirection: "row",
24678
- gap: "4px"
24679
- }, React__default.createElement(CheckedCircleFill, null), React__default.createElement(material.Typography, {
24680
- sx: {
24681
- color: grey[500],
24682
- fontSize: "13px",
24683
- fontWeight: "600",
24684
- whiteSpace: "nowrap"
24685
- }
24686
- }, t("attendance"))), React__default.createElement(material.Typography, {
24687
- sx: {
24688
- color: grey[700],
24689
- fontSize: "14px",
24690
- fontWeight: "600"
24691
- }
24692
- }, (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(material.Stack, {
24693
- display: "flex",
24694
- flexDirection: "row",
24695
- justifyContent: "space-between",
24696
- gap: "20px"
24697
- }, React__default.createElement(material.Stack, {
24698
- display: "flex",
24699
- flexDirection: "row",
24700
- gap: "4px"
24701
- }, React__default.createElement(IconPerson, null), React__default.createElement(material.Typography, {
24702
- sx: {
24703
- color: grey[500],
24704
- fontSize: "13px",
24705
- fontWeight: "600",
24706
- whiteSpace: "nowrap"
24707
- }
24708
- }, t("teacher_in_charge"))), React__default.createElement(material.Typography, {
24709
- sx: {
24710
- color: grey[700],
24711
- fontSize: "14px",
24712
- fontWeight: "600"
24713
- }
24714
- }, lesson === null || lesson === void 0 ? void 0 : lesson.mainTeacherName))));
24715
- };
24716
-
24717
24959
  var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24718
24960
  var data = _ref.data,
24719
24961
  containerProps = _ref.containerProps,
@@ -24722,23 +24964,17 @@ var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24722
24964
  mainTeacherName = _ref.mainTeacherName,
24723
24965
  courseName = _ref.courseName,
24724
24966
  courseId = _ref.courseId,
24725
- studentId = _ref.studentId,
24726
24967
  onCheckInLesson = _ref.onCheckInLesson;
24727
24968
  var _useTranslation = reactI18next.useTranslation(),
24728
24969
  t = _useTranslation.t;
24729
- var isAdmin = reactRedux.useSelector(function (state) {
24730
- var _state$common, _state$common$user, _state$common$user$ro;
24731
- 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(exports.Role.Admin);
24732
- });
24733
24970
  var language = reactRedux.useSelector(function (state) {
24734
- var _state$common2;
24735
- return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
24971
+ var _state$common;
24972
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
24736
24973
  });
24737
24974
  var dataString = JSON.stringify(data);
24738
24975
  var containerRef = React.useRef(null);
24739
- var handleCheckInLesson = function handleCheckInLesson(lesson, studentId) {
24740
- if (isAdmin) return;
24741
- onCheckInLesson(lesson, studentId);
24976
+ var handleCheckInLesson = function handleCheckInLesson(lesson, attendance) {
24977
+ onCheckInLesson(lesson, attendance);
24742
24978
  };
24743
24979
  var renderItem = function renderItem(rowIndex, columnIndex, _) {
24744
24980
  if (rowIndex === 0) return React__default.createElement(material.Box, {
@@ -24782,9 +25018,8 @@ var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24782
25018
  }, React__default.createElement(material.IconButton, {
24783
25019
  size: "small",
24784
25020
  className: "d-flex align-items-center ",
24785
- disabled: isAdmin,
24786
25021
  onClick: function onClick() {
24787
- return handleCheckInLesson(lesson, studentId);
25022
+ return handleCheckInLesson(lesson, attendance);
24788
25023
  },
24789
25024
  sx: {
24790
25025
  width: "26px",
@@ -24834,8 +25069,7 @@ var AttendanceCourseTable = function AttendanceCourseTable(_ref) {
24834
25069
  };
24835
25070
 
24836
25071
  var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
24837
- var studentId = _ref.studentId,
24838
- data = _ref.data,
25072
+ var data = _ref.data,
24839
25073
  onCheckInLesson = _ref.onCheckInLesson,
24840
25074
  onLoad = _ref.onLoad;
24841
25075
  var _useTranslation = reactI18next.useTranslation(),
@@ -24920,7 +25154,6 @@ var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
24920
25154
  data: data.lessons,
24921
25155
  courseId: data.id,
24922
25156
  courseName: data.name,
24923
- studentId: studentId,
24924
25157
  mainTeacherName: data.mainTeacherName,
24925
25158
  onCheckInLesson: onCheckInLesson,
24926
25159
  listWidth: 0,
@@ -24940,8 +25173,7 @@ var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
24940
25173
  };
24941
25174
 
24942
25175
  var CourseAttendanceList = function CourseAttendanceList(_ref) {
24943
- var studentId = _ref.studentId,
24944
- data = _ref.data,
25176
+ var data = _ref.data,
24945
25177
  isLoading = _ref.isLoading,
24946
25178
  listHeight = _ref.listHeight,
24947
25179
  containerProps = _ref.containerProps,
@@ -24950,7 +25182,6 @@ var CourseAttendanceList = function CourseAttendanceList(_ref) {
24950
25182
  var renderItem = function renderItem(item, _, measure) {
24951
25183
  return React__default.createElement(CourseAttendanceItem, {
24952
25184
  key: item.id,
24953
- studentId: studentId,
24954
25185
  data: item,
24955
25186
  onCheckInLesson: onCheckInLesson,
24956
25187
  onLoad: measure
@@ -24973,13 +25204,11 @@ var getAttendanceByStudentIdApi = function getAttendanceByStudentIdApi(studentId
24973
25204
  params: query
24974
25205
  });
24975
25206
  };
24976
- var getCheckInLessonsApi = function getCheckInLessonsApi(lessonId, studentId) {
24977
- return api.post(LESSON_URL + "/" + lessonId + "/teacher", {
24978
- studentId: studentId
24979
- });
25207
+ var getCheckInLessonsApi = function getCheckInLessonsApi(lessonId, attendanceRequest) {
25208
+ return api.post(LESSON_URL + "/" + lessonId + "/teacher", attendanceRequest);
24980
25209
  };
24981
25210
 
24982
- var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25211
+ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId, onUpdatedAttendance) {
24983
25212
  var dispatch = reactRedux.useDispatch();
24984
25213
  var _useTranslation = reactI18next.useTranslation(),
24985
25214
  t = _useTranslation.t;
@@ -25006,15 +25235,46 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25006
25235
  isLoading = _useVirtualList.isLoading,
25007
25236
  handleLoadMore = _useVirtualList.handleLoadMore,
25008
25237
  setItems = _useVirtualList.setItems;
25009
- var handleCheckInLesson = function handleCheckInLesson(lesson, studentId) {
25238
+ var _useState = React.useState(),
25239
+ openAttendanceDalog = _useState[0],
25240
+ setOpenAttendanceDialog = _useState[1];
25241
+ var handleOpenAttendanceDialog = function handleOpenAttendanceDialog(lesson, attendance) {
25242
+ setOpenAttendanceDialog({
25243
+ lesson: lesson,
25244
+ attendance: attendance
25245
+ });
25246
+ };
25247
+ var handleCloseAttendanceDialog = function handleCloseAttendanceDialog() {
25248
+ setOpenAttendanceDialog(undefined);
25249
+ };
25250
+ var handleCheckInLesson = function handleCheckInLesson(lesson, attendance) {
25251
+ if (!!attendance && attendance.status !== StudentAttendanceStatus.Absent) handleUpdateStudentAttendance(lesson, {
25252
+ studentId: studentId,
25253
+ attendanceTime: attendance.attendanceTime,
25254
+ status: attendance.status === StudentAttendanceStatus.Attended ? StudentAttendanceStatus.Late : StudentAttendanceStatus.Absent
25255
+ });else handleOpenAttendanceDialog(lesson, attendance);
25256
+ };
25257
+ var handleUpdateStudentAttendance = function handleUpdateStudentAttendance(lesson, attendanceRequest) {
25010
25258
  try {
25011
25259
  var _temp2 = function _temp2() {
25012
25260
  dispatch(setLoading(false));
25013
25261
  };
25014
25262
  dispatch(setLoading(true));
25015
25263
  var _temp = _catch(function () {
25016
- return Promise.resolve(getCheckInLessonsApi(lesson.id, studentId)).then(function () {
25264
+ return Promise.resolve(getCheckInLessonsApi(lesson.id, attendanceRequest)).then(function () {
25265
+ var attendance = {
25266
+ lessonId: lesson.id,
25267
+ attendanceTime: attendanceRequest.attendanceTime,
25268
+ status: attendanceRequest.status
25269
+ };
25270
+ onUpdatedAttendance === null || onUpdatedAttendance === void 0 ? void 0 : onUpdatedAttendance(attendance, studentId);
25271
+ updateAttendanceData({
25272
+ lessonId: lesson.id,
25273
+ attendanceTime: attendanceRequest.attendanceTime,
25274
+ status: attendanceRequest.status
25275
+ }, lesson.courseId);
25017
25276
  reactToastify.toast.success(t("update_attendance_status_successfully"));
25277
+ handleCloseAttendanceDialog();
25018
25278
  });
25019
25279
  }, function (error) {
25020
25280
  reactToastify.toast.error(getErrorMessage(t, error));
@@ -25030,12 +25290,15 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25030
25290
  var item = JSON.parse(data);
25031
25291
  var lessonAttendance = {
25032
25292
  lessonId: item === null || item === void 0 ? void 0 : (_item$attendance = item.attendance) === null || _item$attendance === void 0 ? void 0 : _item$attendance.lessonId,
25033
- 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),
25293
+ attendanceTime: item === null || item === void 0 ? void 0 : (_item$attendance2 = item.attendance) === null || _item$attendance2 === void 0 ? void 0 : _item$attendance2.attendanceTime,
25034
25294
  status: item === null || item === void 0 ? void 0 : (_item$attendance3 = item.attendance) === null || _item$attendance3 === void 0 ? void 0 : _item$attendance3.status
25035
25295
  };
25296
+ updateAttendanceData(lessonAttendance, item.courseId);
25297
+ };
25298
+ var updateAttendanceData = function updateAttendanceData(lessonAttendance, courseId) {
25036
25299
  setItems(function (prev) {
25037
25300
  var newData = prev.map(function (course) {
25038
- if (item.courseId !== course.id) return course;
25301
+ if (courseId !== course.id) return course;
25039
25302
  return _extends({}, course, {
25040
25303
  lessons: course.lessons.map(function (lesson) {
25041
25304
  if (lesson.id != lessonAttendance.lessonId) return lesson;
@@ -25067,20 +25330,27 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId) {
25067
25330
  return {
25068
25331
  items: items,
25069
25332
  isLoading: isLoading,
25333
+ openAttendanceDalog: openAttendanceDalog,
25070
25334
  handleLoadMore: handleLoadMore,
25071
- handleCheckInLesson: handleCheckInLesson
25335
+ handleCheckInLesson: handleCheckInLesson,
25336
+ handleCloseAttendanceDialog: handleCloseAttendanceDialog,
25337
+ handleUpdateStudentAttendance: handleUpdateStudentAttendance
25072
25338
  };
25073
25339
  };
25074
25340
 
25075
25341
  var DrawerAttendanceTab = function DrawerAttendanceTab(_ref) {
25076
25342
  var studentId = _ref.studentId,
25077
25343
  selectedTab = _ref.selectedTab,
25078
- value = _ref.value;
25079
- var _useDrawerAttendanceT = useDrawerAttendanceTab(studentId),
25344
+ value = _ref.value,
25345
+ onUpdatedAttendance = _ref.onUpdatedAttendance;
25346
+ var _useDrawerAttendanceT = useDrawerAttendanceTab(studentId, onUpdatedAttendance),
25080
25347
  items = _useDrawerAttendanceT.items,
25081
25348
  isLoading = _useDrawerAttendanceT.isLoading,
25349
+ openAttendanceDalog = _useDrawerAttendanceT.openAttendanceDalog,
25082
25350
  handleLoadMore = _useDrawerAttendanceT.handleLoadMore,
25083
- handleCheckInLesson = _useDrawerAttendanceT.handleCheckInLesson;
25351
+ handleCheckInLesson = _useDrawerAttendanceT.handleCheckInLesson,
25352
+ handleCloseAttendanceDialog = _useDrawerAttendanceT.handleCloseAttendanceDialog,
25353
+ handleUpdateStudentAttendance = _useDrawerAttendanceT.handleUpdateStudentAttendance;
25084
25354
  return React__default.createElement(DrawerTabContent, {
25085
25355
  value: value,
25086
25356
  isSelected: selectedTab === value
@@ -25098,10 +25368,16 @@ var DrawerAttendanceTab = function DrawerAttendanceTab(_ref) {
25098
25368
  data: items,
25099
25369
  onLoadMore: handleLoadMore,
25100
25370
  isLoading: isLoading,
25101
- studentId: studentId,
25102
25371
  onCheckInLesson: handleCheckInLesson,
25103
25372
  listHeight: 0
25104
- })));
25373
+ })), React__default.createElement(AttendanceFormDialog, {
25374
+ open: !!openAttendanceDalog,
25375
+ onClose: handleCloseAttendanceDialog,
25376
+ attendance: openAttendanceDalog === null || openAttendanceDalog === void 0 ? void 0 : openAttendanceDalog.attendance,
25377
+ lesson: openAttendanceDalog === null || openAttendanceDalog === void 0 ? void 0 : openAttendanceDalog.lesson,
25378
+ studentId: studentId,
25379
+ onSubmit: handleUpdateStudentAttendance
25380
+ }));
25105
25381
  };
25106
25382
 
25107
25383
  var StudentInfoDrawer = function StudentInfoDrawer(props) {
@@ -25111,7 +25387,8 @@ var StudentInfoDrawer = function StudentInfoDrawer(props) {
25111
25387
  width = props.width,
25112
25388
  history = props.history,
25113
25389
  role = props.role,
25114
- onViewQA = props.onViewQA;
25390
+ onViewQA = props.onViewQA,
25391
+ onUpdatedAttendance = props.onUpdatedAttendance;
25115
25392
  var _useStudentInfoDrawer = useStudentInfoDrawer(props),
25116
25393
  loadedTabs = _useStudentInfoDrawer.loadedTabs,
25117
25394
  isLoading = _useStudentInfoDrawer.isLoading,
@@ -25142,7 +25419,8 @@ var StudentInfoDrawer = function StudentInfoDrawer(props) {
25142
25419
  }), studentId && React__default.createElement(React.Fragment, null, loadedTabs[DrawerTab.Attendance] && React__default.createElement(DrawerAttendanceTab, {
25143
25420
  value: DrawerTab.Attendance,
25144
25421
  selectedTab: selectedTab,
25145
- studentId: studentId
25422
+ studentId: studentId,
25423
+ onUpdatedAttendance: onUpdatedAttendance
25146
25424
  }), loadedTabs[DrawerTab.Note] && React__default.createElement(DrawerNoteTab, {
25147
25425
  value: DrawerTab.Note,
25148
25426
  selectedTab: selectedTab,
@@ -26613,7 +26891,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26613
26891
  }, React__default.createElement(demo.DemoContainer, {
26614
26892
  components: ["DatePicker"]
26615
26893
  }, React__default.createElement(DatePicker.DatePicker, {
26616
- className: "" + styles$2["date-picker"],
26894
+ className: "" + styles$3["date-picker"],
26617
26895
  format: t("date_format"),
26618
26896
  maxDate: endDate ? moment(endDate).local() : undefined,
26619
26897
  minDate: startDate ? moment(startDate).local() : undefined,
@@ -26631,7 +26909,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26631
26909
  }, t("main_teacher"), " ", React__default.createElement("span", {
26632
26910
  className: "text-danger"
26633
26911
  }, "*")), React__default.createElement("div", {
26634
- className: "" + styles$2["teacher-selector-wrapper"]
26912
+ className: "" + styles$3["teacher-selector-wrapper"]
26635
26913
  }, React__default.createElement(TeacherSelector, {
26636
26914
  value: formikProp.values.mainTeacherId,
26637
26915
  teachers: teachers,
@@ -26659,7 +26937,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26659
26937
  return formikProp.setFieldValue("startTime", newValue);
26660
26938
  },
26661
26939
  timezone: "system",
26662
- className: styles$2["time-picker"] + " w-100",
26940
+ className: styles$3["time-picker"] + " w-100",
26663
26941
  slotProps: {
26664
26942
  textField: {
26665
26943
  onClick: function onClick() {
@@ -26693,7 +26971,7 @@ var LessonFormBody = function LessonFormBody(_ref) {
26693
26971
  return formikProp.setFieldValue("endTime", newValue);
26694
26972
  },
26695
26973
  timezone: "system",
26696
- className: styles$2["time-picker"] + " w-100",
26974
+ className: styles$3["time-picker"] + " w-100",
26697
26975
  slotProps: {
26698
26976
  textField: {
26699
26977
  onClick: function onClick() {
@@ -27530,7 +27808,7 @@ var RECENT_USER_ACTION_HEADERS = [{
27530
27808
  }];
27531
27809
  var CSV_PREFIX = "data:text/csv;charset=utf-8,";
27532
27810
 
27533
- var styles$6 = {"action-btn":"_1jXbz","action-btn--pencil":"_at4xP","icon-rotate-180":"_12gv9","drop-area":"_R4bn5"};
27811
+ var styles$8 = {"action-btn":"_1jXbz","action-btn--pencil":"_at4xP","icon-rotate-180":"_12gv9","drop-area":"_R4bn5"};
27534
27812
 
27535
27813
  var _excluded$c = ["text", "isRequired", "className"];
27536
27814
  var LabelRequired = function LabelRequired(_ref) {
@@ -28655,7 +28933,7 @@ var DeleteUserCsvDialog = function DeleteUserCsvDialog(_ref) {
28655
28933
  size: "xs",
28656
28934
  title: t('delete_users_csv')
28657
28935
  }, React__default.createElement(material.DialogContent, null, React__default.createElement("div", {
28658
- className: "" + styles$6["drop-area"],
28936
+ className: "" + styles$8["drop-area"],
28659
28937
  onDrop: handleDrop,
28660
28938
  onDragOver: handleDragOver,
28661
28939
  onClick: handleChooseFile
@@ -28784,10 +29062,10 @@ var UserRow = function UserRow(_ref) {
28784
29062
  className: "d-flex"
28785
29063
  }, isAdmin || isSuperAdmin ? React__default.createElement(material.IconButton, {
28786
29064
  color: "default",
28787
- className: styles$6["action-btn"] + " bg-warning text-white me-2",
29065
+ className: styles$8["action-btn"] + " bg-warning text-white me-2",
28788
29066
  onClick: handleViewOrUpdate
28789
29067
  }, React__default.createElement(hi.HiOutlinePencilAlt, {
28790
- className: styles$6["action-btn--pencil"],
29068
+ className: styles$8["action-btn--pencil"],
28791
29069
  size: 16
28792
29070
  })) : React__default.createElement(material.IconButton, {
28793
29071
  color: "default",
@@ -28798,7 +29076,7 @@ var UserRow = function UserRow(_ref) {
28798
29076
  })), (isAdmin || isSuperAdmin) && React__default.createElement(material.IconButton, {
28799
29077
  onClick: handleDelete,
28800
29078
  color: "default",
28801
- className: styles$6["action-btn"] + " bg-danger text-white"
29079
+ className: styles$8["action-btn"] + " bg-danger text-white"
28802
29080
  }, React__default.createElement(fa6.FaTrashCan, {
28803
29081
  size: 12
28804
29082
  })))));
@@ -28884,7 +29162,7 @@ var UserList = function UserList(_ref) {
28884
29162
  bgcolor: theme.palette.primary.main
28885
29163
  },
28886
29164
  startIcon: React__default.createElement(md.MdDownload, {
28887
- className: "" + styles$6["icon-rotate-180"],
29165
+ className: "" + styles$8["icon-rotate-180"],
28888
29166
  size: 14
28889
29167
  }),
28890
29168
  onClick: handleChooseFile
@@ -28895,7 +29173,7 @@ var UserList = function UserList(_ref) {
28895
29173
  bgcolor: theme.palette.error.main
28896
29174
  },
28897
29175
  startIcon: React__default.createElement(md.MdDownload, {
28898
- className: "" + styles$6["icon-rotate-180"],
29176
+ className: "" + styles$8["icon-rotate-180"],
28899
29177
  size: 14
28900
29178
  }),
28901
29179
  onClick: handleToggleDeleteUserCsv
@@ -29031,7 +29309,7 @@ var UserList = function UserList(_ref) {
29031
29309
  })));
29032
29310
  };
29033
29311
 
29034
- var styles$7 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
29312
+ var styles$9 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
29035
29313
 
29036
29314
  var BpIcon = material.styled("span")(function (_ref) {
29037
29315
  var theme = _ref.theme;
@@ -29104,7 +29382,7 @@ var QuestionView = function QuestionView(_ref2) {
29104
29382
  mb: "16px"
29105
29383
  }, React__default.createElement(material.Stack, null, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29106
29384
  htmlFor: "textual_answer",
29107
- className: styles$7["question-label"] + " form-label"
29385
+ className: styles$9["question-label"] + " form-label"
29108
29386
  }, t("textual_answer")), React__default.createElement(material.TextField, {
29109
29387
  sx: {
29110
29388
  "& .MuiInputBase-input": {
@@ -29132,7 +29410,7 @@ var QuestionView = function QuestionView(_ref2) {
29132
29410
  }).map(function (i) {
29133
29411
  return React__default.createElement(material.FormControlLabel, {
29134
29412
  key: i,
29135
- className: styles$7["question-label"] + " w-fit",
29413
+ className: styles$9["question-label"] + " w-fit",
29136
29414
  labelPlacement: "top",
29137
29415
  value: i,
29138
29416
  onChange: function onChange(e) {
@@ -29163,7 +29441,7 @@ var QuestionView = function QuestionView(_ref2) {
29163
29441
  }).map(function (i) {
29164
29442
  return React__default.createElement(material.FormControlLabel, {
29165
29443
  key: i,
29166
- className: styles$7["question-label"] + " w-fit",
29444
+ className: styles$9["question-label"] + " w-fit",
29167
29445
  labelPlacement: "top",
29168
29446
  value: i,
29169
29447
  onChange: function onChange(e) {
@@ -29206,7 +29484,7 @@ var QuestionView = function QuestionView(_ref2) {
29206
29484
  }, React__default.createElement(material.Grid, {
29207
29485
  container: true
29208
29486
  }, React__default.createElement("div", {
29209
- className: styles$7["question-title"] + " me-2 text-nowrap"
29487
+ className: styles$9["question-title"] + " me-2 text-nowrap"
29210
29488
  }, t("problem_number_question", {
29211
29489
  number: question.questionOrder + 1
29212
29490
  }))), React__default.createElement(material.Grid, {
@@ -29219,7 +29497,7 @@ var QuestionView = function QuestionView(_ref2) {
29219
29497
  mb: "16px"
29220
29498
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29221
29499
  htmlFor: "title",
29222
- className: styles$7["question-label"] + " form-label"
29500
+ className: styles$9["question-label"] + " form-label"
29223
29501
  }, t("title")), React__default.createElement(material.TextField, {
29224
29502
  fullWidth: true,
29225
29503
  value: question.title,
@@ -29234,7 +29512,7 @@ var QuestionView = function QuestionView(_ref2) {
29234
29512
  mb: "16px"
29235
29513
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29236
29514
  htmlFor: "author",
29237
- className: styles$7["question-label"] + " form-label"
29515
+ className: styles$9["question-label"] + " form-label"
29238
29516
  }, t("author")), React__default.createElement(material.TextField, {
29239
29517
  fullWidth: true,
29240
29518
  value: question.author,
@@ -29249,7 +29527,7 @@ var QuestionView = function QuestionView(_ref2) {
29249
29527
  mb: "16px"
29250
29528
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29251
29529
  htmlFor: "subject",
29252
- className: styles$7["question-label"] + " form-label"
29530
+ className: styles$9["question-label"] + " form-label"
29253
29531
  }, t("subject")), React__default.createElement(material.TextField, {
29254
29532
  fullWidth: true,
29255
29533
  value: question.subject,
@@ -29268,7 +29546,7 @@ var QuestionView = function QuestionView(_ref2) {
29268
29546
  mb: "16px"
29269
29547
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29270
29548
  htmlFor: "type",
29271
- className: styles$7["question-label"] + " form-label"
29549
+ className: styles$9["question-label"] + " form-label"
29272
29550
  }, t("type")), React__default.createElement(CustomSelectOption, {
29273
29551
  isTextbook: true,
29274
29552
  valueById: question.type,
@@ -29282,7 +29560,7 @@ var QuestionView = function QuestionView(_ref2) {
29282
29560
  lg: 3
29283
29561
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29284
29562
  htmlFor: "question_answer_type",
29285
- className: styles$7["question-label"] + " form-label"
29563
+ className: styles$9["question-label"] + " form-label"
29286
29564
  }, t("question_answer_type")), React__default.createElement(CustomSelect, {
29287
29565
  isDisabled: isDisabled,
29288
29566
  value: question.questionAnswerType,
@@ -29302,7 +29580,7 @@ var QuestionView = function QuestionView(_ref2) {
29302
29580
  xs: 4,
29303
29581
  lg: 4
29304
29582
  }, React__default.createElement("div", {
29305
- className: styles$7["question-title"] + " me-2 text-nowrap"
29583
+ className: styles$9["question-title"] + " me-2 text-nowrap"
29306
29584
  }, t("problem_number_question", {
29307
29585
  number: question.questionOrder + 1
29308
29586
  }))), !isTextbook && React__default.createElement(material.Grid, {
@@ -29315,7 +29593,7 @@ var QuestionView = function QuestionView(_ref2) {
29315
29593
  lg: 4
29316
29594
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29317
29595
  htmlFor: "question_answer_type",
29318
- className: styles$7["question-label"] + " form-label"
29596
+ className: styles$9["question-label"] + " form-label"
29319
29597
  }, t("question_answer_type")), React__default.createElement(CustomSelect, {
29320
29598
  isDisabled: isDisabled,
29321
29599
  value: question.questionAnswerType,
@@ -29449,7 +29727,11 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29449
29727
  onDelete === null || onDelete === void 0 ? void 0 : onDelete(article);
29450
29728
  };
29451
29729
  return React__default.createElement("div", {
29452
- className: "d-flex " + styles$7["question"] + " " + (isActive ? styles$7["question--active"] : "")
29730
+ className: "d-flex " + styles$9["question"] + " " + (isActive ? styles$9["question--active"] : ""),
29731
+ style: {
29732
+ maxHeight: "95%",
29733
+ overflow: 'scroll'
29734
+ }
29453
29735
  }, React__default.createElement("div", {
29454
29736
  className: "py-1"
29455
29737
  }, React__default.createElement(pi.PiDotsNineLight, {
@@ -29457,9 +29739,9 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29457
29739
  })), React__default.createElement("div", {
29458
29740
  className: "px-2"
29459
29741
  }, React__default.createElement("p", {
29460
- className: "mb-0 " + styles$7["question-article"]
29742
+ className: "mb-0 " + styles$9["question-article"]
29461
29743
  }, t("article_number")), React__default.createElement("p", {
29462
- className: "text-center " + styles$7["question-article"]
29744
+ className: "text-center " + styles$9["question-article"]
29463
29745
  }, article)), React__default.createElement("div", {
29464
29746
  className: "flex-grow-1"
29465
29747
  }, React__default.createElement(material.Grid, {
@@ -29480,7 +29762,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29480
29762
  lg: 3
29481
29763
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29482
29764
  htmlFor: "question_count",
29483
- className: styles$7["question-label"] + " form-label"
29765
+ className: styles$9["question-label"] + " form-label"
29484
29766
  }, t("questions")), React__default.createElement(QuestionCountSelector, {
29485
29767
  id: "question_count",
29486
29768
  value: questionCount,
@@ -29499,7 +29781,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29499
29781
  }
29500
29782
  }, React__default.createElement(material.FormLabel, {
29501
29783
  htmlFor: "category",
29502
- className: styles$7["question-label"] + " form-label"
29784
+ className: styles$9["question-label"] + " form-label"
29503
29785
  }, t("category")), React__default.createElement(ArticleCategorySelector, {
29504
29786
  style: {
29505
29787
  "div:has(&)": {
@@ -29519,7 +29801,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
29519
29801
  lg: 3
29520
29802
  }, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
29521
29803
  htmlFor: "answer_count",
29522
- className: styles$7["question-label"] + " form-label"
29804
+ className: styles$9["question-label"] + " form-label"
29523
29805
  }, t("answer_count")), React__default.createElement(AnswerCountSelector, {
29524
29806
  id: "answer_count",
29525
29807
  value: answerCount,
@@ -30044,7 +30326,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30044
30326
  xs: 5,
30045
30327
  className: 'mb-2'
30046
30328
  }, React__default.createElement("label", {
30047
- className: styles["form-label"] + " " + styles$7["question-label"],
30329
+ className: styles["form-label"] + " " + styles$9["question-label"],
30048
30330
  htmlFor: "title"
30049
30331
  }, t("exam_name")), React__default.createElement("input", {
30050
30332
  disabled: isDisabled,
@@ -30058,7 +30340,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30058
30340
  xs: 3,
30059
30341
  className: 'mb-2'
30060
30342
  }, React__default.createElement("label", {
30061
- className: styles["form-label"] + " " + styles$7["question-label"],
30343
+ className: styles["form-label"] + " " + styles$9["question-label"],
30062
30344
  htmlFor: "duration"
30063
30345
  }, t("exam_duration")), React__default.createElement(CustomSelect, {
30064
30346
  inputId: "duration",
@@ -30071,7 +30353,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30071
30353
  xs: 3,
30072
30354
  className: 'mb-2'
30073
30355
  }, React__default.createElement("label", {
30074
- className: styles["form-label"] + " " + styles$7["question-label"],
30356
+ className: styles["form-label"] + " " + styles$9["question-label"],
30075
30357
  htmlFor: "subject"
30076
30358
  }, t("subject")), React__default.createElement(CustomSelect, {
30077
30359
  inputId: "subject",
@@ -30114,7 +30396,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
30114
30396
  }
30115
30397
  },
30116
30398
  disabled: isDisabled,
30117
- className: "w-100 d-flex justify-content-center align-items-center " + styles$7["question-btn"] + " mt-3",
30399
+ className: "w-100 d-flex justify-content-center align-items-center " + styles$9["question-btn"] + " mt-3",
30118
30400
  onClick: handleAddArticle
30119
30401
  }, React__default.createElement(fa.FaPlusCircle, {
30120
30402
  className: "me-2"
@@ -31699,7 +31981,7 @@ var ArticleDialog = function ArticleDialog(_ref) {
31699
31981
  }, t("add")))));
31700
31982
  };
31701
31983
 
31702
- 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"};
31984
+ 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"};
31703
31985
 
31704
31986
  var _excluded$e = ["isOpen", "onClose", "handleSaveExam"];
31705
31987
  var CreateExamDrawer = function CreateExamDrawer(props) {
@@ -31712,17 +31994,17 @@ var CreateExamDrawer = function CreateExamDrawer(props) {
31712
31994
  var theme = material.useTheme();
31713
31995
  var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
31714
31996
  return React__default.createElement("div", null, React__default.createElement("div", {
31715
- className: styles$8["drawer-overlay"] + " " + (isOpen && styles$8["open"]),
31997
+ className: styles$a["drawer-overlay"] + " " + (isOpen && styles$a["open"]),
31716
31998
  onClick: function onClick() {
31717
31999
  return onClose();
31718
32000
  }
31719
32001
  }), React__default.createElement("div", {
31720
- className: styles$8["drawer"] + " bg-white " + (isOpen && styles$8["open"]),
32002
+ className: styles$a["drawer"] + " bg-white " + (isOpen && styles$a["open"]),
31721
32003
  style: {
31722
32004
  width: "" + (isTabletUp ? "70vw" : "100vw")
31723
32005
  }
31724
32006
  }, React__default.createElement("div", {
31725
- className: styles$8["drawer-header"] + " d-flex justify-content-between align-items-center"
32007
+ className: styles$a["drawer-header"] + " d-flex justify-content-between align-items-center"
31726
32008
  }, React__default.createElement(material.Button, {
31727
32009
  variant: "outlined",
31728
32010
  sx: {
@@ -31741,7 +32023,7 @@ var CreateExamDrawer = function CreateExamDrawer(props) {
31741
32023
  }, React__default.createElement(fa.FaTimes, {
31742
32024
  size: 18
31743
32025
  }))), React__default.createElement("div", {
31744
- className: "" + styles$8["drawer-form"]
32026
+ className: "" + styles$a["drawer-form"]
31745
32027
  }, React__default.createElement(ExamDetailView, Object.assign({}, examDetailViewProps)))));
31746
32028
  };
31747
32029
 
@@ -32123,7 +32405,7 @@ var ShareToTeacherDialog = function ShareToTeacherDialog(_ref) {
32123
32405
  maxWidth: "md"
32124
32406
  }, React__default.createElement(material.DialogContent, {
32125
32407
  sx: {
32126
- overflowY: "unset"
32408
+ overflowY: "auto"
32127
32409
  }
32128
32410
  }, React__default.createElement(material.Grid, {
32129
32411
  container: true,
@@ -32857,7 +33139,7 @@ var useNotificationDetail = function useNotificationDetail(_ref) {
32857
33139
  };
32858
33140
  };
32859
33141
 
32860
- var styles$9 = {"avatar":"_8niRT"};
33142
+ var styles$b = {"avatar":"_8niRT"};
32861
33143
 
32862
33144
  var _excluded$f = ["value", "disabled", "optionTypeNotification"];
32863
33145
  var TypeSelector = function TypeSelector(_ref) {
@@ -32982,7 +33264,7 @@ var NotificationForm = function NotificationForm(_ref) {
32982
33264
  className: "fw-bold mb-2",
32983
33265
  htmlFor: "main-teacher"
32984
33266
  }, t('content')), React__default.createElement("div", {
32985
- className: "" + styles$9["teacher-selector-wrapper"]
33267
+ className: "" + styles$b["teacher-selector-wrapper"]
32986
33268
  }, React__default.createElement(TinyEditor, {
32987
33269
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
32988
33270
  initValue: formikProp.values.content,
@@ -33001,7 +33283,7 @@ var NotificationForm = function NotificationForm(_ref) {
33001
33283
  }, t('type'), " ", React__default.createElement("span", {
33002
33284
  className: "text-danger"
33003
33285
  }, "*")), React__default.createElement("div", {
33004
- className: "" + styles$9["teacher-selector-wrapper"]
33286
+ className: "" + styles$b["teacher-selector-wrapper"]
33005
33287
  }, React__default.createElement(TypeSelector, {
33006
33288
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33007
33289
  optionTypeNotification: notificationTypes,
@@ -33019,7 +33301,7 @@ var NotificationForm = function NotificationForm(_ref) {
33019
33301
  className: "fw-bold mb-2",
33020
33302
  htmlFor: "main-teacher"
33021
33303
  }, t('classes')), React__default.createElement("div", {
33022
- className: "" + styles$9["teacher-selector-wrapper"]
33304
+ className: "" + styles$b["teacher-selector-wrapper"]
33023
33305
  }, React__default.createElement(ClassSelector, {
33024
33306
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33025
33307
  value: classOptions,
@@ -33028,7 +33310,7 @@ var NotificationForm = function NotificationForm(_ref) {
33028
33310
  className: "fw-bold mb-2",
33029
33311
  htmlFor: "main-teacher"
33030
33312
  }, t('students')), React__default.createElement("div", {
33031
- className: "" + styles$9["teacher-selector-wrapper"]
33313
+ className: "" + styles$b["teacher-selector-wrapper"]
33032
33314
  }, React__default.createElement(StudentSelector, {
33033
33315
  disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
33034
33316
  value: studentOptions,
@@ -33909,7 +34191,6 @@ var CompareTypeOptions = [{
33909
34191
  label: "synonym_processing",
33910
34192
  value: exports.QuestionAnswerType.SynonymProcessing
33911
34193
  }];
33912
- var MAX_QUESTIONS_IN_QUESTION_GROUP = 20;
33913
34194
 
33914
34195
  var CustomTextbookTab = function CustomTextbookTab(props) {
33915
34196
  var children = props.children,
@@ -34373,7 +34654,7 @@ var isEqual = function isEqual(prev, next) {
34373
34654
  };
34374
34655
  var ArticleBlock$1 = React.memo(ArticleBlock, isEqual);
34375
34656
 
34376
- var styles$a = {"question":"_1_ONI","question-article":"_2FdrR","question-title":"_3mgRf","question-label":"_2h0kA","question-input":"_exAl-","question-btn":"_2ksp8"};
34657
+ var styles$c = {"question":"_1_ONI","question-article":"_2FdrR","question-title":"_3mgRf","question-label":"_2h0kA","question-input":"_exAl-","question-btn":"_2ksp8"};
34377
34658
 
34378
34659
  var labelStyle = {
34379
34660
  textOverflow: "ellipsis",
@@ -34399,7 +34680,7 @@ var QuestionCompareType = function QuestionCompareType(_ref) {
34399
34680
  }
34400
34681
  }, React__default.createElement(material.FormLabel, {
34401
34682
  htmlFor: "compare-type",
34402
- className: "" + styles$a["question-label"],
34683
+ className: "" + styles$c["question-label"],
34403
34684
  sx: _extends({}, labelStyle, {
34404
34685
  width: "unset"
34405
34686
  })
@@ -34443,7 +34724,7 @@ var QuestionOrderName = function QuestionOrderName(_ref) {
34443
34724
  var _useTranslation = reactI18next.useTranslation(),
34444
34725
  t = _useTranslation.t;
34445
34726
  return React__default.createElement(material.Box, {
34446
- className: styles$a["question-title"] + " me-2 text-nowrap",
34727
+ className: styles$c["question-title"] + " me-2 text-nowrap",
34447
34728
  sx: questionTitleStyle
34448
34729
  }, isMath ? t("problem_number_question", {
34449
34730
  number: questionOrder + 1
@@ -34668,7 +34949,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34668
34949
  var _data$correctAnswers2;
34669
34950
  return React__default.createElement(material.FormControlLabel, {
34670
34951
  key: i,
34671
- className: styles$a["question-label"] + " w-fit",
34952
+ className: styles$c["question-label"] + " w-fit",
34672
34953
  labelPlacement: "top",
34673
34954
  value: i,
34674
34955
  disabled: disabled,
@@ -34702,7 +34983,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34702
34983
  var _data$correctAnswers4;
34703
34984
  return React__default.createElement(material.FormControlLabel, {
34704
34985
  key: i,
34705
- className: styles$a["question-label"] + " w-fit",
34986
+ className: styles$c["question-label"] + " w-fit",
34706
34987
  labelPlacement: "top",
34707
34988
  value: i,
34708
34989
  onChange: function onChange(e) {
@@ -34768,7 +35049,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34768
35049
  direction: "row",
34769
35050
  gap: 2
34770
35051
  }, isTextAnswerType && React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
34771
- className: styles$a["question-label"] + " form-label",
35052
+ className: styles$c["question-label"] + " form-label",
34772
35053
  sx: _extends({}, labelStyle, {
34773
35054
  visibility: "hidden"
34774
35055
  })
@@ -34803,7 +35084,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34803
35084
  }
34804
35085
  }, React__default.createElement(material.FormLabel, {
34805
35086
  htmlFor: "score",
34806
- className: styles$a["question-label"] + " form-label",
35087
+ className: styles$c["question-label"] + " form-label",
34807
35088
  sx: labelStyle
34808
35089
  }, t("score")), React__default.createElement(formik.Field, {
34809
35090
  name: path + ".score",
@@ -34823,7 +35104,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34823
35104
  }
34824
35105
  }, React__default.createElement(material.FormLabel, {
34825
35106
  htmlFor: "type",
34826
- className: styles$a["question-label"] + " form-label",
35107
+ className: styles$c["question-label"] + " form-label",
34827
35108
  sx: labelStyle
34828
35109
  }, t("type")), React__default.createElement(formik.Field, {
34829
35110
  name: path + ".questionTypeId",
@@ -34848,7 +35129,7 @@ var QuestionBlock = function QuestionBlock(_ref2) {
34848
35129
  }
34849
35130
  }, React__default.createElement(material.FormLabel, {
34850
35131
  htmlFor: "question_answer_type",
34851
- className: styles$a["question-label"] + " form-label",
35132
+ className: styles$c["question-label"] + " form-label",
34852
35133
  sx: labelStyle
34853
35134
  }, t("question_answer_type")), React__default.createElement(formik.Field, {
34854
35135
  name: path + ".questionAnswerType",
@@ -35244,8 +35525,7 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
35244
35525
  var field = _ref2.field;
35245
35526
  return React__default.createElement(QuestionCountSelector, Object.assign({}, field, {
35246
35527
  onChange: handleChangeQuestionCount,
35247
- isDisabled: disabled,
35248
- totalQuestions: MAX_QUESTIONS_IN_QUESTION_GROUP
35528
+ isDisabled: disabled
35249
35529
  }));
35250
35530
  }
35251
35531
  }))), isMath && React__default.createElement(material.Grid, {
@@ -37484,7 +37764,7 @@ var useTextbookList$1 = function useTextbookList() {
37484
37764
  };
37485
37765
  };
37486
37766
 
37487
- var styles$b = {"action-btn":"_2Kt_g","action-btn--pencil":"_3T_TG","btn-cancel":"_3j6Kd","btn-register":"_XA4vl"};
37767
+ var styles$d = {"action-btn":"_2Kt_g","action-btn--pencil":"_3T_TG","btn-cancel":"_3j6Kd","btn-register":"_XA4vl"};
37488
37768
 
37489
37769
  var DeleteTextbookDialog$1 = function DeleteTextbookDialog(_ref) {
37490
37770
  var t = _ref.t,
@@ -37548,7 +37828,7 @@ var DeleteTextbookDialog$1 = function DeleteTextbookDialog(_ref) {
37548
37828
  borderTop: "1px solid #CED2DA"
37549
37829
  }
37550
37830
  }, React__default.createElement(material.Button, {
37551
- className: styles$b["btn-cancel"],
37831
+ className: styles$d["btn-cancel"],
37552
37832
  onClick: onClose
37553
37833
  }, React__default.createElement(material.Typography, {
37554
37834
  sx: {
@@ -37559,7 +37839,7 @@ var DeleteTextbookDialog$1 = function DeleteTextbookDialog(_ref) {
37559
37839
  lineHeight: "16.71px"
37560
37840
  }, t("cancel"))), React__default.createElement(material.Button, {
37561
37841
  variant: "contained",
37562
- className: styles$b["btn-register"],
37842
+ className: styles$d["btn-register"],
37563
37843
  type: "submit",
37564
37844
  sx: {
37565
37845
  padding: "12px 47px"
@@ -37646,12 +37926,12 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
37646
37926
  title: t("edit")
37647
37927
  }, React__default.createElement(material.IconButton, {
37648
37928
  color: "default",
37649
- className: styles$b["action-btn"] + " bg-warning text-white me-2",
37929
+ className: styles$d["action-btn"] + " bg-warning text-white me-2",
37650
37930
  onClick: function onClick() {
37651
37931
  return onNavigateDetail(i);
37652
37932
  }
37653
37933
  }, React__default.createElement(hi.HiOutlinePencilAlt, {
37654
- className: styles$b["action-btn--pencil"],
37934
+ className: styles$d["action-btn--pencil"],
37655
37935
  size: 16
37656
37936
  }))), React__default.createElement(material.Tooltip, {
37657
37937
  title: t("edit")
@@ -37660,7 +37940,7 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
37660
37940
  return handleOpenConfirmDialog(i);
37661
37941
  },
37662
37942
  color: "default",
37663
- className: styles$b["action-btn"] + " bg-danger text-white",
37943
+ className: styles$d["action-btn"] + " bg-danger text-white",
37664
37944
  title: t("delete")
37665
37945
  }, React__default.createElement(fa6.FaTrashCan, {
37666
37946
  size: 12
@@ -38459,8 +38739,8 @@ var Header = function Header(_ref) {
38459
38739
  justifyContent: "center",
38460
38740
  alignItems: "center"
38461
38741
  }, React__default.createElement(TheAcademyDropdown, {
38462
- homeAcademyUrl: academyListRoute.path,
38463
- homeUrl: homeRoute.path,
38742
+ homeAcademyUrl: homeRoute.path,
38743
+ homeUrl: academyListRoute.path,
38464
38744
  registerUrl: registerRoute === null || registerRoute === void 0 ? void 0 : registerRoute.path,
38465
38745
  role: role,
38466
38746
  history: history,
@@ -38835,6 +39115,7 @@ exports.AnswerCountSelector = AnswerCountSelector;
38835
39115
  exports.ArticleCategorySelector = ArticleCategorySelector;
38836
39116
  exports.ArticleDialog = ArticleDialog;
38837
39117
  exports.ArticleGroupView = ArticleGroupView;
39118
+ exports.AttendanceFormDialog = AttendanceFormDialog;
38838
39119
  exports.BASE_URL = BASE_URL;
38839
39120
  exports.BRIEF_GRADE_OPTIONS = BRIEF_GRADE_OPTIONS;
38840
39121
  exports.ChapterBox = _ChapterBox;
@@ -38844,6 +39125,7 @@ exports.ClassDetail = ClassDetail;
38844
39125
  exports.ClassList = ClassList;
38845
39126
  exports.ClassNoteDialog = ClassNoteDialog;
38846
39127
  exports.ClassSelector = ClassSelector;
39128
+ exports.CommonCreateNewQuestionDialog = CommonCreateNewQuestionDialog;
38847
39129
  exports.CommonDialog = CommonDialog;
38848
39130
  exports.ConfirmDeleteDialog = ConfirmDeleteDialog;
38849
39131
  exports.ConfirmDialog = ConfirmDialog;
@@ -38873,6 +39155,7 @@ exports.LANGUAGE = LANGUAGE;
38873
39155
  exports.LEARNING_SPACE = LEARNING_SPACE;
38874
39156
  exports.LanguageHeaders = LanguageHeaders;
38875
39157
  exports.LayoutContext = LayoutContext;
39158
+ exports.LessonTooltip = LessonTooltip;
38876
39159
  exports.ListView = ListView;
38877
39160
  exports.Loading = Loading;
38878
39161
  exports.LoadingComponent = LoadingComponent;
@@ -38978,6 +39261,7 @@ exports.useAutoAcademyDomain = useAutoAcademyDomain;
38978
39261
  exports.useChatContainer = useChatContainer;
38979
39262
  exports.useCountDownTimer = useCountDownTimer;
38980
39263
  exports.useGoogleSignOut = useGoogleSignOut;
39264
+ exports.useKeyboardVisible = useKeyboardVisible;
38981
39265
  exports.useLanguage = useLanguage;
38982
39266
  exports.useList = useList;
38983
39267
  exports.useLoadMore = useLoadMore;