touchstudy-core 0.1.196 → 0.1.197
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.
- package/dist/components/Chats/ChatContainer.d.ts +1 -5
- package/dist/components/Chats/components/InputChat.d.ts +2 -8
- package/dist/components/Chats/configs/constants.d.ts +1 -8
- package/dist/components/Chats/configs/types.d.ts +0 -2
- package/dist/components/Chats/hooks/useChatContainer.d.ts +2 -6
- package/dist/components/Selects/CustomSelectOption.d.ts +1 -1
- package/dist/index.css +16 -4
- package/dist/index.js +239 -1083
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +244 -1088
- package/dist/index.modern.js.map +1 -1
- package/dist/layouts/TimerDialog.d.ts +3 -1
- package/dist/layouts/configs/constants.d.ts +2 -0
- package/dist/layouts/configs/enums.d.ts +6 -0
- package/dist/layouts/configs/fn.d.ts +3 -0
- package/dist/layouts/configs/types.d.ts +8 -0
- package/dist/layouts/hooks/useAlarm.d.ts +19 -0
- package/dist/layouts/hooks/useCountDownTimer.d.ts +6 -2
- package/dist/layouts/hooks/useTimers.d.ts +14 -0
- package/dist/layouts/partials/Alarm/AlarmClock.d.ts +12 -0
- package/dist/layouts/partials/Alarm/AlarmClockNote.d.ts +3 -0
- package/dist/layouts/partials/Alarm/AlarmClockPanel.d.ts +12 -0
- package/dist/layouts/partials/Alarm/AlarmClockPanelNote.d.ts +3 -0
- package/dist/layouts/partials/Alarm/AlarmClockTab.d.ts +14 -0
- package/dist/layouts/partials/Alarm/AlarmSpeakerCheckbox.d.ts +8 -0
- package/dist/layouts/partials/Alarm/AudioToastContent.d.ts +8 -0
- package/dist/layouts/partials/AlarmClock.d.ts +3 -1
- package/dist/layouts/partials/AlarmClockNote.d.ts +3 -0
- package/dist/layouts/partials/AlarmClockPanel.d.ts +3 -1
- package/dist/layouts/partials/AlarmClockPanelNote.d.ts +3 -0
- package/dist/layouts/partials/AlarmClockTab.d.ts +4 -3
- package/dist/layouts/partials/AudioToastContent.d.ts +8 -0
- package/dist/layouts/partials/StudyTimerTab.d.ts +2 -1
- package/dist/layouts/partials/TimeUpdateDialog.d.ts +7 -0
- package/dist/layouts/partials/Timer/StudyTimerTab.d.ts +13 -0
- package/dist/layouts/partials/Timer/TimeLineTabPanel.d.ts +8 -0
- package/dist/layouts/partials/Timer/TimeLineTabs.d.ts +11 -0
- package/dist/layouts/partials/Timer/TimeUpdateDialog.d.ts +7 -0
- package/dist/layouts/partials/Timer/TimerCountItem.d.ts +10 -0
- package/dist/layouts/partials/Timer/TimerDivider.d.ts +9 -0
- package/dist/layouts/partials/Timer/TimerItem.d.ts +12 -0
- package/dist/layouts/partials/Timer/TimerLineItem.d.ts +13 -0
- package/dist/layouts/partials/Timer/TimerTabPanel.d.ts +8 -0
- package/dist/layouts/partials/Timer/TimerTabs.d.ts +7 -0
- package/dist/layouts/partials/TimerItem.d.ts +2 -1
- package/dist/services/alarmService.d.ts +9 -0
- package/dist/utils/types/examResults.d.ts +1 -0
- package/dist/utils/types/subjects.d.ts +4 -2
- package/package.json +1 -2
package/dist/index.modern.js
CHANGED
@@ -13,11 +13,11 @@ export { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
|
|
13
13
|
import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
|
14
14
|
export { DemoContainer } from '@mui/x-date-pickers/internals/demo';
|
15
15
|
import React__default, { useState, useEffect, Fragment as Fragment$1, useRef, useCallback, useMemo, memo, createElement } from 'react';
|
16
|
-
import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, useMediaQuery, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener,
|
16
|
+
import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, useMediaQuery, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, CircularProgress, FormControl, RadioGroup, Radio, Accordion, AccordionSummary, AccordionDetails, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Divider, Skeleton, Tabs, Tab, Drawer, TableContainer, tableCellClasses, Popover, Switch, InputLabel, Chip, ListItemButton, ListItemAvatar, ListItemText, Badge, CardMedia as CardMedia$1, MenuList } from '@mui/material';
|
17
17
|
import moment from 'moment';
|
18
18
|
export { default as moment } from 'moment';
|
19
|
-
import { FaSave, FaCaretDown,
|
20
|
-
import { IoMdArrowBack,
|
19
|
+
import { FaSave, FaCaretDown, FaTrash, FaTimes, FaSortUp, FaSortDown, FaPlusCircle, FaEye, FaPlus, FaCalendar, FaUser, FaBookOpen, FaUpload, FaCheckCircle, FaShare, FaExchangeAlt, FaPencilAlt, FaBell } from 'react-icons/fa';
|
20
|
+
import { IoMdArrowBack, IoIosAdd, IoMdSync, IoIosAlert, IoIosArrowDown, IoIosSearch, IoIosArrowUp, IoMdAdd } from 'react-icons/io';
|
21
21
|
import { IoClose, IoSearch, IoTime, IoChatbubbleEllipsesSharp, IoPrint, IoChevronDown, IoCheckmarkCircle, IoChevronUpOutline, IoChevronDownOutline, IoReceiptSharp, IoBook, IoWarning, IoCalendarClear, IoPerson, IoInformationCircle, IoTrash, IoAddCircle, IoCheckmark, IoCloseCircle, IoLogOut } from 'react-icons/io5';
|
22
22
|
import _$a from 'lodash';
|
23
23
|
import { useSelector, useDispatch } from 'react-redux';
|
@@ -40,10 +40,8 @@ import CreatableSelect from 'react-select/creatable';
|
|
40
40
|
import tinymce from 'tinymce';
|
41
41
|
import '@wiris/mathtype-tinymce6';
|
42
42
|
import { Editor } from '@tinymce/tinymce-react';
|
43
|
-
import { ReactSketchCanvas } from 'react-sketch-canvas';
|
44
|
-
import { MdAlignHorizontalRight, MdAlignVerticalBottom, MdAlignHorizontalCenter, MdAlignVerticalCenter, MdAlignHorizontalLeft, MdAlignVerticalTop, MdOutlineZoomOutMap, MdDraw, MdExpandMore, MdVisibilityOff, MdVisibility, MdAutorenew, MdMoreHoriz, MdDownload, MdError } from 'react-icons/md';
|
45
|
-
import { GrClear, GrClearOption, GrNext, GrPrevious } from 'react-icons/gr';
|
46
43
|
import { FaTrashCan, FaCirclePlus, FaX, FaEye as FaEye$1, FaRotateRight, FaPencil, FaClockRotateLeft } from 'react-icons/fa6';
|
44
|
+
import { MdExpandMore, MdVisibilityOff, MdVisibility, MdAutorenew, MdMoreHoriz, MdDownload, MdError } from 'react-icons/md';
|
47
45
|
import { yellow as yellow$1, blue, grey as grey$1 } from '@mui/material/colors';
|
48
46
|
import Grid$1 from '@mui/material/Grid';
|
49
47
|
import Card from '@mui/material/Card';
|
@@ -66,7 +64,8 @@ import { HiOutlinePencilAlt } from 'react-icons/hi';
|
|
66
64
|
import TableCell$1 from '@mui/material/TableCell';
|
67
65
|
import TableRow$1 from '@mui/material/TableRow';
|
68
66
|
import html2pdf from 'html2pdf.js';
|
69
|
-
import Slider
|
67
|
+
import Slider from 'react-slick';
|
68
|
+
import { GrNext, GrPrevious } from 'react-icons/gr';
|
70
69
|
import Table$1 from '@mui/material/Table';
|
71
70
|
import TableBody$1 from '@mui/material/TableBody';
|
72
71
|
import TableHead$1 from '@mui/material/TableHead';
|
@@ -1582,8 +1581,9 @@ var there_are_no_problems_you_were_working_on = "풀던 문제가 없습니다."
|
|
1582
1581
|
var incomplete_exam = "미참가";
|
1583
1582
|
var completed_exam = "참가";
|
1584
1583
|
var failed_to_send_the_image_error = "이미지를 보내지 못했습니다: {{ message }}";
|
1585
|
-
var
|
1586
|
-
var
|
1584
|
+
var exam_session = "시험 세션";
|
1585
|
+
var must_select_an_exam_first = "먼저 시험을 선택해야 합니다";
|
1586
|
+
var not_selected = "미선택";
|
1587
1587
|
var lang_ko = {
|
1588
1588
|
problem_solving: problem_solving,
|
1589
1589
|
my_story: my_story,
|
@@ -2793,8 +2793,9 @@ var lang_ko = {
|
|
2793
2793
|
incomplete_exam: incomplete_exam,
|
2794
2794
|
completed_exam: completed_exam,
|
2795
2795
|
failed_to_send_the_image_error: failed_to_send_the_image_error,
|
2796
|
-
|
2797
|
-
|
2796
|
+
exam_session: exam_session,
|
2797
|
+
must_select_an_exam_first: must_select_an_exam_first,
|
2798
|
+
not_selected: not_selected
|
2798
2799
|
};
|
2799
2800
|
|
2800
2801
|
var problem_solving$1 = "Problem Solving";
|
@@ -4030,8 +4031,9 @@ var there_are_no_problems_you_were_working_on$1 = "There are no problems you wer
|
|
4030
4031
|
var incomplete_exam$1 = "Incomplete";
|
4031
4032
|
var completed_exam$1 = "Completed";
|
4032
4033
|
var failed_to_send_the_image_error$1 = "Failed to send the image: {{ message }}";
|
4033
|
-
var
|
4034
|
-
var
|
4034
|
+
var exam_session$1 = "Exam session";
|
4035
|
+
var must_select_an_exam_first$1 = "Must select an exam first";
|
4036
|
+
var not_selected$1 = "Not selected";
|
4035
4037
|
var lang_en = {
|
4036
4038
|
problem_solving: problem_solving$1,
|
4037
4039
|
my_story: my_story$1,
|
@@ -5243,8 +5245,9 @@ var lang_en = {
|
|
5243
5245
|
incomplete_exam: incomplete_exam$1,
|
5244
5246
|
completed_exam: completed_exam$1,
|
5245
5247
|
failed_to_send_the_image_error: failed_to_send_the_image_error$1,
|
5246
|
-
|
5247
|
-
|
5248
|
+
exam_session: exam_session$1,
|
5249
|
+
must_select_an_exam_first: must_select_an_exam_first$1,
|
5250
|
+
not_selected: not_selected$1
|
5248
5251
|
};
|
5249
5252
|
|
5250
5253
|
i18n.use(initReactI18next).init({
|
@@ -7973,7 +7976,7 @@ var CustomSelect = function CustomSelect(_ref) {
|
|
7973
7976
|
}, rest));
|
7974
7977
|
};
|
7975
7978
|
|
7976
|
-
var _excluded$3 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti", "valueById", "isTextbook"];
|
7979
|
+
var _excluded$3 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti", "valueById", "isTextbook", "styles"];
|
7977
7980
|
var CustomSelectOption = function CustomSelectOption(_ref) {
|
7978
7981
|
var defaultValue = _ref.defaultValue,
|
7979
7982
|
options = _ref.options,
|
@@ -7983,6 +7986,7 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
|
|
7983
7986
|
isMulti = _ref.isMulti,
|
7984
7987
|
valueById = _ref.valueById,
|
7985
7988
|
isTextbook = _ref.isTextbook,
|
7989
|
+
styles = _ref.styles,
|
7986
7990
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
7987
7991
|
var _useTranslation = useTranslation(),
|
7988
7992
|
t = _useTranslation.t;
|
@@ -8009,7 +8013,7 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
|
|
8009
8013
|
DropdownIndicator: DropdownIndicator,
|
8010
8014
|
Option: CustomOption
|
8011
8015
|
},
|
8012
|
-
styles: customStyles,
|
8016
|
+
styles: _extends({}, customStyles, styles),
|
8013
8017
|
placeholder: t("select_placeholder")
|
8014
8018
|
}, rest)) : React__default.createElement(Select, Object.assign({
|
8015
8019
|
isDisabled: isDisabled,
|
@@ -8025,7 +8029,7 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
|
|
8025
8029
|
DropdownIndicator: DropdownIndicator,
|
8026
8030
|
Option: CustomOption
|
8027
8031
|
},
|
8028
|
-
styles: customStyles,
|
8032
|
+
styles: _extends({}, customStyles, styles),
|
8029
8033
|
placeholder: t("select_placeholder")
|
8030
8034
|
}, rest));
|
8031
8035
|
};
|
@@ -9032,9 +9036,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
9032
9036
|
style: {
|
9033
9037
|
height: "200px",
|
9034
9038
|
position: "relative",
|
9035
|
-
objectFit: "contain"
|
9036
|
-
cursor: "pointer",
|
9037
|
-
borderRadius: "6px"
|
9039
|
+
objectFit: "contain"
|
9038
9040
|
}
|
9039
9041
|
}) : React__default.createElement("div", {
|
9040
9042
|
className: styles$2["wrap-content"] + " " + styles$2["content-chat-receiver"],
|
@@ -9117,9 +9119,7 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
9117
9119
|
style: {
|
9118
9120
|
height: "200px",
|
9119
9121
|
position: "relative",
|
9120
|
-
objectFit: "contain"
|
9121
|
-
cursor: "pointer",
|
9122
|
-
borderRadius: "6px"
|
9122
|
+
objectFit: "contain"
|
9123
9123
|
}
|
9124
9124
|
}) : React__default.createElement("div", {
|
9125
9125
|
className: styles$2["wrap-content"] + " " + styles$2["content-chat-sender"],
|
@@ -9548,928 +9548,89 @@ var ChatItem = function ChatItem(props) {
|
|
9548
9548
|
open: openConfirmDialog,
|
9549
9549
|
toggle: toggleConfirmDialog,
|
9550
9550
|
text: t("confirm_delete_message"),
|
9551
|
-
onConfirm: function onConfirm() {
|
9552
|
-
return handleDeleteMessage(conversationId || 0, id || 0, toggleConfirmDialog);
|
9553
|
-
},
|
9554
|
-
title: t("confirmation"),
|
9555
|
-
okText: t("yes"),
|
9556
|
-
cancelText: t("no")
|
9557
|
-
}), React__default.createElement(UpdateMessageDialog, {
|
9558
|
-
open: openUpdateDialog,
|
9559
|
-
onClose: toggleUpdateDialog,
|
9560
|
-
content: content,
|
9561
|
-
handleUploadImage: handleUploadImage,
|
9562
|
-
selectedFile: selectedFile,
|
9563
|
-
contentType: contentType,
|
9564
|
-
handleUpdateMessage: function handleUpdateMessage(content) {
|
9565
|
-
return _handleUpdateMessage(conversationId || 0, id || 0, content, toggleUpdateDialog);
|
9566
|
-
}
|
9567
|
-
}));
|
9568
|
-
};
|
9569
|
-
|
9570
|
-
var ChatList = function ChatList(_ref) {
|
9571
|
-
var _ref$messages = _ref.messages,
|
9572
|
-
messages = _ref$messages === void 0 ? [] : _ref$messages,
|
9573
|
-
roles = _ref.roles,
|
9574
|
-
onReTrySendMessage = _ref.onReTrySendMessage,
|
9575
|
-
handleUpdateMessage = _ref.handleUpdateMessage,
|
9576
|
-
handleDeleteMessage = _ref.handleDeleteMessage,
|
9577
|
-
listItemRef = _ref.listItemRef;
|
9578
|
-
var _useTranslation = useTranslation(),
|
9579
|
-
t = _useTranslation.t;
|
9580
|
-
var filterMessage = useMemo(function () {
|
9581
|
-
var prevTime = 0;
|
9582
|
-
var prevSender;
|
9583
|
-
return messages.map(function (message) {
|
9584
|
-
var _message$sender, _message$sender2;
|
9585
|
-
var currentTime = new Date(message.createdAt).getTime();
|
9586
|
-
var showTimestamp = !prevTime || currentTime - prevTime > 20 * 60 * 1000;
|
9587
|
-
var showName = ((_message$sender = message.sender) === null || _message$sender === void 0 ? void 0 : _message$sender.fullName) !== prevSender;
|
9588
|
-
prevSender = (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.fullName;
|
9589
|
-
prevTime = currentTime;
|
9590
|
-
return _extends({}, message, {
|
9591
|
-
showTimestamp: showTimestamp,
|
9592
|
-
showName: showName
|
9593
|
-
});
|
9594
|
-
});
|
9595
|
-
}, [JSON.stringify(messages)]);
|
9596
|
-
var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Student);
|
9597
|
-
return React__default.createElement("ul", {
|
9598
|
-
ref: listItemRef,
|
9599
|
-
className: styles$2["list"] + " " + styles$2["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
|
9600
|
-
}, !(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && React__default.createElement("li", {
|
9601
|
-
className: "text-muted text-center fst-italic fs-6"
|
9602
|
-
}, t('no_message')), !!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && filterMessage.map(function (message) {
|
9603
|
-
return React__default.createElement(ChatItem, Object.assign({
|
9604
|
-
key: message.id
|
9605
|
-
}, message, {
|
9606
|
-
isStudent: isStudent,
|
9607
|
-
handleUpdateMessage: handleUpdateMessage,
|
9608
|
-
handleDeleteMessage: handleDeleteMessage,
|
9609
|
-
onReTrySendMessage: onReTrySendMessage
|
9610
|
-
}));
|
9611
|
-
}));
|
9612
|
-
};
|
9613
|
-
|
9614
|
-
var iconSendMessage = function iconSendMessage(_ref) {
|
9615
|
-
var _ref$width = _ref.width,
|
9616
|
-
width = _ref$width === void 0 ? "16" : _ref$width,
|
9617
|
-
_ref$height = _ref.height,
|
9618
|
-
height = _ref$height === void 0 ? "16" : _ref$height,
|
9619
|
-
color = _ref.color;
|
9620
|
-
return React__default.createElement("svg", {
|
9621
|
-
width: width,
|
9622
|
-
height: height,
|
9623
|
-
viewBox: "0 0 16 16",
|
9624
|
-
fill: color,
|
9625
|
-
xmlns: "http://www.w3.org/2000/svg"
|
9626
|
-
}, React__default.createElement("path", {
|
9627
|
-
d: "M14.8934 7.09539L14.8884 7.0932L1.54219 1.55758C1.42993 1.51059 1.30778 1.49217 1.18666 1.50395C1.06554 1.51573 0.949225 1.55734 0.848125 1.62508C0.741311 1.69507 0.653573 1.79052 0.592805 1.90283C0.532037 2.01515 0.500145 2.14081 0.5 2.26852V5.80883C0.50006 5.98341 0.561019 6.15249 0.67237 6.28695C0.783722 6.42141 0.938491 6.5128 1.11 6.54539L8.38906 7.89133C8.41767 7.89675 8.44348 7.91199 8.46205 7.93441C8.48062 7.95683 8.49078 7.98503 8.49078 8.01414C8.49078 8.04325 8.48062 8.07145 8.46205 8.09387C8.44348 8.1163 8.41767 8.13153 8.38906 8.13695L1.11031 9.48289C0.938851 9.5154 0.784092 9.60667 0.67269 9.74101C0.561288 9.87534 0.500219 10.0443 0.5 10.2188V13.7598C0.499917 13.8817 0.530111 14.0018 0.587871 14.1092C0.645632 14.2166 0.729152 14.3079 0.830938 14.3751C0.953375 14.4564 1.09706 14.4999 1.24406 14.5001C1.34626 14.5 1.4474 14.4795 1.54156 14.4398L14.8875 8.9357L14.8934 8.93289C15.0731 8.85569 15.2262 8.72751 15.3337 8.56421C15.4413 8.40092 15.4986 8.20968 15.4986 8.01414C15.4986 7.81861 15.4413 7.62736 15.3337 7.46407C15.2262 7.30077 15.0731 7.1726 14.8934 7.09539Z",
|
9628
|
-
fill: "white"
|
9629
|
-
}));
|
9630
|
-
};
|
9631
|
-
|
9632
|
-
var CanvasOverlay = function CanvasOverlay(_ref) {
|
9633
|
-
var open = _ref.open,
|
9634
|
-
width = _ref.width,
|
9635
|
-
height = _ref.height,
|
9636
|
-
size = _ref.size,
|
9637
|
-
color = _ref.color,
|
9638
|
-
isEraser = _ref.isEraser;
|
9639
|
-
var overlayRef = useRef(null);
|
9640
|
-
var _useState = useState({
|
9641
|
-
x: 0,
|
9642
|
-
y: 0
|
9643
|
-
}),
|
9644
|
-
cursorPosition = _useState[0],
|
9645
|
-
setCursorPosition = _useState[1];
|
9646
|
-
var _useState2 = useState(true),
|
9647
|
-
hideCursor = _useState2[0],
|
9648
|
-
setHideCursor = _useState2[1];
|
9649
|
-
useEffect(function () {
|
9650
|
-
var updateCursorPosition = function updateCursorPosition(clientX, clientY) {
|
9651
|
-
var _overlayRef$current;
|
9652
|
-
var rect = (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.getBoundingClientRect();
|
9653
|
-
var isInside = rect && clientX > rect.left && clientX < rect.right && clientY > rect.top && clientY < rect.bottom;
|
9654
|
-
setHideCursor(!isInside);
|
9655
|
-
if (rect) setCursorPosition({
|
9656
|
-
x: clientX - rect.left,
|
9657
|
-
y: clientY - rect.top
|
9658
|
-
});
|
9659
|
-
};
|
9660
|
-
var handleMouseMove = function handleMouseMove(e) {
|
9661
|
-
updateCursorPosition(e.clientX, e.clientY);
|
9662
|
-
};
|
9663
|
-
var handleTouchMove = function handleTouchMove(e) {
|
9664
|
-
if (e.touches.length > 0) {
|
9665
|
-
var touch = e.touches[0];
|
9666
|
-
updateCursorPosition(touch.clientX, touch.clientY);
|
9667
|
-
}
|
9668
|
-
};
|
9669
|
-
if (open) {
|
9670
|
-
document.addEventListener("mousemove", handleMouseMove);
|
9671
|
-
document.addEventListener("touchmove", handleTouchMove);
|
9672
|
-
}
|
9673
|
-
return function () {
|
9674
|
-
document.removeEventListener("mousemove", handleMouseMove);
|
9675
|
-
document.removeEventListener("touchmove", handleTouchMove);
|
9676
|
-
};
|
9677
|
-
}, [open]);
|
9678
|
-
var left = cursorPosition.x - size / 2;
|
9679
|
-
var top = cursorPosition.y - size / 2;
|
9680
|
-
return React__default.createElement(Box, {
|
9681
|
-
ref: overlayRef,
|
9682
|
-
sx: {
|
9683
|
-
position: "absolute",
|
9684
|
-
top: 0,
|
9685
|
-
left: "50%",
|
9686
|
-
transform: "translateX(-50%)",
|
9687
|
-
width: width + "px",
|
9688
|
-
height: height + "px",
|
9689
|
-
pointerEvents: "none",
|
9690
|
-
overflow: "hidden"
|
9691
|
-
},
|
9692
|
-
width: width,
|
9693
|
-
height: height
|
9694
|
-
}, React__default.createElement(Box, {
|
9695
|
-
sx: {
|
9696
|
-
position: "fixed",
|
9697
|
-
top: top,
|
9698
|
-
left: left,
|
9699
|
-
width: size + "px",
|
9700
|
-
height: size + "px",
|
9701
|
-
borderRadius: "50%",
|
9702
|
-
border: "1px solid " + (isEraser ? "red" : color),
|
9703
|
-
backgroundColor: isEraser ? "rgba(255,0,0,0.1)" : "transparent",
|
9704
|
-
pointerEvents: "none",
|
9705
|
-
zIndex: 10,
|
9706
|
-
display: size > 0 && !hideCursor ? "block" : "none"
|
9707
|
-
}
|
9708
|
-
}));
|
9709
|
-
};
|
9710
|
-
|
9711
|
-
var MessageSortBy;
|
9712
|
-
(function (MessageSortBy) {
|
9713
|
-
MessageSortBy["CreatedAt"] = "CreatedAt";
|
9714
|
-
})(MessageSortBy || (MessageSortBy = {}));
|
9715
|
-
var OrderBy$1;
|
9716
|
-
(function (OrderBy) {
|
9717
|
-
OrderBy["ASC"] = "ASC";
|
9718
|
-
OrderBy["DESC"] = "DESC";
|
9719
|
-
})(OrderBy$1 || (OrderBy$1 = {}));
|
9720
|
-
var StudentSortBy;
|
9721
|
-
(function (StudentSortBy) {
|
9722
|
-
StudentSortBy["CreatedAt"] = "CreatedAt";
|
9723
|
-
StudentSortBy["FullName"] = "FullName";
|
9724
|
-
})(StudentSortBy || (StudentSortBy = {}));
|
9725
|
-
var StudentOrderBy;
|
9726
|
-
(function (StudentOrderBy) {
|
9727
|
-
StudentOrderBy["ASC"] = "ASC";
|
9728
|
-
StudentOrderBy["DESC"] = "DESC";
|
9729
|
-
})(StudentOrderBy || (StudentOrderBy = {}));
|
9730
|
-
var MessageAction;
|
9731
|
-
(function (MessageAction) {
|
9732
|
-
MessageAction[MessageAction["Default"] = 0] = "Default";
|
9733
|
-
MessageAction[MessageAction["Took"] = 1] = "Took";
|
9734
|
-
})(MessageAction || (MessageAction = {}));
|
9735
|
-
var MessageSourceType;
|
9736
|
-
(function (MessageSourceType) {
|
9737
|
-
MessageSourceType[MessageSourceType["Default"] = 0] = "Default";
|
9738
|
-
MessageSourceType[MessageSourceType["Exam"] = 1] = "Exam";
|
9739
|
-
MessageSourceType[MessageSourceType["Class"] = 2] = "Class";
|
9740
|
-
})(MessageSourceType || (MessageSourceType = {}));
|
9741
|
-
var MessageStatus;
|
9742
|
-
(function (MessageStatus) {
|
9743
|
-
MessageStatus["Default"] = "Sent";
|
9744
|
-
MessageStatus["Sending"] = "Sending...";
|
9745
|
-
MessageStatus["SentError"] = "Sent fail, Retry";
|
9746
|
-
})(MessageStatus || (MessageStatus = {}));
|
9747
|
-
|
9748
|
-
var types = {
|
9749
|
-
__proto__: null,
|
9750
|
-
get MessageSortBy () { return MessageSortBy; },
|
9751
|
-
get OrderBy () { return OrderBy$1; },
|
9752
|
-
get StudentSortBy () { return StudentSortBy; },
|
9753
|
-
get StudentOrderBy () { return StudentOrderBy; },
|
9754
|
-
get MessageAction () { return MessageAction; },
|
9755
|
-
get MessageSourceType () { return MessageSourceType; },
|
9756
|
-
get MessageStatus () { return MessageStatus; }
|
9757
|
-
};
|
9758
|
-
|
9759
|
-
var ExamStatus$1;
|
9760
|
-
(function (ExamStatus) {
|
9761
|
-
ExamStatus["Default"] = "Default";
|
9762
|
-
ExamStatus["Pending"] = "Pending";
|
9763
|
-
ExamStatus["Inprogress"] = "Inprogress";
|
9764
|
-
ExamStatus["Completed"] = "Completed";
|
9765
|
-
})(ExamStatus$1 || (ExamStatus$1 = {}));
|
9766
|
-
var Roles;
|
9767
|
-
(function (Roles) {
|
9768
|
-
Roles["Student"] = "Student";
|
9769
|
-
Roles["Teacher"] = "Teacher";
|
9770
|
-
Roles["Admin"] = "Admin";
|
9771
|
-
})(Roles || (Roles = {}));
|
9772
|
-
var MESSAGE_DEFAULT_FILTER = {
|
9773
|
-
currentPage: 1,
|
9774
|
-
pageSize: 15,
|
9775
|
-
textSearch: "",
|
9776
|
-
sortColumnDirection: OrderBy$1.DESC,
|
9777
|
-
sortColumnName: MessageSortBy.CreatedAt
|
9778
|
-
};
|
9779
|
-
var AlignList = ["Min", "Mid", "Max"];
|
9780
|
-
var DEFAULT_STROKE_COLOR = "#000000";
|
9781
|
-
var DEFAULT_BG_COLOR = "#FFFFFF";
|
9782
|
-
var DEFAULT_STROKE_WIDTH = 4;
|
9783
|
-
var DEFAULT_ERASER_WIDTH = 10;
|
9784
|
-
var CANVAS_WIDTH = 800;
|
9785
|
-
var CANVAS_HEIGHT = 600;
|
9786
|
-
|
9787
|
-
var BgImgAlignTool = function BgImgAlignTool(_ref) {
|
9788
|
-
var aspect = _ref.aspect,
|
9789
|
-
axis = _ref.axis,
|
9790
|
-
align = _ref.align,
|
9791
|
-
onAlignChange = _ref.onAlignChange;
|
9792
|
-
var handleChangeAlign = function handleChangeAlign() {
|
9793
|
-
onAlignChange(axis, align);
|
9794
|
-
};
|
9795
|
-
var icon = useMemo(function () {
|
9796
|
-
switch (align) {
|
9797
|
-
case "Min":
|
9798
|
-
return axis === "x" ? React__default.createElement(MdAlignHorizontalLeft, {
|
9799
|
-
size: 14
|
9800
|
-
}) : React__default.createElement(MdAlignVerticalTop, {
|
9801
|
-
size: 14
|
9802
|
-
});
|
9803
|
-
case "Mid":
|
9804
|
-
return axis === "x" ? React__default.createElement(MdAlignHorizontalCenter, {
|
9805
|
-
size: 14
|
9806
|
-
}) : React__default.createElement(MdAlignVerticalCenter, {
|
9807
|
-
size: 14
|
9808
|
-
});
|
9809
|
-
default:
|
9810
|
-
return axis === "x" ? React__default.createElement(MdAlignHorizontalRight, {
|
9811
|
-
size: 14
|
9812
|
-
}) : React__default.createElement(MdAlignVerticalBottom, {
|
9813
|
-
size: 14
|
9814
|
-
});
|
9815
|
-
}
|
9816
|
-
}, [axis, align]);
|
9817
|
-
var selected = useMemo(function () {
|
9818
|
-
return axis === "x" ? aspect.startsWith("" + axis + align) : aspect.endsWith("" + axis.toUpperCase() + align);
|
9819
|
-
}, [axis, align, aspect]);
|
9820
|
-
return React__default.createElement(IconButton, {
|
9821
|
-
size: "small",
|
9822
|
-
onClick: handleChangeAlign,
|
9823
|
-
sx: {
|
9824
|
-
p: 1
|
9825
|
-
},
|
9826
|
-
color: selected ? "success" : undefined
|
9827
|
-
}, icon);
|
9828
|
-
};
|
9829
|
-
|
9830
|
-
var BgImgAlignToolList = function BgImgAlignToolList(_ref) {
|
9831
|
-
var axis = _ref.axis,
|
9832
|
-
aspect = _ref.aspect,
|
9833
|
-
onAlignChange = _ref.onAlignChange;
|
9834
|
-
return React__default.createElement(Stack, {
|
9835
|
-
direction: "row",
|
9836
|
-
spacing: 1
|
9837
|
-
}, AlignList.map(function (align) {
|
9838
|
-
return React__default.createElement(BgImgAlignTool, {
|
9839
|
-
key: "" + axis + align,
|
9840
|
-
aspect: aspect,
|
9841
|
-
axis: axis,
|
9842
|
-
align: align,
|
9843
|
-
onAlignChange: onAlignChange
|
9844
|
-
});
|
9845
|
-
}));
|
9846
|
-
};
|
9847
|
-
|
9848
|
-
var BgImgTool = function BgImgTool(_ref) {
|
9849
|
-
var inputRef = _ref.inputRef,
|
9850
|
-
value = _ref.value,
|
9851
|
-
apsect = _ref.apsect,
|
9852
|
-
onClear = _ref.onClear,
|
9853
|
-
onPick = _ref.onPick,
|
9854
|
-
onChange = _ref.onChange,
|
9855
|
-
onAspectChange = _ref.onAspectChange;
|
9856
|
-
return React__default.createElement(Stack, {
|
9857
|
-
direction: "row",
|
9858
|
-
spacing: 1,
|
9859
|
-
alignItems: "center"
|
9860
|
-
}, React__default.createElement(IconButton, {
|
9861
|
-
sx: {
|
9862
|
-
width: "32px",
|
9863
|
-
height: "32px",
|
9864
|
-
background: grey[100]
|
9865
|
-
},
|
9866
|
-
size: "small",
|
9867
|
-
onClick: onPick
|
9868
|
-
}, React__default.createElement(FaImage, {
|
9869
|
-
size: 16
|
9870
|
-
}), React__default.createElement("input", {
|
9871
|
-
ref: inputRef,
|
9872
|
-
hidden: true,
|
9873
|
-
type: "file",
|
9874
|
-
accept: "image/*",
|
9875
|
-
onChange: onChange
|
9876
|
-
})), value && React__default.createElement(IconButton, {
|
9877
|
-
sx: {
|
9878
|
-
width: "32px",
|
9879
|
-
height: "32px",
|
9880
|
-
background: red[900],
|
9881
|
-
"&:hover": {
|
9882
|
-
background: red[500]
|
9883
|
-
}
|
9884
|
-
},
|
9885
|
-
onClick: onClear
|
9886
|
-
}, React__default.createElement(GrClear, {
|
9887
|
-
size: 16,
|
9888
|
-
color: "#FFF"
|
9889
|
-
})), value && React__default.createElement(Stack, {
|
9890
|
-
direction: "row",
|
9891
|
-
alignItems: "center",
|
9892
|
-
gap: 1
|
9893
|
-
}, React__default.createElement(Stack, {
|
9894
|
-
direction: "column"
|
9895
|
-
}, React__default.createElement(IconButton, {
|
9896
|
-
size: "small",
|
9897
|
-
onClick: function onClick() {
|
9898
|
-
return onAspectChange();
|
9899
|
-
},
|
9900
|
-
sx: {
|
9901
|
-
p: 1
|
9902
|
-
},
|
9903
|
-
color: apsect === "none" ? "success" : undefined
|
9904
|
-
}, React__default.createElement(MdOutlineZoomOutMap, {
|
9905
|
-
size: 14
|
9906
|
-
}))), React__default.createElement(Stack, {
|
9907
|
-
direction: "column"
|
9908
|
-
}, React__default.createElement(BgImgAlignToolList, {
|
9909
|
-
aspect: apsect,
|
9910
|
-
axis: "x",
|
9911
|
-
onAlignChange: onAspectChange
|
9912
|
-
}), React__default.createElement(BgImgAlignToolList, {
|
9913
|
-
aspect: apsect,
|
9914
|
-
axis: "y",
|
9915
|
-
onAlignChange: onAspectChange
|
9916
|
-
}))));
|
9917
|
-
};
|
9918
|
-
|
9919
|
-
var ColorPicker = function ColorPicker(_ref) {
|
9920
|
-
var disabled = _ref.disabled,
|
9921
|
-
inputRef = _ref.inputRef,
|
9922
|
-
onChange = _ref.onChange;
|
9923
|
-
return React__default.createElement(Box, {
|
9924
|
-
width: "32px",
|
9925
|
-
height: "32px",
|
9926
|
-
borderRadius: "50%",
|
9927
|
-
overflow: "hidden",
|
9928
|
-
border: "1px solid " + grey[500]
|
9929
|
-
}, React__default.createElement("input", {
|
9930
|
-
ref: inputRef,
|
9931
|
-
onChange: onChange,
|
9932
|
-
type: "color",
|
9933
|
-
disabled: disabled,
|
9934
|
-
style: {
|
9935
|
-
width: "200%",
|
9936
|
-
height: "200%",
|
9937
|
-
borderStyle: "none",
|
9938
|
-
backgroundColor: "none",
|
9939
|
-
transform: "translate(-25%, -25%)",
|
9940
|
-
cursor: "pointer"
|
9941
|
-
}
|
9942
|
-
}));
|
9943
|
-
};
|
9944
|
-
|
9945
|
-
var boxShadow = "0 3px 1px rgba(0,0,0,0.1),0 4px 8px rgba(0,0,0,0.13),0 0 0 1px rgba(0,0,0,0.02)";
|
9946
|
-
var CustomSlider = styled(Slider)(function (_ref) {
|
9947
|
-
var theme = _ref.theme;
|
9948
|
-
return _extends({
|
9949
|
-
color: green[500],
|
9950
|
-
height: 5,
|
9951
|
-
width: 120,
|
9952
|
-
marginInline: "8px",
|
9953
|
-
"& .MuiSlider-thumb": {
|
9954
|
-
height: 20,
|
9955
|
-
width: 20,
|
9956
|
-
backgroundColor: "#fff",
|
9957
|
-
boxShadow: "0 0 2px 0px rgba(0, 0, 0, 0.1)",
|
9958
|
-
"&:focus, &:hover, &.Mui-active": {
|
9959
|
-
boxShadow: "0px 0px 3px 1px rgba(0, 0, 0, 0.1)",
|
9960
|
-
"@media (hover: none)": {
|
9961
|
-
boxShadow: boxShadow
|
9962
|
-
}
|
9963
|
-
},
|
9964
|
-
"&:before": {
|
9965
|
-
boxShadow: "0px 0px 1px 0px rgba(0,0,0,0.2), 0px 0px 0px 0px rgba(0,0,0,0.14), 0px 0px 1px 0px rgba(0,0,0,0.12)"
|
9966
|
-
}
|
9967
|
-
},
|
9968
|
-
"& .MuiSlider-valueLabel": {
|
9969
|
-
fontSize: 12,
|
9970
|
-
fontWeight: "normal",
|
9971
|
-
top: 4,
|
9972
|
-
backgroundColor: "unset",
|
9973
|
-
color: theme.palette.text.primary,
|
9974
|
-
"&::before": {
|
9975
|
-
display: "none"
|
9976
|
-
},
|
9977
|
-
"& *": _extends({
|
9978
|
-
background: "transparent",
|
9979
|
-
color: "#000"
|
9980
|
-
}, theme.applyStyles("dark", {
|
9981
|
-
color: "#fff"
|
9982
|
-
}))
|
9983
|
-
},
|
9984
|
-
"& .MuiSlider-track": {
|
9985
|
-
border: "none",
|
9986
|
-
boxShadow: "inset 0px 0px 4px -2px #000",
|
9987
|
-
height: 5
|
9988
|
-
},
|
9989
|
-
"& .MuiSlider-rail": {
|
9990
|
-
opacity: 0.5,
|
9991
|
-
boxShadow: "inset 0px 0px 4px -2px #000",
|
9992
|
-
backgroundColor: "#d0d0d0"
|
9993
|
-
}
|
9994
|
-
}, theme.applyStyles("dark", {
|
9995
|
-
color: green[700]
|
9996
|
-
}));
|
9997
|
-
});
|
9998
|
-
var WidthSlider = function WidthSlider(_ref2) {
|
9999
|
-
var value = _ref2.value,
|
10000
|
-
onChange = _ref2.onChange;
|
10001
|
-
return React__default.createElement(CustomSlider, {
|
10002
|
-
defaultValue: value,
|
10003
|
-
onChange: onChange,
|
10004
|
-
min: 1,
|
10005
|
-
valueLabelDisplay: "on"
|
10006
|
-
});
|
10007
|
-
};
|
10008
|
-
|
10009
|
-
var PencilTool = function PencilTool(_ref) {
|
10010
|
-
var inputRef = _ref.inputRef,
|
10011
|
-
selected = _ref.selected,
|
10012
|
-
width = _ref.width,
|
10013
|
-
onSelect = _ref.onSelect,
|
10014
|
-
onChangeColor = _ref.onChangeColor,
|
10015
|
-
onChangeWidth = _ref.onChangeWidth;
|
10016
|
-
return React__default.createElement(Stack, {
|
10017
|
-
direction: "row",
|
10018
|
-
spacing: 1,
|
10019
|
-
alignItems: "center"
|
10020
|
-
}, React__default.createElement(IconButton, {
|
10021
|
-
sx: _extends({
|
10022
|
-
width: "32px",
|
10023
|
-
height: "32px",
|
10024
|
-
background: !selected ? grey[100] : green[500]
|
10025
|
-
}, selected && {
|
10026
|
-
color: "#FFFF"
|
10027
|
-
}, {
|
10028
|
-
"&:hover": {
|
10029
|
-
background: !selected ? grey[100] : green[500]
|
10030
|
-
}
|
10031
|
-
}),
|
10032
|
-
size: "small",
|
10033
|
-
onClick: onSelect
|
10034
|
-
}, React__default.createElement(FaPencilAlt, {
|
10035
|
-
size: 14
|
10036
|
-
})), React__default.createElement(ColorPicker, {
|
10037
|
-
inputRef: inputRef,
|
10038
|
-
onChange: onChangeColor
|
10039
|
-
}), React__default.createElement(Stack, {
|
10040
|
-
direction: "row",
|
10041
|
-
alignItems: "center",
|
10042
|
-
px: 1
|
10043
|
-
}, React__default.createElement(WidthSlider, {
|
10044
|
-
value: width,
|
10045
|
-
onChange: onChangeWidth
|
10046
|
-
})));
|
10047
|
-
};
|
10048
|
-
|
10049
|
-
var EraserTool = function EraserTool(_ref) {
|
10050
|
-
var selected = _ref.selected,
|
10051
|
-
width = _ref.width,
|
10052
|
-
onSelect = _ref.onSelect,
|
10053
|
-
onChangeWidth = _ref.onChangeWidth;
|
10054
|
-
return React__default.createElement(Stack, {
|
10055
|
-
direction: "row",
|
10056
|
-
spacing: 1,
|
10057
|
-
alignItems: "center"
|
10058
|
-
}, React__default.createElement(IconButton, {
|
10059
|
-
sx: _extends({
|
10060
|
-
width: "32px",
|
10061
|
-
height: "32px",
|
10062
|
-
background: !selected ? grey[100] : red[900]
|
10063
|
-
}, selected && {
|
10064
|
-
color: "#FFFF"
|
10065
|
-
}, {
|
10066
|
-
"&:hover": {
|
10067
|
-
background: !selected ? grey[100] : red[900]
|
10068
|
-
}
|
10069
|
-
}),
|
10070
|
-
size: "small",
|
10071
|
-
onClick: onSelect
|
10072
|
-
}, React__default.createElement(FaEraser, {
|
10073
|
-
size: 16
|
10074
|
-
})), React__default.createElement(Stack, {
|
10075
|
-
direction: "row",
|
10076
|
-
alignItems: "center",
|
10077
|
-
px: 1
|
10078
|
-
}, React__default.createElement(WidthSlider, {
|
10079
|
-
value: width,
|
10080
|
-
onChange: onChangeWidth
|
10081
|
-
})));
|
10082
|
-
};
|
10083
|
-
|
10084
|
-
var BgColorTool = function BgColorTool(_ref) {
|
10085
|
-
var inputRef = _ref.inputRef,
|
10086
|
-
onPick = _ref.onPick,
|
10087
|
-
onChange = _ref.onChange;
|
10088
|
-
return React__default.createElement(Stack, {
|
10089
|
-
direction: "row",
|
10090
|
-
spacing: 1,
|
10091
|
-
alignItems: "center"
|
10092
|
-
}, React__default.createElement(Button, {
|
10093
|
-
onClick: onPick
|
10094
|
-
}, React__default.createElement(Box, {
|
10095
|
-
width: "32px",
|
10096
|
-
height: "32px",
|
10097
|
-
display: "flex",
|
10098
|
-
justifyContent: "center",
|
10099
|
-
alignItems: "center"
|
10100
|
-
}, React__default.createElement(IoIosColorFill, {
|
10101
|
-
color: grey[600],
|
10102
|
-
size: 20
|
10103
|
-
})), React__default.createElement(ColorPicker, {
|
10104
|
-
inputRef: inputRef,
|
10105
|
-
onChange: onChange
|
10106
|
-
})));
|
10107
|
-
};
|
10108
|
-
|
10109
|
-
var ToolContainerStyles = {
|
10110
|
-
display: "flex",
|
10111
|
-
gap: 2,
|
10112
|
-
flexWrap: "nowrap",
|
10113
|
-
justifyContent: {
|
10114
|
-
lg: "center",
|
10115
|
-
sx: "start"
|
10116
|
-
},
|
10117
|
-
alignItems: "center",
|
10118
|
-
px: 4,
|
10119
|
-
pb: 2,
|
10120
|
-
pt: 1,
|
10121
|
-
width: "100%",
|
10122
|
-
overflowX: "auto",
|
10123
|
-
overflowY: "hidden"
|
10124
|
-
};
|
10125
|
-
var CanvasContainerStyles = {
|
10126
|
-
position: "relative",
|
10127
|
-
flexGrow: 1,
|
10128
|
-
display: "flex",
|
10129
|
-
justifyContent: {
|
10130
|
-
lg: "center",
|
10131
|
-
sx: "start"
|
10132
|
-
}
|
10133
|
-
};
|
10134
|
-
var CanvasWrapperStyles = {
|
10135
|
-
flexGrow: 1,
|
10136
|
-
overflow: "scroll",
|
10137
|
-
width: "100%",
|
10138
|
-
height: "100%",
|
10139
|
-
display: "flex",
|
10140
|
-
justifyContent: {
|
10141
|
-
lg: "center",
|
10142
|
-
sx: "start"
|
10143
|
-
},
|
10144
|
-
padding: "8px 24px 24px"
|
10145
|
-
};
|
10146
|
-
var IconButtonStyles = {
|
10147
|
-
width: "32px",
|
10148
|
-
height: "32px",
|
10149
|
-
background: grey[100]
|
10150
|
-
};
|
10151
|
-
|
10152
|
-
var Transition = React__default.forwardRef(function Transition(props, ref) {
|
10153
|
-
return React__default.createElement(Slide, Object.assign({
|
10154
|
-
direction: "up",
|
10155
|
-
ref: ref
|
10156
|
-
}, props));
|
10157
|
-
});
|
10158
|
-
var SketchDialog = function SketchDialog(_ref) {
|
10159
|
-
var open = _ref.open,
|
10160
|
-
drawPath = _ref.drawPath,
|
10161
|
-
onClose = _ref.onClose,
|
10162
|
-
onSave = _ref.onSave;
|
10163
|
-
var _useTranslation = useTranslation(),
|
10164
|
-
t = _useTranslation.t;
|
10165
|
-
var canvasRef = useRef(null);
|
10166
|
-
var _useState = useState(DEFAULT_STROKE_COLOR),
|
10167
|
-
strokeColor = _useState[0],
|
10168
|
-
setStrokeColor = _useState[1];
|
10169
|
-
var _useState2 = useState(DEFAULT_STROKE_WIDTH),
|
10170
|
-
strokeWidth = _useState2[0],
|
10171
|
-
setStrokeWidth = _useState2[1];
|
10172
|
-
var _useState3 = useState(DEFAULT_ERASER_WIDTH),
|
10173
|
-
eraserWidth = _useState3[0],
|
10174
|
-
setEraserWidth = _useState3[1];
|
10175
|
-
var _useState4 = useState(DEFAULT_BG_COLOR),
|
10176
|
-
backgroundColor = _useState4[0],
|
10177
|
-
setBackgroundColor = _useState4[1];
|
10178
|
-
var _useState5 = useState(null),
|
10179
|
-
backgroundImage = _useState5[0],
|
10180
|
-
setBackgroundImage = _useState5[1];
|
10181
|
-
var _useState6 = useState(false),
|
10182
|
-
isEraser = _useState6[0],
|
10183
|
-
setIsEraser = _useState6[1];
|
10184
|
-
var bgImageInputRef = useRef(null);
|
10185
|
-
var bgColorRef = useRef(null);
|
10186
|
-
var colorRef = useRef(null);
|
10187
|
-
var _useState7 = useState("none"),
|
10188
|
-
bgImageAspect = _useState7[0],
|
10189
|
-
setBgImageAspect = _useState7[1];
|
10190
|
-
var getNewAlign = function getNewAlign(axis, align) {
|
10191
|
-
if (!axis || !align) return "none";
|
10192
|
-
var _bgImageAspect$split = bgImageAspect.split("Y"),
|
10193
|
-
xAlign = _bgImageAspect$split[0],
|
10194
|
-
yAlign = _bgImageAspect$split[1];
|
10195
|
-
if (bgImageAspect === "none" || !xAlign && !yAlign) return axis === "y" ? "xMinY" + align : "x" + align + "YMin";
|
10196
|
-
return axis === "y" ? xAlign + "Y" + align : "x" + align + "Y" + yAlign;
|
10197
|
-
};
|
10198
|
-
var handleChangeAlign = function handleChangeAlign(axis, pos) {
|
10199
|
-
var newValue = getNewAlign(axis, pos);
|
10200
|
-
setBgImageAspect(newValue);
|
10201
|
-
};
|
10202
|
-
var handleClickBgColor = function handleClickBgColor() {
|
10203
|
-
var _bgColorRef$current;
|
10204
|
-
(_bgColorRef$current = bgColorRef.current) === null || _bgColorRef$current === void 0 ? void 0 : _bgColorRef$current.click();
|
10205
|
-
};
|
10206
|
-
var clearCanvas = function clearCanvas() {
|
10207
|
-
var _canvasRef$current;
|
10208
|
-
(_canvasRef$current = canvasRef.current) === null || _canvasRef$current === void 0 ? void 0 : _canvasRef$current.clearCanvas();
|
10209
|
-
setBackgroundImage(null);
|
10210
|
-
if (bgColorRef.current) bgColorRef.current.value = DEFAULT_BG_COLOR;
|
10211
|
-
setBackgroundColor(DEFAULT_BG_COLOR);
|
10212
|
-
};
|
10213
|
-
var undo = function undo() {
|
10214
|
-
var _canvasRef$current2;
|
10215
|
-
(_canvasRef$current2 = canvasRef.current) === null || _canvasRef$current2 === void 0 ? void 0 : _canvasRef$current2.undo();
|
10216
|
-
};
|
10217
|
-
var redo = function redo() {
|
10218
|
-
var _canvasRef$current3;
|
10219
|
-
(_canvasRef$current3 = canvasRef.current) === null || _canvasRef$current3 === void 0 ? void 0 : _canvasRef$current3.redo();
|
10220
|
-
};
|
10221
|
-
var saveImage = function saveImage() {
|
10222
|
-
try {
|
10223
|
-
var _canvasRef$current4;
|
10224
|
-
return Promise.resolve((_canvasRef$current4 = canvasRef.current) === null || _canvasRef$current4 === void 0 ? void 0 : _canvasRef$current4.exportImage("png")).then(function (imageData) {
|
10225
|
-
var _canvasRef$current5;
|
10226
|
-
return Promise.resolve((_canvasRef$current5 = canvasRef.current) === null || _canvasRef$current5 === void 0 ? void 0 : _canvasRef$current5.exportPaths()).then(function (data) {
|
10227
|
-
onSave(imageData, data);
|
10228
|
-
onClose();
|
10229
|
-
});
|
10230
|
-
});
|
10231
|
-
} catch (e) {
|
10232
|
-
return Promise.reject(e);
|
10233
|
-
}
|
10234
|
-
};
|
10235
|
-
var handleEraserMode = function handleEraserMode() {
|
10236
|
-
var _canvasRef$current6;
|
10237
|
-
setIsEraser(true);
|
10238
|
-
(_canvasRef$current6 = canvasRef.current) === null || _canvasRef$current6 === void 0 ? void 0 : _canvasRef$current6.eraseMode(true);
|
10239
|
-
};
|
10240
|
-
var handlePencilMode = function handlePencilMode() {
|
10241
|
-
var _canvasRef$current7;
|
10242
|
-
setIsEraser(false);
|
10243
|
-
(_canvasRef$current7 = canvasRef.current) === null || _canvasRef$current7 === void 0 ? void 0 : _canvasRef$current7.eraseMode(false);
|
10244
|
-
};
|
10245
|
-
var handleClickChangeBgImage = function handleClickChangeBgImage() {
|
10246
|
-
var _bgImageInputRef$curr;
|
10247
|
-
(_bgImageInputRef$curr = bgImageInputRef.current) === null || _bgImageInputRef$curr === void 0 ? void 0 : _bgImageInputRef$curr.click();
|
10248
|
-
};
|
10249
|
-
var handleBackgroundImageChange = function handleBackgroundImageChange(event) {
|
10250
|
-
var _event$target$files;
|
10251
|
-
var file = (_event$target$files = event.target.files) === null || _event$target$files === void 0 ? void 0 : _event$target$files[0];
|
10252
|
-
if (file) {
|
10253
|
-
var reader = new FileReader();
|
10254
|
-
reader.onload = function () {
|
10255
|
-
setBackgroundImage(reader.result);
|
10256
|
-
};
|
10257
|
-
reader.readAsDataURL(file);
|
10258
|
-
}
|
10259
|
-
};
|
10260
|
-
var handleChangePencilColor = function handleChangePencilColor(e) {
|
10261
|
-
setStrokeColor(e.target.value);
|
10262
|
-
};
|
10263
|
-
var handleChangeBgColor = function handleChangeBgColor(e) {
|
10264
|
-
setBackgroundColor(e.target.value);
|
10265
|
-
};
|
10266
|
-
var handleChangeEraserWidth = function handleChangeEraserWidth(e) {
|
10267
|
-
return setEraserWidth(Number(e.target.value));
|
10268
|
-
};
|
10269
|
-
var handleChangePencilWidth = function handleChangePencilWidth(e) {
|
10270
|
-
return setStrokeWidth(Number(e.target.value));
|
10271
|
-
};
|
10272
|
-
var debounceChangeBgColor = _$a.debounce(handleChangeBgColor, 300);
|
10273
|
-
var debounceChangePencilColor = _$a.debounce(handleChangePencilColor, 300);
|
10274
|
-
var debounceChangeEraserWidth = _$a.debounce(handleChangeEraserWidth, 300);
|
10275
|
-
var debounceChangePencilWidth = _$a.debounce(handleChangePencilWidth, 300);
|
10276
|
-
var currentToolSize = isEraser ? eraserWidth : strokeWidth;
|
10277
|
-
var handleClearBgImage = function handleClearBgImage() {
|
10278
|
-
setBackgroundImage(null);
|
10279
|
-
};
|
10280
|
-
var handleLoad = function handleLoad(data) {
|
10281
|
-
try {
|
10282
|
-
var _temp = function () {
|
10283
|
-
if (data) {
|
10284
|
-
var _canvasRef$current8;
|
10285
|
-
return Promise.resolve((_canvasRef$current8 = canvasRef.current) === null || _canvasRef$current8 === void 0 ? void 0 : _canvasRef$current8.loadPaths(data)).then(function () {
|
10286
|
-
if (bgColorRef.current) bgColorRef.current.value = backgroundColor;
|
10287
|
-
});
|
10288
|
-
} else {
|
10289
|
-
var _canvasRef$current9;
|
10290
|
-
return Promise.resolve((_canvasRef$current9 = canvasRef.current) === null || _canvasRef$current9 === void 0 ? void 0 : _canvasRef$current9.clearCanvas()).then(function () {
|
10291
|
-
if (bgColorRef.current) bgColorRef.current.value = DEFAULT_BG_COLOR;
|
10292
|
-
setBackgroundColor(DEFAULT_BG_COLOR);
|
10293
|
-
setBackgroundImage(null);
|
10294
|
-
setBgImageAspect("none");
|
10295
|
-
});
|
10296
|
-
}
|
10297
|
-
}();
|
10298
|
-
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
10299
|
-
} catch (e) {
|
10300
|
-
return Promise.reject(e);
|
10301
|
-
}
|
10302
|
-
};
|
10303
|
-
useEffect(function () {
|
10304
|
-
if (open) {
|
10305
|
-
setTimeout(function () {
|
10306
|
-
if (canvasRef.current) {
|
10307
|
-
handleLoad(drawPath);
|
10308
|
-
}
|
10309
|
-
}, 0);
|
10310
|
-
} else {
|
10311
|
-
if (bgColorRef.current) bgColorRef.current.value = DEFAULT_BG_COLOR;
|
10312
|
-
if (colorRef.current) colorRef.current.value = DEFAULT_STROKE_COLOR;
|
10313
|
-
setStrokeColor(DEFAULT_STROKE_COLOR);
|
10314
|
-
setStrokeWidth(DEFAULT_STROKE_WIDTH);
|
10315
|
-
setEraserWidth(DEFAULT_ERASER_WIDTH);
|
10316
|
-
setIsEraser(false);
|
10317
|
-
}
|
10318
|
-
}, [open, drawPath]);
|
10319
|
-
return React__default.createElement(Dialog, {
|
10320
|
-
fullScreen: true,
|
10321
|
-
open: open,
|
10322
|
-
onClose: onClose,
|
10323
|
-
TransitionComponent: Transition
|
10324
|
-
}, React__default.createElement(AppBar, {
|
10325
|
-
color: "success",
|
10326
|
-
sx: {
|
10327
|
-
position: "relative"
|
10328
|
-
}
|
10329
|
-
}, React__default.createElement(Toolbar, null, React__default.createElement(IconButton, {
|
10330
|
-
sx: {
|
10331
|
-
width: "32px",
|
10332
|
-
height: "32px"
|
10333
|
-
},
|
10334
|
-
edge: "start",
|
10335
|
-
color: "inherit",
|
10336
|
-
onClick: onClose,
|
10337
|
-
"aria-label": "close"
|
10338
|
-
}, React__default.createElement(IoClose, null)), React__default.createElement(Typography, {
|
10339
|
-
sx: {
|
10340
|
-
ml: 2,
|
10341
|
-
flex: 1
|
10342
|
-
},
|
10343
|
-
variant: "h6",
|
10344
|
-
component: "div"
|
10345
|
-
}, t("sketch_canvas")), React__default.createElement(Stack, {
|
10346
|
-
direction: "row",
|
10347
|
-
gap: 1
|
10348
|
-
}, React__default.createElement(Button, {
|
10349
|
-
sx: {
|
10350
|
-
px: 2
|
10351
|
-
},
|
10352
|
-
startIcon: React__default.createElement(FaSave, {
|
10353
|
-
size: 14
|
10354
|
-
}),
|
10355
|
-
color: "inherit",
|
10356
|
-
onClick: saveImage
|
10357
|
-
}, t("save")), React__default.createElement(Button, {
|
10358
|
-
sx: {
|
10359
|
-
px: 2
|
9551
|
+
onConfirm: function onConfirm() {
|
9552
|
+
return handleDeleteMessage(conversationId || 0, id || 0, toggleConfirmDialog);
|
10360
9553
|
},
|
10361
|
-
|
10362
|
-
|
10363
|
-
|
10364
|
-
|
10365
|
-
|
10366
|
-
|
10367
|
-
|
10368
|
-
|
10369
|
-
|
10370
|
-
|
10371
|
-
|
10372
|
-
|
10373
|
-
}, React__default.createElement(Box, {
|
10374
|
-
sx: ToolContainerStyles
|
10375
|
-
}, React__default.createElement(PencilTool, {
|
10376
|
-
inputRef: colorRef,
|
10377
|
-
width: strokeWidth,
|
10378
|
-
selected: !isEraser,
|
10379
|
-
onSelect: handlePencilMode,
|
10380
|
-
onChangeColor: debounceChangePencilColor,
|
10381
|
-
onChangeWidth: debounceChangePencilWidth
|
10382
|
-
}), React__default.createElement(Divider, {
|
10383
|
-
orientation: "vertical",
|
10384
|
-
flexItem: true,
|
10385
|
-
sx: {
|
10386
|
-
borderColor: grey[300]
|
10387
|
-
}
|
10388
|
-
}), React__default.createElement(EraserTool, {
|
10389
|
-
width: eraserWidth,
|
10390
|
-
selected: isEraser,
|
10391
|
-
onSelect: handleEraserMode,
|
10392
|
-
onChangeWidth: debounceChangeEraserWidth
|
10393
|
-
}), React__default.createElement(Divider, {
|
10394
|
-
orientation: "vertical",
|
10395
|
-
flexItem: true,
|
10396
|
-
sx: {
|
10397
|
-
borderColor: grey[300]
|
10398
|
-
}
|
10399
|
-
}), React__default.createElement(BgColorTool, {
|
10400
|
-
inputRef: bgColorRef,
|
10401
|
-
onChange: debounceChangeBgColor,
|
10402
|
-
onPick: handleClickBgColor
|
10403
|
-
}), React__default.createElement(Divider, {
|
10404
|
-
orientation: "vertical",
|
10405
|
-
flexItem: true,
|
10406
|
-
sx: {
|
10407
|
-
borderColor: grey[300]
|
9554
|
+
title: t("confirmation"),
|
9555
|
+
okText: t("yes"),
|
9556
|
+
cancelText: t("no")
|
9557
|
+
}), React__default.createElement(UpdateMessageDialog, {
|
9558
|
+
open: openUpdateDialog,
|
9559
|
+
onClose: toggleUpdateDialog,
|
9560
|
+
content: content,
|
9561
|
+
handleUploadImage: handleUploadImage,
|
9562
|
+
selectedFile: selectedFile,
|
9563
|
+
contentType: contentType,
|
9564
|
+
handleUpdateMessage: function handleUpdateMessage(content) {
|
9565
|
+
return _handleUpdateMessage(conversationId || 0, id || 0, content, toggleUpdateDialog);
|
10408
9566
|
}
|
10409
|
-
})
|
10410
|
-
|
10411
|
-
|
10412
|
-
|
10413
|
-
|
10414
|
-
|
10415
|
-
|
10416
|
-
|
10417
|
-
|
10418
|
-
|
10419
|
-
|
10420
|
-
|
10421
|
-
|
10422
|
-
|
10423
|
-
|
10424
|
-
|
10425
|
-
|
10426
|
-
|
10427
|
-
|
10428
|
-
|
10429
|
-
|
10430
|
-
|
10431
|
-
|
10432
|
-
|
10433
|
-
|
10434
|
-
|
10435
|
-
|
10436
|
-
|
10437
|
-
|
10438
|
-
|
10439
|
-
|
10440
|
-
|
10441
|
-
|
10442
|
-
|
10443
|
-
|
10444
|
-
|
10445
|
-
|
10446
|
-
|
10447
|
-
},
|
10448
|
-
|
10449
|
-
|
10450
|
-
|
10451
|
-
|
10452
|
-
|
10453
|
-
|
10454
|
-
|
10455
|
-
|
10456
|
-
|
10457
|
-
|
10458
|
-
|
10459
|
-
|
10460
|
-
|
10461
|
-
|
10462
|
-
|
10463
|
-
|
9567
|
+
}));
|
9568
|
+
};
|
9569
|
+
|
9570
|
+
var ChatList = function ChatList(_ref) {
|
9571
|
+
var _ref$messages = _ref.messages,
|
9572
|
+
messages = _ref$messages === void 0 ? [] : _ref$messages,
|
9573
|
+
roles = _ref.roles,
|
9574
|
+
onReTrySendMessage = _ref.onReTrySendMessage,
|
9575
|
+
handleUpdateMessage = _ref.handleUpdateMessage,
|
9576
|
+
handleDeleteMessage = _ref.handleDeleteMessage,
|
9577
|
+
listItemRef = _ref.listItemRef;
|
9578
|
+
var _useTranslation = useTranslation(),
|
9579
|
+
t = _useTranslation.t;
|
9580
|
+
var filterMessage = useMemo(function () {
|
9581
|
+
var prevTime = 0;
|
9582
|
+
var prevSender;
|
9583
|
+
return messages.map(function (message) {
|
9584
|
+
var _message$sender, _message$sender2;
|
9585
|
+
var currentTime = new Date(message.createdAt).getTime();
|
9586
|
+
var showTimestamp = !prevTime || currentTime - prevTime > 20 * 60 * 1000;
|
9587
|
+
var showName = ((_message$sender = message.sender) === null || _message$sender === void 0 ? void 0 : _message$sender.fullName) !== prevSender;
|
9588
|
+
prevSender = (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.fullName;
|
9589
|
+
prevTime = currentTime;
|
9590
|
+
return _extends({}, message, {
|
9591
|
+
showTimestamp: showTimestamp,
|
9592
|
+
showName: showName
|
9593
|
+
});
|
9594
|
+
});
|
9595
|
+
}, [JSON.stringify(messages)]);
|
9596
|
+
var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Student);
|
9597
|
+
return React__default.createElement("ul", {
|
9598
|
+
ref: listItemRef,
|
9599
|
+
className: styles$2["list"] + " " + styles$2["padding-content"] + " d-flex h-100 flex-column mb-0 " + (!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) ? 'justify-content-center' : '')
|
9600
|
+
}, !(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && React__default.createElement("li", {
|
9601
|
+
className: "text-muted text-center fst-italic fs-6"
|
9602
|
+
}, t('no_message')), !!(filterMessage !== null && filterMessage !== void 0 && filterMessage.length) && filterMessage.map(function (message) {
|
9603
|
+
return React__default.createElement(ChatItem, Object.assign({
|
9604
|
+
key: message.id
|
9605
|
+
}, message, {
|
9606
|
+
isStudent: isStudent,
|
9607
|
+
handleUpdateMessage: handleUpdateMessage,
|
9608
|
+
handleDeleteMessage: handleDeleteMessage,
|
9609
|
+
onReTrySendMessage: onReTrySendMessage
|
9610
|
+
}));
|
9611
|
+
}));
|
9612
|
+
};
|
9613
|
+
|
9614
|
+
var iconSendMessage = function iconSendMessage(_ref) {
|
9615
|
+
var _ref$width = _ref.width,
|
9616
|
+
width = _ref$width === void 0 ? "16" : _ref$width,
|
9617
|
+
_ref$height = _ref.height,
|
9618
|
+
height = _ref$height === void 0 ? "16" : _ref$height,
|
9619
|
+
color = _ref.color;
|
9620
|
+
return React__default.createElement("svg", {
|
9621
|
+
width: width,
|
9622
|
+
height: height,
|
9623
|
+
viewBox: "0 0 16 16",
|
9624
|
+
fill: color,
|
9625
|
+
xmlns: "http://www.w3.org/2000/svg"
|
9626
|
+
}, React__default.createElement("path", {
|
9627
|
+
d: "M14.8934 7.09539L14.8884 7.0932L1.54219 1.55758C1.42993 1.51059 1.30778 1.49217 1.18666 1.50395C1.06554 1.51573 0.949225 1.55734 0.848125 1.62508C0.741311 1.69507 0.653573 1.79052 0.592805 1.90283C0.532037 2.01515 0.500145 2.14081 0.5 2.26852V5.80883C0.50006 5.98341 0.561019 6.15249 0.67237 6.28695C0.783722 6.42141 0.938491 6.5128 1.11 6.54539L8.38906 7.89133C8.41767 7.89675 8.44348 7.91199 8.46205 7.93441C8.48062 7.95683 8.49078 7.98503 8.49078 8.01414C8.49078 8.04325 8.48062 8.07145 8.46205 8.09387C8.44348 8.1163 8.41767 8.13153 8.38906 8.13695L1.11031 9.48289C0.938851 9.5154 0.784092 9.60667 0.67269 9.74101C0.561288 9.87534 0.500219 10.0443 0.5 10.2188V13.7598C0.499917 13.8817 0.530111 14.0018 0.587871 14.1092C0.645632 14.2166 0.729152 14.3079 0.830938 14.3751C0.953375 14.4564 1.09706 14.4999 1.24406 14.5001C1.34626 14.5 1.4474 14.4795 1.54156 14.4398L14.8875 8.9357L14.8934 8.93289C15.0731 8.85569 15.2262 8.72751 15.3337 8.56421C15.4413 8.40092 15.4986 8.20968 15.4986 8.01414C15.4986 7.81861 15.4413 7.62736 15.3337 7.46407C15.2262 7.30077 15.0731 7.1726 14.8934 7.09539Z",
|
9628
|
+
fill: "white"
|
9629
|
+
}));
|
10464
9630
|
};
|
10465
9631
|
|
10466
9632
|
var InputChat = function InputChat(_ref) {
|
10467
|
-
var
|
10468
|
-
role = _ref.role,
|
10469
|
-
text = _ref.text,
|
10470
|
-
drawPath = _ref.drawPath,
|
10471
|
-
onClearCanvas = _ref.onClearCanvas,
|
10472
|
-
onSaveCanvas = _ref.onSaveCanvas,
|
9633
|
+
var text = _ref.text,
|
10473
9634
|
onChangeInput = _ref.onChangeInput,
|
10474
9635
|
onSubmit = _ref.onSubmit,
|
10475
9636
|
isCompleted = _ref.isCompleted,
|
@@ -10478,20 +9639,10 @@ var InputChat = function InputChat(_ref) {
|
|
10478
9639
|
handleDeleteSelectedImage = _ref.handleDeleteSelectedImage;
|
10479
9640
|
var _useTranslation = useTranslation(),
|
10480
9641
|
t = _useTranslation.t;
|
10481
|
-
var isStudent = role === Role.Student;
|
10482
9642
|
var fileInputRef = useRef(null);
|
10483
|
-
var _useState = useState(false),
|
10484
|
-
open = _useState[0],
|
10485
|
-
setOpen = _useState[1];
|
10486
|
-
var disabled = isCompleted || isSending;
|
10487
9643
|
var handleSubmit = function handleSubmit() {
|
10488
9644
|
onSubmit();
|
10489
9645
|
};
|
10490
|
-
var handleToggleSketchDialog = function handleToggleSketchDialog() {
|
10491
|
-
setOpen(function (state) {
|
10492
|
-
return !state;
|
10493
|
-
});
|
10494
|
-
};
|
10495
9646
|
var handleSelectedFile = function handleSelectedFile(e) {
|
10496
9647
|
var files = e.target.files;
|
10497
9648
|
handleUploadImage(files[0]);
|
@@ -10499,26 +9650,13 @@ var InputChat = function InputChat(_ref) {
|
|
10499
9650
|
fileInputRef.current.value = "";
|
10500
9651
|
}
|
10501
9652
|
};
|
10502
|
-
var handleSaveCanvas = function handleSaveCanvas(data, drawPath) {
|
10503
|
-
onSaveCanvas(data, drawPath);
|
10504
|
-
};
|
10505
|
-
var handleClickImage = function handleClickImage() {
|
10506
|
-
if (!drawPath) return;
|
10507
|
-
handleToggleSketchDialog();
|
10508
|
-
};
|
10509
|
-
var handleopenSketchDialog = function handleopenSketchDialog() {
|
10510
|
-
handleToggleSketchDialog();
|
10511
|
-
onClearCanvas();
|
10512
|
-
};
|
10513
9653
|
return React__default.createElement(Grid, {
|
10514
9654
|
item: true,
|
10515
9655
|
xs: 12,
|
10516
9656
|
padding: "16px"
|
10517
|
-
}, React__default.createElement(
|
10518
|
-
|
10519
|
-
|
10520
|
-
lg: "row"
|
10521
|
-
},
|
9657
|
+
}, React__default.createElement(Box, {
|
9658
|
+
display: "flex",
|
9659
|
+
flexDirection: "row",
|
10522
9660
|
gap: "24px"
|
10523
9661
|
}, React__default.createElement(Box, {
|
10524
9662
|
display: "flex",
|
@@ -10530,14 +9668,12 @@ var InputChat = function InputChat(_ref) {
|
|
10530
9668
|
border: selectedFile ? "1px solid #97A1AF" : undefined,
|
10531
9669
|
borderRadius: selectedFile ? "6px" : undefined,
|
10532
9670
|
flexDirection: "column"
|
10533
|
-
}, selectedFile && React__default.createElement(
|
9671
|
+
}, selectedFile && React__default.createElement("div", {
|
10534
9672
|
style: {
|
10535
9673
|
position: "relative",
|
10536
9674
|
margin: "10px",
|
10537
|
-
width: "fit-content"
|
10538
|
-
|
10539
|
-
},
|
10540
|
-
onClick: handleClickImage
|
9675
|
+
width: "fit-content"
|
9676
|
+
}
|
10541
9677
|
}, React__default.createElement("img", {
|
10542
9678
|
src: selectedFile,
|
10543
9679
|
style: {
|
@@ -10556,21 +9692,21 @@ var InputChat = function InputChat(_ref) {
|
|
10556
9692
|
cursor: "pointer",
|
10557
9693
|
background: grey[100]
|
10558
9694
|
},
|
10559
|
-
disabled: isSending,
|
10560
9695
|
onClick: handleDeleteSelectedImage
|
10561
9696
|
}, React__default.createElement(FaTrash, {
|
10562
9697
|
size: 16
|
10563
9698
|
}))), !selectedFile && React__default.createElement(TinyChatEditor, {
|
10564
9699
|
initValue: text,
|
10565
9700
|
onChange: onChangeInput,
|
10566
|
-
disabled:
|
9701
|
+
disabled: isCompleted
|
10567
9702
|
})), React__default.createElement(Typography, {
|
10568
9703
|
fontWeight: 500,
|
10569
9704
|
fontSize: "10px",
|
10570
9705
|
lineHeight: "11.93px",
|
10571
9706
|
color: "#97A1AF"
|
10572
|
-
}, t(
|
10573
|
-
|
9707
|
+
}, t('this_is_the_guidance_text'))), React__default.createElement(Box, {
|
9708
|
+
display: "flex",
|
9709
|
+
flexDirection: "column",
|
10574
9710
|
justifyContent: "flex-start",
|
10575
9711
|
alignItems: "flex-end",
|
10576
9712
|
gap: "16px"
|
@@ -10579,19 +9715,11 @@ var InputChat = function InputChat(_ref) {
|
|
10579
9715
|
fullWidth: true,
|
10580
9716
|
className: styles$2["btn-send"],
|
10581
9717
|
sx: {
|
10582
|
-
bgcolor:
|
9718
|
+
bgcolor: isCompleted ? styles.light + " !important" : styles.less_dark
|
10583
9719
|
},
|
10584
|
-
disabled:
|
9720
|
+
disabled: isCompleted,
|
10585
9721
|
onClick: handleSubmit
|
10586
|
-
},
|
10587
|
-
justifyContent: "center",
|
10588
|
-
alignItems: "center"
|
10589
|
-
}, React__default.createElement(CircularProgress, {
|
10590
|
-
sx: {
|
10591
|
-
color: "#FFF"
|
10592
|
-
},
|
10593
|
-
size: 14
|
10594
|
-
})) : React__default.createElement(iconSendMessage, null), React__default.createElement(Typography, {
|
9722
|
+
}, React__default.createElement(iconSendMessage, null), React__default.createElement(Typography, {
|
10595
9723
|
fontWeight: 700,
|
10596
9724
|
fontSize: "13px",
|
10597
9725
|
lineHeight: "15.51px"
|
@@ -10599,12 +9727,12 @@ var InputChat = function InputChat(_ref) {
|
|
10599
9727
|
variant: "outlined",
|
10600
9728
|
component: "label",
|
10601
9729
|
fullWidth: true,
|
10602
|
-
disabled:
|
9730
|
+
disabled: isCompleted,
|
10603
9731
|
sx: {
|
10604
9732
|
display: "flex",
|
10605
9733
|
gap: "8px",
|
10606
9734
|
padding: "12px !important",
|
10607
|
-
borderColor:
|
9735
|
+
borderColor: isCompleted ? "transparent" : styles.less_dark,
|
10608
9736
|
borderWidth: "1px"
|
10609
9737
|
}
|
10610
9738
|
}, React__default.createElement(iconPlusCircle, {
|
@@ -10620,20 +9748,9 @@ var InputChat = function InputChat(_ref) {
|
|
10620
9748
|
type: "file",
|
10621
9749
|
hidden: true,
|
10622
9750
|
ref: fileInputRef,
|
10623
|
-
disabled:
|
9751
|
+
disabled: isCompleted,
|
10624
9752
|
accept: "image/png, image/gif, image/jpeg",
|
10625
9753
|
onChangeCapture: handleSelectedFile
|
10626
|
-
})), !isStudent && React__default.createElement(Fragment$1, null, React__default.createElement(Button, {
|
10627
|
-
startIcon: React__default.createElement(MdDraw, null),
|
10628
|
-
variant: "contained",
|
10629
|
-
disabled: disabled,
|
10630
|
-
fullWidth: true,
|
10631
|
-
onClick: handleopenSketchDialog
|
10632
|
-
}, t("sketch")), React__default.createElement(SketchDialog, {
|
10633
|
-
open: open,
|
10634
|
-
drawPath: drawPath,
|
10635
|
-
onClose: handleToggleSketchDialog,
|
10636
|
-
onSave: handleSaveCanvas
|
10637
9754
|
})))));
|
10638
9755
|
};
|
10639
9756
|
|
@@ -10899,8 +10016,7 @@ var ChatHeader = function ChatHeader(_ref) {
|
|
10899
10016
|
};
|
10900
10017
|
|
10901
10018
|
var ChatContainer = function ChatContainer(_ref) {
|
10902
|
-
var
|
10903
|
-
chatHeaderProps = _ref.chatHeaderProps,
|
10019
|
+
var chatHeaderProps = _ref.chatHeaderProps,
|
10904
10020
|
chatListProps = _ref.chatListProps,
|
10905
10021
|
inputProps = _ref.inputProps,
|
10906
10022
|
_ref$scrollOffset = _ref.scrollOffset,
|
@@ -10993,9 +10109,76 @@ var ChatContainer = function ChatContainer(_ref) {
|
|
10993
10109
|
className: "d-flex justify-content-center align-items-center"
|
10994
10110
|
}, React__default.createElement(CircularProgress, null)), React__default.createElement(ChatList, Object.assign({}, chatListProps, {
|
10995
10111
|
listItemRef: listItemRef
|
10996
|
-
}))), React__default.createElement(InputChat, Object.assign({
|
10997
|
-
|
10998
|
-
|
10112
|
+
}))), React__default.createElement(InputChat, Object.assign({}, inputProps)));
|
10113
|
+
};
|
10114
|
+
|
10115
|
+
var MessageSortBy;
|
10116
|
+
(function (MessageSortBy) {
|
10117
|
+
MessageSortBy["CreatedAt"] = "CreatedAt";
|
10118
|
+
})(MessageSortBy || (MessageSortBy = {}));
|
10119
|
+
var OrderBy$1;
|
10120
|
+
(function (OrderBy) {
|
10121
|
+
OrderBy["ASC"] = "ASC";
|
10122
|
+
OrderBy["DESC"] = "DESC";
|
10123
|
+
})(OrderBy$1 || (OrderBy$1 = {}));
|
10124
|
+
var StudentSortBy;
|
10125
|
+
(function (StudentSortBy) {
|
10126
|
+
StudentSortBy["CreatedAt"] = "CreatedAt";
|
10127
|
+
StudentSortBy["FullName"] = "FullName";
|
10128
|
+
})(StudentSortBy || (StudentSortBy = {}));
|
10129
|
+
var StudentOrderBy;
|
10130
|
+
(function (StudentOrderBy) {
|
10131
|
+
StudentOrderBy["ASC"] = "ASC";
|
10132
|
+
StudentOrderBy["DESC"] = "DESC";
|
10133
|
+
})(StudentOrderBy || (StudentOrderBy = {}));
|
10134
|
+
var MessageAction;
|
10135
|
+
(function (MessageAction) {
|
10136
|
+
MessageAction[MessageAction["Default"] = 0] = "Default";
|
10137
|
+
MessageAction[MessageAction["Took"] = 1] = "Took";
|
10138
|
+
})(MessageAction || (MessageAction = {}));
|
10139
|
+
var MessageSourceType;
|
10140
|
+
(function (MessageSourceType) {
|
10141
|
+
MessageSourceType[MessageSourceType["Default"] = 0] = "Default";
|
10142
|
+
MessageSourceType[MessageSourceType["Exam"] = 1] = "Exam";
|
10143
|
+
MessageSourceType[MessageSourceType["Class"] = 2] = "Class";
|
10144
|
+
})(MessageSourceType || (MessageSourceType = {}));
|
10145
|
+
var MessageStatus;
|
10146
|
+
(function (MessageStatus) {
|
10147
|
+
MessageStatus["Default"] = "Sent";
|
10148
|
+
MessageStatus["Sending"] = "Sending...";
|
10149
|
+
MessageStatus["SentError"] = "Sent fail, Retry";
|
10150
|
+
})(MessageStatus || (MessageStatus = {}));
|
10151
|
+
|
10152
|
+
var types = {
|
10153
|
+
__proto__: null,
|
10154
|
+
get MessageSortBy () { return MessageSortBy; },
|
10155
|
+
get OrderBy () { return OrderBy$1; },
|
10156
|
+
get StudentSortBy () { return StudentSortBy; },
|
10157
|
+
get StudentOrderBy () { return StudentOrderBy; },
|
10158
|
+
get MessageAction () { return MessageAction; },
|
10159
|
+
get MessageSourceType () { return MessageSourceType; },
|
10160
|
+
get MessageStatus () { return MessageStatus; }
|
10161
|
+
};
|
10162
|
+
|
10163
|
+
var ExamStatus$1;
|
10164
|
+
(function (ExamStatus) {
|
10165
|
+
ExamStatus["Default"] = "Default";
|
10166
|
+
ExamStatus["Pending"] = "Pending";
|
10167
|
+
ExamStatus["Inprogress"] = "Inprogress";
|
10168
|
+
ExamStatus["Completed"] = "Completed";
|
10169
|
+
})(ExamStatus$1 || (ExamStatus$1 = {}));
|
10170
|
+
var Roles;
|
10171
|
+
(function (Roles) {
|
10172
|
+
Roles["Student"] = "Student";
|
10173
|
+
Roles["Teacher"] = "Teacher";
|
10174
|
+
Roles["Admin"] = "Admin";
|
10175
|
+
})(Roles || (Roles = {}));
|
10176
|
+
var MESSAGE_DEFAULT_FILTER = {
|
10177
|
+
currentPage: 1,
|
10178
|
+
pageSize: 15,
|
10179
|
+
textSearch: "",
|
10180
|
+
sortColumnDirection: OrderBy$1.DESC,
|
10181
|
+
sortColumnName: MessageSortBy.CreatedAt
|
10999
10182
|
};
|
11000
10183
|
|
11001
10184
|
var RECENT_USER_URL = BASE_URL + "/api/recentUsers";
|
@@ -11224,12 +10407,6 @@ var useChatContainer = function useChatContainer(props) {
|
|
11224
10407
|
var _useState5 = useState(true),
|
11225
10408
|
isScrollToEnd = _useState5[0],
|
11226
10409
|
setScrollToEnd = _useState5[1];
|
11227
|
-
var _useState6 = useState(),
|
11228
|
-
drawPath = _useState6[0],
|
11229
|
-
setDrawPath = _useState6[1];
|
11230
|
-
var _useState7 = useState(false),
|
11231
|
-
isSending = _useState7[0],
|
11232
|
-
setSending = _useState7[1];
|
11233
10410
|
var isAdmin = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Admin);
|
11234
10411
|
var _useMessageList = useMessageList({
|
11235
10412
|
student: student
|
@@ -11254,7 +10431,6 @@ var useChatContainer = function useChatContainer(props) {
|
|
11254
10431
|
try {
|
11255
10432
|
var _temp3 = function _temp3(_result2) {
|
11256
10433
|
if (_exit) return _result2;
|
11257
|
-
setSending(false);
|
11258
10434
|
loadingRef.current = false;
|
11259
10435
|
};
|
11260
10436
|
var _exit = false;
|
@@ -11262,7 +10438,6 @@ var useChatContainer = function useChatContainer(props) {
|
|
11262
10438
|
loadingRef.current = true;
|
11263
10439
|
if (!(selectedConversation !== null && selectedConversation !== void 0 && selectedConversation.id)) return Promise.resolve();
|
11264
10440
|
setScrollToEnd(true);
|
11265
|
-
setSending(true);
|
11266
10441
|
var _temp2 = _catch(function () {
|
11267
10442
|
if (file) {
|
11268
10443
|
return Promise.resolve(handleUploadImageData(file)).then(function (selectedFile) {
|
@@ -11302,7 +10477,6 @@ var useChatContainer = function useChatContainer(props) {
|
|
11302
10477
|
};
|
11303
10478
|
var handleUploadImage = function handleUploadImage(file) {
|
11304
10479
|
try {
|
11305
|
-
handleClearCanvas();
|
11306
10480
|
if (file) {
|
11307
10481
|
setFile(file);
|
11308
10482
|
var reader = new FileReader();
|
@@ -11316,29 +10490,11 @@ var useChatContainer = function useChatContainer(props) {
|
|
11316
10490
|
return Promise.reject(e);
|
11317
10491
|
}
|
11318
10492
|
};
|
11319
|
-
var handleSaveCanvas = function handleSaveCanvas(data, drawPath) {
|
11320
|
-
try {
|
11321
|
-
return Promise.resolve(fetch(data)).then(function (_fetch) {
|
11322
|
-
return Promise.resolve(_fetch.blob()).then(function (blob) {
|
11323
|
-
setFile(blob);
|
11324
|
-
setBackgroundImage(data);
|
11325
|
-
setDrawPath(drawPath);
|
11326
|
-
});
|
11327
|
-
});
|
11328
|
-
} catch (e) {
|
11329
|
-
return Promise.reject(e);
|
11330
|
-
}
|
11331
|
-
};
|
11332
|
-
var handleClearCanvas = function handleClearCanvas() {
|
11333
|
-
setBackgroundImage(null);
|
11334
|
-
setDrawPath(undefined);
|
11335
|
-
setFile(undefined);
|
11336
|
-
};
|
11337
10493
|
var handleUploadImageData = function handleUploadImageData(file) {
|
11338
10494
|
try {
|
11339
10495
|
return Promise.resolve(_catch(function () {
|
11340
10496
|
var formData = new FormData();
|
11341
|
-
|
10497
|
+
formData.append("upload", file);
|
11342
10498
|
return Promise.resolve(apiUploadImageFile(formData)).then(function (res) {
|
11343
10499
|
var _res$data;
|
11344
10500
|
return {
|
@@ -11411,8 +10567,7 @@ var useChatContainer = function useChatContainer(props) {
|
|
11411
10567
|
return Promise.reject(e);
|
11412
10568
|
}
|
11413
10569
|
};
|
11414
|
-
var handleDeleteSelectedImage = function handleDeleteSelectedImage(
|
11415
|
-
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
10570
|
+
var handleDeleteSelectedImage = function handleDeleteSelectedImage() {
|
11416
10571
|
setFile(undefined);
|
11417
10572
|
setBackgroundImage(null);
|
11418
10573
|
};
|
@@ -11500,16 +10655,12 @@ var useChatContainer = function useChatContainer(props) {
|
|
11500
10655
|
handleDeleteMessage: handleDeleteMessage
|
11501
10656
|
},
|
11502
10657
|
inputProps: {
|
11503
|
-
isSending: isSending,
|
11504
|
-
drawPath: drawPath,
|
11505
10658
|
selectedFile: backgroundImage,
|
11506
10659
|
text: (message === null || message === void 0 ? void 0 : message.content) || "",
|
11507
10660
|
onChangeInput: handleChangeInput,
|
11508
10661
|
onSubmit: handleAddMessage,
|
11509
10662
|
handleDeleteSelectedImage: handleDeleteSelectedImage,
|
11510
10663
|
handleUploadImage: handleUploadImage,
|
11511
|
-
onSaveCanvas: handleSaveCanvas,
|
11512
|
-
onClearCanvas: handleClearCanvas,
|
11513
10664
|
isCompleted: selectedConversation === null || selectedConversation === void 0 ? void 0 : selectedConversation.isCompleted
|
11514
10665
|
},
|
11515
10666
|
isScrollToEnd: isScrollToEnd,
|
@@ -20234,7 +19385,7 @@ var ChipCustom = styled(Stack)(function (_ref) {
|
|
20234
19385
|
};
|
20235
19386
|
});
|
20236
19387
|
var AnswerItem = function AnswerItem(_ref2) {
|
20237
|
-
var _data$selectedAnswers, _data$textualAnswers;
|
19388
|
+
var _data$selectedAnswers, _data$textualAnswers, _data$skipRate$toFixe, _data$skipRate;
|
20238
19389
|
var data = _ref2.data,
|
20239
19390
|
nextData = _ref2.nextData,
|
20240
19391
|
isFirst = _ref2.isFirst,
|
@@ -20299,7 +19450,7 @@ var AnswerItem = function AnswerItem(_ref2) {
|
|
20299
19450
|
width: "80px",
|
20300
19451
|
justifyContent: "center"
|
20301
19452
|
}
|
20302
|
-
}, data.
|
19453
|
+
}, data.duration != 0 ? React__default.createElement("p", {
|
20303
19454
|
style: {
|
20304
19455
|
margin: 0
|
20305
19456
|
},
|
@@ -20316,7 +19467,7 @@ var AnswerItem = function AnswerItem(_ref2) {
|
|
20316
19467
|
width: "80px",
|
20317
19468
|
justifyContent: "center"
|
20318
19469
|
}
|
20319
|
-
}, data.
|
19470
|
+
}, data.duration != 0 && data.topDuration ? React__default.createElement("p", {
|
20320
19471
|
style: {
|
20321
19472
|
margin: 0
|
20322
19473
|
},
|
@@ -20331,20 +19482,20 @@ var AnswerItem = function AnswerItem(_ref2) {
|
|
20331
19482
|
style: {
|
20332
19483
|
display: "flex",
|
20333
19484
|
alignItems: "center",
|
20334
|
-
width: "
|
19485
|
+
width: "150px",
|
20335
19486
|
justifyContent: "center"
|
20336
19487
|
}
|
20337
|
-
},
|
19488
|
+
}, React__default.createElement("p", {
|
20338
19489
|
style: {
|
20339
19490
|
margin: 0
|
20340
19491
|
},
|
20341
19492
|
className: styles$7["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$7)
|
20342
|
-
}, data.overallCorrectRate.toFixed(2) + "%"
|
19493
|
+
}, data.overallCorrectRate.toFixed(2) + "%", React__default.createElement("span", {
|
20343
19494
|
style: {
|
20344
|
-
|
20345
|
-
|
20346
|
-
|
20347
|
-
},
|
19495
|
+
fontSize: "10px",
|
19496
|
+
color: red[900]
|
19497
|
+
}
|
19498
|
+
}, "(" + ((_data$skipRate$toFixe = (_data$skipRate = data.skipRate) === null || _data$skipRate === void 0 ? void 0 : _data$skipRate.toFixed(2)) != null ? _data$skipRate$toFixe : 0) + "%)"))), React__default.createElement("div", {
|
20348
19499
|
className: styles$7["classification"] + " " + printStyles["avoid-break-inside"] + " flex-grow-1 justify-content-start",
|
20349
19500
|
style: {
|
20350
19501
|
paddingInline: "14px",
|
@@ -20397,7 +19548,7 @@ var AnswerItem = function AnswerItem(_ref2) {
|
|
20397
19548
|
}, openContextMenu ? React__default.createElement(ClickAwayListener, {
|
20398
19549
|
onClickAway: handleCloseContextMenu
|
20399
19550
|
}, React__default.createElement(Box, null, React__default.createElement(CustomTooltip, {
|
20400
|
-
onClose:
|
19551
|
+
onClose: handleCloseContextMenu,
|
20401
19552
|
open: openContextMenu,
|
20402
19553
|
disableFocusListener: true,
|
20403
19554
|
disableHoverListener: true,
|
@@ -20543,7 +19694,7 @@ var MyAnswer = function MyAnswer(_ref) {
|
|
20543
19694
|
display: "flex",
|
20544
19695
|
alignItems: "center",
|
20545
19696
|
gap: "4px",
|
20546
|
-
width: "
|
19697
|
+
width: "150px",
|
20547
19698
|
justifyContent: "center"
|
20548
19699
|
}
|
20549
19700
|
}, React__default.createElement(Typography, {
|
@@ -20553,9 +19704,15 @@ var MyAnswer = function MyAnswer(_ref) {
|
|
20553
19704
|
fontWeight: 600,
|
20554
19705
|
color: "#97A1AF",
|
20555
19706
|
display: "flex",
|
20556
|
-
alignItems: "
|
19707
|
+
alignItems: "baseline",
|
19708
|
+
gap: "2px"
|
20557
19709
|
}
|
20558
|
-
}, t("total_correct_rate")
|
19710
|
+
}, t("total_correct_rate"), React__default.createElement("span", {
|
19711
|
+
style: {
|
19712
|
+
fontSize: "10px",
|
19713
|
+
color: red[900]
|
19714
|
+
}
|
19715
|
+
}, "(" + t("not_selected") + ")")))), React__default.createElement("div", {
|
20559
19716
|
className: styles$7["titleMyAnswer2"]
|
20560
19717
|
}, React__default.createElement(Typography, {
|
20561
19718
|
sx: {
|
@@ -22088,7 +21245,7 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
|
|
22088
21245
|
};
|
22089
21246
|
|
22090
21247
|
var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
|
22091
|
-
var _data$selectedAnswers, _data$textualAnswers, _data$selectedAnswers2, _data$textualAnswers2, _data$selectedAnswers3, _data$textualAnswers3;
|
21248
|
+
var _data$selectedAnswers, _data$textualAnswers, _data$selectedAnswers2, _data$textualAnswers2, _data$selectedAnswers3, _data$textualAnswers3, _data$skipRate$toFixe, _data$skipRate;
|
22092
21249
|
var data = _ref.data,
|
22093
21250
|
nextData = _ref.nextData,
|
22094
21251
|
isFirst = _ref.isFirst,
|
@@ -22154,7 +21311,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
|
|
22154
21311
|
display: "flex",
|
22155
21312
|
alignItems: "center"
|
22156
21313
|
}
|
22157
|
-
}, data.
|
21314
|
+
}, data.duration != 0 ? React__default.createElement("p", {
|
22158
21315
|
style: {
|
22159
21316
|
margin: 0
|
22160
21317
|
},
|
@@ -22170,7 +21327,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
|
|
22170
21327
|
display: "flex",
|
22171
21328
|
alignItems: "center"
|
22172
21329
|
}
|
22173
|
-
}, data.
|
21330
|
+
}, data.duration != 0 && data.topDuration ? React__default.createElement("p", {
|
22174
21331
|
style: {
|
22175
21332
|
margin: 0
|
22176
21333
|
},
|
@@ -22187,22 +21344,22 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
|
|
22187
21344
|
display: "flex",
|
22188
21345
|
alignItems: "center"
|
22189
21346
|
}
|
22190
|
-
},
|
21347
|
+
}, React__default.createElement("p", {
|
22191
21348
|
style: {
|
22192
21349
|
margin: 0
|
22193
21350
|
},
|
22194
21351
|
className: styles$7["answer-response"] + " " + getOverallColorClassName(data.overallCorrectRate, styles$7)
|
22195
|
-
}, data.overallCorrectRate.toFixed(2) + "%"
|
21352
|
+
}, data.overallCorrectRate.toFixed(2) + "%", React__default.createElement("span", {
|
22196
21353
|
style: {
|
22197
|
-
|
22198
|
-
|
22199
|
-
|
22200
|
-
},
|
21354
|
+
fontSize: "10px",
|
21355
|
+
color: red[900]
|
21356
|
+
}
|
21357
|
+
}, "(" + ((_data$skipRate$toFixe = (_data$skipRate = data.skipRate) === null || _data$skipRate === void 0 ? void 0 : _data$skipRate.toFixed(2)) != null ? _data$skipRate$toFixe : 0) + "%)"))), isStudent && !isLearningSpace && React__default.createElement(Box, {
|
22201
21358
|
className: styles["custom-col-2"]
|
22202
21359
|
}, openContextMenu ? React__default.createElement(ClickAwayListener, {
|
22203
21360
|
onClickAway: handleCloseContextMenu
|
22204
21361
|
}, React__default.createElement(Box, null, React__default.createElement(CustomTooltip, {
|
22205
|
-
onClose:
|
21362
|
+
onClose: handleCloseContextMenu,
|
22206
21363
|
open: openContextMenu,
|
22207
21364
|
disableFocusListener: true,
|
22208
21365
|
disableHoverListener: true,
|
@@ -22355,9 +21512,15 @@ var TextbookMyAnswer = function TextbookMyAnswer(_ref) {
|
|
22355
21512
|
fontWeight: 600,
|
22356
21513
|
color: "#97A1AF",
|
22357
21514
|
display: "flex",
|
22358
|
-
alignItems: "
|
21515
|
+
alignItems: "baseline",
|
21516
|
+
gap: "2px"
|
21517
|
+
}
|
21518
|
+
}, t("total_correct_rate"), React__default.createElement("span", {
|
21519
|
+
style: {
|
21520
|
+
fontSize: "10px",
|
21521
|
+
color: red[900]
|
22359
21522
|
}
|
22360
|
-
}, t("
|
21523
|
+
}, "(" + t("not_selected") + ")")))), React__default.createElement("div", {
|
22361
21524
|
className: styles$7["titleMyAnswer2"]
|
22362
21525
|
}, React__default.createElement(Typography, {
|
22363
21526
|
sx: {
|
@@ -24971,7 +24134,7 @@ var useOverallChartContainer = function useOverallChartContainer(isStudent, exam
|
|
24971
24134
|
return [texts.slice(0, middle), texts.slice(middle)];
|
24972
24135
|
}, [JSON.stringify(categories)]);
|
24973
24136
|
var formatTooltip = useCallback(function (_ref2) {
|
24974
|
-
var _overallData$data$0$h, _overallData$data$, _overallData$data$1$h, _overallData$data$2, _overallData$
|
24137
|
+
var _overallData$data$0$h, _overallData$data$, _overallData$maxData$, _overallData$data$1$h, _overallData$data$2, _overallData$maxData$2, _overallData$data$0$q, _overallData$data$3, _overallData$data$1$q, _overallData$data$4, _overallData$data$0$p, _overallData$data$5, _overallData$data$1$p, _overallData$data$6, _overallData$data$0$t, _overallData$data$7, _overallData$maxData$3, _overallData$data$1$t, _overallData$data$8, _overallData$maxData$4, _overallData$data$0$l, _overallData$data$9, _overallData$maxData$5, _overallData$data$1$l, _overallData$data$10, _overallData$maxData$6, _overallData$data$0$c, _overallData$data$11, _overallData$data$11$, _overallData$data$1$c, _overallData$data$12, _overallData$data$12$;
|
24975
24138
|
var dataPointIndex = _ref2.dataPointIndex,
|
24976
24139
|
w = _ref2.w;
|
24977
24140
|
var label = categories[dataPointIndex];
|
@@ -24980,42 +24143,34 @@ var useOverallChartContainer = function useOverallChartContainer(isStudent, exam
|
|
24980
24143
|
switch (dataPointIndex) {
|
24981
24144
|
case 1:
|
24982
24145
|
myValue = "" + t("n_questions", {
|
24983
|
-
total: (_overallData$data$0$h = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$ = overallData.data[0]) === null || _overallData$data$ === void 0 ? void 0 : _overallData$data$.highLevelQuestions) != null ? _overallData$data$0$h : 0
|
24146
|
+
total: ((_overallData$data$0$h = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$ = overallData.data[0]) === null || _overallData$data$ === void 0 ? void 0 : _overallData$data$.highLevelQuestions) != null ? _overallData$data$0$h : 0) + "/" + ((_overallData$maxData$ = overallData === null || overallData === void 0 ? void 0 : overallData.maxData.highLevelQuestions) != null ? _overallData$maxData$ : 0)
|
24984
24147
|
});
|
24985
24148
|
avgValue = "" + t("n_questions", {
|
24986
|
-
total: (_overallData$data$1$h = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$2 = overallData.data[1]) === null || _overallData$data$2 === void 0 ? void 0 :
|
24149
|
+
total: Math.round((_overallData$data$1$h = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$2 = overallData.data[1]) === null || _overallData$data$2 === void 0 ? void 0 : _overallData$data$2.highLevelQuestions) != null ? _overallData$data$1$h : 0) + "/" + ((_overallData$maxData$2 = overallData === null || overallData === void 0 ? void 0 : overallData.maxData.highLevelQuestions) != null ? _overallData$maxData$2 : 0)
|
24987
24150
|
});
|
24988
24151
|
break;
|
24989
24152
|
case 2:
|
24990
|
-
myValue =
|
24991
|
-
|
24992
|
-
});
|
24993
|
-
avgValue = "" + t("n_seconds", {
|
24994
|
-
sec: (((_overallData$data$1$q = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$4 = overallData.data[1]) === null || _overallData$data$4 === void 0 ? void 0 : _overallData$data$4.questionLongestTime) != null ? _overallData$data$1$q : 0) / 1000).toFixed(2)
|
24995
|
-
});
|
24153
|
+
myValue = formatTimeSecond(((_overallData$data$0$q = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$3 = overallData.data[0]) === null || _overallData$data$3 === void 0 ? void 0 : _overallData$data$3.questionLongestTime) != null ? _overallData$data$0$q : 0) / 1000, t);
|
24154
|
+
avgValue = formatTimeSecond(((_overallData$data$1$q = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$4 = overallData.data[1]) === null || _overallData$data$4 === void 0 ? void 0 : _overallData$data$4.questionLongestTime) != null ? _overallData$data$1$q : 0) / 1000, t);
|
24996
24155
|
break;
|
24997
24156
|
case 3:
|
24998
|
-
myValue =
|
24999
|
-
|
25000
|
-
});
|
25001
|
-
avgValue = "" + t("n_seconds", {
|
25002
|
-
sec: (((_overallData$data$1$p = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$6 = overallData.data[1]) === null || _overallData$data$6 === void 0 ? void 0 : _overallData$data$6.problemSolvingTime) != null ? _overallData$data$1$p : 0) / 1000).toFixed(2)
|
25003
|
-
});
|
24157
|
+
myValue = formatTimeSecond(((_overallData$data$0$p = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$5 = overallData.data[0]) === null || _overallData$data$5 === void 0 ? void 0 : _overallData$data$5.problemSolvingTime) != null ? _overallData$data$0$p : 0) / 1000, t);
|
24158
|
+
avgValue = formatTimeSecond(((_overallData$data$1$p = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$6 = overallData.data[1]) === null || _overallData$data$6 === void 0 ? void 0 : _overallData$data$6.problemSolvingTime) != null ? _overallData$data$1$p : 0) / 1000, t);
|
25004
24159
|
break;
|
25005
24160
|
case 4:
|
25006
24161
|
myValue = "" + t("n_questions", {
|
25007
|
-
total: (_overallData$data$0$t = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$7 = overallData.data[0]) === null || _overallData$data$7 === void 0 ? void 0 : _overallData$data$7.totalAsteriskQuestions) != null ? _overallData$data$0$t : 0
|
24162
|
+
total: ((_overallData$data$0$t = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$7 = overallData.data[0]) === null || _overallData$data$7 === void 0 ? void 0 : _overallData$data$7.totalAsteriskQuestions) != null ? _overallData$data$0$t : 0) + "/" + ((_overallData$maxData$3 = overallData === null || overallData === void 0 ? void 0 : overallData.maxData.totalAsteriskQuestions) != null ? _overallData$maxData$3 : 0)
|
25008
24163
|
});
|
25009
24164
|
avgValue = "" + t("n_questions", {
|
25010
|
-
total: (_overallData$data$1$t = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$8 = overallData.data[1]) === null || _overallData$data$8 === void 0 ? void 0 :
|
24165
|
+
total: Math.round((_overallData$data$1$t = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$8 = overallData.data[1]) === null || _overallData$data$8 === void 0 ? void 0 : _overallData$data$8.totalAsteriskQuestions) != null ? _overallData$data$1$t : 0) + "/" + ((_overallData$maxData$4 = overallData === null || overallData === void 0 ? void 0 : overallData.maxData.totalAsteriskQuestions) != null ? _overallData$maxData$4 : 0)
|
25011
24166
|
});
|
25012
24167
|
break;
|
25013
24168
|
case 5:
|
25014
24169
|
myValue = "" + t("n_questions", {
|
25015
|
-
total: (_overallData$data$0$l = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$9 = overallData.data[0]) === null || _overallData$data$9 === void 0 ? void 0 : _overallData$data$9.lowLevelQuestions) != null ? _overallData$data$0$l : 0
|
24170
|
+
total: ((_overallData$data$0$l = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$9 = overallData.data[0]) === null || _overallData$data$9 === void 0 ? void 0 : _overallData$data$9.lowLevelQuestions) != null ? _overallData$data$0$l : 0) + "/" + ((_overallData$maxData$5 = overallData === null || overallData === void 0 ? void 0 : overallData.maxData.lowLevelQuestions) != null ? _overallData$maxData$5 : 0)
|
25016
24171
|
});
|
25017
24172
|
avgValue = "" + t("n_questions", {
|
25018
|
-
total: (_overallData$data$1$l = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$10 = overallData.data[1]) === null || _overallData$data$10 === void 0 ? void 0 :
|
24173
|
+
total: Math.round((_overallData$data$1$l = overallData === null || overallData === void 0 ? void 0 : (_overallData$data$10 = overallData.data[1]) === null || _overallData$data$10 === void 0 ? void 0 : _overallData$data$10.lowLevelQuestions) != null ? _overallData$data$1$l : 0) + "/" + ((_overallData$maxData$6 = overallData === null || overallData === void 0 ? void 0 : overallData.maxData.lowLevelQuestions) != null ? _overallData$maxData$6 : 0)
|
25019
24174
|
});
|
25020
24175
|
break;
|
25021
24176
|
default:
|
@@ -27161,7 +26316,7 @@ var ChapterDetail = function ChapterDetail(_ref) {
|
|
27161
26316
|
gap: "16px",
|
27162
26317
|
justifyContent: "center",
|
27163
26318
|
alignItems: "center"
|
27164
|
-
}, React__default.createElement(IoCheckmarkCircle, {
|
26319
|
+
}, chapter.completedChapterQuestions === chapter.totalChapterQuestions && React__default.createElement(IoCheckmarkCircle, {
|
27165
26320
|
color: styles.less_dark
|
27166
26321
|
}), React__default.createElement(Typography, {
|
27167
26322
|
fontSize: "14px",
|
@@ -27760,7 +26915,8 @@ var TextbookDrawer = function TextbookDrawer(_ref) {
|
|
27760
26915
|
borderRadius: "10px",
|
27761
26916
|
width: "100%",
|
27762
26917
|
height: "22px",
|
27763
|
-
position: "relative"
|
26918
|
+
position: "relative",
|
26919
|
+
overflow: "hidden"
|
27764
26920
|
}
|
27765
26921
|
}, React__default.createElement(Stack, {
|
27766
26922
|
sx: {
|
@@ -28659,7 +27815,7 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
28659
27815
|
margin: "0 1rem",
|
28660
27816
|
width: "800px"
|
28661
27817
|
}
|
28662
|
-
}, React__default.createElement(Slider
|
27818
|
+
}, React__default.createElement(Slider, Object.assign({}, settings), subjectOptions.map(function (option) {
|
28663
27819
|
return React__default.createElement(Tooltip, {
|
28664
27820
|
title: option.label
|
28665
27821
|
}, React__default.createElement(FormControlLabel, {
|