touchstudy-core 0.1.32 → 0.1.34

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.
@@ -9,7 +9,7 @@ import { useDispatch, useSelector } from 'react-redux';
9
9
  import axios from 'axios';
10
10
  import { useTranslation, initReactI18next } from 'react-i18next';
11
11
  export { I18nextProvider, useTranslation } from 'react-i18next';
12
- import { Grid, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, Button, Box, Typography, Pagination, styled, Tooltip, tooltipClasses, Stack, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, Paper, InputBase } from '@mui/material';
12
+ import { Grid, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, Button, Box, Typography, Pagination, styled, Tooltip, tooltipClasses, Stack, ClickAwayListener, useMediaQuery, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, useTheme, FormGroup, FormLabel, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, Paper, InputBase } from '@mui/material';
13
13
  import { gapi } from 'gapi-script';
14
14
  import Pusher from 'pusher-js';
15
15
  import { IoClose, IoCloseOutline, IoSearch } from 'react-icons/io5';
@@ -26,7 +26,7 @@ export { ToastContainer, toast } from 'react-toastify';
26
26
  import Select, { components } from 'react-select';
27
27
  import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaSortUp, FaSortDown, FaEye, FaPlusCircle } from 'react-icons/fa';
28
28
  import { PiDotsNineLight } from 'react-icons/pi';
29
- import { IoMdArrowBack } from 'react-icons/io';
29
+ import { IoMdArrowBack, IoIosLogOut } from 'react-icons/io';
30
30
  import _ from 'lodash';
31
31
  import { FaPencil } from 'react-icons/fa6';
32
32
  import CreatableSelect from 'react-select/creatable';
@@ -37,6 +37,7 @@ import DialogTitle$1 from '@mui/material/DialogTitle';
37
37
  import DialogContent$1 from '@mui/material/DialogContent';
38
38
  import DialogActions$1 from '@mui/material/DialogActions';
39
39
  import Typography$1 from '@mui/material/Typography';
40
+ import { useLocation, Link } from 'react-router-dom';
40
41
 
41
42
  var setLoading = createAction("common/setLoading");
42
43
  var setAlert = createAction("common/setAlert");
@@ -136,7 +137,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
136
137
  return target;
137
138
  }
138
139
 
139
- var stylesGlobal = {"btn-login-google":"_2HqmH","block-login":"_wWIyO","box-login":"_38Lo1","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw"};
140
+ var styles = {"btn-login-google":"_2HqmH","block-login":"_wWIyO","box-login":"_38Lo1","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","image-academy--item":"_3RDWF","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw","truncate":"_3NJzN","headers":"_3xnI5","logo-container":"_3YG70","tabBox":"_1CQPn","routerBox":"_3hx2T","tabText":"_3UyhW","router-link-active":"_1TGKA","router-link":"_1AqMh","userImg":"_2RI6G","disabled-link":"_3aVHg"};
140
141
 
141
142
  var AuthenticationMessage;
142
143
  (function (AuthenticationMessage) {
@@ -463,18 +464,18 @@ var BlockLogin = function BlockLogin(_ref) {
463
464
  var handleSubmit = formikProps.handleSubmit;
464
465
  return React.createElement(Grid, {
465
466
  container: true,
466
- className: "" + stylesGlobal["box-login"]
467
+ className: "" + styles["box-login"]
467
468
  }, React.createElement(Grid, {
468
469
  item: true,
469
470
  className: "p-0 d-flex justify-content-center"
470
471
  }, React.createElement("form", {
471
- className: "" + stylesGlobal["block-login"],
472
+ className: "" + styles["block-login"],
472
473
  onSubmit: handleSubmit
473
474
  }, React.createElement("div", {
474
- className: "" + stylesGlobal["block-form"]
475
+ className: "" + styles["block-form"]
475
476
  }, React.createElement("img", {
476
477
  src: "/images/logo.jpeg",
477
- className: "" + stylesGlobal["img-login-rectangle"]
478
+ className: "" + styles["img-login-rectangle"]
478
479
  }), React.createElement("div", {
479
480
  className: "p-0 mt-1 mb-4"
480
481
  }, React.createElement(GoogleLogin, {
@@ -483,7 +484,7 @@ var BlockLogin = function BlockLogin(_ref) {
483
484
  onSuccess: onSuccessGoogle,
484
485
  onFailure: onFailureGoogle,
485
486
  cookiePolicy: "single_host_origin",
486
- className: "" + stylesGlobal["btn-login-google"],
487
+ className: "" + styles["btn-login-google"],
487
488
  isSignedIn: true
488
489
  }))))));
489
490
  });
@@ -547,7 +548,7 @@ var Login = function Login(_ref) {
547
548
  var _useLogin = useLogin$1(onNavigate),
548
549
  defaultInfo = _useLogin.defaultInfo;
549
550
  return React.createElement("div", {
550
- className: stylesGlobal["login"] + " container-fluid font-family-lato"
551
+ className: styles["login"] + " container-fluid font-family-lato"
551
552
  }, React.createElement(Grid, {
552
553
  container: true,
553
554
  spacing: 3,
@@ -1577,6 +1578,9 @@ var my_problem_solving_order = "내 순서";
1577
1578
  var top_rankings_problem_solving_order = "상위권 학생의 순서";
1578
1579
  var comparison_of_top_rankings_and_problem_solving_order = "상위권과 문제 푸는 순서 비교";
1579
1580
  var my_answers = "내 해답";
1581
+ var request_for_consultation = "상담요청";
1582
+ var ask_a_question_with_a_problem = "문제로 질문하기";
1583
+ var live = "살다";
1580
1584
  var lang_ko = {
1581
1585
  problem_solving: problem_solving,
1582
1586
  my_story: my_story,
@@ -1864,7 +1868,10 @@ var lang_ko = {
1864
1868
  my_problem_solving_order: my_problem_solving_order,
1865
1869
  top_rankings_problem_solving_order: top_rankings_problem_solving_order,
1866
1870
  comparison_of_top_rankings_and_problem_solving_order: comparison_of_top_rankings_and_problem_solving_order,
1867
- my_answers: my_answers
1871
+ my_answers: my_answers,
1872
+ request_for_consultation: request_for_consultation,
1873
+ ask_a_question_with_a_problem: ask_a_question_with_a_problem,
1874
+ live: live
1868
1875
  };
1869
1876
 
1870
1877
  var problem_solving$1 = "Problem Solving";
@@ -2190,6 +2197,9 @@ var my_problem_solving_order$1 = "My problem solving order";
2190
2197
  var top_rankings_problem_solving_order$1 = "Top rankings problem solving order";
2191
2198
  var comparison_of_top_rankings_and_problem_solving_order$1 = "Comparison of top rankings and problem-solving order";
2192
2199
  var my_answers$1 = "My answers";
2200
+ var request_for_consultation$1 = "Request for consultation";
2201
+ var ask_a_question_with_a_problem$1 = "Ask a question with a problem";
2202
+ var live$1 = "live";
2193
2203
  var lang_en = {
2194
2204
  problem_solving: problem_solving$1,
2195
2205
  my_story: my_story$1,
@@ -2512,7 +2522,10 @@ var lang_en = {
2512
2522
  my_problem_solving_order: my_problem_solving_order$1,
2513
2523
  top_rankings_problem_solving_order: top_rankings_problem_solving_order$1,
2514
2524
  comparison_of_top_rankings_and_problem_solving_order: comparison_of_top_rankings_and_problem_solving_order$1,
2515
- my_answers: my_answers$1
2525
+ my_answers: my_answers$1,
2526
+ request_for_consultation: request_for_consultation$1,
2527
+ ask_a_question_with_a_problem: ask_a_question_with_a_problem$1,
2528
+ live: live$1
2516
2529
  };
2517
2530
 
2518
2531
  i18n.use(initReactI18next).init({
@@ -2793,7 +2806,8 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
2793
2806
  var role = _ref.role,
2794
2807
  navigate = _ref.navigate,
2795
2808
  homeAcademyUrl = _ref.homeAcademyUrl,
2796
- homeUrl = _ref.homeUrl;
2809
+ homeUrl = _ref.homeUrl,
2810
+ hideAcademyName = _ref.hideAcademyName;
2797
2811
  var _useSwitchAcademy = useSwitchAcademy(role, navigate, homeAcademyUrl, homeUrl),
2798
2812
  academyList = _useSwitchAcademy.academyList,
2799
2813
  handleSwitchAcademy = _useSwitchAcademy.handleSwitchAcademy,
@@ -2827,15 +2841,15 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
2827
2841
  };
2828
2842
  return React.createElement(Fragment$1, null, React.createElement(Button, {
2829
2843
  onClick: handleOpen,
2830
- className: "" + stylesGlobal["academy-btn"],
2844
+ className: "" + styles["academy-btn"],
2831
2845
  sx: _extends({}, popoverStyle)
2832
2846
  }, React.createElement("div", {
2833
- className: "" + stylesGlobal["image-academy"]
2847
+ className: styles["image-academy"] + " me-0 me-lg-2"
2834
2848
  }, selectedAcademy !== null && selectedAcademy !== void 0 && selectedAcademy.image ? React.createElement("img", {
2835
2849
  src: selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.image,
2836
2850
  alt: selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.name
2837
- }) : React.createElement("span", null, firstLetter)), React.createElement(Typography, {
2838
- className: "text-start",
2851
+ }) : React.createElement("span", null, firstLetter)), !hideAcademyName && React.createElement(Typography, {
2852
+ className: "text-start d-none d-lg-block",
2839
2853
  sx: {
2840
2854
  fontSize: 14,
2841
2855
  fontWeight: 600,
@@ -2843,7 +2857,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
2843
2857
  minWidth: 150
2844
2858
  }
2845
2859
  }, (selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.name) || t(role === Role.Admin ? "switch_academy_admin" : "switch_academy")), React.createElement("div", {
2846
- className: "" + stylesGlobal["switch-icon"]
2860
+ className: styles["switch-icon"] + " d-none d-lg-flex"
2847
2861
  }, React.createElement(GoArrowSwitch, {
2848
2862
  size: 14
2849
2863
  }))), (isSuperAdmin || !isAdmin) && React.createElement(Popover, {
@@ -2864,7 +2878,10 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
2864
2878
  p: 0.5,
2865
2879
  mt: 1,
2866
2880
  ml: 0.75,
2867
- width: 300,
2881
+ width: {
2882
+ xs: 200,
2883
+ lg: 300
2884
+ },
2868
2885
  minWidth: "unset!important"
2869
2886
  }
2870
2887
  }
@@ -2885,7 +2902,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
2885
2902
  fontWeight: 600
2886
2903
  }
2887
2904
  }, React.createElement("div", {
2888
- className: "" + stylesGlobal["image-academy"]
2905
+ className: styles["image-academy"] + " " + styles["image-academy--item"]
2889
2906
  }, option.image ? React.createElement(Box$1, {
2890
2907
  component: "img",
2891
2908
  alt: option.name,
@@ -2995,7 +3012,7 @@ var CustomSelect = function CustomSelect(_ref) {
2995
3012
  }, rest));
2996
3013
  };
2997
3014
 
2998
- var styles = {"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"};
3015
+ 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"};
2999
3016
 
3000
3017
  var iconPersonNoActive = function iconPersonNoActive(_ref) {
3001
3018
  var _ref$width = _ref.width,
@@ -3141,7 +3158,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
3141
3158
  padding: "4px 0"
3142
3159
  }, React.createElement(Box, null, showName && isStudent && React.createElement(Box, {
3143
3160
  gap: "8px",
3144
- className: " " + styles["name-sender"],
3161
+ className: " " + styles$1["name-sender"],
3145
3162
  display: "flex",
3146
3163
  alignItems: "center",
3147
3164
  flexDirection: "row"
@@ -3196,7 +3213,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
3196
3213
  objectFit: "contain"
3197
3214
  }
3198
3215
  })) : React.createElement("div", {
3199
- className: styles["wrap-content"] + " " + styles["content-chat-receiver"],
3216
+ className: styles$1["wrap-content"] + " " + styles$1["content-chat-receiver"],
3200
3217
  style: {
3201
3218
  "float": "inline-end"
3202
3219
  }
@@ -3234,7 +3251,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
3234
3251
  display: "flex",
3235
3252
  padding: "4px",
3236
3253
  flexDirection: "row",
3237
- className: "" + styles["name-sender"]
3254
+ className: "" + styles$1["name-sender"]
3238
3255
  }, isStudent ? React.createElement(Fragment$1, null, React.createElement(Typography, {
3239
3256
  fontWeight: 500,
3240
3257
  fontSize: 14,
@@ -3274,7 +3291,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
3274
3291
  objectFit: "contain"
3275
3292
  }
3276
3293
  })) : React.createElement("div", {
3277
- className: styles["wrap-content"] + " " + styles["content-chat-sender"]
3294
+ className: styles$1["wrap-content"] + " " + styles$1["content-chat-sender"]
3278
3295
  }, React.createElement(Typography, {
3279
3296
  fontWeight: 500,
3280
3297
  fontSize: "14px",
@@ -3487,7 +3504,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
3487
3504
  _objectDestructuringEmpty(_ref2);
3488
3505
  return React.createElement(Form, null, React.createElement("label", {
3489
3506
  htmlFor: "content",
3490
- className: styles['form-label'] + " " + styles['form-label-dialog']
3507
+ className: styles$1['form-label'] + " " + styles$1['form-label-dialog']
3491
3508
  }, "\uC9C8\uBB38\uD560 \uBB38\uC81C"), React.createElement(Field, {
3492
3509
  id: "content",
3493
3510
  style: {
@@ -3496,7 +3513,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
3496
3513
  name: "content",
3497
3514
  validate: validate,
3498
3515
  placeholder: "\uBB38\uC81C\uAC00 \uC5B4\uB824\uC6CC\uC694",
3499
- className: styles['form-control']
3516
+ className: styles$1['form-control']
3500
3517
  }), React.createElement(DialogActions, {
3501
3518
  sx: {
3502
3519
  display: 'flex',
@@ -3505,14 +3522,14 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
3505
3522
  padding: '12px'
3506
3523
  }
3507
3524
  }, React.createElement(Button, {
3508
- className: styles['btn-cancel'],
3525
+ className: styles$1['btn-cancel'],
3509
3526
  onClick: onClose
3510
3527
  }, React.createElement(Typography, {
3511
3528
  fontWeight: 700,
3512
3529
  fontSize: '14px',
3513
3530
  lineHeight: '16.71px'
3514
3531
  }, "\uCDE8\uC18C")), React.createElement(Button, {
3515
- className: styles['btn-register'],
3532
+ className: styles$1['btn-register'],
3516
3533
  type: "submit"
3517
3534
  }, React.createElement(Typography, {
3518
3535
  fontWeight: 700,
@@ -3561,14 +3578,14 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
3561
3578
  padding: '12px'
3562
3579
  }
3563
3580
  }, React.createElement(Button, {
3564
- className: styles['btn-cancel'],
3581
+ className: styles$1['btn-cancel'],
3565
3582
  onClick: onClose
3566
3583
  }, React.createElement(Typography, {
3567
3584
  fontWeight: 700,
3568
3585
  fontSize: '14px',
3569
3586
  lineHeight: '16.71px'
3570
3587
  }, "\uCDE8\uC18C")), React.createElement(Button, {
3571
- className: styles['btn-register'],
3588
+ className: styles$1['btn-register'],
3572
3589
  sx: {
3573
3590
  bgcolor: !(selectedFile !== null && selectedFile !== void 0 && selectedFile.content) ? "#EBEBFF !important" : "#5458D5 !important"
3574
3591
  },
@@ -3742,7 +3759,7 @@ var ChatList = function ChatList(_ref) {
3742
3759
  var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Roles$1.Student);
3743
3760
  return React.createElement("ul", {
3744
3761
  ref: listItemRef,
3745
- className: styles["list"] + " " + styles["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
3762
+ 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' : '')
3746
3763
  }, !(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && React.createElement("li", {
3747
3764
  className: "text-muted text-center fst-italic fs-6"
3748
3765
  }, "No message"), !!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && filterMessage.map(function (message) {
@@ -3849,7 +3866,7 @@ var InputChat = function InputChat(_ref) {
3849
3866
  color: "#fff",
3850
3867
  size: 30
3851
3868
  }))), React.createElement("input", {
3852
- className: styles["input-chat"],
3869
+ className: styles$1["input-chat"],
3853
3870
  style: {
3854
3871
  border: "none"
3855
3872
  },
@@ -3876,7 +3893,7 @@ var InputChat = function InputChat(_ref) {
3876
3893
  sx: {
3877
3894
  bgcolor: isCompleted ? "#EBEBFF !important" : "#5458D5 !important"
3878
3895
  },
3879
- className: styles["btn-send"],
3896
+ className: styles$1["btn-send"],
3880
3897
  disabled: isCompleted,
3881
3898
  onClick: handleSubmit
3882
3899
  }, React.createElement(iconSendMessage, null), React.createElement(Typography, {
@@ -3930,6 +3947,37 @@ var iconChecked = function iconChecked(_ref) {
3930
3947
  }));
3931
3948
  };
3932
3949
 
3950
+ var ellipsisText = function ellipsisText(text, maxLength) {
3951
+ if (!text) return text;
3952
+ return (text === null || text === void 0 ? void 0 : text.length) > maxLength ? text.slice(0, maxLength) + " ..." : text;
3953
+ };
3954
+ var formatDataMyAnswer = function formatDataMyAnswer(inputData, categories) {
3955
+ var uniqueCategories = new Set();
3956
+ var filterCategories = categories.filter(function (category) {
3957
+ if (!uniqueCategories.has(category.name)) {
3958
+ uniqueCategories.add(category.name);
3959
+ return true;
3960
+ }
3961
+ return false;
3962
+ });
3963
+ var questionsByCategory = filterCategories.map(function (category) {
3964
+ return {
3965
+ category: category,
3966
+ questions: inputData.questions.filter(function (question) {
3967
+ return question.category.name === category.name;
3968
+ })
3969
+ };
3970
+ });
3971
+ return questionsByCategory;
3972
+ };
3973
+ var formatTimeSecond = function formatTimeSecond(duration, t) {
3974
+ duration = Math.round(duration);
3975
+ return "" + (duration < 60 ? "" + duration + t("seconds") : t("mins_mins_seconds_seconds", {
3976
+ mins: Math.floor(duration / 60),
3977
+ seconds: duration % 60
3978
+ }));
3979
+ };
3980
+
3933
3981
  var ChatHeader = function ChatHeader(_ref) {
3934
3982
  var fullName = _ref.fullName,
3935
3983
  examTitle = _ref.examTitle,
@@ -3950,6 +3998,7 @@ var ChatHeader = function ChatHeader(_ref) {
3950
3998
  handleConfirm = _useDialog.handleConfirm;
3951
3999
  var _useTranslation = useTranslation(),
3952
4000
  t = _useTranslation.t;
4001
+ var isTabletUp = useMediaQuery('(min-width:900px)');
3953
4002
  var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Roles$1.Student);
3954
4003
  var filterDurationExam = useMemo(function () {
3955
4004
  if (!durationExam) return;
@@ -3978,7 +4027,7 @@ var ChatHeader = function ChatHeader(_ref) {
3978
4027
  alignItems: "center",
3979
4028
  flexDirection: "row",
3980
4029
  gap: "8px"
3981
- }, React.createElement(iconPersonNoActive, null), React.createElement(Typography, {
4030
+ }, React.createElement(iconPersonNoActive, null), isTabletUp && React.createElement(Typography, {
3982
4031
  fontWeight: 500,
3983
4032
  fontSize: "14px",
3984
4033
  lineHeight: "16.71px",
@@ -3988,7 +4037,7 @@ var ChatHeader = function ChatHeader(_ref) {
3988
4037
  fontSize: "14px",
3989
4038
  lineHeight: "16.71px",
3990
4039
  color: "#5458D5"
3991
- }, teacherName)), !!examTitle && React.createElement(Box, {
4040
+ }, ellipsisText(teacherName || "", 15))), !!examTitle && React.createElement(Box, {
3992
4041
  display: "flex",
3993
4042
  alignItems: "start",
3994
4043
  color: "#5458D5",
@@ -3998,7 +4047,7 @@ var ChatHeader = function ChatHeader(_ref) {
3998
4047
  fontWeight: 600,
3999
4048
  fontSize: "12px",
4000
4049
  lineHeight: "14.32px"
4001
- }, examTitle), React.createElement(Box, {
4050
+ }, ellipsisText(examTitle || "", 15)), React.createElement(Box, {
4002
4051
  display: "flex",
4003
4052
  flexDirection: "row",
4004
4053
  gap: "4px"
@@ -4078,7 +4127,7 @@ var ChatHeader = function ChatHeader(_ref) {
4078
4127
  alignItems: "center",
4079
4128
  gap: "24px",
4080
4129
  color: "#5458D5"
4081
- }, React.createElement(Box, {
4130
+ }, isTabletUp && React.createElement(Box, {
4082
4131
  display: "flex",
4083
4132
  justifyContent: "space-between",
4084
4133
  alignItems: "center",
@@ -4091,7 +4140,7 @@ var ChatHeader = function ChatHeader(_ref) {
4091
4140
  fontWeight: 700,
4092
4141
  fontSize: "14px",
4093
4142
  lineHeight: "16.71px"
4094
- }, fullName)), React.createElement(Box, {
4143
+ }, ellipsisText(fullName || "", 10))), React.createElement(Box, {
4095
4144
  display: "flex",
4096
4145
  alignItems: "center",
4097
4146
  gap: "24px",
@@ -4100,7 +4149,7 @@ var ChatHeader = function ChatHeader(_ref) {
4100
4149
  fontWeight: 600,
4101
4150
  fontSize: "12px",
4102
4151
  lineHeight: "14.32px"
4103
- }, examTitle) : React.createElement(Box, {
4152
+ }, ellipsisText(examTitle || "", 10)) : React.createElement(Box, {
4104
4153
  display: "flex",
4105
4154
  alignItems: "end",
4106
4155
  gap: "16px",
@@ -4245,7 +4294,7 @@ var ChatContainer = function ChatContainer(_ref) {
4245
4294
  container: true
4246
4295
  }, React.createElement(ChatHeader, Object.assign({}, chatHeaderProps)), React.createElement("div", {
4247
4296
  ref: listRef,
4248
- className: "flex-grow-1 " + styles["body"],
4297
+ className: "flex-grow-1 " + styles$1["body"],
4249
4298
  style: {
4250
4299
  height: "60vh",
4251
4300
  overflowY: "scroll",
@@ -4750,7 +4799,7 @@ var InputText = function InputText(props) {
4750
4799
  }, props));
4751
4800
  };
4752
4801
 
4753
- var styles$1 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question--active":"_3IHYm","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
4802
+ var styles$2 = {"question":"_2uc_W","question-article":"_2p7kY","question-title":"_2tHmc","question--active":"_3IHYm","question-label":"_26ATj","question-input":"_3R8PR","question-btn":"_1VZac"};
4754
4803
 
4755
4804
  var SCORE_OPTIONS = Array.from({
4756
4805
  length: 10
@@ -4807,12 +4856,15 @@ var QuestionView = function QuestionView(_ref) {
4807
4856
  var handleChangeCorrectAnswer = function handleChangeCorrectAnswer(e) {
4808
4857
  return onChangeCorrectAnswers(e.target.value, index);
4809
4858
  };
4810
- return React.createElement("div", {
4811
- className: "d-flex justify-content-between"
4812
- }, React.createElement("div", {
4813
- className: "d-flex flex-grow-1"
4859
+ return React.createElement(Grid, {
4860
+ container: true,
4861
+ spacing: "16px"
4862
+ }, React.createElement(Grid, {
4863
+ item: true,
4864
+ xs: 12,
4865
+ lg: 9
4814
4866
  }, React.createElement("div", {
4815
- className: styles$1["question-title"] + " me-2 text-nowrap"
4867
+ className: styles$2["question-title"] + " me-2 text-nowrap"
4816
4868
  }, t("problem_number_question", {
4817
4869
  number: question.questionOrder + 1
4818
4870
  })), React.createElement(FormControl, {
@@ -4828,7 +4880,7 @@ var QuestionView = function QuestionView(_ref) {
4828
4880
  }).map(function (i) {
4829
4881
  return React.createElement(FormControlLabel, {
4830
4882
  key: i,
4831
- className: styles$1["question-label"] + " w-fit",
4883
+ className: styles$2["question-label"] + " w-fit",
4832
4884
  labelPlacement: "top",
4833
4885
  value: i,
4834
4886
  onChange: handleChangeCorrectAnswer,
@@ -4840,10 +4892,12 @@ var QuestionView = function QuestionView(_ref) {
4840
4892
  number: i
4841
4893
  })
4842
4894
  });
4843
- })))), React.createElement("div", {
4844
- className: "d-flex align-items-center"
4895
+ })))), React.createElement(Grid, {
4896
+ item: true,
4897
+ xs: 12,
4898
+ lg: 3,
4899
+ mb: "16px"
4845
4900
  }, React.createElement(FormControl, {
4846
- className: "mx-3",
4847
4901
  style: {
4848
4902
  width: "140px"
4849
4903
  }
@@ -5047,6 +5101,8 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
5047
5101
  subjectId: defaultCategoryOptions === undefined ? selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id : undefined
5048
5102
  }),
5049
5103
  categoryOptions = _useCategorySelect.categoryOptions;
5104
+ var theme = useTheme();
5105
+ var isTabletUp = useMediaQuery(theme.breakpoints.up('lg'));
5050
5106
  var handleChangeQuestionCount = function handleChangeQuestionCount(value) {
5051
5107
  onChangeQuestionCount(article, value === null || value === void 0 ? void 0 : value.value, answerCount);
5052
5108
  };
@@ -5066,7 +5122,7 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
5066
5122
  onDelete === null || onDelete === void 0 ? void 0 : onDelete(article);
5067
5123
  };
5068
5124
  return React.createElement("div", {
5069
- className: "d-flex " + styles$1["question"] + " " + (isActive ? styles$1["question--active"] : "")
5125
+ className: "d-flex " + styles$2["question"] + " " + (isActive ? styles$2["question--active"] : "")
5070
5126
  }, React.createElement("div", {
5071
5127
  className: "py-1"
5072
5128
  }, React.createElement(PiDotsNineLight, {
@@ -5074,20 +5130,30 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
5074
5130
  })), React.createElement("div", {
5075
5131
  className: "px-4"
5076
5132
  }, React.createElement("p", {
5077
- className: "mb-0 " + styles$1["question-article"]
5133
+ className: "mb-0 " + styles$2["question-article"]
5078
5134
  }, t("article_number")), React.createElement("p", {
5079
- className: "text-center " + styles$1["question-article"]
5135
+ className: "text-center " + styles$2["question-article"]
5080
5136
  }, article)), React.createElement("div", {
5081
5137
  className: "flex-grow-1"
5082
5138
  }, React.createElement(Grid, {
5083
5139
  container: true,
5084
5140
  spacing: 3
5085
- }, React.createElement(Grid, {
5141
+ }, !isTabletUp && React.createElement(Grid, {
5142
+ item: true,
5143
+ xs: 12,
5144
+ className: "d-flex justify-content-end"
5145
+ }, isDeletable && !isDisabled && React.createElement("div", null, React.createElement(IconButton, {
5146
+ onClick: handleDelete
5147
+ }, React.createElement(FaTrash, {
5148
+ size: 16,
5149
+ className: "text-danger"
5150
+ })))), React.createElement(Grid, {
5086
5151
  item: true,
5087
- xs: 3
5152
+ xs: 12,
5153
+ lg: 3
5088
5154
  }, React.createElement(FormGroup, null, React.createElement(FormLabel, {
5089
5155
  htmlFor: "question_count",
5090
- className: styles$1["question-label"] + " form-label"
5156
+ className: styles$2["question-label"] + " form-label"
5091
5157
  }, t("question_count")), React.createElement(QuestionCountSelector, {
5092
5158
  id: "question_count",
5093
5159
  value: questionCount,
@@ -5095,10 +5161,11 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
5095
5161
  isDisabled: isDisabled
5096
5162
  }))), React.createElement(Grid, {
5097
5163
  item: true,
5098
- xs: 3
5164
+ xs: 12,
5165
+ lg: 3
5099
5166
  }, React.createElement(FormGroup, null, React.createElement(FormLabel, {
5100
5167
  htmlFor: "category",
5101
- className: styles$1["question-label"] + " form-label"
5168
+ className: styles$2["question-label"] + " form-label"
5102
5169
  }, t("category")), React.createElement(ArticleCategorySelector, {
5103
5170
  id: "category",
5104
5171
  value: categoryId,
@@ -5108,16 +5175,17 @@ var ArticleGroupView = function ArticleGroupView(_ref) {
5108
5175
  placeholder: t("select_category")
5109
5176
  }))), React.createElement(Grid, {
5110
5177
  item: true,
5111
- xs: 3
5178
+ xs: 12,
5179
+ lg: 3
5112
5180
  }, React.createElement(FormGroup, null, React.createElement(FormLabel, {
5113
5181
  htmlFor: "answer_count",
5114
- className: styles$1["question-label"] + " form-label"
5182
+ className: styles$2["question-label"] + " form-label"
5115
5183
  }, t("answer_count")), React.createElement(AnswerCountSelector, {
5116
5184
  id: "answer_count",
5117
5185
  value: answerCount,
5118
5186
  onChange: handleChangeAnswerCount,
5119
5187
  isDisabled: isDisabled
5120
- }))), React.createElement(Grid, {
5188
+ }))), isTabletUp && React.createElement(Grid, {
5121
5189
  item: true,
5122
5190
  xs: 3,
5123
5191
  className: "d-flex justify-content-end"
@@ -5209,6 +5277,8 @@ var ChapterBox = function ChapterBox(_ref) {
5209
5277
  var handleUpdateArticleQuestionScore = function handleUpdateArticleQuestionScore(article, index, score) {
5210
5278
  onUpdateArticleQuestion === null || onUpdateArticleQuestion === void 0 ? void 0 : onUpdateArticleQuestion(article, index, score, "score", data.articles, data.id, parentChapterId);
5211
5279
  };
5280
+ var theme = useTheme();
5281
+ var isTabletUp = useMediaQuery(theme.breakpoints.up('lg'));
5212
5282
  var handleChangeName = function handleChangeName(e) {
5213
5283
  var text = e.target.value;
5214
5284
  onChangeName === null || onChangeName === void 0 ? void 0 : onChangeName(text, data.id, parentChapterId);
@@ -5256,17 +5326,52 @@ var ChapterBox = function ChapterBox(_ref) {
5256
5326
  className: "text-danger"
5257
5327
  }))), React.createElement("div", {
5258
5328
  className: "p-3 d-flex justify-content-between"
5329
+ }, React.createElement(Grid, {
5330
+ container: true
5331
+ }, React.createElement(Grid, {
5332
+ item: true,
5333
+ xs: 12
5334
+ }, React.createElement(Grid, {
5335
+ container: true,
5336
+ spacing: 2
5337
+ }, !isTabletUp && React.createElement(Grid, {
5338
+ item: true,
5339
+ xs: 12
5259
5340
  }, React.createElement(Stack, {
5260
- spacing: 2,
5261
- direction: "row"
5262
- }, React.createElement(Box, {
5341
+ direction: "row",
5342
+ justifyContent: "end",
5343
+ spacing: 2
5344
+ }, !parentChapterId && !data.articles.length && React.createElement(Button, {
5345
+ className: "mx-1",
5346
+ variant: "contained",
5347
+ color: "primary",
5348
+ disabled: isReadonly,
5349
+ startIcon: React.createElement(FaPlus, {
5350
+ size: 12
5351
+ }),
5352
+ onClick: handleClickAddSubchapter
5353
+ }, t("add_subchapter")), data.subChapters.length === 0 && React.createElement(Button, {
5354
+ className: "mx-1",
5355
+ variant: "contained",
5356
+ color: "success",
5357
+ disabled: isReadonly,
5358
+ startIcon: React.createElement(FaPlus, {
5359
+ size: 12
5360
+ }),
5361
+ onClick: handleAddArticle
5362
+ }, t("add_article")))), React.createElement(Grid, {
5363
+ item: true,
5364
+ xs: 12,
5365
+ lg: 4,
5263
5366
  sx: {
5264
5367
  display: "flex",
5265
5368
  alignItems: "center",
5266
- marginRight: "16px",
5267
5369
  width: "50%"
5268
5370
  }
5269
5371
  }, React.createElement("label", {
5372
+ style: {
5373
+ minWidth: "90px"
5374
+ },
5270
5375
  className: "fw-bold text-nowrap me-2"
5271
5376
  }, t("page.from"), ":"), React.createElement(InputText, {
5272
5377
  type: "number",
@@ -5276,13 +5381,19 @@ var ChapterBox = function ChapterBox(_ref) {
5276
5381
  onChange: handleChangePageFrom,
5277
5382
  placeholder: t("page.from_placeholder"),
5278
5383
  error: data.pageFrom > data.pageTo || data.pageFrom < 0
5279
- })), React.createElement(Box, {
5384
+ })), React.createElement(Grid, {
5385
+ item: true,
5386
+ xs: 12,
5387
+ lg: 4,
5280
5388
  sx: {
5281
5389
  display: "flex",
5282
5390
  alignItems: "center",
5283
5391
  width: "50%"
5284
5392
  }
5285
5393
  }, React.createElement("label", {
5394
+ style: {
5395
+ minWidth: "90px"
5396
+ },
5286
5397
  className: "fw-bold text-nowrap me-2"
5287
5398
  }, t("page.to"), ":"), React.createElement(InputText, {
5288
5399
  type: "number",
@@ -5292,7 +5403,10 @@ var ChapterBox = function ChapterBox(_ref) {
5292
5403
  onChange: handleChangePageTo,
5293
5404
  placeholder: t("page.to_placeholder"),
5294
5405
  error: data.pageTo < data.pageFrom
5295
- }))), React.createElement(Stack, {
5406
+ })), isTabletUp && React.createElement(Grid, {
5407
+ item: true,
5408
+ lg: 4
5409
+ }, React.createElement(Stack, {
5296
5410
  direction: "row",
5297
5411
  justifyContent: "end",
5298
5412
  spacing: 2
@@ -5314,7 +5428,7 @@ var ChapterBox = function ChapterBox(_ref) {
5314
5428
  size: 12
5315
5429
  }),
5316
5430
  onClick: handleAddArticle
5317
- }, t("add_article")))), React.createElement("div", {
5431
+ }, t("add_article")))))))), React.createElement("div", {
5318
5432
  className: "p-3"
5319
5433
  }, React.createElement(Stack, {
5320
5434
  spacing: 2
@@ -6577,9 +6691,9 @@ var SubjectSelector = function SubjectSelector(_ref) {
6577
6691
  !minimumTextSearchLength && defaultValueAtFirst && options.length && onChange(options[0], subjects[0]);
6578
6692
  }, [JSON.stringify(options), JSON.stringify(subjects), defaultValueAtFirst, minimumTextSearchLength]);
6579
6693
  return React.createElement(FormGroup, {
6580
- className: "" + stylesGlobal["filter-item"]
6694
+ className: "" + styles["filter-item"]
6581
6695
  }, !!title && React.createElement("label", {
6582
- className: "" + stylesGlobal["title-form"]
6696
+ className: "" + styles["title-form"]
6583
6697
  }, title), React.createElement(CustomSelectOption, {
6584
6698
  options: options,
6585
6699
  inputValue: searchString,
@@ -7033,7 +7147,7 @@ var LayoutList = function LayoutList(_ref) {
7033
7147
  var children = _ref.children,
7034
7148
  title = _ref.title;
7035
7149
  return React.createElement(Box, {
7036
- className: 'bg-white p-5'
7150
+ className: 'bg-white p-3'
7037
7151
  }, React.createElement(Stack, {
7038
7152
  direction: "row",
7039
7153
  alignItems: "center",
@@ -7048,12 +7162,12 @@ var SortIcon = function SortIcon(_ref) {
7048
7162
  var isAscending = _ref.isAscending,
7049
7163
  onClick = _ref.onClick;
7050
7164
  return React.createElement("div", {
7051
- className: "d-flex flex-column " + stylesGlobal["sort-icons"],
7165
+ className: "d-flex flex-column " + styles["sort-icons"],
7052
7166
  onClick: onClick
7053
7167
  }, React.createElement(FaSortUp, {
7054
- className: isAscending === true ? stylesGlobal["active"] : ""
7168
+ className: isAscending === true ? styles["active"] : ""
7055
7169
  }), React.createElement(FaSortDown, {
7056
- className: isAscending === false ? stylesGlobal["active"] : ""
7170
+ className: isAscending === false ? styles["active"] : ""
7057
7171
  }));
7058
7172
  };
7059
7173
 
@@ -7556,17 +7670,17 @@ var ExamDetailView = function ExamDetailView(_ref) {
7556
7670
  return React.createElement(Grid, {
7557
7671
  container: true,
7558
7672
  spacing: 3,
7559
- className: className + " " + stylesGlobal["custom-row"]
7673
+ className: className + " " + styles["custom-row"]
7560
7674
  }, React.createElement(Grid, {
7561
7675
  item: true,
7562
7676
  xs: 5,
7563
7677
  className: 'mb-2'
7564
7678
  }, React.createElement("label", {
7565
- className: stylesGlobal["form-label"] + " " + styles$1["question-label"],
7679
+ className: styles["form-label"] + " " + styles$2["question-label"],
7566
7680
  htmlFor: "title"
7567
7681
  }, t("title")), React.createElement("input", {
7568
7682
  disabled: isDisabled,
7569
- className: "" + stylesGlobal["form-control"],
7683
+ className: "" + styles["form-control"],
7570
7684
  value: exam.title,
7571
7685
  id: "title",
7572
7686
  placeholder: t("enter_title"),
@@ -7576,7 +7690,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
7576
7690
  xs: 3,
7577
7691
  className: 'mb-2'
7578
7692
  }, React.createElement("label", {
7579
- className: stylesGlobal["form-label"] + " " + styles$1["question-label"],
7693
+ className: styles["form-label"] + " " + styles$2["question-label"],
7580
7694
  htmlFor: "duration"
7581
7695
  }, t("duration")), React.createElement(CustomSelect, {
7582
7696
  inputId: "duration",
@@ -7589,7 +7703,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
7589
7703
  xs: 3,
7590
7704
  className: 'mb-2'
7591
7705
  }, React.createElement("label", {
7592
- className: stylesGlobal["form-label"] + " " + styles$1["question-label"],
7706
+ className: styles["form-label"] + " " + styles$2["question-label"],
7593
7707
  htmlFor: "duration"
7594
7708
  }, t("subject"), " ", selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.name), React.createElement(CustomSelect, {
7595
7709
  inputId: "subject",
@@ -7620,7 +7734,7 @@ var ExamDetailView = function ExamDetailView(_ref) {
7620
7734
  xs: 12
7621
7735
  }, React.createElement("button", {
7622
7736
  disabled: isDisabled,
7623
- className: stylesGlobal["btn-outline-primary"] + " w-100 d-flex justify-content-center align-items-center " + styles$1["question-btn"] + " mt-3",
7737
+ className: styles["btn-outline-primary"] + " w-100 d-flex justify-content-center align-items-center " + styles$2["question-btn"] + " mt-3",
7624
7738
  onClick: handleAddArticle
7625
7739
  }, React.createElement(FaPlusCircle, {
7626
7740
  className: "me-2"
@@ -8546,10 +8660,15 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
8546
8660
  enabled: true,
8547
8661
  hideEmptySeries: true,
8548
8662
  y: {
8549
- formatter: function formatter(value, _ref) {
8663
+ formatter: function formatter(val, _ref) {
8550
8664
  var dataPointIndex = _ref.dataPointIndex;
8551
8665
  if (dataPointIndex > 0) {
8552
- return value != null ? "\uBB38\uC81C " + (timelyOrderQuestion[dataChartIndex] ? timelyOrderQuestion[dataChartIndex].questions.length - value + 1 : value) + "\uBC88" : "데이터 없음";
8666
+ var _timelyOrderQuestion$, _questions$length, _questions;
8667
+ var questions = ((_timelyOrderQuestion$ = timelyOrderQuestion[dataChartIndex]) === null || _timelyOrderQuestion$ === void 0 ? void 0 : _timelyOrderQuestion$.questions) || null;
8668
+ var questionLength = (_questions$length = questions === null || questions === void 0 ? void 0 : questions.length) != null ? _questions$length : 0;
8669
+ return val != null ? t("problem_number_question", {
8670
+ number: questions !== null ? ((_questions = questions[questionLength - val]) === null || _questions === void 0 ? void 0 : _questions.questionOrder) + 1 : val
8671
+ }) : t("no_data");
8553
8672
  }
8554
8673
  return null;
8555
8674
  }
@@ -8557,7 +8676,7 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
8557
8676
  },
8558
8677
  legend: {
8559
8678
  show: true,
8560
- fontSize: '12px',
8679
+ fontSize: "12px",
8561
8680
  fontWeight: 600,
8562
8681
  markers: {
8563
8682
  width: 16,
@@ -8581,11 +8700,11 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
8581
8700
  }), ["."]),
8582
8701
  axisBorder: {
8583
8702
  show: true,
8584
- color: '#E4E7EC'
8703
+ color: "#E4E7EC"
8585
8704
  },
8586
8705
  labels: {
8587
8706
  style: {
8588
- fontSize: '10px'
8707
+ fontSize: "10px"
8589
8708
  }
8590
8709
  }
8591
8710
  },
@@ -8607,25 +8726,30 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
8607
8726
  max: timelyOrderQuestion[dataChartIndex] ? timelyOrderQuestion[dataChartIndex].questions.length + 1 : 1,
8608
8727
  axisBorder: {
8609
8728
  show: true,
8610
- color: '#E4E7EC'
8729
+ color: "#E4E7EC"
8611
8730
  },
8612
8731
  labels: {
8613
8732
  formatter: function formatter(val) {
8614
- return val != null ? "\uBB38\uC81C " + (timelyOrderQuestion[dataChartIndex] ? timelyOrderQuestion[dataChartIndex].questions.length - val + 1 : val) + "\uBC88" : "데이터 없음";
8733
+ var _timelyOrderQuestion$2, _questions$length2, _questions2;
8734
+ var questions = ((_timelyOrderQuestion$2 = timelyOrderQuestion[dataChartIndex]) === null || _timelyOrderQuestion$2 === void 0 ? void 0 : _timelyOrderQuestion$2.questions) || null;
8735
+ var questionLength = (_questions$length2 = questions === null || questions === void 0 ? void 0 : questions.length) != null ? _questions$length2 : 0;
8736
+ return val != null ? t("problem_number_question", {
8737
+ number: questions !== null ? ((_questions2 = questions[questionLength - val]) === null || _questions2 === void 0 ? void 0 : _questions2.questionOrder) + 1 : val
8738
+ }) : t("no_data");
8615
8739
  },
8616
8740
  style: {
8617
- fontSize: '10px'
8741
+ fontSize: "10px"
8618
8742
  }
8619
8743
  }
8620
8744
  }
8621
8745
  };
8622
- }, [JSON.stringify(timelyOrderQuestion[dataChartIndex]), language]);
8746
+ }, [JSON.stringify(timelyOrderQuestion), dataChartIndex, language]);
8623
8747
  var series = useMemo(function () {
8624
8748
  if (!timelyOrderQuestion.length || timelyOrderQuestion.length < dataChartIndex + 1 || dataChartIndex < 0) return [{
8625
- name: "내 순서",
8749
+ name: t("my_problem_solving_order"),
8626
8750
  data: []
8627
8751
  }, {
8628
- name: "상위권 학생의 순서",
8752
+ name: t("top_rankings_problem_solving_order"),
8629
8753
  data: []
8630
8754
  }];
8631
8755
  var data = timelyOrderQuestion[dataChartIndex];
@@ -8639,23 +8763,23 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
8639
8763
  });
8640
8764
  });
8641
8765
  var mySeriesData = [null].concat(questionsData.sort(function (a, b) {
8642
- return a.answerOrder > b.answerOrder ? 1 : b.answerOrder > a.answerOrder ? -1 : 0;
8766
+ return b.answerOrder === 0 ? -1 : a.answerOrder > b.answerOrder ? 1 : b.answerOrder > a.answerOrder ? -1 : 0;
8643
8767
  }).map(function (item) {
8644
- return data.questions.length - item.questionOrder;
8768
+ return item.answerOrder === 0 ? null : data.questions.length - item.questionOrder;
8645
8769
  }), [null]);
8646
8770
  var topSeriesData = [null].concat(questionsData.sort(function (a, b) {
8647
- return a.topAnswerOrder > b.topAnswerOrder ? 1 : b.topAnswerOrder > a.topAnswerOrder ? -1 : 0;
8771
+ return b.topAnswerOrder === 0 ? -1 : a.topAnswerOrder > b.topAnswerOrder ? 1 : b.topAnswerOrder > a.topAnswerOrder ? -1 : 0;
8648
8772
  }).map(function (item) {
8649
- return item.topAnswerOrder == null ? null : data.questions.length - item.questionOrder;
8773
+ return item.topAnswerOrder === 0 ? null : data.questions.length - item.questionOrder;
8650
8774
  }), [null]);
8651
8775
  return [{
8652
- name: "내 순서",
8776
+ name: t("my_problem_solving_order"),
8653
8777
  data: mySeriesData
8654
8778
  }, {
8655
- name: "상위권 학생의 순서",
8779
+ name: t("top_rankings_problem_solving_order"),
8656
8780
  data: topSeriesData
8657
8781
  }];
8658
- }, [JSON.stringify(timelyOrderQuestion), dataChartIndex]);
8782
+ }, [JSON.stringify(timelyOrderQuestion), dataChartIndex, language]);
8659
8783
  var handleExportPdf = function handleExportPdf() {
8660
8784
  try {
8661
8785
  var canvas = document.querySelector("#canvas");
@@ -9812,34 +9936,7 @@ Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==t
9812
9936
 
9813
9937
  var ReactApexChart = unwrapExports(reactApexcharts_min);
9814
9938
 
9815
- var styles$2 = {"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","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","compareGrass":"_1_fJu","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"};
9816
-
9817
- var formatDataMyAnswer = function formatDataMyAnswer(inputData, categories) {
9818
- var uniqueCategories = new Set();
9819
- var filterCategories = categories.filter(function (category) {
9820
- if (!uniqueCategories.has(category.name)) {
9821
- uniqueCategories.add(category.name);
9822
- return true;
9823
- }
9824
- return false;
9825
- });
9826
- var questionsByCategory = filterCategories.map(function (category) {
9827
- return {
9828
- category: category,
9829
- questions: inputData.questions.filter(function (question) {
9830
- return question.category.name === category.name;
9831
- })
9832
- };
9833
- });
9834
- return questionsByCategory;
9835
- };
9836
- var formatTimeSecond = function formatTimeSecond(duration, t) {
9837
- duration = Math.round(duration);
9838
- return "" + (duration < 60 ? "" + duration + t("seconds") : t("mins_mins_seconds_seconds", {
9839
- mins: Math.floor(duration / 60),
9840
- seconds: duration % 60
9841
- }));
9842
- };
9939
+ var styles$3 = {"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","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","compareGrass":"_1_fJu","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"};
9843
9940
 
9844
9941
  var iconStarQuestion = function iconStarQuestion(_ref) {
9845
9942
  var _ref$width = _ref.width,
@@ -10130,7 +10227,7 @@ function CreateNewQuestionDialog(_ref) {
10130
10227
  padding: "24px 24px 40px 24px"
10131
10228
  }, React.createElement(Stack, null, React.createElement("label", {
10132
10229
  htmlFor: "questions",
10133
- className: stylesGlobal['form-label'] + " " + styles$2['form-label-dialog']
10230
+ className: styles['form-label'] + " " + styles$3['form-label-dialog']
10134
10231
  }, "\uC9C8\uBB38\uD560 \uBB38\uC81C"), React.createElement(Field, {
10135
10232
  as: "select",
10136
10233
  id: "questions",
@@ -10138,7 +10235,7 @@ function CreateNewQuestionDialog(_ref) {
10138
10235
  style: {
10139
10236
  width: "100%"
10140
10237
  },
10141
- className: "" + stylesGlobal['form-select']
10238
+ className: "" + styles['form-select']
10142
10239
  }, questions === null || questions === void 0 ? void 0 : questions.map(function (question) {
10143
10240
  return React.createElement("option", {
10144
10241
  value: question === null || question === void 0 ? void 0 : question.id
@@ -10147,7 +10244,7 @@ function CreateNewQuestionDialog(_ref) {
10147
10244
  }));
10148
10245
  }))), React.createElement(Stack, null, React.createElement("label", {
10149
10246
  htmlFor: "content-question",
10150
- className: stylesGlobal['form-label'] + " " + styles$2['form-label-dialog']
10247
+ className: styles['form-label'] + " " + styles$3['form-label-dialog']
10151
10248
  }, "\uC9C8\uBB38 \uB0B4\uC6A9"), React.createElement(Box, {
10152
10249
  position: 'relative',
10153
10250
  display: 'flex',
@@ -10160,7 +10257,7 @@ function CreateNewQuestionDialog(_ref) {
10160
10257
  },
10161
10258
  name: "content",
10162
10259
  placeholder: "\uBB38\uC81C\uAC00 \uC5B4\uB824\uC6CC\uC694",
10163
- className: stylesGlobal['form-control']
10260
+ className: styles['form-control']
10164
10261
  }), (errors === null || errors === void 0 ? void 0 : errors.content) && React.createElement(Box, {
10165
10262
  position: 'absolute',
10166
10263
  right: 0,
@@ -10183,14 +10280,14 @@ function CreateNewQuestionDialog(_ref) {
10183
10280
  borderTop: "1px solid #CED2DA"
10184
10281
  }
10185
10282
  }, React.createElement(Button$1, {
10186
- className: styles$2['btn-cancel'],
10283
+ className: styles$3['btn-cancel'],
10187
10284
  onClick: toggleCreateQuestion
10188
10285
  }, React.createElement(Typography$1, {
10189
10286
  fontWeight: 700,
10190
10287
  fontSize: '14px',
10191
10288
  lineHeight: '16.71px'
10192
10289
  }, "\uCDE8\uC18C")), React.createElement(Button$1, {
10193
- className: styles$2['btn-register'],
10290
+ className: styles$3['btn-register'],
10194
10291
  type: "submit"
10195
10292
  }, React.createElement(Typography$1, {
10196
10293
  fontWeight: 700,
@@ -10222,7 +10319,7 @@ function MyAnswer(_ref) {
10222
10319
  toggleCreateQuestion();
10223
10320
  };
10224
10321
  return React.createElement("div", {
10225
- className: styles$2["myanswer"]
10322
+ className: styles$3["myanswer"]
10226
10323
  }, formattedData && formattedData.length > 0 && formattedData.map(function (item) {
10227
10324
  return React.createElement("div", {
10228
10325
  key: item.category.id
@@ -10230,9 +10327,9 @@ function MyAnswer(_ref) {
10230
10327
  bgcolor: "#F9FAFB",
10231
10328
  flexDirection: "row",
10232
10329
  padding: "12px",
10233
- className: styles$2["myAnswerItem"] + " " + stylesGlobal["noGutters"]
10330
+ className: styles$3["myAnswerItem"] + " " + styles["noGutters"]
10234
10331
  }, React.createElement("div", {
10235
- className: stylesGlobal["custom-col-2"],
10332
+ className: styles["custom-col-2"],
10236
10333
  style: {
10237
10334
  display: "flex",
10238
10335
  gap: "4px"
@@ -10244,7 +10341,7 @@ function MyAnswer(_ref) {
10244
10341
  color: "#97A1AF"
10245
10342
  }
10246
10343
  }, "\uBB38\uC81C \uBC88\uD638")), React.createElement("div", {
10247
- className: stylesGlobal["custom-col-2"],
10344
+ className: styles["custom-col-2"],
10248
10345
  style: {
10249
10346
  display: "flex",
10250
10347
  gap: "4px"
@@ -10256,7 +10353,7 @@ function MyAnswer(_ref) {
10256
10353
  color: "#97A1AF"
10257
10354
  }
10258
10355
  }, "\uC815\uB2F5")), React.createElement("div", {
10259
- className: stylesGlobal["custom-col-2"],
10356
+ className: styles["custom-col-2"],
10260
10357
  style: {
10261
10358
  display: "flex",
10262
10359
  gap: "4px"
@@ -10268,7 +10365,7 @@ function MyAnswer(_ref) {
10268
10365
  color: "#97A1AF"
10269
10366
  }
10270
10367
  }, "\uD480\uC774 \uC2DC\uAC04")), React.createElement("div", {
10271
- className: stylesGlobal["custom-col-2"],
10368
+ className: styles["custom-col-2"],
10272
10369
  style: {
10273
10370
  display: "flex",
10274
10371
  alignItems: "center",
@@ -10281,7 +10378,7 @@ function MyAnswer(_ref) {
10281
10378
  color: "#97A1AF"
10282
10379
  }
10283
10380
  }, "\uC0C1\uC704\uAD8C \uBE44\uAD50")), React.createElement("div", {
10284
- className: stylesGlobal["custom-col-2"],
10381
+ className: styles["custom-col-2"],
10285
10382
  style: {
10286
10383
  display: "flex",
10287
10384
  alignItems: "center",
@@ -10294,7 +10391,7 @@ function MyAnswer(_ref) {
10294
10391
  color: "#97A1AF"
10295
10392
  }
10296
10393
  }, "\uC804\uCCB4 \uC815\uB2F5\uB960"))), React.createElement("div", {
10297
- className: styles$2["titleMyAnswer2"]
10394
+ className: styles$3["titleMyAnswer2"]
10298
10395
  }, React.createElement(Typography, {
10299
10396
  sx: {
10300
10397
  color: "#97A1AF",
@@ -10307,7 +10404,7 @@ function MyAnswer(_ref) {
10307
10404
  fontWeight: 700
10308
10405
  }
10309
10406
  }, item.category.name)), React.createElement("div", {
10310
- className: styles$2["contentMyAnswer"]
10407
+ className: styles$3["contentMyAnswer"]
10311
10408
  }, item.questions.map(function (question, index) {
10312
10409
  return React.createElement("div", {
10313
10410
  style: isOpenTime[question.id] ? {
@@ -10316,9 +10413,9 @@ function MyAnswer(_ref) {
10316
10413
  } : {},
10317
10414
  key: question.id
10318
10415
  }, React.createElement("div", {
10319
- className: styles$2["myAnswerItem"] + " " + stylesGlobal["noGutters"]
10416
+ className: styles$3["myAnswerItem"] + " " + styles["noGutters"]
10320
10417
  }, React.createElement("div", {
10321
- className: stylesGlobal["custom-col-2"],
10418
+ className: styles["custom-col-2"],
10322
10419
  style: {
10323
10420
  display: "flex",
10324
10421
  alignItems: "center",
@@ -10326,22 +10423,22 @@ function MyAnswer(_ref) {
10326
10423
  padding: "4px 8px"
10327
10424
  }
10328
10425
  }, question.isStar ? React.createElement(iconStarQuestion, null) : React.createElement(iconNoStarQuestion, null), React.createElement("span", {
10329
- className: styles$2["questionOrder"]
10426
+ className: styles$3["questionOrder"]
10330
10427
  }, question.questionOrder + 1, "\uBC88")), React.createElement("div", {
10331
- className: stylesGlobal["custom-col-2"],
10428
+ className: styles["custom-col-2"],
10332
10429
  style: {
10333
10430
  display: "flex",
10334
10431
  alignItems: "center",
10335
10432
  gap: "4px"
10336
10433
  }
10337
10434
  }, question.isCorrect && question.selectedAnswers !== "" && React.createElement(Fragment$1, null, React.createElement(iconCorrectAnswer, null), React.createElement("span", {
10338
- className: styles$2["answerCorrect"]
10435
+ className: styles$3["answerCorrect"]
10339
10436
  }, "\uC815\uB2F5")), !question.isCorrect && question.selectedAnswers !== "" && React.createElement(Fragment$1, null, React.createElement(iconCorrectAnswer$1, null), React.createElement("span", {
10340
- className: styles$2["answerIncorrect"]
10437
+ className: styles$3["answerIncorrect"]
10341
10438
  }, "\uC624\uB2F5")), question.selectedAnswers === "" && React.createElement(Fragment$1, null, React.createElement(iconNoGrass, null), React.createElement("span", {
10342
- className: styles$2["answerNograss"]
10439
+ className: styles$3["answerNograss"]
10343
10440
  }, "\uD480\uC774 \uC5C6\uC74C"))), React.createElement("div", {
10344
- className: stylesGlobal["custom-col-2"],
10441
+ className: styles["custom-col-2"],
10345
10442
  style: {
10346
10443
  display: "flex",
10347
10444
  alignItems: "center"
@@ -10350,14 +10447,14 @@ function MyAnswer(_ref) {
10350
10447
  style: {
10351
10448
  margin: 0
10352
10449
  },
10353
- className: styles$2["answer-response"] + " " + styles$2["answer-response-" + question.answerResponseSignal]
10450
+ className: styles$3["answer-response"] + " " + styles$3["answer-response-" + question.answerResponseSignal]
10354
10451
  }, formatTimeSecond(Math.round(question.duration), t)) : React.createElement("p", {
10355
10452
  style: {
10356
10453
  margin: 0
10357
10454
  },
10358
- className: styles$2["answerNoTime"]
10455
+ className: styles$3["answerNoTime"]
10359
10456
  }, "\uC2DC\uAC04 \uC5C6\uC74C")), React.createElement("div", {
10360
- className: stylesGlobal["custom-col-2"],
10457
+ className: styles["custom-col-2"],
10361
10458
  style: {
10362
10459
  display: "flex",
10363
10460
  alignItems: "center"
@@ -10366,15 +10463,15 @@ function MyAnswer(_ref) {
10366
10463
  style: {
10367
10464
  margin: 0
10368
10465
  },
10369
- className: styles$2["answer-response"] + " " + styles$2["answer-response-" + question.answerResponseSignal]
10466
+ className: styles$3["answer-response"] + " " + styles$3["answer-response-" + question.answerResponseSignal]
10370
10467
  }, formatTimeSecond(Math.round(question.topDuration - question.duration), t)) : React.createElement("p", {
10371
10468
  style: {
10372
10469
  margin: 0,
10373
10470
  textAlign: "center"
10374
10471
  },
10375
- className: styles$2["answerNoTime"]
10472
+ className: styles$3["answerNoTime"]
10376
10473
  }, "-")), React.createElement("div", {
10377
- className: stylesGlobal["custom-col-2"],
10474
+ className: styles["custom-col-2"],
10378
10475
  style: {
10379
10476
  display: "flex",
10380
10477
  alignItems: "center"
@@ -10383,14 +10480,14 @@ function MyAnswer(_ref) {
10383
10480
  style: {
10384
10481
  margin: 0
10385
10482
  },
10386
- className: styles$2["answer-response"] + " " + styles$2["answer-response-" + question.answerResponseSignal]
10483
+ className: styles$3["answer-response"] + " " + styles$3["answer-response-" + question.answerResponseSignal]
10387
10484
  }, question.overallCorrectRate + "%") : React.createElement("p", {
10388
10485
  style: {
10389
10486
  margin: 0
10390
10487
  },
10391
- className: styles$2["answerNoTime"]
10488
+ className: styles$3["answerNoTime"]
10392
10489
  }, "\uC2DC\uAC04 \uC5C6\uC74C")), isStudent && React.createElement("div", {
10393
- className: stylesGlobal["custom-col-2"],
10490
+ className: styles["custom-col-2"],
10394
10491
  style: {
10395
10492
  display: "flex",
10396
10493
  alignItems: "center",
@@ -10459,11 +10556,11 @@ var iconBtnNextChart = function iconBtnNextChart(_ref) {
10459
10556
  function CompareGrass(_ref) {
10460
10557
  var effectSize = _ref.effectSize;
10461
10558
  return React.createElement("div", {
10462
- className: styles$2["compareGrass"]
10559
+ className: styles$3["compareGrass"]
10463
10560
  }, React.createElement("div", {
10464
- className: styles$2["tableCompareGrass"]
10561
+ className: styles$3["tableCompareGrass"]
10465
10562
  }, React.createElement("div", {
10466
- className: styles$2["table-responsive"]
10563
+ className: styles$3["table-responsive"]
10467
10564
  }, React.createElement(Table, {
10468
10565
  style: {
10469
10566
  width: "100%"
@@ -10473,7 +10570,7 @@ function CompareGrass(_ref) {
10473
10570
  borderBottom: "1px solid #E4E7EC"
10474
10571
  }
10475
10572
  }, React.createElement("tr", null, React.createElement("th", {
10476
- className: styles$2["thcolumn1"]
10573
+ className: styles$3["thcolumn1"]
10477
10574
  }, "\uBB38\uC81C \uBC88\uD638"), React.createElement("th", {
10478
10575
  style: {
10479
10576
  textAlign: "center"
@@ -10497,14 +10594,14 @@ function CompareGrass(_ref) {
10497
10594
  borderBottom: "1px solid #e4e7ec"
10498
10595
  } : {}
10499
10596
  }, React.createElement("td", {
10500
- className: styles$2["tdcolumn1"]
10597
+ className: styles$3["tdcolumn1"]
10501
10598
  }, "\uBB38\uC81C ", item.questionOrder + 1), React.createElement("td", {
10502
10599
  style: {
10503
10600
  textAlign: "center",
10504
10601
  color: "#202B37"
10505
10602
  }
10506
10603
  }, item.correctAnswers, "\uBC88"), React.createElement("td", {
10507
- className: styles$2["tdcolumn3"],
10604
+ className: styles$3["tdcolumn3"],
10508
10605
  style: {
10509
10606
  color: item.isCorrect ? "#1EE288" : "#F34B4B"
10510
10607
  }
@@ -10514,7 +10611,7 @@ function CompareGrass(_ref) {
10514
10611
  color: "#414E62"
10515
10612
  }
10516
10613
  }, item.mostSelectedAnswers ? item.mostSelectedAnswers + "\uBC88" : ""), React.createElement("td", null, React.createElement("div", {
10517
- className: styles$2["classification"]
10614
+ className: styles$3["classification"]
10518
10615
  }, item.problemCategories.map(function (problem, index) {
10519
10616
  return React.createElement("div", {
10520
10617
  key: index
@@ -10641,9 +10738,9 @@ function TrickyProblem(_ref) {
10641
10738
  return i.isStar && i.isCorrect;
10642
10739
  });
10643
10740
  return React.createElement("div", {
10644
- className: styles$2["wrapperProblem"]
10741
+ className: styles$3["wrapperProblem"]
10645
10742
  }, React.createElement("div", {
10646
- className: !openProblem.problem1 ? styles$2["titleProblemClose"] : styles$2["titleProblem"],
10743
+ className: !openProblem.problem1 ? styles$3["titleProblemClose"] : styles$3["titleProblem"],
10647
10744
  onClick: function onClick() {
10648
10745
  return changeOpen(_extends({}, openProblem, {
10649
10746
  problem1: !openProblem.problem1
@@ -10656,27 +10753,27 @@ function TrickyProblem(_ref) {
10656
10753
  fontWeight: 700
10657
10754
  }
10658
10755
  }, "\uAE4C\uB2E4\uB85C\uC6E0\uB358 \uBB38\uC81C"), openProblem.problem1 ? React.createElement(iconUpArrow, null) : React.createElement(iconDownArrow, null)), openProblem.problem1 && React.createElement(Fragment$1, null, React.createElement("div", {
10659
- className: styles$2["titleTrickyProblem"]
10756
+ className: styles$3["titleTrickyProblem"]
10660
10757
  }, React.createElement(iconX, null), React.createElement("span", null, "\uBCC4\uD45C \uCE5C \uBB38\uC81C \uC911 \uD2C0\uB9B0 \uBB38\uC81C")), React.createElement("div", {
10661
- className: styles$2["wrongQuestions"]
10758
+ className: styles$3["wrongQuestions"]
10662
10759
  }, !!inCorrectQuestions.length && inCorrectQuestions.map(function (question) {
10663
10760
  return React.createElement("span", {
10664
10761
  key: question.id,
10665
- className: styles$2["question"]
10762
+ className: styles$3["question"]
10666
10763
  }, question.questionOrder + 1, "\uBC88");
10667
10764
  }), !data.questions.length && React.createElement("div", {
10668
- className: styles$2["noData"]
10765
+ className: styles$3["noData"]
10669
10766
  }, "\uB370\uC774\uD130 \uC5C6\uC74C")), React.createElement("div", {
10670
- className: styles$2["titleTrickyProblem"]
10767
+ className: styles$3["titleTrickyProblem"]
10671
10768
  }, React.createElement(iconAssignedQuestions, null), React.createElement("span", null, "\uBCC4\uD45C \uCE5C \uBB38\uC81C \uC911 \uB9DE\uCD98 \uBB38\uC81C")), React.createElement("div", {
10672
- className: styles$2["assignedQuestions"]
10769
+ className: styles$3["assignedQuestions"]
10673
10770
  }, !!correctQuestions.length && correctQuestions.map(function (question) {
10674
10771
  return React.createElement("div", {
10675
10772
  key: question.id,
10676
- className: styles$2["question"]
10773
+ className: styles$3["question"]
10677
10774
  }, question.questionOrder + 1, "\uBC88");
10678
10775
  }), !data.questions.length && React.createElement("div", {
10679
- className: styles$2["noData"]
10776
+ className: styles$3["noData"]
10680
10777
  }, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
10681
10778
  }
10682
10779
 
@@ -10687,9 +10784,9 @@ function ProtractedProblem(_ref) {
10687
10784
  var _useTranslation = useTranslation(),
10688
10785
  t = _useTranslation.t;
10689
10786
  return React.createElement("div", {
10690
- className: styles$2["wrapperProblem"]
10787
+ className: styles$3["wrapperProblem"]
10691
10788
  }, React.createElement("div", {
10692
- className: !openProblem.problem2 ? styles$2["titleProblemClose"] : styles$2["titleProblem"],
10789
+ className: !openProblem.problem2 ? styles$3["titleProblemClose"] : styles$3["titleProblem"],
10693
10790
  onClick: function onClick() {
10694
10791
  return changeOpen(_extends({}, openProblem, {
10695
10792
  problem2: !openProblem.problem2
@@ -10702,30 +10799,30 @@ function ProtractedProblem(_ref) {
10702
10799
  fontWeight: 700
10703
10800
  }
10704
10801
  }, "\uC2DC\uAC04\uC774 \uC624\uB798 \uAC78\uB9B0 \uBB38\uC81C"), openProblem.problem2 ? React.createElement(iconUpArrow, null) : React.createElement(iconDownArrow, null)), openProblem.problem2 && React.createElement(Fragment$1, null, React.createElement("div", {
10705
- className: styles$2["wrapperContent"]
10802
+ className: styles$3["wrapperContent"]
10706
10803
  }, data.length ? data.map(function (item) {
10707
10804
  return React.createElement("div", {
10708
- className: styles$2["content"],
10805
+ className: styles$3["content"],
10709
10806
  key: item.id
10710
10807
  }, React.createElement("div", {
10711
- className: styles$2["contentColumn1"]
10808
+ className: styles$3["contentColumn1"]
10712
10809
  }, React.createElement("div", null, React.createElement("span", {
10713
- className: styles$2["span1"]
10810
+ className: styles$3["span1"]
10714
10811
  }, "\uBB38\uC81C"), React.createElement("span", {
10715
- className: styles$2["span2"]
10812
+ className: styles$3["span2"]
10716
10813
  }, item.questionOrder + 1, "\uBC88"))), React.createElement("div", {
10717
- className: styles$2["contentColumn2"]
10814
+ className: styles$3["contentColumn2"]
10718
10815
  }, React.createElement("div", null, React.createElement("span", {
10719
- className: styles$2["span1"]
10816
+ className: styles$3["span1"]
10720
10817
  }, "\uB098\uC758 \uC2DC\uAC04"), React.createElement("span", {
10721
- className: styles$2["span2"]
10818
+ className: styles$3["span2"]
10722
10819
  }, "\uC0C1\uC704\uAD8C \uC2DC\uAC04")), React.createElement("div", null, React.createElement("span", {
10723
- className: styles$2["duration"]
10820
+ className: styles$3["duration"]
10724
10821
  }, formatTimeSecond(item.duration, t)), React.createElement("span", {
10725
- className: styles$2["topDuration"]
10822
+ className: styles$3["topDuration"]
10726
10823
  }, formatTimeSecond(item.topDuration, t)))));
10727
10824
  }) : React.createElement("div", {
10728
- className: styles$2["noData"]
10825
+ className: styles$3["noData"]
10729
10826
  }, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
10730
10827
  }
10731
10828
 
@@ -10739,9 +10836,9 @@ function Vulnerable(_ref) {
10739
10836
  return q2.overallCorrectRate === q1.overallCorrectRate ? q1.questionOrder - q2.questionOrder : q2.overallCorrectRate - q1.overallCorrectRate;
10740
10837
  });
10741
10838
  return React.createElement("div", {
10742
- className: styles$2["wrapperProblem"]
10839
+ className: styles$3["wrapperProblem"]
10743
10840
  }, React.createElement("div", {
10744
- className: !openProblem.problem3 ? styles$2["titleProblemClose"] : styles$2["titleProblem"],
10841
+ className: !openProblem.problem3 ? styles$3["titleProblemClose"] : styles$3["titleProblem"],
10745
10842
  onClick: function onClick() {
10746
10843
  return changeOpen(_extends({}, openProblem, {
10747
10844
  problem3: !openProblem.problem3
@@ -10754,30 +10851,30 @@ function Vulnerable(_ref) {
10754
10851
  fontWeight: 700
10755
10852
  }
10756
10853
  }, "\uB0B4\uAC00 \uCDE8\uC57D\uD55C \uBB38\uC81C"), openProblem.problem3 ? React.createElement(iconUpArrow, null) : React.createElement(iconDownArrow, null)), openProblem.problem3 && React.createElement(Fragment$1, null, React.createElement("div", {
10757
- className: styles$2["wrapperContent"]
10854
+ className: styles$3["wrapperContent"]
10758
10855
  }, incorrectQuestions.length ? React.createElement(Fragment$1, null, incorrectQuestions.map(function (question) {
10759
10856
  return React.createElement("div", {
10760
- className: styles$2["content"],
10857
+ className: styles$3["content"],
10761
10858
  key: question.id
10762
10859
  }, React.createElement("div", {
10763
- className: styles$2["contentColumn1"]
10860
+ className: styles$3["contentColumn1"]
10764
10861
  }, React.createElement("div", null, React.createElement("span", {
10765
- className: styles$2["span1"]
10862
+ className: styles$3["span1"]
10766
10863
  }, "\uBB38\uC81C"), React.createElement("span", {
10767
- className: styles$2["span2"]
10864
+ className: styles$3["span2"]
10768
10865
  }, question.questionOrder + 1, "\uBC88"))), React.createElement("div", {
10769
- className: styles$2["contentColumn2"]
10866
+ className: styles$3["contentColumn2"]
10770
10867
  }, React.createElement("div", null, React.createElement("span", {
10771
- className: styles$2["span1"]
10868
+ className: styles$3["span1"]
10772
10869
  }, "\uC804\uCCB4 \uC815\uB2F5\uB960"), React.createElement("span", {
10773
- className: styles$2["span2"]
10870
+ className: styles$3["span2"]
10774
10871
  }, "\uB098\uC758 \uC624\uB2F5")), React.createElement("div", null, React.createElement("span", {
10775
- className: styles$2["overallCorrectRate"]
10872
+ className: styles$3["overallCorrectRate"]
10776
10873
  }, question.overallCorrectRate.toFixed(2), "%"), React.createElement("span", {
10777
- className: styles$2["answer"]
10874
+ className: styles$3["answer"]
10778
10875
  }, question.selectedAnswers, "\uBC88 (\uC815\uB2F5", " ", question.correctAnswers, "\uBC88)"))));
10779
10876
  })) : React.createElement("div", {
10780
- className: styles$2["noData"]
10877
+ className: styles$3["noData"]
10781
10878
  }, "\uB370\uC774\uD130 \uC5C6\uC74C"))));
10782
10879
  }
10783
10880
 
@@ -10786,9 +10883,9 @@ function GradesByTerritory(_ref) {
10786
10883
  openProblem = _ref.openProblem,
10787
10884
  changeOpen = _ref.changeOpen;
10788
10885
  return React.createElement("div", {
10789
- className: styles$2["wrapperProblem"]
10886
+ className: styles$3["wrapperProblem"]
10790
10887
  }, React.createElement("div", {
10791
- className: !openProblem.problem4 ? styles$2["titleProblemClose"] : styles$2["titleProblem"],
10888
+ className: !openProblem.problem4 ? styles$3["titleProblemClose"] : styles$3["titleProblem"],
10792
10889
  onClick: function onClick() {
10793
10890
  return changeOpen(_extends({}, openProblem, {
10794
10891
  problem4: !openProblem.problem4
@@ -10801,27 +10898,27 @@ function GradesByTerritory(_ref) {
10801
10898
  fontWeight: 700
10802
10899
  }
10803
10900
  }, "\uC601\uC5ED\uBCC4 \uC131\uC801"), openProblem.problem4 ? React.createElement(iconUpArrow, null) : React.createElement(iconDownArrow, null)), openProblem.problem4 && React.createElement("div", {
10804
- className: styles$2["wrappContentProblem"]
10901
+ className: styles$3["wrappContentProblem"]
10805
10902
  }, data.length && data.map(function (item) {
10806
10903
  return React.createElement("div", {
10807
- className: styles$2["contentProblem"],
10904
+ className: styles$3["contentProblem"],
10808
10905
  key: item.id
10809
10906
  }, React.createElement("div", {
10810
- className: styles$2["labelProblem"]
10907
+ className: styles$3["labelProblem"]
10811
10908
  }, React.createElement("span", {
10812
- className: styles$2["name"]
10909
+ className: styles$3["name"]
10813
10910
  }, item.name), React.createElement("div", {
10814
- className: styles$2["percent"]
10911
+ className: styles$3["percent"]
10815
10912
  }, React.createElement("span", null, item.percentageAmongStudents.toFixed(2), "%"), React.createElement("span", null, item.totalCorrectQuestions, "/", item.totalQuestions, "\uBB38\uC81C"))), React.createElement("div", {
10816
- className: styles$2["slider"]
10913
+ className: styles$3["slider"]
10817
10914
  }, React.createElement("span", {
10818
- className: styles$2["track"],
10915
+ className: styles$3["track"],
10819
10916
  style: {
10820
10917
  left: item.percentageAmongStudents + "%"
10821
10918
  }
10822
10919
  })));
10823
10920
  }), openProblem.problem4 && !data.length && React.createElement("div", {
10824
- className: styles$2["noData"]
10921
+ className: styles$3["noData"]
10825
10922
  }, "\uB370\uC774\uD130 \uC5C6\uC74C")));
10826
10923
  }
10827
10924
 
@@ -10914,7 +11011,7 @@ function CreateNewQuestionDialog$1(_ref) {
10914
11011
  var errors = _ref2.errors;
10915
11012
  return React.createElement(Form, null, React.createElement("label", {
10916
11013
  htmlFor: "content-question",
10917
- className: stylesGlobal['form-label'] + " " + styles$2['form-label-dialog']
11014
+ className: styles['form-label'] + " " + styles$3['form-label-dialog']
10918
11015
  }, "\uC9C8\uBB38 \uB0B4\uC6A9"), React.createElement(Box, {
10919
11016
  position: 'relative',
10920
11017
  display: 'flex',
@@ -10927,7 +11024,7 @@ function CreateNewQuestionDialog$1(_ref) {
10927
11024
  },
10928
11025
  name: "content",
10929
11026
  placeholder: "\uBB38\uC81C\uAC00 \uC5B4\uB824\uC6CC\uC694",
10930
- className: stylesGlobal['form-control']
11027
+ className: styles['form-control']
10931
11028
  }), (errors === null || errors === void 0 ? void 0 : errors.content) && React.createElement(Box, {
10932
11029
  position: 'absolute',
10933
11030
  right: 0,
@@ -10949,14 +11046,14 @@ function CreateNewQuestionDialog$1(_ref) {
10949
11046
  padding: '12px'
10950
11047
  }
10951
11048
  }, React.createElement(Button$1, {
10952
- className: styles$2['btn-cancel'],
11049
+ className: styles$3['btn-cancel'],
10953
11050
  onClick: toggleCreateQuestion
10954
11051
  }, React.createElement(Typography$1, {
10955
11052
  fontWeight: 700,
10956
11053
  fontSize: '14px',
10957
11054
  lineHeight: '16.71px'
10958
11055
  }, "\uCDE8\uC18C")), React.createElement(Button$1, {
10959
- className: styles$2['btn-register'],
11056
+ className: styles$3['btn-register'],
10960
11057
  type: "submit"
10961
11058
  }, React.createElement(Typography$1, {
10962
11059
  fontWeight: 700,
@@ -11045,6 +11142,7 @@ var ExamResultV2 = function ExamResultV2(_ref) {
11045
11142
  var _useTab = useTab(),
11046
11143
  selected = _useTab.selected,
11047
11144
  handleChangeTab = _useTab.handleChangeTab;
11145
+ var isTabletUp = useMediaQuery('(min-width:900px)');
11048
11146
  return React.createElement(Fragment$1, null, timelyOrderQuestion[dataChartIndex] && longTimeSpend && resultDatas && effectSize ? React.createElement("div", {
11049
11147
  style: {
11050
11148
  width: "100%"
@@ -11142,7 +11240,28 @@ var ExamResultV2 = function ExamResultV2(_ref) {
11142
11240
  container: true,
11143
11241
  padding: "24px",
11144
11242
  className: "position-relative overflow-hidden"
11145
- }, React.createElement(Grid, {
11243
+ }, !isTabletUp && React.createElement(Grid, {
11244
+ item: true,
11245
+ xs: 12
11246
+ }, React.createElement(Box, {
11247
+ padding: "16px 24px",
11248
+ flexDirection: "row",
11249
+ justifyContent: "end",
11250
+ alignItems: "center",
11251
+ display: "flex",
11252
+ bgcolor: "#F9FAFB",
11253
+ borderTop: "1px solid #E4E7EC",
11254
+ borderBottom: "1px solid #E4E7EC"
11255
+ }, React.createElement(Stack, {
11256
+ padding: '12px 24px',
11257
+ alignItems: "end",
11258
+ bgcolor: "#F9FAFB"
11259
+ }, React.createElement("div", {
11260
+ className: styles$3["pdfBtnBox"]
11261
+ }, React.createElement("button", {
11262
+ className: styles$3["pdfBtn"] + " " + styles["truncate"],
11263
+ onClick: handleExportPdf
11264
+ }, React.createElement(iconPrintFill, null), React.createElement("p", null, t("print"))))))), React.createElement(Grid, {
11146
11265
  item: true,
11147
11266
  xs: 12
11148
11267
  }, React.createElement(Box, {
@@ -11162,6 +11281,7 @@ var ExamResultV2 = function ExamResultV2(_ref) {
11162
11281
  var label = _ref2.label,
11163
11282
  value = _ref2.value;
11164
11283
  return React.createElement(Button, {
11284
+ className: styles["truncate"],
11165
11285
  disableTouchRipple: true,
11166
11286
  sx: {
11167
11287
  fontSize: "14px",
@@ -11174,14 +11294,14 @@ var ExamResultV2 = function ExamResultV2(_ref) {
11174
11294
  return handleChangeTab(value);
11175
11295
  }
11176
11296
  }, label);
11177
- })), React.createElement(Stack, {
11297
+ })), isTabletUp && React.createElement(Stack, {
11178
11298
  padding: '12px 24px',
11179
11299
  alignItems: "end",
11180
11300
  bgcolor: "#F9FAFB"
11181
11301
  }, React.createElement("div", {
11182
- className: styles$2["pdfBtnBox"]
11302
+ className: styles$3["pdfBtnBox"]
11183
11303
  }, React.createElement("button", {
11184
- className: styles$2["pdfBtn"],
11304
+ className: styles$3["pdfBtn"] + " " + styles["truncate"],
11185
11305
  onClick: handleExportPdf
11186
11306
  }, React.createElement(iconPrintFill, null), React.createElement("p", null, t("print"))))))), React.createElement(Grid, {
11187
11307
  item: true,
@@ -11197,18 +11317,18 @@ var ExamResultV2 = function ExamResultV2(_ref) {
11197
11317
  value: selected,
11198
11318
  index: 1
11199
11319
  }, React.createElement("div", {
11200
- className: styles$2["compareChart"]
11320
+ className: styles$3["compareChart"]
11201
11321
  }, React.createElement("div", {
11202
- className: styles$2["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
11322
+ className: styles$3["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
11203
11323
  onClick: handlePrevChart
11204
11324
  }, React.createElement(iconBtnPrevChart, null)), React.createElement("div", {
11205
- className: styles$2["chart"] + " sr-line-chart"
11325
+ className: styles$3["chart"] + " sr-line-chart"
11206
11326
  }, React.createElement("div", null, React.createElement(ReactApexChart, {
11207
11327
  height: 389,
11208
11328
  options: chartOptions,
11209
11329
  series: series
11210
11330
  }))), React.createElement("div", {
11211
- className: styles$2["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
11331
+ className: styles$3["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
11212
11332
  onClick: handleNextChart
11213
11333
  }, React.createElement(iconBtnNextChart, null)))), React.createElement(CustomTabPanel, {
11214
11334
  value: selected,
@@ -11254,18 +11374,18 @@ var ExamResultV2 = function ExamResultV2(_ref) {
11254
11374
  value: selected,
11255
11375
  index: 1
11256
11376
  }, React.createElement("div", {
11257
- className: styles$2["compareChart"]
11377
+ className: styles$3["compareChart"]
11258
11378
  }, React.createElement("div", {
11259
- className: styles$2["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
11379
+ className: styles$3["prevChart"] + " " + (dataChartIndex > 0 && "pointer"),
11260
11380
  onClick: handlePrevChart
11261
11381
  }, React.createElement(iconBtnPrevChart, null)), React.createElement("div", {
11262
- className: styles$2["chart"] + " sr-line-chart"
11382
+ className: styles$3["chart"] + " sr-line-chart"
11263
11383
  }, React.createElement("div", null, React.createElement(ReactApexChart, {
11264
11384
  height: 389,
11265
11385
  options: chartOptions,
11266
11386
  series: series
11267
11387
  }))), React.createElement("div", {
11268
- className: styles$2["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
11388
+ className: styles$3["nextChart"] + " " + (dataChartIndex < timelyOrderQuestion.length - 1 && "pointer"),
11269
11389
  onClick: handleNextChart
11270
11390
  }, React.createElement(iconBtnNextChart, null)))), React.createElement(CustomTabPanel, {
11271
11391
  value: selected,
@@ -11341,5 +11461,100 @@ var times = {
11341
11461
  timeSpanToLocalMoment: timeSpanToLocalMoment
11342
11462
  };
11343
11463
 
11344
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, InputText, LANGUAGES, LayoutContext, Loading, Login, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken$1 as getAccessToken, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useGoogleSignOut, useLanguage, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, utcToLocalTime };
11464
+ var Header = function Header(_ref) {
11465
+ var academyListRoute = _ref.academyListRoute,
11466
+ homeRoute = _ref.homeRoute,
11467
+ headerTabs = _ref.headerTabs,
11468
+ role = _ref.role,
11469
+ navigate = _ref.navigate,
11470
+ onSignOut = _ref.onSignOut;
11471
+ var _useTranslation = useTranslation(),
11472
+ t = _useTranslation.t;
11473
+ var location = useLocation();
11474
+ var theme = useTheme();
11475
+ var user = useSelector(function (state) {
11476
+ var _state$common;
11477
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
11478
+ });
11479
+ var isLargerThanXL = useMediaQuery(theme.breakpoints.up("xl"));
11480
+ var academyDomain = useSelector(function (state) {
11481
+ var _state$common2, _state$common2$user;
11482
+ return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : (_state$common2$user = _state$common2.user) === null || _state$common2$user === void 0 ? void 0 : _state$common2$user.academyDomain;
11483
+ });
11484
+ var pathname = location.pathname.toLowerCase();
11485
+ return React.createElement("div", {
11486
+ className: "col-sm-12 col-xl-12 " + styles["tabBox"] + " " + styles["headers"]
11487
+ }, React.createElement(Link, {
11488
+ "aria-current": "page",
11489
+ to: homeRoute.path,
11490
+ className: "border-none " + styles["logo-container"]
11491
+ }, React.createElement("img", {
11492
+ className: styles["logo"] + " d-none d-lg-block",
11493
+ src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAABNCAYAAAA2N/+4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAfmSURBVHgB7ZzLktvGFYbPaZBKNOWKmSpnG3GfVHm09UbUE5hDJ4usTD2BrU22op5gRvtUifI20Qz0BKKfINQThHbWqWA2li0SfXwamJFBEAABojkX6/+qKIq4dJPA36fPpTFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAatHrjXsEgAeY9kSnM54QyRNmWojwnJlD/fxmuZzOCYCG7EWolyIt2R1ptzMV8Ez//y2EC+rgXahbRFqEE65aXApF6M1qNZ0RADm8CnUHkZaQWNy5CvfVRx/RPIqmEYEPGm9C9SfSdZhlvFx+84LAB02HPBAE46mK9EvyjkwgUuBobVGdSNXq7UWkq9U3TwkAJaAW1BHpwcEn9Oc//Y0+/t0f6eDuH6jbPaDV6geydllxFkQK1tnZotYV6Wef/V0F+snGvqWK9Tz6byLa8/Pvk9fbt/+j6Pz7aRy/eEQAZNhJqG1FWoWQGZyd8bfkib8O3x0K8UaF7F9hd0Z7YKj9GTKH2W2WlrMwvLugHRkOpWcoHma36Y2LXoadkPZAk/6+OLKvhWSQ3VZ2D0fD1Ti/7TTsTKkGjYOpfYrUN3rB+zHbf2/sEJrqv7OK83oByxk1wBKf6M15ZSj4XO/qJLsvkO5Y3xajYXysFbrDJu2+PDMP9a2n6Y/n2e2i7elbpVCb9ici89MweFzV33C4GhriTzPb+/l2WOxY+x5cfrZknoUhR/k2L5hSDRoJ9TaJ1BEYOdZc7Bruggu92+b/9vJWYhtG7HTbMU40TdttQ9P+hGTrMSpSNxDH2bM2O87u13M4EWOrXHhtoWqe9HhbCuomidRNM2ohhvntum3SZhoG14Ope6CWNh+vVvx7PWWgQ2aim2Zqrd6PkpskUjd1E5uN4oOzpmHYQV72FtLQR51GqxU5J9m9kumz2x0fWsv3VKThTRCpwxj7taqyn9+uAUFvdGT/k9kwPz01RwVNRHr+hBoQk31Du5D6ywvaAyL2hStH1z6+xvewJK+McHKcMA94I5DiOYus+c5W6Jxa0roydbH6aX5w9x/lBzGHOuWeq1D2UBhYxwVQJLaglOsuru4j+SUDoGJ2wUFYGD3Ld9SIeCcfTNhMfWY5srhIvY7fmfk2W3/zxbVKrtdoFPfzzRuR6csweEae8VJC3Ya6CH0RtVwsn+oIbBT1NqUogHJY+ekh82+e5y2ABhzHKu5ZEpX+Qq8kQi3vVyP7vwyXfVsQBV8bbL6iBsEUC82Gw7cLTU0NamUuhQf5YCqmeC+DrraP2gYnTp2On4jwUWrZ9kNZAKVTTxJAicRPN7+bE5b1spjGsnmdj3hvG4buPKkzSJOZK5mh8ucHX2lq6rl7kUeuRKgJQmMV69gKu7zgfpbtlQZQQSLQUJP8UuCzafrka5eoJ1Cb1OoW4AbqxcvnNb2Sqf89Qk8M2ciKPDLMjRLq21B/aaI+Rn+jS01HrX/mR5oLdkWAtWoVc0fTb/SQyomoYoBZDiLWUOMWsCjbwWQiquvTGn6w7dCAggf65uUJjqsVqoPpWIOd+1aCieFmkXUZZQGU+qrzfDpKfVFXITrJV4+c76qB1Zdl6StXtTkLO1VCptFRTDcdLW+Oq4K32lN2gX+62Ze/eOTqpv5spxy8Jnr3Qn/JCXnA+b9F27UCVZR6Skp6VGAd1cqfJDnYHXE1buJ6JcGbSkDxM/0dw6pjyvzTDdiJ2Q9Xb1FTesx3Xlsx98MzfkwtGA6XA7HJRZtltztftKwC5SJ8dRWe6nmfb+51vlew03TlLFVS497bs73755/hnbkKMeKK31CUFVCXaqYulbOg2YHedwM/l1HZiesSahptpws/HlILwnQV1IwacnoaOGteaNFTi1FNanl/7AXU1Xq6uzl8z5JtlZpxbXbJpbhM37XnFnxcLBLZG5qO6neoo31yn4k/dr9FPe3q6l2Bf2pIQm2DNtN/5PzUV9SSaxOqI/UL4+Owxc24FAx547eFo98t8PhiZM/U7z1MiwZWX3fW7lcgPG6SXk8Qe6LVst5lm/HmWnbPQpVJ2p8bXOmAvAwBL777Qv9TLdSS/KmRQI0PDbLbWaz7fLuF6nCpIZ0uv1PLsZO/2qHVoVU3gnwhdqIWrehG9YpytG1Ri3NYO9L20V/L1VvpbGP7uc1RqC6D5rEPN1yChssay7iWYGoDzQQ4X5PAjacwfyppbtpSMMvv8lWJ9CZUtTazba+q8w2bM+cv0e1k4VJhceP1AdvarL5mnnEuj077W/p0/mkOFWNyjkv90WY2pTcayT1qibepn7ev0nF+0aBqv8sE6NRy30eU6BEnQk3mJ4taFpwkzE1kmRbu72qdnvKaONWNeVCjzbR4IDzPthnT8o0x3f/n2/RApj/r/jKN9mkW+htcdD+3ls6z17wymNxS31dffpZ3kdgmVrjV8kovQk2ehfGQvE8zAeQec6gdPa+oM+fqAdAIvQVOJJGWY/u7CMb5t5zLQmiwkiwBjNO1DrTDQIySHG32e8py69K5ffSnab9x3g/VYPh9Oi+2/FjFuhZv2PSaUr7NJnjJ+KVrPGskgGvg++E+8OugtY+aPlnoR6QAlNFaqMxm74uhAWglVOd0X+VTleDDpZVQyxaDAOCbVlG/iJkS+V0t5P6YLwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/Yn4G8GJySAUVr9kAAAAASUVORK5CYII=",
11494
+ alt: ""
11495
+ }), React.createElement("img", {
11496
+ className: styles["logo"] + " d-block d-lg-none",
11497
+ src: "/images/logo-sm.png",
11498
+ alt: ""
11499
+ })), React.createElement("div", {
11500
+ className: styles["routerBox"] + " d-flex flex-grow-1 flex-nowrap px-3"
11501
+ }, headerTabs.map(function (_ref2) {
11502
+ var path = _ref2.path,
11503
+ icon = _ref2.icon,
11504
+ label = _ref2.label,
11505
+ isMain = _ref2.isMain,
11506
+ activePaths = _ref2.activePaths;
11507
+ return React.createElement(Link, {
11508
+ key: path,
11509
+ "aria-current": "page",
11510
+ to: !academyDomain && !isMain ? "#" : path,
11511
+ className: "text-decoration-none " + ((activePaths !== null && activePaths !== void 0 && activePaths.length ? activePaths.some(function (a) {
11512
+ return pathname.startsWith(a);
11513
+ }) : pathname.startsWith(path)) ? styles["router-link-active"] + " " + styles["router-link-exact-active"] : "") + " " + styles["tabText"] + " " + (!academyDomain && !isMain ? styles["disabled-link"] : "")
11514
+ }, React.createElement(Stack, {
11515
+ sx: {
11516
+ justifyContent: "center",
11517
+ flexDirection: "row",
11518
+ alignItems: "center",
11519
+ textOverflow: "ellipsis",
11520
+ overflow: "hidden",
11521
+ display: "flex",
11522
+ flexWrap: "nowrap"
11523
+ }
11524
+ }, icon, React.createElement("span", {
11525
+ className: "text-nowrap"
11526
+ }, isLargerThanXL || headerTabs.length < 4 ? t(label) : ellipsisText(t(label), 4))));
11527
+ })), React.createElement(Stack, {
11528
+ direction: "row",
11529
+ alignItems: "center"
11530
+ }, React.createElement(Typography, {
11531
+ className: "fw-bold text-primary me-2 text-nowrap",
11532
+ sx: {
11533
+ maxWidth: "120px",
11534
+ overflow: "hidden",
11535
+ textOverflow: "ellipsis"
11536
+ }
11537
+ }, user === null || user === void 0 ? void 0 : user.fullName), React.createElement("div", null, React.createElement(TheAcademyDropdown, {
11538
+ homeAcademyUrl: academyListRoute.path,
11539
+ homeUrl: homeRoute.path,
11540
+ role: role,
11541
+ navigate: navigate,
11542
+ hideAcademyName: !isLargerThanXL && headerTabs.length > 6
11543
+ })), React.createElement("div", {
11544
+ className: "me-2"
11545
+ }, React.createElement(TheLanguageDropdown, null)), React.createElement("div", {
11546
+ className: styles["userImg"] + " d-none d-md-none d-lg-block",
11547
+ onClick: onSignOut
11548
+ }, React.createElement("p", {
11549
+ className: "text-nowrap mb-0"
11550
+ }, t("logout"))), React.createElement("div", {
11551
+ className: styles["userImg"] + " d-block d-md-block d-lg-none",
11552
+ onClick: onSignOut
11553
+ }, React.createElement(IoIosLogOut, {
11554
+ size: 24,
11555
+ color: "#959595"
11556
+ }))));
11557
+ };
11558
+
11559
+ export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, LayoutContext, Loading, Login, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken$1 as getAccessToken, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useGoogleSignOut, useLanguage, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, utcToLocalTime };
11345
11560
  //# sourceMappingURL=index.modern.js.map